:root{
  --paper:#f8f2e5; --paper-2:#f0e8d5; --surface:#fffcf5;
  --ink:#15120d; --ink-soft:#39352c; --muted:#6b6455;
  --forest:#123528; --forest-700:#0d2a20; --forest-500:#1e4a3a;
  --amber:#d98a3c; --amber-deep:#a85f22; --amber-deep-text:#8a4d1c; --amber-soft:#e9b374; --amber-pale:#f3d5a8;
  --line:rgba(21,18,13,.13); --line-strong:rgba(21,18,13,.22); --line-onink:rgba(248,242,229,.16);
  --serif:"Fraunces",Georgia,serif; --sans:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1200px; --gutter:clamp(1.25rem,5vw,4rem); --section-y:clamp(4rem,8vw,7.5rem);
  --radius:18px; --ease:cubic-bezier(.19,1,.22,1); --ease2:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}
body{ font-family:var(--sans); color:var(--ink); background:var(--paper); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; position:relative; }
body::after{
  content:""; position:fixed; inset:0; z-index:400; pointer-events:none; opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;padding:0;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
::selection{ background:var(--amber); color:var(--ink); }

.skip-link{ position:absolute; left:-9999px; top:0; z-index:1000; background:var(--ink); color:var(--paper); padding:.8rem 1.4rem; border-radius:0 0 10px 0; font-weight:700; font-size:.9rem; }
.skip-link:focus{ left:0; outline:2px solid var(--amber); outline-offset:-2px; }

.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; }

.draft-tag{ display:inline-flex; align-items:center; gap:.4rem; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber-deep-text); border:1px solid var(--amber-soft); background:var(--amber-pale); padding:.28rem .65rem; border-radius:100px; }
.draft-banner{ display:flex; gap:.7rem; align-items:flex-start; background:var(--amber-pale); border:1px solid var(--amber-soft); border-radius:14px; padding:1rem 1.2rem; margin-bottom:2rem; font-size:.88rem; color:var(--ink-soft); max-width:70ch; }
.draft-banner b{ color:var(--amber-deep-text); }

