/* Blackwood preview — shared styles. Direction: Proposal E "Cantiere aperto".
   Tokens only: ink / ivory / taupe / white + derived tints. */

/* ---------- tokens ---------- */
:root{
  --ink:#0A0A0A; --ivory:#EBEBEB; --taupe:#837575; --white:#FFFFFF;
  --ink-80:rgba(10,10,10,.80); --ink-62:rgba(10,10,10,.62); --ink-45:rgba(10,10,10,.45);
  --ink-25:rgba(10,10,10,.25); --ink-14:rgba(10,10,10,.14); --ink-06:rgba(10,10,10,.06);
  --taupe-deep:#6E6262; --taupe-dark:#5E5454; --taupe-30:rgba(131,117,117,.30); --taupe-12:rgba(131,117,117,.12);
  --gold:#D8C69A; --gold-60:rgba(216,198,154,.6); /* client-sanctioned micro-accent: subliminal use only */
  --gold-40:rgba(216,198,154,.4);
  --glow:0 0 16px rgba(216,198,154,.5); /* the gold breath on interaction */
  --ivory-70:rgba(235,235,235,.70); --ivory-40:rgba(235,235,235,.40); --ivory-16:rgba(235,235,235,.16);
  --disp:"Marcellus",Georgia,serif;
  --sans:"Asap",Arial,sans-serif;
}
/* MPA view transitions (the duo's cross-page morph) */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion:reduce){
  @view-transition { navigation: none; }
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--white);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
::selection{background:var(--taupe);color:var(--white)}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--disp);font-weight:400;line-height:1.16;color:var(--ink)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--ivory);padding:.5rem 1rem;z-index:99}
.skip:focus{left:8px}
.wrap{max-width:1160px;margin:0 auto;padding:0 40px}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:lowercase;color:var(--taupe-deep)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:0 40px;height:58px;background:var(--white);border-bottom:1px solid var(--ink-14)}
.wordmark{font-weight:600;font-size:15px;letter-spacing:.22em;color:var(--ink)}
.wordmark i{font-style:normal;color:var(--taupe)}
.nav .links{display:flex;gap:28px;font-size:14px;color:var(--ink-62);align-items:center}
.nav .links a{position:relative;padding-bottom:2px}
.nav .links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--taupe);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.nav .links a:hover::after,.nav .links a[aria-current="page"]::after{transform:scaleX(1)}
.nav .links a[aria-current="page"]{color:var(--ink)}
.nav .links a.btn{padding:8px 18px;font-size:14px}
.nav .links a.btn:hover{color:var(--white)}
.nav .links a.btn::after{display:none}
.menu-btn{display:none;background:none;border:0;font-family:var(--sans);font-size:13px;letter-spacing:.14em;color:var(--ink);cursor:pointer;padding:8px}
main{padding-top:58px}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--sans);font-weight:500;font-size:15px;padding:13px 26px;border:1px solid var(--ink-25);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;background:transparent;color:var(--ink-62);text-align:center}
/* primary: one color voice — taupe frame, taupe label; fills on hover with a gold breath */
.btn-solid{background:transparent;border:3px solid var(--taupe);color:var(--taupe-deep);padding:11px 24px}
.btn-solid:hover{background:var(--taupe-deep);border-color:var(--taupe-deep);color:var(--white);box-shadow:inset 0 0 0 1px var(--gold-40),var(--glow)}
.btn-ghost{border-color:var(--ink-25)}
.btn-ghost:hover{border-color:var(--taupe);color:var(--taupe-deep);box-shadow:var(--glow)}
.btn:focus-visible{box-shadow:var(--glow)}
.btn-ivory{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn-ivory:hover{background:var(--white)}
/* sanguine key-phrase underline */
main em{font-style:normal;border-bottom:2px solid var(--taupe);padding-bottom:1px}

/* ---------- WhatsApp button (from site-settings; WA glyph in site colors) ---------- */
.wa-btn{position:fixed;right:22px;bottom:22px;z-index:40;width:52px;height:52px;border-radius:50%;background:var(--white);border:2px solid var(--taupe);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(10,10,10,.14);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.wa-btn svg{width:26px;height:26px;fill:var(--taupe-deep);display:block;transition:fill .18s ease}
.wa-btn:hover{background:var(--taupe-deep);border-color:var(--taupe-deep);box-shadow:var(--glow)}
.wa-btn:hover svg{fill:var(--white)}
@media (max-width:900px){.wa-btn{right:14px;bottom:14px;width:46px;height:46px}.wa-btn svg{width:23px;height:23px}}

/* ---------- page hero (inner pages) ---------- */
.phero{padding:72px 0 44px;border-bottom:1px solid var(--ink-14)}
.phero .crumbs{font-size:12.5px;color:var(--ink-45);margin-bottom:22px}
.phero .crumbs a:hover{color:var(--taupe-deep)}
.phero .eyebrow{margin-bottom:12px}
.phero h1{font-size:clamp(1.9rem,3.6vw,3rem);max-width:24ch}
.phero .lead{margin-top:18px;font-size:17px;color:var(--ink-62);max-width:62ch}
.phero .cta-row{margin-top:28px}
.cta-row{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- sections & prose ---------- */
.sect{padding:64px 0}
.sect + .sect{border-top:1px solid var(--ink-14)}
.slabel{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.slabel::before{content:"";width:26px;height:2px;background:var(--taupe)}
.slabel span{font-size:12px;letter-spacing:.22em;text-transform:lowercase;color:var(--taupe-deep)}
.sect h2{font-size:clamp(1.5rem,2.6vw,2.1rem);max-width:26ch;margin-bottom:16px}
.prose p{color:var(--ink-62);max-width:68ch;margin-bottom:14px}
.prose strong{color:var(--ink);font-weight:500}
.prose ul{margin:0 0 14px 18px;color:var(--ink-62);max-width:66ch}
.prose li{margin-bottom:8px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}

/* included list (drawing-tick markers) */
.incl{list-style:none;margin:0;max-width:64ch}
.incl li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid var(--ink-14);color:var(--ink-62)}
.incl li::before{content:"";position:absolute;left:2px;top:22px;width:16px;height:2px;background:var(--taupe)}
.incl li b{display:block;font-weight:500;color:var(--ink)}

/* panels */
.panel{background:var(--ivory);border:1px solid var(--ink-14);padding:34px 38px;position:relative}
.panel::after{content:"";position:absolute;top:12px;right:12px;width:11px;height:11px;border-top:1px solid var(--taupe);border-right:1px solid var(--taupe)}
.panel h3{font-size:20px;margin-bottom:12px}
.panel p{color:var(--ink-62);font-size:14.5px;margin-bottom:10px}
.panel .micro{font-size:12.5px;color:var(--ink-45)}
.bonus-box{background:var(--white)}
.bonus-box .tag{display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe-deep);border:1px solid var(--taupe-30);padding:4px 10px;margin-bottom:12px}

/* steps (mini processo) */
.msteps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:ms}
.mstep{border-top:1px solid var(--ink-14);padding-top:14px}
.mstep::before{counter-increment:ms;content:"0" counter(ms);font-size:12px;letter-spacing:.2em;color:var(--taupe-deep)}
.mstep h3{font-size:17px;margin:6px 0}
.mstep p{font-size:13.5px;color:var(--ink-62)}

/* FAQ */
.faq details{border-bottom:1px solid var(--ink-14)}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;font-family:var(--disp);font-size:17.5px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:26px;width:12px;height:12px;border-right:1px solid var(--taupe);border-bottom:1px solid var(--taupe);transform:rotate(45deg);transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(225deg);top:32px}
.faq .a{padding:0 0 20px;color:var(--ink-62);max-width:66ch}

