/* JMG Technology — design system styles (see DESIGN.md) */
:root{
  --ink:#16161A; --ink-2:#1E1F24; --ink-3:#2A2C32;
  --on-ink:#F4F5F6; --on-ink-2:#B4B8BF; --line-ink:rgba(255,255,255,.12);
  --paper:#EEF0F2; --white:#FFFFFF; --text:#16161A; --text-2:#4A4F57; --line:#D6DADF;
  --orange:#F26628; --orange-hot:#FF7A3D; --orange-deep:#B9461A; --on-orange:#16161A; --on-orange-2:#3A1A0A;
  --r-panel:32px; --r-detail:28px; --r-field:12px; --r-pill:999px;
  --shoulder:88px;
  --gutter:clamp(20px,4.3vw,72px); --section:clamp(80px,10vw,150px); --max:1440px;
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-io:cubic-bezier(.77,0,.175,1);
  --display:"Archivo",ui-sans-serif,system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--ink);color:var(--on-ink);font:400 1.0625rem/1.6 var(--display);font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
/* Las piezas que llegan desde los lados (capa de scroll) no deben abrir scroll horizontal */
main{overflow-x:clip}
body::after{display:none;content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
::selection{background:var(--orange);color:var(--on-orange)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
html{scrollbar-color:#3a3c43 var(--ink)}
input,textarea,select,button{font:inherit;color:inherit}
input,textarea{caret-color:var(--orange)}
.wrap{width:min(100% - 2*var(--gutter), var(--max));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--orange);color:var(--on-orange);padding:10px 16px;border-radius:var(--r-pill);font-weight:700}
.skip:focus{top:12px}

/* type */
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
.display{font-size:clamp(2.55rem,5.6vw,5.6rem);line-height:.96;letter-spacing:-.035em;font-weight:800;font-variation-settings:"wdth" 112}
.h2{font-size:clamp(2.1rem,4.3vw,4.1rem);line-height:1;letter-spacing:-.03em;font-weight:780;font-variation-settings:"wdth" 110}
.h3{font-size:1.375rem;line-height:1.2;letter-spacing:-.01em;font-weight:720;font-variation-settings:"wdth" 104}
.lead{font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.55;color:var(--on-ink-2);max-width:56ch;margin:0}
.lead--light{color:var(--text-2)}
p{margin:0}
.num{font-variant-numeric:tabular-nums lining-nums}

/* buttons */
.btn{--bg:var(--orange);--fg:var(--on-orange);display:inline-flex;align-items:center;gap:.6em;min-height:52px;padding:0 1.5em;border-radius:var(--r-pill);background:var(--bg);color:var(--fg);font-weight:700;font-size:1rem;letter-spacing:.005em;text-decoration:none;border:0;cursor:pointer;transition:transform 140ms var(--ease-out),background-color 180ms ease,box-shadow 180ms ease;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn svg{width:18px;height:18px;flex:none;transition:transform 200ms var(--ease-out)}
.btn--ghost{--bg:transparent;--fg:var(--on-ink);box-shadow:inset 0 0 0 1.5px var(--line-ink)}
.btn--ink{--bg:var(--ink);--fg:var(--on-ink)}
.btn--line-dark{--bg:transparent;--fg:var(--text);box-shadow:inset 0 0 0 1.5px var(--text)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{--bg:var(--orange-hot)}
  .btn:hover svg{transform:translateX(3px)}
  .btn--ghost:hover{--bg:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1.5px var(--on-ink-2)}
  .btn--ink:hover{--bg:#000}
  .btn--line-dark:hover{--bg:var(--text);--fg:var(--white)}
}

/* chapters with rounded shoulders */
.chapter{position:relative;padding-block:var(--section)}
.chapter--shoulder{border-radius:var(--shoulder) var(--shoulder) 0 0;margin-top:calc(var(--shoulder) * -1);padding-top:calc(var(--section) + 8px)}
.chapter--paper{background:var(--paper);color:var(--text)}
.chapter--white{background:var(--white);color:var(--text)}
.chapter--orange{background:var(--orange);color:var(--on-orange)}
.chapter--ink{background:var(--ink);color:var(--on-ink)}
.grid-tech{background-image:none}

/* utility bar + header */
.utility{background:#0E0E11;color:var(--on-ink-2);font-size:.8125rem}
.utility .wrap{display:flex;gap:24px;justify-content:space-between;align-items:center;min-height:38px;flex-wrap:wrap}
.utility a{text-decoration:none;color:var(--on-ink)}
.utility a:hover{color:var(--orange)}
.utility ul{display:flex;gap:22px;list-style:none;margin:0;padding:0}
.site-header{position:sticky;top:0;z-index:50;background:rgba(22,22,26,.78);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.06)}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:76px}
.logo img{width:150px;height:auto}
.nav{margin-left:auto}
.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.nav a{display:block;padding:10px 14px;border-radius:var(--r-pill);text-decoration:none;font-weight:560;font-size:.95rem;color:var(--on-ink);transition:background-color 160ms ease,color 160ms ease}
.nav a:hover{background:rgba(255,255,255,.07)}
.header-cta{min-height:44px;padding:0 1.15em;font-size:.95rem}
.menu{display:none;margin-left:auto}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1.5px var(--line-ink);font-weight:650}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--on-ink);color:var(--ink)}
.menu-panel{position:absolute;left:var(--gutter);right:var(--gutter);top:calc(100% + 8px);background:var(--ink-2);border:1px solid var(--line-ink);border-radius:var(--r-detail);padding:12px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.menu-panel a{display:block;padding:14px 16px;border-radius:20px;text-decoration:none;font-weight:620;font-size:1.0625rem}
.menu-panel a:hover{background:rgba(255,255,255,.06)}
.menu-panel .btn{width:100%;justify-content:center;margin-top:8px}
@media (max-width:1080px){.nav,.header-cta{display:none}.menu{display:block}}
@media (max-width:640px){.utility p{display:none}.utility .wrap{justify-content:center}}
@media (max-width:520px){.hero{padding-top:28px}.hero-copy{gap:22px}.display{font-size:2.45rem}.lead{font-size:1rem}.route-label{display:none}}

/* HERO */
.hero{position:relative;padding-top:clamp(40px,6vw,88px);padding-bottom:calc(var(--shoulder) + clamp(56px,7vw,110px));overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,5vw,88px);align-items:center}
.hero-copy{display:grid;gap:28px}
.hero h1 em{font-style:normal;color:var(--orange)}
.route{display:grid;gap:14px;max-width:620px}
.route-label{font-size:.9375rem;font-weight:600;color:var(--on-ink)}
.seg{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:5px;border-radius:var(--r-pill);background:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-ink)}
.seg input{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;clip-path:inset(50%)}
.seg label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:6px 14px;border-radius:var(--r-pill);font-weight:650;font-size:.95rem;line-height:1.2;cursor:pointer;color:var(--on-ink-2);transition:color 200ms ease}
.seg input:checked + label{color:var(--ink)}
.seg input:focus-visible + label{outline:3px solid var(--orange);outline-offset:2px}
.seg-thumb{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:var(--r-pill);background:var(--on-ink);transition:transform 260ms var(--ease-out)}
.seg:has(#r-proyecto:checked) .seg-thumb{transform:translateX(100%)}
.route-row{display:flex;gap:10px;flex-wrap:wrap}
.field-dark{flex:1 1 260px;min-height:52px;border-radius:var(--r-pill);border:0;background:var(--white);color:var(--text);padding:0 22px;font-size:1rem}
.field-dark::placeholder{color:#6B717A}
.route-alt{display:flex;gap:20px;flex-wrap:wrap;align-items:center;font-size:.9375rem;color:var(--on-ink-2)}
.route-alt a{color:var(--on-ink);font-weight:600}
.proof-line{display:flex;gap:12px;align-items:center;font-size:.9375rem;color:var(--on-ink-2);padding-top:6px;border-top:1px solid var(--line-ink);max-width:620px}
.node--light{background:var(--on-ink);outline-color:var(--on-ink-2)}
.proof-line strong{color:var(--on-ink);font-weight:650}
.proof-line a{color:var(--on-ink)}
.node{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--orange);outline:1.5px solid var(--orange);outline-offset:3px;flex:none;margin:4px}

.stage{position:relative;aspect-ratio:1;width:min(100%,600px);justify-self:end}
.stage-ring{position:absolute;inset:-6%;width:112%;height:112%;overflow:visible;will-change:transform;pointer-events:none}
.disc{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle at 50% 42%,#fff 0 66%,#E9ECEF 100%);box-shadow:0 40px 90px rgba(0,0,0,.45),inset 0 -10px 30px rgba(22,22,26,.06);overflow:hidden}
.disc figure{position:absolute;inset:0;margin:0;display:grid;place-items:center;opacity:0;transform:scale(.96);filter:blur(4px);transition:opacity 420ms var(--ease-out),transform 520ms var(--ease-out),filter 420ms var(--ease-out)}
.disc figure.is-on{opacity:1;transform:none;filter:none}
.disc img{width:62%;height:62%;object-fit:contain;mix-blend-mode:multiply}
.disc figcaption{position:absolute;left:50%;bottom:11%;transform:translateX(-50%);white-space:nowrap;font-size:.8125rem;font-weight:650;color:var(--text);padding:6px 14px;border-radius:var(--r-pill);background:var(--paper)}
.stage-chips{position:absolute;left:50%;bottom:-62px;transform:translateX(-50%);display:flex;gap:6px;align-items:center}
.stage-chips button{width:34px;height:34px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}
.stage-chips button span{width:8px;height:8px;border-radius:50%;background:var(--on-ink-2);opacity:.45;transition:transform 200ms var(--ease-out),background-color 200ms ease,opacity 200ms ease}
.stage-chips button[aria-pressed="true"] span{background:var(--on-ink);opacity:1;transform:scale(1.5)}
.stage-chips .pause{width:auto;padding:0 12px;border-radius:var(--r-pill);font-size:.8125rem;font-weight:600;color:var(--on-ink-2);box-shadow:inset 0 0 0 1px var(--line-ink);margin-left:6px;height:32px}
.no-js .stage-chips{display:none}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .stage{justify-self:center;width:min(72vw,400px);order:2;margin:24px 0 64px}
  .hero-copy{order:1}
}

/* brands marquee */
.brands{position:relative;background:var(--orange);color:var(--on-orange);border-radius:var(--shoulder) var(--shoulder) 0 0;margin-top:calc(var(--shoulder) * -1);padding:26px 0 calc(var(--shoulder) + 26px);overflow:hidden}
.brands-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:14px}
.brands-head p{font-weight:650;font-size:.9375rem}
.brands-head span{font-size:.8125rem;color:var(--on-orange-2)}
.marquee{display:flex;width:max-content;animation:marquee 46s linear infinite}
.marquee ul{display:flex;align-items:center;gap:34px;list-style:none;margin:0;padding:0 17px}
.marquee li{font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:800;letter-spacing:-.02em;font-variation-settings:"wdth" 118;white-space:nowrap;display:flex;align-items:center;gap:34px}
.marquee li::after{content:"";width:12px;height:12px;border-radius:50%;border:2.5px solid var(--on-orange)}
.brands:hover .marquee,.brands.is-paused .marquee{animation-play-state:paused}
.brands-head .mq-toggle{border:0;background:transparent;font-size:.8125rem;font-weight:700;color:var(--on-orange);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;padding:6px 0;margin-left:14px}
.no-js .mq-toggle{display:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* routes */
.routes-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:40px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.routes-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px}
.route-panel{position:relative;border-radius:var(--r-panel);padding:clamp(28px,3.4vw,52px);display:grid;gap:22px;align-content:start;overflow:hidden;min-height:560px}
.route-panel--list{background:var(--white);color:var(--text);box-shadow:0 1px 0 var(--line),0 30px 60px -30px rgba(22,22,26,.25)}
.route-panel--project{background:var(--ink);color:var(--on-ink);isolation:isolate}
.route-panel--project::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,15,18,.96) 0%,rgba(13,15,18,.86) 42%,rgba(13,15,18,.2) 100%),url(rack-cable-naranja-900.webp) 70% 50%/cover no-repeat}
.route-panel p{max-width:46ch}
.route-panel--list p{color:var(--text-2)}
.route-panel--project p{color:var(--on-ink-2)}
.req{border-radius:20px;background:var(--paper);padding:8px 0;font-size:.95rem}
.req-head{display:flex;justify-content:space-between;padding:10px 20px 12px;font-size:.8125rem;font-weight:650;color:var(--text-2);border-bottom:1px solid var(--line)}
.req ol{list-style:none;margin:0;padding:0}
.req li{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--line)}
.req li:last-child{border-bottom:0}
.req b{font-weight:780;font-variant-numeric:tabular-nums;font-size:1.0625rem}
.req small{font-size:.8125rem;color:var(--text-2)}
.req-tag{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);background:var(--white);color:var(--text-2);white-space:nowrap}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;max-width:440px}
.steps li{position:relative;display:grid;grid-template-columns:28px 1fr;gap:14px;padding:12px 0}
.steps li::before{content:"";position:absolute;left:13px;top:34px;bottom:-10px;width:2px;background:linear-gradient(var(--orange),rgba(242,102,40,.15))}
.steps li:last-child::before{display:none}
.steps i{width:28px;height:28px;border-radius:50%;border:2px solid var(--orange);display:grid;place-items:center;font-style:normal}
.steps i::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--orange)}
.steps strong{display:block;font-weight:700;font-size:1.0625rem}
.steps span{color:var(--on-ink-2);font-size:.95rem}
.route-panel .btn{justify-self:start;margin-top:auto}
.synthetic{font-size:.75rem;color:var(--text-2)}
@media (max-width:960px){.routes-head,.routes-grid{grid-template-columns:1fr}.route-panel{min-height:0}}
@media (max-width:560px){.req li{grid-template-columns:2.25rem 1fr;row-gap:6px}.req-tag{grid-column:2;justify-self:start}.req-head span:last-child{display:none}}

