:root { --radius:18px; --bone:#F4F1EA; --bone-deep:#EAE4D6; --sage:#DCE3D0; --sage-deep:#5E6F52; --brown:#2A211C; --amber:#D2600F; --bone-on-brown:#F4F1EA; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { animation: none !important; transition: none !important; } }
body { margin:0; background:var(--bone); color:var(--brown); font-family:'Archivo',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color: inherit; }
:focus-visible { outline:2px solid var(--amber); outline-offset:3px; }
h1,h2,h3 { margin:0; }

.wrap { max-width:1240px; margin:0 auto; padding:0 48px; }

/* nav */
header.nav { position:sticky; top:0; z-index:10; background:var(--bone); border-bottom:1px solid rgba(42,33,28,0.12); }
.nav-inner { max-width:1240px; margin:0 auto; padding:20px 48px; display:flex; justify-content:space-between; align-items:center; }
.wordmark { font-size:22px; font-weight:700; letter-spacing:-0.02em; text-decoration:none; }
.wordmark .k { color:var(--amber); }
.nav-links { display:flex; align-items:center; list-style:none; margin:0; padding:0; font-size:15px; }
.nav-links li + li { margin-left:32px; }
.nav-links a { text-decoration:none; opacity:0.85; }
.nav-links a:hover, .nav-links a.current { opacity:1; }
.nav-links a.current { font-weight:600; }
.nav-links a.nav-cta { border-radius:999px; opacity:1; border:1.5px solid var(--amber); color:var(--amber); padding:8px 16px; font-weight:600; }
.nav-links a.nav-cta:hover { background:var(--amber); color:var(--bone); }
.menu-toggle { display:none; background:none; border:none; padding:8px; margin:-8px -8px -8px 12px; color:var(--brown); cursor:pointer; }

/* buttons */
.cta-button { border-radius:999px; display:inline-block; background:transparent; color:var(--amber); border:2px solid var(--amber); padding:16px 30px; font-family:'Archivo',sans-serif; font-size:17px; font-weight:600; text-decoration:none; letter-spacing:-0.01em; transition:background .15s ease,color .15s ease; }
.cta-button:hover { background:var(--amber); color:var(--bone); }

/* page header */
.page-head { padding:88px 0 72px; }
.head-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:end; }
.page-head h1 { font-size:clamp(36px,4.6vw,62px); font-weight:800; letter-spacing:-0.025em; line-height:1.08; }
.page-head .intro { font-size:21px; line-height:1.6; margin:0; color:var(--brown); }
.amber-word { color:var(--amber); }

.band { padding:88px 0; }
.band.deep { background:var(--bone-deep); }
.band.dark { background:var(--brown); color:var(--bone-on-brown); }
.eyebrow { font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:rgba(42,33,28,0.55); margin:0 0 16px; }
.band.dark .eyebrow { color:rgba(244,241,234,0.6); }
h2.big { font-size:clamp(28px,3.4vw,44px); font-weight:800; letter-spacing:-0.02em; line-height:1.12; }

/* pillars (the work) */
.pillar-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pillar-card { border-radius:var(--radius); background:var(--bone); border-top:4px solid var(--sage-deep); padding:32px 28px; }
.pillar-card h3 { font-size:22px; font-weight:700; letter-spacing:-0.01em; line-height:1.25; margin:0 0 10px; }
.pillar-card p { font-size:17px; margin:0; color:rgba(42,33,28,0.82); }

/* programs */
.program { padding:80px 0; border-top:1px solid rgba(42,33,28,0.12); }
.program.alt { background:var(--bone-deep); border-top:none; }
.program-grid { display:grid; grid-template-columns:0.8fr 1.2fr 1fr; gap:56px; align-items:start; }
.program .tag { font-size:13px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--sage-deep); margin:0 0 12px; }
.program h2 { font-size:clamp(28px,3vw,40px); font-weight:800; letter-spacing:-0.02em; line-height:1.12; margin:0 0 28px; }
.program h3 { font-size:14px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:rgba(42,33,28,0.6); margin:0 0 8px; }
.program p { font-size:18px; margin:0 0 28px; }
.program ul { margin:0 0 28px; padding-left:20px; font-size:18px; }
.program li { margin-bottom:10px; }
.program .col > :last-child { margin-bottom:0; }
.program .ai-note { border-left:3px solid var(--sage-deep); padding-left:20px; }
.program.alt .ai-note { border-left-color:var(--brown); }

/* split layouts */
.split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.split.photo { grid-template-columns:0.8fr 1.2fr; align-items:center; }
.portrait { margin:0; }
.portrait img { border-radius:var(--radius); width:100%; height:auto; display:block; aspect-ratio:1/1; object-fit:cover; }
.lead { font-size:clamp(24px,2.6vw,34px); font-weight:700; line-height:1.3; letter-spacing:-0.015em; margin:0 0 24px; }
.body-copy p { font-size:21px; line-height:1.6; margin:0 0 20px; }
.body-copy p:last-child { margin-bottom:0; }

