:root{
  --fondo:#1E1420;
  --superficie:#2C1E30;
  --tinta:#F0E8F0;
  --acento:#F2A57A;
  --apagado:#998A99;
  --tinta-inversa:#24141F;
  --linea:rgba(153,138,153,.28);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--fondo);
  color:var(--tinta);
  font-family:"PT Serif",Georgia,serif;
  font-size:1.0625rem;
  line-height:1.72;
  font-weight:400;
}

img,svg,iframe{max-width:100%;height:auto;display:block;}
img{border:0;}
a{color:var(--acento);text-decoration-thickness:1px;text-underline-offset:3px;}
a:hover{color:#F7BE9B;}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible{
  outline:2px solid var(--acento);
  outline-offset:2px;
}

h1,h2,h3,h4{
  font-family:Poppins,system-ui,sans-serif;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.15;
  margin:0 0 .6em;
  text-transform:none;
}
h1,.titular-xl{
  font-size:clamp(2.3rem,1.3rem + 3.4vw,4rem);
  font-weight:600;
  letter-spacing:-0.02em;
}
h2{
  font-size:clamp(1.6rem,1.1rem + 1.6vw,2.4rem);
}
h3{
  font-size:1.18rem;
  font-weight:600;
  text-transform:none;
  letter-spacing:0;
}
p{margin:0 0 1.05em;}
p:last-child{margin-bottom:0;}
ul,ol{margin:0 0 1.1em;padding-left:1.2em;}
li{margin:.28em 0;}

.lienzo{
  width:min(1180px,100%);
  margin:0 auto;
  padding-left:clamp(18px,4vw,48px);
  padding-right:clamp(18px,4vw,48px);
}

.malla{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(18px,2.4vw,34px);
}
.tramo-ancho{grid-column:span 8;}
.tramo-lateral{grid-column:span 4;}
@media (max-width:900px){
  .tramo-ancho,.tramo-lateral{grid-column:1/-1;}
}

.cinta-contacto{
  background:var(--superficie);
  font-family:Poppins,system-ui,sans-serif;
  font-size:.84rem;
  font-weight:500;
  color:var(--apagado);
}
.cinta-contacto .lienzo{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding-top:.55rem;
  padding-bottom:.55rem;
}
.cinta-contacto a{color:var(--tinta);text-decoration:none;}
.cinta-contacto a:hover{color:var(--acento);}
.cinta-contacto .cinta-contacto__datos{display:flex;gap:1.25rem;flex-wrap:wrap;}
@media (max-width:720px){
  .cinta-contacto{display:none;}
}

.cabecera{
  position:sticky;
  top:0;
  z-index:40;
  background:var(--fondo);
  border-bottom:1px solid var(--linea);
}
.cabecera .lienzo{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:.85rem;
  padding-bottom:.85rem;
  position:relative;
}
.marca{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--tinta);
  text-decoration:none;
  font-family:Poppins,system-ui,sans-serif;
  font-weight:600;
  font-size:1.18rem;
  letter-spacing:-0.02em;
}
.marca img{width:26px;height:26px;flex:none;}
.marca:hover{color:var(--tinta);}

.menu-horizontal{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:.15rem 1.15rem;
  font-family:Poppins,system-ui,sans-serif;
  font-size:.92rem;
  font-weight:500;
}
.menu-horizontal a{
  color:var(--tinta);
  text-decoration:none;
  padding:.2rem 0;
  border-bottom:2px solid transparent;
}
.menu-horizontal a:hover{color:var(--acento);}
.menu-horizontal a.activo{border-bottom-color:var(--acento);}

.boton-menu{
  display:none;
  background:transparent;
  color:var(--acento);
  border:1px solid var(--acento);
  font-family:Poppins,system-ui,sans-serif;
  font-size:.82rem;
  font-weight:600;
  padding:.4rem .7rem;
  cursor:pointer;
}
.boton-menu:hover{
  background:var(--acento);
  color:var(--tinta-inversa);
}

