/* CP&S — Shibui Gallery. Brand: Questrial · #C7AE7C gold · #595959 charcoal · white */
@font-face{font-family:Questrial;src:url(/assets/fonts/questrial.woff2) format("woff2");font-display:swap;font-weight:400}
:root{
  --gold:#C7AE7C; --gold-d:#7E6A40; --ink:#595959; --ink-2:#4A4A49; --ink-3:#3D3D3C;
  --paper:#FFFFFF; --paper-2:#F7F5F1; --hair:rgba(89,89,89,.18); --hair-l:rgba(255,255,255,.22);
  --gut:clamp(16px,4vw,56px); --max:1440px; --ease:cubic-bezier(.2,.7,.1,1);
  --f:Questrial,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 clamp(16px,1.05vw,18px)/1.65 var(--f);letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0;padding:0}
ol,ul{list-style:none}
h1,h2,h3{font-weight:400}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
.sr,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:8px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px}
.skip:focus{top:8px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.muted{opacity:.7}.small{font-size:.8em}

/* type */
.label{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-d);margin-bottom:1.6rem}
.sec-dark .label,.on-dark .hero .label{color:var(--gold)}
.display,.display-l{font-size:clamp(2.1rem,5.4vw,5.6rem);line-height:1.04;letter-spacing:-.015em;max-width:16ch}
.display-l{font-size:clamp(2.2rem,4.8vw,4.8rem);max-width:18ch}
.h2{font-size:clamp(1.6rem,3vw,2.8rem);line-height:1.12;letter-spacing:-.01em;max-width:22ch}
.lead{font-size:clamp(1.15rem,1.6vw,1.5rem);line-height:1.45;max-width:34ch;margin-top:2rem}
.placard{display:flex;flex-direction:column;gap:.15rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.6;color:var(--ink)}
.placard span:first-child{color:var(--ink)}
.arr{width:24px;height:10px;display:inline-block;vertical-align:middle;margin-left:.5em;transition:transform .5s var(--ease)}
a:hover .arr{transform:translateX(6px)}

