/* ==========================================================================
   Paquetes (equipo de paquetes) · sobre las fichas de luz.css y, en los buscadores, busqueda.css
   --------------------------------------------------------------------------
   · Clases «pq-» (catálogo, ficha, tarjeta del buscador y editor de Puente) y «ds-» (la ficha de
     destino, que es plantilla de este equipo por el cruce con los paquetes). Nada pisa a nadie.
   · Solo fichas de luz.css: colores, espacios, radios y la escala tipográfica --t-*.
   · Sin estilos en línea en las plantillas: lo que antes iba en style="" vive aquí.
   · Puntos de corte de la casa: 480, 700, 900 y 1060 px. Sin desbordes a 320 px.
   ========================================================================== */

/* ---------- comunes ---------- */
.pq-pista { margin: 0; font-size: var(--t-xs); line-height: 1.5; color: var(--suave); }
.pq-nota { display: block; max-width: 72ch; margin: 0; font-size: var(--t-xs); line-height: 1.5; color: var(--suave); }
.pq-nota .ico { color: var(--ambar); }
.pq-cifra { font-variant-numeric: tabular-nums lining-nums; font-weight: 650; color: var(--noche); }
.pq-atras { transform: rotate(180deg); }
.pq-aviso { margin-bottom: var(--e5); }
.pq-t-pequeno { font-size: var(--t-xl); margin-bottom: var(--e5); }

/* ---------- tarjeta de la web (macro tarjeta_paquete, sobre .destino de luz.css) ---------- */
/* Columnas elegidas en el servidor (macro rejilla_paquetes) para que la última fila quede completa. */
.rejilla.pq-rejilla { list-style: none; margin: 0; padding: 0; grid-template-columns: minmax(0, 1fr); }
.pq-rejilla > li { min-width: 0; }
.pq-rejilla .destino { height: 100%; }
@media (min-width: 700px) {
  .rejilla.pq-rejilla.pq-2, .rejilla.pq-rejilla.pq-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Más alta que ancha no hace falta: con altura fija el texto nunca llega a la flecha de arriba y una
     tarjeta sola (pq-1) es una banda apaisada, no un póster de un metro. */
  .pq-rejilla .destino { aspect-ratio: auto; min-height: 420px; }
  .pq-rejilla.pq-3 .destino-texto h3 { font-size: var(--t-l); }
}
@media (min-width: 1060px) { .rejilla.pq-rejilla.pq-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pq-1 .destino-texto { max-width: 640px; }
.destino-texto .pq-precio-tarjeta { margin-top: var(--e2); font: 650 var(--t-m)/1.3 var(--f-texto); color: var(--luz-viva);
  font-variant-numeric: tabular-nums lining-nums; }
.destino-texto .pq-precio-tarjeta span { font-weight: 450; font-size: var(--t-xs); color: #D6CFC2; }
/* De dónde sale ese precio, como en la ficha (regla 1): en letra pequeña, bajo el importe. */
.destino-texto .pq-procedencia-tarjeta { display: flex; gap: 6px; align-items: flex-start; margin-top: 4px; font-size: var(--t-xs); line-height: 1.45; }
.pq-procedencia-tarjeta .ico { flex: none; margin-top: 2px; color: var(--luz-viva); }

/* ---------- catálogo /paquetes/ ---------- */
.pq-buscador { display: grid; gap: var(--e4); align-items: end; padding: var(--e5); margin-bottom: var(--e6);
  background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-g); box-shadow: var(--sombra-1);
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.pq-buscador .boton { min-height: 50px; }
.pq-chips { margin-bottom: var(--e2); }
.pq-paginas { margin-top: var(--e6); }
.pq-paginas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e2); }
.pq-pagina { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; padding: 0 12px;
  border: 1.5px solid var(--bq-borde-control, #857D6E); border-radius: var(--radio-pildora); background: var(--superficie);
  color: var(--noche); font: 600 var(--t-s)/1 var(--f-texto); text-decoration: none; font-variant-numeric: tabular-nums; }
a.pq-pagina:hover { background: var(--arena); color: var(--noche); }
.pq-pagina.actual { background: var(--noche); border-color: var(--noche); color: #fff; }
.pq-pagina-paso { padding: 0 var(--e4); }
.pq-vacio a { font-weight: 600; }
.pq-cierre { display: grid; gap: var(--e5); align-items: end; }
.pq-cierre h2 { font-size: var(--t-xl); }
@media (min-width: 900px) { .pq-cierre { grid-template-columns: 1.3fr auto; } }

/* ---------- tarjeta del buscador común (/buscar/paquetes/) ---------- */
.pq-resultado { display: grid; gap: var(--e4); align-items: start; }
.pq-resultado-texto { display: grid; gap: var(--e3); min-width: 0; }
.pq-resultado-texto h3 a { color: var(--tinta); text-decoration-color: var(--luz); }
.pq-resultado-texto h3 a:hover { color: var(--noche); }
.pq-miniatura { width: 128px; height: 96px; object-fit: cover; border-radius: var(--radio); background: var(--arena); }
.pq-resumen { margin: 0; font-size: var(--t-s); color: var(--texto); }
.pq-epoca { margin: 0; display: flex; gap: 6px; align-items: flex-start; font-size: var(--t-xs); line-height: 1.45; color: var(--suave); }
.pq-epoca .ico { color: var(--ambar); margin-top: 1px; }
.bq-etiquetas .etiqueta .ico { color: var(--bien); }
@media (min-width: 480px) { .pq-resultado.con-foto { grid-template-columns: 128px minmax(0, 1fr); } }

/* ---------- ficha del paquete ---------- */
.pq-ficha-arriba { padding-bottom: var(--e7); }
.pq-ficha-cabecera { max-width: 820px; margin-bottom: var(--e6); }
.pq-ficha-cabecera h1 { font-size: var(--t-2xl); }
.pq-ficha-cabecera .entradilla { margin-top: var(--e4); }
.pq-sellos { list-style: none; margin: var(--e4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); }
.pq-ficha-cuerpo { display: grid; gap: var(--e6); align-items: start; }
@media (min-width: 960px) {
  .pq-ficha-cuerpo { grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); }
  .pq-lado { position: sticky; top: calc(var(--alto-cabecera) + var(--e4)); }
}
.pq-galeria { display: grid; gap: var(--e3); grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
.pq-foto { margin: 0; display: grid; gap: 6px; min-width: 0; }
.pq-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radio); background: var(--arena); }
.pq-foto.principal { grid-column: 1 / -1; }
.pq-foto.principal img { aspect-ratio: 16 / 10; }
/* Sin fotos: la cubierta de tinta con el destino en Fraunces cursiva y un filete dorado (texto, no dibujo). */
.pq-cubierta { position: relative; aspect-ratio: 16 / 10; border-radius: var(--radio); overflow: hidden; align-content: end; gap: var(--e2);
  padding: calc(12px + clamp(20px, 4vw, 40px)); background: radial-gradient(70% 90% at 88% 0%, rgba(201,169,110,.13), transparent 70%), linear-gradient(180deg, var(--noche) 0%, var(--noche-prof) 100%); }
