/* Lora (Cyreal, licencia SIL Open Font; subconjunto latino, variable 400–700) para títulos de temporadas */
@font-face{font-family:"Lora";src:url(../fonts/lora.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}
/* Tipografía artística de la marca (archivo Zaloga, de Youthlabs Studio), incrustada en el archivo */
@font-face{font-family:"Elegant";src:url(../fonts/elegant.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
/* =========================================================
   VARIABLES — ajustar a los colores de la marca
   ========================================================= */
:root{
  /* Color */
  --ru-ink:#2a1a22;            /* texto principal */
  --ru-primary:#965871;        /* color de la marca */
  /* Retícula: margen exterior de página y separaciones. Todo el contenido se alinea a --ru-page
     (48 px en ordenador, 16 px en móvil; en pantallas muy anchas, columna centrada de 1520 px) */
  --ru-gut:clamp(16px,4vw,48px);
  --ru-page:max(var(--ru-gut), calc((100vw - 1520px) / 2));
  --ru-gap:8px;                /* entre piezas de un mismo grupo (campos y botones del buscador) */
  --ru-gap-lg:16px;            /* entre grupos (tarjeta ⇄ buscador) */
  --ru-feat-nav:50px;          /* flechas de la tarjeta destacada (44 px + 6 px) */
  --ru-accent:#965871;
  --ru-primary-dark:#6e3d52;   /* relleno al pasar el ratón */
  --ru-text-accent:#875871;    /* tipografías malva oscuras (títulos de programa, países, precios, fechas…) */
  --ru-muted:#6f5864;          /* etiquetas y textos secundarios (7:1 sobre blanco) */
  --ru-faint:#7d6873;          /* textos de ejemplo (5:1 sobre blanco) */
  --ru-disabled:#b8a9b0;       /* opciones sin viajes */
  --ru-tint:rgba(150,88,113,.08);   /* fondo de opciones */
  --ru-tint-2:rgba(150,88,113,.16); /* fondo de opciones al pasar el ratón */
  --ru-sand:#f7f1f4;
  --ru-white:#ffffff;
  --ru-ivory:#fbf7ee;  /* fondo blanco marfil de la sección Mejores Rutas */
  --ru-glass-strong:#ffffff;
  /* Forma y movimiento */
  --ru-radius:18px;
  --ru-ease:cubic-bezier(.22,1,.36,1);   /* suave, "ease-out-quint" */
  /* Tipografía: una sola familia */
  /* Tipografía artística de la marca para títulos: "Elegant" (Zaloga, incrustada arriba) */
  --ru-font-display:"Elegant", Georgia, serif;
  --ru-font-country:"Lora", Georgia, serif;   /* países, programas y títulos de tarjetas: Lora */
  --ru-country-w:600;
  --ru-font-title:"DM Sans", system-ui, sans-serif;
  --ru-font-body:"DM Sans", system-ui, sans-serif;
  --ru-text-xs:.8125rem;       /* 13px: lo más pequeño que se lee */
  /* Espaciado */
  --ru-pb:clamp(64px,13vh,130px);       /* espacio bajo la barra de búsqueda */
  --ru-slide-time:7000;                 /* ms por diapositiva (lo lee el JS) */
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--ru-font-body);color:var(--ru-ink);background:var(--ru-sand);-webkit-font-smoothing:antialiased}
/* Superficies del navegador con los colores de la marca */
::selection{background:var(--ru-primary);color:var(--ru-white)}
:focus-visible{outline:3px solid var(--ru-primary);outline-offset:3px}
.ru-panel{scrollbar-width:thin;scrollbar-color:var(--ru-tint-2) transparent}

/* =========================================================
   CABECERA — sobre el banner con el logo grande. Al bajar, reaparece como barra fija
   (clase .is-stuck, más abajo)
   ========================================================= */
.ru-header{
  /* La cabecera se queda en el banner y se va con el scroll: con el logo grande,
     una cabecera fija taparía media pantalla */
  position:absolute;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--ru-page);
}
/* Logo responsive: mismo diseño y proporción, tamaño según la pantalla */
.ru-header{align-items:flex-start}
/* la caja de la cabecera es transparente al tacto: deslizar sobre la foto del banner pasa de diapositiva; logo y botones siguen activos */
.ru-header:not(.is-stuck){pointer-events:none}
.ru-header:not(.is-stuck) > *{pointer-events:auto}
.ru-header img{
  /* Escala con la pantalla manteniendo la proporción original (1080 × 470):
     40 % del ancho, mínimo 200 px, y nunca más alto que el 32 % de la pantalla */
  width:clamp(200px, 40vw, 1080px);
  /* nunca más alto que el 32 % de la pantalla, ni tan ancho que llegue a los botones de la derecha */
  max-width:min(calc(32svh * 1080 / 470), calc(100vw - 2 * var(--ru-page) - 2 * var(--ru-menu-size) - 28px));
  height:auto;display:block;
}
.ru-header > a:first-child{border-radius:50%}
/* Ordenador: logo más grande (46 % del ancho, hasta el 40 % del alto de la pantalla) */
@media (min-width:1101px){
  .ru-header img{
    width:clamp(200px, 46vw, 1180px);
    max-width:min(calc(40svh * 1080 / 470), calc(100vw - 2 * var(--ru-page) - 2 * var(--ru-menu-size) - 28px));
  }
}
/* =========================================================
   MENÚ — adaptado del menú original de la web: botón redondo que despliega
   accesos circulares con su nombre a la izquierda
   ========================================================= */
.ru-header{--ru-menu-size:60px}
.ru-header__actions{display:flex;align-items:center;gap:12px}
.ru-menu{position:relative;display:flex;flex-direction:column;align-items:flex-end}
/* Mi Ruta (perfil): círculo malva con la maleta. Al pasar el ratón (o con el teclado) se
   alarga hacia la izquierda y muestra su nombre; sin la etiqueta flotante del navegador */
.ru-account{
  height:var(--ru-menu-size);min-width:var(--ru-menu-size);border-radius:999px;flex:none;
  display:flex;align-items:center;justify-content:flex-end;overflow:hidden;
  background:var(--ru-primary);color:var(--ru-white);text-decoration:none;font-weight:700;
  animation:ru-rise .9s var(--ru-ease) backwards;
  transition:background .3s var(--ru-ease), transform .3s var(--ru-ease);
}
.ru-account__icon{flex:none;width:var(--ru-menu-size);height:var(--ru-menu-size);display:grid;place-items:center}
.ru-account__text{
  order:-1;white-space:nowrap;max-width:0;opacity:0;padding-left:0;
  transition:max-width .45s var(--ru-ease), opacity .3s var(--ru-ease), padding .45s var(--ru-ease);
}
/* solo con sitio de sobra: en móvil queda siempre como círculo (no se sale de la cabecera) */
@media (hover:hover) and (min-width:641px){
  .ru-account:hover .ru-account__text{max-width:9em;opacity:1;padding-left:20px}
}
@media (min-width:641px){
  .ru-account:focus-visible .ru-account__text{max-width:9em;opacity:1;padding-left:20px}
}
.ru-account:hover{background:var(--ru-primary-dark)}
.ru-account:active{transform:scale(.97)}
.ru-account:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px}
.ru-menu__toggle{
  position:relative;z-index:2;width:var(--ru-menu-size);height:var(--ru-menu-size);border:0;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;background:var(--ru-white);color:var(--ru-primary);
  transition:background .3s var(--ru-ease), color .3s var(--ru-ease), transform .3s var(--ru-ease);
}
.ru-menu__toggle:hover{background:var(--ru-primary);color:var(--ru-white);transform:scale(1.05)}
.ru-menu__toggle:active{transform:scale(.95)}
.ru-menu__toggle:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px}
/* Hamburguesa que se convierte en X */
.ru-burger{position:relative;width:22px;height:16px;display:block}
.ru-burger i{position:absolute;left:0;width:100%;height:2.5px;border-radius:4px;background:currentColor;
  transition:transform .45s var(--ru-ease), opacity .25s var(--ru-ease), top .45s var(--ru-ease)}
.ru-burger i:nth-child(1){top:0}
.ru-burger i:nth-child(2){top:6.75px}
.ru-burger i:nth-child(3){top:13.5px}
.ru-menu.is-open .ru-burger i:nth-child(1){top:6.75px;transform:rotate(45deg)}
.ru-menu.is-open .ru-burger i:nth-child(2){opacity:0;transform:scaleX(.2)}
.ru-menu.is-open .ru-burger i:nth-child(3){top:6.75px;transform:rotate(-45deg)}

/* Fondo oscuro que deja leer los nombres sobre cualquier foto (el logo queda por encima) */
.ru-menu__backdrop{
  position:fixed;inset:0;z-index:-2;background:rgba(20,10,16,.7);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ru-ease), visibility 0s .45s;
}
.ru-menu.is-open .ru-menu__backdrop{opacity:1;visibility:visible;transition-delay:0s}

.ru-menu__list{
  position:absolute;top:calc(100% + 14px);right:0;margin:0;padding:0;list-style:none;
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  visibility:hidden;pointer-events:none;transition:visibility 0s .5s;
  overflow:visible;
}
.ru-menu.is-open .ru-menu__list{visibility:visible;pointer-events:auto;transition-delay:0s}
.ru-menu__item{
  display:flex;align-items:center;gap:16px;border:0;background:none;padding:0;cursor:pointer;
  font:inherit;color:var(--ru-white);text-decoration:none;
}
.ru-menu__label{
  font-weight:700;font-size:1.05rem;white-space:nowrap;
  opacity:0;transform:translateX(14px);
  transition:opacity .4s var(--ru-ease), transform .5s var(--ru-ease);
  transition-delay:calc(var(--i,0) * 45ms + 60ms);
}
.ru-menu__icon{
  width:var(--ru-menu-size);height:var(--ru-menu-size);border-radius:50%;flex:none;
  display:grid;place-items:center;background:var(--ru-white);color:var(--ru-primary);
  opacity:0;transform:translateY(-18px) scale(.6);
  transition:opacity .4s var(--ru-ease), transform .5s var(--ru-ease), background .3s var(--ru-ease), color .3s var(--ru-ease);
  transition-delay:calc(var(--i,0) * 45ms), calc(var(--i,0) * 45ms), 0s, 0s;
}
.ru-menu.is-open .ru-menu__label,.ru-menu.is-open .ru-menu__icon{opacity:1;transform:none}
/* Al cerrar, todo se recoge a la vez */
.ru-menu:not(.is-open) .ru-menu__label,.ru-menu:not(.is-open) .ru-menu__icon{transition-delay:0s}
.ru-menu__item:hover .ru-menu__icon{background:var(--ru-primary);color:var(--ru-white);transform:scale(1.08)}
html,body{overflow-x:clip}
.ru-menu__item:active .ru-menu__icon{transform:scale(.94)}
.ru-menu__item:focus-visible{outline:none}
.ru-menu__item:focus-visible .ru-menu__icon{outline:3px solid var(--ru-white);outline-offset:3px}

/* =========================================================
   BARRA FIJA AL HACER SCROLL — adaptación de la barra actual de la web:
   barra malva redondeada con el logo pequeño, Mi Ruta y el menú
   ========================================================= */
.ru-header.is-stuck{
  /* la barra se alinea con la retícula: su contenido empieza y acaba en el margen de página */
  position:fixed;top:12px;left:max(12px, calc(var(--ru-page) - 20px));right:max(12px, calc(var(--ru-page) - 20px));z-index:60;
  align-items:center;padding:10px 20px;
  --ru-menu-size:48px;
  /* backwards: al terminar no deja transformación aplicada (si la dejara, el oscurecido del menú
     quedaría encerrado dentro de la barra en vez de cubrir toda la pantalla) */
  animation:ru-bar-in .55s var(--ru-ease) backwards;
}
/* Fondo de la barra en una capa propia, por encima del oscurecido del menú */
.ru-header.is-stuck::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--ru-radius);
  background:var(--ru-primary);
  box-shadow:0 14px 40px rgba(42,26,34,.28); /* taste-skill-ignore: barra fija flotante */
}
/* La entrada de la cabecera ocurre solo al cargar la página; después se desactiva para que
   ningún elemento la repita al pasar de banner a barra y viceversa */
.ru-header.has-entered > a:first-child,.ru-header.has-entered .ru-account,.ru-header.has-entered .ru-menu__toggle{animation:none}
/* Durante el cambio banner ⇄ barra no hay transiciones internas: logo, fondo, menú y Mi Ruta
   cambian en el mismo instante (solo la barra completa se desliza como un bloque) */
.ru-header.is-switching,.ru-header.is-switching *,.ru-header.is-switching *::before,.ru-header.is-switching *::after{transition:none!important}
@keyframes ru-bar-in{from{transform:translateY(calc(-100% - 24px));opacity:0}to{transform:none;opacity:1}}
.ru-header.is-stuck img{width:auto;height:60px;max-width:none}
/* Mi Ruta sobre la barra malva: blanco translúcido; al pasar el ratón, blanco con texto malva */
.ru-header.is-stuck .ru-account{background:var(--ru-white);color:var(--ru-primary)}
.ru-header.is-stuck .ru-account:hover,.ru-header.is-stuck .ru-account:focus-visible{background:var(--ru-primary-dark);color:var(--ru-white)}
.ru-header.is-stuck .ru-menu__toggle{background:rgba(255,255,255,.16);color:var(--ru-white)}
.ru-header.is-stuck .ru-menu__toggle:hover{background:var(--ru-white);color:var(--ru-primary)}

/* Escritorio (≥ 1280 px): con la barra fija, el menú se abre en línea dentro de la propia barra,
   a la izquierda de Mi Ruta, sin oscurecer la página */
/* Escritorio (≥ 1280 px): en la barra fija el menú está siempre desplegado, en orden
   icono → título, y no hace falta el botón de menú */
@media (min-width:1280px){
  .ru-header.is-stuck .ru-header__actions{position:relative;gap:0}
  .ru-header.is-stuck .ru-menu{position:static}
  .ru-header.is-stuck .ru-menu__toggle,
  .ru-header.is-stuck .ru-menu__backdrop{display:none}
  .ru-header.is-stuck .ru-menu__list{
    top:50%;right:calc(100% + 32px);flex-direction:row;align-items:center;gap:22px;
    transform:translateY(-50%);visibility:visible;pointer-events:auto;
  }
  .ru-header.is-stuck .ru-menu__item{gap:10px}
  .ru-header.is-stuck .ru-menu__icon{order:-1}
  .ru-header.is-stuck .ru-menu__label,
  .ru-header.is-stuck .ru-menu__icon{
    /* visibles desde el primer momento: llegan con la propia barra, sin retraso */
    opacity:1;transform:none;animation:none;
    transition:background .3s var(--ru-ease), color .3s var(--ru-ease), transform .35s var(--ru-ease);
  }
  .ru-header.is-stuck .ru-menu__label{font-weight:500;font-size:1rem}
  .ru-header.is-stuck .ru-menu__icon{width:44px;height:44px;background:rgba(255,255,255,.16);color:var(--ru-white)}
  .ru-header.is-stuck .ru-menu__icon svg{width:20px;height:20px}
  .ru-header.is-stuck .ru-menu__item:hover .ru-menu__icon{background:var(--ru-white);color:var(--ru-primary);transform:scale(1.08)}
  /* Mi Ruta, diferenciado solo por el color (botón blanco), icono → título */
  /* mismo alto, icono y tamaño de texto que las opciones del menú (44 px, icono de 20 px, texto de 16 px) */
  .ru-header.is-stuck .ru-account{height:44px;min-width:44px}
  .ru-header.is-stuck .ru-account__icon{width:44px;height:44px}
  .ru-header.is-stuck .ru-account__icon svg{width:20px;height:20px}
  .ru-header.is-stuck .ru-account .ru-account__text{order:0;max-width:9em;opacity:1;padding:0 18px 0 0;font-size:1rem;font-weight:600;transition:none}
}

/* =========================================================
   BANNER
   ========================================================= */
.ru-hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:var(--ru-white);isolation:isolate}
.ru-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity 1.4s var(--ru-ease);
}
.ru-slide.is-active{opacity:1}
.ru-slide video,.ru-slide img{width:100%;height:100%;object-fit:cover;display:block}
/* Efecto Ken Burns: zoom lento mientras la diapositiva está activa */
/* La que sale (.is-leaving) sigue con su zoom mientras se funde: si se cortara, la foto saltaría a su tamaño final (27/10, comentario de Alberto: «salto extraño») */
.ru-slide:is(.is-active,.is-leaving) img,.ru-slide:is(.is-active,.is-leaving) video{animation:ru-kenburns calc(var(--ru-slide-time) * 1ms + 2s) linear forwards}
@keyframes ru-kenburns{from{transform:scale(1.16)}to{transform:scale(1)}}  /* zoom out suave, sin sobreescalar */
/* Parallax de la foto de las cabeceras (común: Home, Zonas, Países, Crea tu ruta y Contacto).
   La foto baja más despacio que la página; --ru-par lo fija assets/js/ru-parallax.js.
   Se usa «translate» y no «transform» para no pisar los zoom de entrada (Ken Burns, ct-zoom, zn-hero__img). */
.ru-slide,.ct-hero__img,.zn-hero__slides{translate:0 var(--ru-par,0px);will-change:translate}
/* fondos de foto de sección («Nuestras rutas destacadas por…» de zonas y países): la capa crece arriba y abajo (--ru-par-ext) para cubrir el recorrido */
.zn-routes .zn-routes__bg{inset:calc(-1 * var(--ru-par-ext,0px)) 0;translate:0 var(--ru-par,0px);will-change:translate}
/* Velo neutro sobre la foto para que el buscador y la tarjeta se lean (taste-skill-ignore: única excepción permitida) */
.ru-hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 28%), /* taste-skill-ignore */
    linear-gradient(0deg,rgba(34,18,27,.78) 0%,rgba(34,18,27,.15) 55%,rgba(0,0,0,0) 100%); /* taste-skill-ignore */
}

.ru-hero__content{
  position:absolute;z-index:2;inset:auto 0 0 0;
  padding:0 var(--ru-page) var(--ru-pb);
}
.ru-fade{animation:ru-rise .9s var(--ru-ease) backwards;animation-delay:var(--d,0s)}
@keyframes ru-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* Entrada escalonada: logo, Mi Ruta, menú, campos, botones, tarjeta, indicadores */
/* Cabecera: logo, Mi Ruta y botón de menú entran a la vez */
.ru-header > a:first-child,.ru-menu__toggle{animation:ru-rise .9s var(--ru-ease) backwards}
.ru-search > *{animation:ru-rise .8s var(--ru-ease) backwards}
.ru-search > :nth-child(1){animation-delay:.3s}
.ru-search > :nth-child(2){animation-delay:.38s}
.ru-search > :nth-child(3){animation-delay:.46s}
.ru-search > :nth-child(4){animation-delay:.54s}
.ru-dots{animation:ru-rise .8s var(--ru-ease) .8s backwards}

/* Indicadores de diapositiva con barra de progreso */
/* barras de tiempo del banner: entre las dos flechas de la ruta destacada (flecha · barras · flecha) */
.ru-dots{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0}
.ru-dot{
  width:3px;height:30px;border:0;padding:0;border-radius:3px;cursor:pointer;
  background:rgba(255,255,255,.3);position:relative;overflow:hidden;
}
.ru-dot::after{content:"";position:absolute;inset:0;background:var(--ru-white);transform:scaleY(0);transform-origin:top}
.ru-dot.is-active::after{animation:ru-progress calc(var(--ru-slide-time) * 1ms) linear forwards}
.ru-hero.is-paused .ru-dot.is-active::after{animation-play-state:paused}
@keyframes ru-progress{to{transform:scaleY(1)}}

/* =========================================================
   BUSCADOR
   ========================================================= */
.ru-search{
  position:relative;   /* los paneles se alinean con la barra completa */
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:var(--ru-gap);
  /* ancho máximo: nunca llega hasta la tarjeta de ruta destacada */
  /* llega hasta la tarjeta dejando 32 px: buscador y tarjeta ocupan juntos todo el ancho de la retícula */
  max-width:calc(100vw - 2 * var(--ru-page) - var(--ru-feat-nav) - 420px - 32px);
  padding:0;
}
.ru-field{position:static;min-width:0}
.ru-field__btn > span:last-child{min-width:0}
.ru-field__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ru-field__btn{
  width:100%;text-align:left;cursor:pointer;
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;border:0;border-radius:var(--ru-radius);
  background:var(--ru-white);color:var(--ru-ink);font:inherit;min-height:68px;
  transition:transform .35s var(--ru-ease), background .35s var(--ru-ease);
}
.ru-field__btn:hover{transform:translateY(-2px);background:#fbf6f8}
.ru-field__btn:active{transform:scale(.985)}
.ru-field__btn:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px}
.ru-field__icon{
  flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:var(--ru-tint-2);color:var(--ru-primary);
  transition:transform .4s var(--ru-ease), background .3s;
}
.ru-field__btn[aria-expanded="true"] .ru-field__icon{transform:rotate(-8deg) scale(1.08);background:var(--ru-primary);color:var(--ru-white)}
.ru-field__label{display:block;font-size:var(--ru-text-xs);font-weight:500;color:var(--ru-muted)}
.ru-field__value{display:block;font-weight:700;font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* varias opciones: el texto se corta con "..." y el número total queda siempre visible al final */
.ru-field__value.has-count{display:flex;min-width:0}
.ru-field__txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ru-field__n{flex:none;margin-left:.25em}
.ru-field__value.is-placeholder{font-weight:500;color:var(--ru-faint)}
.ru-field__value.is-changed{animation:ru-pop .45s var(--ru-ease)}
@keyframes ru-pop{0%{transform:translateY(8px);opacity:0}100%{transform:none;opacity:1}}

/* Panel desplegable animado */
.ru-panel{
  position:absolute;left:0;bottom:calc(100% + 12px);min-width:100%;width:max-content;max-width:min(92vw,420px);
  padding:16px;border-radius:var(--ru-radius);background:var(--ru-white);color:var(--ru-ink);
  box-shadow:0 24px 60px rgba(0,0,0,.28); /* taste-skill-ignore: menú flotante, sombra legítima */
  opacity:0;visibility:hidden;transform:translateY(12px) scale(.97);transform-origin:bottom left;
  transition:opacity .3s var(--ru-ease), transform .4s var(--ru-ease), visibility 0s .4s;
  z-index:10;
}
.ru-panel{max-height:calc(100svh - 140px);overflow-y:auto;overscroll-behavior:contain}
.ru-panel.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
/* "Borrar selección": enlace sencillo en posición fija, que no ocupa espacio:
   en ordenador, flotando arriba a la derecha del desplegable (a la altura de los títulos);
   en tablet y móvil, en el pie fijo de la hoja, centrado sobre "Listo" */
.ru-clear{position:absolute;top:12px;right:12px;z-index:2;margin:0;padding:4px 6px;border:0;background:none;cursor:pointer;white-space:nowrap;
  font:inherit;font-size:var(--ru-text-xs);font-weight:600;color:var(--ru-text-accent);text-decoration:underline;text-underline-offset:3px;
  transition:opacity .25s var(--ru-ease), color .25s var(--ru-ease)}
.ru-clear:hover{color:var(--ru-primary-dark)}
.ru-clear[hidden]{display:block;visibility:hidden;opacity:0}
.ru-clear--sheet{display:none}
.ru-clear:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px;border-radius:4px}
.ru-panel__title{font-size:var(--ru-text-xs);font-weight:700;color:var(--ru-muted);margin:4px 4px 10px}
.ru-options{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.ru-options--grid{display:grid;grid-template-columns:repeat(3,1fr)}
/* Los desplegables ocupan exactamente el ancho de la barra de búsqueda */
.ru-panel,.ru-panel--dest,#ruPanelFecha{left:0;right:0;width:auto;min-width:0;max-width:none;transform-origin:bottom center}
/* Mes sin viajes: atenuado (sin tachar), sin hover y sin clic */
.ru-option:disabled,.ru-option:disabled:hover{
  color:var(--ru-disabled);background:rgba(42,26,34,.035);
  cursor:not-allowed;
}
.ru-panel.is-open .ru-option:disabled{opacity:.7}
.ru-panel--dest{
  /* Dos columnas: destinos (filtro) a la izquierda y países a la derecha */
  display:grid;grid-template-columns:172px 1fr;gap:0 28px;
}
.ru-continents{flex-direction:column;flex-wrap:nowrap}
.ru-continents{gap:6px}
.ru-continents .ru-option{width:100%;text-align:left;padding:8px 12px}
.ru-panel--dest{padding:14px 16px}
.ru-panel--dest .ru-panel__title{margin:2px 4px 8px}
/* Países como etiquetas de ancho automático: ocupan solo lo que mide su nombre */
.ru-options--countries{display:flex;flex-wrap:wrap;gap:8px;min-height:44px}
.ru-options--countries{gap:6px}
.ru-options--countries .ru-option{width:auto;white-space:nowrap;padding:5px 10px;font-size:.875rem}
.ru-filter-hint{font-weight:500;color:var(--ru-faint)}
.ru-options li[hidden]{display:none}
/* Fechas: temporadas a la izquierda y meses a la derecha, en dos filas de seis */
#ruPanelFecha{display:grid;grid-template-columns:minmax(0,300px) 1fr;grid-template-rows:auto 1fr;gap:0 28px;align-content:start}
#ruPanelFecha > .ru-panel__title:first-child{grid-column:1;grid-row:1}
#ruPanelFecha > .ru-tabs{grid-column:1;grid-row:2;align-content:flex-start;margin-bottom:0}
#ruPanelFecha > .ru-divider{display:none}
#ruPanelFecha > #ruMonthsTitle{grid-column:2;grid-row:1;margin-left:0}
#ruPanelFecha > #ruMonths{grid-column:2;grid-row:2;grid-template-columns:repeat(4,1fr);align-content:start}
@media (min-width:1101px){ #ruPanelFecha > #ruMonths{grid-template-columns:repeat(6,1fr)} }
/* Portátiles con poca altura: etiquetas de país más compactas para que se vean todas */
@media (min-width:761px) and (max-height:800px){
  .ru-options--countries{gap:4px}
  .ru-options--countries .ru-option{padding:4px 9px;font-size:var(--ru-text-xs)}
  .ru-continents{gap:4px}
  .ru-continents .ru-option{padding:6px 10px;font-size:.875rem}
  .ru-panel--dest,#ruPanelFecha{padding:12px 14px}
  .ru-panel--dest .ru-panel__title,#ruPanelFecha .ru-panel__title{margin:0 4px 6px}
  #ruMonths .ru-option{padding:7px 8px}
}
.ru-option{
  border:0;background:var(--ru-tint);font:inherit;color:inherit;cursor:pointer;
  padding:10px 14px;border-radius:12px;width:100%;
  opacity:0;transform:translateY(8px);
  transition:background .25s, color .25s, opacity .4s var(--ru-ease), transform .4s var(--ru-ease);
  transition-delay:0s, 0s, calc(var(--i,0) * 25ms), calc(var(--i,0) * 25ms);  /* el escalonado solo en la entrada; el color responde al instante */
}
.ru-panel.is-open .ru-option,.ru-panel.is-open .ru-option.is-in{opacity:1;transform:none}
.ru-option:not(:disabled):hover{background:var(--ru-tint-2);color:var(--ru-text-accent)}
.ru-option:not(:disabled):active{transform:scale(.96)}
.ru-option[aria-pressed="true"],.ru-option[aria-pressed="true"]:hover{background:var(--ru-primary);color:var(--ru-white)}
.ru-option:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
.ru-tabs{display:flex;gap:6px;margin-bottom:12px}
.ru-divider{height:0;margin:10px 0}

/* Cabecera y pie de los desplegables en formato hoja (solo tablet y móvil) */
.ru-sheet-head,.ru-sheet-foot,.ru-backdrop{display:none}

/* Botón de búsqueda: al pasar el ratón, un tono más oscuro lo rellena de izquierda a derecha
   y la flecha sale por la derecha y vuelve a entrar */
.ru-submit{
  position:relative;overflow:hidden;border:0;cursor:pointer;isolation:isolate;
  display:flex;align-items:center;gap:10px;padding:0 38px;border-radius:var(--ru-radius);
  background:var(--ru-accent);color:var(--ru-white);font:inherit;font-weight:700;font-size:1.06rem;
}
.ru-submit::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--ru-primary-dark);
  clip-path:inset(0 100% 0 0);transition:clip-path .5s var(--ru-ease);
}
.ru-submit:hover::before,.ru-submit:focus-visible::before{clip-path:inset(0 0 0 0)}
.ru-submit svg{overflow:visible}
.ru-submit:hover svg{animation:ru-arrow .6s var(--ru-ease)}
@keyframes ru-arrow{0%{transform:none}45%{transform:translateX(24px);opacity:0}46%{transform:translateX(-18px);opacity:0}100%{transform:none;opacity:1}}
.ru-submit:active{transform:scale(.97)}
/* Buscar e Inspiración, mismo tamaño en la barra */
.ru-search > .ru-submit{min-width:196px;justify-content:center}
a.ru-submit{text-decoration:none;white-space:nowrap}
/* Inspiración: mismo tamaño que Buscar, pero transparente con un leve desenfoque:
   Buscar es la acción principal (color sólido) e Inspiración la secundaria */
