:root {
    --blue: #0048b9;
    --blue-dark: #06306e;
    --ink: #121820;
    --red: #9d1024;
    --paper: #f4f1ea;
    --paper-2: #e7e1d6;
    --white: #fffcf7;
    --line: #c9c2b6;
    --muted: #243040;
    --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
    --sans: "Atkinson Hyperlegible", "Segoe UI", sans-serif;
    --boton: #0048b9;
    --boton-oscuro: #06306e;
    --sobre: #ffffff;
    --hero: #06306e;
    --hero-ink: #f4f1ea;
    --hero-suave: #d7e4ff;
    --marca: #121820;
}

* { box-sizing: border-box; }
html { overflow-x: clip; color-scheme: light; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 1.25rem;
    line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue-dark); text-underline-offset: 3px; }
a:hover { color: var(--blue); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
h1, h2, h3 {
    font-family: var(--serif);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.2;
    margin: 0 0 0.45em;
}
h1 { font-size: clamp(2.5rem, 5.5vw, 4.4rem); }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
h3 { font-size: 1.55rem; line-height: 1.3; }
p { margin: 0 0 0.9em; }

.saltar {
    position: absolute;
    left: 12px;
    top: -48px;
    background: var(--ink);
    color: var(--paper);
    padding: 10px 14px;
    z-index: 20;
    font-weight: 700;
}
.saltar:focus { top: 12px; }

.cabeza {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--white);
    border-bottom: 2px solid var(--line);
}
.cabeza-dentro {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: stretch;
    min-height: 88px;
}
.marca-bloque {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding: 10px 18px 10px 22px;
}
.marca img { height: 58px; width: auto; }
.tel-bajo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 10px 16px;
    background: var(--boton);
    color: var(--sobre);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.2;
    text-decoration: none;
    border-radius: 8px;
    white-space: nowrap;
}
.tel-bajo:hover { background: var(--boton-oscuro); color: var(--sobre); }
.cuenta-bajo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 10px 16px;
    background: var(--white);
    color: var(--ink);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.2;
    text-decoration: none;
    border-radius: 8px;
    border: 2px solid var(--ink);
    white-space: nowrap;
}
.cuenta-bajo:hover { background: var(--ink); color: var(--paper); }
.invitacion {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    min-width: 0;
    padding: 10px 22px;
    color: var(--ink);
    background: transparent;
    text-decoration: none;
    border-left: 2px solid var(--line);
}
.invitacion-pregunta {
    font-weight: 700;
    font-size: clamp(1.15rem, 1.6vw, 1.45rem);
    line-height: 1.25;
}
.invitacion-accion {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 48px;
    padding: 8px 16px;
    background: var(--boton);
    color: var(--sobre);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.2;
    border-radius: 8px;
    white-space: nowrap;
}
.invitacion:hover .invitacion-accion,
.invitacion:focus-visible .invitacion-accion { background: var(--boton-oscuro); color: var(--sobre); }
.eleccion {
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.eleccion a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 72px;
    padding: 14px 12px;
    text-decoration: none;
    color: var(--ink);
    background: var(--white);
    border-left: 2px solid var(--line);
    font-weight: 700;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.2;
}
.eleccion a[aria-current="page"] {
    background: var(--boton);
    color: var(--sobre);
}
.eleccion a:hover {
    background: var(--boton-oscuro);
    color: var(--sobre);
}
.llama-fija { display: none; }

.bifurca {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: calc(100svh - 88px);
    min-width: 0;
}
.puerta {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
    min-height: 460px;
    padding: 40px 36px 44px;
    color: white;
    text-decoration: none;
    background-position: center;
    background-size: cover;
}
.puerta span {
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.3;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55);
}
.puerta strong {
    font-family: var(--serif);
    font-weight: 700;
    font-size: clamp(2.6rem, 5vw, 4.8rem);
    letter-spacing: 0;
    line-height: 1.08;
    max-width: 100%;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5);
}
.puerta-nacional {
    background-image: linear-gradient(to top, rgba(8, 16, 28, 0.72) 0%, rgba(8, 16, 28, 0.08) 42%), url("../img/costa.jpg?v=2");
}
.puerta-fuera {
    background-image: linear-gradient(to top, rgba(8, 16, 28, 0.72) 0%, rgba(8, 16, 28, 0.08) 42%), url("../img/laguna.jpg?v=2");
}
.puerta:hover { color: white; }

.viaje {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    min-height: calc(100svh - 88px);
    background: var(--white);
}
.viaje img { width: 100%; height: 100%; object-fit: cover; min-height: 320px; }

.hero-mosaico {
    display: grid;
    grid-template-columns: minmax(20rem, 40%) minmax(0, 1fr);
    gap: 3px;
    min-height: calc(100svh - 88px);
    background: var(--marca);
}
.hero-mosaico-texto {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 28px;
    min-width: 0;
    padding: 32px 32px 36px;
    background: var(--hero);
    color: var(--hero-ink);
}
.hero-mosaico-lugar {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--hero-suave);
}
.hero-mosaico-arriba .nota {
    margin: 12px 0 0;
    max-width: 36rem;
    color: var(--hero-ink);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
}
.aviso-portal {
    margin: 0;
    padding: 16px 28px;
    background: var(--hero);
    color: var(--hero-ink);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
}
.aviso-portal a { color: var(--hero-ink); text-underline-offset: 3px; }
.hero-mosaico-cuerpo { min-width: 0; }
.hero-mosaico-texto h1 {
    color: var(--hero-ink);
    font-size: clamp(2.45rem, 4vw, 4rem);
    line-height: 1.05;
    margin: 0 0 0.35em;
    text-wrap: balance;
}
.hero-mosaico-texto .kicker { color: var(--hero-suave); }
.hero-mosaico-texto .entradilla {
    max-width: none;
    color: var(--hero-ink);
    font-size: 1.35rem;
    line-height: 1.45;
}
.hero-mosaico-texto .nota {
    max-width: 36rem;
    margin-bottom: 0;
    color: var(--hero-ink);
    font-size: 1.2rem;
    line-height: 1.45;
}
.hero-mosaico-texto a { color: var(--hero-ink); }
.hero-mosaico-texto a:hover { color: var(--hero-suave); }
.hero-mosaico-tipos {
    display: grid;
    gap: 3px;
    min-width: 0;
    min-height: 0;
    background: var(--marca);
}
.hero-mosaico-1 .hero-mosaico-tipos { grid-template-columns: 1fr; grid-template-rows: minmax(220px, 1fr); }
.hero-mosaico-2 .hero-mosaico-tipos { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(220px, 1fr); }
.hero-mosaico-3 .hero-mosaico-tipos {
    grid-template-columns: 1.25fr 1fr;
    grid-template-rows: minmax(200px, 1fr) minmax(200px, 1fr);
}
.hero-mosaico-3 .puerta-tipo:first-child { grid-row: 1 / span 2; }
.hero-mosaico-4 .hero-mosaico-tipos {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(200px, 1fr) minmax(200px, 1fr);
}
.hero-mosaico-5 .hero-mosaico-tipos {
    grid-template-columns: 1.25fr 1fr 1fr;
    grid-template-rows: minmax(200px, 1fr) minmax(200px, 1fr);
}
.hero-mosaico-5 .puerta-tipo:first-child { grid-row: 1 / span 2; }
.hero-mosaico-6 .hero-mosaico-tipos {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: minmax(180px, 1fr) minmax(180px, 1fr);
}
.hero-mosaico-muchos .hero-mosaico-tipos {
    grid-template-columns: 1fr 1fr 1fr;
    grid-auto-rows: minmax(210px, 1fr);
}
.puerta-tipo {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
    min-height: 0;
    padding: 22px 20px 22px;
    color: white;
    text-decoration: none;
    background-color: var(--hero);
    background-position: center;
    background-size: cover;
}
.puerta-tipo-lisa {
    color: var(--hero-ink);
    background-color: var(--hero);
    background-image: linear-gradient(to top, rgba(8, 16, 28, 0.35), rgba(8, 16, 28, 0) 70%);
}
.puerta-tipo-lisa strong,
.puerta-tipo-lisa .puerta-tipo-cuenta,
.puerta-tipo-lisa .puerta-tipo-desc,
.puerta-tipo-lisa .puerta-tipo-ir {
    text-shadow: none;
}
.puerta-tipo strong {
    font-family: var(--serif);
    font-weight: 700;
    font-size: clamp(1.85rem, 2.3vw, 2.7rem);
    line-height: 1.08;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}
.hero-mosaico-5 .puerta-tipo:first-child strong,
.hero-mosaico-3 .puerta-tipo:first-child strong {
    font-size: clamp(2.4rem, 3.2vw, 3.6rem);
}
.puerta-tipo-cuenta,
.puerta-tipo-desc,
.puerta-tipo-ir {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}
.puerta-tipo-cuenta {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}
.puerta-tipo-desc {
    font-size: 1.2rem;
    line-height: 1.35;
}
.puerta-tipo-ir {
    margin-top: 4px;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.puerta-tipo:hover,
.puerta-tipo:focus-visible {
    color: white;
    box-shadow: inset 0 0 0 4px #fffcf7;
}
.hero-mosaico-aviso {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    min-height: 320px;
    padding: 36px 32px 40px;
    color: var(--hero-ink);
    background-color: var(--hero);
    background-position: center;
    background-size: cover;
}
.hero-mosaico-aviso-nacional {
    background-image: linear-gradient(to top, rgba(8, 16, 28, 0.72) 0%, rgba(8, 16, 28, 0.08) 42%), url("../img/costa.jpg?v=2");
}
.hero-mosaico-aviso-internacional {
    background-image: linear-gradient(to top, rgba(8, 16, 28, 0.72) 0%, rgba(8, 16, 28, 0.08) 42%), url("../img/laguna.jpg?v=2");
}
.hero-mosaico-aviso-titulo {
    margin: 0 0 0.25em;
    color: var(--hero-ink);
    font-family: var(--serif);
    font-weight: 700;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.15;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5);
}
.hero-mosaico-aviso p { text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5); }
.hero-mosaico-aviso .boton { align-self: flex-start; text-shadow: none; }
.viaje-texto {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px 8vw 56px 40px;
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    min-height: calc(100svh - 88px);
    background: var(--white);
}
.hero-texto {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px 40px 48px 6vw;
}
.hero-foto { min-height: 420px; }
.hero-foto img { width: 100%; height: 100%; object-fit: cover; }
.kicker {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 10px;
}
.kicker-claro { color: var(--hero-suave); }
.entradilla { font-size: 1.4rem; line-height: 1.55; max-width: 38rem; color: var(--muted); }
.hero-acciones { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 18px; }
.hero-nota { font-size: 1.1rem; color: var(--muted); }

.boton, button.boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    background: var(--boton);
    color: var(--sobre);
    text-decoration: none;
    border: 2px solid var(--boton);
    border-radius: 8px;
    font: 700 1.2rem var(--sans);
    line-height: 1.2;
    padding: 14px 22px;
    cursor: pointer;
}
.boton:hover, button.boton:hover { background: var(--boton-oscuro); border-color: var(--boton-oscuro); color: var(--sobre); }
.boton-linea {
    background: transparent;
    color: var(--ink);
    border-color: var(--ink);
}
.boton-linea:hover { background: var(--ink); color: var(--paper); }