/* ---------- type ---------- */
.eyebrow{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--forest-500); margin-bottom:1.1rem; display:inline-flex; align-items:center; gap:.6rem; }
.eyebrow--amber{ color:var(--amber-deep-text); }
.eyebrow--onink{ color:var(--amber-soft); }
.section-title{ font-family:var(--serif); font-weight:460; font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.04; letter-spacing:-.02em; color:var(--ink); text-wrap:balance; }
.section-title em{ font-style:italic; color:var(--amber-deep); font-weight:460; }
.section-title--onink{ color:var(--paper); }
.section-title--onink em{ color:var(--amber-soft); }
.section-sub{ margin-top:1.3rem; max-width:60ch; font-size:1.08rem; color:var(--muted); }
.section-head{ max-width:760px; margin-bottom:clamp(2.4rem,5vw,4rem); }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--sans); font-weight:600; font-size:.95rem; padding:.9rem 1.6rem; border-radius:100px; background:var(--ink); color:var(--paper); border:1px solid var(--ink); transition:transform .45s var(--ease), background .3s var(--ease2), box-shadow .45s var(--ease); }
.btn:hover{ transform:translateY(-3px); box-shadow:0 18px 34px -16px rgba(21,18,13,.45); }
.btn:focus-visible{ outline:2px solid var(--amber); outline-offset:3px; }
.btn--lg{ padding:1.05rem 2rem; font-size:1.02rem; }
.btn--sm{ padding:.62rem 1.2rem; font-size:.85rem; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); }
.btn--onink{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.btn--onink.btn--ghost{ background:transparent; color:var(--paper); border-color:var(--line-onink); }
.btn--onink.btn--ghost:hover{ background:var(--paper); color:var(--ink); }

/* ---------- nav ---------- */
.nav{ position:sticky; top:0; z-index:200; background:color-mix(in srgb, var(--paper) 86%, transparent); backdrop-filter:blur(16px) saturate(1.3); -webkit-backdrop-filter:blur(16px) saturate(1.3); border-bottom:1px solid var(--line); }
.nav__inner{ display:flex; align-items:center; justify-content:space-between; min-height:72px; }
.brand{ display:inline-flex; align-items:center; gap:.65rem; color:var(--ink); }
.brand__mark{ width:34px; height:34px; border-radius:9px; background:var(--ink); display:grid; place-items:center; color:var(--amber-soft); flex:none; }
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--serif); font-weight:600; font-size:1.24rem; color:var(--ink); }
.brand__sub{ font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); margin-top:.26rem; }
.nav__links{ display:flex; align-items:center; gap:1.5rem; }
.nav__links a.navlink{ font-size:.88rem; color:var(--ink-soft); font-weight:500; position:relative; padding:.3rem 0; white-space:nowrap; }
.nav__links a.navlink::after{ content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:0; background:var(--amber); transition:width .35s var(--ease); }
.nav__links a.navlink:hover::after, .nav__links a.navlink[aria-current="page"]::after{ width:100%; }
.nav__links a.navlink[aria-current="page"]{ color:var(--ink); font-weight:700; }
.nav__toggle{ display:none; flex-direction:column; gap:5px; padding:8px; }
.nav__toggle span{ width:22px; height:2px; background:var(--ink); border-radius:2px; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; padding:clamp(2.6rem,6vw,4.5rem) 0 clamp(4rem,7vw,6rem); overflow:hidden; }
.hero__grid{ display:grid; grid-template-columns:1.15fr .95fr; gap:clamp(2rem,5vw,3rem); align-items:start; }
.hero__title{ font-family:var(--serif); font-weight:420; font-size:clamp(2.6rem,5.6vw,4.6rem); line-height:1.01; letter-spacing:-.025em; color:var(--ink); text-wrap:balance; }
.hero__title span{ display:block; }
.hero__title span:nth-child(2){ font-style:italic; color:var(--amber-deep); font-weight:420; }
.hero__lede{ margin-top:1.7rem; max-width:52ch; font-size:clamp(1.02rem,1.4vw,1.16rem); color:var(--ink-soft); }
.hero__cta{ margin-top:2.1rem; display:flex; flex-wrap:wrap; gap:.9rem; }
.hero__meta{ margin-top:clamp(2.4rem,5vw,3.4rem); display:flex; flex-wrap:wrap; gap:1.6rem 2.4rem; padding-top:1.8rem; border-top:1px solid var(--line); }
.hero__meta>div{ display:flex; flex-direction:column; gap:.3rem; }
.hero__num{ font-family:var(--serif); font-size:1.7rem; font-weight:500; color:var(--ink); line-height:1; }
.hero__lbl{ font-size:.76rem; color:var(--muted); max-width:17ch; }

/* seat grid hero art: a team of nine, one seat open, waiting */
.hero__art{ width:100%; max-width:420px; margin:1.2rem auto 0; position:relative; }
.hero__art::before{
  content:""; position:absolute; inset:-14%; z-index:-1; border-radius:50%;
  background:radial-gradient(circle at 55% 45%, rgba(217,138,60,.16), rgba(217,138,60,.05) 45%, transparent 70%);
}
.seatgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.seat{ aspect-ratio:1; border-radius:20px; position:relative; }
.seat--filled{
  background:linear-gradient(160deg,var(--forest-500) 0%,var(--forest-700) 78%);
  box-shadow:
    0 18px 30px -16px rgba(21,18,13,.45),
    inset 0 -10px 16px -8px rgba(0,0,0,.4),
    inset 0 1.5px 0 rgba(255,255,255,.14);
}
.seat--filled::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:radial-gradient(circle at 28% 24%, rgba(255,255,255,.24), transparent 58%);
  pointer-events:none;
}
.seat:nth-child(1){ transform:rotate(-1.6deg) translateY(2px); }
.seat:nth-child(3){ transform:rotate(1.6deg) translateY(-2px); }
.seat:nth-child(4){ transform:rotate(1deg); }
.seat:nth-child(7){ transform:rotate(-1.2deg) translateY(2px); }
.seat:nth-child(9){ transform:rotate(1.3deg); }
.seat--empty{ display:grid; place-items:center; background:radial-gradient(circle at 50% 45%, rgba(217,138,60,.09), transparent 70%); }
.seat--empty svg{ position:absolute; inset:0; width:100%; height:100%; }
.seat__cursor{ width:3px; height:30%; background:var(--amber-deep); border-radius:3px; box-shadow:0 0 10px rgba(168,95,34,.45); animation:cursorblink 1.05s steps(1,end) infinite; }
@media (prefers-reduced-motion:reduce){ .seat__cursor{ animation:none; opacity:1; } }
@keyframes cursorblink{ 0%,49%{opacity:1;} 50%,100%{opacity:0;} }

