/* ==========================================================================
   RAINIER FRACTIONAL CONSULTING
   "A private financial practice, photographed for an architecture annual."
   Newsreader (editorial serif) + Spline Sans (grotesque). Near-monochrome
   ink + bone, brass rationed to a few uses per page. Hairlines, not cards.
   Photography and white space do the work.
   ========================================================================== */

:root {
  --ink:        #14161A;
  --ink-2:      #2B2F35;
  --paper:      #F4F2ED;
  --paper-2:    #ECE9E1;
  --paper-3:    #E3DFD4;
  --slate:      #5E6A6E;
  --slate-soft: #8A9296;
  --brass:      #9A7B43;
  --brass-soft: #BCA06B;
  --evergreen:  #222C26;

  --text:       #1A1D21;
  --muted:      #5E6A6E;
  --muted-2:    #8A9296;
  --on-dark:    #F1EFE8;
  --on-dark-mut:#A9AFAB;

  --hair:       rgba(20,22,26,.14);
  --hair-soft:  rgba(20,22,26,.08);
  --hair-dark:  rgba(241,239,232,.16);

  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans:  "Spline Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --maxw:        1180px;
  --maxw-narrow: 720px;
  --gut:         clamp(22px, 6vw, 92px);
  --sp:          clamp(88px, 12vw, 172px);
  --ease:        cubic-bezier(.22,.61,.36,1);

  --fs-mega:     clamp(6rem, 4rem + 12vw, 13rem);
  --fs-h4:       clamp(1.2rem, 1.05rem + .55vw, 1.55rem);
}

/* reset */
*,*::before,*::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html { scroll-behavior:auto; } }
body {
  font-family: var(--sans); font-size: 1.0625rem; line-height: 1.62;
  color: var(--text); background: var(--paper);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  font-variant-numeric: lining-nums; overflow-x: hidden;
}
img,svg,video { display:block; max-width:100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul { list-style: none; padding: 0; }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
::selection { background: var(--ink); color: var(--paper); }

/* ---------- type ---------- */
h1,h2,h3,h4,h5 { font-family: var(--serif); font-weight: 400; font-optical-sizing: auto; line-height: 1.06; letter-spacing: -.015em; color: var(--ink); }
.display    { font-size: clamp(2.7rem, 1.9rem + 3.6vw, 5rem); line-height: 1.0; letter-spacing: -.02em; }
h2,.h2      { font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem); }
h3,.h3      { font-size: clamp(1.35rem, 1.15rem + .8vw, 1.75rem); }
h4,.h4      { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); letter-spacing: -.01em; }
p { text-wrap: pretty; }
.lead { font-size: clamp(1.18rem, 1.05rem + .6vw, 1.45rem); line-height: 1.5; color: var(--ink-2); font-weight: 300; }
.serif { font-family: var(--serif); }
.tnum { font-variant-numeric: tabular-nums lining-nums; }
strong,b { font-weight: 600; color: var(--ink); }

.eyebrow {
  display: inline-block; font-family: var(--sans); font-weight: 600;
  font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--slate);
}
.eyebrow--center { text-align: center; }
.muted { color: var(--muted); }
.balance { text-wrap: balance; }

/* ---------- layout ---------- */
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gut); }
.container--narrow { max-width: var(--maxw-narrow); }
.section { padding-block: var(--sp); position: relative; }
.section--tight { padding-block: clamp(56px,7vw,96px); }
.section--paper-2, .section--cream { background: var(--paper-2); }
.section--cream-2 { background: var(--paper-3); }
.section--ink { background: var(--ink); color: var(--on-dark); }
.section--evergreen { background: var(--evergreen); color: var(--on-dark); }
.section--ink h1,.section--ink h2,.section--ink h3,.section--ink h4,
.section--evergreen h1,.section--evergreen h2,.section--evergreen h3,.section--evergreen h4 { color: var(--paper); }
.section--ink .lead,.section--evergreen .lead { color: var(--on-dark-mut); }
.section--ink .eyebrow,.section--evergreen .eyebrow { color: var(--brass-soft); }
.section--ink .muted,.section--evergreen .muted { color: var(--on-dark-mut); }
.section--hairline-top { border-top: 1px solid var(--hair); }

.section-head { max-width: 720px; margin-bottom: clamp(34px,4vw,52px); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head .eyebrow { margin-bottom: 26px; }
.section-head h2 { margin-bottom: 22px; }
.section-head .lead { color: var(--muted); }

.grid { display: grid; gap: clamp(28px,3.5vw,56px); }
.grid--2 { grid-template-columns: repeat(2,1fr); }
.grid--3 { grid-template-columns: repeat(3,1fr); }
.grid--4 { grid-template-columns: repeat(4,1fr); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,7vw,110px); align-items: center; }
.split--wide-left { grid-template-columns: 1.15fr .85fr; }
.stack > * + * { margin-top: 22px; }
.stack-sm > * + * { margin-top: 13px; }

hr,.rule { border: 0; height: 1px; background: var(--hair); }
.rule-brass { width: 46px; height: 1px; background: var(--brass); border: 0; }
.rule-gold { width: 46px; height: 1px; background: var(--brass); border: 0; }