.pq-cubierta::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(216,189,136,.28); border-radius: var(--radio-s); pointer-events: none; }
.pq-cubierta small { font: 560 var(--t-xs)/1.3 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; color: var(--sobre-oscuro-3); }
.pq-cubierta span { font: italic 380 var(--t-3xl)/1.05 var(--f-display); letter-spacing: -.01em; color: var(--sobre-oscuro-acento); overflow-wrap: anywhere; }
.pq-credito { margin: 0; font-size: var(--t-xs); line-height: 1.4; color: var(--suave); overflow-wrap: anywhere; }
.pq-credito a { color: var(--suave); }
.pq-credito a:hover { color: var(--noche); }
.pq-lado { display: grid; gap: var(--e5); min-width: 0; padding: var(--e5); background: var(--superficie); border: 1px solid var(--borde);
  border-radius: var(--radio-g); box-shadow: var(--sombra-1); }
.pq-lado-titulo { font: 600 var(--t-xs)/1 var(--f-texto); letter-spacing: .14em; text-transform: uppercase; color: var(--ambar); margin: 0 0 var(--e3); }
.pq-precio-caja { display: grid; gap: var(--e2); }
.pq-importe { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: var(--t-s); color: var(--suave);
  font-variant-numeric: tabular-nums lining-nums; }
.pq-importe b { font: 700 var(--t-xl)/1.1 var(--f-texto); color: var(--noche); }
.pq-importe.pq-a-consultar { font: 650 var(--t-l)/1.2 var(--f-texto); color: var(--noche); }
.pq-procedencia { margin: 0; max-width: 44em; display: flex; gap: 6px; align-items: flex-start; font-size: var(--t-xs); line-height: 1.5; color: var(--suave); }
.pq-procedencia .ico { margin-top: 2px; color: var(--ambar); }
.pq-vistazo { margin: 0; }
@media (min-width: 1200px) { .pq-vistazo { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--e5); } }
.pq-vistazo > div { padding: var(--e3) 0; }
.pq-vistazo dd { flex-direction: column; gap: 2px; }
.pq-acciones { display: grid; gap: var(--e3); }
.pq-acciones .boton { white-space: normal; text-align: center; min-height: 48px; }
.pq-anadir { margin: 0; }
.pq-acciones .enlace-flecha { justify-self: center; min-height: 32px; }