/* floating diagnostic pill. Anchored bottom-center on narrow screens
   (no room to dodge the single reading column), bottom-right on wide
   screens so it sits in the margin instead of over article/card text */
.float-pill{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(14px); z-index:250; width:min(560px, calc(100vw - 2.4rem)); opacity:0; pointer-events:none; transition:opacity .5s var(--ease2), transform .5s var(--ease2); }
.float-pill.is-visible{ opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.float-pill.is-near-label{ opacity:.14; pointer-events:none; }
@media (min-width:900px){
  .float-pill{ left:auto; right:28px; bottom:28px; width:min(380px, 30vw); transform:translateY(14px); }
  .float-pill.is-visible{ transform:translateY(0); }
}
.float-pill form{ display:flex; align-items:center; gap:.5rem; background:var(--surface); border:1px solid var(--line-strong); border-radius:100px; padding:.5rem .5rem .5rem 1.3rem; box-shadow:0 20px 44px -18px rgba(21,18,13,.35), 0 2px 8px rgba(21,18,13,.06); }
.float-pill input{ flex:1; min-width:0; border:0; background:transparent; font-family:var(--sans); font-size:.94rem; color:var(--ink); }
.float-pill input:focus{ outline:none; box-shadow:0 0 0 2px var(--amber) inset; border-radius:4px; }
.float-pill input::placeholder{ color:var(--muted); }
.float-pill button{ flex:none; width:38px; height:38px; border-radius:50%; background:var(--ink); color:var(--paper); display:grid; place-items:center; transition:transform .3s var(--ease2); }
.float-pill button:hover{ transform:scale(1.08); }

/* =========================================================
   PAIN
   ========================================================= */
.pain{ padding:var(--section-y) 0; }
.pain__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.pain__card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem 1.6rem 1.5rem; position:relative; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; }
.pain__card:hover{ transform:translateY(-6px); box-shadow:0 26px 46px -28px rgba(21,18,13,.4); border-color:var(--amber-soft); }
.pain__no{ font-family:var(--serif); font-size:.85rem; color:var(--amber-deep-text); font-weight:600; margin-bottom:.9rem; display:block; }
.pain__card p{ font-family:var(--serif); font-size:1.2rem; font-style:italic; color:var(--ink); line-height:1.32; }
.pain__foot{ margin-top:2.2rem; font-size:1.08rem; color:var(--muted); }
.pain__foot button{ color:var(--ink); font-weight:700; border-bottom:1.5px solid var(--amber); padding-bottom:1px; }

/* =========================================================
   APPROACH (dark)
   ========================================================= */
.approach{ background:var(--forest); color:var(--paper-2); padding:var(--section-y) 0; position:relative; }
.approach::before{ content:""; position:absolute; inset:0; opacity:.55; background:radial-gradient(circle at 88% 6%, rgba(217,138,60,.18), transparent 46%); pointer-events:none; }
.approach__inner{ position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2.2rem,5vw,5rem); align-items:start; }
.approach__body{ margin-top:1.3rem; color:color-mix(in srgb, var(--paper) 80%, transparent); font-size:1.02rem; max-width:48ch; }
.approach__body+.approach__body{ margin-top:1rem; }
.approach__steps{ display:flex; flex-direction:column; gap:1.4rem; }
.approach__steps li{ display:flex; gap:1.2rem; padding-bottom:1.4rem; border-bottom:1px solid var(--line-onink); }
.approach__steps li:last-child{ border-bottom:0; }
.approach__step-no{ font-family:var(--serif); font-size:1.1rem; color:var(--amber-soft); min-width:2ch; }
.approach__steps h3{ font-family:var(--serif); font-weight:500; font-size:1.4rem; color:var(--paper); margin-bottom:.3rem; }
.approach__steps p{ color:color-mix(in srgb, var(--paper) 74%, transparent); font-size:.96rem; }

/* =========================================================
   5D METHOD strip
   ========================================================= */
