/* =========================================================
   Cuarta Torre — sistema de estilos
   Tokens tomados del Manual de Marca v1.1
   ========================================================= */

:root{
  --acero:#22303A;
  --acero-90:#2B3A45;
  --acero-70:#4A5963;
  --naranja:#E24E10;
  --naranja-oscuro:#C13F08;
  --bruma:#8A99A3;
  --meseta:#D8D2C6;
  --blanco:#F7F6F3;
  --linea:#D9DCDE;
  --linea-oscura:rgba(247,246,243,.16);

  --display:'Archivo',Arial,sans-serif;
  --texto:'IBM Plex Sans',Arial,Helvetica,sans-serif;
  --mono:'IBM Plex Mono',Consolas,monospace;

  --nav-h:72px;
  --max:1180px;
  --e:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{
  margin:0;background:var(--blanco);color:var(--acero);
  font-family:var(--texto);font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;cursor:pointer}

.contenedor{max-width:var(--max);margin:0 auto;padding:0 28px}
.oculto{display:none !important}
.solo-lectores{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Tipografía ---------- */
h1,h2,h3{font-family:var(--display);font-weight:800;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(44px,7.4vw,86px);line-height:.94}
h2{font-size:clamp(30px,4.4vw,50px);line-height:1.02}
h3{font-size:20px;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 16px;max-width:68ch}
.plomo{font-size:clamp(17px,2vw,21px);line-height:1.5;color:var(--acero-70);max-width:56ch}
.etiqueta{font-family:var(--mono);font-size:12px;color:var(--naranja);display:block;margin-bottom:14px}
.chico{font-size:14px;color:var(--acero-70)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:15px 28px;font-weight:600;font-size:15px;text-decoration:none;
  border:1.5px solid transparent;transition:background .18s var(--e),color .18s var(--e),border-color .18s var(--e);
}
.btn-primario{background:var(--naranja);color:#fff}
.btn-primario:hover{background:var(--naranja-oscuro)}
.btn-secundario{background:transparent;color:var(--blanco);border-color:var(--linea-oscura)}
.btn-secundario:hover{background:rgba(247,246,243,.09);border-color:var(--bruma)}
.btn-oscuro{background:var(--acero);color:var(--blanco)}
.btn-oscuro:hover{background:var(--acero-90)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--naranja);outline-offset:3px}

/* ---------- Navegación ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:80;height:var(--nav-h);
  display:flex;align-items:center;
  background:transparent;transition:background .25s var(--e),border-color .25s var(--e);
  border-bottom:1px solid transparent;
}
.nav.solida{background:var(--acero);border-bottom-color:var(--linea-oscura)}
.nav.clara{background:var(--acero)}
.nav .contenedor{display:flex;align-items:center;gap:24px;width:100%;min-width:0}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.marca svg{width:26px;height:26px;flex:0 0 auto}
.marca span{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.02em;color:var(--blanco);white-space:nowrap}
.nav-links{display:flex;gap:26px;margin-left:auto;align-items:center;min-width:0}
.nav-links a{
  color:var(--blanco);text-decoration:none;font-size:14.5px;font-weight:500;
  opacity:.82;transition:opacity .16s var(--e);position:relative;padding:4px 0;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{opacity:1}
.nav-links a[aria-current="page"]:after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--naranja)}
.nav-acciones{display:flex;align-items:center;gap:16px;flex:0 0 auto}
.nav-acciones .btn{white-space:nowrap;padding:11px 20px;font-size:14px}
.idioma-btn{white-space:nowrap}

/* selector de idioma */
.idioma{position:relative}
.idioma-btn{
  background:transparent;border:1px solid var(--linea-oscura);color:var(--blanco);
  padding:7px 12px;font-size:12px;font-family:var(--mono);display:flex;align-items:center;gap:7px}
.idioma-btn:hover{border-color:var(--bruma)}
.idioma-menu{
  position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--linea);
  min-width:132px;padding:5px;box-shadow:0 12px 28px rgba(34,48,58,.18)}
.idioma-menu button{
  display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;font-size:14px;color:var(--acero)}
.idioma-menu button:hover{background:var(--blanco)}
.idioma-menu button[aria-selected="true"]{color:var(--naranja);font-weight:600}

.hamburguesa{display:none;background:none;border:0;padding:8px;width:42px;height:42px}
.hamburguesa span{display:block;height:2px;background:var(--blanco);margin:5px 0;transition:transform .2s var(--e),opacity .2s var(--e)}
.nav.abierta .hamburguesa span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.abierta .hamburguesa span:nth-child(2){opacity:0}
.nav.abierta .hamburguesa span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:940px){
  .hamburguesa{display:block;margin-left:auto}
  .nav-links{
    position:fixed;top:var(--nav-h);left:0;right:0;background:var(--acero);
    flex-direction:column;align-items:flex-start;gap:0;padding:10px 28px 28px;
    border-bottom:1px solid var(--linea-oscura);
    transform:translateY(-12px);opacity:0;pointer-events:none;transition:.2s var(--e);margin-left:0}
  .nav.abierta .nav-links{transform:none;opacity:1;pointer-events:auto}
  .nav-links a{padding:14px 0;width:100%;border-bottom:1px solid var(--linea-oscura);font-size:17px}
  .nav-acciones{flex-direction:row;width:100%;padding-top:18px;gap:12px}
  .nav-acciones .btn{flex:1}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;background:var(--acero);color:var(--blanco);
  padding:calc(var(--nav-h) + 84px) 0 0;overflow:hidden;
}
.hero .contenedor{position:relative;z-index:2}
.hero h1{margin-bottom:22px}
.hero-bajada{
  font-family:var(--mono);font-size:13px;color:var(--naranja);
  margin-bottom:26px;display:block}