/* ---------- buttons / links ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .7em;
  font-family: var(--sans); font-weight: 500; font-size: .94rem; letter-spacing: .01em;
  padding: 1em 1.7em; border: 1px solid var(--ink); color: var(--ink); background: transparent;
  border-radius: 0; transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn .ar { transition: transform .3s var(--ease); }
.btn:hover .ar { transform: translateX(4px); }
.btn--primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.btn--primary:hover { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--ghost { border-color: var(--hair); color: var(--ink); }
.btn--ghost:hover { border-color: var(--ink); }
.btn--dark { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.btn--dark:hover { background: #000; border-color:#000; }
.btn--on-dark { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.btn--on-dark:hover { background: transparent; color: var(--paper); border-color: var(--paper); }
.btn--ghost-gold { border-color: var(--brass); color: var(--brass); }
.btn--ghost-gold:hover { background: var(--brass); color: var(--paper); }
.btn--lg { padding: 1.15em 2em; font-size: 1rem; }
.btn--block { display: flex; width: 100%; justify-content: center; }

.textlink {
  display: inline-flex; align-items: center; gap: .55em; font-weight: 500; color: var(--ink);
  padding-bottom: 3px; background-image: linear-gradient(var(--brass),var(--brass));
  background-size: 0% 1px; background-position: 0 100%; background-repeat: no-repeat;
  transition: background-size .3s var(--ease), color .25s; position: relative;
}
.textlink::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--hair); }
.textlink:hover { background-size: 100% 1px; }
.textlink .ar { color: var(--brass); transition: transform .3s var(--ease); }
.textlink:hover .ar { transform: translateX(4px); }
.section--ink .textlink,.section--evergreen .textlink { color: var(--paper); }
.section--ink .textlink::after,.section--evergreen .textlink::after { background: var(--hair-dark); }

/* ---------- header ---------- */
.site-header { position: sticky; top: 0; z-index: 60; background: var(--paper); border-bottom: 1px solid var(--hair); transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.topstrip { display: none; } /* retired */
.masthead__in { display: flex; align-items: center; justify-content: space-between; gap: clamp(20px,2.4vw,40px); min-height: 84px; }
.masthead--center { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; }
.masthead--center > .navtoggle { justify-self: start; margin-left: -10px; }
.masthead--center > .brand { justify-self: center; }
.masthead--center > .header-cta { justify-self: end; }

.brand { display: inline-flex; align-items: baseline; gap: 8px; color: var(--ink); flex: none; }
.brand__mark { display: block; flex: none; height: 29px; width: auto; transform: translateY(8%); }
.brand__name { font-family: var(--serif); font-weight: 500; font-size: 1.58rem; letter-spacing: .005em; line-height: 1; white-space: nowrap; }
/* legacy classes, retained harmlessly for any remaining lockups */
.brand__col, .brand__text { display: inline-flex; flex-direction: column; line-height: 1; }
.brand__tag { font-family: var(--sans); font-weight: 500; font-size: .58rem; letter-spacing: .24em; text-transform: uppercase; color: var(--slate); }

.nav { display: flex; align-items: center; gap: clamp(15px,1.5vw,24px); margin-left: auto; }
.nav__link { font-family: var(--sans); font-weight: 500; font-size: .92rem; color: var(--ink); position: relative; padding: 4px 0; opacity: .82; transition: opacity .2s; white-space: nowrap; }
.nav__link:hover { opacity: 1; }
.nav__link::after { content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background: var(--brass); transition: right .3s var(--ease); }
.nav__link:hover::after,.nav__link[aria-current="page"]::after { right: 0; }
.nav__link[aria-current="page"] { opacity: 1; }

.header-cta { display: flex; align-items: center; gap: clamp(16px,1.6vw,22px); flex: none; }
.header-cta .scorecard-link { font-size: .9rem; color: var(--ink); opacity: .8; }
.header-cta .scorecard-link:hover { opacity: 1; color: var(--brass); }
.header-cta .btn { white-space: nowrap; padding: .72em 1.4em; font-size: .9rem; }

/* transparent-over-photo on the home hero */
body.has-photo-hero .site-header { position: fixed; left:0; right:0; top:0; background: transparent; border-color: transparent; color: var(--paper); }
body.has-photo-hero .site-header .brand,
body.has-photo-hero .site-header .brand__name,
body.has-photo-hero .site-header .nav__link,
body.has-photo-hero .site-header .scorecard-link { color: var(--paper); }
body.has-photo-hero .site-header .brand__tag { color: rgba(241,239,232,.7); }
body.has-photo-hero .site-header.is-stuck { position: fixed; background: var(--paper); border-bottom: 1px solid var(--hair); color: var(--ink); }
body.has-photo-hero .site-header.is-stuck .brand,
body.has-photo-hero .site-header.is-stuck .brand__name,
body.has-photo-hero .site-header.is-stuck .nav__link,
body.has-photo-hero .site-header.is-stuck .scorecard-link { color: var(--ink); }
body.has-photo-hero .site-header.is-stuck .brand__tag { color: var(--slate); }
/* header CTA: transparent over the photo hero, fades to solid black on scroll (matches the logo + hamburger) */
body.has-photo-hero .site-header:not(.is-stuck) .header-cta .btn--primary { background: transparent; color: var(--paper); border-color: rgba(244,242,237,.55); }
body.has-photo-hero .site-header:not(.is-stuck) .header-cta .btn--primary:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* mobile nav */
.navtoggle { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; color: inherit; }
.navtoggle span, .navtoggle span::before, .navtoggle span::after { content:""; display:block; width: 22px; height: 1px; background: currentColor; position: relative; transition: transform .3s var(--ease), opacity .2s; }
.navtoggle span::before { position:absolute; top:-7px; } .navtoggle span::after { position:absolute; top:7px; }
body.nav-open .navtoggle span { background: transparent; }
body.nav-open .navtoggle span::before { transform: translateY(7px) rotate(45deg); }
body.nav-open .navtoggle span::after { transform: translateY(-7px) rotate(-45deg); }
.mobile-nav { position: fixed; inset: 0 0 0 auto; width: min(440px,92vw); background: var(--paper); z-index: 95; transform: translateX(100%); transition: transform .45s var(--ease); padding: 28px var(--gut) 44px; display: flex; flex-direction: column; overflow-y: auto; border-left: 1px solid var(--hair); }
body.nav-open .mobile-nav { transform: translateX(0); }
.mobile-nav__top { display:flex; align-items:center; justify-content:space-between; margin-bottom: 26px; }
.mobile-nav__close { font-size: 1.7rem; width: 44px; height: 44px; }
.mobile-nav a.m-link { display:flex; justify-content:space-between; align-items:center; font-family: var(--serif); font-size: 1.6rem; padding: 16px 0; border-bottom: 1px solid var(--hair); color: var(--ink); }
.mobile-nav a.m-link .ar { color: var(--brass); }
.mobile-nav__cta { margin-top: auto; padding-top: 28px; display: grid; gap: 12px; }
.nav-backdrop { position: fixed; inset:0; background: rgba(20,22,26,.4); opacity:0; visibility:hidden; transition: opacity .3s; z-index: 90; }
body.nav-open .nav-backdrop { opacity:1; visibility:visible; }

/* ---------- photo hero (home) ---------- */
.hero { position: relative; min-height: 84svh; display: flex; align-items: flex-end; background: var(--ink); overflow: hidden; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; }
.hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,20,24,.52) 0%, rgba(18,20,24,.18) 30%, rgba(18,20,24,.26) 50%, rgba(18,20,24,.62) 72%, rgba(18,20,24,.90) 100%); }
.hero__inner { position: relative; z-index: 2; width: 100%; padding-bottom: clamp(56px,8vw,104px); padding-top: 140px; }
.hero .eyebrow { color: rgba(241,239,232,.85); margin-bottom: 26px; }
.hero h1 { color: var(--paper); max-width: 14ch; }
.hero__sub { color: rgba(241,239,232,.92); font-size: clamp(1.1rem,1rem+.5vw,1.35rem); line-height: 1.5; max-width: 46ch; margin-top: 28px; font-weight: 300; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 16px 26px; align-items: center; margin-top: 38px; }
.hero__scroll { position: absolute; right: var(--gut); bottom: clamp(40px,6vw,80px); z-index:2; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color: rgba(241,239,232,.7); writing-mode: vertical-rl; display:flex; align-items:center; gap:14px; }
.hero__scroll::after { content:""; width:1px; height:48px; background: rgba(241,239,232,.5); }
@media (max-width:720px){ .hero__scroll{ display:none; } }

