:root{
  --fondo:#0D1A22;
  --hondo:#152935;
  --tinta:#E6EEF2;
  --coral:#FF8360;
  --bruma:#7E9AA6;
  --borde:rgba(126,154,166,.28);
  --carbon:#0A141A;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:17px;
  line-height:1.7;
  color:var(--tinta);
  background:var(--fondo);
  min-height:100vh;
}
body.cortina-abierta{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--coral);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:#FFA184}
p,li{color:var(--tinta)}
h1,h2,h3{
  font-family:"DM Serif Display",Georgia,serif;
  font-weight:400;
  letter-spacing:-0.01em;
  line-height:1.08;
  margin:0 0 .7em;
  color:var(--tinta);
}
h1{font-size:clamp(2.4rem,5.2vw,4.1rem)}
h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3{font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.2}
ul,ol{padding-left:1.2em}
figure{margin:0}

.marco{max-width:1220px;margin-inline:auto;padding-inline:clamp(18px,4vw,48px)}

/* Cabecera y menú */
.barra{
  position:sticky;
  top:0;
  z-index:40;
  height:68px;
  background:rgba(13,26,34,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--borde);
}
.barra__caja{
  height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.marca{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:1.55rem;
  color:var(--tinta);
  text-decoration:none;
  letter-spacing:-0.01em;
}
.marca:hover{color:var(--tinta)}
.marca__punto{
  display:inline-block;
  width:.42em;
  height:.42em;
  margin-left:.12em;
  border-radius:50%;
  background:var(--coral);
  vertical-align:8px;
}
.abrir-menu{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  background:transparent;
  color:var(--tinta);
  border:1px solid var(--borde);
  border-radius:2px;
  padding:.45rem .85rem;
  font:inherit;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
}
.abrir-menu:hover{border-color:var(--coral);color:var(--coral)}
.abrir-menu__trazos{display:flex;flex-direction:column;gap:5px}
.abrir-menu__trazos span{
  display:block;
  width:16px;
  height:2px;
  background:currentColor;
}

.cortina{
  position:fixed;
  inset:0;
  z-index:90;
  background:var(--fondo);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
  overflow:auto;
}
.cortina--abierta{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.cortina__caja{
  min-height:100%;
  display:grid;
  grid-template-rows:auto 1fr auto;
  padding-block:28px 40px;
}
.cortina__cerrar{
  justify-self:end;
  background:transparent;
  color:var(--tinta);
  border:1px solid var(--borde);
  border-radius:2px;
  padding:.45rem .9rem;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.cortina__cerrar:hover{border-color:var(--coral);color:var(--coral)}
.cortina__lista{
  list-style:none;
  margin:clamp(24px,6vh,72px) 0;
  padding:0;
}
.cortina__lista a{
  display:inline-block;
  font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(1.8rem,5vw,3.2rem);
  color:var(--tinta);
  text-decoration:none;
  padding:.18em 0 .18em 0;
  border-left:0 solid var(--coral);
  transition:color .2s,padding-left .2s,border-width .2s;
}
.cortina__lista a:hover,
.cortina__lista a[aria-current="page"]{
  color:var(--coral);
  padding-left:.7rem;
  border-left-width:4px;
}
.cortina__pie{
  color:var(--bruma);
  font-size:.92rem;
  max-width:28rem;
}
.cortina__pie a{color:var(--tinta)}
.cortina__pie p{margin:.25em 0}

/* Hero */
.portada{
  position:relative;
  background-color:var(--fondo);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  min-height:clamp(420px,62vh,620px);
  display:flex;
  align-items:flex-end;
  padding-block:clamp(72px,12vh,120px);
}
.portada--corta{min-height:380px;padding-block:clamp(64px,10vh,96px)}
.portada__velo{
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,rgba(13,26,34,.93) 0%,rgba(13,26,34,.78) 48%,rgba(13,26,34,.42) 100%);
}
.portada__texto{position:relative;z-index:1;width:100%}
.portada__lead{max-width:40rem;font-size:1.08rem;color:var(--tinta);margin:0 0 1.4rem}
.portada__acciones{display:flex;flex-wrap:wrap;gap:.8rem}
.portada__migas{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  font-size:.85rem;
  color:var(--bruma);
  margin:0 0 1rem;
}
.portada__migas a{color:var(--bruma)}
.portada__migas a:hover{color:var(--coral)}
.portada__pie{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2.2rem;
  padding-top:1.4rem;
  border-top:1px solid var(--borde);
  max-width:52rem;
}
.portada__hecho{
  margin:0;
  font-size:.92rem;
  color:var(--tinta);
}
@media (max-width:720px){
  .portada__pie{grid-template-columns:1fr}
}

.rotulo{
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:12px;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--bruma);
  margin:0 0 .8rem;
}

/* Secciones y grilla */
.franja{padding-block:clamp(56px,8vw,96px)}
.franja--hondo{background:var(--hondo)}
.franja--cta{
  background:var(--hondo);
  border-block:1px solid var(--borde);
  text-align:left;
}
.franja__lead{max-width:46rem;margin:0 0 2rem}
.doble{
  display:grid;
  grid-template-columns:1.55fr 0.45fr;
  gap:clamp(28px,4vw,64px);
  align-items:start;
}
@media (max-width:980px){
  .doble{grid-template-columns:1fr}
  .doble__riel{position:static}
}
.doble__riel{position:sticky;top:96px}
.riel-ficha{
  background:var(--hondo);
  border:1px solid var(--borde);
  border-left:2px solid var(--coral);
  padding:1.1rem 1.15rem 1.2rem;
  margin-bottom:1rem;
}
.riel-ficha__titulo{
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--bruma);
  margin:0 0 .65rem;
}
.riel-ficha p{margin:.4em 0;font-size:.95rem}
.riel-lista{list-style:none;margin:0;padding:0}
.riel-lista li{
  padding:.45rem 0;
  border-bottom:1px solid var(--borde);
  font-size:.95rem;
}
.riel-lista li:last-child{border-bottom:0}