.hero p{color:var(--bruma);max-width:52ch;font-size:clamp(16px,1.8vw,19px)}
.hero-acciones{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}

.hero-datos{
  position:relative;z-index:2;margin-top:78px;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--linea-oscura)}
.hero-datos div{padding:26px 26px 34px;border-right:1px solid var(--linea-oscura)}
.hero-datos div:last-child{border-right:0}
.hero-datos b{display:block;font-family:var(--display);font-weight:800;font-size:30px;line-height:1;margin-bottom:8px}
.hero-datos span{font-size:13.5px;color:var(--bruma);line-height:1.4;display:block}
@media(max-width:820px){
  .hero-datos{grid-template-columns:1fr 1fr}
  .hero-datos div:nth-child(2){border-right:0}
  .hero-datos div:nth-child(-n+2){border-bottom:1px solid var(--linea-oscura)}
}

/* escalonado de marca */
.escalonado{display:block;width:100%;height:64px}

/* ---------- Franja de módulos (dibujo propio, sin fotografía) ---------- */
.franja{overflow:hidden;background:var(--acero);padding:0 0 72px}
.franja-pista{display:flex;gap:26px;width:max-content;animation:desliz 52s linear infinite}
.franja:hover .franja-pista{animation-play-state:paused}
.franja svg{flex:0 0 auto;width:330px;height:auto;opacity:.55}
@keyframes desliz{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:640px){.franja svg{width:240px}}

/* ---------- Secciones ---------- */
.seccion{padding:104px 0}
.seccion-clara{background:var(--blanco)}
.seccion-meseta{background:var(--meseta)}
.seccion-oscura{background:var(--acero);color:var(--blanco)}
.seccion-oscura .plomo,.seccion-oscura .chico{color:var(--bruma)}
.encabezado{max-width:62ch;margin-bottom:56px}
.encabezado h2{margin-bottom:16px}