/* PLANTA CONECTADA */
.planta{background:#1A1A1E}
.planta-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);gap:40px;align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.planta-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:clamp(20px,2.4vw,36px);align-items:start}
.map{position:sticky;top:100px;align-self:start}
.map-art{position:relative;border-radius:var(--r-panel);overflow:hidden}
.map-art img{width:100%;aspect-ratio:16/9;object-fit:cover;-webkit-mask-image:radial-gradient(ellipse 72% 78% at 50% 50%,#000 62%,transparent 100%);mask-image:radial-gradient(ellipse 72% 78% at 50% 50%,#000 62%,transparent 100%)}
.cables{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.cables path{fill:none;stroke-linecap:round}
.cable-base path{stroke:rgba(255,255,255,.28);stroke-width:.35;stroke-dasharray:1 2.2}
.cable-live path{stroke:var(--orange);stroke-width:.85;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 450ms cubic-bezier(.16,1,.3,1)}
.cable-live path.is-on{stroke-dashoffset:0}
.no-js .cables{display:none}
.hotspot{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;border:0;padding:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.hotspot::before{content:"";position:absolute;inset:6px;border-radius:50%;border:2px solid var(--orange);opacity:0;transform:scale(.6);transition:opacity 240ms var(--ease-out),transform 320ms var(--ease-out)}
.hotspot span{width:16px;height:16px;border-radius:50%;background:var(--orange);border:3px solid #1A1A1E;outline:2px solid var(--orange);outline-offset:1px;transition:transform 240ms var(--ease-out)}
.hotspot[aria-selected="true"]::before{opacity:1;transform:scale(1)}
.hotspot[aria-selected="true"] span{transform:scale(.72)}
.hotspot em{position:absolute;left:50%;top:calc(100% - 2px);transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);background:rgba(22,22,26,.82);color:var(--on-ink);pointer-events:none;opacity:0;transition:opacity 180ms ease}
.hotspot[aria-selected="true"] em,.hotspot:hover em,.hotspot:focus-visible em{opacity:1}
.zones-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.zones-tabs button{min-height:42px;padding:0 16px;border-radius:var(--r-pill);border:0;background:var(--ink-3);color:var(--on-ink-2);font-weight:620;font-size:.9rem;cursor:pointer;transition:background-color 200ms ease,color 200ms ease,transform 140ms var(--ease-out)}
.zones-tabs button:active{transform:scale(.97)}
.zones-tabs button[aria-selected="true"]{background:var(--orange);color:var(--on-orange)}
@media (hover:hover) and (pointer:fine){.zones-tabs button:not([aria-selected="true"]):hover{background:#353840;color:var(--on-ink)}}
.no-js .map .hotspot,.no-js .zones-tabs{display:none}
.zone-stack{display:grid}
.js .zone-stack > .zone{grid-area:1/1}
.zone{color:var(--on-ink);display:grid;gap:18px;align-content:start}
.no-js .zone + .zone{margin-top:48px}
.js .zone{opacity:0;visibility:hidden;transform:translateY(10px);filter:blur(2px);transition:opacity 240ms var(--ease-out),transform 300ms var(--ease-out),filter 240ms var(--ease-out),visibility 0s linear 300ms}
.js .zone.is-on{opacity:1;visibility:visible;transform:none;filter:none;transition:opacity 260ms var(--ease-out) 40ms,transform 340ms var(--ease-out) 40ms,filter 260ms var(--ease-out) 40ms,visibility 0s}
.family{font-size:.875rem;font-weight:700;color:var(--on-ink-2);margin-top:-10px}
.zone h3{font-size:clamp(1.6rem,2.2vw,2.1rem);line-height:1.05;letter-spacing:-.025em;font-weight:780;font-variation-settings:"wdth" 110}
.zone > p{color:var(--on-ink-2);font-size:1rem}
.shelf{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.unit{margin:0;background:var(--white);color:var(--text);border-radius:var(--r-detail);padding:16px 16px 0;display:grid;grid-template-rows:auto auto;overflow:hidden}
.unit img{width:100%;aspect-ratio:4/3;object-fit:contain;mix-blend-mode:multiply}
.unit figcaption{border-top:1px solid var(--line);padding:9px 2px 11px;font-size:.8125rem;font-weight:650;line-height:1.3}
.unit--photo{padding:0;overflow:hidden}
.unit--photo img{aspect-ratio:4/3;object-fit:cover;mix-blend-mode:normal}
.unit--photo figcaption{padding:9px 16px 11px}
.zone ul.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags li{font-size:.8125rem;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);background:var(--ink-3);color:var(--on-ink)}
.zone .btn{justify-self:start}
@media (max-width:1060px){.planta-head,.planta-body{grid-template-columns:1fr}.map{position:relative;top:0}}
@media (max-width:560px){.hotspot em{display:none}.shelf{gap:8px}}

/* leasing */
.leasing-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:center}
.stage--lease{justify-self:center;width:min(100%,460px);margin-bottom:64px}
.stage-chips--light button span{background:var(--text-2)}
.stage-chips--light button[aria-pressed="true"] span{background:var(--text)}
.stage-chips--light .pause{color:var(--text-2);box-shadow:inset 0 0 0 1px var(--line)}
.lead strong{color:var(--text);font-weight:700}
.leasing-copy{display:grid;gap:26px}
.benefits{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1.5px solid var(--text)}
.benefits li{padding:18px 18px 18px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.benefits li:nth-child(odd){padding-right:24px}
.benefits strong{font-weight:720;font-size:1.0625rem}
.benefits span{color:var(--text-2);font-size:.95rem;line-height:1.5}
.fine{font-size:.875rem;color:var(--text-2)}
.policy{margin-top:clamp(48px,6vw,88px);border-radius:var(--r-panel);background:var(--ink);color:var(--on-ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:clamp(28px,3.6vw,52px)}
.policy p{color:var(--on-ink-2);max-width:60ch;margin-top:10px}
@media (max-width:900px){.leasing-grid{grid-template-columns:1fr}.policy{grid-template-columns:1fr}.stage--lease{width:min(72vw,340px)}}
@media (max-width:560px){.benefits{grid-template-columns:1fr}.benefits li:nth-child(odd){padding-right:0}}

/* projects */
.projects-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.55fr);gap:40px;align-items:end;margin-bottom:clamp(32px,4vw,56px)}
.projects-head p{color:var(--on-orange-2);font-size:1.0625rem}
.ledger{list-style:none;margin:0;padding:0;border-top:2px solid var(--on-orange)}
.ledger li{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(130px,.7fr) minmax(0,2fr);gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid rgba(22,22,26,.28)}
.ledger h3{font-size:clamp(1.35rem,2.3vw,2rem);font-weight:800;letter-spacing:-.025em;line-height:1.05;font-variation-settings:"wdth" 114}
.ledger .where{font-size:.875rem;font-weight:650;color:var(--on-orange-2)}
.ledger p{font-size:1.0625rem;line-height:1.5;max-width:62ch}
.works{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:clamp(240px,26vw,380px);gap:16px;margin-top:clamp(36px,5vw,64px)}
.works figure{margin:0;border-radius:var(--r-detail);overflow:hidden;background:var(--ink);position:relative}
.works img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;filter:grayscale(1) contrast(1.06)}
.works img{aspect-ratio:auto}
.works figcaption{position:absolute;left:12px;bottom:12px;right:12px;font-size:.8125rem;font-weight:650;color:var(--on-ink);background:rgba(22,22,26,.78);padding:7px 12px;border-radius:var(--r-pill);width:fit-content}
.permit{margin-top:18px;font-size:.8125rem;color:var(--on-orange-2)}
@media (max-width:860px){.projects-head{grid-template-columns:1fr}.ledger li{grid-template-columns:1fr;gap:6px}.works{grid-template-columns:1fr}.works{grid-auto-rows:auto}.works img{aspect-ratio:4/3}.works figcaption{white-space:nowrap}}

/* method */
.method-head{max-width:820px;margin-bottom:clamp(40px,6vw,80px);display:grid;gap:20px}
.arc-wrap{position:relative}
.arc-svg{position:absolute;left:0;right:0;top:0;width:100%;height:120px;overflow:visible}
.arc-svg path{fill:none;stroke-linecap:round}
.phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,32px);position:relative}
.phases li{display:grid;gap:12px;align-content:start}
.phases li:nth-child(1){padding-top:84px}.phases li:nth-child(2){padding-top:6px}.phases li:nth-child(3){padding-top:6px}.phases li:nth-child(4){padding-top:84px}
.phase-node{width:44px;height:44px;border-radius:50%;background:var(--ink);border:2px solid var(--orange);display:grid;place-items:center;margin-bottom:6px}
.phase-node::after{content:"";width:14px;height:14px;border-radius:50%;background:var(--orange)}
.phases h3{font-size:1.5rem;font-weight:780;letter-spacing:-.02em;font-variation-settings:"wdth" 108}
.phases p{color:var(--on-ink-2);font-size:1rem}
.phases .deliver{font-size:.875rem;color:var(--on-ink);border-top:1px solid var(--line-ink);padding-top:12px;margin-top:4px}
.phases .deliver b{color:var(--on-ink);font-weight:650}
@media (max-width:900px){
  .arc-svg{display:none}
  .phases{grid-template-columns:1fr;gap:0;padding-left:0}
  .phases li,.phases li:nth-child(n){padding:0 0 34px 64px;position:relative}
  .phases li::before{content:"";position:absolute;left:21px;top:44px;bottom:0;width:2px;background:var(--orange);opacity:.5}
  .phases li:last-child::before{display:none}
  .phase-node{position:absolute;left:0;top:0}
}

/* sectors + coverage */
.sectors-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(36px,6vw,96px)}
.sector-list{list-style:none;margin:32px 0 0;padding:0;border-top:1.5px solid var(--text)}
.sector-list li{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.sector-list h3{font-size:1.25rem;font-weight:740;letter-spacing:-.015em}
.sector-list p{color:var(--text-2);font-size:1rem}
.coverage{background:var(--ink);color:var(--on-ink);border-radius:var(--r-panel);padding:clamp(28px,3vw,44px);display:grid;gap:22px;align-content:start}
.coverage p{color:var(--on-ink-2);font-size:1rem}
.route-map{list-style:none;margin:0;padding:0;display:grid}
.route-map li{position:relative;display:grid;grid-template-columns:28px 1fr auto;gap:14px;align-items:center;padding:13px 0}
.route-map li::before{content:"";position:absolute;left:13px;top:32px;bottom:-14px;width:2px;background:var(--orange);opacity:.55}
.route-map li:last-child::before{display:none}
.route-map i{width:28px;height:28px;border-radius:50%;border:2px solid var(--orange);display:grid;place-items:center}
.route-map i::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--orange)}
.route-map .hq i{background:var(--orange)}
.route-map .hq i::after{background:var(--ink)}
.route-map strong{font-size:1.1875rem;font-weight:720;letter-spacing:-.01em}
.route-map small{font-size:.8125rem;color:var(--on-ink-2);text-align:right}
@media (max-width:960px){.sectors-grid{grid-template-columns:1fr}.sector-list li{grid-template-columns:1fr;gap:6px}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq-list{border-top:1.5px solid var(--text)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 0;font-size:clamp(1.125rem,1.6vw,1.375rem);font-weight:700;letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:36px;height:36px;border-radius:50%;background:var(--paper);display:grid;place-items:center;transition:background-color 200ms ease,transform 240ms var(--ease-out)}
.faq summary i::before,.faq summary i::after{content:"";grid-area:1/1;width:14px;height:2px;border-radius:2px;background:var(--text);transition:transform 240ms var(--ease-out)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{background:var(--orange)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq details p{padding:0 56px 26px 0;color:var(--text-2);max-width:68ch}
@media (hover:hover) and (pointer:fine){.faq summary:hover i{background:#E1E4E8}}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}.faq details p{padding-right:0}}

/* quote */
.quote{overflow:clip}
.quote-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-areas:"side form" "contact form";grid-template-rows:auto 1fr;column-gap:clamp(32px,5vw,80px);row-gap:28px;align-items:start}
.quote-side{grid-area:side;display:grid;gap:26px}
.form-card{grid-area:form}
.contact-list{grid-area:contact}
.quote-side .h2{color:var(--on-orange)}
.quote-side p{color:var(--on-orange-2);font-size:1.0625rem;max-width:44ch}
.contact-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--on-orange)}
.contact-list li{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid rgba(22,22,26,.28);font-size:1rem}
.contact-list span{font-weight:650;color:var(--on-orange-2);font-size:.875rem}
.contact-list a{font-weight:700;text-decoration:none}
.contact-list a:hover{text-decoration:underline}
.form-card{background:var(--white);color:var(--text);border-radius:var(--r-panel);padding:clamp(24px,3.2vw,48px);box-shadow:0 40px 80px -40px rgba(60,20,0,.45)}
.form-card fieldset{border:0;margin:0;padding:0;min-width:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.full{grid-column:1/-1}
.fld{display:grid;gap:7px}
.fld label,.fld legend{font-size:.875rem;font-weight:680;padding:0}
.fld input,.fld select,.fld textarea{width:100%;min-height:52px;border-radius:var(--r-field);border:1.5px solid var(--line);background:var(--white);padding:12px 14px;font-size:1rem;color:var(--text);transition:border-color 160ms ease,box-shadow 160ms ease}
.fld textarea{min-height:120px;resize:vertical;line-height:1.5}
.fld select{-webkit-appearance:none;appearance:none;padding-right:44px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316161A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center/18px no-repeat}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:#B7BDC4}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--text);box-shadow:0 0 0 4px rgba(242,102,40,.28)}
.fld .hint{font-size:.8125rem;color:var(--text-2)}
.fld .err{font-size:.8125rem;font-weight:650;color:#B3261E;display:none}
.fld.is-invalid input,.fld.is-invalid textarea,.fld.is-invalid select{border-color:#B3261E}
.fld.is-invalid .err{display:block}
.chips{position:relative;display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;clip-path:inset(50%)}
.chips label{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--r-pill);background:var(--paper);font-weight:620;font-size:.9375rem;cursor:pointer;transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.chips label:active{transform:scale(.97)}
.chips input:checked + label{background:var(--text);color:var(--white)}
.chips input:focus-visible + label{outline:3px solid var(--orange);outline-offset:2px}
.form-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:26px}
.form-foot p{font-size:.8125rem;color:var(--text-2);max-width:44ch}
.summary{display:none;margin-top:26px;border-top:1px solid var(--line);padding-top:24px;gap:14px}
.summary.is-on{display:grid;animation:rise 320ms var(--ease-out)}
.summary textarea{min-height:200px;font-size:.95rem;background:var(--paper);border-color:transparent}
.summary-actions{display:flex;flex-wrap:wrap;gap:10px}
.status{font-size:.875rem;font-weight:650;color:var(--text-2);min-height:1.4em}
@keyframes rise{from{opacity:0;transform:translateY(8px)}}
@media (max-width:960px){.quote-grid{grid-template-columns:1fr;grid-template-areas:"side" "form" "contact";grid-template-rows:auto}}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}.contact-list li{grid-template-columns:1fr;gap:2px}}

/* footer */
.footer{position:relative;background:var(--ink);border-radius:var(--shoulder) var(--shoulder) 0 0;margin-top:calc(var(--shoulder) * -1);padding:calc(var(--shoulder) + 24px) 0 40px}
.footer-tag{font-size:clamp(2.6rem,7.4vw,6rem);font-weight:850;letter-spacing:-.045em;line-height:.92;font-variation-settings:"wdth" 120;margin:0 0 56px}
.footer-tag span{color:var(--orange)}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:32px;border-top:1px solid var(--line-ink);padding-top:36px}
.footer h2{font-size:.875rem;font-weight:700;color:var(--on-ink-2);margin-bottom:14px;letter-spacing:.01em}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer a{text-decoration:none;color:var(--on-ink)}
.footer a:hover{color:var(--orange)}
.footer address{font-style:normal;color:var(--on-ink-2);line-height:1.7}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;font-size:.8125rem;color:var(--on-ink-2)}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}