.ru-submit--alt{
  background:rgba(255,255,255,.14);color:var(--ru-white);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px); /* taste-skill-ignore: decisión del cliente */
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); /* taste-skill-ignore: contorno del botón translúcido */
  transition:color .3s var(--ru-ease);
}
.ru-submit--alt::before{background:rgba(255,255,255,.18)}
.ru-submit--alt:hover svg{animation:ru-twinkle .7s var(--ru-ease)}
.ru-submit:focus-visible{outline:3px solid var(--ru-white);outline-offset:2px}

/* Ruta destacada: tarjeta blanca con miniatura (diseño original), con la etiqueta fuera, encima
   de la tarjeta; dentro, destino, programa, fechas, duración y precio. Cambia con la diapositiva activa
   (datos en cada .ru-slide) */
/* contenedor: coloca la tarjeta y sus flechas sobre el banner */
/* el borde exterior de las flechas cae en el margen de página; la tarjeta, justo a su izquierda */
.ru-featured{position:absolute;z-index:3;right:calc(var(--ru-page) + var(--ru-feat-nav));bottom:var(--ru-pb);width:420px;--d:.7s}
/* mientras hay un desplegable del buscador abierto, la tarjeta sigue visible: el buscador pasa
   por encima de ella para que el desplegable no quede tapado */
@media (min-width:1101px){ .ru-hero:has(.ru-panel.is-open) .ru-hero__content{z-index:4} }  /* en tablet y móvil manda la hoja inferior (z-index 100) */
.ru-offer{
  position:relative;
  display:flex;gap:16px;align-items:stretch;width:100%;min-height:var(--offer-h,140px);box-sizing:border-box;
  padding:10px;border-radius:var(--ru-radius);cursor:pointer;
  background:var(--ru-white);color:var(--ru-ink);text-decoration:none;
  --d:.7s;
  transition:transform .45s var(--ru-ease), box-shadow .45s var(--ru-ease);
}
/* Flechas para pasar de ruta: chevrones como los del carrusel, fuera de la tarjeta, a su derecha
   (en tablet y móvil, a la derecha de la etiqueta) */
.ru-featured__nav{position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}
.ru-featured__arrow{
  width:44px;height:44px;padding:0;border:0;border-radius:10px;cursor:pointer;display:grid;place-items:center;
  background:none;color:var(--ru-white);filter:drop-shadow(0 1px 6px rgba(0,0,0,.45)); /* taste-skill-ignore: legibilidad sobre foto */
  transition:opacity .3s var(--ru-ease);
}
.ru-featured__arrow:hover{opacity:.8}
.ru-featured__arrow:focus-visible{outline:2px solid var(--ru-white);outline-offset:2px}
.ru-featured__arrow svg{transition:transform .4s var(--ru-ease)}
/* portátil y ordenador: flechas en vertical (arriba = anterior, abajo = siguiente) */
.ru-featured__arrow--prev svg{transform:rotate(90deg)}
.ru-featured__arrow--next svg{transform:rotate(90deg)}
.ru-featured__arrow--prev:hover svg{transform:rotate(90deg) translateX(-4px)}
.ru-featured__arrow--next:hover svg{transform:rotate(90deg) translateX(4px)}
@media (max-width:1479px){
  /* portátil pequeño, tablet y móvil: en fila a la derecha de la etiqueta, algo separadas */
  .ru-featured__nav{left:auto;right:-6px;top:auto;bottom:calc(100% - 2px);transform:none;flex-direction:row;gap:6px}
  /* en horizontal: barras tumbadas entre ‹ y › */
  .ru-dots{flex-direction:row;padding:0 4px;gap:6px}
  .ru-dot{width:24px;height:3px}
  .ru-dot::after{transform:scaleX(0);transform-origin:left}
  .ru-dot.is-active::after{animation-name:ru-progress-x}
  @keyframes ru-progress-x{to{transform:scaleX(1)}}
  .ru-featured__arrow{width:40px;height:40px}
  .ru-featured__arrow--prev svg,.ru-featured__arrow--next svg{transform:none}
  .ru-featured__arrow--prev:hover svg{transform:translateX(-4px)}
  .ru-featured__arrow--next:hover svg{transform:translateX(4px)}
}
/* Sombra solo mientras se levanta (en reposo no lleva) */
.ru-offer:hover{--ru-lift:-6px;box-shadow:0 24px 50px rgba(0,0,0,.3)} /* taste-skill-ignore: sombra solo al levantarse */
/* Animación al pasar el ratón (25/10, elegida por Alberto: sin giro, que emborronaba el texto, y sin zoom en la foto).
   La tarjeta sube con «top» (el texto no se transforma y queda nítido) y gana la sombra */
@property --ru-lift{syntax:'<length>';inherits:false;initial-value:0px}
.ru-offer{transform:none;top:var(--ru-lift);transition:--ru-lift .5s var(--ru-ease), box-shadow .5s var(--ru-ease)}
.ru-offer:active{--ru-lift:-2px}
.ru-offer:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px}
.ru-offer__img{width:112px;flex:none;align-self:stretch;height:auto;min-height:0;object-fit:cover;border-radius:12px} /* ocupa todo el alto de la tarjeta */
.ru-offer__text{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:4px 4px 2px 0}
/* etiqueta fuera de la tarjeta: asoma por encima, alineada a la izquierda */
.ru-offer__tag{
  position:absolute;left:0;bottom:calc(100% + 8px);padding:6px 12px;border-radius:999px;
  background:var(--ru-primary);color:var(--ru-white);
  font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;white-space:nowrap;
  transition:opacity .35s var(--ru-ease),transform .45s var(--ru-ease);
}
.ru-offer.is-swapping .ru-offer__tag{opacity:0;transform:translateY(6px)}
.ru-offer__tag[hidden]{display:none}
.ru-offer__dest{margin:0;font-size:.6875rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-primary);line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ru-offer__title{
  display:block;margin:3px 0 0;font-weight:700;font-size:1.06rem;line-height:1.25;letter-spacing:-.01em;
  color:var(--ru-text-accent);text-wrap:balance;
}
.ru-offer__meta{margin:2px 0 0;font-size:.8125rem;line-height:1.45;color:var(--ru-muted)}
.ru-offer__meta span{display:block}
.ru-offer__meta span[hidden]{display:none}
/* fechas: con icono de calendario y en tinta; duración: en cursiva y más suave */
#ruOfferDates{display:flex;align-items:center;gap:6px;margin-top:7px;color:var(--ru-ink);font-weight:500;white-space:nowrap} /* siempre en una línea */
#ruOfferDates::before{content:"";flex:none;width:13px;height:13px;background:var(--ru-primary);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E") center/contain no-repeat}
#ruOfferDur{font-style:italic;color:var(--ru-muted)}
.ru-offer__foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:10px}
.ru-offer__price{margin:0;font-size:.6875rem;color:var(--ru-muted);white-space:nowrap}
.ru-offer__price b{margin-left:4px;font-size:1.125rem;font-weight:700;color:var(--ru-text-accent);font-variant-numeric:tabular-nums}
.ru-offer__price small{font-size:inherit}
.ru-offer__price small[hidden]{display:none}
.ru-offer__cta{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:700;color:var(--ru-primary);white-space:nowrap}
.ru-offer__cta svg{transition:transform .35s var(--ru-ease)}
.ru-offer:hover .ru-offer__cta svg{transform:translateX(5px)}
.ru-offer:hover .ru-offer__cta:not(:has(.ru-ulink)){text-decoration:underline;text-underline-offset:3px}
/* Cambio de ruta: el texto y la miniatura salen y entran */
.ru-offer__text,.ru-offer__img{transition:opacity .35s var(--ru-ease),transform .45s var(--ru-ease)}
.ru-offer.is-swapping .ru-offer__text{opacity:0;transform:translateY(10px)}
.ru-offer.is-swapping .ru-offer__img{opacity:0;transform:scale(.92)}

/* Móviles muy estrechos: miniatura más pequeña para que precio y "Ver viaje" quepan en una línea */
@media (max-width:360px){
  body .ru-offer{gap:12px;padding:10px}
  body .ru-offer__img{width:64px}
  .ru-offer__cta{font-size:.8125rem;gap:4px}
  body .ru-offer__foot{gap:6px}
  body .ru-offer__price b{font-size:1rem;margin-left:3px}
}
/* Móviles muy estrechos: la navegación del banner más compacta para no tocar la etiqueta */
@media (max-width:360px){
  .ru-featured__nav{gap:2px}
  .ru-featured__arrow{width:34px;height:40px}
  .ru-dots{gap:4px}
  .ru-dot{width:12px}
}
/* Móviles estrechos: las fechas siempre caben en una línea */
@media (max-width:400px){
  body .ru-offer__img{width:84px}
  #ruOfferDates{font-size:.74rem;gap:5px}
}
@media (max-width:340px){
  body .ru-offer__img{width:60px}
  #ruOfferDates{font-size:.7rem}
}
/* Tablet y móvil: ruta destacada muy compacta (país, nombre y "Ver viaje"); pulsarla abre el viaje */
.ru-offer__more{display:none}
@media (max-width:1100px){
  .ru-offer__more{display:inline-flex;align-items:center;gap:6px;flex:none;align-self:center;padding:8px 2px 8px 10px;
    font-size:.8125rem;font-weight:700;color:var(--ru-primary);white-space:nowrap}
  .ru-offer__more svg{transition:transform .35s var(--ru-ease)}
  .ru-offer:hover .ru-offer__more svg{transform:translateX(4px)}
  .ru-featured:not(.is-open) .ru-offer{min-height:0;padding:12px 14px 12px 18px;align-items:center;gap:12px}
  .ru-featured:not(.is-open) .ru-offer__img,
  .ru-featured:not(.is-open) .ru-offer__meta,
  .ru-featured:not(.is-open) .ru-offer__foot{display:none}
  .ru-featured:not(.is-open) .ru-offer__text{padding:0}
  .ru-featured:not(.is-open) .ru-offer__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}
  .ru-featured:not(.is-open) .ru-offer:hover{transform:none;box-shadow:none;--ru-lift:0px}
  /* desplegada: "Menos info" arriba a la derecha */
  .ru-featured.is-open .ru-offer__more{position:absolute;top:8px;right:12px}
  .ru-featured.is-open .ru-offer__more svg{transform:rotate(180deg)}
  .ru-featured.is-open .ru-offer__dest{padding-right:96px}
  .ru-featured.is-open .ru-offer{animation:ru-offer-open .45s var(--ru-ease)}
  @keyframes ru-offer-open{from{opacity:.6;transform:translateY(8px)}}
}
/* Solo para buscadores y lectores de pantalla */
.ru-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}


/* =========================================================
   RESPONSIVE
   ========================================================= */
/* Hasta 1479 px la tarjeta no cabe a la derecha de la barra: se coloca como en tablet, justo encima
   de la barra y alineada a la derecha, y la barra recupera todo su ancho. Desde 1480 px pasa a la
   derecha de la barra. (Los desplegables, que se abren hacia arriba, quedan por encima de la tarjeta) */
@media (max-width:1479px) and (min-width:1101px){
  .ru-search{max-width:none}  /* a todo el ancho: su borde derecho coincide con el de la tarjeta */
  .ru-featured{right:var(--ru-page);bottom:calc(var(--ru-pb) + var(--bar-h,68px) + var(--ru-gap-lg));transition:bottom .45s var(--ru-ease)}
  /* con un desplegable abierto, la tarjeta sube y se queda justo encima de él (alto en --ru-panel-h) */
  .ru-hero:has(.ru-panel.is-open) .ru-featured{bottom:calc(var(--ru-pb) + var(--bar-h,68px) + 12px + var(--ru-panel-h,0px) + var(--ru-gap-lg))}
}
/* ---------- TABLET Y MÓVIL (≤ 1100 px) ----------
   - Los desplegables se abren como una hoja que sube desde abajo, a pantalla casi completa.
   - La tarjeta de ruta destacada se coloca justo encima de la barra de búsqueda.
   - El carrusel se puede deslizar con el dedo. */
@media (max-width:1100px){
  .ru-hero{isolation:auto}
  .ru-hero__content{will-change:auto}
  .ru-search{max-width:none}

  /* Tarjeta encima de la barra (la altura de la barra la calcula el script en --bar-h) */
  .ru-featured{top:auto;right:var(--ru-page);bottom:calc(var(--ru-pb) + var(--bar-h,96px) + var(--ru-gap-lg))}

  /* Hojas inferiores */
  .ru-panel,.ru-panel--dest,#ruPanelFecha{
    position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;min-width:0;
    max-height:min(86svh,760px);overflow-y:auto;overscroll-behavior:contain;
    display:block;padding:0 20px;
    border-radius:24px 24px 0 0;box-shadow:0 -24px 60px rgba(0,0,0,.35); /* taste-skill-ignore: hoja flotante */
    opacity:1;transform:translateY(105%);transform-origin:bottom center;
    transition:transform .5s var(--ru-ease), visibility 0s .5s;z-index:100;
  }
  .ru-panel.is-open,#ruPanelFecha.is-open{transform:none;transition-delay:0s}
  body.ru-sheet-open .ru-hero__content{z-index:100}
  .ru-backdrop{
    display:block;position:fixed;inset:0;z-index:90;background:rgba(20,10,16,.5);
    opacity:0;visibility:hidden;transition:opacity .4s var(--ru-ease), visibility 0s .4s;
  }
  body.ru-sheet-open .ru-backdrop{opacity:1;visibility:visible;transition-delay:0s}

  .ru-sheet-head{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    position:sticky;top:0;z-index:2;margin:0 -20px 10px;padding:22px 20px 12px;
    background:var(--ru-white);
  }
  .ru-sheet-head::before{ /* asa para indicar que es una hoja */
    content:"";position:absolute;top:8px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:4px;background:rgba(42,26,34,.18);
  }
  .ru-sheet-head strong{font-size:1.25rem;letter-spacing:-.01em;color:var(--ru-text-accent)}
  .ru-sheet-close{
    width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
    background:var(--ru-tint-2);color:var(--ru-primary);transition:background .3s var(--ru-ease), color .3s var(--ru-ease);
  }
  .ru-sheet-close:hover{background:var(--ru-primary);color:var(--ru-white)}
  .ru-sheet-foot{
    display:block;position:sticky;bottom:0;z-index:2;
    margin:16px -20px 0;padding:12px 20px calc(14px + env(safe-area-inset-bottom));
    background:var(--ru-white);
  }
  .ru-sheet-foot .ru-submit{width:100%;justify-content:center;padding:15px}
  .ru-panel > .ru-clear{display:none}
  .ru-sheet-foot{position:sticky}
  .ru-clear--sheet{display:block;position:static;margin:0 auto 12px}  /* mismo aire arriba (padding del pie) y abajo */
  .ru-clear--sheet[hidden]{display:block}

  /* Contenido de las hojas apilado */
  .ru-dest__col + .ru-dest__col{margin-top:22px}
  .ru-continents{flex-direction:row;flex-wrap:wrap}
  .ru-continents .ru-option{width:auto;padding:10px 16px}
  .ru-options--countries{gap:8px}
  .ru-options--countries .ru-option{padding:10px 14px;font-size:1rem}
  #ruPanelFecha > .ru-divider{display:block}
  /* Meses: tantas columnas como quepan sin cortar ningún nombre (2 en móviles estrechos, 3–4 en el resto) */
  #ruPanelFecha > #ruMonths{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
  #ruMonths .ru-option{padding:10px 6px;white-space:nowrap}
  #ruPanelFecha > .ru-tabs{margin-bottom:12px}
  .ru-option{min-height:44px}   /* tamaño cómodo para el dedo */
}

/* Tablet vertical: barra en dos filas (campos arriba, botones abajo) */
@media (max-width:900px){
  .ru-search{grid-template-columns:1fr 1fr}
  .ru-submit{justify-content:center;padding:17px 10px}
  .ru-search > .ru-submit{grid-column:1 / -1}
}

/* Móvil */
@media (max-width:560px){
  .ru-hero{--ru-pb:clamp(20px,4.5svh,40px)}
  .ru-field{grid-column:1 / -1}
  /* más aire: miniatura a todo el alto, líneas separadas y pie con espacio propio */
  .ru-featured{left:16px;right:16px;width:auto}
  .ru-offer{padding:12px;gap:14px}
  .ru-offer__img{width:96px}
  .ru-offer__text{padding:2px 2px 0 0}
  .ru-offer__title{font-size:1.1rem;margin-top:5px}
  .ru-offer__meta{font-size:.78rem;margin-top:3px;line-height:1.5}
  .ru-offer__foot{margin-top:8px}
  .ru-header{--ru-menu-size:52px}
  .ru-header__actions{gap:8px}
  .ru-menu__list{gap:10px}
  .ru-menu__label{font-size:1rem}
}

/* Pantallas bajas (móvil en horizontal, portátiles pequeños): menú más compacto */
@media (max-height:640px){
  .ru-header{--ru-menu-size:46px}
  .ru-menu__list{gap:8px}
  .ru-menu__label{font-size:.875rem}
}

@media (max-height:440px){
  .ru-header{--ru-menu-size:40px}
  .ru-menu__list{gap:6px;top:calc(100% + 10px)}
  .ru-menu__icon svg{width:20px;height:20px}
}

/* Barra fija en móvil */
@media (max-width:560px){
  .ru-header.is-stuck{--ru-menu-size:44px;padding:8px 8px 8px 14px;top:10px}
  .ru-header.is-stuck img{height:46px}
}

/* Móvil en horizontal: el banner no se aplasta */
@media (max-height:500px) and (max-width:1100px){
  .ru-hero{height:auto;min-height:560px}
}

/* =========================================================
   DESTINOS ÚNICOS — carrusel infinito a sangre
   La foto del destino activo ocupa todo el alto de la sección (pegada al banner por arriba
   y a "Mejores Rutas" por abajo) y se funde a blanco por la izquierda, donde va el texto.
   A la derecha asoman solo el siguiente destino y una parte del de después.
   Es infinito: al llegar al último sigue con el primero sin volver atrás.
   ========================================================= */
.ru-dest{
  --gut:clamp(16px,4vw,48px);
  --padL:var(--ru-page);   /* alineado con el margen de página */
  --col:min(38vw,540px);                                 /* ancho de la columna de texto */
  --wa:90%;  /* ancho del destino activo */
  --wn:10%;  /* ancho de los demás: del siguiente solo asoma este fragmento */
  --gap:0px;
  --t:.95s;
  --fs:clamp(3rem,6.2vw,5.75rem);  /* tamaño del título */
  --top:clamp(108px,15vh,136px);  /* deja sitio a la barra fija de la cabecera */
  position:relative;display:flex;min-height:560px;  /* el alto lo marca el contenido: sin hueco blanco abajo */
  overflow:hidden;isolation:isolate;background:var(--ru-white);
}
.ru-dest__kicker{
  margin:0 0 8px;font-size:clamp(.8125rem,1.1vw,1rem);font-weight:400;text-transform:uppercase;
  letter-spacing:.42em;color:var(--ru-muted);
}
.ru-dest__title{
  margin:0;font-family:var(--ru-font-display);font-weight:400;
  font-size:var(--fs,clamp(3rem,6.2vw,5.75rem));line-height:.95;letter-spacing:-.01em;color:var(--ru-primary);
}

/* Pista de fotos */
.ru-car{position:absolute;inset:0;overflow:hidden;touch-action:pan-y}
.ru-dest__panel,.ru-best__card,.ru-featured,.ru-slide{touch-action:pan-y}  /* deslizar en horizontal pasa de elemento; en vertical, la página hace scroll */
.ru-car__track{
  display:flex;gap:var(--gap);width:100%;height:100%;margin:0;padding:0;list-style:none;
  background:#2a1a22; /* taste-skill-ignore: tapa la costura entre fotos */
  transform:translateX(calc((var(--wn) + var(--gap)) * var(--p,0) * -1));
  transition:transform var(--t) var(--ru-ease);
}
.ru-car__slide{
  position:relative;flex:0 0 var(--wn);min-width:0;overflow:hidden;cursor:pointer;background:var(--ru-white);
  transition:flex-basis var(--t) var(--ru-ease);
}
.ru-car__slide.is-active{flex-basis:var(--wa);cursor:default;background:var(--ru-white)}
/* los que ya han pasado se ocultan al terminar de salir (sin restos en el borde) */
.ru-car__slide.is-past{opacity:0;transition:flex-basis var(--t) var(--ru-ease), opacity .2s linear var(--t)}
.ru-car__img{
  position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.85) brightness(.78);
  transition:filter .8s var(--ru-ease), left var(--t) var(--ru-ease), width var(--t) var(--ru-ease);
}
/* en el activo la foto empieza detrás de la columna de texto, así lo importante queda a la vista */
.ru-car__slide.is-active .ru-car__img{filter:none;left:calc(var(--padL) + var(--col) * .7);width:calc(100% - var(--padL) - var(--col) * .7)}
.ru-car__slide:not(.is-active):hover .ru-car__img{filter:saturate(1) brightness(.9)}
/* al dejar de estar activo, la foto recupera su encuadre rápido para que no asome hueco */
.ru-car__slide:not(.is-active) .ru-car__img{transition:filter .8s var(--ru-ease), left .45s var(--ru-ease), width .45s var(--ru-ease)}
.ru-car__slide::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(34,18,27,.82) 0%,rgba(34,18,27,.25) 45%,rgba(34,18,27,0) 70%); /* taste-skill-ignore: velo neutro sobre foto */
  transition:opacity .6s var(--ru-ease);
}
.ru-car__slide.is-active::after{opacity:0}
/* nombre del siguiente destino, sobre su foto */
.ru-car__label{
  position:absolute;left:50%;bottom:clamp(28px,5vh,48px);z-index:1;writing-mode:vertical-rl;white-space:nowrap;
  color:var(--ru-white);opacity:0;transform:translate(-50%,10px) rotate(180deg);
  transition:opacity .5s var(--ru-ease), transform .7s var(--ru-ease);
}
.ru-car__slide.is-next .ru-car__label{opacity:1;transform:translate(-50%,0) rotate(180deg);transition-delay:.35s}
.ru-car__label small{display:none}
.ru-car__label b{display:block;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:clamp(1.5rem,2.2vw,2.2rem);line-height:1.05;
  text-shadow:0 1px 12px rgba(0,0,0,.3)} /* taste-skill-ignore: legibilidad sobre foto */
/* fundido a blanco de la foto por la izquierda */
.ru-car__veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,
    var(--ru-white) 0,
    var(--ru-white) calc(var(--padL) + var(--col) * .8),
    rgba(255,255,255,.92) calc(var(--padL) + var(--col)),
    rgba(255,255,255,.74) calc(var(--padL) + var(--col) + 6vw),
    rgba(255,255,255,.5) calc(var(--padL) + var(--col) + 13vw),
    rgba(255,255,255,.27) calc(var(--padL) + var(--col) + 20vw),
    rgba(255,255,255,.1) calc(var(--padL) + var(--col) + 27vw),
    rgba(255,255,255,.02) calc(var(--padL) + var(--col) + 33vw),
    rgba(255,255,255,0) calc(var(--padL) + var(--col) + 36vw));  /* curva suave, sin corte visible */ /* taste-skill-ignore: fundido a blanco, decisión de marca */
}
.ru-car.is-jumping .ru-car__track,.ru-car.is-jumping .ru-car__slide,.ru-car.is-jumping .ru-car__img,
.ru-car.is-jumping .ru-car__label,.ru-car.is-jumping .ru-car__slide::after{transition:none!important}

/* Título y texto, sobre el blanco de la izquierda */
.ru-dest__head{position:absolute;z-index:2;left:var(--padL);top:var(--top);width:max-content;max-width:calc(100% - var(--padL) * 2)}
.ru-dest__panel{
  /* en el flujo: si el texto necesita más alto, la sección crece en vez de apretarlo */
  position:relative;z-index:2;margin-left:var(--padL);width:var(--col);flex:none;
  /* el bloque va en la parte alta, bajo el título; el aire entre ambos crece con el alto de la
     pantalla: compacto en portátil (~30-50 px), holgado en monitor grande (~80-140 px) */
  display:flex;flex-direction:column;justify-content:flex-start;box-sizing:border-box;
  padding:calc(var(--top) + 32px + var(--fs) + clamp(28px,16vh - 95px,220px)) 0 clamp(56px,9vh,120px);
}
.ru-dest__infos{display:grid}
.ru-car__info{grid-area:1 / 1;opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .35s var(--ru-ease), transform .5s var(--ru-ease), visibility 0s .35s}
.ru-car__info.is-active{opacity:1;visibility:visible;transform:none;
  transition:opacity .6s var(--ru-ease) .3s, transform .8s var(--ru-ease) .3s, visibility 0s}
.ru-car__region{margin:0 0 8px;font-size:var(--ru-text-xs);font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-muted)}
.ru-car__name{
  margin:0;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);
  font-size:clamp(2.4rem,4.2vw,4.2rem);line-height:1;letter-spacing:.005em;color:var(--ru-text-accent);white-space:nowrap;
}
.ru-car__routes{
  display:inline-flex;align-items:center;gap:8px;justify-self:start;margin:16px 0 14px;padding:7px 14px 7px 10px;border-radius:999px;
  background:var(--ru-tint-2);color:var(--ru-text-accent);font-size:.875rem;font-weight:600;
}
.ru-car__info{display:grid;justify-items:start}
.ru-car__text{
  margin:0 0 clamp(24px,3.5vh,36px);font-size:1rem;line-height:1.6;max-width:none;color:var(--ru-ink);
}
.ru-car__cta{min-height:52px;padding:0 26px;font-size:1rem;width:max-content}

/* Flechas y progreso del avance automático */
/* pie: "Ver destino", flechas y barra de progreso en una sola fila, con distancias fijas */
.ru-dest__foot{display:flex;align-items:center;gap:24px}
.ru-dest__foot .ru-car__cta{margin-right:4px;flex:none}  /* nunca se encoge */
.ru-dest__nav{display:flex;align-items:center;gap:10px;flex:0 1 auto;min-width:0}  /* flecha · barra · flecha */
/* control del carrusel: solo un chevrón fino, sin círculo (las flechas largas quedan para
   los botones que llevan a otra página, como Buscar o Ver destino) */