/* ---------- Tarjetas de razones ---------- */
.razones{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:880px){.razones{grid-template-columns:1fr}}
.razon{background:#fff;border:1px solid var(--linea);padding:34px 30px 38px;position:relative}
.razon .icono{width:44px;height:44px;margin-bottom:22px}
.razon h3{margin-bottom:10px}
.razon p{margin:0;font-size:15px;color:var(--acero-70)}
.razon:after{content:"";position:absolute;left:0;bottom:0;width:0;height:3px;background:var(--naranja);transition:width .3s var(--e)}
.razon:hover:after{width:72px}

/* ---------- Ticker de capacidades ---------- */
.ticker{background:var(--acero);color:var(--blanco);overflow:hidden;padding:20px 0}
.ticker-pista{display:flex;gap:0;width:max-content;animation:desliz 34s linear infinite}
.ticker span{
  font-family:var(--mono);font-size:13px;white-space:nowrap;padding:0 30px;
  display:flex;align-items:center;gap:30px}
.ticker span:after{content:"";width:7px;height:7px;background:var(--naranja);flex:0 0 auto}

/* ---------- Diferencia ---------- */
.diferencias{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:880px){.diferencias{grid-template-columns:1fr}}
.diferencia{background:#fff;border:1px solid var(--linea);overflow:hidden;display:flex;flex-direction:column}
.diferencia .foto{height:232px;overflow:hidden;background:var(--meseta)}
.diferencia .foto img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--e)}
.diferencia:hover .foto img{transform:scale(1.04)}
.diferencia .cuerpo{padding:26px 28px 30px}
.diferencia h3{margin-bottom:8px}
.diferencia p{margin:0;font-size:15px;color:var(--acero-70)}

/* ---------- Flota (galerías) ---------- */
.pestanas{display:flex;gap:8px;margin-bottom:34px;flex-wrap:wrap}
.pestana{
  background:transparent;border:1.5px solid var(--linea);padding:11px 22px;
  font-size:14px;font-weight:500;color:var(--acero-70);transition:.16s var(--e)}
.pestana:hover{border-color:var(--acero)}
.pestana[aria-selected="true"]{background:var(--acero);border-color:var(--acero);color:var(--blanco)}
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:880px){.galeria{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.galeria{grid-template-columns:1fr}}
.galeria button{
  padding:0;border:1px solid var(--linea);background:var(--meseta);
  aspect-ratio:4/3;overflow:hidden;display:block;width:100%}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--e)}
.galeria button:hover img{transform:scale(1.05)}

/* lightbox */
.visor{
  position:fixed;inset:0;z-index:120;background:rgba(34,48,58,.96);
  display:flex;align-items:center;justify-content:center;padding:56px 20px}
.visor img{max-width:min(1100px,92vw);max-height:82vh;object-fit:contain}
.visor-cerrar,.visor-ant,.visor-sig{
  position:absolute;background:transparent;border:1px solid var(--linea-oscura);
  color:var(--blanco);width:48px;height:48px;font-size:22px;line-height:1}
.visor-cerrar{top:22px;right:22px}
.visor-ant{left:22px;top:50%;transform:translateY(-50%)}
.visor-sig{right:22px;top:50%;transform:translateY(-50%)}
.visor-cerrar:hover,.visor-ant:hover,.visor-sig:hover{background:rgba(247,246,243,.1)}
.visor-cuenta{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:12px;color:var(--bruma)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--linea);max-width:880px}
.faq-item{border-bottom:1px solid var(--linea)}
.faq-boton{
  width:100%;background:none;border:0;padding:24px 44px 24px 0;text-align:left;
  font-family:var(--display);font-weight:600;font-size:17.5px;color:var(--acero);
  position:relative;display:block}
.faq-boton:hover{color:var(--naranja)}
.faq-boton:before,.faq-boton:after{
  content:"";position:absolute;right:6px;top:50%;background:var(--naranja);transition:transform .22s var(--e)}
.faq-boton:before{width:15px;height:2px;margin-top:-1px}
.faq-boton:after{width:2px;height:15px;margin-top:-7.5px;margin-right:6.5px}
.faq-item.abierto .faq-boton:after{transform:rotate(90deg)}
.faq-panel{overflow:hidden;max-height:0;transition:max-height .3s var(--e)}
.faq-panel .interior{padding:0 44px 26px 0;color:var(--acero-70);font-size:15.5px}
.faq-panel p{margin:0 0 10px}

/* ---------- Banda CTA ---------- */
.banda{background:var(--acero);color:var(--blanco);padding:92px 0}
.banda-grid{display:flex;align-items:flex-end;justify-content:space-between;gap:44px;flex-wrap:wrap}
.banda h2{max-width:18ch}

