/* New-design styles. Scoped under `.nd` (wrapper div in template/page-*.php);
   these pages use the theme's default header.php/footer.php.
   --nav-h must match the fixed legacy `header` height (48px at every breakpoint). */
.nd{--red:#ed1c24;--black:#0a0a0a;--white:#fff;--gray-light:#f5f5f5;--gray-mid:#e8e8e8;--gray-text:#999;--nav-h:48px;--font:'Jost',sans-serif}
/* The legacy header switches to its stacked/collapsed layout at 1080px and grows 48px -> 74px. */
@media(max-width:1080px){.nd{--nav-h:74px}}
.nd *,.nd *::before,.nd *::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
.nd{font-family:var(--font);font-weight:300;color:var(--black);background:var(--white);overflow-x:hidden;letter-spacing:.02em}
.nd nav.site-nav{position:fixed;top:0;left:0;width:100%;z-index:100;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 60px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--gray-mid)}
.nd .logo-text{font-size:18px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--black)}
.nd .logo-text span{color:var(--red)}
.nd nav.site-nav ul{list-style:none;display:flex;gap:36px}
.nd nav.site-nav ul a{font-size:11px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--black);transition:color .2s}
.nd nav.site-nav ul a:hover,.nd nav.site-nav ul a.active{color:var(--red)}
.nd .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px}
.nd .burger span{width:22px;height:1px;background:var(--black);display:block}
.nd .mob-nav{display:none;position:fixed;top:var(--nav-h);right:16px;background:var(--white);border:1px solid var(--gray-mid);padding:28px 36px;z-index:99}
.nd .mob-nav.open{display:block}
.nd .mob-nav ul{list-style:none;display:flex;flex-direction:column;gap:22px}
.nd .mob-nav ul a{font-size:11px;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--black)}
.nd .eyebrow{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:20px}
.nd .reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.nd .reveal.visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.nd .reveal{opacity:1;transform:none;transition:none}}
.nd .reveal-delay-1{transition-delay:.08s}
.nd .reveal-delay-2{transition-delay:.16s}
.nd .reveal-delay-3{transition-delay:.24s}
.nd .reveal-delay-4{transition-delay:.32s}
.nd .cta{padding:80px 60px;display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid var(--gray-mid)}
.nd .cta h2{font-size:clamp(28px,4vw,44px);font-weight:200;letter-spacing:-.02em}
.nd .cta h2 em{font-style:normal;color:var(--red)}
.nd .cta-btn{flex-shrink:0;padding:14px 36px;border:1px solid var(--black);font-family:var(--font);font-size:11px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--black);text-decoration:none;transition:all .2s;background:none}
.nd .cta-btn:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.nd footer.site-footer{padding:36px 60px;border-top:1px solid var(--gray-mid);display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:300;color:var(--gray-text)}
.nd footer.site-footer a{color:var(--gray-text);text-decoration:none}
.nd footer.site-footer a:hover{color:var(--red)}
.nd .wa{position:fixed;bottom:28px;right:28px;z-index:200;width:50px;height:50px;background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 2px 16px rgba(37,211,102,.35);transition:transform .2s}
.nd .wa:hover{transform:scale(1.08)}
.nd .wa svg{width:24px;height:24px;fill:#fff}
@media(max-width:768px){
  .nd nav.site-nav{padding:0 24px}
  .nd nav.site-nav ul{display:none}
  .nd .burger{display:flex}
  .nd .cta,.nd footer.site-footer{padding-left:24px;padding-right:24px}
  .nd .cta{flex-direction:column;align-items:flex-start}
}

/* Sticky/fixed nd chrome measures from the viewport, so it needs the admin bar
   height on top of --nav-h. Flow content (.hero's margin-top) must NOT be
   adjusted — core's `html{margin-top}` already accounts for the bar there. */
.admin-bar .nd .service-nav{top:calc(var(--nav-h) + 32px)}
@media screen and (max-width:782px){.admin-bar .nd .service-nav{top:calc(var(--nav-h) + 46px)}}
