/* ==========================================================================
   STRIKER RACING · Galería Digital de Ingeniería Motorsport
   Capa editorial sobre css/site.css: paleta oficial azul marino (#071B33) + retícula CAD,
   contraste extremo de escala (mono) y micro-etiquetas suizas.
   ========================================================================== */

button, input, select, textarea { font: inherit; }

:root{
  /* Los 6 Colores Oficiales Originales */
  --navy-deep:#071B33;       /* 1. Fondo/base principal */
  --emerald:#12B866;         /* 2. Acento principal deportivo / CTAs / velocidad */
  --purple:#7137D4;          /* 3. Acento secundario / identidad Celta / badges de rol */
  --purple-text:#B79CF0;     /* Lavanda de alto contraste para textos pequeños sobre navy (WCAG AA) */
  --border-fine:#183969;     /* 4. Azul marino: estructura / bordes / retícula CAD */
  --line:#183969;
  --lime:#7FD9B0;            /* 5. Limón: detalle puntual / dots de status / acento mínimo */
  --ice:#CDDEEF;             /* 6. Azul pálido: tipografía principal / cifras / telemetría */

  /* Superficies y Derivados Técnicos */
  --surface:#0E223D;
  --surface-2:#142F54;
  --purple-deep:#5A2BA8;
  --ice-dim: rgba(205,222,239,0.72);
  --grid-line: rgba(24,57,105,0.55);
  --focus-ring: var(--emerald);

  --mono:'JetBrains Mono', ui-monospace, 'SFMono-Regular', monospace;
  --grid-size:40px;
}

/* ---------- Base editorial ---------- */
section{padding:104px 0;}
@media (max-width:700px){ section{padding:64px 0;} }
.wrap{max-width:1200px;}
.blueprint{
  background-color:var(--navy-deep);
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:var(--grid-size) var(--grid-size);
}
.micro{
  font-family:'Inter', system-ui, sans-serif; font-size:0.75rem; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--purple-text); line-height:1.4;
}
.big-num{
  font-family:var(--mono); font-size:clamp(2.5rem, 5vw, 4.5rem); font-weight:700;
  line-height:1; letter-spacing:-0.02em; color:var(--ice);
}
.unit{font-family:var(--mono); font-size:0.8rem; color:var(--ice-dim); letter-spacing:0.06em; text-transform:uppercase; margin-left:8px;}
.eyebrow-tag{font-family:'Inter', system-ui, sans-serif; font-size:0.68rem; font-weight:600; letter-spacing:0.12em;}
.section-head h2{text-transform:uppercase; font-weight:600; letter-spacing:0.005em; line-height:1.02; font-size:clamp(1.9rem, 3.8vw, 3rem);}
.btn, .contact-btn, .tier, .tier-cta a.tier-btn, .fact-card, .budget-box{clip-path:none;}
.btn{border-color:var(--border-fine); padding:13px 22px;}
.btn:hover{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.btn.btn-solid{background:var(--emerald); color:var(--navy-deep); border-color:var(--emerald);}
.btn.btn-solid:hover{filter:brightness(1.1);}
.contact-btn{border-color:var(--border-fine);}
.hud-top-btn{border-color:var(--border-fine); background:rgba(7,27,51,0.85);}

/* ---------- Navbar cockpit ---------- */
.cockpit{position:sticky; top:0; z-index:60; border-bottom:1px solid var(--border-fine);}
.cockpit::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(7,27,51,0.97);

}
.cockpit-bar{
  position:relative; max-width:1320px; margin:0 auto; padding:0 24px; min-height:64px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px;
}
.brand-link{display:inline-flex; text-decoration:none; color:inherit; justify-self:start;}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:'Oswald', system-ui, sans-serif; font-weight:700; font-size:1.15rem; color:var(--ice); letter-spacing:0.06em; text-transform:uppercase;
}
.brand-mark{height:30px; width:auto; flex:none; object-fit:contain;}
.nav-panel{display:contents;}
.cockpit-links{list-style:none; display:flex; gap:4px; justify-self:center;}
.cockpit-links a, .lang-switch a, .contact-cta{
  font-family:'Inter', system-ui, sans-serif; font-size:0.9rem; font-weight:500; letter-spacing:0.01em; text-decoration:none;
}
.cockpit-links a{display:block; padding:9px 16px; color:var(--ice-dim); transition:color .15s ease;}
.cockpit-links a:hover{color:var(--ice);}
.cockpit-links a[aria-current="page"], .cockpit-links a[aria-current="location"]{color:var(--emerald);}
.cockpit-actions{justify-self:end; display:flex; align-items:center; gap:20px;}
.lang-switch{display:flex; align-items:center; gap:8px; font-family:'Inter', system-ui, sans-serif; font-size:0.85rem; color:var(--ice-dim);}
.lang-switch a{color:var(--ice-dim); padding:4px 2px;}
.lang-switch a:hover{color:var(--ice);}
.lang-switch a[aria-current="true"]{color:var(--emerald); pointer-events:none;}
.contact-cta{
  display:inline-block; padding:10px 18px; background:var(--emerald); color:var(--navy-deep); border:1px solid var(--emerald); font-weight:700;
  transition:filter .15s ease;
}
.contact-cta:hover{filter:brightness(1.1);}
.nav-toggle{display:none; justify-self:end; background:none; border:1px solid var(--border-fine); cursor:pointer; padding:11px 10px;}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:var(--ice); position:relative; transition:transform .15s ease, opacity .15s ease;
}
.nav-toggle span::before{position:absolute; top:-6px;}
.nav-toggle span::after{position:absolute; top:6px;}
.nav-toggle[aria-expanded="true"] span{background:transparent;}
.nav-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg);}
@media (max-width:900px){
  .cockpit-bar{grid-template-columns:1fr auto;}
  .nav-toggle{display:block;}
  .nav-panel{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:20px; padding:12px 24px 24px;
    background:rgba(7,27,51,0.98);
    border-bottom:1px solid var(--border-fine);
  }
  .nav-panel.open{display:flex;}
  .cockpit-links{flex-direction:column; gap:0; justify-self:stretch;}
  .cockpit-links li{border-top:1px solid var(--border-fine);}
  .cockpit-links a{padding:16px 0; font-size:1rem;}
  .cockpit-actions{justify-self:stretch; justify-content:space-between; gap:16px;}
}

/* ---------- Cabeceras de sala ---------- */
.room-tag{display:flex; align-items:center; gap:12px; margin-bottom:22px;}
.room-tag::before{content:""; width:28px; height:1px; background:var(--purple);}
.gallery-hero, .room-head{position:relative; overflow:hidden; background:var(--navy-deep); border-bottom:1px solid var(--border-fine);}
.gallery-hero::before, .room-head::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:var(--grid-size) var(--grid-size);
  -webkit-mask-image:linear-gradient(180deg, #000 0%, transparent 92%);
  mask-image:linear-gradient(180deg, #000 0%, transparent 92%);
}
.hero-top, .room-head-inner{position:relative; z-index:2;}
.hero-top{padding:72px 0 44px; display:grid; grid-template-columns:1.25fr 0.75fr; gap:48px; align-items:end;}
@media (max-width:900px){ .hero-top{grid-template-columns:1fr; gap:24px; padding:48px 0 32px;} }
.gallery-hero h1, .room-head h1{
  font-family:'Oswald', system-ui, sans-serif; font-weight:600; text-transform:uppercase;
  font-size:clamp(2.3rem, 4.8vw, 4.2rem); line-height:0.98; letter-spacing:0.005em; color:var(--ice);
}
.gallery-hero h1 em, .room-head h1 em{font-style:normal; color:var(--purple-text);}
.section-head h2 em{font-style:normal; color:var(--purple-text);}
.section-head .cta-row{margin-top:24px;}
.hero-lead{font-size:1.02rem; color:var(--ice-dim); max-width:520px;}
.hero-lead + .cta-row{margin-top:24px;}
.room-head{padding:88px 0 72px;}
.room-head .hero-lead{margin-top:22px; max-width:640px;}
.room-head .cta-row{margin-top:28px;}
@media (max-width:700px){ .room-head{padding:56px 0 48px;} }

/* Hero corto del inicio: sin visor, solo titular + CTAs */
.hero-short .hero-top{padding-bottom:88px;}
@media (max-width:900px){ .hero-short .hero-top{padding-bottom:56px;} }

/* ---------- Escultura 3D + HUD de cotas ---------- */
.hero-main{
  position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);
  border:1px solid var(--border-fine); margin-bottom:0;
}
@media (max-width:960px){ .hero-main{grid-template-columns:1fr;} }
.gallery-hero .wrap.hero-frame{padding-bottom:72px; position:relative; z-index:2;}
.hero-main .model-stage{
  margin:0; aspect-ratio:auto; align-self:stretch; min-height:440px; border:none; border-right:1px solid var(--border-fine);
  background-color:var(--surface);
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:32px 32px;
}
@media (max-width:960px){
  .hero-main .model-stage{border-right:none; border-bottom:1px solid var(--border-fine); aspect-ratio:4/3; min-height:0;}
}
/* Teléfono: más alto que ancho, para que quepan el auto y los dos renglones de controles */
@media (max-width:560px){ .hero-main .model-stage{aspect-ratio:4/5;} }
.model-stage .model-tag, .model-stage .model-hint, .model-stage .model-fallback{z-index:3;}
.model-stage .model-tag{background:rgba(7,27,51,0.75); border-color:var(--border-fine);}
.model-stage .model-hint{background:rgba(7,27,51,0.75); border-color:var(--border-fine);}
.model-stage canvas{position:relative; z-index:1;}
.model-poster{object-fit:cover;}