/* mobile shoulders */
@media (max-width:700px){:root{--shoulder:44px}.route-panel{border-radius:var(--r-detail)}.zone{border-radius:var(--r-detail)}}

/* reduced motion: remove movement, keep content */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .mq-toggle{display:none}
  .marquee{animation:none;width:auto;flex-wrap:wrap}
  .marquee ul[aria-hidden]{display:none}
  .marquee ul{flex-wrap:wrap;row-gap:10px}
  .disc figure,.js .zone,.js .zone.is-on{transform:none!important;filter:none!important;transition:opacity 200ms ease,visibility 0s}
  .seg-thumb,.btn,.btn svg,.hotspot::before,.hotspot span{transition:none}
  .btn:active,.chips label:active,.zones-tabs button:active{transform:none}
  .stage-ring{transform:none!important}
  .summary.is-on{animation:none}
}
@media (prefers-reduced-transparency:reduce){.site-header{background:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* ===== Service page template ===== */
.crumbs{border-bottom:1px solid rgba(255,255,255,.06)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;margin:0;padding:14px 0;font-size:.8125rem;color:var(--on-ink-2)}
.crumbs li{display:flex;align-items:center;gap:10px}
.crumbs li+li::before{content:"";width:6px;height:6px;border-radius:50%;border:1.5px solid var(--on-ink-2)}
.crumbs a{color:var(--on-ink);text-decoration:none}
.crumbs a:hover{color:var(--orange)}
.crumbs [aria-current]{color:var(--on-ink-2)}
.svc-hero{padding-top:clamp(36px,5vw,72px)}
.svc-hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,88px);align-items:center}
.svc-hero .display{font-size:clamp(2.45rem,5vw,5rem)}
.facts{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.facts li{font-size:.875rem;font-weight:640;padding:8px 14px;border-radius:var(--r-pill);background:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-ink);color:var(--on-ink)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.photo-plate{position:relative;margin:0;justify-self:end;width:min(100%,560px)}
.photo-plate .frame{border-radius:var(--r-panel);overflow:hidden;aspect-ratio:4/5;background:#0B0D10}
.photo-plate img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.photo-plate svg{position:absolute;right:-9%;top:-7%;width:46%;overflow:visible;pointer-events:none}
.photo-plate figcaption{position:absolute;left:16px;bottom:16px;font-size:.75rem;font-weight:650;padding:6px 12px;border-radius:var(--r-pill);background:rgba(22,22,26,.8);color:var(--on-ink-2)}
@media (max-width:900px){.svc-hero .wrap{grid-template-columns:1fr}.photo-plate{order:2;justify-self:stretch;width:100%}.photo-plate .frame{aspect-ratio:16/11}.photo-plate svg{right:-4%;top:-10%;width:34%}}

.situations{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--text)}
.situations li{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline}
.situations h3{font-size:clamp(1.25rem,1.9vw,1.6rem);font-weight:780;letter-spacing:-.02em;font-variation-settings:"wdth" 108;line-height:1.1}
.situations p{color:var(--text-2);font-size:1rem}
.situations .we{font-size:.9375rem;color:var(--text)}
.situations .we b{font-weight:700}
@media (max-width:860px){.situations li{grid-template-columns:1fr;gap:8px}}

.layers-art{aspect-ratio:800/460;border-radius:var(--r-panel);background:#121317;box-shadow:inset 0 0 0 1px var(--line-ink)}
.layers-svg{position:absolute;inset:0;width:100%;height:100%}
.layers-svg .base{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.layers-svg .thin{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}
.layers-svg .fill{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.34);stroke-width:1.4}
.layers-svg text{fill:var(--on-ink-2);font:600 11px var(--display);letter-spacing:.02em}
.layers-svg [data-lit]{fill:none;stroke:var(--orange);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 480ms cubic-bezier(.16,1,.3,1)}
.layers-svg [data-lit].is-on{stroke-dashoffset:0}
.no-js .layers-svg [data-lit]{stroke-dashoffset:0;opacity:.5}

.scope{width:100%;border-collapse:collapse;font-size:1rem}
.scope caption{text-align:left;font-size:.875rem;color:var(--text-2);padding-bottom:14px}
.scope th,.scope td{text-align:left;padding:16px 16px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.scope thead th{font-size:.8125rem;font-weight:700;color:var(--text-2);border-bottom:1.5px solid var(--text)}
.scope tbody th{font-weight:700;width:30%}
.scope td:last-child{color:var(--text-2);font-size:.95rem}
.state{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:.8125rem;font-weight:700;padding:5px 12px 5px 8px;border-radius:var(--r-pill)}
.state::before{content:"";width:10px;height:10px;border-radius:50%}
.state--in{background:var(--ink);color:var(--on-ink)}
.state--in::before{background:var(--orange)}
.state--depends{box-shadow:inset 0 0 0 1.5px var(--line);color:var(--text)}
.state--depends::before{border:2px solid var(--text-2)}
@media (max-width:700px){
  .scope thead{display:none}
  .scope tr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:16px 0;border-bottom:1px solid var(--line)}
  .scope th,.scope td{padding:0;border:0}
  .scope tbody th{width:auto}
  .scope td:last-child{grid-column:1/-1}
}

.checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px;border-top:1.5px solid var(--text)}
.checklist li{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.checklist i{width:28px;height:28px;border-radius:50%;border:2px solid var(--text);display:grid;place-items:center}
.checklist i::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--text)}
.checklist strong{display:block;font-weight:720;font-size:1.0625rem}
.checklist span{color:var(--text-2);font-size:.95rem}
@media (max-width:760px){.checklist{grid-template-columns:1fr}}
.data-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.data-grid .side{display:grid;gap:22px;position:sticky;top:110px}
@media (max-width:900px){.data-grid{grid-template-columns:1fr}.data-grid .side{position:relative;top:0}}