@media (max-width:900px){
  .boton-menu{display:inline-flex;align-items:center;}
  .menu-horizontal{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--superficie);
    border-bottom:1px solid var(--linea);
    flex-direction:column;
    padding:.6rem clamp(18px,4vw,48px) 1rem;
    gap:.2rem;
    z-index:50;
  }
  .menu-horizontal.abierto{display:flex;}
  .menu-horizontal a{padding:.45rem 0;}
}

.portada{
  padding:clamp(42px,6vw,88px) 0 clamp(36px,5vw,72px);
}
.portada__texto .titular-xl{margin-bottom:.45em;}
.portada__texto .portada__bajada{
  font-size:1.12rem;
  color:var(--tinta);
  max-width:38em;
  margin-bottom:1.3em;
}
.portada__acciones{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem 1rem;
  margin:1.2em 0 1.5em;
}
.portada__datos{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
}
@media (max-width:700px){
  .portada__datos{grid-template-columns:1fr;}
}
.portada__figura figure{margin:0;}
.portada__figura img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border:1px solid var(--linea);
}
.portada--compacta{padding-bottom:clamp(20px,3vw,40px);}
.portada--compacta .portada__figura img{aspect-ratio:5/4;}

.rotulo-seccion{
  font-family:Poppins,system-ui,sans-serif;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--apagado);
  margin:0 0 .85em;
}
.titular-doble{
  display:block;
}

.franja{
  border-top:1px solid var(--linea);
  padding:clamp(56px,7vw,104px) 0;
}
.franja--superficie{background:var(--superficie);}
.franja--cierre{border-top:1px solid var(--linea);}

.columna-doble{
  columns:2;
  column-gap:38px;
}
.columna-doble p{break-inside:avoid;}
@media (max-width:860px){
  .columna-doble{columns:1;}
}

.capitular::first-letter{
  font-family:Poppins,system-ui,sans-serif;
  font-size:3.4em;
  font-weight:600;
  color:var(--acento);
  float:left;
  line-height:.8;
  padding-right:.12em;
  padding-top:.08em;
}

.recuadro-lateral,
.recuadro-dato,
.cita-tecnica,
.ficha-programa{
  background:var(--superficie);
  border:1px solid var(--linea);
  padding:1.15rem 1.2rem 1.25rem;
}
.recuadro-lateral{border-top:3px solid var(--acento);}
.recuadro-lateral h3{margin-top:.15em;}
.recuadro-dato{
  font-family:Poppins,system-ui,sans-serif;
  font-size:.82rem;
  font-weight:500;
  line-height:1.45;
  color:var(--tinta);
}
.cita-tecnica{
  font-style:italic;
  border-left:3px solid var(--acento);
  color:var(--tinta);
  margin:1.1em 0 0;
}
.pie-figura{
  font-family:"PT Serif",Georgia,serif;
  font-size:.92rem;
  font-style:italic;
  color:var(--apagado);
  margin:.65rem 0 0;
}

.esquema-modulos{
  width:100%;
  height:auto;
  background:var(--fondo);
  border:1px solid var(--linea);
  padding:12px;
}
figure{margin:0 0 1.4rem;}

.tabla-scroll{width:100%;overflow-x:auto;}
.tabla-datos{
  width:100%;
  border-collapse:collapse;
  min-width:640px;
}
.tabla-datos th{
  font-family:Poppins,system-ui,sans-serif;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:left;
  background:var(--superficie);
  color:var(--tinta);
  padding:.7rem .75rem;
  border-bottom:1px solid var(--linea);
  vertical-align:bottom;
}
.tabla-datos td{
  font-family:"PT Serif",Georgia,serif;
  font-size:.98rem;
  padding:.7rem .75rem;
  border-bottom:1px solid var(--linea);
  vertical-align:top;
}
.tabla-datos tbody tr:nth-child(even){background:rgba(240,232,240,.03);}
.tabla-datos .fila-destacada{background:rgba(242,165,122,.08);}
.tabla-datos a{font-family:Poppins,system-ui,sans-serif;font-size:.86rem;}