.hud-panel{
  background:var(--surface); border:none; border-top:none; padding:0; display:flex; flex-direction:column;
}
.hud-head{
  padding:18px 24px; border-bottom:1px solid var(--border-fine); color:var(--purple-text);
  font-family:'Inter', system-ui, sans-serif; font-weight:600; font-size:0.75rem; letter-spacing:0.12em;
}
.cotas{margin:0; flex:1;}
.cota{padding:20px 24px; border-bottom:1px solid var(--border-fine);}
.cota dt{margin-bottom:8px;}
.cota dd{display:flex; align-items:baseline; flex-wrap:wrap; gap:0;}
.cota-txt dd{font-family:var(--mono); font-size:0.86rem; color:var(--ice); line-height:1.5; font-weight:500;}
.hud-disclaimer{margin:0; padding:16px 24px; font-size:0.75rem; line-height:1.55; color:var(--ice-dim);}
@media (max-width:960px){
  .cotas{display:grid; grid-template-columns:repeat(2,1fr);}
  .cota:nth-child(odd){border-right:1px solid var(--border-fine);}
  .cota:last-child:nth-child(odd){grid-column:1 / -1; border-right:none;}
}
@media (max-width:520px){
  .cotas{grid-template-columns:1fr;}
  .cota:nth-child(odd){border-right:none;}
}

/* ---------- Manifiesto técnico (Sala 01) ---------- */
.manifesto-grid{display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:72px; align-items:start;}
@media (max-width:900px){ .manifesto-grid{grid-template-columns:1fr; gap:36px;} }
.manifesto-grid .section-head{margin-bottom:0; position:sticky; top:96px;}
@media (max-width:900px){ .manifesto-grid .section-head{position:static;} }
.manifesto-body p{color:var(--ice-dim); font-size:1.05rem; margin-bottom:20px;}
.fact-row{display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-top:36px; border:1px solid var(--border-fine);}
@media (max-width:640px){ .fact-row{grid-template-columns:1fr;} }
.fact-card{
  background:var(--surface); border:none; padding:26px 24px;
}
.fact-card + .fact-card{margin-top:0; border-left:1px solid var(--border-fine);}
@media (max-width:640px){ .fact-card + .fact-card{border-left:none; border-top:1px solid var(--border-fine);} }
.fact-card .micro{display:block; margin-bottom:10px;}
.fact-card h3{font-size:1.1rem; margin-bottom:8px;}

.mission-band{background:var(--surface); border-color:var(--border-fine);}
.mission-item .eyebrow{font-family:'Inter', system-ui, sans-serif; font-size:0.68rem; letter-spacing:0.12em;}
.mission-item h3{font-weight:600; text-transform:uppercase; line-height:1.1; font-size:clamp(1.3rem,2.4vw,1.8rem);}
.mission-item p{color:var(--ice-dim);}
.value-chip{border-color:var(--border-fine);}

.tl-step::before{font-size:clamp(2rem, 3.6vw, 3.2rem); line-height:1; letter-spacing:-0.02em; color:var(--ice); margin-bottom:16px;}
.timeline{border-top:1px solid var(--border-fine);}
.tl-step + .tl-step{border-left:1px solid var(--border-fine);}
.tl-step h3{font-size:1.1rem; text-transform:uppercase; letter-spacing:0.02em;}
.tl-step.is-goal::before{color:var(--lime);}
.stage-current{
  display:inline-block; margin-bottom:8px; font-family:var(--mono); font-size:0.75rem; font-weight:700;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--lime);
}
@media (max-width:768px){
  .tl-step{border-left:1px solid var(--border-fine) !important;}
  .tl-step::before{background:var(--navy-deep); font-size:0; line-height:0; margin:0;}
}

/* ---------- Puertas de sala ---------- */
.gates{padding:0; border-top:1px solid var(--border-fine);}
.gates-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-left:1px solid var(--border-fine); border-right:1px solid var(--border-fine);}
@media (max-width:800px){ .gates-grid{grid-template-columns:1fr;} }
.gate{
  position:relative; display:flex; flex-direction:column; gap:14px; padding:48px 40px 40px; min-height:340px;
  text-decoration:none; color:var(--ice); background:var(--navy-deep); overflow:hidden;
  transition:background .2s ease;
}
.gate + .gate{border-left:1px solid var(--border-fine);}
@media (max-width:800px){ .gate + .gate{border-left:none; border-top:1px solid var(--border-fine);} .gate{padding:36px 24px 32px; min-height:0;} }
.gate:hover{background:var(--surface);}
.gate h2{font-family:'Oswald', system-ui, sans-serif; font-weight:600; text-transform:uppercase; font-size:clamp(1.8rem,3vw,2.6rem); line-height:1;}
.gate p{color:var(--ice-dim); max-width:420px; font-size:0.98rem;}
.gate-metric{margin-top:auto; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}
.gate .funding-track{margin-top:4px; max-width:360px;}
.gate-go{
  font-family:var(--mono); font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--emerald);
  display:inline-flex; gap:10px; align-items:center;
}
.gate-go::after{content:"→"; transition:transform .2s ease;}
.gate:hover .gate-go::after{transform:translateX(6px);}
.next-room{padding:0; border-top:1px solid var(--border-fine);}
.next-room .gate{border-left:1px solid var(--border-fine); border-right:1px solid var(--border-fine); min-height:0; padding:40px;}
.next-room .gate h2{font-size:clamp(1.6rem,3vw,2.4rem);}

