/* Genesis S16 P21 — global content density and visual rhythm */
:root{
  --p21-section-y:clamp(4.5rem,7vw,7.5rem);
  --p21-section-y-compact:clamp(3.25rem,5vw,5.25rem);
  --p21-title:clamp(2.45rem,5vw,5.6rem);
  --p21-title-inner:clamp(2.2rem,4vw,4.5rem);
  --p21-copy:clamp(1rem,1.15vw,1.2rem);
  --p21-card-pad:clamp(1.25rem,2.2vw,2rem);
  --p21-radius:1.5rem;
}
html{scroll-padding-top:96px}
body{overflow-x:clip;text-rendering:optimizeLegibility}
main{isolation:isolate}
main>section,main>div[class*="section"],main>article{scroll-margin-top:96px}
/* Normalize oversized heroes without flattening flagship pages. */
main>section:first-child{min-height:auto!important;padding-top:clamp(5.5rem,9vw,8.5rem)!important;padding-bottom:clamp(4rem,7vw,7rem)!important}
main>section:first-child h1,
main>div:first-child h1{font-size:var(--p21-title)!important;line-height:.98!important;letter-spacing:-.045em!important;max-width:18ch}
[dir="rtl"] main>section:first-child h1,[dir="rtl"] main>div:first-child h1{letter-spacing:0!important;line-height:1.14!important;max-width:16ch}
main h2{font-size:clamp(1.9rem,3.4vw,3.45rem);line-height:1.08;letter-spacing:-.03em}
[dir="rtl"] main h2{letter-spacing:0;line-height:1.25}
main h3{line-height:1.2}
main p{line-height:1.75}
main>section:not(:first-child){padding-top:var(--p21-section-y)!important;padding-bottom:var(--p21-section-y)!important}
main>section+section{border-top:1px solid color-mix(in srgb,currentColor 8%,transparent)}
/* Common containers and intro blocks. */
.s16-container,.p14-container,.p15-container,.p16-container,.p17-container,.p18-container{width:min(1180px,calc(100% - 2.5rem));margin-inline:auto}
main section header,main section .section-header,main section [class*="-intro"]{margin-bottom:clamp(2rem,4vw,3.75rem)}
main section header p,main section [class*="-intro"] p{max-width:68ch}
/* Calm cards and grids. */
main [class*="grid"]{align-items:stretch}
main article,main [class*="card"],main [class*="panel"]{min-width:0}
main article,main [class*="card"]{border-radius:var(--p21-radius)}
main article>div,main [class*="card"]>div{min-width:0}
main img{max-width:100%;height:auto}
main figure img,main [class*="visual"] img,main [class*="media"] img{object-fit:cover}
/* Remove excessive ornamental vertical gaps created by legacy utilities. */
main .py-32,main .py-36,main .py-40{padding-top:var(--p21-section-y)!important;padding-bottom:var(--p21-section-y)!important}
main .pt-32,main .pt-36,main .pt-40{padding-top:var(--p21-section-y)!important}
main .pb-32,main .pb-36,main .pb-40{padding-bottom:var(--p21-section-y)!important}
main .mt-24,main .mt-28,main .mt-32{margin-top:clamp(3rem,6vw,5.5rem)!important}
main .mb-24,main .mb-28,main .mb-32{margin-bottom:clamp(3rem,6vw,5.5rem)!important}
/* Keep actionable areas compact and legible. */
main a[class*="btn"],main button[class*="btn"],main a[class*="cta"],main button[class*="cta"]{min-height:46px;display:inline-flex;align-items:center;justify-content:center}
/* Page-specific rhythm harmonization. */
.p13-home main,.p14-home-main,.p15-page-main,.p16-page-main,.p17-contact-main,.p18-offers-main{padding-top:0!important}
.p14-home-main>section:first-child{min-height:min(760px,82vh)!important}
.p14-home-main>section:not(:first-child),.p15-page-main>section,.p16-page-main>section,.p17-contact-main>section,.p18-offers-main>section{padding-block:var(--p21-section-y)!important}
/* Secondary authority pages should feel tighter than the flagship product route. */
body:not(.p13-home) main>section:first-child{min-height:auto!important}
body:not(.p13-home) main>section:not(:first-child){padding-block:var(--p21-section-y-compact)!important}
/* Footer transition should not leave a dead zone. */
main>section:last-child{margin-bottom:0!important}
.p20-footer{margin-top:0!important}
@media(max-width:1023px){
  :root{--p21-section-y:clamp(3.75rem,8vw,5.5rem);--p21-section-y-compact:clamp(3rem,7vw,4.5rem)}
  main>section:first-child{padding-top:clamp(4.75rem,10vw,6.5rem)!important}
  main>section:first-child h1,main>div:first-child h1{max-width:20ch}
  .s16-container,.p14-container,.p15-container,.p16-container,.p17-container,.p18-container{width:min(100% - 2rem,1180px)}
}
@media(max-width:639px){
  :root{--p21-section-y:3.75rem;--p21-section-y-compact:3.25rem;--p21-card-pad:1.15rem}
  html{scroll-padding-top:78px}
  main>section,main>div[class*="section"]{scroll-margin-top:78px}
  main>section:first-child{padding-top:4.5rem!important;padding-bottom:3.5rem!important}
  main>section:first-child h1,main>div:first-child h1{font-size:clamp(2.25rem,12vw,3.45rem)!important;line-height:1.02!important}
  [dir="rtl"] main>section:first-child h1,[dir="rtl"] main>div:first-child h1{line-height:1.18!important}
  main h2{font-size:clamp(1.75rem,8vw,2.5rem)}
  main p{line-height:1.7}
  main [class*="grid"]{gap:1rem!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
