:root{
  --bg:#0a0a0b; --bg2:#111113; --card:#16161a; --line:#26262c; --line2:#34343b;
  --red:#DD3C33; --red2:#ff4a3f; --redDim:rgba(221,60,51,.14);
  --text:#f3f2ef; --muted:#9b9aa1; --dim:#6c6b72;
  --disp:"Barlow Condensed",Impact,sans-serif; --body:"Archivo",system-ui,sans-serif;
  --soft:#c9c8cc; --navbg:rgba(10,10,11,.86); --shade:10,10,11; --frame1:#17171b; --frame2:#0d0d0f; --logoimg:brightness(1.8);
  --r:4px; --skew:-12deg; --nav:72px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav)}
body{background:var(--bg);color:var(--text);font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}
@media(max-width:600px){.wrap{padding:0 16px}}
.muted{color:var(--muted)}

/* ---------- type ---------- */
.kicker{display:inline-flex;align-items:center;gap:10px;font:700 13px/1 var(--disp);letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.kicker::before{content:"";width:22px;height:3px;background:var(--red);transform:skewX(var(--skew))}
.kicker .dot{display:none}
.h2{font:800 italic clamp(36px,5.2vw,64px)/.95 var(--disp);text-transform:uppercase;letter-spacing:-.01em;margin-bottom:20px}
.sec-head{margin-bottom:56px;max-width:720px}
.sec-head.row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 30px;font:700 15px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;isolation:isolate;transition:color .25s}
.btn::before{content:"";position:absolute;inset:0;transform:skewX(var(--skew));z-index:-1;transition:background .25s,border-color .25s,transform .25s}
.btn-red{color:#fff}
.btn-red::before{background:var(--red)}
.btn-red:hover::before{background:var(--red2);transform:skewX(var(--skew)) translateX(3px)}
.btn-ghost::before{border:1.5px solid var(--line2)}
.btn-ghost:hover::before{border-color:var(--text)}
.btn-light{color:var(--bg)}
.btn-light::before{background:var(--text)}
.btn-sm{padding:11px 20px;font-size:13px}
.btn:disabled{opacity:.6;pointer-events:none}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto;height:var(--nav);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 28px;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.solid{background:var(--navbg);backdrop-filter:blur(14px);border-color:var(--line)}
.nav-logo img{height:40px;width:auto}
.nav-links{display:flex;gap:30px}
.nav-links a{font:600 14px/1 var(--disp);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .2s;position:relative}
.nav-links a:hover,.nav-links a.act{color:var(--text)}
.nav-links a.act::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--red)}
.nav-right{display:flex;align-items:center;gap:18px}
.lang{display:flex;border:1px solid var(--line2);border-radius:2px}
.lang button{font:700 12px/1 var(--disp);letter-spacing:.12em;padding:7px 9px;color:var(--dim)}
.lang button.on{color:var(--text);background:var(--line)}
.burger{display:none;width:34px;height:34px;flex-direction:column;justify-content:center;gap:7px}
.burger span{height:2px;background:var(--text);transition:transform .3s}
.nav.open .burger span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav.open .burger span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
@media(max-width:980px){
  .burger{display:flex}
  .hide-sm{display:none}
  .nav{padding:0 16px}
  .nav-links{position:fixed;top:var(--nav);left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);transform:translateY(-120%);transition:transform .35s;z-index:-1}
  .nav.open{background:var(--bg)}
  .nav.open .nav-links{transform:none}
  .nav-links a{padding:18px 20px;border-top:1px solid var(--line);font-size:17px}
  .nav-links a.act::after{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav) + 40px) 0 40px;overflow:hidden}