.pq-viaje { display: grid; gap: var(--e6); }
.pq-descripcion { max-width: var(--ancho-texto); }
.pq-incluye { display: grid; gap: var(--e6); grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
.pq-incluye h3 { margin-bottom: var(--e3); }
.pq-tipos { list-style: none; margin: 0 0 var(--e4); padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pq-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
.pq-lista li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: var(--e3); align-items: start; font-size: var(--t-s); }
.pq-lista .ico { color: var(--bien); margin-top: 2px; }
.pq-lista.no .ico { color: var(--suave); }

.pq-meses { list-style: none; margin: 0 0 var(--e4); padding: 0; display: grid; gap: 5px; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.pq-meses li { display: grid; justify-items: center; gap: 6px; padding: 10px 2px 8px; border-radius: var(--radio-s); background: var(--arena);
  min-height: 64px; }
.pq-meses li.mejor { background: var(--miel); box-shadow: inset 0 0 0 1.5px var(--luz); }
.pq-meses li.sale .pq-mes { color: var(--noche); }
.pq-mes { font: 650 var(--t-xs)/1 var(--f-texto); letter-spacing: .06em; text-transform: uppercase; color: var(--suave); }
.pq-marcas { display: flex; gap: 2px; color: var(--noche-suave); }
.pq-meses li.mejor .pq-marcas .ico:last-child { color: var(--ambar); }
@media (max-width: 700px) { .pq-meses { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.pq-extras { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); }
.pq-extra { display: flex; gap: var(--e4); align-items: flex-start; height: 100%; padding: var(--e5); color: var(--texto); text-decoration: none; }
.pq-extra .ico { color: var(--ambar); flex: none; }
.pq-extra span { display: grid; gap: 4px; }
.pq-extra b { color: var(--tinta); }
.pq-extra small { color: var(--suave); font-size: var(--t-xs); }
.pq-extra:hover { border-color: var(--luz); color: var(--texto); }
.pq-pedir { display: grid; gap: var(--e7); align-items: start; }
@media (min-width: 900px) { .pq-pedir { grid-template-columns: 1fr 1fr; } }
.pq-pedir .lista-ok { margin-top: var(--e5); }

/* ---------- Puente: lista y editor ---------- */
.pq-tabla { position: relative; }   /* los textos «solo-lectores» (absolutos) se quedan dentro del desplazamiento */
.pq-tabla td { vertical-align: middle; }
.pq-tabla small { color: var(--suave); }
.pq-tabla-foto { width: 64px; }
.pq-tabla-foto img, .pq-tabla-sin-foto { width: 48px; height: 48px; border-radius: var(--radio-s); object-fit: cover; background: var(--arena); }
.pq-tabla-sin-foto { display: grid; place-items: center; color: var(--ambar); }
.pq-tabla-acciones { text-align: right; }
.pq-estado { margin: var(--e2) 0 0; display: flex; flex-wrap: wrap; gap: var(--e2); align-items: center; font-size: var(--t-xs); color: var(--suave); }
.pq-errores { margin: var(--e2) 0 0; padding-left: 1.2em; display: grid; gap: 4px; }
.pq-errores a { color: inherit; font-weight: 620; }
.pq-alta { max-width: 640px; }
.pq-alta .pq-pista { margin-bottom: var(--e4); }
.pq-editor { display: grid; gap: var(--e5); align-items: start; }
.pq-editor-form, .pq-editor-lado { display: grid; gap: var(--e5); min-width: 0; }
.pq-editor .panel + .panel { margin-top: 0; }
/* Un campo estirado por su vecino de fila (pista de dos líneas) no reparte la altura sobrante entre
   rótulo, control y pista: el control mantiene su altura y todo arranca arriba. */
.pq-editor .campo { align-content: start; }
.pq-editor h2 { font-size: var(--t-l); margin-bottom: var(--e3); }
.pq-editor .panel > .pq-pista { margin-bottom: var(--e4); }
.pq-casillas { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: var(--e2); }
.pq-casillas legend { padding: 0; margin-bottom: var(--e2); font: 600 var(--t-xs)/1.2 var(--f-texto); color: var(--tinta); }
.pq-casillas-lista { display: grid; gap: var(--e2) var(--e4); grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); }
.pq-casillas.meses .pq-casillas-lista { grid-template-columns: repeat(auto-fill, minmax(min(118px, 100%), 1fr)); }
.pq-casillas .casilla, .pq-casillas-lista .casilla { align-items: center; min-height: 32px; color: var(--texto); cursor: pointer; }
.pq-casillas.error legend { color: var(--mal); }
.pq-editor .campo.error .control { border-color: var(--mal); }
.pq-editor .mensaje-error { margin: 0; color: var(--mal); font-size: var(--t-xs); font-weight: 520; }
.pq-previa { max-width: 320px; }
.pq-previa-precio { margin-top: var(--e4); padding-top: var(--e4); border-top: 1px solid var(--borde); }
.pq-t-revision { font: 650 var(--t-xs)/1.3 var(--f-texto); text-transform: uppercase; letter-spacing: .1em; margin: var(--e5) 0 var(--e3); }
.pq-revision { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e2); }
.pq-revision li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: var(--e2); align-items: start; font-size: var(--t-xs); line-height: 1.5; }
.pq-revision li .ico { margin-top: 1px; }
.pq-revision li.bien .ico { color: var(--bien); }
.pq-revision li.aviso .ico { color: var(--aviso); }
.pq-revision li.mal { color: var(--color-mal-texto); }
.pq-revision li.mal .ico { color: var(--mal); }
.pq-fotos-puente { list-style: none; margin: 0 0 var(--e4); padding: 0; display: grid; gap: var(--e4); }
.pq-fotos-puente li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--e3); align-items: start; }
.pq-fotos-puente img { width: 96px; height: 72px; object-fit: cover; border-radius: var(--radio-s); background: var(--arena); }
.pq-fotos-puente .fila { margin-top: var(--e2); gap: var(--e2); }
.pq-fotos-puente form { margin: 0; }
.pq-subir-foto { margin-top: var(--e3); }
.boton.pq-peligro { --fg: var(--mal); border-color: var(--mal); }
.boton.pq-peligro:hover { --bg: var(--mal); --fg: #fff; }
@media (min-width: 1200px) {
  .pq-editor { grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); }
  .pq-editor-lado { position: sticky; top: var(--e5); }
}

