:root{
  --bg:oklch(97% 0.012 85);
  --bg-alt:oklch(94% 0.014 85);
  --ink:oklch(24% 0.03 260);
  --ink-soft:oklch(42% 0.03 260);
  --ink-faint:oklch(58% 0.02 260);
  --line:oklch(87% 0.012 85);
  --navy-deep:oklch(20% 0.045 262);
  --cream:oklch(96% 0.012 85);
  --sage:oklch(80% 0.045 195);
  --sage-deep:oklch(46% 0.05 195);
  --accent:#a8763e;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Work Sans",system-ui,sans-serif;overflow-x:hidden;}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:500;margin:0;letter-spacing:-0.01em;}
p{margin:0;line-height:1.65;}
a{color:var(--ink);text-decoration:none;}
a:hover{color:var(--accent);}
img{max-width:100%;}
.eyebrow{font-family:"Work Sans",sans-serif;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-faint);}
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--navy-deep);color:var(--cream);font-family:"Work Sans",sans-serif;font-size:15px;font-weight:500;padding:14px 28px;border-radius:2px;white-space:nowrap;transition:background .25s ease,transform .25s ease;}
.btn-primary:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px);}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--ink);font-family:"Work Sans",sans-serif;font-size:14px;font-weight:500;padding:12px 22px;border:1px solid var(--line);border-radius:2px;white-space:nowrap;transition:border-color .25s ease,color .25s ease,transform .25s ease;}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}
.container{max-width:1120px;margin:0 auto;padding:0 48px;}
.divider{width:40px;height:2px;background:var(--accent);}

/* nav underline */
.nav-link{position:relative;font-size:14px;color:var(--ink-soft);padding-bottom:3px;transition:color .2s ease;}
.nav-link::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .25s ease;}
.nav-link:hover{color:var(--ink);}
.nav-link:hover::after{width:100%;}
.nav-link.is-active{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:2px;}

/* sticky header */
#site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px 48px;border-bottom:1px solid transparent;background:var(--bg);transition:padding .3s ease,box-shadow .3s ease,border-color .3s ease;}
#site-header.is-scrolled{padding:14px 48px;box-shadow:0 1px 0 var(--line),0 12px 24px -18px rgba(20,25,50,0.35);border-bottom-color:var(--line);}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-1{transition-delay:.05s;}
.reveal-2{transition-delay:.16s;}
.reveal-3{transition-delay:.27s;}

/* hover lift cards */
.lift{transition:transform .35s ease,box-shadow .35s ease;}
.lift:hover{transform:translateY(-6px);box-shadow:0 22px 40px -26px rgba(20,25,50,0.35);}

/* hero orbit motion */
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@keyframes spinReverse{from{transform:rotate(360deg);}to{transform:rotate(0deg);}}
@keyframes pulse{0%,100%{opacity:.55;r:70;}50%{opacity:.9;r:76;}}
@keyframes corePulse{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}
.orbit-outer{animation:spin 54s linear infinite;transform-origin:100px 100px;}
.orbit-inner{animation:spinReverse 34s linear infinite;transform-origin:100px 100px;}
.orbit-mid{animation:pulse 5s ease-in-out infinite;transform-origin:100px 100px;}
.orbit-core{animation:corePulse 3.2s ease-in-out infinite;transform-origin:100px 100px;}

/* testimonial dots */
.dot{width:8px;height:8px;border-radius:50%;border:none;cursor:pointer;transition:transform .25s ease,opacity .25s ease;padding:0;background:var(--line);opacity:0.7;}
.dot:hover{transform:scale(1.25);}
.dot.is-active{background:var(--accent);opacity:1;}

@media (prefers-reduced-motion: reduce){
  .orbit-outer,.orbit-inner,.orbit-mid,.orbit-core{animation:none;}
  .reveal{transition:none;opacity:1;transform:none;}
}

@media (max-width:900px){
  #site-header{padding:18px 24px;flex-wrap:wrap;gap:14px;}
  #site-header nav{gap:18px;flex-wrap:wrap;}
  .container{padding:0 24px;}
  section[style*="grid-template-columns:1.1fr"] .container,
  section[style*="grid-template-columns:0.85fr"] .container{grid-template-columns:1fr !important;gap:40px !important;}
}
