/* Nunky spacing v3 — final vertical rhythm for product and service pages */
:root{
  --nk-section-y:clamp(3.6rem,5.5vw,5.6rem);
  --nk-section-y-compact:clamp(2.7rem,4vw,4rem);
  --nk-section-y-tight:clamp(2rem,3vw,3rem);
  --nk-heading-gap:clamp(1.4rem,2.4vw,2.2rem);
  --nk-grid-gap:clamp(1.7rem,3.2vw,3rem);
}

/* Scope strictly to products and services */
body:has(main.product-editorial-unified) main,
body:has(main.service-editorial-unified) main,
body:has(main.family-editorial-unified) main,:where(body:has(main:not(.product-page))) body:has(main.nunky-editorial-product) main,
body:has(main.editorial-refresh) main,
body:has(main.product-detail-page) main,
body:has(main.closing-service-family) main{
  --section-space:var(--nk-section-y);
}

/* Regular sections */:where(body:has(main:not(.product-page))) .product-editorial-unified section:not(:first-child):not(.nunky-editorial-hero):not(.ep-hero):not(.detail-hero),
.service-editorial-unified section:not(:first-child):not(.ppx-hero):not(.detail-hero),
.family-editorial-unified section:not(:first-child):not(.family-human-hero),:where(body:has(main:not(.product-page))) .nunky-editorial-product section:not(:first-child):not(.nunky-editorial-hero),
.editorial-refresh section:not(:first-child):not(.ep-hero),
.product-detail-page section:not(:first-child):not(.detail-hero),
.closing-service-family section:not(:first-child):not(.family-human-hero){
  padding-top:var(--nk-section-y)!important;
  padding-bottom:var(--nk-section-y)!important;
  min-height:0!important;
}

/* Compact informational sections */:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-problem,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-process,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-scenarios,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-family-explorer,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-product-cta,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-faq-section,
.service-editorial-unified .ppx-problem,
.service-editorial-unified .ppx-process,
.service-editorial-unified .ppx-scenarios,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-family-explorer,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-product-cta,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-faq-section,
.family-editorial-unified .family-purpose,
.family-editorial-unified .family-benefits,
.family-editorial-unified .family-members-section,
.family-editorial-unified .family-way,
.family-editorial-unified .evidence-without-hype,
.family-editorial-unified .cta{
  padding-top:var(--nk-section-y-compact)!important;
  padding-bottom:var(--nk-section-y-compact)!important;
}

/* Headings should connect to the content below */:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-heading,
.product-editorial-unified .section-heading,
.service-editorial-unified .ppx-section-heading,
.service-editorial-unified .section-heading,
.family-editorial-unified .section-heading,
.editorial-refresh .ep-heading,
.editorial-refresh .section-heading{
  margin-bottom:var(--nk-heading-gap)!important;
}:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-heading h2,
.service-editorial-unified .ppx-section-heading h2,
.family-editorial-unified .section-heading h2,
.editorial-refresh .ep-heading h2{
  margin-bottom:0!important;
}

/* Remove inherited spacer margins */:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-process-line,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-scenario-list,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-result-line,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-family-grid,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-faq-list,
.service-editorial-unified .ppx-process-line,
.service-editorial-unified .ppx-scenario-list,
.service-editorial-unified .ppx-result-line,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-family-grid,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-faq-list,
.family-editorial-unified .family-benefit-grid,
.family-editorial-unified .family-member-grid,
.family-editorial-unified .family-way-grid,
.family-editorial-unified .evidence-ribbon{
  margin-top:0!important;
}

/* Alternating media rows */:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-editorial-alternate .container,
.service-editorial-unified .ppx-alternate .container,
.editorial-refresh .ep-section .container{
  row-gap:var(--nk-grid-gap)!important;
}:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-alternate-row,
.service-editorial-unified .ppx-alternate-row,
.editorial-refresh .ep-split{
  gap:var(--nk-grid-gap)!important;
  margin-bottom:var(--nk-section-y-compact)!important;
}:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-alternate-row:last-child,
.service-editorial-unified .ppx-alternate-row:last-child,
.editorial-refresh .ep-split:last-child{
  margin-bottom:0!important;
}

/* Avoid large fixed media heights */
.product-editorial-unified figure,
.service-editorial-unified figure,
.family-editorial-unified figure,
.product-editorial-unified [class*="media"],
.service-editorial-unified [class*="media"]{
  min-height:0!important;
}

/* Related + CTA + FAQ should read as one ending sequence */:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-family-explorer + .nunky-product-cta,:where(body:has(main:not(.product-page))) .product-editorial-unified .nunky-product-cta + .nunky-faq-section,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-family-explorer + .nunky-product-cta,:where(body:has(main:not(.product-page))) .service-editorial-unified .nunky-product-cta + .nunky-faq-section{
  padding-top:var(--nk-section-y-tight)!important;
}

@media(max-width:820px){
  :root{
    --nk-section-y:3.4rem;
    --nk-section-y-compact:2.65rem;
    --nk-section-y-tight:2.15rem;
    --nk-heading-gap:1.45rem;
    --nk-grid-gap:1.75rem;
  }
}
@media(max-width:560px){
  :root{
    --nk-section-y:2.8rem;
    --nk-section-y-compact:2.25rem;
    --nk-section-y-tight:1.85rem;
    --nk-heading-gap:1.2rem;
    --nk-grid-gap:1.4rem;
  }
}
