/* Solutions group (solutions/*.html). Page-specific additions only; everything else comes from assets/site.css.
   Every class here is prefixed .sol- so it never collides with another group's stylesheet. */

/* ---- hero: breadcrumb, eyebrow, narrower headline ---- */
.sol-hero .hero-main{padding-top:clamp(28px,3.4vw,48px)}
.sol-crumb{position:relative;z-index:1;margin-bottom:clamp(56px,7vw,112px)}
.sol-crumb ol{display:flex;flex-wrap:wrap;gap:6px 10px;font:500 12.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-3)}
.sol-crumb li{display:flex;align-items:center;gap:10px}
.sol-crumb li+li::before{content:"/";color:var(--on-3)}
.sol-crumb a{color:var(--on-2);text-decoration:none;display:inline-flex;align-items:center;min-height:32px;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 6px)/0 1px no-repeat;transition:background-size .45s var(--ease),color .25s}
.sol-crumb a:hover{color:var(--on);background-size:100% 1px}
.sol-crumb [aria-current="page"]{color:var(--copper-text)}
.sol-hero .sol-eye{grid-column:1/8;margin-bottom:26px}
.sol-hero h1{grid-column:1/9}
.sol-hero h1.d2{font-size:clamp(44px,6.4vw,100px)}
.sol-hero .sub{grid-column:1/7;margin-top:clamp(32px,4vw,56px)}
.sol-hero .stamp{grid-column:1/6}

/* hero with a product screen instead of a photograph */
.sol-split{align-items:center;row-gap:0}
.sol-split .sol-hl{grid-column:1/6}
.sol-split .sol-hl h1{grid-column:auto}
.sol-split .sol-hl .sub{margin-top:clamp(28px,3vw,44px)}
.sol-split .sol-hs{grid-column:6/13;margin-right:calc(-1*min(var(--gut),40px))}
.sol-split + .sol-stamp{margin-top:clamp(48px,5vw,80px)}

/* ---- on this page ---- */
.sol-toc{border-bottom:1px solid var(--rule);background:var(--bone)}
.sol-toc .wrap{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:center;padding:22px 0}
.sol-toc ol{display:flex;flex-wrap:wrap;gap:4px 30px}
.sol-toc a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:500;color:var(--ink-2);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 8px)/0 1px no-repeat;transition:background-size .45s var(--ease),color .25s}
.sol-toc a:hover{color:var(--ink);background-size:100% 1px}
.sol-toc a span{font:400 italic 15px/1 var(--display);color:var(--copper)}

/* ---- numbered section heads ---- */
.sol-head{grid-column:1/9;margin-bottom:clamp(48px,5.5vw,96px)}
.sol-head .mono{display:flex;gap:14px;align-items:baseline;margin-bottom:22px}
.sol-head .mono i{font:400 italic 20px/1 var(--display);letter-spacing:0;text-transform:none;color:var(--copper)}
.dark .sol-head .mono i{color:var(--copper-text)}
.sol-head .lede{margin-top:26px;max-width:60ch}
.sol-head.wide{grid-column:1/11}

/* ---- the problem ---- */
.sol-prob{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,56px)}
.sol-prob .pt:nth-child(2){margin-top:clamp(0px,3.5vw,56px)}
.sol-prob .pt:nth-child(3){margin-top:clamp(0px,7vw,112px)}
.sol-prob .pt h3{font-weight:700}

