/* [17oct] aloha-pesos-contenedor — ajustes de diseño (pesos tipográficos y alineación de contenedores) */

/* Pesos: Inter solo admite 400/500/600/700 */
body .searchTextBuscador span          { font-weight: 400; }
body .resena_for_home .content-title   { font-weight: 400; }
body p.content-muted                   { font-weight: 400; }
body .review_title_bottom              { font-weight: 600; }

/* Retiros destacados: columnas px-2 (7.5px) dentro de row -15px -> tarjetas 7px fuera de la retícula */
body .retreats-section-new > .container > .row { margin-left: -7.5px !important; margin-right: -7.5px !important; }

/* Bono regalo: está dentro de .row sin columna -> sobresalía 15px por lado */
body .abr-bono-wrap { margin-left: 15px; margin-right: 15px; width: calc(100% - 30px); }

/* Reseñas: 3 x col-md-3 (25%) dejaban el bloque más estrecho que el resto */
@media (min-width: 768px) {
  body .resena_for_home .row.justify-center > .col-md-3 { flex: 0 0 33.3333%; max-width: 33.3333%; }
}
/* [17oct] aloha-pesos-contenedor: la tarjeta de reseña tenía ancho fijo (267px) */
@media (min-width: 768px) {
  body .resena_for_home .testimonials-card { width: 100%; }
}

/* [17oct] aloha-carruseles-mobile: destinos en rejilla 2 col; retiros, tipos y reseñas en carrusel horizontal */
@media (max-width: 767px) {
  /* Destinos: rejilla 2 columnas */
  body .container:has(> .destinos-redesign) { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 12px; }
  body .container:has(> .destinos-redesign) > .section-header-new { grid-column: 1 / -1; }
  body .destinos-redesign { display: contents; }
  body .destinos-redesign .destino-card-new { height: auto; aspect-ratio: 4/3; margin-bottom: 12px; width: auto !important; min-width: 0 !important; max-width: none !important; }
  body .destinos-redesign .destino-card-new img { height: 100%; width: 100%; object-fit: cover; }
  body .destino-label-new { left: 10px; bottom: 10px; }
  body .destino-name-new { font-size: 14px; }
  body .destino-label-new .destino-arrow-new { display: none !important; }

  /* Carruseles: retiros destacados, tipos de retiro y reseñas */
  body .tipos-redesign,
  body .retreats-section-new > .container > .row,
  body .abr-rh .row {
    display: flex !important; flex-wrap: nowrap !important; gap: 12px;
    overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    margin-left: -22.5px !important; margin-right: -22.5px !important; padding: 0 22.5px 4px; scroll-padding-left: 22.5px;
  }
  body .tipos-redesign::-webkit-scrollbar,
  body .retreats-section-new > .container > .row::-webkit-scrollbar,
  body .abr-rh .row::-webkit-scrollbar { display: none; }
  body .tipos-redesign > * { flex: 0 0 72%; scroll-snap-align: start; }
  body .retreats-section-new > .container > .row > [class*=col] { flex: 0 0 84%; max-width: 84%; padding: 12px 0 !important; scroll-snap-align: start; }
  body .abr-rh .row > .abr-rh-col { flex: 0 0 84%; max-width: 84%; padding: 0; margin: 0; scroll-snap-align: start; }
}

/* [17oct] aloha-botones-ficha: Enviar mensaje / Reservar ahora iguales en desktop y mobile (48px, radio 12) */
body button.reserva-ahora.btn-request {
  height: 48px !important; min-height: 48px !important;
  padding-top: 0 !important; padding-bottom: 0 !important;
  border-radius: 12px !important; line-height: 1 !important;
  display: inline-flex !important; align-items: center; justify-content: center;
}

/* [17oct] aloha-sidebar-sticky: ficha desktop — valoración arriba, caja de reserva sticky, bloque confianza/compartir al final de la columna */
@media (min-width: 992px) and (min-height: 640px) {
  body main:has(.card-retiros-reserva) { overflow: visible !important; overflow-x: clip !important; }   /* overflow:hidden impedía el sticky */
  body .col-lg-4.movil-margin:has(> .card-retiros-reserva) { display: flex; flex-direction: column; }
  body .col-lg-4.movil-margin > .card-retiros-reserva {
    position: sticky !important; top: 76px; z-index: 2;
    margin-bottom: 480px !important;                  /* hueco para el bloque de confianza: la caja se detiene antes */
    max-height: calc(100vh - 92px); overflow-y: auto; overflow-x: hidden;
  }
  body .col-lg-4.movil-margin > .card-retiros-reserva .fixed-actions { display: none !important; }  /* barra flotante duplicada */
  body .col-lg-4.movil-margin > .retiros-trust-share-desktop { margin-top: auto !important; }       /* bloque al final de la columna */
}