/* ---------- Paddock passes (Sala 02) ---------- */
.pass-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch;}
@media (max-width:1000px){ .pass-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .pass-grid{grid-template-columns:1fr;} }
.paddock-pass{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end; height:100%; min-height:600px; isolation:isolate; overflow:hidden;
  background:var(--navy-deep); border:1px solid var(--border-fine); padding:0; transition:border-color .2s ease;
}
.paddock-pass:hover, .paddock-pass:focus-within{border-color:rgba(18,184,102,0.6);}
/* Foto a sangre como fondo de la tarjeta; degradado al navy oficial en la mitad inferior */
.pass-img{position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:top center; transition:transform .6s ease;}
.paddock-pass::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(7,27,51,0) 28%, rgba(7,27,51,0.82) 58%, #071B33 88%);}
.paddock-pass:hover .pass-img{transform:scale(1.03);}
/* Equipo: encabezado -> foto -> cifras -> tarjetas */
.team-head{margin-bottom:64px;}
.team-head h2{margin:14px 0 32px; max-width:18ch; text-transform:uppercase; font-weight:600; line-height:1.02; font-size:clamp(1.9rem, 3.8vw, 3rem);}
.team-group-text{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; max-width:1000px;}
.team-group-text p{color:var(--ice-dim); font-size:1.02rem; margin:0;}
.team-photo{margin:0 0 64px; max-width:1000px;}
.team-photo img{display:block; width:100%; height:auto;}
.team-photo figcaption{margin-top:10px; font-size:0.8rem; color:var(--ice-dim);}
.team-stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; max-width:1000px; margin:0 0 80px; padding-top:32px; border-top:1px solid var(--border-fine);}
.team-stat{display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:8px; margin:0;}
.team-stat dd{margin:0; font-size:clamp(1.4rem, 3vw, 2.4rem); line-height:1; letter-spacing:-0.02em; font-weight:600; color:var(--ice);}
.team-stat dt{font-family:var(--mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ice-dim);}
.team-cards-intro{max-width:640px; margin:0 0 32px; color:var(--ice-dim); font-size:1.02rem;}
@media (max-width:800px){
  .team-head{margin-bottom:48px;}
  .team-group-text{grid-template-columns:1fr; gap:16px;}
  .team-photo{margin-bottom:48px;}
  .team-stats{grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; margin-bottom:56px;}
}
.pass-head{display:none;}
.pass-tools-toggle{display:none;}
.pass-top{position:absolute; top:0; left:0; padding:18px 20px 0;}
.pass-no{font-family:var(--mono); font-size:0.85rem; font-weight:700; letter-spacing:0.12em; color:var(--ice); background:rgba(7,27,51,0.75); padding:4px 10px;}
.pass-id{padding:0 22px;}
.pass-id h3{font-size:clamp(1.5rem,2.4vw,1.9rem); line-height:1.08; font-weight:600; margin-bottom:10px; text-transform:uppercase;}
.pass-role{display:inline-block; margin-top:2px; padding:4px 10px; background:var(--purple); color:var(--ice); font-family:var(--mono); font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; line-height:1.5;}
.mentor-quote{
  margin:16px 20px 0; padding:14px 16px; font-size:0.92rem; font-style:italic; color:var(--ice);
  background:rgba(113,55,212,0.08); border-left:3px solid var(--purple);
}
.pass-skills{list-style:none; margin:16px 22px 0; padding-top:14px; border-top:1px solid var(--border-fine);}
.pass-skills li{position:relative; padding:3px 0 3px 22px; font-size:0.88rem; color:var(--ice); line-height:1.45;}
.pass-skills li::before{content:"—"; position:absolute; left:0; color:var(--lime);}
.pass-chips{display:flex; flex-wrap:wrap; gap:6px; padding:14px 22px 0;}
.pass-chips span{
  font-family:var(--mono); font-size:0.68rem; letter-spacing:0.04em; padding:5px 9px;
  border:1px solid var(--border-fine); color:var(--ice-dim);
}
.pass-foot{padding:18px 22px 22px;}
.cv-view-btn{
  width:100%; cursor:pointer; padding:13px 14px; background:transparent; color:var(--emerald);
  border:1px solid var(--emerald); font-family:var(--mono); font-size:0.74rem; font-weight:500;
  letter-spacing:0.1em; text-transform:uppercase; text-align:center;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.cv-view-btn:hover{background:var(--emerald); color:var(--navy-deep); border-color:var(--emerald);}
.cv-view-btn:active{transform:translateY(1px);}
.paddock-pass.is-mentor{border-top:2px solid var(--purple);}

/* Stack técnico */
.tools-band{background:var(--navy-deep);}
.tool-grid{background:var(--border-fine); border:1px solid var(--border-fine);}
.tool{background:var(--surface); padding:30px 28px;}
.tool h3{font-size:1.15rem;}
.tool h3 .tag{background:transparent; color:var(--purple-text); border:1px solid var(--purple); font-family:'Inter', system-ui, sans-serif; letter-spacing:0.1em; text-transform:uppercase; font-size:0.62rem;}

/* ---------- Visor universal de credenciales ---------- */
body:has(dialog[open]){overflow:hidden;}
dialog.cv-dialog{
  width:min(1080px, calc(100% - 32px)); height:min(92vh, 940px); max-width:none; max-height:none;
  margin:auto; padding:0; overflow:hidden; color:var(--ice);
  background:var(--navy-deep); border:1px solid var(--border-fine);
}
dialog.cv-dialog[open]{display:flex; flex-direction:column;}
dialog.cv-dialog::backdrop{background:rgba(7,27,51,0.85);}
.cv-dialog-head{
  flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 20px; border-bottom:1px solid var(--border-fine); background:var(--surface);
}
.cv-dialog-title{min-width:0;}
.cv-dialog-title h2{font-family:'Oswald', system-ui, sans-serif; font-weight:600; font-size:1.2rem; line-height:1.2; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cv-dialog-actions{display:flex; align-items:center; gap:10px; flex:none;}
.cv-action{
  display:inline-block; cursor:pointer; text-decoration:none; padding:9px 12px; background:transparent; color:var(--ice);
  border:1px solid var(--border-fine); font-family:var(--mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; line-height:1.2;
  transition:border-color .15s ease, color .15s ease;
}
.cv-action:hover{border-color:var(--emerald); color:var(--emerald);}
.cv-dialog-body{flex:1; min-height:0; position:relative; background:var(--navy-deep);}
.cv-dialog-body iframe{display:block; width:100%; height:100%; border:0; background:var(--navy-deep);}
.cv-img-scroll{position:absolute; inset:0; overflow:auto; padding:20px; -webkit-overflow-scrolling:touch;}
.cv-img-scroll img{display:block; max-width:100%; height:auto; margin:0 auto; border:1px solid var(--border-fine);}
.cv-fallback{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:32px; text-align:center; color:var(--ice-dim);}
.cv-dialog-body [hidden]{display:none !important;}
.cv-dialog-foot{
  flex:none; padding:10px 20px; border-top:1px solid var(--border-fine); background:var(--surface);
  font-size:0.78rem; color:var(--ice-dim);
}
.cv-dialog-foot a{color:var(--emerald);}
@media (max-width:640px){
  dialog.cv-dialog{width:100%; height:100%; margin:0; border:none;}
  .cv-dialog-head{padding:12px 14px;}
  .cv-action{padding:9px 10px; font-size:0.66rem;}
}

/* ---------- Sala 03: presupuesto, niveles, FAQ ---------- */
.budget-box{background:var(--surface); border:1px solid var(--border-fine); border-top:1px solid var(--border-fine); padding:40px;}
@media (max-width:700px){ .budget-box{padding:26px 20px;} }
.budget-figure{font-size:clamp(2.5rem, 5vw, 4.5rem); line-height:1; letter-spacing:-0.02em;}
.budget-figure-unit{font-family:var(--mono); font-size:0.8rem; letter-spacing:0.08em;}
.budget-figure-label{margin-top:12px;}
.budget-summary, .budget-ask{border-color:var(--border-fine);}
.funding-track{background:transparent; border:1px solid var(--border-fine); height:8px;}
.budget-list li{flex-wrap:wrap; row-gap:10px; border-bottom:1px solid var(--border-fine); padding:14px 0;}
.budget-list li .bar{flex:0 0 100%; height:2px; background:var(--border-fine); position:relative;}
.budget-list li .bar::after{content:""; position:absolute; left:0; top:0; bottom:0; width:var(--w, 0%); background:var(--lime);}
.budget-note{background:rgba(113,55,212,0.06); border:1px solid var(--border-fine); border-left:2px solid var(--purple);}

.why-item{border-top:1px solid var(--border-fine);}
.why-item .why-num{font-size:clamp(2rem,3.6vw,3rem); line-height:1; letter-spacing:-0.02em; color:var(--ice); margin-bottom:16px;}
.tier{background:var(--surface); border:1px solid var(--border-fine); padding:28px 22px;}
.tier .price{font-size:1.5rem; color:var(--ice); letter-spacing:-0.01em;}
.tier li::before{content:"—"; color:var(--lime);}
.tier-cta a.tier-btn{background:var(--emerald); color:var(--navy-deep); border:1px solid var(--emerald); font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:12px;}
.tier-cta a.tier-btn:hover{opacity:0.85;}
.tier.featured{border:1px solid var(--emerald); background:rgba(18,184,102,0.08); padding-top:46px;}
.tier.featured .ribbon{color:var(--navy-deep);}
.tier.featured li::before{color:var(--lime);}
.faq details{border-bottom:1px solid var(--border-fine);}
.faq-title{text-transform:uppercase; font-weight:600; margin-top:72px;}

dialog.profile-dialog{margin:auto; max-height:calc(100vh - 32px); overflow:auto; background:var(--surface); border:1px solid var(--border-fine); border-top:1px solid var(--border-fine);}
dialog.profile-dialog::backdrop{background:rgba(7,27,51,0.85);}
.profile-close, .profile-btn{border-color:var(--border-fine);}

/* ---------- Contacto y footer ---------- */
.contact-band{background:var(--surface); border-top:1px solid var(--border-fine);}
.contact-band h2{text-transform:uppercase; font-weight:600; line-height:1;}
/* Tarjetas de contacto: las tres idénticas en alto, ancho, borde y padding; solo WhatsApp lleva relleno verde. */
.contact-cards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px;}
@media (max-width:700px){ .contact-cards{grid-template-columns:1fr;} }
.contact-card{
  display:grid; grid-template-rows:auto auto 1fr; align-content:start; gap:10px; min-height:176px; padding:24px;
  border:1px solid var(--border-fine); background:transparent; color:var(--ice); text-decoration:none;
  transition:border-color .15s ease, background .15s ease, color .15s ease;
}
@media (max-width:700px){ .contact-card{min-height:0;} }
.contact-card:hover{border-color:var(--emerald); background:var(--surface-2);}
.contact-card .cc-icon{display:block; color:var(--emerald);}
.contact-card .cc-label{font-family:var(--mono); font-size:0.72rem; font-weight:700; letter-spacing:0.14em; color:var(--ice-dim);}
.contact-card .cc-value{font-family:var(--mono); font-size:1rem; font-weight:500; line-height:1.4; overflow-wrap:anywhere; align-self:end;}
.contact-card.is-wa{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.contact-card.is-wa .cc-icon, .contact-card.is-wa .cc-label{color:var(--navy-deep);}
.contact-card.is-wa .cc-value{font-weight:700;}
.contact-card.is-wa:hover{filter:brightness(0.92); background:var(--emerald);}
.contact-card:focus-visible{outline:2px solid var(--lime); outline-offset:3px;}
.contact-band p{margin-bottom:36px;}
footer{background:var(--navy-deep); border-top:1px solid var(--border-fine);}
footer .brand{font-size:1rem; margin-bottom:10px;}
footer .brand-mark{height:26px;}
.footer-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);}
@media (max-width:700px){ .footer-grid{grid-template-columns:1fr;} }
.footer-col a{overflow-wrap:anywhere;}
.footer-col .footer-heading{font-family:'Inter', system-ui, sans-serif; font-weight:600; letter-spacing:0.12em; font-size:0.68rem; color:var(--purple-text);}
.footer-bottom{border-top-color:var(--border-fine);}

@media (prefers-reduced-motion:reduce){
  .gate-go::after, .cv-view-btn, .paddock-pass{transition:none;}
}

/* Contraste AA: el morado de marca (#7137D4) da 2.4:1 sobre las tarjetas; en texto se usa la variante lavanda. */
.mission-item .eyebrow, .pass-top .pass-no, .tool h3 .tag, .budget-note b{color:var(--purple-text);}

/* ---------- Control de despiece del hero ---------- */
.model-stage .model-hint{top:10px; bottom:auto; right:10px;}
/* Controles propios del visor: reproducir, Armado/Despiece, deslizador con una marca por etapa, vistas y pantalla completa.
   js/viewer.js mide la altura de .car-ctl y encuadra el auto por encima (camera.setViewOffset), así nunca lo tapa. */
.car-ctl{
  position:absolute; left:12px; right:12px; bottom:12px; z-index:4; display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px;
  padding:8px 10px; background:rgba(7,27,51,0.94); border:1px solid var(--border-fine);
}
.car-btn, .car-seg-btn, .car-view{
  appearance:none; cursor:pointer; color:var(--ice); background:transparent; border:1px solid var(--border-fine);
  font-family:var(--mono); font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase; line-height:1;
}
.car-btn{flex:none; width:32px; height:32px; display:grid; place-items:center; padding:0;}
.car-btn svg{display:block;}
.car-btn:hover, .car-seg-btn:hover, .car-view:hover{border-color:var(--emerald); color:var(--emerald);}
.car-seg{flex:none; display:flex;}
.car-seg-btn{height:32px; padding:0 10px;}
.car-seg-btn + .car-seg-btn{border-left:none;}
.car-seg-btn[aria-pressed="true"], .car-view[aria-pressed="true"]{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.car-ctl-track{position:relative; flex:1 1 220px; min-width:200px; height:32px;}
.car-ctl-range{
  -webkit-appearance:none; appearance:none; position:absolute; inset:0; width:100%; height:100%; margin:0; background:transparent; cursor:pointer; --p:0%;
}
.car-ctl-range::-webkit-slider-runnable-track{height:2px; background:linear-gradient(90deg, var(--emerald) var(--p), var(--border-fine) var(--p));}
.car-ctl-range::-moz-range-track{height:2px; background:var(--border-fine);}
.car-ctl-range::-moz-range-progress{height:2px; background:var(--emerald);}
.car-ctl-range::-webkit-slider-thumb{-webkit-appearance:none; width:14px; height:14px; margin-top:-6px; border-radius:50%; background:var(--ice); border:2px solid var(--emerald);}
.car-ctl-range::-moz-range-thumb{width:10px; height:10px; border-radius:50%; background:var(--ice); border:2px solid var(--emerald);}
.car-ticks{position:absolute; inset:0; pointer-events:none;}
.car-tick{
  position:absolute; top:50%; width:24px; height:24px; margin:-12px 0 0 -12px; padding:0; display:grid; place-items:center; pointer-events:auto; cursor:pointer;   /* 24 px: objetivo táctil mínimo WCAG 2.2 */
  font-family:var(--mono); font-size:0.62rem; line-height:1; color:var(--ice-dim); background:var(--navy-deep); border:1px solid var(--border-fine);
}
.car-tick:hover{border-color:var(--emerald); color:var(--emerald);}
.car-tick.is-lit{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.car-views{flex:none; display:flex;}
.car-view{height:32px; padding:0 8px;}
.car-view + .car-view{border-left:none;}
.car-view .short{display:none;}
.car-view-cycle{display:none; min-width:48px; padding:0 8px;}
.car-btn:focus-visible, .car-seg-btn:focus-visible, .car-view:focus-visible, .car-tick:focus-visible, .car-ctl-range:focus-visible{outline:2px solid var(--lime); outline-offset:2px;}
@media (max-width:760px){
  .car-view .long{display:none;} .car-view .short{display:inline;}
}
@media (max-width:560px){
  .car-ctl{left:8px; right:8px; bottom:8px; padding:6px 8px; gap:6px 8px;}
  .car-ctl-track{order:5; flex:1 0 100%; height:28px;}
  .car-views{display:none;}
  .car-view-cycle{display:block; margin-left:auto;}
  .car-seg-btn{padding:0 8px;}
  .model-stage .model-hint{display:none;}
  .car-label .t{display:none;}
  .car-label{padding:3px; margin:-10px 0 0 8px;}
}
.model-stage.has-interacted .model-hint{opacity:0;}

/* Pantalla completa (API nativa, o clase .is-fs donde no existe, p. ej. iPhone) */
.model-stage:fullscreen, .hero-main .model-stage:fullscreen{width:100vw; height:100vh; max-width:none; aspect-ratio:auto; border:0; background-color:var(--surface);}
.model-stage:-webkit-full-screen{width:100vw; height:100vh; aspect-ratio:auto; border:0; background-color:var(--surface);}
.hero-main .model-stage.is-fs, .model-stage.is-fs{position:fixed; inset:0; z-index:200; width:100vw; height:100vh; height:100dvh; margin:0; aspect-ratio:auto; border:0; background-color:var(--surface);}
html.fs-lock, html.fs-lock body{overflow:hidden;}

/* Tarjetas de equipo: con puntero, la foto domina y el detalle técnico se despliega al pasar/enfocar */
@media (hover:hover) and (min-width:801px){
  .paddock-pass .pass-skills, .paddock-pass .pass-chips, .paddock-pass .mentor-quote{
    max-height:0; opacity:0; overflow:hidden; margin-top:0; padding-top:0; border-top-color:transparent;
    transition:max-height .45s ease, opacity .3s ease;
  }
  .paddock-pass:hover .pass-skills, .paddock-pass:focus-within .pass-skills,
  .paddock-pass:hover .pass-chips, .paddock-pass:focus-within .pass-chips,
  .paddock-pass:hover .mentor-quote, .paddock-pass:focus-within .mentor-quote{max-height:320px; opacity:1;}
  .paddock-pass:hover .pass-skills, .paddock-pass:focus-within .pass-skills{margin-top:16px; padding-top:14px; border-top-color:var(--border-fine);}
  .paddock-pass:hover .pass-chips, .paddock-pass:focus-within .pass-chips{padding-top:14px;}
}
.paddock-pass .mentor-quote{margin:14px 22px 0; font-size:0.85rem; background:rgba(7,27,51,0.7);}
@media (prefers-reduced-motion:reduce){ .paddock-pass .pass-skills, .paddock-pass .pass-chips, .paddock-pass .mentor-quote, .pass-img{transition:none;} }

/* ---------- Ritmo y jerarquía (rediseño) ---------- */
.gallery-hero h1{font-size:clamp(2.5rem, 5.2vw, 4.6rem); line-height:0.96;}
.section-head{max-width:none; margin-bottom:56px; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,0.65fr); column-gap:64px; row-gap:0; align-items:end;}
.section-head > .eyebrow-tag{grid-column:1 / -1; margin-bottom:18px;}
.section-head h2{font-size:clamp(2.4rem, 6vw, 4.8rem); line-height:0.98; text-transform:uppercase; font-weight:600; letter-spacing:0; margin:0;}
.section-head > p{font-size:1rem; margin:0; padding-bottom:6px;}
.section-head .cta-row{grid-column:2; margin-top:20px;}
.manifesto-grid .section-head{display:block;}
.manifesto-grid .section-head h2{font-size:clamp(2.2rem, 4.4vw, 3.6rem); margin-bottom:18px;}
.section-head.center{display:block;}
@media (max-width:900px){
  .section-head{display:block; margin-bottom:36px;}
  .section-head h2{font-size:clamp(2.1rem, 9vw, 3rem); margin-bottom:14px;}
  .section-head > p{padding:0;}
}

/* Equipo: foto de grupo junto a las cifras */
.team-feature{display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:56px; align-items:stretch; margin-bottom:72px;}
.team-feature .team-photo{margin:0;}
.team-feature .team-stats{grid-template-columns:1fr 1fr; gap:36px 24px; margin:0; padding:0; border-top:none; align-content:space-between; max-width:none;}
.team-feature .team-stat{border-top:1px solid var(--border-fine); padding-top:18px;}
.team-feature .team-stat dd{font-size:clamp(1.8rem, 3vw, 2.8rem);}
@media (max-width:900px){ .team-feature{grid-template-columns:1fr; gap:36px; margin-bottom:48px;} }

/* Herramientas: lista editorial en filas, no cuadrícula de cajas */
.tool-grid{display:block; background:none; border:none; border-top:1px solid var(--border-fine);}
.tool{display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:48px; align-items:baseline; background:none; padding:30px 0; border-bottom:1px solid var(--border-fine);}
.tool h3{font-size:clamp(1.4rem, 2.4vw, 2rem); font-weight:600; text-transform:uppercase; margin:0; flex-wrap:wrap;}
.tool p{font-size:1rem; max-width:56ch;}
@media (max-width:800px){ .tool{grid-template-columns:1fr; gap:10px; padding:24px 0;} }

/* Por qué invertir: filas con numerales grandes */
.why-grid{display:block; margin-bottom:96px; border-top:1px solid var(--border-fine);}
.why-item{display:grid; grid-template-columns:120px minmax(0,0.9fr) minmax(0,1.1fr); gap:32px; align-items:baseline; padding:28px 0; border-top:none; border-bottom:1px solid var(--border-fine);}
.why-item .why-num{font-size:clamp(2.6rem, 5vw, 4.2rem); line-height:1; color:var(--purple-text); margin:0;}
.why-item h3{font-size:clamp(1.3rem, 2.2vw, 1.8rem); text-transform:uppercase; margin:0; font-weight:600;}
.why-item p{font-size:1rem;}
@media (max-width:800px){ .why-item{grid-template-columns:64px 1fr; gap:6px 16px;} .why-item p{grid-column:2;} .why-item .why-num{grid-row:span 2;} }
.team-feature .team-stats{align-content:center; gap:44px 24px;}
@media (max-width:800px){
  .paddock-pass{min-height:640px;}
  .paddock-pass::before{background:linear-gradient(180deg, rgba(7,27,51,0) 8%, rgba(7,27,51,0.9) 42%, #071B33 66%);}
  /* Táctil: las herramientas se despliegan con un toque en la card (o en el botón) */
  .paddock-pass .pass-chips{display:none;}
  .paddock-pass.is-open .pass-chips{display:flex;}
  .pass-tools-toggle{
    display:flex; justify-content:space-between; align-items:center; width:calc(100% - 44px); margin:14px 22px 0; padding:10px 0 0;
    background:none; border:none; border-top:1px solid var(--border-fine); cursor:pointer; text-align:left;
    font-family:var(--mono); font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ice);
  }
  .pass-tools-toggle::after{content:"+"; font-size:1.1rem; color:var(--emerald); letter-spacing:0;}
  .paddock-pass.is-open .pass-tools-toggle::after{content:"–";}
  .paddock-pass.is-open .pass-chips{padding-top:10px;}
  .paddock-pass{cursor:pointer;}
  .team-feature .team-stats{gap:28px 20px;}
}

/* ---------- Mapa de patrocinios sobre el auto ---------- */
.sponsor-map{margin:56px 0 0; padding:28px 24px; background:var(--surface); border:1px solid var(--border-fine);}
.sponsor-map h3{text-transform:uppercase; font-weight:600; margin:0 0 6px;}
.sponsor-map figcaption p{margin:0 0 20px; color:var(--ice-dim);}
.sm-views{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
@media (max-width:760px){ .sm-views{grid-template-columns:1fr;} }
.sm-cap{display:block; margin-bottom:6px;}
.sm-img{position:relative; border:1px solid var(--border-fine); background-color:var(--navy-deep);
  background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px); background-size:24px 24px;}
.sm-img img{display:block; width:100%; height:auto;}
.sm-pin{display:inline-grid; place-items:center; width:24px; height:24px; flex:none; background:var(--lime); color:var(--navy-deep); font-family:var(--mono); font-size:0.75rem; font-weight:700;}
.sm-img .sm-pin{position:absolute; transform:translate(-50%,-150%); width:20px; height:20px; font-size:0.68rem; box-shadow:0 0 0 2px var(--navy-deep);}
.sm-legend{list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
@media (max-width:760px){ .sm-legend{grid-template-columns:1fr;} }
.sm-legend li{display:grid; grid-template-columns:auto 1fr; column-gap:10px; row-gap:2px; align-items:center; border:1px solid var(--border-fine); padding:12px;}
.sm-legend li b{grid-column:2; color:var(--emerald); font-weight:600;}
.sm-note{margin:16px 0 0; color:var(--ice-dim); font-size:0.9rem;}

/* Foto del equipo: grande, a sangrado completo, con el título encima (misma lógica que las tarjetas del equipo) */
.team-hero{position:relative; margin:0 calc(50% - 50vw) 0; width:100vw; max-width:100vw; overflow:hidden; background:var(--navy-deep);}
.team-hero img{display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; object-position:50% 100%;}
.team-hero::before{content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg, rgba(7,27,51,0.92) 0%, rgba(7,27,51,0.6) 32%, rgba(7,27,51,0) 58%), linear-gradient(0deg, #071B33 0%, rgba(7,27,51,0) 14%);}
.team-hero-text{position:absolute; z-index:2; top:0; left:0; right:0; max-width:1120px; margin:0 auto; padding:clamp(28px,5vw,64px) 24px 0;}
.team-hero-text h2{margin:14px 0 0; max-width:18ch; text-transform:uppercase; font-weight:600; line-height:1.02; font-size:clamp(1.8rem, 4.2vw, 3.4rem);}
.team-below{margin-top:40px;}
.team-below .team-group-text{margin-bottom:40px;}
.team-below .team-stats{max-width:none; margin:0 0 64px;}
/* Móvil: el texto va arriba de la foto (no encima) y el encuadre abarca a todo el equipo, que ocupa ~57 % del ancho de la imagen, en vertical y en horizontal */
@media (max-width:800px){
  .team-hero::before{display:none;}
  .team-hero-text{position:static; padding:28px 24px 20px;}
  .team-hero img{aspect-ratio:13/12; height:auto; object-position:36% 50%;}
  .team-below{margin-top:28px;}
}

/* Despiece: etiquetas por etapa ancladas a las piezas */
.car-labels{position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden;}
.car-label{
  position:absolute; left:0; top:0; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; opacity:0; will-change:transform, opacity;
  margin:-12px 0 0 12px; padding:4px 9px 4px 4px; background:rgba(7,27,51,0.82); border:1px solid var(--border-fine);
  font-family:var(--mono); font-size:0.64rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--ice);
}
.car-label b{display:inline-grid; place-items:center; width:18px; height:18px; background:var(--emerald); color:var(--navy-deep); font-size:0.66rem;}
@media (max-width:520px){ .car-label{font-size:0.56rem; gap:5px;} .car-label b{width:15px; height:15px;} }

html,body{overflow-x:clip;}

/* Resaltado de pieza: nombre de la pieza bajo el puntero (o del último toque) */
.car-tip{
  position:absolute; left:0; top:0; z-index:4; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; pointer-events:none;
  padding:4px 10px 4px 4px; background:rgba(7,27,51,0.92); border:1px solid var(--emerald);
  font-family:var(--mono); font-size:0.68rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--ice);
  opacity:0; transition:opacity .15s ease; will-change:transform, opacity;
}
.car-tip.is-on{opacity:1;}
.car-tip b{display:inline-grid; place-items:center; min-width:18px; height:18px; background:var(--emerald); color:var(--navy-deep); font-size:0.66rem;}
@media (max-width:520px){ .car-tip{font-size:0.6rem;} }
@media (prefers-reduced-motion:reduce){ .car-tip{transition:none;} }
.model-stage.no-3d .car-ctl, .model-stage.is-lost .car-ctl, .model-stage.no-3d .car-tip{display:none;}

/* Hueco para el video de Fusion (js/stage.js): póster por defecto en teléfono/ahorro de datos, video con wifi o al tocar, 3D al pedirlo */
.model-video{position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s ease; cursor:pointer;}
.model-video.is-on{opacity:1;}
.car-cta{position:absolute; left:12px; right:12px; bottom:12px; z-index:4; display:flex; flex-wrap:wrap; justify-content:center; gap:8px;}
.car-cta[hidden]{display:none;}
.car-cta-btn{
  appearance:none; cursor:pointer; height:44px; padding:0 18px; color:var(--ice); background:rgba(7,27,51,0.86); border:1px solid var(--border-fine);
  font-family:var(--mono); font-size:0.7rem; letter-spacing:0.07em; text-transform:uppercase;
}
.car-cta-btn:hover{border-color:var(--emerald); color:var(--emerald);}
.car-cta-btn.is-primary{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.car-cta-btn.is-primary:hover{background:var(--ice); border-color:var(--ice); color:var(--navy-deep);}
.car-cta-btn:focus-visible{outline:2px solid var(--lime); outline-offset:2px;}
.model-stage.is-idle .model-hint{display:none;}
@media (prefers-reduced-motion:reduce){ .model-video{transition:none;} }

/* ---------- Inicio: foto del equipo + SR-26 en 3D, y franja de datos ---------- */
.hero-home .hero-top{padding-bottom:48px;}
.hero-visuals{position:relative; z-index:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--border-fine); background:var(--surface);}
.hero-team{position:relative; margin:0; border-right:1px solid var(--border-fine); overflow:hidden;}
.hero-team img{display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; object-position:38% 50%;}
.hero-cap{
  position:absolute; left:12px; top:12px; z-index:2; pointer-events:none;
  font-family:var(--mono); font-size:0.64rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ice); background:rgba(7,27,51,0.82); padding:4px 8px; border:1px solid var(--border-fine);
}
.hero-visuals .model-stage{margin:0; aspect-ratio:4/3; min-height:0; border:none; background-color:var(--surface); background-size:32px 32px;}
.hero-visuals .model-stage .model-hint{top:10px; bottom:auto;}
.hero-more{position:relative; z-index:2; margin:14px 0 0; text-align:right;}
.hero-more a{
  font-family:var(--mono); font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--emerald); text-decoration:none;
  display:inline-flex; gap:10px; align-items:center; padding:8px 0;
}
.hero-more a::after{content:"→"; transition:transform .2s ease;}
.hero-more a:hover::after{transform:translateX(6px);}
.hero-facts{
  position:relative; z-index:2; margin:36px 0 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--border-fine); background:var(--surface);
}
.hero-fact{display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:8px; margin:0; padding:20px 22px; border-left:1px solid var(--border-fine);}
.hero-fact:first-child{border-left:none;}
.hero-fact dt{font-family:var(--mono); font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ice-dim);}
.hero-fact dd{margin:0; font-family:var(--mono); font-weight:700; font-size:clamp(1.6rem,3vw,2.4rem); line-height:1; letter-spacing:-0.02em; color:var(--ice);}
.hero-fact dd .unit{font-size:0.8rem; margin-left:6px;}
.hero-facts-note{position:relative; z-index:2; margin:10px 0 0; font-size:0.78rem; color:var(--ice-dim);}
@media (max-width:960px){
  .hero-visuals{grid-template-columns:1fr;}
  .hero-team{border-right:none; border-bottom:1px solid var(--border-fine);}
  .hero-more{text-align:left;}
  .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero-fact:nth-child(3){border-left:none;}
  .hero-fact:nth-child(n+3){border-top:1px solid var(--border-fine);}
}
@media (max-width:560px){
  .hero-team img{aspect-ratio:13/12;}
  .hero-visuals .model-stage{aspect-ratio:4/5;}
  .hero-fact{padding:16px;}
}
.hero-home .model-stage .car-ctl{left:8px; right:8px; bottom:8px; padding:6px 8px; gap:6px 8px;}

