/* KAG Brand Identity v2 — docs/brand/kag-brand-identity-v2.md (§3 colour, §4 type, §6 texture, §9 components) */
:root{
  --navy:#142A3A;  --navy-deep:#0E1F2C;
  --forest:#173B2D;  --forest-lt:#1E4A39;
  --copper:#B66A43;  --copper-deep:#A65D39;  --copper-lt:#C9794F;  --copper-pale:#D4906A;
  --cream:#F4F0E8;  --white:#F8F7F3;
  --charcoal:#303B43;  --stone:#D8D4CB;  --mist:#8FA3B0;  --mist-dk:#8C97A0;
  --rule:rgba(20,42,58,0.18);  --rule-dark:rgba(248,247,243,0.12);

  --serif:'Source Serif 4', Georgia, serif;
  --sans:'Source Sans 3', system-ui, sans-serif;
  --label:'Barlow Condensed', 'Source Sans 3', sans-serif;

  --navy-light:radial-gradient(ellipse 70% 90% at 20% 10%, rgba(39,72,96,0.55) 0%, rgba(20,42,58,0) 60%);
  --forest-light:radial-gradient(ellipse 80% 70% at 70% 30%, rgba(34,80,62,0.9) 0%, var(--forest) 70%);
  --card-shadow:0 1px 0 rgba(20,42,58,0.06), 0 18px 40px -24px rgba(20,42,58,0.35);

  --container:1120px;
  --gutter:clamp(20px,4vw,56px);
  --spine-w:clamp(44px,6vw,86px);
  --section-pad:clamp(80px,11vh,128px);
}
*,*::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(--cream);color:var(--charcoal);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,p,figure,blockquote{margin:0;}
::selection{background:var(--copper);color:var(--white);}
.label{font-family:var(--label);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;}

/* ---------- paper texture (cream surfaces and white cards) — v2 §6, verbatim ---------- */
.paper{position:relative;}
.paper::before{
  content:"";
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  opacity:0.05;
  mix-blend-mode:multiply;
  pointer-events:none;
  z-index:0;
}
.paper > *{position:relative;z-index:1;}

/* ---------- structure ---------- */
.section{padding:var(--section-pad) var(--gutter);}
.wrap{max-width:var(--container);margin:0 auto;}
/* keep content clear of the fixed side label where it shows */
@media (min-width:1061px){
  .section{padding-left:max(var(--gutter), calc(var(--spine-w) + 28px));padding-right:max(var(--gutter), calc(var(--spine-w) + 28px));}
}
.on-navy{background:var(--navy-light),var(--navy);color:var(--stone);}

/* section header row — v2 §9 */
.s-row{display:flex;align-items:center;gap:18px;margin-bottom:40px;}
.s-num{font-family:var(--serif);font-size:22px;line-height:1;color:var(--copper);}
.s-name{font-size:12px;color:var(--copper-deep);}
.on-navy .s-name{color:var(--copper);}
.s-rule{flex:1;height:1px;background:var(--rule);}
.on-navy .s-rule{background:var(--rule-dark);}
.s-next{font-size:12px;color:var(--mist-dk);word-spacing:0.4em;}

.h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.6vw,66px);line-height:1.02;letter-spacing:-0.02em;color:var(--navy);max-width:22ch;text-wrap:balance;}
.h2 em{font-style:italic;color:var(--forest);}
.on-navy .h2{color:var(--white);}

/* lead paragraph on cream — v2 §9 */
.lead-rule{font-family:var(--serif);font-size:20px;line-height:1.62;color:var(--charcoal);max-width:840px;
  margin-top:36px;padding-left:30px;border-left:2px solid var(--copper);}

/* buttons — v2 §3, §9 */
.btn{display:inline-flex;align-items:center;gap:16px;padding:20px 34px;border-radius:0;border:1px solid transparent;
  font-family:var(--label);font-weight:600;font-size:13px;letter-spacing:0.2em;text-transform:uppercase;line-height:1;
  cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;white-space:nowrap;}
.btn svg{width:18px;height:12px;flex:none;}
.btn-copper{color:var(--white);background:linear-gradient(180deg,var(--copper),var(--copper-deep));box-shadow:0 10px 24px -14px rgba(182,106,67,0.8);}
.btn-forest{color:var(--white);background:linear-gradient(180deg,var(--forest-lt),var(--forest));box-shadow:0 10px 24px -14px rgba(23,59,45,0.9);}
.btn-ghost{color:var(--stone);background:transparent;border-color:rgba(182,106,67,0.55);padding:18px 34px;}
.btn-copper:hover,.btn-forest:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(1px);}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px;}

/* text link */
.txtlink{display:inline-flex;align-items:center;gap:10px;font-family:var(--label);font-weight:600;font-size:13px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--copper-deep);border-bottom:1px solid rgba(182,106,67,0.45);padding-bottom:4px;transition:border-color .2s,color .2s;}
.txtlink:hover{border-color:var(--copper-deep);color:var(--navy);}
.on-navy .txtlink,.card-f .txtlink{color:var(--copper-pale);border-color:rgba(212,144,106,0.45);}
.on-navy .txtlink:hover,.card-f .txtlink:hover{color:var(--white);border-color:var(--copper-pale);}

/* ---------- masthead — v5 lockup, full width so it fits one row at ≥1280 ---------- */
.masthead{position:relative;z-index:60;background:var(--navy-light),var(--navy);border-bottom:1px solid var(--rule-dark);}
.mast-in{display:flex;align-items:center;flex-wrap:wrap;gap:18px 32px;padding:22px var(--gutter);transition:padding .2s ease;}
.brand{display:flex;align-items:center;gap:16px;flex:0 0 100%;}
.brand img{width:44px;height:auto;flex:none;}
.brand-hair{width:1px;align-self:stretch;background:var(--rule-dark);}
.brand-name{display:block;font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.15;letter-spacing:0.01em;color:var(--white);}
.brand-desc{display:block;margin-top:6px;font-size:11px;line-height:1.4;color:var(--copper);}
.brand-desc span{color:var(--mist);}
.mast-nav{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;flex:1;}
.mast-nav .links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;}
.mast-nav .links a{font-family:var(--label);font-weight:600;font-size:13px;letter-spacing:0.2em;text-transform:uppercase;color:var(--stone);padding:4px 0;white-space:nowrap;transition:color .2s;}
.mast-nav .links a:hover{color:var(--white);}
.mast-nav .links::after{content:"";width:28px;height:1px;background:var(--copper);}
.mast-nav .btn{padding:14px 22px;font-size:12px;}
@media (min-width:1280px){
  .masthead{position:sticky;top:0;}
  .brand{flex:0 0 auto;}
  .mast-nav{justify-content:flex-end;flex-wrap:nowrap;}
  .mast-nav .links{flex-wrap:nowrap;}
  .masthead.scrolled .mast-in{padding-top:12px;padding-bottom:12px;}
  /* anchor jumps land clear of the sticky masthead */
  [id]{scroll-margin-top:84px;}
}