.framework{ padding:var(--section-y) 0; }
.fw{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.fw__item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem 1.3rem; position:relative; overflow:hidden; transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.fw__item::after{ content:""; position:absolute; left:0; top:0; height:3px; width:100%; background:linear-gradient(90deg,var(--amber),var(--amber-soft)); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.fw__item:hover{ transform:translateY(-6px); box-shadow:0 26px 46px -28px rgba(21,18,13,.4); }
.fw__item:hover::after{ transform:scaleX(1); }
.fw__d{ font-family:var(--serif); font-size:2.1rem; font-weight:500; color:var(--ink); line-height:.9; }
.fw__d sup{ font-size:.85rem; color:var(--amber-deep); font-weight:600; }
.fw__item h3{ font-family:var(--serif); font-weight:500; font-size:1.25rem; color:var(--ink); margin:.7rem 0 .5rem; }
.fw__item p{ font-size:.88rem; color:var(--muted); }
.fw__more{ text-align:center; margin-top:2rem; }

/* =========================================================
   COMPARE
   ========================================================= */
.compare{ padding:var(--section-y) 0; background:var(--paper-2); }
.compare__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.compare__col{ border:1px solid var(--line); border-radius:14px; padding:1.6rem 1.5rem; background:var(--surface); display:flex; flex-direction:column; gap:1rem; transition:transform .5s var(--ease); }
.compare__col:hover{ transform:translateY(-4px); }
.compare__col.is-you{ border-color:var(--amber-soft); background:linear-gradient(160deg, rgba(217,138,60,.09), var(--surface)); }
.compare__col h3{ font-family:var(--serif); font-size:1.25rem; color:var(--ink); font-weight:500; }
.compare__col.is-you h3{ color:var(--amber-deep); }
.compare__row span{ display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.3rem; font-weight:700; }
.compare__row p{ font-size:.92rem; color:var(--ink-soft); }
.compare__enemy{ margin-top:2rem; padding:1.4rem 1.6rem; border:1px dashed var(--line-strong); border-radius:12px; }
.compare__enemy p.tag{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-deep-text); font-weight:700; margin-bottom:.5rem; }
.compare__enemy h4{ font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--ink); margin-bottom:.4rem; }
.compare__enemy p{ font-size:.92rem; color:var(--muted); max-width:64ch; }

/* =========================================================
   INSIGHTS TEASER
   ========================================================= */
.teaser{ padding:var(--section-y) 0; }
.teaser__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; margin-bottom:2rem; flex-wrap:wrap; }
.teaser__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.teaser__grid--2col{ grid-template-columns:repeat(2,1fr); }
.tcard{ display:block; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem 1.4rem; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; text-align:left; width:100%; }
.tcard:hover{ transform:translateY(-6px); box-shadow:0 26px 46px -28px rgba(21,18,13,.4); border-color:var(--amber-soft); }
.tcard__tag{ display:inline-block; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--amber-deep-text); font-weight:700; margin-bottom:.8rem; }
.tcard h3{ font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--ink); line-height:1.35; font-weight:500; }
.tcard__read{ margin-top:1rem; font-size:.82rem; color:var(--muted); font-weight:700; }

/* =========================================================
   SERVICES
   ========================================================= */
.services{ padding:var(--section-y) 0; background:var(--paper-2); }
.services__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.svc{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.9rem; display:flex; flex-direction:column; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; }
.svc:hover{ transform:translateY(-6px); box-shadow:0 28px 50px -32px rgba(21,18,13,.4); border-color:var(--amber-soft); }
.svc__no{ font-family:var(--serif); font-size:.92rem; color:var(--amber-deep-text); letter-spacing:.08em; margin-bottom:.9rem; }
.svc h3{ font-family:var(--serif); font-weight:500; font-size:1.5rem; color:var(--ink); margin-bottom:.55rem; }
.svc__desc{ color:var(--ink-soft); font-size:.96rem; margin-bottom:1.3rem; }
.svc__list{ display:flex; flex-direction:column; gap:.6rem; margin-top:auto; }
.svc__list li{ position:relative; padding-left:1.4rem; font-size:.92rem; color:var(--muted); }
.svc__list li::before{ content:""; position:absolute; left:0; top:.58em; width:7px; height:7px; border:1.5px solid var(--amber); border-radius:50%; }

/* =========================================================
   WHY (dark)
   ========================================================= */
.why{ background:var(--forest-700); color:var(--paper-2); padding:var(--section-y) 0; }
.why__inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.2rem,5vw,5rem); align-items:start; }
.why__lead p{ margin-top:1.3rem; color:color-mix(in srgb, var(--paper) 78%, transparent); font-size:1.02rem; max-width:44ch; }
.why__points{ display:grid; grid-template-columns:1fr 1fr; gap:1.8rem 1.6rem; }
.why__points li{ border-top:1px solid var(--line-onink); padding-top:1.1rem; }
.why__points h3{ font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--amber-soft); margin-bottom:.45rem; }
.why__points p{ font-size:.92rem; color:color-mix(in srgb, var(--paper) 74%, transparent); }

