:root{
  --fondo:#182226;
  --superficie:#243136;
  --texto:#E9EFF0;
  --acento:#33B4A6;
  --apagado:#849699;
  --tinta:#0E1619;
  --borde:rgba(132,150,153,.28);
  --velo:rgba(24,34,38,.78);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;color-scheme:dark}

body{
  margin:0;
  background:var(--fondo);
  color:var(--texto);
  font-family:"Source Serif 4",Georgia,"Times New Roman",serif;
  font-size:1.0625rem;
  font-weight:400;
  line-height:1.72;
  min-height:100vh;
}

img{max-width:100%;height:auto;display:block}

a{color:var(--acento);text-decoration-thickness:1px;text-underline-offset:0.18em}
a:hover{color:#5cc9bd}

h1,h2,h3,h4,.capsula,.boton,.ficha__sigla,th,td,.tabla-agenda{
  font-family:Archivo,system-ui,sans-serif;
  letter-spacing:-0.015em;
}

h1,h2,h3{line-height:1.18;font-weight:700;margin:0 0 0.85rem}

h1{font-size:clamp(2.1rem,5.2vw,3.1rem)}
h2{font-size:clamp(1.5rem,3vw,1.95rem)}
h3{font-size:1.18rem;font-weight:600}

p{margin:0 0 1.05rem}
p:last-child{margin-bottom:0}

.columna{width:min(700px,calc(100% - 2.4rem));margin:0 auto}

.capsula{
  position:sticky;
  top:14px;
  z-index:40;
  width:min(880px,calc(100% - 20px));
  margin:14px auto 0;
  display:flex;
  align-items:center;
  gap:1rem;
  padding:0.5rem 0.7rem 0.5rem 1.15rem;
  border-radius:999px;
  background:rgba(36,49,54,.93);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  border:1px solid var(--borde);
  box-shadow:0 10px 30px rgba(14,22,25,.38);
}

.capsula__marca{
  flex:0 0 auto;
  font-family:Archivo,system-ui,sans-serif;
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--texto);
  text-decoration:none;
  font-size:0.98rem;
}

.capsula__marca:hover{color:var(--acento)}

.capsula__lista{
  display:flex;
  align-items:center;
  gap:0.15rem 0.85rem;
  list-style:none;
  margin:0;
  padding:0 0.4rem 0 0;
  min-width:0;
}

.capsula__enlace{
  display:inline-block;
  font-family:Archivo,system-ui,sans-serif;
  font-weight:600;
  font-size:0.82rem;
  letter-spacing:-0.01em;
  color:var(--texto);
  text-decoration:none;
  white-space:nowrap;
  padding:0.35rem 0;
}

.capsula__enlace:hover,
.capsula__enlace--activo{
  color:var(--acento);
}

.portada{
  position:relative;
  min-height:clamp(380px,56vh,520px);
  margin-top:18px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
}

.portada__velo{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(14,22,25,.62),rgba(24,34,38,.90));
}

.portada__interior{
  position:relative;
  z-index:1;
  padding:4.2rem 0 2.8rem;
}

.portada__interior h1{margin-bottom:0.9rem}

.portada__interior .tramo__bajada,
.portada p{
  color:var(--texto);
}

.portada__credito{
  margin:1.1rem 0 0;
  font-size:.82rem;
  color:var(--apagado);
}

.tramo{padding:3.25rem 0}
.tramo--superficie{background:var(--superficie)}
.tramo__titulo{margin-bottom:0.7rem}
.tramo__bajada{
  color:var(--apagado);
  font-size:1.08rem;
  margin-bottom:1.3rem;
}

.rejilla{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}
.rejilla__principal{grid-column:span 8}
.rejilla__lateral{grid-column:span 4}

.ficha{
  background:var(--superficie);
  border:1px solid var(--borde);
  border-radius:14px;
  padding:1.15rem 1.2rem 1.2rem;
  margin-bottom:1rem;
}

.tramo--superficie .ficha{background:var(--fondo)}