/* Coberturas, notas, pasos */
.malla-coberturas{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.25rem;
}
@media (max-width:720px){.malla-coberturas{grid-template-columns:1fr}}
.cobertura{
  background:var(--fondo);
  border:1px solid var(--borde);
  padding:1.4rem 1.35rem 1.5rem;
}
.franja--hondo .cobertura{background:var(--fondo)}
.cobertura__nombre{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:1.45rem;
  margin:0 0 .7rem;
}
.cobertura p{margin:0}

.malla-notas{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.25rem;
}
@media (max-width:900px){.malla-notas{grid-template-columns:1fr}}
.nota{
  background:var(--hondo);
  border:1px solid var(--borde);
  padding:1.35rem 1.3rem 1.45rem;
}
.nota__fecha,.nota__tema{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bruma);
  margin:0;
}
.nota__tema{margin-bottom:.6rem}
.nota h3{margin:.2rem 0 .7rem}
.nota p{margin:0}

.pasos{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
@media (max-width:720px){.pasos{grid-template-columns:1fr}}
.paso{
  border:1px solid var(--borde);
  padding:1.35rem 1.3rem;
  background:var(--hondo);
}
.paso__marca{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--coral);
  font-weight:700;
  margin:0 0 .6rem;
}
.paso p{margin:0}

.lista-limites{list-style:none;margin:0;padding:0}
.lista-limites li{
  padding:1rem 0 1rem 1rem;
  border-left:2px solid var(--coral);
  border-bottom:1px solid var(--borde);
  margin:0;
}
.lista-limites li:last-child{border-bottom:0}

/* Dossiers */
.dossier{
  background:var(--hondo);
  border:1px solid var(--borde);
  border-top:3px solid var(--coral);
  padding:clamp(1.4rem,3vw,2.2rem);
  margin-bottom:clamp(1.6rem,3vw,2.4rem);
}
.dossier__tema{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(1.6rem,2.6vw,2.2rem);
  margin:0 0 1rem;
}
.dossier__cuerpo p{margin:0 0 1rem}
.dossier__ficha{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  margin-top:1.2rem;
  border-top:1px solid var(--borde);
}
@media (max-width:640px){.dossier__ficha{grid-template-columns:1fr}}
.dossier__dato{
  padding:.9rem .85rem .9rem 0;
  border-bottom:1px solid var(--borde);
}
.dossier__dato dt{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bruma);
  margin:0 0 .25rem;
}
.dossier__dato dd{margin:0}
.dossier__estado{
  margin:1.1rem 0 0;
  font-size:.92rem;
  color:var(--bruma);
}

/* Preguntas, citas, fotos */
.pregunta{
  border-bottom:1px solid var(--borde);
  padding:.9rem 0;
}
.pregunta summary{
  cursor:pointer;
  font-weight:700;
  list-style:none;
  color:var(--tinta);
}
.pregunta summary::-webkit-details-marker{display:none}
.pregunta summary::after{
  content:"+";
  float:right;
  color:var(--coral);
  font-weight:700;
}
.pregunta[open] summary::after{content:"–"}
.pregunta p{margin:.7rem 0 0}