/* =========================================================
   ABOUT TEASER (home)
   ========================================================= */
.about-teaser{ padding:var(--section-y) 0; }
.about-teaser__inner{ display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(2.2rem,5vw,4.6rem); align-items:center; }
.portrait{ aspect-ratio:4/5; border-radius:22px; background:linear-gradient(150deg,var(--forest-500),var(--forest-700)); display:grid; place-items:center; border:1px solid var(--line); box-shadow:0 30px 60px -40px rgba(21,18,13,.5); }
.portrait span{ font-family:var(--serif); font-size:clamp(3rem,6vw,4.4rem); color:var(--amber-soft); font-weight:500; letter-spacing:.05em; }
.about-teaser__body p{ margin-top:1rem; color:var(--ink-soft); font-size:1.05rem; max-width:56ch; }
.about-teaser__cta{ margin-top:1.6rem; display:flex; flex-wrap:wrap; gap:1rem; }

/* =========================================================
   WORK / ENGAGE
   ========================================================= */
.work{ padding:var(--section-y) 0; background:var(--paper-2); }
.work__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.work__card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem 1.7rem; transition:transform .5s var(--ease); }
.work__card:hover{ transform:translateY(-4px); }
.work__card h3{ font-family:var(--serif); font-weight:500; font-size:1.24rem; color:var(--ink); margin-bottom:.6rem; }
.work__card p{ color:var(--muted); font-size:.94rem; }
.engage{ margin-top:2.4rem; background:var(--ink); color:var(--paper); border-radius:22px; padding:clamp(2rem,4vw,3.2rem); }
.engage__title{ font-family:var(--serif); font-weight:500; font-size:clamp(1.4rem,2.4vw,1.85rem); margin-bottom:1.8rem; }
.engage__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.engage__col{ border-top:2px solid var(--amber); padding-top:1rem; }
.engage__tag{ display:block; font-family:var(--serif); font-size:1.12rem; color:var(--amber-soft); margin-bottom:.55rem; }
.engage__col p{ color:color-mix(in srgb, var(--paper) 76%, transparent); font-size:.94rem; }

/* =========================================================
   CONTACT (dark)
   ========================================================= */