/* CTA band */
.cta-band{background:var(--ivory);border-top:1px solid var(--ink-14);padding:72px 0}
.cta-band .inner{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(1.5rem,2.6vw,2.1rem);max-width:22ch}
.cta-band p{color:var(--ink-62);margin-top:8px;font-size:15px}

/* ---------- services grid + duo card ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc-card{border:1px solid var(--ink-14);padding:26px;display:block;transition:border-color .2s ease}
.svc-card:hover{border-color:var(--taupe)}
.svc-card svg{width:32px;height:32px;color:var(--ink);margin-bottom:14px}
.svc-card h3{font-size:19px;margin-bottom:8px}
.svc-card p{font-size:13.5px;color:var(--ink-62)}
.svc-card .go{display:inline-block;margin-top:14px;font-size:13px;color:var(--taupe-deep)}
.duo-card{grid-column:1/-1;border:1px solid var(--ink-25);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;position:relative}
.duo-card .art{padding:22px 10px 8px;border-right:1px solid var(--ink-14)}
.duo-card .art svg{width:100%;height:auto}
.duo-card .body{padding:30px 34px}
.duo-card .tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe-deep)}
.duo-card h3{font-size:24px;margin:10px 0 8px}
.duo-card p{font-size:14.5px;color:var(--ink-62);max-width:48ch}
.duo-card .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.duo-card .pair a{border:1px solid var(--ink-25);padding:12px 16px;font-size:14.5px;font-weight:500;text-align:center;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.duo-card .pair a:hover{background:var(--taupe-deep);border-color:var(--taupe-deep);color:var(--white);box-shadow:inset 0 0 0 1px var(--gold-40),var(--glow)}

/* ---------- duo pages ---------- */
.duo-figure{view-transition-name:duo-drawing;background:var(--white)}
.duo-figure svg{display:block;width:min(880px,100%);margin:0 auto}
.palazzo path{fill:none;stroke:var(--ink);stroke-width:1}
.palazzo text{font-family:var(--sans);fill:var(--ink-45);font-size:12px;letter-spacing:.05em}
.palazzo .tp{stroke:var(--taupe)}
.palazzo text.tp{fill:var(--taupe-deep);stroke:none}
.palazzo .lbl path{stroke:var(--ink-25)}
.palazzo .lbl .tp{stroke:var(--taupe)}
/* mode emphasis */
.duo-facciata .palazzo #zt{opacity:.18}
.duo-facciata .palazzo #zt .lbl{display:none}
.duo-tetto .palazzo #zf{opacity:.18}
.duo-tetto .palazzo #zf .lbl{display:none}
.palazzo .zq{opacity:.55}
/* one-time draw-on of the active zone */
@keyframes duo-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.duo-facciata .palazzo #zf path[pathLength],
.duo-tetto .palazzo #zt path[pathLength]{stroke-dasharray:1;stroke-dashoffset:1;animation:duo-draw 1.3s ease forwards}
.duo-facciata .palazzo #zf .gb path[pathLength],
.duo-tetto .palazzo #zt .gb path[pathLength]{animation-delay:.45s}
.duo-facciata .palazzo #zf .lbl path,
.duo-tetto .palazzo #zt .lbl path{animation-delay:.9s}
html.reduced .palazzo path[pathLength]{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}
/* duo switch link */
.duo-switch{display:flex;justify-content:center;gap:0;border:1px solid var(--ink-14);width:fit-content;margin:26px auto 0}
.duo-switch a,.duo-switch span{padding:10px 22px;font-size:14px}
.duo-switch span{background:var(--taupe-deep);color:var(--white)}
.duo-switch a:hover{color:var(--taupe-deep)}