/* ---------- Botón fijo «Patrocinar» ---------- */
.contact-cta.is-ghost{background:transparent; color:var(--ice); border-color:var(--border-fine);}
.contact-cta.is-ghost:hover{border-color:var(--emerald); color:var(--emerald); filter:none;}
.sticky-cta{
  position:fixed; left:16px; bottom:16px; z-index:45; display:none; align-items:center; min-height:48px; padding:0 22px;
  background:var(--emerald); color:var(--navy-deep); border:1px solid var(--emerald); text-decoration:none;
  font-family:var(--mono); font-weight:700; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase;
  opacity:0; pointer-events:none; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease;
}
.sticky-cta.is-visible{opacity:1; pointer-events:auto; transform:none;}
.sticky-cta:hover{filter:brightness(1.1);}
@media (max-width:900px){
  .sticky-cta{display:inline-flex;}
  footer{padding-bottom:84px;}
}
html.fs-lock .sticky-cta{display:none;}
@media (prefers-reduced-motion:reduce){ .sticky-cta{transition:none;} }

/* ---------- Visor: mensajes de estado y accesibilidad ---------- */
.sr-only{position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;}
.model-msg{
  position:absolute; left:12px; top:44px; z-index:5; max-width:calc(100% - 24px); pointer-events:none;
  font-family:var(--mono); font-size:0.7rem; letter-spacing:0.05em; color:var(--ice); background:rgba(7,27,51,0.9); padding:6px 10px; border:1px solid var(--border-fine);
}
.model-stage.has-error .model-msg{border-color:var(--emerald);}
.model-stage canvas:focus-visible{outline:2px solid var(--lime); outline-offset:-4px;}