/* ---------- side label (spine) ---------- */
.spine{position:fixed;left:0;top:0;height:100vh;width:var(--spine-w);z-index:55;pointer-events:none;display:flex;align-items:center;justify-content:center;}
.spine-rule{position:absolute;left:calc(var(--spine-w) - 1px);top:0;bottom:0;width:1px;background:var(--rule);}
.spine-progress{position:absolute;left:0;top:0;width:1px;height:0%;background:var(--copper);transition:height .15s linear;}
.spine-folio{display:flex;flex-direction:column;align-items:center;gap:14px;transition:opacity .35s ease, transform .35s ease;}
.spine-num{font-family:var(--serif);font-weight:400;font-size:19px;color:var(--copper-deep);line-height:1;}
.spine-tick{width:1px;height:30px;background:var(--copper);}
.spine-label{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:0.2em;font-size:12px;color:var(--charcoal);}
.spine.is-fading .spine-folio{opacity:0;transform:translateY(8px);}
.spine.on-navy .spine-rule{background:var(--rule-dark);}
.spine.on-navy .spine-num{color:var(--copper-lt);}
.spine.on-navy .spine-label{color:var(--mist);}
.spine.at-top .spine-folio{opacity:0;}
@media (max-width:1060px){ .spine{display:none;} }

/* ---------- hero — v2 §7 ---------- */
.hero-in{display:flex;align-items:stretch;min-height:620px;}
.hero-left{flex:1 1 55%;min-width:0;background:var(--forest-light);color:var(--white);display:flex;flex-direction:column;justify-content:center;
  padding:clamp(64px,9vh,112px) var(--gutter) clamp(64px,9vh,112px);}
.hero-eyebrow{font-size:12px;color:var(--copper);margin-bottom:28px;}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(56px,6.4vw,92px);line-height:0.98;letter-spacing:-0.02em;color:var(--white);}
.hero h1 em{font-style:italic;color:var(--copper-lt);}
.h1-rule{width:64px;height:1px;background:var(--copper);margin:36px 0 32px;transform-origin:left;}
.standfirst{font-family:var(--serif);font-size:19px;line-height:1.65;color:var(--stone);max-width:520px;}
.standfirst b{font-weight:600;color:var(--white);}
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px;}

.hero-right{flex:1 1 45%;min-width:0;position:relative;overflow:hidden;min-height:620px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding:72px 56px 64px;background:var(--navy);}
.hero-right::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--copper);z-index:3;}
.hero-right::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg, rgba(20,42,58,0.94) 0%, rgba(20,42,58,0.7) 26%, rgba(20,42,58,0) 52%);}
.hero-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:60% 25%;}
/* 1100–2099: side by side with the portrait image (panel is roughly 0.8–1.3 wide:tall here, too narrow for the wide image) */
@media (min-width:1100px) and (max-width:2099px){
  .hero-img{object-position:35% 30%;}
}
/* <1100: stacked; the portrait image keeps its shape, never wider than 70vh of image, centred on a navy band */
@media (max-width:1099px){
  .hero-in{display:block;min-height:0;background:var(--navy);}
  .hero-right{width:100%;max-width:calc(70vh * 1200 / 1110);margin:0 auto;min-height:0;height:auto;aspect-ratio:1200/1110;}
  .hero-img{object-position:center 30%;}
}
.panel-since{position:absolute;left:56px;top:52px;z-index:2;font-size:11px;color:rgba(216,212,203,0.6);}
/* stats block over the panel (rows 9–11) */
.panel-block{position:relative;z-index:2;text-align:center;width:100%;max-width:400px;}
.panel-rule{width:40px;height:1px;background:var(--copper);margin:18px auto;}
.panel-stats{display:grid;grid-template-columns:repeat(3,1fr);}
.panel-stat{padding:0 10px;border-left:1px solid var(--rule-dark);}
.panel-stat:first-child{border-left:0;}
.panel-fig{font-family:var(--serif);font-size:26px;line-height:1.1;color:var(--white);white-space:nowrap;}
.panel-fig em{font-style:normal;color:var(--copper-pale);}
.panel-lbl{margin-top:6px;font-size:11px;line-height:1.4;color:var(--mist);}

/* ---------- 01 who it's for ---------- */
.who-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:56px;align-items:start;margin-top:8px;}
.who-grid .lead-rule{margin-top:0;}

/* scope card + rows — v2 §9 */
.card{box-shadow:var(--card-shadow);}
.card-w{background:var(--white);}
.rows{border-top:1px solid var(--rule);}
.row{border-bottom:1px solid var(--rule);}
.row-btn{display:flex;align-items:center;gap:16px;width:100%;padding:20px 18px;border:0;background:transparent;cursor:pointer;
  font:inherit;color:var(--charcoal);text-align:left;transition:background .2s,color .2s;}
.row-num{font-family:var(--serif);font-size:18px;line-height:1;color:var(--copper-deep);min-width:1.6em;}
.row-term{font-family:var(--serif);font-size:19px;line-height:1.35;}
.row-arr{width:18px;height:12px;margin-left:auto;flex:none;color:var(--mist-dk);transition:transform .25s ease,color .2s;}
.row-btn:hover,.row-btn[aria-expanded="true"]{background:var(--cream);color:var(--navy);}
.row-btn[aria-expanded="true"] .row-arr{transform:rotate(90deg);color:var(--copper-deep);}
.row-body{padding:0 18px 24px calc(18px + 1.6em + 16px);font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--charcoal);background:var(--cream);}
.row-body .txtlink{margin-top:14px;}
.who-card{padding:12px 28px 28px;}

/* ---------- statement ---------- */
.statement{position:relative;overflow:hidden;padding-top:clamp(72px,10vh,112px);padding-bottom:clamp(72px,10vh,112px);border-top:1px solid var(--rule-dark);}
.statement-mark{position:absolute;right:-70px;top:50%;transform:translateY(-50%);width:min(560px,50vw);opacity:0.06;pointer-events:none;user-select:none;}
.statement-line{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,50px);line-height:1.15;letter-spacing:-0.015em;color:var(--white);max-width:24ch;}
.statement-line em{font-style:italic;color:var(--copper-lt);}
.statement-sub{margin-top:28px;font-family:var(--serif);font-size:19px;line-height:1.6;color:var(--stone);}

