/* Ilusión Viajera · piezas del contenido nuevo (plantilla pieza.php y bloques iv/* del plugin Redacción).
 * Medidas y jerarquía de los prototipos Main/Escritorio, Brienz, Lista/ListaEscritorio e Itinerario. */

/* ---------- Cabecera de la pieza ---------- */
.iv-pieza { --ivp-ancho: 1240px; }
.ivp-cab { max-width: var(--ivp-ancho); margin: 0 auto; display: flex; flex-direction: column; }
.ivp-cab-texto { padding: 26px 18px 18px; display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 900px) { .ivp-cab-texto { padding: 48px var(--lado) 28px; gap: 16px; max-width: 900px; } }
.ivp-migas { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dest); }
.ivp-migas a { color: var(--dest) !important; text-decoration: none; }
.ivp-h1 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 52px; line-height: .92; letter-spacing: -.025em; color: var(--ink); }
.iv-pieza-breve .ivp-h1, .iv-pieza-completa .ivp-h1 { font-size: 60px; }
@media (min-width: 900px) { .ivp-h1 { font-size: 72px; } .iv-pieza-breve .ivp-h1, .iv-pieza-completa .ivp-h1 { font-size: 96px; } }
.ivp-dek { margin: 0; font-family: var(--display); font-style: italic; font-size: 19px; line-height: 1.4; color: var(--ink-soft); max-width: 640px; }
@media (min-width: 900px) { .ivp-dek { font-size: 21px; } }
.ivp-firma { margin: 4px 0 0; display: flex; gap: 10px; align-items: center; font-size: 12px; line-height: 1.35; color: var(--ink-soft); }
.ivp-firma strong { color: var(--ink); }
.ivp-foto { margin: 0; }
.ivp-foto img { display: block; width: 100%; height: 280px; object-fit: cover; }
@media (min-width: 900px) { .ivp-foto { padding: 0 var(--lado); } .ivp-foto img { height: auto; aspect-ratio: 21 / 9; } }
.ivp-foto figcaption { padding: 8px 18px 0; font-size: 11px; font-style: italic; color: var(--muted); }
@media (min-width: 900px) { .ivp-foto figcaption { padding-left: 0; } }
/* Guía completa en ordenador: texto a la izquierda y foto a la derecha (Escritorio). */
@media (min-width: 1000px) {
	.ivp-cab-dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 48px var(--lado) 0; }
	.ivp-cab-dos .ivp-cab-texto { padding: 0; }
	.ivp-cab-dos .ivp-foto { padding: 0; }
	.ivp-cab-dos .ivp-foto img { aspect-ratio: 4 / 3; }
}

/* ---------- Navegación: casillas (completa), «en esta guía» (breve), «de un vistazo» (lista) ---------- */
.ivp-casillas { max-width: var(--ivp-ancho); margin: 24px auto 0; padding: 0 18px; }
@media (min-width: 900px) { .ivp-casillas { padding: 0 var(--lado); margin-top: 32px; } }
.ivp-casillas-t { display: block; padding: 0 0 10px; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
.ivp-casillas-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 1px solid var(--hairline); }
@media (min-width: 1000px) { .ivp-casillas-rejilla { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.ivp-casillas-rejilla a { min-height: 64px; padding: 10px 12px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink) !important; text-decoration: none; }
@media (min-width: 1000px) { .ivp-casillas-rejilla a { min-height: 56px; } }
.ivp-casillas-rejilla a span { font-family: var(--display); font-weight: 400; font-size: 12px; color: var(--muted); }
.ivp-casillas-rejilla a[aria-current] { background: var(--ink); color: var(--paper) !important; }
.ivp-casillas-rejilla a[aria-current] span { color: var(--gold); }
.ivp-casillas-rejilla a:hover { background: var(--paper-2); }

.ivp-enesta { max-width: var(--texto-max); margin: 24px 18px 0; border-top: 1px solid var(--ink); display: flex; flex-direction: column; }
@media (min-width: 900px) { .ivp-enesta { margin: 32px auto 0; } }
.ivp-enesta-t { padding: 12px 0 4px; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
.ivp-enesta a { display: flex; align-items: baseline; gap: 12px; min-height: 44px; padding-top: 10px; border-bottom: 1px solid var(--hairline-soft); color: var(--ink) !important; text-decoration: none; }
.ivp-enesta a span:first-child { width: 20px; font-family: var(--display); font-size: 13px; color: var(--gold-text); }
.ivp-enesta a span:nth-child(2) { flex: 1; font-size: 15px; }
.ivp-enesta a span:last-child { color: var(--muted); }

.ivp-vistazo { max-width: var(--texto-max); margin: 28px 0 0; background: var(--dest-tinte); padding: 24px 18px 20px; display: flex; flex-direction: column; }
@media (min-width: 900px) { .ivp-vistazo { margin: 36px auto 0; padding: 28px 32px 24px; } }
.ivp-vistazo-cab { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--dest); padding-bottom: 8px; }
.ivp-vistazo-cab h2 { margin: 0; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dest); }
.ivp-vistazo-cab span { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dest); }
.ivp-vistazo a { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--dest-linea); color: var(--ink) !important; text-decoration: none; }
.ivp-vistazo-n { font-family: var(--display); font-size: 14px; color: var(--dest); }
.ivp-vistazo-nom { display: flex; flex-direction: column; }
.ivp-vistazo-nom span { font-family: var(--display); font-size: 18px; }
.ivp-vistazo-nom small { font-size: 12px; color: var(--ink-soft); }
.ivp-vistazo-ideal { font-size: 11px; font-weight: 600; color: var(--ink-soft); text-align: right; }