/* full-bleed image band (section dividers) */
.imgband { position: relative; height: clamp(280px,42vw,520px); overflow: hidden; background: var(--ink); }
.imgband img { width:100%; height:100%; object-fit: cover; }
.imgband__cap { position:absolute; left: var(--gut); bottom: 26px; color: rgba(241,239,232,.9); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.imgband--tall { height: clamp(360px,52vw,640px); }

/* figure / framed photo */
.photo { position: relative; overflow: hidden; background: var(--paper-3); }
.photo img { width:100%; height:100%; object-fit: cover; }
.photo--portrait { aspect-ratio: 4/5; }
.photo--wide { aspect-ratio: 3/2; }
.photo__cap { margin-top: 14px; font-size: .82rem; color: var(--slate); }

/* legacy .stats compatibility -> render as statrow */
.stats { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--hair); background: transparent; gap: 0; }
.stats .stat { padding: clamp(24px,3vw,38px) clamp(8px,2vw,26px) 0 0; border-right: 1px solid var(--hair); background: transparent; text-align: left; }
.stats .stat:last-child { border-right: 0; }
.stats--light { border-color: var(--hair); }

/* ---------- editorial numbered list (replaces card grids) ---------- */
.linelist { border-top: 1px solid var(--hair); }
.lineitem { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: clamp(18px,3vw,48px); align-items: start; padding: clamp(30px,3.2vw,48px) 0; border-bottom: 1px solid var(--hair); }
.lineitem__n { font-family: var(--serif); font-size: 1.2rem; color: var(--brass); padding-top: .35em; font-variant-numeric: tabular-nums; }
.lineitem__body h3 { margin-bottom: 12px; }
.lineitem__body p { color: var(--muted); max-width: 56ch; }
.lineitem__aside { align-self: center; }
.section--evergreen .lineitem, .section--evergreen .linelist { border-color: var(--hair-dark); }
@media (max-width:760px){ .lineitem { grid-template-columns: 1fr; gap: 12px; } .lineitem__aside { margin-top: 8px; } }

/* checks */
.checks { display:grid; gap: 16px; }
.checks li { display:flex; gap: 15px; align-items: baseline; }
.checks li .ck { flex:none; width: 8px; height:8px; background: var(--brass); margin-top: .5em; }
.checks li b { font-weight: 600; }
.section--ink .checks li b, .section--evergreen .checks li b { color: var(--paper); }
.section--ink .checks li span, .section--evergreen .checks li span { color: var(--on-dark-mut); }
.checks li span { color: var(--muted); display:block; }
.section--ink .checks li span,.section--evergreen .checks li span { color: var(--on-dark-mut); }