.brand-type{display:flex;flex-wrap:wrap;gap:10px 34px;align-items:center;list-style:none;margin:28px 0 0;padding:0}
.brand-type li{font-size:clamp(1.5rem,2.6vw,2.3rem);font-weight:820;letter-spacing:-.02em;font-variation-settings:"wdth" 116;display:flex;align-items:center;gap:34px}
.brand-type li:not(:last-child)::after{content:"";width:11px;height:11px;border-radius:50%;border:2.5px solid currentColor}
.footer .related-title{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.05;color:var(--on-ink);font-weight:780;letter-spacing:-.025em;font-variation-settings:"wdth" 110;margin-bottom:8px}

.related{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1px solid var(--line-ink)}
.related a,.footer .related a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-ink);text-decoration:none;font-weight:700;font-size:1.125rem}
.related a > svg{width:20px;height:20px;flex:none;transition:transform 200ms var(--ease-out)}
.related small{display:block;font-weight:500;font-size:.875rem;color:var(--on-ink-2);margin-top:2px}
@media (hover:hover) and (pointer:fine){.related a:hover{color:var(--orange)}.related a:hover > svg{transform:translateX(4px)}}
@media (max-width:760px){.related{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.layers-svg [data-lit]{transition:none}.related a > svg{transition:none}}

/* ===== Iconografía «Señal conectada» =====
   24px, trazo 1.6, un nodo naranja por ícono. El trazo se dibuja al entrar en vista,
   el nodo emite un pulso al pasar el cursor y se invierte en el estado seleccionado. */
.ic{width:24px;height:24px;flex:none;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;overflow:visible;transition:transform 220ms var(--ease-out)}
.ic .n{fill:var(--ic-node,var(--orange));stroke:none;transform-box:fill-box;transform-origin:center;transition:transform 260ms var(--ease-out),fill 200ms ease}
.ic .r{fill:none;stroke:var(--ic-node,var(--orange));stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.ic--sm{width:18px;height:18px}
.ic--lg{width:32px;height:32px;stroke-width:1.4}
.ic--xl{width:44px;height:44px;stroke-width:1.25}
.chapter--orange .ic,.brands .ic{--ic-node:var(--white)}
/* anillo abierto: el ícono vive dentro de un anillo con un arco naranja que gira al interactuar */
.ring{position:relative;flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--ring-line,var(--line))}
.ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:var(--ring-arc,var(--orange));border-right-color:var(--ring-arc,var(--orange));transform:rotate(-45deg);transition:transform 520ms cubic-bezier(.16,1,.3,1)}
.ring--ink{--ring-line:var(--line-ink)}
.ring--sm{width:40px;height:40px}
.chapter--orange .ring{--ring-line:rgba(22,22,26,.35);--ring-arc:var(--ink)}
@keyframes ic-pulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
@media (hover:hover) and (pointer:fine){
  .ia:hover .ic .r{animation:ic-pulse 640ms cubic-bezier(.16,1,.3,1)}
  .ia:hover .ic .n{transform:scale(1.25)}
  .ia:hover .ring::after{transform:rotate(135deg)}
}
.ia:focus-visible .ic .r{animation:ic-pulse 640ms cubic-bezier(.16,1,.3,1)}
.ia:focus-visible .ring::after{transform:rotate(135deg)}
[aria-selected="true"] .ic,[aria-pressed="true"] .ic,input:checked + label .ic{--ic-node:currentColor}
/* dibujo al entrar en vista (solo con JS y sin reducir movimiento) */
.js .ic-draw:not(.is-drawn) .ic path,.js .ic-draw:not(.is-drawn) .ic circle:not(.n):not(.r){stroke-dasharray:1;stroke-dashoffset:1}
.js .ic-draw:not(.is-drawn) .ic .n{transform:scale(0)}
.js .ic-draw.is-drawn .ic path,.js .ic-draw.is-drawn .ic circle:not(.n):not(.r){stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 820ms cubic-bezier(.16,1,.3,1) var(--d,0ms)}
.js .ic-draw.is-drawn .ic .n{transition:transform 360ms cubic-bezier(.34,1.4,.64,1) calc(var(--d,0ms) + 520ms)}
/* label + icon rows */
.with-ic{display:inline-flex;align-items:center;gap:10px}
/* copy → check morph */
.morph{position:relative;width:18px;height:18px;display:inline-grid}
.morph .ic{grid-area:1/1;width:18px;height:18px;transition:opacity 180ms ease,transform 260ms var(--ease-out),filter 180ms ease}
.morph .ic[data-i="check"]{opacity:0;transform:scale(.6);filter:blur(2px)}
.is-done .morph .ic[data-i="copiar"]{opacity:0;transform:scale(.6);filter:blur(2px)}
.is-done .morph .ic[data-i="check"]{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){
  .ic,.ic .n,.ring::after,.morph .ic{transition:none}
  .ia:hover .ic .r,.ia:focus-visible .ic .r{animation:none}
  .ia:hover .ic .n{transform:none}
}

/* ===== Íconos aplicados ===== */
.seg label{gap:8px}
.zones-tabs button{display:inline-flex;align-items:center;gap:8px;padding:0 16px 0 12px}
.chips label{gap:8px;padding:0 16px 0 12px}
.req-tag{display:inline-flex;align-items:center;gap:6px}
.req-tag .ic{width:14px;height:14px;stroke-width:1.8}
.utility .with-ic .ic,.utility a .ic{width:16px;height:16px;color:var(--on-ink-2)}
.utility a{display:inline-flex;align-items:center;gap:8px}
/* hero product chips as icon buttons */
.stage-chips button{width:42px;height:42px;border-radius:50%;color:var(--on-ink-2);box-shadow:inset 0 0 0 1px var(--line-ink);transition:background-color 200ms ease,color 200ms ease,transform 140ms var(--ease-out)}
.stage-chips button:active{transform:scale(.94)}
.stage-chips button[aria-pressed="true"]{background:var(--on-ink);color:var(--ink);box-shadow:none}
.stage-chips button .ic{width:20px;height:20px}
.stage-chips .pause{width:auto;height:42px}
.stage-chips--light button{color:var(--text-2);box-shadow:inset 0 0 0 1px var(--line)}
.stage-chips--light button[aria-pressed="true"]{background:var(--text);color:var(--white)}
@media (hover:hover) and (pointer:fine){.stage-chips button:not([aria-pressed="true"]):hover{color:var(--on-ink)}.stage-chips--light button:not([aria-pressed="true"]):hover{color:var(--text)}}
/* inline product pills inside headlines */
.pill-img{display:inline-block;height:.8em;width:1.62em;border-radius:var(--r-pill);background:var(--white);vertical-align:-.05em;margin:0 .04em;overflow:hidden;box-shadow:inset 0 0 0 2px rgba(255,255,255,.1)}
.pill-img img{width:100%;height:100%;object-fit:contain;padding:.06em .18em;mix-blend-mode:multiply}
.pill-img--photo img{object-fit:cover;padding:0;mix-blend-mode:normal}
.js .pill-img{animation:pill-in 760ms cubic-bezier(.16,1,.3,1) both}
.js .pill-img+.pill-img,.js h1 .pill-img:nth-of-type(2){animation-delay:140ms}
@keyframes pill-in{from{clip-path:inset(0 50% 0 50% round 999px);opacity:.2}to{clip-path:inset(0 0 0 0 round 999px);opacity:1}}
/* route panels */
.panel-head{display:flex;align-items:center;gap:16px}
.route-panel--project .ring{--ring-line:var(--line-ink)}
.steps li{grid-template-columns:40px 1fr}
.steps li::before{left:19px;top:46px}
.steps .ring{background:var(--ink)}
/* leasing + policy */
.benefits li{grid-template-columns:40px minmax(0,1fr);column-gap:14px;align-items:start}
.benefits li > div{display:grid;gap:4px}
.policy{grid-template-columns:auto minmax(0,1fr) auto}
@media (max-width:900px){.policy{grid-template-columns:1fr}}
/* projects + sectors + contact */
.ledger .where{display:inline-flex;align-items:center;gap:8px}
.ledger .where .ic{width:18px;height:18px}
.sector-list h3,.situations h3{display:flex;align-items:center;gap:14px}
.contact-list span{display:inline-flex;align-items:center;gap:8px}
.contact-list span .ic{width:18px;height:18px}
.footer ul a{display:inline-flex;align-items:center;gap:10px}
.footer ul a .ic{width:18px;height:18px;color:var(--on-ink-2)}
.summary-actions .btn .ic{width:18px;height:18px}
.summary > label{display:flex;align-items:center;gap:12px}
/* method phase nodes become icon rings */
.phase-node{width:52px;height:52px;border:0;background:var(--ink);margin-bottom:6px}
.phase-node::after{width:auto;height:auto;background:none}
.phases li:nth-child(1),.phases li:nth-child(4){padding-top:78px}
.phases li:nth-child(2),.phases li:nth-child(3){padding-top:0}
@media (max-width:900px){.phases li,.phases li:nth-child(n){padding:0 0 34px 72px}.phases li::before{left:25px;top:52px}}
/* service template */
.facts li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px}
.facts .ic{width:18px;height:18px}
.state::before{display:none}
.state{padding:5px 12px 5px 9px;gap:6px}
.state .ic{width:15px;height:15px;stroke-width:1.9}
.state--in .ic{--ic-node:var(--orange)}
.checklist li{grid-template-columns:40px 1fr;align-items:start}
.related a > span{display:flex;align-items:center;gap:14px}
.related a > span > span:not(.ring){display:block}
@media (max-width:520px){.seg label .ic{display:none}}
@media (max-width:560px){.hotspot{width:30px;height:30px}.hotspot span{width:11px;height:11px;border-width:2px;outline-width:1.5px}.hotspot::before{inset:3px}}

/* ===== Catálogo, marcas y blog ===== */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.filters button{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 16px 0 12px;border-radius:var(--r-pill);border:0;font:inherit;font-weight:640;font-size:.9rem;cursor:pointer;background:var(--white);color:var(--text);box-shadow:inset 0 0 0 1px var(--line);transition:background-color 200ms ease,color 200ms ease,transform 140ms var(--ease-out)}
.filters button:active{transform:scale(.97)}
.filters button[aria-pressed="true"]{background:var(--text);color:var(--white);box-shadow:none}
.filters--ink button{background:var(--ink-3);color:var(--on-ink-2);box-shadow:none}
.filters--ink button[aria-pressed="true"]{background:var(--orange);color:var(--on-orange)}
.filters .count{font-size:.75rem;font-weight:700;opacity:.6;font-variant-numeric:tabular-nums}
@media (hover:hover) and (pointer:fine){.filters button:not([aria-pressed="true"]):hover{box-shadow:inset 0 0 0 1.5px var(--text)}.filters--ink button:not([aria-pressed="true"]):hover{color:var(--on-ink)}}
.no-js .filters{display:none}
[data-tags][hidden]{display:none!important}

