/* circuitos-en-bus: marca (tokens en marca.css) aplicada sobre Panagea */

/* ---------- Base ---------- */
body { font-family: var(--cb-font); font-size: var(--cb-body); line-height: var(--cb-leading-body); color: var(--cb-ink); background: var(--cb-white); }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3 { font-family: var(--cb-font); font-weight: var(--cb-weight-bold); color: var(--cb-ink); letter-spacing: var(--cb-tracking-tight); line-height: var(--cb-leading-tight); }
input, select, textarea, button, .form-control { font-family: var(--cb-font); }
p { color: inherit; }
a { color: var(--cb-ink); }
a:hover, a:focus { color: var(--cb-orange-text); }
main p a, .editorial a, .contenido_horta a { text-decoration: underline; text-decoration-color: var(--cb-orange); text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--cb-orange); outline-offset: 2px; }
.text-muted { color: var(--cb-gray) !important; }
.bg_color_1 { background-color: var(--cb-white); }
hr { border-color: var(--cb-line); opacity: 1; }

/* ---------- Botones: negro tinta, píldora ---------- */
a.btn_1, .btn_1, .custom-search-input-2 input[type=submit] {
  min-height: 48px; border-radius: var(--cb-radius-pill) !important; background: var(--cb-ink); color: var(--cb-white);
  font-family: var(--cb-font); font-weight: var(--cb-weight-bold); text-transform: none;
}
a.btn_1:hover, .btn_1:hover, .custom-search-input-2 input[type=submit]:hover { background: #000; color: var(--cb-white); }
a.btn_1.full-width.purchase, .btn_1.full-width.purchase { background: var(--cb-ink); }
a.btn_1.full-width.purchase:hover, .btn_1.full-width.purchase:hover { background: #000; }
a.btn_1.outline, .btn_1.outline { background: transparent; border: 1.5px solid var(--cb-ink); color: var(--cb-ink); }
a.btn_1.outline:hover, .btn_1.outline:hover { background: var(--cb-ink); color: var(--cb-white); }

/* ---------- Cabecera: blanca siempre (76 px ordenador / 60 px móvil) ---------- */
header.header, header.header.sticky {
  background: var(--cb-white); border-bottom: 1px solid var(--cb-line);
  height: var(--cb-header-h); padding: 0 var(--cb-gutter); display: flex; align-items: center;
}
header.header #logo { flex: 0 0 auto; margin-right: auto; position: static; float: none; width: auto; height: auto; }
header.header .site-logo { display: block; }
header.header .site-logo img { display: block; height: var(--cb-logo-h); width: auto; }
header.header .site-logo .simbolo { display: none; height: 30px; }
header.header .main-menu > ul > li > a { color: var(--cb-ink); font-size: 1rem; font-weight: var(--cb-weight-regular); }
header.header .main-menu > ul > li > a:hover { color: var(--cb-orange-text); opacity: 1; }
header.header ul#top_menu { order: 3; margin-left: 16px; }
header.header ul#top_menu li a.cb-btn { min-height: 44px; padding: 0 20px; font-size: .95rem; color: var(--cb-white); }
header.header .open_close.btn_mobile { order: 4; }
header .hamburger-inner, header .hamburger-inner::before, header .hamburger-inner::after { background-color: var(--cb-ink) !important; }
#preloader { display: none !important; }
main { padding-top: var(--cb-header-h); }
@media (max-width: 991px) {
  header.header .btn_mobile { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 0 8px; }
  .main-menu > ul > li > a { color: var(--cb-ink); }
}
@media (max-width: 767px) {
  header.header, header.header.sticky { height: var(--cb-header-h-mobile); padding: 0 16px; }
  main { padding-top: var(--cb-header-h-mobile); }
  header.header .site-logo img { height: var(--cb-logo-h-mobile); }
  /* Al hacer scroll en móvil: solo el símbolo */
  header.header.sticky .site-logo .horizontal { display: none; }
  header.header.sticky .site-logo .simbolo { display: block; }
  ul#top_menu li:first-child { display: block; }
}
#header_menu .site-logo img { height: 30px; width: auto; margin: 0 auto; }

/* ---------- Hero ---------- */
.hero_single.version_2 { height: 560px; }
/* La lista de sugerencias del buscador tiene que poder salir de la foto y quedar por encima de la sección siguiente */
.hero_single.version_2 { overflow: visible; z-index: 5; }
.hero_in.con_foto { background-size: cover; background-position: center; }
.hero_in .wrapper, .hero_in.tours .wrapper, .hero_in.general .wrapper { background-color: var(--cb-overlay); }
.hero_in .wrapper h1, .hero_single .wrapper h1, .hero_single .wrapper h3 { color: var(--cb-white); font-size: var(--cb-h1); text-transform: none; }
.hero_in .wrapper p.lead, .hero_single .wrapper p { color: var(--cb-white); font-size: 1.15rem; font-weight: var(--cb-weight-regular); margin-top: 10px; }
.hero_in .wrapper h1 span { display: none; }

/* ---------- Títulos de sección ---------- */
.main_title_2 h2, .main_title_3 h2 { font-size: var(--cb-h2); }
.main_title_2 span em, .main_title_3 span em { background-color: var(--cb-orange); }
.main_title_2 p, .main_title_3 p { color: var(--cb-gray); font-size: 1.05rem; }

/* ---------- Tarjetas de circuito ---------- */
.box_grid { border: 1px solid var(--cb-line); border-radius: var(--cb-radius); overflow: hidden; box-shadow: none; background: var(--cb-white); }
.box_grid:hover { box-shadow: none; border-color: var(--cb-ink); }
.box_grid figure { border-radius: 0; }
.box_grid figure img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; }
.box_grid figure small { background: var(--cb-overlay); border-radius: var(--cb-radius-pill); font-size: var(--cb-small); }
.box_grid .wrapper h3 { font-size: var(--cb-h3); font-size: 1.15rem; line-height: 1.25; min-height: 2.5em; }
.box_grid .wrapper h3 a { color: var(--cb-ink); }
.box_grid .wrapper p { font-size: var(--cb-small); color: var(--cb-gray); margin-bottom: 8px; }
.box_grid .price { color: var(--cb-gray); }
.box_grid .price strong { color: var(--cb-ink); }
.box_grid ul { border-top: 1px solid var(--cb-line); }
.box_grid ul li { color: var(--cb-gray); }
.box_grid ul li a { color: var(--cb-ink); }
.grid_item figure { border-radius: var(--cb-radius); }
.grid_item figure .info h3 { color: var(--cb-white); }
.grid_item figure .info p { color: var(--cb-white); }

/* ---------- Filtros y chips ---------- */
.filter_type h6 { font-family: var(--cb-font); }
.filter_type ul li a { color: var(--cb-gray-strong); display: flex; justify-content: space-between; text-decoration: none; }
.filter_type ul li a.activo { color: var(--cb-ink); font-weight: var(--cb-weight-bold); }
.filter_type ul li a.activo::before { content: ""; display: inline-block; width: 4px; background: var(--cb-orange); margin-right: 8px; border-radius: 2px; }
.chips a { display: inline-block; margin: 0 6px 6px 0; padding: 6px 14px; border: 1px solid var(--cb-line); border-radius: var(--cb-radius-pill); font-size: var(--cb-small); color: var(--cb-ink); text-decoration: none; }
.chips a:hover { border-color: var(--cb-ink); color: var(--cb-ink); }

/* ---------- Bloques de texto ---------- */
.editorial, .contenido_horta { max-width: 68ch; }
.editorial h2 { font-size: var(--cb-h3); margin-top: 32px; }
.editorial h3 { font-size: 1.2rem; margin-top: 24px; }
.contenido_horta ul { padding-left: 20px; }
.contenido_horta ul li { list-style: disc; margin-bottom: 4px; }
.contenido_horta p { margin-bottom: 10px; }
.box_detail { border-radius: var(--cb-radius); border: 1px solid var(--cb-line); box-shadow: none; }
.box_detail .price span { color: var(--cb-ink); font-weight: var(--cb-weight-bold); }
.secondary_nav { background: var(--cb-sand); }
.secondary_nav ul li a { color: var(--cb-ink); }
.secondary_nav ul li a.active { color: var(--cb-orange-text); }
.accordion .card { border: 1px solid var(--cb-line); border-radius: var(--cb-radius); }
.accordion .card-header { background: var(--cb-sand); }

/* ---------- Pie: negro tinta ---------- */
footer { background: var(--cb-ink); color: #B8BFC9; }
footer h5 { color: var(--cb-white); font-family: var(--cb-font); }
footer p, footer ul li, footer #additional_links li span { color: #B8BFC9; }
footer a, footer ul.links li a { color: var(--cb-white); }
footer a:hover, footer ul.links li a:hover { color: var(--cb-orange); }
footer hr { border-color: rgba(255,255,255,.15); }
footer .site-logo img { height: 32px; width: auto; }
.cb-wordmark { color: var(--cb-white); }

/* ---------- Varios ---------- */
.pagination_fg { text-align: center; margin-top: 20px; }
.pagination .page-item.active .page-link { background: var(--cb-ink); border-color: var(--cb-ink); color: var(--cb-white); font-weight: var(--cb-weight-bold); }
.pagination .page-item.disabled .page-link { color: var(--cb-gray); background: var(--cb-white); }
.pagination .page-link:hover { background: var(--cb-sand); color: var(--cb-orange-text); }
.pagination .page-link { color: var(--cb-ink); }
#toTop { background-color: var(--cb-ink); }

/* ---------- Ajustes de móvil ---------- */
.custom-search-input-2 .nice-select { width: 100%; }
.box_grid figure small { color: var(--cb-white) !important; }
header.header ul#top_menu, header.header .open_close.btn_mobile { float: none; position: static; }
@media (max-width: 767px) {
  /* Arriba: logo + menú. Al hacer scroll: símbolo + botón principal + menú */
  header.header ul#top_menu { display: none; }
  header.header.sticky ul#top_menu { display: block; margin-left: auto; }
  header.header ul#top_menu li a.cb-btn { min-height: 40px; padding: 0 16px; }
}

/* ---------- Buscador por fecha ---------- */
.custom-search-input-2 .campo_fecha { height: 50px; border: 0; border-radius: 0; padding-left: 20px; color: var(--cb-ink); background: var(--cb-white); }
.custom-search-input-2 .campo_fecha:invalid { color: var(--cb-gray); }
@media (min-width: 992px) { .custom-search-input-2 .campo_fecha { border-left: 1px solid var(--cb-line); } }
@media (max-width: 991px) { .custom-search-input-2 .campo_fecha { margin-bottom: 5px; border-radius: 3px; } }
.fecha_salida .form-control { font-size: .95rem; }
.box_grid .wrapper p.salidas { color: var(--cb-gray-strong); }
.mapa_ruta { margin: 0 0 32px; border: 1px solid var(--cb-line); border-radius: var(--cb-radius); padding: 16px; background: var(--cb-white); text-align: center; }
.mapa_ruta img { max-width: 100%; max-height: 520px; height: auto; }
.mapa_ruta figcaption { margin-top: 8px; font-size: var(--cb-small); color: var(--cb-gray); }

/* ---------- Fecha de salida en la ficha (flatpickr) ---------- */
.fecha_lateral { margin: 8px 0 16px; }
.fecha_lateral label { font-weight: var(--cb-weight-bold); font-size: var(--cb-small); }
.fecha_lateral small { display: block; margin-top: 6px; color: var(--cb-gray); }
input.flatpickr-input[readonly], input.flatpickr-input.form-control { background: var(--cb-white); cursor: pointer; }
.flatpickr-calendar { font-family: var(--cb-font); }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: var(--cb-ink); border-color: var(--cb-ink); }
.flatpickr-day.today { border-color: var(--cb-orange); }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: rgba(31, 42, 55, .2); }
.hero_in .wrapper p.nombre_comercial { color: var(--cb-white); font-size: .95rem; letter-spacing: .08em; text-transform: uppercase; opacity: .9; margin: 0 0 8px; }
.nuestra_opinion { margin: 24px 0; padding: 20px 24px; background: var(--cb-sand); border-left: 4px solid var(--cb-orange); border-radius: var(--cb-radius); }
.nuestra_opinion h3 { font-size: 1.15rem; margin: 0 0 8px; }
.nuestra_opinion p:last-child { margin-bottom: 0; }