#reflect{position:absolute;inset:0;width:100%;height:100%}
.hero-shade{position:absolute;inset:0;background:radial-gradient(120% 90% at 15% 50%,rgba(var(--shade),.88) 22%,rgba(var(--shade),.15) 68%,rgba(var(--shade),.4)),linear-gradient(to top,var(--bg),transparent 30%);pointer-events:none}
.hero-inner{position:relative;z-index:2}
.hero-title{font:800 italic clamp(54px,10vw,148px)/.86 var(--disp);text-transform:uppercase;letter-spacing:-.02em;margin-bottom:28px}
.hero-title span{display:block}
.hero-title .l2{color:var(--red)}
.hero-title .l3{font-size:.34em;letter-spacing:.04em;line-height:1.2;color:var(--muted);margin-top:14px;font-style:normal;font-weight:700}
.hero-sub{max-width:560px;font-size:18px;color:var(--soft);margin-bottom:36px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.hero-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);margin-top:72px;border-top:1px solid var(--line)}
.hero-stats:empty{display:none}
.stat{padding:22px 0 0;border-right:1px solid var(--line);padding-left:20px}
.stat:first-child{padding-left:0}
.stat:last-child{border:0}
.stat b{display:block;font:800 italic 44px/1 var(--disp)}
.stat span{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
@media(max-width:700px){.hero-stats{grid-template-columns:1fr 1fr}.stat{padding:18px 0 14px 14px!important;border-bottom:1px solid var(--line)}.stat:nth-child(2n){border-right:0}.stat:nth-child(2n+1){padding-left:0!important}}
.hero-pdr{position:absolute;right:28px;bottom:36px;width:96px;z-index:2;opacity:.9}
@media(max-width:700px){.hero-pdr{display:none}}
.hero-inner>*{opacity:0;transform:translateY(24px);animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-inner>*:nth-child(2){animation-delay:.12s}.hero-inner>*:nth-child(3){animation-delay:.26s}.hero-inner>*:nth-child(4){animation-delay:.38s}
@keyframes up{to{opacity:1;transform:none}}

/* ---------- ticker ---------- */
.ticker{border-block:1px solid var(--line);background:var(--red);overflow:hidden;padding:14px 0}
.ticker-track{display:flex;gap:44px;width:max-content;animation:tick 38s linear infinite;font:800 italic 22px/1 var(--disp);text-transform:uppercase;letter-spacing:.06em;color:#fff;white-space:nowrap}
.ticker-track i{font-style:normal;opacity:.55}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding:120px 0}
.sec-alt{background:var(--bg2);border-block:1px solid var(--line)}
@media(max-width:700px){.sec{padding:80px 0}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal,.hero-inner>*{opacity:1;transform:none;animation:none;transition:none}.ticker-track{animation:none}}

/* about */
.about{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.about-media{position:relative}
.about-frame{aspect-ratio:4/3.4;background:linear-gradient(135deg,var(--frame1),var(--frame2));border:1px solid var(--line);display:grid;place-items:center;padding:12%;position:relative;overflow:hidden}
.about-frame::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(255,255,255,.025) 22px 23px)}
.about-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .6s}
.about-img.has{opacity:1}
.about-media::before{content:"";position:absolute;left:-14px;bottom:-14px;width:46%;height:46%;border-left:3px solid var(--red);border-bottom:3px solid var(--red);z-index:-1}
.about-text p{color:var(--soft);margin-bottom:16px;max-width:560px}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
.feat{background:var(--bg);padding:22px}
.feat b{display:block;font:700 19px/1.15 var(--disp);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.feat span{font-size:14px;color:var(--muted);line-height:1.5}
@media(max-width:900px){.about{grid-template-columns:1fr;gap:48px}}
@media(max-width:520px){.feats{grid-template-columns:1fr}}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--bg2);padding:40px 34px 44px;position:relative;transition:background .3s}
.svc::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);transition:width .45s}
.svc:hover{background:var(--card)}
.svc:hover::after{width:100%}
.svc-n{position:absolute;top:26px;right:28px;font:700 14px var(--disp);color:var(--dim);letter-spacing:.1em}
.ico{width:44px;height:44px;fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:26px}
.svc h3{font:800 italic 27px/1 var(--disp);text-transform:uppercase;margin-bottom:12px}
.svc p{color:var(--muted);font-size:15px}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.svc-grid{grid-template-columns:1fr}}