/* generic content cards -> hairline-topped editorial blocks (no box/shadow) */
.card { background: transparent; border: 0; border-top: 1px solid var(--hair); border-radius: 0; padding: 30px 0 0; box-shadow: none; transition: border-color .3s; }
.card:hover { border-top-color: var(--brass); }
.card__icon { display: none; }
.card__num { font-family: var(--serif); font-size: 1.05rem; color: var(--brass); }
.card h3 { font-size: 1.3rem; margin: 14px 0 12px; }
.card p { color: var(--muted); }
.card__link { margin-top: 20px; display:inline-flex; align-items:center; gap:.5em; font-weight:500; font-size:.9rem; color: var(--ink); }
.card__link .ar { color: var(--brass); transition: transform .3s var(--ease); }
.card:hover .card__link .ar { transform: translateX(4px); }
.card--feature { border-top: 1px solid var(--ink); }
a.card:hover h3 { color: var(--brass); }

/* process steps -> numbered editorial list */
.steps { border-top: 1px solid var(--hair); }
.step { display:grid; grid-template-columns: 5rem 1fr; gap: clamp(20px,3vw,44px); padding: clamp(28px,3vw,44px) 0; border-bottom: 1px solid var(--hair); align-items: start; }
.step__rail { display: block; }
.step__num { font-family: var(--serif); font-size: 1.6rem; color: var(--brass); font-variant-numeric: tabular-nums; }
.step__line { display: none; }
.step h3 { font-size: 1.4rem; margin-bottom: 10px; }
.step p { color: var(--muted); max-width: 58ch; }
.steps--row { display: grid; grid-template-columns: repeat(4,1fr); border: 0; gap: clamp(24px,3vw,40px); }
.steps--row .step { grid-template-columns: 1fr; border: 0; border-top: 1px solid var(--hair); padding: 24px 0 0; }
.section--ink .steps,.section--ink .step,.section--evergreen .steps,.section--evergreen .step { border-color: var(--hair-dark); }
@media (max-width:600px){ .steps--row { grid-template-columns: 1fr; } }

/* quote / pull-quote */
.quote { border: 0; background: transparent; padding: 0; border-radius: 0; }
.quote__mark { display: none; }
.quote p { font-family: var(--serif); font-weight: 400; font-size: clamp(1.5rem,1.2rem+1.4vw,2.4rem); line-height: 1.32; letter-spacing: -.012em; color: var(--ink); }
.quote__by { margin-top: 28px; display: flex; align-items: center; gap: 14px; }
.quote__avatar { display: none; }
.quote__name { font-weight: 600; font-size: .98rem; color: var(--ink); }
.quote__role { color: var(--slate); font-size: .9rem; }
.section--ink .quote p,.section--evergreen .quote p { color: var(--paper); }
.section--ink .quote__name,.section--evergreen .quote__name { color: var(--paper); }

/* case outcome */
.case { display:block; border: 0; background: transparent; border-radius: 0; }
.case__media { background: transparent; padding: 0; min-height: 0; color: inherit; }
.case__tag { font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color: var(--slate); }
.case__big { font-family: var(--serif); font-weight: 400; font-size: clamp(2.6rem,1.8rem+2.8vw,4rem); color: var(--ink); line-height: 1; letter-spacing:-.02em; font-variant-numeric: tabular-nums; }
.case__big .u { color: var(--brass); }
.case__body { padding: 0; }
.case__metrics { display:flex; gap: 40px; margin-top: 24px; flex-wrap: wrap; }
.case__metrics div b { font-family: var(--serif); font-size: 1.7rem; color: var(--ink); display:block; font-variant-numeric: tabular-nums; }
.case__metrics div span { font-size:.82rem; color: var(--slate); }

/* accordion */
.accordion { border-top: 1px solid var(--hair); }
.ac__item { border-bottom: 1px solid var(--hair); }
.ac__q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; text-align:left; padding: 28px 0; font-family: var(--serif); font-size: clamp(1.15rem,1rem+.5vw,1.4rem); color: var(--ink); transition: color .2s; }
.ac__q:hover { color: var(--brass); }
.ac__ic { flex:none; width: 16px; height:16px; position: relative; }
.ac__ic::before,.ac__ic::after { content:""; position:absolute; background: var(--brass); transition: transform .3s var(--ease); }
.ac__ic::before { width:16px; height:1px; top:50%; left:0; transform: translateY(-50%); }
.ac__ic::after { width:1px; height:16px; left:50%; top:0; transform: translateX(-50%); }
.ac__item.is-open .ac__ic::after { transform: translateX(-50%) scaleY(0); }
.ac__a { overflow: hidden; height: 0; transition: height .4s var(--ease); }
.ac__a-in { padding: 0 0 30px; color: var(--muted); max-width: 70ch; font-size: 1.05rem; }
.section--ink .accordion,.section--ink .ac__item { border-color: var(--hair-dark); }
.section--ink .ac__q { color: var(--paper); }
.section--ink .ac__a-in { color: var(--on-dark-mut); }