/* ---------- Menú: listas largas (salidas, países) en columnas en ordenador ---------- */
@media (min-width: 992px) {
  .main-menu ul li.submenu_columnas { position: static; }
  .main-menu ul li.submenu_columnas > ul {
    left: auto; right: var(--cb-gutter); top: 100%;
    width: min(760px, calc(100vw - 48px)); max-height: calc(100vh - 120px); overflow-y: auto;
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 8px;
    padding: 12px; border-radius: var(--cb-radius); border-top: 2px solid var(--cb-ink);
  }
  .main-menu ul li.submenu_columnas > ul:before { display: none; }
  .main-menu ul li.submenu_columnas:hover > ul { padding: 12px; }
  .main-menu ul li.submenu_columnas > ul li a {
    padding: 7px 10px; border-bottom: 0; border-radius: var(--cb-radius-sm);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .85rem; color: var(--cb-ink);
  }
  .main-menu ul li.submenu_columnas > ul li a:hover { background: var(--cb-sand); color: var(--cb-orange-text); padding-left: 10px; }
}

/* ---------- Buscador de la portada: una cápsula con etiquetas y el botón dentro ---------- */
.buscador {
  display: grid; grid-template-columns: 1.2fr 1.2fr 1fr .9fr auto; align-items: stretch;
  max-width: 1080px; margin: 28px auto 0; padding: 8px; gap: 0;
  background: var(--cb-white); border-radius: 20px; box-shadow: 0 10px 30px rgba(31, 42, 55, .25); text-align: left;
}
.buscador_campo { display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 8px 18px; min-width: 0; cursor: pointer; border-radius: 14px; position: relative; }
.buscador_campo + .buscador_campo::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 1px; background: var(--cb-line); }
.buscador_campo:hover { background: var(--cb-sand); }
.buscador_campo:hover::before, .buscador_campo:hover + .buscador_campo::before { opacity: 0; }
.buscador_etiqueta { font-size: .75rem; font-weight: var(--cb-weight-bold); color: var(--cb-ink); letter-spacing: .02em; }
.buscador select, .buscador input {
  border: 0; background: transparent; padding: 2px 0 0; margin: 0; width: 100%; font: inherit; font-size: .95rem; color: var(--cb-gray-strong);
  appearance: none; -webkit-appearance: none; outline: none; cursor: pointer; text-overflow: ellipsis;
}
.buscador input::placeholder { color: var(--cb-gray-strong); opacity: 1; }
.buscador_boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: 6px;
  min-height: 56px; padding: 0 28px; border: 0; border-radius: 14px; cursor: pointer;
  background: var(--cb-ink); color: var(--cb-white); font: var(--cb-weight-bold) 1rem/1 var(--cb-font); white-space: nowrap;
}
.buscador_boton:hover { background: #000; }
@media (max-width: 991px) {
  .buscador { grid-template-columns: 1fr 1fr; padding: 8px; border-radius: 16px; margin-top: 20px; }
  .buscador_campo { padding: 10px 14px; }
  .buscador_campo + .buscador_campo::before { display: none; }
  .buscador_campo { border-bottom: 1px solid var(--cb-line); border-radius: 0; }
  .buscador_boton { grid-column: 1 / -1; margin: 8px 0 0; }
}
@media (max-width: 575px) {
  .buscador { grid-template-columns: 1fr; }
}

/* ---------- Páginas fijas (quiénes somos, legales) ---------- */
.cabecera_pagina { background: var(--cb-sand); padding: 48px 0 32px; border-bottom: 1px solid var(--cb-line); }
.cabecera_pagina h1 { font-size: var(--cb-h2); margin: 0; }
.texto_pagina { max-width: 72ch; }
.texto_pagina h2 { font-size: 1.15rem; margin: 32px 0 10px; text-transform: none; }
.texto_pagina p, .texto_pagina li { color: var(--cb-ink); }
.texto_pagina ul { padding-left: 20px; } .texto_pagina ul li { list-style: disc; margin-bottom: 4px; }
.texto_pagina .actualizada { margin-top: 32px; font-size: var(--cb-small); color: var(--cb-gray); }

/* ---------- Pie: enlaces legales ---------- */
footer .enlaces_legales { display: flex; flex-wrap: wrap; gap: 6px 22px; justify-content: flex-start; margin: 0; padding: 0; }
footer .enlaces_legales li { list-style: none; font-size: var(--cb-small); }
footer .enlaces_legales a { color: #B8BFC9; }
footer .enlaces_legales a:hover { color: var(--cb-white); }
footer .pie_legal .copyright { margin: 10px 0 0; font-size: var(--cb-small); color: #8A93A0; }

/* ---------- Aviso de cookies ---------- */
.aviso_cookies {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 99999; max-width: 760px; margin: 0 auto;
  display: flex; align-items: center; gap: 16px; padding: 16px 20px;
  background: var(--cb-white); color: var(--cb-ink); border: 1px solid var(--cb-line); border-radius: var(--cb-radius);
  box-shadow: 0 10px 30px rgba(31, 42, 55, .2);
}
.aviso_cookies[hidden] { display: none; }
.aviso_cookies p { margin: 0; font-size: .9rem; line-height: 1.45; }
.aviso_cookies a { text-decoration: underline; text-decoration-color: var(--cb-orange); }
.aviso_cookies .cb-btn { flex: 0 0 auto; min-height: 44px; }
@media (max-width: 575px) { .aviso_cookies { flex-direction: column; align-items: stretch; } }

/* Páginas de cruce (ciudad de salida × país) enlazadas desde los listados */
.enlaces_cruce h2 { font-size: 1.05rem; margin-bottom: 10px; }
.enlaces_cruce .chips a small { color: var(--cb-muted, #6b7280); }
.mas_circuitos { font-size: var(--cb-small); }

/* Títulos de día del itinerario (y subtítulos dentro de los textos del viaje) */
.contenido_horta h3 { font-size: 1.05rem; font-weight: 700; margin: 20px 0 6px; }
.contenido_horta h3:first-child { margin-top: 0; }

/* Menú de la ficha: el template oculta el último elemento en escritorio (era un botón solo para móvil).
   Aquí el último es «PDF»: se ve siempre, como botón a la derecha. */
.secondary_nav ul li:last-child { display: inline-block; float: right; margin-right: 0; }

/* Ficha del viaje: secciones en h2 (Descripción, Itinerario, Incluye, Alojamiento…), del mismo tamaño que «Descripción» */
.titulo_seccion { font-size: 1.5rem; margin: 0 0 18px; }
.titulo_seccion small { font-size: .65em; font-weight: 400; color: var(--cb-muted, #6b7280); }

/* Días del itinerario (h3 «Día N: lugares»): se tienen que ver de un vistazo */
.itinerario_dias h3 {
  font-size: 1.15rem; font-weight: 700; line-height: 1.35;
  margin: 28px 0 10px; padding: 10px 14px;
  background: #f6f4ef; border-left: 4px solid var(--cb-orange, #E8743B); border-radius: 0 6px 6px 0;
}
.itinerario_dias h3:first-child { margin-top: 0; }

/* Mapa de destinos de la portada: color = número de circuitos (un solo tono tranquilo, verde agua, de claro a oscuro) */
.mapa_destinos { --m-vacio: #e9e6e0; --m-t1: #cfe9e7; --m-t10: #8fcdc8; --m-t50: #3f9f9a; --m-t200: #1d6763; }
.mapa_pestanas { display: flex; gap: 6px; margin-bottom: 12px; }
.mapa_pestanas button { border: 1px solid var(--cb-line, #ddd); background: #fff; color: var(--cb-ink); border-radius: 999px; padding: 6px 16px; font-size: 14px; cursor: pointer; }
.mapa_pestanas button.activa { background: var(--cb-ink); border-color: var(--cb-ink); color: #fff; }
.mapa_marco { position: relative; background: #f3f6f7; border-radius: 12px; overflow: hidden; }
.mapa_svg { display: block; width: 100%; height: auto; }
.mapa_svg path { stroke: #fff; stroke-width: .7; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.mapa_svg .mapa_vacio { fill: var(--m-vacio); }
.mapa_pais path { transition: fill .15s; }
.mapa_pais.t1 path { fill: var(--m-t1); } .mapa_pais.t10 path { fill: var(--m-t10); }
.mapa_pais.t50 path { fill: var(--m-t50); } .mapa_pais.t200 path { fill: var(--m-t200); }
.mapa_pais:hover path, .mapa_pais.activo path, .mapa_pais:focus path { fill: var(--cb-ink); }
.mapa_pais:focus { outline: none; }
.mapa_ficha { position: absolute; z-index: 5; max-width: 280px; background: #fff; border-radius: 10px; padding: 12px 14px; box-shadow: 0 6px 24px rgba(31,42,55,.18); font-size: 14px; line-height: 1.45; }
.mapa_ficha strong { display: block; font-size: 16px; }
.mapa_ficha .cifra { display: block; color: var(--cb-muted, #6b7280); margin-bottom: 6px; }
.mapa_ficha .salidas { display: block; margin-bottom: 8px; }
.mapa_ficha .ver { display: inline-block; font-weight: 600; }
.mapa_leyenda { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0; margin: 10px 0 24px; font-size: 13px; color: var(--cb-muted, #6b7280); }
.mapa_leyenda .muestra { display: inline-block; width: 14px; height: 14px; border-radius: 3px; margin-right: 6px; vertical-align: -2px; }
.mapa_leyenda .t1 { background: var(--m-t1); } .mapa_leyenda .t10 { background: var(--m-t10); } .mapa_leyenda .t50 { background: var(--m-t50); }
.mapa_leyenda .t200 { background: var(--m-t200); } .mapa_leyenda .vacio { background: var(--m-vacio); }
.mapa_lista h3 { font-size: 1.1rem; margin: 18px 0 8px; }
.mapa_regiones { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 16px; align-items: start; }
.mapa_regiones details { border: 1px solid var(--cb-line, #e5e7eb); border-radius: 8px; padding: 8px 12px; background: #fff; }
.mapa_regiones summary { cursor: pointer; font-weight: 600; }
.mapa_regiones summary small { font-weight: 400; color: var(--cb-muted, #6b7280); margin-left: 4px; }
.mapa_regiones ul { list-style: none; padding: 6px 0 0; margin: 0; }
.mapa_regiones li { display: flex; justify-content: space-between; padding: 3px 0; font-size: 14px; }
.mapa_regiones li small { color: var(--cb-muted, #6b7280); }
/* Con el dedo: la ficha va abajo, a todo el ancho del mapa */
.mapa_ficha.abajo { left: 8px !important; right: 8px; bottom: 8px; top: auto !important; max-width: none; }
.mapa_svg[hidden] { display: none; }

/* Mapa compacto: en escritorio, mapa a la izquierda y regiones a la derecha, todo dentro de la pantalla */
.mapa_svg { max-height: 62vh; aspect-ratio: 4 / 3; width: 100%; }
.mapa_columnas { display: grid; gap: 24px; }
@media (min-width: 992px) {
  .mapa_columnas { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
  .mapa_lista { max-height: calc(62vh + 60px); overflow-y: auto; padding-right: 6px; }
  .mapa_lista h3:first-child { margin-top: 0; }
  .mapa_regiones { grid-template-columns: 1fr; }
}
@media (max-width: 991px) { .mapa_svg { max-height: 48vh; } }
/* Pestañas del mapa: una sola fila; en pantallas estrechas se deslizan de lado */
.mapa_pestanas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
.mapa_pestanas::-webkit-scrollbar { display: none; }
.mapa_pestanas button { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 575px) { .mapa_pestanas button { padding: 6px 12px; font-size: 13px; } }

/* Móvil: el menú lateral y el carrusel del template sobresalen por la derecha y ensanchaban toda la página.
   «clip» recorta sin crear una barra de desplazamiento (no afecta a los elementos fijos o «sticky»). */
html, body { overflow-x: clip; }
/* La fila de pestañas no puede ensanchar la columna del mapa (se desliza dentro de su ancho) */
.mapa_columnas { grid-template-columns: minmax(0, 1fr); }
.mapa_col_mapa, .mapa_lista { min-width: 0; }
@media (min-width: 992px) { .mapa_columnas { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } }

/* Bloques de tags en la portada */
.bloque_banner { min-height: 320px; background-size: cover; background-position: center; border-radius: 12px; overflow: hidden; }
.bloque_banner .wrapper { min-height: 320px; padding: 40px; }
.bloque_banner h3 { color: #fff; font-size: 2rem; }
.bloque_banner small, .bloque_banner p { color: rgba(255,255,255,.9); }
.pestanas_tags { display: flex; justify-content: center; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-bottom: 24px; }
.pestanas_tags::-webkit-scrollbar { display: none; }
.pestanas_tags button { flex: 0 0 auto; white-space: nowrap; border: 1px solid var(--cb-line, #ddd); background: #fff; color: var(--cb-ink); border-radius: 999px; padding: 8px 18px; cursor: pointer; }
.pestanas_tags button.activa { background: var(--cb-ink); border-color: var(--cb-ink); color: #fff; }
@media (max-width: 575px) { .pestanas_tags { justify-content: flex-start; } }

/* ---------- Viajes en privado: cinta dorada en la esquina de la foto ---------- */
:root { --cb-oro: #C9A23F; }
.box_grid figure, .box_list figure, a.grid_item figure { position: relative; overflow: hidden; }
.cinta_privado {
  position: absolute; z-index: 3; top: 22px; right: -46px; width: 170px; transform: rotate(45deg);
  background: var(--cb-oro); color: var(--cb-ink); text-align: center; text-transform: uppercase;
  font-size: .75rem; font-weight: var(--cb-weight-bold); letter-spacing: .12em; line-height: 1; padding: 7px 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .2); pointer-events: none;
}
.cinta_privado.izquierda { right: auto; left: -46px; transform: rotate(-45deg); }

/* ---------- Buscador de la portada: salida y destino se pueden escribir (js/buscador.js) ---------- */
.buscador input.buscador_texto { cursor: text; color: var(--cb-ink); }
.buscador input.buscador_texto::placeholder { color: var(--cb-gray-strong); }
.buscador_campo.abierto { background: var(--cb-sand); }
.buscador_lista {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; width: max(100%, 300px); max-height: 340px; overflow-y: auto;
  margin: 0; padding: 6px; list-style: none; background: var(--cb-white); border: 1px solid var(--cb-line);
  border-radius: var(--cb-radius); box-shadow: 0 14px 34px rgba(31, 42, 55, .22); cursor: default;
}
.buscador_op { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 9px 12px; border-radius: var(--cb-radius-sm); cursor: pointer; color: var(--cb-ink); font-size: .95rem; }
.buscador_op small { color: var(--cb-gray); font-size: .8rem; white-space: nowrap; }
.buscador_op mark { background: none; padding: 0; color: inherit; font-weight: var(--cb-weight-bold); }
.buscador_op:hover, .buscador_op.activa { background: var(--cb-sand); }
.buscador_op.ninguna { color: var(--cb-gray-strong); }
.buscador_sin { padding: 10px 12px; color: var(--cb-gray-strong); font-size: .9rem; }
@media (max-width: 575px) { .buscador_lista { width: 100%; } }

/* ---------- Formulario de presupuesto de la ficha: recuadro, campos grandes (muchos clientes son mayores) ---------- */
.form_presupuesto { background: var(--cb-sand); border: 1px solid var(--cb-line); border-radius: var(--cb-radius-lg); padding: 36px 40px 32px; }
.form_presupuesto .titulo_seccion { margin-top: 0; }
.form_presupuesto .presupuesto_intro { font-size: 1.1rem; line-height: 1.55; color: var(--cb-gray-strong); margin-bottom: 28px; }
.presupuesto_grupo { border: 0; margin: 0 0 12px; padding: 0; min-width: 0; }
.presupuesto_grupo + .presupuesto_grupo { border-top: 1px solid var(--cb-line); padding-top: 24px; }
.presupuesto_grupo legend + * { clear: both; }
.presupuesto_grupo legend { float: left; width: 100%; font-size: 1.2rem; font-weight: var(--cb-weight-bold); color: var(--cb-ink); margin: 0 0 16px; padding: 0; }
.form_presupuesto .form-group { margin-bottom: 22px; }
.form_presupuesto label { display: block; font-size: 1.05rem; font-weight: var(--cb-weight-bold); color: var(--cb-ink); margin-bottom: 8px; }
.form_presupuesto .form-control {
  min-height: 56px; padding: 14px 16px; font-size: 1.125rem; line-height: 1.4; color: var(--cb-ink);
  background: var(--cb-white); border: 1.5px solid #CFCAC0; border-radius: var(--cb-radius); box-shadow: none;
}
.form_presupuesto textarea.form-control { min-height: 130px; }
.form_presupuesto .form-control::placeholder { color: var(--cb-gray); opacity: 1; font-size: 1.05rem; }
.form_presupuesto .form-control[readonly] { background: var(--cb-white); cursor: pointer; }
.form_presupuesto .form-control:focus { border-color: var(--cb-ink); box-shadow: 0 0 0 3px rgba(232, 116, 59, .35); outline: none; }
.form_presupuesto .form-control.is-invalid { border-color: #B42318; background-image: none; padding-right: 16px; }
.form_presupuesto .invalid-feedback, .presupuesto_error { display: block; font-size: 1rem; color: #B42318; margin-top: 6px; }
.presupuesto_envio { border-top: 1px solid var(--cb-line); padding-top: 24px; }
.form_presupuesto .container_check { font-size: 1.05rem; font-weight: var(--cb-weight-regular); line-height: 1.5; padding-left: 42px; min-height: 30px; margin-bottom: 4px; cursor: pointer; }
.form_presupuesto .container_check .checkmark { width: 28px; height: 28px; top: -1px; border: 1.5px solid #9A958B; border-radius: 6px; background: var(--cb-white); }
.form_presupuesto .container_check .checkmark:after { left: 9px; top: 4px; width: 7px; height: 13px; }
.form_presupuesto .presupuesto_boton { display: inline-flex; align-items: center; justify-content: center; min-height: 60px; min-width: 280px; margin-top: 20px; padding: 0 36px; font-size: 1.15rem; }
.presupuesto_nota { font-size: .95rem; color: var(--cb-gray-strong); margin: 12px 0 0; }
@media (max-width: 767px) {
  .form_presupuesto { padding: 24px 18px; border-radius: var(--cb-radius); margin: 0 -4px; }
  .form_presupuesto .presupuesto_boton { width: 100%; min-width: 0; }
}
.form_presupuesto .container_check .checkmark:after { border-width: 0 3px 3px 0; }
/* Formulario de presupuesto en tono cálido (melocotón del naranja de marca), para no sumar otro gris */
.form_presupuesto { --presu-fondo: #FDF2EA; --presu-linea: #F2D9C7; --presu-borde: #DDC3B0; background: var(--presu-fondo); border-color: var(--presu-linea); }
.form_presupuesto .presupuesto_grupo + .presupuesto_grupo, .form_presupuesto .presupuesto_envio { border-top-color: var(--presu-linea); }
.form_presupuesto .form-control { border-color: var(--presu-borde); }
.form_presupuesto .container_check .checkmark { border-color: #B99E8A; }

/* Edades de los niños */
.presupuesto_edades_titulo { font-size: 1.05rem; font-weight: var(--cb-weight-bold); color: var(--cb-ink); margin: 0 0 10px; }
.form_presupuesto select.form-control { appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer;
  background: var(--cb-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231F2A37' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center; }