/* ---------- ficha de destino (publico/destino.html) ---------- */
.ds-titular { font-size: var(--t-2xl); max-width: 22ch; }
.heroe h1.ds-titular { max-width: 22ch; }
.ds-arriba { align-items: start; }
.ds-h2 { font-size: var(--t-xl); }
.ds-mejor { margin-top: var(--e3); max-width: 62ch; }
.ds-suave { color: var(--suave); font-size: var(--t-s); }
.ds-dato { font-size: var(--t-xs); color: var(--suave); }
.ds-lluvia { display: block; width: 100%; height: 3px; }
.ds-lluvia rect { fill: var(--info); }
.ds-fuera { margin-top: var(--e6); align-items: start; }
.ds-cambio { margin-top: var(--e3); font-size: var(--t-xl); font-weight: 700; color: var(--noche); }
.ds-cambio small { font-size: var(--t-s); font-weight: 600; }
.ds-fuente { margin-top: var(--e2); color: var(--suave); font-size: var(--t-xs); }
.ds-texto-suave { margin-top: var(--e3); color: var(--suave); font-size: var(--t-s); }
.ds-festivos { margin-top: var(--e4); display: grid; gap: var(--e2); }
.ds-festivos li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.ds-festivos b { min-width: 5.5em; }
.ds-festivos span { color: var(--suave); font-size: var(--t-s); }
.ds-otros { justify-content: space-between; align-items: end; max-width: none; }

/* ---------- foco visible también en colores forzados ---------- */
.pq-pagina:focus-visible, .pq-extra:focus-visible, .pq-resultado-texto a:focus-visible, .pq-credito a:focus-visible {
  outline: 2px solid transparent; outline-offset: 2px; }
@media (forced-colors: active) {
  .pq-pagina:focus-visible, .pq-extra:focus-visible, .pq-resultado-texto a:focus-visible { outline: 3px solid Highlight; }
  .pq-pagina.actual { outline: 2px solid Highlight; }
}
@media print {
  .pq-acciones, .pq-paginas, .pq-extras, .pq-buscador { display: none !important; }
  .pq-ficha-cuerpo { grid-template-columns: 1fr; }
  .pq-lado { position: static; box-shadow: none; }
}

/* La foto de su destino cuando el paquete no trae la suya (fotos_web.foto_o_respaldo): el mismo marco que la miniatura. */
.pq-miniatura-destino img { width: 128px; height: 96px; object-fit: cover; border-radius: var(--radio); background: var(--arena); }