.ru-dest__arrow{
  width:44px;height:44px;padding:0;border:0;border-radius:10px;cursor:pointer;display:grid;place-items:center;
  background:none;color:var(--ru-primary);
  transition:color .3s var(--ru-ease), opacity .3s var(--ru-ease);
}
.ru-dest__arrow:hover{color:var(--ru-text-accent)}
.ru-dest__arrow:focus-visible{outline:2px solid var(--ru-primary);outline-offset:2px}
.ru-dest__arrow svg{transition:transform .4s var(--ru-ease)}
.ru-dest__arrow--prev:hover svg{transform:translateX(-4px)}
.ru-dest__arrow--next:hover svg{transform:translateX(4px)}
.ru-dest__arrow:active svg{transition-duration:.1s;opacity:.7}
.ru-dest__progress{flex:1 1 140px;min-width:32px;max-width:140px;height:3px;border-radius:3px;background:var(--ru-tint-2);overflow:hidden}
.ru-dest__progress i{display:block;height:100%;width:100%;background:var(--ru-primary);transform:scaleX(0);transform-origin:left}
.ru-dest.is-running .ru-dest__progress i{animation:ru-acc-progress var(--ru-car-time,7s) linear forwards}
.ru-dest.is-paused .ru-dest__progress i{animation-play-state:paused}
@keyframes ru-acc-progress{to{transform:scaleX(1)}}

/* Entrada al llegar a la sección (solo si hay JavaScript) */
.ru-js .ru-dest .ru-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease)}
.ru-js .ru-dest .ru-reveal.is-in{opacity:1;transform:none}
.ru-js .ru-dest .ru-dest__panel.ru-reveal{transition-delay:.12s}

/* Monitores grandes: el bloque de texto crece con la pantalla para no quedar pequeño y apretado */
@media (min-width:1600px) and (min-height:960px){
  .ru-dest{--col:min(36vw,620px)}
  .ru-car__region{font-size:.875rem;margin-bottom:12px}
  .ru-car__name{font-size:clamp(4.2rem,4.4vw,5.25rem)}
  .ru-car__routes{margin:22px 0 20px;padding:8px 16px 8px 12px;font-size:.9375rem}
  .ru-car__text{font-size:1.125rem;line-height:1.7;margin-bottom:44px}
  .ru-car__cta{min-height:58px;padding:0 30px;font-size:1.0625rem}
  .ru-dest__arrow svg{width:34px;height:34px}
  .ru-dest__progress{max-width:180px}
}
@media (min-width:2200px) and (min-height:1300px){
  .ru-dest{--col:min(34vw,780px);--fs:clamp(3rem,5.4vw,8rem);--top:160px}
  .ru-dest__kicker{font-size:1.25rem}
  .ru-car__region{font-size:1rem;margin-bottom:16px}
  .ru-car__name{font-size:6.5rem}
  .ru-car__routes{margin:28px 0 26px;padding:10px 20px 10px 14px;font-size:1.0625rem}
  .ru-car__text{font-size:1.375rem;margin-bottom:56px}
  .ru-car__cta{min-height:66px;padding:0 36px;font-size:1.1875rem}
  .ru-dest__arrow{width:56px;height:56px}
  .ru-dest__arrow svg{width:40px;height:40px}
  .ru-dest__progress{max-width:220px;height:4px}
}
/* Portátil pequeño */
@media (max-width:1100px){
  .ru-dest{--col:min(42vw,440px)}
}
/* Tablet y móvil: título arriba, fotos debajo fundiéndose a blanco hacia abajo y el texto debajo */
@media (max-width:900px){
  .ru-dest{--wa:88%;--wn:12%;min-height:0;flex-direction:column}
  .ru-dest__head{position:static;width:auto;max-width:none;order:0;padding:36px var(--gut) 20px;text-align:center}
  .ru-car{position:relative;inset:auto;order:1;height:min(105vw,560px)}
  .ru-car__slide.is-active .ru-car__img{left:0;width:100%}
  .ru-car__veil{background:linear-gradient(0deg,var(--ru-white) 0,rgba(255,255,255,.9) 8%,rgba(255,255,255,.66) 16%,rgba(255,255,255,.4) 25%,rgba(255,255,255,.18) 35%,rgba(255,255,255,.05) 45%,rgba(255,255,255,0) 52%)} /* taste-skill-ignore */
  .ru-car__label{display:none}
  .ru-dest__panel{position:relative;inset:auto;order:2;width:auto;padding:0 var(--gut) 40px;margin:-48px 0 0}
  .ru-dest__foot{margin-top:0}
  .ru-car__text{max-width:60ch}
}
@media (max-width:640px){
  .ru-dest__title{font-size:clamp(2.5rem,13vw,3.75rem)}
  .ru-dest__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-dest__head{padding:32px 16px 18px}
  .ru-car{height:min(112vw,460px)}
  .ru-car__name{font-size:2rem}
  .ru-car__routes{margin:10px 0 8px}
  .ru-car__text{font-size:.9375rem;max-width:none}
  .ru-dest__foot{flex-wrap:wrap;row-gap:32px}
  .ru-dest__foot .ru-car__cta{flex:1 1 100%;margin:0;justify-content:center}
  .ru-car__routes{justify-self:start}
  .ru-dest__nav{flex:1 1 100%}
  .ru-dest__progress{flex:1;max-width:none}
}

/* =========================================================
   DESCUBRE NUESTRAS MEJORES RUTAS
   Fondo marfil con un degradado suave. A la izquierda, el título y la ruta activa (destino,
   programa, duración, fechas, precio y "Ver viaje"); a la derecha, una baraja de fotos: la ruta
   activa delante y las siguientes asomando detrás. Avanza sola y se pasa con los chevrones,
   el teclado, deslizando el dedo o tocando la foto que asoma.
   ========================================================= */
.ru-best{
  --gut:clamp(16px,4vw,48px);
  position:relative;overflow:hidden;isolation:isolate;
  padding:clamp(120px,16vh,200px) var(--ru-page) clamp(40px,6vh,112px);
  background:
    radial-gradient(60% 70% at 30% 50%, rgba(150,88,113,.10), rgba(150,88,113,0) 70%), /* taste-skill-ignore: halo suave tras las fotos */
    linear-gradient(180deg, var(--ru-ivory) 0%, #fdfaf5 100%);
}
.ru-best__inner{
  /* Retícula de 12 columnas (gutter de 24 px): texto en las columnas 1-5, fotos en las 6-12.
     La tarjeta de la oferta invade la primera columna de las fotos para unir información e imagen */
  --best-gap:24px;
  --deck-h:clamp(480px,73vh,760px);   /* alto de la baraja: las fotos mandan; verticales (3:4) */
  margin:0;
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--best-gap);align-items:center;
}
.ru-best__intro{margin:24px 0 0;max-width:40ch;font-size:1.0625rem;line-height:1.6;color:var(--ru-muted)}

/* Ruta activa: los textos de cada ruta se apilan en el mismo hueco y cambian con un fundido (sin saltos) */
.ru-best__infos{position:relative;transition:height .5s var(--ru-ease)}  /* alto ajustado a la ruta activa (lo fija el script) */
/* tarjeta blanca que agrupa toda la oferta (mismo lenguaje que la tarjeta del buscador) */
.ru-best__card{
  margin-top:0;padding:clamp(22px,2.2vw,34px);border-radius:var(--ru-radius);
  background:var(--ru-white);border:1px solid rgba(150,88,113,.10);
  /* une la información con la foto: la tarjeta se monta sobre el borde izquierdo de la foto activa */
  position:relative;z-index:5;margin-left:calc(-1 * (var(--best-gap) + clamp(56px,6vw,96px)));  /* se monta sobre el borde derecho de la foto */
  box-shadow:0 24px 50px rgba(110,61,82,.16); /* taste-skill-ignore: tarjeta que flota sobre la foto */
}
.ru-best__text{grid-column:8 / 13;grid-row:1;position:relative;z-index:6}  /* información a la derecha */
/* tarjeta + navegación vertical en su exterior derecho */
.ru-best__offer{display:flex;align-items:center;gap:16px;margin-top:12px}
.ru-best__offer .ru-best__card{flex:1;min-width:0}
.ru-trip{position:absolute;inset:0 0 auto 0;display:grid;justify-items:start;
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .35s var(--ru-ease), transform .5s var(--ru-ease), visibility 0s .35s}
.ru-trip.is-active{position:relative;opacity:1;visibility:visible;transform:none;
  transition:opacity .6s var(--ru-ease) .2s, transform .8s var(--ru-ease) .2s, visibility 0s}
/* etiqueta de la ruta activa (data-tag en la ruta), como la de la ruta destacada del banner.
   Ordenador y portátil: en la esquina superior izquierda de la foto principal (.ru-deck__tag).
   Tablet y móvil: fuera de la tarjeta, asomando por encima sobre la foto (#ruBestTag) */
.ru-deck__tag{position:absolute;top:20px;left:20px;z-index:2;padding:6px 12px;border-radius:999px;background:var(--ru-primary);color:var(--ru-white);
  font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;white-space:nowrap;
  opacity:0;transform:translateY(-6px);transition:opacity .4s var(--ru-ease), transform .5s var(--ru-ease)}
.ru-deck__card[data-pos="0"] .ru-deck__tag{opacity:1;transform:none;transition-delay:.35s}
.ru-best__tag{display:none;position:absolute;z-index:2;padding:6px 12px;border-radius:999px;
  background:var(--ru-primary);color:var(--ru-white);font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;white-space:nowrap}

.ru-best__tag.is-in{animation:ru-price-in .8s var(--ru-ease) .2s backwards}
@media (max-width:900px){
  .ru-best__tag{display:block;bottom:calc(100% + 8px);left:0}
  .ru-best__tag[hidden],.ru-deck__tag{display:none}
}
.ru-trip__dest{margin:0;font-size:var(--ru-text-xs);font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-muted)}
.ru-trip__dest b{font-size:.9375rem;font-weight:900;letter-spacing:.2em;color:var(--ru-primary)}  /* solo el país, destacado */
.ru-trip__title{
  margin:10px 0 0;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.05;
  color:var(--ru-text-accent);text-wrap:balance;
}
.ru-trip__dur{margin:12px 0 0;font-size:1rem;font-style:italic;color:var(--ru-muted)}
/* fechas: dato clave, más grande y en negrita */
.ru-trip__dates{display:flex;align-items:center;gap:9px;margin:12px 0 0;  /* leve separación */
  font-size:1.125rem;font-weight:700;color:var(--ru-text-accent)}
.ru-trip__dates svg{flex:none;width:18px;height:18px;color:var(--ru-primary)}
.ru-trip .ru-trip__price{display:none}  /* el precio de la ruta activa se muestra en el pie, junto al botón */
.ru-best__foot .ru-trip__price{margin:0;line-height:1;white-space:nowrap;flex:none}  /* nunca parte "desde X €" */
/* el precio entra con el mismo movimiento que el resto del texto de la ruta */
.ru-best__foot .ru-trip__price.is-in{animation:ru-price-in .8s var(--ru-ease) .2s backwards}
@keyframes ru-price-in{from{opacity:0;transform:translateY(14px)}}
.ru-trip__price{margin:12px 0 0;  /* leve separación */
  font-size:.8125rem;color:var(--ru-muted)}
.ru-trip__price b{margin-left:6px;font-size:1.625rem;font-weight:700;letter-spacing:-.01em;color:var(--ru-text-accent);font-variant-numeric:tabular-nums}

/* Pie: "Ver viaje", chevrones y barra de tiempo en una fila (como en Destinos únicos) */
.ru-best__foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:clamp(18px,3vh,28px)}
.ru-best__foot .ru-submit{min-height:52px;padding:0 26px;font-size:1rem;text-decoration:none;margin-right:4px;flex:none;white-space:nowrap}
.ru-best__nav{display:flex;gap:4px;flex:none}
.ru-best__progress{flex:1;max-width:160px;height:3px;border-radius:3px;background:var(--ru-tint-2);overflow:hidden}
.ru-best__progress i{display:block;height:100%;width:100%;background:var(--ru-primary);transform:scaleX(0);transform-origin:left}
.ru-best.is-running .ru-best__progress i{animation:ru-acc-progress var(--ru-best-time,7s) linear forwards}
.ru-best.is-paused .ru-best__progress i{animation-play-state:paused}
.ru-best__count{font-size:.8125rem;font-weight:600;letter-spacing:.08em;color:var(--ru-muted);font-variant-numeric:tabular-nums}

/* Baraja de fotos */
.ru-best__visual{grid-column:1 / 8;grid-row:1;display:flex;position:relative;z-index:1;margin-right:32px}  /* aire entre fotos y columna de información */  /* fotos a la izquierda */
.ru-deck{position:relative;height:var(--deck-h);flex:1;min-width:0;width:auto;margin:0;padding:0;list-style:none;touch-action:pan-y;container-type:size}
/* navegación de la baraja: fuera de la tarjeta de información, bajo las fotos */
/* navegación de la baraja: en vertical, a la derecha de las fotos (arriba = anterior, abajo = siguiente) */
.ru-best__bar{flex:none;display:flex;flex-direction:column;align-items:center;gap:14px}
.ru-best__bar .ru-best__nav{flex-direction:column;align-items:center;gap:2px}  /* flecha · barra · flecha, mismas medidas que el banner */
.ru-best__bar .ru-best__progress{margin:6px 0}
.ru-best__bar .ru-best__nav{order:0}
.ru-best__bar .ru-dest__arrow svg{transform:rotate(90deg)}
.ru-best__bar .ru-dest__arrow--prev:hover svg{transform:rotate(90deg) translateX(-4px)}
.ru-best__bar .ru-dest__arrow--next:hover svg{transform:rotate(90deg) translateX(4px)}
.ru-best__bar .ru-best__progress{flex:none;width:3px;height:106px;max-width:none}
.ru-best__bar .ru-best__progress i{transform:scaleY(0);transform-origin:top}
.ru-best.is-running .ru-best__bar .ru-best__progress i{animation-name:ru-best-progress-y}
@keyframes ru-best-progress-y{to{transform:scaleY(1)}}
.ru-best__bar .ru-best__count{order:2;white-space:nowrap}
.ru-best__bar .ru-best__nav{order:0}
.ru-best__bar .ru-dest__arrow[disabled]{opacity:.3;cursor:default}
/* Filtros (región y país): píldoras finas; la activa en malva */
.ru-best__filters{display:flex;flex-wrap:wrap;gap:8px;margin:40px 0 0;padding:0;list-style:none}
@media (min-width:901px){
  /* encima de la tarjeta de la oferta y con su mismo ancho (también la parte que monta sobre la foto) */
  .ru-best__filters{position:relative;z-index:7;margin-left:calc(-1 * (var(--best-gap) + clamp(56px,6vw,96px)));margin-right:60px}
  .ru-best__filters{flex-wrap:nowrap;gap:6px}
  .ru-best .ru-best__filters li{flex:1 1 auto}
  .ru-best__filters .ru-chip{width:100%;padding:0 10px;font-size:.78rem;background:var(--ru-white)}
  .ru-best__filters .ru-chip[aria-pressed="true"]{background:var(--ru-primary)}
}
/* portátil estrecho: si no caben en una fila, pasan a dos sin estirarse */
@media (min-width:901px) and (max-width:1199px){
  .ru-best__filters{flex-wrap:wrap}
  .ru-best .ru-best__filters li{flex:0 1 auto}
}
.ru-best__filters::-webkit-scrollbar{display:none}
.ru-best__filters li{flex:none}
.ru-chip{
  min-height:38px;padding:0 12px;border-radius:999px;cursor:pointer;white-space:nowrap;
  border:1px solid rgba(150,88,113,.3);background:transparent;color:var(--ru-text-accent);
  font:inherit;font-size:.8125rem;font-weight:600;
  transition:background .3s var(--ru-ease), color .3s var(--ru-ease), border-color .3s var(--ru-ease);
}
.ru-chip:hover{border-color:var(--ru-primary);background:var(--ru-white)}
.ru-chip[aria-pressed="true"]{background:var(--ru-primary);border-color:var(--ru-primary);color:var(--ru-white)}
.ru-chip:focus-visible{outline:2px solid var(--ru-primary);outline-offset:2px}
.ru-chip small{margin-left:4px;font-size:.75rem;font-weight:500;opacity:.7}
.ru-deck{--peek:clamp(30px,4.2vh,46px)}  /* las de detrás se aprecian bien */
.ru-deck__card{
  /* baraja en vertical: la foto de la oferta ocupa todo el ancho; las siguientes asoman por arriba,
     más estrechas y apagadas, para que la principal mande */
  position:absolute;left:0;right:0;bottom:0;height:calc(100% - var(--peek) * 2);
  border-radius:24px;overflow:hidden;cursor:pointer;background:var(--ru-tint);
  transform-origin:top center;
  transition:transform .9s var(--ru-ease), opacity .7s var(--ru-ease), filter .9s var(--ru-ease), box-shadow .9s var(--ru-ease), height .6s var(--ru-ease);
  will-change:transform;
}
.ru-deck__card img{width:100%;height:100%;object-fit:cover;display:block}
/* movimiento leve y continuo de la foto principal: panorámica lateral lenta, como una cámara que recorre la escena */
.ru-deck__card img{transform:scale(1.08)}
/* Movimiento lento y continuo (lineal, sin aceleraciones ni frenadas): todas las fotos se mueven siempre,
   así al pasar de ruta no se reinicia ni se corta. Cada foto recibe del JS una dirección aleatoria
   (--px/--py: izquierda, derecha o en diagonal) y un punto de partida aleatorio */
.ru-deck__card img{animation:ru-deck-pan var(--pt,40s) linear infinite alternate;animation-delay:var(--pd,0s)}
@keyframes ru-deck-pan{from{transform:scale(1.12) translate3d(calc(var(--px,4%) * -1),calc(var(--py,0%) * -1),0)}to{transform:scale(1.12) translate3d(var(--px,4%),var(--py,0%),0)}}
@media (prefers-reduced-motion:reduce){ .ru-deck__card img{animation:none} .ru-best__foot .ru-trip__price.is-in{animation:none} }
/* posiciones: 0 = delante; 1 y 2 = detrás asomando por arriba; 3 = la que acaba de salir (baja y se funde) */
.ru-deck__card[data-pos="0"]{z-index:4;transform:none;cursor:default;box-shadow:0 30px 60px rgba(110,61,82,.22)} /* taste-skill-ignore: tarjeta que flota sobre la sección */
.ru-deck__card[data-pos="1"]{z-index:3;transform:translateY(calc(var(--peek) * -1)) scale(.94);filter:brightness(.82) saturate(.85)}
.ru-deck__card[data-pos="2"]{z-index:2;transform:translateY(calc(var(--peek) * -2)) scale(.88);filter:brightness(.7) saturate(.75)}
.ru-deck__card[data-pos="3"]{z-index:1;transform:translateY(6%);opacity:0;pointer-events:none}  /* sale hacia abajo, por debajo de la información */
.ru-deck__card[data-pos="1"]:hover{transform:translateY(calc(var(--peek) * -1 - 6px)) scale(.94);filter:brightness(.82) saturate(.8)}
.ru-deck__card[data-pos="off"],.ru-deck__card[data-pos="4"]{z-index:0;transform:translateY(calc(var(--peek) * -2)) scale(.78);opacity:0;pointer-events:none}
/* con una sola oferta (o una sola visible tras filtrar) la foto ocupa todo el espacio */
.ru-deck.is-single .ru-deck__card{height:100%}
/* etiqueta opcional (OFERTA, NOVEDAD…): misma píldora malva que la ruta destacada */
.ru-deck__tag{position:absolute;left:18px;top:18px;padding:6px 12px;border-radius:999px;background:var(--ru-primary);color:var(--ru-white);
  font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}

/* Entrada al llegar a la sección (solo si hay JavaScript) */
.ru-js .ru-best .ru-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease)}
.ru-js .ru-best .ru-reveal.is-in{opacity:1;transform:none}
.ru-js .ru-best .ru-deck.ru-reveal{transition-delay:.12s}

@media (min-width:901px) and (max-height:960px){
  .ru-best__filters{margin-top:32px}
}
/* Portátiles de pantalla baja: un poco más compacto para verse entero */
@media (min-width:901px) and (max-height:780px){
  .ru-best{padding-top:96px;padding-bottom:40px}
  .ru-best__inner{--deck-h:clamp(440px,70vh,760px)}
  .ru-best__filters{margin-top:24px}
  .ru-best .ru-dest__title,.ru-own .ru-dest__title{font-size:clamp(2.8rem,4.6vw,4rem)}  /* mismo tamaño en los dos títulos (24/10) */
  .ru-best__intro{margin-top:16px}
  .ru-best .ru-chip{min-height:34px}
  .ru-best__card{padding:22px 26px}
  .ru-trip__title{font-size:clamp(1.9rem,3vw,2.6rem)}
}
/* Filtros en móvil: un botón "Filtrar" abre una hoja inferior con las opciones */
.ru-best__filterbtn{display:none}
.ru-best__sheethead{display:none}
@media (max-width:640px){
  /* pastilla fina con contorno: icono + "Filtrar" · filtro activo en gris; centrada */
  .ru-best__filterbtn{display:flex;align-items:center;gap:8px;width:max-content;margin:24px auto 0;min-height:44px;padding:0 20px;
    border:1px solid rgba(150,88,113,.35);border-radius:999px;background:none;color:var(--ru-primary);font-size:.875rem;font-weight:600;letter-spacing:.02em}
  .ru-best__filterbtn:hover,.ru-best__filterbtn:active{background:var(--ru-white);border-color:var(--ru-primary)}
  .ru-best__filterbtn svg{width:16px;height:16px;stroke-width:1.6}
  .ru-best__filterbtn small{font-size:.875rem;font-weight:400;opacity:1;color:var(--ru-muted);margin:0}
  .ru-best__filterbtn small::before{content:"·";margin-right:8px;color:var(--ru-faint)}
  .ru-best__backdrop{position:fixed;inset:0;z-index:199;background:rgba(34,18,27,.45);opacity:0;transition:opacity .3s var(--ru-ease)}
  .ru-best.is-filtering .ru-best__backdrop{opacity:1}
  .ru-best .ru-best__filters{
    position:fixed;left:0;right:0;bottom:0;z-index:200;margin:0;display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;
    padding:20px 16px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--ru-white);
    box-shadow:0 -20px 50px rgba(34,18,27,.2); /* taste-skill-ignore: hoja inferior flotante */
    transform:translateY(105%);visibility:hidden;transition:transform .45s var(--ru-ease), visibility 0s .45s;
  }
  .ru-best.is-filtering .ru-best__filters{transform:none;visibility:visible;transition-delay:0s}
  .ru-best__sheethead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
  .ru-best__sheethead b{font-size:1.0625rem;font-weight:700;color:var(--ru-text-accent)}
  .ru-best__sheethead button{width:44px;height:44px;border:0;border-radius:50%;background:var(--ru-tint);color:var(--ru-text-accent);display:grid;place-items:center;cursor:pointer}
  .ru-best .ru-best__filters .ru-chip{width:100%;min-height:50px;padding:0 18px;font-size:.9375rem;display:flex;align-items:center;justify-content:space-between;border-radius:14px}
}
/* Tablet: una sola columna, fotos arriba */
@media (max-width:900px){
  .ru-best__head{text-align:center}
  .ru-best__intro{margin-left:auto;margin-right:auto}
  .ru-best__filters{justify-content:center}
  .ru-best__inner{grid-template-columns:minmax(0,1fr);gap:0}
  .ru-best__text{display:contents}
  .ru-best__head{order:0}
  .ru-best__visual,.ru-best__offer{display:contents}
  .ru-best__text{grid-column:auto;grid-row:auto}
  .ru-best__visual{grid-column:auto;grid-row:auto}
  .ru-deck{order:1;width:100%;flex:none;height:min(108vw,640px);--deck-h:min(108vw,640px);margin-top:28px}
  .ru-best__bar{order:3;width:auto;margin-top:22px;flex-direction:row;gap:20px}
  .ru-best__bar .ru-best__nav{flex-direction:row;flex:1}
  .ru-best__bar .ru-dest__arrow svg,.ru-best__bar .ru-dest__arrow--prev:hover svg,.ru-best__bar .ru-dest__arrow--next:hover svg{transform:none}
  .ru-best__bar .ru-best__progress{width:auto;height:3px;flex:1}
  .ru-best__bar{width:100%}
  .ru-best__bar .ru-best__progress i{transform:scaleX(0);transform-origin:left}
  .ru-best.is-running .ru-best__bar .ru-best__progress i{animation-name:ru-acc-progress}
  .ru-best__bar .ru-best__count{writing-mode:horizontal-tb;letter-spacing:.08em}
  /* móvil/tablet: la tarjeta se monta sobre la parte baja de la foto */
  .ru-best__card{order:2;margin:-64px 10px 0}
}
@media (max-width:640px){
  .ru-best{padding:36px 16px 40px}
  .ru-best__card{padding:20px 18px}
  /* texto algo más pequeño; el país siempre en una sola línea */
  .ru-trip__dest{letter-spacing:.1em;line-height:1.6;font-size:.75rem;white-space:nowrap}
  .ru-trip__dest b{font-size:.8125rem;letter-spacing:.1em}
  .ru-trip__dur{font-size:.9375rem;margin-top:10px}
  .ru-trip__dates{font-size:.875rem;white-space:nowrap;gap:7px;margin-top:10px}
  .ru-trip__price b{font-size:1.375rem}
  .ru-trip__dates svg{width:16px;height:16px}
  .ru-best .ru-dest__title{font-size:clamp(2.5rem,13vw,3.75rem)}
  .ru-best .ru-dest__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-best__intro{font-size:1rem}
  .ru-deck{height:min(116vw,500px);--deck-h:min(116vw,500px)}

  .ru-deck__card{border-radius:20px}
  .ru-trip__title{font-size:1.625rem}
  .ru-best__foot{flex-wrap:wrap;row-gap:24px}
  .ru-best__foot .ru-submit{flex:1 1 100%;margin:0;justify-content:center}
}
/* móviles muy estrechos: las fechas pueden ocupar dos líneas antes que salirse de la tarjeta */
@media (max-width:360px){
  .ru-best__infos,.ru-trip{min-width:0}
  .ru-trip__dates{white-space:normal;align-items:flex-start;font-size:.875rem}
  .ru-trip__dates svg{margin-top:2px}
  .ru-best__card{padding:18px 16px}
}
@media (prefers-reduced-motion:reduce){
  .ru-deck__card{transition:opacity .3s ease}
  .ru-trip,.ru-js .ru-best .ru-reveal{transform:none!important}
}

/* =========================================================
   ¿PENSANDO EN TU PROPIA RUTA? — viajes a medida
   Fondo blanco. Texto a la izquierda (columnas 1-5) y tres fotos verticales a la derecha
   (columnas 7-12), la central algo más alta. En reposo, las laterales en blanco y negro;
   al pasar el cursor, la foto se ensancha, se acerca y recupera el color.
   ========================================================= */