/* ---------- Visor: herramientas, numeración, plano técnico, piezas y etapas ---------- */
.car-tools{flex:none; display:flex; gap:6px; margin-left:auto;}
.car-btn[aria-pressed="true"]{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.car-notes, .car-dims{position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden;}
.car-note{
  position:absolute; left:0; top:0; width:18px; height:18px; display:grid; place-items:center; will-change:transform;
  font-family:var(--mono); font-size:0.62rem; font-weight:700; color:var(--navy-deep); background:var(--lime);
}
.car-dim{
  position:absolute; left:0; top:0; white-space:nowrap; padding:3px 7px; will-change:transform;
  font-family:var(--mono); font-size:0.66rem; letter-spacing:0.04em; color:var(--ice); background:var(--surface); border:1px solid var(--ice);
}
.car-plan-legend{
  position:absolute; left:12px; top:80px; z-index:5; max-width:min(300px, calc(100% - 24px)); padding:10px 12px; pointer-events:none;
  background:rgba(7,27,51,0.92); border:1px solid var(--border-fine); font-family:var(--mono); font-size:0.66rem; letter-spacing:0.04em; color:var(--ice);
}
.car-plan-legend b{display:block; margin-bottom:6px; text-transform:uppercase; color:var(--lime);}
.car-plan-legend dl{display:grid; grid-template-columns:1fr auto; gap:2px 14px; margin:0;}
.car-plan-legend dd{margin:0; text-align:right; color:var(--ice);}
.car-plan-legend dt{color:var(--ice-dim);}
.car-plan-legend p{margin:8px 0 0; font-family:'Inter', system-ui, sans-serif; font-size:0.68rem; letter-spacing:0; color:var(--ice-dim); line-height:1.4;}
.model-stage.is-plan .car-tip{display:none;}
@media (max-width:560px){
  .car-tools{gap:4px; order:6; margin-left:0;}
  .car-tools .car-btn{width:28px; height:28px;}
  .car-ctl-track{order:5; flex:1 1 192px; min-width:192px;}
  .car-plan-legend{top:40px; left:8px; padding:6px 8px; font-size:0.58rem;}
  .car-plan-legend p{display:none;}
  .car-plan-legend b{margin-bottom:3px;}
  .model-msg{top:36px;}
}

/* Pasos del despiece (leyenda) y panel de piezas, bajo el visor de /auto/ */
.car-info{margin-top:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; border:1px solid var(--border-fine); border-top:none; background:var(--surface);}
@media (max-width:760px){ .car-info{grid-template-columns:1fr;} }
.car-info > section{padding:20px 24px;}
.car-info > section + section{border-left:1px solid var(--border-fine);}
@media (max-width:760px){ .car-info > section + section{border-left:none; border-top:1px solid var(--border-fine);} }
.car-info h2{font-family:'Inter', system-ui, sans-serif; font-size:0.75rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--purple-text); margin:0 0 14px;}
.car-steps{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.car-steps li{display:flex; gap:12px; align-items:center; font-size:0.95rem; color:var(--ice-dim); padding:4px 0; border-left:3px solid transparent; padding-left:10px;}
.car-steps li b{display:inline-grid; place-items:center; width:24px; height:24px; flex:none; font-family:var(--mono); font-size:0.75rem; color:var(--ice); border:1px solid var(--border-fine);}
.car-steps li.is-active{color:var(--ice); border-left-color:var(--emerald);}
.car-steps li.is-active b, .car-steps li.is-done b{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
.car-parts ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:4px 12px;}
.car-part{
  display:flex; gap:10px; align-items:center; width:100%; min-height:32px; padding:4px 8px; text-align:left; cursor:default;
  background:transparent; color:var(--ice-dim); border:1px solid transparent; font-size:0.85rem;
}
.car-part b{display:inline-grid; place-items:center; min-width:24px; height:20px; flex:none; font-family:var(--mono); font-size:0.68rem; color:var(--navy-deep); background:var(--lime);}
.car-part:hover, .car-part:focus-visible{color:var(--ice); border-color:var(--emerald);}
.car-zone{background:var(--emerald); width:18px; height:18px;}

/* ---------- Zonas de patrocinio y configurador de marca (/auto/) ---------- */
.zones-panel{padding:72px 0 24px; background:var(--navy-deep);}
.zones-h{font-family:'Oswald', system-ui, sans-serif; text-transform:uppercase; font-weight:600; font-size:clamp(1.8rem,3.6vw,2.8rem); line-height:1; margin:10px 0 14px;}
.zones-p{max-width:68ch; color:var(--ice-dim); margin:0 0 24px;}
.zone-list{list-style:none; margin:0 0 20px; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
@media (max-width:760px){ .zone-list{grid-template-columns:1fr;} }
.zone-list li{display:grid; grid-template-columns:minmax(0,1fr); gap:4px; border:1px solid var(--border-fine); padding:12px; background:var(--surface);}
.zone-list li b{font-weight:600; color:var(--emerald); padding-left:34px;}
.zone-list li b a{color:var(--emerald);}
.zone-row{display:flex; gap:10px; align-items:center; min-height:32px; background:transparent; border:none; color:var(--ice); text-align:left; cursor:pointer; padding:0;}
.zone-row:hover span:last-child, .zone-row:focus-visible span:last-child{text-decoration:underline;}
.zones-panel .sm-note{max-width:80ch;}
.zones-panel .cta-row{margin-top:20px;}
.zones-panel .btn[aria-pressed="true"]{background:var(--ice); border-color:var(--ice); color:var(--navy-deep);}
.cfg{padding:72px 0 88px;}
.cfg-controls{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:16px; margin-bottom:12px;}
@media (max-width:900px){ .cfg-controls{grid-template-columns:1fr;} }
.cfg-field{display:flex; flex-direction:column; gap:8px; padding:0; border:none; font-size:0.9rem; color:var(--ice-dim);}
.cfg-field > span, .cfg-field legend{font-family:var(--mono); font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ice-dim); padding:0;}
.cfg-field select, .cfg-field input[type="file"]{
  min-height:44px; padding:8px 10px; color:var(--ice); background:var(--surface); border:1px solid var(--border-fine); font-size:0.92rem;
}
.cfg-field input[type="file"]::file-selector-button{margin-right:12px; padding:6px 12px; cursor:pointer; color:var(--navy-deep); background:var(--emerald); border:none; font-family:var(--mono); font-weight:700; font-size:0.74rem; text-transform:uppercase;}
.cfg-bg{flex-direction:row; flex-wrap:wrap; align-items:center; gap:6px 18px;}
.cfg-bg legend{width:100%; margin-bottom:8px;}
.cfg-bg label{display:inline-flex; gap:8px; align-items:center; min-height:44px; color:var(--ice); cursor:pointer;}
.cfg-status{min-height:1.4em; margin:6px 0 0; font-size:0.9rem; color:var(--ice);}
.cfg-status.is-bad{color:var(--lime); font-weight:600;}
.cfg-mocks{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0 24px;}
@media (max-width:760px){ .cfg-mocks{grid-template-columns:1fr;} }
.cfg-mocks figure{margin:0; border:1px solid var(--border-fine); background:var(--surface);}
.cfg-mocks canvas{display:block; width:100%; height:auto;}
.cfg-mocks figcaption{padding:8px 12px; border-top:1px solid var(--border-fine);}
.btn:disabled{opacity:0.45; cursor:not-allowed;}
.btn:disabled:hover{background:transparent; border-color:var(--border-fine); color:var(--ice);}
.btn.btn-solid:disabled:hover{background:var(--emerald); border-color:var(--emerald); color:var(--navy-deep);}
button.btn{cursor:pointer;}
.sm-legend li b a{color:inherit; text-decoration:underline; text-underline-offset:3px;}
.sm-link a{color:var(--emerald); font-weight:600;}

/* ---------- «Ver en tu mesa» (AR) ---------- */
.btn[hidden]{display:none !important;}
dialog.ar-dialog{width:min(640px, calc(100% - 32px)); margin:auto; padding:20px; color:var(--ice); background:var(--surface); border:1px solid var(--border-fine);}
dialog.ar-dialog::backdrop{background:rgba(7,27,51,0.85);}
.ar-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px;}
.ar-head h2{font-family:'Oswald', system-ui, sans-serif; font-weight:600; font-size:1.3rem; text-transform:uppercase;}
.ar-close{min-height:44px; padding:0 14px; cursor:pointer; color:var(--ice); background:transparent; border:1px solid var(--border-fine); font-family:var(--mono); font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em;}
.ar-close:hover{border-color:var(--emerald); color:var(--emerald);}
.ar-hint{margin:0 0 12px; color:var(--ice-dim); font-size:0.92rem;}
.ar-stage model-viewer{display:block; width:100%; height:min(52vh, 380px); background:var(--navy-deep); border:1px solid var(--border-fine); --poster-color:transparent;}
.ar-msg{min-height:1.4em; margin:10px 0 0; font-size:0.9rem; color:var(--ice);}
.ar-actions{margin-top:8px;}

