/* Reset + type + layout primitives */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);color:var(--text-heading);font-weight:600;letter-spacing:var(--tracking-display);line-height:1.08}
p{margin:0}
a{color:var(--link);text-decoration:none;transition:color var(--duration-fast) ease-out}
a:hover{color:var(--link-hover)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--forest-900);color:var(--cream-50);padding:10px 14px;border-radius:var(--radius-sm)}
.skip-link:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.container{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.section--raised{background:var(--surface-raised);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.section--inverse{background:var(--surface-inverse);color:var(--tan-300)}
.section--inverse h1,.section--inverse h2,.section--inverse h3{color:var(--cream-50)}
.section--inverse .eyebrow{color:var(--tan-300)}
.section--inverse a{color:var(--tan-300)}
.section--inverse a:hover{color:var(--cream-50)}

.eyebrow{display:block;font-size:13px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--brand-secondary);font-weight:500;line-height:1.3}
.eyebrow + h1,.eyebrow + h2{margin-top:12px}
.lede{font-size:clamp(15px,1.5vw,17px);line-height:1.6;color:var(--text-body)}
.section--inverse .lede{color:var(--tan-300)}
.muted{color:var(--text-muted)}
.faint{color:var(--text-faint)}
.h-display{font-size:clamp(36px,8.4vw,76px);line-height:1.03;letter-spacing:-0.03em;text-wrap:balance}
.h-page{font-size:clamp(28px,4.4vw,44px);line-height:1.08}
.h-section{font-size:clamp(24px,3.2vw,34px);line-height:1.14}
.h-sub{font-size:clamp(22px,2.9vw,30px);line-height:1.16}
.h-card{font-size:clamp(21px,2.5vw,27px);line-height:1.2}
.accent-dot{color:var(--ember-500)}
.rule{width:44px;height:3px;background:var(--ember-500)}
.prose p + p{margin-top:14px}
.prose p{font-size:15.5px;line-height:1.68;max-width:58ch}
.section--inverse .prose p{color:var(--tan-300)}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(26px,4vw,60px);align-items:center}
.split--start{align-items:start}
.flex-between{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:500;font-size:14.5px;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color var(--duration-fast) ease-out,color var(--duration-fast) ease-out,border-color var(--duration-fast) ease-out}
.btn--sm{height:36px;padding:0 14px;font-size:13.5px}
.btn--lg{height:48px;padding:0 22px;font-size:15px}
.btn--accent{background:var(--ember-500);color:var(--cream-50)}
.btn--accent:hover{background:var(--ember-600);color:var(--cream-50)}
.btn--accent:active{background:#A34A20}
.btn--primary{background:var(--sage-500);color:var(--cream-50)}
.btn--primary:hover{background:var(--sage-600);color:var(--cream-50)}
.btn--secondary{background:var(--white);border-color:var(--border-default);color:var(--text-heading)}
.btn--secondary:hover{background:var(--stone-100);color:var(--text-heading)}
.btn--ghost{background:transparent;border-color:var(--border-strong);color:var(--text-heading)}
.btn--ghost:hover{background:var(--stone-100);color:var(--text-heading)}
.btn--ghost-dark{background:transparent;border-color:var(--tan-300);color:var(--cream-50)}
.btn--ghost-dark:hover{background:rgba(244,243,238,0.1);color:var(--cream-50)}
.btn-row{display:flex;gap:12px;flex-wrap:wrap}
.text-link{font-weight:500;font-size:14px}
.text-link::after{content:" \2192"}

/* Top bar + header */
.topbar{background:var(--forest-800);color:var(--tan-300);font-size:12.5px}
.topbar .container{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:7px;padding-bottom:7px}
.topbar a{color:var(--tan-300)}
.topbar a:hover{color:var(--cream-50)}
.site-header{position:sticky;top:0;z-index:60;background:var(--cream-50);border-bottom:1px solid var(--border-subtle)}
.site-header .container{min-height:74px;display:flex;align-items:center;gap:12px clamp(14px,2.4vw,34px);padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0;color:inherit}
.brand img{height:48px;width:auto}
.brand span{display:flex;flex-direction:column;line-height:1.1}
.brand b{font-weight:600;font-size:18px;letter-spacing:-0.01em;color:var(--text-heading)}
.brand i{font-style:normal;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-muted)}
.brand:hover b{color:var(--text-heading)}
.site-nav{display:flex;flex-wrap:wrap;min-width:0;gap:6px clamp(12px,1.8vw,26px);flex:1 1 auto;font-weight:500;font-size:14.5px}
.site-nav a{color:var(--text-body);padding-bottom:2px;border-bottom:2px solid transparent;white-space:nowrap}
.site-nav a:hover{color:var(--text-heading)}
.site-nav a[aria-current="page"]{color:var(--text-heading);border-bottom-color:var(--ember-500)}
.header-cta{flex-shrink:0;margin-left:auto}
.menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin-left:auto;border:1px solid var(--border-default);background:var(--surface-card);border-radius:var(--radius-sm);width:40px;height:40px;cursor:pointer;padding:0}
.menu-toggle span{display:block;width:18px;height:1.5px;background:var(--forest-800);margin:0;transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-base)}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-nav{display:none;border-top:1px solid var(--border-subtle);background:var(--surface-card);padding:14px var(--gutter) 20px}
.mobile-nav[data-open="true"]{display:flex;flex-direction:column;gap:2px}
.mobile-nav a{font-weight:500;font-size:16px;color:var(--text-heading);padding:11px 0;border-bottom:1px solid var(--border-subtle)}
.mobile-nav .btn{margin-top:14px;width:100%}
@media (max-width:900px){
  .site-nav,.header-cta{display:none}
  .menu-toggle{display:flex}
}

/* Footer */
.site-footer{background:var(--forest-900);color:var(--tan-300);font-size:13.5px}
.site-footer .container{padding-top:clamp(34px,4.5vw,56px);padding-bottom:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(24px,4vw,48px)}
.site-footer img{height:42px;width:auto;margin-bottom:14px}
.site-footer .footer-about{font-size:13px;line-height:1.7}
.site-footer h4{font-size:12.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--cream-50);margin-bottom:14px;font-weight:600}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.site-footer a{color:var(--tan-300)}
.site-footer a:hover{color:var(--cream-50)}
.footer-bottom{border-top:1px solid var(--forest-700);padding:18px var(--gutter);text-align:center;font-size:12px;color:var(--tan-300)}

/* Reveal on scroll (subtle, motion-safe) */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(10px);transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out)}
  .reveal.is-visible{opacity:1;transform:none}
}

/* Anchored targets clear the sticky header */
section[id],div[id],article[id]{scroll-margin-top:96px}