/* ---------- home ---------- */
.hero{min-height:calc(100vh - 58px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;padding:60px 24px 170px;overflow:hidden}
.hero-logo{width:240px;margin-bottom:36px}
.hero-logo img{display:block;width:100%;height:auto}
.hero h1{font-size:clamp(2.1rem,4.4vw,3.8rem);max-width:21ch;margin:0 auto}
.hero .sub{margin:24px auto 36px;font-size:17px;color:var(--ink-62);max-width:54ch}
.hero .cue{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.2em;color:var(--ink-45)}
.hero .cue::after{content:"";display:block;width:1px;height:30px;background:var(--taupe);margin:8px auto 0}
.hero .ground{position:absolute;left:0;right:0;bottom:0;z-index:-1;opacity:.5}
.hero .ground svg{display:block;width:100%;height:auto}

/* signature scene (home + metodo) */
.sig-head{text-align:center;padding:88px 24px 36px}
.sig-head h2{font-size:clamp(1.8rem,3vw,2.5rem)}
.sig-head p{margin-top:10px;color:var(--ink-62);font-size:15px}
.sig{position:relative}
.scene-wrap{position:sticky;top:58px;height:calc(100vh - 58px);margin-bottom:calc(-100vh + 58px);z-index:0;overflow:hidden;background:var(--white)}
.scene-wrap svg{position:absolute;inset:0;width:100%;height:100%}
.chapters{position:relative;z-index:1}
.chapter{min-height:100vh;display:flex;align-items:flex-end}
.chapter .box{margin:0 0 10vh 7vw;max-width:520px;background:rgba(255,255,255,.86);padding:22px 28px 26px;border-left:1px solid var(--taupe-30)}
.plumb{width:1px;height:0;background:var(--taupe);margin-bottom:16px;transition:height .7s ease;position:relative}
.plumb::after{content:"";position:absolute;bottom:-3px;left:-3px;width:7px;height:7px;background:var(--taupe);transform:rotate(45deg);opacity:0;transition:opacity .4s ease .5s}
.chapter.is-active .plumb{height:10vh}
.chapter.is-active .plumb::after{opacity:1}
.chapter .fase{font-size:12px;letter-spacing:.24em;color:var(--taupe-deep);margin-bottom:8px;text-transform:lowercase}
.chapter h3{font-size:clamp(1.6rem,2.5vw,2.2rem);margin-bottom:10px}
.chapter p{font-size:15.5px;color:var(--ink-62);max-width:46ch}
.chapter .more{display:inline-block;margin-top:12px;font-size:13.5px;color:var(--taupe-deep);border-bottom:1px solid var(--taupe-30)}
.sig-tail{height:32vh}
/* scene stage math (identical to proposal E) */
.scene{
  --s1:clamp(0,calc(var(--p,0) * 5),1);
  --s2:clamp(0,calc((var(--p,0) - .25) * 5),1);
  --s3:clamp(0,calc((var(--p,0) - .5) * 5),1);
  --s4:clamp(0,calc((var(--p,0) - .75) * 5),1);
  --s1a:clamp(0,calc(var(--s1) * 1.9),1);
  --s1b:clamp(0,calc((var(--s1) - .35) * 1.9),1);
  --s2a:clamp(0,calc(var(--s2) * 1.9),1);
  --s2b:clamp(0,calc((var(--s2) - .3) * 1.9),1);
  --s2c:clamp(0,calc((var(--s2) - .62) * 2.6),1);
  --s3a:clamp(0,calc(var(--s3) * 1.9),1);
  --s4a:clamp(0,calc(var(--s4) * 1.9),1);
  --s4b:clamp(0,calc((var(--s4) - .3) * 1.9),1);
  --s4c:clamp(0,calc((var(--s4) - .55) * 2.4),1);
  --rise:var(--s3);
}
@supports (width: round(down, 10px, 1px)){
  .scene{--rise:calc(round(down, calc(var(--s3) * 6.99), 1) / 6)}
}
.scene path{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1}
.scene text{font-family:var(--sans);fill:var(--ink-45);font-size:11px;letter-spacing:.08em}
.scene .tp{stroke:var(--taupe)}
.scene text.tp{fill:var(--taupe-deep);stroke:none}
.scene .s1 path{stroke:var(--ink-45);stroke-width:1.2;stroke-linecap:round}
.scene .s1 .ga path{stroke-dashoffset:calc(1 - var(--s1a))}
.scene .s1 .gb path{stroke-dashoffset:calc(1 - var(--s1b))}
.scene .s1{opacity:calc(1 - var(--s2)*.72)}
.scene .s2 .ga path{stroke-dashoffset:calc(1 - var(--s2a))}
.scene .s2 .gb path{stroke-dashoffset:calc(1 - var(--s2b))}
.scene .s2 .gc path{stroke-dashoffset:calc(1 - var(--s2c))}
.scene .s2 text{opacity:var(--s2c)}
.scene .s2{opacity:calc(1 - var(--s3)*.55)}
.scene .s3 .ga path{stroke-dashoffset:calc(1 - var(--s3a));stroke-width:1.6}
.scene .s3 .rise{clip-path:inset(calc((1 - var(--rise)) * 100%) 0 0 0)}
.scene .s3 .rise path{stroke-dasharray:none;stroke-dashoffset:0;stroke-width:2.2}
.scene .s3 .rise path.slab{stroke-width:5}
.scene .s3{opacity:calc(1 - var(--s4)*.74)}
.scene .s4 .ga path{stroke-dashoffset:calc(1 - var(--s4a));stroke-width:1.5}
.scene .s4 .gb path{stroke-dashoffset:calc(1 - var(--s4b))}
.scene .s4 .gc path{stroke-dashoffset:calc(1 - var(--s4c))}
.scene .s4 .panes{opacity:calc(var(--s4b) * .85)}
.scene .s4 .panes path{stroke:none;fill:var(--ink-06);stroke-dasharray:none;stroke-dashoffset:0}
.scene .s4 .lit path{stroke:none;fill:var(--taupe);stroke-dasharray:none;stroke-dashoffset:0;opacity:clamp(0,calc((var(--s4c) - var(--i,0)*.11) * 5),1)}
.scene .s4 text{opacity:var(--s4c)}
/* reduced-motion figures */
[data-figset]{display:none}
html.reduced .scene-wrap{display:none}
html.reduced .chapter{min-height:0;padding:20px 0}
html.reduced .chapter .box{margin:0 auto;max-width:640px;background:transparent;border-left:0}
html.reduced .plumb{height:24px}
html.reduced .plumb::after{opacity:1}
html.reduced .sig-tail{height:0}
html.reduced [data-figset]{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1100px;margin:0 auto;padding:20px 24px 60px}
html.reduced [data-figset] figure{border:1px solid var(--ink-14);padding:14px;background:var(--white)}
html.reduced [data-figset] figcaption{font-size:12px;letter-spacing:.18em;color:var(--taupe-deep);margin-bottom:8px}
html.reduced [data-figset] svg{position:static;width:100%;height:auto}
html.reduced [data-figset] .scene{--p:1;--s1:1;--s2:1;--s3:1;--s4:1;--s1a:1;--s1b:1;--s2a:1;--s2b:1;--s2c:1;--s3a:1;--s4a:1;--s4b:1;--s4c:1;--rise:1}
html.reduced [data-figset] [data-fs="1"] .s2,html.reduced [data-figset] [data-fs="1"] .s3,html.reduced [data-figset] [data-fs="1"] .s4{display:none}
html.reduced [data-figset] [data-fs="2"] .s3,html.reduced [data-figset] [data-fs="2"] .s4{display:none}
html.reduced [data-figset] [data-fs="3"] .s4{display:none}
html.reduced [data-figset] [data-fs="1"] .s1,html.reduced [data-figset] [data-fs="2"] .s2,html.reduced [data-figset] [data-fs="3"] .s3{opacity:1}

/* ---------- cards: progetti / guide ---------- */
.pcard{border:1px solid var(--ink-14);display:block;transition:border-color .2s ease}
.pcard:hover{border-color:var(--taupe)}
.pcard .fig{padding:18px 18px 6px;background:var(--white)}
.pcard .fig svg{width:100%;height:auto}
.pcard .body{padding:18px 22px 22px;border-top:1px solid var(--ink-14)}
.pcard .meta{font-size:12px;letter-spacing:.14em;color:var(--taupe-deep);text-transform:lowercase}
.pcard h3{font-size:19px;margin:8px 0 6px}
.pcard p{font-size:13.5px;color:var(--ink-62)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gcard{border-top:1px solid var(--ink-14);padding:20px 0;display:block}
.gcard .meta{font-size:12px;color:var(--taupe-deep);letter-spacing:.14em}
.gcard h3{font-size:19px;margin:8px 0 6px}
.gcard h3:hover{color:var(--taupe-deep)}
.gcard p{font-size:14px;color:var(--ink-62);max-width:60ch}

/* article (guide) */
.article{max-width:760px}
.article .prose h2{font-size:1.45rem;margin:34px 0 12px}
.article .prose p{max-width:none}

/* ---------- forms ---------- */
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.field{margin-bottom:22px}
.field label{display:block;font-size:11.5px;letter-spacing:.16em;color:var(--ink-45);margin-bottom:6px}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--ink-14);color:var(--ink);font-family:var(--sans);font-size:15.5px;padding:7px 2px;border-radius:0}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--taupe);box-shadow:0 8px 14px -8px rgba(216,198,154,.55)}
.field textarea{min-height:88px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-62);margin:6px 0 26px}
.check input{accent-color:var(--taupe);margin-top:3px}
.micro{font-size:12.5px;color:var(--ink-45)}