/* ---------- Aerodinámica (CFD): solo aparece si data/cfd.json trae datos ---------- */
.cfd{padding:72px 0 88px; background:var(--navy-deep); border-top:1px solid var(--border-fine);}
.cfd-media{margin:0 0 28px; border:1px solid var(--border-fine); background:var(--surface);}
.cfd-media img, .cfd-media video{display:block; width:100%; height:auto;}
.cfd-media figcaption{padding:10px 14px; border-top:1px solid var(--border-fine); font-size:0.88rem; color:var(--ice-dim);}
.cfd-table{width:100%; border-collapse:collapse; font-size:0.95rem;}
.cfd-table th, .cfd-table td{padding:12px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--border-fine);}
.cfd-table thead th{font-family:var(--mono); font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ice-dim); font-weight:500;}
.cfd-table tbody th{font-family:var(--mono); color:var(--ice); white-space:nowrap;}
.cfd-table td{color:var(--ice-dim);}
@media (max-width:640px){ .cfd-table th, .cfd-table td{padding:10px 8px; font-size:0.88rem;} }

/* ---------- Muro de patrocinadores (solo aparece con data/sponsors.json encendido y con datos) ---------- */
.sponsor-wall{padding:72px 0; background:var(--navy-deep); border-top:1px solid var(--border-fine);}
.sw-group{margin-top:24px;}
.sw-group h3{margin:0 0 12px;}
.sw-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px;}
.sw-list li{display:grid; place-items:center; min-height:96px; padding:16px; background:var(--surface); border:1px solid var(--border-fine);}
.sw-list a{display:grid; place-items:center; width:100%; min-height:64px; color:var(--ice);}
.sw-list img{max-width:100%; max-height:64px; width:auto; height:auto; object-fit:contain;}
.sw-list a:hover, .sw-list a:focus-visible{outline-offset:6px;}
/* «Ver en tu mesa»: justo debajo del visor. Oculta hasta que ar.js confirma AR; en móvil/tablet reserva su alto desde el primer pintado (is-maybe) para no mover la página */
.car-ar{grid-column:1/-1; display:none; margin:0; padding:14px 16px; border-top:1px solid var(--border-fine); flex-direction:column; align-items:flex-start; gap:8px;}
.car-ar.is-on{display:flex;}
.car-ar.is-maybe:not(.is-on){display:flex; visibility:hidden;}
.car-ar .btn{min-height:44px;}
.car-ar-note{margin:0; font-size:0.85rem; color:var(--ice); opacity:0.8;}
@media (max-width:960px){ .hero-main .model-stage{order:1;} .car-ar{order:2;} .hud-panel{order:3;} }
.car-cta-note{flex:0 0 100%; text-align:center; font-family:var(--mono); font-size:0.7rem; letter-spacing:0.07em; text-transform:uppercase; color:var(--ice); text-shadow:0 1px 3px rgba(7,27,51,0.9);}