.contact{ background:var(--forest-700); color:var(--paper); padding:var(--section-y) 0; }
.contact__inner{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2.2rem,5vw,4.6rem); align-items:start; }
.contact__lead>p{ margin-top:1.3rem; color:color-mix(in srgb, var(--paper) 80%, transparent); font-size:1.04rem; max-width:44ch; }
.contact__direct{ margin-top:2rem; display:flex; flex-direction:column; gap:.9rem; }
.contact__direct li{ display:flex; gap:1rem; align-items:baseline; border-bottom:1px solid var(--line-onink); padding-bottom:.9rem; }
.contact__direct span{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--amber-soft); min-width:84px; }
.contact__form{ background:var(--surface); border-radius:20px; padding:clamp(1.7rem,3vw,2.4rem); color:var(--ink); box-shadow:0 40px 80px -50px rgba(0,0,0,.6); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:.8rem; font-weight:700; color:var(--ink); margin-bottom:.4rem; }
.field input,.field textarea{ width:100%; font-family:var(--sans); font-size:.98rem; padding:.8rem .95rem; border:1px solid var(--line); border-radius:11px; background:var(--paper); resize:vertical; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--forest-500); box-shadow:0 0 0 3px rgba(30,74,58,.16); }
.field textarea{ min-height:100px; }
.field--hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.form__note{ margin-top:.9rem; font-size:.84rem; color:var(--muted); text-align:center; }
.form__note--error{ color:var(--amber-deep); font-weight:600; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--ink); color:color-mix(in srgb, var(--paper) 65%, transparent); padding:clamp(2.6rem,5vw,3.6rem) 0 6rem; }
.footer__inner{ display:flex; flex-wrap:wrap; gap:2rem; justify-content:space-between; padding-bottom:2rem; border-bottom:1px solid var(--line-onink); }
.footer__brand .brand__name{ color:var(--paper); font-size:1.4rem; }
.footer__word{ font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--amber-soft); }
.footer__tag{ margin-top:.7rem; max-width:32ch; font-size:.9rem; }
.footer__links{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.footer__links a:hover{ color:var(--paper); }
.footer__base{ display:flex; flex-wrap:wrap; gap:.5rem 2rem; justify-content:space-between; margin-top:1.3rem; font-size:.82rem; }

/* =========================================================
   INSIGHTS HUB
   ========================================================= */
.ihead{ padding:clamp(2.6rem,6vw,4.2rem) 0 clamp(1.6rem,4vw,2.4rem); }
.ihead h1{ font-family:var(--serif); font-weight:420; font-size:clamp(2.1rem,5vw,3.4rem); color:var(--ink); max-width:16ch; line-height:1.04; }
.ihead h1 em{ font-style:italic; color:var(--amber-deep); }
.ihead p{ margin-top:1.2rem; max-width:58ch; color:var(--ink-soft); font-size:1.05rem; }

.subscribe{ margin-top:1.6rem; margin-bottom:2.2rem; }
.subscribe__lede{ font-size:.95rem; font-weight:600; color:var(--ink); margin-bottom:.8rem; }
.subscribe form{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.subscribe input[type="email"]{ flex:1; min-width:220px; max-width:340px; font-family:var(--sans); font-size:.95rem; padding:.72rem .95rem; border:1px solid var(--line-strong); border-radius:100px; background:var(--surface); }
.subscribe input[type="email"]:focus{ outline:none; border-color:var(--forest-500); box-shadow:0 0 0 3px rgba(30,74,58,.16); }
.subscribe__note{ margin-top:.6rem; font-size:.84rem; color:var(--muted); }
.subscribe__note--error{ color:var(--amber-deep-text); font-weight:600; }

.filters__intro{ font-size:.86rem; color:var(--muted); margin-top:1.8rem; }
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; padding:.8rem 0 2.2rem; border-bottom:1px solid var(--line); margin-bottom:2.4rem; }
.filter{ padding:.55rem 1.1rem; border-radius:100px; border:1px solid var(--line-strong); font-size:.85rem; color:var(--ink-soft); font-weight:600; transition:all .3s var(--ease2); }
.filter:hover{ border-color:var(--amber); }
.filter[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.igrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; padding-bottom:clamp(3rem,6vw,5rem); }
.icard{ display:flex; flex-direction:column; text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.5rem; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; width:100%; }
.icard:hover{ transform:translateY(-6px); box-shadow:0 26px 46px -28px rgba(21,18,13,.4); border-color:var(--amber-soft); }
.icard__tag{ font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--amber-deep-text); font-weight:700; margin-bottom:.9rem; }
.icard__date{ font-size:.7rem; color:var(--muted); font-weight:600; margin-left:.6rem; }
.draft-banner__icon{ flex:none; color:var(--muted); }
.icard h2{ font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--ink); line-height:1.35; font-weight:500; margin-bottom:.7rem; }
.icard p{ font-size:.88rem; color:var(--muted); margin-top:auto; padding-top:.8rem; }
.icard.is-hidden{ display:none; }

/* =========================================================
   ARTICLE
   ========================================================= */
.article{ padding:clamp(2.4rem,5vw,3.8rem) 0 clamp(3rem,6vw,5rem); }
.article__wrap{ max-width:680px; margin-inline:auto; }
.article__back{ font-size:.86rem; color:var(--muted); font-weight:700; margin-bottom:2rem; display:inline-flex; align-items:center; gap:.4rem; }
.article__back:hover{ color:var(--ink); }
.article__meta-row{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-bottom:1rem; }
.article__tag{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber-deep-text); font-weight:700; }
.article__title{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(1.7rem,4vw,2.5rem); color:var(--ink); line-height:1.22; }
.article__dek{ margin-top:1.1rem; font-size:1.12rem; color:var(--ink-soft); }
.article__byline{ margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--line); font-size:.86rem; color:var(--muted); display:flex; gap:.6rem; align-items:center; }
.article__byline b{ color:var(--ink); }
.article__body{ margin-top:2.2rem; font-size:1.08rem; color:var(--ink-soft); }
.article__body p{ margin-bottom:1.3rem; }
.article__body p:first-of-type::first-letter{ font-family:var(--serif); font-size:3.4rem; float:left; line-height:.8; padding:.1rem .5rem 0 0; color:var(--ink); font-weight:500; }
.article__cta{ margin-top:2.6rem; padding:1.8rem 2rem; border-radius:16px; background:var(--ink); color:var(--paper); }
.article__cta p{ font-family:var(--serif); font-style:italic; font-size:1.1rem; margin-bottom:1rem; }
.article__more{ margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }
.article__more h4{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:1rem; }