/* header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px var(--gut);transition:background .5s var(--ease),color .5s,transform .5s var(--ease);color:var(--ink)}
.on-dark .hdr{color:#fff}
.hdr.solid{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 1px 0 var(--hair)}
.hdr.hide{transform:translateY(-100%)}
.hdr-logo{display:block;width:clamp(92px,8vw,124px)}
.logo-svg{display:block;width:100%;height:auto;overflow:visible}
.hdr-nav{display:flex;gap:clamp(18px,2.4vw,40px);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase}
.hdr-nav a{position:relative;padding:6px 0}
.hdr-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.hdr-nav a:hover::after,.hdr-nav a[aria-current]::after{transform:scaleX(1)}
.hdr-nav .lang{color:var(--gold)}
.menu-btn{display:none;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;padding:10px 0}
.menu-x{display:none}
.menu{position:fixed;inset:0;z-index:35;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:110px var(--gut) 40px;opacity:0;transition:opacity .5s var(--ease)}
.menu.open{opacity:1}
.menu nav{display:flex;flex-direction:column;gap:.6rem}
.menu nav a{font-size:clamp(2.2rem,11vw,4rem);line-height:1.1;display:flex;align-items:baseline;gap:1rem;transform:translateY(20px);opacity:0;transition:transform .7s var(--ease),opacity .7s}
.menu.open nav a{transform:none;opacity:1}
.menu.open nav a:nth-child(2){transition-delay:.06s}.menu.open nav a:nth-child(3){transition-delay:.12s}.menu.open nav a:nth-child(4){transition-delay:.18s}
.menu nav small{font-size:.7rem;color:var(--gold);letter-spacing:.2em}
.menu-foot{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;border-top:1px solid var(--hair-l);padding-top:1.4rem}
.menu-open .menu-lbl{display:none}.menu-open .menu-x{display:inline}
.menu-open .hdr{color:#fff;background:transparent;box-shadow:none}

/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;color:#fff;overflow:hidden;background:#3a3a39}
.hero-media{position:absolute;inset:0}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:translate3d(0,var(--hy,0px),0) scale(var(--hs,1.14));transition:transform 3s var(--ease)}
.loaded .hero-img{--hs:1.04}
.hero.moving .hero-img{transition:none}
.on-dark .hdr:not(.solid) .hdr-logo{opacity:0;pointer-events:none}
.hdr-logo{transition:opacity .6s var(--ease)}
.menu-open .hdr .hdr-logo{opacity:1!important;pointer-events:auto}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(45,45,44,.5) 0%,rgba(45,45,44,.1) 30%,rgba(45,45,44,.2) 55%,rgba(45,45,44,.72) 100%),linear-gradient(90deg,rgba(45,45,44,.5) 0%,rgba(45,45,44,0) 55%)}
.hero-inner{position:absolute;left:0;right:0;bottom:clamp(90px,16vh,170px);display:flex;flex-direction:column;gap:clamp(18px,3vh,34px)}
.hero-logo{width:clamp(220px,34vw,520px)}
.hero-line{font-size:clamp(1.3rem,2.6vw,2.4rem);line-height:1.15;letter-spacing:-.005em}
.hero-placard{position:absolute;right:var(--gut);bottom:clamp(28px,5vh,48px);color:rgba(255,255,255,.86);text-align:right;border-right:1px solid var(--gold);padding-right:14px}
.hero-placard span:first-child{color:#fff}
.scroll-cue{position:absolute;left:var(--gut);bottom:clamp(28px,5vh,48px);display:flex;align-items:center;gap:14px;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase}
.scroll-cue i{display:block;width:64px;height:1px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--gold);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

/* logo draw-on: strokes carry the brand weights (C 8pt · P 6pt · S 6pt · tagline 1pt) */
.draw .ls{stroke-dasharray:1;stroke-dashoffset:1}
.draw .ts{opacity:0}
.draw .lf,.draw .tf{opacity:0}
.js .draw .ls{animation:stroke 2.2s var(--ease) .25s forwards}
.js .draw .ts{animation:fill 1s var(--ease) 1.5s forwards}
.js .draw .lf{animation:fill 1.2s var(--ease) 1.7s forwards}
.js .draw .tf{animation:fill 1s var(--ease) 2.1s forwards}
@keyframes stroke{to{stroke-dashoffset:0}}
@keyframes fill{to{opacity:1}}
.hero-line,.hero-placard,.scroll-cue{opacity:0;transform:translateY(14px);transition:opacity 1.2s var(--ease) 2.2s,transform 1.2s var(--ease) 2.2s}
.loaded .hero-line,.loaded .hero-placard,.loaded .scroll-cue{opacity:1;transform:none}
html:not(.js) .hero-line,html:not(.js) .hero-placard,html:not(.js) .scroll-cue{opacity:1;transform:none}
html:not(.js) .draw .lf,html:not(.js) .draw .tf,html:not(.js) .draw .ts{opacity:1}
html:not(.js) .draw .ls{stroke-dashoffset:0}

/* statement */
.statement{padding:clamp(120px,22vh,260px) 0 clamp(80px,14vh,160px)}
.statement .display{max-width:17ch}
.statement-sub{max-width:44ch;margin:clamp(40px,7vh,80px) 0 0 auto;font-size:clamp(1rem,1.25vw,1.2rem)}
.kinetic .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.kinetic .w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.kinetic.in .w>span{transform:none}