/* CTA band */
.cta-band { background: var(--evergreen); color: var(--on-dark); }
.cta-band__contour { display: none; }
.cta-band__in { display: grid; grid-template-columns: 1.4fr .6fr; gap: clamp(32px,5vw,72px); align-items: center; padding-block: var(--sp); }
.cta-band h2 { color: var(--paper); }
.cta-band .lead { color: var(--on-dark-mut); }
.cta-band__actions { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.cta-band__note { color: var(--on-dark-mut); font-size: .84rem; margin-top: 6px; }
.cta-inline { display:flex; align-items:center; justify-content:space-between; gap: 28px; flex-wrap: wrap; border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); padding: 30px 0; }

/* forms - editorial underline inputs */
.form { display: grid; gap: 26px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.field { display: grid; gap: 8px; }
.field label { font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.field label .req { color: var(--brass); }
.field input,.field select,.field textarea {
  width:100%; padding: .65em 0; background: transparent; border: 0; border-bottom: 1px solid var(--hair);
  border-radius: 0; font-size: 1.05rem; color: var(--ink); transition: border-color .25s;
}
.field select { padding-right: 1em; }
.field textarea { min-height: 96px; resize: vertical; }
.field input:focus,.field select:focus,.field textarea:focus { outline:none; border-bottom-color: var(--brass); }
.field input::placeholder,.field textarea::placeholder { color: var(--muted-2); }
.field.is-error input,.field.is-error select,.field.is-error textarea { border-bottom-color: #B4452F; }
.field__err { font-size:.78rem; color:#B4452F; display:none; }
.field.is-error .field__err { display:block; }
.form__note { font-size: .82rem; color: var(--slate); }
.form-card { background: transparent; border: 0; border-top: 1px solid var(--ink); border-radius: 0; padding: 40px 0 0; box-shadow: none; }
.form-success { display:none; text-align:left; padding: 10px 0; }
.form-success.show { display:block; }
.form-success .ok { width:46px; height:46px; border:1px solid var(--brass); color: var(--brass); display:flex; align-items:center; justify-content:center; margin-bottom: 18px; }

/* badges / chips - minimal, no pills */
.badge { display:inline-block; font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color: var(--slate); }
.chip { display:inline-flex; align-items:center; font-size:.86rem; font-weight:500; color: var(--ink-2); border:1px solid var(--hair); border-radius:0; padding:.5em 1em; background:transparent; }
.section--ink .chip,.section--evergreen .chip { border-color: var(--hair-dark); color: var(--on-dark); }
.pill-list { display:flex; flex-wrap:wrap; gap: 12px; }

/* founder */
.founder { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px,5vw,72px); align-items:center; }
.founder__photo { aspect-ratio: 4/5; background: var(--paper-3); overflow: hidden; }
.founder__photo img { width:100%; height:100%; object-fit: cover; }
.founder__cred { display:flex; gap:10px; flex-wrap:wrap; margin-top: 24px; }

/* interior page hero (paper, type-led) */
.page-hero { background: var(--paper); border-bottom: 1px solid var(--hair); padding-block: clamp(80px,8vw,120px) clamp(48px,6vw,80px); position: relative; }
.page-hero__contour { display: none; }
.page-hero .crumbs { font-size: .78rem; letter-spacing: .04em; color: var(--slate); margin-bottom: 26px; }
.page-hero .crumbs a:hover { color: var(--brass); }
.page-hero h1 { max-width: 18ch; font-size: clamp(2.6rem, 1.9rem + 3vw, 4.2rem); line-height: 1.04; }
.page-hero .lead { color: var(--muted); max-width: 60ch; margin-top: 24px; }
.page-hero--photo { background: var(--ink); border-bottom: 0; color: var(--on-dark); overflow: hidden; }
.page-hero--photo .page-hero__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.44; }
.page-hero--photo .container { position: relative; z-index:1; }
.page-hero--photo h1 { color: var(--paper); }
.page-hero--photo .crumbs,.page-hero--photo .lead { color: var(--on-dark-mut); }

/* footer */
.footer { background: var(--ink); color: var(--on-dark); padding-top: clamp(64px,7vw,96px); }
.footer__top { display:grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: clamp(28px,4vw,56px); padding-bottom: 54px; border-bottom: 1px solid var(--hair-dark); }
.footer .brand { color: var(--paper); display: inline-flex; align-items: baseline; gap: 8px; padding: 0; }
.footer .brand:hover { padding-left: 0; }
.footer .brand__name { color: var(--paper); }
.footer .brand__tag { color: var(--on-dark-mut); }
.footer__blurb { color: var(--on-dark-mut); margin-top: 24px; max-width: 34ch; font-size: .96rem; }
.footer__col h4 { font-family: var(--sans); font-size: .72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color: var(--brass-soft); margin-bottom: 22px; }
.footer__col a { display:block; color: var(--on-dark); padding: 7px 0; font-size: .96rem; opacity: .85; transition: opacity .2s, padding-left .2s; }
.footer__col a:hover { opacity: 1; padding-left: 4px; color: var(--brass-soft); }
.footer__bottom { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-block: 28px; color: var(--on-dark-mut); font-size: .84rem; }
.footer__bottom a:hover { color: var(--brass-soft); }
.footer__social { display:flex; gap: 16px; }
.footer__social a { color: var(--on-dark); opacity: .8; }
.footer__social a:hover { opacity: 1; color: var(--brass-soft); }
.footer__newsletter { display:flex; gap: 0; margin-top: 16px; border-bottom: 1px solid var(--hair-dark); }
.footer__newsletter input { flex:1; padding:.7em 0; background: transparent; border:0; color: var(--paper); }
.footer__newsletter input:focus { outline:none; }
.footer__newsletter input::placeholder { color: var(--on-dark-mut); }
.footer__newsletter button { padding: 0 .4em; color: var(--brass-soft); }

/* cost comparison */
.compare { display:grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--hair); }
.compare__col { padding: clamp(26px,2.6vw,40px); border-right: 1px solid var(--hair); text-align:left; }
.compare__col:last-child { border-right: 0; }
.compare__col--hot { background: var(--ink); color: var(--on-dark); }
.compare__col--hot .compare__amt { color: var(--brass-soft); }
.compare__lbl { font-size:.74rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color: var(--slate); }
.compare__col--hot .compare__lbl { color: var(--brass-soft); }
.compare__amt { font-family: var(--serif); font-size: clamp(1.9rem,1.4rem+1.4vw,2.6rem); color: var(--ink); margin: 14px 0 8px; font-variant-numeric: tabular-nums; }
.compare__sub { font-size:.92rem; color: var(--muted); }
.compare__col--hot .compare__sub { color: var(--on-dark-mut); }
@media (max-width:760px){ .compare { grid-template-columns: 1fr; } .compare__col { border-right:0; border-bottom: 1px solid var(--hair); } }

.svc__media,.founder__photo,.case__media { border-radius: 0; }

/* ---------- interactive tools (scorecard / calculator) ---------- */
.tool { max-width: 720px; margin-inline:auto; }
.tool__progress { height: 1px; background: var(--hair); margin-bottom: 34px; }
.tool__progress i { display:block; height: 1px; width:0; background: var(--brass); transition: width .4s var(--ease); }
.quiz__step { display:none; }
.quiz__step.is-active { display:block; animation: fadein .4s var(--ease); }
@keyframes fadein { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform:none; } }
.quiz__q { font-family: var(--serif); font-size: clamp(1.4rem,1.1rem+1vw,1.9rem); color: var(--ink); margin-bottom: 6px; }
.quiz__hint { color: var(--slate); margin-bottom: 26px; }
.opt { display:flex; align-items:center; gap:16px; width:100%; text-align:left; padding: 18px 0; border:0; border-bottom:1px solid var(--hair); background:transparent; margin-bottom: 0; font-size:1.05rem; color: var(--ink-2); transition: color .2s, padding-left .2s; }
.opt:hover { color: var(--ink); padding-left: 6px; }
.opt.is-sel { color: var(--ink); }
.opt__k { flex:none; width:26px; height:26px; border:1px solid var(--hair); display:flex; align-items:center; justify-content:center; font-weight:600; font-size:.82rem; color: var(--slate); }
.opt.is-sel .opt__k,.opt:hover .opt__k { border-color: var(--brass); color: var(--brass); }
.quiz__nav { display:flex; justify-content:space-between; align-items:center; margin-top: 28px; }
.tool__result { text-align:left; }
.tool__gauge { font-family: var(--serif); font-size: clamp(3.4rem,2.4rem+3vw,5rem); color: var(--brass); line-height:1; font-variant-numeric: tabular-nums; }
.tool__band { display:inline-block; font-weight:600; letter-spacing:.04em; font-size:.78rem; text-transform:uppercase; padding:.5em 0; color: var(--brass); border-bottom: 1px solid var(--brass); margin: 16px 0; }
.calc__out { background: var(--evergreen); color: var(--on-dark); padding: clamp(26px,3vw,40px); }
.calc__big { font-family: var(--serif); font-size: clamp(3rem,2rem+3vw,4.4rem); color: var(--brass-soft); line-height:1; font-variant-numeric: tabular-nums; }
.calc__big.warn { color: #D99A6C; }
.calc__verdict { color: var(--on-dark-mut); margin-top: 14px; max-width: 46ch; }
.calc__bars { display:flex; gap:6px; align-items:flex-end; height:80px; margin: 24px 0; }
.calc__bars i { flex:1; background: var(--brass); border-radius:0; min-height:4px; opacity:.7; }

/* ---------- article / insights prose ---------- */
.article-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; color: var(--slate); font-size:.84rem; margin-top: 24px; }
.article-meta .badge { color: var(--brass); }
.article-meta .sep { width:3px; height:3px; border-radius:50%; background: var(--brass); display:inline-block; }
.article { max-width: 700px; margin-inline:auto; }
.article > * + * { margin-top: 1.4em; }
.article p { font-size: 1.16rem; line-height: 1.76; color: var(--ink-2); }
.article .article__lead { font-family: var(--serif); font-size: clamp(1.35rem,1.1rem+.8vw,1.7rem); line-height: 1.42; color: var(--ink); }
.article h2 { font-size: clamp(1.6rem,1.35rem+1vw,2.1rem); margin-top: 1.7em; margin-bottom: .1em; }
.article h3 { font-size: clamp(1.2rem,1.05rem+.5vw,1.45rem); margin-top: 1.4em; margin-bottom: .1em; }
.article ul,.article ol { padding-left: 0; }
.article ul { list-style: none; }
.article ul > li { position: relative; padding-left: 1.6em; }
.article ul > li::before { content:""; position:absolute; left:0; top:.7em; width:8px; height:1px; background: var(--brass); }
.article ol { counter-reset: ol; list-style: none; }
.article ol > li { position: relative; padding-left: 2em; counter-increment: ol; }
.article ol > li::before { content: counter(ol); position:absolute; left:0; top:0; font-family: var(--serif); color: var(--brass); }
.article li { font-size: 1.1rem; line-height: 1.66; color: var(--ink-2); margin-top: .55em; }
.article a:not(.btn) { color: var(--ink); border-bottom: 1px solid var(--brass); padding-bottom: 1px; }
.article a:not(.btn):hover { color: var(--brass); }
.article blockquote { border-left: 1px solid var(--brass); padding: 2px 0 2px 26px; margin: 1.6em 0; font-family: var(--serif); font-size: clamp(1.3rem,1.1rem+.6vw,1.6rem); line-height: 1.4; color: var(--ink); }
.article hr { margin: 2.2em 0; }
.key-takeaways { background: var(--paper-2); border: 0; border-left: 1px solid var(--brass); border-radius: 0; padding: clamp(22px,2.4vw,30px); margin: 2em 0; }
.key-takeaways h4 { font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color: var(--slate); margin-bottom: 16px; }
.article-tool { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; background: var(--evergreen); color: var(--on-dark); border-radius:0; padding: 26px 30px; margin: 2em 0; }
.article-tool p { color: var(--on-dark-mut); margin:0; }
.article-tool strong { color: var(--paper); }
/* button sits on the dark evergreen ground: light label + brass edge, inverts on hover */
.article-tool .btn--primary { color: var(--paper); border-color: var(--brass-soft); }
.article-tool .btn--primary:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.article-tool .btn--primary .ar { color: var(--brass-soft); }
.article-tool .btn--primary:hover .ar { color: var(--brass-ink); }
.article-share { display:flex; align-items:center; gap:14px; margin-top: 40px; padding-top: 26px; border-top: 1px solid var(--hair); color: var(--slate); font-size:.9rem; }
.related-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: clamp(24px,3vw,44px); }
@media (max-width:860px){ .related-grid { grid-template-columns: 1fr; } }