/* ---------- Inicio: hero con foto a todo el ancho y visor del SR-26 grande ----------
   La foto va a todo el ancho con su proporción (16:9), anclada abajo; el texto va en el muro vacío sobre las cabezas (el borde superior e inferior
   de la foto se difuminan hacia el navy con mask-image, solo transparencia). Cajas de caras en data/hero-safe.json: --face-top = 38 % del alto de la foto. */
.hero-photo{--hdr:65px; --fs:clamp(1.7rem,4.4vw,3.5rem); --face-top:0.378;
  --ph:max(56.25vw, calc((var(--hdr) + 40px + 171px + 2 * var(--fs) + 28px) / var(--face-top)));   /* alto de la foto: lo justo para que el texto quede sobre las cabezas y la foto llegue hasta el borde superior */
  position:relative; display:block; min-height:0; padding:0; overflow:hidden; background:var(--navy-deep); border-bottom:0;}
.hero-photo::before{display:none;}
.hero-bg{position:absolute; left:0; right:0; bottom:0; height:var(--ph); z-index:0;}
.hero-bg picture, .hero-bg img{display:block; width:100%; height:100%;}
.hero-bg img{object-fit:cover; object-position:40% 50%;   /* cover por alto en pantallas angostas: recorta a los lados sin cortar las caras (qa:hero) */
  -webkit-mask-image:linear-gradient(to bottom, #000 0, #000 62%, transparent 100%); mask-image:linear-gradient(to bottom, #000 0, #000 62%, transparent 100%);}   /* difuminado largo (38 %) hacia el navy, solo transparencia */
.hero-bg::after{content:""; position:absolute; inset:0; background:rgba(7,27,51,0.45); pointer-events:none;}   /* oscurece la foto con navy plano (sin filter: es lento en WebGL por software) */
.hero-copy{position:relative; z-index:2; width:100%; padding-top:calc(var(--hdr) + 40px); padding-bottom:calc(var(--ph) * (1 - var(--face-top)) + 16px);}
.hero-copy > *{max-width:980px;}
.hero-copy h1{font-family:'Oswald', system-ui, sans-serif; font-weight:600; text-transform:uppercase; font-size:var(--fs); line-height:1.02; color:var(--ice); margin:0 0 14px;}
.hero-copy h1 em{font-style:normal; color:var(--purple-text);}
.hero-copy .hero-lead{color:var(--ice); max-width:64ch; margin-bottom:20px;}
.hero-copy .room-tag{margin-bottom:14px; color:var(--ice);}
.hero-scroll{
  position:absolute; right:24px; bottom:24px; z-index:2; display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:0 4px; text-decoration:none;
  font-family:var(--mono); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ice);
}
.hero-scroll::after{content:""; width:9px; height:9px; border-right:2px solid var(--emerald); border-bottom:2px solid var(--emerald); transform:rotate(45deg) translateY(-2px);}
/* Escritorio (>900 px): el menú es transparente sobre la foto (velo navy plano al 55 %) y pasa a navy sólido al hacer scroll (>40 px, clase is-solid) o con el menú abierto */
@media (min-width:901px){
  body:has(.hero-photo) .cockpit{position:fixed; left:0; right:0; top:0; border-bottom-color:transparent; transition:border-color .2s ease;}
  body:has(.hero-photo) .cockpit::before{background:rgba(7,27,51,0.55); transition:background-color .2s ease;}
  body:has(.hero-photo) .cockpit.is-solid, body:has(.hero-photo) .cockpit:has(.nav-panel.open){border-bottom-color:var(--border-fine);}
  body:has(.hero-photo) .cockpit.is-solid::before, body:has(.hero-photo) .cockpit:has(.nav-panel.open)::before{background:var(--navy-deep);}
  body:has(.hero-photo) .cockpit:not(.is-solid) .contact-cta.is-ghost{border-color:var(--ice-dim);}
}
@media (prefers-reduced-motion:reduce){ body:has(.hero-photo) .cockpit, body:has(.hero-photo) .cockpit::before{transition:none;} }
@media (max-width:900px){   /* tableta y teléfono: la foto arriba (recorte con las 6 caras a la vista) y el texto debajo, sin encimarse; menú sólido */
  .hero-photo{--fs:clamp(1.4rem,5.2vw,2.2rem);}
  .hero-bg{top:0; bottom:auto; height:420px;}
  .hero-bg::after{display:none;}
  .hero-bg img{object-position:48% 50%;}
  .hero-copy{padding-top:400px; padding-bottom:72px;}
  .hero-scroll{left:16px; right:auto; bottom:12px;}
}
@media (max-width:640px){ .hero-photo{--fs:1.4rem;} }
/* Escritorio (>900 px): encuadre lejano. El hero mide min(100svh, 56.25vw): la foto 16:9 no se amplía más que lo justo para el ancho (equipo completo, aire sobre las cabezas);
   título arriba sobre el muro vacío, subtexto y botones abajo sobre la zona difuminada (piernas). Ninguno toca las caras (qa:hero). */
@media (min-width:901px){
  .hero-photo{--fs:clamp(1.5rem,3.3vw,3.2rem); height:min(100svh, 56.25vw);}
  .hero-bg{top:0; bottom:auto; height:100%;}
  .hero-bg img{object-position:50% 30%;}
  .hero-copy{height:100%; padding-top:calc(var(--hdr) + clamp(8px,1.6vw,28px)); padding-bottom:clamp(20px,3vw,56px); display:flex; flex-direction:column; justify-content:space-between;}
  .hero-copy .room-tag{margin-bottom:8px;}
  .hero-copy h1{margin:0; max-width:min(980px,100%);}
  .hero-copy .hero-lead{font-size:clamp(0.9rem,1.1vw,1.02rem); max-width:min(100ch,100%); margin-bottom:14px;}
}

.viewer-band{padding:0; background:var(--navy-deep);}
.viewer-full .model-stage{margin:0; width:100%; aspect-ratio:auto; min-height:80vh; min-height:80svh; border:none; background:transparent;}
/* la cuadrícula del plano vive en ::before y entra y sale con mask-image: el visor continúa el mismo navy del hero y de la sección siguiente, sin bordes ni cambio de fondo */
.viewer-full .model-stage::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px); background-size:40px 40px;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 22%, #000 78%, transparent 100%); mask-image:linear-gradient(to bottom, transparent 0, #000 22%, #000 78%, transparent 100%);}
.viewer-full .model-poster{object-fit:contain;}
.viewer-full .model-stage .model-hint{top:10px; bottom:auto;}
@media (max-width:640px){ .viewer-full .model-stage{min-height:0; aspect-ratio:4/5;} }
.viewer-band .hero-more{margin:16px 0 0; text-align:right;}
.viewer-band .hero-facts{margin:20px 0 0;}
.viewer-band .hero-facts-note{margin-bottom:56px;}
@media (prefers-reduced-motion:reduce){ .hero-scroll::after{transform:rotate(45deg);} }
.car-plan-line{margin:0; padding:12px 16px; font-family:var(--mono); font-size:0.72rem; line-height:1.5; letter-spacing:0.03em; color:var(--ice); background:var(--surface); border:1px solid var(--border-fine); border-top:none;}
.hero-frame > .car-plan-line, .viewer-full + .car-plan-line{margin-top:0;}
.car-zones-tag{position:absolute; left:12px; top:44px; z-index:5; max-width:calc(100% - 24px); padding:5px 9px; pointer-events:none; font-family:var(--mono); font-size:0.66rem; letter-spacing:0.04em; color:var(--ice); background:rgba(7,27,51,0.9); border:1px dashed var(--lime);}
.cfg-ideas{margin:0 0 8px; font-family:var(--mono); font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--lime);}
.cfg-controls{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));}
@media (max-width:900px){ .cfg-controls{grid-template-columns:1fr;} }