/* ledger */
.ledger-sec{padding:0 0 clamp(100px,18vh,200px)}
.ledger{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.ledger>div{padding:1.6rem 1.2rem 0 0;border-right:1px solid var(--hair);margin-right:1.2rem}
.ledger>div:last-child{border-right:0}
.ledger dt{font-size:clamp(2.2rem,4.6vw,4.4rem);line-height:1;color:var(--gold-d);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ledger dd{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-top:.9rem}

/* gallery wall — asymmetric hanging */
.wall{padding:0 0 clamp(80px,14vh,180px);background:var(--paper-2);padding-top:clamp(90px,16vh,180px)}
.wall-head{margin-bottom:clamp(50px,9vh,110px)}
.wall-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(16px,2vw,32px);row-gap:clamp(56px,10vh,120px)}
.work figure{display:flex;flex-direction:column;gap:1rem}
.work .placard .no{color:var(--gold-d)}
.work .placard .ttl{font-size:1.05rem;letter-spacing:.02em;text-transform:none;color:var(--ink);margin:.2rem 0}
.work .placard .more{margin-top:.5rem;color:var(--gold-d)}
.frame{overflow:hidden;position:relative}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.work:hover .frame img{transform:scale(1.035)}
.w-a{grid-column:1/8}.w-a .frame{aspect-ratio:4/3}
.w-b{grid-column:9/13;margin-top:26vh}.w-b .frame{aspect-ratio:3/4}
.w-c{grid-column:2/6}.w-c .frame{aspect-ratio:4/5}
.w-d{grid-column:7/13;margin-top:10vh}.w-d .frame{aspect-ratio:16/10}
.w-e{grid-column:1/6;margin-top:6vh}.w-e .frame{aspect-ratio:3/4}
.w-f{grid-column:7/12;margin-top:16vh}.w-f .frame{aspect-ratio:4/5}
.w-g{grid-column:3/11}.w-g .frame{aspect-ratio:16/9}

/* unveil + reveal */
.js [data-unveil]{clip-path:inset(0 0 100% 0);transition:clip-path 1.5s var(--ease)}
.js [data-unveil] img{transform:scale(1.14);transition:transform 2s var(--ease)}
.js [data-unveil].in{clip-path:inset(0 0 0 0)}
.js [data-unveil].in img{transform:scale(1)}
.js .work:hover [data-unveil].in img{transform:scale(1.035)}
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}

/* route — sticky horizontal choreography */
.route{position:relative;height:420vh;background:var(--ink);color:#fff}
.route-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(24px,5vh,56px)}
.route .label{color:var(--gold)}
.route-head .h2{max-width:28ch;font-size:clamp(1.3rem,2.2vw,2rem)}
.route-bar{margin:0 var(--gut);height:1px;background:var(--hair-l);position:relative}
.route-bar i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(var(--p,0))}
.route-track{display:flex;gap:clamp(24px,4vw,72px);padding:0 var(--gut);will-change:transform;transform:translate3d(var(--x,0),0,0)}
.step{flex:0 0 clamp(240px,24vw,380px);display:flex;flex-direction:column;gap:.8rem}
.step-img{aspect-ratio:4/5;overflow:hidden;filter:grayscale(.85) contrast(1.02);opacity:.55;transition:filter 1s var(--ease),opacity 1s}
.step.on .step-img{filter:none;opacity:1}
.step-img img{width:100%;height:100%;object-fit:cover}
.step-no{font-size:.7rem;letter-spacing:.3em;color:#E2D3B1}
.step h3{font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1}
.step p{font-size:.95rem;opacity:.8;max-width:26ch}

/* map */
.map-sec{padding:clamp(100px,18vh,200px) 0}
.map-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,4vw,72px);align-items:center}
.tabs{display:flex;gap:0;margin:2.2rem 0 2rem;border:1px solid var(--ink);width:max-content}
.tabs button{padding:.7rem 1.2rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:background .4s,color .4s}
.tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.map-info{border-top:1px solid var(--hair);padding-top:1.2rem;min-height:5.4rem}
.mi-name{font-size:1.5rem}
.mi-note{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-d);margin-top:.3rem}
.map-hint{font-size:.72rem;margin-top:1rem}
.mx-map{width:100%;height:auto;overflow:hidden}
.mx-map .mx{fill:var(--paper-2);stroke:var(--ink);stroke-width:.9;vector-effect:non-scaling-stroke}
.mx-map .nb path{fill:none;stroke:var(--hair);stroke-width:.7;vector-effect:non-scaling-stroke}
.mx-map .arcs path{fill:none;stroke:var(--gold);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease)}
.mx-map .arcs{opacity:0;transition:opacity .5s}
.layer-ops .arcs.ops,.layer-art .arcs.art{opacity:1}
.mx-map.in.layer-ops .arcs.ops path,.mx-map.in.layer-art .arcs.art path{stroke-dashoffset:0}
.arcs path:nth-child(2){transition-delay:.08s}.arcs path:nth-child(3){transition-delay:.16s}.arcs path:nth-child(4){transition-delay:.24s}.arcs path:nth-child(5){transition-delay:.32s}.arcs path:nth-child(6){transition-delay:.4s}.arcs path:nth-child(7){transition-delay:.48s}.arcs path:nth-child(8){transition-delay:.56s}.arcs path:nth-child(9){transition-delay:.64s}.arcs path:nth-child(10){transition-delay:.72s}
.city{cursor:pointer;opacity:0;pointer-events:none;transition:opacity .6s}
.layer-ops .city.l-ops,.layer-art .city.l-art{opacity:1;pointer-events:auto}
.city .dot{fill:var(--ink);transition:fill .3s,r .3s}
.city .halo{fill:var(--gold);opacity:0;transition:opacity .3s}
.city text{font-size:15px;fill:var(--ink);opacity:0;transition:opacity .3s;font-family:var(--f);letter-spacing:.04em;paint-order:stroke;stroke:var(--paper);stroke-width:4px}
.city:hover .halo,.city.act .halo{opacity:.25}
.city:hover .dot,.city.act .dot{fill:var(--gold-d)}
.city:hover text,.city.act text{opacity:1}
@media (min-width:1100px){.city text{opacity:.0}.layer-ops .city[data-k=guadalajara] text,.layer-ops .city[data-k=cabos] text,.layer-ops .city[data-k=sandiego] text,.layer-ops .city[data-k=merida] text,.layer-ops .city[data-k=cdmx] text,.layer-ops .city[data-k=monterrey] text,.layer-ops .city[data-k=cancun] text{opacity:.85}}