.ru-own{background:var(--ru-white);padding:clamp(48px,8vh,96px) var(--ru-page)}
.ru-own__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.ru-own__text{grid-column:1 / 6}
.ru-own__title em{font-style:italic;display:block}
.ru-own__lead{margin:24px 0 0;max-width:42ch;font-size:1.0625rem;line-height:1.6;color:var(--ru-muted)}
.ru-own__cta{margin-top:36px;min-height:52px;padding:0 26px;font-size:1rem;text-decoration:none;width:max-content}
.ru-own__gallery{grid-column:7 / 13;display:flex;align-items:center;gap:16px;height:clamp(420px,62vh,600px);margin:0;padding:0;list-style:none}
.ru-own__item{
  position:relative;flex:1 1 0;min-width:0;height:88%;border-radius:200px 200px 24px 24px;  /* arco arriba, esquinas suaves abajo */
  overflow:hidden;background:var(--ru-tint);
  transition:flex-grow .7s var(--ru-ease), height .7s var(--ru-ease), box-shadow .7s var(--ru-ease);
}
.ru-own__item:nth-child(2){height:100%}
.ru-own__item img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.05);transform:scale(1.001);
  transition:filter .7s var(--ru-ease), transform 1s var(--ru-ease);
}
/* la central, en color mientras no se pasa por ninguna */
.ru-own__item:nth-child(2) img{filter:none}
.ru-own__gallery:hover .ru-own__item:nth-child(2):not(:hover) img{filter:grayscale(1) contrast(1.05)}
/* al pasar el cursor: se ensancha, se acerca y se colorea */
.ru-own__item:hover{flex-grow:1.6;box-shadow:0 26px 50px rgba(110,61,82,.2)} /* taste-skill-ignore: foto que se levanta */
.ru-own__item:hover img{filter:none;transform:scale(1.08)}
.ru-js .ru-own .ru-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease)}
.ru-js .ru-own .ru-reveal.is-in{opacity:1;transform:none}
.ru-js .ru-own .ru-own__gallery.ru-reveal{transition-delay:.12s}
/* pantallas táctiles: sin cursor, las tres en color */
@media (hover:none){ .ru-own__item img{filter:none} }
@media (max-width:900px){
  .ru-own__text,.ru-own__gallery{grid-column:1 / -1}
  .ru-own__text{text-align:center}
  .ru-own__lead{margin-left:auto;margin-right:auto}
  .ru-own__cta{margin-left:auto;margin-right:auto}
  .ru-own__gallery{margin-top:32px;height:min(52vw,380px)}
}
@media (max-width:640px){
  .ru-own{padding:28px 16px 32px}
  .ru-own .ru-dest__title{font-size:clamp(2.5rem,13vw,3.75rem)}
  .ru-own .ru-dest__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-own__lead{font-size:1rem}
  .ru-own__cta{width:100%;justify-content:center}
  .ru-own__gallery{gap:10px;height:min(66vw,280px);margin-top:28px}
  .ru-own__item{border-radius:80px 80px 16px 16px}
}
@media (prefers-reduced-motion:reduce){
  .ru-own__item,.ru-own__item img{transition:filter .3s ease}
  .ru-own__item:hover img{transform:none}
}

/* =========================================================
   FECHAS ÚNICAS — viajar según la temporada
   Fondo de blanco a rosa empolvado muy suave. Encabezado centrado; tres tarjetas de temporada
   con foto (Enero, Semana Santa, Verano), título en Elegant blanco sobre un velo malva que sube
   desde abajo; al pasar el cursor la foto se acerca, el velo se intensifica y aparece "Ver rutas".
   Debajo, los doce meses como accesos rápidos (los meses sin viajes, desactivados).
   ========================================================= */
.ru-dates{
  padding:clamp(56px,8vh,120px) var(--ru-page);
  background:linear-gradient(180deg,var(--ru-ivory) 0%,#f5eaf0 100%);  /* de marfil a rosa empolvado */
}
.ru-dates__head{text-align:center;max-width:720px;margin:0 auto}
.ru-br-desk{display:none}
@media (min-width:901px){ .ru-br-desk{display:inline} .ru-dates__lead{max-width:none} }
.ru-dates__lead{margin:20px auto 0;max-width:52ch;font-size:1.0625rem;line-height:1.6;color:var(--ru-muted)}
.ru-dates__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:clamp(32px,5vh,56px) 0 0;padding:0;list-style:none}
.ru-season{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(320px,42vh,480px);
  border-radius:var(--ru-radius);overflow:hidden;color:var(--ru-white);text-decoration:none;isolation:isolate;
  transition:transform .6s var(--ru-ease), box-shadow .6s var(--ru-ease)}
.ru-season img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ru-ease)}
.ru-season::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(110,61,82,.92) 0%,rgba(110,61,82,.55) 38%,rgba(110,61,82,0) 70%); /* taste-skill-ignore: velo de marca para leer el texto sobre la foto */
  transition:opacity .6s var(--ru-ease)}
.ru-season::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(110,61,82,.35);opacity:0;transition:opacity .6s var(--ru-ease)}
.ru-season__body{padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column}
.ru-season__when{display:block;font-size:var(--ru-text-xs);font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:.9}
.ru-season__title{margin:6px 0 0;font-family:var(--ru-font-country);font-weight:700;font-size:clamp(2.1rem,2.8vw,2.75rem);line-height:1.05;letter-spacing:.005em}
.ru-season__text{margin:12px 0 0;font-size:.9375rem;line-height:1.55;opacity:.92;max-width:34ch}
.ru-season__row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.ru-season__cta{display:inline-flex;flex:none;align-items:center;gap:8px;margin-top:0;white-space:nowrap;font-size:.875rem;font-weight:700;
  opacity:0;transform:translateY(8px);transition:opacity .45s var(--ru-ease), transform .5s var(--ru-ease)}
.ru-season:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(110,61,82,.25)} /* taste-skill-ignore: tarjeta que se levanta */
.ru-season:hover img{transform:scale(1.06)}
.ru-season:hover::after{opacity:1}
.ru-season:hover .ru-season__cta,.ru-season:focus-visible .ru-season__cta{opacity:1;transform:none}
.ru-season:hover .ru-season__cta svg{transform:translateX(4px)}
.ru-season__cta svg{transition:transform .35s var(--ru-ease)}
.ru-season:focus-visible{outline:3px solid var(--ru-primary);outline-offset:4px}
/* pastilla con el número de rutas: aparece arriba a la derecha al pasar el cursor */
.ru-season__count{position:absolute;top:18px;right:18px;display:inline-flex;align-items:center;gap:7px;padding:7px 14px 7px 10px;border-radius:999px;
  background:var(--ru-white);color:var(--ru-text-accent);font-size:.8125rem;font-weight:600;
  opacity:0;transform:translateY(-6px);transition:opacity .45s var(--ru-ease), transform .5s var(--ru-ease)}
.ru-season__count svg{color:var(--ru-primary)}
.ru-season:hover .ru-season__count,.ru-season:focus-visible .ru-season__count{opacity:1;transform:none}
@media (hover:none){ .ru-season__cta,.ru-season__count{opacity:1;transform:none} }
/* Portátil y ordenador con ratón: descripción y «Ver viajes» plegados; al pasar el cursor se despliegan
   junto con la pastilla de rutas disponibles (24/10) */
@media (min-width:960px) and (hover:hover){
  .ru-season__row{max-height:0;min-height:0!important;overflow:hidden;opacity:0;
    transition:max-height .6s var(--ru-ease), opacity .45s var(--ru-ease)}
  .ru-season:hover .ru-season__row,.ru-season:focus-visible .ru-season__row{max-height:12em;opacity:1}
}
/* Meses */
.ru-dates__monthbtn,.ru-dates__sheethead{display:none}
.ru-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;margin:clamp(24px,4vh,40px) 0 0;padding:0;list-style:none}
.ru-month{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 6px;border-radius:999px;
  border:1px solid rgba(150,88,113,.3);background:transparent;color:var(--ru-text-accent);text-decoration:none;
  font-size:.875rem;font-weight:600;white-space:nowrap;transition:background .3s var(--ru-ease), color .3s var(--ru-ease), border-color .3s var(--ru-ease)}
.ru-month:hover{background:var(--ru-primary);border-color:var(--ru-primary);color:var(--ru-white)}
.ru-month:focus-visible{outline:2px solid var(--ru-primary);outline-offset:2px}
.ru-month[aria-disabled="true"]{color:rgba(125,104,115,.45);border-style:dashed;border-color:rgba(150,88,113,.2);background:none;pointer-events:none}  /* sin rutas: más claro */
.ru-js .ru-dates .ru-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease)}
.ru-js .ru-dates .ru-reveal.is-in{opacity:1;transform:none}
.ru-js .ru-dates__grid > li:nth-child(2) .ru-reveal{transition-delay:.08s,.08s,0s}
.ru-js .ru-dates__grid > li:nth-child(3) .ru-reveal{transition-delay:.16s,.16s,0s}
.ru-js .ru-dates .ru-season.ru-reveal{transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease), box-shadow .6s var(--ru-ease)}
@media (max-width:1100px){ .ru-months{grid-template-columns:repeat(6,minmax(0,1fr))} }
/* Tablet y móvil: las tarjetas en fila deslizable con el dedo (asoma la siguiente) */
/* Versión compacta (antes de que algún título pase a dos líneas): las tres temporadas a la vista
   una bajo otra, sin carrusel ni texto */
@media (max-width:959px){
  .ru-season:hover{transform:none}
  .ru-season__cta,.ru-season__count{opacity:1;transform:none}  /* siempre visibles en la versión compacta */
  .ru-dates__grid{grid-template-columns:1fr;gap:10px;margin-top:28px}
  .ru-season{min-height:0;height:132px;justify-content:center}
  .ru-season::before{background:linear-gradient(90deg,rgba(110,61,82,.9) 0%,rgba(110,61,82,.55) 55%,rgba(110,61,82,.15) 100%)} /* taste-skill-ignore */
  .ru-season__body{padding:0 20px}
  .ru-season__row{position:absolute;right:18px;bottom:16px}
  .ru-season__text{display:none}
  .ru-season__row{min-height:0!important}
  .ru-season__title{font-size:1.75rem;margin-top:4px}
  .ru-season__when{font-size:.6875rem;letter-spacing:.2em}
  .ru-season__count{top:12px;right:12px;padding:5px 11px 5px 8px;font-size:.75rem}
  .ru-season__cta{font-size:.8125rem;padding-bottom:4px}
}
/* Tablet en versión compacta: franjas algo más altas; pastilla y "Ver viajes" apilados a la derecha,
   centrados en vertical frente al título */
@media (min-width:641px) and (max-width:959px){
  .ru-dates__grid{gap:12px}
  .ru-season{height:156px}
  .ru-season__body{padding:0 32px}
  .ru-season__title{font-size:2.25rem}
  .ru-season__count{top:calc(50% - 38px);right:28px}
  .ru-season__row{right:30px;bottom:calc(50% - 34px)}
  .ru-season__cta{font-size:.875rem}
}
@media (max-width:640px){
  .ru-dates{padding:36px 16px 40px}
  .ru-dates .ru-dest__title{font-size:clamp(2.5rem,13vw,3.75rem)}
  .ru-dates .ru-dest__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-dates__lead{font-size:1rem}
  /* meses: botón "Viajar en · elige un mes" que abre una hoja inferior, igual que el filtro de Mejores Rutas */
  /* a todo el ancho, como un botón, y con más aire por arriba */
  .ru-dates__monthbtn{display:flex;width:100%;justify-content:center;min-height:52px;margin-top:36px;border-radius:var(--ru-radius)}
  .ru-dates.is-months .ru-dates__backdrop{opacity:1}
  .ru-months{
    position:fixed;left:0;right:0;bottom:0;z-index:200;margin:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
    padding:20px 16px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--ru-white);
    box-shadow:0 -20px 50px rgba(34,18,27,.2); /* taste-skill-ignore: hoja inferior flotante */
    transform:translateY(105%);visibility:hidden;opacity:1!important;transition:transform .45s var(--ru-ease), visibility 0s .45s}
  .ru-dates.is-months .ru-months{transform:none;visibility:visible;transition-delay:0s}
  .ru-dates__sheethead{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;margin-bottom:4px}
  .ru-dates__sheethead b{font-size:1.0625rem;font-weight:700;color:var(--ru-text-accent)}
  .ru-dates__sheethead button{width:44px;height:44px;border:0;border-radius:50%;background:var(--ru-tint);color:var(--ru-primary-dark);display:grid;place-items:center;cursor:pointer}
  .ru-month{min-height:48px;border-radius:14px;font-size:.9375rem}
}
@media (prefers-reduced-motion:reduce){
  .ru-season,.ru-season img,.ru-season__cta{transition:opacity .3s ease}
  .ru-season:hover,.ru-season:hover img{transform:none}
}

/* =========================================================
   TIPOS DE RUTAS — Ruta garantizada / Ruta en grupo
   Fondo blanco. Texto a la izquierda (columnas 1-5) y dos tarjetas a la derecha (6-12):
   foto vertical a sangre con un panel blanco flotante abajo (etiqueta, nombre, texto y "Ver viajes →");
   al pasar el cursor el panel despliega tres claves y la foto se acerca.
   ========================================================= */
.ru-types{background:var(--ru-white);padding:clamp(72px,10vh,128px) var(--ru-page)}
@media (min-width:901px) and (max-height:780px){ .ru-types{padding-top:64px;padding-bottom:64px} }
.ru-types__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.ru-types__text{grid-column:1 / 6}
.ru-types__title em{font-style:italic;display:block}
.ru-types__lead{margin:24px 0 0;max-width:44ch;font-size:1.0625rem;line-height:1.65;color:var(--ru-muted)}
.ru-types__grid{grid-column:6 / 13;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none}
/* tarjeta: foto vertical a sangre y panel blanco que flota abajo; al pasar el cursor el panel
   se despliega con las claves y la foto se acerca */
.ru-type{position:relative;display:block;height:clamp(420px,58vh,540px);border-radius:var(--ru-radius);overflow:hidden;isolation:isolate;
  color:var(--ru-ink);text-decoration:none;background:linear-gradient(180deg,var(--ru-tint) 0%,#f5eaf0 100%)}
.ru-type__media{position:absolute;inset:0;z-index:-1}  /* la foto ocupa toda la tarjeta; el panel flota encima */
.ru-type__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ru-ease)}
.ru-type__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,26,34,0) 45%,rgba(42,26,34,.35) 100%)} /* taste-skill-ignore: velo suave para asentar el panel */
.ru-type__icon{position:absolute;top:16px;left:16px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.9);color:var(--ru-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ru-type__icon svg{width:20px;height:20px}
.ru-type__body{position:absolute;left:14px;right:14px;bottom:14px;padding:22px 22px 18px;border-radius:14px;background:var(--ru-white);
  transition:box-shadow .5s var(--ru-ease)}
.ru-type__tag{margin:0;font-size:var(--ru-text-xs);font-weight:600;letter-spacing:.12em;color:var(--ru-primary)}
.ru-type__title{margin:0;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:clamp(1.5rem,1.9vw,1.9rem);line-height:1.1;color:var(--ru-text-accent)}
.ru-type__text{margin:8px 0 0;font-size:.9375rem;line-height:1.55;color:var(--ru-muted)}
/* claves: plegadas en reposo, se despliegan al pasar el cursor */
.ru-type__keys{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:.875rem;color:var(--ru-ink);
  max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ru-ease), opacity .4s var(--ru-ease), margin .6s var(--ru-ease)}
.ru-type__keys li{display:flex;gap:8px;align-items:flex-start}
.ru-type__keys svg{flex:none;margin-top:2px;color:var(--ru-primary)}
.ru-type__foot{display:flex;justify-content:flex-end;margin-top:14px}
.ru-type__cta{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;font-weight:700;color:var(--ru-primary)}
.ru-type__cta svg{transition:transform .35s var(--ru-ease)}
.ru-js .ru-types .ru-type.ru-reveal{transition:opacity .9s var(--ru-ease), transform .7s var(--ru-ease), --ru-lift .5s var(--ru-ease), box-shadow .5s var(--ru-ease)}
/* al pasar el cursor la tarjeta sube y gana sombra, como la de oferta del banner (25/10: sin giro, que emborronaba el texto, y sin zoom) */
.ru-type{top:var(--ru-lift)}
.ru-type:hover{--ru-lift:-6px;box-shadow:0 24px 50px -18px rgba(42,26,34,.35)} /* taste-skill-ignore: sombra solo al levantarse */
.ru-type:hover .ru-type__media img,.ru-type:focus-visible .ru-type__media img{transform:scale(1.025)}   /* zoom muy sutil (25/10) */
.ru-type:hover .ru-type__keys,.ru-type:focus-visible .ru-type__keys{max-height:120px;opacity:1;margin-top:14px}
.ru-type:hover .ru-type__body{box-shadow:0 18px 40px rgba(42,26,34,.22)} /* taste-skill-ignore: panel que se eleva */
/* «Ver rutas» sin subrayado (27/10, Alberto): al pasar el ratón solo se mueve la flecha */
.ru-type:hover .ru-type__cta svg{transform:translateX(4px)}
.ru-type:focus-visible{outline:2px solid var(--ru-primary);outline-offset:4px}
.ru-js .ru-types .ru-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ru-ease), transform 1s var(--ru-ease)}
.ru-js .ru-types .ru-reveal.is-in{opacity:1;transform:none}
.ru-js .ru-types__grid > li:nth-child(2) .ru-reveal{transition-delay:.1s}
@media (hover:none){ .ru-type__keys{max-height:none;opacity:1;margin-top:14px} }
/* Portátil y ordenador con ratón: en reposo solo título y «Ver viajes»; el texto se despliega
   al pasar el cursor, junto con las claves (24/10) */
@media (min-width:901px) and (hover:hover){
  .ru-type__text{max-height:0;opacity:0;overflow:hidden;margin-top:0;
    transition:max-height .6s var(--ru-ease), opacity .4s var(--ru-ease), margin .6s var(--ru-ease)}
  .ru-type:hover .ru-type__text,.ru-type:focus-visible .ru-type__text{max-height:8em;opacity:1;margin-top:8px}
  /* «Ver rutas» se despliega con la descripción (27/10, Alberto) */
  .ru-type__foot{max-height:0;opacity:0;overflow:hidden;margin-top:0;
    transition:max-height .6s var(--ru-ease), opacity .4s var(--ru-ease), margin .6s var(--ru-ease)}
  .ru-type:hover .ru-type__foot,.ru-type:focus-visible .ru-type__foot{max-height:3em;opacity:1;margin-top:14px}
}
/* Tablet y móvil: mismo diseño que en ordenador (foto en toda la tarjeta y panel blanco flotante
   con margen alrededor), en versión más baja y sin las claves */
@media (max-width:900px){
  .ru-types{padding-top:64px;padding-bottom:64px}
  .ru-types__text,.ru-types__grid{grid-column:1 / -1}
  .ru-types__text{text-align:center}
  .ru-types__lead{margin-left:auto;margin-right:auto}
  .ru-types__grid{margin-top:32px;gap:14px}
  .ru-type{height:340px}
  .ru-type__keys{display:none}
  .ru-type__body{left:12px;right:12px;bottom:12px;padding:18px 18px 14px}
  .ru-type__title{font-size:1.4rem}
  .ru-type__text{font-size:.875rem}
  .ru-js .ru-types .ru-type.ru-reveal.is-in:hover,.ru-js .ru-types__grid > li:nth-child(2) .ru-type.ru-reveal.is-in:hover{transform:none}
}
@media (max-width:640px){
  .ru-types{padding:44px 16px 48px}
  .ru-types .ru-dest__title{font-size:clamp(2.5rem,13vw,3.75rem)}
  .ru-types .ru-dest__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-types__lead{font-size:1rem}
  .ru-types__grid{grid-template-columns:1fr;gap:10px;margin-top:24px}
  .ru-type{height:270px}
  /* móvil: panel en dos columnas, título y texto a la izquierda y "Ver viajes" a la derecha */
  .ru-type__body{left:10px;right:10px;bottom:10px;padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}
  .ru-type__title,.ru-type__text{grid-column:1}
  .ru-type__foot{grid-column:2;grid-row:1 / span 2;margin:0;align-self:center}
  .ru-type__cta{white-space:nowrap}
  .ru-type__title{font-size:1.25rem}
  .ru-type__text{font-size:.8125rem;line-height:1.45;margin-top:6px}
}
@media (prefers-reduced-motion:reduce){
  .ru-js .ru-types .ru-type.ru-reveal.is-in:hover{transform:none}
  .ru-type__media img,.ru-type__keys{transition:none}
  .ru-type:hover .ru-type__media img{transform:none}
}


/* ===================== Pie de página =====================
   Fondo malva de la marca, títulos de columna en Elegant, enlaces en DM Sans.
   Arriba, la suscripción con el mismo estilo de título que las secciones (antetítulo espaciado + Elegant);
   en medio, logo con contacto y redes (círculos blancos como los iconos del menú) y cuatro columnas de enlaces;
   abajo, copyright y "Volver arriba". Misma retícula de 12 columnas y margen --ru-page */