.ficha__sigla{
  display:block;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--acento);
  font-size:0.95rem;
  margin-bottom:0.45rem;
}

.ficha__quien,
.ficha__detalle,
.ficha__uso{
  margin:0 0 0.7rem;
}

.ficha h3{margin-top:1rem}

.nota{
  border-left:2px solid var(--acento);
  padding:0.15rem 0 0.15rem 1rem;
  margin-bottom:1.6rem;
}

.nota__fecha{
  display:block;
  font-family:Archivo,system-ui,sans-serif;
  font-size:.82rem;
  color:var(--apagado);
  letter-spacing:-0.01em;
  margin-bottom:0.25rem;
}

.nota__titulo{
  font-size:1.18rem;
  margin-bottom:0.45rem;
}

.nota__titulo a{color:var(--texto);text-decoration:none}
.nota__titulo a:hover{color:var(--acento)}

.nota__cuerpo{margin-bottom:0.55rem}
.nota__etiquetas{
  font-family:Archivo,system-ui,sans-serif;
  font-size:.82rem;
  color:var(--apagado);
  letter-spacing:.02em;
}

.tabla-agenda{
  width:100%;
  border-collapse:collapse;
  font-size:0.9rem;
  background:var(--superficie);
  border:1px solid var(--borde);
  border-radius:12px;
  overflow:hidden;
}

.tabla-agenda th,
.tabla-agenda td{
  text-align:left;
  padding:0.7rem 0.8rem;
  border-bottom:1px solid var(--borde);
  vertical-align:top;
}

.tabla-agenda th{
  font-weight:600;
  color:var(--apagado);
  font-size:.82rem;
  background:rgba(14,22,25,.35);
}

.tabla-agenda tr:last-child td{border-bottom:0}

.fila-agenda__mes{
  font-weight:700;
  color:var(--acento);
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:0.78rem;
}

.dato-ejemplo{
  background:var(--superficie);
  border:1px dashed var(--acento);
  border-radius:12px;
  padding:1rem 1.1rem;
  margin:1.2rem 0;
  color:var(--texto);
}

.dato-ejemplo strong{
  font-family:Archivo,system-ui,sans-serif;
  letter-spacing:-0.015em;
  display:block;
  margin-bottom:0.4rem;
  color:var(--acento);
}

.tramo--superficie .dato-ejemplo{background:var(--fondo)}

.cita-fuente{
  font-size:.82rem;
  color:var(--apagado);
  margin:0.6rem 0 0;
}

.aviso-metodo{
  background:var(--fondo);
  border:1px solid var(--borde);
  border-radius:14px;
  padding:1.1rem 1.15rem;
}

.tramo:not(.tramo--superficie) .aviso-metodo{background:var(--superficie)}

.aviso-metodo h3{color:var(--acento);font-size:1rem;letter-spacing:.04em;text-transform:uppercase}

.pregunta{
  border:1px solid var(--borde);
  background:var(--superficie);
  border-radius:12px;
  padding:0.85rem 1rem;
  margin-bottom:0.7rem;
}

.pregunta__texto{
  font-family:Archivo,system-ui,sans-serif;
  font-weight:600;
  letter-spacing:-0.015em;
  cursor:pointer;
  list-style:none;
}

.pregunta__texto::-webkit-details-marker{display:none}

.pregunta[open] .pregunta__texto{color:var(--acento);margin-bottom:0.55rem}

.boton{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:Archivo,system-ui,sans-serif;
  font-weight:600;
  letter-spacing:-0.015em;
  text-decoration:none;
  padding:0.72rem 1.2rem;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  font-size:0.95rem;
  line-height:1.2;
}

.boton--acento{
  background:var(--acento);
  color:var(--tinta);
}

.boton--acento:hover,
.boton--acento:focus-visible{
  background:#2A9A8E;
  color:var(--tinta);
}

.boton--contorno{
  background:transparent;
  border-color:var(--acento);
  color:var(--texto);
}