/* ---------- 02 why ---------- */
.why-grid{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.6fr);gap:clamp(40px,6vw,88px);align-items:start;}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--card-shadow);}
.portrait-cap{margin-top:14px;font-size:12px;color:var(--charcoal);}
.rolerow{margin:30px 0 0;font-size:12px;line-height:2;color:var(--navy);}
.rolerow span{white-space:nowrap;display:inline-block;}
.rolerow span:not(:last-child){margin-right:14px;}
.rolerow span:not(:last-child)::after{content:"\00B7";color:var(--copper-deep);margin-left:14px;}
.since{margin-top:24px;font-family:var(--serif);font-size:19px;color:var(--forest);}
.since em{font-style:italic;}
.why-link{margin-top:30px;}

/* ---------- stance ---------- */
.stance{padding-top:clamp(56px,8vh,88px);padding-bottom:clamp(56px,8vh,88px);border-top:1px solid var(--rule);}
.stance-line{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,44px);line-height:1.18;letter-spacing:-0.01em;color:var(--navy);max-width:26ch;text-wrap:balance;}
.stance-line b{font-weight:600;color:var(--navy-deep);}

/* ---------- proof ---------- */
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:48px;}
.proof{padding:40px;display:flex;flex-direction:column;}
.proof-quote{font-family:var(--serif);font-size:clamp(18px,1.6vw,20px);line-height:1.62;color:var(--charcoal);padding-left:26px;border-left:2px solid var(--copper);}
.proof-attr{margin-top:auto;padding-top:18px;font-size:12.5px;letter-spacing:0.14em;color:var(--charcoal);}

/* ---------- 03 what we do — forest feature cards, v2 §9 ---------- */
.feature-list{display:grid;gap:20px;margin-top:56px;}
.card-f{position:relative;overflow:hidden;background:var(--forest);color:var(--stone);display:flex;}
.card-f-body{position:relative;z-index:1;width:62%;padding:36px 40px 32px;}
.card-f-num{font-size:12px;color:var(--copper-pale);}
.card-f h3{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.08;letter-spacing:-0.01em;color:var(--white);margin-top:18px;}
.card-f p{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--stone);margin-top:18px;}
.card-f .stages{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--mist);margin-top:16px;}
.card-f-links{display:flex;flex-wrap:wrap;gap:16px 28px;margin-top:26px;}
.card-f-art{position:absolute;top:0;right:0;bottom:0;width:38%;border-left:1px solid var(--rule-dark);overflow:hidden;}
.card-f-art img{width:100%;height:100%;object-fit:cover;opacity:0.38;}
.engage-foot{margin-top:48px;}

/* ---------- 04 how it starts ---------- */
.steps{margin-top:48px;padding:12px 28px;}
.step{display:grid;grid-template-columns:2.4em minmax(0,1fr) minmax(0,1.4fr);gap:20px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--rule);}
.step:last-child{border-bottom:0;}
.step-num{font-family:var(--serif);font-size:22px;line-height:1;color:var(--copper);}
.step-term{font-family:var(--serif);font-size:21px;line-height:1.3;color:var(--navy);}
.step-desc{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--charcoal);}
.quiet-note{margin-top:30px;font-size:16px;line-height:1.6;color:var(--charcoal);max-width:60ch;}
.quiet-note a{color:var(--copper-deep);border-bottom:1px solid rgba(182,106,67,0.45);padding-bottom:1px;transition:color .2s,border-color .2s;}
.quiet-note a:hover{color:var(--navy);border-color:var(--copper-deep);}

/* ---------- 05 start here ---------- */
.start-cta{margin-top:40px;}

/* ---------- closing + contact form ---------- */
.closing{border-top:1px solid var(--rule);}
.closing-grid{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.4fr);gap:clamp(40px,6vw,88px);align-items:start;}
.form-aside{margin-top:24px;font-size:16px;line-height:1.7;color:var(--charcoal);}
.form-aside a.mail{color:var(--navy);font-weight:600;border-bottom:1px solid var(--rule);transition:border-color .2s;}
.form-aside a.mail:hover{border-color:var(--copper-deep);}
.form-aside .txtlink{margin-top:10px;}
.contact-form{display:grid;gap:22px;padding:40px;}
.cf-field label,.cf-radios legend{display:block;margin-bottom:8px;font-family:var(--label);font-weight:600;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--charcoal);padding:0;}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea{
  width:100%;background:var(--cream);border:1px solid var(--rule);border-radius:0;padding:13px 14px;font-family:var(--sans);font-size:16px;color:var(--navy);}
.contact-form textarea{resize:vertical;min-height:130px;line-height:1.55;}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--copper);outline-offset:0;}
.contact-form input[type="file"]{font-family:var(--sans);font-size:15px;color:var(--charcoal);}
.cf-radios{border:0;margin:0;padding:0;min-width:0;}
.cf-radios .rows{margin-top:4px;}
.cf-radios label{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:18px;line-height:1.3;color:var(--charcoal);cursor:pointer;transition:background .2s,color .2s;}
.cf-radios label:hover,.cf-radios label:has(input:checked){background:var(--cream);color:var(--navy);}
.cf-radios input{accent-color:var(--copper-deep);width:16px;height:16px;flex:none;margin:0;}
.contact-form .btn{justify-self:start;}

/* ---------- footer — v5 lockup + live content ---------- */
.foot{position:relative;overflow:hidden;background:var(--navy-light),var(--navy);color:var(--stone);border-top:1px solid var(--rule-dark);
  padding:clamp(64px,9vh,104px) var(--gutter) 40px;}
.foot-mark{position:absolute;right:-70px;bottom:-70px;width:min(380px,38vw);opacity:0.05;pointer-events:none;user-select:none;}
.foot .wrap{position:relative;z-index:1;}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px;}
.foot .brand{flex:none;}
.foot .brand img{width:40px;}
.foot .brand-name{font-size:18px;}
.indep{margin-top:28px;font-family:var(--serif);font-size:17px;line-height:1.65;color:var(--stone);max-width:52ch;}
.indep b{font-weight:600;color:var(--white);}
.foot-contact{display:grid;gap:22px;}
.foot-contact .lbl{font-size:11px;color:var(--copper);margin-bottom:6px;}
.foot-contact a{font-family:var(--serif);font-size:17px;color:var(--white);border-bottom:1px solid var(--rule-dark);transition:border-color .2s;}
.foot-contact a:hover{border-color:var(--copper);}
.foot-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:56px;padding-top:24px;border-top:1px solid var(--rule-dark);font-size:12px;color:var(--mist);}
.foot-meta a:hover{color:var(--white);}
.foot-meta .dot{color:var(--copper);}

/* ---------- scroll reveal (kept from live; not part of the brand motion spec) ---------- */
.sreveal{opacity:1;}
@media (prefers-reduced-motion:no-preference){
  html.js .sreveal{opacity:0;transform:translateY(20px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);}
  html.js .sreveal.in{opacity:1;transform:none;}
  html.js .sreveal[data-d="1"]{transition-delay:.08s;}
  html.js .sreveal[data-d="2"]{transition-delay:.16s;}
  html.js .sreveal[data-d="3"]{transition-delay:.24s;}
}
@media print{
  html.js .sreveal{opacity:1!important;transform:none!important;}
  .spine,.masthead{display:none;}
}