.ru-foot{
  --fl:rgba(255,255,255,.8);   /* enlaces */
  --fline:rgba(255,255,255,.22);
  --fpb:clamp(60px,8vh,88px);  /* espacio bajo la suscripción, donde ocurre el degradado (más compacto, 24/10) */
  /* Degradado de #f5eaf0 al malva de la marca. --fw = alto de la
     suscripción (lo pone el JS): la suscripción queda sobre blanco y el resto sobre malva */
  --g0:calc(var(--fw,320px) - var(--fpb) * .85);  /* empieza el degradado (bajo la casilla) */
  --gl:calc(var(--fpb) * .85 + 40px);              /* largo del degradado */
  background:linear-gradient(180deg, #f5eaf0 0, #f5eaf0 var(--g0),
    color-mix(in srgb, var(--ru-primary) 8%, #f5eaf0) calc(var(--g0) + var(--gl) * .2),
    color-mix(in srgb, var(--ru-primary) 28%, #f5eaf0) calc(var(--g0) + var(--gl) * .42),
    color-mix(in srgb, var(--ru-primary) 58%, #f5eaf0) calc(var(--g0) + var(--gl) * .64),
    color-mix(in srgb, var(--ru-primary) 85%, #f5eaf0) calc(var(--g0) + var(--gl) * .84),
    var(--ru-primary) calc(var(--g0) + var(--gl)));
  color:var(--ru-white);
  padding:clamp(56px,9vh,96px) var(--ru-page) 0;
}
.ru-foot a{color:inherit;text-decoration:none}
.ru-foot__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
/* Suscripción */
.ru-foot__news{align-items:end;padding-bottom:calc(var(--fpb) + 24px)}
.ru-foot__intro{grid-column:1 / 7}
.ru-foot__kicker{margin:0 0 8px;font-size:clamp(.8125rem,1.1vw,1rem);text-transform:uppercase;letter-spacing:.42em;color:var(--ru-muted)}
.ru-foot__title{margin:0;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:clamp(2.25rem,3.6vw,3.5rem);line-height:1.04;letter-spacing:0;color:var(--ru-primary);text-wrap:balance}
.ru-foot__form{grid-column:7 / 13;width:100%;position:relative}
/* Campo de email y botón separados (el botón fuera de la caja de texto) */
.ru-foot__field{display:flex;gap:var(--ru-gap)}
.ru-foot__field input{
  flex:1 1 auto;min-width:0;box-sizing:border-box;border:0;background:var(--ru-white);padding:0 22px;height:52px;border-radius:var(--ru-radius);
  font:inherit;font-size:1rem;color:var(--ru-ink);outline:0;
  box-shadow:inset 0 0 0 1px var(--ru-tint-2), 0 14px 34px -18px rgba(150,88,113,.45);transition:box-shadow .25s var(--ru-ease);
}
.ru-foot__field input::placeholder{color:var(--ru-faint)}
.ru-foot__field input:focus{box-shadow:inset 0 0 0 1.5px var(--ru-primary), 0 0 0 3px var(--ru-tint-2)}
.ru-foot__field .ru-submit{flex:none;height:52px;padding:0 26px;font-size:1rem}
.ru-foot__field .ru-submit:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
/* Bajo el campo: aviso legal y mensaje. Fuera del flujo para que el campo quede alineado con la base del título */
.ru-foot__below{position:absolute;left:0;right:0;top:100%;padding-top:12px}
.ru-foot__note{margin:0;font-size:var(--ru-text-xs);line-height:1.5;color:var(--ru-muted);text-align:center}
.ru-foot__msg{text-align:center}
.ru-foot__note a{color:var(--ru-text-accent);text-decoration:underline;text-underline-offset:3px}
.ru-foot__note a.ru-ulink{text-decoration:none}   /* subrayado animado solo al pasar el ratón (03/11) */
.ru-foot__msg{margin:6px 0 0;font-size:var(--ru-text-xs);font-weight:700;color:var(--ru-text-accent)}
/* Logo, contacto y enlaces */
.ru-foot__main{padding:clamp(56px,8vh,88px) 0 clamp(40px,6vh,64px);row-gap:40px;align-items:center}
.ru-foot__brand{grid-column:1 / 5;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
/* Bajo el logo: teléfono y email en una fila y redes en otra */
.ru-foot__info{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.ru-foot__logo{display:block;width:clamp(200px,17vw,260px)}
.ru-foot__logo img{display:block;width:100%;height:auto}
.ru-foot__contact{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0;font-style:normal}
.ru-foot__contact a{display:inline-flex;align-items:center;gap:10px;color:var(--fl);transition:color .25s var(--ru-ease)}
.ru-foot__contact a:hover{color:var(--ru-white)}
.ru-foot__contact svg{flex:none;opacity:.85}
.ru-foot__social{display:flex;gap:10px;margin:0;padding:0;list-style:none}
.ru-foot__social a{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:var(--ru-white);color:var(--ru-primary);
  transition:background .3s var(--ru-ease), color .3s var(--ru-ease), transform .3s var(--ru-ease), box-shadow .3s var(--ru-ease);
}
.ru-foot__social a:hover{background:var(--ru-primary-dark);color:var(--ru-white);transform:scale(1.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.ru-foot__social a:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px}
.ru-foot__cols{grid-column:5 / 13;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.ru-foot__h{margin:0 0 16px;font-family:var(--ru-font-display);font-weight:400;font-size:clamp(1.5rem,1.9vw,1.875rem);line-height:1.05;color:var(--ru-white)}
.ru-foot__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.ru-foot__list a{
  display:inline;color:var(--fl);font-size:.9375rem;line-height:1.4;
  background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;
  transition:color .25s var(--ru-ease), background-size .35s var(--ru-ease);
}
.ru-foot__list a:hover,.ru-foot__list a:focus-visible{color:var(--ru-white);background-size:100% 1px}
.ru-foot a:focus-visible{outline:3px solid var(--ru-white);outline-offset:3px;border-radius:4px}
/* Barra inferior */
.ru-foot__bar{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;padding:22px 0;text-align:center;border-top:1px solid var(--fline);font-size:var(--ru-text-xs);color:var(--fl)}
.ru-foot__bar p{margin:0}
/* Volver arriba: esfera malva fija en la esquina inferior derecha de la pantalla; aparece al bajar por la página */
.ru-totop{
  position:fixed;right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:80;
  width:56px;height:56px;border:0;border-radius:50%;cursor:pointer;display:grid;place-items:center;
  background:var(--ru-primary);color:var(--ru-white);
  box-shadow:0 10px 26px -8px rgba(60,25,42,.5);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.9);
  transition:opacity .35s var(--ru-ease), transform .45s var(--ru-ease), background .3s var(--ru-ease), visibility 0s .45s;
}
.ru-totop.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.ru-totop:hover{background:var(--ru-primary-dark)}
/* sobre la parte malva del pie se invierte (blanca con flecha malva) para no confundirse con el fondo */
.ru-totop.is-on-dark{background:var(--ru-white);color:var(--ru-primary)}
.ru-totop.is-on-dark:hover{background:var(--ru-sand)}
.ru-totop svg{transition:transform .35s var(--ru-ease)}
.ru-totop:hover svg{transform:translateY(-3px)}
.ru-totop:focus-visible{outline:3px solid var(--ru-primary);outline-offset:4px}
body.ru-sheet-open .ru-totop{opacity:0;visibility:hidden}
@media (max-width:640px){ .ru-totop{width:48px;height:48px} }
/* Móvil y Tablet (04/11, Alberto: «de forma más discreta o en un punto donde no moleste»): botón pequeño, blanco
   translúcido con la flecha malva, pegado a la esquina; solo se ve al subir por la página (index.html, script del pie) */
@media (max-width:900px){
  .ru-totop,.ru-totop.is-on-dark{width:40px;height:40px;right:max(10px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));
    background:rgba(255,255,255,.82);color:var(--ru-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
    box-shadow:0 4px 14px -4px rgba(60,25,42,.28);border:1px solid rgba(150,88,113,.14)}
  .ru-totop svg{width:18px;height:18px}
  .ru-totop:hover,.ru-totop.is-on-dark:hover{background:rgba(255,255,255,.92)}
}
/* Portátil y tablet */
@media (max-width:1100px){
  /* Tablet y móvil: logo, contacto, redes y columnas de enlaces centrados */
  .ru-foot__brand{grid-column:1 / -1;align-items:center;text-align:center}
  .ru-foot__info{align-items:center}
  .ru-foot__contact{justify-content:center}
  .ru-foot__cols{grid-column:1 / -1;text-align:center}
}
@media (max-width:900px){
  .ru-foot__intro,.ru-foot__form{grid-column:1 / -1}
  .ru-foot__intro{margin-bottom:24px;text-align:center}  /* en dos filas, centrado */
  .ru-foot__below{position:static}
  .ru-foot__news{padding-bottom:var(--fpb)}
}
/* Móvil: compacto, enlaces en dos columnas */
@media (max-width:640px){
  .ru-foot{padding:44px 16px 0}
  .ru-foot__kicker{font-size:.8125rem;letter-spacing:.28em;margin-bottom:6px}
  .ru-foot__title{font-size:clamp(2rem,9.5vw,2.5rem)}
  .ru-foot{--fpb:56px}
  .ru-foot__intro{margin-bottom:20px}
  .ru-foot__field{flex-direction:column}
  .ru-foot__field .ru-submit{justify-content:center}
  .ru-foot__main{padding:44px 0 32px;row-gap:28px}
  .ru-foot__brand{gap:18px}
  .ru-foot__logo{width:190px}
  .ru-foot__contact{font-size:.875rem}
  .ru-foot__info{gap:16px}
  .ru-foot__contact a{gap:8px}
  .ru-foot__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
  .ru-foot__h{font-size:1.5rem;margin-bottom:12px}
  .ru-foot__list{gap:8px}
  .ru-foot__bar{padding:18px 0 24px}
}
@media (prefers-reduced-motion:reduce){
  .ru-foot__social a:hover,.ru-totop:hover svg{transform:none}
  .ru-totop{transition:opacity .2s ease, visibility 0s .2s;transform:none}
}


/* ===================== Menú «Destinos» (megamenú) =====================
   Un clic en "Destinos" abre un panel blanco bajo la barra. A la izquierda, las zonas con su foto
   redonda; al pasar por una zona, a la derecha aparecen sus países y una foto grande de la zona.
   Todo son enlaces directos: zona → su página, país → su página (un solo clic).
   En tablet vertical y móvil (≤ 900 px) es una hoja a pantalla completa con las zonas desplegables. */
.ru-mega{position:fixed;inset:0;z-index:58;visibility:hidden;pointer-events:none;transition:visibility 0s .45s}
.ru-mega.is-open{visibility:visible;pointer-events:auto;transition-delay:0s}
.ru-mega__backdrop{position:absolute;inset:0;background:rgba(20,10,16,.45);opacity:0;transition:opacity .45s var(--ru-ease)}
.ru-mega.is-open .ru-mega__backdrop{opacity:1}
.ru-mega__panel{
  position:absolute;top:var(--mega-top,24px);left:max(12px, calc(var(--ru-page) - 20px));right:var(--mega-right, max(12px, calc(var(--ru-page) - 20px)));
  max-height:calc(100svh - var(--mega-top,24px) - 16px);overflow:auto;overscroll-behavior:contain;
  scrollbar-width:none;  /* sin barra propia: no se duplica con la de la página ni cambia el ancho al desplegar */
  background:var(--ru-white);border-radius:24px;padding:28px 36px 28px;color:var(--ru-ink);
  box-shadow:0 30px 80px -20px rgba(42,26,34,.45); /* taste-skill-ignore: panel flotante */
  opacity:0;transform:translateY(-14px);transition:opacity .4s var(--ru-ease), transform .5s var(--ru-ease);
}
.ru-mega.is-open .ru-mega__panel{opacity:1;transform:none}
/* cabecera: título y, justo a su lado, el buscador (centrado en vertical con el título); cerrar a la derecha */
.ru-mega__head{display:flex;align-items:center;gap:40px;margin-bottom:22px}
.ru-mega__head .ru-mega__search{flex:0 1 480px}
.ru-mega__head .ru-mega__close{margin-left:auto;align-self:flex-start}
/* buscador de destinos (mismo estilo que la suscripción del pie: campo blanco y botón separados) */
.ru-mega__search{display:flex;gap:var(--ru-gap);min-width:0;width:100%}
.ru-mega__search input{flex:1 1 0;min-width:0;box-sizing:border-box;height:52px;padding:0 20px;border:0;border-radius:var(--ru-radius);background:var(--ru-white);
  font:inherit;font-size:1rem;color:var(--ru-ink);outline:0;box-shadow:inset 0 0 0 1px var(--ru-tint-2), 0 14px 34px -18px rgba(150,88,113,.45);transition:box-shadow .25s var(--ru-ease)}
.ru-mega__search input::placeholder{color:var(--ru-faint)}
.ru-mega__search input:focus{box-shadow:inset 0 0 0 1.5px var(--ru-primary), 0 0 0 3px var(--ru-tint-2)}
.ru-mega__search input::-webkit-search-cancel-button{display:none}
.ru-mega__search .ru-submit{flex:none;height:52px;padding:0 24px;font-size:1rem}
.ru-mega__search .ru-submit:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
.ru-mega__none{margin:4px 0 0;color:var(--ru-muted)}
.ru-mega__results{display:none}
.ru-mega__kicker{margin:0 0 6px;font-size:var(--ru-text-xs);letter-spacing:.42em;text-transform:uppercase;color:var(--ru-muted)}
.ru-mega__title{margin:0;font-family:var(--ru-font-display);font-weight:400;font-size:clamp(2.4rem,3.4vw,3.25rem);line-height:.95;color:var(--ru-primary)}
/* mismo cierre que las hojas del buscador y de los filtros: círculo malva claro de 40 px con la X */
.ru-mega__close{flex:none;width:40px;height:40px;border:0;border-radius:50%;cursor:pointer;display:grid;place-items:center;
  background:var(--ru-tint-2);color:var(--ru-primary);transition:background .3s var(--ru-ease), color .3s var(--ru-ease)}
.ru-mega__close:hover{background:var(--ru-primary);color:var(--ru-white)}
.ru-mega a:focus-visible,.ru-mega button:focus-visible{outline:3px solid var(--ru-primary);outline-offset:3px;border-radius:12px}
/* las tres columnas terminan a la misma altura; la lista de países lleva scroll interno */
.ru-mega__panel::-webkit-scrollbar{display:none}
.ru-mega__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:var(--mega-h,440px);column-gap:24px;align-items:stretch}
/* zonas */
.ru-mega__zones{grid-column:1 / 5;min-height:0;overflow-y:auto;margin:0;padding:0 24px 0 0;list-style:none;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--ru-tint-2)}
.ru-mega__row{display:flex;align-items:center;border-radius:18px;transition:background .3s var(--ru-ease)}
.ru-mega__zone.is-active .ru-mega__row{background:var(--ru-tint)}
.ru-mega__zlink{flex:1;min-width:0;display:flex;align-items:center;gap:16px;padding:10px 12px;border:0;background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}
.ru-mega__thumb{flex:none;width:58px;height:58px;border-radius:50%;overflow:hidden;background:var(--ru-tint-2);
  box-shadow:0 0 0 3px var(--ru-white), 0 0 0 4px var(--ru-tint-2);transition:box-shadow .35s var(--ru-ease)}
.ru-mega__zone.is-active .ru-mega__thumb{box-shadow:0 0 0 3px var(--ru-white), 0 0 0 5px var(--ru-primary)}
.ru-mega__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ru-ease)}
.ru-mega__zone.is-active .ru-mega__thumb img{transform:scale(1.12)}
.ru-mega__zname{display:flex;flex-direction:column;gap:2px;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:1.25rem;line-height:1.15;color:var(--ru-text-accent)}
.ru-mega__zname small{font-family:var(--ru-font-body);font-weight:400;font-size:var(--ru-text-xs);color:var(--ru-muted)}
.ru-mega__go{flex:none;margin:0 4px 0 auto;color:var(--ru-primary);opacity:0;transform:translateX(-6px);transition:opacity .3s var(--ru-ease), transform .35s var(--ru-ease)}
.ru-mega__zone.is-active .ru-mega__go{opacity:.45;transform:none}
.ru-mega__zone.is-pinned .ru-mega__go{opacity:1;transform:none}
.ru-mega__zone.is-pinned .ru-mega__row{background:var(--ru-tint-2)}
.ru-mega__toggle,.ru-mega__drop,.ru-mega__zones .ru-mega__mall{display:none}
/* países de la zona activa */
/* todas las listas apiladas en la misma celda: el alto es siempre el de la más larga (sin saltos) */
.ru-mega__detail{grid-column:5 / 10;display:grid;grid-template-rows:minmax(0,1fr);min-height:0;padding:6px 0 0 8px}
.ru-mega__pane{grid-area:1 / 1;display:flex;flex-direction:column;min-height:0;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .3s var(--ru-ease), transform .45s var(--ru-ease), visibility 0s .3s}
.ru-mega__pane.is-active{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.ru-mega__phead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--ru-tint-2)}
.ru-mega__pname{margin:0;white-space:nowrap;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:1.75rem;line-height:1.1;color:var(--ru-text-accent)}
.ru-mega__all{display:inline-flex;align-items:center;gap:8px;flex:none;font-size:.875rem;font-weight:700;color:var(--ru-primary);text-decoration:none}
.ru-mega__all svg{transition:transform .35s var(--ru-ease)}
.ru-mega__all:hover:not(:has(.ru-ulink)){text-decoration:underline;text-underline-offset:4px}
.ru-mega__all:hover svg{transform:translateX(4px)}
.ru-mega__countries{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 20px;align-content:start}
.ru-mega__pane .ru-mega__countries{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 12px 12px 0;
  scrollbar-width:thin;scrollbar-color:var(--ru-tint-2) transparent;
  -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent)}
.ru-mega__countries a{
  display:inline;color:var(--ru-ink);text-decoration:none;font-size:.9875rem;line-height:1.4;
  background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;
  transition:color .25s var(--ru-ease), background-size .35s var(--ru-ease);
}
.ru-mega__countries a:hover,.ru-mega__countries a:focus-visible{color:var(--ru-text-accent);background-size:100% 1px}
.ru-mega__pane.is-active .ru-mega__countries li{animation:ru-mega-in .5s var(--ru-ease) backwards;animation-delay:calc(min(var(--i,0), 14) * 22ms + 60ms)}
@keyframes ru-mega-in{from{opacity:0;transform:translateY(6px)}}
/* Te recomendamos: ofertas en tarjeta (como la de la ruta destacada del banner) que pasan solas;
   si hay una zona marcada, solo las de esa zona */
.ru-mega__rec{grid-column:10 / 13;display:flex;flex-direction:column;min-width:0;min-height:0}
.ru-mega__rechead{text-align:center;margin:6px 0 12px;font-size:var(--ru-text-xs);font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-muted)}
.ru-mega__slides{position:relative;display:grid;align-items:start;touch-action:pan-y}
.ru-rec{grid-area:1 / 1;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:var(--ru-white);
  box-shadow:inset 0 0 0 1px var(--ru-tint-2);color:inherit;text-decoration:none;
  opacity:0;visibility:hidden;transform:translateX(18px);transition:opacity .4s var(--ru-ease), transform .55s var(--ru-ease), visibility 0s .4s, box-shadow .35s var(--ru-ease), --ru-lift .5s var(--ru-ease)}
.ru-rec.is-active{position:relative;top:var(--ru-lift);opacity:1;visibility:visible;transform:none;transition-delay:0s}
.ru-rec.is-out{transform:translateX(-18px)}
.ru-rec[hidden]{display:none}
.ru-rec__media{position:relative;height:clamp(110px,17vh,150px);overflow:hidden}
.ru-rec__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ru-ease)}
.ru-rec__tag{position:absolute;left:12px;top:12px;padding:6px 12px;border-radius:999px;background:var(--ru-primary);color:var(--ru-white);
  font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
.ru-rec__text{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.ru-rec__dest{margin:0;font-size:.6875rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-primary);line-height:1.6}
.ru-rec__title{display:block;margin:4px 0 0;font-weight:700;font-size:1.06rem;line-height:1.25;letter-spacing:-.01em;color:var(--ru-text-accent);text-wrap:balance}
.ru-rec__dur{margin:6px 0 0;font-size:.8125rem;font-style:italic;color:var(--ru-muted)}
.ru-rec__dates{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:.8125rem;font-weight:500;color:var(--ru-ink)}
.ru-rec__dates svg{flex:none;color:var(--ru-primary)}
.ru-rec__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px}
.ru-rec__price{margin:0;font-size:.6875rem;color:var(--ru-muted);white-space:nowrap}
.ru-rec__price b{margin-left:4px;font-size:1.125rem;font-weight:700;color:var(--ru-text-accent);font-variant-numeric:tabular-nums}
.ru-rec__cta{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:700;color:var(--ru-primary);white-space:nowrap}
.ru-rec__cta svg{transition:transform .35s var(--ru-ease)}
/* al pasar el ratón la tarjeta sube y gana sombra, como la de oferta del banner (25/10: sin giro ni zoom; el --tilt del JS queda sin uso) */
.ru-rec.is-active:hover{--ru-lift:-6px;box-shadow:inset 0 0 0 1px var(--ru-primary), 0 22px 44px -18px rgba(110,61,82,.4)}
.ru-rec:hover .ru-rec__media img{transform:scale(1.025)}   /* zoom muy sutil (25/10) */
.ru-rec:hover .ru-rec__cta:not(:has(.ru-ulink)){text-decoration:underline;text-underline-offset:3px}
.ru-rec:hover .ru-rec__cta svg{transform:translateX(5px)}
/* navegación: flecha · barras · flecha */
.ru-mega__nav{display:flex;align-items:center;gap:10px;margin-top:10px}
.ru-mega__arrow{flex:none;width:32px;height:32px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--ru-primary)}
.ru-mega__arrow svg{transition:transform .35s var(--ru-ease)}
.ru-mega__arrow--prev:hover svg{transform:translateX(-3px)}
.ru-mega__arrow--next:hover svg{transform:translateX(3px)}
.ru-mega__arrow:disabled{opacity:.3;cursor:default}
.ru-mega__bars{flex:1;display:flex;gap:6px}
.ru-mega__bar{position:relative;flex:1;height:3px;border:0;padding:0;border-radius:3px;background:var(--ru-tint-2);cursor:pointer;overflow:hidden}
.ru-mega__bar::before{content:"";position:absolute;inset:-8px 0}  /* zona de clic más alta */
.ru-mega__bar::after{content:"";position:absolute;inset:0;background:var(--ru-primary);transform:scaleX(0);transform-origin:left}
.ru-mega__bar.is-active::after{animation:ru-mega-bar var(--rec-time,5s) linear forwards}
.ru-mega.is-paused .ru-mega__bar.is-active::after{animation-play-state:paused}
@keyframes ru-mega-bar{to{transform:scaleX(1)}}
/* "Destinos" marcado en la barra mientras el panel está abierto */
.ru-menu__item.is-current .ru-menu__icon{background:var(--ru-white);color:var(--ru-primary)}
/* portátil pequeño y tablet horizontal (menú vertical): versión tablet del panel, sin «Te recomendamos»:
   zonas en una fila arriba y, debajo, los países a todo el ancho en 4 columnas, sin scroll interno */
@media (max-width:1279px){
  .ru-mega__panel{padding:24px 26px 28px}
  .ru-mega__rec{display:none}
  .ru-mega__body{display:block}
  .ru-mega__zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;padding:0 0 18px;margin-bottom:18px;border-right:0;border-bottom:1px solid var(--ru-tint-2);overflow:visible}
  /* zonas en fila: esfera arriba y nombre debajo, centrados */
  .ru-mega__zlink{flex-direction:column;justify-content:center;gap:8px;padding:10px 8px;text-align:center}
  .ru-mega__thumb{width:56px;height:56px}
  .ru-mega__zname{font-size:1.0625rem;align-items:center}
  .ru-mega--fechas:not(.is-accordion) .ru-mega__zname small span,.ru-mega--fechas:not(.is-accordion) .ru-mega__zname small::before{display:none}
  .ru-mega__go{display:none}
  .ru-mega__detail{display:grid;padding:0}
  .ru-mega .ru-mega__pane .ru-mega__countries{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;flex:none;-webkit-mask-image:none;mask-image:none;padding:2px 0 0}
  .ru-mega .ru-mega__detail{grid-template-rows:auto}
}
/* Tablet vertical y móvil: hoja a pantalla completa; zonas en una fila horizontal que se desliza y,
   debajo, los países de la zona tocada (o todos) en dos columnas */
@media (max-width:900px){
  .ru-mega{z-index:210}
  /* móvil: la misma entrada suave (fundido + pequeño desplazamiento), pero bajando desde arriba */
  .ru-mega__panel{top:0;left:0;right:0;bottom:0;max-height:none;border-radius:0;padding:10px 16px calc(28px + env(safe-area-inset-bottom));transform:translateY(-16px)}
  .ru-mega__head{margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px 12px}
  .ru-mega__head > div:first-child{flex:1}
  .ru-mega__head .ru-mega__close{margin-left:0}
  .ru-mega__head .ru-mega__search{order:3;flex:1 1 100%;margin:0}
  .ru-mega__search .ru-submit{padding:0 18px}
  .ru-mega__title{font-size:clamp(2.25rem,11vw,3rem)}
  .ru-mega__body{display:block}
  .ru-mega__rec{display:none}
}
/* Acordeón de zonas (tablet y móvil): cada zona se despliega con un clic y muestra sus países debajo.
   Al escribir en el buscador, los resultados ocupan el lugar de las zonas */
.ru-mega.is-accordion .ru-mega__body{display:block}
.ru-mega.is-accordion .ru-mega__detail,.ru-mega.is-accordion .ru-mega__rec{display:none}
.ru-mega.is-accordion.is-searching .ru-mega__zones{display:none}
.ru-mega.is-accordion.is-searching .ru-mega__results{display:block}
.ru-mega.is-accordion .ru-mega__results .ru-mega__countries{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:4px 4px 0}
.ru-mega.is-accordion .ru-mega__results .ru-mega__pname{font-size:1.25rem;margin-bottom:14px;white-space:normal}
.ru-mega.is-accordion .ru-mega__zones{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;border:0;overflow:visible}
.ru-mega.is-accordion .ru-mega__row{background:var(--ru-tint)}
.ru-mega.is-accordion .ru-mega__zlink{flex-direction:row;justify-content:flex-start;text-align:left;gap:16px;padding:8px 12px 8px 8px}
.ru-mega.is-accordion .ru-mega__zname{align-items:flex-start}
.ru-mega.is-accordion .ru-mega__thumb{width:52px;height:52px}
.ru-mega.is-accordion .ru-mega__zname{font-size:1.15rem}
.ru-mega.is-accordion .ru-mega__go{display:none}
.ru-mega.is-accordion .ru-mega__toggle{display:grid;place-items:center;flex:none;width:44px;height:44px;margin:0 -4px 0 auto;border-radius:50%;background:var(--ru-white);color:var(--ru-primary);pointer-events:none}
.ru-mega.is-accordion .ru-mega__toggle svg{transition:transform .4s var(--ru-ease)}
.ru-mega.is-accordion .ru-mega__zone.is-expanded .ru-mega__toggle svg{transform:rotate(180deg)}
.ru-mega.is-accordion .ru-mega__zone.is-expanded .ru-mega__row{background:var(--ru-tint-2)}
.ru-mega.is-accordion .ru-mega__drop{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ru-ease)}
.ru-mega.is-accordion .ru-mega__zone.is-expanded .ru-mega__drop{grid-template-rows:1fr}
.ru-mega.is-accordion .ru-mega__drop > div{overflow:hidden}
.ru-mega.is-accordion .ru-mega__drop .ru-mega__countries{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:16px 14px 6px}
.ru-mega.is-accordion .ru-mega__drop .ru-mega__all{margin:12px 14px 10px}
@media (min-width:901px){
  .ru-mega.is-accordion .ru-mega__drop .ru-mega__countries{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ru-mega.is-accordion .ru-mega__zones{max-height:calc(100svh - var(--mega-top,24px) - 140px);overflow-y:auto}
}
@media (prefers-reduced-motion:reduce){
  .ru-mega__panel,.ru-mega__pane,.ru-rec{transform:none!important}
  .ru-mega__bar.is-active::after{animation:none;transform:scaleX(1)}
  .ru-mega__pane.is-active .ru-mega__countries li{animation:none}
}


/* ===================== Menú «Tipos de rutas» =====================
   Mismo panel que «Destinos». Las tarjetas salen de la sección "Tipos de Rutas" de la portada
   (foto, nombre, texto y enlace): si se añade allí un tipo nuevo, aparece también aquí.
   Hasta 3 tipos caben en una fila; con más, se reparten en filas con scroll interno. */
.ru-mega--tipos .ru-mega__body{grid-template-rows:auto}   /* el alto lo marca el contenido */
.ru-mega__types{grid-column:1 / -1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ru-tint-2) transparent;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;align-content:start;padding:2px 4px 4px 2px;margin:0;list-style:none}
.ru-mega--tipos .ru-mega__types:has(> li:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
.ru-tcard{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none;border-radius:20px;transition:transform .45s var(--ru-ease)}
.ru-tcard__media{position:relative;height:clamp(120px,19vh,180px);border-radius:18px;overflow:hidden;background:var(--ru-tint)}
.ru-tcard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ru-ease)}
.ru-tcard__body{display:flex;flex-direction:column;flex:1;padding:16px 4px 0}
.ru-tcard__title{margin:0;font-family:var(--ru-font-country);font-weight:var(--ru-country-w);font-size:1.5rem;line-height:1.15;color:var(--ru-text-accent)}
.ru-tcard__text{margin:6px 0 0;font-size:.9375rem;line-height:1.5;color:var(--ru-muted)}
.ru-tcard__cta{display:inline-flex;align-items:center;align-self:flex-end;gap:8px;margin-top:auto;padding-top:14px;font-size:.875rem;font-weight:700;color:var(--ru-primary)}
.ru-tcard__cta svg{transition:transform .35s var(--ru-ease)}
.ru-tcard:hover{transform:translateY(-4px)}
.ru-tcard:hover .ru-tcard__media img{transform:scale(1.06)}
.ru-tcard:hover .ru-tcard__cta:not(:has(.ru-ulink)){text-decoration:underline;text-underline-offset:4px}
.ru-tcard:hover .ru-tcard__cta svg{transform:translateX(4px)}
.ru-tcard:focus-visible{outline:3px solid var(--ru-primary);outline-offset:4px}
/* Las tarjetas aparecen con el panel, todas a la vez y sin animación propia (23/10): la entrada escalonada
   hacía que «Ruta en grupo» apareciera distinta de «Ruta garantizada» */
.ru-mega--tipos .ru-mega__types li{animation:none}
.ru-mega--tipos:not(.is-open) .ru-mega__types li{animation:none}
/* con uno o dos tipos, tarjetas en horizontal (foto a la izquierda, texto a la derecha) que ocupan el ancho */
@media (min-width:901px){
  .ru-mega__types:not(:has(> li:nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr))}
  .ru-mega__types:not(:has(> li:nth-child(3))) .ru-tcard{flex-direction:row;align-items:stretch;gap:22px;padding:10px;border-radius:24px;background:var(--ru-sand)}
  .ru-mega__types:not(:has(> li:nth-child(3))) .ru-tcard__media{flex:0 0 40%;height:auto;min-height:150px}
  .ru-mega__types:not(:has(> li:nth-child(3))) .ru-tcard__body{padding:10px 14px 6px 0;justify-content:center}
  .ru-mega__types:not(:has(> li:nth-child(3))) .ru-tcard__title{font-size:1.5rem}
  .ru-mega__types:not(:has(> li:nth-child(3))) .ru-tcard__cta{margin-top:12px;padding-top:0}
}
@media (max-width:900px){
  .ru-mega__types{display:grid;grid-template-columns:1fr;gap:18px;overflow:visible;padding:0}
  .ru-mega--tipos .ru-mega__types:has(> li:nth-child(3)){grid-template-columns:1fr}
  /* tarjetas compactas en horizontal: foto pequeña a la izquierda, texto a la derecha (sin scroll con dos o tres tipos) */
  .ru-mega__types .ru-tcard{flex-direction:row;align-items:stretch;gap:14px;padding:8px;border-radius:18px;background:var(--ru-sand)}
  .ru-mega__types .ru-tcard__media{flex:0 0 104px;height:auto;min-height:118px;border-radius:12px}
  .ru-mega__types .ru-tcard__body{padding:4px 6px 2px 0;justify-content:center}
  .ru-mega__types .ru-tcard__title{font-size:1.2rem}
  .ru-mega__types .ru-tcard__text{font-size:.8125rem;line-height:1.45;margin-top:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .ru-mega__types .ru-tcard__when{font-size:.6875rem;letter-spacing:.18em;margin-bottom:2px}
  .ru-mega__types .ru-tcard__count{margin-top:4px}
  .ru-mega__types .ru-tcard__cta{padding-top:8px}
  .ru-mega__types{gap:10px}
  .ru-mega--tipos .ru-mega__panel{bottom:auto;max-height:100svh;border-radius:0 0 24px 24px}
}


/* Menú vertical de iconos visible junto a los paneles (tablet y portátil, o el banner en ordenador):
   solo los círculos, a la derecha y por fuera del panel; el panel deja ese hueco (--mega-right) */
body.ru-mega-menu .ru-header{z-index:59}
body.ru-mega-menu .ru-menu__backdrop{opacity:0!important;visibility:hidden!important}
body.ru-mega-menu .ru-menu__label{opacity:0!important;pointer-events:none}
body.ru-mega-menu .ru-header:not(.is-stuck) > a:first-child,
body.ru-mega-menu .ru-header:not(.is-stuck) .ru-account{opacity:0;pointer-events:none;transition:opacity .3s var(--ru-ease)}
/* Menú «Fechas»: mismo esquema que Destinos. Temporadas a la izquierda (esfera + nombre + nº de meses),
   en el centro los meses (todos, o los de la temporada bajo el ratón) y a la derecha «Te recomendamos» */
.ru-mega__mgrid{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start}
.ru-mega__mgrid .ru-month{min-height:44px}
.ru-mega__pane.is-active .ru-mega__mgrid li{animation:ru-mega-in .5s var(--ru-ease) backwards;animation-delay:calc(var(--i,0) * 25ms + 60ms)}
.ru-mega__pnote{margin:-6px 0 16px;font-size:.9375rem;line-height:1.5;color:var(--ru-muted)}
/* «Todos los países» / «Todos los meses»: bola malva con icono blanco */
.ru-mega__thumb--all{display:grid;place-items:center;background:var(--ru-primary);color:var(--ru-white)}
/* Fechas: cada temporada es una fila blanca, limpia: nombre en Lora malva y nº de rutas debajo;
   la foto asoma solo en el lado derecho, fundida con el blanco. La marcada muestra más foto y un filo malva */
.ru-mega--fechas .ru-mega__zones{gap:6px}
/* Fechas por dispositivo (con ratón):
   - Portátil (1280–1599 px): las temporadas en una sola fila de mini tarjetas (foto arriba, nombre y rutas debajo),
     sin flecha; debajo, los meses de la temporada y, a la derecha, «Te recomendamos».
   - Ordenador (≥1600 px): una sola columna de franjas a la izquierda, con su flecha. */
@media (min-width:1280px){
  .ru-mega--fechas .ru-stile{min-height:54px;padding-top:7px!important;padding-bottom:7px!important}
  .ru-mega--fechas .ru-stile__name{font-size:1.15rem}
}
}
}
.ru-mega--fechas .ru-mega__row{background:none!important;border-radius:14px}
.ru-stile{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:10px 16px 10px 18px!important;
  border-radius:14px;background:var(--ru-white);color:var(--ru-ink)!important;text-align:left;box-shadow:inset 0 0 0 1px var(--ru-tint-2);
  transition:box-shadow .4s var(--ru-ease), transform .45s var(--ru-ease)}