/* ---------- Cuerpo con columna lateral (completa, lista, itinerario) ---------- */
.ivp-cuerpo { max-width: var(--ivp-ancho); margin: 0 auto; padding: 0 18px var(--sec); }
@media (min-width: 900px) { .ivp-cuerpo { padding: 0 var(--lado) var(--sec); } }
.ivp-contenido { max-width: var(--texto-max); margin: 0 auto; }
.ivp-lateral { display: none; }
@media (min-width: 1100px) {
	.ivp-cuerpo.con-lateral { display: grid; grid-template-columns: 240px minmax(0, var(--texto-max)); gap: 64px; justify-content: center; align-items: start; }
	.ivp-cuerpo.con-lateral .ivp-contenido { margin: 0; }
	.ivp-lateral { display: flex; flex-direction: column; position: sticky; top: calc(var(--cab) + 32px); max-height: calc(100vh - var(--cab) - 64px); overflow-y: auto; margin-top: 40px; }
	.ivp-lateral-t { padding-bottom: 10px; border-bottom: 1px solid var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
	.ivp-lateral ol { list-style: none; margin: 0; padding: 0; }
	.ivp-lateral ol a { display: flex; gap: 10px; align-items: baseline; padding: 10px 0 10px 10px; border-bottom: 1px solid var(--hairline); border-left: 2px solid transparent; color: var(--ink) !important; text-decoration: none; font-size: 14px; line-height: 1.35; }
	.ivp-lateral ol a span { font-family: var(--display); font-size: 12px; color: var(--muted); min-width: 22px; }
	.ivp-lateral ol a[aria-current] { font-weight: 700; border-left-color: var(--gold); }
	.ivp-boton-fijo { display: none; }
}

/* ---------- Bloques ---------- */
.ivr-eyebrow { display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
.ivr-eyebrow-dest { color: var(--dest); }
.ivr-seccion { padding-top: 40px; scroll-margin-top: calc(var(--cab) + 16px); }
.iv-contenido .ivr-h2, .ivr-h2 { margin: 6px 0 16px; font-family: var(--display); font-weight: 500; font-size: 30px; line-height: 1.08; color: var(--ink); }
@media (min-width: 900px) { .iv-contenido .ivr-h2, .ivr-h2 { font-size: 36px; } }
.ivr-noche { margin-top: 40px; padding: 34px 22px; background: var(--night); color: var(--night-text); }
.ivr-noche .ivr-eyebrow { color: var(--gold); }
.iv-contenido .ivr-noche .ivr-h2 { color: var(--night-text); font-size: 28px; }
.iv-contenido .ivr-noche p, .iv-contenido .ivr-noche li { color: #E3E6E9; }
.iv-contenido .ivr-noche ol, .iv-contenido .ivr-noche ul { list-style: none; padding: 0; margin: 0; counter-reset: c; }
.iv-contenido .ivr-noche li { counter-increment: c; display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid #34414D; font-size: 14px; line-height: 1.55; }
.iv-contenido .ivr-noche li::before { content: counter(c, decimal-leading-zero); font-family: var(--display); color: var(--gold); }

.ivr-respuesta { margin: 32px 0 8px; padding: 26px 22px 22px; background: var(--night); color: var(--night-text); }
.ivr-respuesta .ivr-eyebrow { color: var(--gold); }
.iv-contenido .ivr-respuesta-t { margin: 8px 0 10px; font-family: var(--display); font-weight: 500; font-size: 24px; line-height: 1.15; color: var(--night-text); }
.iv-contenido .ivr-respuesta p { margin: 0 0 10px; font-size: 16px; line-height: 1.6; color: #E3E6E9; }

.ivr-datos { margin: 30px 0 0; padding: 26px 18px 24px; background: var(--dest-tinte); }
@media (min-width: 900px) { .ivr-datos { padding: 26px 28px 24px; } }
.ivr-datos-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--dest); padding-bottom: 8px; }
.iv-contenido .ivr-datos-cab h2 { margin: 0; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dest); }
.ivr-datos-cab span { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dest); }
.ivr-datos-rejilla { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 700px) { .ivr-datos-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ivr-datos-rejilla > div { padding: 14px 10px 14px 0; border-bottom: 1px solid var(--dest-linea); display: flex; flex-direction: column; gap: 4px; }
.ivr-datos-rejilla dt { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.ivr-datos-rejilla dd { margin: 0; font-family: var(--display); font-size: 17px; line-height: 1.25; color: var(--ink); }
/* Nunca casillas vacías: la última ocupa el hueco de su fila. */
.ivr-datos-rejilla > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 700px) {
	.ivr-datos-rejilla > div:last-child:nth-child(odd) { grid-column: auto; }
	.ivr-datos-rejilla > div:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
	.ivr-datos-rejilla > div:last-child:nth-child(3n+2) { grid-column: span 2; }
}

.ivr-claves { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.iv-contenido .ivr-claves ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.iv-contenido .ivr-claves li { display: flex; gap: 12px; align-items: baseline; margin: 0; padding: 0; font-size: 15px; line-height: 1.45; }
.iv-contenido .ivr-claves li::before { content: ""; width: 6px; height: 6px; flex: none; background: var(--gold); transform: translateY(-2px); }

.ivr-entrada { padding-top: 40px; display: flex; flex-direction: column; gap: 12px; scroll-margin-top: calc(var(--cab) + 10px); }
.ivr-entrada-cab { display: flex; align-items: baseline; gap: 12px; }
.ivr-entrada-n { font-family: var(--display); font-size: 44px; line-height: .9; color: var(--dest); }
.iv-contenido .ivr-entrada-t { margin: 0; font-family: var(--display); font-weight: 500; font-size: 30px; line-height: 1.05; color: var(--ink); }
.ivr-entrada-sub { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ivr-entrada-foto { margin: 0; }
.ivr-entrada-foto img, .ivr-entrada-foto .ivr-img-vacia { display: block; width: 100%; height: 240px; object-fit: cover; }
@media (min-width: 900px) { .ivr-entrada-foto img, .ivr-entrada-foto .ivr-img-vacia { height: 360px; } }
.iv-contenido .ivr-entrada-texto { margin: 0; font-size: 15px; line-height: 1.65; color: var(--texto); }
.ivr-entrada-datos { display: flex; flex-direction: column; border-top: 1px solid var(--ink); }
.ivr-entrada-datos > div { display: flex; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--hairline); font-size: 15px; line-height: 1.4; }
.ivr-entrada-datos svg { color: var(--dest); flex: none; }
.ivr-boton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; background: var(--ink); color: var(--paper) !important; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none !important; }
.iv-contenido a.ivr-boton { color: var(--paper) !important; text-decoration: none; }
.iv-contenido a.ivr-boton-linea { color: var(--ink) !important; }
.ivr-boton-linea { background: transparent; color: var(--ink) !important; border: 1px solid var(--ink); min-height: 52px; width: 100%; }
.ivr-publi { background: var(--paper-2); padding: 16px; display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.ivr-publi-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ivr-publi-cab > span:first-child { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 18px; color: var(--ink); }
.ivr-publi-cab svg { color: var(--gold-text); }
.iv-contenido .ivr-publi p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
.ivr-publi .ivr-boton { align-self: stretch; }

.ivr-lugar { display: flex; gap: 14px; padding: 16px 0; border-top: 1px solid var(--hairline); }
.ivr-lugar-foto { width: 96px; height: 118px; flex: none; position: relative; background: #E6DFD1; overflow: hidden; }
@media (min-width: 900px) { .ivr-lugar-foto { width: 200px; height: 140px; } }
.ivr-lugar-foto img, .ivr-lugar-foto .ivr-img-vacia { display: block; width: 100%; height: 100%; object-fit: cover; }
.ivr-lugar-n { position: absolute; left: 0; bottom: 0; background: var(--paper); padding: 2px 8px 0 0; font-family: var(--display); font-size: 26px; line-height: 1; }
.ivr-lugar-txt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.iv-contenido .ivr-lugar-txt h3 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 20px; line-height: 1.15; color: var(--ink); }
@media (min-width: 900px) { .iv-contenido .ivr-lugar-txt h3 { font-size: 24px; } }
.iv-contenido .ivr-lugar-txt p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
@media (min-width: 900px) { .iv-contenido .ivr-lugar-txt p { font-size: 15px; } }
.ivr-lugar-meta { font-size: 12px; color: var(--muted); }
.ivr-enlace { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink) !important; text-decoration: none !important; border-bottom: 1px solid var(--gold); padding: 6px 0 2px; }

.ivr-llegar { display: flex; flex-direction: column; }
.ivr-llegar-fila { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--hairline); }
.ivr-llegar-medio { font-family: var(--display); font-size: 17px; display: flex; flex-direction: column; gap: 2px; }
.ivr-llegar-medio small { font-family: var(--sans); font-size: 12px; color: var(--muted); }
.ivr-llegar-val { font-family: var(--display); font-size: 16px; color: var(--gold-text); text-align: right; white-space: nowrap; }

.ivr-zonas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 700px) { .ivr-zonas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ivr-zona { padding: 20px 0 16px; border-top: 1px solid var(--ink); display: flex; flex-direction: column; gap: 8px; }
.iv-contenido .ivr-zona h3 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 22px; color: var(--ink); }
.ivr-zona-para { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dest); }
.ivr-zona dl { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.ivr-zona dt { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ivr-zona dd { margin: 0; font-size: 14px; line-height: 1.5; color: var(--texto); }
.ivr-zona-publi { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; }

.ivr-etapa { padding-top: 48px; scroll-margin-top: calc(var(--cab) + 16px); }
.ivr-etapa-cab { padding: 16px 18px; margin: 0 -18px; background: var(--dest-tinte); display: flex; flex-direction: column; gap: 4px; }
@media (min-width: 900px) { .ivr-etapa-cab { margin: 0; padding: 18px 22px; } }
.iv-contenido .ivr-etapa-cab .ivr-h2 { margin: 2px 0; }
.ivr-etapa-noches { font-size: 13px; color: var(--ink-soft); }
.ivr-etapa-noches a { color: var(--ink) !important; text-decoration: none; border-bottom: 1px solid var(--gold); }
.ivr-dia { padding: 32px 0 8px; display: flex; flex-direction: column; gap: 12px; border-bottom: 1px solid var(--hairline); scroll-margin-top: calc(var(--cab) + 16px); }
.ivr-dia-n { font-size: 10px; font-weight: 700; letter-spacing: .14em; color: var(--muted); }
.iv-contenido .ivr-dia h3 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 24px; line-height: 1.1; color: var(--ink); }
@media (min-width: 900px) { .iv-contenido .ivr-dia h3 { font-size: 30px; } }
.ivr-dia-bloque { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--hairline-soft); }
.ivr-dia-bloque span { font-size: 10px; font-weight: 700; letter-spacing: .12em; color: var(--dest); padding-top: 3px; }
.iv-contenido .ivr-dia-bloque p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--texto); }
.ivr-etapa .ivr-publi { margin-top: 24px; }
.ivr-traslado { margin: 24px 0 0; border: 1px solid var(--ink); background: var(--card); }
.ivr-traslado-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--hairline); }
.ivr-traslado-cab span { font-family: var(--display); font-size: 18px; color: var(--ink); }
.ivr-traslado-cab small { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.ivr-traslado dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ivr-traslado dl > div { padding: 10px 14px; border-right: 1px solid var(--hairline); }
.ivr-traslado dl > div:last-child { border-right: 0; }
.ivr-traslado dt { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ivr-traslado dd { margin: 2px 0 0; font-family: var(--display); font-size: 16px; color: var(--ink); }
.ivr-traslado-pie { display: flex; justify-content: flex-end; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--hairline); }
.ivr-traslado-pie .ivr-boton { min-height: 44px; padding: 0 16px; font-size: 11px; }

.ivr-cerca-rejilla { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 14px; }
@media (min-width: 900px) { .ivr-cerca-rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ivr-cerca-rejilla a { display: flex; flex-direction: column; gap: 8px; color: var(--ink) !important; text-decoration: none; }
.ivr-cerca-rejilla img, .ivr-cerca-rejilla .ivr-img-vacia { display: block; width: 100%; height: 120px; object-fit: cover; }
.ivr-cerca-n { font-family: var(--display); font-size: 18px; }
.ivr-cerca-t { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ivr-forma-parte { margin-top: 26px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); padding: 16px 0; display: flex; justify-content: space-between; align-items: center; color: var(--ink) !important; text-decoration: none !important; }
.ivr-forma-parte > span:first-child { display: flex; flex-direction: column; gap: 2px; }
.ivr-forma-parte > span:first-child span:first-child { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-text); }
.ivr-forma-parte > span:first-child span:last-child { font-family: var(--display); font-size: 20px; }

.ivr-fuentes { margin-top: 48px; padding-top: 18px; border-top: 1px solid var(--ink); }
.iv-contenido .ivr-fuentes-t { margin: 0 0 6px; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); }
.iv-contenido .ivr-fuentes-nota { margin: 0 0 10px; font-size: 13px; color: var(--muted); }
.iv-contenido .ivr-fuentes ol { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; color: var(--ink-soft); }
.ivr-dato-falta { background: var(--warning-bg); color: var(--warning); }
.ivr-img-vacia { display: block; background: var(--dest-tinte, #E6DFD1); }

/* Editor (formulario sencillo). */
.ivr-editor { border: 1px dashed #CFC6B4; padding: 12px; }
.ivr-editor-t { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #82632F; margin-bottom: 8px; }
.ivr-editor-form { background: #FFFDF8; padding: 8px; margin-bottom: 10px; }

/* ---------- Ajustes del paso 2 frente a los prototipos ---------- */
/* Sin doble hueco entre el final de la pieza y «Sigue leyendo». */
.ivp-cuerpo:has(+ .iv-relacionadas) { padding-bottom: 0; }
/* Cabecera de «X en datos»: el nombre no se parte. */
.iv-contenido .ivr-datos-cab h2 { white-space: nowrap; }
.ivr-datos-cab span { text-align: right; }

/* Columna lateral a la izquierda alineada con el contenedor (Lista y Itinerario escritorio);
   en la guía completa va a la derecha, como «Reserva lo esencial» en Escritorio. */
@media (min-width: 1100px) {
	.ivp-cuerpo.con-lateral { grid-template-columns: 220px minmax(0, 1fr); gap: 56px; justify-content: stretch; }
	.ivp-cuerpo.con-lateral .ivp-contenido { max-width: none; }
	.ivp-cuerpo.lateral-derecha { grid-template-columns: minmax(0, 1fr) 260px; }
	.ivp-cuerpo.lateral-derecha .ivp-lateral { order: 2; }
	.ivp-lateral-grupo { padding: 14px 0 4px; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dest); }
	.ivp-lateral ol a span { white-space: nowrap; }
}

/* Lista: cabecera centrada y «De un vistazo» a todo lo ancho en tres columnas. */
@media (min-width: 900px) {
	.iv-pieza-lista .ivp-cab-texto { margin: 0 auto; text-align: center; align-items: center; }
	.iv-pieza-lista .ivp-firma { justify-content: center; }
	.iv-pieza-lista .ivp-vistazo { max-width: calc(var(--ivp-ancho) - 2 * var(--lado)); margin: 36px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 28px; }
	.iv-pieza-lista .ivp-vistazo-cab { grid-column: 1 / -1; }
	.iv-pieza-lista .ivp-vistazo a { grid-template-columns: 28px 1fr; }
	.iv-pieza-lista .ivp-vistazo-ideal { display: none; }
	.ivr-entrada-foto img, .ivr-entrada-foto .ivr-img-vacia { height: auto; aspect-ratio: 13 / 6; }
	.ivr-entrada-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .72fr); gap: 28px; align-items: start; }
}
.ivr-entrada-cuerpo, .ivr-entrada-izq, .ivr-entrada-der { display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 900px) { .ivr-entrada-cuerpo { display: grid; } }
.ivr-entrada-izq .ivr-boton-linea { width: auto; align-self: flex-start; min-height: 44px; }

/* Itinerario: ruta de un vistazo, número grande de cada día y cabecera de etapa en una línea. */
.ivp-ruta { max-width: calc(var(--ivp-ancho) - 2 * var(--lado)); margin: 28px 18px 0; padding-top: 14px; border-top: 1px solid var(--ink); display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 900px) { .ivp-ruta { margin: 32px auto 0; flex-direction: row; align-items: baseline; justify-content: space-between; gap: 16px; } }
.ivp-ruta-etapa { display: flex; gap: 10px; align-items: baseline; color: var(--ink) !important; text-decoration: none; }
.ivp-ruta-punto { width: 10px; height: 10px; background: var(--dest); flex: none; }
.ivp-ruta-etapa > span:last-child { display: flex; flex-direction: column; }
.ivp-ruta-nom { font-family: var(--display); font-size: 22px; line-height: 1.1; }
.ivp-ruta-etapa small { font-size: 11px; color: var(--muted); }
.ivp-ruta-tramo { font-size: 11px; color: var(--muted); padding-left: 20px; }
@media (min-width: 900px) { .ivp-ruta-tramo { padding-left: 0; flex: 1; text-align: center; border-bottom: 1px dashed var(--hairline); padding-bottom: 4px; } }
.ivr-dia-cab { display: flex; gap: 14px; align-items: flex-start; }
.ivr-dia-cab > div { display: flex; flex-direction: column; gap: 4px; }
.ivr-dia-num { font-family: var(--display); font-size: 44px; line-height: .9; color: var(--dest); min-width: 26px; }
.ivr-etapa-cab { border-top: 2px solid var(--dest); }
@media (min-width: 900px) { .ivr-etapa-cab { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 16px; } .ivr-etapa-noches { text-align: right; } }

/* ---------- Ajustes del paso 2 (AJUSTES-PASO-2.md) ---------- */
/* Publicidad: la etiqueta en la misma línea que su enlace. */
.ivr-publi-linea { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; margin-top: 4px; }
.ivr-publi-linea .ivr-enlace { white-space: nowrap; }
.ivr-lugar-txt .ivr-publi-linea .ivr-enlace { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Resumen del itinerario («Tres ciudades, dos trenes»). */
.ivr-datos-resumen { background: transparent; padding: 0; margin-top: 8px; }
.ivr-datos-resumen .ivr-datos-cab { border-bottom: 0; padding-bottom: 0; }
.iv-contenido .ivr-datos-resumen .ivr-h2 { margin: 4px 0 14px; }
.ivr-datos-resumen .ivr-datos-rejilla { background: var(--dest-tinte); border-top: 1px solid var(--dest); }
@media (min-width: 700px) { .ivr-datos-resumen .ivr-datos-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Zonas para dormir: rejilla simétrica (--ivr-cols), sin casillas vacías. */
@media (min-width: 700px) {
	.ivr-zonas { grid-template-columns: repeat(var(--ivr-cols, 2), minmax(0, 1fr)); gap: 20px; }
	.ivr-zonas-impar .ivr-zona:last-child { grid-column: 1 / -1; }
}
.ivr-zona-foto { margin: -20px 0 4px; }
.ivr-zona-foto img, .ivr-zona-foto .ivr-img-vacia { display: block; width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; }

/* Día del itinerario: consejo, reserva del día y traslado dentro del día. */
.ivr-dia-consejo span { color: var(--gold-text); }
.iv-contenido .ivr-dia-consejo p { font-size: 13px; color: var(--ink-soft); }
.ivr-reserva-dia { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--paper-2); margin-top: 4px; }
.ivr-reserva-dia > span:first-child { flex: 1; display: flex; flex-direction: column; min-width: 0; font-size: 14px; }
.ivr-reserva-dia small { font-size: 12px; color: var(--muted); }
.ivr-boton-mini { min-height: 36px; padding: 0 12px; font-size: 10px; flex: none; }
.ivr-dia .ivr-traslado { margin: 4px 0 6px; }
.ivr-traslado-cab small { text-transform: none; letter-spacing: 0; font-weight: 400; font-family: var(--sans); font-size: 14px; color: var(--ink-soft); }
.ivr-traslado dl { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
.ivr-traslado-pie { justify-content: stretch; }
.ivr-traslado-pie .ivr-boton { flex: 1; min-height: 44px; }

/* Reserva lo esencial / Lo que conviene tener resuelto. */
.ivr-reserva { margin-top: 48px; display: grid; gap: 18px; }
@media (min-width: 900px) { .ivr-reserva { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; } }
.iv-contenido .ivr-reserva-intro .ivr-h2 { margin: 4px 0 8px; }
.iv-contenido .ivr-reserva-intro p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
.ivr-reserva-lista, .ivp-reserva ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.ivr-reserva-lista li, .ivp-reserva li { border-bottom: 1px solid var(--hairline); padding: 0 !important; }
.iv-contenido .ivr-reserva-lista li::before { content: none; }
.ivr-reserva-lista a, .ivp-reserva a { display: flex; align-items: center; gap: 10px; padding: 13px 4px; color: var(--ink) !important; text-decoration: none !important; }
.ivr-reserva-lista a > span:first-child, .ivp-reserva a > span:first-child { flex: 1; display: flex; flex-direction: column; min-width: 0; font-size: 15px; }
.ivr-reserva-lista small, .ivp-reserva small { font-size: 12px; color: var(--muted); }
.ivp-reserva { margin-top: 28px; }
.ivp-reserva a { padding: 11px 0; border-left: 0 !important; }
.ivp-reserva a > span:first-child { font-size: 13px; }
.ivp-reserva p { margin: 8px 0 0; font-size: 11px; color: var(--muted); }
@media (min-width: 1100px) {
	.ivp-cuerpo.lateral-derecha .ivr-reserva { display: none; } /* En ordenador va en la columna derecha. */
	.ivp-cuerpo.lateral-derecha .ivp-lateral ol a { padding: 7px 0 7px 10px; font-size: 13px; }
}

/* ¿Cuántos días tienes? / ¿Tienes menos o más tiempo? */
.ivr-tdias { margin-top: 48px; }
.iv-contenido .ivr-tdias .ivr-h2 { margin: 4px 0 18px; }
.iv-contenido .ivr-tdias-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.iv-contenido .ivr-tdias-lista li { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-top: 1px solid var(--ink); }
.iv-contenido .ivr-tdias-lista li::before { content: none; }
@media (min-width: 700px) { .iv-contenido .ivr-tdias-lista { grid-template-columns: repeat(var(--ivr-cols, 3), minmax(0, 1fr)); gap: 24px; } }
.ivr-tdias-n { font-family: var(--display); font-size: 38px; line-height: 1; color: var(--dest); }
.iv-contenido .ivr-tdias h3 { margin: 4px 0 0; font-family: var(--display); font-weight: 500; font-size: 20px; color: var(--ink); }
.iv-contenido .ivr-tdias p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink-soft); }

/* Barrio destacado. */
.ivr-barrio { margin: 40px -18px 0; background: var(--paper-2); display: grid; }
@media (min-width: 900px) { .ivr-barrio { margin: 40px 0 0; grid-template-columns: 1fr 1fr; } }
.ivr-barrio-foto { margin: 0; }
.ivr-barrio-foto img, .ivr-barrio-foto .ivr-img-vacia { display: block; width: 100%; height: 100%; min-height: 220px; aspect-ratio: 4 / 3; object-fit: cover; }
.ivr-barrio-txt { padding: 24px 18px 26px; display: flex; flex-direction: column; gap: 8px; justify-content: center; }
@media (min-width: 900px) { .ivr-barrio-txt { padding: 28px; } }
.iv-contenido .ivr-barrio .ivr-h2 { margin: 0; }
.iv-contenido .ivr-barrio p { margin: 0; font-size: 15px; line-height: 1.6; }

/* Consejo del editor (azul noche). */
.ivr-consejo { margin: 40px -18px 0; padding: 30px 22px; background: var(--night); color: var(--night-text); }
@media (min-width: 900px) { .ivr-consejo { margin: 40px 0 0; padding: 34px 36px; } }
.ivr-consejo-comillas { display: block; font-family: var(--display); font-size: 48px; line-height: .6; color: var(--gold); }
.iv-contenido .ivr-consejo blockquote { margin: 12px 0 18px; padding: 0; border: 0; font-family: var(--display); font-style: italic; font-size: 22px; line-height: 1.35; color: var(--night-text); }
.ivr-consejo-firma { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--night-text); }
.ivr-consejo-firma em { font-style: normal; color: var(--gold); }

/* Lista: «Cómo recorrerlos». */
.ivr-noche-ruta { margin: 48px -18px 0; padding: 30px 22px; background: var(--night); color: var(--night-text); display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 900px) { .ivr-noche-ruta { margin: 56px 0 0; padding: 32px 36px; } }
.ivr-noche-ruta .ivr-eyebrow { color: var(--gold); }
.iv-contenido .ivr-noche-ruta h2 { margin: 0; font-family: var(--display); font-weight: 500; font-size: 28px; line-height: 1.15; color: var(--night-text); }
.iv-contenido .ivr-noche-ruta p { margin: 0; font-size: 14px; color: #E3E6E9; }
.iv-contenido .ivr-noche-ruta .ivr-enlace { color: var(--night-text) !important; text-decoration-color: var(--gold); align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Botón fijo: solo cuando el índice ha salido de la pantalla. */
.ivp-boton-fijo { transition: transform .2s ease, opacity .2s ease; }
.ivp-boton-fijo.ivp-oculto { transform: translateY(140%); opacity: 0; pointer-events: none; visibility: hidden; }
/* Guía completa en móvil: «¿Cuántos días tienes?» como línea de tiempo (prototipo Main). */
@media (max-width: 699px) {
	.iv-pieza-completa .ivr-tdias-lista li { position: relative; border-top: 0; padding: 4px 0 18px 26px; border-left: 1px solid var(--gold); margin-left: 6px; }
	.iv-pieza-completa .ivr-tdias-lista li::after { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; border: 1px solid var(--gold); background: var(--paper); }
	.iv-pieza-completa .ivr-tdias-n { display: none; }
	.iv-contenido .iv-pieza-completa .ivr-tdias h3, .iv-pieza-completa .ivr-tdias h3 { margin-top: 0; }
}

/* Columna derecha: título y nota arriba, PUBLICIDAD debajo, sin pisarse. */
.ivp-reserva a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "t f" "e f"; column-gap: 8px; row-gap: 4px; align-items: start; }
.ivp-reserva a > span:first-child { grid-area: t; font-family: var(--sans); font-size: 13px; line-height: 1.35; white-space: normal; }
.ivp-reserva a strong { font-weight: 600; }
.ivp-reserva a .iv-etiqueta { grid-area: e; justify-self: start; }
.ivp-reserva a > span[aria-hidden] { grid-area: f; color: var(--ink-soft); }
/* Zonas en tres columnas: el enlace y su etiqueta caben en la misma línea. */
.ivr-zona .ivr-publi-linea { gap: 6px; }
.ivr-zona .ivr-publi-linea .ivr-enlace { font-size: 11px; letter-spacing: .06em; }
.ivr-dia-bloque.ivr-dia-consejo { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
.iv-contenido .ivr-dia-bloque.ivr-dia-consejo p { font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
@media (max-width: 699px) {
	.ivr-reserva-dia { flex-wrap: wrap; }
	.ivr-reserva-dia > span:first-child { flex-basis: 100%; }
}
