/* =====================================================================
   BookTripDirect — tema v2 (estilo portal de reservas)
   Bootstrap 5 como base; aquí solo lo que Bootstrap no cubre.
   ===================================================================== */
:root {
  --color-primary: #27803e;        /* verde de marca (cabecera) */
  --color-primary-hover: #1f6632;
  --color-dark: #27352c;           /* verde casi negro: pie, menú del panel, textos */
  --color-action: #27803e;         /* verde de acción (botones) */
  --color-action-hover: #1f6632;
  --color-link-hover: #d85005;     /* enlaces al pasar el ratón: naranja de la paleta */
  --color-accent: #f0d027;         /* amarillo del buscador y de las letras BTD */
  --color-surface: #ffffff;
  --color-bg: #f3f6f4;
  --color-text: #27352c;
  --color-text-muted: #64748b;
  --color-border: #e2e8f0;
  --color-success: #008234;
  --radius: 0.5rem;
  --shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-lg: 0 8px 24px rgba(15,23,42,.12);
}

/* Bootstrap: su azul por defecto pasa al verde de la marca */
:root { --bs-primary: #27803e; --bs-primary-rgb: 39, 128, 62; --bs-link-color: #27803e; --bs-link-hover-color: #1f6632; --bs-link-color-rgb: 39, 128, 62; }
.btn-primary { --bs-btn-bg: #27803e; --bs-btn-border-color: #27803e; --bs-btn-hover-bg: #1f6632; --bs-btn-hover-border-color: #1f6632; --bs-btn-active-bg: #185027; --bs-btn-active-border-color: #185027; --bs-btn-disabled-bg: #27803e; --bs-btn-disabled-border-color: #27803e; }
.btn-outline-primary { --bs-btn-color: #27803e; --bs-btn-border-color: #27803e; --bs-btn-hover-bg: #27803e; --bs-btn-hover-border-color: #27803e; --bs-btn-active-bg: #1f6632; --bs-btn-active-border-color: #1f6632; }
.text-bg-primary { background-color: #27803e !important; }
.form-check-input:checked, .form-check-input:indeterminate { background-color: #27803e; border-color: #27803e; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #7fc693; box-shadow: 0 0 0 .2rem rgba(39, 128, 62, .2); }
.page-link { color: #27803e; } .page-item.active .page-link { background-color: #27803e; border-color: #27803e; }

html, body { height: 100%; }
body {
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  display: flex;
  flex-direction: column;
}
main { flex: 1 0 auto; }
a { color: var(--color-action); text-decoration: none; }
a:hover { color: var(--color-link-hover); text-decoration: none; }
.btn, .card, a { transition: all .2s ease-out; }

/* ===== Botones ===== */
.btn-action {
  background: var(--color-action); color: #fff; border: 0; font-weight: 600;
}
.btn-action:hover, .btn-action:focus { background: var(--color-action-hover); color: #fff; }
.btn-accent { background: var(--color-accent); color: #1e293b; border: 0; font-weight: 700; }
.btn-accent:hover { background: #e6a500; color: #1e293b; }

/* ===== Cabecera ===== */
.rr-header { background: var(--color-primary); position: relative; z-index: 1300; }   /* por encima de la banda de filtros del mapa (1100) */
.rr-flag { width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.15); vertical-align: -2px; margin-right: .35rem; }
.rr-header .navbar-brand { font-size: 1.25rem; letter-spacing: -.01em; }
.rr-header .rr-logo { height: 54px; width: auto; }
.rr-header .rr-marca { color: #fff; font-weight: 800; font-size: 1.35rem; letter-spacing: -.01em; }
.rr-header .nav-link { color: rgba(255,255,255,.85); font-weight: 500; }
.rr-header .nav-link:hover { color: #fff; }

/* ===== Hero (portada) ===== */
.rr-hero {
  background: var(--color-primary);
  color: #fff;
  padding: 3rem 0 4.5rem;
}
.rr-hero h1 { font-weight: 800; font-size: clamp(1.75rem, 4vw, 2.75rem); letter-spacing: -.02em; }
.rr-hero p { color: rgba(255,255,255,.85); font-size: 1.15rem; }

/* ===== Barra de búsqueda ===== */
.rr-search {
  background: var(--color-accent);
  border-radius: var(--radius);
  padding: 4px;
  box-shadow: var(--shadow-lg);
}
.rr-search .rr-field {
  background: #fff; border-radius: calc(var(--radius) - 2px); position: relative;
  display: flex; align-items: center; height: 56px; padding: 0 .75rem;
}
.rr-search .rr-field i { color: var(--color-text-muted); font-size: 1.35rem; margin-right: .5rem; flex: none; }
.rr-search .rr-field > input {
  border: 0; outline: 0; width: 100%; font-size: .95rem; background: transparent; min-width: 0;
}
.rr-search .rr-field.is-invalid { box-shadow: inset 0 0 0 2px #dc3545; }
.rr-search .rr-field .rr-label { font-size: .7rem; color: var(--color-text-muted); position: absolute; top: 5px; left: 2.6rem; }
.rr-search .rr-field.with-label input { padding-top: .9rem; }
.rr-search .rr-field-btn { border: 0; cursor: pointer; font-size: .9rem; color: var(--color-text); }
.rr-search .rr-field-btn span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rr-search .btn-action { height: 56px; font-size: 1.05rem; }
.rr-hero .rr-search { margin-bottom: -5.5rem; position: relative; z-index: 2; }
.rr-search-offset { padding-top: 3.5rem; }
.rr-guests { font-size: .95rem; }
.rr-guests .form-control { width: 60px; text-align: center; }

/* Autocomplete de Google por encima de todo */
.pac-container { z-index: 1090 !important; font-family: inherit; border-radius: var(--radius); box-shadow: var(--shadow-lg); }

/* ===== Destinos ===== */
.rr-dest { position: relative; border-radius: var(--radius); overflow: hidden; display: block; aspect-ratio: 4/3; color: #fff; }
.rr-dest img { width: 100%; height: 100%; object-fit: cover; }
.rr-dest .rr-dest-body {
  position: absolute; inset: auto 0 0 0; padding: 1rem;
  background: linear-gradient(to top, rgba(0,0,0,.75), transparent);
}
.rr-dest:hover { text-decoration: none; color: #fff; transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.rr-dest h3 { font-size: 1.1rem; font-weight: 700; margin: 0; }
.rr-dest small { opacity: .9; }

/* ===== Listado ===== */
.rr-listado-bar { background: var(--color-primary); padding: 1rem 0 1.25rem; }
.rr-listado-bar .rr-search { box-shadow: none; }
.rr-filters { position: sticky; top: 1rem; }
.rr-filters .card-header { background: #fff; font-weight: 600; }
.rr-filters .form-check-label { font-size: .9rem; }
.rr-range-vals { font-size: .85rem; color: var(--color-text-muted); }

.rr-result { display: flex; gap: 1rem; padding: 1rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); }
.rr-result:hover { box-shadow: var(--shadow-lg); }
.rr-result .rr-img { flex: 0 0 240px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; }
.rr-result .rr-img img { width: 100%; height: 100%; object-fit: cover; }
.rr-result h3 { font-size: 1.15rem; font-weight: 700; margin: 0; }
.rr-result h3 a { color: var(--color-action); }
.rr-result .rr-addr { font-size: .85rem; color: var(--color-text-muted); }
.rr-result .rr-desc { font-size: .9rem; margin: .5rem 0; }
.rr-result .rr-amen { display: flex; flex-wrap: wrap; gap: .35rem; }
.rr-result .rr-amen span { font-size: .75rem; background: #eef4fb; color: var(--color-primary); border-radius: 999px; padding: .15rem .6rem; }
.rr-result .rr-price { flex: 0 0 180px; text-align: right; display: flex; flex-direction: column; justify-content: flex-end; }
.rr-result .rr-price .rr-from { font-size: .75rem; color: var(--color-text-muted); }
.rr-result .rr-price .rr-amount { font-size: 1.4rem; font-weight: 800; }
.rr-result .rr-price .btn { white-space: nowrap; }
.rr-result .rr-price .rr-nights { font-size: .75rem; color: var(--color-text-muted); }
.rr-stars { color: #febb02; font-size: .9rem; letter-spacing: 1px; }
.rr-llaves { color: #b7791f; }
.rr-llaves .ti-key { font-size: 1em; vertical-align: -.1em; margin-right: 1px; }
.rr-score { background: var(--color-primary); color: #fff; font-weight: 700; border-radius: 6px 6px 6px 0; padding: .15rem .45rem; font-size: .85rem; }
.rr-dist { font-size: .8rem; color: var(--color-success); font-weight: 500; }
@media (max-width: 767.98px) {
  .rr-result { flex-direction: column; }
  .rr-result .rr-img { flex-basis: auto; }
  .rr-result .rr-price { flex-basis: auto; text-align: left; flex-direction: row; justify-content: space-between; align-items: center; }
}

#rr-map { height: 320px; border-radius: var(--radius); background: #e5e7eb; }
.rr-map-sticky { position: sticky; top: 1rem; }

/* ===== Ficha ===== */
.rr-ficha-hero { border-radius: var(--radius); overflow: hidden; height: 380px; background: #e5e7eb; }
.rr-ficha-hero img { width: 100%; height: 100%; object-fit: cover; }
.rr-rooms th { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--color-text-muted); background: #f8fafc; }
.rr-rooms td { vertical-align: middle; }
.rr-rooms .rr-room-price { font-size: 1.25rem; font-weight: 800; }
.rr-rooms tr.rr-ocupada { opacity: .5; }
.rr-dates-box { background: #eef4fb; border: 1px solid #cfe8d8; border-radius: var(--radius); padding: .75rem 1rem; }
.rr-amen-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .4rem; }
.rr-amen-list li i { color: var(--color-success); margin-right: .35rem; }
.rr-review { border-top: 1px solid var(--color-border); padding: .75rem 0; }
.rr-hp { position: absolute; left: -9999px; }

/* ===== Confirmación ===== */
.rr-conf-icon { font-size: 4rem; color: var(--color-success); }

/* ===== Pie ===== */
.rr-footer { background: #fff; border-top: 1px solid var(--color-border); }
.rr-footer a { color: var(--color-text-muted); }
.rr-footer a:hover { color: var(--color-action); }

/* ===== Autocompletado propio ===== */
.rr-ac { position: relative; }
.rr-ac .rr-clear { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--color-text-muted); padding: .25rem; line-height: 1; }
.rr-ac-list { position: absolute; left: 0; right: 0; top: calc(100% + 6px); background: #fff; color: var(--color-text); text-align: left; border-radius: var(--radius); z-index: 1090; max-height: 360px; overflow-y: auto; margin: 0; padding: .35rem; }
.rr-ac-list li { display: flex; align-items: center; gap: .65rem; padding: .55rem .65rem; border-radius: calc(var(--radius) - 2px); cursor: pointer; }
.rr-ac-list li:hover, .rr-ac-list li.active { background: #eef4fb; }
.rr-ac-list li > i { font-size: 1.3rem; color: var(--color-primary); flex: none; }
.rr-ac-list .rr-ac-main { flex: 1; min-width: 0; font-weight: 600; font-size: .95rem; line-height: 1.2; }
.rr-ac-list .rr-ac-main small { display: block; font-weight: 400; color: var(--color-text-muted); }
.rr-ac-list .rr-ac-tipo { font-size: .7rem; color: var(--color-text-muted); white-space: nowrap; text-transform: uppercase; letter-spacing: .03em; }
.rr-ac-list .rr-ac-empty { padding: .75rem; color: var(--color-text-muted); font-size: .9rem; }

/* ===== Calendario (flatpickr) ===== */
.flatpickr-calendar { font-family: inherit; border-radius: var(--radius); box-shadow: var(--shadow-lg); border: 1px solid var(--color-border); }
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover { background: var(--color-action); border-color: var(--color-action); }
.flatpickr-day.inRange { background: #e3eefb; border-color: #e3eefb; box-shadow: -5px 0 0 #e3eefb, 5px 0 0 #e3eefb; }
.flatpickr-day.today { border-color: var(--color-accent); }
.flatpickr-months .flatpickr-month, .flatpickr-current-month { font-weight: 600; }
.rr-search .rr-field > input.form-control { border: 0; box-shadow: none; padding-left: 0; background: transparent; cursor: pointer; border-radius: 0; }

/* ===== Huéspedes ===== */
.rr-guests .form-control[readonly] { background: #fff; }
.rr-guests .btn-outline-primary { --bs-btn-color: var(--color-action); --bs-btn-border-color: #cbd5e1; --bs-btn-hover-bg: var(--color-action); --bs-btn-hover-border-color: var(--color-action); }

/* ===== Barra de selección de habitaciones (ficha) ===== */
.rr-selbar { position: sticky; bottom: 0; z-index: 1030; background: var(--color-primary); color: #fff; padding: .75rem 0; box-shadow: 0 -4px 16px rgba(0,0,0,.15); }
.rr-rooms .rr-sel { cursor: pointer; }

/* ===== Calendario: pestañas y panel de fechas flexibles ===== */
.rr-cal { min-width: 320px; }
.rr-cal-tabs { display: flex; border-bottom: 1px solid var(--color-border); }
.rr-cal-tabs button { flex: 1; border: 0; background: transparent; padding: .6rem; font-weight: 600; font-size: .85rem; color: var(--color-text-muted); border-bottom: 2px solid transparent; }
.rr-cal-tabs button.active { color: var(--color-action); border-bottom-color: var(--color-action); }
.rr-flex-panel { padding: 1rem; width: 100%; max-width: 620px; }
.rr-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.rr-chips button { border: 1px solid #cbd5e1; background: #fff; border-radius: 999px; padding: .35rem .8rem; font-size: .85rem; color: var(--color-text); display: inline-flex; align-items: center; gap: .3rem; }
.rr-chips button:hover { border-color: var(--color-action); }
.rr-chips button.active { background: #e3eefb; border-color: var(--color-action); color: var(--color-action); font-weight: 600; }
.rr-chips button input { width: 44px; border: 1px solid #cbd5e1; border-radius: 4px; text-align: center; font-size: .85rem; padding: 0 .2rem; }
.rr-chips-meses button { font-size: .8rem; padding: .3rem .65rem; }

/* ===== Página de destinos ===== */
.rr-dest-list li { padding: .2rem 0; border-top: 1px solid #f1f5f9; }
.rr-dest-list li a { color: var(--color-text); }
.rr-dest-list li a:hover { color: var(--color-link-hover); }

/* ===== Galería y vista previa ===== */
/* Galería de fotos: tira de miniaturas con desplazamiento y visor ampliado */
.rr-gf-wrap { position: relative; }
.rr-gf-pista { display: flex; gap: .5rem; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 2px; }
.rr-gf-pista::-webkit-scrollbar { display: none; }
.rr-gf-mini { flex: none; width: 132px; height: 92px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #e5e7eb; cursor: zoom-in; scroll-snap-align: start; }
.rr-gf-mini img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s; }
.rr-gf-mini:hover img { transform: scale(1.06); }
.rr-gf-mini:hover, .rr-gf-mini:focus-visible { border-color: var(--color-action); outline: 0; }
.rr-gf-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 2.2rem; height: 2.2rem; border: 0; border-radius: 50%; background: rgba(15, 23, 42, .78); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0, 0, 0, .3); }
.rr-gf-nav[hidden] { display: none; }
.rr-gf-prev { left: -.6rem; }
.rr-gf-next { right: -.6rem; }
#rr-lightbox .modal-content { background: #0b1220; position: relative; }
#rr-lightbox .carousel-item img { display: block; width: 100%; max-height: 78vh; object-fit: contain; background: #0b1220; }
#rr-lightbox .rr-lb-cerrar { position: absolute; top: .75rem; right: .75rem; z-index: 5; }
#rr-lightbox .rr-lb-pie { color: #cbd5e1; padding: .6rem 0 .8rem; }
.rr-preview-bar { background: #1e293b; color: #fff; padding: .5rem 0; font-size: .9rem; }
.rr-preview-bar .badge { vertical-align: middle; }

/* ===== Reseñas ===== */
.rr-resumen-media { font-size: 3rem; font-weight: 800; line-height: 1; color: var(--color-primary); }
.rr-review { border-top: 1px solid var(--color-border); padding: 1rem 0; }
.rr-review-vacio { padding: 1.5rem; border: 1px dashed var(--color-border); border-radius: var(--radius); }
.rr-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--color-primary); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; }
.rr-verificada { background: #e6f4ea; color: #1e7e34; font-weight: 600; }
.rr-respuesta { background: #f6f7f9; border-left: 3px solid var(--color-primary); padding: .6rem .9rem; border-radius: 0 var(--radius) var(--radius) 0; }
.rr-estrellas { display: inline-flex; flex-direction: row-reverse; align-items: center; }
.rr-estrellas input { position: absolute; opacity: 0; width: 0; height: 0; }
.rr-estrellas label { font-size: 2rem; color: #d0d4da; cursor: pointer; line-height: 1; padding: 0 .05em; transition: color .1s; }
.rr-estrellas-sm label { font-size: 1.35rem; }
.rr-estrellas label:hover, .rr-estrellas label:hover ~ label, .rr-estrellas input:checked ~ label { color: #febb02; }
.rr-estrellas input:focus-visible + label { outline: 2px solid var(--color-action); border-radius: 4px; }
.rr-estrellas .rr-estrellas-txt { order: -1; }

/* ===== Páginas de destino ===== */
.rr-card-dest img { height: 180px; object-fit: cover; }
.rr-card-dest h3 a:hover { color: var(--color-link-hover); }
.rr-cta-fechas { background: #eef4fb; }

/* ===== Cookies ===== */
.rr-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1070; background: #fff; border-top: 1px solid var(--color-border); box-shadow: 0 -4px 20px rgba(0,0,0,.12); padding: .9rem 0; }
.rr-map-bloqueado { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: #f1f3f5; border-radius: var(--radius); padding: 1.5rem; color: var(--color-text-muted); min-height: 200px; }

/* ===== Directorio (portada sin fechas) ===== */
.rr-hero-dir { padding-bottom: 4.5rem; }
.rr-search-dir .rr-field { min-height: 60px; }
.rr-cifras .rr-cifra { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 1rem; }
.rr-cifra-n { font-size: 1.6rem; font-weight: 800; color: var(--color-primary); line-height: 1.1; }
.rr-cifra-l { font-size: .85rem; color: var(--color-text-muted); }
.rr-tipo-card { display: flex; flex-direction: column; align-items: center; gap: .25rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem .5rem; text-decoration: none; color: var(--color-text); transition: border-color .15s, transform .15s; }
.rr-tipo-card:hover { border-color: var(--color-action); transform: translateY(-2px); text-decoration: none; }
.rr-tipo-card i { font-size: 1.8rem; color: var(--color-action); }
.rr-tipo-card small { color: var(--color-text-muted); }
.rr-propietarios-cta { background: #eef4fb; padding: 2rem 0; }
.rr-reclamar { background: #fff8e6; border: 1px solid #ffe8a3; border-radius: var(--radius); padding: .6rem .8rem; }
.rr-filtros-dir { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: .6rem .8rem; }
.rr-cerca-link { display: inline-block; margin-left: .75rem; color: #fff; text-decoration: underline; font-size: 1rem; white-space: nowrap; }
.rr-cerca-link:hover { color: var(--color-accent); }
.rr-tipo-card { min-height: 118px; justify-content: center; }
.rr-tipo-card strong { font-size: .9rem; text-align: center; line-height: 1.2; max-width: 100%; }
.rr-fechas-ficha .form-label { color: var(--color-text-muted); }

/* ===== Destinos: provincias / municipios ===== */
.rr-tabla-dest .rr-tabla-scroll { max-height: 70vh; overflow: auto; }
.rr-tabla-dest thead th { position: sticky; top: 0; z-index: 1; }
.rr-tabla-dest th.rr-sort { cursor: pointer; user-select: none; white-space: nowrap; }
.rr-tabla-dest th.rr-sort.active { color: var(--color-action); }
.rr-tabla-dest tbody tr.table-primary td { font-weight: 600; }
.rr-filtros-dir { background: #fff; border: 1px solid var(--color-border); border-left: 4px solid var(--color-action); border-radius: var(--radius); padding: .8rem 1rem; }

/* Foto de municipio/provincia en la cabecera del destino */
.rr-dest-foto { width: 100%; height: auto; max-height: 320px; object-fit: cover; border-radius: var(--radius); margin-bottom: 1rem; display: block; }

/* ===== Mapa de alojamientos (móvil primero) ===== */
.rr-mapa-pag { display: flex; flex-direction: column; overflow: hidden; }
.rr-mapa-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .5rem .75rem; background: #fff; border-bottom: 1px solid var(--color-border); position: relative; z-index: 1100; }
.rr-mf-destino { position: relative; flex: 1 1 200px; min-width: 0; }
.rr-mf-destino > i { position: absolute; left: .6rem; top: .55rem; color: var(--color-text-muted); z-index: 2; }
.rr-mf-destino input { padding-left: 2rem; }
.rr-mf-destino .rr-ac-list { position: absolute; left: 0; right: 0; width: auto; min-width: min(420px, calc(100vw - 1.5rem)); max-height: 55vh; z-index: 1200; }
.rr-mf-extra { display: none; width: 100%; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding-top: .25rem; }
.rr-mf-extra.abierto { display: flex; }
.rr-mf-extra .form-select { width: auto; max-width: 100%; flex: 1 1 140px; }
.rr-mdest { display: inline-flex; align-items: center; background: var(--color-primary, #27803e); color: #fff; border-radius: 999px; padding: .2rem .5rem .2rem .7rem; font-size: .85rem; max-width: 100%; }
.rr-mdest #rr-mdest-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 14rem; }
.rr-mf-cont { width: 100%; font-size: .8rem; }
.rr-mapa-cuerpo { flex: 1 1 auto; min-height: 0; display: flex; position: relative; }
.rr-mapa-caja { flex: 1 1 auto; position: relative; min-width: 0; }
#rr-mapa { position: absolute; inset: 0; z-index: 0; }
.rr-mapa-lista { background: #fff; display: flex; flex-direction: column; }
.rr-lista-cab { display: flex; justify-content: space-between; align-items: center; padding: .6rem .85rem; border-bottom: 1px solid var(--color-border); font-size: .9rem; }
#rr-lista-items { overflow-y: auto; flex: 1 1 auto; -webkit-overflow-scrolling: touch; }
.rr-fila { display: flex; gap: .7rem; width: 100%; text-align: left; background: #fff; border: 0; border-bottom: 1px solid var(--color-border); padding: .6rem .85rem; align-items: flex-start; }
.rr-fila:hover, .rr-fila:focus-visible { background: #eef4fb; outline: 0; }
.rr-fila img { width: 84px; height: 64px; object-fit: cover; border-radius: 6px; flex: none; background: #e9ecef; }
.rr-fila-t { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.rr-fila-t strong { font-size: .95rem; } .rr-fila-t small { color: var(--color-text-muted); }
.rr-fila-m { font-size: .8rem; margin-top: .15rem; } .rr-fila-p { color: var(--color-text-muted); }
/* móvil: la lista es una hoja inferior y el botón flotante la abre */
.rr-lista-btn { position: absolute; left: 50%; bottom: 1.25rem; transform: translateX(-50%); z-index: 500; border-radius: 999px; box-shadow: 0 2px 10px rgba(0,0,0,.35); padding: .5rem 1.1rem; white-space: nowrap; }
.rr-mapa-lista { position: absolute; left: 0; right: 0; bottom: 0; height: 58%; z-index: 600; border-radius: 14px 14px 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.25); transform: translateY(105%); transition: transform .25s ease; }
.rr-mapa-lista.abierta { transform: none; }
.rr-mf-toggle { flex: none; }
@media (min-width: 768px) {
  .rr-mapa-filtros { padding: .6rem 1rem; }
  .rr-mf-destino { flex: 0 1 380px; }
  .rr-mf-toggle { display: none; }
  .rr-mf-extra { display: flex; width: auto; padding: 0; flex: 1 1 auto; }
  .rr-mf-extra .form-select { flex: 0 1 auto; max-width: 190px; }
  .rr-mf-cont { width: auto; margin-left: auto; font-size: .875rem; }
  .rr-mapa-lista { position: static; width: 350px; flex: none; height: auto; transform: none; border-radius: 0; box-shadow: none; border-right: 1px solid var(--color-border); z-index: 1; }
  .rr-lista-btn { display: none; }
}
.rr-pin i { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--color-action); color: #fff; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); font-size: 16px; }
.rr-pin i::before { transform: rotate(45deg); }
.rr-grupo { background: rgba(39, 128, 62, .85); color: #fff; border: 3px solid rgba(255,255,255,.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; box-shadow: 0 2px 8px rgba(0,0,0,.3); cursor: pointer; }
.rr-grupo-s { font-size: 12px; } .rr-grupo-m { font-size: 13px; background: rgba(39, 128, 62, .9); } .rr-grupo-l { font-size: 13px; background: rgba(31, 102, 50, .92); } .rr-grupo-xl { font-size: 14px; background: rgba(24, 80, 39, .95); }
.rr-tip-card, .rr-pop .leaflet-popup-content-wrapper { padding: 0; border-radius: var(--radius); overflow: hidden; }
.rr-pop .leaflet-popup-content { margin: 0; }
.rr-mt { width: 240px; } .rr-mt img { width: 240px; height: 130px; object-fit: cover; display: block; background: #e9ecef; }
.rr-mt-b { padding: .55rem .7rem .65rem; white-space: normal; line-height: 1.3; }
.rr-mt-est { color: #f59f00; letter-spacing: 1px; } .rr-mt-nota { background: var(--color-action); color: #fff; border-radius: 4px; padding: 0 .35rem; font-weight: 700; font-size: .8rem; }
.rr-mt-precio { font-size: .85rem; margin-top: .15rem; }
/* popup de la ficha: pantalla completa en móvil, ventana centrada en escritorio */
.rr-sin-scroll { overflow: hidden; }
.rr-ficha { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.55); display: flex; align-items: stretch; justify-content: center; }
.rr-ficha[hidden] { display: none; }
.rr-ficha-caja { background: #fff; width: 100%; display: flex; flex-direction: column; position: relative; }
.rr-ficha-x { flex: none; width: 2.1rem; height: 2.1rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: 50%; background: #fff; color: var(--color-text); font-size: 1.2rem; line-height: 1; padding: 0; cursor: pointer; }
.rr-ficha-x:hover, .rr-ficha-x:focus-visible { background: #fee2e2; border-color: #fca5a5; color: #b91c1c; }
.rr-ficha-barra { display: flex; align-items: center; gap: .6rem; padding: .5rem .75rem; border-bottom: 1px solid var(--color-border); background: #fff; flex: none; }
.rr-ficha-caja iframe { flex: 1 1 auto; width: 100%; border: 0; min-height: 0; }
.rr-ficha-carga { position: absolute; top: 3.4rem; left: 0; right: 0; text-align: center; color: var(--color-text-muted); padding: 1rem; }
@media (min-width: 768px) {
  .rr-ficha { padding: 3vh 2rem; }
  .rr-ficha-caja { max-width: 1000px; border-radius: var(--radius); overflow: hidden; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
}
/* ficha embebida (dentro del popup): sin migas y más compacta */
.rr-embed .breadcrumb { display: none; }
.rr-embed main { padding-top: .75rem !important; }

/* ===== Home v3 ===== */
.rr-hero-links { display: flex; justify-content: flex-end; gap: 1.25rem; flex-wrap: wrap; margin: -.25rem 0 1rem; }
.rr-hero-links .rr-cerca-link { margin: 0; font-size: .95rem; text-decoration: none; background: rgba(255,255,255,.12); border-radius: 999px; padding: .3rem .85rem; }
.rr-hero-links .rr-cerca-link:hover { background: rgba(255,255,255,.22); color: var(--color-accent); }
.rr-prov { display: inline-flex; align-items: center; gap: .55rem; background: #fff; border: 1px solid var(--color-border); border-radius: 999px; padding: .45rem .5rem .45rem 1rem; color: var(--color-text); font-weight: 600; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.rr-prov:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); color: var(--color-action); text-decoration: none; }
.rr-prov-n { background: #eef4fb; color: var(--color-primary); border-radius: 999px; padding: .1rem .6rem; font-size: .8rem; font-weight: 700; }
.rr-ver-todas { display: inline-flex; align-items: center; gap: .6rem; background: var(--color-primary); color: #fff; font-weight: 700; border-radius: 999px; padding: .75rem 1.6rem; box-shadow: var(--shadow-lg); transition: transform .15s, background .15s; }
.rr-ver-todas:hover { background: var(--color-primary-hover); color: var(--color-accent); transform: translateY(-2px); text-decoration: none; }
.rr-ver-todas .ti-arrow-right { transition: transform .15s; } .rr-ver-todas:hover .ti-arrow-right { transform: translateX(4px); }
.rr-cta-card { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--color-border); border-radius: 16px; padding: 1.75rem 1.75rem 1.5rem; box-shadow: var(--shadow); overflow: hidden; }
.rr-cta-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; }
.rr-cta-amarillo::before { background: var(--color-accent); } .rr-cta-azul::before { background: var(--color-action); }
.rr-cta-badge { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; font-size: 1.7rem; margin-bottom: 1rem; }
.rr-cta-amarillo .rr-cta-badge { background: #fff4d1; color: #b37d00; } .rr-cta-azul .rr-cta-badge { background: #e3eefb; color: var(--color-action); }
/* Pie de página */
.rr-footer { background: var(--color-primary); border-top: 0; color: rgba(255,255,255,.92); }
.rr-footer a { color: rgba(255,255,255,.92); } .rr-footer a:hover { color: var(--color-accent); text-decoration: none; }
.rr-footer .rr-foot-marca { display: flex; align-items: center; gap: .75rem; color: #fff; font-weight: 800; font-size: 1.4rem; }
.rr-footer .rr-foot-marca img { height: 64px; width: auto; }
.rr-footer .rr-foot-t { color: #fff; font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .6rem; }
.rr-footer ul li { padding: .15rem 0; }
.rr-footer hr { border-color: rgba(255,255,255,.2); }
.rr-footer .rr-foot-btn { background: none; border: 0; padding: 0; color: rgba(255,255,255,.92); font: inherit; } .rr-footer .rr-foot-btn:hover { color: var(--color-accent); }
.rr-footer .rr-foot-mail { color: var(--color-accent); font-weight: 600; }

/* Paginación del directorio (estilo Tabler) */
.rr-pag .pagination { gap: .125rem; margin: 0; }
.rr-pag .page-link { border: 0; background: transparent; color: #475467; border-radius: 6px !important; min-width: 2rem; height: 2rem; padding: 0 .6rem; display: inline-flex; align-items: center; justify-content: center; gap: .25rem; font-size: .875rem; font-weight: 500; box-shadow: none; }
.rr-pag .page-link:hover { background: rgba(98, 105, 118, .08); color: var(--color-action); }
.rr-pag .page-item.active .page-link { background: var(--color-action); color: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.15); }
.rr-pag .page-item.disabled .page-link { background: transparent; color: #adb5bd; pointer-events: none; }
.rr-pag .page-link .ti { font-size: 1.1rem; }

/* ===== Mapa: radio "cerca de mí" ===== */
.rr-mcerca { display: flex; align-items: center; gap: .6rem; padding: .4rem .75rem; background: #eef4fb; border-bottom: 1px solid var(--color-border); font-size: .9rem; position: relative; z-index: 1099; }
.rr-mcerca[hidden] { display: none; }
.rr-mcerca .form-range { width: min(260px, 45vw); }
#rr-mgeo.active { background: var(--color-action); border-color: var(--color-action); color: #fff; }

/* ===== Listados: recomendado + vista de lista ===== */
.rr-reco { background: var(--color-accent); color: #3b2a00; font-weight: 600; }
.rr-lista-dir { border-radius: var(--radius); overflow: hidden; }
.rr-fila-dir { display: grid; grid-template-columns: 1fr auto auto; gap: .5rem 1.25rem; align-items: center; padding: .6rem .9rem; }
.rr-fila-dir:hover { background: #f4f8fd; }
.rr-fd-precio { min-width: 8.5rem; }
@media (max-width: 575.98px) { .rr-fila-dir { grid-template-columns: 1fr; } .rr-fd-precio { text-align: left !important; } }

/* Ficha sin fotos: imagen de la comunidad con aviso */
.rr-hero-ca { position: relative; margin-bottom: 1.5rem; }
.rr-hero-ca img { width: 100%; height: 100%; object-fit: cover; }
/* Foto de la zona (no del alojamiento): marco y cinta de color bien visibles */
.rr-hero-ca-tag { position: absolute; left: 0; right: 0; bottom: 0; width: auto; max-width: none; background: var(--color-accent); color: #1e293b; font-size: .95rem; font-weight: 700; line-height: 1.3; padding: .55rem .9rem; border-radius: 0; display: flex; align-items: center; gap: .5rem; z-index: 2; }
.rr-hero-ca-tag .ti { font-size: 1.25rem; flex: none; }
.rr-hero-ca-tag[hidden] { display: none; }
.rr-hero-ca:has(.rr-hero-ca-tag:not([hidden]))::after { content: ""; position: absolute; inset: 0; border: 4px solid var(--color-accent); border-radius: inherit; pointer-events: none; z-index: 1; }

/* Enlaces: nunca subrayados y, al pasar el ratón, naranja (también los .text-body de Bootstrap, que fuerzan el color con !important) */
a:hover, a:focus-visible { text-decoration: none !important; }
a.text-body:hover, a.text-body:focus-visible { color: var(--color-link-hover) !important; }
.rr-header a.nav-link:hover, .rr-footer a:hover, .rr-cerca-link:hover { text-decoration: none !important; }

/* ===== Página de destino ===== */
.rr-dest-cab .rr-dest-foto { max-height: none; height: 100%; min-height: 220px; max-height: 340px; margin-bottom: 0; }
.rr-pag-fila { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1rem; }
.rr-pag-fila .rr-pag-info { white-space: nowrap; }
.rr-vista { display: flex; width: 100%; }
.rr-vista .btn { flex: 1 1 0; }
@media (min-width: 992px) {
  .rr-dest-lado-col { position: relative; }
  .rr-dest-lado { position: absolute; inset: 0; margin: 0; }
  .rr-dest-fila { min-height: 0; }
  .rr-dest-fila .rr-filtros-dir { height: 100%; }
}
@media (max-width: 991.98px) { .rr-lado-lista { max-height: 260px; } }
.btn-link { text-decoration: none; }
.navbar-brand, .navbar-brand:hover, .rr-foot-marca, .rr-foot-marca:hover { text-decoration: none !important; }
.rr-marca b, .rr-foot-marca b { color: var(--color-accent); font-weight: 800; }
.rr-dest-fila { margin-bottom: 1.25rem; }
.rr-n-pueblo { font-size: .72em; font-weight: 700; margin-left: .15rem; color: var(--color-text); }

/* Columna derecha: sin tarjeta ni fondo; el título queda fijo y solo la lista de chips hace scroll */
.rr-dest-lado { display: flex; flex-direction: column; gap: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow); padding: .9rem 1rem; }
.rr-lado-sec { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
.rr-lado-lista { overflow-y: auto; flex: 1 1 auto; min-height: 0; padding-right: .25rem; }

/* indicador de carga global */
#rr-carga{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.55);backdrop-filter:blur(1px)}
#rr-carga.on{display:flex}
/* Logo girando dentro de un círculo verde (sustituye al spinner) */
.rr-carga-logo{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#27803e;flex:none}
.rr-carga-logo img{width:26px;height:26px;animation:rr-gira 1.1s linear infinite}
@media (prefers-reduced-motion: reduce){.rr-carga-logo img{animation-duration:3s}}
#rr-carga span{background:#fff;border:1px solid var(--color-border);border-radius:999px;padding:.4rem 1.1rem .4rem .45rem;box-shadow:0 6px 24px rgba(0,0,0,.15);font-weight:600;display:inline-flex;align-items:center;gap:.6rem}

.rr-dest-fig{position:relative;margin:0;height:100%;max-height:340px}
.rr-dest-fig .rr-dest-foto{display:block}

/* Foto principal clicable (abre el visor ampliado) */
.rr-hero-click { cursor: zoom-in; background: #e5e7eb; }
.rr-hero-click:focus-visible { outline: 3px solid var(--color-action); outline-offset: 2px; }
.rr-hero-click .rr-hero-n { position: absolute; right: .75rem; bottom: .75rem; font-size: .85rem; padding: .45rem .7rem; }
#rr-lightbox .rr-lb-una .carousel-control-prev, #rr-lightbox .rr-lb-una .carousel-control-next { display: none; }

/* Rejilla de la ficha: foto | mapa y debajo texto | tarjeta (alineada con el texto) */
.rr-ficha-grid { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
.rr-ficha-grid .g-foto { order: 1; } .rr-ficha-grid .g-texto { order: 2; } .rr-ficha-grid .g-card { order: 3; } .rr-ficha-grid .g-mapa { order: 4; }
.rr-ficha-grid .g-mapa iframe, .rr-ficha-grid .g-mapa .rr-map-bloqueado { width: 100%; height: 260px; }
@media (min-width: 992px) {
  .rr-ficha-grid { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "foto mapa" "texto card"; align-items: start; }
  .rr-ficha-grid .g-foto { grid-area: foto; } .rr-ficha-grid .g-mapa { grid-area: mapa; align-self: stretch; display: flex; flex-direction: column; }
  .rr-ficha-grid .g-texto { grid-area: texto; } .rr-ficha-grid .g-card { grid-area: card; }
  .rr-ficha-grid .g-mapa iframe, .rr-ficha-grid .g-mapa .rr-map-bloqueado { flex: 1 1 auto; height: auto; min-height: 260px; }
}
.rr-hero-click .carousel-item { cursor: zoom-in; }
.rr-hero-click .rr-hero-n { z-index: 3; pointer-events: none; }
.rr-hero-click .carousel-control-prev, .rr-hero-click .carousel-control-next { width: 12%; }
#rr-lightbox .rr-lb-fs { position: absolute; top: .75rem; right: 3.4rem; z-index: 5; }
#rr-lightbox:fullscreen { background: #000; display: flex !important; align-items: center; }
#rr-lightbox:fullscreen .modal-dialog { max-width: 100%; width: 100%; margin: 0; }
#rr-lightbox:fullscreen .carousel-item img { max-height: 92vh; object-fit: contain; }

.rr-reclamar { background: #f1f7ff; border: 1px solid #cfe8d8; border-radius: var(--radius); padding: .75rem 1rem; }

/* Avisos de ayuda plegables junto a formularios */
.rr-ayuda { background: #f1f7ff; border: 1px solid #cfe8d8; border-radius: var(--radius); padding: .6rem .9rem; font-size: .9rem; }
.rr-ayuda summary { cursor: pointer; font-weight: 600; }
.rr-ayuda-c { margin-top: .5rem; }
.rr-ayuda-c ul, .rr-ayuda-c ol { padding-left: 1.2rem; }
.rr-ayuda-pag .accordion-button { font-weight: 600; }

.rr-ayuda-btn { background: none; border: 0; padding: 0; color: var(--color-action, #27803e); font-weight: 600; text-align: left; cursor: pointer; }
.rr-ayuda-btn:hover, .rr-ayuda-btn:focus { text-decoration: none; color: var(--color-action-hover, #1f6632); }
.rr-ayuda-c ul, .rr-ayuda-c ol { padding-left: 1.2rem; }

/* Popups de ayuda */
.modal:not(#rr-lightbox) .modal-content { border: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 50px rgba(24, 80, 39, .28); }
.modal:not(#rr-lightbox) .modal-header { background: linear-gradient(135deg, var(--color-primary-hover) 0%, var(--color-action) 100%); color: #fff; border-bottom: 0; padding: 1rem 1.25rem; }
.modal:not(#rr-lightbox) .modal-title i { background: rgba(255, 255, 255, .18); border-radius: 50%; padding: .3rem; margin-right: .35rem; }
.modal:not(#rr-lightbox) .modal-body { padding: 1.25rem; background: #fbfdff; }
.modal:not(#rr-lightbox) .modal-body strong { color: var(--color-primary); }
.modal:not(#rr-lightbox) .modal-body ul, .modal:not(#rr-lightbox) .modal-body ol { padding-left: 1.2rem; }
.modal:not(#rr-lightbox) .modal-body li::marker { color: var(--color-action); font-weight: 700; }
.modal:not(#rr-lightbox) .modal-footer { background: #f1f7ff; border-top: 1px solid #dbe8f8; }

/* Centro de ayuda */
.rr-ay-seccion { background: #fff; color: var(--color-primary); border: 1px solid #cfe8d8; font-weight: 600; padding: .45rem .9rem; transition: background .15s, color .15s, border-color .15s; }
.rr-ay-seccion:hover, .rr-ay-seccion:focus { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.rr-ay-cta { background: linear-gradient(135deg, #eef5ef 0%, #fbf3c9 100%); border: 1px solid #cfe8d8; border-radius: 14px; padding: 1.5rem; }
.rr-cta-btn { font-weight: 700; padding: .65rem 1.2rem; border: 0; color: #fff; transition: background .2s, color .2s, transform .15s; }
.rr-cta-btn:hover, .rr-cta-btn:focus { transform: translateY(-1px); }
.rr-cta-1 { background: #fff; color: var(--color-primary); box-shadow: inset 0 0 0 2px var(--color-primary); }
.rr-cta-1:hover, .rr-cta-1:focus { background: var(--color-primary); color: #fff; }
.rr-cta-2 { background: var(--color-accent); color: #1e293b; }
.rr-cta-2:hover, .rr-cta-2:focus { background: var(--color-primary); color: #fff; }

.modal:not(#rr-lightbox) .modal-header .btn-close { filter: invert(1) grayscale(100%) brightness(200%); opacity: .9; }
.modal:not(#rr-lightbox) .modal-title { color: #fff; font-weight: 700; }
.modal:not(#rr-lightbox) .modal-body label.form-label { font-weight: 600; color: var(--color-primary); }
/* Barra de secciones del centro de ayuda: siempre visible al hacer scroll */
.rr-ay-nav { position: sticky; top: 0; z-index: 1020; background: rgba(245, 247, 250, .96); backdrop-filter: blur(4px); padding: .6rem 0; border-bottom: 1px solid var(--color-border); }
.rr-ayuda-pag [id] { scroll-margin-top: 4.5rem; }

/* Botón «volver arriba» */
.rr-subir { position: fixed; right: 1rem; bottom: 1rem; z-index: 1040; width: 2.9rem; height: 2.9rem; border: 0; border-radius: 50%; background: var(--color-primary); color: #fff; font-size: 1.4rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(24, 80, 39, .4); opacity: 0; transform: translateY(12px); transition: opacity .2s, transform .2s, background .15s; cursor: pointer; }
.rr-subir[hidden] { display: none; }
.rr-subir.rr-subir-on { opacity: .92; transform: none; }
.rr-subir:hover, .rr-subir:focus-visible { background: var(--color-accent); color: #1e293b; opacity: 1; outline: 0; }
/* No tapar la barra de selección ni el aviso de cookies */
body:has(.rr-selbar) .rr-subir { bottom: 5rem; }
@media print { .rr-subir { display: none !important; } }

/* Popups con formulario dentro del modal-content: el cuerpo hace scroll vertical y nunca horizontal */
.modal-dialog-scrollable .modal-content > form { display: flex; flex-direction: column; min-height: 0; max-height: 100%; overflow: hidden; }
.modal-body { overflow-x: hidden; }
/* Cabecera del popup «Publica tu alojamiento» más grande */
.modal:not(#rr-lightbox) .modal-header.rr-pub-cab { padding: 1.6rem 1.75rem; background: linear-gradient(120deg, var(--color-primary-hover) 0%, var(--color-action) 70%, #3a9a53 100%); }
.rr-pub-cab .modal-title { font-size: 1.5rem; display: flex; align-items: center; gap: .6rem; }
.rr-pub-cab .modal-title i { font-size: 1.7rem; padding: .45rem; }
#rr-publicar .modal-body { padding: 1.5rem 1.75rem; }

/* Destinos: buscador y título de cada listado, fuera de la tarjeta blanca y separados de la tabla */
.rr-dest-filtro { background: #eef4fb; border: 1px solid #cfe8d8; border-radius: var(--radius); padding: .85rem 1rem; }
.rr-dest-filtro .form-label { color: var(--color-primary); }



/* Cajas de búsqueda de destinos: misma estructura, tamaño y tipografía en las dos */
.rr-dest-filtro { font-size: .875rem; }
.rr-df-fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; min-height: 2rem; }
.rr-df-titulo { font-size: 1.05rem; font-weight: 700; color: var(--color-primary); line-height: 1.2; }
.rr-dest-filtro .form-label { font-size: .875rem; font-weight: 600; color: var(--color-primary); margin-bottom: .25rem; }
.rr-dest-filtro .form-control, .rr-dest-filtro .btn { font-size: .875rem; }
.rr-dest-filtro .rr-df-fila .btn { white-space: nowrap; }
@media (min-width: 992px) { .rr-dest-filtro { min-height: 7.6rem; } }
/* Botón «volver arriba»: amarillo con aro blanco para que se vea sobre el azul del pie */
.rr-subir { background: var(--color-accent); color: #1e293b; border: 3px solid #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .35); }
.rr-subir:hover, .rr-subir:focus-visible { background: #fff; color: var(--color-primary); }

.rr-ent-lnk { white-space: nowrap; text-decoration: none; }
.rr-ent-lnk:hover { text-decoration: underline; }
.rr-ent-lnk i { font-size: 1rem; vertical-align: -2px; }

/* Búsqueda de destinos en curso: rueda en el campo y fila "Buscando destinos…" */
@keyframes rr-gira { to { transform: rotate(360deg); } }
@keyframes rr-punto { 0%, 80%, 100% { opacity: .2; } 40% { opacity: 1; } }
.rr-spin { display: inline-block; width: 1.15rem; height: 1.15rem; border: 2.5px solid #cbd9ee; border-top-color: var(--color-action); border-radius: 50%; animation: rr-gira .7s linear infinite; flex: none; }
.rr-ac.rr-cargando::after { content: ""; position: absolute; right: 2.4rem; top: 50%; width: 1.1rem; height: 1.1rem; margin-top: -.55rem; border: 2.5px solid #cbd9ee; border-top-color: var(--color-action); border-radius: 50%; animation: rr-gira .7s linear infinite; pointer-events: none; }
.rr-ac-list .rr-ac-buscando { display: flex; align-items: center; gap: .65rem; padding: .8rem .75rem; color: var(--color-text-muted); font-size: .95rem; cursor: default; }
.rr-ac-list .rr-ac-buscando:hover { background: transparent; }
.rr-puntos i { font-style: normal; animation: rr-punto 1.2s infinite; }
.rr-puntos i:nth-child(2) { animation-delay: .2s; } .rr-puntos i:nth-child(3) { animation-delay: .4s; }
@media (prefers-reduced-motion: reduce) { .rr-spin, .rr-ac.rr-cargando::after { animation-duration: 2s; } .rr-puntos i { animation: none; opacity: 1; } }

/* Tarjeta "Alojamientos cerca de mí" (portada): bloque azul sólido, distinto de las píldoras blancas de provincias */
.rr-cerca-card { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; height: 100%; min-height: 190px; padding: 1.4rem; border-radius: var(--radius); color: #fff; text-decoration: none;
  background: linear-gradient(145deg, var(--color-primary-hover) 0%, var(--color-action) 100%); box-shadow: var(--shadow-lg); position: relative; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.rr-cerca-card::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; border-radius: 50%; border: 22px solid rgba(255,255,255,.12); }
.rr-cerca-card:hover { color: #fff; text-decoration: none; transform: translateY(-3px); }
.rr-cerca-ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: rgba(255,255,255,.18); font-size: 1.7rem; }
.rr-cerca-t { font-size: 1.2rem; line-height: 1.25; }
.rr-cerca-p { font-size: .9rem; opacity: .9; }
.rr-cerca-b { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; background: var(--color-accent); color: #1e293b; font-weight: 700; border-radius: 999px; padding: .45rem 1rem; position: relative; z-index: 1; }

/* Cuadros de tipo de alojamiento: todos de la misma altura (el texto largo ocupa dos líneas reservadas) */
.rr-tipo-card { height: 100%; min-height: 128px; }
.rr-tipo-card strong { display: flex; align-items: center; justify-content: center; min-height: 2.4em; }

/* Botón «ver contraseña» */
input[data-rr-pw] { padding-right: 2.9rem !important; background-image: none !important; }
.rr-pw-ver { position: absolute; right: 0; width: 2.9rem; display: flex; align-items: center; justify-content: center; border: 0; background: none; color: var(--color-text-muted, #64748b); font-size: 1.2rem; cursor: pointer; z-index: 5; }
.rr-pw-ver:hover, .rr-pw-ver:focus-visible { color: var(--color-action); outline: 0; }

/* Página 404 */
.rr-404 { max-width: 620px; background: #fff; border: 1px solid var(--color-border); border-radius: 16px; padding: 2.5rem 1.5rem; box-shadow: var(--shadow-lg); }
.rr-404-n { font-size: 5.5rem; font-weight: 800; line-height: 1; color: var(--color-primary); letter-spacing: .05em; display: flex; align-items: center; justify-content: center; gap: .15em; }
.rr-404-n i { font-size: .8em; color: var(--color-accent); }

/* Ficha: enlaces a otros alojamientos del municipio */
.rr-enl-lista { columns: 2; column-gap: 2rem; }
.rr-enl-lista li { break-inside: avoid; padding: .2rem 0; }
@media (max-width: 575px) { .rr-enl-lista { columns: 1; } }

/* Ficha: municipios cercanos (cuadro blanco, letra negra, verde al pasar el ratón) */
.rr-enl-chip { display: inline-block; background: #fff; border: 1px solid #d5dbd7; border-radius: 8px; padding: .35rem .75rem; font-size: .875rem; font-weight: 600; color: #1b1f1d; text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.rr-enl-chip .rr-enl-sub { font-weight: 400; color: #5b6660; }
.rr-enl-chip:hover, .rr-enl-chip:focus-visible { background: var(--color-action); border-color: var(--color-action); color: #fff; }
.rr-enl-chip:hover .rr-enl-sub, .rr-enl-chip:focus-visible .rr-enl-sub { color: rgba(255,255,255,.9); }

/* ---------- Asistente de destinos (prototipo, ASISTENTE=1) ---------- */
.rr-as-caja { max-width: 860px; background: #fff; border: 1px solid #e2e8f0; border-radius: var(--radius); padding: 1.1rem 1.25rem; }
.rr-as-ej { border: 1px solid #cbd5e1; border-radius: 999px; padding: .15rem .65rem; color: var(--color-text); background: #fff; }
.rr-as-ej:hover { border-color: #27803e; color: #27803e; text-decoration: none; }
.rr-as-motor { border-top: 1px dashed #e2e8f0; padding-top: .6rem; color: #64748b; }
.rr-as-fila { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.rr-as-et { width: 84px; font-size: .85rem; color: #64748b; padding-top: .3rem; }
.rr-as-chip { border: 1px solid #cbd5e1; background: #fff; border-radius: 999px; padding: .3rem .8rem; font-size: .88rem; color: var(--color-text); }
.rr-as-chip:hover { border-color: #27803e; color: #27803e; }
.btn-check:checked + .rr-as-chip { background: #27803e; border-color: #27803e; color: #fff; }
.btn-check:focus-visible + .rr-as-chip { box-shadow: 0 0 0 .2rem rgba(39, 128, 62, .25); }
.rr-as-dest h3 a { color: var(--color-text); }
.rr-as-dest h3 a:hover { color: var(--color-link-hover); }
.rr-as-pts { background: #e8f3eb; color: #1f6632; font-weight: 700; font-size: .8rem; border-radius: 999px; padding: .15rem .55rem; white-space: nowrap; }
.rr-as-motivos li { padding: .15rem 0; color: #475569; }
.rr-as-motivos li i { color: #94a3b8; width: 1.2rem; }
.rr-as-motivos li.pedido { color: var(--color-text); font-weight: 600; }
.rr-as-motivos li.pedido i { color: #27803e; }
@media (max-width: 575px) { .rr-as-et { width: 100%; padding-top: 0; } }

/* ---------- Páginas de tipo + destino (SEO_TIPO_DESTINO) ---------- */
.rr-tipos { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.rr-tipos-t { font-size: .9rem; color: #64748b; margin-right: .2rem; }
.rr-tipo-chip { display: inline-flex; align-items: center; gap: .3rem; border: 1px solid #cbd5e1; background: #fff; border-radius: 999px; padding: .3rem .8rem; font-size: .88rem; color: var(--color-text); text-decoration: none; }
.rr-tipo-chip small { color: #64748b; }
.rr-tipo-chip:hover { border-color: #27803e; color: #27803e; text-decoration: none; }
.rr-tipo-chip.activo { background: #27803e; border-color: #27803e; color: #fff; }
.rr-tipo-chip.activo small { color: #dcefe1; }
/* Cuadro lateral de destinos: caja sin fondo, botones de cada sitio en blanco */
.rr-lado-lista .btn-outline-secondary { background: #fff; color: var(--color-text); border-color: #cbd5e1; }
.rr-lado-lista .btn-outline-secondary:hover { background: #fff; border-color: #27803e; color: #27803e; }