.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.prod{position:relative;display:grid;grid-template-rows:auto 1fr;background:var(--white);border-radius:var(--r-detail);overflow:hidden;box-shadow:0 1px 0 var(--line);transition:transform 320ms var(--ease-out),box-shadow 320ms ease}
.prod--wide{grid-column:span 2}
.prod-media{position:relative;aspect-ratio:4/3;display:grid;place-items:center;background:linear-gradient(180deg,#fff 0%,#F4F5F7 100%);padding:18px}
.prod--wide .prod-media{aspect-ratio:auto;height:100%;min-height:220px}
.prod-media img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform 520ms cubic-bezier(.16,1,.3,1)}
.prod-media .ring{width:84px;height:84px;background:var(--white)}
.prod-media .ring .ic{width:36px;height:36px;stroke-width:1.3}
.prod-body{display:grid;gap:6px;align-content:start;padding:14px 16px 16px;border-top:1px solid var(--line)}
.prod h3{font-size:1.0625rem;font-weight:740;letter-spacing:-.01em;line-height:1.2}
.prod p{font-size:.875rem;color:var(--text-2);line-height:1.45}
.prod .prod-cta{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.875rem;font-weight:700;color:var(--text);text-decoration:none}
.prod .prod-cta::after{content:"";position:absolute;inset:0}
.prod .prod-cta svg{width:16px;height:16px;transition:transform 200ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.prod:hover{transform:translateY(-3px);box-shadow:0 22px 40px -26px rgba(22,22,26,.4),0 1px 0 var(--line)}.prod:hover .prod-media img{transform:scale(1.05)}.prod:hover .prod-cta svg{transform:translateX(3px)}}
.prod:focus-within{outline:3px solid var(--orange);outline-offset:3px}
.catalog-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.catalog-foot p{color:var(--text-2);max-width:60ch}
@media (max-width:620px){.catalog{grid-template-columns:1fr 1fr;gap:8px}.prod--wide{grid-column:span 2}.prod-body{padding:12px}.prod p{display:none}.prod h3{font-size:.95rem}}

.brands-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;list-style:none;margin:0;padding:0}
.brand{position:relative;display:grid;place-items:center;height:96px;padding:18px 20px;border-radius:20px;background:var(--white);box-shadow:0 0 0 6px rgba(255,255,255,.045),0 0 0 7px rgba(255,255,255,.08);transition:transform 320ms var(--ease-out)}
.brand img{max-width:100%;max-height:44px;width:auto;height:auto;object-fit:contain;filter:grayscale(1) contrast(1.1);opacity:.78;transition:filter 260ms ease,opacity 260ms ease}
.brand--word span{font-size:1.25rem;font-weight:820;letter-spacing:-.01em;font-variation-settings:"wdth" 112;color:var(--text);opacity:.78;transition:opacity 260ms ease}
@media (hover:hover) and (pointer:fine){.brand:hover{transform:translateY(-2px)}.brand:hover img{filter:none;opacity:1}.brand:hover span{opacity:1}}
.brand .tip{position:absolute;bottom:8px;left:50%;transform:translateX(-50%) translateY(4px);font-size:.6875rem;font-weight:700;color:var(--text-2);opacity:0;white-space:nowrap;transition:opacity 180ms ease,transform 220ms var(--ease-out);pointer-events:none}
@media (hover:hover) and (pointer:fine){.brand:hover .tip{opacity:1;transform:translateX(-50%)}}
.brands-note{margin-top:20px;font-size:.8125rem;color:var(--on-ink-2);max-width:72ch}
@media (max-width:620px){.brands-wall{grid-template-columns:repeat(3,1fr);gap:8px}.brand{height:74px;padding:12px}.brand img{max-height:30px}.brand--word span{font-size:.95rem}}

/* marquesina con logotipos en silueta tinta */
.marquee li img{height:clamp(22px,2.4vw,32px);width:auto;filter:brightness(0);opacity:.88}

.blog-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,3vw,40px);align-items:start}
.post-feature{position:relative;display:grid;border-radius:var(--r-panel);overflow:hidden;background:var(--white);box-shadow:0 1px 0 var(--line);text-decoration:none;color:inherit}
.post-feature .media{aspect-ratio:16/9;overflow:hidden;background:var(--paper)}
.post-feature img{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(.16,1,.3,1)}
.post-feature .body{display:grid;gap:12px;padding:clamp(20px,2.4vw,32px)}
.post-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.8125rem;font-weight:650;color:var(--text-2)}
.post-meta .topic{padding:4px 10px;border-radius:var(--r-pill);background:var(--paper);color:var(--text)}
.post-feature h3{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.08;letter-spacing:-.025em;font-weight:780;font-variation-settings:"wdth" 108}
.post-feature p{color:var(--text-2);max-width:60ch}
.read{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.95rem}
.read svg{width:18px;height:18px;transition:transform 220ms var(--ease-out)}
.post-list{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--text)}
.post-list li{border-bottom:1px solid var(--line)}
.post-list a{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;text-decoration:none;color:inherit}
.post-list .thumb{width:88px;height:66px;border-radius:14px;overflow:hidden;background:var(--paper)}
.post-list .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.post-list h3{font-size:1.0625rem;font-weight:720;line-height:1.25;letter-spacing:-.01em;margin-top:4px}
.post-list .go{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--paper);transition:background-color 200ms ease,transform 260ms var(--ease-out)}
.post-list .go svg{width:16px;height:16px}
@media (hover:hover) and (pointer:fine){
  .post-feature:hover img{transform:scale(1.04)}
  .post-feature:hover .read svg{transform:translateX(4px)}
  .post-list a:hover .thumb img{transform:scale(1.08)}
  .post-list a:hover .go{background:var(--orange);transform:translateX(3px)}
  .post-list a:hover h3{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
}
.topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.topics a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 10px;border-radius:var(--r-pill);background:var(--white);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;font-weight:620;font-size:.875rem;color:var(--text)}
.topics a .ic{width:18px;height:18px}
@media (max-width:960px){.blog-grid{grid-template-columns:1fr}}
@media (max-width:520px){.post-list a{grid-template-columns:72px minmax(0,1fr)}.post-list .thumb{width:72px;height:56px}.post-list .go{display:none}}
@media (prefers-reduced-motion:reduce){.prod,.prod-media img,.brand,.brand img,.post-feature img,.post-list .thumb img,.post-list .go{transition:none}}
.blog-ink .post-list{border-top-color:var(--on-ink)}
.blog-ink .post-list li{border-bottom-color:var(--line-ink)}
.blog-ink .post-list a{color:var(--on-ink)}
.blog-ink .post-list .post-meta{color:var(--on-ink-2)}
.blog-ink .post-list .topic{background:var(--ink-3);color:var(--on-ink)}
.blog-ink .post-list .go{background:var(--ink-3);color:var(--on-ink)}
.blog-ink .post-list .thumb{background:var(--ink-2)}
.blog-ink .topics a{background:var(--ink-3);box-shadow:none;color:var(--on-ink)}
@media (hover:hover) and (pointer:fine){.blog-ink .post-list a:hover .go{background:var(--orange);color:var(--on-orange)}}
.prod-media{min-height:0;overflow:hidden}
.prod--wide .prod-media{aspect-ratio:8/3;height:auto;min-height:0}
.prod-media img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px)}
@media (max-width:620px){.prod--wide .prod-media{aspect-ratio:8/3}}
.catalog{grid-auto-flow:dense}
.brand img{filter:none;opacity:1}
.brand--word span{opacity:1}
.post-feature{color:var(--text)}
.post-feature .read{color:var(--text)}

/* ===== Descubrimiento al hacer scroll ===== */
.h2 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.h2 .w > span{display:inline-block;will-change:transform}
.zones-tabs{position:relative}
.zone-progress{position:absolute;left:0;right:0;bottom:-14px;height:3px;border-radius:3px;background:var(--orange);transform-origin:0 50%;transform:scaleX(0)}
.zones-tabs:has(.zone-progress)::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:3px;border-radius:3px;background:rgba(255,255,255,.1);z-index:-1}

/* ===================== Páginas internas (sitio de varias páginas) ===================== */
.nav a[aria-current="page"]{color:var(--orange)}
.menu-panel a[aria-current="page"]{color:var(--orange)}
.hero--solo .wrap{grid-template-columns:minmax(0,1fr)}
.hero--solo .hero-copy{max-width:980px}
.hero--short{padding-bottom:calc(var(--shoulder) + clamp(40px,5vw,72px))}
.hero--short .display{font-size:clamp(2.3rem,4.6vw,4.4rem)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* Tarjetas de contacto y datos clave (fondo claro) */
.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.card{position:relative;display:grid;align-content:start;gap:10px;padding:clamp(22px,2.4vw,30px);background:var(--white);border-radius:var(--r-detail);box-shadow:0 1px 0 var(--line);color:var(--text);text-decoration:none}
.card .ring{margin-bottom:6px}
.card h3{font-size:1.1875rem;font-weight:740;letter-spacing:-.01em;line-height:1.2}
.card p{margin:0;color:var(--text-2);font-size:.9688rem;line-height:1.5}
.card .big{font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:760;letter-spacing:-.015em;color:var(--text)}
a.card{transition:transform 320ms var(--ease-out),box-shadow 320ms ease}
@media (hover:hover) and (pointer:fine){a.card:hover{transform:translateY(-3px);box-shadow:0 1px 0 var(--line),0 18px 40px -24px rgba(22,22,26,.35)}}
.chapter--ink .card{background:var(--ink-2);color:var(--on-ink);box-shadow:inset 0 0 0 1px var(--line-ink)}
.chapter--ink .card p{color:var(--on-ink-2)}
.chapter--ink .card .big,.chapter--ink .card h3{color:var(--on-ink)}

/* Bloque de texto con columna lateral */
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,110px);align-items:start}
.split .side{position:sticky;top:110px;display:grid;gap:20px}
@media (max-width:900px){.split{grid-template-columns:1fr}.split .side{position:static}}

/* Línea de tiempo (nosotros) */
.timeline{list-style:none;margin:0;padding:0;border-left:1.5px solid var(--line)}
.timeline li{position:relative;padding:0 0 34px 34px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(242,102,40,.16)}
.timeline b{display:block;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-deep)}
.timeline h3{font-size:1.25rem;font-weight:740;margin:4px 0 6px}
.timeline p{margin:0;color:var(--text-2);max-width:56ch}

/* Texto largo: artículos y aviso legal */
.prose{font-size:1.0938rem;line-height:1.72;color:var(--text);max-width:70ch}
.prose > * + *{margin-top:1.1em}
.prose h2{font-size:clamp(1.55rem,2.4vw,2.05rem);line-height:1.12;letter-spacing:-.022em;font-weight:780;font-variation-settings:"wdth" 108;margin-top:1.9em}
.prose h3{font-size:1.25rem;line-height:1.25;font-weight:740;margin-top:1.6em}
.prose p,.prose li{color:#2F333A}
.prose a{color:var(--orange-deep);text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose ul,.prose ol{padding-left:1.25em}
.prose li + li{margin-top:.45em}
.prose li::marker{color:var(--orange)}
.prose strong{color:var(--text);font-weight:720}
.prose img{display:block;width:100%;height:auto;border-radius:var(--r-detail);margin-block:1.6em}
.prose blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:3px solid var(--orange);font-size:1.1875rem;color:var(--text)}
.prose table{width:100%;border-collapse:collapse;font-size:.9688rem;margin-block:1.6em}
.prose th,.prose td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.prose thead th{border-bottom:1.5px solid var(--text);font-weight:720}
.prose .updated{font-size:.875rem;color:var(--text-2)}

/* Artículo del blog */
.article-head{display:grid;gap:18px;max-width:980px}
.article-head .post-meta{color:var(--on-ink-2)}
.article-head .post-meta .topic{background:rgba(255,255,255,.1);color:var(--on-ink)}
.article-cover{margin:clamp(28px,4vw,48px) 0 0;border-radius:var(--r-panel);overflow:hidden;aspect-ratio:16/8;background:var(--ink-2)}
.article-cover img{width:100%;height:100%;object-fit:cover}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,6vw,96px);align-items:start}
.article-aside{position:sticky;top:110px;display:grid;gap:14px}
.article-aside .card{background:var(--paper)}
.toc{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.toc a{display:block;padding:7px 0;color:var(--text-2);text-decoration:none;font-size:.9375rem;line-height:1.35;border-bottom:1px solid var(--line)}
.toc a:hover{color:var(--orange-deep)}
@media (max-width:980px){.article-grid{grid-template-columns:minmax(0,1fr)}.article-aside{position:static}}

/* Índice del blog */
.post-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.post-card{display:grid;grid-template-rows:auto 1fr;height:100%;background:var(--white);border-radius:var(--r-detail);overflow:hidden;box-shadow:0 1px 0 var(--line);text-decoration:none;color:inherit;transition:transform 320ms var(--ease-out),box-shadow 320ms ease}
.post-card .media{aspect-ratio:16/10;overflow:hidden;background:var(--paper)}
.post-card .media img{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(.16,1,.3,1)}
.post-card .body{display:grid;align-content:start;gap:10px;padding:20px 22px 24px}
.post-card h3{font-size:1.1875rem;line-height:1.22;font-weight:740;letter-spacing:-.012em}
.post-card p{margin:0;color:var(--text-2);font-size:.9375rem;line-height:1.5}
@media (hover:hover) and (pointer:fine){.post-card:hover{transform:translateY(-3px);box-shadow:0 1px 0 var(--line),0 18px 40px -24px rgba(22,22,26,.35)}.post-card:hover .media img{transform:scale(1.04)}}
.post-grid > li[hidden]{display:none}
.blog-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start;margin-bottom:clamp(40px,5vw,64px)}
@media (max-width:900px){.blog-top{grid-template-columns:1fr}}