/* cards */
.card-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.demo-card { border-radius:var(--radius); display:block; background:var(--bone); padding:36px 32px; text-decoration:none; border:2px solid transparent; transition:border-color .15s ease; }
.demo-card:hover { border-color:var(--amber); }
.demo-card .n { font-size:14px; font-weight:700; letter-spacing:0.08em; color:rgba(42,33,28,0.55); margin:0 0 12px; }
.demo-card h3 { font-size:26px; font-weight:700; letter-spacing:-0.01em; margin:0 0 10px; }
.demo-card p { font-size:17px; margin:0 0 16px; color:rgba(42,33,28,0.82); }
.demo-card .go { font-weight:700; color:var(--amber); }
.after-note { font-size:17px; margin:28px 0 0; }

/* faq */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 64px; }
.faq-item { padding:32px 0; border-top:1px solid rgba(42,33,28,0.15); }
.faq-item h2 { font-size:22px; font-weight:700; letter-spacing:-0.01em; line-height:1.3; margin:0 0 12px; }
.faq-item p { font-size:18px; margin:0; color:rgba(42,33,28,0.85); }

/* diagnostic */
.diag-grid { display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start; }
.diag-grid p { font-size:20px; margin:0 0 20px; }
.diag-embed { border-radius:var(--radius); background:var(--bone-deep); padding:24px; min-height:520px; }
.dims { list-style:none; padding:0; margin:28px 0 0; display:flex; flex-wrap:wrap; gap:10px; }
.dims li { border-radius:999px; background:var(--sage); padding:8px 14px; font-size:15px; font-weight:600; }

/* contact form */
.field { margin-bottom:24px; }
label { display:block; font-size:13.5px; font-weight:700; letter-spacing:0.02em; text-transform:uppercase; color:rgba(42,33,28,0.6); margin-bottom:10px; }
.optional { font-weight:400; text-transform:none; opacity:0.75; }
input, textarea { width:100%; font-family:'Archivo',sans-serif; font-size:17px; color:var(--brown); background:rgba(255,255,255,0.55); border:1.5px solid rgba(42,33,28,0.15); border-radius:10px; padding:15px 18px; transition:border-color .15s ease, box-shadow .15s ease, background .15s ease; }
input:hover, textarea:hover { border-color:rgba(42,33,28,0.3); }
input:focus, textarea:focus { outline:none; border-color:var(--amber); background:#fff; box-shadow:0 0 0 4px rgba(210,96,15,0.12); }
textarea { resize:vertical; min-height:130px; }
.honeypot-field { position:absolute; left:-9999px; }
.submit-button { display:inline-block; background:transparent; color:var(--amber); border:2px solid var(--amber); border-radius:999px; padding:16px 34px; font-family:'Archivo',sans-serif; font-size:17px; font-weight:700; cursor:pointer; letter-spacing:-0.01em; transition:background .15s ease,color .15s ease,transform .1s ease; }
.submit-button:hover { background:var(--amber); color:var(--bone); transform:translateY(-1px); }
.note { font-size:16px; color:rgba(42,33,28,0.6); margin:24px 0 0; max-width:460px; }

/* close */
.close-band { background:var(--brown); color:var(--bone-on-brown); padding:80px 0; }
.close-flex { display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; }
.close-flex p { font-size:clamp(22px,2.4vw,32px); font-weight:700; letter-spacing:-0.01em; line-height:1.3; margin:0; max-width:640px; }
.close-band .cta-button { color:var(--bone); border-color:var(--amber); }
.close-band .cta-button:hover { background:var(--amber); }

/* footer */
footer { border-top:1px solid rgba(42,33,28,0.12); padding:40px 0; }
.footer-inner { max-width:1240px; margin:0 auto; padding:0 48px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.footer-inner .wordmark { font-size:17px; }
.footer-links { display:flex; flex-wrap:wrap; list-style:none; margin:0; padding:0; font-size:14px; gap:24px; }
.footer-links a { text-decoration:none; opacity:0.7; }
.footer-links a:hover { opacity:1; }

@media (max-width: 900px) {
  .wrap, .nav-inner, .footer-inner { padding-left:24px; padding-right:24px; }
  .page-head { padding:56px 0 40px; }
  .head-grid, .split, .split.photo, .card-row, .faq-grid, .diag-grid, .pillar-row, .program-grid { grid-template-columns:1fr; gap:32px; }
  .band, .program { padding:56px 0; }
  .portrait { max-width:280px; }
  .page-head .intro, .body-copy p { font-size:19px; }
  .menu-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; background:var(--bone); padding:8px 24px 20px; margin:0; border-bottom:1px solid rgba(42,33,28,0.12); }
  .nav-links.open { display:flex; }
  .nav-links li + li { margin-left:0; margin-top:2px; }
  .nav-links a { display:block; padding:14px 0; font-size:17px; opacity:0.9; }
  .nav-links a.nav-cta { display:inline-block; margin-top:8px; padding:12px 18px; }
}