.ru-stile__img{position:absolute;top:0;right:0;bottom:0;z-index:-2;width:52%;height:100%;object-fit:cover;opacity:.55;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);mask-image:linear-gradient(90deg,transparent,#000 70%);
  transition:opacity .9s var(--ru-ease), transform 1.6s var(--ru-ease)}
/* «Todos los meses»: en lugar de foto, un degradado malva */
.ru-stile__img--color{display:block;background:var(--ru-primary)}
/* «Todos los meses» (27/10, Alberto: «el degradado»): ya no es un botón malva sólido; lleva el mismo fundido
   que las temporadas, con el malva en lugar de la foto, y se marca igual que ellas */
/* flecha a la derecha, como en Destinos: aparece en la temporada marcada */
.ru-mega--fechas .ru-stile .ru-mega__go{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;margin:0 -4px 0 0;border-radius:50%;
  background:var(--ru-white);color:var(--ru-primary);opacity:0;transform:translateX(-6px);transition:opacity .3s var(--ru-ease), transform .35s var(--ru-ease)}
.ru-mega--fechas .ru-mega__zone.is-active .ru-stile .ru-mega__go{opacity:1;transform:none}
.ru-mega--fechas.is-accordion .ru-stile .ru-mega__go{display:none}
.ru-stile__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ru-stile__name{font-family:var(--ru-font-country);font-weight:700;font-size:1.25rem;line-height:1.1;color:var(--ru-text-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ru-mega__mmonths{display:none}
.ru-mega--fechas.no-rec .ru-mega__rec{display:none}
.ru-mega--fechas.no-rec .ru-mega__detail{grid-column:5 / 13}
.ru-stile__pill{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;color:var(--ru-muted);white-space:nowrap}
.ru-stile__pill svg{color:var(--ru-primary)}
.ru-mega--fechas .ru-mega__zone.is-active .ru-stile{box-shadow:inset 0 0 0 1.5px var(--ru-primary), 0 12px 26px -18px rgba(110,61,82,.6);transform:translateX(4px)}
.ru-mega--fechas .ru-mega__zone.is-active .ru-stile__img{opacity:1;transform:scale(1.015)}
.ru-mega--fechas .ru-stile .ru-mega__toggle{display:none}
.ru-mega--fechas .ru-mega__zlink.ru-stile{flex-direction:row;justify-content:flex-start;text-align:left}
@media (max-width:1279px){
  /* 901–1279 px: misma versión que en ordenador (columna de temporadas a la izquierda y meses a la derecha),
     sin «Te recomendamos» */
  .ru-mega--fechas:not(.is-accordion) .ru-mega__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto;column-gap:24px}
  .ru-mega--fechas:not(.is-accordion) .ru-mega__zones{grid-column:1 / 6;display:flex!important;flex-direction:column;gap:6px;padding:0 24px 0 0;margin:0;
    border-bottom:0;border-right:1px solid var(--ru-tint-2);overflow:visible}
  .ru-mega--fechas:not(.is-accordion) .ru-mega__detail{grid-column:6 / 13;padding:6px 0 0 8px}
  .ru-mega--fechas:not(.is-accordion) .ru-mega__zlink.ru-stile{flex-direction:row;justify-content:flex-start;text-align:left;min-height:54px;padding:7px 14px 7px 16px!important}
  .ru-mega--fechas:not(.is-accordion) .ru-mega__mgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ru-mega--fechas:not(.is-accordion) .ru-stile__name{font-size:1.15rem}
  .ru-mega--fechas .ru-mega__zone.is-active .ru-stile{transform:translateY(-3px)}
}
/* acordeón (tablet y móvil): la franja hace de cabecera, con la flecha en un círculo blanco */
.ru-mega--fechas.is-accordion .ru-stile{min-height:64px;padding-right:10px!important}
.ru-mega--fechas.is-accordion .ru-stile .ru-mega__toggle{display:grid;width:36px;height:36px;margin:0;background:var(--ru-white);box-shadow:0 0 0 1px var(--ru-tint-2)}
.ru-mega--fechas.is-accordion .ru-mega__zone.is-expanded .ru-stile{box-shadow:inset 0 0 0 1.5px var(--ru-primary)}
.ru-mega--fechas.is-accordion .ru-mega__zone.is-expanded .ru-stile__img{opacity:1}
.ru-mega--fechas.is-accordion .ru-mega__zone .ru-stile{opacity:1;transform:none}
/* tablet y móvil: los 12 meses arriba, directamente (sin la caja «Todos los meses»), y debajo las temporadas
   en dos columnas; la que se despliega ocupa todo el ancho con sus meses */
.ru-mega--fechas.is-accordion .ru-mega__zone--all{display:none}
.ru-mega--fechas.is-accordion .ru-mega__body{display:flex;flex-direction:column}
.ru-mega--fechas.is-accordion .ru-mega__mmonths{order:-1;margin:0 0 22px}
.ru-mega--fechas.is-accordion .ru-mega__zones{display:flex;flex-direction:column;gap:8px}
.ru-mega--fechas.is-accordion .ru-stile{min-height:64px;padding:10px 10px 10px 16px!important}
.ru-mega--fechas.is-accordion .ru-stile__name{font-size:1.05rem;white-space:normal}
.ru-mega--fechas.is-accordion .ru-stile__pill{font-size:.6875rem;white-space:normal}
.ru-mega--fechas.is-accordion .ru-stile .ru-mega__toggle{width:34px;height:34px}
/* móvil: nombre de la temporada en la tipografía base (DM Sans) */
@media (max-width:640px){ .ru-mega--fechas .ru-stile__name{font-family:var(--ru-font-body);font-weight:900;font-size:1rem;letter-spacing:-.005em} }
.ru-mega__zone--all.is-active .ru-mega__thumb--all{background:var(--ru-primary-dark)}
/* cinco o más temporadas: filas algo más compactas para que quepan todas en la columna */
@media (min-width:1280px){
  .ru-mega__zones{gap:2px}
  .ru-mega__zlink{padding:7px 12px}
  .ru-mega__thumb{width:50px;height:50px}
}
.ru-mega.is-accordion .ru-mega__mmonths{display:block;margin-top:22px}
.ru-mega.is-accordion .ru-mega__mmonths .ru-mega__rechead{text-align:left;margin:0 0 12px}
.ru-mega.is-accordion .ru-mega__drop .ru-mega__mgrid{grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 8px 4px}
@media (max-width:1279px){ .ru-mega--fechas .ru-mega__mgrid{grid-template-columns:repeat(6,minmax(0,1fr))} .ru-mega--fechas .ru-mega__zones{grid-template-columns:repeat(auto-fit,minmax(0,1fr))} }
@media (max-width:900px){ .ru-mega--fechas .ru-mega__mgrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
.ru-tcard__when{font-size:var(--ru-text-xs);font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ru-muted);margin-bottom:4px}
.ru-tcard__count{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.8125rem;font-weight:600;color:var(--ru-text-accent)}
.ru-tcard__count svg{color:var(--ru-primary)}


/* Barra fija entre 901 y 1279 px con un panel abierto desde el menú: la columna de iconos, Mi Ruta y la X
   de la barra comparten estilo (círculos blancos con icono malva, mismo tamaño y separación); la opción del
   panel abierto va en malva; el panel lleva también su propia X (24/10) */
@media (min-width:901px) and (max-width:1279px){
  body.ru-mega-menu .ru-header.is-stuck .ru-menu__toggle{background:var(--ru-white);color:var(--ru-primary)}
  body.ru-mega-menu .ru-header.is-stuck .ru-menu__toggle:hover{background:var(--ru-primary-dark);color:var(--ru-white)}
  /* misma posición con el menú solo y con un panel abierto: los iconos no saltan */
  .ru-header.is-stuck .ru-menu__list{top:calc(100% + 22px);gap:12px}
  body.ru-mega-menu .ru-header.is-stuck .ru-menu__icon{width:var(--ru-menu-size);height:var(--ru-menu-size);background:var(--ru-white);color:var(--ru-primary);
    box-shadow:0 10px 24px -12px rgba(42,26,34,.45)}
  body.ru-mega-menu .ru-header.is-stuck .ru-menu__item.is-current .ru-menu__icon{background:var(--ru-primary);color:var(--ru-white)}
}

/* los paneles Destinos, Tipos de rutas y Fechas llevan su X de cierre en todos los dispositivos (24/10);
   además se cierran al salir con el ratón, con Esc, clic fuera o la rueda sobre la zona oscura */
/* la caja de la cabecera (Mi Ruta + menú) no tapa la X del panel: solo sus botones reciben clics */
.ru-header .ru-header__actions{pointer-events:none}
.ru-header .ru-header__actions > *{pointer-events:auto}
/* tampoco la columna de iconos del menú (barra fija en portátil): solo los iconos reciben clics */
.ru-menu.is-open .ru-menu__list{pointer-events:none}
.ru-menu.is-open .ru-menu__item{pointer-events:auto}

/* ===================== Desplegables del buscador: mismo lenguaje que los menús =====================
   Títulos en Lora malva; zonas y temporadas como filas blancas con foto (esfera para zonas, baldosa para
   temporadas), nombre y dato; al marcarlas, filo malva y un círculo con check. Países y meses en
   pastillas blancas con borde fino; marcados, rellenos en malva con check. */
.ru-panel__title{font-family:var(--ru-font-country);font-weight:600;font-size:1.0625rem;line-height:1.2;color:var(--ru-text-accent);margin:0 2px 12px;letter-spacing:0}
.ru-filter-hint{margin-left:6px;font-family:var(--ru-font-body);font-size:.75rem;font-weight:500;color:var(--ru-faint)}
/* filas de zonas y temporadas */
.ru-continents .ru-option,#ruPanelFecha .ru-tabs .ru-option{
  display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:7px 10px 7px 7px;text-align:left;
  background:var(--ru-white);border-radius:14px;box-shadow:inset 0 0 0 1px var(--ru-tint-2);color:var(--ru-ink)}
.ru-continents .ru-option:not(:disabled):hover,#ruPanelFecha .ru-tabs .ru-option:not(:disabled):hover{background:var(--ru-sand);color:var(--ru-ink)}
.ru-continents .ru-option[aria-pressed="true"],#ruPanelFecha .ru-tabs .ru-option[aria-pressed="true"],
.ru-continents .ru-option[aria-pressed="true"]:hover,#ruPanelFecha .ru-tabs .ru-option[aria-pressed="true"]:hover{
  background:var(--ru-tint);color:var(--ru-ink);box-shadow:inset 0 0 0 1.5px var(--ru-primary)}
.ru-opt__img{flex:none;width:38px;height:38px;border-radius:50%;object-fit:cover;background:var(--ru-tint-2);transition:transform .5s var(--ru-ease)}
#ruPanelFecha .ru-opt__img{border-radius:10px}
.ru-option:hover .ru-opt__img{transform:scale(1.06)}
.ru-opt__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ru-opt__name{font-family:var(--ru-font-country);font-weight:600;font-size:1rem;line-height:1.15;color:var(--ru-text-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ru-opt__sub{font-size:.75rem;font-weight:500;color:var(--ru-muted)}
.ru-opt__check{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--ru-tint-2);color:transparent;
  transition:background .25s var(--ru-ease), box-shadow .25s var(--ru-ease), color .25s var(--ru-ease)}
.ru-option[aria-pressed="true"] .ru-opt__check{background:var(--ru-primary);box-shadow:none;color:var(--ru-white)}
/* pastillas de países y meses */
.ru-options--countries .ru-option,#ruMonths .ru-option{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;background:var(--ru-white);
  box-shadow:inset 0 0 0 1px var(--ru-tint-2);color:var(--ru-text-accent);font-weight:600}
.ru-options--countries .ru-option:not(:disabled):hover,#ruMonths .ru-option:not(:disabled):hover{background:var(--ru-tint);box-shadow:inset 0 0 0 1px rgba(150,88,113,.35)}
.ru-options--countries .ru-option[aria-pressed="true"],#ruMonths .ru-option[aria-pressed="true"],
.ru-options--countries .ru-option[aria-pressed="true"]:hover,#ruMonths .ru-option[aria-pressed="true"]:hover{background:var(--ru-primary);color:var(--ru-white);box-shadow:none}
.ru-options--countries .ru-option[aria-pressed="true"]::before,#ruMonths .ru-option[aria-pressed="true"]::before{
  content:"";width:11px;height:11px;flex:none;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
#ruMonths .ru-option:disabled,#ruMonths .ru-option:disabled:hover{background:none;box-shadow:inset 0 0 0 1px var(--ru-tint-2);color:var(--ru-disabled);border:1px dashed transparent}
/* ordenador: paneles con más aire, esquinas como las tarjetas, columnas separadas por una línea fina */
@media (min-width:1101px){
  .ru-panel{padding:22px 24px!important;border-radius:22px;box-shadow:0 30px 80px -24px rgba(42,26,34,.5)}
  /* buscador de destino: resultados a la izquierda y «Destinos de moda» a la derecha, separados por una línea */
  .ru-panel--dest{right:auto;width:min(860px,100%);grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:0 26px;transform-origin:bottom left;align-items:stretch}
  .ru-panel--dest .ru-dest__col--trend{padding-left:26px;border-left:1px solid var(--ru-tint-2)}
  .ru-panel--dest .ru-dest__trend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}
  .ru-panel--dest .ru-dest__trow{padding:8px}
  .ru-continents{gap:6px}
  #ruPanelFecha{grid-template-columns:minmax(0,260px) 1fr;gap:0 26px}
  #ruPanelFecha > .ru-tabs{flex-direction:column;flex-wrap:nowrap;gap:6px;padding-right:26px;margin-right:-26px;border-right:1px solid var(--ru-tint-2)}
  .ru-options--countries{gap:6px}
  .ru-options--countries .ru-option{padding:6px 12px;font-size:.875rem}
  #ruPanelFecha > #ruMonths{gap:8px}
  #ruMonths .ru-option{padding:9px 6px;font-size:.875rem}
  .ru-clear{top:20px;right:22px}
}
/* tablet y móvil (hojas): zonas y temporadas en dos columnas de filas */
@media (max-width:1100px){
  .ru-continents,#ruPanelFecha > .ru-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ru-continents .ru-option,#ruPanelFecha .ru-tabs .ru-option{width:100%;padding:7px 8px 7px 7px}
  .ru-opt__check{display:none}
  .ru-panel__title{font-size:1.125rem}
}
@media (max-width:420px){
  .ru-opt__img{width:32px;height:32px}
  .ru-opt__name{font-size:.9375rem;white-space:normal}
}


/* ===================== Selector de fechas del buscador =====================
   Conmutador «Fechas concretas / Fechas flexibles» (pastilla malva), calendario de dos meses con días en
   círculo (el elegido en malva, el margen ± en malva claro), chips de flexibilidad y, en fechas flexibles,
   los 12 próximos meses en baldosas. Pie con el resumen y «Aplicar». */
.ru-panel--fecha{display:block!important}
.ru-dp__switch{display:flex;width:max-content;margin:0 auto 14px;padding:4px;border-radius:999px;background:var(--ru-tint)}
.ru-dp__tab{border:0;background:none;cursor:pointer;font:inherit;font-size:.875rem;font-weight:600;color:var(--ru-text-accent);padding:8px 20px;border-radius:999px;
  transition:background .3s var(--ru-ease), color .3s var(--ru-ease)}
.ru-dp__tab.is-on{background:var(--ru-primary);color:var(--ru-white)}
.ru-dp__tab:focus-visible,.ru-dp__day:focus-visible,.ru-dp__chip:focus-visible,.ru-dp__mtile:focus-visible,.ru-dp__nav:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
.ru-dp__pane[hidden]{display:none}
.ru-dp__cal{position:relative;display:grid;grid-template-columns:1fr;max-width:400px;margin:0 auto;padding:0 6px}
@media (min-width:641px){ .ru-dp__cal{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;max-width:none} }
.ru-panel--fecha[data-tab="flex"] .ru-dp__foot{display:none}
.ru-panel--fecha[data-tab="flex"] .ru-dp__pane[data-pane="flex"]{display:flex;flex-direction:column}
.ru-panel--fecha[data-tab="flex"] .ru-dp__months{flex:1;grid-auto-rows:1fr}
.ru-panel--fecha[data-tab="flex"] .ru-dp__months li{display:flex}
.ru-panel--fecha[data-tab="flex"] .ru-dp__mtile{height:auto;flex:1}
/* portátil y ordenador: la caja abraza los dos meses (sin huecos a izquierda y derecha) */
@media (min-width:1101px){
  /* borde derecho alineado con el del botón «Inspiración»; ancho = el del calendario */
  /* ancho adaptable al calendario (como «¿A dónde vas?»), alineado a la izquierda con su campo */
  #ruPanelFecha{left:var(--dp-left,0px);right:auto;width:max-content;max-width:calc(100% - var(--dp-left,0px));transform-origin:bottom left}
  #ruPanelFecha .ru-dp__cal{justify-content:center}
  #ruPanelFecha .ru-dp__foot{justify-self:stretch}
  #ruPanelFecha .ru-dp__cal{grid-template-columns:repeat(2,auto);gap:0 44px;padding:0 30px}
  #ruPanelFecha .ru-dp__nav--prev{left:-4px}#ruPanelFecha .ru-dp__nav--next{right:-4px}
  #ruPanelFecha .ru-dp__mtile{min-height:74px;gap:0}
  #ruPanelFecha .ru-dp__months{gap:8px}
  #ruPanelFecha .ru-dp__months{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
  #ruPanelFecha .ru-dp__foot{justify-content:center}
  #ruPanelFecha .ru-dp__flexrow{margin:0 auto}
  /* las dos vistas comparten celda: al cambiar de pestaña la caja no cambia de ancho */
  #ruPanelFecha.ru-panel--fecha{display:grid!important;grid-template-columns:auto;grid-template-areas:"sw" "pane" "clear" "foot"}
  /* «Borrar selección»: centrado, bajo el calendario / la tabla de meses (reserva su hueco: sin saltos) */
  #ruPanelFecha > .ru-clear{grid-area:clear;position:static;justify-self:center;margin:8px 0 0}

  #ruPanelFecha .ru-dp__switch{grid-area:sw;margin-bottom:30px}   /* aire arriba del calendario parejo con el de abajo */
  #ruPanelFecha .ru-dp__pane{grid-area:pane;min-width:0}
  #ruPanelFecha .ru-dp__pane[hidden]{display:block;visibility:hidden;pointer-events:none}
  #ruPanelFecha .ru-dp__foot{grid-area:foot}
  #ruPanelFecha.ru-panel--fecha[data-tab="flex"] .ru-dp__foot{display:flex;visibility:hidden;grid-area:auto;grid-row:3;grid-column:1}
  /* «Fechas flexibles»: la tabla de meses ocupa el hueco del calendario y del pie; «Borrar selección» queda debajo */
  #ruPanelFecha.ru-panel--fecha[data-tab="flex"] .ru-dp__pane[data-pane="flex"]{grid-area:auto;grid-row:2 / 4;grid-column:1;display:flex;flex-direction:column}
  #ruPanelFecha.ru-panel--fecha[data-tab="flex"] .ru-dp__pane[data-pane="cal"]{grid-area:auto;grid-row:2;grid-column:1}
  #ruPanelFecha.ru-panel--fecha[data-tab="flex"] > .ru-clear{grid-area:auto;grid-row:4;grid-column:1}
  #ruPanelFecha[data-tab="flex"] .ru-dp__months{flex:1;grid-auto-rows:1fr}
  #ruPanelFecha[data-tab="flex"] .ru-dp__months li{display:flex}
  #ruPanelFecha[data-tab="flex"] .ru-dp__mtile{height:auto;flex:1}
}
.ru-dp__nav{position:absolute;top:-4px;z-index:1;width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--ru-primary);cursor:pointer;display:grid;place-items:center;transition:background .25s var(--ru-ease)}
.ru-dp__nav:hover{background:var(--ru-tint)}
.ru-dp__nav:disabled{opacity:.25;cursor:default;background:none}
.ru-dp__nav--prev{left:-6px}.ru-dp__nav--next{right:-6px}
.ru-dp__mname{margin:0 0 10px;text-align:center;font-family:var(--ru-font-country);font-weight:600;font-size:1.125rem;color:var(--ru-text-accent)}
.ru-dp__mname span{font-weight:400;color:var(--ru-muted)}
.ru-dp__mname small{display:inline-block;vertical-align:middle;margin:-2px 0 0 8px;padding:2px 8px;border-radius:999px;background:var(--ru-tint);font-family:var(--ru-font-body);font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ru-faint)}
.ru-dp__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;justify-items:center}
.ru-dp__wd{font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--ru-muted);padding:4px 0 6px}
.ru-dp__day{width:34px;height:34px;border:0;border-radius:50%;background:none;cursor:pointer;font:inherit;font-size:.875rem;font-weight:600;color:var(--ru-ink);
  transition:background .2s var(--ru-ease), color .2s var(--ru-ease)}
.ru-dp__day:not(:disabled):hover{background:var(--ru-tint-2);color:var(--ru-text-accent)}
.ru-dp__pad{display:block;width:34px;height:34px}
.ru-dp__day:disabled{color:var(--ru-disabled);cursor:default;font-weight:500}
.ru-dp__day.is-today{box-shadow:inset 0 0 0 1.5px var(--ru-primary)}
.ru-dp__day.is-range{background:var(--ru-tint-2);color:var(--ru-text-accent)}
.ru-dp__day.is-sel,.ru-dp__day.is-sel:hover{background:var(--ru-primary);color:var(--ru-white);box-shadow:none}
.ru-dp__flexrow{display:flex;align-items:center;justify-content:center;gap:8px 14px;flex-wrap:wrap;margin:0 auto}
.ru-panel--fecha[data-tab="flex"] .ru-dp__flexrow{visibility:hidden}
.ru-dp__flexrow .ru-panel__title{margin:0}
.ru-dp__chips{display:flex;flex-wrap:wrap;gap:8px}
.ru-dp__chip{border:0;cursor:pointer;font:inherit;font-size:.8125rem;font-weight:600;padding:8px 14px;border-radius:999px;background:var(--ru-white);color:var(--ru-text-accent);
  box-shadow:inset 0 0 0 1px var(--ru-tint-2);transition:background .25s var(--ru-ease), color .25s var(--ru-ease), box-shadow .25s var(--ru-ease)}