.cita{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(1.35rem,2.4vw,1.9rem);
  line-height:1.25;
  color:var(--tinta);
  margin:0;
  padding-left:1rem;
  border-left:2px solid var(--coral);
}

.foto-bloque{margin:1.6rem 0 0}
.foto-bloque img{
  width:100%;
  max-height:420px;
  object-fit:cover;
  border:1px solid var(--borde);
}
.foto-bloque figcaption{
  font-size:.88rem;
  color:var(--bruma);
  margin-top:.5rem;
}

.mapa{
  width:100%;
  min-height:360px;
  border:1px solid var(--borde);
  filter:grayscale(.15) contrast(1.05);
}
iframe.mapa{border:0}

/* Botones y campos */
.boton{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.85rem 1.5rem;
  border-radius:2px;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.02em;
  text-decoration:none;
  transition:.2s;
  cursor:pointer;
  font-family:"DM Sans",system-ui,sans-serif;
}
.boton--coral{
  background:var(--coral);
  color:var(--carbon);
  border:1px solid var(--coral);
}
.boton--coral:hover{background:#FFA184;color:var(--carbon)}
.boton--linea{
  background:transparent;
  color:var(--tinta);
  border:1px solid var(--borde);
}
.boton--linea:hover{
  border-color:var(--coral);
  color:var(--coral);
  background:rgba(255,131,96,.08);
}

.campo{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.campo__rotulo{font-size:.9rem;font-weight:500;color:var(--tinta)}
.campo input[type="email"],
.campo input[type="text"],
.campo input[type="tel"],
.campo textarea{
  width:100%;
  background:var(--fondo);
  color:var(--tinta);
  border:1px solid var(--borde);
  border-radius:2px;
  padding:.75rem .85rem;
  font:inherit;
}
.campo textarea{min-height:140px;resize:vertical}
.campo input:focus,
.campo textarea:focus{
  outline:2px solid var(--coral);
  outline-offset:1px;
}
.campo--trampa{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.campo--check{
  flex-direction:row;
  align-items:flex-start;
  gap:.7rem;
  font-size:.92rem;
}
.campo--check input{margin-top:.35rem;accent-color:var(--coral)}
.aviso-ok,.aviso-error{
  padding:1rem 1.1rem;
  border:1px solid var(--borde);
  margin-bottom:1.2rem;
}
.aviso-ok{border-left:2px solid var(--coral);background:rgba(255,131,96,.08)}
.aviso-error{border-left:2px solid #c45b5b;background:rgba(196,91,91,.12)}

/* Pie */
.pie{
  background:var(--hondo);
  border-top:1px solid var(--borde);
  padding-block:clamp(48px,7vw,80px) 28px;
}
.pie__rejilla{
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr;
  gap:clamp(28px,4vw,56px);
}
@media (max-width:900px){.pie__rejilla{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.pie__rejilla{grid-template-columns:1fr}}
.pie h2{font-size:clamp(1.5rem,2.4vw,2rem)}
.pie__nav{list-style:none;margin:0;padding:0}
.pie__nav a{color:var(--tinta);text-decoration:none}
.pie__nav a:hover{color:var(--coral)}
.pie__nav li{margin:.35rem 0}
.pie__contacto p{margin:.3rem 0;color:var(--bruma)}
.pie__contacto a{color:var(--tinta)}
.pie__base{
  margin-top:2.4rem;
  padding-top:1.2rem;
  border-top:1px solid var(--borde);
  color:var(--bruma);
  font-size:.88rem;
}
.pie__base p{margin:.35rem 0}

/* Galleta */
.galleta{
  position:fixed;
  bottom:18px;
  left:18px;
  right:18px;
  max-width:720px;
  z-index:70;
  background:var(--hondo);
  border:1px solid var(--borde);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  padding:1.15rem 1.2rem 1.2rem;
}
.galleta p{margin:0 0 1rem;font-size:.95rem}
.galleta__acciones{display:flex;flex-wrap:wrap;gap:.6rem}
.galleta[hidden]{display:none}

/* Página 404 y legales */
.hueco{max-width:40rem}
.legal h2{margin-top:2rem}
.legal p,.legal li{max-width:48rem}

/* Animación */
.asoma{opacity:1;transform:none}
html.js .asoma{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
html.js .asoma.asoma--dentro{opacity:1;transform:none}
html.no-js .asoma{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){
  .asoma,html.js .asoma{opacity:1!important;transform:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