/* Mapa estático con botón (contacto) */
.map-card{position:relative;border-radius:var(--r-panel);overflow:hidden;background:var(--ink-2);min-height:320px;display:grid;align-content:end;padding:clamp(22px,3vw,36px);color:var(--on-ink)}
.map-card svg.map-art{position:absolute;inset:0;width:100%;height:100%}
.map-card > *:not(svg){position:relative}
.map-card address{font-style:normal;font-size:1.125rem;font-weight:650;margin:6px 0 16px;max-width:30ch}

@media (prefers-reduced-motion:reduce){a.card,.post-card,.post-card .media img{transition:none}}
.catalog--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.catalog--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1060px){.catalog--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.catalog--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.catalog--3,.catalog--4{grid-template-columns:1fr}}
.catalog--3 .prod-media,.catalog--4 .prod-media{aspect-ratio:16/10}
.chapter--white .card{background:var(--paper);box-shadow:none}
.cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1060px){.cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards--3,.cards--4{grid-template-columns:1fr}}
.split .cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* Guías del blog: respuesta corta, gráfica, tabla, imagen de producto y fuentes */
.answer{display:flex;gap:16px;align-items:flex-start;background:var(--paper);border-radius:var(--r-detail);padding:22px 24px}
.answer p{margin:0;color:var(--text);font-size:1.0938rem}
.answer .answer-k{font-size:.75rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:6px}
.chart{margin:2em 0;padding:clamp(18px,2.4vw,28px);background:var(--paper);border-radius:var(--r-detail)}
.chart-title{font-weight:740;font-size:1.0625rem;margin-bottom:14px;color:var(--text)}
.chart svg{width:100%;height:auto;display:block}
.chart .ch-l{font:600 13px var(--display);fill:#2F333A}
.chart .ch-v{font:700 13px var(--display);fill:var(--text)}
.chart .ch-b{fill:var(--orange)}
.chart-legend{margin:14px 0 0;font-size:.8438rem;color:var(--text-2);line-height:1.45}
.chart-legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--orange);margin-right:8px;vertical-align:-1px}
.chart-legend a,.table-src a,.product-shot a{color:var(--orange-deep)}
.table-wrap{margin:2em 0;overflow-x:auto}
.table-wrap table{margin:0;min-width:520px}
.table-wrap caption{text-align:left;font-weight:740;padding-bottom:10px;color:var(--text)}
.table-wrap tbody tr:nth-child(odd){background:#F7F8F9}
.table-src{font-size:.8438rem;color:var(--text-2);margin-top:8px}
.product-shot{margin:2em 0;background:linear-gradient(180deg,#fff,#F4F5F7);border-radius:var(--r-detail);padding:20px;box-shadow:0 1px 0 var(--line)}
.product-shot img{margin:0 auto;max-height:420px;width:auto;max-width:100%;object-fit:contain;border-radius:0}
.product-shot figcaption{font-size:.8438rem;color:var(--text-2);margin-top:12px;text-align:center}
.sources{font-size:.9063rem}
.sources a{word-break:break-word}
.post-card .media--product,.post-feature .media--product{background:linear-gradient(180deg,#fff,#F4F5F7)}
.post-card .media--product img,.post-feature .media--product img,.post-list .media--product img{object-fit:contain;padding:14px}
.post-card .media--icon,.post-feature .media--icon,.post-list .media--icon{display:grid;place-items:center;background:linear-gradient(180deg,#fff,#F4F5F7)}
.post-list .thumb .media,.post-list .thumb .media--product,.post-list .thumb .media--icon{display:block;width:100%;height:100%}
.post-list .thumb .media--icon .ring{width:44px;height:44px;margin:11px auto}
.guides-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0 32px;border-top:1.5px solid var(--text)}
.guides-list a{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;font-weight:680;line-height:1.3}
.guides-list a svg{flex:none;width:18px;height:18px;transition:transform 200ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.guides-list a:hover{color:var(--orange-deep)}.guides-list a:hover svg{transform:translateX(4px)}}

.prose{min-width:0;overflow-wrap:anywhere}
.prose .table-wrap{max-width:100%}

/* ===================== Plantilla de artículo (v2): sin columna lateral, piezas a ancho completo ===================== */
.art-hero{padding-bottom:calc(var(--shoulder) + clamp(40px,5vw,72px))}
.art-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,72px);align-items:center}
.art-hero .display{font-size:clamp(2.2rem,4.2vw,4rem);text-wrap:balance}
.art-hero .lead{margin-top:18px}
.art-cover{margin:0;border-radius:var(--r-panel);overflow:hidden;aspect-ratio:16/10;background:var(--ink-2);box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.art-cover img{width:100%;height:100%;object-fit:cover}
.art-cover--product{background:linear-gradient(180deg,#fff,#EEF0F2)}
.art-cover--product img{object-fit:contain;padding:clamp(18px,3vw,36px)}
.art-cover--icon{display:grid;place-items:center;background:var(--ink-2)}
.art-cover--icon .ring{width:120px;height:120px}
.art-cover--icon .ring .ic{width:52px;height:52px}
.keyfacts{list-style:none;margin:clamp(36px,4vw,56px) 0 0;padding:28px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,40px);border-top:1px solid var(--line-ink)}
.keyfacts li{display:grid;gap:8px;align-content:start}
.keyfacts .kf-ic{margin-bottom:4px}
.keyfacts b{font-size:clamp(2.1rem,3.6vw,3.4rem);line-height:1;font-weight:800;letter-spacing:-.035em;font-variation-settings:"wdth" 112;color:var(--orange)}
.keyfacts span:not(.kf-ic){color:var(--on-ink);font-size:.9688rem;line-height:1.45;max-width:34ch}
.keyfacts a{font-size:.75rem;color:var(--on-ink-2);text-decoration-color:rgba(255,255,255,.3)}
.art-body{padding-top:calc(var(--shoulder) * .55 + 24px)}
.toc-bar{position:sticky;top:88px;z-index:6;width:min(1120px,100% - 2*var(--gutter));margin:0 auto clamp(32px,4vw,56px);display:flex;align-items:center;gap:14px;padding:10px 12px 10px 18px;border-radius:var(--r-pill);background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line),0 10px 30px -18px rgba(22,22,26,.35)}
.toc-k{flex:none;font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-deep)}
.toc-bar ol{list-style:none;margin:0;padding:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.toc-bar ol::-webkit-scrollbar{display:none}
.toc-bar li{flex:none;scroll-snap-align:start}
.toc-bar a{display:block;padding:8px 14px;border-radius:var(--r-pill);background:var(--paper);color:var(--text);text-decoration:none;font-size:.8438rem;font-weight:620;white-space:nowrap;max-width:34ch;overflow:hidden;text-overflow:ellipsis;transition:background-color 180ms ease,color 180ms ease}
@media (hover:hover) and (pointer:fine){.toc-bar a:hover{background:var(--ink);color:var(--on-ink)}}
.article-flow{max-width:none;display:grid;grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start] min(720px,100% - 2*var(--gutter)) [content-end] minmax(var(--gutter),1fr) [full-end]}
.article-flow > *{grid-column:content}
.article-flow > .chart,.article-flow > .table-wrap,.article-flow > .product-shot,.article-flow > .steps,.article-flow > .cta-inline{grid-column:full;justify-self:center;width:min(1120px,100% - 2*var(--gutter))}
.article-flow h2{display:flex;gap:16px;align-items:flex-start;margin-top:2.2em}
.h2-ic{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#FFF1E9;color:var(--orange-deep);margin-top:-2px}
.h2-ic .ic{width:24px;height:24px}
.article-flow .chart{padding:clamp(22px,3vw,40px)}
.article-flow .chart svg{max-width:880px;margin:0 auto}
.article-flow .product-shot{display:grid;place-items:center;padding:clamp(24px,3vw,40px)}
.article-flow .product-shot img{max-height:480px}
.article-flow .table-wrap table{min-width:640px}
.steps{list-style:none;margin:2.2em 0;padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;background:var(--ink);border-radius:var(--r-panel);counter-reset:none}
.steps li{position:relative;display:grid;align-content:start;gap:8px;padding:22px 22px 24px;border-radius:var(--r-detail);background:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-ink);color:var(--on-ink)}
.steps li + li{margin-top:0}
.steps .step-n{font-size:2.6rem;line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--orange);font-variation-settings:"wdth" 112}
.steps h3{margin:0;font-size:1.0625rem;line-height:1.3;color:var(--on-ink)}
.steps p{margin:0;color:var(--on-ink-2);font-size:.9375rem;line-height:1.5}
.cta-inline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,2.5vw,32px);align-items:center;margin:2.4em 0;padding:clamp(22px,3vw,36px);border-radius:var(--r-panel);background:var(--ink);color:var(--on-ink)}
.cta-inline h3{margin:0 0 4px;font-size:1.375rem;color:var(--on-ink)}
.cta-inline p{margin:0;color:var(--on-ink-2)}
.cta-inline .ring{width:64px;height:64px}
.sources-box{margin-top:2.6em;padding:22px 26px;border-radius:var(--r-detail);background:var(--paper)}
.sources-box h2{margin-top:0;font-size:1.25rem}
@media (max-width:900px){.art-hero-grid{grid-template-columns:1fr}.keyfacts{grid-template-columns:1fr;gap:22px}.cta-inline{grid-template-columns:1fr}.toc-bar{top:76px}.toc-k{display:none}}
@media (prefers-reduced-motion:reduce){.toc-bar a{transition:none}}
.art-hero .wrap{display:block}
.article-flow{grid-template-columns:[full-start] minmax(var(--gutter),1fr) [content-start] min(760px,100% - 2*var(--gutter)) [content-end] minmax(var(--gutter),1fr) [full-end];font-size:1.125rem}
.article-flow > .stat-band{grid-column:full;justify-self:center;width:min(1120px,100% - 2*var(--gutter))}
.stat-band{list-style:none;margin:2.4em 0;padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(18px,3vw,40px);border-radius:var(--r-panel);background:linear-gradient(135deg,#FFF1E9,#FFE3D4)}
.stat-band li{display:grid;gap:8px;align-content:start}
.stat-band li + li{margin-top:0}
.stat-band .ring{background:#fff}
.stat-band b{font-size:clamp(2.2rem,3.8vw,3.6rem);line-height:1;font-weight:800;letter-spacing:-.035em;font-variation-settings:"wdth" 112;color:var(--text)}
.stat-band span:not(.ring){color:#3A2A22;font-size:.9688rem;line-height:1.45}
.stat-band a{font-size:.75rem;color:var(--orange-deep)}
.bars{list-style:none;margin:0 auto;padding:0;display:grid;gap:12px;max-width:880px}
.bars li{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;gap:14px;align-items:center;margin:0}
.bars .bar-l{font-size:.875rem;font-weight:640;color:#2F333A;line-height:1.3}
.bars .bar-t{height:14px;border-radius:999px;background:#E3E6EA;overflow:hidden}
.bars .bar-f{display:block;height:100%;width:var(--w);border-radius:inherit;background:var(--orange)}
.bars .bar-v{font-size:.9375rem;font-weight:780;font-variant-numeric:tabular-nums;color:var(--text);min-width:3ch;text-align:right}
@media (max-width:560px){.bars li{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.bars .bar-l{grid-column:1/-1}}

/* ===================== Tecnología en Mexicali ===================== */
.mx-hero .wrap{display:block}
.mx-hero .display{font-size:clamp(2.6rem,6vw,5.6rem);max-width:12ch}
.mx-hero .lead{max-width:60ch;margin-top:20px}
.mx-hero .keyfacts{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1060px){.mx-hero .keyfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.mx-hero .keyfacts{grid-template-columns:1fr}}
.sector-rows{list-style:none;margin:clamp(32px,4vw,56px) 0 0;padding:0;border-top:1.5px solid var(--text)}
.sector-rows li{display:grid;grid-template-columns:56px minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr);gap:clamp(14px,2.4vw,32px);align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.sector-rows .ring{width:52px;height:52px}
.sector-rows h3{margin:6px 0 0;font-size:1.25rem;line-height:1.2}
.sector-rows p{margin:6px 0 0;color:var(--text-2);line-height:1.55}
.sector-rows .needs{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.sector-rows .needs span{padding:6px 12px;border-radius:var(--r-pill);background:var(--paper);font-size:.8125rem;font-weight:640;color:var(--text)}
@media (max-width:900px){.sector-rows li{grid-template-columns:52px minmax(0,1fr)}.sector-rows li > :nth-child(n+3){grid-column:2}}
.mx-anatomy .wrap{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(28px,4vw,64px);align-items:center}
.mx-anatomy .iso{--iso-bg:transparent}
.mx-anatomy .iso-figure{margin:0}
@media (max-width:1060px){.mx-anatomy .wrap{grid-template-columns:1fr}}
.retos{list-style:none;margin:clamp(36px,4vw,60px) 0 0;padding:0;display:grid;gap:14px}
.reto{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) minmax(0,1fr);gap:clamp(18px,3vw,48px);padding:clamp(24px,3vw,40px);border-radius:var(--r-panel);background:var(--white);box-shadow:0 1px 0 var(--line)}
.reto:nth-child(even){background:var(--ink);color:var(--on-ink);box-shadow:none}
.reto-num{display:grid;align-content:start;gap:10px}
.reto-num .ring{width:56px;height:56px}
.reto-num b{font-size:clamp(2.6rem,5vw,4.6rem);line-height:.95;font-weight:800;letter-spacing:-.04em;font-variation-settings:"wdth" 112;color:var(--orange)}
.reto-num small{font-size:.875rem;line-height:1.4;color:var(--text-2);max-width:30ch}
.reto:nth-child(even) .reto-num small{color:var(--on-ink-2)}
.reto h3{margin:0 0 10px;font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.12;letter-spacing:-.02em;font-weight:780;font-variation-settings:"wdth" 108}
.reto p{margin:0 0 10px;color:var(--text-2);line-height:1.6}
.reto:nth-child(even) p{color:var(--on-ink-2)}
.reto .do{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.reto .do li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:.9688rem;line-height:1.45}
.reto .do .ic{width:20px;height:20px;color:var(--orange-deep)}
.reto:nth-child(even) .do .ic{color:var(--orange)}
.reto .do-k{font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:12px}
.reto:nth-child(even) .do-k{color:var(--orange)}
.reto .src{font-size:.75rem;color:var(--text-2);margin-top:14px}
.reto .src a{color:inherit}
.reto:nth-child(even) .src{color:var(--on-ink-2)}
@media (max-width:1000px){.reto{grid-template-columns:1fr}}
.matrix{width:100%;border-collapse:collapse;margin-top:clamp(28px,3vw,44px);font-size:.9375rem}
.matrix th,.matrix td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.matrix thead th{font-size:.8125rem;font-weight:720;color:var(--text-2);border-bottom:1.5px solid var(--text)}
.matrix tbody th{font-weight:720}
.lvl{display:inline-flex;align-items:center;gap:8px;font-weight:640}
.lvl i{width:12px;height:12px;border-radius:50%;background:var(--orange)}
.lvl[data-l="2"] i{background:#F6A57E}
.lvl[data-l="1"] i{background:#E3E6EA}
.matrix-wrap{overflow-x:auto}
.matrix-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;font-size:.8438rem;color:var(--text-2)}

/* Tecnología en Mexicali v2: foto real en el hero, retos con foto y CTA, banda de diagnóstico */
.mx-hero{position:relative;isolation:isolate}
.mx-hero--photo{padding-top:clamp(80px,10vw,150px)}
.mx-hero-bg{position:absolute;inset:0;z-index:-1;margin:0}
.mx-hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);will-change:transform}
.mx-hero--photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,22,26,.94) 0%,rgba(22,22,26,.82) 45%,rgba(22,22,26,.45) 100%),linear-gradient(0deg,rgba(22,22,26,1) 0%,rgba(22,22,26,0) 40%)}
.mx-hero .display em{font-style:normal;color:var(--orange)}
.mx-updated{margin-top:18px;font-size:.875rem;color:var(--on-ink-2)}
.mx-hero-credit{margin-top:18px;font-size:.75rem;color:var(--on-ink-2)}
.mx-hero-credit a{color:inherit}
.mx-toc{margin-bottom:clamp(28px,3vw,44px)}
.retos{gap:18px}
.reto{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}
.reto-k{font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-deep)}
.reto:nth-child(even) .reto-k{color:var(--orange)}
.reto h3{display:flex;gap:14px;align-items:center}
.reto h3 .ring{flex:none}
.reto .do-k{margin-top:18px}
.reto-photo{margin:16px 0 0;border-radius:var(--r-detail);overflow:hidden;background:var(--ink-2)}
.reto-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.reto-photo figcaption,.mx-strip-item figcaption{font-size:.7188rem;line-height:1.4;padding:8px 12px;color:var(--text-2);background:var(--paper)}
.reto:nth-child(even) .reto-photo figcaption{background:var(--ink-2);color:var(--on-ink-2)}
.reto-photo a,.mx-strip-item a{color:inherit}
@media (max-width:900px){.reto{grid-template-columns:1fr}}
.mx-band{padding-block:clamp(56px,7vw,96px)}
.mx-band-grid{display:grid;grid-template-columns:minmax(0,1.1fr) auto;gap:clamp(20px,4vw,64px);align-items:center}
.mx-band .h2{color:var(--on-orange);font-size:clamp(1.9rem,3.6vw,3.2rem)}
.mx-band p{margin:14px 0 0;color:var(--on-orange-2);max-width:56ch;font-size:1.0625rem}
@media (max-width:900px){.mx-band-grid{grid-template-columns:1fr}}
.mx-anatomy .wrap{display:block}
.mx-anatomy-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:end;margin-bottom:clamp(28px,3vw,44px)}
.mx-anatomy-copy .lead{margin-top:0 !important}
.mx-anatomy-copy .hero-ctas{grid-column:1/-1;margin-top:0 !important}
@media (max-width:900px){.mx-anatomy-copy{grid-template-columns:1fr}}
.mx-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(28px,3vw,44px)}
.mx-strip-item{margin:0;border-radius:var(--r-detail);overflow:hidden;background:var(--paper)}
.mx-strip-item img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
@media (max-width:760px){.mx-strip{grid-template-columns:1fr}}
.mx-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.keyfacts b .count,.stat-band b .count{font-size:inherit;color:inherit;max-width:none;line-height:inherit}
.mx-hero--photo::before{background:linear-gradient(90deg,rgba(22,22,26,.95) 0%,rgba(22,22,26,.84) 50%,rgba(22,22,26,.5) 100%),linear-gradient(0deg,rgba(22,22,26,1) 0%,rgba(22,22,26,.85) 28%,rgba(22,22,26,0) 60%)}
.mx-hero .keyfacts{background:rgba(22,22,26,.86);border:1px solid var(--line-ink);border-radius:var(--r-panel);padding:clamp(20px,2.4vw,32px);margin-top:clamp(32px,4vw,52px)}
/* Mexicali v3: retos con foto a sangre, sin huecos en blanco */
.reto--media{grid-template-columns:minmax(0,5fr) minmax(0,7fr);padding:0;overflow:hidden;align-items:stretch;gap:0}
.reto--media:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.reto--media:nth-child(even) .reto-media{order:2}
.reto-media{position:relative;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;background:var(--ink)}
.reto-media .reto-photo{position:absolute;inset:0;margin:0;z-index:-1;border-radius:0;background:none}
.reto-media .reto-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.reto-media::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,rgba(22,22,26,.94) 0%,rgba(22,22,26,.7) 38%,rgba(22,22,26,0) 70%)}
.reto-media .reto-photo figcaption{position:absolute;top:12px;left:12px;right:12px;padding:4px 10px;width:fit-content;max-width:calc(100% - 24px);border-radius:999px;background:rgba(22,22,26,.6);color:rgba(255,255,255,.82);font-size:.6875rem;backdrop-filter:blur(6px)}
.reto--media .reto-num{padding:clamp(22px,2.6vw,36px);gap:8px}
.reto--media .reto-num b{color:var(--orange)}
.reto--media .reto-num small,.reto--media:nth-child(even) .reto-num small{color:rgba(255,255,255,.82);max-width:40ch}
.reto--media .reto-num small a{color:#fff}
.reto--media .reto-k,.reto--media:nth-child(even) .reto-k{color:var(--orange)}
.reto--media .reto-body{padding:clamp(26px,3.2vw,48px);align-self:center}
@media (max-width:900px){.reto--media,.reto--media:nth-child(even){grid-template-columns:1fr}.reto--media:nth-child(even) .reto-media{order:0}.reto-media{min-height:360px}}
/* Banda naranja: el hombro de la sección siguiente tapa el padding de abajo */
.mx-band{padding-top:clamp(40px,5vw,64px);padding-bottom:calc(clamp(40px,5vw,64px) + var(--shoulder))}
.reto--media .reto-k,.reto--media:nth-child(even) .reto-k{color:#fff;display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:4px 10px;border-radius:999px;background:var(--orange)}
.mx-hero-bg video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);will-change:transform}
.mx-hero-bg{z-index:-2}
/* Mexicali v3: quince años de crecimiento (reemplaza al simulador) */
.mx-growth .lead{color:var(--on-ink-2);max-width:64ch}
.kf-row{list-style:none;margin:clamp(28px,3vw,44px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.kf-row li{padding:clamp(18px,2vw,26px);border:1px solid var(--line-ink);border-radius:var(--r-detail);background:rgba(255,255,255,.03);display:grid;gap:6px}
.kf-row b{font-size:clamp(2rem,4vw,3.2rem);line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--orange)}
.kf-row span{color:var(--on-ink-2);font-size:.9375rem;line-height:1.45}
.chart--ink{background:rgba(255,255,255,.04);border:1px solid var(--line-ink);margin:clamp(20px,2.4vw,32px) 0 0}
.chart--ink .chart-title{color:var(--on-ink)}
.chart--ink .chart-legend{color:var(--on-ink-2)}
.chart--ink .chart-legend a{color:var(--orange)}
.chart-legend .sw--mute{background:#5C6170}
.chart-sub{margin:22px 0 10px;font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--orange)}
.cols{list-style:none;margin:28px 0 0;padding:0;height:280px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(4px,.8vw,12px);align-items:end}
.cols li{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}
.cols .col-b{width:100%;height:var(--h);border-radius:6px 6px 2px 2px;background:#5C6170;transform-origin:bottom}
.cols li.is-last .col-b{background:var(--orange)}
.cols .col-v{font-size:.75rem;font-weight:720;font-variant-numeric:tabular-nums;color:var(--on-ink)}
.cols li.is-last .col-v{color:var(--orange)}
.cols .col-y{font-size:.75rem;color:var(--on-ink-2);font-variant-numeric:tabular-nums}
.cols .col-n{position:absolute;bottom:calc(var(--h) + 34px);left:50%;transform:translateX(-50%);width:max-content;max-width:120px;text-align:center;font-size:.6875rem;line-height:1.25;color:var(--orange);padding:3px 8px;border-radius:999px;border:1px solid rgba(242,102,40,.5);background:var(--ink)}
.cols.anim .col-b{transform:scaleY(0)}
.cols.anim.is-in .col-b{transform:scaleY(1);transition:transform .9s cubic-bezier(.23,1,.32,1);transition-delay:calc(var(--i) * 40ms)}
.growth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.pairs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:14px}
.pairs li{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) auto;gap:12px;align-items:center}
.pair-l{font-size:.875rem;font-weight:640;color:var(--on-ink);line-height:1.3}
.pair-t{display:grid;gap:3px}
.pair-a,.pair-b{display:block;height:8px;width:var(--w);border-radius:999px;background:#5C6170;transform-origin:left}
.pair-b{height:12px;background:var(--orange)}
.pair-v{font-size:.9375rem;font-weight:780;font-variant-numeric:tabular-nums;color:var(--on-ink);text-align:right;display:grid;line-height:1.2}
.pair-v small{font-size:.75rem;font-weight:600;color:var(--orange)}
.pairs--pct .pair-v small{color:var(--on-ink-2)}
.pairs.anim .pair-a,.pairs.anim .pair-b{transform:scaleX(0)}
.pairs.anim.is-in .pair-a,.pairs.anim.is-in .pair-b{transform:scaleX(1);transition:transform .8s cubic-bezier(.23,1,.32,1)}
.mx-growth .mx-cta-row{margin-top:clamp(24px,3vw,40px)}
@media (max-width:1000px){.growth-grid{grid-template-columns:1fr}}
@media (max-width:700px){.kf-row{grid-template-columns:1fr}.cols{height:220px}.cols .col-n{display:none}.cols li:not(.is-last):not(:first-child) .col-v{visibility:hidden}.cols .col-y{font-size:.625rem}.pairs li{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.pair-l{grid-column:1/-1}}
.cols .col-b{height:calc(var(--h) * .74)}
.cols .col-n{bottom:calc(var(--h) * .74 + 44px)}
.cols--ied .col-v{font-size:.6875rem}
.cols .col-n{bottom:calc(var(--h) * .74 + 54px)}
@media (max-width:700px){.cols li:nth-child(even):not(.is-last) .col-y{visibility:hidden}}
/* Fuentes consultadas (Mexicali): tarjetas por tema a todo el ancho, filas con número, institución, título, fecha y dominio */
.src{margin-top:clamp(56px,6vw,88px);padding-top:clamp(28px,3vw,40px);border-top:1.5px solid var(--text)}
.src-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:12px clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(24px,3vw,36px)}
.src-h{margin:0;font-size:clamp(1.6rem,2.2vw,2.1rem);font-weight:780;line-height:1.05;letter-spacing:-.025em;font-variation-settings:"wdth" 110}
.src-head p{margin:0;max-width:52ch;color:var(--text-2);font-size:1rem;line-height:1.5}
.src-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.src-group{background:var(--white);border-radius:var(--r-detail);padding:22px 14px 14px}
.src-group summary{display:flex;align-items:center;gap:12px;padding:0 10px 14px;border-bottom:1px solid var(--line);list-style:none;cursor:default}
.src-group summary::-webkit-details-marker{display:none}
.src-group summary i{display:none}
.src-group summary .ic{width:22px;height:22px;color:var(--text)}
.src-group h3{margin:0;flex:1;font-size:1.0625rem;font-weight:720;line-height:1.2;letter-spacing:-.01em;font-variation-settings:"wdth" 104}
.src-count{min-width:28px;height:28px;padding:0 8px;border-radius:var(--r-pill);background:var(--paper);display:grid;place-items:center;font-size:.8125rem;font-weight:650;font-variant-numeric:tabular-nums;color:var(--text-2)}
.src-list{list-style:none;margin:6px 0 0;padding:0}
.src-list li + li{border-top:1px solid var(--line)}
.src-list li:has(a:hover) + li,.src-list li:hover{border-top-color:transparent}
.src-list a{display:grid;grid-template-columns:2.1em minmax(0,1fr) 16px;gap:10px;align-items:start;padding:10px;border-radius:var(--r-field);color:var(--text);text-decoration:none;transition:background-color 180ms ease,color 180ms ease}
.src-n{font-size:.8125rem;font-weight:650;line-height:1.55;font-variant-numeric:tabular-nums;color:var(--text-2)}
.src-t{display:grid;gap:1px;min-width:0}
.src-t b{font-size:.9375rem;font-weight:680;line-height:1.3}
.src-t span{font-size:.9063rem;line-height:1.4;color:var(--text-2)}
.src-t small{font-size:.75rem;line-height:1.4;color:var(--text-2);overflow-wrap:anywhere}
.src-go{width:16px;height:16px;margin-top:3px;color:var(--text-2);transition:transform 200ms var(--ease-out),color 180ms ease}
.src-list a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media (hover:hover) and (pointer:fine){.src-list a:hover{background:var(--paper)}.src-list a:hover b,.src-list a:hover .src-go{color:var(--orange-deep)}.src-list a:hover .src-go{transform:translate(2px,-2px)}}
.src-grid.anim .src-group{opacity:0;transform:translateY(16px)}
.src-grid.anim.is-in .src-group{opacity:1;transform:none;transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out);transition-delay:calc(var(--i) * 60ms)}
@media (max-width:1100px){.src-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.src-head{grid-template-columns:1fr}.src-grid{grid-template-columns:1fr;gap:10px}.src-group{padding:6px 8px}
  .src-group summary{min-height:60px;padding:8px 6px 8px 10px;border-bottom:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .src-group[open] summary{border-bottom:1px solid var(--line);margin-bottom:4px}
  .src-group summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:var(--r-field)}
  .src-group summary i{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--paper);transition:background-color 200ms ease}
  .src-group summary i::before,.src-group summary i::after{content:"";grid-area:1/1;width:14px;height:2px;border-radius:2px;background:var(--text);transition:transform 240ms var(--ease-out)}
  .src-group summary i::after{transform:rotate(90deg)}
  .src-group[open] summary i{background:var(--orange)}
  .src-group[open] summary i::after{transform:rotate(0)}
  .src-t small{display:none}}