.ru-dp__chip:hover{background:var(--ru-tint)}
.ru-dp__chip[aria-pressed="true"]{background:var(--ru-primary);color:var(--ru-white);box-shadow:none}
.ru-dp__months{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.ru-dp__mtile{width:100%;min-height:96px;border:0;cursor:pointer;font:inherit;border-radius:16px;background:var(--ru-white);color:var(--ru-text-accent);
  box-shadow:inset 0 0 0 1px var(--ru-tint-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  transition:background .25s var(--ru-ease), box-shadow .25s var(--ru-ease), transform .3s var(--ru-ease)}
/* baldosas de mes sin icono de calendario (27/10, Alberto) */
.ru-dp__mtile strong{font-family:var(--ru-font-country);font-weight:600;font-size:.9375rem}   /* 15 px (antes 17 px), 24/10 */
.ru-dp__mtile span{font-size:.75rem;font-weight:500;color:var(--ru-muted)}
.ru-dp__mtile:not(:disabled):hover{background:var(--ru-sand);transform:translateY(-2px)}
.ru-dp__mtile[aria-pressed="true"],.ru-dp__mtile[aria-pressed="true"]:hover{background:var(--ru-primary);box-shadow:none;color:var(--ru-white)}
.ru-dp__mtile[aria-pressed="true"] svg,.ru-dp__mtile[aria-pressed="true"] span{color:var(--ru-white)}
.ru-dp__mtile:disabled{cursor:default;color:var(--ru-disabled);box-shadow:inset 0 0 0 1px var(--ru-tint-2);background:var(--ru-white)}   /* solo atenuada, sin rayado diagonal (27/10, Alberto) */
.ru-dp__mtile:disabled svg,.ru-dp__mtile:disabled span{color:var(--ru-disabled)}
.ru-dp__foot{display:flex;align-items:center;justify-content:center;gap:12px 18px;flex-wrap:wrap;margin-top:12px;padding-top:14px;border-top:1px solid var(--ru-tint-2)}
.ru-dp__sum{margin:0;font-size:.875rem;font-weight:500;color:var(--ru-muted);text-align:right}
.ru-dp__apply{min-height:46px;padding:0 26px!important;font-size:.9375rem}
.ru-panel--fecha .ru-clear{top:24px}
/* portátil y ordenador: con el calendario abierto, el buscador pasa por delante de la cabecera (el logo queda
   detrás y los clics llegan al calendario). En portátil la tarjeta destacada (encima del buscador) se aparta;
   en ordenador está al lado del buscador y se queda */
@media (min-width:1101px){
  .ru-hero:has(#ruPanelFecha.is-open),.ru-hero:has(#ruPanelDestino.is-open){isolation:auto}
  .ru-hero:has(#ruPanelFecha.is-open) .ru-hero__content,.ru-hero:has(#ruPanelDestino.is-open) .ru-hero__content{z-index:51}
}
@media (min-width:1101px) and (max-width:1479px){
  /* con el calendario, la tarjeta no sube (saldría disparada hacia arriba): se queda en su sitio y se funde */
  .ru-hero:has(#ruPanelFecha.is-open) .ru-featured,.ru-hero:has(#ruPanelDestino.is-open) .ru-featured{bottom:calc(var(--ru-pb) + var(--bar-h,68px) + var(--ru-gap-lg));opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ru-ease), visibility 0s .25s}
  .ru-featured{transition:bottom .45s var(--ru-ease), opacity .3s var(--ru-ease), visibility 0s}
}
/* tablet y móvil: dentro de la hoja; «Aplicar» lo hace el botón «Listo» del pie */
@media (max-width:1100px){
  .ru-dp__foot{border-top:0;padding-top:4px;margin-top:14px}
  .ru-dp__sum,.ru-dp__apply{display:none!important}
  .ru-dp__day,.ru-dp__pad{width:40px;height:40px}
  .ru-dp__switch{width:100%}
  .ru-dp__tab{flex:1}
  .ru-dp__months{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:640px){
  .ru-dp__cal{padding:0}
  .ru-dp__day,.ru-dp__pad{width:40px;height:40px}.ru-dp__day{font-size:.9375rem}
  .ru-dp__months{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ru-dp__mtile{min-height:84px}
  .ru-dp__flexrow{flex-direction:column;align-items:center}
  .ru-dp__chips{justify-content:center}
  .ru-panel--fecha[data-tab="flex"] .ru-dp__foot{display:none}
}

/* Accesibilidad: con "reducir movimiento" se quitan desplazamientos y zooms,
   pero se mantienen los cambios de color y los fundidos breves que informan del estado */
@media (prefers-reduced-motion:reduce){
  .ru-slide img,.ru-slide video{animation:none}
  .ru-dot.is-active::after{animation:none;transform:scaleY(1)}
  .ru-fade,.ru-header > a:first-child,.ru-menu__toggle,.ru-search > *,.ru-dots{animation:ru-fade-in .4s ease backwards}
  .ru-header.is-stuck{animation:ru-fade-in .3s ease backwards}
  .ru-header.is-stuck .ru-menu__label,.ru-header.is-stuck .ru-menu__icon{transform:none;animation:none}
  .ru-menu__label,.ru-menu__icon,.ru-burger i{transform:none;transition-delay:0s}
  .ru-menu.is-open .ru-burger i:nth-child(1){transform:rotate(45deg)}
  .ru-menu.is-open .ru-burger i:nth-child(3){transform:rotate(-45deg)}
  @keyframes ru-fade-in{from{opacity:0}}
  .ru-option,.ru-panel.is-open .ru-option{transform:none;transition-delay:0s}
  .ru-panel{transform:none;transition:opacity .2s ease, visibility 0s .2s}
  .ru-field__btn:hover,.ru-menu__toggle:hover,.ru-menu__item:hover .ru-menu__icon,.ru-offer:hover,.ru-option:active,.ru-submit:active{transform:none}
  .ru-submit:hover svg,.ru-submit--alt:hover svg,.ru-field__value.is-changed{animation:none}
  .ru-offer.is-swapping .ru-offer__text,.ru-offer.is-swapping .ru-offer__img,.ru-offer.is-swapping .ru-offer__tag{transform:none}
  .ru-offer:hover,.ru-offer:active,.ru-type:hover,.ru-rec.is-active:hover{--ru-lift:0px}
  #ruSearch .ru-field__btn--search:hover{transform:none}
  .ru-dest{--t:.01s}
  .ru-car__info,.ru-car__label,.ru-js .ru-dest .ru-reveal{transform:none!important}
}
@media (prefers-reduced-motion:reduce) and (max-width:1100px){
  .ru-panel,.ru-panel--dest,#ruPanelFecha{transform:translateY(105%);transition:none}
  .ru-panel.is-open,#ruPanelFecha.is-open{transform:none}
}

/* =========================================================
   BUSCADOR DE DESTINO (¿A dónde vas?): campo de texto que acota la lista mientras se escribe
   ========================================================= */
.ru-field__btn--search{cursor:text}
.ru-field__btn--search:hover{transform:none}
#ruSearch .ru-field__btn--search:hover{transform:translateY(-2px)}   /* en la portada sube al pasar el ratón, como «¿Cuándo?» (25/10) */
.ru-field__btn--search:active{transform:none}
.ru-field__btn--search:focus-within{background:#fbf6f8;box-shadow:inset 0 0 0 2px var(--ru-primary)}
.ru-field__txtbox{flex:1;min-width:0;display:block;cursor:inherit}   /* la mano de los botones; el cursor de texto solo en el buscador, donde se escribe (26/10, comentario de Alberto) */
.ru-field__btn--search .ru-field__txtbox{cursor:text}
.ru-field__input{display:block;width:100%;margin:0;padding:0;border:0;outline:0;background:none;font:inherit;font-weight:700;font-size:1.02rem;color:var(--ru-ink);text-overflow:ellipsis}
.ru-field__input::placeholder{font-weight:500;color:var(--ru-faint);opacity:1}
.ru-field__input.is-changed{animation:ru-pop .45s var(--ru-ease)}
.ru-field__x{flex:none;width:28px;height:28px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--ru-tint-2);color:var(--ru-text-accent);transition:background .25s var(--ru-ease)}
.ru-field__x:hover{background:var(--ru-tint)}
.ru-field__x[hidden]{display:none}
.ru-field__x:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
.ru-panel--dest{display:grid;align-items:start}
.ru-dest__sheetsearch{display:none}
.ru-dest__list,.ru-dest__trend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ru-dest__row,.ru-dest__trow{width:100%;display:flex;align-items:center;gap:14px;padding:9px 12px;border:0;border-radius:14px;background:none;cursor:pointer;
  font:inherit;text-align:left;color:var(--ru-ink);transition:background .2s var(--ru-ease)}
.ru-dest__row[aria-selected="true"],.ru-dest__row:hover,.ru-dest__trow:hover{background:var(--ru-tint)}
.ru-dest__row[aria-current="true"] .ru-dest__ico{background:var(--ru-primary);color:var(--ru-white)}
.ru-dest__row:focus-visible,.ru-dest__trow:focus-visible{outline:3px solid var(--ru-primary);outline-offset:-3px}
.ru-dest__ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--ru-tint-2);color:var(--ru-primary)}
.ru-dest__trow img{flex:none;width:48px;height:48px;border-radius:12px;object-fit:cover}
.ru-dest__txt{display:flex;flex-direction:column;min-width:0}
.ru-dest__txt strong{font-weight:500;font-size:.98rem;color:var(--ru-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ru-dest__txt strong b{font-weight:700;color:var(--ru-text-accent)}
.ru-dest__trow .ru-dest__txt strong{white-space:normal;line-height:1.15;font-family:var(--ru-font-country);font-weight:600;font-size:1.05rem;color:var(--ru-text-accent)}
.ru-dest__txt small{font-size:.78rem;color:var(--ru-muted)}
.ru-panel--dest:not(.is-typing) .ru-dest__row .ru-dest__txt strong{font-weight:600}
/* «Explora cualquier lugar»: primera opción, separada del resto por una línea */
.ru-dest__any{width:100%;display:flex;align-items:center;gap:14px;margin:12px 0 0;padding:14px 12px 10px;border:0;border-top:1px solid var(--ru-tint-2);border-radius:0 0 14px 14px;
  background:none;cursor:pointer;font:inherit;text-align:left;transition:background .2s var(--ru-ease)}
.ru-dest__any:hover{background:var(--ru-tint)}
.ru-dest__any:focus-visible{outline:3px solid var(--ru-primary);outline-offset:-3px}
.ru-dest__anyico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--ru-primary);color:var(--ru-white)}
.ru-dest__any strong{font-weight:700;font-size:.98rem;color:var(--ru-text-accent)}
.ru-dest__any.is-on{background:var(--ru-tint)}
.ru-panel--dest.is-typing .ru-dest__any{display:none}
#ruDestHead:empty{display:none}
.ru-dsearch__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ru-dest__recclear{flex:none;margin:0;padding:2px 4px;border:0;background:none;cursor:pointer;font:inherit;font-family:var(--ru-font-body);font-size:var(--ru-text-xs);font-weight:600;
  color:var(--ru-text-accent);text-decoration:underline;text-underline-offset:3px}
.ru-dest__recclear:hover{color:var(--ru-primary-dark)}
.ru-dest__recclear:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px;border-radius:4px}
.ru-dest__hint{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;padding:14px 12px 6px}
.ru-dest__hintico{flex:none;width:56px;height:56px;margin-bottom:14px;border-radius:16px;display:grid;place-items:center;background:var(--ru-tint);color:var(--ru-primary)}
.ru-dest__hint strong{display:block;font-family:var(--ru-font-country);font-weight:600;font-size:1.1rem;color:var(--ru-text-accent);margin-bottom:2px}
.ru-dest__hint strong{font-weight:400!important}
.ru-dest__hint strong b{font-weight:700}
.ru-dest__hint strong{margin-bottom:12px!important}   /* separación entre los dos párrafos */
.ru-dest__hint small{display:block;font-size:.85rem;line-height:1.45;color:var(--ru-muted)}
/* sin resultados: aviso y enlace a «Crea tu ruta» */
.ru-dest__none{padding:14px 12px 6px;display:flex;flex-direction:column;align-items:center;text-align:center}
.ru-dest__hintrow{display:flex;flex-direction:column;align-items:center}
.ru-dest__nonerow{display:flex;flex-direction:column;align-items:center}
.ru-dest__nonebody{display:flex;flex-direction:column;align-items:center}
.ru-dest__noneico{width:56px;height:56px;margin-bottom:14px;border-radius:16px;display:grid;place-items:center;background:var(--ru-tint);color:var(--ru-primary)}
/* sin resultados: el aviso centrado también en vertical dentro de su columna */
.ru-dest__col--results{display:flex;flex-direction:column;align-self:stretch}
@media (min-width:1101px){ #ruPanelDestino{min-height:310px} }   /* alto fijo: no salta entre aviso, resultados y recientes */
.ru-dest__col--results .ru-dest__any{margin-top:auto}   /* siempre abajo del todo */
.ru-dest__col--results .ru-dest__list{margin-bottom:12px}
/* aviso (sin búsquedas o sin resultados): centrado en el hueco que queda encima de «Explora cualquier lugar» */
.ru-dest__col--results:has(.ru-dest__none) .ru-dest__list,.ru-dest__col--results:has(.ru-dest__hint) .ru-dest__list{flex:1;justify-content:center}
.ru-dest__nonetxt{margin:0 0 4px;font-size:1rem;color:var(--ru-ink);line-height:1.45}
.ru-dest__nonetxt strong{color:var(--ru-text-accent)}
.ru-dest__nonesub b{font-weight:700;color:var(--ru-text-accent)}
@media (max-width:1100px){ .ru-br-desk{display:none} }   /* saltos de línea solo en portátil y ordenador */
.ru-dest__nonesub{margin:0 0 16px;font-size:.9rem;color:var(--ru-muted)}
.ru-dest__crea{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 24px!important;font-size:.9375rem;text-decoration:none}
.ru-dest__crea svg{transition:transform .3s var(--ru-ease)}
.ru-dest__crea:hover svg{transform:translateX(4px)}
.ru-panel--dest > .ru-clear{display:none!important}   /* se borra con la X del campo */
/* tablet y móvil (hoja): buscador arriba, resultados y debajo los destinos de moda */
@media (max-width:1100px){
  .ru-panel--dest{display:block}
  .ru-dest__sheetsearch{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:0 16px;min-height:52px;border-radius:14px;background:var(--ru-tint);color:var(--ru-primary)}
  .ru-dest__sheetsearch:focus-within{box-shadow:inset 0 0 0 2px var(--ru-primary)}
  .ru-dest__sheetinput{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:1rem;font-weight:600;color:var(--ru-ink)}
  .ru-dest__sheetinput::placeholder{font-weight:500;color:var(--ru-faint)}
  .ru-dest__col--trend{margin-top:18px}
  .ru-dest__col--trend{display:none}   /* tablet y móvil: sin «Destinos de moda» */
  #ruPanelDestino{height:min(86svh,760px);display:flex!important;flex-direction:column;align-items:stretch}   /* hoja de alto fijo: no cambia al escribir */
  #ruPanelDestino > *{flex-shrink:0}
  #ruPanelDestino > .ru-sheet-foot{display:none}   /* sin «Listo»: con el teclado abierto quedaba tapado */
  /* avisos (sin búsquedas / sin resultados) del mismo alto que «Tus búsquedas recientes» con dos búsquedas */
  #ruPanelDestino .ru-dest__hint,#ruPanelDestino .ru-dest__none{height:149px;box-sizing:border-box;padding:0 8px;justify-content:center}
  /* icono más pequeño encima del texto para que todo quepa en ese alto */
  #ruPanelDestino .ru-dest__hintico,#ruPanelDestino .ru-dest__noneico{width:40px;height:40px;margin-bottom:8px;border-radius:12px}
  #ruPanelDestino .ru-dest__hintico svg,#ruPanelDestino .ru-dest__noneico svg{width:20px;height:20px}
  #ruPanelDestino .ru-dest__hint strong{margin-bottom:4px!important;font-size:1.02rem}
  /* mismo diseño que «sin resultados»: icono arriba a la izquierda y texto alineado a la izquierda */
  #ruPanelDestino .ru-dest__hint{text-align:left}
  #ruPanelDestino .ru-dest__hintrow{display:flex;flex-direction:row;align-items:flex-start;gap:14px}
  #ruPanelDestino .ru-dest__hint .ru-dest__hintico{flex:none;margin:0}
  /* texto continuo (un solo párrafo) en los dos avisos */
  #ruPanelDestino .ru-dest__hint strong,#ruPanelDestino .ru-dest__hint small{display:inline;margin:0!important;font-family:var(--ru-font-body);font-size:.95rem;line-height:1.45}
  #ruPanelDestino .ru-dest__hint strong{color:var(--ru-ink)}
  #ruPanelDestino .ru-dest__hint strong b{color:var(--ru-text-accent)}
  #ruPanelDestino .ru-dest__hint strong::after{content:" "}
  #ruPanelDestino .ru-dest__hint small{color:var(--ru-ink)}
  #ruPanelDestino .ru-dest__nonebody{display:block;min-width:0}
  /* sin aviso «Dinos un destino…»: «Explora cualquier lugar» queda arriba, sin línea */
  #ruPanelDestino .ru-dest__hint{display:none}
  #ruPanelDestino .ru-dest__col--results:has(.ru-dest__hint) .ru-dest__list{display:none}
  #ruPanelDestino .ru-dest__col--results:has(.ru-dest__hint) .ru-dest__any{margin-top:0;border-top:0;border-radius:14px}
  #ruPanelDestino .ru-dest__nonetxt,#ruPanelDestino .ru-dest__nonesub{display:inline;margin:0;font-size:.95rem;line-height:1.45;color:var(--ru-ink)}
  #ruPanelDestino .ru-dest__crea{display:flex;width:max-content;margin-top:10px}   /* en su propia línea, bajo el texto */
  /* icono arriba a la izquierda, con su borde superior a la altura del texto; el conjunto, centrado en vertical */
  #ruPanelDestino .ru-dest__none{text-align:left}
  #ruPanelDestino .ru-dest__nonerow{display:flex;flex-direction:row;align-items:flex-start;gap:14px}
  #ruPanelDestino .ru-dest__none .ru-dest__noneico{flex:none;margin:0}
  #ruPanelDestino .ru-dest__crea{min-height:38px;padding:0 18px!important;font-size:.875rem}
  /* escribiendo (teclado abierto): la hoja va de arriba de la pantalla al borde del teclado */
  /* se mantiene como hoja: esquinas redondeadas, asa y subida desde abajo; deja un margen arriba */
  #ruPanelDestino.is-kb{top:calc(var(--kb-top,0px) + 16px);bottom:auto;height:calc(var(--kb-h,100dvh) - 16px);max-height:none;
    transition:transform .5s var(--ru-ease), height .25s var(--ru-ease), top .25s var(--ru-ease), visibility 0s .5s}
  #ruPanelDestino.is-kb.is-open{transition:transform .5s var(--ru-ease), height .25s var(--ru-ease), top .25s var(--ru-ease)}
  .ru-dest__trend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .ru-dest__trow{padding:8px}
  .ru-dest__trow img{width:44px;height:44px}
}
@media (max-width:640px){ .ru-dest__trend{grid-template-columns:1fr} }
/* calendario en pantallas bajas (p. ej. 1280×720): un poco menos de aire para que quepa sin barra de scroll */
@media (min-width:1101px) and (max-height:780px){
  #ruPanelFecha .ru-dp__switch{margin-bottom:22px}
  #ruPanelFecha > .ru-clear{margin-top:4px}
}
/* calendario compacto (pantallas bajas de portátil): lo activa el script solo si no cabe */
@media (min-width:1101px){
  #ruPanelFecha.is-compact{padding:16px 22px!important}
  #ruPanelFecha.is-compact .ru-dp__switch{margin-bottom:12px}
  #ruPanelFecha.is-compact .ru-dp__day,#ruPanelFecha.is-compact .ru-dp__pad{width:30px;height:30px}
  #ruPanelFecha.is-compact .ru-dp__mname{margin-bottom:4px}
  #ruPanelFecha.is-compact .ru-dp__wd{padding:2px 0 4px}
  #ruPanelFecha.is-compact .ru-dp__foot{margin-top:6px;padding-top:8px}
  #ruPanelFecha.is-compact > .ru-clear{margin-top:0}
  #ruPanelFecha.is-compact .ru-dp__mtile{min-height:60px}
  #ruPanelFecha.is-tight .ru-dp__day,#ruPanelFecha.is-tight .ru-dp__pad{width:26px;height:26px;font-size:.8125rem}
  #ruPanelFecha.is-tight .ru-dp__tab{padding:6px 18px}
  #ruPanelFecha.is-tight .ru-dp__switch{margin-bottom:8px}
  #ruPanelFecha.is-tight .ru-dp__chip{padding:6px 12px}
  #ruPanelFecha.is-tight .ru-dp__mtile{min-height:52px}
}
/* buscador de destino en la hoja: X para borrar lo escrito */
.ru-dest__sheetx{flex:none;width:28px;height:28px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--ru-tint-2);color:var(--ru-text-accent)}
.ru-dest__sheetx[hidden]{display:none}
/* «Borrar selección» no se usa en el destino (se borra con la X) */
#ruPanelDestino .ru-clear{display:none!important}
#ruPanelFecha .ru-clear--sheet{display:none!important}   /* tablet y móvil: sin «Borrar selección» en la hoja de fechas */
/* fechas: sin «Borrar selección» (se borra con la X del campo) */
#ruPanelFecha .ru-clear{display:none!important}
.ru-field__wrap{position:relative}
.ru-field__x--abs{position:absolute;top:50%;right:16px;margin-top:-14px;z-index:2}
.ru-field__wrap:has(.ru-field__x--abs:not([hidden])) .ru-field__btn{padding-right:54px}
/* X de cierre de los desplegables del buscador en ordenador (en la hoja ya está la de su cabecera) (27/10, Alberto) */
.ru-panel__close{display:none}
@media (min-width:1101px){
  .ru-panel__close{position:absolute;top:12px;right:12px;z-index:3;width:32px;height:32px;border:0;border-radius:50%;cursor:pointer;display:grid;place-items:center;
    background:var(--ru-tint-2);color:var(--ru-primary);transition:background .3s var(--ru-ease), color .3s var(--ru-ease)}
  .ru-panel__close:hover{background:var(--ru-primary);color:var(--ru-white)}
  .ru-panel__close:focus-visible{outline:3px solid var(--ru-primary);outline-offset:2px}
}
/* hojas de destino y fechas (tablet y móvil): sin la línea (asa) de arriba */
#ruPanelDestino .ru-sheet-head::before,#ruPanelFecha .ru-sheet-head::before{display:none}
/* títulos de las ofertas (tarjeta del banner y «Te recomendamos»): Lora */
.ru-offer__title,.ru-rec__title{font-family:var(--ru-font-country);font-weight:var(--ru-country-w,600);letter-spacing:0}
/* calendario: nombres de mes en la tipografía base */
.ru-dp__mname,.ru-dp__mtile strong{font-family:var(--ru-font-body)}

/* Estado de la salida de una ruta en grupo (pastilla de color): programada, confirmada, últimas plazas, completa (25/10) */
.ru-status,.zn-status{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;font-size:var(--ru-text-xs);font-weight:700}
.ru-status::before,.zn-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ru-status--ultimas,.zn-status--ultimas{background:#fdebd6;color:#b0560c}       /* aviso: quedan pocas plazas; naranja con megáfono (25/10) */
.ru-status--ultimas::before,.zn-status--ultimas::before{width:14px;height:14px;border-radius:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11v3a1 1 0 0 0 1 1h3l6 4V6L7 10H4a1 1 0 0 0-1 1z'/%3E%3Cpath d='M17 9a4 4 0 0 1 0 6'/%3E%3Cpath d='M7 15l1.5 5h2.5l-1-4.5'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11v3a1 1 0 0 0 1 1h3l6 4V6L7 10H4a1 1 0 0 0-1 1z'/%3E%3Cpath d='M17 9a4 4 0 0 1 0 6'/%3E%3Cpath d='M7 15l1.5 5h2.5l-1-4.5'/%3E%3C/svg%3E") center / contain no-repeat}
.ru-status--confirmada,.zn-status--confirmada{background:#dff1e6;color:#1f7a45}    /* la salida ya está garantizada */
/* confirmada: check en lugar del punto (25/10) */
.ru-status--confirmada::before,.zn-status--confirmada::before{width:14px;height:14px;border-radius:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat}
.ru-status--completa,.zn-status--completa{background:#fbe2e2;color:#b3261e}       /* sin plazas: rojo con señal de prohibido (25/10) */
.ru-status--completa::before,.zn-status--completa::before{width:14px;height:14px;border-radius:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M5.6 5.6l12.8 12.8'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M5.6 5.6l12.8 12.8'/%3E%3C/svg%3E") center / contain no-repeat}
.ru-status--programada,.zn-status--programada{background:#e4eefa;color:#2a5d9c}   /* aún sin confirmar: azul con reloj (25/10) */
.ru-status--programada::before,.zn-status--programada::before{width:14px;height:14px;border-radius:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat}
/* Etiquetas de las ofertas (25/10): tipo de ruta y, en las rutas en grupo, estado de la próxima salida (RU_ETIQUETAS en datos.js).
   Comunes a la portada, «Te recomendamos» y las zonas; los nombres .zn-* son los de la página de zona.
   En el carrusel de rutas: sobre la foto en ordenador y portátil, encima de la tarjeta en tablet y móvil */
.ru-deck__tags,.zn-deck__tags{position:absolute;top:20px;left:20px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ru-deck__tags .ru-deck__tag,.zn-deck__tags .ru-deck__tag{position:static}
.ru-deck__state,.zn-deck__state{opacity:0;transform:translateY(-6px);transition:opacity .4s var(--ru-ease), transform .5s var(--ru-ease)}
.ru-deck__card[data-pos="0"] .ru-deck__state,.ru-deck__card[data-pos="0"] .zn-deck__state{opacity:1;transform:none;transition-delay:.45s}
/* misma altura que la etiqueta del tipo de ruta (03/11, Alberto: «mismo alto de etiqueta de pastilla»), como en ofertas y Mejores Rutas.
   Cartas de la portada y de zonas, países, temporadas, meses y tipos. Ordenador y Portátil (en Tablet y Móvil estas etiquetas no se ven) */
.ru-deck__tags .ru-status,.zn-deck__tags .zn-status{min-height:26px;padding:0 10px;gap:5px;font-size:.6875rem;line-height:1}
.ru-deck__tags .ru-status::before,.zn-deck__tags .zn-status::before{width:12px;height:12px}
.ru-best__tags,.zn-best__tags{display:none}
@media (max-width:900px){
  .ru-deck__tags,.zn-deck__tags{display:none}
  .ru-best__tags,.zn-best__tags{display:flex;position:absolute;bottom:calc(100% + 8px);left:0;z-index:2;align-items:center;gap:6px}
  .ru-best__tags .ru-best__tag,.zn-best__tags .ru-best__tag{position:static}
  .ru-best__tags .ru-status[hidden],.zn-best__tags .zn-status[hidden],.ru-best__tags .ru-best__tag[hidden],.zn-best__tags .ru-best__tag[hidden]{display:none}
}
/* ruta destacada del banner: tipo y estado juntos, asomando encima de la tarjeta (25/10).
   El estado va algo más compacto (mismo alto que la pastilla del tipo) para dejar sitio a las flechas */
.ru-offer__tags{position:absolute;left:0;bottom:calc(100% + 8px);display:flex;align-items:center;gap:6px;
  transition:opacity .35s var(--ru-ease),transform .45s var(--ru-ease)}
.ru-offer__tags .ru-offer__tag{position:static}
.ru-offer.is-swapping .ru-offer__tags{opacity:0;transform:translateY(6px)}
.ru-offer__tags .ru-status{min-height:26px;padding:0 10px;gap:5px;font-size:.6875rem;line-height:1;white-space:nowrap}
.ru-offer__tags .ru-status::before{width:12px;height:12px}
.ru-offer__tags .ru-status[hidden]{display:none}
/* con las dos etiquetas no caben también las flechas y las barras: barras más cortas en portátil y tablet,
   y en móvil solo las flechas */
@media (max-width:1479px){
  .ru-featured .ru-dots{gap:4px}
  .ru-featured .ru-dot{width:12px}
}
@media (max-width:640px){
  .ru-featured .ru-dots{display:none}
  .ru-featured__nav{gap:0}
  .ru-featured__arrow{width:34px}
}
@media (max-width:400px){
  .ru-offer__tags{gap:4px}
  .ru-offer__tags .ru-offer__tag{padding:6px 9px;letter-spacing:.08em}
  .ru-offer__tags .ru-status{padding:0 8px}
}
/* «Te recomendamos»: en la esquina de la foto, una debajo de otra si no caben */
.ru-rec__tags{position:absolute;left:12px;top:12px;right:12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ru-rec__tags .ru-rec__tag{position:static}

/* «por persona» tras cada precio (25/10, Alberto): misma letra pequeña y gris que «desde» */
.ru-pp{margin-left:5px;font-size:inherit;font-weight:400;color:var(--ru-muted);letter-spacing:0;white-space:nowrap}
.ru-pp[hidden]{display:none}
.ru-rec__price .ru-pp{display:block;margin:3px 0 0}  /* en las tarjetas estrechas de «Te recomendamos» va debajo, para no empujar «Ver viaje» */

/* «Casi confirmada» (25/10, Alberto): entre programada y confirmada; color entre el azul y el verde con reloj de arena */
.ru-status.ru-status--casi,.zn-status.zn-status--casi{background:#dbeef1;color:#1b6c7d}
.ru-status.ru-status--casi::before,.zn-status.zn-status--casi::before{width:14px;height:14px;border-radius:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12M6 21h12'/%3E%3Cpath d='M7 3v2.5a5 5 0 0 0 2.4 4.3L12 12l2.6-2.2A5 5 0 0 0 17 5.5V3'/%3E%3Cpath d='M7 21v-2.5a5 5 0 0 1 2.4-4.3L12 12l2.6 2.2a5 5 0 0 1 2.4 4.3V21'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12M6 21h12'/%3E%3Cpath d='M7 3v2.5a5 5 0 0 0 2.4 4.3L12 12l2.6-2.2A5 5 0 0 0 17 5.5V3'/%3E%3Cpath d='M7 21v-2.5a5 5 0 0 1 2.4-4.3L12 12l2.6 2.2a5 5 0 0 1 2.4 4.3V21'/%3E%3C/svg%3E") center / contain no-repeat}
.ru-offer__tags .ru-status--casi::before{width:12px;height:12px}

/* Fechas de las ofertas (25/10, Alberto): icono, «06 mar 2027», línea fina con punta de flecha y «17 mar 2027»,
   igual en toda la web (RU_FECHAS.html en datos.js). Toma el tamaño de letra de donde se pone. */
.ru-when{display:inline-flex;align-items:center;gap:8px;max-width:100%;vertical-align:middle}
.ru-when > svg{flex:none;width:1.15em;height:1.15em;color:var(--ru-primary)}
.ru-when b{font-weight:700;color:var(--ru-text-accent);white-space:nowrap}
.ru-when__line{position:relative;flex:0 1 40px;width:40px;min-width:16px;height:1px;background:rgba(150,88,113,.45)}
/* Solo línea, sin flecha (25/10, pedido por Alberto) */
.ru-trip__dates .ru-when{gap:10px}
.ru-trip__dates .ru-when > svg{width:18px;height:18px}
.ru-offer__meta .ru-when{display:inline-flex;gap:6px}
#ruOfferDates::before{content:none}   /* el icono lo pone .ru-when */
.ru-offer__meta .ru-when b{font-weight:600}
.ru-offer__meta .ru-when__line{flex-basis:24px;width:24px;min-width:12px}
.ru-rec__dates .ru-when{gap:6px}
.ru-rec__dates .ru-when b{font-weight:600}
.ru-rec__dates .ru-when__line{flex-basis:22px;width:22px;min-width:12px}

/* Rutas garantizadas con salidas semanales (25/10, pedido por Alberto): «Salidas: Lu Ma Mi Ju Vi Sa Do», los días que sale en negrita y color, los demás en gris claro (como en zona). RU_FECHAS.semana() en datos.js */
.ru-week{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-weight:700;color:var(--ru-text-accent);line-height:1.3}
.ru-week > svg{flex:none;width:1.15em;height:1.15em;color:var(--ru-primary)}
.ru-offer__meta span.ru-week{display:inline-flex}
.ru-offer__meta .ru-week span{display:inline-flex}
.ru-week__days{display:inline-flex;gap:1px}
.ru-week__days i{padding:0 4px;font-style:normal;font-size:.92em;font-weight:400;color:var(--ru-disabled)}
.ru-week__days i.is-on{color:var(--ru-text-accent);font-weight:700}
.ru-offer__meta .ru-week{gap:3px 6px;font-weight:600}
.ru-offer__meta .ru-week__days i{padding:0 3px}
.ru-trip__dates .ru-week{gap:4px 10px}
.ru-trip__dates .ru-week > svg{width:18px;height:18px}
.ru-rec__dates .ru-week{gap:3px 6px;font-weight:600}
.ru-rec__dates .ru-week__days i{padding:0 2px}
/* «Salidas»: el texto y los días a la misma línea base y del mismo tamaño (25/10, comentario de Alberto) */
.ru-week__days{align-items:baseline}
.ru-week__days i{font-size:1em}
/* Icono de calendario centrado con el texto que le sigue (25/10, pedido por Alberto): el centro de la tinta de las cifras queda ~0,07em por encima del centro de la línea, así que el icono sube lo mismo */
.ru-when > svg,.ru-week > svg{position:relative;top:-.07em}
.ru-trip__dates .ru-when > svg{top:0}   /* en Mejores Rutas ya queda centrado */
.ru-trip__dates .ru-week > svg{top:-.035em}
/* Mejores Rutas (Tablet y Móvil): la etiqueta de estado entra con la misma animación que la del tipo de ruta (25/10) */
.ru-best__tags .ru-status.is-in{animation:ru-price-in .8s var(--ru-ease) .2s backwards}
/* Rutas garantizadas: «Inicio de la ruta:» y, donde no cabe, «Inicio:» (26/10, Alberto) */
.ru-week__short{display:none}
.ru-offer__meta .ru-week span.ru-week__long,.ru-rec__dates .ru-week span.ru-week__long{display:none}
.ru-offer__meta .ru-week span.ru-week__short,.ru-rec__dates .ru-week span.ru-week__short{display:inline}
@media (min-width:901px) and (max-width:1279px),(max-width:640px){
  .ru-trip__dates .ru-week__long{display:none}
  .ru-trip__dates .ru-week__short{display:inline}
}
/* Newsletter: el error va en el propio campo, justo debajo de la caja del email, no al final (26/10, Alberto: «regresa al modelo anterior de mensaje debajo de cada caja») */
.ru-foot__field{align-items:flex-start}
.ru-foot__box{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.ru-foot__box input{flex:none;width:100%}
.ru-foot__field .ru-foot__box input[aria-invalid="true"]{box-shadow:inset 0 0 0 2px #b3261e}

.ru-foot__err{display:flex;align-items:flex-start;gap:6px;margin:6px 0 0 4px;font-size:var(--ru-text-xs);font-weight:600;line-height:1.4;color:#8c1d18;text-align:left}
.ru-foot__err::before{content:"!";flex:none;margin-top:1px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#b3261e;color:#fff;font-size:11px;font-weight:700;line-height:1}
.ru-foot__err[hidden]{display:none}
@media (max-width:640px){ .ru-foot__field{align-items:stretch} }
/* Newsletter del pie: caja del email como las de los formularios (60 px, mismas esquinas, 1rem, 500, relleno 18) y
   «Suscribirme» a la misma altura, igual en todas las páginas (26/10, comentario de Alberto) */
.ru-foot__field input{height:60px;padding:0 18px;border-radius:var(--ru-radius);font-size:1rem;font-weight:500}
.ru-foot__field .ru-submit{height:60px;padding:0 26px;font-size:1rem}
/* Portada, Portátil y Ordenador: la caja del email sigue alineada por abajo con el título aunque salga el error.
   El error va justo debajo de la caja sin cambiar la altura del formulario; el aviso de privacidad baja para dejarle sitio
   (26/10, igual que en Crea tu ruta, Contacto y zona) */
@media (min-width:901px){
  body:not(.ru-foot-in) .ru-foot__box{position:relative}
  body:not(.ru-foot-in) .ru-foot__err{position:absolute;top:100%;left:0;right:0}
  body:not(.ru-foot-in) .ru-foot__form:has(.ru-foot__err:not([hidden])) .ru-foot__below{padding-top:40px}
}

/* Etiqueta del tipo de ruta en toda la web (26/10, Alberto: «lleva este estilo de icono más texto al resto de etiquetas»):
   como en las ofertas de zona, fondo rosa suave sin borde, texto en color e icono delante (medalla en garantizada,
   personas en grupo). El JS pone data-tipo="grupo|garantizada" en cada etiqueta */
.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag{background:#f2eaf0;color:var(--ru-text-accent);cursor:default;user-select:none}
:is(.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag)[data-tipo]::before{content:"";display:inline-block;width:13px;height:13px;margin:-2px 6px 0 0;vertical-align:middle;background:currentColor}
:is(.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag)[data-tipo="garantizada"]::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='5.5'/%3E%3Cpath d='M8.5 10.7L5.5 3h4l2.5 5.5M15.5 10.7L18.5 3h-4l-1.4 3.1'/%3E%3Cpath d='M12 12.6l.8 1.6 1.7.2-1.2 1.2.3 1.7-1.6-.8-1.6.8.3-1.7-1.2-1.2 1.7-.2z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='5.5'/%3E%3Cpath d='M8.5 10.7L5.5 3h4l2.5 5.5M15.5 10.7L18.5 3h-4l-1.4 3.1'/%3E%3Cpath d='M12 12.6l.8 1.6 1.7.2-1.2 1.2.3 1.7-1.6-.8-1.6.8.3-1.7-1.2-1.2 1.7-.2z'/%3E%3C/svg%3E") center / contain no-repeat}
:is(.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag)[data-tipo="grupo"]::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c.6-3.4 3-5.5 6-5.5s5.4 2.1 6 5.5'/%3E%3Ccircle cx='17' cy='9' r='2.6'/%3E%3Cpath d='M16.5 14.6c2.4.2 4 2 4.5 4.9'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c.6-3.4 3-5.5 6-5.5s5.4 2.1 6 5.5'/%3E%3Ccircle cx='17' cy='9' r='2.6'/%3E%3Cpath d='M16.5 14.6c2.4.2 4 2 4.5 4.9'/%3E%3C/svg%3E") center / contain no-repeat}
@media (max-width:359px){ :is(.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag)[data-tipo]::before{display:none} }   /* móviles muy estrechos: sin icono, como en zona, para que tipo y estado quepan en una fila */
/* Precios con promoción en toda la web (26/10, Alberto: «Antes (tachado) - Ahora desde»): encima del precio, «Antes»,
   el precio anterior tachado y el descuento en una pastilla de color neutro (26/10, Alberto); debajo, «Ahora desde» y el precio de siempre */
.ru-was{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:.75rem;font-weight:500;line-height:1.2;color:var(--ru-muted);letter-spacing:0;text-transform:none;white-space:nowrap}
.ru-was s{text-decoration-thickness:1px;text-decoration-color:rgba(110,61,82,.55);font-variant-numeric:tabular-nums}   /* tachado fino: el precio anterior se sigue leyendo (26/10, Alberto) */
.ru-off{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;background:#efecee;color:#4b4148;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}
.ru-offer__was:empty{display:none}
.ru-offer__price .ru-was{margin-bottom:4px}
.ru-rec__price .ru-was{margin-bottom:4px}
.ru-best__foot .ru-trip__price .ru-was{margin-bottom:8px}
/* móvil (26/10, Alberto): «Ahora desde 3.250 € por persona» siempre en una línea; la cifra baja de tamaño si hace falta */
@media (max-width:640px){ .ru-best__foot .ru-trip__price:has(.ru-was) b{font-size:1.625rem} }
@media (max-width:400px){ .ru-best__foot .ru-trip__price:has(.ru-was) b{font-size:1.375rem;margin-left:4px} .ru-best__foot .ru-trip__price:has(.ru-was) .ru-pp{margin-left:4px} }
@media (max-width:340px){ .ru-best__foot .ru-trip__price:has(.ru-was) b{font-size:1.125rem} }
.ru-rec__foot:has(.ru-was){align-items:flex-end}   /* «Ver viaje» a la altura del precio, no de «Antes» */
/* Con promoción, la cifra de «Ahora desde» resalta un poco más: más grande y más gruesa, sin cambiar de color
   (26/10, Alberto: «no uses cambio de color para resaltar») */
:is(.ru-offer__price,.ru-trip__price,.ru-rec__price,.zn-dep__amount):has(.ru-was) b{font-weight:800}
.ru-offer__price:has(.ru-was) b,.ru-rec__price:has(.ru-was) b{font-size:1.25rem}
:is(.ru-trip__price,.zn-dep__amount):has(.ru-was) b{font-size:1.875rem}
.ru-offer__foot:has(.ru-was){align-items:flex-end}   /* «Ver viaje» a la altura del precio, no de «Antes» */
.ru-offer__price:has(.ru-was) .ru-pp{display:block;margin:3px 0 0}   /* con promoción, «por persona» debajo: así «Ver viaje» cabe al lado */

/* Te recomendamos (26/10): todas las tarjetas a la misma altura; la foto cede el sitio que pida el texto */
.ru-mega__slides.is-fit .ru-rec{height:var(--ru-rec-h)}
.ru-mega__slides.is-fit .ru-rec__media{flex:1 1 0;height:auto;min-height:80px}
.ru-mega__slides.is-fit .ru-rec__text{flex:none}
/* Destinos (27/10, «revisa margin y padding»): la tarjeta llena el alto de la columna, así la navegación
   termina a la altura de los países; aire parejo arriba y abajo, y flechas alineadas con el texto de la tarjeta */
#ruMegaRec .ru-mega__rechead{margin:4px 0 16px}
#ruMegaSlides{flex:1 1 0;min-height:0}
/* Destinos (27/10, Alberto): el panel no hace scroll; la lista de países sí puede llevar el suyo si no cabe.
   En pantallas bajas (clase is-short, la pone el script) se compactan cabecera, zonas y tarjeta; «Te recomendamos» no se quita nunca */
@media (min-width:1280px){
  #ruMegaDest .ru-mega__body{grid-template-rows:max(var(--mega-h,440px), var(--mega-rec,0px))}
  #ruMegaDest .ru-mega__zones{overflow:visible}
  #ruMegaDest .ru-mega__pane .ru-mega__countries{row-gap:8px}
  #ruMegaDest .ru-mega__head{margin-bottom:18px}
  /* la tarjeta empieza a la altura de «Todos los países» (27/10, Alberto): «Te recomendamos» sube al hueco bajo la cabecera */
  #ruMegaDest .ru-mega__rec{margin-top:-27px}
  #ruMegaDest #ruMegaRec .ru-mega__rechead{margin:0 0 10px;line-height:17px}
  /* lo mismo en Fechas: la tarjeta empieza a la altura de «Todos los meses» (27/10, Alberto) */
  #ruMegaFechas:not(.is-accordion) .ru-mega__rec{margin-top:-27px}
  #ruMegaFechas:not(.is-accordion) .ru-mega__rechead{margin:0 0 10px;line-height:17px}
  /* Fechas (27/10, «margin y padding»): como en Destinos, la tarjeta llena la columna hasta la navegación */
  #ruMegaFechas:not(.is-accordion) .ru-mega__body{grid-template-rows:max(var(--mega-h,392px), var(--mega-rec,0px))}
  #ruMegaFechas:not(.is-accordion) .ru-mega__slides{flex:1 1 0;min-height:0}
  #ruMegaDest.is-short .ru-mega__head{margin-bottom:14px}
  #ruMegaDest.is-short .ru-mega__title{font-size:2.4rem}
  #ruMegaDest.is-short .ru-mega__zones{gap:2px}
  #ruMegaDest.is-short .ru-mega__zlink{gap:12px;padding:6px 10px}
  #ruMegaDest.is-short .ru-mega__thumb{width:44px;height:44px}
  #ruMegaDest.is-short .ru-mega__phead{padding-bottom:10px;margin-bottom:14px}
  #ruMegaDest.is-short .ru-rec__text{padding:12px 16px 14px}
  #ruMegaDest.is-short .ru-mega__nav{margin-top:12px}
}
@media (min-width:901px) and (max-width:1279px){   /* versión tablet baja: zonas en fichas más pequeñas y países en 5 columnas */
  #ruMegaDest.is-short .ru-mega__head{margin-bottom:14px}
  #ruMegaDest.is-short .ru-mega__zones{padding-bottom:12px;margin-bottom:14px}
  #ruMegaDest.is-short .ru-mega__zlink{justify-content:center;padding:8px 6px}
  #ruMegaDest.is-short .ru-mega__thumb{display:none}
  #ruMegaDest.is-short .ru-mega__zname{font-size:1rem;align-items:center;white-space:nowrap}
  #ruMegaDest.is-short .ru-mega__pname{font-size:1.5rem}
  #ruMegaDest.is-short .ru-mega__phead{padding-bottom:10px;margin-bottom:14px}
  #ruMegaDest.is-short .ru-mega__pane .ru-mega__countries{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:6px}
}
.ru-mega__nav{margin-top:16px;padding:0 4px}

/* Etiquetas (26/10, Alberto): nunca saltan de línea; si no caben, se hacen más pequeñas */
.ru-status,.zn-status,.ru-offer__tag,.ru-deck__tag,.ru-best__tag,.ru-rec__tag{white-space:nowrap;flex:none}
.ru-deck__tags,.zn-deck__tags,.ru-rec__tags,.ru-best__tags,.ru-offer__tags{flex-wrap:nowrap}

/* Mejores Rutas, móvil y tablet (26/10): si la tarjeta crece por tener más información, sube sobre la foto; el borde de abajo no se mueve */
@media (max-width:900px){
  .ru-best__card{margin-top:calc(-64px - var(--ru-best-grow, 0px));transition:margin-top .5s var(--ru-ease)}
}
@media (max-width:400px){
  .ru-best__tags{gap:4px}
  .ru-best__tags .ru-best__tag{padding:6px 9px;letter-spacing:.08em}
  .ru-best__tags .ru-status{min-height:26px;padding:0 8px;gap:5px;font-size:.6875rem}
  .ru-best__tags .ru-status::before{width:12px;height:12px}
}
/* Te recomendamos: tipo y estado en una sola fila, en pequeño */
.ru-rec__media{container-type:inline-size}
.ru-rec__tags{gap:4px}
.ru-rec__tags .ru-rec__tag{padding:5px 8px;font-size:.625rem;letter-spacing:.06em}
.ru-rec__tags .ru-rec__tag[data-tipo]::before{width:11px;height:11px;margin-right:4px}
.ru-rec__tags .ru-status{min-height:23px;padding:0 8px;gap:4px;font-size:.6875rem}
.ru-rec__tags .ru-status::before{width:11px;height:11px}
@container (max-width:290px){
  .ru-rec__tags .ru-rec__tag{padding:5px 7px;letter-spacing:.04em}
  .ru-rec__tags .ru-status{padding:0 7px;font-size:.65rem}
}

/* Mejores Rutas y «Rutas por…» (26/10): el pie tiene el alto del precio más alto; precio y botón se quedan abajo */
.ru-best__foot{align-content:flex-end}

/* Favoritas y compartir en las tarjetas de ofertas (26/10, RU_FAVORITOS en datos.js). Sin cambio de color: el corazón se rellena.
   Discretos (26/10, Alberto: «menos llamativos, más discretos»): solo el icono, fino y en tono suave, sin círculo ni sombra. */
.ru-acts{position:absolute;top:10px;right:10px;z-index:3;display:flex;gap:2px}   /* en horizontal (Alberto probó en vertical y pidió volver, 26/10) */
.ru-act{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:none;color:rgba(42,26,34,.45)}
.ru-act svg{width:17px;height:17px;stroke-width:1.6}
.ru-act:focus-visible{outline:1.5px solid currentColor;outline-offset:0}
/* sin escalados (se veían borrosos, 26/10): las animaciones cambian el trazo del dibujo, que el navegador vuelve a pintar nítido en cada momento */
.ru-act svg{transition:stroke-width .25s ease}
.ru-act:hover svg{stroke-width:2.2}
.ru-fav svg{fill:transparent;transition:fill .3s ease,stroke-width .25s ease}
.ru-fav.is-on svg{animation:ru-fav-beat .7s ease}
@keyframes ru-fav-beat{0%{fill:transparent;stroke-width:1.6}30%{stroke-width:3.2}55%{stroke-width:1.6}75%{stroke-width:2.6}100%{stroke-width:1.6}}
.ru-share:active svg{stroke-width:2.8}
.ru-fav.is-on{color:#e0344a}   /* corazón rojo al marcarlo (26/10, Alberto: «Corazón en rojo»; excepción pedida a la regla de no resaltar con color) */
.ru-fav.is-on svg{fill:currentColor}
/* en la tarjeta blanca de Mejores Rutas / Rutas por…: arriba a la derecha, junto al país */
.ru-best__card>.ru-acts{top:clamp(12px,1.4vw,20px);right:clamp(10px,1.2vw,18px)}
.ru-best__card .ru-trip__dest{padding-right:64px}
/* listado de salidas: con la misma línea que la tarjeta grande (26/10, Alberto): iconos discretos arriba a la derecha, junto al país */
.zn-dep__info{position:relative;min-width:0}
.zn-dep__info>.ru-acts{top:-7px;right:-6px}
.zn-dep__info .zn-dep__country{padding-right:62px}
@media (max-width:640px){
  .ru-act{width:28px;height:28px}
  .ru-act svg{width:16px;height:16px}
  .ru-best__card .ru-trip__dest{padding-right:58px}
  .zn-dep__info .zn-dep__country{padding-right:56px}
}
/* aviso breve: «Guardada en favoritas», «Enlace copiado» */
.ru-toast{position:fixed;left:50%;bottom:24px;z-index:9999;margin:0;padding:10px 18px;border-radius:999px;
  background:var(--ru-ink);color:#fff;font-size:.875rem;font-weight:600;max-width:calc(100vw - 32px);overflow-wrap:anywhere;
  opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .25s,transform .35s var(--ru-ease)}
.ru-toast.is-on{opacity:1;transform:translate(-50%,0)}
/* menú de compartir (07/11, Alberto: WhatsApp, correo, etc. además de copiar). Ordenador, Portátil y Tablet: junto al icono; Móvil: hoja desde abajo */
.ru-sharemenu{position:fixed;z-index:9998;width:236px;padding:8px;border-radius:14px;background:var(--ru-white);
  box-shadow:0 12px 36px rgba(42,26,34,.18),0 0 0 1px rgba(150,88,113,.12);font-family:var(--ru-font-body);
  opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .3s var(--ru-ease)}
.ru-sharemenu.is-on{opacity:1;transform:none}
.ru-sharemenu__t{margin:4px 10px 6px;font-size:var(--ru-text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ru-muted)}
.ru-sharemenu ul{margin:0;padding:0;list-style:none}
.ru-sharemenu__i{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;
  font:inherit;font-size:.9375rem;color:var(--ru-ink);text-decoration:none;text-align:left;cursor:pointer}
.ru-sharemenu__i svg{flex:none;width:20px;height:20px;color:var(--ru-text-accent)}
.ru-sharemenu__i:hover,.ru-sharemenu__i:focus-visible{background:var(--ru-tint);outline:none}
@media (max-width:640px){
  .ru-sharemenu.is-sheet{left:0;right:0;bottom:0;top:auto;width:auto;padding:10px 12px calc(14px + env(safe-area-inset-bottom));
    border-radius:20px 20px 0 0;transform:translateY(100%)}
  .ru-sharemenu.is-sheet.is-on{transform:none}
  .ru-sharemenu.is-sheet .ru-sharemenu__t{text-align:center;margin:6px 0 10px}
  .ru-sharemenu__i{padding:12px 10px;font-size:1rem}
}
/* Ordenador (≥1280): en el listado de salidas, el corazón y compartir en la esquina superior derecha de la tarjeta,
   por encima de «Ver ruta» (26/10, Alberto); el país ya no necesita hueco a su derecha */
@media (min-width:1280px){
  .zn-dep{position:relative}
  .zn-dep__info{position:static}
  .zn-dep__info>.ru-acts{top:8px;right:10px}
  .zn-dep__info .zn-dep__country{padding-right:0}
}

/* ---------- Cabecera corta: un golpe de scroll (27/10, Alberto) ----------
   Crea tu ruta, Contacto, Temporadas, Meses y Tipos de rutas: el banner de foto (.ct-hero) ocupa algo más de media pantalla,
   lo justo para pasarlo con un golpe de rueda o de dedo. Home, zonas, países y la ficha de ruta siguen con la cabecera completa.
   Para usarla en otra página: clase ru-hero-short en el <body>. Todos los dispositivos */
.ru-hero-short{--ru-hero-gap:clamp(40px,7svh,72px)}
/* Sin logo grande: la barra de menú sale desde el principio (ru-comun.js). El mismo margen arriba (desde la barra,
   que mide ru-comun.js en --ru-hdr) que abajo (27/10, Alberto) */
.ru-hero-short .ct-hero{height:auto;min-height:0;padding-top:calc(var(--ru-hdr,100px) + var(--ru-hero-gap))}
.ru-hero-short .ct-hero__content{padding-bottom:var(--ru-hero-gap)}
@media (max-width:640px){ .ru-hero-short{--ru-hero-gap:40px} }
/* Destinos (03/11, Alberto: «Solo esto puede tener scroll, el resto de la card no»): en Tablet horizontal, Portátil y Ordenador
   la tarjeta no se desplaza; si falta alto, solo la lista de países tiene scroll */
@media (min-width:901px){
  #ruMegaDest:not(.is-accordion) .ru-mega__panel{display:flex;flex-direction:column}
  #ruMegaDest:not(.is-accordion) .ru-mega__head,#ruMegaDest:not(.is-accordion) .ru-mega__results{flex:none}
  #ruMegaDest:not(.is-accordion) .ru-mega__body{flex:0 1 auto;min-height:0;grid-template-rows:minmax(0,var(--mega-h,440px))}
}
@media (min-width:901px) and (max-width:1279px){
  #ruMegaDest:not(.is-accordion) .ru-mega__body{display:flex;flex-direction:column}
  #ruMegaDest:not(.is-accordion) .ru-mega__zones{flex:none}
  #ruMegaDest:not(.is-accordion) .ru-mega__detail{flex:0 1 auto;min-height:0;grid-template-rows:minmax(0,1fr)}
  #ruMegaDest:not(.is-accordion) .ru-mega__pane .ru-mega__countries{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
}

/* SUBRAYADO ANIMADO COMÚN (03/11, Alberto: «cuando se aplique el subrayado de texto por hover, debe llevar la animación que llevan los países del menú»).
   Misma animación que .ru-mega__countries a: la línea de 1px crece de izquierda a derecha. Todos los dispositivos.
   Uso: 1) en un enlace o botón de solo texto → class="ru-ulink";
        2) si el subrayado se activa al pasar por un contenedor (tarjeta, enlace con flecha) → envolver solo el texto en <span class="ru-ulink"> y poner class="ru-ulink-host" en el contenedor
           (o añadir una regla «.mi-tarjeta:hover .ru-ulink{background-size:100% 1px}»). La flecha o el icono quedan fuera del span y no se subrayan. */
.ru-ulink{text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom / 0 1px no-repeat;padding-bottom:1px;
  transition:background-size .35s var(--ru-ease), color .25s var(--ru-ease)}
.ru-ulink:hover,.ru-ulink:focus-visible,.ru-ulink-host:hover .ru-ulink,.ru-ulink-host:focus-visible .ru-ulink,
.ru-offer:hover .ru-offer__cta .ru-ulink,.ru-rec:hover .ru-rec__cta .ru-ulink,.ru-tcard:hover .ru-tcard__cta .ru-ulink,
.ru-mega__all:hover .ru-ulink,.ru-mega__all:focus-visible .ru-ulink{background-size:100% 1px}
@media (prefers-reduced-motion:reduce){.ru-ulink{transition:none}}
/* el logo de la cabecera nunca se subraya (03/11): el enlace no tiene clase y heredaba el subrayado del navegador. Todos los dispositivos */
.ru-header a{text-decoration:none}

/* Mejores Rutas, móvil (04/11, Alberto): las fotos forman una rueda de tarjetas. La de la oferta va centrada y las
   vecinas asoman a izquierda y derecha, giradas sobre un eje por debajo de la foto; al deslizar con el dedo la
   rueda sigue al dedo y, al soltar, pasa a la siguiente o a la anterior. Móvil y Tablet (≤900; Tablet desde el 04/11, Alberto: «para tablet también»). Común a todas las barajas .ru-deck (RU_RUEDA en datos.js) */
@media (max-width:900px){
  /* fotos en horizontal (04/11, Alberto: «menos vertical y más horizontal»): rueda más baja y tarjetas más anchas */
  .ru-deck{--rot:18deg;--drag:0deg;height:min(80vw,380px);--deck-h:min(80vw,380px)}
  .ru-deck__card[data-pos],.ru-deck__card[data-pos]:hover{
    left:3%;right:3%;bottom:0;height:100%;
    transform-origin:50% 210%;
    transform:rotate(calc(var(--o,0) * var(--rot) + var(--drag))) scale(calc(1 - var(--a,0) * .07));
    filter:brightness(calc(1 - var(--a,0) * .2)) saturate(calc(1 - var(--a,0) * .15));
    z-index:calc(4 - var(--a,0));opacity:1;
    transition:transform .7s var(--ru-ease), opacity .5s var(--ru-ease), filter .7s var(--ru-ease), box-shadow .7s var(--ru-ease);
  }
  .ru-deck__card[data-pos][data-o="far"]{opacity:0;pointer-events:none}
  .ru-deck__card[data-pos="off"]{opacity:0;pointer-events:none;z-index:0}
  .ru-deck__card[data-pos="0"]{box-shadow:0 22px 44px rgba(110,61,82,.24)} /* taste-skill-ignore: tarjeta que flota sobre la sección */
  .ru-deck.is-single .ru-deck__card{left:0;right:0}
  .ru-deck.is-dragging .ru-deck__card{transition:none}
  .ru-best__card{touch-action:pan-y;position:relative;z-index:10}  /* la caja de texto siempre por encima de las fotos */
  /* la foto, más ancha que la caja de texto y menos tapada por ella (04/11, Alberto) */
  .ru-best__card{margin:-32px 28px 0}
  /* la misma rueda en Visitas y experiencias de la ficha (viaje.html): su caja de texto, igual que la de Mejores Rutas */
  .vj-vx .vj-vx__card{position:relative;z-index:10;margin:-32px 28px 0;touch-action:pan-y}
  .vj-vx .ru-deck{--deck-h:min(80vw,380px);height:min(80vw,380px)}
  /* las flechas y la línea de avance, siempre por encima de las fotos vecinas que asoman (04/11, Alberto: «desaparecen las flechas en tablet») */
  .ru-best__bar,.vj-vx__bar,.zn-routes .ru-best__nav{position:relative;z-index:10}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .ru-deck__card[data-pos]{transition:opacity .3s ease}
}
/* Tablet (641–900): la rueda algo más alta y la caja de texto más estrecha, para que la foto se vea más ancha que ella */
@media (min-width:641px) and (max-width:900px){
  .ru-deck,.vj-vx .ru-deck{height:min(56vw,480px);--deck-h:min(56vw,480px)}
  .ru-best__card,.vj-vx .vj-vx__card{margin:-40px 56px 0}
}

/* Selector de prefijo común (05/11, Alberto): buscador dentro de la lista, cercanos arriba, línea y todos por orden alfabético.
   JS: RU_PREFIJO en assets/js/prefijos.js; la base .ct-pre sigue en crea-tu-ruta.css. Hilo «Proceso de reserva 2» */
.ru-pre__pop{display:flex;flex-direction:column;overflow:hidden;width:min(320px,calc(100vw - 2 * var(--ru-page)));max-height:360px;padding:8px}
.ru-pre__pop[hidden]{display:none}
.ru-pre__q{position:relative;flex:none;margin-bottom:6px}
.ru-pre__q svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ru-muted);pointer-events:none}
.ru-pre__q input{width:100%;height:42px;padding:0 12px 0 36px;border:0;border-radius:12px;background:var(--ru-sand,#f5f1f4);font:inherit;font-size:.9375rem;color:var(--ru-ink)}
.ru-pre__q input:focus{outline:none;box-shadow:inset 0 0 0 2px #875871}
.ru-pre__pop ul{flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto;overscroll-behavior:contain}
.ru-pre__pop [role="option"][hidden],.ru-pre__sep[hidden]{display:none}
.ru-pre__sep{height:1px;margin:6px 12px;background:rgba(150,88,113,.22);pointer-events:none}
.ru-pre__none{margin:0;padding:12px;font-size:.875rem;color:var(--ru-muted)}

/* Personalizada2: diapositiva del banner sin oferta (solo foto o vídeo): sin tarjeta «Ruta destacada» */
.ru-featured.is-empty{visibility:hidden;opacity:0;pointer-events:none}