/* ---------- Formulario ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px;max-width:720px}
.campo{display:flex;flex-direction:column;gap:7px}
.campo.ancho{grid-column:1/-1}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}}
label{font-size:13px;font-weight:600}
label .req{color:var(--naranja)}
input,select,textarea{
  font-family:var(--texto);font-size:15px;padding:13px 14px;
  border:1.5px solid var(--linea);background:#fff;color:var(--acero);width:100%;border-radius:0}
input:hover,select:hover,textarea:hover{border-color:var(--bruma)}
textarea{min-height:132px;resize:vertical}
.error{color:var(--naranja);font-size:12.5px;min-height:16px}
.campo.invalido input,.campo.invalido select,.campo.invalido textarea{border-color:var(--naranja)}
.aviso{
  margin-top:22px;padding:16px 18px;background:var(--meseta);
  border-left:3px solid var(--acero);font-size:14.5px;max-width:720px}
.aviso.ok{border-left-color:var(--naranja)}

.datos-contacto{display:grid;gap:26px}
.datos-contacto a{color:var(--acero);text-decoration:none;border-bottom:1px solid var(--naranja)}
.datos-contacto a:hover{color:var(--naranja)}
.dato b{display:block;font-family:var(--mono);font-size:11.5px;color:var(--acero-70);margin-bottom:5px;font-weight:400}


/* ---------- Pie ---------- */
.pie{background:var(--acero);color:var(--blanco);padding:72px 0 34px;border-top:1px solid var(--linea-oscura)}
.pie-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:56px}
@media(max-width:880px){.pie-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pie-grid{grid-template-columns:1fr}}
.pie h4{font-family:var(--mono);font-size:11.5px;color:var(--bruma);font-weight:400;margin:0 0 16px}
.pie ul{list-style:none;margin:0;padding:0}
.pie li{margin-bottom:10px}
.pie a{color:var(--blanco);text-decoration:none;font-size:14.5px;opacity:.84}
.pie a:hover{opacity:1;color:var(--naranja)}
.pie-marca svg{width:46px;height:46px;margin-bottom:18px}
.pie-marca p{color:var(--bruma);font-size:14.5px;max-width:34ch;margin:0}
.pie-base{
  border-top:1px solid var(--linea-oscura);padding-top:26px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:12.5px;color:var(--bruma);font-family:var(--mono)}
.redes{display:flex;gap:12px}
.redes a{
  width:38px;height:38px;border:1px solid var(--linea-oscura);
  display:flex;align-items:center;justify-content:center}
.redes a:hover{border-color:var(--naranja)}
.redes svg{width:17px;height:17px;fill:currentColor}

/* ---------- Revelado al hacer scroll ---------- */
.revelar{opacity:0;transform:translateY(18px);transition:opacity .6s var(--e),transform .6s var(--e)}
.revelar.visible{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .revelar{opacity:1;transform:none}
}

/* ---------- Páginas internas ---------- */
.cabecera-interna{
  background:var(--acero);color:var(--blanco);
  padding:calc(var(--nav-h) + 76px) 0 76px}
.cabecera-interna h1{font-size:clamp(38px,5.4vw,62px);margin-bottom:16px}
.cabecera-interna p{color:var(--bruma);max-width:54ch}
.legal{max-width:72ch}
.legal h3{margin:36px 0 10px;font-size:18px}
.legal p,.legal li{color:var(--acero-70);font-size:15.5px}

/* ---------- Grilla de la página de contacto ---------- */
.grid-contacto{display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:start}
@media(max-width:900px){.grid-contacto{grid-template-columns:1fr;gap:48px}}


/* ---------- Láminas de sección (dibujo lineal, sin fotografía) ---------- */
.lamina{height:224px;background:var(--meseta);display:flex;align-items:center;justify-content:center;padding:26px}
.lamina svg{width:100%;max-width:250px;height:auto}

/* ---------- Huecos reservados para fotografía propia ---------- */
.hueco{
  margin:0;border:1px dashed var(--linea);background:#fff;aspect-ratio:4/3;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:13px;padding:22px;text-align:center}
.hueco svg{width:32px;height:32px;opacity:.3}
.hueco span{font-family:var(--mono);font-size:11.5px;color:var(--acero-70);line-height:1.55;max-width:26ch}
.hueco b{font-family:var(--display);font-weight:600;font-size:13px;color:var(--acero)}
.galeria .hueco{aspect-ratio:4/3}

/* ---------- Trampa anti-bot ---------- */
.campo-alt{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
