/* BSG Consulting site styles. Tokens come from the BSG design system. */
:root{
  --cream:#DFD7CD; --stone:#CEC2B3; --slate:#778185; --charcoal:#2D3338; --sage:#92AB85;
  --surface:var(--cream); --surface-raised:var(--stone); --surface-inverse:var(--charcoal);
  --ink:var(--charcoal); --ink-soft:#424B50; --ink-on-inverse:var(--cream);
  --rule:var(--stone); --accent:var(--sage); --on-accent:var(--charcoal); --focus:var(--charcoal);
  --raised-dark:#3A4147; --soft-on-inverse:#C9C2B8;
  --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px; --space-5:32px; --space-6:48px; --space-7:64px;
  --font-sans:Aptos,"Segoe UI",Calibri,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-serif:"Libre Baskerville",Baskerville,"Baskerville Old Face",Georgia,serif;
  --font-script:"Segoe Script","Segoe Print","Bradley Hand",cursive;
  --max:1200px; --gutter:clamp(20px,4vw,32px);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-sans);font-size:19px;line-height:1.55;color:var(--ink);background:var(--cream) url(img/texture-light.jpg) center top/cover fixed;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.12;font-weight:700;letter-spacing:-.01em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.on-ink :focus-visible,.site-footer :focus-visible,.btn--inverse:focus-visible{outline-color:var(--sage)}
.skip{position:absolute;left:var(--space-3);top:-80px;background:var(--charcoal);color:var(--cream);padding:var(--space-3) var(--space-4);z-index:100;font-weight:700}
.skip:focus{top:var(--space-3)}
.wrap{width:100%;max-width:calc(var(--max) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type */
.eyebrow{font-size:14px;line-height:1.2;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:var(--space-3)}
.on-ink .eyebrow{color:var(--soft-on-inverse)}
.h-display{font-size:clamp(36px,4.9vw,64px);line-height:1.04;letter-spacing:-.025em}
.h-section{font-size:clamp(32px,4.2vw,52px);line-height:1.1;letter-spacing:-.02em;max-width:20ch}
.h-section.wide{max-width:26ch}
.lead{font-size:clamp(19px,1.7vw,23px);line-height:1.5;max-width:58ch}
.soft{color:var(--ink-soft)}
.on-ink .soft{color:var(--soft-on-inverse)}
.script{font-family:var(--font-script);font-size:clamp(20px,2.2vw,28px);line-height:1.35}

/* sections */
section{position:relative}
.sec{padding:clamp(64px,9vw,112px) 0}
.on-light{background:var(--cream) url(img/texture-light.jpg) center/cover}
.on-stone{background:var(--stone) url(img/texture-stone.jpg) center/cover}
.on-ink{background:var(--charcoal);color:var(--ink-on-inverse)}
.sec-head{display:flex;flex-direction:column;margin-bottom:clamp(36px,5vw,64px)}
.sec-head .lead{margin-top:var(--space-4)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:16px 30px;font:inherit;font-weight:700;font-size:18px;line-height:1.2;text-decoration:none;border:2px solid var(--charcoal);background:var(--charcoal);color:var(--cream);cursor:pointer;border-radius:0;transition:background-color .2s,color .2s,border-color .2s}
.btn img{width:20px;height:20px;transition:transform .2s}
.btn:hover{background:var(--sage);border-color:var(--sage);color:var(--charcoal)}
.btn:hover img{transform:translateX(4px);filter:brightness(0)}
.btn--inverse img{filter:brightness(0)}
.btn--ghost{background:transparent;color:var(--charcoal)}
.btn--ghost:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--cream)}
.btn--inverse{background:var(--cream);border-color:var(--cream);color:var(--charcoal)}
.btn--inverse:hover{background:var(--sage);border-color:var(--sage)}
.btn--sm{min-height:48px;padding:12px 22px;font-size:16px}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.link{font-weight:700;text-underline-offset:4px;text-decoration-thickness:2px}
.link:hover{text-decoration-color:var(--sage)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--cream) url(img/texture-light.jpg) center/cover;border-bottom:1px solid var(--stone)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:84px}
.nav .logo img{height:60px;width:auto}
.nav-links{display:flex;align-items:center;gap:var(--space-5)}
.nav-links a:not(.btn){font-weight:700;font-size:16px;text-decoration:none;padding:8px 2px;border-bottom:2px solid transparent}
.nav-links a:not(.btn):hover{border-bottom-color:var(--sage)}
.nav-toggle{display:none;min-height:48px;min-width:48px;background:transparent;border:2px solid var(--charcoal);color:var(--charcoal);font:inherit;font-weight:700;padding:0 16px;cursor:pointer;border-radius:0}
@media (max-width:980px){
  .nav-toggle{display:inline-flex;align-items:center}
  .nav-links{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--cream) url(img/texture-light.jpg) center/cover;border-bottom:1px solid var(--stone);padding:var(--space-3) var(--gutter) var(--space-4);display:none}
  .nav-links.open{display:flex}
  .nav-links a:not(.btn){padding:16px 0;border-bottom:1px solid var(--stone);font-size:18px}
  .nav-links .btn{margin-top:var(--space-3)}
}