/* [17oct] aloha-pulido-home: newsletter */
body section.bg-subscribe { position: relative; isolation: isolate; }
body section.bg-subscribe::before { content: ''; position: absolute; inset: 0; background: rgba(10,20,10,.35); z-index: -1; pointer-events: none; }
body #btn-subscripcion { background: #58bc0a !important; color: #fff !important; border: 0 !important; border-radius: 12px !important; font-weight: 600 !important; opacity: 1 !important; }
body #btn-subscripcion:hover { background: #4aa308 !important; }
body #subscripcion { border-radius: 12px !important; border: 0 !important; padding: 0 16px; }

/* [17oct] aloha-pulido-home: card de retiro de la home pulsable entera (fotos y favorito siguen por encima) */
body .retreats-section-new .card .card-body { position: relative; }
body .retreats-section-new .card .latest_r_mobile > a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
body .retreats-section-new .card .card-body a:not(.latest_r_mobile > a),
body .retreats-section-new .card .card-body button,
body .retreats-section-new .card .owl-carousel,
body .retreats-section-new .card .retiros-fav { position: relative; z-index: 2; }
@media (max-width: 767px) {
  body .retreats-section-new .card .registrese-alt { min-height: 44px; padding-left: 18px; padding-right: 18px; }
}

/* [17oct] aloha-pulido-ficha: chips de nivel sin semáforo (Avanzado ya no en rojo), indicador de barras */
body .dif-pill.principiante, body .dif-pill.medio, body .dif-pill.avanzado { background: #f0f9e8 !important; color: #2d6a0f !important; border-color: rgba(58,125,10,.12) !important; }
body .dif-pill .dif-dot {
  --on: #3a7d0a; --off: #cfd8c6; --b1: var(--off); --b2: var(--off); --b3: var(--off);
  width: 13px !important; height: 11px !important; border-radius: 0 !important;
  background: linear-gradient(var(--b1),var(--b1)) 0 100%/3px 5px no-repeat,
              linear-gradient(var(--b2),var(--b2)) 5px 100%/3px 8px no-repeat,
              linear-gradient(var(--b3),var(--b3)) 10px 100%/3px 11px no-repeat !important;
}
body .dif-pill.principiante .dif-dot { --b1: var(--on); }
body .dif-pill.medio .dif-dot        { --b1: var(--on); --b2: var(--on); }
body .dif-pill.avanzado .dif-dot     { --b1: var(--on); --b2: var(--on); --b3: var(--on); }

/* [17oct] aloha-card-ubicacion: icono y texto de ubicación alineados (el icono tenía margin-bottom:-5px) y texto legible */
body .card p.content-text-for-icon { font-size: 14px !important; line-height: 20px !important; font-weight: 400 !important; align-items: center !important; gap: 6px; margin: 0; }
body .card p.content-text-for-icon img.location_icon { width: 18px !important; height: 18px !important; flex: 0 0 18px; margin: 0 !important; position: static !important; transform: none !important; }

/* [17oct] aloha-pulido-home (fix): el favorito vuelve a su esquina de la foto */
body .retreats-section-new .card .retiros-fav { position: absolute !important; z-index: 3; }

/* [17oct] aloha-tokens-home: escala tipográfica y ritmo vertical de la home (fase 1) */
/* Tipografía */
body .masthead h1 { font-size: 40px !important; line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: -.01em; text-wrap: balance; margin-bottom: 24px !important; }
body .section-header-new h2, body .abr-rh-title, body main h2.accordion-header {
  font-size: 28px !important; line-height: 1.2 !important; font-weight: 700 !important; color: #1a1a2e !important;
  text-align: center !important; letter-spacing: -.01em; margin: 0 !important;
}
body .section-header-new { margin: 0 0 24px !important; padding: 0 !important; }
body .abr-rh-title { margin-bottom: 24px !important; }
body main .list-title { font-size: 17px !important; line-height: 1.35 !important; }
body main .list-content { font-size: 14px !important; line-height: 1.55 !important; }
body .content-text { font-weight: 400 !important; }

/* Ritmo vertical: 80px entre secciones en desktop */
body .abr-bono-wrap { margin-top: 0 !important; margin-bottom: 0 !important; }
body .retreats-section-new { padding-bottom: 10px !important; }
body main section:has(h2.accordion-header) .row.mt-30 { margin-top: 0 !important; margin-bottom: 24px !important; }
body main section:has(h2.accordion-header) .row.list {
  display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px;
  margin-top: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
}
body main section:has(h2.accordion-header) .row.list > [class*=col-] { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; }
@media (min-width: 768px) {
  body .destinos-redesign, body .tipos-redesign { gap: 24px !important; }
  body .destinos-redesign.second-row { margin-top: 24px !important; }
}

/* Mobile: 56px entre secciones */
@media (max-width: 767px) {
  body .masthead h1 { font-size: 30px !important; margin-bottom: 20px !important; }
  body .section-header-new h2, body .abr-rh-title, body main h2.accordion-header { font-size: 22px !important; }
  body .section-header-new { margin-bottom: 16px !important; }
  body .abr-rh-title { margin-bottom: 16px !important; }
  body main:has(> .retreats-section-new) > section:not(.masthead):not(.bg-subscribe) { padding-top: 28px !important; padding-bottom: 28px !important; }  /* solo home */
  body main > section.retreats-section-new.retreats-section-new:not(.x) { padding-bottom: 0 !important; margin-top: 0 !important; }
  body main > section.layout-pt-md:has(.destinos-redesign):not(.x) { padding-bottom: 16px !important; }
  body main > section.margin-retiros-subscribe:not(.bg-subscribe) { margin-bottom: 0 !important; }
  body main > section.bg-subscribe { padding-top: 40px !important; padding-bottom: 40px !important; }
  body main > section.bg-subscribe .mt-5 { margin-top: 16px !important; }
  body main section:has(h2.accordion-header) .row.mt-30 { margin-bottom: 16px !important; }
  body main section:has(h2.accordion-header) .row.list { grid-template-columns: 1fr; gap: 12px; }
}

/* [17oct] aloha-tokens-listado: jerarquía tipográfica de los listados y card más compacta en mobile (fase 2) */
body:has(.masthead.categorias) h2.text-20 { font-size: 20px !important; font-weight: 600 !important; color: #1a1a2e !important; }
body .retiro-card { border-radius: 12px !important; }
body .retiro-card h3.content-bold, body .retiro-card h3.content-bold a { font-size: 18px !important; line-height: 1.3 !important; color: #1a1a2e !important; }
body .retiro-card p.content-text:not(.fs-4), body .retiro-card p.content-text:not(.fs-4) span,
body .retiro-card .retiro-incluye, body .retiro-card .retiro-incluye span,
body .retiro-card .card-rating { font-size: 14px !important; color: #4b5563 !important; }
body .retiro-card .resena-texto {
  font-size: 14px !important; line-height: 1.5 !important; color: #4b5563 !important;
  display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
body .retiro-card p.content-muted { font-size: 13px !important; color: #6b7280 !important; }
body .aloha-filter-section-title { font-size: 13px !important; color: #4b5563 !important; }
body h2.titulo-mas-sobre { font-size: 24px !important; font-weight: 700 !important; line-height: 1.25 !important; color: #1a1a2e !important; }
@media (max-width: 767px) {
  body .retiro-card h3.content-bold, body .retiro-card h3.content-bold a { font-size: 17px !important; }
  body .retiro-card h3.content-bold { display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  body .retiro-card .item-img, body .retiro-card .galeria-track { height: 200px !important; }
  body .retiro-card .galeria-track img { height: 200px !important; min-height: 0 !important; width: 100%; object-fit: cover; }
  body .retiro-card .retiro-resena { padding: 10px 12px 10px 14px !important; }
  body .retiro-card .col-md-8 > .row > .col-12.mb-3 { margin-bottom: 10px !important; }
  body h2.titulo-mas-sobre { font-size: 20px !important; }
}

/* [17oct] aloha-listado-seotexto: texto "Más sobre un retiro en…" legible (sin justificar, línea de ~75 caracteres) */
body pre.category-description { text-align: left !important; max-width: 760px; line-height: 1.7 !important; color: #4b5563 !important; }

/* [17oct] aloha-tokens-ficha: jerarquía tipográfica de la ficha de retiro (fase 3) */
body h1.retreat-title { font-size: 32px !important; line-height: 1.2 !important; font-weight: 700 !important; color: #1a1a2e !important; letter-spacing: -.01em; text-wrap: balance; }
body section.aparecer-mobile > div > h3.mt-0 { font-size: 24px !important; line-height: 1.25 !important; font-weight: 700 !important; color: #1a1a2e !important; }
body .padding-retiros-accordion h2.accordion-header { font-size: 24px !important; line-height: 1.25 !important; font-weight: 700 !important; color: #1a1a2e !important; text-align: left !important; }
body:has(.retreat-header) .col-lg-8 .content-title.padding-tittle,
body:has(.retreat-header) .col-lg-8 .tag-group-title,
body:has(.retreat-header) .col-lg-8 .subsection-title { font-size: 17px !important; font-weight: 600 !important; color: #1a1a2e !important; }
body:has(.retreat-header) .col-lg-8 .desc-tagline { font-size: 18px !important; line-height: 1.4 !important; font-weight: 600 !important; color: #1a1a2e !important; }
body:has(.retreat-header) .col-lg-8 .aloha-expandable p,
body:has(.retreat-header) .col-lg-8 .text-block p,
body:has(.retreat-header) .col-lg-8 .desc-text p { font-size: 16px !important; line-height: 1.7 !important; color: #374151 !important; }
body:has(.retreat-header) .col-lg-8 .fac-desc { font-size: 15px !important; line-height: 1.6 !important; }
body:has(.retreat-header) .ort-qtxt { font-size: 14px !important; line-height: 1.55 !important; }
@media (max-width: 767px) {
  body .padding-retiros-accordion h2.accordion-header { font-size: 20px !important; }
  body:has(.retreat-header) .col-lg-8 .content-title.padding-tittle,
  body:has(.retreat-header) .col-lg-8 .tag-group-title,
  body:has(.retreat-header) .col-lg-8 .subsection-title { font-size: 16px !important; }
}

/* [17oct] aloha-tokens-ficha (fix): título 28px; títulos de sección (span .titulo-bloque dentro del h2) a 24px y todos a la izquierda */
body h1.retreat-title { font-size: 28px !important; }
body:has(.retreat-header) main h2.accordion-header { text-align: left !important; }
body:has(.retreat-header) .col-lg-8 .content-title.padding-tittle[class*="titulo-bloq"] { font-size: 24px !important; line-height: 1.25 !important; font-weight: 700 !important; color: #1a1a2e !important; }
@media (max-width: 767px) {
  body:has(.retreat-header) .col-lg-8 .content-title.padding-tittle[class*="titulo-bloq"] { font-size: 20px !important; }
  body section.aparecer-mobile > div > h3.mt-0 { font-size: 22px !important; }
}

/* [17oct] aloha-tokens-ficha (fix): título a ancho completo; balance lo partía en dos mitades */
body h1.retreat-title { text-wrap: pretty !important; }

/* [18oct] aloha-popup-fechas: fecha en una línea y "Ver más fechas" debajo; quita scroll horizontal del popup */
body #aloha-dates-popup#aloha-dates-popup .aloha-toggle-top-row { flex-wrap: wrap !important; row-gap: 6px; justify-content: flex-start !important; }
body #aloha-dates-popup#aloha-dates-popup .aloha-toggle-left { flex: 1 1 100% !important; justify-content: flex-start !important; gap: 10px; }
body #aloha-dates-popup#aloha-dates-popup .aloha-toggle-sel-text { text-align: left !important; white-space: nowrap; font-size: 17px !important; }
body #aloha-dates-popup#aloha-dates-popup .aloha-toggle-action { flex: 0 0 auto; margin-left: 28px !important; font-size: 14px !important; }
body #aloha-dates-popup#aloha-dates-popup #aloha-mobile-calendar-slot > .row { margin-left: 0 !important; margin-right: 0 !important; }
body #aloha-dates-popup#aloha-dates-popup #aloha-mobile-calendar-slot > .row > .col-12 { padding-left: 0 !important; padding-right: 0 !important; }