/* legacy hide */
.marquee,.hero__topo,.hero__ascent,.hero__gridlabels,.elev-rail,.hero__contour,.bignum,.divider-contour,.svc__n { display: none !important; }
.em-gold { color: inherit; font-style: normal; }

/* reveal */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
.hero .reveal, .page-hero .reveal { opacity: 1 !important; transform: none !important; transition: none; }
.reveal[data-delay="1"]{ transition-delay:.08s; }
.reveal[data-delay="2"]{ transition-delay:.16s; }
.reveal[data-delay="3"]{ transition-delay:.24s; }
.reveal[data-delay="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity:1; transform:none; transition:none; } .hero__img { transform: none !important; } }

.skip { position:absolute; left:-9999px; top:0; background: var(--ink); color: var(--paper); padding:12px 18px; z-index:200; }
.skip:focus { left:0; }

/* ---------- responsive ---------- */
@media (max-width: 1080px){ .footer__top { grid-template-columns: 1.4fr 1fr 1fr; } .footer__col--news { grid-column: 1/-1; } }
@media (max-width: 960px){
  .header-cta .btn { display: none; }
  .split, .founder, .cta-band__in, .compare { grid-template-columns: 1fr; }
  .grid--4 { grid-template-columns: repeat(2,1fr); }
  .grid--3 { grid-template-columns: repeat(2,1fr); }
  .related-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px){
  .grid--4,.grid--3,.grid--2 { grid-template-columns: 1fr; }
  .form__row { grid-template-columns: 1fr; }
  .hero__actions .btn { width: 100%; }
  .footer__top { grid-template-columns: 1fr; }
  .footer__bottom { justify-content:center; text-align:center; }
}

/* ==========================================================================
   CRUSH LAYER - financial substance: work-product artifacts, proof, qualifiers
   The deliverable becomes the recurring visual language. Numbers as design.
   ========================================================================== */

/* industries metric stacks */
.verticals { border-top:1px solid var(--hair); }
.vrow { display:grid; grid-template-columns: .8fr 2fr; gap: clamp(14px,3vw,48px); padding: clamp(24px,2.6vw,38px) 0; border-bottom: 1px solid var(--hair); align-items:start; }
.vrow h3 { font-size: 1.35rem; }
.vrow .vsub { color: var(--slate); font-size:.9rem; margin-top:4px; }
.vrow .kpis { display:flex; flex-wrap:wrap; gap: 8px 8px; }
.vrow .kpi { font-size:.82rem; color: var(--ink-2); border:1px solid var(--hair); padding:.42em .85em; font-variant-numeric: tabular-nums; white-space:nowrap; }
@media (max-width:700px){ .vrow { grid-template-columns: 1fr; gap:14px; } }

/* fit / not-a-fit qualifier */
.fit { display:grid; grid-template-columns: 1fr 1fr; border:1px solid var(--hair); }
.fit__col { padding: clamp(26px,3vw,40px); }
.fit__col:first-child { border-right: 1px solid var(--hair); }
.fit__h { font-size:.74rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom: 20px; }
.fit__col--yes .fit__h { color: var(--brass); }
.fit__col--no .fit__h { color: var(--slate); }
.fit__col ul { display:grid; gap: 14px; }
.fit__col li { display:flex; gap:13px; font-size:1.02rem; color: var(--ink-2); align-items:baseline; }
.fit__col li::before { content:""; flex:none; width:7px; height:7px; margin-top:.5em; background: var(--brass); }
.fit__col--no li::before { height:1px; width:9px; margin-top:.7em; background: var(--slate); }
@media (max-width:700px){ .fit { grid-template-columns:1fr; } .fit__col:first-child { border-right:0; border-bottom:1px solid var(--hair); } }

/* dated 90-day roadmap */
.roadmap { display:grid; grid-template-columns: repeat(3,1fr); border-top:1px solid var(--hair); }
.roadmap__step { padding: 26px clamp(12px,1.6vw,22px) 0 0; border-right: 1px solid var(--hair); }
.roadmap__step:last-child { border-right:0; padding-right:0; }
.roadmap__w { font-family: var(--serif); font-size:1.05rem; color: var(--brass); }
.roadmap__step h4 { font-size:1.05rem; margin:8px 0 8px; }
.roadmap__step p { color: var(--muted); font-size:.94rem; }
@media (max-width:760px){ .roadmap { grid-template-columns:1fr; } .roadmap__step{ border-right:0; border-bottom:1px solid var(--hair); padding:22px 0; } .roadmap__step:last-child{ border-bottom:0; } }
.section--evergreen .roadmap,.section--evergreen .roadmap__step { border-color: var(--hair-dark); }

/* guarantee chips row */
.guarantees { display:flex; flex-wrap:wrap; gap: 14px 30px; }
.guarantee { display:flex; align-items:center; gap:11px; font-size:.94rem; color: var(--ink-2); }
.guarantee::before { content:""; width:7px; height:7px; background:var(--brass); flex:none; }
.section--evergreen .guarantee { color: var(--on-dark); }

/* services tier: outcome + artifact + proof line */
.tier__out { font-family: var(--serif); font-size: 1.15rem; color: var(--ink); margin: 12px 0 10px; letter-spacing:-.01em; }
.tier__art { font-size:.95rem; color: var(--muted); }
.tier__proof { font-size:.84rem; color: var(--brass); font-weight:600; margin-top:10px; font-variant-numeric: tabular-nums; }

/* trust line + rating */
.trustline { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; font-size:.84rem; color: var(--slate); }
.trustline .stars { color: var(--brass); letter-spacing:1px; }
.hero .trustline { color: rgba(241,239,232,.82); }
.hero .trustline .stars { color: var(--brass-soft); }

/* ==========================================================================
   AUDIT FIXES - token aliases, WCAG AA contrast, polish
   ========================================================================== */
:root {
  --brass-ink:  #6E5526;                 /* AA-contrast brass for small text on light grounds */
  --gold:       var(--brass);            /* aliases for legacy inline-style references */
  --gold-soft:  var(--brass-soft);
  --mist:       var(--on-dark-mut);
  --mist-2:     var(--on-dark-mut);
  --line:       var(--hair);
  --line-ink:   rgba(241,239,232,.18);
}
.text-gold { color: var(--brass-ink); }

/* small brass text -> darker brass-ink so it passes WCAG AA on bone/paper-2 */
.tier__proof, .case__tag, .artifact__tag, .price--featured::before,
.roadmap__w, .article-meta .badge, .badge, .vsub { color: var(--brass-ink); }
/* the brass on-dark accents stay light (they sit on ink/evergreen, contrast is fine) */
.section--ink .badge, .section--evergreen .badge, .section--ink .article-meta .badge { color: var(--brass-soft); }

/* suppress any stray glyph inside the brass tick squares (keep the square only) */
.checks li .ck { font-size: 0; overflow: hidden; color: transparent; }

/* deal table / wide tables: never clip on mobile, give a scroll affordance */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 600px){
}
/* bench/pod grid: clean 3 -> 1 (no orphan at tablet) */
@media (max-width: 960px) and (min-width: 701px){ .grid--3.team-grid { grid-template-columns: 1fr; } }