/* hero */
.hero{padding:clamp(40px,6vw,88px) 0 clamp(56px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:clamp(32px,6vw,88px);align-items:center}
.hero .lead{margin:var(--space-5) 0 var(--space-5)}
.hero-note{margin-top:var(--space-4);font-size:17px;color:var(--ink-soft);display:flex;gap:12px;align-items:center}
.hero-note img{width:22px;height:22px;flex:none}
.hero-tags{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--stone);font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.hero-tags li{display:flex;align-items:center;gap:10px}
.hero-tags li::before{content:"";width:8px;height:8px;background:var(--sage);display:block}
.hero-card{background:var(--stone) url(img/texture-stone.jpg) center/cover}
.hero-card .frame{padding:clamp(28px,4vw,48px) clamp(28px,4vw,48px) clamp(24px,3vw,32px);display:flex;justify-content:center}
.headshot{width:100%;max-width:380px;aspect-ratio:1/1;border-radius:50%;border:4px solid var(--sage);overflow:hidden;background:var(--cream)}
.headshot img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.hero-meta{background:var(--charcoal);color:var(--cream);padding:var(--space-4) clamp(24px,3vw,32px);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.hero-meta strong{display:block;font-size:22px;line-height:1.2}
.hero-meta span{font-size:15px;color:var(--soft-on-inverse)}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-card{max-width:520px}
}

/* proof band */
.proof{padding:clamp(48px,6vw,80px) 0}
.proof-label{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}
.proof-label::after{content:"";flex:1;height:1px;background:var(--slate)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5)}
.stat .fig{font-size:clamp(46px,5.4vw,80px);line-height:1;font-weight:700;letter-spacing:-.03em}
.stat .bar{width:56px;height:3px;background:var(--sage);margin:var(--space-3) 0}
.stat .lab{font-size:21px;font-weight:700;line-height:1.2}
.stat .ctx{margin-top:var(--space-2);font-size:16px;color:var(--soft-on-inverse);line-height:1.4}
.foot-note{margin-top:var(--space-5);font-size:14px;color:var(--soft-on-inverse)}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-6)}}
@media (max-width:480px){.stats{grid-template-columns:1fr}}

/* social proof slots */
.quotes{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--space-3);align-items:stretch}
.qcard{background:var(--stone);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);min-height:300px}
.qcard.inv{background:var(--charcoal);color:var(--cream)}
.qmark{font-family:var(--font-serif);font-weight:700;font-size:96px;line-height:.6;height:48px;color:var(--sage);overflow:visible}
.qcard blockquote{margin:0;font-size:22px;line-height:1.35;font-weight:700}
.qcard figcaption{margin-top:auto;font-size:16px;color:var(--ink-soft)}
.qcard.inv figcaption{color:var(--soft-on-inverse)}
.qcard figure{margin:0;display:flex;flex-direction:column;gap:var(--space-3);height:100%}
.slot{outline:2px dashed var(--slate);outline-offset:-10px}
.logos{margin-top:var(--space-6)}
.logo-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-3)}
.logo-slot{min-height:84px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);outline:2px dashed var(--slate);outline-offset:-8px;background:var(--stone)}
@media (max-width:900px){.quotes{grid-template-columns:1fr}.logo-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* pain rows */
.rows-head{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);padding-bottom:var(--space-3);border-bottom:2px solid var(--charcoal)}
.rows-head .eyebrow{margin:0}
.pain{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);padding:var(--space-5) 0;border-bottom:1px solid var(--slate);align-items:start}
.pain .n{font-weight:700;font-size:18px;letter-spacing:.14em;color:var(--ink-soft);padding-top:6px}
.pain q{quotes:"\201C" "\201D";font-size:clamp(22px,2.4vw,29px);line-height:1.2;font-weight:700}
.pain .after{display:flex;gap:var(--space-3);align-items:flex-start}
.pain .after img{width:26px;height:26px;flex:none;margin-top:3px}
@media (max-width:820px){
  .rows-head{display:none}
  .pain{grid-template-columns:48px minmax(0,1fr);row-gap:var(--space-3)}
  .pain .after{grid-column:2}
}