.franja { background: var(--ink); color: var(--paper); }
.seccion-cabeza, .seccion-cabeza-clara { max-width: 760px; padding: 48px 22px 8px; margin: 0 auto; }
.seccion-cabeza-clara { color: var(--paper); }
.seccion-cabeza-clara p:last-child { color: #f4f1ea; }
.tablero { list-style: none; margin: 28px auto 0; padding: 0 0 28px; max-width: 1180px; }
.tablero a {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
    border-top: 1px solid rgba(243, 239, 230, 0.28);
    color: var(--paper);
    text-decoration: none;
    font-size: 1.15rem;
    line-height: 1.4;
}
.tablero li:last-child a { border-bottom: 1px solid rgba(243, 239, 230, 0.28); }
.tablero a:hover { background: rgba(255, 252, 247, 0.08); color: white; }
.tablero a span:first-child { font-weight: 700; }
.tablero a span:last-child { color: #ffd0d6; font-weight: 700; }

.bloque { padding: 20px 0 72px; }
.malla {
    max-width: 1180px;
    margin: 28px auto 0;
    padding: 0 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.carta {
    display: flex;
    flex-direction: column;
    background: var(--white);
    color: var(--ink);
    text-decoration: none;
    border: 2px solid var(--line);
    border-radius: 10px;
    min-height: 100%;
}
.carta img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.carta p, .carta h3 { margin-left: 18px; margin-right: 18px; }
.carta h3 { margin-top: 6px; }
.carta p:last-child { color: var(--muted); margin-bottom: 20px; }
.carta-tipo {
    margin-top: 16px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--blue) !important;
}
.carta:hover { border-color: var(--blue); }
.carta-oscura {
    background: var(--blue-dark);
    color: white;
    border-color: var(--blue-dark);
    justify-content: flex-start;
    padding-top: 22px;
    min-height: 100%;
}
.carta-oscura .carta-tipo { color: #ffd0d6 !important; }
.carta-oscura p:last-of-type { color: #f4f7fb; }
.carta-ir { margin: 0 18px 20px; font-weight: 700; font-size: 1.15rem; }

.pasos { background: var(--paper-2); padding-bottom: 64px; }
.pasos ol {
    list-style: none;
    max-width: 1180px;
    margin: 18px auto 0;
    padding: 0 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.pasos li { border-top: 3px solid var(--ink); padding-top: 14px; }
.pasos span { color: var(--red); font-weight: 700; font-size: 1.15rem; }

.oficina {
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px 22px;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 48px;
}
.oficina-dir { font-size: 1.35rem; }
table { width: 100%; border-collapse: collapse; font-size: 1.1rem; }
th, td { text-align: left; font-weight: 400; padding: 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
th { width: 46%; color: var(--muted); font-weight: 700; }
.nota { color: var(--muted); font-size: 1.15rem; }
.nota a, .entradilla a, .prosa a, .pie a, .check a { text-decoration: underline; }

.formulario-pagina, .estrecho, .prosa { max-width: 820px; margin: 0 auto; padding-left: 22px; padding-right: 22px; }
.formulario { display: grid; gap: 18px; margin-top: 8px; }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label { display: grid; gap: 8px; font-size: 1.15rem; font-weight: 700; }
input, select, textarea {
    width: 100%;
    min-height: 56px;
    font: 400 1.2rem var(--sans);
    line-height: 1.4;
    color: var(--ink);
    background: var(--white);
    border: 2px solid #5c6570;
    border-radius: 8px;
    padding: 12px 14px;
}
textarea { min-height: 140px; resize: vertical; }
.campo-ancho { grid-column: 1 / -1; }
.check { font-weight: 400; font-size: 1.1rem; grid-template-columns: auto 1fr; align-items: start; gap: 12px; }
.check input { width: 1.5rem; height: 1.5rem; min-height: 1.5rem; margin-top: 0.2rem; }
.trampa {
    display: none;
}
.aviso {
    background: var(--white);
    color: var(--ink);
    border: 2px solid var(--red);
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 0 16px;
    font-size: 1.15rem;
}
.aviso ul { margin: 0; padding-left: 1.2em; }

.prosa h2 { font-size: 1.8rem; margin-top: 1.2em; }
.leads { display: grid; gap: 14px; }
.leads article {
    background: var(--white);
    border: 2px solid var(--line);
    border-radius: 10px;
    padding: 16px 18px;
}
.leads header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.leads time { font-size: 1rem; font-weight: 700; color: var(--muted); }

.pie { background: var(--white); border-top: 2px solid var(--line); padding: 40px 22px 28px; }
.pie-dentro {
    max-width: 1180px;
    margin: 0 auto 18px;
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 32px;
}
.pie h2 { font-family: var(--sans); font-size: 1.2rem; font-weight: 700; letter-spacing: 0; }
.pie img { height: 52px; width: auto; margin-bottom: 12px; }
.pie p, .pie a { font-size: 1.1rem; }
.pie-fin { max-width: 1180px; margin: 0 auto; color: var(--muted); font-size: 1.05rem; }
.pie-corto { padding: 18px 22px 28px; }
.pie-corto .pie-fin { text-align: center; }
.nav-abre span { width: 100%; }
.quienes {
    width: min(720px, calc(100% - 28px));
    margin: 8px auto 56px;
}
.quienes h1 {
    font-family: var(--sans);
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    letter-spacing: -0.03em;
    margin: 0 0 8px;
}
.quienes-logo { height: 58px; width: auto; margin: 4px 0 12px; }
.quienes-bloque,
.quienes-contactos {
    margin: 16px 0;
    padding: 16px;
    border: 1px solid #e4eaf3;
    border-radius: 18px;
    background: #fff;
}
.quienes h2 {
    font-family: var(--sans);
    font-size: 1.15rem;
    margin: 0 0 8px;
}
.quienes-bloque h2:not(:first-child) { margin-top: 16px; }
.quienes-bloque ul { margin: 0; padding-left: 1.1em; }
.quienes-contactos { display: grid; gap: 8px; }
.quienes-contactos a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 8px 12px;
    border-radius: 12px;
    background: #f3f6fb;
    color: #06306e;
    font-weight: 700;
    text-decoration: none;
}
.quienes .nota { margin: 12px 0 0; }

.ficha {
    max-width: 1100px;
    margin: 0 auto;
    padding: 28px 22px 72px;
}
.ficha-volver {
    margin: -28px -22px 22px;
    padding: 14px 22px;
    background: var(--hero);
}
.ficha h1 { overflow-wrap: break-word; }
.ficha-foto {
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 12px;
    margin: 8px 0 18px;
    box-shadow: 0 12px 28px rgba(61, 42, 18, 0.12);
}
.oferta-panfleto {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    background: #fff;
}
.oferta-pdf {
    width: 100%;
    height: 72vh;
    min-height: 480px;
    border: 1px solid #e6edf6;
    border-radius: 16px;
    background: #fff;
}
.oferta-precio { margin: 12px 0 18px; }
body.oferta-completa { overflow: hidden; background: #06306e; }
body.oferta-completa .saltar,
body.oferta-completa .cabeza,
body.oferta-completa .pie { display: none; }
body.oferta-completa main { margin: 0; padding: 0; }
.oferta-escena {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #06306e;
}
.oferta-escena .oferta-panfleto,
.oferta-escena .oferta-pdf {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    background: #06306e;
}
.oferta-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.oferta-volver-fija {
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 16px;
    border-radius: 999px;
    background: #fff;
    color: #06306e;
    font-weight: 700;
    text-decoration: none;
}
.oferta-cierra {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.oferta-aviso-fondo {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    padding: 22px;
}
.oferta-cierra:checked ~ .oferta-aviso-fondo { display: none; }
.oferta-aviso-velo {
    position: absolute;
    inset: 0;
    background: rgba(6, 24, 56, 0.72);
    color: transparent;
    cursor: pointer;
}
.oferta-aviso {
    position: relative;
    z-index: 1;
    width: min(440px, 100%);
    padding: 28px 22px;
    border-radius: 18px;
    background: #fff;
    color: #121820;
    text-align: center;
    box-shadow: 0 24px 60px rgba(6, 48, 110, 0.35);
}
.oferta-aviso h2 {
    margin: 0 0 18px;
    color: #06306e;
    font-size: 1.7rem;
}
.oferta-aviso .boton { width: 100%; margin-top: 10px; }
body.oferta-completa .oferta-aviso-fondo {
    inset: auto;
    top: 68px;
    left: 12px;
    display: block;
    width: min(232px, calc(100vw - 24px));
    padding: 0;
}
body.oferta-completa .oferta-aviso-velo { display: none; }
body.oferta-completa .oferta-aviso {
    width: 100%;
    padding: 10px 10px 8px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.94);
    text-align: left;
    box-shadow: 0 8px 20px rgba(6, 48, 110, 0.16);
}
body.oferta-completa .oferta-aviso h2 {
    margin: 0 0 6px;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.3;
}
body.oferta-completa .oferta-aviso .boton {
    min-height: 32px;
    margin-top: 5px;
    padding: 4px 8px;
    border-width: 1px;
    border-radius: 7px;
    font-size: 0.78rem;
}
.pwa-aviso-fondo {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(6, 24, 56, 0.72);
}
.pwa-aviso {
    width: min(440px, 100%);
    padding: 28px 22px;
    border-radius: 18px;
    background: #fff;
    color: #121820;
    text-align: center;
    box-shadow: 0 24px 60px rgba(6, 48, 110, 0.35);
}
.pwa-aviso h2 {
    margin: 0 0 10px;
    color: #06306e;
    font-size: 1.7rem;
}
.pwa-aviso p { margin: 0 0 8px; }
.pwa-aviso-nota { color: #243040; font-size: 1rem; }
.pwa-aviso .boton { width: 100%; margin-top: 10px; }
.datos-viaje {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 8px 0 28px;
}
.datos-viaje div {
    background: var(--white);
    border: 2px solid var(--line);
    border-radius: 10px;
    padding: 14px 16px;
}
.datos-viaje span {
    display: block;
    font-weight: 700;
    color: var(--blue);
    font-size: 1.05rem;
}
.datos-viaje strong {
    display: block;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.3;
}
.ficha-acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.ficha ul { font-size: 1.25rem; padding-left: 1.3em; }
.ficha li { margin: 0.35em 0; }

.oferta {
    border-color: #d7c4a3;
    box-shadow: none;
    overflow: hidden;
}
.oferta:hover { border-color: #8a5a12; }
.oferta h3 a { color: var(--ink); }
.carta-cuerpo { display: flex; flex-direction: column; flex: 1; }
.pastillas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.pastilla {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 4px 12px;
    border-radius: 999px;
    background: #f3ead7;
    color: #3d2a12;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1.2;
}
.oferta h3 { margin-top: 10px; }
.carta-resumen { color: var(--muted); flex: 1; }
.carta-precio {
    margin: 8px 18px 0;
    padding: 12px 14px;
    background: var(--white);
    border: 2px solid var(--line);
    border-radius: 8px;
    box-shadow: none;
}
.carta-precio strong {
    display: block;
    font-family: var(--serif);
    font-size: 2.1rem;
    line-height: 1.1;
    color: #e10600;
}
.carta-precio span { display: block; font-weight: 700; font-size: 1.1rem; }
.carta-llama { color: #3d2a12; margin-top: 4px; }
.carta-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin: 16px 18px 18px;
}
.carta-acciones .carta-ir { margin: 0; }
.ficha-cuerpo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
}
.panel-reserva {
    position: sticky;
    top: 108px;
    background: var(--white);
    border: 2px solid var(--line);
    border-radius: 12px;
    padding: 18px 18px 8px;
    box-shadow: none;
}
.panel-kicker {
    margin: 0 0 4px;
    font-weight: 700;
    color: #8a5a12;
    font-size: 1.1rem;
}
.panel-precio {
    font-family: var(--serif);
    font-size: clamp(2.2rem, 4vw, 3.2rem);
    line-height: 1.05;
    font-weight: 700;
    margin: 0 0 0.35em;
    color: #e10600;
}
.panel-precio span {
    display: block;
    font-family: var(--sans);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--muted);
    margin-top: 6px;
}
.panel-reserva .boton { width: 100%; margin: 0 0 10px; }
.pago-elige { border: 0; margin: 0; padding: 0; display: grid; gap: 12px; }
.pago-elige legend { font-weight: 700; font-size: 1.25rem; margin-bottom: 4px; padding: 0; }
.pago-opcion {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    border: 2px solid #5c6570;
    border-radius: 10px;
    padding: 14px 16px;
    background: var(--white);
    font-weight: 400;
}
.pago-opcion:has(input:checked) { border-color: var(--boton); background: var(--paper-2); }
.pago-opcion input { width: 1.6rem; height: 1.6rem; min-height: 1.6rem; margin-top: 0.35rem; }
.total-reserva { font-size: 1.35rem; }
.total-reserva strong { font-family: var(--serif); font-size: 2rem; color: #e10600; }
.aviso-ok {
    background: var(--white);
    border: 2px solid #1d5c28;
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 0 16px;
}
.estado-si { color: #1d5c28; font-weight: 700; }
.estado-no { color: var(--red); font-weight: 700; }
.estado-espera { color: #6b4108; font-weight: 700; }
.telefono-grande { font-size: 2rem; font-weight: 700; line-height: 1.2; }
.telefono-grande a { text-decoration: none; }
.cuadro { margin: 8px 0 18px; }

@media (max-width: 900px) {
    .cabeza { padding-top: env(safe-area-inset-top, 0px); }
    .cabeza-dentro { grid-template-columns: 1fr; }
    .marca-bloque { flex-wrap: nowrap; justify-content: space-between; gap: 12px; padding: 8px 14px; }
    .marca img { height: 46px; }
    .tel-bajo { display: none; }
    .cuenta-bajo { flex: 0 0 auto; width: auto; min-height: 48px; }
    .invitacion {
        justify-content: space-between;
        gap: 10px;
        padding: 8px 14px;
        border-left: 0;
        border-top: 2px solid var(--line);
    }
    .invitacion-pregunta { font-size: 1.05rem; }
    .invitacion-accion { min-height: 44px; font-size: 1.05rem; padding: 6px 12px; }
    .eleccion a { min-height: 58px; border-top: 2px solid var(--line); border-left: 0; font-size: 1.15rem; padding: 10px 8px; }
    body:not(.admin) { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
    .llama-fija {
        display: flex;
        position: fixed;
        z-index: 30;
        left: 0;
        right: 0;
        bottom: 0;
        align-items: center;
        justify-content: center;
        min-height: 64px;
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
        background: var(--boton);
        color: var(--sobre);
        font-weight: 700;
        font-size: 1.25rem;
        line-height: 1.2;
        text-align: center;
        text-decoration: none;
    }
    .llama-fija:hover { background: var(--boton-oscuro); color: var(--sobre); }
    .llama-fija:focus-visible { outline-color: white; }
    body.teclado-abierto { padding-bottom: 0; }
    body.teclado-abierto .llama-fija { display: none; }
    html { scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
    .bifurca, .viaje, .hero, .oficina, .malla, .pasos ol, .pie-dentro, .campos, .datos-viaje, .ficha-cuerpo { grid-template-columns: 1fr; }
    .panel-reserva { position: static; order: -1; }
    .carta-acciones .boton { width: 100%; }
    .bifurca {
        min-height: calc(100svh - 7.75rem - env(safe-area-inset-top, 0px) - 4.5rem - env(safe-area-inset-bottom, 0px));
        grid-template-rows: 1fr 1fr;
    }
    .puerta { min-height: 190px; padding: 20px 18px 22px; }
    .puerta strong { font-size: clamp(2rem, 8vw, 2.6rem); }
    .viaje-texto { padding: 32px 22px 40px; }
    .hero-mosaico { grid-template-columns: 1fr; min-height: 0; }
    .hero-mosaico-texto { justify-content: flex-start; gap: 14px; padding: 20px 18px 16px; }
    .hero-mosaico-texto h1 { font-size: 2.4rem; }
    .hero-mosaico-texto .entradilla { font-size: 1.25rem; }
    .hero-mosaico-texto .nota { font-size: 1.15rem; }
    .hero-mosaico .hero-mosaico-tipos,
    body.piel-revista .hero-mosaico-tipos {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: minmax(280px, auto);
    }
    .hero-mosaico-5 .puerta-tipo:first-child,
    .hero-mosaico-3 .puerta-tipo:first-child,
    body.piel-revista .hero-mosaico-5 .puerta-tipo:first-child,
    body.piel-revista .hero-mosaico-3 .puerta-tipo:first-child {
        grid-row: auto;
        grid-column: auto;
    }
    .hero-mosaico-1 .hero-mosaico-tipos { grid-template-columns: 1fr; }
    .puerta-tipo { min-height: 240px; padding: 22px 20px 24px; }
    .puerta-tipo strong,
    .hero-mosaico-5 .puerta-tipo:first-child strong,
    .hero-mosaico-3 .puerta-tipo:first-child strong { font-size: 2.2rem; }
    .hero { min-height: 0; }
    .hero-texto { padding: 32px 22px 28px; }
    .hero-foto { min-height: 0; }
    .hero-foto img { aspect-ratio: 16 / 10; height: auto; }
    .tablero a { grid-template-columns: 1fr; }
    .leads header { flex-direction: column; }
}

@media (max-width: 700px) {
    .hero-mosaico .hero-mosaico-tipos,
    .hero-mosaico-1 .hero-mosaico-tipos { grid-template-columns: 1fr; }
    .hero-mosaico-5 .puerta-tipo:first-child,
    .hero-mosaico-3 .puerta-tipo:first-child { grid-row: auto; grid-column: auto; }
    .puerta-tipo { min-height: 210px; }
}

@media (max-width: 400px) {
    .eleccion a { font-size: 1.05rem; }
    .invitacion-pregunta,
    .invitacion-accion { font-size: 0.98rem; }
    .llama-fija { font-size: 1.12rem; }
}

@media print {
    .llama-fija { display: none !important; }
    body:not(.admin) { padding-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
    * { scroll-behavior: auto !important; }
}

.elige-asiento { margin: 8px 0 4px; }
.autobus {
    max-width: 420px;
    margin: 0 auto 8px;
    background: var(--white);
    border: 4px solid var(--blue-dark);
    border-radius: 72px 72px 18px 18px;
    padding: 14px 12px 12px;
}
.autobus-morro { text-align: center; margin-bottom: 12px; }
.autobus-lado,
.autobus-atras {
    margin: 0;
    font-weight: 700;
    color: var(--blue-dark);
    font-size: 0.95rem;
}
.autobus-atras { text-align: center; margin: 10px 0 0; }
.autobus-frente {
    display: grid;
    grid-template-columns: 1fr 1fr 22px 1fr 1fr;
    column-gap: 6px;
    row-gap: 4px;
    align-items: center;
    margin-bottom: 8px;
}
.autobus-frente .autobus-lado {
    grid-column: 1 / -1;
    text-align: center;
}
.autobus-frente .autobus-conductor {
    grid-column: 1 / 3;
    grid-row: 2 / 4;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    min-height: 68px;
    background: var(--blue-dark);
    color: white;
    font-weight: 700;
    border-radius: 10px;
    padding: 6px 8px;
    font-size: 0.82rem;
    text-align: center;
}
.autobus-frente .autobus-puerta {
    grid-column: 4 / 6;
    grid-row: 2;
    margin: 0;
    text-align: center;
    font-weight: 700;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--blue-dark);
}
.autobus-frente .asiento.guia {
    grid-column: 4;
    grid-row: 3;
}
.autobus-filas { display: grid; gap: 5px; }
.autobus-fila {
    display: grid;
    grid-template-columns: 1fr 1fr 22px 1fr 1fr;
    gap: 6px;
    align-items: stretch;
}
.autobus-fila-fondo { grid-template-columns: repeat(5, 1fr); }
.autobus-pasillo { display: block; }
.autobus-wc {
    grid-column: 4 / 6;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-width: 0;
}
.autobus-puerta-media {
    display: block;
    text-align: center;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.1;
    color: var(--blue-dark);
}
.asiento,
button.asiento,
span.asiento {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    margin: 0;
    padding: 2px;
    border: 2px solid var(--blue-dark);
    border-radius: 7px;
    background: var(--white);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.1;
    cursor: pointer;
    text-align: center;
}
button.asiento { width: 100%; appearance: none; }
span.asiento { cursor: default; }
.asiento.elegido,
button.asiento.elegido {
    background: var(--boton);
    border-color: var(--boton);
    color: var(--sobre);
}
.asiento.ocupado,
span.asiento.ocupado {
    background: #cfc8bc;
    border-color: #5c564c;
    color: #121820;
    cursor: not-allowed;
}
.asiento.fijo,
span.asiento.fijo {
    background: #e10600;
    border-color: #9a0000;
    color: #fff;
    cursor: not-allowed;
}
.asiento.monitor,
span.asiento.monitor {
    background: #e10600;
    border-color: #9a0000;
    color: #fff;
    cursor: not-allowed;
}
.asiento.guia,
span.asiento.guia {
    background: #e7eef6;
    border: 2px dashed var(--blue-dark);
    color: var(--blue-dark);
    cursor: default;
    font-size: 0.78rem;
}
.autobus-aseo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    border: 2px dashed var(--blue-dark);
    border-radius: 8px;
    color: var(--blue-dark);
    font-weight: 700;
    font-size: 0.85rem;
    background: #e7eef6;
    text-align: center;
}
.autobus-leyenda {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 0;
}
.autobus-leyenda .asiento {
    min-height: 44px;
    min-width: 92px;
    padding: 8px 12px;
    font-size: 0.95rem;
    cursor: default;
}
.autobus-aviso {
    font-weight: 700;
    color: var(--blue-dark);
    min-height: 1.4em;
}
fieldset.suplemento-plaza {
    border: 2px solid var(--line);
    border-radius: 10px;
    padding: 12px 14px 16px;
    margin: 0;
}
fieldset.suplemento-plaza legend {
    font-weight: 700;
    padding: 0 6px;
}
.plazas-manual.js-oculta {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

body.piel-minimalista {
    --blue: #1a1a1a;
    --blue-dark: #111111;
    --ink: #1a1a1a;
    --paper: #f7f7f5;
    --paper-2: #efefec;
    --white: #ffffff;
    --line: #d8d8d4;
    --muted: #333333;
    --boton: #1a1a1a;
    --boton-oscuro: #000000;
    --sobre: #ffffff;
    --hero: #f7f7f5;
    --hero-ink: #1a1a1a;
    --hero-suave: #333333;
    --marca: #e6e6e2;
    --serif: "Atkinson Hyperlegible", "Segoe UI", sans-serif;
}

body.piel-brutal {
    --blue: #111111;
    --blue-dark: #000000;
    --ink: #111111;
    --paper: #ffffff;
    --paper-2: #f2f2f2;
    --white: #ffffff;
    --line: #111111;
    --muted: #111111;
    --boton: #111111;
    --boton-oscuro: #000000;
    --sobre: #ffffff;
    --hero: #111111;
    --hero-ink: #ffffff;
    --hero-suave: #ffffff;
    --marca: #111111;
    --serif: "Atkinson Hyperlegible", "Segoe UI", sans-serif;
}
body.piel-brutal,
body.piel-brutal * { border-radius: 0 !important; }
body.piel-brutal h1,
body.piel-brutal h2 { text-transform: uppercase; letter-spacing: 0.03em; }

body.piel-mediterranea {
    --blue: #0e4d4a;
    --blue-dark: #083330;
    --ink: #1c1915;
    --paper: #f4efe6;
    --paper-2: #e7dfd2;
    --white: #fffaf3;
    --line: #d4c6b0;
    --muted: #3d3428;
    --boton: #0e4d4a;
    --boton-oscuro: #083330;
    --sobre: #fffaf3;
    --hero: #0e4d4a;
    --hero-ink: #f4efe6;
    --hero-suave: #d5ebe6;
    --marca: #083330;
}

body.piel-noche {
    color-scheme: dark;
    --blue: #c5d7ff;
    --blue-dark: #e7eeff;
    --ink: #f3f0e8;
    --red: #ff8f9a;
    --paper: #14181f;
    --paper-2: #1c222c;
    --white: #1e2530;
    --line: #3d4858;
    --muted: #d5dbe6;
    --boton: #1e4db7;
    --boton-oscuro: #163a8a;
    --sobre: #ffffff;
    --hero: #0d1117;
    --hero-ink: #f3f0e8;
    --hero-suave: #c5d7ff;
    --marca: #0a0d12;
}
body.piel-noche .estado-si { color: #8ddeaf; }
body.piel-noche .estado-espera { color: #f0c27a; }
body.piel-noche .estado-no { color: #ffb3bc; }

body.piel-roja {
    --blue: #7a0010;
    --blue-dark: #5c000c;
    --ink: #1a0a0c;
    --red: #9d1024;
    --paper: #fff1ef;
    --paper-2: #ffd9d4;
    --white: #ffffff;
    --line: #1a0a0c;
    --muted: #4a1a22;
    --boton: #9d1024;
    --boton-oscuro: #6e0b18;
    --sobre: #ffffff;
    --hero: #7a0010;
    --hero-ink: #fff6f4;
    --hero-suave: #ffd0d4;
    --marca: #1a0a0c;
    border-left: 14px solid #9d1024;
    background: #fff1ef;
}
body.piel-roja :focus-visible { outline-color: #1a0a0c; }
body.piel-roja h1,
body.piel-roja h2 { text-transform: uppercase; letter-spacing: 0.02em; }
body.piel-roja .cabeza {
    background: #9d1024;
    border-bottom: 10px solid #1a0a0c;
}
body.piel-roja .cabeza-dentro { grid-template-columns: 1fr; }
body.piel-roja .marca-bloque { justify-content: space-between; padding: 12px 22px; }
body.piel-roja .marca { background: #ffffff; padding: 6px 8px; }
body.piel-roja .cuenta-bajo { background: #ffffff; color: #1a0a0c; border-color: #1a0a0c; }
body.piel-roja .invitacion {
    justify-content: space-between;
    border-left: 0;
    border-top: 4px solid #1a0a0c;
    background: #7a0010;
    color: #ffffff;
}
body.piel-roja .invitacion-accion { background: #ffffff; color: #1a0a0c; }
body.piel-roja .invitacion:hover .invitacion-accion,
body.piel-roja .invitacion:focus-visible .invitacion-accion { background: #fff6f4; color: #1a0a0c; }
body.piel-roja .eleccion a {
    min-height: 76px;
    background: #7a0010;
    color: #ffffff;
    border-left: 0;
    border-top: 4px solid #1a0a0c;
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    text-transform: uppercase;
}
body.piel-roja .eleccion a[aria-current="page"],
body.piel-roja .eleccion a:hover { background: #1a0a0c; color: #ffffff; }
body.piel-roja .bifurca {
    grid-template-columns: 1fr;
    min-height: 0;
}
body.piel-roja .puerta {
    min-height: 72vh;
    justify-content: flex-start;
    border-bottom: 14px solid #1a0a0c;
    padding: 32px 6vw 28px;
}
body.piel-roja .puerta-nacional {
    background-image: linear-gradient(to bottom, #7a0010 0 38%, rgba(122, 0, 16, 0.2) 64%, rgba(0, 0, 0, 0.25)), url("../img/costa.jpg?v=2");
}
body.piel-roja .puerta-fuera {
    background-image: linear-gradient(to bottom, #7a0010 0 38%, rgba(122, 0, 16, 0.2) 64%, rgba(0, 0, 0, 0.25)), url("../img/laguna.jpg?v=2");
}
body.piel-roja .puerta span,
body.piel-roja .puerta strong { text-shadow: none; }
body.piel-roja .puerta span { font-size: 1.45rem; }
body.piel-roja .puerta strong {
    font-size: clamp(3.2rem, 8vw, 6.2rem);
    text-transform: uppercase;
}
body.piel-roja .hero-mosaico {
    grid-template-columns: 1fr;
    gap: 0;
    min-height: 0;
    background: #1a0a0c;
}
body.piel-roja .hero-mosaico-texto {
    min-height: 0;
    justify-content: flex-start;
    gap: 12px;
    padding: 28px 6vw 22px;
    background: #7a0010;
    border-bottom: 12px solid #1a0a0c;
}
body.piel-roja .hero-mosaico-texto h1 { font-size: clamp(3rem, 7vw, 5.4rem); }
body.piel-roja .hero-mosaico-tipos {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-rows: minmax(180px, auto);
    gap: 0;
}
body.piel-roja .hero-mosaico-5 .puerta-tipo:first-child,
body.piel-roja .hero-mosaico-3 .puerta-tipo:first-child {
    grid-row: auto;
    grid-column: auto;
}
body.piel-roja .puerta-tipo {
    position: relative;
    min-height: 196px;
    justify-content: center;
    padding: 22px 46% 22px 28px;
    color: #ffffff;
    border-bottom: 8px solid #1a0a0c;
}
body.piel-roja .puerta-tipo::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 58%;
    background: #7a0010;
}
body.piel-roja .puerta-tipo > * { position: relative; z-index: 1; }
body.piel-roja .puerta-tipo strong,
body.piel-roja .puerta-tipo-cuenta,
body.piel-roja .puerta-tipo-desc,
body.piel-roja .puerta-tipo-ir,
body.piel-roja .puerta-tipo-lisa strong,
body.piel-roja .puerta-tipo-lisa .puerta-tipo-cuenta,
body.piel-roja .puerta-tipo-lisa .puerta-tipo-desc,
body.piel-roja .puerta-tipo-lisa .puerta-tipo-ir { text-shadow: none; color: #ffffff; }
body.piel-roja .puerta-tipo strong { text-transform: uppercase; font-size: clamp(1.9rem, 3vw, 2.8rem); }
body.piel-roja .seccion-cabeza {
    max-width: none;
    margin: 0;
    padding: 36px 6vw 8px;
}
body.piel-roja .seccion-cabeza h1 { border-bottom: 8px solid #9d1024; padding-bottom: 8px; }
body.piel-roja .malla {
    max-width: 980px;
    grid-template-columns: 1fr;
    gap: 0;
}
body.piel-roja .carta.oferta {
    flex-direction: row;
    align-items: stretch;
    border: 0;
    border-bottom: 6px solid #1a0a0c;
    border-radius: 0;
    box-shadow: none;
    background: #ffffff;
}
body.piel-roja .carta.oferta img {
    width: 34%;
    flex: 0 0 34%;
    min-height: 220px;
    aspect-ratio: auto;
    object-fit: cover;
}
body.piel-roja .ficha { max-width: none; padding: 28px 0 72px; }
body.piel-roja .ficha > .ficha-volver {
    margin: -28px 0 22px;
    padding-left: 6vw;
    padding-right: 6vw;
}
body.piel-roja .ficha > .kicker,
body.piel-roja .ficha > h1,
body.piel-roja .ficha > .entradilla { padding-left: 6vw; padding-right: 6vw; }
body.piel-roja .ficha-foto {
    max-height: 68vh;
    margin: 12px 0 0;
    border-radius: 0;
    box-shadow: none;
}
body.piel-roja .ficha-cuerpo { padding: 22px 6vw 0; }
body.piel-roja .boton,
body.piel-roja .tel-bajo,
body.piel-roja .cuenta-bajo,
body.piel-roja input,
body.piel-roja select,
body.piel-roja textarea,
body.piel-roja .aviso,
body.piel-roja .aviso-ok,
body.piel-roja .panel-reserva,
body.piel-roja .datos-viaje div,
body.piel-roja .pastilla,
body.piel-roja .carta-precio,
body.piel-roja .pago-opcion,
body.piel-roja .leads article { border-radius: 0; }
body.piel-roja .panel-reserva { border: 4px solid #1a0a0c; border-top: 14px solid #9d1024; }
body.piel-roja .panel-kicker { color: #9d1024; }
body.piel-roja .pie {
    background: #1a0a0c;
    color: #fff6f4;
    border-top: 0;
}
body.piel-roja .pie-dentro { grid-template-columns: 1fr; gap: 18px; }
body.piel-roja .pie h2 { color: #ffd0d4; }
body.piel-roja .pie a { color: #ffffff; }
body.piel-roja .pie img { background: #ffffff; padding: 6px 8px; }
body.piel-roja .pie-fin { color: #ffd0d4; }

body.piel-revista {
    --blue: #6e1230;
    --blue-dark: #4c0c22;
    --ink: #1a120c;
    --red: #6e1230;
    --paper: #f6f1e7;
    --paper-2: #e7dfd0;
    --white: #fffdf8;
    --line: #1a120c;
    --muted: #3d3228;
    --boton: #1a120c;
    --boton-oscuro: #000000;
    --sobre: #fffdf8;
    --hero: #1a120c;
    --hero-ink: #f6f1e7;
    --hero-suave: #f0d5dc;
    --marca: #e6dfd2;
    background: #f6f1e7;
}
body.piel-revista .cabeza {
    position: static;
    background: transparent;
    border-bottom: 0;
}
body.piel-revista .cabeza-dentro {
    display: block;
    max-width: 1180px;
    margin: 0 auto;
    min-height: 0;
    padding: 18px 22px 0;
}
body.piel-revista .marca-bloque {
    justify-content: space-between;
    border-bottom: 4px solid #1a120c;
    padding: 0 0 12px;
}
body.piel-revista .invitacion {
    justify-content: flex-start;
    gap: 18px;
    border-left: 0;
    border-bottom: 1px solid #1a120c;
    padding: 12px 0;
    background: transparent;
    color: #1a120c;
}
body.piel-revista .invitacion-pregunta,
body.piel-revista .invitacion-accion {
    font-family: var(--serif);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
}
body.piel-revista .invitacion-accion {
    min-height: 0;
    padding: 0;
    background: transparent;
    color: #6e1230;
    text-decoration: underline;
    text-underline-offset: 4px;
    border-radius: 0;
}
body.piel-revista .invitacion:hover .invitacion-accion,
body.piel-revista .invitacion:focus-visible .invitacion-accion { background: transparent; color: #1a120c; }
body.piel-revista .eleccion {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 32px;
    border-bottom: 1px solid #1a120c;
}
body.piel-revista .eleccion a {
    border: 0;
    background: transparent;
    color: #1a120c;
    min-height: 68px;
    padding: 12px 0;
    justify-content: flex-start;
    font-family: var(--serif);
    font-size: clamp(1.6rem, 2.5vw, 2.15rem);
}
body.piel-revista .eleccion a[aria-current="page"] {
    background: transparent;
    color: #6e1230;
    box-shadow: inset 0 -6px 0 #6e1230;
}
body.piel-revista .eleccion a:hover { background: transparent; color: #6e1230; }
body.piel-revista .bifurca {
    grid-template-columns: minmax(0, 1.85fr) minmax(16rem, 0.72fr);
    gap: 12px;
    min-height: calc(100svh - 160px);
    padding: 12px;
    background: #f6f1e7;
}
body.piel-revista .puerta { min-height: 76vh; }
body.piel-revista .puerta-nacional strong { font-size: clamp(3.3rem, 6vw, 6rem); }
body.piel-revista .puerta-fuera {
    justify-content: flex-start;
    padding-top: 28px;
    background-image: linear-gradient(to bottom, rgba(8, 16, 28, 0.45) 0%, rgba(8, 16, 28, 0.12) 24%, rgba(8, 16, 28, 0) 42%), url("../img/laguna.jpg?v=2");
}
body.piel-revista .puerta-fuera strong { font-size: clamp(2.2rem, 3vw, 3.3rem); }
body.piel-revista .hero-mosaico {
    grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.45fr);
    gap: 16px;
    min-height: 0;
    padding: 16px;
    background: transparent;
}
body.piel-revista .hero-mosaico-texto {
    background: transparent;
    color: #1a120c;
    justify-content: flex-start;
    padding: 8px 8px 8px 12px;
}
body.piel-revista .hero-mosaico-lugar,
body.piel-revista .hero-mosaico-texto h1,
body.piel-revista .hero-mosaico-texto .kicker,
body.piel-revista .hero-mosaico-texto .entradilla,
body.piel-revista .hero-mosaico-texto .nota,
body.piel-revista .hero-mosaico-texto a { color: #1a120c; }
body.piel-revista .hero-mosaico-texto a:hover { color: #6e1230; }
body.piel-revista .hero-mosaico-texto h1 { font-size: clamp(3.2rem, 5.5vw, 5.4rem); }
body.piel-revista .hero-mosaico-tipos {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
    grid-auto-rows: minmax(220px, auto);
    gap: 12px;
    background: transparent;
}
body.piel-revista .hero-mosaico-5 .puerta-tipo:first-child,
body.piel-revista .hero-mosaico-3 .puerta-tipo:first-child {
    grid-row: auto;
    grid-column: 1 / -1;
    min-height: 320px;
}
body.piel-revista .seccion-cabeza { max-width: 1100px; padding-top: 32px; }
body.piel-revista .seccion-cabeza h1 { font-size: clamp(3rem, 6vw, 5rem); max-width: 16ch; }
body.piel-revista .malla { grid-template-columns: 1fr 1fr; max-width: 1100px; gap: 22px 28px; }
body.piel-revista .malla > .carta:first-child {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: stretch;
}
body.piel-revista .malla > .carta:first-child img {
    width: 52%;
    flex: 0 0 52%;
    min-height: 300px;
    aspect-ratio: auto;
    object-fit: cover;
}
body.piel-revista .ficha h1 { font-size: clamp(2.8rem, 5vw, 4.6rem); max-width: 18ch; }
body.piel-revista .ficha-foto { border-radius: 0; }
body.piel-revista .pie { background: transparent; border-top: 4px solid #1a120c; }
body.piel-revista .pie-dentro { grid-template-columns: 1fr; gap: 8px; text-align: center; }
body.piel-revista .pie img { margin-left: auto; margin-right: auto; }

body.piel-tablon {
    color-scheme: dark;
    --blue: #ffd0d4;
    --blue-dark: #ffe4e6;
    --ink: #f7f1ea;
    --red: #ffb3bc;
    --paper: #100d0c;
    --paper-2: #1c1412;
    --white: #1a1214;
    --line: #d0121a;
    --muted: #f0d2c8;
    --boton: #9d1024;
    --boton-oscuro: #6e0b18;
    --sobre: #ffffff;
    --hero: #d0121a;
    --hero-ink: #fff6f4;
    --hero-suave: #ffd0d4;
    --marca: #100d0c;
    background: #100d0c;
    color: #f7f1ea;
}
body.piel-tablon :focus-visible { outline-color: #ffffff; }
body.piel-tablon h1,
body.piel-tablon h2 { text-transform: uppercase; letter-spacing: 0.04em; }
body.piel-tablon .cabeza { background: #100d0c; border-bottom: 8px solid #d0121a; }
body.piel-tablon .marca { background: #ffffff; padding: 6px 8px; }
body.piel-tablon .invitacion {
    justify-content: flex-start;
    border-left: 8px solid #d0121a;
    background: transparent;
    color: #fff6f4;
}
body.piel-tablon .invitacion-accion { background: #d0121a; color: #ffffff; }
body.piel-tablon .invitacion:hover .invitacion-accion,
body.piel-tablon .invitacion:focus-visible .invitacion-accion { background: #ffffff; color: #100d0c; }
body.piel-tablon .eleccion { grid-template-columns: 1fr; }
body.piel-tablon .eleccion a {
    justify-content: flex-start;
    min-height: 64px;
    padding-left: 22px;
    background: transparent;
    color: #fff6f4;
    border-left: 8px solid #d0121a;
    border-top: 0;
    text-transform: uppercase;
}
body.piel-tablon .eleccion a[aria-current="page"],
body.piel-tablon .eleccion a:hover { background: #d0121a; color: #ffffff; }
body.piel-tablon .bifurca { grid-template-columns: 1fr; min-height: 0; background: #100d0c; }
body.piel-tablon .puerta {
    min-height: 34vh;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 22px;
    border-bottom: 10px solid #d0121a;
    padding: 28px 7vw;
}
body.piel-tablon .puerta-nacional {
    background-image: linear-gradient(90deg, #100d0c 0 62%, rgba(16, 13, 12, 0.72) 78%, rgba(16, 13, 12, 0.15)), url("../img/costa.jpg?v=2");
}
body.piel-tablon .puerta-fuera {
    background-image: linear-gradient(90deg, #100d0c 0 62%, rgba(16, 13, 12, 0.72) 78%, rgba(16, 13, 12, 0.15)), url("../img/laguna.jpg?v=2");
}
body.piel-tablon .puerta span,
body.piel-tablon .puerta strong { text-shadow: none; }
body.piel-tablon .puerta strong {
    flex: 1;
    font-size: clamp(2.6rem, 6vw, 4.8rem);
    text-transform: uppercase;
}
body.piel-tablon .puerta span { max-width: 16rem; font-size: 1.35rem; }
body.piel-tablon .hero-mosaico {
    grid-template-columns: 1fr;
    gap: 0;
    min-height: 0;
    background: #100d0c;
}
body.piel-tablon .hero-mosaico-texto {
    background: #100d0c;
    justify-content: flex-start;
    gap: 10px;
    padding: 28px 6vw 18px;
    border-bottom: 8px solid #d0121a;
}
body.piel-tablon .hero-mosaico-tipos {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #100d0c;
}
body.piel-tablon .puerta-tipo,
body.piel-tablon .puerta-tipo-lisa {
    display: grid;
    grid-template-columns: minmax(8rem, 14rem) minmax(0, 1fr);
    grid-template-rows: none;
    align-items: center;
    gap: 6px 24px;
    min-height: 0;
    padding: 20px 6vw;
    color: #fff6f4;
    background: #100d0c !important;
    background-image: none !important;
    border-bottom: 4px solid #d0121a;
}
body.piel-tablon .hero-mosaico-5 .puerta-tipo:first-child,
body.piel-tablon .hero-mosaico-3 .puerta-tipo:first-child { grid-row: auto; grid-column: auto; }
body.piel-tablon .puerta-tipo strong,
body.piel-tablon .puerta-tipo-cuenta,
body.piel-tablon .puerta-tipo-desc,
body.piel-tablon .puerta-tipo-ir { text-shadow: none; color: #fff6f4; }
body.piel-tablon .puerta-tipo-cuenta { color: #ffb4b8; }
body.piel-tablon .puerta-tipo strong { grid-column: 2; text-transform: uppercase; font-size: clamp(1.8rem, 3vw, 2.6rem); }
body.piel-tablon .puerta-tipo-desc,
body.piel-tablon .puerta-tipo-ir { grid-column: 1 / -1; }
body.piel-tablon .seccion-cabeza { max-width: 980px; margin: 0 auto; padding: 32px 22px 4px; }
body.piel-tablon .seccion-cabeza h1 { border-bottom: 6px solid #d0121a; padding-bottom: 8px; }
body.piel-tablon .malla { grid-template-columns: 1fr; max-width: 980px; gap: 0; }
body.piel-tablon .carta.oferta {
    flex-direction: row;
    align-items: stretch;
    background: transparent;
    color: #f7f1ea;
    border: 0;
    border-bottom: 4px solid #d0121a;
    border-radius: 0;
    box-shadow: none;
}
body.piel-tablon .carta.oferta img {
    width: 28%;
    flex: 0 0 28%;
    min-height: 168px;
    aspect-ratio: auto;
    object-fit: cover;
}
body.piel-tablon .carta h3 a { color: #fff6f4; }
body.piel-tablon .pastilla { background: #3a1518; color: #fff6f4; border-radius: 0; }
body.piel-tablon .carta-precio {
    background: #241416;
    border-left-color: #d0121a;
    border-radius: 0;
}
body.piel-tablon .carta-llama { color: #fff6f4; }
body.piel-tablon .carta-precio strong,
body.piel-tablon .total-reserva strong { color: #ff4d4d; }
body.piel-tablon .carta-ir { color: #ffd0d4; }
body.piel-tablon .ficha-foto { border-radius: 0; box-shadow: none; }
body.piel-tablon .panel-reserva {
    background: #1a1214;
    border: 2px solid #d0121a;
    border-top: 12px solid #d0121a;
    border-radius: 0;
}
body.piel-tablon .panel-kicker { color: #ffb4b8; }
body.piel-tablon .panel-precio { color: #ff4d4d; }
body.piel-noche .carta-precio strong,
body.piel-noche .panel-precio,
body.piel-noche .total-reserva strong { color: #ff4d4d; }
body.piel-tablon input,
body.piel-tablon select,
body.piel-tablon textarea {
    background: #ffffff;
    color: #1a120c;
    border-color: #d0121a;
}
body.piel-tablon .pie { background: #100d0c; border-top: 8px solid #d0121a; }
body.piel-tablon .pie-dentro { grid-template-columns: 1fr; }
body.piel-tablon .pie img { background: #ffffff; padding: 6px 8px; }
body.piel-tablon .pie a { color: #fff6f4; }
body.piel-tablon .estado-si { color: #8ddeaf; }
body.piel-tablon .estado-espera { color: #f0c27a; }
body.piel-tablon .estado-no { color: #ffb3bc; }

@media (max-width: 900px) {
    body.piel-revista .cabeza-dentro { padding: 10px 14px 0; }
    body.piel-revista .bifurca { grid-template-columns: 1fr; padding: 8px; }
    body.piel-revista .puerta,
    body.piel-revista .puerta-nacional,
    body.piel-revista .puerta-fuera { min-height: 52vh; }
    body.piel-revista .hero-mosaico { grid-template-columns: 1fr; padding: 12px; }
    body.piel-revista .malla > .carta:first-child { flex-direction: column; }
    body.piel-revista .malla > .carta:first-child img { width: 100%; flex-basis: auto; min-height: 200px; }
    body.piel-roja .ficha-cuerpo,
    body.piel-revista .ficha-cuerpo,
    body.piel-tablon .ficha-cuerpo { grid-template-columns: 1fr; }
    body.piel-tablon .cabeza-dentro { grid-template-columns: 1fr; }
    body.piel-tablon .puerta { min-height: 30vh; flex-direction: column; align-items: flex-start; }
    body.piel-tablon .carta.oferta { flex-direction: column; }
    body.piel-tablon .carta.oferta img { width: 100%; flex-basis: auto; min-height: 180px; }
}

@media (max-width: 700px) {
    body.piel-roja .puerta { min-height: 58vh; padding: 22px 18px; }
    body.piel-roja .puerta strong { font-size: clamp(2.6rem, 12vw, 3.6rem); }
    body.piel-roja .puerta-tipo { padding: 20px 18px 22px; }
    body.piel-roja .puerta-tipo::before { width: 100%; background: rgba(122, 0, 16, 0.9); }
    body.piel-roja .carta.oferta { flex-direction: column; }
    body.piel-roja .carta.oferta img { width: 100%; flex-basis: auto; min-height: 180px; aspect-ratio: 16 / 9; }
    body.piel-revista .hero-mosaico-tipos { grid-template-columns: 1fr; }
    body.piel-revista .malla { grid-template-columns: 1fr; }
    body.piel-tablon .puerta-tipo,
    body.piel-tablon .puerta-tipo-lisa { grid-template-columns: 1fr; }
    body.piel-tablon .puerta-tipo strong,
    body.piel-tablon .puerta-tipo-desc,
    body.piel-tablon .puerta-tipo-ir { grid-column: 1; }
}

@media (max-width: 400px) {
    body.piel-roja .eleccion a,
    body.piel-revista .eleccion a,
    body.piel-tablon .eleccion a { font-size: 1.2rem; }
    body.piel-roja .llama-fija,
    body.piel-revista .llama-fija,
    body.piel-tablon .llama-fija { font-size: 1.2rem; }
}

body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada {
    display: flex;
    flex-direction: column;
    height: calc(100svh - 88px);
    min-height: calc(100svh - 88px);
    background: #102033;
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada-escena {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada .bifurca {
    gap: 4px;
    height: 100%;
    min-height: 100%;
    background: #102033;
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta {
    justify-content: space-between;
    padding: 0;
    background-color: #102033;
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-nacional {
    background-image: linear-gradient(to bottom, rgba(8, 16, 28, 0.45) 0%, rgba(8, 16, 28, 0.12) 22%, rgba(8, 16, 28, 0) 42%), url("../img/costa.jpg?v=2");
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-fuera {
    background-image: linear-gradient(to bottom, rgba(8, 16, 28, 0.45) 0%, rgba(8, 16, 28, 0.12) 22%, rgba(8, 16, 28, 0) 42%), url("../img/laguna.jpg?v=2");
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-lema {
    display: block;
    padding: 32px 36px 0;
    max-width: 11em;
    font-family: var(--serif);
    font-weight: 700;
    font-size: clamp(2.8rem, 4.8vw, 5.4rem);
    line-height: 1.02;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.65);
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-pie {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 96px;
    margin: 0;
    padding: 18px 36px;
    background: rgba(8, 16, 28, 0.82);
    font-family: var(--sans);
    font-size: clamp(1.8rem, 2.5vw, 2.7rem);
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.15;
    text-transform: uppercase;
    text-shadow: none;
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta:hover .puerta-pie,
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta:focus-visible .puerta-pie {
    background: var(--boton);
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada .bifurca,
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada-oferta {
    transition: transform 0.72s cubic-bezier(0.65, 0.02, 0.15, 1);
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.mostrando-nacional .bifurca {
    transform: translateX(-100%);
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.mostrando-internacional .bifurca {
    transform: translateX(100%);
}
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.sin-puertas .bifurca {
    visibility: hidden;
    transition: none;
}
.portada-oferta {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    background: var(--marca);
    box-shadow: 0 0 36px rgba(0, 0, 0, 0.28);
    pointer-events: none;
}
.portada-nacional { transform: translateX(100%); }
.portada-internacional { transform: translateX(-100%); }
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.mostrando-nacional .portada-nacional,
body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.mostrando-internacional .portada-internacional {
    transform: translateX(0);
    pointer-events: auto;
}
body.piel-roja .portada-oferta,
body.piel-revista .portada-oferta,
body.piel-tablon .portada-oferta { display: none; }
.hero-oferta {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--marca);
}
.hero-oferta-barra {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 10px 22px;
    flex: 0 0 auto;
    padding: 14px 22px 12px;
    background: var(--hero);
    color: var(--hero-ink);
}
.hero-oferta-kicker {
    margin: 0;
    color: var(--hero-suave);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.hero-oferta-titulo {
    margin: 0;
    color: var(--hero-ink);
    font-family: var(--serif);
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 700;
    line-height: 1.1;
}
.hero-oferta-nota {
    flex: 1 1 100%;
    margin: 0;
    color: var(--hero-ink);
    font-size: 1.2rem;
    line-height: 1.4;
}
.hero-oferta-nota a { color: var(--hero-ink); }
.hero-oferta-volver {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-height: 56px;
    margin: 0;
    padding: 8px 18px 8px 14px;
    border: 3px solid var(--hero-ink);
    border-radius: 999px;
    background: transparent;
    color: var(--hero-ink);
    font: 700 1.3rem var(--sans);
    line-height: 1.1;
    cursor: pointer;
    text-decoration: none;
}
.hero-oferta-volver span {
    font-size: 2rem;
    line-height: 0.8;
}
.hero-oferta-volver:hover,
.hero-oferta-volver:focus-visible {
    background: var(--hero-ink);
    color: var(--hero);
}
.hero-oferta-tipos {
    display: grid;
    flex: 1 1 auto;
    gap: 4px;
    min-height: 0;
    overflow: auto;
    background: var(--marca);
}
.hero-oferta .puerta-viaje,
.hero-mosaico .puerta-viaje {
    height: 100%;
    min-height: 260px;
}
.mosaico-viajes > .puerta-tipo { min-height: 340px; }
.hero-oferta-1 { grid-template-columns: 1fr; }
.hero-oferta-2 { grid-template-columns: 1fr 1fr; }
.hero-oferta-3 { grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr 1fr; }
.hero-oferta-3 > :first-child,
.hero-oferta-3 .puerta-tipo:first-child { grid-row: 1 / span 2; }
.hero-oferta-4 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.hero-oferta-5 { grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.hero-oferta-5 > :first-child,
.hero-oferta-5 .puerta-tipo:first-child { grid-row: 1 / span 2; }
.hero-oferta-6 { grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.hero-oferta-muchos { grid-template-columns: 1fr 1fr 1fr; grid-auto-rows: minmax(210px, 1fr); }
.hero-oferta .puerta-tipo strong { font-size: clamp(2rem, 2.8vw, 3.15rem); }
.hero-oferta-5 .puerta-tipo:first-child strong,
.hero-oferta-3 .puerta-tipo:first-child strong { font-size: clamp(2.4rem, 3.6vw, 4rem); }
.hero-oferta .hero-mosaico-aviso { flex: 1 1 auto; min-height: 0; }

@media (max-width: 900px) {
    body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada {
        height: calc(100svh - 7.75rem - env(safe-area-inset-top, 0px) - 4.5rem - env(safe-area-inset-bottom, 0px));
        min-height: calc(100svh - 7.75rem - env(safe-area-inset-top, 0px) - 4.5rem - env(safe-area-inset-bottom, 0px));
    }
    .aviso-portal { padding: 14px 16px; font-size: 1.25rem; }
    body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-lema {
        padding: 16px 18px 0;
        font-size: clamp(2.3rem, 10vw, 3.4rem);
    }
    body:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-pie {
        min-height: 72px;
        padding: 12px 18px;
        font-size: 1.55rem;
    }
    .portada-oferta { overflow: auto; }
    .hero-oferta { height: auto; min-height: 100%; }
    .hero-oferta-barra {
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px 12px;
        padding: 10px 12px;
    }
    .hero-oferta-nombre { min-width: 0; }
    .hero-oferta-kicker {
        font-size: 1rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .hero-oferta-titulo {
        font-size: 1.2rem;
        line-height: 1.15;
    }
    .hero-oferta-volver {
        min-height: 48px;
        padding: 6px 12px 6px 10px;
        font-size: 1.05rem;
    }
    .hero-oferta-volver span { font-size: 1.45rem; }
    .hero-oferta-tipos,
    .hero-oferta-1,
    .hero-oferta-2,
    .hero-oferta-3,
    .hero-oferta-4,
    .hero-oferta-5,
    .hero-oferta-6,
    .hero-oferta-muchos {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: minmax(72vw, auto);
        height: auto;
        overflow: visible;
    }
    .hero-oferta-3 > :first-child,
    .hero-oferta-5 > :first-child,
    .hero-oferta-3 .puerta-tipo:first-child,
    .hero-oferta-5 .puerta-tipo:first-child,
    .hero-oferta-3 .puerta-viaje:first-child,
    .hero-oferta-5 .puerta-viaje:first-child { grid-row: auto; grid-column: auto; }
    .hero-oferta .puerta-viaje,
    .hero-mosaico .puerta-viaje { min-height: 72vw; }
}

@media (prefers-reduced-motion: reduce) {
    .portada .bifurca,
    .portada-oferta,
    .puerta-pie,
    .escena-tipo,
    .panel-tipo { transition: none; }
}
.oferta-pagina.portada-oferta {
    position: relative;
    inset: auto;
    z-index: 1;
    transform: none;
    pointer-events: auto;
    height: calc(100svh - 88px);
    min-height: calc(100svh - 88px);
    overflow: hidden;
    box-shadow: none;
}
@media (max-width: 900px) {
    .oferta-pagina.portada-oferta {
        height: calc(100svh - 7.75rem - env(safe-area-inset-top, 0px) - 4.5rem - env(safe-area-inset-bottom, 0px));
        min-height: calc(100svh - 7.75rem - env(safe-area-inset-top, 0px) - 4.5rem - env(safe-area-inset-bottom, 0px));
        overflow: auto;
    }
}

.escena-tipo { position: relative; overflow: hidden; }
.panel-reserva { box-shadow: none; }
.tipo-cabeza {
    max-width: 1180px;
    margin: 0 auto;
    padding: 6px 22px 0;
}
.tipo-cabeza h1 {
    font-size: clamp(1.55rem, 2.6vw, 2.15rem);
    margin: 0;
    line-height: 1.2;
    border: 0;
    padding: 0;
    max-width: none;
}
.tipo-vacio {
    max-width: 760px;
    margin: 0 auto;
    padding: 10px 22px 8px;
}
.panel-tipo .malla { margin-top: 14px; }
.mosaico-viajes {
    display: grid;
    gap: 3px;
    margin: 12px 0 0;
    background: #06306e;
}
.mosaico-viajes-1 { grid-template-columns: 1fr; }
.mosaico-viajes-1 .puerta-viaje { min-height: calc(100svh - 180px); }
.mosaico-viajes-2 { grid-template-columns: 1fr 1fr; }
.mosaico-viajes-2 .puerta-viaje { min-height: calc(100svh - 180px); }
.mosaico-viajes-3 {
    grid-template-columns: 1.25fr 1fr;
    grid-template-rows: minmax(280px, 1fr) minmax(280px, 1fr);
}
.mosaico-viajes-3 > :first-child,
.mosaico-viajes-3 .puerta-viaje:first-child { grid-row: 1 / span 2; }
.mosaico-viajes-4 {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: minmax(340px, 1fr);
}
.mosaico-viajes-5 {
    grid-template-columns: 1.25fr 1fr 1fr;
    grid-template-rows: minmax(280px, 1fr) minmax(280px, 1fr);
}
.mosaico-viajes-5 > :first-child,
.mosaico-viajes-5 .puerta-viaje:first-child { grid-row: 1 / span 2; }
.mosaico-viajes-6 {
    grid-template-columns: 1fr 1fr 1fr;
    grid-auto-rows: minmax(320px, 1fr);
}
.mosaico-viajes-muchos {
    grid-template-columns: 1fr 1fr 1fr;
    grid-auto-rows: minmax(340px, auto);
}
@media (max-width: 900px) {
    body .mosaico-viajes,
    body .mosaico-viajes-1,
    body .mosaico-viajes-2,
    body .mosaico-viajes-3,
    body .mosaico-viajes-4,
    body .mosaico-viajes-5,
    body .mosaico-viajes-6,
    body .mosaico-viajes-muchos {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: minmax(72vw, auto);
    }
    body .mosaico-viajes-1 .puerta-viaje,
    body .mosaico-viajes-2 .puerta-viaje,
    body .mosaico-viajes .puerta-viaje { min-height: 72vw; }
    body .mosaico-viajes-3 > :first-child,
    body .mosaico-viajes-5 > :first-child,
    body .mosaico-viajes-3 .puerta-viaje:first-child,
    body .mosaico-viajes-5 .puerta-viaje:first-child { grid-row: auto; grid-column: auto; }
}
.mas-abajo {
    display: none;
}
@media (max-width: 900px) {
    .mas-abajo {
        display: grid;
        place-items: center;
        position: fixed;
        z-index: 25;
        left: 50%;
        bottom: calc(74px + env(safe-area-inset-bottom, 0px));
        width: 64px;
        height: 64px;
        margin: 0;
        padding: 0;
        border: 3px solid #fff;
        border-radius: 50%;
        background: var(--boton);
        color: #fff;
        font: 700 2.1rem/1 var(--sans);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28);
        cursor: pointer;
        animation: mas-abajo-parpadeo 1.05s ease-in-out infinite;
    }
    .portada-oferta .mas-abajo { bottom: 16px; }
    .mas-abajo span { display: block; transform: translateY(-2px); }
    .mas-abajo[hidden] { display: none !important; }
}
@keyframes mas-abajo-parpadeo {
    0%, 100% { opacity: 1; transform: translateX(-50%) translateY(0); }
    50% { opacity: 0.2; transform: translateX(-50%) translateY(8px); }
}
@media (prefers-reduced-motion: reduce) {
    .mas-abajo { animation: none; }
}
.puerta-viaje {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
    min-height: 340px;
    padding: 18px 16px 16px;
    color: #fff;
    background-color: #06306e;
    background-position: center;
    background-size: cover;
}
.puerta-viaje-fechada { padding-top: 64px; }
.puerta-viaje-fechada:has(.salida-etiqueta) { padding-top: 104px; }
.salida-marca {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    max-width: calc(100% - 28px);
    margin: 0;
    text-align: right;
    text-shadow: none;
}
.salida-cuando,
.salida-etiqueta {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 700;
    line-height: 1.2;
}
.salida-cuando {
    background: rgba(8, 16, 28, 0.82);
    color: #fff;
}
.salida-etiqueta { background: #06306e; color: #fff; }
.salida-etiqueta-formacion { background: #06306e; }
.salida-etiqueta-garantizada { background: #0e6b3c; }
.salida-etiqueta-ultimas { background: #9a4d00; }
.salida-etiqueta-completo { background: #7a0010; }
.tarjeta-paso-meta .salida-etiqueta,
.paso-chips .salida-etiqueta,
.paso-fecha-fija .salida-etiqueta,
.paso-resumen .salida-etiqueta {
    width: auto;
    flex: 0 0 auto;
    margin: 2px 0 0;
    padding: 3px 10px;
    border-radius: 999px;
    background: #06306e;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
}
.tarjeta-paso-meta .salida-etiqueta-formacion,
.paso-chips .salida-etiqueta-formacion,
.paso-fecha-fija .salida-etiqueta-formacion,
.paso-resumen .salida-etiqueta-formacion { background: #06306e; }
.tarjeta-paso-meta .salida-etiqueta-garantizada,
.paso-chips .salida-etiqueta-garantizada,
.paso-fecha-fija .salida-etiqueta-garantizada,
.paso-resumen .salida-etiqueta-garantizada { background: #0e6b3c; }
.tarjeta-paso-meta .salida-etiqueta-ultimas,
.paso-chips .salida-etiqueta-ultimas,
.paso-fecha-fija .salida-etiqueta-ultimas,
.paso-resumen .salida-etiqueta-ultimas { background: #9a4d00; }
.tarjeta-paso-meta .salida-etiqueta-completo,
.paso-chips .salida-etiqueta-completo,
.paso-fecha-fija .salida-etiqueta-completo,
.paso-resumen .salida-etiqueta-completo { background: #7a0010; }
.salidas-lista { display: grid; gap: 10px; padding: 0; margin: 12px 0 18px; list-style: none; }
.salidas-lista li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 1.2rem; font-weight: 700; }
.panel-reserva .salida-etiqueta,
.ficha .salida-etiqueta,
.salidas-lista .salida-cuando { font-size: 1rem; }
.puerta-viaje-titulo {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 4px;
    flex: 1 1 auto;
    min-height: 140px;
    color: #fff;
    text-decoration: none;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}
.puerta-viaje-meta {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.puerta-viaje strong {
    font-family: var(--serif);
    font-size: clamp(1.7rem, 2.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.08;
}
.puerta-viaje-pie {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px 14px;
    background: rgba(8, 16, 28, 0.86);
}
.puerta-viaje-precio {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    margin: 0;
}
.puerta-viaje-precio strong {
    font-family: var(--sans);
    font-size: clamp(1.7rem, 2.4vw, 2.3rem);
    color: #ff4d4d;
    text-shadow: none;
}
.puerta-viaje-precio span {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.puerta-viaje .boton { width: 100%; }
body.lab-propio .puerta-viaje strong { font-family: var(--lab-fuente-titulo); color: #fff; }
body.lab-propio .puerta-viaje-precio strong { color: var(--lab-precio); font-family: var(--sans); }
body.mosaico-banda .puerta-viaje {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(168px, 0.78fr);
    align-items: stretch;
    justify-content: stretch;
    gap: 0;
    padding: 0;
    overflow: hidden;
    color: #142033;
    background: #fff;
    background-image: none;
}
.puerta-viaje-foto {
    display: block;
    min-height: 100%;
    background-color: #06306e;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.puerta-viaje-banda {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0 0 16px;
    background: #fff;
    color: #142033;
    text-align: left;
    box-shadow: inset 1px 0 0 #e6ebf2;
}
.banda-cinta {
    align-self: flex-start;
    position: relative;
    left: 0;
    width: auto;
    max-width: calc(100% - 28px);
    margin: 14px 14px 0;
    padding: 5px 10px;
    border-radius: 999px;
    background: #06306e;
    color: #fff;
    font: 700 0.78rem/1.2 var(--sans);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    clip-path: none;
}
.banda-cinta.salida-etiqueta-formacion { background: #06306e; }
.banda-cinta.salida-etiqueta-garantizada { background: #0e6b3c; }
.banda-cinta.salida-etiqueta-ultimas { background: #9a4d00; }
.banda-cinta.salida-etiqueta-completo { background: #7a0010; }
.banda-datos { padding: 12px 16px 0; }
.banda-salida { margin: 10px 0 0; }
.banda-salida span {
    display: block;
    color: #5c6b7e;
    font: 700 0.78rem/1.2 var(--sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.banda-salida strong {
    display: block;
    margin-top: 2px;
    color: #142033;
    font: 700 1.2rem/1.2 var(--sans);
    letter-spacing: 0;
}
.banda-medio {
    margin: 6px 0 0;
    color: #142033;
    font: 700 1.05rem/1.35 var(--sans);
    letter-spacing: 0;
    text-transform: none;
}
body.mosaico-banda .puerta-viaje-titulo {
    display: block;
    flex: 0 0 auto;
    min-height: 0;
    margin: 0;
    color: #142033;
    text-decoration: none;
    text-shadow: none;
}
body.mosaico-banda .puerta-viaje-titulo strong {
    color: #142033;
    font-family: var(--serif);
    font-size: clamp(1.7rem, 2.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: 0;
    text-transform: none;
    text-shadow: none;
}
.banda-cierre {
    margin-top: auto;
    padding: 14px 16px 0;
    border-top: 1px solid #e6ebf2;
}
body.mosaico-banda .puerta-viaje-precio {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 8px;
    margin: 0 0 12px;
}
body.mosaico-banda .puerta-viaje-precio strong {
    display: inline-block;
    font-family: var(--sans);
    font-size: clamp(1.7rem, 2.4vw, 2.3rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    color: #ff4d4d;
    text-shadow: none;
    transform-origin: left center;
    animation: precio-zoom 1.5s ease-in-out infinite;
}
body.mosaico-banda .puerta-viaje-precio span {
    color: #142033;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
@keyframes precio-zoom {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
    body.mosaico-banda .puerta-viaje-precio strong { animation: none; }
}
.puerta-viaje-precio-consulta strong {
    font-size: clamp(1.6rem, 2.4vw, 2.2rem);
    line-height: 1;
    letter-spacing: 0;
}
body.mosaico-banda .puerta-viaje .boton {
    width: 100%;
    min-height: 52px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 1.15rem;
    letter-spacing: 0;
    line-height: 1.15;
    text-align: center;
    text-transform: none;
}
body.mosaico-banda .hero-oferta .puerta-viaje,
body.mosaico-banda .hero-mosaico .puerta-viaje,
body.mosaico-banda .mosaico-viajes .puerta-viaje {
    height: auto;
}
body.mosaico-banda.lab-propio .puerta-viaje-banda,
body.mosaico-banda.lab-propio .puerta-viaje-banda .banda-salida span,
body.mosaico-banda.lab-propio .puerta-viaje-banda .banda-salida strong,
body.mosaico-banda.lab-propio .puerta-viaje-banda .banda-medio,
body.mosaico-banda.lab-propio .puerta-viaje-titulo,
body.mosaico-banda.lab-propio .puerta-viaje-titulo strong {
    color: #142033;
}
body.mosaico-banda.lab-propio .puerta-viaje-titulo strong { font-family: var(--lab-fuente-titulo); }
body.mosaico-banda.lab-propio .puerta-viaje-precio strong { color: var(--lab-precio); font-family: var(--sans); }
body.mosaico-banda .puerta-viaje-precio-consulta strong { animation: none; }
@media (max-width: 900px) {
    .mosaico-viajes-2,
    .mosaico-viajes-3,
    .mosaico-viajes-4,
    .mosaico-viajes-5,
    .mosaico-viajes-6,
    .mosaico-viajes-muchos {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: minmax(300px, 52vh);
    }
    .mosaico-viajes-2 .puerta-viaje,
    .mosaico-viajes-3 > :first-child,
    .mosaico-viajes-5 > :first-child,
    .mosaico-viajes-3 .puerta-viaje:first-child,
    .mosaico-viajes-5 .puerta-viaje:first-child {
        grid-row: auto;
        grid-column: auto;
        min-height: 320px;
    }
    .puerta-viaje strong { font-size: clamp(1.8rem, 7vw, 2.3rem); }
    body.mosaico-banda .hero-oferta .puerta-viaje,
    body.mosaico-banda .hero-mosaico .puerta-viaje,
    body.mosaico-banda .mosaico-viajes .puerta-viaje,
    body.mosaico-banda .mosaico-viajes-1 .puerta-viaje,
    body.mosaico-banda .mosaico-viajes-2 .puerta-viaje {
        height: auto;
        min-height: 300px;
    }
    body.mosaico-banda .hero-oferta-tipos,
    body.mosaico-banda .hero-oferta-1,
    body.mosaico-banda .hero-oferta-2,
    body.mosaico-banda .hero-oferta-3,
    body.mosaico-banda .hero-oferta-4,
    body.mosaico-banda .hero-oferta-5,
    body.mosaico-banda .hero-oferta-6,
    body.mosaico-banda .hero-oferta-muchos,
    body.mosaico-banda .mosaico-viajes,
    body.mosaico-banda .mosaico-viajes-1,
    body.mosaico-banda .mosaico-viajes-2,
    body.mosaico-banda .mosaico-viajes-3,
    body.mosaico-banda .mosaico-viajes-4,
    body.mosaico-banda .mosaico-viajes-5,
    body.mosaico-banda .mosaico-viajes-6,
    body.mosaico-banda .mosaico-viajes-muchos {
        grid-auto-rows: auto;
    }
    body.mosaico-banda .puerta-viaje {
        grid-template-columns: minmax(0, 1.08fr) minmax(146px, 0.92fr);
    }
    body.mosaico-banda .puerta-viaje-titulo strong { font-size: clamp(1.55rem, 6vw, 2.15rem); }
    body.mosaico-banda .puerta-viaje-precio strong { font-size: clamp(1.7rem, 2.4vw, 2.3rem); }
}

body.mosaico-flotante .puerta-viaje {
    position: relative;
    display: grid;
    align-items: end;
    justify-items: end;
    height: 100%;
    padding: 0;
    overflow: hidden;
    color: #142033;
    background: #06306e;
    background-image: none;
    border-radius: 0;
    box-shadow: none;
}
.flotante-estado {
    position: absolute;
    top: 16px;
    left: 16px;
    right: auto;
    z-index: 2;
    max-width: calc(75% - 48px);
    font-size: 0.95rem;
}
.flotante-foto {
    position: absolute;
    inset: 0;
    display: block;
    min-height: 0;
    background-color: #06306e;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.flotante-hoja {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: max-content;
    max-width: min(22rem, calc(100% - 28px));
    height: auto;
    margin: 14px;
    padding: 16px 16px 14px;
    overflow: visible;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 14px 32px rgba(8, 22, 44, 0.28);
    text-align: left;
}
body.mosaico-flotante .puerta-viaje-titulo {
    display: block;
    flex: 0 0 auto;
    min-height: 0;
    margin: 0;
    color: #142033;
    text-decoration: none;
    text-shadow: none;
}
body.mosaico-flotante .puerta-viaje-titulo strong {
    color: #142033;
    font-family: var(--serif);
    font-size: clamp(1.7rem, 2.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: 0;
    text-transform: none;
    text-shadow: none;
}
.flotante-salida { margin: 10px 0 0; }
.flotante-salida span {
    display: block;
    color: #5c6b7e;
    font: 700 0.78rem/1.2 var(--sans);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.flotante-salida strong {
    display: block;
    margin-top: 2px;
    color: #142033;
    font: 700 1.2rem/1.2 var(--sans);
    letter-spacing: 0;
    text-transform: none;
}
.flotante-medio {
    margin: 6px 0 0;
    color: #142033;
    font: 700 1.05rem/1.35 var(--sans);
    letter-spacing: 0;
    text-transform: none;
}
.flotante-cierre {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e6ebf2;
}
body.mosaico-flotante .puerta-viaje-precio {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin: 0 0 12px;
}
body.mosaico-flotante .puerta-viaje-precio strong {
    display: block;
    font-family: Outfit, var(--sans);
    font-size: clamp(2.6rem, 3.2vw, 3.4rem);
    font-weight: 700;
    line-height: 0.9;
    letter-spacing: -0.03em;
    color: #ff4d4d;
    text-shadow: none;
}
body.mosaico-flotante .puerta-viaje-precio span {
    color: #142033;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
body.mosaico-flotante .puerta-viaje .boton {
    width: auto;
    align-self: stretch;
    min-height: 52px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 1.15rem;
    letter-spacing: 0;
    line-height: 1.15;
    text-align: center;
    text-transform: none;
}
body.mosaico-flotante.lab-propio .puerta-viaje-titulo,
body.mosaico-flotante.lab-propio .puerta-viaje-titulo strong,
body.mosaico-flotante.lab-propio .flotante-salida span,
body.mosaico-flotante.lab-propio .flotante-salida strong,
body.mosaico-flotante.lab-propio .flotante-medio {
    color: #142033;
}
body.mosaico-flotante.lab-propio .puerta-viaje-titulo strong { font-family: var(--lab-fuente-titulo); }
body.mosaico-flotante.lab-propio .puerta-viaje-precio strong {
    color: var(--lab-precio);
    font-family: Outfit, var(--sans);
}
@media (min-width: 901px) {
    body.mosaico-flotante .flotante-hoja {
        max-width: min(18rem, 62%);
        max-height: calc(100% - 28px);
        overflow: auto;
        padding: 12px 12px 10px;
    }
    body.mosaico-flotante .puerta-viaje-titulo strong { font-size: clamp(1.2rem, 1.45vw, 1.7rem); }
    body.mosaico-flotante .puerta-viaje-precio strong { font-size: clamp(2.35rem, 2.5vw, 2.9rem); }
    body.mosaico-flotante .puerta-viaje .boton {
        min-height: 46px;
        padding: 8px 10px;
        font-size: 1.05rem;
    }
}
@media (max-width: 900px) {
    body.mosaico-flotante .hero-oferta .puerta-viaje,
    body.mosaico-flotante .hero-mosaico .puerta-viaje,
    body.mosaico-flotante .mosaico-viajes .puerta-viaje,
    body.mosaico-flotante .mosaico-viajes-1 .puerta-viaje,
    body.mosaico-flotante .mosaico-viajes-2 .puerta-viaje {
        height: auto;
        min-height: 320px;
        border-radius: 18px;
        box-shadow: 0 12px 28px rgba(8, 22, 44, 0.16);
    }
    body.mosaico-flotante .hero-oferta-tipos,
    body.mosaico-flotante .hero-oferta-1,
    body.mosaico-flotante .hero-oferta-2,
    body.mosaico-flotante .hero-oferta-3,
    body.mosaico-flotante .hero-oferta-4,
    body.mosaico-flotante .hero-oferta-5,
    body.mosaico-flotante .hero-oferta-6,
    body.mosaico-flotante .hero-oferta-muchos,
    body.mosaico-flotante .mosaico-viajes,
    body.mosaico-flotante .mosaico-viajes-1,
    body.mosaico-flotante .mosaico-viajes-2,
    body.mosaico-flotante .mosaico-viajes-3,
    body.mosaico-flotante .mosaico-viajes-4,
    body.mosaico-flotante .mosaico-viajes-5,
    body.mosaico-flotante .mosaico-viajes-6,
    body.mosaico-flotante .mosaico-viajes-muchos {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: minmax(320px, auto);
        align-content: start;
        background: #e8eef5;
        gap: 14px;
        padding: 14px;
    }
    body.mosaico-flotante .hero-oferta-3 > :first-child,
    body.mosaico-flotante .hero-oferta-5 > :first-child,
    body.mosaico-flotante .hero-oferta-3 .puerta-viaje:first-child,
    body.mosaico-flotante .hero-oferta-5 .puerta-viaje:first-child,
    body.mosaico-flotante .mosaico-viajes-3 > :first-child,
    body.mosaico-flotante .mosaico-viajes-5 > :first-child,
    body.mosaico-flotante .mosaico-viajes-3 .puerta-viaje:first-child,
    body.mosaico-flotante .mosaico-viajes-5 .puerta-viaje:first-child {
        grid-row: auto;
        grid-column: auto;
    }
    body.mosaico-flotante .flotante-hoja { max-width: min(20rem, 72%); }
    body.mosaico-flotante .flotante-estado { max-width: calc(54% - 36px); }
    body.mosaico-flotante .puerta-viaje-titulo strong { font-size: clamp(1.25rem, 4.6vw, 1.7rem); }
    body.mosaico-flotante .puerta-viaje-precio strong { font-size: clamp(2.7rem, 8vw, 3.3rem); }
}

@media (max-width: 900px) {
    .salida-marca { top: 10px; right: 10px; }
    .tipo-cabeza { padding: 2px 12px 0; }
    .tipo-cabeza h1 { font-size: 1.4rem; }
}

body.lab-propio {
    background: var(--lab-fondo);
    color: var(--lab-texto);
    font-family: var(--lab-fuente-descripcion);
    font-size: var(--lab-tam-descripcion);
}
body.lab-propio .cabeza,
body.lab-propio .eleccion a,
body.lab-propio .invitacion { background: var(--lab-cabecera); }
body.lab-propio .invitacion,
body.lab-propio .invitacion-pregunta {
    color: var(--lab-cabecera-texto);
    font-family: var(--lab-fuente-cabecera);
    font-size: var(--lab-tam-cabecera);
}
body.lab-propio .invitacion-accion {
    background: var(--lab-boton);
    color: var(--lab-boton-texto);
    font-family: var(--lab-fuente-cabecera);
    font-size: var(--lab-tam-cabecera);
}
body.lab-propio .invitacion:hover .invitacion-accion,
body.lab-propio .invitacion:focus-visible .invitacion-accion {
    background: var(--lab-boton);
    color: var(--lab-boton-texto);
}
body.lab-propio .eleccion a,
body.lab-propio .kicker { font-family: var(--lab-fuente-cabecera); }
body.lab-propio .eleccion a {
    color: var(--lab-cabecera-texto);
    font-size: var(--lab-tam-cabecera);
}
body.lab-propio .eleccion a[aria-current="page"],
body.lab-propio .eleccion a:hover,
body.lab-propio .eleccion a:focus-visible {
    background: var(--lab-boton);
    color: var(--lab-boton-texto);
}
body.lab-propio h1,
body.lab-propio h2,
body.lab-propio h3,
body.lab-propio .tipo-cabeza h1,
body.lab-propio .carta h3,
body.lab-propio .carta h3 a { font-family: var(--lab-fuente-titulo); }
body.lab-propio .ficha h1,
body.lab-propio .seccion-cabeza h1 {
    font-size: var(--lab-tam-titulo);
    color: var(--lab-titulo);
}
body.lab-propio .ficha h2,
body.lab-propio .prosa h2 { font-size: var(--lab-tam-h2); color: var(--lab-titulo); }
body.lab-propio .ficha h3,
body.lab-propio .carta h3,
body.lab-propio .carta h3 a { font-size: var(--lab-tam-h3); color: var(--lab-titulo); }
body.lab-propio .tipo-cabeza h1,
body.lab-propio .kicker { color: var(--lab-titulo); }
body.lab-propio .entradilla,
body.lab-propio .carta-resumen,
body.lab-propio .prosa,
body.lab-propio .prosa p { font-family: var(--lab-fuente-descripcion); }
body.lab-propio .entradilla,
body.lab-propio .prosa,
body.lab-propio .prosa p { color: var(--lab-texto); }
body.lab-propio .carta,
body.lab-propio .panel-reserva,
body.lab-propio .datos-viaje div,
body.lab-propio .pie,
body.lab-propio .pie a { color: var(--ink); }
body.lab-propio .hero-mosaico-texto .entradilla,
body.lab-propio .hero-mosaico-texto .kicker,
body.lab-propio .hero-mosaico-texto h1,
body.lab-propio .aviso-portal,
body.lab-propio .aviso-portal a { color: var(--hero-ink); }
body.lab-propio .puerta-lema,
body.lab-propio .puerta-pie,
body.lab-propio .puerta strong,
body.lab-propio .hero-oferta-titulo,
body.lab-propio .hero-mosaico-texto h1,
body.lab-propio .puerta-tipo strong,
body.lab-propio .hero-mosaico-aviso-titulo { font-family: var(--lab-fuente-titulo); }
body.lab-propio:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-lema,
body.lab-propio:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .puerta-pie { font-family: var(--lab-fuente-titulo); }
body.lab-propio .carta-precio strong,
body.lab-propio .panel-precio,
body.lab-propio .total-reserva strong {
    font-family: var(--lab-fuente-precio);
    font-size: var(--lab-tam-precio);
    color: var(--lab-precio);
}
body.lab-propio .panel-precio span {
    font-family: var(--lab-fuente-descripcion);
    font-size: 1.15rem;
    color: var(--muted);
}
body.lab-propio a.boton:not(.boton-linea),
body.lab-propio button.boton,
body.lab-propio .tel-bajo,
body.lab-propio .llama-fija {
    background: var(--lab-boton);
    border-color: var(--lab-boton);
    color: var(--lab-boton-texto);
    font-family: var(--lab-fuente-cabecera);
}
body.lab-propio a.boton:not(.boton-linea):hover,
body.lab-propio button.boton:hover,
body.lab-propio .tel-bajo:hover,
body.lab-propio .llama-fija:hover {
    filter: brightness(0.9);
    background: var(--lab-boton);
    color: var(--lab-boton-texto);
}

html.intro-ya .intro-avialia { display: none !important; }
.intro-avialia {
    position: fixed;
    inset: 0;
    z-index: 80;
    padding: 0;
    background:
        radial-gradient(ellipse at 50% 38%, #0b4f96 0%, #06306e 46%, #03162e 100%);
    color: #fff;
}
.intro-avialia::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    opacity: 0;
}
.intro-avialia-marco {
    position: absolute;
    z-index: 1;
    top: 25%;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(92vw, 920px);
    text-align: center;
}
.intro-avialia img {
    width: min(54vw, 300px);
    height: auto;
    margin-top: calc(min(54vw, 300px) * -0.1804);
    margin-bottom: 26px;
    opacity: 0;
    transform: scale(0.94);
    filter: brightness(0) invert(1);
}
.intro-saludo,
.intro-registro {
    margin: 0;
    opacity: 0;
    transform: translateY(16px);
    color: #fff;
}
.intro-saludo {
    color: #fff;
    font-family: Outfit, "Segoe UI", sans-serif;
    font-size: clamp(1.85rem, 4.4vw, 2.55rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.05;
}
.intro-registro {
    margin-top: 20px;
    max-width: 18em;
}
.intro-registro a {
    color: #fff;
    font-family: Outfit, "Segoe UI", sans-serif;
    font-size: clamp(1.2rem, 2.8vw, 1.55rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    text-decoration: none;
}
.intro-registro a:hover,
.intro-registro a:focus-visible { color: #06306e; }
.intro-avialia.entra::before {
    animation: intro-avialia-fondo 2.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.intro-avialia.entra img {
    animation: intro-avialia-logo 2.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.intro-avialia.saluda .intro-saludo {
    animation:
        intro-avialia-sube 0.6s ease forwards,
        intro-avialia-tinta 1.5s ease 0.45s forwards;
}
.intro-avialia.invita .intro-registro {
    animation: intro-avialia-sube 0.7s ease forwards;
}
.intro-avialia.invita .intro-registro a {
    animation: intro-avialia-tinta 1.5s ease 0.1s forwards;
}
.intro-avialia.sale {
    pointer-events: none;
    animation: intro-avialia-sale 0.75s cubic-bezier(0.65, 0.02, 0.15, 1) forwards;
}
.intro-avialia.fuera { display: none; }
@keyframes intro-avialia-logo {
    0% { opacity: 0; transform: scale(0.92); filter: brightness(0) invert(1); }
    22% { opacity: 1; transform: scale(1); filter: brightness(0) invert(1); }
    48% { opacity: 1; transform: scale(1); filter: brightness(0) invert(1); }
    100% { opacity: 1; transform: scale(1); filter: none; }
}
@keyframes intro-avialia-fondo {
    0%, 48% { opacity: 0; }
    100% { opacity: 1; }
}
@keyframes intro-avialia-sube {
    to { opacity: 1; transform: none; }
}
@keyframes intro-avialia-tinta {
    from { color: #fff; }
    to { color: #0048b9; }
}
@keyframes intro-avialia-sale {
    to { opacity: 0; visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
    .intro-avialia { display: none; }
}

body .cabeza.cabeza-app {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #fff;
    border-bottom: 1px solid #e6eaf2;
}
body .cabeza.cabeza-app .cabeza-dentro {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 72px;
    padding: 8px 12px 8px 16px;
    grid-template-columns: none;
}
.cabeza-app .marca { flex: 0 0 auto; line-height: 0; }
.cabeza-app .marca img { height: 48px; width: auto; }
.cabeza-contactos {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    margin-left: auto;
    min-width: 0;
}
.contacto-app {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #06306e;
    text-decoration: none;
    line-height: 1.05;
}
.contacto-app:hover { color: #0048b9; }
.contacto-app small {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
}
.contacto-app strong {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.contacto-app-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    flex: 0 0 auto;
}
.contacto-app-ico svg { display: block; width: 22px; height: 22px; }
.contacto-app-ico-tel { background: #0048b9; }
.contacto-app-ico-wa { background: #25d366; }
.nav-abre {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    margin: 0;
    padding: 12px 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
}
.nav-abre span {
    display: block;
    height: 3px;
    border-radius: 2px;
    background: #06306e;
}
.nav-abre:hover { background: #f2f6fc; }
.nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 10px;
    z-index: 30;
    min-width: min(280px, calc(100vw - 24px));
    padding: 8px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(6, 48, 110, 0.18);
}
.nav-links.abierto { display: flex; flex-direction: column; }
.nav-links a {
    padding: 12px 14px;
    border-radius: 10px;
    color: #06306e;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.25;
    text-decoration: none;
}
.nav-links a:hover,
.nav-links a[aria-current="page"] { background: #e7f0ff; color: #0048b9; }

body.portada-nueva { background: #fff; }
body.portada-nueva:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.portada-app {
    display: block;
    height: auto;
    min-height: 0;
    overflow: visible;
    background: #fff;
}
.portada-app {
    width: min(520px, 100%);
    margin: 0 auto 8px;
    background: #fff;
    padding-bottom: 22px;
}
@media (min-width: 901px) {
    .portada-app {
        width: calc(100% - 96px);
        max-width: 1100px;
        margin: 20px auto 36px;
    }
    .hero-app {
        min-height: 360px;
        border-radius: 28px;
    }
    body.portada-nueva .cabeza.cabeza-app .cabeza-dentro { min-height: 88px; }
    body.portada-nueva .cabeza-app .marca img { height: 60px; }
    .hero-app-copia { max-width: 22em; }
    .hero-app-script { font-size: clamp(3.4rem, 5vw, 5rem); }
    .hero-app-aqui { font-size: clamp(2.8rem, 4vw, 3.8rem); }
    .hero-app-banda { font-size: 1rem; }
    .puertas-app { padding: 22px 8px 0; }
    .carta-app {
        min-height: 280px;
        margin-bottom: 18px;
        border-radius: 28px;
        padding: 28px 28px 24px;
    }
    .carta-app-titulo { font-size: clamp(1.35rem, 2vw, 1.8rem); }
    .carta-app-nota { max-width: 28em; font-size: 1.15rem; }
    .carta-app-ico { width: 54px; height: 54px; }
    .sellos-app { margin-top: 18px; }
    .sellos-app li { font-size: 0.78rem; }
    .sellos-app svg { width: 36px; height: 36px; }
}
.hero-app {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 292px;
    padding: 28px 22px 24px;
    color: #fff;
    background-color: #0a4ea8;
    background-position: center 58%;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
}
.hero-app::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(0, 58, 150, 0.78) 0%, rgba(0, 90, 190, 0.28) 52%, rgba(0, 30, 70, 0.05) 100%);
}
.hero-app-copia { position: relative; z-index: 1; max-width: 16em; }
.hero-app-titulo {
    margin: 0;
    font-family: var(--sans);
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1;
}
.hero-app-script {
    display: block;
    font-family: Yellowtail, cursive;
    font-weight: 400;
    font-size: clamp(2.55rem, 9vw, 3.35rem);
    line-height: 0.92;
    text-shadow: 0 2px 14px rgba(0, 24, 70, 0.4);
}
.hero-app-script span { display: block; }
.hero-app-aqui {
    display: block;
    margin-top: 4px;
    font-size: clamp(2.05rem, 7.4vw, 2.65rem);
    line-height: 0.95;
    letter-spacing: -0.03em;
    text-shadow: 0 2px 14px rgba(0, 24, 70, 0.4);
}
.hero-app-banda {
    display: inline-block;
    margin: 14px 0 0;
    padding: 8px 14px 9px;
    background: #0048b9;
    border-radius: 6px 16px 16px 6px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.25;
    text-transform: uppercase;
}
.hero-app-avion {
    position: absolute;
    z-index: 1;
    top: 28px;
    right: 18px;
    width: 132px;
    height: auto;
    opacity: 0.95;
    pointer-events: none;
}
.puertas-app { padding: 14px 14px 0; }
.carta-app {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
    min-height: 168px;
    margin: 0 0 12px;
    padding: 16px 14px 14px;
    border-radius: 22px;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
    background-color: #06306e;
    background-position: center right;
    background-size: cover;
    box-shadow: 0 8px 20px rgba(6, 48, 110, 0.16);
}
.carta-app::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4, 32, 92, 0.9) 0%, rgba(4, 40, 110, 0.62) 48%, rgba(4, 32, 80, 0.18) 100%);
}
.carta-app > * { position: relative; z-index: 1; }
.carta-app-cuerpo { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.carta-app-ico { display: block; width: 46px; height: 46px; flex-shrink: 0; }
.carta-app-titulo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-family: var(--sans);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 0.95;
    text-transform: uppercase;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
.carta-app-titulo span { display: block; color: #fff; }
.carta-app-titulo em {
    display: block;
    margin-top: 1px;
    font-style: normal;
    font-size: 1.45em;
    line-height: 0.92;
    color: #ffe14a;
}
.carta-app-nota {
    max-width: 16em;
    font-size: 0.86rem;
    font-weight: 400;
    line-height: 1.3;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
}
.carta-app-boton {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: end;
    padding: 7px 7px 7px 14px;
    background: #fff;
    color: #06306e;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);
}
.carta-app-flecha {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0048b9;
    color: #fff;
    font-size: 1.25rem;
    line-height: 1;
}
.carta-app:hover .carta-app-boton,
.carta-app:focus-visible .carta-app-boton { background: #f4f8ff; }
.sellos-app {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    margin: 6px 8px 0;
    padding: 8px 0 0;
    list-style: none;
}
.sellos-app li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    color: #0048b9;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.15;
    text-transform: uppercase;
}
.sellos-app svg { width: 28px; height: 28px; }
.chollo-pagina { padding-top: 28px; }
.chollo-intro {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 22px;
}
.chollo-intro h1 { margin-bottom: 0.25em; }
.chollo-vacio {
    max-width: 760px;
    margin: 8px auto 0;
    padding: 0 22px;
}
.chollo-vacio .boton { margin: 0 10px 10px 0; }
a.boton.boton-wa {
    background: #128c7e;
    border-color: #128c7e;
    color: #fff;
}
a.boton.boton-wa:hover { background: #075e54; border-color: #075e54; color: #fff; }

@media (max-width: 900px) {
    body:not(.admin) { padding-bottom: 0; }
    html { scroll-padding-bottom: 0; }
    body .cabeza.cabeza-app .cabeza-dentro {
        min-height: 48px;
        padding: 4px 6px 4px 8px;
        gap: 4px;
    }
    .cabeza-app .marca { flex: 0 1 64px; min-width: 0; max-width: 22vw; }
    .cabeza-app .marca img { height: 28px; max-width: 100%; }
    body.portada-nueva .cabeza.cabeza-app .cabeza-dentro {
        min-height: 62px;
        padding: 6px 8px 6px 10px;
        gap: 6px;
    }
    body.portada-nueva .cabeza-app .marca { flex: 0 1 auto; max-width: 40vw; }
    body.portada-nueva .cabeza-app .marca img { height: 42px; }
    body.portada-nueva .contacto-app small,
    body.portada-nueva .contacto-app strong { white-space: nowrap; }
    .cabeza-contactos { flex: 1 1 auto; justify-content: flex-end; gap: 6px; min-width: 0; }
    .contacto-app { gap: 4px; }
    .contacto-app small { display: block; font-size: 0.62rem; line-height: 1.05; }
    .contacto-app strong { display: block; font-size: 0.68rem; line-height: 1.05; }
    .contacto-app-ico { width: 26px; height: 26px; }
    .contacto-app-ico svg { width: 16px; height: 16px; }
    body.portada-nueva .contacto-app-ico { width: 28px; height: 28px; }
    body.portada-nueva .contacto-app-ico svg { width: 17px; height: 17px; }
    .nav-abre { width: 36px; height: 36px; padding: 8px 7px; gap: 4px; flex: 0 0 36px; }
    .nav-links {
        left: 8px;
        right: 8px;
        top: 100%;
        min-width: 0;
        border-radius: 0 0 18px 18px;
        max-height: calc(100dvh - 72px);
        overflow: auto;
    }
    body.portada-nueva {
        height: 100dvh;
        max-height: 100dvh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }
    body.portada-nueva .cabeza.cabeza-app {
        position: relative;
        flex: 0 0 auto;
    }
    body.portada-nueva main {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    body.portada-nueva .pie-corto {
        flex: 0 0 auto;
        padding: 4px 10px 6px;
    }
    body.portada-nueva .pie-corto .pie-fin { font-size: 0.78rem; line-height: 1.2; }
    body.portada-nueva:not(.piel-roja):not(.piel-revista):not(.piel-tablon) .portada.portada-app {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        min-height: 0;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    body.portada-nueva .hero-app {
        flex: 0 1 26%;
        min-height: 0;
        padding: 10px 14px 8px;
    }
    body.portada-nueva .hero-app-script { font-size: clamp(1.95rem, 7.6vw, 2.45rem); }
    body.portada-nueva .hero-app-aqui { margin-top: 2px; font-size: clamp(1.55rem, 6.1vw, 1.95rem); }
    body.portada-nueva .hero-app-banda { margin-top: 6px; padding: 5px 10px 6px; font-size: 0.72rem; }
    body.portada-nueva .hero-app-avion { width: 108px; top: 10px; right: 12px; }
    body.portada-nueva .puertas-app {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 8px 10px 0;
    }
    body.portada-nueva .carta-app {
        flex: 1 1 0;
        align-items: end;
        min-height: 0;
        margin: 0;
        padding: 12px 12px 12px 14px;
        border-radius: 18px;
        gap: 8px;
    }
    body.portada-nueva .carta-app-cuerpo { gap: 4px; }
    body.portada-nueva .carta-app-ico { width: 46px; height: 46px; }
    body.portada-nueva .carta-app-titulo { font-size: clamp(0.95rem, 4.2vw, 1.15rem); }
    body.portada-nueva .carta-app-titulo em { font-size: 1.55em; }
    body.portada-nueva .carta-app-nota {
        max-width: 15em;
        font-size: 0.86rem;
        line-height: 1.25;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body.portada-nueva .carta-app-boton { padding: 5px 5px 5px 14px; font-size: 0.95rem; gap: 8px; }
    body.portada-nueva .carta-app-flecha { width: 32px; height: 32px; font-size: 1.25rem; }
    body.portada-nueva .sellos-app { flex: 0 0 auto; gap: 4px; margin: 0; padding: 6px 6px 4px; }
    body.portada-nueva .sellos-app li { gap: 4px; font-size: 0.58rem; line-height: 1.1; }
    body.portada-nueva .sellos-app svg { width: 28px; height: 28px; }
}
@media (max-width: 900px) and (max-height: 520px) {
    body.portada-nueva .hero-app { flex-basis: 20%; }
    body.portada-nueva .carta-app-ico { width: 32px; height: 32px; }
    body.portada-nueva .carta-app-nota,
    body.portada-nueva .sellos-app span { display: none; }
    body.portada-nueva .puertas-app { gap: 4px; }
}
@media (max-width: 390px) {
    .contacto-app small { font-size: 0.56rem; }
    .contacto-app strong { font-size: 0.6rem; }
    .cabeza-contactos { gap: 4px; }
    .contacto-app-ico { width: 24px; height: 24px; }
    .contacto-app-ico svg { width: 15px; height: 15px; }
    body.portada-nueva .contacto-app-ico { width: 26px; height: 26px; }
    body.portada-nueva .contacto-app-ico svg { width: 16px; height: 16px; }
    .hero-app-avion { width: 64px; top: 8px; right: 6px; }
    body.portada-nueva .cabeza-app .marca img { height: 36px; }
    body.portada-nueva .cabeza.cabeza-app .cabeza-dentro { min-height: 56px; }
}

body.paso-pagina { background: #fff; }
.lista-app,
.paso-ficha,
.paso-confirma {
    width: min(720px, calc(100% - 28px));
    margin: 8px auto 56px;
}
.lista-app h1,
.paso-ficha h1,
.paso-confirma h1 {
    font-family: var(--sans);
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    letter-spacing: -0.03em;
    margin: 0 0 8px;
}
.lista-app-texto { color: #3d4d66; font-size: 1.05rem; margin: 0 0 16px; }
.paso-volver {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 12px;
    color: #0048b9;
    font-weight: 700;
    text-decoration: none;
}
.paso-ambitos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 16px;
}
.paso-ambitos a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 6px 14px;
    border-radius: 999px;
    background: #f3f6fb;
    color: #06306e;
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
}
.paso-ambitos a[aria-current="page"] { background: #0048b9; color: #fff; }
.lista-app-cartas { display: flex; flex-direction: column; gap: 16px; }
.lista-app-vacio { margin-top: 12px; }
.tarjeta-paso {
    background: #fff;
    border: 1px solid #e4eaf3;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(6, 48, 110, 0.08);
}
.tarjeta-paso-foto {
    position: relative;
    display: block;
    min-height: 168px;
    background: #06306e center/cover no-repeat;
}
.tarjeta-paso-foto img { width: 100%; height: 190px; object-fit: cover; }
.tarjeta-paso-insignia {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: 8px;
    background: #d0121a;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.tarjeta-paso-cuerpo { padding: 14px 14px 16px; }
.tarjeta-paso-fila {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.tarjeta-paso-titulo {
    display: block;
    color: #06306e;
    font-weight: 700;
    font-size: 1.2rem;
    line-height: 1.25;
    text-decoration: none;
}
.tarjeta-paso-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin: 10px 0 0;
    color: #3d4d66;
    font-size: 0.95rem;
}
.tarjeta-paso-meta span { display: inline-flex; align-items: center; gap: 6px; }
.tarjeta-paso-precio {
    margin: 0;
    min-width: 118px;
    padding: 10px 12px 8px;
    border-radius: 16px;
    background: #ffe08a;
    text-align: center;
    color: #06306e;
    line-height: 1.05;
}
.tarjeta-paso-precio small,
.tarjeta-paso-precio span { display: block; font-size: 0.75rem; font-weight: 700; color: #5c7190; }
.tarjeta-paso-precio strong { display: block; font-size: 2rem; letter-spacing: -0.03em; color: #06306e; }
a.boton.tarjeta-paso-reservar {
    width: 100%;
    margin-top: 12px;
    border-radius: 12px;
    gap: 8px;
}
.paso-hero {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 22px;
    margin: 0 0 14px;
}
.paso-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin: 0 0 6px;
}
.paso-chips span,
.paso-resumen p span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #06306e;
    font-size: 0.95rem;
    font-weight: 700;
}
.paso-chips .paso-ico { width: 18px; height: 18px; flex: 0 0 18px; }
.paso-chips-hotel { margin-bottom: 12px; }
.paso-ico { width: 16px; height: 16px; flex: 0 0 16px; color: #0048b9; }
.paso-pestanas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin: 8px 0 0;
    border-bottom: 1px solid #e4eaf3;
}
.paso-pestanas button {
    min-height: 46px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #5c7190;
    font: 700 1rem var(--sans);
    cursor: pointer;
}
.paso-pestanas button[aria-selected="true"] { color: #0048b9; border-bottom-color: #0048b9; }
.paso-panel {
    padding: 14px 2px 8px;
    color: #243040;
    font-size: 1.05rem;
}
.paso-panel h2 { font-family: var(--sans); font-size: 1.2rem; }
.paso-personaliza,
.paso-confirma .formulario { margin-top: 8px; }
.paso-controles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.paso-controles fieldset,
.paso-confirma fieldset.pago-elige {
    margin: 0;
    padding: 14px;
    border: 1px solid #e4eaf3;
    border-radius: 16px;
    background: #fff;
}
.paso-controles legend,
.paso-confirma legend { font-weight: 700; color: #06306e; padding: 0 4px; }
.paso-controles select,
.paso-confirma select,
.paso-confirma input[type="text"],
.paso-confirma input[type="tel"] {
    width: 100%;
    min-height: 48px;
    margin-top: 6px;
    padding: 8px 12px;
    border: 1px solid #c9d4e4;
    border-radius: 12px;
    font: 700 1.05rem var(--sans);
    color: #06306e;
    background: #fff;
}
.paso-fecha-fija { margin: 8px 0 0; font-weight: 700; color: #06306e; }
.paso-stepper { display: none; align-items: center; gap: 12px; margin-top: 8px; }
html.paso-con-js .paso-stepper { display: inline-flex; }
html.paso-con-js .paso-personas-select {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
.paso-personaliza fieldset,
.paso-confirma .campos { position: relative; }
.paso-stepper button {
    width: 42px;
    height: 42px;
    border: 1px solid #c9d4e4;
    border-radius: 12px;
    background: #fff;
    color: #0048b9;
    font-size: 1.4rem;
    font-weight: 700;
    cursor: pointer;
}
.paso-stepper span { min-width: 1.4em; text-align: center; font-size: 1.4rem; font-weight: 700; color: #06306e; }
.paso-habitacion-texto { margin: 8px 0 0; color: #3d4d66; font-size: 0.95rem; }
.paso-habitaciones { display: grid; gap: 8px; margin: 12px 0; }
.paso-habitaciones button {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 12px 14px;
    border: 2px solid #e4eaf3;
    border-radius: 14px;
    background: #fff;
    color: #06306e;
    text-align: left;
    cursor: pointer;
}
.paso-habitaciones button[aria-pressed="true"] { border-color: #0048b9; background: #f3f7ff; }
.paso-habitaciones strong { font-size: 1.05rem; }
.paso-habitaciones span { color: #5c7190; font-size: 0.9rem; }
.paso-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0;
    padding: 14px 16px;
    border-radius: 14px;
    background: #ffe08a;
    color: #06306e;
    font-weight: 700;
}
.paso-total-texto {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1 1 auto;
    font-size: 1.05rem;
    line-height: 1.15;
}
.paso-total-leyenda { min-width: 0; }
.paso-total .paso-ico { width: 22px; height: 22px; flex: 0 0 22px; }
.paso-total strong {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 1.8rem;
    letter-spacing: -0.03em;
}
.paso-aviso { color: #3d4d66; font-size: 0.95rem; }
.paso-nota { color: #3d4d66; }
.paso-guia {
    display: flex;
    gap: 0;
    margin: 2px 0 18px;
    padding: 0;
    list-style: none;
    position: relative;
}
.paso-guia::before {
    content: "";
    position: absolute;
    top: 13px;
    left: 16%;
    right: 16%;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, #0048b9 0 66%, #d5e3f8 66% 100%);
}
.paso-guia li {
    position: relative;
    z-index: 1;
    flex: 1;
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
    color: #8aa0c2;
}
.paso-guia li::before {
    content: "";
    display: block;
    width: 28px;
    height: 28px;
    margin: 0 auto 6px;
    border-radius: 50%;
    background: #e7f1ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.2 3.2 7.8-8' fill='none' stroke='%230048b9' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
    box-shadow: 0 0 0 4px #fff;
}
.paso-guia li.hecho::before {
    background-color: #0048b9;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.2 3.2 7.8-8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.paso-guia a { color: inherit; text-decoration: none; }
.paso-guia li[aria-current="step"] { color: #0048b9; }
.paso-guia li[aria-current="step"]::before {
    content: "3";
    background: #0048b9;
    color: #fff;
    font-size: 0.85rem;
    line-height: 28px;
}
.paso-resumen {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0 0 8px;
    padding: 12px;
    border: 1px solid #e4eaf3;
    border-radius: 16px;
}
.paso-resumen img { width: 92px; height: 76px; object-fit: cover; border-radius: 12px; }
.paso-resumen strong { display: block; color: #06306e; font-size: 1.1rem; line-height: 1.25; }
.paso-resumen p { margin: 6px 0 0; }
.paso-resumen a { font-weight: 700; }
button.boton.boton-enviar {
    width: 100%;
    border-radius: 14px;
    background: #1f9d55;
    border-color: #178a49;
}
button.boton.boton-enviar:hover { background: #178a49; border-color: #147a40; color: #fff; }
@media (min-width: 901px) {
    .lista-app,
    .paso-ficha,
    .paso-confirma,
    .quienes {
        width: calc(100% - 96px);
        max-width: 1100px;
    }
    .tarjeta-paso-foto,
    .tarjeta-paso-foto img { height: 320px; }
    .paso-hero { height: 420px; }
    .paso-controles { grid-template-columns: 1fr 1fr; }
    .paso-resumen { grid-template-columns: 104px minmax(0, 1fr); }
    .paso-resumen img { width: 104px; height: 84px; }
}
.paso-dias { list-style: none; margin: 4px 0 8px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.paso-dias li {
    display: grid;
    grid-template-columns: 52px 72px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}
.paso-dias li.paso-dia-sin-foto { grid-template-columns: 52px minmax(0, 1fr); }
@media (min-width: 901px) {
    .paso-dias li { grid-template-columns: 64px 96px minmax(0, 1fr); }
    .paso-dias img { width: 96px; height: 72px; }
}
.paso-dia-num {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #e7f0ff;
    color: #0048b9;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.05;
    text-align: center;
}
.paso-dia-num b { font-size: 1.05rem; }
.paso-dias img { width: 72px; height: 56px; object-fit: cover; border-radius: 10px; }
.paso-dias strong { display: block; color: #06306e; font-size: 1.02rem; line-height: 1.25; }
.paso-dias p { margin: 2px 0 0; color: #3d4d66; font-size: 0.95rem; line-height: 1.35; }
.paso-lista { list-style: none; margin: 0 0 14px; padding: 0; }
.paso-lista li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #eef2f7;
}
.paso-lista-si .paso-ico { color: #1f9d55; }
.paso-lista-no .paso-ico { color: #c0392b; }
.paso-panel .cuadro { font-size: 1rem; }
.paso-panel h2 { margin: 8px 0; }
@media (max-width: 900px) {
    body.paso-pagina .lista-app,
    body.paso-pagina .paso-ficha {
        width: 100%;
        margin-top: 0;
    }
    body.paso-pagina .lista-app > .paso-volver,
    body.paso-pagina .lista-app > .paso-ambitos,
    body.paso-pagina .lista-app > h1,
    body.paso-pagina .lista-app > .lista-app-texto,
    body.paso-pagina .lista-app > .lista-app-vacio,
    body.paso-pagina .paso-ficha > .paso-volver,
    body.paso-pagina .paso-ficha > .paso-ambitos,
    body.paso-pagina .paso-ficha > h1,
    body.paso-pagina .paso-ficha > .paso-chips,
    body.paso-pagina .paso-ficha > .paso-pestanas,
    body.paso-pagina .paso-ficha > .paso-panel,
    body.paso-pagina .paso-ficha > .paso-personaliza,
    body.paso-pagina .paso-ficha > .nota,
    body.paso-pagina .paso-ficha > p {
        padding-left: 16px;
        padding-right: 16px;
    }
    body.paso-pagina .tarjeta-paso {
        border-left: 0;
        border-right: 0;
        border-radius: 0;
        box-shadow: none;
    }
    body.paso-pagina .tarjeta-paso-foto,
    body.paso-pagina .tarjeta-paso-foto img,
    body.paso-pagina .paso-hero {
        width: 100%;
        height: 230px;
        border-radius: 0;
    }
    body.paso-pagina .paso-hero { margin-bottom: 14px; }
    body.paso-pagina .tarjeta-paso-precio strong { font-size: 2.15rem; }
}

.paso-rejilla {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: stretch;
}
.paso-caja {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-inline-size: 0;
    margin: 0;
    padding: 12px;
    border: 1px solid #e6edf6;
    border-radius: 16px;
    background: #fff;
}
.paso-caja legend {
    display: flex;
    align-items: center;
    gap: 6px;
    float: none;
    width: auto;
    margin: 0 0 4px;
    padding: 0;
    color: #06306e;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
}
.paso-caja legend .paso-ico { width: 18px; height: 18px; flex-basis: 18px; }
.paso-caja select,
.paso-fecha-fija {
    width: 100%;
    min-height: 44px;
    margin: 8px 0 0;
    padding: 8px 12px;
    border: 1px solid #c9d4e4;
    border-radius: 12px;
    background: #fff;
    color: #06306e;
    font: 700 1rem var(--sans);
}
.paso-caja select {
    appearance: none;
    padding-right: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230048b9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
.paso-fecha-fija { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.paso-rejilla .paso-caja:last-child:nth-child(odd) { grid-column: 1 / -1; }
.paso-fila-persona {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    color: #06306e;
    font-weight: 700;
}
.paso-fila-persona .paso-stepper { margin-top: 0; gap: 8px; }
.paso-fila-persona .paso-stepper button { width: 34px; height: 34px; border-radius: 10px; }
.paso-habitaciones {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 8px 0 0;
}
.paso-habitaciones .paso-opcion {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 3px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #06306e;
    font: 700 1rem var(--sans);
}
.paso-habitaciones .paso-opcion[aria-pressed="true"] {
    border: 0;
    background: transparent;
}
.paso-habitaciones .paso-radio {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    box-sizing: border-box;
    border: 2px solid #9ab0cc;
    border-radius: 50%;
    background: #fff;
}
.paso-habitaciones .paso-opcion[aria-pressed="true"] .paso-radio {
    border-color: #0048b9;
    background: #0048b9;
    box-shadow: inset 0 0 0 4px #fff;
}
.paso-habitaciones .paso-opcion-texto {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px;
    color: #06306e;
    font-size: 1rem;
    font-weight: 700;
}
.paso-habitaciones .paso-opcion-texto em {
    color: #5c7190;
    font-style: normal;
    font-weight: 600;
    font-size: 0.88rem;
}
.paso-elegir-asiento {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    margin-top: 8px;
    padding: 6px 6px 6px 14px;
    border: 0;
    border-radius: 999px;
    background: #0048b9;
    color: #ffffff;
    font: 700 1rem var(--sans);
    text-align: left;
    cursor: pointer;
}
.paso-elegir-flecha {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border-radius: 50%;
    background: #ffffff;
    color: #0048b9;
    font-size: 1.35rem;
    line-height: 1;
}
.paso-barra {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin-top: 12px;
}
.paso-barra .paso-total { margin: 0; }
.paso-barra .boton {
    min-height: 52px;
    border-radius: 14px;
    padding: 12px 18px;
    white-space: nowrap;
}
@media (max-width: 900px) {
    .paso-barra {
        grid-template-columns: 1fr;
    }
    .paso-barra .boton {
        width: 100%;
    }
}
.paso-autobus-caja {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #e6edf6;
    border-radius: 16px;
    background: #f7faff;
}
.paso-autobus-caja h2,
.paso-bloque-titulo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    color: #06306e;
    font-family: var(--sans);
    font-size: 1.25rem;
    letter-spacing: -0.02em;
}
html.paso-con-js .paso-autobus-caja:not(.abierto) { display: none; }
html.paso-con-js .paso-confirma .paso-cuenta,
html.paso-con-js .paso-confirma .campos > p { display: none; }
.paso-confirma h1.paso-resumen-titulo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 12px;
    font-family: var(--sans);
    font-size: 1.25rem;
    letter-spacing: -0.02em;
}
.paso-resumen-cuerpo { min-width: 0; }
.paso-resumen-cabeza {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}
.paso-resumen-texto { min-width: 0; flex: 1; }
.paso-resumen-texto .paso-chips {
    flex-direction: row;
    margin: 3px 0 0;
}
.paso-resumen-cabeza .paso-modificar { margin: 0 0 1px; }
.paso-confirma .paso-ambitos { display: none; }
.paso-resumen-lineas {
    list-style: none;
    margin: 4px 0 12px;
    padding: 0;
    display: grid;
    gap: 0;
}
.paso-resumen-lineas li {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    border-bottom: 1px solid #eef2f7;
    color: #06306e;
    font-weight: 700;
}
.paso-resumen-lineas li:last-child { border-bottom: 0; }
.paso-modificar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #0048b9;
    font: 700 0.95rem var(--sans);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.paso-modificar .paso-ico { width: 16px; height: 16px; flex-basis: 16px; }
.paso-confirma .formulario { gap: 14px; }
.paso-confirma fieldset.paso-viajero {
    position: relative;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.paso-confirma fieldset.paso-viajero legend {
    margin: 0 0 8px;
    padding: 0;
    font-family: var(--sans);
    font-size: 0.95rem;
}
.paso-confirma fieldset.paso-viajero[data-viajero="1"] legend {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
.paso-datos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
}
.paso-confirma .paso-datos label,
.paso-confirma .paso-observaciones {
    gap: 6px;
    color: #06306e;
    font-size: 0.92rem;
    font-weight: 700;
}
.paso-dato-par { display: grid; gap: 8px; }
.paso-confirma .paso-datos input,
.paso-confirma .paso-observaciones textarea,
.paso-confirma input[type="email"] {
    min-height: 46px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #c9d4e4;
    border-radius: 12px;
    background: #fff;
    color: #06306e;
    font: 600 1rem var(--sans);
}
.paso-confirma .paso-observaciones textarea {
    min-height: 92px;
    font-weight: 500;
    resize: vertical;
}
.paso-confirma .paso-datos input[readonly] {
    background: #f7f9fc;
    color: #3d4d66;
}
.paso-confirma .paso-datos input::placeholder,
.paso-confirma textarea::placeholder { color: #8aa0c2; font-weight: 600; }
.paso-confirma fieldset.paso-pago {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px;
    background: #f4f7fb;
    border-color: #d7e3f2;
}
.paso-confirma .paso-pago legend {
    grid-column: 1 / -1;
    padding: 0;
    font-family: var(--sans);
    font-size: 1.05rem;
    letter-spacing: -0.02em;
}
.paso-confirma .pago-nota {
    grid-column: 1 / -1;
    margin: 0 0 2px;
    color: #3d4d66;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.45;
}
.paso-confirma .paso-pago .pago-opcion {
    position: relative;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0;
    padding: 12px 40px 12px 12px;
    border: 1px solid #d3deec;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
}
.paso-confirma .paso-pago .pago-opcion input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.paso-confirma .paso-pago .pago-marca {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #e7eef8;
    color: #06306e;
}
.paso-confirma .paso-pago .pago-marca svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.paso-confirma .paso-pago .pago-texto strong {
    display: block;
    color: #06306e;
    font-size: 1rem;
}
.paso-confirma .paso-pago .pago-texto small {
    display: block;
    margin-top: 2px;
    color: #5c7190;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.35;
}
.paso-confirma .paso-pago .pago-opcion::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border: 2px solid #c5d2e4;
    border-radius: 50%;
    background: #fff;
}
.paso-confirma .paso-pago .pago-opcion:has(input:checked) {
    border-color: #0048b9;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0, 72, 185, 0.14);
}
.paso-confirma .paso-pago .pago-opcion:has(input:checked) .pago-marca {
    background: #0048b9;
    color: #fff;
}
.paso-confirma .paso-pago .pago-opcion:has(input:checked)::after {
    border-color: #0048b9;
    background: radial-gradient(circle, #0048b9 0 5px, #fff 6px);
}
.paso-confirma .paso-pago .pago-opcion:has(input:focus-visible) {
    outline: 2px solid #0048b9;
    outline-offset: 2px;
}
@media (min-width: 901px) {
    .paso-confirma fieldset.paso-pago {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .paso-confirma .paso-pago legend,
    .paso-confirma .paso-pago .pago-nota {
        grid-column: 1 / -1;
    }
}
.paso-anula { margin: 0; }
.paso-anula summary {
    display: inline-block;
    width: auto;
    color: #0048b9;
    font: 700 0.95rem var(--sans);
    text-decoration: underline;
    cursor: pointer;
    list-style: none;
}
.paso-anula summary::-webkit-details-marker { display: none; }
.paso-anula summary::marker { content: ""; }
.paso-anula h2 {
    margin: 12px 0 8px;
    color: #06306e;
    font-family: var(--sans);
    font-size: 1.05rem;
}
.paso-anula .cuadro { font-size: 0.95rem; }
.paso-confirma .check { font-size: 0.95rem; color: #243040; }
.paso-enviar-ico { width: 20px; height: 20px; flex: 0 0 20px; }
button.boton.boton-enviar { gap: 8px; }
.paso-aviso-fin {
    margin: 0;
    color: #5c7190;
    font-size: 0.88rem;
    font-weight: 500;
    text-align: center;
}
.sellos-app .sello-medida {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    line-height: inherit;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
.sellos-app .sello-medida:focus-visible {
    outline: 2px solid #0048b9;
    outline-offset: 3px;
    border-radius: 10px;
}
.sellos-app .sello-medida svg {
    color: #e10600;
    animation: medida-parpadeo 1.15s linear infinite;
}
@keyframes medida-parpadeo {
    0%, 42% { opacity: 1; }
    50%, 92% { opacity: 0.12; }
    100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .sellos-app .sello-medida svg { animation: none; }
}
.medida-hoja[hidden] { display: none !important; }
.medida-hoja {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: rgba(6, 24, 56, 0.46);
}
.medida-panel {
    width: min(560px, 100%);
    max-height: min(92dvh, 760px);
    overflow: auto;
    margin: 0;
    padding: 8px 16px calc(18px + env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
    background: #fff;
    box-shadow: 0 -12px 40px rgba(6, 24, 56, 0.22);
    transform: translateY(105%);
    transition: transform 0.28s ease;
}
.medida-hoja.abierta .medida-panel { transform: translateY(0); }
.medida-cabeza {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 1;
    margin: 0 -16px 8px;
    padding: 8px 12px 8px 16px;
    background: #fff;
}
.medida-cabeza::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 50%;
    width: 42px;
    height: 4px;
    margin-left: -21px;
    border-radius: 999px;
    background: #d5e0ee;
}
.medida-panel h2 {
    margin: 10px 0 0;
    color: #06306e;
    font-family: var(--sans);
    font-size: 1.25rem;
    letter-spacing: -0.02em;
}
.medida-x {
    width: 40px;
    height: 40px;
    margin-top: 8px;
    border: 0;
    border-radius: 50%;
    background: #0048b9;
    color: #ffffff;
    font: 700 1.7rem/1 var(--sans);
    cursor: pointer;
}
.medida-texto {
    margin: 0 0 12px;
    color: #3d4d66;
    font-size: 0.95rem;
}
.medida-campos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
}
.medida-campos .medida-ancho { grid-column: 1 / -1; }
.medida-panel label {
    gap: 4px;
    color: #06306e;
    font-size: 0.88rem;
}
.medida-panel input,
.medida-panel select,
.medida-panel textarea {
    min-height: 44px;
    border: 1px solid #c9d4e4;
    border-radius: 12px;
    font-size: 1rem;
}
.medida-panel textarea { min-height: 84px; }
.medida-panel .check { margin-top: 12px; font-size: 0.92rem; }
.medida-panel .check input {
    width: 1.4rem;
    height: 1.4rem;
    min-height: 1.4rem;
    margin-top: 0.15rem;
    border-radius: 4px;
}
.medida-panel .boton { width: 100%; margin-top: 8px; border-radius: 14px; }
body.medida-abierta { overflow: hidden; }
@media (max-width: 420px) {
    .medida-campos { grid-template-columns: 1fr; }
}
@media (min-width: 901px) {
    .medida-hoja { padding: 0 16px 24px; }
    .medida-panel { border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .medida-panel { transition: none; }
}
@media (min-width: 480px) {
    .paso-dato-par { grid-template-columns: 1fr 1fr; }
}

.banda-lateral,
.banda-marco,
.banda-pie { display: none; }
@media (min-width: 1400px) {
    body.con-banda-izq,
    body.con-banda-der {
        --banda-ancho: calc((100% - 1120px) / 2);
    }
    body.con-banda-izq { padding-left: var(--banda-ancho); }
    body.con-banda-der { padding-right: var(--banda-ancho); }
    .banda-lateral,
    .banda-marco {
        display: block;
        position: fixed;
        top: 0;
        z-index: 7;
        width: var(--banda-ancho);
        height: 100dvh;
        border: 0;
        border-radius: 0;
        background: #083846;
    }
    .banda-lateral { overflow: hidden; }
    .banda-izq,
    .banda-marco-izq,
    .banda-pie-izq { left: 0; }
    .banda-der,
    .banda-marco-der,
    .banda-pie-der { right: 0; }
    .banda-lateral > img,
    .banda-golpe {
        display: block;
        width: 100%;
        height: 100%;
    }
    .banda-golpe { line-height: 0; }
    .banda-lateral img {
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: center center;
    }
    .banda-marco {
        height: calc(100dvh - 40px);
        background: #10243f;
    }
    .banda-pie {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        bottom: 0;
        z-index: 8;
        width: var(--banda-ancho);
        height: 40px;
        padding: 0 8px;
        background: #06306e;
        color: #fff;
        font-size: 0.78rem;
        font-weight: 700;
        line-height: 1.2;
        text-align: center;
        text-decoration: none;
    }
    .banda-pie:hover,
    .banda-pie:focus-visible { color: #fff; background: #0048b9; }
}
body.oferta-completa .banda-lateral,
body.oferta-completa .banda-marco,
body.oferta-completa .banda-pie { display: none !important; }
body.oferta-completa.con-banda-izq { padding-left: 0; }
body.oferta-completa.con-banda-der { padding-right: 0; }
@media print {
    .banda-lateral,
    .banda-marco,
    .banda-pie { display: none !important; }
    body.con-banda-izq,
    body.con-banda-der { padding-left: 0 !important; padding-right: 0 !important; }
}