/* manifest */
.manifest{position:relative;padding:clamp(100px,18vh,200px) 0;background:var(--paper-2)}
.man-list{margin-top:clamp(40px,7vh,80px);border-top:1px solid var(--ink)}
.man-list a{display:grid;grid-template-columns:3rem 1fr 13rem 11rem 2rem;align-items:center;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--hair);transition:padding .5s var(--ease),color .3s}
.man-list a:hover{padding-left:1rem;color:var(--ink-3)}
.m-no{font-size:.72rem;letter-spacing:.2em;color:var(--gold-d)}
.m-name{font-size:clamp(1.1rem,1.8vw,1.6rem)}
.m-place,.m-term{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.clients{margin-top:2.4rem;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.preview{position:fixed;left:0;top:0;width:clamp(200px,20vw,300px);aspect-ratio:4/5;pointer-events:none;z-index:30;opacity:0;transform:translate3d(-50%,-50%,0) scale(.92);transition:opacity .35s,transform .35s var(--ease);overflow:hidden}
.preview.on{opacity:1}
.preview img{width:100%;height:100%;object-fit:cover}

/* CTA + footer */
.sec-dark{background:var(--ink);color:#fff}
.cta{padding:clamp(110px,20vh,220px) 0}
.cta-sub{max-width:42ch;margin-top:1.6rem;opacity:.85}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:2.6rem}
.btn{display:inline-flex;align-items:center;gap:.2rem;padding:1rem 1.5rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;border:1px solid currentColor;transition:background .4s,color .4s,border-color .4s}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink-3)}
.btn-gold:hover{background:#fff;border-color:#fff}
.btn-line{color:#fff;border-color:var(--hair-l)}
.btn-line:hover{border-color:var(--gold);color:var(--gold)}
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-dark:hover{background:var(--gold);border-color:var(--gold);color:var(--ink-3)}
.btn-line-dark{color:var(--ink)}
.ftr{background:var(--ink-3);color:rgba(255,255,255,.82);padding:clamp(70px,12vh,120px) 0 28px;font-size:.88rem}
.ftr-grid{display:grid;grid-template-columns:4fr 3fr 2fr 3fr;gap:clamp(24px,3vw,48px)}
.ftr .label{color:var(--gold)}
.ftr ul{display:flex;flex-direction:column;gap:.45rem}
.ftr a:hover{color:var(--gold)}
.logo-ftr{width:150px;color:#fff;margin-bottom:1.4rem}
.ftr-brand p{max-width:30ch;opacity:.8}
.ftr-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:clamp(50px,9vh,90px);padding-top:22px;border-top:1px solid var(--hair-l);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7}

/* inner pages */
.page-head{padding:clamp(150px,26vh,260px) 0 clamp(60px,10vh,110px)}
.page-head.thanks{min-height:80vh}
.page-head.thanks .btn{margin-top:2.4rem}
.s-hero{padding:clamp(120px,20vh,190px) 0 clamp(60px,10vh,120px)}
.s-hero-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,4vw,80px);align-items:end}
.s-hero-copy .label a{border-bottom:1px solid transparent}.s-hero-copy .label a:hover{border-color:currentColor}
.s-hero-fig{display:flex;flex-direction:column;gap:1rem}
.s-hero-fig .frame{aspect-ratio:4/5;max-height:78vh}
.s-body{padding:clamp(40px,8vh,100px) 0 clamp(80px,14vh,160px)}
.s-body-grid{display:grid;grid-template-columns:6fr 5fr;gap:clamp(32px,6vw,120px)}
.s-text p{font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.6;max-width:40ch}
.s-text p+p{margin-top:1.4rem}
.rule-list{border-top:1px solid var(--ink)}
.rule-list li{padding:.95rem 0;border-bottom:1px solid var(--hair);font-size:.98rem}
.system{font-size:1.1rem;line-height:1.6}
.s-plate .frame{aspect-ratio:16/8}
.cycle{padding:clamp(90px,16vh,180px) 0}
.cycle-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--ink)}
.cycle-list li{padding:1.6rem 1.4rem 1.6rem 0;border-right:1px solid var(--hair);margin-right:1.4rem}
.cycle-list li:last-child{border-right:0}
.c-no{font-size:.7rem;letter-spacing:.24em;color:var(--gold-d)}
.cycle-list h3{font-size:1.45rem;margin:.8rem 0 .5rem}
.cycle-list p{font-size:.92rem;opacity:.85}
.towns{display:flex;flex-wrap:wrap;gap:.2rem 2.4rem;font-size:clamp(1.4rem,3vw,2.6rem);line-height:1.35;border-top:1px solid var(--ink);padding-top:1.6rem}
.towns li:nth-child(odd){color:var(--gold-d)}
.units{width:100%;border-collapse:collapse;font-size:1rem;font-variant-numeric:tabular-nums}
.units th{text-align:left;font-weight:400;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-d);padding:0 0 1rem;border-bottom:1px solid var(--ink)}
.units td{padding:1rem 0;border-bottom:1px solid var(--hair)}
.units td:first-child{font-size:1.2rem}
.value-list{columns:2;column-gap:clamp(32px,6vw,120px);border-top:1px solid var(--ink)}
.value-list li{break-inside:avoid;display:flex;gap:1.2rem;padding:1rem 0;border-bottom:1px solid var(--hair)}
.value-list span{font-size:.7rem;letter-spacing:.2em;color:var(--gold-d);padding-top:.35rem}
.next-sec{padding:0 0 clamp(90px,16vh,180px)}
.next{display:block;border-top:1px solid var(--ink);padding-top:2rem}
.next .display{display:block;max-width:none;font-size:clamp(1.9rem,4.4vw,4.4rem)}
.next .arr{width:48px;height:20px}
.svc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,7vh,80px) clamp(16px,2vw,32px);padding-bottom:clamp(90px,16vh,180px)}
.svc-list li:nth-child(3n+2){margin-top:12vh}
.svc-list .frame{aspect-ratio:4/5;margin-bottom:1rem}
.svc-list a:hover img{transform:scale(1.035)}
.svc-list .no{font-size:.7rem;letter-spacing:.24em;color:var(--gold-d)}
.svc-list h2{font-size:1.5rem;margin:.4rem 0 .3rem}
.svc-list p{font-size:.92rem;opacity:.85}
.case{padding:clamp(60px,10vh,120px) 0;border-top:1px solid var(--hair)}
.case-grid{display:grid;grid-template-columns:6fr 5fr;gap:clamp(28px,5vw,96px);align-items:center}
.case-r .case-fig{order:2}
.case-fig .frame{aspect-ratio:4/5}
.frame-type{background:var(--ink);display:flex;align-items:flex-end;padding:2rem;color:var(--gold)}
.frame-type span{font-size:clamp(1.4rem,2.6vw,2.4rem);line-height:1.2;max-width:12ch}
.case-copy .h2{margin-bottom:.8rem}
.case-head{font-size:1.15rem;color:var(--gold-d);margin-bottom:1.2rem}
.case-copy>p{max-width:46ch}
.case-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0 0;border-top:1px solid var(--ink);padding-top:1.2rem}
.case-stats dt{font-size:clamp(1.6rem,2.6vw,2.4rem);color:var(--gold-d);line-height:1}
.case-stats dd{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;margin-top:.5rem}
.case-meta{margin-top:2rem;font-size:.85rem}
.case-meta div{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--hair)}
.case-meta dt{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-d);padding-top:.2rem}
.contact{padding:0 0 clamp(100px,18vh,200px)}
.contact-grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(32px,6vw,120px)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 2rem;align-content:start}
.fld{display:flex;flex-direction:column;gap:.4rem}
.fld span{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-d)}
.fld input,.fld select,.fld textarea{font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:.6rem 0;border-radius:0;-webkit-appearance:none;appearance:none}
.fld select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23595959'/%3E%3C/svg%3E") right center no-repeat}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--gold)}
.fld-full{grid-column:1/-1}
.form .btn{justify-self:start;grid-column:1/-1}
.direct{display:flex;flex-direction:column;gap:.8rem;font-size:1.05rem}
.direct a{border-bottom:1px solid var(--hair);padding-bottom:.8rem}
.direct a:hover{color:var(--gold-d)}
.direct .frame{aspect-ratio:3/4;margin-top:1.4rem}