/* services */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.card{background:var(--cream);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}
.card h3{font-size:26px}
.card p{font-size:18px;color:var(--ink)}
.card.inv{background:var(--charcoal);color:var(--cream)}
.card.inv .badge{background:var(--sage)}
.badge{width:56px;height:56px;border-radius:50%;background:var(--charcoal);display:flex;align-items:center;justify-content:center;flex:none}
.badge img{width:26px;height:26px}
.card.inv .badge img{filter:brightness(0) saturate(100%) invert(17%) sepia(10%) saturate(580%) hue-rotate(160deg)}
.tag{margin-top:auto;font-size:14px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
@media (max-width:980px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cards{grid-template-columns:1fr}}

/* customer success */
.cs-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:end;margin-bottom:var(--space-7)}
.cs-lead .lead{max-width:none}
.journey{display:flex;position:relative;margin:0 0 var(--space-7)}
.journey::before{content:"";position:absolute;left:10%;right:10%;top:28px;height:2px;background:var(--slate)}
.journey li{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);position:relative;padding:0 var(--space-2)}
.journey .num{width:56px;height:56px;border-radius:50%;background:var(--cream);color:var(--charcoal);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px}
.journey li:last-child .num{background:var(--sage)}
.journey h3{font-size:22px;margin-top:var(--space-2)}
.journey p{font-size:16px;color:var(--soft-on-inverse);max-width:22ch}
.cs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.cs-item{background:var(--raised-dark);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.cs-item h3{font-size:22px;display:flex;gap:12px;align-items:center}
.cs-item h3 img{width:24px;height:24px;flex:none}
.cs-item p{font-size:17px;color:var(--soft-on-inverse)}
.case{margin-top:var(--space-3);background:var(--cream);color:var(--charcoal);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.case>div{padding:clamp(28px,4vw,48px)}
.case .case-l{background:var(--stone)}
.case h3{font-size:clamp(26px,3vw,36px);margin-bottom:var(--space-3)}
.case .eyebrow{color:var(--ink-soft)}
.checks{display:flex;flex-direction:column;gap:var(--space-3)}
.checks li{display:flex;gap:var(--space-3);align-items:flex-start;font-size:18px}
.checks img{width:24px;height:24px;flex:none;margin-top:3px}
.on-ink .checks li{color:var(--cream)}
@media (max-width:980px){
  .cs-lead{grid-template-columns:1fr}
  .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .case{grid-template-columns:1fr}
  .journey{flex-direction:column;gap:var(--space-4);align-items:flex-start}
  .journey::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto}
  .journey li{flex-direction:row;text-align:left;align-items:flex-start;gap:var(--space-4);padding:0}
  .journey .txt{display:flex;flex-direction:column;gap:4px}
  .journey h3{margin-top:0}
  .journey p{max-width:none}
}
@media (max-width:640px){.cs-grid{grid-template-columns:1fr}}

/* process */
.steps{display:flex;position:relative;margin-top:var(--space-5)}
.steps::before{content:"";position:absolute;left:10%;right:10%;top:28px;height:2px;background:var(--slate)}
.steps li{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);position:relative;padding:0 var(--space-2)}
.steps .num{width:56px;height:56px;border-radius:50%;background:var(--charcoal);color:var(--cream);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px}
.steps li:last-child .num{background:var(--sage);color:var(--charcoal)}
.steps h3{font-size:24px;margin-top:var(--space-2)}
.steps p{font-size:17px;color:var(--ink-soft);max-width:22ch}
.process-note{margin-top:var(--space-6);font-size:clamp(22px,2.4vw,30px);font-weight:700;line-height:1.25;max-width:32ch}
@media (max-width:900px){
  .steps{flex-direction:column;gap:var(--space-4)}
  .steps::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto}
  .steps li{flex-direction:row;text-align:left;align-items:flex-start;gap:var(--space-4);padding:0}
  .steps .txt{display:flex;flex-direction:column;gap:4px}
  .steps h3{margin-top:0}
  .steps p{max-width:none}
}