/* ---- what we deliver: structured spec ---- */
.sol-spec{grid-column:1/-1;border-top:1px solid var(--ink)}
.sol-spec-h,.sol-row{display:grid;grid-template-columns:56px minmax(0,1.25fr) minmax(0,1fr) minmax(0,.75fr);gap:clamp(16px,2vw,32px);align-items:start}
.sol-spec-h{padding:14px 0;border-bottom:1px solid var(--rule)}
.sol-spec-h span{font:500 12.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.sol-row{padding:30px 0;border-bottom:1px solid var(--rule)}
.sol-row .ix{font:400 italic 22px/1.1 var(--display);color:var(--copper);padding-top:4px}
.sol-row h3{font:700 clamp(22px,2vw,28px)/1.18 var(--display);letter-spacing:-.01em}
.sol-row p{margin-top:10px;font-size:15.5px;color:var(--ink-2);max-width:48ch}
.sol-row ul{display:grid;gap:8px;padding-top:4px}
.sol-row li{position:relative;padding-left:18px;font-size:15.5px;color:var(--ink-2)}
.sol-row li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:var(--copper)}
.sol-row .tech{font:500 12.5px/1.7 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding-top:4px}
.sol-note{grid-column:1/-1;margin-top:24px;font-size:14.5px;color:var(--ink-3);max-width:80ch}