/* ---------- hero motion — v2 §8 ---------- */
@media (prefers-reduced-motion: no-preference){
  @keyframes kag-enter{from{opacity:0;transform:translateY(18px);}}
  @keyframes kag-draw{from{transform:scaleX(0);}}
  .hero-img{animation:kag-enter 900ms cubic-bezier(.2,.7,.2,1) 150ms backwards;}
  .h1-rule{animation:kag-draw 700ms cubic-bezier(.2,.7,.2,1) 500ms backwards;}
}

/* ---------- narrower screens ---------- */
@media (max-width:980px){
  .who-grid,.why-grid,.closing-grid,.foot-grid{grid-template-columns:1fr;gap:40px;}
  .portrait{max-width:340px;}
  .proof-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .card-f{flex-direction:column;}
  .card-f-body{width:100%;padding:36px 28px 32px;}
  .card-f-art{position:absolute;inset:0;width:100%;height:100%;border-left:0;border-top:0;order:0;}
  .card-f-art img{opacity:0.22;}
  .step{grid-template-columns:2em minmax(0,1fr);gap:6px 14px;}
  .step-desc{grid-column:2;}
}
@media (max-width:480px){
  .masthead .brand-desc{display:none;}
  .hero-eyebrow{font-size:11px;}
}
@media (min-width:360px) and (max-width:480px){
  .hero-eyebrow span{display:block;white-space:nowrap;}
  .hero-eyebrow .eb-sep{display:none;}
}
@media (max-width:560px){
  .brand-name{font-size:20px;}
  .lead-rule{font-size:18px;padding-left:20px;}
  .standfirst{font-size:18px;}
  .hero-right{padding:56px 24px 40px;}
  .panel-since{left:24px;top:30px;}
  .panel-fig{font-size:22px;}
  .who-card,.steps{padding-left:16px;padding-right:16px;}
  .row-btn{padding:18px 10px;}
  .row-body{padding:0 10px 22px 10px;}
  .proof,.contact-form{padding:28px 22px;}
  .card-f h3{font-size:32px;}
  .btn{padding:18px 26px;white-space:normal;}
  .btn-ghost{padding:16px 26px;}
  .txtlink{white-space:normal;}
}

/* =====================================================================
   v2 additions — shared across every page (loaded from /assets/kag-v2.css)
   ===================================================================== */

/* cross-page fade (browsers that support it; others just navigate) */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root){animation:kag-vt-out 180ms ease-in both;}
  ::view-transition-new(root){animation:kag-vt-in 260ms ease-out both;}
  @keyframes kag-vt-out{to{opacity:0;}}
  @keyframes kag-vt-in{from{opacity:0;}}
}

html,body{overflow-x:clip;}

/* masthead — sticky everywhere, compact on scroll, menu button under 1100 */
.masthead{position:sticky;top:0;}
.masthead.scrolled .mast-in{padding-top:12px;padding-bottom:12px;}
.masthead.scrolled{box-shadow:0 10px 30px -22px rgba(0,0,0,0.6);}
[id]{scroll-margin-top:96px;}
.mast-nav .links a{position:relative;}
.mast-nav .links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.mast-nav .links a:hover::after,.mast-nav .links a[aria-current="page"]::after{transform:scaleX(1);}
.mast-nav .links a[aria-current="page"]{color:var(--white);}
.menu-btn{display:none;align-items:center;gap:10px;margin-left:auto;padding:12px 14px;border:1px solid var(--rule-dark);background:transparent;color:var(--stone);
  font-family:var(--label);font-weight:600;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;}
.menu-btn svg{width:18px;height:12px;}
@media (max-width:1279px){
  .mast-in{flex-wrap:nowrap;align-items:center;}
  .brand{flex:1 1 0;min-width:0;gap:12px;}
  .brand > span:last-child{min-width:0;overflow:hidden;}
  .brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:19px;}
  .menu-btn{display:inline-flex;flex:none;}
  .mast-nav{display:none;flex:0 0 100%;flex-direction:column;align-items:stretch;gap:0;padding-top:8px;border-top:1px solid var(--rule-dark);}
  .mast-in{flex-wrap:wrap;}
  .masthead.open .mast-nav{display:flex;}
  .mast-nav .links{flex-direction:column;align-items:stretch;gap:0;}
  .mast-nav .links a{padding:14px 0;border-bottom:1px solid var(--rule-dark);font-size:13px;}
  .mast-nav .links a::after{display:none;}
  .mast-nav .links::after{display:none;}
  .mast-nav .btn{margin:16px 0 8px;justify-content:center;}
  [id]{scroll-margin-top:80px;}
}
@media (max-width:480px){
  .brand-desc{display:none;}
  .brand img{width:36px;}
  .brand-name{white-space:normal;overflow:visible;text-overflow:clip;font-size:17px;line-height:1.15;}
  .menu-btn{padding:10px 12px;font-size:12px;}
  .hero-eyebrow span{display:inline;white-space:normal;}
  .hero-eyebrow .eb-sep{display:inline;}
}

/* gentler, uniform reveal */
@media (prefers-reduced-motion:no-preference){
  html.js .sreveal{transform:translateY(14px);transition-duration:.7s;}
}