.ficha-programa h3{margin-bottom:.35em;}
.lista-entregables{
  list-style:none;
  margin:.8em 0 0;
  padding:0;
}
.lista-entregables li{
  position:relative;
  padding:.35rem 0 .35rem 1.1rem;
  border-top:1px solid var(--linea);
  margin:0;
}
.lista-entregables li::before{
  content:"";
  position:absolute;
  left:0;
  top:.85em;
  width:.45rem;
  height:.45rem;
  background:var(--acento);
  border-radius:1px;
}
.etiqueta-duracion{
  display:inline-block;
  font-family:Poppins,system-ui,sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--tinta-inversa);
  background:var(--acento);
  padding:.22rem .5rem;
  margin:0 0 .7em;
}

.pregunta{
  border-top:1px solid var(--linea);
  padding:.15rem 0;
}
.pregunta:last-of-type{border-bottom:1px solid var(--linea);}
.pregunta__titulo{
  font-family:Poppins,system-ui,sans-serif;
  font-size:1.02rem;
  font-weight:600;
  cursor:pointer;
  list-style:none;
  padding:.85rem 1.8rem .85rem 0;
  position:relative;
}
.pregunta__titulo::-webkit-details-marker{display:none;}
.pregunta__titulo::after{
  content:"+";
  position:absolute;
  right:0;
  top:.8rem;
  color:var(--acento);
  font-weight:500;
}
.pregunta[open] .pregunta__titulo::after{content:"–";}
.pregunta .pregunta__cuerpo{padding:0 0 1rem;color:var(--tinta);}

.bloque-cierre{
  background:var(--superficie);
  border:1px solid var(--linea);
  padding:clamp(1.4rem,3vw,2.2rem);
}
.bloque-cierre .boton-durazno{margin-top:.4rem;}

.boton-durazno,
.boton-contorno{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:Poppins,system-ui,sans-serif;
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.01em;
  text-decoration:none;
  padding:.72rem 1.15rem;
  border-radius:2px;
  cursor:pointer;
  border:1px solid transparent;
  line-height:1.2;
}
.boton-durazno{
  background:var(--acento);
  color:var(--tinta-inversa);
}
.boton-durazno:hover{
  background:#F7BE9B;
  color:#24141F;
}
.boton-contorno{
  background:transparent;
  color:var(--acento);
  border:1px solid var(--acento);
}
.boton-contorno:hover{
  background:var(--acento);
  color:var(--tinta-inversa);
}

.pie-mega{
  background:var(--superficie);
  border-top:1px solid var(--linea);
  padding:clamp(42px,6vw,76px) 0 0;
  font-size:.98rem;
}
.pie-mega .pie-col{grid-column:span 3;}
.pie-mega h2{
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--apagado);
  font-weight:600;
}
.pie-mega p,.pie-mega li{color:var(--tinta);}
.pie-mega a{color:var(--tinta);text-decoration:none;}
.pie-mega a:hover{color:var(--acento);}
.pie-mega ul{list-style:none;padding:0;margin:0;}
.pie-mega li{margin:.32em 0;}
.pie-mega .marca{margin-bottom:.7rem;}
@media (max-width:900px){
  .pie-mega .pie-col{grid-column:span 6;}
}
@media (max-width:600px){
  .pie-mega .pie-col{grid-column:1/-1;}
}

.pie-legal{
  margin-top:clamp(28px,4vw,48px);
  border-top:1px solid var(--linea);
  padding:1rem clamp(18px,4vw,48px) 1.3rem;
  font-size:.86rem;
  color:var(--apagado);
  display:flex;
  flex-wrap:wrap;
  gap:.4rem 1.1rem;
  justify-content:space-between;
}
.pie-legal a{color:var(--apagado);}
.pie-legal a:hover{color:var(--acento);}