/* ---------- «Patrocinar» siempre visible en el menú fijo ---------- */
.contact-cta.is-sponsor-m{display:none;}
@media (max-width:900px){
  .cockpit-bar{grid-template-columns:1fr auto auto; gap:12px;}
  .contact-cta.is-sponsor-m{display:inline-flex; align-items:center; min-height:44px; padding:0 14px;}
  .nav-panel .is-sponsor{display:none;}
  .nav-toggle{min-width:44px; min-height:44px;}
}
.contact-cta{min-height:44px; display:inline-flex; align-items:center;}
.sticky-cta{display:none !important;}

/* ---------- Botones solo-icono del visor: objetivo táctil de 44 px ---------- */
.car-btn{width:44px; height:44px;}
.car-tools{gap:6px;}
@media (max-width:560px){ .car-tools .car-btn{width:44px; height:44px;} .car-tools{gap:4px;} }

/* ---------- Escala de espaciado única entre secciones ---------- */
:root{--sp-section:clamp(56px, 7vw, 96px);}
section{padding:var(--sp-section) 0;}
.zones-panel, .cfg, .cfd, .sponsor-wall{padding:var(--sp-section) 0;}
.log-list-wrap, .log-entry{padding:calc(var(--sp-section) * .75) 0 var(--sp-section);}
.viewer-band, .gates{padding:0;}
.section-head{margin-bottom:clamp(32px,4vw,56px);}