/* ---------- page hero (sub-pages): navy, Evander sheet low behind, editorial ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--navy-light),var(--navy);color:var(--stone);border-bottom:1px solid var(--rule-dark);padding:0 var(--gutter);}
@media (min-width:1061px){ .page-hero{padding-left:max(var(--gutter), calc(var(--spine-w) + 28px));padding-right:max(var(--gutter), calc(var(--spine-w) + 28px));} }
.page-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 40%;opacity:0.22;pointer-events:none;}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(20,42,58,0.92) 0%, rgba(20,42,58,0.72) 55%, rgba(20,42,58,0.3) 100%);pointer-events:none;}
.page-hero .wrap{position:relative;z-index:1;padding:clamp(72px,11vh,128px) 0 clamp(64px,9vh,104px);}
.page-hero .eyebrow{font-size:12px;color:var(--copper);margin-bottom:26px;}
.page-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5.2vw,76px);line-height:1.02;letter-spacing:-0.02em;color:var(--white);max-width:16ch;text-wrap:balance;}
.page-hero h1 em{font-style:italic;color:var(--copper-lt);}
.page-hero .h1-rule{margin:32px 0 28px;}
.page-hero .standfirst{max-width:640px;}
.page-hero .hero-cta{margin-top:36px;}
.page-hero .sub-note{margin-top:22px;font-size:15px;line-height:1.6;color:var(--mist);max-width:620px;}
.page-hero.has-portrait .wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:start;}
.page-hero .portrait{position:relative;z-index:1;align-self:center;}
.page-hero .portrait img{width:100%;max-width:420px;aspect-ratio:4/5;object-fit:cover;margin-left:auto;box-shadow:0 30px 60px -30px rgba(0,0,0,0.7);border:1px solid rgba(182,106,67,0.35);}
@media (max-width:980px){
  .page-hero.has-portrait .wrap{grid-template-columns:1fr;}
  .page-hero .portrait img{margin-left:0;max-width:320px;}
}

/* ---------- section on forest (full-bleed band) ---------- */
.on-forest{background:var(--forest-light);color:var(--stone);}
.on-forest .h2{color:var(--white);}
.on-forest .h2 em{color:var(--copper-pale);}
.on-forest .s-name{color:var(--copper-pale);}
.on-forest .s-rule{background:var(--rule-dark);}
.on-forest .s-next{color:rgba(216,212,203,0.5);}
.on-forest .lead-rule{color:var(--stone);border-color:var(--copper-pale);}
.on-navy .lead-rule{color:var(--stone);border-color:var(--copper);}
.on-navy .h2 em{color:var(--copper-lt);}
.on-forest .txtlink{color:var(--copper-pale);border-color:rgba(212,144,106,0.45);}
.on-forest .txtlink:hover{color:var(--white);border-color:var(--copper-pale);}

/* ---------- prose (long-form sections, legal) ---------- */
.prose{font-family:var(--serif);font-size:18px;line-height:1.7;color:var(--charcoal);max-width:72ch;}
.prose p{margin:0 0 1.1em;}
.prose p:last-child{margin-bottom:0;}
.prose h2{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.2;letter-spacing:-0.01em;color:var(--navy);margin:2.2em 0 .7em;padding-top:1.2em;border-top:1px solid var(--rule);}
.prose h2:first-child{margin-top:0;padding-top:0;border-top:0;}
.prose ul{margin:0 0 1.2em;padding-left:1.2em;}
.prose li{margin:.35em 0;}
.prose li::marker{color:var(--copper-deep);}
.prose strong{font-weight:600;color:var(--navy);}
.prose a{color:var(--copper-deep);border-bottom:1px solid rgba(182,106,67,0.45);transition:color .2s,border-color .2s;}
.prose a:hover{color:var(--navy);border-color:var(--copper-deep);}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0;}
.on-navy .prose,.on-forest .prose{color:var(--stone);}
.on-navy .prose h2,.on-forest .prose h2{color:var(--white);border-color:var(--rule-dark);}
.on-navy .prose strong,.on-forest .prose strong{color:var(--white);}
.legal-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:28px 0 48px;font-size:12px;color:var(--mist-dk);}
.legal-meta .dot{color:var(--copper);}

/* ---------- definition ledger (static rows with number, term, description) ---------- */
.ledger-static{border-top:1px solid var(--rule);}
.ledger-static .lrow{display:grid;grid-template-columns:2.4em minmax(0,1fr);gap:12px 18px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:baseline;}
.ledger-static .lnum{font-family:var(--serif);font-size:20px;line-height:1;color:var(--copper);}
.ledger-static .lterm{font-family:var(--serif);font-size:22px;line-height:1.3;color:var(--navy);}
.ledger-static .ldesc{grid-column:2;font-family:var(--serif);font-size:17px;line-height:1.62;color:var(--charcoal);margin-top:6px;}
.on-navy .ledger-static,.on-forest .ledger-static{border-color:var(--rule-dark);}
.on-navy .ledger-static .lrow,.on-forest .ledger-static .lrow{border-color:var(--rule-dark);}
.on-navy .ledger-static .lterm,.on-forest .ledger-static .lterm{color:var(--white);}
.on-navy .ledger-static .ldesc,.on-forest .ledger-static .ldesc{color:var(--stone);}

/* ---------- tenet grid (small headed items) ---------- */
.tenets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule-dark);border:1px solid var(--rule-dark);margin-top:40px;}
.tenet{background:var(--navy);padding:26px 26px 28px;}
.on-forest .tenet{background:var(--forest);}
.tenet h4{margin:0;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.25;color:var(--white);}
.tenet p{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--stone);}
.tenets.cream{background:var(--rule);border-color:var(--rule);}
.tenets.cream .tenet{background:var(--white);}
.tenets.cream .tenet h4{color:var(--navy);}
.tenets.cream .tenet p{color:var(--charcoal);}
@media (max-width:640px){ .tenets{grid-template-columns:1fr;} }

/* ---------- figures (big numbers with labels) ---------- */
.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:44px;}
.fig{padding:28px 28px 26px;border-top:2px solid var(--copper);background:rgba(248,247,243,0.03);}
.fig-lbl{font-size:12px;color:var(--copper-pale);}
.fig-val{margin-top:14px;font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.05;color:var(--white);letter-spacing:-0.01em;}
.fig-note{margin-top:12px;font-size:15px;line-height:1.55;color:var(--stone);}
@media (max-width:760px){ .figs{grid-template-columns:1fr;gap:16px;} }

/* ---------- two cards side by side ---------- */
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:48px;}
.duo .card{padding:40px;}
.card-kicker{display:flex;justify-content:space-between;gap:16px;align-items:baseline;font-size:12px;color:var(--copper-deep);}
.card-kicker .tag{color:var(--mist-dk);}
.duo h3{margin-top:18px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.12;letter-spacing:-0.01em;color:var(--navy);}
.duo p{margin-top:16px;font-family:var(--serif);font-size:17px;line-height:1.62;color:var(--charcoal);}
@media (max-width:760px){ .duo{grid-template-columns:1fr;} .duo .card{padding:30px 24px;} }

/* ---------- baseline terms (IPD) ---------- */
.base4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:44px 0 0;background:var(--rule-dark);border:1px solid var(--rule-dark);}
.base4 > div{background:var(--navy);padding:26px 24px 28px;}
.base4 dt{display:flex;flex-direction:column;gap:8px;}
.base4 abbr{text-decoration:none;font-family:var(--serif);font-size:34px;line-height:1;color:var(--copper-lt);}
.base4 .base-name{font-size:12px;color:var(--mist);}
.base4 dd{margin:14px 0 0;font-size:15px;line-height:1.6;color:var(--stone);}
@media (max-width:900px){ .base4{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:480px){ .base4{grid-template-columns:1fr;} }

/* ---------- gantt (IPD) ---------- */
.gantt{margin-top:44px;}
.gantt-chart{width:100%;}
.gantt-chart svg{display:block;max-width:100%;}
.gantt-list{display:none;list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
.gantt-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--rule);}
.gantt-list .gl-name{font-family:var(--serif);font-size:20px;color:var(--navy);}
.gantt-list .gl-months{font-size:12px;color:var(--mist-dk);text-align:right;padding-top:6px;}
.gantt-list .gl-gate{grid-column:1/-1;font-weight:600;color:var(--navy);font-size:15px;}
.gantt-list .gl-detail{grid-column:1/-1;font-size:15px;color:var(--charcoal);}
.gantt-note{margin-top:14px;font-size:13px;color:var(--mist-dk);}
@media (max-width:760px){ .gantt-chart{display:none;} .gantt-list{display:block;} }

