/* MACRO Metal Foundry · hoja compartida por todas las páginas (ES/EN).
   Generada el 8-oct a partir del CSS inline de index.html; las reglas propias de cada página siguen en su <style>. */
/* ══════════════════════════════════════════════════════════
   MACRO METAL FOUNDRY · wop.partners/macrov2
   Identidad del catálogo 2026: navy #172029 · dorado #BC8D33 · Poppins.
   Iteración 19-ago: hero en video, sección "Qué aporta MACRO",
   desvío interactivo, carrusel de familias, ADV #15, recortes Monce.
   ══════════════════════════════════════════════════════════ */
:root{ --navy:#172029; --navy2:#172029; --gold:#BC8D33; --gold-soft:#E6D5B4; --mut:#5C5B5B; --hair:#E1E1E1; --f:"Poppins",system-ui,sans-serif; --pad:clamp(20px,4.4vw,72px); --max:1360px; }
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:#fff;color:var(--navy);font-family:var(--f);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:var(--f)}
::selection{background:var(--gold);color:#fff}
.kick{font-size:11.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.disp{font-weight:700;text-transform:uppercase;line-height:1.05;letter-spacing:.02em}
h2.disp{font-size:clamp(26px,3vw,46px);margin-top:12px}
p.lead{margin-top:14px;font-size:15px;color:var(--mut);font-weight:300;line-height:1.7;max-width:62ch}
.pill{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:#fff;border-radius:999px; padding:14px 32px;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;transition:transform .2s}
.pill:hover{transform:translateY(-2px)}
.pill-n{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border-radius:999px; padding:14px 32px;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;transition:transform .2s}
.pill-n:hover{transform:translateY(-2px)}
.pill-o{display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--navy);color:var(--navy);border-radius:999px; padding:13px 30px;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;transition:background .2s}
.pill-o:hover{background:rgba(23,32,41,.06)}
.pill-dis{display:inline-flex;align-items:center;gap:10px;border:1.5px dashed var(--hair);color:var(--mut);border-radius:999px; padding:13px 30px;font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:default}
/* ── NAV ── */
.brand{display:inline-flex;align-items:center;flex:none;transition:opacity .18s}
.brand:hover{opacity:.78}
.brand-logo{height:58px;width:auto;margin-left:-8px;display:block}
@media(max-width:860px){
  .brand-logo{height:48px}
}
/* ── HERO TRI-PANEL (video) ── */
.tri{position:relative;height:min(72svh,720px);min-height:480px;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--navy2)}
.tri .panel{position:relative;overflow:hidden}
.tri .panel img,.tri .panel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.18) saturate(1.05)}
.tri .panel::after{content:"";position:absolute;inset:0;background:rgba(10,16,23,.08)}
.tri .panel+.panel{border-left:2px solid rgba(255,255,255,.4)}
.tri-ov{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:clamp(34px,6.5vh,76px) var(--pad) 0;pointer-events:none}
.tri-ov img{width:min(250px,42vw);filter:drop-shadow(0 8px 30px rgba(0,0,0,.45))}
.tri-ov p{margin-top:18px;color:#E1E1E1;font-size:clamp(14px,1.3vw,18px);font-weight:500;letter-spacing:.06em;text-shadow:0 2px 12px rgba(0,0,0,.5)}
a.panel{cursor:pointer}
.p-colada img,.p-colada video{object-position:50% 100%}
.p-harsco img,.p-harsco video{object-position:50% 96%}
.p-sapo img,.p-sapo video{object-position:50% 50%}
.p-sapo .vl{opacity:0;transition:opacity .9s ease}
.p-sapo .vl.on{opacity:1}
.p-sapo .vz{z-index:1;transition:opacity .9s ease}
.p-sapo .vz.off{opacity:0}
.tri a.panel:hover img,.tri a.panel:hover video{filter:brightness(1.3) saturate(1.08)}
.tri a.panel .ir{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:4; font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#fff; background:rgba(10,16,23,.55);backdrop-filter:blur(4px);padding:9px 18px;border-radius:999px; transition:background .25s,transform .25s;white-space:nowrap}
.tri a.panel:hover .ir{background:var(--gold);transform:translateX(-50%) translateY(-3px)}
/* móvil: un panel grande con el video principal y dos fichas con su etiqueta visible */
@media(max-width:900px){
  .tri{grid-template-columns:1fr 1fr;grid-template-rows:min(54svh,520px) 150px;height:auto;min-height:0}
  .tri .panel:first-child{grid-column:1/-1}
  .tri .panel+.panel{border-left:0;border-top:2px solid rgba(255,255,255,.4)}
  .tri .panel:nth-child(3){border-left:2px solid rgba(255,255,255,.4)}
  .tri a.panel .ir{bottom:12px;font-size:11px;letter-spacing:.16em;padding:7px 12px}
  .tri .panel:first-child .ir{bottom:18px;font-size:11px;letter-spacing:.2em;padding:9px 16px}
  .tri-ov{bottom:150px;justify-content:center;padding:0 var(--pad)}
  .tri-ov img{width:min(240px,60vw)}
}
/* ── DECLARACIÓN ── */
.state{padding:clamp(64px,8vw,110px) var(--pad)}
.state-in{max-width:var(--max);margin:0 auto}
.state h1{font-size:clamp(26px,3.4vw,48px);font-weight:600;line-height:1.16;letter-spacing:-.01em;max-width:26ch;text-transform:none}
.state h1 b{color:var(--gold);font-weight:600}
.state p{margin-top:20px;font-size:clamp(15px,1.15vw,17px);color:var(--mut);max-width:58ch;font-weight:300}
/* ── QUÉ APORTA MACRO ── */
.apo-sec{padding:clamp(56px,7vw,96px) var(--pad);border-top:1px solid var(--hair);background:#F2F2F2}
.apo-in{max-width:var(--max);margin:0 auto}
.apo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(28px,3.4vw,44px)}
.apo article{background:#fff;border:1px solid var(--hair);border-radius:6px;padding:clamp(22px,2.4vw,34px);transition:border-color .2s,transform .2s}
.apo article:hover{border-color:var(--gold);transform:translateY(-2px)}
.apo .ai{aspect-ratio:16/7;border-radius:4px;overflow:hidden;margin-bottom:16px;background:#F2F2F2}
.apo .ai img{width:100%;height:100%;object-fit:cover}
.apo .ai.badge{background:var(--navy2)}
.apo .ai.badge img{object-fit:contain;padding:12px}
.apo u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.apo b{display:block;font-size:clamp(17px,1.6vw,22px);font-weight:600;margin-top:8px}
.apo p{margin-top:8px;font-size:13.5px;color:var(--mut);font-weight:300;line-height:1.65}
.mv2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px);margin-top:clamp(28px,3.4vw,44px); border-top:1px solid var(--hair);padding-top:clamp(24px,3vw,38px)}
.mv2 u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.mv2 p{margin-top:8px;font-size:14px;color:var(--mut);font-weight:300;line-height:1.7}
.state .mv2 p{max-width:none}
/* ── ENDURECIMIENTO EXPLOSIVO ── */
.expl{background:#fff;padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair)}
.expl-lead{margin-top:16px;font-size:clamp(15px,1.25vw,18px);color:var(--mut);font-weight:300;max-width:66ch;line-height:1.75}
.expl-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.2vw,30px);margin-top:clamp(30px,4vw,54px)}
.expl-steps li{display:flex;flex-direction:column}
.expl-steps figure{background:#fff;border:1px solid var(--hair);border-radius:6px;overflow:hidden;margin-bottom:16px}
.expl-steps figure img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover}
.expl-steps span{display:block;font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--gold)}
.expl-steps b{display:block;margin-top:6px;font-size:17px;font-weight:600;color:var(--navy)}
.expl-steps p{margin-top:7px;font-size:13.5px;color:var(--mut);font-weight:300;line-height:1.65}
.expl-steps p b{display:inline;margin:0;font-size:inherit;font-weight:600;color:var(--navy)}
.expl-extra{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px);align-items:center;margin-top:clamp(34px,4.4vw,60px); border-top:1px solid var(--hair);padding-top:clamp(28px,3.4vw,46px)}
.expl-nk{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.expl-note p:not(.expl-nk):not(.expl-foot){margin-top:10px;font-size:14.5px;color:var(--mut);font-weight:300;line-height:1.75}
.expl-note b{color:var(--navy);font-weight:600}
.expl-foot{margin-top:18px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--navy)}
.expl-video{border-radius:6px;overflow:hidden;background:var(--navy2);box-shadow:0 22px 54px rgba(23,32,41,.22)}
.expl-video video{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover;background:var(--navy2)}
.expl-video figcaption{padding:12px 18px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#8A8A8A;border-top:1px solid rgba(255,255,255,.1)}
/* ── CIFRAS EN LÍNEA ── */
.numline{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.numline-in{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:repeat(6,1fr)}
.numline .n{padding:26px 14px;border-left:1px solid var(--hair)}
.numline .n:first-child{border-left:0;padding-left:0}
.numline b{display:block;font-size:clamp(22px,2vw,32px);font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.numline span{display:block;font-size:11.5px;color:var(--mut);margin-top:4px;line-height:1.4}
/* ── SECCIONES SKETCH ── */
.sk{padding:clamp(50px,6.4vw,90px) var(--pad);border-top:1px solid var(--hair)}
.sk-in{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(28px,4vw,64px);align-items:center}
.sk.rev .sk-in{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.sk.rev .sk-fig{order:2}
.sk-fig img{width:100%;height:auto}
.sk-fig.photo{border-radius:6px;overflow:hidden}
.sk-fig.photo img{aspect-ratio:4/3;object-fit:cover}
.sk-head h2{font-size:clamp(24px,2.6vw,40px);margin-top:12px}
.calls{list-style:none;margin-top:26px}
.calls li{border-left:2px solid var(--gold);padding:4px 0 6px 16px;margin-top:16px}
.calls u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.calls b{display:block;font-weight:600;font-size:14.5px;margin-top:3px}
.calls span{display:block;font-size:13px;color:var(--mut);font-weight:300;margin-top:2px;line-height:1.55}
.flink{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:11.5px;font-weight:700; letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.flink i{font-style:normal;transition:transform .2s}
.flink:hover i{transform:translateX(5px)}
/* anillos de onda animados sobre el sketch del proceso */
.proc-fig{position:relative}
.proc-fig .ring{position:absolute;left:70.3%;top:40.8%;width:27%;aspect-ratio:1.55;border:1.5px solid rgba(188,141,51,.85); border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0;pointer-events:none; animation:ringx 3.6s linear infinite}
.proc-fig .r2{animation-delay:1.2s}
.proc-fig .r3{animation-delay:2.4s}
@keyframes ringx{0%{transform:translate(-50%,-50%) scale(.15);opacity:0}12%{opacity:.85} 100%{transform:translate(-50%,-50%) scale(1.05);opacity:0}}
@media (prefers-reduced-motion:reduce){
  .proc-fig .ring{animation:none;display:none}
}
/* ── DESVÍO INTERACTIVO ── */
.dvg-sec{padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair)}
.dvg-in{max-width:var(--max);margin:0 auto}
.dvg{margin-top:clamp(26px,3.4vw,44px)}
.dvg-fig{position:relative;background:#101820;border-radius:6px;overflow:hidden;box-shadow:0 26px 60px rgba(23,32,41,.22)}
.dvg-cam{display:inline-flex;align-items:center;gap:9px;font-family:var(--f);font-size:11px;font-weight:700; letter-spacing:.16em;text-transform:uppercase;color:#CFCFCF;background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 16px;cursor:pointer;transition:all .18s}
.dvg-cam:hover{border-color:var(--gold);color:#fff}
.dvg-cam[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#fff}
.dvg-tools{display:flex;gap:8px;flex-wrap:wrap}
#dvgSvg{transition:none}
.dvg-call{opacity:0;transition:opacity .35s}
.dvg-call.on{opacity:1}
.dvg-fig svg{display:block;width:100%;height:auto}
.dvg-fig .dot{cursor:pointer}
.dvg-fig .dot circle.halo{fill:none;stroke:#BC8D33;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}
.dvg-fig .dot circle.core{fill:var(--gold);stroke:#172029;stroke-width:2;transition:fill .2s}
.dvg-fig .dot text{fill:#fff;font:700 13px/1 "Poppins",sans-serif;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.dvg-fig .dot.on circle.core{fill:#fff}
.dvg-fig .dot.on text{fill:var(--navy)}
@keyframes pulse{0%{transform:scale(.55);opacity:.75}70%{transform:scale(1.6);opacity:0}100%{transform:scale(1.6);opacity:0}}
.dvg-card{border:1px solid var(--hair);border-radius:6px;overflow:hidden;background:#fff;margin-top:16px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:stretch}
@media(max-width:720px){
  .dvg-card{grid-template-columns:1fr}
}
.dvg-card .ph{aspect-ratio:16/10;overflow:hidden;background:var(--navy2)}
.dvg-card .bd{justify-content:center}
.dvg-card .ph img{width:100%;height:100%;object-fit:cover}
.dvg-card .bd{padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column;flex:1}
.dvg-card u{text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.dvg-card b{font-size:clamp(18px,1.8vw,24px);font-weight:600;margin-top:6px}
.dvg-card p{margin-top:8px;font-size:13.5px;color:var(--mut);font-weight:300;line-height:1.65;flex:1}
.dvg-zones{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.dvg-zones button{border:1px solid var(--hair);background:#fff;color:var(--mut);border-radius:999px;padding:9px 16px; font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.dvg-zones button.on{background:var(--gold);border-color:var(--gold);color:#fff}
/* ── plano interactivo del aparato de vía ── */
.dvg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; padding:14px clamp(14px,1.6vw,22px);border-bottom:1px solid rgba(255,255,255,.08)}
.dvg-nums{display:flex;align-items:center;gap:7px}
.dvg-nums span{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#8A8A8A;margin-right:4px}
.dvg-nums button{font-family:var(--f);font-size:12px;font-weight:600;color:#CFCFCF;background:transparent; border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 14px;cursor:pointer;transition:all .18s}
.dvg-nums button:hover{border-color:var(--gold);color:#fff}
.dvg-nums button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#fff}
.dvg-throw{display:inline-flex;align-items:center;gap:9px;font-family:var(--f);font-size:11px;font-weight:700; letter-spacing:.16em;text-transform:uppercase;color:#CFCFCF;background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 16px;cursor:pointer;transition:all .18s}
.dvg-throw:hover{border-color:var(--gold);color:#fff}
.dvg-throw i{width:26px;height:14px;border-radius:999px;background:rgba(255,255,255,.18);position:relative;flex:none;transition:background .2s}
.dvg-throw i::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:transform .22s}
.dvg-throw[aria-pressed="true"] i{background:var(--gold)}
.dvg-throw[aria-pressed="true"] i::after{transform:translateX(12px)}
.dvg-read{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08)}
.dvg-read>div{background:#172029;padding:13px clamp(12px,1.4vw,18px)}
.dvg-read dt{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8A8A8A}
.dvg-read dd{font-size:15px;font-weight:600;color:#E1E1E1;margin-top:5px;font-variant-numeric:tabular-nums}
.dvg-read dd small{display:block;font-size:11px;font-weight:400;color:#8A8A8A;margin-top:2px;letter-spacing:.02em}
@media(max-width:620px){
  .dvg-read{grid-template-columns:1fr 1fr}
}
.dvg-scroll{overflow-x:auto;overscroll-behavior-x:contain}
.dvg-tour[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#fff}
.dvg-part{position:absolute;bottom:96px;left:clamp(14px,1.6vw,24px);max-width:330px;z-index:3;pointer-events:none; background:rgba(10,16,22,.9);border:1px solid rgba(188,141,51,.45);border-left:3px solid var(--gold); border-radius:4px;padding:13px 16px;backdrop-filter:blur(3px);animation:stIn .3s ease-out}
.dvg-part[hidden]{display:none}
.dvg-part u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.dvg-part b{display:block;font-size:17px;font-weight:600;color:#fff;margin-top:4px;line-height:1.2}
.dvg-part p{margin-top:6px;font-size:13px;line-height:1.55;color:#CFCFCF;font-weight:300}
@media(max-width:760px){
  .dvg-part{position:static;max-width:none;margin:10px clamp(14px,1.6vw,24px) 0;padding:10px 13px;animation:none}
  .dvg-part b{font-size:15px}
  .dvg-part p{font-size:13px}
}
.dvg-hint2{display:flex;align-items:center;gap:8px;margin-top:clamp(18px,2vw,26px);font-size:11px;font-weight:700; letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.dvg-hint2 i{font-style:normal;font-size:14px}
.dvg-story{position:absolute;left:clamp(14px,1.6vw,24px);right:clamp(14px,1.6vw,24px);bottom:96px; background:rgba(10,16,22,.86);border:1px solid rgba(188,141,51,.45);border-left:3px solid var(--gold); border-radius:4px;padding:13px 18px;backdrop-filter:blur(3px);animation:stIn .35s ease-out}
.dvg-story[hidden]{display:none}
@keyframes stIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dvg-story u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.dvg-story p{margin-top:5px;font-size:14.5px;line-height:1.5;color:#E1E1E1;font-weight:400}
@media(max-width:760px){
  .dvg-story{position:static;margin:10px clamp(14px,1.6vw,24px) 0;padding:11px 14px;animation:none}
  .dvg-story p{font-size:13px}
}
.dvg-hint{display:none}
@media(max-width:760px){
  .dvg-scroll svg{min-width:860px}
  .dvg-hint{display:block;padding:8px 16px 0;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#5C5B5B}
}
/* ── CATÁLOGO · CARRUSEL DE FAMILIAS ── */
.cat{padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair)}
.cat-in{max-width:var(--max);margin:0 auto}
.cat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.car-nav{display:flex;gap:8px}
.car-nav button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--navy);background:#fff;color:var(--navy); font-size:16px;cursor:pointer;transition:background .2s,color .2s}
.car-nav button:hover{background:var(--navy);color:#fff}
.car{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:clamp(24px,3vw,38px); padding-bottom:8px;scrollbar-width:thin}
.ccard{flex:0 0 min(272px,76vw);scroll-snap-align:start;border:1px solid var(--hair);border-radius:6px;overflow:hidden; cursor:pointer;background:#fff;text-align:left;transition:border-color .2s,transform .2s}
.ccard:hover{transform:translateY(-3px)}
.ccard.on{border-color:var(--gold);box-shadow:0 12px 30px rgba(23,32,41,.1)}
.ccard img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ccard .cb{padding:16px 18px 18px}
.ccard h3{font-size:16.5px;font-weight:600}
.ccard p{margin-top:4px;font-size:12.5px;color:var(--mut);font-weight:300;line-height:1.5}
.famdet{display:none;position:relative;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(22px,3vw,44px);align-items:center; border:1px solid var(--hair);border-radius:6px;padding:clamp(22px,2.6vw,38px);margin-top:18px;background:#F2F2F2}
.famdet.open{display:grid;animation:fdin .28s ease}
@keyframes fdin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.fdx{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--hair); background:#fff;color:var(--mut);font-size:18px;line-height:1;cursor:pointer;transition:border-color .2s,color .2s}
.fdx:hover{border-color:var(--gold);color:var(--navy)}
.ccard:focus{outline:none}
.ccard:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.famdet .fm{border-radius:4px;overflow:hidden}
.famdet .fm img{width:100%;aspect-ratio:16/10;object-fit:cover}
.famdet h3{font-size:clamp(20px,2vw,28px);font-weight:600}
.famdet .fd{margin-top:8px;font-size:14px;color:var(--mut);font-weight:300;line-height:1.65}
.spec{list-style:none;margin-top:14px}
.spec li{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:13px}
.spec li:last-child{border-bottom:0}
.spec b{font-weight:600}
.spec span{color:var(--mut);text-align:right}
/* ── ADV ── */
.adv2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px);margin-top:clamp(36px,4.4vw,60px)}
.advcard{border:1px solid var(--hair);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.advcard .ph{aspect-ratio:16/9;overflow:hidden}
.advcard .ph img{width:100%;height:100%;object-fit:cover}
.advcard .ph img.plano{object-position:50% 0;background:#fff}
.advcard .bd{padding:clamp(22px,2.4vw,34px);display:flex;flex-direction:column;flex:1}
.advcard h3{font-size:clamp(20px,2vw,28px);font-weight:600;margin-top:8px}
.advcard .fd{margin-top:8px;font-size:13.5px;color:var(--mut);font-weight:300;line-height:1.65}
.advcard .spec{flex:1}
.abtns{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
/* ── STRIP DE FOTOS REALES ── */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(26px,3vw,40px)}
.strip figure{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3}
.strip img{width:100%;height:100%;object-fit:cover}
.strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:11px;font-weight:700; letter-spacing:.16em;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,transparent,rgba(8,14,20,.78))}
/* ── NORMAS ── */
.normas{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:18px var(--pad)}
.normas-in{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap; font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
/* ── CIERRE: CONTACTO ── */
.fin{background:var(--navy);color:#fff;padding:clamp(70px,9vw,110px) var(--pad) clamp(50px,6vw,80px)}
.fin-in{max-width:var(--max);margin:0 auto}
.fin h2{font-size:clamp(28px,3.4vw,52px);color:#fff;max-width:20ch}
.fin .sub{margin-top:14px;color:#C9C9C9;font-size:15px;font-weight:300;max-width:52ch}
.acts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(30px,4vw,48px)}
.acts2{grid-template-columns:repeat(2,1fr)}
.act{display:flex;flex-direction:column;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.13); border-radius:6px;padding:clamp(22px,2.4vw,34px);transition:transform .2s,border-color .2s}
.act:hover{transform:translateY(-3px);border-color:var(--gold)}
.act u{text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.act b{font-size:clamp(18px,1.7vw,24px);font-weight:600;color:#fff;margin-top:8px}
.act p{margin-top:8px;font-size:13.5px;color:#C9C9C9;font-weight:300;line-height:1.65;flex:1}
.act .go{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:11.5px;font-weight:700; letter-spacing:.18em;text-transform:uppercase;color:#fff}
.act .go i{font-style:normal;color:var(--gold);transition:transform .2s}
.act:hover .go i{transform:translateX(5px)}
.descargas{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.13);margin-top:clamp(30px,4vw,48px);padding-top:clamp(22px,2.6vw,34px)}
.descargas p{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#A5A6A6}
.descargas .dbtns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pill-ghost{display:inline-flex;align-items:center;gap:8px;border:1.5px solid rgba(255,255,255,.4);color:#fff; border-radius:999px;padding:11px 24px;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;transition:border-color .2s}
.pill-ghost:hover{border-color:var(--gold)}
.pill-soon{display:inline-flex;align-items:center;gap:8px;border:1.5px dashed rgba(255,255,255,.22);color:#A5A6A6; border-radius:999px;padding:11px 24px;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:default}
.foot2{background:var(--navy2);padding:26px var(--pad)}
.foot2-in{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot2 .fnav{display:flex;gap:clamp(12px,2vw,24px);flex-wrap:wrap}
.foot2 .fnav a{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#A5A6A6;transition:color .2s}
.foot2 .fnav a:hover{color:#fff}
.foot2 .copy{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#8A8A8A}
.foot2 .copy a{color:#A5A6A6}
.wafab{position:fixed;right:22px;bottom:22px;z-index:120;width:58px;height:58px;border-radius:50%; background:var(--gold);display:flex;align-items:center;justify-content:center; box-shadow:0 10px 30px rgba(23,32,41,.35);transition:transform .2s}
.wafab:hover{transform:scale(1.09)}
.wafab svg{width:30px;height:30px}
@media(max-width:980px){
  .dvg-fig svg text.lbl{display:none}
  .dvg-fig .dot circle.core{r:30px}
  .dvg-fig .dot circle.halo{r:34px}
  .dvg-fig .dot text{font-size:30px}
  .sk-in,.sk.rev .sk-in{grid-template-columns:1fr}
  .sk.rev .sk-fig{order:0}
  .numline-in{grid-template-columns:1fr 1fr}
  .numline .n{padding:18px 12px}
  .numline .n:nth-child(2n+1){border-left:0;padding-left:0}
  .apo{grid-template-columns:1fr}
  .mv2{grid-template-columns:1fr}
  .dvg{grid-template-columns:1fr}
  .famdet{grid-template-columns:1fr}
  .adv2{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr 1fr}
  .acts,.acts2{grid-template-columns:1fr}
  .expl-steps{grid-template-columns:1fr 1fr;gap:20px}
  .expl-extra{grid-template-columns:1fr;gap:24px}
}
/* ── PLANTA: cuadrícula clickeable + lightbox ── */
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:clamp(26px,3vw,40px)}
.pcell{position:relative;border:0;padding:0;cursor:pointer;border-radius:4px;overflow:hidden;aspect-ratio:16/10;background:var(--navy2);text-align:left}
.pcell img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.pcell:hover img{transform:scale(1.04)}
.pcell span{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;font-family:var(--f);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,transparent,rgba(8,14,20,.8));display:flex;justify-content:space-between;align-items:center}
.pcell span i{font-style:normal;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.plbox{position:fixed;inset:0;z-index:200;background:rgba(10,16,23,.86);display:flex;}
.plbox[hidden]{display:none}
.plbox{align-items:center;justify-content:center;padding:20px}
.plbox-in{position:relative;max-width:1040px;width:100%;background:#fff;border-radius:6px;overflow:hidden;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.plbox-in img{width:100%;height:100%;max-height:72vh;object-fit:cover}
.plt{padding:clamp(22px,3vw,40px)}
.plt b{display:block;font-size:clamp(20px,2vw,28px);font-weight:600;color:var(--navy)}
.plt p{margin-top:12px;font-size:14.5px;color:var(--mut);font-weight:300;line-height:1.7}
.plx{position:absolute;top:10px;right:12px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:22px;cursor:pointer}
@media(max-width:760px){
  .plbox-in{grid-template-columns:1fr}
  .plbox-in img{max-height:40vh}
}
/* ── APORTA: desplegables ── */
.apt{margin-top:14px;background:none;border:0;padding:0;cursor:pointer;font-family:var(--f);font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:8px}
.apt i{font-style:normal;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--gold);display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:transform .25s}
.apt[aria-expanded="true"] i{transform:rotate(45deg)}
.apx{margin-top:14px;border-top:1px solid var(--hair);padding-top:12px}
.apx ul{list-style:none}
.apx li{position:relative;padding:7px 0 7px 18px;font-size:13.5px;color:var(--navy);font-weight:400;border-bottom:1px solid var(--hair)}
.apx li::before{content:"";position:absolute;left:0;top:15px;width:9px;height:2px;background:var(--gold)}
.apx .flink{margin-top:14px}
/* ── TEASER ADV ── */
.advteaser{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:clamp(30px,4vw,52px);padding:clamp(24px,3vw,40px);border:1px solid var(--hair);border-radius:4px;background:#F2F2F2}
.advteaser h3{font-size:clamp(20px,2vw,28px);font-weight:600;margin-top:8px}
.advteaser .fd{margin-top:8px;font-size:13.5px;color:var(--mut);font-weight:300;line-height:1.65;max-width:60ch}
.advteaser .pill-n i{font-style:normal}
/* ── GENTE Y FLOTA: burbujas de video ── */
.gente{padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair);background:#F2F2F2}
.gente-in{max-width:var(--max);margin:0 auto}
.bubbles{display:flex;gap:clamp(14px,2.4vw,34px);justify-content:space-between;margin-top:clamp(30px,4vw,52px);flex-wrap:wrap}
.bub{flex:1 1 140px;max-width:200px;text-align:center;margin:0}
.bub video{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 2px var(--gold),0 16px 40px rgba(23,32,41,.18);background:var(--navy2);display:block}
.bub figcaption{margin-top:12px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
.gente-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:center;margin-top:clamp(36px,4.4vw,60px)}
.gente-fig{border-radius:4px;overflow:hidden;border:1px solid var(--hair);background:#fff;margin:0}
.gente-fig img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gente-fig figcaption{padding:11px 14px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);border-top:1px solid var(--hair)}
/* ── INGENIERÍA: fila de visuales reales ── */
.eng-row{max-width:var(--max);margin:clamp(26px,3vw,40px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.eng-row figure{margin:0;border:1px solid var(--hair);border-radius:4px;overflow:hidden;background:#fff}
.eng-row img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.eng-row figcaption{padding:10px 14px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);border-top:1px solid var(--hair)}
@media(max-width:980px){
  .gente-grid{grid-template-columns:1fr}
  .eng-row{grid-template-columns:1fr}
  .bub{flex:1 1 40%;max-width:46%}
}
.skvid{width:100%;height:auto;display:block}
/* ── VIDEO BAND ── */
.vband{padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair);background:#fff}
.vband-in{max-width:var(--max);margin:0 auto}
.vband-fig{margin:clamp(26px,3.4vw,44px) 0 0;border-radius:6px;overflow:hidden;background:var(--navy2);box-shadow:0 26px 64px rgba(23,32,41,.2)}
.vband-fig video{width:100%;aspect-ratio:16/9;height:auto;display:block;object-fit:cover;background:var(--navy2)}
.vband-foot{display:flex;justify-content:flex-end;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.vband-foot .flink{margin:0}
.advteaser .pill-n i,.advteaser .pill-o i{font-style:normal}
.advteaser .pill-n{border:0;cursor:pointer;font-family:var(--f)}
.advteaser .pill-n[aria-expanded="true"] i{display:inline-block;transform:rotate(45deg)}
#adv-cards[hidden]{display:none}
/* ── MODALES ── */
.modal{position:fixed;inset:0;z-index:300;background:rgba(10,16,23,.82);display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto;overscroll-behavior:contain}
.modal[hidden]{display:none}
.modal-in{position:relative;width:100%;max-width:980px;background:#fff;border-radius:6px;box-shadow:0 40px 90px rgba(0,0,0,.45);margin:auto 0}
.modal-in.wide{max-width:1240px}
.modal-body{padding:clamp(24px,3.4vw,48px)}
.modal-body .sk-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.modal-x{position:absolute;top:12px;right:14px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:24px;cursor:pointer;line-height:1}
.modal .expl{padding:0;border:0;background:transparent}
.modal .adv2{margin-top:clamp(18px,2.4vw,28px)}
.asbtn{background:none;border:0;cursor:pointer;font-family:var(--f)}
.vband-fig{max-width:900px;margin-left:auto;margin-right:auto}
.vband-foot{max-width:900px;margin-left:auto;margin-right:auto;justify-content:space-between}
@media(max-width:900px){
  .modal-body .sk-in{grid-template-columns:1fr}
  .modal{padding:2vh 8px}
}
/* ── BIM (círculo de las cuatro disciplinas) ── */
/* ── Proyectos: video ── */
/* ── Contacto: formulario ── */
/* ── Proceso en círculos (6 pasos oficiales) ── */
/* ── Del patio a la obra ── */
/* ── Tira de sellos institucionales ── */
/* ── Junta 10-sep aplicada ── */
.proy-fotos{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:clamp(24px,3vw,40px)}
.proy-fotos figure{margin:0;border-radius:6px;overflow:hidden;background:var(--navy2);min-height:0;position:relative}
.proy-fotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.proy-fotos .big{grid-row:1/3;aspect-ratio:16/9}
@media(max-width:760px){
  .proy-fotos{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .proy-fotos .big{grid-column:1/3;grid-row:auto}
  .proy-fotos figure:not(.big){aspect-ratio:4/3}
}
/* ── 17-sep ── */
.backbar{border-bottom:1px solid var(--hair);background:#fff}
.back-in{max-width:var(--max);margin:0 auto;padding:12px var(--pad);font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.back-in a{color:var(--gold)}
.teasers{padding:clamp(56px,7vw,96px) var(--pad);border-top:1px solid var(--hair)}
.teasers-in{max-width:var(--max);margin:0 auto}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(24px,3vw,40px)}
.tcard{position:relative;display:block;border:1px solid var(--hair);border-radius:4px;overflow:hidden;background:#fff;transition:transform .2s,border-color .2s}
.tcard:hover{transform:translateY(-3px);border-color:var(--gold)}
.tcard img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.tcard .tb{padding:16px 18px 18px}
.tcard u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.tcard b{display:block;font-size:17px;font-weight:600;margin-top:6px;color:var(--navy)}
.tcard p{margin-top:6px;font-size:13px;color:var(--mut);font-weight:300;line-height:1.55}
.tcard .go{display:inline-flex;gap:8px;margin-top:12px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.gente.compact .gente-grid{display:none}
.expl{padding:clamp(56px,7vw,100px) var(--pad);border-top:1px solid var(--hair);background:#F2F2F2}
.expl-in{max-width:var(--max);margin:0 auto}
.expl-in>h2.disp{font-size:clamp(28px,3.6vw,54px)}
@media(max-width:980px){
  .tgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .tgrid{grid-template-columns:1fr}
}
/* ── junta 21-ago: state con video, recuadros "+" ── */
.state-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,4vw,64px);align-items:center}
.state-fig{border-radius:6px;overflow:hidden;background:var(--navy2);box-shadow:0 24px 60px rgba(23,32,41,.14)}
.state-fig video,.state-fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
@media(max-width:860px){
  .state-grid{grid-template-columns:1fr}
}
/* ── fabricación propia ── */
.fab{margin-top:clamp(40px,5vw,72px);padding-top:clamp(34px,4vw,56px);border-top:1px solid var(--hair);grid-column:1/-1}
.fab h2{font-size:clamp(22px,2.4vw,34px);font-weight:600;margin-top:10px;letter-spacing:-.01em}
.fab-lead{margin-top:12px;font-size:15px;color:var(--mut);font-weight:300;line-height:1.7;max-width:74ch}
.fab-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);margin-top:clamp(24px,3vw,38px)}
.fab-grid li{border-top:2px solid var(--gold);padding-top:14px}
.fab-grid u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.fab-grid b{display:block;font-size:15.5px;font-weight:600;margin-top:7px;color:var(--navy);line-height:1.35}
.fab-grid span{display:block;font-size:13px;color:var(--mut);font-weight:300;margin-top:6px;line-height:1.6}
/* ── proyectos ── */
.proy{padding:clamp(52px,6.5vw,90px) var(--pad);border-top:1px solid var(--hair);background:#F2F2F2}
.proy-in{max-width:var(--max);margin:0 auto}
.proy-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,3vw,48px);align-items:end}
.proy-head h2{font-size:clamp(24px,2.8vw,40px);margin-top:10px}
.lw-t{margin-top:clamp(26px,3vw,42px);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.logowall{display:grid;grid-template-columns:repeat(6,1fr);margin-top:14px;background:#fff; border:1px solid var(--hair);border-radius:5px;overflow:hidden}
.lw-cell{position:relative;aspect-ratio:2.3/1;display:flex;align-items:center;justify-content:center; border-left:1px solid var(--hair);transition:background .2s}
.lw-cell:first-child{border-left:0}
.lw-cell:hover{background:#F2F2F2}
.lw-cell img{max-width:66%;max-height:52%;object-fit:contain;opacity:.82;filter:grayscale(1);transition:opacity .2s,filter .2s}
.lw-cell:hover img{opacity:1;filter:grayscale(0)}
.lw-cell:empty::after{content:"";width:52%;height:38%;border:1px dashed #CFCFCF;border-radius:3px}
.lw-n{margin-top:12px;font-size:12px;color:var(--mut);font-weight:300;line-height:1.6}
.proy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}
.proy-grid figure{position:relative;border-radius:5px;overflow:hidden;background:var(--navy2)}
.proy-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.proy-grid figure:hover img{transform:scale(1.04)}
.proy-grid img{aspect-ratio:16/11}
.proy-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 14px; background:linear-gradient(to top,rgba(10,16,22,.9),rgba(10,16,22,0))}
.proy-grid u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.proy-grid b{display:block;font-size:14.5px;font-weight:600;color:#fff;margin-top:3px}
@media(max-width:980px){
  .fab-grid{grid-template-columns:1fr 1fr}
  .proy-head{grid-template-columns:1fr}
  .proy-grid{grid-template-columns:1fr 1fr}
  .logowall{grid-template-columns:repeat(3,1fr)}
  .lw-cell:nth-child(4){border-left:0}
  .lw-cell:nth-child(n+4){border-top:1px solid var(--hair)}
}
@media(max-width:560px){
  .fab-grid{grid-template-columns:1fr}
  .proy-grid{grid-template-columns:1fr}
  .logowall{grid-template-columns:1fr 1fr}
  .lw-cell:nth-child(odd){border-left:0}
  .lw-cell:nth-child(n+3){border-top:1px solid var(--hair)}
}
#planta-home .sk-in{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
#planta-home .sk-fig{order:1}
#planta-home .sk-head{order:2}
@media(max-width:980px){
  #planta-home .sk-in{grid-template-columns:1fr}
  #planta-home .sk-fig{order:0}
  #planta-home .sk-head{order:0}
}
.apb{margin-top:14px;background:none;border:0;padding:0;cursor:pointer;font-family:var(--f);font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:8px}
.apb i{font-style:normal;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--gold);display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:transform .25s}
.apb:hover i{transform:rotate(90deg)}
.mbox{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(23,32,41,.58);backdrop-filter:blur(3px)}
.mbox[hidden]{display:none}
.mbox-card{position:relative;background:#fff;border-radius:8px;max-width:780px;width:100%;max-height:86vh;overflow:auto;overscroll-behavior:contain;padding:clamp(24px,3vw,40px);box-shadow:0 30px 80px rgba(0,0,0,.35);animation:mboxin .22s ease-out}
@keyframes mboxin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mbox-x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--hair);background:#fff;color:var(--navy);font-size:22px;line-height:1;cursor:pointer;font-family:var(--f)}
.mbox-x:hover{border-color:var(--gold);color:var(--gold)}
.mbox-card u{display:block;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);padding-right:48px}
.mbox-card h3{font-size:clamp(20px,2.1vw,28px);font-weight:600;margin-top:8px;line-height:1.2;padding-right:48px}
.mbox-card .lead{margin-top:10px;font-size:14.5px;color:var(--mut);font-weight:300;line-height:1.7}
.mbox-card ul{list-style:none;margin-top:16px}
.mbox-card li{position:relative;padding:9px 0 9px 20px;font-size:14px;border-bottom:1px solid var(--hair);line-height:1.55;color:var(--navy);font-weight:300}
.mbox-card li b{font-weight:600}
.mbox-card li::before{content:"";position:absolute;left:0;top:19px;width:10px;height:2px;background:var(--gold)}
.mbox-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.mbox-steps figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;border:1px solid var(--hair);display:block}
.mbox-steps figcaption{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--mut);font-weight:300}
.mbox-steps figcaption b{display:block;color:var(--navy);font-weight:600;font-size:13px;margin-bottom:2px}
@media(max-width:640px){
  .mbox-steps{grid-template-columns:1fr 1fr}
}
/* ── BIM (círculo de las cuatro disciplinas) ── */
.bim{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:center;margin-top:clamp(24px,3vw,38px)}
.bim-ring{margin:0}
.bim-ring svg{width:100%;max-width:440px;height:auto;display:block;margin:0 auto;font-family:var(--f)}
.bim-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
.bim-list li{border-top:2px solid var(--gold);padding-top:14px}
.bim-list span{font-size:12px;font-weight:700;color:var(--mut)}
.bim-list b{display:block;font-size:17px;font-weight:600;margin-top:4px}
.bim-list p{font-size:14px;color:var(--mut);font-weight:300;line-height:1.6;margin-top:6px}
@media(max-width:860px){
  .bim{grid-template-columns:1fr}
}
@media(max-width:560px){
  .bim-list{grid-template-columns:1fr}
}
/* ── Proyectos: video ── */
.proy-video{margin:clamp(24px,3vw,40px) 0 0;border-radius:6px;overflow:hidden;background:var(--navy2);box-shadow:0 24px 60px rgba(23,32,41,.14)}
.proy-video video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
/* ── Contacto: formulario ── */
.fin-h3{margin-top:clamp(34px,4.5vw,56px);font-size:clamp(20px,2vw,26px);font-weight:600;color:#fff}
.cform-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;margin-top:clamp(30px,4vw,48px);align-items:start}
.acts-col{grid-template-columns:1fr;margin-top:0}
.acts-3 .act b{font-size:clamp(15px,1.3vw,18px);word-break:break-word}
.cform{background:#fff;color:var(--navy);border-radius:6px;padding:clamp(22px,2.6vw,34px)}
.cform h3{font-size:clamp(20px,2vw,26px);font-weight:600}
.cform>p{margin-top:6px;font-size:14.5px;color:var(--mut);font-weight:300;line-height:1.6}
.cform label{display:block;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--navy)}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.cform input,.cform select,.cform textarea{display:block;width:100%;margin-top:6px;border:1px solid #CFCFCF;border-radius:4px;padding:11px 12px;font:400 15px/1.4 var(--f);color:var(--navy);background:#fff;outline:none;transition:border-color .15s}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--gold)}
.cform textarea{resize:vertical;min-height:110px}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cf-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.cf-msg{font-size:13.5px;color:var(--mut);line-height:1.5}
.cf-msg.ok{color:#1F6B3A}
.cf-msg.err{color:#A33}
.cform.sent{display:flex;flex-direction:column;justify-content:center;min-height:320px}
.cform.sent h3{font-size:clamp(22px,2.2vw,30px)}
@media(max-width:860px){
  .cform-grid{grid-template-columns:1fr}
  .cf-row{grid-template-columns:1fr}
}
/* ── Proceso en círculos (6 pasos oficiales) ── */
.procs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,44px) clamp(16px,2.4vw,34px);justify-content:initial}
.procs .bub{flex:none;max-width:none;position:relative;display:flex;flex-direction:column;align-items:center}
.procs .bub video,.procs .bub img{width:min(200px,54vw);aspect-ratio:1/1;object-fit:cover;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 2px var(--gold),0 16px 40px rgba(23,32,41,.18);background:var(--navy2);display:block}
.procs .bn{position:absolute;top:0;left:50%;transform:translateX(calc(-50% - 92px));width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 6px 18px rgba(23,32,41,.28)}
.procs .bub figcaption{margin-top:16px;font-size:12px;letter-spacing:.16em}
.procs .bub figcaption{font-size:13px;letter-spacing:.14em}
@media(max-width:900px){
  .procs{grid-template-columns:1fr 1fr}
  .procs .bn{transform:translateX(calc(-50% - 74px))}
}
@media(max-width:520px){
  .procs{grid-template-columns:1fr 1fr;gap:22px 14px}
  .procs .bub video,.procs .bub img{width:min(150px,40vw)}
  .procs .bn{transform:translateX(calc(-50% - 54px));width:30px;height:30px;font-size:11px}
  .procs .bub figcaption{font-size:11px;letter-spacing:.12em}
}
/* ── Del patio a la obra ── */
.envio{padding:clamp(52px,6.5vw,90px) var(--pad);border-top:1px solid var(--hair);background:#fff}
.envio-in{max-width:var(--max);margin:0 auto}
.envio-head{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(20px,3vw,48px);align-items:end}
.envio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(24px,3vw,40px)}
.envio-grid figure{margin:0;border-radius:6px;overflow:hidden;background:var(--navy2)}
.envio-grid img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .6s}
.envio-grid figure:hover img{transform:scale(1.03)}
.envio-grid .e1{grid-column:span 2}
.envio-grid .e1 img{aspect-ratio:16/8.1}
@media(max-width:860px){
  .envio-head{grid-template-columns:1fr}
  .envio-grid{grid-template-columns:1fr 1fr}
  .envio-grid .e1{grid-column:span 2}
  .envio-grid .e1 img{aspect-ratio:16/9}
}
@media(max-width:560px){
  .envio-grid{grid-template-columns:1fr}
  .envio-grid .e1{grid-column:span 1}
}
/* ── Tira de sellos institucionales ── */
.sellos{margin-top:clamp(30px,3.6vw,48px)}
.sellos-t{font-size:12.5px;font-weight:600;color:var(--mut)}
.sellos-row{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;background:#fff;border:1px solid var(--hair);border-radius:5px;overflow:hidden}
.sello{display:flex;align-items:center;justify-content:center;padding:clamp(18px,2.4vw,30px) clamp(12px,2vw,26px);border-left:1px solid var(--hair);min-height:112px}
.sello:first-child{border-left:0}
.sello img{max-width:82%;max-height:56px;width:auto;height:auto;object-fit:contain;display:block}
.sello:nth-child(1) img{max-height:62px;max-width:62px}
.sello:nth-child(2) img{max-height:52px}
.sello:nth-child(3) img{max-height:62px}
.sello:nth-child(4) img{max-height:44px}
.sellos-n{margin-top:12px;font-size:12.5px;color:var(--mut);font-weight:300;line-height:1.6}
@media(max-width:640px){
  .sellos-row{grid-template-columns:1fr 1fr}
  .sello:nth-child(odd){border-left:0}
  .sello:nth-child(n+3){border-top:1px solid var(--hair)}
  .sello{min-height:96px}
}
/* ── Junta 10-sep aplicada ── */
.cob{margin-top:14px;font-size:14.5px;color:var(--navy)}
.cob b{font-weight:700}
.sellos-top{margin-top:clamp(22px,2.6vw,34px)}
.sello img.redondo{border-radius:50%;max-height:64px}
.sello-tx{flex-direction:column;gap:2px;text-align:center}
.sello-tx b{font-size:26px;font-weight:700;letter-spacing:.08em;color:var(--navy);line-height:1}
.sello-tx small{font-size:11px;color:var(--mut);line-height:1.3;max-width:16ch}
.sedes-in{max-width:var(--max);margin:clamp(34px,4.5vw,64px) auto 0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}
.sedes-map{margin:0}
.sedes-map img{width:100%;height:auto;display:block}
.sede{display:block;border-top:2px solid var(--gold);padding:14px 0 16px;transition:transform .2s}
.sede:hover{transform:translateX(4px)}
.sede b{display:block;font-size:17px;font-weight:600}
.sede span{display:block;font-size:14px;color:var(--mut);font-weight:300;line-height:1.55;margin-top:4px}
.sede i{font-style:normal;display:block;font-size:13px;margin-top:6px;font-weight:500}
@media(max-width:860px){
  .sedes-in{grid-template-columns:1fr}
}
/* ── 17-sep ── */
.state .mv2{margin-top:clamp(28px,3.4vw,44px)}
.state-grid>div>p+p{margin-top:12px}
.sedes-t{font-size:clamp(20px,2vw,26px);font-weight:600;color:var(--navy);margin-bottom:10px}
.sedes-map figcaption{margin-top:8px;font-size:13.5px;color:var(--mut);font-weight:300}