/* =========================================================
   5D METHOD PAGE
   ========================================================= */
.mhead{ padding:clamp(2.8rem,6vw,4.4rem) 0 clamp(1.8rem,4vw,2.6rem); text-align:center; }
.mhead .eyebrow{ justify-content:center; display:flex; }
.mhead h1{ font-family:var(--serif); font-weight:420; font-size:clamp(2.2rem,5.5vw,3.6rem); color:var(--ink); max-width:20ch; margin-inline:auto; line-height:1.06; }
.mhead h1 em{ font-style:italic; color:var(--amber-deep); }
.mhead p{ margin-top:1.3rem; max-width:56ch; margin-inline:auto; color:var(--ink-soft); font-size:1.06rem; }

.mstages{ padding:clamp(1rem,3vw,2rem) 0 clamp(3rem,6vw,5rem); display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.mstage{ background:var(--surface); padding:clamp(1.6rem,4vw,2.6rem); display:grid; grid-template-columns:auto 1fr; gap:clamp(1.4rem,4vw,3rem); align-items:center; transition:background .4s; }
.mstage:hover{ background:var(--paper-2); }
.mstage__num{ font-family:var(--serif); font-size:clamp(2.6rem,6vw,4rem); font-weight:500; color:var(--ink); line-height:1; }
.mstage__num sup{ font-size:.4em; color:var(--amber-deep-text); }
.mstage h3{ font-family:var(--serif); font-weight:500; font-size:1.5rem; color:var(--ink); margin-bottom:.5rem; }
.mstage p{ color:var(--ink-soft); font-size:.98rem; max-width:60ch; }
.mstage__eg{ margin-top:.8rem; font-size:.86rem; color:var(--muted); font-style:italic; }

.close-cta{ background:var(--forest-700); color:var(--paper); padding:var(--section-y) 0; text-align:center; }
.close-cta h2{ font-family:var(--serif); font-weight:420; font-size:clamp(1.7rem,4vw,2.6rem); max-width:22ch; margin-inline:auto; line-height:1.16; }
.close-cta h2 em{ font-style:italic; color:var(--amber-soft); }
.close-cta .btns{ margin-top:2rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.ahead{ padding:clamp(2.8rem,6vw,4.4rem) 0 clamp(2rem,4vw,2.8rem); }
.ahead__inner{ display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.ahead h1{ font-family:var(--serif); font-weight:420; font-size:clamp(2.1rem,4.6vw,3.2rem); color:var(--ink); line-height:1.08; }
.ahead__role{ font-family:var(--serif); font-style:italic; color:var(--amber-deep-text); font-size:1.1rem; margin-top:.5rem; }
.ahead__badges{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.1rem; }
.ahead__badges span{ font-size:.76rem; padding:.38rem .8rem; border:1px solid var(--line); border-radius:100px; color:var(--muted); background:var(--surface); }

.aprose{ padding:0 0 var(--section-y); }
.aprose__inner{ max-width:680px; }
.aprose p{ font-size:1.08rem; color:var(--ink-soft); margin-bottom:1.3rem; }
.aprose p:first-of-type::first-letter{ font-family:var(--serif); font-size:3.2rem; float:left; line-height:.8; padding:.1rem .5rem 0 0; color:var(--ink); font-weight:500; }

/* =========================================================
   RECOMMENDATIONS
   ========================================================= */
.recs{ padding:var(--section-y) 0; }
.recs--home{ background:var(--paper-2); }
.recs__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.recs__grid--full{ grid-template-columns:repeat(2,1fr); }
.rec{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem 1.6rem; display:flex; flex-direction:column; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s; }
.rec:hover{ transform:translateY(-5px); box-shadow:0 24px 44px -30px rgba(21,18,13,.4); border-color:var(--amber-soft); }
.rec__mark{ font-family:var(--serif); font-size:2.4rem; color:var(--amber-soft); line-height:1; margin-bottom:.4rem; }
.rec p{ font-family:var(--serif); font-style:italic; font-size:1.08rem; color:var(--ink); line-height:1.45; flex:1; }
.rec__by{ margin-top:1.3rem; padding-top:1.1rem; border-top:1px solid var(--line); }
.rec__name{ font-family:var(--sans); font-weight:700; font-size:.94rem; color:var(--ink); }
.rec__title{ font-size:.84rem; color:var(--muted); margin-top:.15rem; }
.rec__rel{ font-size:.76rem; color:var(--amber-deep-text); font-style:italic; margin-top:.35rem; }
.recs__source{ margin-top:1.8rem; font-size:.8rem; color:var(--muted); text-align:center; }

.wont{ padding:0 0 var(--section-y); }
.wont__list{ display:flex; flex-direction:column; gap:0; max-width:760px; }
.wont__list li{ display:flex; gap:1.2rem; padding:1.3rem 0; border-top:1px solid var(--line); }
.wont__list li:last-child{ border-bottom:1px solid var(--line); }
.wont__mark{ font-family:var(--serif); font-style:italic; color:var(--amber-deep-text); font-size:1.1rem; flex:none; }
.wont__list p{ color:var(--ink-soft); font-size:1.02rem; }

.process{ padding:0 0 var(--section-y); background:var(--paper-2); padding-top:var(--section-y); }

/* =========================================================
   LEGAL / PRIVACY PAGE
   ========================================================= */
.legal{ padding:0 0 var(--section-y); }
.legal__inner{ max-width:720px; }
.legal__updated{ font-size:.86rem; color:var(--muted); margin-bottom:2.2rem; }
.legal__inner h2{ font-family:var(--serif); font-weight:500; font-size:1.4rem; color:var(--ink); margin:2.4rem 0 .9rem; }
.legal__inner h2:first-of-type{ margin-top:0; }
.legal__inner p{ font-size:1.02rem; color:var(--ink-soft); margin-bottom:1rem; }
.legal__inner ul{ margin:0 0 1.2rem; padding-left:1.3rem; list-style:disc; }
.legal__inner li{ font-size:1.02rem; color:var(--ink-soft); margin-bottom:.5rem; }
.legal__inner a{ text-decoration:underline; text-underline-offset:3px; color:var(--ink); }

/* =========================================================
   FAQ PAGE
   ========================================================= */
.fhead{ padding:clamp(2.8rem,6vw,4.4rem) 0 clamp(1.6rem,4vw,2rem); }
.faqlist{ padding-bottom:clamp(3rem,6vw,5rem); display:flex; flex-direction:column; max-width:800px; }
.faq{ padding:1.8rem 0; border-top:1px solid var(--line); }
.faqlist>.faq:last-child{ border-bottom:1px solid var(--line); }
.faq h3{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.25rem; color:var(--ink); margin-bottom:.7rem; }
.faq p{ color:var(--ink-soft); font-size:1rem; max-width:64ch; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__art{ order:-1; max-width:300px; }
  .approach__inner,.why__inner,.about-teaser__inner,.contact__inner,.ahead__inner{ grid-template-columns:1fr; }
  .fw{ grid-template-columns:repeat(2,1fr); }
  .why__points{ grid-template-columns:1fr 1fr; }
  .ahead__inner{ max-width:600px; }
  .ahead .portrait{ max-width:220px; }
  .about-teaser__inner .portrait{ max-width:260px; }
  .compare__grid,.teaser__grid,.services__grid,.work__grid,.engage__grid,.igrid,.recs__grid{ grid-template-columns:1fr 1fr; }
  .recs__grid--full{ grid-template-columns:1fr 1fr; }
  .mstage{ grid-template-columns:1fr; text-align:left; }
}
/* The hamburger breakpoint sits higher than the other 760px rules on
   purpose: the full-link nav needs ~860px to lay out on one line before
   it starts wrapping, so 760-860px would otherwise show a broken
   two-line nav bar with nowhere to hide it. */
@media (max-width:860px){
  .nav__links{ display:none; }
  .nav__toggle{ display:flex; }
}
@media (max-width:760px){
  .pain__grid,.compare__grid,.teaser__grid,.services__grid,.work__grid,.engage__grid,.igrid,.recs__grid,.recs__grid--full{ grid-template-columns:1fr; }
  .fw{ grid-template-columns:1fr; }
  .why__points{ grid-template-columns:1fr; }
  .float-pill{ bottom:16px; }
  .float-pill form{ padding:.42rem .42rem .42rem 1.05rem; }
  .footer{ padding-bottom:7rem; }
  .wont__list li{ flex-direction:column; gap:.4rem; }
}