/* ---------- footer (the single ink moment) ---------- */
footer{background:var(--ink);color:var(--ivory-40);padding:64px 0 40px;margin-top:0;position:relative;z-index:2;font-size:13.5px;border-top:2px solid var(--taupe)}
footer .cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px;padding-bottom:40px;border-bottom:1px solid var(--ivory-16)}
footer .logo-w{width:150px;margin-bottom:18px}
footer .logo-w img{display:block;width:100%}
footer h4{font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-70);margin-bottom:14px}
footer ul{list-style:none}
footer li{margin-bottom:8px}
footer a:hover{color:var(--ivory)}
footer .legal{padding-top:22px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--ivory-40)}
footer [data-phones] a{color:var(--ivory-70)}
footer [data-phones] small{color:var(--ivory-40)}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .wrap{padding:0 20px}
  .nav{padding:0 18px}
  .nav .links{position:fixed;inset:58px 0 0 0;background:var(--ink);flex-direction:column;justify-content:center;gap:26px;font-size:18px;color:var(--ivory);display:none}
  body.menu-open .nav .links{display:flex}
  body.menu-open{overflow:hidden}
  .nav .links a.btn{color:var(--ivory);border-color:var(--taupe)}
  .menu-btn{display:block}
  .cols2,.grid2,.grid3,.svc-grid{grid-template-columns:1fr}
  .duo-card{grid-template-columns:1fr}
  .duo-card .art{border-right:0;border-bottom:1px solid var(--ink-14)}
  .msteps{grid-template-columns:1fr 1fr}
  .f2{grid-template-columns:1fr}
  .hero-logo{width:190px}
  .chapter .box{margin:0 0 8vh 16px;max-width:88vw}
  footer .cols{grid-template-columns:1fr 1fr}
  html.reduced [data-figset]{grid-template-columns:1fr}
}