/* ---- wide figures (engraved plates and product screens) ---- */
.sol-fig{grid-column:1/-1;margin-top:clamp(56px,6vw,104px)}
.sol-fig.sol-first{margin-top:0;margin-bottom:clamp(56px,6vw,104px)}
.sol-fig .plate-in{padding:clamp(16px,2vw,32px) clamp(12px,2vw,32px) clamp(10px,1.4vw,22px)}
.sol-figcap{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;margin-top:22px;font-size:15px;color:var(--ink-2)}
.dark .sol-figcap{color:var(--on-2)}
.sol-figcap p{max-width:70ch}
.sol-hint{display:none}
.sol-pair{grid-column:1/-1;margin-top:clamp(56px,6vw,104px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(32px,4vw,72px);align-items:center}
.sol-pair .ph-fig{aspect-ratio:4/5}
.sol-pair .d3{margin:18px 0 18px}
.sol-pair .body+.body{margin-top:14px}

/* ---- dark band: engagement and governance ---- */
.sol-path{grid-column:1/-1}
.sol-terms{grid-column:1/-1;margin-top:clamp(64px,7vw,120px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(32px,5vw,96px);align-items:start}
.sol-terms .d3{max-width:20ch}
.sol-terms .terms{grid-template-columns:repeat(3,minmax(0,1fr))}
.sol-gate{grid-column:1/-1;margin-top:clamp(72px,8vw,136px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px)}
.sol-gate .sol-gt{grid-column:1/5;align-self:center}
.sol-gate .sol-gt .d3{margin:16px 0 18px}
.sol-gate .sol-gt p:not(.mono){color:var(--on-2);font-weight:500;font-size:15.5px;max-width:38ch}
.sol-gate .sol-gt p+p{margin-top:14px}
.sol-gate .sol-gq{grid-column:5/13}
.sol-gate .sol-gl{grid-column:2/13;margin-top:clamp(32px,4vw,56px)}

/* ---- case study ---- */
.sol-case-t{grid-column:1/6;align-self:center}
.sol-case-t .mono{margin-bottom:20px}
.sol-case-t .d2{font-size:clamp(36px,4.4vw,66px);margin-bottom:24px}
.sol-case-t .tl{margin-top:26px}
.sol-case-ph{grid-column:7/13;aspect-ratio:4/3}
.sol-figs{grid-column:1/-1;margin-top:clamp(48px,5vw,88px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(16px,2vw,32px)}
.sol-figs > div{border-top:1px solid var(--ink);padding-top:20px}
.sol-figs .num{font-size:clamp(40px,4.4vw,68px)}
.sol-figs span{display:block;margin-top:12px;font-size:14.5px;color:var(--ink-2);max-width:24ch}
.sol-case-cols{grid-column:1/-1;margin-top:clamp(40px,4.5vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.sol-case-cols h3{font:700 20px/1.2 var(--display);margin-bottom:10px}
.sol-case-cols p{font-size:15.5px;color:var(--ink-2)}
.sol-quote{grid-column:1/-1;margin-top:clamp(56px,6vw,96px);border-top:1px solid var(--ink);padding-top:30px;display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px}
.sol-quote blockquote{font:700 clamp(22px,2.3vw,34px)/1.3 var(--display);letter-spacing:-.012em;max-width:40ch;text-wrap:balance}
.sol-quote figcaption{margin-top:16px;font-size:14.5px;color:var(--ink-2)}
.sol-quote figcaption b{font-weight:600;color:var(--ink)}
.sol-also{grid-column:1/-1;margin-top:clamp(40px,4vw,64px);border-top:1px solid var(--ink)}

/* ---- insights ---- */
.sol-ins-l{grid-column:1/6}
.sol-ins-l .lede{margin-top:24px}
.sol-ins-r{grid-column:7/13;border-top:1px solid var(--ink)}
.sol-ins-r .tl{margin-top:24px}

/* ---- questions: side-by-side list, not an accordion ---- */
.sol-faq{grid-column:1/-1;border-top:1px solid var(--ink);margin:0}
.sol-faq > div{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);padding:30px 0;border-bottom:1px solid var(--rule)}
.sol-faq dt{grid-column:1/6;font:700 clamp(19px,1.6vw,23px)/1.3 var(--display);letter-spacing:-.008em;text-wrap:balance}
.sol-faq dd{grid-column:7/13;margin:0;color:var(--ink-2);max-width:60ch}
.sol-faq dd a{color:var(--ink);text-underline-offset:3px}

/* ---- related practices ---- */
.sol-rel{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,4vw,64px);border-top:1px solid var(--ink)}
.sol-rel .pr{grid-template-columns:40px 64px minmax(0,1fr) 44px;padding:28px 0}
.sol-rel .pr h3{font-size:clamp(22px,2vw,30px)}
.sol-rel .pr p{font-size:15px}

/* ---- overview: one band per practice ---- */
.sol-band{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);padding:clamp(40px,4.5vw,72px) 0;border-top:1px solid var(--ink)}
.sol-band:last-child{border-bottom:1px solid var(--ink)}
.sol-band .sol-bn{grid-column:1/2;font:400 italic clamp(40px,4vw,64px)/1 var(--display);color:var(--copper)}
.sol-band .sol-bh{grid-column:2/7;display:flex;gap:22px;align-items:flex-start}
.sol-band .sol-bh h3{font:700 clamp(28px,3vw,44px)/1.08 var(--display);letter-spacing:-.018em}
.sol-band .sol-bh .mono{display:block;margin-top:14px}
.sol-band .sol-bb{grid-column:7/13}
.sol-band .sol-bb p{color:var(--ink-2);max-width:54ch}
.sol-band .sol-out{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:baseline;margin-top:24px;padding-top:18px;border-top:1px solid var(--rule)}
.sol-band .sol-out .num{font-size:clamp(34px,3.2vw,48px)}
.sol-band .sol-out span{font-size:14.5px;color:var(--ink-2)}
.sol-band .sol-bb ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.sol-band .sol-bb li{font:500 12.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:9px 10px;border:1px solid var(--rule-2);border-radius:var(--r)}
.sol-band .tl{margin-top:18px}

/* ---- closing CTA without a form (the form lives on company/contact.html) ---- */
.sol-cta-r{grid-column:8/13;align-self:end}
.sol-cta-r .next{margin-top:0}
.sol-cta-r .btn{margin-top:32px}
.sol-cta-l .cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}

/* ---- small product screen: cost and availability console (cloud) ---- */
.sol-cost .bar-row{display:grid;grid-template-columns:9em minmax(0,1fr) 5.5em;gap:1em;align-items:center;padding:.55em 1.4em;border-top:1px solid var(--rule)}
.sol-cost .bar-row b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sol-cost .bar-row .tr{height:.7em;background:rgba(16,26,21,.07);border-radius:1px;position:relative}
.sol-cost .bar-row .tr i{position:absolute;left:0;top:0;bottom:0;background:#B86C3C;opacity:.55;border-radius:1px}
.sol-cost .bar-row .tr u{position:absolute;top:-.25em;bottom:-.25em;width:1px;background:var(--ink)}
.sol-cost .bar-row .ts{text-align:right}

/* ---- engagement steps on a light band ---- */
.sol-steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.sol-steps li{border-top:1px solid var(--ink);padding-top:22px}
.sol-steps .num{font-size:clamp(44px,4.4vw,72px);font-style:italic;color:var(--copper)}
.sol-steps h3{font:700 clamp(22px,2vw,26px)/1.15 var(--display);margin:16px 0 6px;letter-spacing:-.01em}
.sol-steps .wk{display:block;font:500 12.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--ink-3)}
.sol-steps p{margin-top:12px;font-size:15.5px;color:var(--ink-2);max-width:34ch}

/* ---- responsive ---- */
@media (max-width:1080px){
  .sol-split .sol-hs{margin-right:0}
}
@media (max-width:900px){
  .sol-hero .hero-main{padding-top:0}
  .sol-crumb{padding-top:20px;margin-bottom:24px}
  .sol-hero .sol-eye,.sol-hero h1,.sol-hero .sub,.sol-hero .stamp,.sol-split .sol-hl,.sol-split .sol-hs{grid-column:1/-1}
  .sol-split .sol-hs{margin-top:48px}
  .sol-hero.sol-hero-scr .hero-main{padding-top:0}
  .sol-toc .wrap{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .sol-head,.sol-head.wide{grid-column:1/-1}
  .sol-prob{grid-template-columns:1fr;gap:40px}
  .sol-prob .pt:nth-child(2),.sol-prob .pt:nth-child(3){margin-top:0}
  .sol-spec-h{display:none}
  .sol-row{grid-template-columns:40px minmax(0,1fr);row-gap:16px}
  .sol-row > :nth-child(n+3){grid-column:2/-1}
  .sol-fig .plate-in{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(219,150,99,.5) transparent}
  .sol-fig .plate-in svg{width:900px;max-width:none}
  .sol-hint{display:block;margin-top:14px;font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .dark .sol-hint{color:var(--on-3)}
  .sol-figcap{grid-template-columns:1fr;gap:10px}
  .sol-pair{grid-template-columns:1fr}
  .sol-pair .ph-fig{aspect-ratio:16/10}
  .sol-terms{grid-template-columns:1fr}
  .sol-terms .terms{grid-template-columns:1fr 1fr}
  .sol-gate{row-gap:32px}
  .sol-gate .sol-gt,.sol-gate .sol-gq,.sol-gate .sol-gl{grid-column:1/-1;margin-top:0}
  .sol-case-t,.sol-case-ph{grid-column:1/-1}
  .sol-case-ph{margin-top:40px;aspect-ratio:16/10}
  .sol-figs{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
  .sol-case-cols{grid-template-columns:1fr;gap:28px}
  .sol-quote{grid-template-columns:1fr;gap:12px}
  .sol-ins-l,.sol-ins-r{grid-column:1/-1}
  .sol-ins-r{margin-top:48px}
  .sol-faq dt,.sol-faq dd{grid-column:1/-1}
  .sol-faq dd{margin-top:12px}
  .sol-rel{grid-template-columns:1fr}
  .sol-band .sol-bn{grid-column:1/-1;margin-bottom:16px}
  .sol-band .sol-bh,.sol-band .sol-bb{grid-column:1/-1}
  .sol-band .sol-bb{margin-top:24px}
  .sol-cta-r{grid-column:1/-1;margin-top:56px}
  .sol-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
}
@media (max-width:560px){
  .sol-terms .terms{grid-template-columns:1fr}
  .sol-figs{grid-template-columns:1fr}
  .sol-rel .pr{grid-template-columns:40px 48px minmax(0,1fr)}
  .sol-row{grid-template-columns:32px minmax(0,1fr)}
  .sol-band .sol-bh{flex-direction:column;gap:16px}
  .sol-band .sol-out{grid-template-columns:1fr;gap:6px}
  .sol-cta-r .btn,.sol-cta-l .cta .btn{width:100%;justify-content:space-between}
  .sol-cost .bar-row{grid-template-columns:7em minmax(0,1fr) 4.5em}
  .sol-steps{grid-template-columns:1fr}
  .sol-steps p{max-width:none}
}