/* process */
.steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;position:relative}
.steps::before{content:"";position:absolute;top:27px;left:28px;right:28px;height:1px;background:repeating-linear-gradient(90deg,var(--line2) 0 6px,transparent 6px 12px)}
.steps li{position:relative}
.step-n{display:grid;place-items:center;width:56px;height:56px;margin-bottom:22px;font:800 italic 26px var(--disp);background:var(--bg);border:1.5px solid var(--red);color:var(--red);transform:skewX(var(--skew));position:relative}
.steps li:last-child .step-n{background:var(--red);color:#fff}
.steps h4{font:700 21px/1.1 var(--disp);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.steps p{font-size:14px;color:var(--muted)}
@media(max-width:900px){.steps{grid-template-columns:1fr;gap:28px}.steps::before{top:28px;bottom:28px;left:27px;right:auto;width:1px;height:auto;background:repeating-linear-gradient(180deg,var(--line2) 0 6px,transparent 6px 12px)}.steps li{padding-left:80px;min-height:56px}.step-n{position:absolute;left:0;top:0;margin:0}}

/* work */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{padding:9px 16px;font:700 13px/1 var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line2);transition:all .2s}
.filters button:hover{color:var(--text)}
.filters button.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.grid-work{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:10px}
.wk{position:relative;overflow:hidden;background:var(--card);cursor:pointer}
.wk.big{grid-column:span 2;grid-row:span 2}
.wk img,.wk video{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.wk:hover img{transform:scale(1.05)}
.wk-cap{position:absolute;inset:auto 0 0;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.85));font:700 16px/1.15 var(--disp);text-transform:uppercase;letter-spacing:.04em;transform:translateY(8px);opacity:0;transition:all .3s}
.wk:hover .wk-cap{opacity:1;transform:none}
.wk-tag{position:absolute;top:12px;left:12px;font:700 11px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;background:var(--red);padding:6px 9px}
.wk-play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.wk-play::before{content:"";width:0;height:0;border-left:22px solid #fff;border-block:14px solid transparent;filter:drop-shadow(0 2px 8px rgba(0,0,0,.6))}
@media(max-width:900px){.grid-work{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}}
@media(max-width:480px){.grid-work{grid-auto-rows:150px;gap:6px}}
.empty{display:none;padding:60px 20px;text-align:center;color:var(--dim);border:1px dashed var(--line2)}
.empty.show{display:block}

/* before/after */
.ba{position:relative;width:100%;height:100%;overflow:hidden;user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .ba-top{clip-path:inset(0 calc(100% - var(--x,50%)) 0 0)}
.ba-bar{position:absolute;top:0;bottom:0;left:var(--x,50%);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.ba-bar::after{content:"‹ ›";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;font:700 16px var(--disp);letter-spacing:.1em}
.ba-l{position:absolute;top:12px;font:700 11px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;background:rgba(0,0,0,.65);padding:6px 9px}
.ba-l.a{left:12px}.ba-l.b{right:12px}

/* map */
.map-wrap{display:grid;grid-template-columns:1fr 340px;border:1px solid var(--line);height:560px}
#opsMap{height:100%;background:#0e0e10}
.ops-list{border-left:1px solid var(--line);overflow-y:auto;background:var(--bg2)}
.op{display:block;width:100%;text-align:left;padding:18px 20px;border-bottom:1px solid var(--line);transition:background .2s}
.op:hover,.op.on{background:var(--card)}
.op b{display:block;font:700 19px/1.1 var(--disp);text-transform:uppercase;letter-spacing:.03em}
.op small{color:var(--muted);font-size:13px}
.op .op-u{color:var(--red)}
.ops-list .empty{border:0;margin:20px}
@media(max-width:900px){.map-wrap{grid-template-columns:1fr;height:auto}#opsMap{height:380px}.ops-list{border-left:0;border-top:1px solid var(--line);max-height:300px}}
.pin{width:18px;height:18px;background:var(--red);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 6px rgba(221,60,51,.25)}
.pin.live{animation:ping 1.8s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(221,60,51,.6)}100%{box-shadow:0 0 0 18px rgba(221,60,51,0)}}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--card);color:var(--text);border-radius:2px}
.leaflet-popup-content{margin:14px 16px;font:14px/1.4 var(--body)}
.leaflet-popup-content b{font:700 18px var(--disp);text-transform:uppercase;display:block}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
.pop-btn{margin-top:10px;font:700 12px var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.leaflet-control-attribution{background:rgba(0,0,0,.6)!important;color:#777!important}
.leaflet-control-attribution a{color:#999!important}

/* clients / reviews */
.clients{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.client{background:var(--bg2);height:120px;display:grid;place-items:center;padding:24px;font:700 20px/1.1 var(--disp);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center}
.client img{max-height:56px;width:auto;filter:grayscale(1) var(--logoimg);opacity:.75;transition:all .3s}
.client:hover img{filter:none;opacity:1}
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.rev{border:1px solid var(--line);padding:32px;background:var(--bg2);position:relative}
.rev::before{content:"“";position:absolute;top:6px;right:22px;font:800 90px/1 var(--disp);color:var(--red);opacity:.35}
.rev p{font-size:16px;color:var(--soft);margin-bottom:22px}
.rev b{font:700 17px var(--disp);text-transform:uppercase;letter-spacing:.05em;display:block}
.rev small{color:var(--muted)}

/* locations */
.locs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.loc{display:block;border:1px solid var(--line);padding:38px;background:var(--bg);transition:border-color .3s,transform .3s}
.loc:hover{border-color:var(--red);transform:translateY(-3px)}
.loc-tag{display:inline-flex;align-items:center;gap:8px;font:700 12px/1 var(--disp);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.loc h3{font:800 italic 36px/1 var(--disp);text-transform:uppercase;margin-bottom:10px}
.loc p{color:var(--muted);margin-bottom:26px}
.loc-go{font:700 14px var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.pulse{width:8px;height:8px;border-radius:50%;background:#3ddc84;animation:ping2 1.6s infinite}
@keyframes ping2{0%{box-shadow:0 0 0 0 rgba(61,220,132,.7)}100%{box-shadow:0 0 0 10px rgba(61,220,132,0)}}
.loc-live .loc-tag{color:#3ddc84}
@media(max-width:760px){.locs{grid-template-columns:1fr}.loc{padding:28px}}

/* instagram band */
.ig{background:var(--red);padding:64px 0;position:relative;overflow:hidden}
.ig::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-12deg,transparent 0 40px,rgba(0,0,0,.06) 40px 80px)}
.ig-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ig-handle{font:700 16px var(--disp);letter-spacing:.14em;opacity:.85;margin-bottom:6px}
.ig-title{font:800 italic clamp(32px,4.5vw,56px)/.95 var(--disp);text-transform:uppercase}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;align-items:start}
.contact-direct{display:grid;gap:12px;margin-top:34px}
.direct{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;border:1px solid var(--line);transition:border-color .25s}
.direct:hover{border-color:var(--red)}
.direct small{font:700 12px var(--disp);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.direct b{font:700 20px var(--disp);letter-spacing:.03em;word-break:break-all;text-align:right}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;border:1px solid var(--line);padding:34px;background:var(--bg2)}
.form .full{grid-column:1/-1}
.form label span{display:block;font:700 12px var(--disp);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.form input,.form select,.form textarea{width:100%;background:var(--bg);border:1px solid var(--line2);color:var(--text);font:15px var(--body);padding:13px 14px;border-radius:2px;outline:none;transition:border-color .2s}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--red)}
.form textarea{resize:vertical}
.form .btn{margin-top:6px}
.form-msg{font-size:14px;min-height:20px}
.form-msg.ok{color:#3ddc84}.form-msg.err{color:var(--red2)}
.hp{position:absolute;left:-9999px}
@media(max-width:900px){.contact{grid-template-columns:1fr;gap:44px}}
@media(max-width:520px){.form{grid-template-columns:1fr;padding:22px}}

/* footer */
.foot{border-top:1px solid var(--line);padding:64px 0 28px;background:var(--bg)}
.foot-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--line)}
.foot-brand img{height:70px;width:auto;margin-bottom:16px}
.foot-brand p{max-width:360px;font-size:14px}
.foot-pdr{width:120px}
.foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:13px;color:var(--dim)}
.admin-link{color:var(--dim);padding:0 6px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(5,5,6,.96);display:grid;grid-template-columns:70px 1fr 70px;grid-template-rows:1fr auto;align-items:center}
.lb-stage{grid-column:2;height:82vh;display:grid;place-items:center}
.lb-stage img,.lb-stage video{max-width:100%;max-height:82vh;object-fit:contain}
.lb-stage .ba{width:min(100%,1100px);height:min(82vh,700px)}
.lb-x{position:absolute;top:16px;right:22px;font-size:40px;line-height:1;color:#fff;z-index:2}
.lb-nav{font-size:56px;color:#fff;opacity:.6;height:100%}
.lb-nav:hover{opacity:1}
.lb-cap{grid-column:1/-1;text-align:center;padding:12px 20px 22px;font:700 18px var(--disp);text-transform:uppercase;letter-spacing:.06em}
@media(max-width:600px){.lb{grid-template-columns:40px 1fr 40px}.lb-nav{font-size:40px}}

/* ---------- modo claro ---------- */
:root[data-theme="light"]{
  --bg:#f6f5f2; --bg2:#ecebe7; --card:#ffffff; --line:#d9d7d1; --line2:#c4c2bb;
  --text:#111113; --muted:#5e5d63; --dim:#8a8990; --soft:#3a393e;
  --navbg:rgba(246,245,242,.88); --shade:246,245,242; --frame1:#ffffff; --frame2:#e9e8e3; --logoimg:brightness(.4);
}
:root[data-theme="light"] .about-frame::after{background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(0,0,0,.035) 22px 23px)}
:root[data-theme="light"] .lang button.on,:root[data-theme="light"] .theme-btn{background:var(--line)}
.logo-light{display:none}
:root[data-theme="light"] .logo-dark{display:none}
:root[data-theme="light"] .logo-light{display:block}
.theme-btn{display:grid;place-items:center;width:32px;height:30px;border:1px solid var(--line2);border-radius:2px;color:var(--muted)}
.theme-btn:hover{color:var(--text)}
.theme-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.theme-btn .i-sun{display:none}
:root[data-theme="light"] .theme-btn .i-sun{display:block}
:root[data-theme="light"] .theme-btn .i-moon{display:none}
:root[data-theme="light"] .ig .btn-light{color:#fff}
:root[data-theme="light"] .ig .btn-light::before{background:#111113}
:root[data-theme="light"] .ig{color:#fff}
.locs{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.locs-sub{display:contents}
.lb{color:#f3f2ef}

/* ---------- ajuste a pantallas 16:9: cada sección entra en una pantalla ---------- */
@media (min-width:1024px){
  .sec{min-height:calc(100svh - var(--nav));display:flex;flex-direction:column;justify-content:center;padding:clamp(36px,7vh,110px) 0}
  .sec-head{margin-bottom:clamp(18px,3.6vh,52px)}
  .h2{font-size:clamp(32px,min(5vw,7vh),64px);margin-bottom:clamp(10px,1.8vh,20px)}
  .kicker{margin-bottom:clamp(10px,1.8vh,18px)}
  /* hero */
  .hero{padding:calc(var(--nav) + 2vh) 0 3vh}
  .hero-title{font-size:clamp(52px,min(9.5vw,14.5vh),148px);margin-bottom:clamp(14px,2.6vh,28px)}
  .hero-sub{font-size:clamp(15px,2vh,18px);margin-bottom:clamp(18px,3.6vh,36px)}
  .hero-stats{margin-top:clamp(24px,6vh,72px)}
  .stat b{font-size:clamp(30px,4.4vh,44px)}
  /* empresa */
  .about{gap:clamp(36px,5vw,72px)}
  .about-frame{aspect-ratio:auto;height:min(62vh,520px)}
  .about-text p{margin-bottom:clamp(8px,1.4vh,16px);font-size:clamp(14px,1.9vh,16px)}
  .feats{margin-top:clamp(14px,3vh,34px)}
  .feat{padding:clamp(12px,2vh,22px)}
  .feat b{font-size:clamp(16px,2.2vh,19px)}
  .feat span{font-size:clamp(12.5px,1.7vh,14px)}
  /* servicios */
  .svc{padding:clamp(18px,3.4vh,40px) clamp(20px,2.6vw,34px)}
  .ico{width:clamp(30px,4.6vh,44px);height:clamp(30px,4.6vh,44px);margin-bottom:clamp(10px,2.4vh,26px)}
  .svc h3{font-size:clamp(21px,3vh,27px);margin-bottom:clamp(6px,1.2vh,12px)}
  .svc p{font-size:clamp(13px,1.8vh,15px);line-height:1.5}
  .svc-n{top:clamp(12px,2.4vh,26px)}
  /* trabajos */
  .grid-work{grid-auto-rows:clamp(110px,21vh,220px)}
  /* mapa */
  .map-wrap{height:min(560px,58vh)}
  /* ubicaciones */
  .loc{padding:clamp(22px,4vh,38px)}
  /* contacto */
  .contact{gap:clamp(36px,5vw,72px);align-items:center}
  .contact-direct{margin-top:clamp(16px,3.4vh,34px)}
  .direct{padding:clamp(12px,2vh,20px) 22px}
  .form{padding:clamp(20px,3.4vh,34px);gap:clamp(10px,1.6vh,16px) 18px}
  .form input,.form select,.form textarea{padding:clamp(9px,1.4vh,13px) 14px}
  .form textarea{height:clamp(70px,12vh,120px)}
}
@media (min-width:1024px){
  .about{grid-template-columns:.85fr 1.15fr}
  #about .h2,#contact .h2{font-size:clamp(30px,min(3.8vw,6.2vh),56px)}
  .map-wrap{height:min(560px,52vh)}
  .form{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1600px){.wrap{max-width:1400px}}

/* trabajos: ver más */
.grid-work.clip{max-height:var(--clipH);overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.more-wrap{display:flex;justify-content:center;margin-top:18px}