@media (prefers-reduced-motion:reduce){.src-go,.src-group summary i::after{transition:none}.src-list a:hover .src-go{transform:none}}
/* Héroe de servicio con video */
.photo-plate .frame video{width:100%;height:100%;object-fit:cover;display:block}
/* Bolsa de trabajo: formulario de CV */
.cv-dialog{border:0;padding:0;border-radius:var(--r-panel);width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);background:var(--white);color:var(--text);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.cv-dialog::backdrop{background:rgba(22,22,26,.6);backdrop-filter:blur(4px)}
.cv-dialog[open]{animation:cv-in .28s cubic-bezier(.23,1,.32,1)}
@keyframes cv-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
@media (prefers-reduced-motion:reduce){.cv-dialog[open]{animation:none}}
.cv-form{padding:clamp(22px,3vw,34px);display:grid;gap:14px}
.cv-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cv-head h2{margin:0;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;font-weight:780}
.cv-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--text);cursor:pointer;display:grid;place-items:center}
.cv-close svg{width:20px;height:20px}
.cv-sub{margin:0;color:var(--text-2);font-size:.9375rem}
.cv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cv-field{display:grid;gap:6px;font-size:.875rem;font-weight:640}
.cv-field input,.cv-field select,.cv-field textarea{font:inherit;font-weight:400;font-size:1rem;padding:12px 14px;border:1px solid #C9CDD3;border-radius:12px;background:#fff;color:var(--text);width:100%}
.cv-field input:focus,.cv-field select:focus,.cv-field textarea:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:transparent}
.cv-field em,.cv-file em,.cv-check em{display:none;font-style:normal;font-weight:600;font-size:.8125rem;color:#B42318}
.is-invalid em{display:block}
.is-invalid input,.is-invalid select{border-color:#B42318}
.cv-file{position:relative;display:grid;gap:6px}
.cv-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.cv-drop{display:grid;justify-items:center;gap:4px;padding:22px;border:1.5px dashed #B9BEC6;border-radius:14px;background:var(--paper);text-align:center}
.cv-drop .ic{width:28px;height:28px;color:var(--orange)}
.cv-drop b{font-size:.9688rem;word-break:break-all}
.cv-drop small{color:var(--text-2)}
.cv-file:focus-within .cv-drop{outline:2px solid var(--orange);outline-offset:2px}
.cv-file.is-invalid .cv-drop{border-color:#B42318}
.cv-check{display:flex;gap:10px;align-items:flex-start;font-size:.875rem}
.cv-check input{width:20px;height:20px;accent-color:var(--orange);margin-top:1px}
.cv-check a{color:var(--orange-deep)}
.cv-check.is-invalid span{color:#B42318}
.cv-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cv-status{margin:0;font-size:.9375rem;font-weight:600;min-height:1.4em}
.cv-status.is-ok{color:#067647}.cv-status.is-error{color:#B42318}
.cv-actions{display:flex;justify-content:flex-end}
.cv-submit{display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border:0;border-radius:999px;background:var(--orange);color:var(--ink);font:inherit;font-weight:750;cursor:pointer}
.cv-submit .ic{width:20px;height:20px}
.cv-submit:disabled{opacity:.6;cursor:progress}
@media (max-width:560px){.cv-grid{grid-template-columns:1fr}.cv-submit{width:100%;justify-content:center}}
.prod-media--photo{padding:0;background:#E4E5E7}.prod-media--photo img{object-fit:cover;mix-blend-mode:normal}

/* créditos al pie */
.footer{padding-bottom:0}
.credits{position:relative;margin-top:40px;padding:18px 20px calc(18px + env(safe-area-inset-bottom));background:#0F0F12;text-align:center;font-size:.8125rem;line-height:1.5;color:var(--on-ink-2)}
.credits::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--orange) 30%,var(--orange-hot) 50%,var(--orange) 70%,transparent)}
.credits p{margin:0}
.credits a{color:var(--on-ink);font-weight:600;white-space:nowrap;background:linear-gradient(var(--orange),var(--orange)) 0 100%/0 1px no-repeat;transition:color .2s ease,background-size .25s ease}
.credits a:hover,.credits a:focus-visible{color:var(--orange-hot);background-size:100% 1px}
.credits-x{color:var(--orange);margin:0 .3em}
.credits-heart{width:1em;height:1em;vertical-align:-.14em;margin:0 .1em;fill:var(--orange);animation:credits-beat 1.8s ease-in-out infinite;transform-origin:50% 60%}
@keyframes credits-beat{0%,40%,100%{transform:scale(1)}12%{transform:scale(1.22)}24%{transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.credits-heart{animation:none}.credits a{transition:none}}

/* lectura (3 nov 2026): sin fotos dentro de los titulares; el titular se lee de corrido */
h1 .pill-img,h2 .pill-img,.display .pill-img{display:none}