/* responsive */
@media (max-width:1000px){
  .hdr-nav{display:none}.menu-btn{display:block}
  .map-grid,.s-hero-grid,.s-body-grid,.case-grid,.contact-grid{grid-template-columns:1fr}
  .case-r .case-fig{order:0}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .svc-list{grid-template-columns:1fr 1fr}.svc-list li:nth-child(3n+2){margin-top:0}.svc-list li:nth-child(even){margin-top:8vh}
  .man-list a{grid-template-columns:2.4rem 1fr 2rem;row-gap:.3rem}
  .m-place,.m-term{grid-column:2}.man-list .arr{grid-row:1/3;grid-column:3}
}
@media (max-width:760px){
  .wall-grid{grid-template-columns:1fr;row-gap:64px}
  .wall-grid .work{grid-column:auto!important;margin-top:0!important}
  .wall-grid .work:nth-child(even){padding-left:14vw}
  .wall-grid .work:nth-child(odd){padding-right:8vw}
  .ledger{grid-template-columns:1fr 1fr;row-gap:1.6rem}
  .ledger>div:nth-child(2){border-right:0}
  .step{flex-basis:72vw}
  .route{height:520vh}
  .statement-sub{margin-left:0}
  .hero-placard{left:var(--gut);right:auto;text-align:left;border-right:0;border-left:1px solid var(--gold);padding:0 0 0 12px;bottom:90px}
  .scroll-cue{bottom:36px}
  .hero-inner{bottom:180px}
  .form{grid-template-columns:1fr}
  .svc-list{grid-template-columns:1fr}.svc-list li:nth-child(even){margin-top:0}
  .value-list{columns:1}
  .cycle-list li{border-right:0;border-bottom:1px solid var(--hair);margin-right:0}
  .s-plate .frame{aspect-ratio:4/3}
  .case-stats{grid-template-columns:1fr 1fr 1fr}
  .ftr-grid{grid-template-columns:1fr}
  .units td:first-child{font-size:1rem}
  .city text{font-size:34px;stroke-width:6px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  html{scroll-behavior:auto}
}

.img-note{margin-top:.8rem;text-transform:none;letter-spacing:.04em;font-size:.72rem;opacity:.75}
