/* services-v3.css — Services, rebuilt around information hierarchy.
   Three text levels only: headline (white), body (white, softened), meta (grey).
   One large headline per section. Dark chapters, one light chapter for "how it works".
   Colour comes from the renders; the interface stays black and white. */

@font-face{font-family:"Helvetica World";src:url("assets/fonts/Helvetica-World-Regular.woff2") format("woff2"),url("assets/fonts/Helvetica-World-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Helvetica World";src:url("assets/fonts/Helvetica-World-Bold.woff2") format("woff2"),url("assets/fonts/Helvetica-World-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}

:root{
  --bg:#0A0A0A;          /* dark chapters */
  --paper:#F4F3F0;       /* the one light chapter */
  --ink:#F5F5F0;         /* headline on dark */
  --body:rgba(245,245,240,.78);
  --meta:#8E9097;        /* labels, captions, lists on dark */
  --line:rgba(245,245,240,.14);
  --ink-d:#14130F;       /* headline on light */
  --body-d:rgba(20,19,15,.78);
  --meta-d:#6C6E73;
  --line-d:rgba(20,19,15,.16);
  --gut:clamp(20px,4vw,56px);
  --gap:clamp(16px,2vw,28px);
  --sec:clamp(96px,11vw,168px);
  /* site-chrome tokens: same chrome, no gradient */
  --c-grad:linear-gradient(#F5F5F0,#F5F5F0);
  --c-accent:#F5F5F0;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Helvetica World",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,figure{margin:0}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.wrap{max-width:1600px;margin:0 auto;padding:0 var(--gut)}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}

/* ---------- type levels ---------- */
h1{font-size:clamp(46px,6.4vw,100px);line-height:.96;letter-spacing:-.045em;font-weight:400}
h2{font-size:clamp(34px,3.6vw,56px);line-height:1.03;letter-spacing:-.035em;font-weight:400}
h1 b,h2 b{font-weight:700}
h3{font-size:clamp(22px,1.8vw,27px);line-height:1.12;letter-spacing:-.02em;font-weight:700}
.lead{font-size:clamp(18px,1.35vw,21px);line-height:1.45;color:var(--body)}
.kick{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--meta);margin-bottom:clamp(20px,2vw,28px)}
.kick::before{content:"";width:7px;height:7px;background:currentColor;flex:none}
.sec-sub{margin-top:18px;max-width:52ch;color:var(--body)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;min-height:52px;padding:0 26px;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:var(--bg);font-size:15px;line-height:1;transition:background-color .2s,color .2s}
.btn:hover{background:#fff}
.btn-line{background:transparent;color:var(--ink);border-color:rgba(245,245,240,.4)}
.btn-line:hover{background:transparent;border-color:var(--ink)}

/* ---------- chrome overrides (site-chrome.css) ---------- */
.nav .nav-cta::before{animation:none!important;border-radius:0!important;background:currentColor!important;width:7px!important;height:7px!important}
.nav .nav-link,.nav .nav-cta,.nav .nav-toggle,.footer .label,.footer .footer-col h4,.footer .footer-bottom{text-transform:none!important;letter-spacing:0!important}
.nav .nav-links:not(.open) .nav-link,.nav .nav-cta{font-size:14px!important}
.nav .nav-cta{border-radius:2px!important}
.footer .footer-col h4{font-size:14px!important;color:var(--meta)!important}
.footer .footer-bottom{font-size:13px!important}

/* ---------- 1 hero ---------- */
.s-hero{padding:clamp(120px,13vw,190px) 0 var(--sec)}
.hero-copy{grid-column:1/8;align-self:end}
.hero-copy h1{max-width:13ch}
.hero-copy .lead{margin-top:clamp(24px,2.4vw,34px);max-width:42ch}
.ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(30px,3vw,44px)}
.hero-media{grid-column:9/13;align-self:end}
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero-media figcaption{margin-top:12px;font-size:13px;color:var(--meta)}

/* ---------- 2 what we make ---------- */
.s-make{padding:0 0 var(--sec)}
.sec-head{max-width:760px;margin-bottom:clamp(44px,5vw,80px)}
.caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);border-top:1px solid var(--line);padding-top:var(--gap)}
.cap .ph{aspect-ratio:4/5;overflow:hidden;background:#151515}
.cap .ph img{width:100%;height:100%;object-fit:cover}
.cap h3{margin-top:26px}
.cap .when{margin-top:10px;color:var(--body);max-width:34ch}
.outs{list-style:none;padding:0;margin-top:22px}
.outs li{padding:11px 0;border-top:1px solid var(--line);font-size:15px;color:var(--meta)}
.outs li:last-child{border-bottom:1px solid var(--line)}

/* ---------- 3 how it works (light chapter) ---------- */
.s-how{background:var(--paper);color:var(--ink-d);padding:var(--sec) 0}
.s-how .kick{color:var(--meta-d)}
.s-how .sec-sub,.s-how .step-p{color:var(--body-d)}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
/* the sequence: a rule runs across both steps, a square marks where each one starts */
.step{position:relative;padding-top:34px;border-top:1px solid var(--ink-d)}
.step::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--ink-d)}
.step-n{font-size:15px;color:var(--meta-d)}
.step h3{margin-top:8px;font-size:clamp(26px,2.4vw,36px)}
.step-p{margin-top:14px;max-width:44ch}
.step-l{margin-top:30px;font-size:14px;color:var(--meta-d)}
.s-how .outs{margin-top:10px}
.s-how .outs li{color:var(--ink-d);border-color:var(--line-d)}
.fine{margin-top:clamp(36px,4vw,56px);font-size:14px;color:var(--meta-d);max-width:70ch}

/* ---------- 4 faq ---------- */
.s-faq{padding:var(--sec) 0}
.faq-head{grid-column:1/5}
.faq-list{grid-column:6/13;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:22px 0;font-size:clamp(18px,1.4vw,21px);line-height:1.3}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";color:var(--meta);font-size:22px;line-height:1;transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding:0 0 24px;max-width:60ch;color:var(--body)}

/* ---------- 5 close ---------- */
.s-close{padding:var(--sec) 0 clamp(80px,9vw,140px);border-top:1px solid var(--line)}
.close-h{font-size:clamp(56px,8.6vw,140px);line-height:.92;letter-spacing:-.05em;font-weight:700;max-width:11ch}
.close-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);margin-top:clamp(44px,5vw,80px);align-items:end}
.close-row .lead{grid-column:1/6;max-width:44ch}
.close-act{grid-column:8/13;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.close-mail{font-size:clamp(28px,2.8vw,44px);letter-spacing:-.025em;line-height:1.1;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.close-mail:hover{text-decoration-thickness:2px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero-copy,.hero-media,.faq-head,.faq-list{grid-column:1/-1}
  .hero-media{margin-top:56px;max-width:520px}
  .faq-list{margin-top:36px}
  .close-row .lead,.close-act{grid-column:1/-1}
  .close-act{margin-top:32px}
}
@media (max-width:760px){
  .caps,.steps{grid-template-columns:minmax(0,1fr)}
  .caps{row-gap:56px}
  .steps{row-gap:48px}
  .cap .ph{aspect-ratio:5/4}
}

/* ---------- nav: the menu button only exists inside the opened mobile menu ---------- */
.nav-links:not(.open) .nav-menu-cta{display:none!important}
.nav-links.open .nav-menu-cta{background:var(--ink)!important;color:var(--bg)!important;border-radius:2px!important}
@media (max-width:900px){
  .nav .nav-links:not(.open),.nav .nav-cta{display:none!important}
  .nav .nav-toggle{display:block!important}
}

.nav-links.open .nav-menu-cta{text-transform:none!important;letter-spacing:0!important;font-size:16px!important}
.nav-links.open{background:#0A0A0A!important}
.nav .logo,.nav .nav-toggle{position:relative;z-index:10006}

/* ---------- legibility + touch (accessibility floor) ---------- */
.footer .footer-bottom,.footer .footer-bottom a,.footer .footer-bottom span{color:var(--meta)!important}
@media (max-width:760px){
  .footer .footer-col a,.footer .footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
  .footer .footer-col li{margin:0!important}
  .nav .nav-toggle{min-height:44px;min-width:44px}
}