/* ---------- simple list with copper markers ---------- */
.marks{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:14px;max-width:640px;}
.marks li{position:relative;padding-left:28px;font-family:var(--serif);font-size:20px;line-height:1.4;}
.marks li::before{content:"";position:absolute;left:0;top:.78em;width:14px;height:1px;background:var(--copper);}

/* ---------- about: seats / projects / credentials ---------- */
.seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:48px;}
.seat{padding:34px 32px 30px;}
.seat-label{font-size:12px;color:var(--copper-deep);}
.seat-roles{margin-top:16px;display:grid;gap:12px;}
.seat-role{font-family:var(--serif);font-size:18px;line-height:1.4;color:var(--navy);}
.seat-role .co{color:var(--charcoal);}
.seat-role .yrs{color:var(--mist-dk);font-size:15px;white-space:nowrap;}
@media (max-width:760px){ .seats{grid-template-columns:1fr;} }
.projects{margin-top:48px;display:grid;gap:40px;}
.pgroup-title{font-size:12px;color:var(--copper-deep);padding-bottom:14px;border-bottom:1px solid var(--rule);}
.project{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:8px 24px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:baseline;}
.project-name{font-family:var(--serif);font-size:19px;color:var(--navy);}
.project-sub{font-size:15px;color:var(--charcoal);margin-left:8px;}
.project-role{font-size:12px;color:var(--mist-dk);text-align:right;}
@media (max-width:640px){ .project{grid-template-columns:1fr;} .project-role{text-align:left;} }
.creds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:48px;}
.cred{padding:34px 32px 30px;}
.cred h3{margin:0;font-size:12px;color:var(--copper-deep);font-family:var(--label);font-weight:600;letter-spacing:0.16em;text-transform:uppercase;}
.cred ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:14px;}
.cred li{font-family:var(--serif);font-size:17px;line-height:1.45;color:var(--navy);}
.cred .issuer{display:block;font-family:var(--sans);font-size:14px;color:var(--mist-dk);margin-top:3px;}
@media (max-width:760px){ .creds{grid-template-columns:1fr;} }
.testi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:48px;}
@media (max-width:860px){ .testi-grid{grid-template-columns:1fr;} }

/* ---------- compact contact block (sub-pages) ---------- */
.routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px;}
.route .lbl{font-size:11px;color:var(--copper-deep);margin-bottom:8px;}
.route a{font-family:var(--serif);font-size:18px;color:var(--navy);border-bottom:1px solid var(--rule);transition:border-color .2s;}
.route a:hover{border-color:var(--copper-deep);}
@media (max-width:760px){ .routes{grid-template-columns:1fr;} }
.signoff{margin-top:40px;font-size:14px;line-height:1.7;color:var(--mist-dk);}

/* ---------- end band (forest, before the footer on sub-pages) ---------- */
.end-band{background:var(--forest-light);color:var(--stone);}
.end-band .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center;}
.end-band .h2{color:var(--white);}
.end-band .h2 em{color:var(--copper-pale);}
.end-band p{margin-top:20px;font-family:var(--serif);font-size:18px;line-height:1.62;color:var(--stone);max-width:52ch;}
.end-band .ctas{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end;}
@media (max-width:860px){ .end-band .wrap{grid-template-columns:1fr;} .end-band .ctas{justify-content:flex-start;} }

/* ---------- received / 404 ---------- */
.simple-page{min-height:60vh;display:flex;align-items:center;}
.simple-page .h2{max-width:20ch;}
.simple-page .sig{margin-top:22px;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--forest);}
.simple-page .links{display:flex;flex-wrap:wrap;gap:16px 32px;margin-top:36px;}

/* hero headline: the italic always takes its own line */
.hero h1 em{display:block;}
/* feature-card art: Evander grid in copper on forest */
.card-f-art img{opacity:0.55;object-position:center top;}

/* one-row masthead from 1100 up; descriptor only when there's room */
@media (min-width:1280px) and (max-width:1599px){
  .masthead .brand-desc{display:none;}
  .brand-name{font-size:20px;}
  .brand{gap:12px;}
  .mast-nav{gap:14px 18px;}
  .mast-nav .links{gap:8px 16px;}
  .mast-nav .links a{font-size:13px;letter-spacing:0.14em;}
  .mast-nav .links::after{width:20px;}
  .mast-nav .btn{padding:12px 16px;font-size:11px;letter-spacing:0.16em;}
}

/* ultra-wide: keep the hero copy inside a 1680px stage instead of pinned to the screen edge */
@media (min-width:1700px){
  .hero-left{padding-left:max(var(--gutter), calc((100vw - 1680px) / 2 + var(--gutter)));}
  .hero-left > *{max-width:760px;}
  .hero-left .standfirst{max-width:560px;}
}

/* v2.2 — one CTA ladder, service pages */
.cf-note{font-size:13px;line-height:1.5;color:var(--mist-dk);margin-top:-6px;}
.card-f h3 a.plain{color:inherit;text-decoration:none;}
.card-f h3 a.plain:hover{color:var(--copper-deep);}
.page-hero .eyebrow a{color:inherit;border-bottom:1px solid rgba(182,106,67,0.5);}
.page-hero .eyebrow a:hover{color:var(--copper-lt);}
.closing .routes{margin-top:28px;gap:18px;}

/* v2.2 — relief on the large bands: topo on page heroes, blueprint on navy, tree rings on forest. Evander stays in the home hero only. */
.page-hero{background:url(/assets/bg-topo.svg) center/cover no-repeat, var(--navy-light), var(--navy);}
.page-hero::after{background:linear-gradient(90deg, rgba(20,42,58,0.78) 0%, rgba(20,42,58,0.5) 55%, rgba(20,42,58,0.15) 100%);}
.page-hero-bg{display:none;}
.section.on-navy{background:url(/assets/bg-blueprint.svg) center top/240px 240px repeat, var(--navy-light), var(--navy);}
.section.on-forest,.end-band{background:url(/assets/bg-rings.svg) right -200px center/1400px 1400px no-repeat, var(--forest-light), var(--forest);}
@media (max-width:760px){
  .section.on-forest,.end-band{background-position:right -500px center;}
}