.aviso-cookies{
  position:fixed;
  right:clamp(12px,3vw,28px);
  bottom:clamp(12px,3vw,28px);
  left:clamp(12px,3vw,28px);
  z-index:80;
  max-width:640px;
  margin-left:auto;
  background:var(--superficie);
  color:var(--tinta);
  border:1px solid var(--linea);
  padding:1.05rem 1.15rem 1.15rem;
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}
.aviso-cookies p{margin:0 0 .9em;font-size:.95rem;}
.aviso-cookies__acciones{display:flex;flex-wrap:wrap;gap:.6rem;}
.aviso-cookies[hidden],
.cookies-ok .aviso-cookies{display:none;}

.formulario{display:grid;gap:1rem;}
.campo{display:flex;flex-direction:column;gap:.35rem;}
.campo > span:not(.campo-check){
  font-family:Poppins,system-ui,sans-serif;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--apagado);
}
.campo input,
.campo select,
.campo textarea{
  background:var(--fondo);
  color:var(--tinta);
  border:1px solid var(--linea);
  font-family:"PT Serif",Georgia,serif;
  font-size:1.02rem;
  padding:.65rem .7rem;
  width:100%;
}
.campo textarea{min-height:8.5rem;resize:vertical;}
.campo .campo-check{
  display:flex;
  gap:.55rem;
  align-items:flex-start;
  font-size:.95rem;
  font-weight:400;
  text-transform:none;
  letter-spacing:0;
  color:var(--tinta);
  font-family:"PT Serif",Georgia,serif;
}
.campo-check input{width:auto;margin-top:.35rem;accent-color:var(--acento);}
@media (max-width:760px){
  .malla > .ficha-programa{grid-column:1/-1 !important;}
}
.campo__error{
  color:var(--acento);
  font-family:Poppins,system-ui,sans-serif;
  font-size:.88rem;
  font-weight:500;
  margin:0 0 .2rem;
}
.mensaje-exito{
  background:var(--superficie);
  border:1px solid var(--acento);
  color:var(--tinta);
  padding:1rem 1.1rem;
  margin-bottom:1.2rem;
  font-family:Poppins,system-ui,sans-serif;
  font-size:.95rem;
  font-weight:500;
}
.mensaje-exito[hidden]{display:none;}
.trampa{
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.mapa-contacto iframe{
  width:100%;
  height:360px;
  border:0;
  display:block;
  filter:grayscale(.15) contrast(1.05);
}

.lista-util{list-style:none;padding:0;}
.lista-util li{border-top:1px solid var(--linea);padding:.55rem 0;margin:0;}

.glosario dt{
  font-family:Poppins,system-ui,sans-serif;
  font-weight:600;
  font-size:1.02rem;
  margin-top:1.1em;
}
.glosario dd{margin:.25em 0 0;}

.nota-recurso{
  border-top:1px solid var(--linea);
  padding:1.1rem 0 1.4rem;
}
.nota-recurso time{
  font-family:Poppins,system-ui,sans-serif;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--apagado);
}
.lista-chequeo{list-style:none;padding:0;margin:0;}
.lista-chequeo li{
  border-top:1px solid var(--linea);
  padding:.55rem 0;
  margin:0;
}
.lista-chequeo label{display:flex;gap:.6rem;align-items:flex-start;cursor:pointer;}
.lista-chequeo input{margin-top:.35rem;accent-color:var(--acento);}

.asciende{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease;}
html.js .asciende{opacity:0;transform:translateY(14px);}
html.js .asciende.visible{opacity:1;transform:none;}
.no-js .asciende,
html:not(.js) .asciende{opacity:1 !important;transform:none !important;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .asciende{opacity:1 !important;transform:none !important;transition:none;}
}