/* fit */
.fit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,6vw,80px);align-items:start}
.fit-card{background:var(--charcoal);color:var(--cream);padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:var(--space-4)}
.fit-card h3{font-size:clamp(26px,3vw,34px)}
@media (max-width:900px){.fit{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:start}
.about figure{margin:0}
.about figcaption{margin-top:var(--space-2);font-size:15px;color:var(--ink-soft)}
.about p+p{margin-top:var(--space-3)}
.facts{margin-top:var(--space-5);border-top:2px solid var(--charcoal)}
.facts li{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--slate);font-size:17px}
.facts b{font-size:17px}
@media (max-width:900px){.about{grid-template-columns:1fr}.facts li{grid-template-columns:1fr;gap:4px}}

/* faq */
.faq{max-width:900px}
.faq details{border-bottom:1px solid var(--slate)}
.faq details:first-child{border-top:2px solid var(--charcoal)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;font-size:clamp(20px,2vw,24px);font-weight:700;line-height:1.25;min-height:64px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:32px;line-height:1;font-weight:400;flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:2px solid var(--charcoal);border-radius:50%}
.faq details[open] summary::after{content:"\2212";background:var(--sage);border-color:var(--sage)}
.faq .ans{padding:0 var(--space-6) var(--space-5) 0;font-size:18px;max-width:70ch}

/* cta */
.cta{text-align:center}
.cta .wrap{display:flex;flex-direction:column;align-items:center}
.cta h2{font-size:clamp(34px,5vw,64px);line-height:1.06;letter-spacing:-.02em;max-width:18ch}
.cta .lead{margin:var(--space-4) auto var(--space-5);max-width:52ch}
.cta .script{margin-top:var(--space-5);color:var(--cream)}
.contact-lines{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3) var(--space-5);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--slate);width:100%;max-width:900px}
.contact-lines a{display:inline-flex;align-items:center;gap:12px;font-weight:700;text-decoration:none;min-height:44px;font-size:18px}
.contact-lines a:hover{text-decoration:underline;text-decoration-color:var(--sage);text-underline-offset:4px;text-decoration-thickness:2px}
.contact-lines img{width:22px;height:22px}
.leaf{width:min(320px,70%);margin:0 auto var(--space-5)}

/* footer */
.site-footer{background:var(--charcoal);color:var(--cream);border-top:1px solid var(--slate);padding:var(--space-6) 0}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-5)}
.foot img{height:64px;width:auto}
.foot p{font-size:15px;color:var(--soft-on-inverse)}
.foot a{color:var(--cream);text-underline-offset:4px}

/* reveal */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.btn,.btn img{transition:none}}

/* legal page */
.legal{max-width:760px;padding:clamp(48px,7vw,96px) 0}
.legal h1{font-size:clamp(34px,5vw,56px);margin-bottom:var(--space-4)}
.legal h2{font-size:26px;margin:var(--space-5) 0 var(--space-2)}
.legal p,.legal li{font-size:18px;margin-top:var(--space-2)}
.legal ul{list-style:disc;padding-left:var(--space-4)}
@media (max-width:640px){body{font-size:18px}.btn{width:100%}.btn-row{flex-direction:column}.hero-meta .btn{width:100%}}
@media print{.site-header,.cta .btn-row{display:none}body{background:#fff}}

/* fixes: text on dark panels */
.card.inv p{color:var(--cream)}
.case .checks li{color:var(--charcoal)}
.fit-card .soft{color:var(--soft-on-inverse)}
.qcard{margin:0}

.about-photo{position:sticky;top:120px}
.about-photo img{width:100%;height:auto}
@media (max-width:900px){.about-photo{position:static;max-width:520px}}
.leafdiv{display:flex;align-items:center;gap:var(--space-3);width:min(360px,80%);margin:0 auto var(--space-5)}
.leafdiv i{flex:1;height:1px;background:var(--sage)}
.leafdiv img{height:44px;width:auto}

.qcard blockquote{font-size:clamp(20px,2vw,24px)}
.qcard .qmore{font-size:18px;color:var(--soft-on-inverse)}
.qcard figcaption strong{font-size:18px;color:inherit}
.qcard:not(.inv) figcaption strong{color:var(--ink)}
.qcard.inv figcaption strong{color:var(--cream)}

.lead--sub{margin-top:var(--space-3)}
#proof{padding-top:clamp(56px,7vw,96px)}