/* Services cards: one texture each, no Evander outside the home hero. Card-only copies, lines drawn stronger than the band originals. */
.card-f-art{background-color:var(--forest);}
.card-f-art.art-01{background:url(/assets/art-01c.svg) 30% 40%/1100px auto no-repeat, var(--forest);}
.card-f-art.art-02{background:url(/assets/art-02c.svg) center/160px 160px repeat, var(--forest);}
.card-f-art.art-03{background:url(/assets/art-03c.svg) 60% 50%/900px 900px no-repeat, var(--forest);}
.tenets.five{grid-template-columns:repeat(5,minmax(0,1fr));}
@media (max-width:1100px){ .tenets.five{grid-template-columns:repeat(2,minmax(0,1fr));} }
.tenets.five .tenet{padding:24px 20px;}
.tenets.five .tenet h4{font-size:18px;}
.tenets:not(.five) > .tenet:last-child:nth-child(odd){grid-column:1 / -1;}
.on-forest .tenet{background:rgba(20,42,58,0.55);}
.on-forest .tenets{background:rgba(216,212,203,0.12);border-color:rgba(216,212,203,0.12);}
/* closing after a cream section: keep the rule, shorten the gap above it */
.closing[data-tight]{padding-top:clamp(56px,7vh,80px);}
/* detail pass: tap targets and balanced headings */
.route a,.foot-contact a,.form-aside a,.quiet-note a{display:inline-block;padding:4px 0;}
.page-hero .eyebrow a{display:inline-block;padding:6px 0;margin:-6px 0;}
.prose h2,.prose h3{text-wrap:balance;}
/* phone detail pass */
.txtlink{display:inline;}
.txtlink span[aria-hidden]{margin-left:8px;}
@media (max-width:980px){ .page-hero .portrait{margin-top:44px;} }
@media (max-width:560px){ .s-next{display:none;} .s-row{gap:14px;} }

/* ===== flow: chapter chain, clickable spine, sideways page transition ===== */
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root){animation:kag-vt-out 200ms ease-in both;}
  ::view-transition-new(root){animation:kag-vt-slide 320ms cubic-bezier(.2,.7,.2,1) both;}
  @keyframes kag-vt-slide{from{opacity:0;transform:translateX(28px);}to{opacity:1;transform:none;}}
}
.chapters{background:var(--cream);border-top:1px solid var(--rule);padding:0 var(--gutter);}
@media (min-width:1061px){ .chapters{padding-left:max(var(--gutter), calc(var(--spine-w) + 28px));padding-right:max(var(--gutter), calc(var(--spine-w) + 28px));} }
.chapters-in{display:grid;grid-template-columns:1fr 1fr;}
.chap{display:flex;flex-direction:column;gap:8px;padding:40px 0 44px;color:var(--navy);text-decoration:none;}
.chap-next{text-align:right;align-items:flex-end;border-left:1px solid var(--rule);padding-left:32px;}
.chap-prev{padding-right:32px;}
.chap-empty{border:0;}
.chap-k{font-size:11px;color:var(--copper-deep);}
.chap-t{font-family:var(--serif);font-size:clamp(24px,2.6vw,34px);line-height:1.1;letter-spacing:-0.01em;transition:color .2s;}
.chap-s{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--charcoal);opacity:.75;max-width:34ch;}
.chap-next .chap-t::after{content:" \2192";color:var(--copper);}
.chap-prev .chap-t::before{content:"\2190  ";color:var(--copper);}
.chap:hover .chap-t{color:var(--copper-deep);}
@media (max-width:760px){
  .chapters-in{grid-template-columns:1fr;}
  .chap-next{border-left:0;border-top:1px solid var(--rule);padding-left:0;text-align:left;align-items:flex-start;}
  .chap-prev{padding-right:0;}
  .chap{padding:28px 0;}
}
/* spine as navigation */
.spine{pointer-events:none;}
.spine-index{position:absolute;left:0;right:0;bottom:36px;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:auto;}
.spine-index a{display:block;font-family:var(--label);font-weight:600;font-size:11px;letter-spacing:0.12em;line-height:1;padding:5px 6px;color:var(--mist-dk);text-decoration:none;border-left:1px solid transparent;transition:color .2s,border-color .2s;}
.spine-index a:hover{color:var(--navy);}
.spine-index a[aria-current="true"]{color:var(--copper-deep);border-left-color:var(--copper);}
.spine.on-navy .spine-index a{color:var(--mist);}
.spine.on-navy .spine-index a:hover,.spine.on-navy .spine-index a[aria-current="true"]{color:var(--copper-lt);}
.spine.on-navy .spine-index a[aria-current="true"]{border-left-color:var(--copper-lt);}
[data-folio]{scroll-margin-top:84px;}
.s-next a{color:inherit;text-decoration:none;padding:4px 2px;transition:color .2s;}
.s-next a:hover{color:var(--copper-deep);}
.on-navy .s-next a:hover,.on-forest .s-next a:hover{color:var(--copper-lt);}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* ===== v2.3: no section numbering, no rail. Services sub-nav under the masthead. ===== */
.spine,.chapters{display:none !important;}
@media (min-width:1061px){
  .section,.page-hero,.chapters{padding-left:var(--gutter);padding-right:var(--gutter);}
}
.s-row{margin-bottom:28px;}
.s-row .s-rule{max-width:240px;}
.subnav{position:sticky;top:var(--mast-h,70px);z-index:49;background:var(--cream);border-bottom:1px solid var(--rule);padding:0 var(--gutter);}
.subnav-in{max-width:var(--container);margin:0 auto;display:flex;align-items:center;gap:0 28px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.subnav-in::-webkit-scrollbar{display:none;}
.subnav-k{font-size:11px;color:var(--mist-dk);padding:16px 0;white-space:nowrap;}
.subnav a{font-family:var(--serif);font-size:17px;color:var(--charcoal);text-decoration:none;padding:15px 0 13px;border-bottom:2px solid transparent;white-space:nowrap;transition:color .2s,border-color .2s;}
.subnav a:hover{color:var(--navy);}
.subnav a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--copper);}
.subnav a.is-parent{color:var(--navy);}
.subnav a.sub{font-size:14px;color:var(--mist-dk);margin-left:-14px;}
.subnav a.sub::before{content:"\2197";font-size:11px;margin-right:6px;color:var(--copper);}
.subnav a.sub[aria-current="page"]{color:var(--navy);}
@media (max-width:560px){ .subnav-k{display:none;} .subnav-in{gap:0 20px;} .subnav a{font-size:15px;} }
/* one rhythm: same-colour joins carry one unit of space, colour changes carry one unit each side */
.statement{padding-top:var(--section-pad);padding-bottom:var(--section-pad);}
.closing{border-top:0;}
.closing[data-tight]{padding-top:0;}
.page-hero .wrap{padding-bottom:var(--section-pad);}
/* services as recognition → answer */
.card-f .card-kicker{margin-bottom:14px;}
.card-f .card-kicker span{font-size:11px;color:var(--copper-lt);}
.card-f h3{font-size:clamp(24px,2.3vw,32px);line-height:1.15;max-width:30ch;text-wrap:balance;}
.card-f .stages b{font-weight:600;color:var(--stone);}
.card-f .answer{margin-top:28px;padding-top:24px;border-top:1px solid rgba(216,212,203,0.18);}
.card-f .answer-k{font-size:11px;color:var(--copper);margin:0 0 8px;}
.card-f .answer h4{margin:0 0 8px;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.2;color:var(--white);}
.card-f .answer h4 a.plain{color:inherit;text-decoration:none;}
.card-f .answer h4 a.plain:hover{color:var(--copper-lt);}
.card-f .answer p{margin:0;}
.card-f .answer .card-f-links{margin-top:18px;}
/* services, simplified */
.card-f .answer{margin-top:26px;padding-top:22px;border-top:1px solid rgba(216,212,203,0.18);display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 28px;}
.card-f .answer-link{font-family:var(--serif);font-size:clamp(22px,2vw,28px);line-height:1.2;color:var(--white);text-decoration:none;transition:color .2s;}
.card-f .answer-link span{color:var(--copper);}
.card-f .answer-link:hover{color:var(--copper-lt);}
.card-f .answer .txtlink{font-size:12px;}
.card-f-body > p{max-width:52ch;}
.card-f .answer{flex-direction:column;align-items:flex-start;gap:12px;}