.boton--contorno:hover,
.boton--contorno:focus-visible{
  background:var(--acento);
  color:var(--tinta);
}

.grupo-botones{
  display:flex;
  flex-wrap:wrap;
  gap:0.7rem;
  margin:1.25rem 0 0;
}

.formulario{margin-top:0.4rem}

.campo{margin:0 0 1rem;display:block}

.campo__etiqueta{
  display:block;
  font-family:Archivo,system-ui,sans-serif;
  font-weight:600;
  font-size:0.88rem;
  margin-bottom:0.35rem;
}

.campo input,
.campo select,
.campo textarea{
  width:100%;
  background:var(--fondo);
  color:var(--texto);
  border:1px solid var(--borde);
  border-radius:10px;
  padding:0.7rem 0.8rem;
  font:inherit;
}

.campo textarea{min-height:140px;resize:vertical}
.campo select option{background:var(--fondo);color:var(--texto)}

.campo input[type="checkbox"]{
  width:auto;
  display:inline;
  margin-right:0.45rem;
  accent-color:var(--acento);
}

.campo input:focus,
.campo select:focus,
.campo textarea:focus{
  outline:2px solid var(--acento);
  outline-offset:1px;
}

.campo__error{
  display:block;
  color:#e8b4a2;
  font-size:.82rem;
  margin-top:0.3rem;
}

.gracias{
  background:var(--superficie);
  border:1px solid var(--acento);
  border-radius:14px;
  padding:1.3rem 1.2rem;
}

.trampa{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.aviso-cookies{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:60;
  max-width:700px;
  margin:0 auto;
  background:var(--superficie);
  border:1px solid var(--borde);
  border-radius:16px;
  padding:1rem 1.1rem;
  box-shadow:0 12px 36px rgba(14,22,25,.45);
}

.aviso-cookies__texto{
  font-size:0.95rem;
  margin-bottom:0.85rem;
}

.aviso-cookies__acciones{
  display:flex;
  flex-wrap:wrap;
  gap:0.55rem;
}

.pie{
  background:var(--superficie);
  border-top:2px solid var(--acento);
  padding:2.6rem 0 1.6rem;
  margin-top:1rem;
}

.pie__rejilla{
  width:min(880px,calc(100% - 2.4rem));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.6rem;
}

.pie__titulo{
  font-family:Archivo,system-ui,sans-serif;
  font-weight:700;
  font-size:0.95rem;
  margin:0 0 0.6rem;
}

.pie__columna p,
.pie__columna a{
  font-size:0.92rem;
}

.pie__columna ul{list-style:none;margin:0;padding:0}
.pie__columna li{margin:0 0 0.35rem}

.pie__legal{
  width:min(880px,calc(100% - 2.4rem));
  margin:1.8rem auto 0;
  padding-top:1.2rem;
  border-top:1px solid var(--borde);
  font-size:.82rem;
  color:var(--apagado);
}

.pie__legal p{margin:0 0 0.55rem}

figure{margin:1.2rem 0 0}
figure img{border-radius:12px;width:100%;object-fit:cover}
figcaption{
  font-size:.82rem;
  color:var(--apagado);
  margin-top:0.45rem;
}

iframe{display:block;max-width:100%}

.alza-suave{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}
html.js .alza-suave{opacity:0;transform:translateY(14px)}
html.js .alza-suave.alza-suave--puesta{opacity:1;transform:none}
.no-js .alza-suave{opacity:1!important;transform:none!important}

@media (max-width:760px){
  .rejilla__principal,.rejilla__lateral{grid-column:1 / -1}
  .capsula__lista{
    overflow-x:auto;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .capsula__lista::-webkit-scrollbar{display:none}
  .pie__rejilla{grid-template-columns:repeat(2,1fr)}
  .tabla-agenda{display:block;overflow-x:auto}
}

@media (max-width:480px){
  .pie__rejilla{grid-template-columns:1fr}
  .capsula{padding-right:0.45rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .alza-suave,html.js .alza-suave{opacity:1!important;transform:none!important;transition:none}
}