/* newsletter footer input: visible focus, accessible */
.footer__newsletter input:focus { outline: none; border-bottom-color: var(--brass-soft); }
.footer__newsletter:focus-within { border-bottom-color: var(--brass-soft); }
/* proof line inside the editorial line-list: keep the readable brass emphasis (beats .lineitem__body p) */
.lineitem__body .tier__proof, .lineitem__body p.tier__proof { color: var(--brass-ink); }
/* roadmap step title is now h3 (was h4) for correct heading order */
.roadmap__step h3 { font-size: 1.05rem; margin: 8px 0 8px; }

/* ---- polish pass: mobile ergonomics + persistent booking CTA ---- */
@media (max-width:600px){
  .steps .step { grid-template-columns: 1fr; gap: 6px; }
  .steps .step__rail { margin-bottom: 2px; }
  .cta-band__actions .btn { width:100%; justify-content:center; }
  .article-tool .btn { width:100%; justify-content:center; }
  .hero__actions .btn { width:100%; justify-content:center; }
}
.mobile-cta { display:none; }
@media (max-width:960px){
  .mobile-cta { display:flex; align-items:center; justify-content:center; gap:.55em; position:fixed; left:0; right:0; bottom:0; z-index:80; background:var(--ink); color:var(--paper); font-family:var(--sans); font-weight:500; font-size:.98rem; letter-spacing:.01em; padding:15px 20px; border-top:1px solid rgba(241,239,232,.14); box-shadow:0 -6px 24px rgba(20,22,26,.16); }
  .mobile-cta .ar { color: var(--brass-soft); transition: transform .3s var(--ease); }
  .mobile-cta:active .ar { transform: translateX(3px); }
  body.has-mobile-cta { padding-bottom: 58px; }
  body.nav-open .mobile-cta { display:none; }
}