/* IPD page — video frame, triggers table, download link */
.vid{max-width:1120px;margin:0 auto;}
.vid video{display:block;width:100%;aspect-ratio:16/9;background:var(--navy);border-radius:0;}
.vid figcaption{font:400 15px/1.5 var(--sans);color:var(--charcoal);margin-top:12px;}
.section .vid{margin-top:40px;margin-bottom:40px;}
.tbl-wrap{overflow-x:auto;margin-top:40px;}
.tbl{width:100%;border-collapse:collapse;}
.tbl th{font-family:var(--label);font-weight:600;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--copper-deep);text-align:left;padding:0 20px 12px 0;border-bottom:1px solid var(--rule);}
.tbl td{font-size:16px;line-height:1.5;color:var(--charcoal);vertical-align:top;padding:16px 20px 16px 0;border-bottom:1px solid var(--rule);}
.tbl-note{margin-top:20px;color:var(--charcoal);}
.dl{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px 32px;}
@media (max-width:560px){
  .tbl thead{display:none;}
  .tbl tr{display:block;padding:14px 0;border-bottom:1px solid var(--rule);}
  .tbl td{display:block;border:0;padding:2px 0;}
  .tbl td:first-child{font-weight:600;color:var(--navy);}
  .tbl td:not(:first-child)::before{content:attr(data-label);display:block;font-family:var(--label);font-weight:600;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--copper-deep);margin-top:8px;}
}


/* v2.3 — phone hero: the navy panel becomes a band of the record and the three stats */
@media (max-width:760px){
  .hero-left{padding-top:52px;}
  .hero-cta{flex-direction:column;align-items:stretch;gap:12px;}
  .hero-cta .btn{width:100%;justify-content:center;}
  .hero-right{max-width:none;aspect-ratio:auto;min-height:0;padding:28px 24px;justify-content:flex-start;}
  .hero-right picture,.hero-right::after{display:none;}
  .panel-since{position:static;order:-1;margin-bottom:10px;text-align:center;}
}
@media (min-width:1600px){ .mast-nav .links a{letter-spacing:0.14em;} }

/* v2.3 — brief form: paired fields, interest in two columns, attach as a button */
@media (min-width:761px){
  .contact-form{grid-template-columns:repeat(2,minmax(0,1fr));}
  .contact-form > *{grid-column:1 / -1;}
  .contact-form > .cf-half{grid-column:auto;}
  .cf-radios .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
}
.cf-file{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;}
.cf-file .cf-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);}
.cf-field.cf-file label.btn{display:inline-flex;margin:0;padding:16px 28px;font-family:var(--label);font-weight:600;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;color:var(--navy);border-color:var(--copper-deep);cursor:pointer;}
.cf-field.cf-file label.btn:hover{color:var(--copper-deep);}
.cf-file .cf-file-input:focus-visible + label.btn{outline:2px solid var(--copper);outline-offset:2px;}
.cf-file-name{font-size:15px;color:var(--charcoal);overflow-wrap:anywhere;}

/* ---------- v2.4 ---------- */
/* standalone cards: a .card-w article set straight in .wrap (IPD on Owner's rep, Wildfire on Cost) takes the .duo card type */
.wrap > article.card-w{padding:40px;}
.wrap > article.card-w h3{margin-top:18px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.12;letter-spacing:-0.01em;color:var(--navy);}
.wrap > article.card-w p{margin-top:16px;font-family:var(--serif);font-size:17px;line-height:1.62;color:var(--charcoal);}
@media (max-width:760px){ .wrap > article.card-w{padding:30px 24px;} }
/* About testimonials: two labelled groups */
.testi-label{margin-top:48px;}
.testi-group + .testi-group .testi-label{margin-top:56px;}
.testi-group .testi-grid{margin-top:20px;}
.testi-grid.testi-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:1099px){ .testi-grid.testi-3{grid-template-columns:1fr;} }
/* About seats and credentials size to their own content */
.seats,.creds{align-items:start;}
/* Owner's rep stages: one column on phones, 15px text above */
@media (max-width:760px){ .tenets.five{grid-template-columns:1fr;} }
@media (min-width:761px){ .tenets.five .tenet p{font-size:15px;} }
/* Services sub-bar: IPD short label and a right-edge fade on phones */
.subnav .sn-short{display:none;}
@media (max-width:760px){
  .subnav .sn-full{display:none;}
  .subnav .sn-short{display:inline;}
  .subnav-in{padding-right:40px;}
  .subnav::after{content:"";position:absolute;top:0;right:0;bottom:1px;width:48px;background:linear-gradient(to right,rgba(244,240,232,0),var(--cream));pointer-events:none;}
}
/* About project groups: <details>, open and inert on desktop, collapsible on phones */
.pgroup > summary{display:block;list-style:none;cursor:default;}
.pgroup > summary::-webkit-details-marker{display:none;}
@media (max-width:760px){
  .pgroup > summary{position:relative;padding-right:28px;cursor:pointer;}
  .pgroup > summary::after{content:"+";position:absolute;right:2px;top:-3px;font-family:var(--sans);font-size:18px;letter-spacing:0;color:var(--copper-deep);}
  .pgroup[open] > summary::after{content:"\2212";}
}
