/*
 * Solo lo que theme.json no cubre. El design system (color/tipografía/spacing/
 * sombras/radios) vive en theme.json como --wp--preset--* / --wp--custom--*.
 * Las @font-face las genera WP desde theme.json (fontFace). No dupliques tokens aquí.
 */

/* Acentos que no son tokens de cliente (centralizados aquí, no en el color picker). */
:root {
	--summers-sky: var(--wp--preset--color--sky);
	--summers-mist: var(--wp--preset--color--mist);
	--summers-lift: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease; /* hover de cards */
	--summers-container: 1180px; /* mismo ancho que layout.contentSize de theme.json */
	--summers-header-h: 92px; /* alto real del header sticky; offset de anclas y stickies */
	--summers-sticky-top: calc(var(--summers-header-h) + 16px);
	/* Derivados de la paleta (no son colores nuevos: se calculan desde tint/sky/surface).
	   Cubren los lavados de fondo y los bordes cian suaves que no tienen token propio. */
	--summers-wash-lo: color-mix(in srgb, var(--wp--preset--color--tint) 55%, var(--wp--preset--color--surface));
	--summers-wash-hi: color-mix(in srgb, var(--wp--preset--color--tint) 90%, var(--wp--preset--color--sky));
	--summers-edge: color-mix(in srgb, var(--wp--preset--color--tint) 65%, var(--wp--preset--color--sky-muted));
}

/* El hero (y todo el main) pegado al header: quita el blockGap raíz. */
.wp-site-blocks > main { margin-block-start: 0; }
/* Footer pegado al contenido: quita el blockGap raíz que dejaba una línea clara. */
.wp-site-blocks > footer { margin-block-start: 0; }
/* Secciones full-bleed con fondo propio: sin blockGap raíz, para que no quede una
   franja del fondo del body entre ellas (equipo, cta-wa, cta-final). */
.summers-team,
.summers-ctawa-band,
.summers-ctafinal,
/* Colección (archive de término) y ficha de destino: sus secciones van pegadas. */
.summers-chero--term,
.summers-filtros,
.summers-dhero,
.summers-dficha,
.summers-dextra,
.summers-drel { margin-block-start: 0; }

/* Cualquier ancla dentro del contenido aterriza bajo el header sticky, no debajo
   de él. Antes solo lo tenían las secciones informativas, así que "Explorar
   regiones" caía con la sección ya cortada por arriba. */
main [id] { scroll-margin-top: var(--summers-sticky-top); }

/* Header sticky: se mantiene arriba al hacer scroll. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	box-shadow: var(--wp--preset--shadow--card);
}

/* Las secciones a sangre se apilan sin hueco: cada una trae su propio padding.
   El blockGap de WP (24px) entre ellas deja ver el fondo gris de la página.
   Mientras la sección siguiente era gris no se notaba, pero en cuanto el cliente
   oculta una y quedan dos blancas juntas aparece como franja. Dos clases para
   ganarle a la regla de layout de core (:root :where(.is-layout-flow) > *). */
.wp-block-post-content > .alignfull,
main.wp-block-group > .alignfull { margin-block-start: 0; }

/* Si el cliente oculta el bloque de una sección, su grupo contenedor se queda
   con el fondo y el padding: una banda de color vacía. Sin hijos, se colapsa.
   General a propósito: aplica a cualquier sección que oculten, no a una lista. */
main .wp-block-group:not(:has(> *)) { display: none; }

/* Ancho uniforme entre secciones: las secciones-card con padding propio pasan a
   border-box para que su ancho TOTAL sea = wideSize (1180), igual que las
   secciones sin padding (destinos, categorías, testimonios). */
.summers-trust, .summers-steps-wrap, .summers-offer, .summers-cta { box-sizing: border-box; }

/* ---------- A11y ---------- */
/* Content saved in the DB keeps inline colours that fail contrast: heading accents in the brand
   teal (2.8:1) and the footer copyright (grey-blue on navy, 4.4:1). Same look, accessible ink. */
:where(h1, h2, h3, h4) [style*="--color--primary)"] { color: var(--wp--preset--color--primary-dark) !important; }
footer [style*="7a92a8" i] { color: var(--wp--preset--color--sky-muted) !important; }

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--navy);
	color: #fff;
	border-radius: 0 0 var(--wp--custom--radius--sm) 0;
}
.skip-link:focus { left: 0; top: 0; }
/* Core adds its own skip link (and the id of <main>); the copy saved in the header part
   would make keyboard users tab through two. */
header.wp-block-template-part > .skip-link { display: none; }

:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.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;
}

/* ---------- Variantes de botón (design system) ---------- */
/* default = teal (theme.json). Estas son las del mock. */
.wp-block-button.is-style-navy > .wp-block-button__link {
	background-color: var(--wp--preset--color--navy);
	color: #fff;
	border-radius: var(--wp--custom--radius--md);
}
.wp-block-button.is-style-navy > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--navy-mid);
}
.wp-block-button.is-style-offer > .wp-block-button__link {
	background-color: var(--wp--preset--color--offer);
	color: var(--wp--preset--color--navy);
	border-radius: var(--wp--custom--radius--md);
	font-weight: 700;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background-color: transparent;
	color: #fff;                       /* sobre fondos oscuros (hero) */
	border: 2px solid rgba(255, 255, 255, .7);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: rgba(255, 255, 255, .12);
	border-color: #fff;
}
/* Feedback de botones: relleno progresivo (wipe) izq→der con background-size + lift.
   Se usa background-size (no un ::before) para que el relleno funcione sobre cualquier
   fondo, incluidos los botones navy (evita el problema de apilamiento del z-index). */
.wp-element-button {
	--wipe: var(--wp--preset--color--navy);
	background-image: linear-gradient(var(--wipe), var(--wipe));
	background-repeat: no-repeat; background-position: left center; background-size: 0% 100%;
	background-origin: border-box;   /* el relleno cubre también el borde: sin anillo del color base */
	transition: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease, color .32s ease,
		background-size .6s cubic-bezier(.16, 1, .3, 1);
}
.wp-element-button:hover, .wp-element-button:focus-visible {
	transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--hover); background-size: 100% 100%;
}
.wp-element-button:active { transform: translateY(0); transition-duration: .06s; }
/* Color del wipe por variante (garantiza contraste del texto). */
.wp-block-button.is-style-navy > .wp-block-button__link { --wipe: var(--wp--preset--color--primary-dark); }
.wp-block-button.is-style-outline > .wp-block-button__link { --wipe: rgba(255, 255, 255, .16); }
.summers-cta .summers-wa > .wp-block-button__link { --wipe: var(--wp--preset--color--navy); }
.summers-cta .summers-wa:hover > .wp-block-button__link,
.summers-cta .summers-wa:focus-within > .wp-block-button__link { color: #fff; }
/* Hero (fondo navy oscuro): el botón primario rellena BLANCO con texto navy para
   contrastar con el fondo, en vez de navy que se fundía. */
.summers-hero__buttons .summers-wa > .wp-block-button__link { --wipe: #fff; }
.summers-hero__buttons .summers-wa:hover > .wp-block-button__link,
.summers-hero__buttons .summers-wa:focus-within > .wp-block-button__link { color: var(--wp--preset--color--navy); }

/* ---------- Logo ---------- */
.summers-logo {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	text-decoration: none;
	white-space: nowrap;
}
.summers-logo__name {
	font-family: 'Pacifico', cursive;
	font-size: 26px;
	line-height: 1;
	color: var(--wp--preset--color--primary-dark);
}
.summers-logo__sub {
	font-weight: 800;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--offer);
	letter-spacing: .3px;
}
.summers-logo--footer .summers-logo__name { color: var(--summers-sky); }

/* Logo del header: alto fijo, ancho automático, sin tope de ancho. */
.custom-logo,
.wp-block-site-logo img {
	height: 60px;
	width: auto;
	max-width: none;
	display: block;
}
/* Logo del footer: independiente, ~2x el del header. */
.summers-footer .wp-block-site-logo img,
.summers-footer__logo img {
	height: 120px;
	max-width: none;
}
/* Texto de marca: fallback solo cuando NO hay logo subido
   (WP añade .wp-custom-logo al <body> al haber logo). */
.wp-custom-logo .summers-brand-fallback { display: none; }

/* ---------- Switcher de idioma (Polylang, [summers_lang] en inc/i18n.php) ----------
   .summers-lang es una lista estática vieja que quedó guardada en el header de la DB:
   sigue oculta. El switcher real solo sale con Polylang y 2+ idiomas; mismo trato que
   el botón del buscador (pill de 44 px sobre el navy). */
.summers-lang { display: none; }
.summers-lang-switch ul { display: flex; gap: var(--wp--preset--spacing--4); margin: 0; padding: 0; list-style: none; }
.summers-lang-switch a {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px;
	padding: 0 var(--wp--preset--spacing--8); border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--sm); font-weight: 700;
	text-decoration: none; transition: background-color .16s ease;
}
.summers-lang-switch a:hover { background: color-mix(in srgb, var(--wp--preset--color--surface) 14%, transparent); }
.summers-lang-switch a[aria-current] { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--wp--preset--color--surface) 60%, transparent); }

/* ---------- Navegación: subrayado que APARECE al hover (nav + subnav) ---------- */
.wp-block-navigation .wp-block-navigation-item__content {
	position: relative;
	text-decoration: none;   /* sin subrayado de texto: evita duplicados */
	transition: color .22s ease;
}
/* Subrayado: aparece solo al hover/foco, crece de izquierda a derecha. */
.wp-block-navigation .wp-block-navigation-item__content::after {
	content: '';
	position: absolute; left: 0; right: 0; bottom: -5px; height: 2px;
	background: var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--xs);
	transform: scaleX(0); transform-origin: left center;
	transition: transform .34s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--primary-dark);
}
.wp-block-navigation .wp-block-navigation-item__content:hover::after,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible::after {
	transform: scaleX(1);
}
/* La flecha del item con submenú rota al abrir. */
.wp-block-navigation .wp-block-navigation__submenu-icon {
	transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-navigation .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon,
.wp-block-navigation .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon {
	transform: rotate(180deg);
}

/* Submenú (dropdown): hereda el navy del header para que combine con la barra oscura. */
.wp-block-navigation .wp-block-navigation__submenu-container {
	border-radius: var(--wp--custom--radius--md);
	border: 1px solid rgba(255, 255, 255, .14);
	box-shadow: 0 16px 38px rgba(13, 43, 78, .4);
	padding: 6px 10px;
	min-width: 210px;
	/* !important: core fuerza #fff vía .wp-block-navigation:not(.has-background) …; esto lo vence. */
	background: var(--wp--preset--color--navy) !important;
	transform: translateY(8px);
	transition: opacity .22s ease, transform .22s cubic-bezier(.16, 1, .3, 1);
}
.wp-block-navigation .wp-block-navigation-item:hover > .wp-block-navigation__submenu-container,
.wp-block-navigation .wp-block-navigation-item:focus-within > .wp-block-navigation__submenu-container,
.wp-block-navigation .wp-block-navigation__submenu-container:focus-within {
	transform: translateY(0);
}
/* Items del submenú: texto claro sobre navy + padding (el hover vira a teal vía regla general). */
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 8px 4px;
	color: #fff;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
	left: 4px; right: 4px; bottom: 3px;
}

/* ---------- Menú móvil (overlay del bloque Navigation) ----------
   El tema solo estilizaba el dropdown de desktop (card); en el overlay
   se colaba esa card y los items quedaban a la derecha. Aquí lo corregimos. */
/* Hamburguesa: target táctil accesible (WCAG 2.5.8 — el glifo de 24px queda centrado). */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 44px; min-height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 10px;
}
/* ---------- Menú móvil: overlay premium sobre el navy de la marca ---------- */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--gradient--hero) !important;
	padding: 10px 24px 48px !important;
	align-items: stretch !important;
}
.is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100% !important; text-align: left; padding-top: 8px;
	align-items: stretch !important;
	animation: summers-menu-in .3s ease both;
}
@keyframes summers-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
/* Cerrar (X) en blanco sobre el navy. */
.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.is-menu-open .wp-block-navigation__responsive-container-close svg { fill: currentColor; }
/* !important: el bloque Nav va justificado a la derecha (items-justified-right) y eso
   mete align-items:flex-end en cada contenedor flex del overlay; lo forzamos a la izquierda. */
.is-menu-open .wp-block-navigation__container,
.is-menu-open .wp-block-navigation__submenu-container,
.is-menu-open .wp-block-navigation-item,
.is-menu-open .wp-block-navigation-submenu {
	align-items: flex-start !important; justify-content: flex-start; text-align: left;
}
.is-menu-open .wp-block-navigation__container,
.is-menu-open .wp-block-navigation__submenu-container {
	flex-direction: column; gap: 0;
}
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; }

/* Ítems de primer nivel: grandes, blancos, área táctil amplia (44px). El divisor
   va pegado debajo del texto (border-bottom del ítem), no flotando en el hueco. */
.is-menu-open .wp-block-navigation-item__content {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	width: 100%; text-align: left; box-sizing: border-box;
	min-height: 44px;
	font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.15;
	color: #fff; cursor: pointer; transition: color .18s ease;
}
.is-menu-open .wp-block-navigation-item__content::after { display: none; }   /* sin el subrayado hover de desktop */
/* Padding asimétrico (mucho arriba, poco abajo) para pegar el divisor al texto.
   !important porque WP core fuerza padding:0 con una regla de 3 clases. */
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 16px 4px 6px !important;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
/* Separación entre ítems de primer nivel (el divisor ya no la marca). */
.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item + .wp-block-navigation-item {
	margin-top: 6px;
}
.is-menu-open .wp-block-navigation-item__content:hover,
.is-menu-open .wp-block-navigation-item__content:focus-visible {
	color: var(--summers-sky);
}

/* Submenú desplegable (acordeón): colapsado por defecto; se expande con .is-expanded.
   Línea de acento teal + indentado, texto mist. El toggle lo maneja slider.js.

   La altura se anima con grid-template-rows (0fr→1fr) en el <li> padre, no con
   max-height: así no hay que adivinar un tope, la duración no miente cuando el
   submenú es corto, y el navegador no recalcula layout en cada frame. El <li>
   tiene 3 hijos pero el botón del toggle va display:none en móvil, así que en la
   rejilla solo quedan el enlace (auto) y el submenú (la fila que se anima). */
.is-menu-open .has-child {
	/* !important: el CSS del bloque Nav de core marca estos ítems como flex y
	   fuerza visibility del submenú en el overlay móvil. */
	/* La columna explícita es necesaria: el overlay fuerza justify-content:flex-start
	   y sin ella la columna implícita se ajusta al texto, dejando el divisor corto. */
	display: grid !important; grid-template-columns: 1fr; grid-template-rows: auto 0fr;
	position: relative;
	transition: grid-template-rows .34s cubic-bezier(.23, 1, .32, 1);
}
/* Fila con submenú: el texto navega y el resto de la fila despliega.
   El enlace se ajusta al ancho de su texto y queda encima; el botón de toggle
   que WP ya genera (patrón disclosure: button + aria-expanded) se estira por
   detrás a toda la fila, así que cualquier toque fuera del texto cae en él.
   Va absolute a propósito: dentro de la rejilla sería una tercera fila. */
.is-menu-open .has-child > .wp-block-navigation-item__content {
	width: auto; justify-self: start; position: relative; z-index: 3;
	padding-right: 16px !important;   /* algo de margen táctil a la derecha del texto */
	border-bottom: 0 !important;       /* el divisor lo pinta el botón, que sí ocupa toda la fila */
}
.is-menu-open .wp-block-navigation-submenu__toggle {
	display: flex !important; align-items: center; justify-content: flex-end;
	position: absolute; top: 0; left: 0; right: 0; z-index: 2;
	width: auto; height: 44px; padding: 0 12px 0 0;
	margin: 0 !important;   /* core le da margin-left al icono: acortaba el divisor 4px */
	background: none; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .12);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;   /* el botón es la fila entera: sin recuadro que parpadea al tocar */
	color: rgba(255, 255, 255, .72);
}
/* Gira el icono, no el botón: el botón ahora es la fila entera. El chevron de core es
   un trazo: con relleno se veía como un triángulo macizo. */
.is-menu-open .wp-block-navigation-submenu__toggle svg {
	width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5;
	transform: none; transition: transform .2s cubic-bezier(.23, 1, .32, 1);
}
.is-menu-open .wp-block-navigation-submenu__toggle:focus-visible { outline: 2px solid var(--summers-sky); outline-offset: -2px; border-radius: var(--wp--custom--radius--sm); }
.is-menu-open .has-child.is-expanded > .wp-block-navigation-submenu__toggle { color: var(--wp--preset--color--surface); }
.is-menu-open .has-child.is-expanded > .wp-block-navigation-submenu__toggle svg { transform: rotate(180deg); }
.is-menu-open .has-child.is-expanded { grid-template-rows: auto 1fr; }
.is-menu-open .wp-block-navigation__submenu-container {
	position: static !important; transform: none !important;
	background: transparent; box-shadow: none; min-width: 0; border: 0;
	border-left: 2px solid var(--summers-sky); margin-left: 3px;
	min-height: 0 !important; overflow: hidden !important; visibility: hidden !important;
	padding: 0 0 0 18px !important; margin-bottom: 0;
	transition: visibility 0s linear .34s;
}
.is-menu-open .has-child.is-expanded > .wp-block-navigation__submenu-container {
	visibility: visible !important; transition-delay: 0s;
}
.is-menu-open .wp-block-navigation__submenu-container > li:first-child { padding-top: 6px; }
.is-menu-open .wp-block-navigation__submenu-container > li:last-child { padding-bottom: 10px; }
.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex; align-items: center; min-height: 44px; box-sizing: border-box;
	padding: 12px 4px; font-size: var(--wp--preset--font-size--body); font-weight: 500;
	color: var(--summers-mist); border: 0;
}
.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	color: #fff;
}
/* Chevron del submenú: blanco tenue; gira 180° al expandir. */
.is-menu-open .wp-block-navigation__submenu-icon { transform: none; transition: transform .3s ease; flex: none; }
.is-menu-open .wp-block-navigation__submenu-icon svg { fill: none; stroke: currentColor; }   /* chevron de trazo, no relleno */
.is-menu-open .has-child.is-expanded > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon { transform: rotate(180deg); }

@media (prefers-reduced-motion: reduce) {
	.is-menu-open .wp-block-navigation__responsive-container-content { animation: none; }
	.is-menu-open .has-child,
	.is-menu-open .wp-block-navigation__submenu-container,
	.is-menu-open .wp-block-navigation__submenu-icon,
	.is-menu-open .wp-block-navigation-submenu__toggle svg { transition: none; }
}

/* ---------- Bloque WhatsApp ---------- */
.summers-wa > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	white-space: nowrap;
}
.summers-wa__icon { width: 1.1em; height: 1.1em; flex: none; }

/* Header mobile = solo logo + hamburguesa (el FAB cubre WhatsApp). Del switcher de
   idioma solo queda el otro idioma: no caben los dos en 390 px. */
@media (max-width: 781px) {
	.summers-header-cta { display: none; }
	.summers-lang-switch li:has(> a[aria-current]) { display: none; }
}

/* ---------- Footer ---------- */
.summers-footer a { color: var(--summers-mist); text-decoration: none; transition: color .18s ease; }
.summers-footer a:hover { color: #fff; }
.summers-footer__title { margin: 0 0 .35rem; color: #fff; }
/* Logo del footer: usa el tamaño intrínseco de la imagen que suba el cliente
   (así controla el tamaño con la imagen). max-width evita que desborde la columna. */
.summers-footer__logo { width: auto; max-width: 100%; margin: 0 auto 0 0; text-align: left; }
/* Sin ancho fijado (is-default-size) → tamaño natural de la imagen, en vez del
   default de 120px de WordPress. Si el cliente fija un ancho en el editor, ese
   estado desaparece y manda su ancho. */
.summers-footer__logo.is-default-size img { width: auto !important; height: auto !important; }
.summers-footer__logo img { max-width: 100%; height: auto; display: block; }
/* Redes: área táctil ≥44px sin cambiar el tamaño del icono. */
.summers-footer .wp-block-social-link-anchor { padding: 10px; }
.summers-footer__list {
	list-style: none;
	margin: .5rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	overflow-wrap: anywhere;
}
/* Contacto: icono + texto */
.summers-contact {
	list-style: none; margin: .5rem 0 0; padding: 0;
	display: flex; flex-direction: column; gap: 12px;
	color: var(--summers-mist); overflow-wrap: anywhere;
}
.summers-contact li { display: flex; align-items: center; gap: 10px; }
.summers-contact__ico { flex: none; display: inline-flex; }
.summers-contact__ico svg { width: 18px; height: 18px; color: var(--summers-sky); }
/* Métodos de pago: chips tipo tarjeta */
.summers-pay { display: flex; gap: 8px; flex-wrap: wrap; margin-top: .5rem; }
.summers-pay__card {
	width: 46px; height: 30px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--surface);
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 800; font-size: var(--wp--preset--font-size--xs); font-style: italic; letter-spacing: .3px;
	box-shadow: 0 1px 3px rgba(0,0,0,.25);
}
.summers-pay--visa { color: var(--wp--custom--brand--visa); }
.summers-pay--amex { background: var(--wp--custom--brand--amex); color: #fff; font-style: normal; font-size: var(--wp--preset--font-size--xs); }
.summers-pay--mc { gap: 0; }
.summers-pay--mc i { width: 15px; height: 15px; border-radius: 50%; display: block; }
.summers-pay--mc i:first-child { background: var(--wp--custom--brand--mastercard-red); }
.summers-pay--mc i:last-child { background: var(--wp--custom--brand--mastercard-amber); margin-left: -6px; mix-blend-mode: multiply; }

/* ---------- Hero (bloque summers/hero) ---------- */
.summers-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--wp--preset--gradient--hero);
}
.summers-hero__bg { position: absolute; inset: 0; z-index: -2; }
.summers-hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.summers-hero__overlay {
	position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(110deg, rgba(13,43,78,.94) 0%, rgba(13,43,78,.7) 42%, rgba(13,43,78,.3) 100%);
}
/* Con foto de fondo, el degradado propio del hero tapaba la imagen (desktop se veía navy plano):
   el overlay ya aporta el contraste del texto, así que anulamos ese fondo cuando hay imagen. */
.summers-hero--overlay:has(.summers-hero__bg) { background: transparent; }
.summers-hero__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: var(--wp--custom--space--flow-xs) var(--wp--preset--spacing--24);
	min-height: 460px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.summers-hero__eyebrow { display: inline-flex; align-items: center; gap: 14px; text-transform: uppercase; letter-spacing: 2px; font-weight: 600; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--sky-muted); margin: 0 0 16px; }
.summers-hero__eyebrow::after { content: ''; width: 34px; height: 3px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer); }
.summers-hero__title { font-size: var(--wp--preset--font-size--hero); font-weight: 800; color: #fff; line-height: 1.05; margin: .4rem 0 0; }
.summers-hero__cursive { font-family: 'Pacifico', cursive; font-size: var(--wp--preset--font-size--hero); color: var(--summers-sky); line-height: 1.2; margin: .15rem 0 0; }
.summers-hero__text { color: var(--summers-mist); max-width: 440px; margin: 1rem 0 1.5rem; }
.summers-hero__buttons { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.summers-hero__buttons .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; }
/* El botón sólido lleva borde transparente para igualar altura con el outline (borde 2px). */
.summers-hero__buttons .wp-block-button:not(.is-style-outline) > .wp-block-button__link { border: 2px solid transparent; }
/* Alineación del contenido del hero (izquierda por defecto). */
.summers-hero--align-center .summers-hero__inner { align-items: center; text-align: center; }
.summers-hero--align-center .summers-hero__text { margin-left: auto; margin-right: auto; }
.summers-hero--align-center .summers-hero__buttons { justify-content: center; }
.summers-hero--align-right .summers-hero__inner { align-items: flex-end; text-align: right; }
.summers-hero--align-right .summers-hero__text { margin-left: auto; }
.summers-hero--align-right .summers-hero__buttons { justify-content: flex-end; }
/* Overlay más oscuro del lado del texto cuando va a la derecha. */
.summers-hero--align-right .summers-hero__overlay {
	background: linear-gradient(250deg, rgba(13,43,78,.94) 0%, rgba(13,43,78,.7) 42%, rgba(13,43,78,.3) 100%);
}
/* Preview en editor: la imagen desktop va como background del bloque. */
.summers-hero--editor { background-size: cover; background-position: center; }
.summers-hero--editor .summers-hero__eyebrow { color: var(--wp--preset--color--sky-muted); }

/* Variante partida: navy sólido a la izquierda, foto a la derecha difuminada. */
.summers-hero--split { background: var(--wp--preset--color--navy); }
.summers-hero--split .summers-hero__bg { inset: 0 0 0 auto; width: 58%; z-index: 0; }
.summers-hero--split .summers-hero__bg img {
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%);
	        mask-image: linear-gradient(to right, transparent 0%, #000 42%);
}
.summers-hero--split .summers-hero__overlay { display: none; }
.summers-hero--split .summers-hero__inner { position: relative; z-index: 1; }
.summers-hero__sun { width: .58em; height: .58em; margin-left: .12em; vertical-align: .18em; }

/* ---------- Hero carrusel (summers/hero con varias diapositivas) ---------- */
.summers-hero-carousel { position: relative; overflow: hidden; }
.summers-hero-carousel__viewport { overflow: hidden; touch-action: pan-y; }
/* Slides side by side; the track height follows the tallest slide, so nothing jumps. */
.summers-hero-carousel__track { display: flex; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.summers-hero-carousel__slide { flex: 0 0 100%; min-width: 0; display: flex; flex-direction: column; }
/* Same box as the single hero (content-box, same padding and min-height); in the flex
   column it needs an explicit width, the one a block element gets on its own. */
.summers-hero-carousel__slide .summers-hero__inner { flex-grow: 1; width: calc(100% - 2 * var(--wp--preset--spacing--24)); }
.summers-hero-carousel__controls {
	/* Bottom right, on the content's right edge (1180px box), in the free band under the
	   buttons and above the trust bar (48px overlap). */
	position: absolute; z-index: 2;
	right: max(var(--wp--preset--spacing--24), (100% - 1180px) / 2);
	bottom: calc(48px + var(--wp--preset--spacing--16));
	display: none; align-items: center; gap: var(--wp--preset--spacing--4);
}
.summers-hero-carousel.is-ready .summers-hero-carousel__controls { display: flex; }
.summers-hero-carousel__btn {
	width: 32px; height: 32px; padding: 0; border-radius: 50%; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	/* Navy at .7 keeps the circle at ≥3:1 even over a white photo; the white rim does it over dark ones. */
	color: #fff; background: rgba(13, 43, 78, .7); border: 1px solid rgba(255, 255, 255, .6);
	transition: background-color .2s ease;
}
.summers-hero-carousel__btn:hover { background: var(--wp--preset--color--navy); }
/* Two-tone ring: visible over any photo. */
.summers-hero-carousel__btn:focus-visible, .summers-hero-carousel__dot:focus-visible {
	outline: 2px solid #fff; outline-offset: 1px; box-shadow: 0 0 0 4px var(--wp--preset--color--navy);
}
.summers-hero-carousel__dot:focus-visible { border-radius: 50%; }
.summers-hero-carousel__btn svg { width: 12px; height: 12px; fill: currentColor; }
/* The theme chevron points down. */
.summers-hero-carousel__prev svg { transform: rotate(90deg); }
.summers-hero-carousel__next svg { transform: rotate(-90deg); }
.summers-hero-carousel__dots { display: flex; }
/* 24x24 touch target with a small visible dot (WCAG 2.5.8). */
.summers-hero-carousel__dot { position: relative; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.summers-hero-carousel__dot::before {
	content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px;
	transform: translate(-50%, -50%); border-radius: 50%; background: rgba(255, 255, 255, .6); transition: background .2s;
	box-shadow: 0 0 3px rgba(13, 43, 78, .5);   /* soft halo so the dot still reads over light photos */
}
.summers-hero-carousel__dot[aria-current]::before { background: #fff; width: 12px; border-radius: var(--wp--custom--radius--xs); }
@media (prefers-reduced-motion: reduce) {
	.summers-hero-carousel__track { transition: none; }
}

@media (max-width: 781px) {
	.summers-hero__inner { min-height: 380px; }
	/* Mobile: swipe replaces the arrows; the dots sit centred in the bottom padding. */
	.summers-hero-carousel__controls { right: auto; left: 50%; transform: translateX(-50%); bottom: 0; }
	.summers-hero-carousel__prev, .summers-hero-carousel__next { display: none; }
	/* Split en mobile: foto a todo el ancho + velo navy para legibilidad. */
	.summers-hero--split .summers-hero__bg { width: 100%; }
	.summers-hero--split .summers-hero__bg img { -webkit-mask-image: none; mask-image: none; }
	.summers-hero--split .summers-hero__overlay {
		display: block; position: absolute; inset: 0; z-index: 0;
		background: linear-gradient(180deg, rgba(13,43,78,.5) 0%, rgba(13,43,78,.82) 100%),
		            linear-gradient(105deg, rgba(13,43,78,.75) 22%, rgba(13,43,78,.28) 100%);
	}
}

/* ---------- Antetítulo reutilizable (teal + guion amarillo) ---------- */
.summers-eyebrow {
	display: inline-flex; align-items: center; gap: 14px;
	text-transform: uppercase; letter-spacing: 2px; font-weight: 700; font-size: var(--wp--preset--font-size--sm);
	/* Teal profundo para AA sobre fondos claros (el sky #38c6d8 daba 1.9:1). */
	color: var(--wp--preset--color--sky-deep); margin: 0 0 16px;
}
.summers-eyebrow::after { content: ''; width: 34px; height: 3px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer); }

/* ---------- Intro (imagen + texto, dos columnas) ---------- */
.summers-intro {
	max-width: 1180px; margin: 0 auto; padding: var(--wp--custom--space--flow) 24px;
	display: grid; grid-template-columns: minmax(0, 460px) 1fr; gap: clamp(32px, 5vw, 72px); align-items: center;
}
.summers-intro--img-right { grid-template-columns: 1fr minmax(0, 460px); }
.summers-intro--img-right .summers-intro__media { order: 2; }
.summers-intro__media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--wp--custom--radius--lg); display: block; }
.summers-intro__media-ph { aspect-ratio: 4 / 3; border-radius: var(--wp--custom--radius--lg); background: repeating-linear-gradient(45deg, var(--wp--preset--color--border) 0 14px, var(--wp--preset--color--tint-cool) 14px 28px); display: flex; align-items: center; justify-content: center; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-intro__title { color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.15; font-size: var(--wp--preset--font-size--h-2); margin: 0 0 20px; }
.summers-intro__body { color: var(--wp--preset--color--text-soft); line-height: 1.7; max-width: 54ch; }
.summers-intro__body p { margin: 0 0 1em; }
.summers-intro__body > :last-child { margin-bottom: 0; }
.summers-intro__body a { color: var(--wp--preset--color--primary-dark); text-decoration: underline; text-underline-offset: 2px; }
.summers-intro__body strong { color: var(--wp--preset--color--navy); }
@media (max-width: 860px) {
	.summers-intro, .summers-intro--img-right { grid-template-columns: 1fr; gap: 32px; }
	.summers-intro--img-right .summers-intro__media { order: 0; }
}

/* ---------- Stats (números clave: icono círculo + número + etiqueta) ---------- */
.summers-stats {
	max-width: 1180px; margin: 0 auto; padding: var(--wp--custom--space--flow-xs) 24px var(--wp--custom--space--flow-lg);
	display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 3.5vw, 48px);
}
.summers-stats__item { display: flex; align-items: center; gap: 24px; }
.summers-stats__ico {
	flex: none; width: 84px; height: 84px; border-radius: 50%;
	background: var(--wp--preset--color--tint); display: flex; align-items: center; justify-content: center;
}
.summers-stats__ico svg { width: 40px; height: 40px; color: var(--summers-sky); }
.summers-stats__num { display: block; color: var(--wp--preset--color--primary-dark); font-weight: 600; font-size: var(--wp--preset--font-size--hero); line-height: 1; font-variant-numeric: tabular-nums; }
.summers-stats__label { display: block; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--body); margin-top: 7px; line-height: 1.35; }
@media (max-width: 860px) { .summers-stats { grid-template-columns: repeat(2, 1fr); gap: 32px; } }
@media (max-width: 440px) { .summers-stats { grid-template-columns: 1fr; } }

/* ---------- Equipo (cards de miembros) ---------- */
.summers-team { background: var(--wp--preset--color--band); padding: var(--wp--custom--space--flow-lg) 24px; }
.summers-team__inner { max-width: 1180px; margin: 0 auto; }
/* Header de sección reutilizable: título a la izquierda + texto de apoyo a la derecha,
   colapsa a 1 columna en móvil. Patrón unificado (equipo, FAQ, …). */
.summers-section-head {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px);
	align-items: end; margin-bottom: clamp(32px, 5vw, 52px);
}
.summers-section-head h2 { margin: 0; }
.summers-section-head .summers-section-sub { margin-bottom: 0; }
.summers-team__title { color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.15; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-team__intro { color: var(--wp--preset--color--text-soft); line-height: 1.6; max-width: 48ch; margin: 0; }
.summers-team__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.4vw, 24px); }
.summers-team__card {
	box-sizing: border-box;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); padding: 16px; text-align: center;
	box-shadow: var(--wp--preset--shadow--soft);
	transition: transform .25s ease, box-shadow .25s ease;
}
.summers-team__card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--hover); }
.summers-team__avatar { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; margin: 0 auto 12px; }
.summers-team__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.summers-team__avatar--ph {
	background: linear-gradient(135deg, var(--summers-sky), var(--wp--preset--color--primary));
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-weight: 700; font-size: var(--wp--preset--font-size--h-2);
}
.summers-team__name { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); }
.summers-team__role { display: block; color: var(--wp--preset--color--primary-dark); font-weight: 600; font-size: var(--wp--preset--font-size--sm); margin-top: 3px; }
.summers-team__desc { color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--body); line-height: 1.5; margin: 14px 0 0; }
@media (max-width: 900px) {
	.summers-section-head { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 1024px) {
	/* Equipo = carrusel horizontal desde <1024px (mismo patrón que categorías/destinos). */
	.summers-team__grid {
		display: flex; grid-template-columns: none; gap: 16px;
		overflow-x: auto; scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 8px;
	}
	.summers-team__grid::-webkit-scrollbar { height: 0; }
	/* En el carrusel táctil las cards van sin sombra (solo borde). */
	.summers-team__card { flex: 0 0 70%; scroll-snap-align: start; box-shadow: none; }
	.summers-team__card:hover { transform: none; box-shadow: none; }
}
@media (max-width: 600px) {
	/* Teléfono: cards angostas de ancho fijo → a 375px entran 2 con un pequeño
	   peek de la 3ª (afordancia de scroll). Flechas/dots los monta slider.js. */
	.summers-team__grid { gap: 12px; }
	.summers-team__card { flex: 0 0 150px; padding: 16px 12px; }
	.summers-team__avatar { width: 64px; height: 64px; margin-bottom: 10px; }
	.summers-team__avatar--ph { font-size: var(--wp--preset--font-size--h-2); }
	.summers-team__name { font-size: var(--wp--preset--font-size--body); }
	.summers-team__role { font-size: var(--wp--preset--font-size--sm); }
}
@media (max-width: 781px) {
	/* Equipo: sí mostramos flechas en teléfono (el resto de sliders quedan solo con
	   dots). Van compactas y pegadas a los bordes, flotando en el padding lateral
	   de la card (la avatar va centrada, no las tapa). */
	.summers-team .summers-slider__arrow { display: flex; width: 34px; height: 34px; font-size: var(--wp--preset--font-size--h-3); }
	.summers-team .summers-slider__arrow--prev { left: -18px; }
	.summers-team .summers-slider__arrow--next { right: -18px; }
}

/* ---------- Valores (título izq + grid de valores der) ---------- */
.summers-values { max-width: 1180px; margin: 0 auto; padding: var(--wp--custom--space--flow-lg) 24px; }
/* Header arriba a todo el ancho + value props abajo: evita columnas apretadas
   (con título a la izquierda, las 4 columnas quedaban en ~150px a cualquier ancho). */
.summers-values__wrap { display: grid; grid-template-columns: 1fr; gap: clamp(32px, 4vw, 52px); }
.summers-values__head { max-width: 620px; }
.summers-values__title { color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.2; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-values__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 2.4vw, 34px); }
.summers-values__item { text-align: center; }
.summers-values__ico {
	width: 64px; height: 64px; border-radius: 50%; background: var(--wp--preset--color--tint);
	display: flex; align-items: center; justify-content: center; margin: 0 auto 16px;
}
.summers-values__ico svg { width: 30px; height: 30px; color: var(--summers-sky); }
.summers-values__item-title { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--body); }
.summers-values__desc { color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--body); line-height: 1.5; margin: 10px 0 0; }
@media (max-width: 781px) { .summers-values__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 460px) { .summers-values__grid { grid-template-columns: 1fr; } }

/* ---------- CTA final (banda navy + foto + estela de avión) ---------- */
.summers-ctafinal {
	position: relative; overflow: hidden;
	background: var(--wp--preset--color--navy);
	padding: clamp(30px, 3.2vw, 44px) 0;
}
/* Foto a todo el ancho por debajo (mismo enfoque que el hero overlay). */
.summers-ctafinal__bg {
	position: absolute; inset: 0; z-index: 0;
	width: 100%; height: 100%; object-fit: cover;
}
/* Overlay diagonal navy: oscuro a la izquierda (texto) y velado a la derecha:
   deja ver la foto pero mantiene legible el botón, que va sobre ese lado. */
.summers-ctafinal::before {
	content: ''; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(105deg, rgba(13,43,78,.94) 0%, rgba(13,43,78,.74) 46%, rgba(13,43,78,.46) 100%);
}
.summers-ctafinal__inner {
	position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; box-sizing: border-box;
	padding-left: clamp(24px, 4vw, 40px); padding-right: clamp(24px, 4vw, 40px);
	display: flex; align-items: center; justify-content: space-between; gap: clamp(20px, 3vw, 44px);
}
.summers-ctafinal__copy { flex: 1 1 auto; min-width: 0; }
.summers-ctafinal__title { color: #fff; font-weight: 800; line-height: 1.12; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-ctafinal__script { display: block; font-family: 'Pacifico', cursive; font-weight: 400; color: var(--summers-sky); font-size: .92em; margin-top: .08em; }
.summers-ctafinal__sun { width: .56em; height: .56em; margin-left: .14em; vertical-align: .16em; }
.summers-ctafinal__sub { color: var(--summers-mist); margin: 14px 0 0; line-height: 1.55; font-size: var(--wp--preset--font-size--body); }
/* Estela ENCIMA del botón (mismo eje vertical), agrupadas a la derecha. */
.summers-ctafinal__cluster { flex: none; display: flex; flex-direction: column; align-items: center; gap: clamp(8px, 1.4vw, 18px); }
.summers-ctafinal__trail { flex: none; width: clamp(120px, 14vw, 168px); color: rgba(255, 255, 255, .5); line-height: 0; pointer-events: none; }
.summers-ctafinal__trail svg { width: 100%; height: auto; display: block; }
.summers-ctafinal__btn { flex: none; margin: 0; }
@media (max-width: 860px) {
	.summers-ctafinal__inner { flex-direction: column; align-items: flex-start; gap: 24px; }
	/* En móvil el layout se apila: velo vertical para legibilidad de todo el bloque. */
	.summers-ctafinal::before {
		background: linear-gradient(180deg, rgba(13,43,78,.9) 0%, rgba(13,43,78,.82) 52%, rgba(13,43,78,.94) 100%);
	}
	.summers-ctafinal__copy { max-width: none; }
	.summers-ctafinal__trail { display: none; }
}

/* ---------- CTA WhatsApp (banda mint reutilizable) ---------- */
.summers-ctawa-band { background: var(--wp--preset--color--surface); padding: var(--wp--custom--space--flow-sm) 24px; }
.summers-ctawa {
	max-width: 1180px; margin: 0 auto; box-sizing: border-box;
	background: linear-gradient(120deg, var(--wp--preset--color--tint) 0%, var(--summers-wash-hi) 100%);
	border-radius: var(--wp--custom--radius--xl); padding: clamp(26px, 3.5vw, 40px) clamp(28px, 4vw, 48px);
	display: flex; align-items: center; gap: clamp(18px, 3vw, 32px);
}
.summers-ctawa__badge {
	flex: none; width: 66px; height: 66px; border-radius: 50%;
	background: var(--wp--preset--color--whatsapp, var(--wp--preset--color--whatsapp)); color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 20px rgba(37, 211, 102, .28);
}
.summers-ctawa__badge svg { width: 34px; height: 34px; }
.summers-ctawa__copy { flex: 1 1 auto; }
.summers-ctawa__title { color: var(--wp--preset--color--navy); font-weight: 800; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-ctawa__text { color: var(--wp--preset--color--text-soft); margin: 6px 0 0; font-size: var(--wp--preset--font-size--body); max-width: 62ch; }
.summers-ctawa__btn { flex: none; margin: 0; }
@media (max-width: 820px) {
	.summers-ctawa { flex-direction: column; text-align: center; gap: 18px; }
	.summers-ctawa__text { max-width: none; }
}

/* ---------- Trust bar (tarjeta flotante con divisores + iconos line-art) ---------- */
.summers-trust {
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--xl) !important;
	padding: 24px 14px !important;
	box-shadow: var(--wp--preset--shadow--elevated) !important;
	position: relative;
	z-index: 2;
	overflow: hidden;   /* recorta el marquee en mobile */
}
.summers-trust__track {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: start;   /* celdas alineadas al top, no al fondo */
}
.summers-trust__track .summers-trust__item--dup { display: none; }   /* copia solo para el marquee mobile */
@media (min-width: 782px) {
	.summers-trust { margin-top: -48px; }   /* flota sobre el hero */
}
.summers-trust__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;   /* todos los títulos/iconos alineados al top */
	padding: 6px 24px;
	margin: 0 !important;       /* anula el blockGap que WP mete a los items 2-4 */
}
.summers-trust__item:not(:first-child) { border-left: 1px solid var(--wp--preset--color--tint-cool); }
.summers-trust__icon { width: 44px; height: 44px; flex: none; }
.summers-trust__icon svg { width: 100%; height: 100%; display: block; color: var(--wp--preset--color--navy); }
.summers-trust__title { display: block; font-size: var(--wp--preset--font-size--body); font-weight: 700; }
.summers-trust__desc { display: block; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--text-soft); line-height: 1.4; margin-top: 2px; }

/* ---------- Cards de destino ---------- */
.wp-block-post-template.summers-cards-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
	grid-auto-rows: 1fr;   /* every row as tall as the tallest card: same height across the grid */
}
.summers-cards-grid > li { margin: 0; }
/* Vertical card: the whole photo on top, a solid panel below with the info and the button.
   The horizontal ticket (home and related, desktop) puts the same panel beside the photo. */
.summers-card {
	position: relative;
	border-radius: var(--wp--custom--radius--xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;   /* fills its grid cell or slider slot, so cards side by side match */
	background: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--elevated);
}
.summers-card__media {
	/* No z-index: it would create a stacking context around the tags inside. */
	position: relative; aspect-ratio: 16 / 10; overflow: hidden;
	background: repeating-linear-gradient(45deg, var(--wp--preset--color--border) 0 12px, var(--wp--preset--color--base) 12px 24px);
}
.summers-card__media a { display: block; height: 100%; }
.summers-card__media img,
.summers-card__ph {
	display: block; width: 100%; height: 100%; object-fit: cover;
}
/* Country and category side by side, top left on the photo. */
.summers-card__tags { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.summers-card__badge {
	color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 600; line-height: 1.3; padding: 3px 10px; border-radius: var(--wp--custom--radius--pill);
	box-shadow: 0 2px 8px rgba(13, 43, 78, .25);
}
.summers-card__body {
	position: relative; z-index: 1;
	flex-grow: 1;   /* equal heights in a grid row; the button stays at the bottom */
	padding: 14px 16px 16px;
	background: var(--wp--preset--color--surface);
	display: flex; flex-direction: column; gap: 6px;
}
.summers-card__meta {
	font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--text-soft); line-height: 1.4;
	min-height: 2.6em;   /* reserva 2 líneas, igual que el título: si no, "6 noches · Vuelo + hotel"
	                        ocupa una sola y el panel de esa card arranca más abajo que el resto */
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.summers-card__title {
	font-size: var(--wp--preset--font-size--h-3); font-weight: 700; margin: 0; line-height: 1.15;
	min-height: 2.2em;   /* reserva 2 líneas: la card interna queda igual con títulos de 1 o 2 líneas */
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.summers-card__title a { color: inherit; }
.summers-card__from { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--text-soft); }
.summers-card__price { font-weight: 800; font-size: var(--wp--preset--font-size--h-3); }
.summers-card__price span { color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--sm); }
/* CTA de la card: navy full-width con icono WhatsApp en círculo a la derecha. */
.summers-card__cta {
	margin-top: auto;
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	background-color: var(--wp--preset--color--navy);
	background-image: linear-gradient(var(--wp--preset--color--primary-dark), var(--wp--preset--color--primary-dark));
	background-repeat: no-repeat; background-position: left center; background-size: 0% 100%;
	color: #fff;
	border-radius: var(--wp--custom--radius--md);
	padding: 9px 10px 9px 16px;
	font-weight: 600; font-size: var(--wp--preset--font-size--sm);
	text-decoration: none;
	transition: background-size .6s cubic-bezier(.16, 1, .3, 1);
}
.summers-card__cta:hover,
.summers-card:focus-within .summers-card__cta { background-size: 100% 100%; }
.summers-card__cta-icon {
	width: 26px; height: 26px; flex: none; border-radius: 50%;
	background: var(--wp--preset--color--surface); color: var(--wp--preset--color--whatsapp);
	display: inline-flex; align-items: center; justify-content: center;
}
.summers-card__cta-icon svg { width: 15px; height: 15px; }
/* Placeholders en el editor: se leen como auto-generados. */
.summers-card--ph, .summers-testi--ph { outline: 1px dashed var(--wp--preset--color--mist); outline-offset: -1px; }
.summers-card__ph-note { margin-top: auto; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--text-muted); font-style: italic; }

/* Palabra destacada en teal dentro de encabezados. */
.summers-hl { color: var(--wp--preset--color--primary-dark); }

/* Icono de sol para títulos de sección (SVG, on-brand, igual en todo dispositivo). */
.summers-sun {
	display: inline-block;
	width: 1em; height: 1em;
	vertical-align: -0.12em;
	margin-right: .25em;
	background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="4.6" fill="%23f4c020"/><g stroke="%23f4c020" stroke-width="2.1" stroke-linecap="round"><line x1="12" y1="2.5" x2="12" y2="4.6"/><line x1="12" y1="19.4" x2="12" y2="21.5"/><line x1="2.5" y1="12" x2="4.6" y2="12"/><line x1="19.4" y1="12" x2="21.5" y2="12"/><line x1="5.4" y1="5.4" x2="6.9" y2="6.9"/><line x1="17.1" y1="17.1" x2="18.6" y2="18.6"/><line x1="5.4" y1="18.6" x2="6.9" y2="17.1"/><line x1="17.1" y1="6.9" x2="18.6" y2="5.4"/></g></svg>') no-repeat center / contain;
}

/* ---------- Pasos (Cómo reservar): horizontal, icono en anillo + badge + flechas ---------- */
.summers-steps-wrap { background: var(--wp--preset--color--tint); }
.summers-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; }
.summers-steps__item { display: flex; align-items: flex-start; gap: 16px; position: relative; }
.summers-steps__icon {
	position: relative; flex: none;
	width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--summers-edge); background: var(--wp--preset--color--surface);
	display: flex; align-items: center; justify-content: center;
}
.summers-steps__icon svg { width: 34px; height: 34px; color: var(--wp--preset--color--primary); }
.summers-steps__num {
	position: absolute; bottom: -9px; left: 50%; transform: translateX(-50%);
	width: 22px; height: 22px; border-radius: 50%; background: var(--wp--preset--color--surface);
	border: 2px solid var(--wp--preset--color--primary); color: var(--wp--preset--color--primary-dark);
	font-weight: 800; font-size: var(--wp--preset--font-size--xs); display: flex; align-items: center; justify-content: center;
}
.summers-steps__text { display: flex; flex-direction: column; }
.summers-steps__title { font-weight: 700; font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--navy); margin: 2px 0 6px; }
.summers-steps__desc { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--text-soft); line-height: 1.5; }
/* Flecha punteada entre pasos (llena el gap; SVG a tamaño fijo, sin distorsión). */
.summers-steps__item:not(:last-child)::after {
	content: ''; position: absolute; top: 30px; right: -44px; width: 44px; height: 12px; pointer-events: none;
	background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 44 12" fill="none"><path d="M1 6 H31" stroke="%239fd4de" stroke-width="2" stroke-dasharray="2 5" stroke-linecap="round"/><path d="M32 2 L39 6 L32 10" stroke="%239fd4de" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center / contain;
}

/* ---------- ¿Por qué elegir? (confianza + imagen lateral) ---------- */
.summers-why {
	display: grid;
	grid-template-columns: 1.08fr 0.92fr;
	align-items: stretch;
	background: linear-gradient(155deg, var(--summers-wash-lo) 0%, var(--wp--preset--color--tint-cool) 100%);
	overflow: hidden;
	border-radius: var(--wp--custom--radius--lg);
}
.summers-why__content {
	display: flex; flex-direction: column; justify-content: center;
	padding: clamp(48px, 6vw, 80px) clamp(28px, 3.5vw, 52px);
}
.summers-why__title {
	color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.08;
	font-size: var(--wp--preset--font-size--h-2);
	margin: 0 0 clamp(28px, 4vw, 48px);
}
.summers-why__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.summers-why__item { text-align: center; }
.summers-why__icon {
	width: 64px; height: 64px; border-radius: 50%;
	border: 2px solid var(--summers-edge); background: rgba(255, 255, 255, .6);
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 16px;
}
.summers-why__icon svg { width: 28px; height: 28px; color: var(--wp--preset--color--primary); }
.summers-why__icon--img { border: 0; background: none; overflow: hidden; padding: 0; }
.summers-why__icon--img img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.summers-why__item-title { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--body); margin-bottom: 6px; }
.summers-why__desc { display: block; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--body); line-height: 1.5; }
.summers-why__media { position: relative; min-height: 460px; }
.summers-why__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.summers-why__img--ph { background: linear-gradient(135deg, var(--wp--preset--color--mist) 0%, var(--wp--preset--color--sky-muted) 100%); }

/* ---------- Viaja con confianza (stats + cards de opciones) ---------- */
.summers-confianza__title {
	color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.1;
	font-size: var(--wp--preset--font-size--h-2); margin: 0 0 14px; max-width: 22ch;
}
.summers-confianza__sub { color: var(--wp--preset--color--text-soft); max-width: 46ch; margin: 0; font-size: var(--wp--preset--font-size--body); line-height: 1.5; }
/* Stats */
.summers-confianza__stats {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--wp--preset--spacing--24);
	margin: var(--wp--custom--space--flow-sm) 0;
}
.summers-confianza__num {
	display: block; color: var(--wp--preset--color--navy); font-weight: 800;
	font-size: var(--wp--preset--font-size--hero); line-height: 1;
}
.summers-confianza__stat-label { display: block; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); margin-top: 8px; }
/* Cards de opciones */
.summers-confianza__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wp--preset--spacing--24); }
.summers-confianza__card {
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); padding: var(--wp--preset--spacing--24);
	box-shadow: var(--wp--preset--shadow--soft);
	display: flex; flex-direction: column;
	transition: var(--summers-lift);
}
.summers-confianza__card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--hover); }
.summers-confianza__ico {
	width: 52px; height: 52px; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--tint-cool);
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: var(--wp--preset--spacing--16); }
.summers-confianza__ico svg { width: 26px; height: 26px; color: var(--wp--preset--color--navy); }
.summers-confianza__card-title { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); margin-bottom: var(--wp--preset--spacing--8); }
.summers-confianza__card-desc { display: block; color: var(--wp--preset--color--text-soft); line-height: 1.55; font-size: var(--wp--preset--font-size--body); margin-bottom: var(--wp--preset--spacing--16); }
.summers-confianza__pill {
	align-self: flex-start; margin-top: auto;
	padding: 7px 14px; border-radius: var(--wp--custom--radius--pill); font-weight: 700; font-size: var(--wp--preset--font-size--sm);
}
.summers-confianza__pill--green { background: var(--wp--custom--status--success-bg); color: var(--wp--custom--status--success-ink); }
.summers-confianza__pill--orange { background: var(--wp--custom--status--warning-bg); color: var(--wp--custom--status--warning-ink); }
.summers-confianza__pill--teal { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--primary-dark); }

/* Cabecera de sección con enlace: título + "ver todos" en la misma fila y la
   bajada en una línea propia. Rejilla (no flex) porque el subtítulo lleva
   max-width y en flex eso lo dejaba colarse en la primera fila. */
.wp-block-group.summers-sechead { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 24px; row-gap: 8px; }
.summers-sechead > h2 { grid-column: 1; margin: 0; }
.summers-sechead > p:not(.summers-section-sub) { grid-column: 2; margin: 0; }
.summers-sechead > .summers-section-sub { grid-column: 1 / -1; }
@media (max-width: 781px) {
	/* Una sola columna y el enlace al final: título → bajada → "ver todos". */
	.wp-block-group.summers-sechead { grid-template-columns: 1fr; }
	.summers-sechead > p:not(.summers-section-sub) { grid-column: 1; order: 1; }
	.summers-sechead > .summers-section-sub { margin-bottom: 8px; }
}

/* Subtítulo de sección (reutilizable: destinos, categorías, testimonios).
   El layout "constrained" de WP centra los hijos angostos con margin:auto;
   forzamos alineación a la izquierda para que quede bajo el título. */
.summers-section-sub {
	color: var(--wp--preset--color--text-soft);
	font-size: var(--wp--preset--font-size--body); line-height: 1.5; max-width: 54ch;
	margin-top: 0; margin-bottom: clamp(20px, 3vw, 32px);
	margin-left: 0 !important; margin-right: auto !important;
}

/* ---------- FAQ (acordeón nativo <details>, cero JS) ---------- */
.summers-faq__title {
	color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.1;
	font-size: var(--wp--preset--font-size--h-2); margin: 0 0 14px;
}
.summers-faq__list { display: flex; flex-direction: column; gap: 14px; margin-top: clamp(20px, 3vw, 32px); }
.summers-faq__item {
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--md);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: border-color .2s ease;
}
.summers-faq__item:hover { border-color: var(--summers-edge); }
.summers-faq__q {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 20px 24px; cursor: pointer; list-style: none;
	color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--body);
}
.summers-faq__q::-webkit-details-marker { display: none; }
/* Chevron con pseudo-elemento (rota de forma fiable). */
.summers-faq__q::after {
	content: ''; flex: none; width: 10px; height: 10px; margin-right: 6px;
	border-right: 2.5px solid var(--wp--preset--color--primary);
	border-bottom: 2.5px solid var(--wp--preset--color--primary);
	border-radius: 0 0 var(--wp--custom--radius--xs) 0;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.summers-faq__item[open] .summers-faq__q::after { transform: rotate(-135deg) translateY(-2px); }
.summers-faq__a { padding: 0 24px 20px; color: var(--wp--preset--color--text-soft); line-height: 1.6; }
.summers-faq__a p { margin: 0; }

/* ---------- Categorías ---------- */
.summers-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wp--preset--spacing--16); }
.summers-cat {
	position: relative;
	background: var(--wp--preset--color--surface); border-radius: var(--wp--custom--radius--lg); overflow: hidden;
	box-shadow: var(--wp--preset--shadow--card); text-decoration: none; color: inherit; display: block;
}
.summers-cat__media { display: block; width: 100%; height: 160px; object-fit: cover; }
.summers-cat__media--ph { background: repeating-linear-gradient(45deg, var(--wp--preset--color--border) 0 12px, var(--wp--preset--color--base) 12px 24px); }
.summers-cat__icon {
	position: absolute; top: 132px; left: 16px; z-index: 2;
	width: 56px; height: 56px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; color: #fff;
	box-shadow: 0 3px 8px rgba(13, 43, 78, .25);
}
.summers-cat__icon svg { width: 30px; height: 30px; }
.summers-cat__body { display: flex; align-items: center; min-height: 44px; padding: 0 14px 0 84px; }
.summers-cat__name { font-weight: 600; font-size: var(--wp--preset--font-size--body); line-height: 1.2; }

/* ---------- Oferta ---------- */
.summers-offer {
	position: relative;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--24) var(--wp--preset--spacing--48);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--24);
}
.summers-offer__left { display: flex; align-items: center; gap: var(--wp--preset--spacing--32); flex-wrap: wrap; position: relative; z-index: 1; }
.summers-offer__img { height: 180px; width: auto; display: block; }
.summers-offer__icon {
	width: 110px; height: 110px; border-radius: var(--wp--custom--radius--lg); background: rgba(255, 255, 255, .35);
	display: flex; align-items: center; justify-content: center; font-size: 52px;
}
.summers-offer__title { font-size: var(--wp--preset--font-size--h-2); line-height: 1.02; margin: 0; }
.summers-offer__script { font-family: 'Pacifico', cursive; font-weight: 400; }
.summers-offer__sub { margin-top: var(--wp--preset--spacing--12); font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--navy); opacity: .82; }
.summers-offer__cta { position: relative; z-index: 1; }
.summers-offer__cta .wp-block-button__link { font-size: var(--wp--preset--font-size--body); font-weight: 700; padding: 1.05rem 2.4rem; border-radius: var(--wp--custom--radius--md); }
.summers-offer__plane { position: absolute; left: 47%; top: 22%; width: 128px; pointer-events: none; }
.summers-offer__plane svg { width: 100%; height: auto; display: block; }

/* ---------- CTA final ---------- */
.summers-cta {
	position: relative; overflow: hidden; border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--48);
	display: flex; justify-content: space-between; align-items: center;
	flex-wrap: wrap; gap: var(--wp--preset--spacing--24);
}
.summers-cta__bg {
	position: absolute; inset: 0 0 0 auto; height: 100%; width: 58%;
	object-fit: cover; z-index: 0; pointer-events: none;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 45%);
	        mask-image: linear-gradient(to right, transparent, #000 45%);
}
.summers-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; gap: var(--wp--preset--spacing--24); }
.summers-cta__sub { margin: 6px 0 0; color: var(--wp--preset--color--tint); max-width: 30ch; }
.summers-cta__actions { position: relative; z-index: 1; margin: 0; }
.summers-cta__reassure { position: relative; z-index: 1; color: var(--wp--preset--color--tint); font-size: var(--wp--preset--font-size--sm); margin: 10px 0 0; opacity: .92; }
.summers-cta__badge {
	width: 78px; height: 78px; flex: none; border-radius: 50%; background: var(--wp--preset--color--whatsapp);
	display: flex; align-items: center; justify-content: center; color: #fff;
	box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.summers-cta__badge svg { width: 38px; height: 38px; }
.summers-cta .summers-wa > .wp-block-button__link {
	background-color: #fff; color: var(--wp--preset--color--navy);
	font-weight: 700; padding: .9rem 1.6rem; border-radius: var(--wp--custom--radius--md);
	box-shadow: 0 6px 18px rgba(0,0,0,.16);
	box-sizing: border-box;   /* que el padding no se sume al width:100% en mobile */
}
.summers-cta .summers-wa > .wp-block-button__link svg { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Testimonios (slider: texto centrado, sin foto) ---------- */
.wp-block-post-template.summers-testi-grid {
	list-style: none; margin: 0; padding: 8px 2px 18px;
	display: flex; gap: 16px;
	overflow-x: auto; scroll-snap-type: x mandatory;
	scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.summers-testi-grid::-webkit-scrollbar { height: 0; }
/* Un contenedor con scroll recorta en ambos ejes: este padding deja sitio a la sombra
   del hover (si no, se corta en línea recta) y el margen negativo devuelve el espacio
   que había, así el layout no se mueve. Selector largo para ganar al carrusel móvil. */
/* La máscara desvanece esos 16px laterales: ni la sombra de las tarjetas vecinas ni la del hover
   terminan en un borde duro. */
.summers-testimonios .wp-block-post-template.summers-testi-grid { padding: 16px 16px 32px; margin: -8px -16px -16px; max-width: none; scroll-padding-inline: 16px;
	-webkit-mask-image: linear-gradient(to right, transparent, currentColor 16px, currentColor calc(100% - 16px), transparent);
	mask-image: linear-gradient(to right, transparent, currentColor 16px, currentColor calc(100% - 16px), transparent); }
.summers-testi-grid > li { margin: 0; flex: 0 0 calc((100% - 32px) / 3); scroll-snap-align: start; }
.summers-testi {
	background: var(--wp--preset--color--surface); border-radius: var(--wp--custom--radius--lg); padding: 24px 24px; box-shadow: var(--wp--preset--shadow--card);
	box-sizing: border-box; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center;
}
.summers-testi__body { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.summers-testi__stars { color: var(--wp--preset--color--offer); font-size: var(--wp--preset--font-size--body); letter-spacing: 2px; line-height: 1; }
.summers-testi__text { font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--text-soft); line-height: 1.5; }
.summers-testi__name { font-weight: 700; font-size: var(--wp--preset--font-size--body); }

/* Slider (flechas + puntos, montado con JS). */
.summers-slider { position: relative; }
.summers-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--wp--preset--color--surface); border: 1.5px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; box-shadow: var(--wp--preset--shadow--soft);
	font-size: var(--wp--preset--font-size--h-3); line-height: 1;
}
.summers-slider__arrow:hover { background: var(--wp--preset--color--primary); color: #fff; }
.summers-slider__arrow:disabled { opacity: .35; cursor: default; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary); }
.summers-slider__arrow--prev { left: -20px; }
.summers-slider__arrow--next { right: -20px; }
.summers-slider__dots { display: flex; justify-content: center; margin-top: 12px; }
/* The button is the 24x24 touch target (WCAG 2.5.8); the visible dot stays 9 px. */
.summers-slider__dot {
	position: relative; width: 24px; height: 24px; border: 0; padding: 0;
	background: none; cursor: pointer;
}
.summers-slider__dot::before {
	content: ''; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px;
	transform: translate(-50%, -50%); border-radius: 50%;
	background: var(--wp--preset--color--mist); transition: background .2s;
}
.summers-slider__dot.is-active { width: 32px; }
.summers-slider__dot.is-active::before { width: 24px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--primary); }
.summers-slider.is-single .summers-slider__arrow { display: none; }

/* ---------- Responsive: tablet ---------- */
@media (min-width: 782px) and (max-width: 1024px) {
	.wp-block-post-template.summers-cards-grid { grid-template-columns: repeat(2, 1fr); }
	.summers-testi-grid > li { flex-basis: calc((100% - 16px) / 2); }
	.summers-cats { grid-template-columns: repeat(3, 1fr); }
	.summers-why__grid { grid-template-columns: repeat(2, 1fr); }
	.summers-steps { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
	.summers-steps__item:not(:last-child)::after { display: none; }
}

/* ---------- Responsive: mobile ---------- */
@media (max-width: 781px) {
	/* Barra de confianza = marquee horizontal (loop CSS, sin JS) */
	/* Full-bleed: sale del padding global del grupo y pierde el radio (ribbon a lo ancho). */
	.summers-trust {
		padding: 10px 0 !important;
		margin-left: -1.5rem !important; margin-right: -1.5rem !important;   /* sale del padding global (24px) del grupo */
		margin-top: 0 !important;   /* en desktop flota (-48); en mobile va pegada al hero, sin franja vacía */
		max-width: none;
		border-radius: 0 !important;
	}
	.summers-trust__track {
		display: flex; grid-template-columns: none;
		width: max-content; align-items: center;
		animation: summers-marquee 50s linear infinite;
	}
	.summers-trust__track .summers-trust__item--dup { display: flex; }
	/* Mobile compacto: menos padding/gap e iconos y tipografía más pequeños. */
	.summers-trust__item { flex: 0 0 auto; padding: 4px 14px; gap: 8px; }
	.summers-trust__icon { width: 28px; height: 28px; }
	.summers-trust__title { font-size: var(--wp--preset--font-size--sm); }
	.summers-trust__desc { font-size: var(--wp--preset--font-size--xs); }
	/* Pasos = lista vertical (icono izq + texto der ya es el layout base); sin flechas */
	.summers-steps-wrap { padding: var(--wp--preset--spacing--32) var(--wp--preset--spacing--24) !important; }
	.summers-steps { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--32); }
	.summers-steps__item:not(:last-child)::after { display: none; }
	.summers-steps__item { gap: 14px; }
	.summers-steps__icon { width: 58px; height: 58px; }
	.summers-steps__icon svg { width: 27px; height: 27px; }
	.summers-steps__num { width: 20px; height: 20px; bottom: -8px; font-size: var(--wp--preset--font-size--xs); }
	.summers-steps-wrap .wp-block-buttons { width: 100%; justify-content: center; }
	/* Botón cómodo en teléfono, pero con tope (380) para que no se estire como
	   banner en anchos grandes; el flex del contenedor lo centra. */
	.summers-steps-wrap .summers-wa { width: 100%; max-width: 380px; }
	/* El texto es largo: que envuelva y respete el padding, en vez de desbordarlo
	   (el icono/texto quedaban pegados a los bordes). */
	.summers-steps-wrap .summers-wa > .wp-block-button__link { width: 100%; box-sizing: border-box; justify-content: center; white-space: normal; text-align: center; line-height: 1.3; }

	/* Categorías = carrusel horizontal */
	.summers-cats {
		display: flex; grid-template-columns: none; gap: var(--wp--preset--spacing--16);
		overflow-x: auto; scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: var(--wp--preset--spacing--8);
	}
	.summers-cats::-webkit-scrollbar { height: 0; }
	.summers-cats > .summers-cat { flex: 0 0 62%; scroll-snap-align: start; }

	/* ¿Por qué elegir? = imagen arriba + beneficios 2×2 */
	.summers-why { grid-template-columns: 1fr; }
	.summers-why__media { order: -1; min-height: 240px; }
	/* Funde el borde inferior de la imagen a transparente: el gradiente real de la
	   sección se ve continuo arriba/abajo (sin escalón de color). */
	.summers-why__img {
		-webkit-mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
		        mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
	}
	.summers-why__content { padding: 48px 24px 48px; }
	.summers-why__grid { grid-template-columns: 1fr 1fr; gap: 32px 14px; }
	.summers-why__icon { width: 58px; height: 58px; margin-bottom: 12px; }
	.summers-why__icon svg { width: 26px; height: 26px; }

	/* Viaja con confianza: stats 2×2, cards apiladas */
	.summers-confianza__stats { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--32) var(--wp--preset--spacing--16); }
	.summers-confianza__cards { grid-template-columns: 1fr; }

	/* Banner de ofertas = más aire vertical */
	.summers-offer { text-align: center; justify-content: center; padding: var(--wp--preset--spacing--32) var(--wp--preset--spacing--24); }
	.summers-offer__left { justify-content: center; }
	.summers-offer__plane { display: none; }

	/* Grids que pasan a carrusel horizontal en mobile */
	.wp-block-post-template.summers-carousel-mobile {
		display: flex; grid-template-columns: none;
		overflow-x: auto; scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
		padding-bottom: 8px;
	}
	.wp-block-post-template.summers-carousel-mobile::-webkit-scrollbar { height: 0; }
	.wp-block-post-template.summers-carousel-mobile > li { flex: 0 0 76%; scroll-snap-align: start; }

	/* Testimonios = 1 card a ancho completo (gana a summers-carousel-mobile) */
	.wp-block-post-template.summers-testi-grid > li { flex: 0 0 100%; }
	.summers-slider__arrow { display: none; }

	/* CTA = columna + botón a ancho completo; el título usa todo el ancho */
	.summers-cta { flex-direction: column; align-items: flex-start; text-align: left; }
	.summers-cta__bg { display: none; }
	.summers-cta__inner { flex-direction: column; align-items: flex-start; gap: 14px; }
	.summers-cta__sub { max-width: none; }
	.summers-cta__actions, .summers-cta .summers-wa { width: 100%; }
	.summers-cta .summers-wa > .wp-block-button__link { width: 100%; justify-content: center; }

	/* Footer: links con tap targets grandes y a ancho completo (accesibilidad) */
	.summers-footer__list { gap: 0; }
	.summers-footer__list a { display: block; padding: 11px 0; font-size: var(--wp--preset--font-size--body); }
	.summers-contact { gap: 4px; font-size: var(--wp--preset--font-size--body); }
	.summers-contact li { padding: 8px 0; }
	.summers-footer .wp-block-column { margin-bottom: 8px; }
}

/* Marquee de la barra de confianza (2 copias → loop sin costura) */
@keyframes summers-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
/* Pausa el marquee cuando la sección no está en viewport (JS añade la clase). */
.summers-trust.is-offscreen .summers-trust__track { animation-play-state: paused; }
.summers-trust.is-paused .summers-trust__track { animation-play-state: paused; }
/* Pausa sin botón (WCAG 2.2.2): tocar la barra alterna is-paused (slider.js); el foco del
   teclado también la detiene. Solo en mobile, donde corre el marquee. */
.summers-trust:focus-within .summers-trust__track { animation-play-state: paused; }
.summers-trust:focus-visible { outline: 2px solid var(--wp--preset--color--primary-dark); outline-offset: -2px; }
@media (max-width: 781px) { .summers-trust { cursor: pointer; -webkit-tap-highlight-color: transparent; } }
@media (prefers-reduced-motion: reduce) and (max-width: 781px) {
	.summers-trust { overflow-x: auto; }
	.summers-trust__track { animation: none; }
	.summers-trust__item--dup { display: none; }
}

/* ---------- Carrusel horizontal (mobile) ---------- */
/* Los patterns de destinos/testimonios usan esta clase; en desktop pasan a grid. */
.summers-carousel {
	display: flex;
	gap: var(--wp--preset--spacing--16);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: var(--wp--preset--spacing--8);
}
.summers-carousel::-webkit-scrollbar { height: 0; }
.summers-carousel > * { scroll-snap-align: start; flex: 0 0 auto; }

/* ---------- FAB WhatsApp flotante ---------- */
.summers-fab {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 100;
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--wp--preset--color--whatsapp);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 22px rgba(37, 211, 102, .5);
}
.summers-fab svg { width: 30px; height: 30px; }

/* ---------- Micro-interacciones (hover: lift + zoom de imagen, CSS puro) ---------- */
.summers-card, .summers-cat, .summers-testi { transition: var(--summers-lift); }
.summers-card:hover, .summers-card:focus-within { transform: translateY(-6px); box-shadow: var(--wp--preset--shadow--elevated); }
.summers-cat:hover, .summers-cat:focus-visible { transform: translateY(-5px); box-shadow: var(--wp--preset--shadow--elevated); }
.summers-testi:hover, .summers-testi:focus-within { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--card), var(--wp--preset--shadow--soft); } /* sombra corta: cabe en el padding del carrusel */
.summers-card__img, .summers-cat__media { transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
.summers-card:hover .summers-card__img, .summers-card:focus-within .summers-card__img,
.summers-cat:hover .summers-cat__media, .summers-cat:focus-visible .summers-cat__media { transform: scale(1.06); }
.summers-fab { transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s ease; }
.summers-fab:hover { transform: scale(1.08); box-shadow: 0 10px 26px rgba(37, 211, 102, .6); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	/* Sin lift/zoom decorativo (evita saltos); el estado/color cambia igual. */
	.summers-card:hover, .summers-card:focus-within,
	.summers-cat:hover, .summers-cat:focus-visible,
	.summers-testi:hover, .summers-testi:focus-within,
	.summers-confianza__card:hover,
	.wp-element-button:hover, .wp-element-button:focus-visible, .summers-fab:hover,
	.summers-card:hover .summers-card__img, .summers-card:focus-within .summers-card__img,
	.summers-cat:hover .summers-cat__media, .summers-cat:focus-visible .summers-cat__media { transform: none; }
}

/* ==========================================================================
   Página informativa (summers/info-page) — plantilla replicable
   ========================================================================== */
/* El bloque llena el main full-width de la plantilla "page-info"; el ancho de
   lectura (1180) lo dan hero-inner/body/cta por dentro. */
.summers-info { --info-max: 1180px; }
html { scroll-behavior: smooth; }

/* Hero partido: navy sólido a la izquierda, foto a la derecha con difuminado. */
.summers-info__hero {
	position: relative; overflow: hidden;
	background: var(--wp--preset--color--navy);
	padding: var(--wp--custom--space--flow-lg) 24px var(--wp--custom--space--flow-xl);
}
.summers-info__hero-bg {
	position: absolute; top: 0; right: 0; bottom: 0; z-index: 0;
	width: 58%; height: 100%; object-fit: cover;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%);
	        mask-image: linear-gradient(to right, transparent 0%, #000 42%);
}
.summers-info__hero-inner { position: relative; z-index: 3; max-width: var(--info-max); margin: 0 auto; }
.summers-info__crumb { color: var(--summers-mist); font-size: var(--wp--preset--font-size--sm); margin: 0 0 18px; }
.summers-info__crumb a { color: var(--summers-mist); text-decoration: none; }
.summers-info__crumb a:hover { color: #fff; text-decoration: underline; }
.summers-info__crumb span { margin: 0 6px; opacity: .6; }
.summers-info__title {
	color: #fff; font-weight: 800; line-height: 1.02; margin: 0;
	font-size: var(--wp--preset--font-size--hero);
}
.summers-info__script {
	display: block; font-family: 'Pacifico', cursive; font-weight: 400;
	color: var(--summers-sky); font-size: 1.1em; line-height: 1.15; margin-top: .12em;
}
.summers-info__sun { width: .62em; height: .62em; margin: 0 0 0 .18em; vertical-align: .25em; }
/* Línea acento amarilla bajo el título */
.summers-info__accent { display: block; width: 64px; height: 4px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer); margin: 18px 0 0; }
.summers-info__lead { color: var(--summers-mist); max-width: 52ch; margin: 20px 0 0; font-size: var(--wp--preset--font-size--body); line-height: 1.55; }

/* Cuerpo: índice sticky + contenido */
.summers-info__body {
	max-width: var(--info-max); margin: 0 auto;
	padding: var(--wp--custom--space--flow-sm) 24px;
	display: grid; grid-template-columns: 272px 1fr; gap: clamp(32px, 5vw, 64px); align-items: start;
}
/* Índice = card blanca con sombra + estado activo en teal */
.summers-info__toc {
	position: sticky; top: var(--summers-sticky-top);
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg);
	box-shadow: var(--wp--preset--shadow--soft); padding: 12px;
}
.summers-info__toc-title {
	text-transform: uppercase; letter-spacing: 2px; font-size: var(--wp--preset--font-size--sm); font-weight: 700;
	color: var(--wp--preset--color--primary-dark); margin: 6px 12px 8px;
}
.summers-info__toc ul { list-style: none; margin: 0; padding: 0; }
.summers-info__toc li + li { border-top: 1px solid var(--wp--preset--color--tint-cool); }
.summers-info__toc a {
	display: flex; align-items: center; gap: 12px; padding: 13px 12px; border-radius: var(--wp--custom--radius--md);
	color: var(--wp--preset--color--navy); text-decoration: none; font-size: var(--wp--preset--font-size--body); font-weight: 600;
	transition: background-color .2s ease, color .2s ease;
}
.summers-info__toc a:hover, .summers-info__toc a:focus-visible { background: var(--wp--preset--color--tint-cool); color: var(--wp--preset--color--primary-dark); }
.summers-info__toc a.is-active {
	background: var(--summers-sky); color: #fff;
	box-shadow: 0 6px 16px rgba(56, 198, 216, .35);
}
.summers-info__toc-ico { flex: none; width: 22px; height: 22px; display: inline-flex; }
.summers-info__toc-ico svg { width: 22px; height: 22px; transition: color .2s ease; }

/* Secciones */
.summers-info__content { display: flex; flex-direction: column; }
.summers-info__sec {
	display: flex; gap: 20px; padding: clamp(24px, 3vw, 34px) 0;
	scroll-margin-top: var(--summers-sticky-top);
}
.summers-info__sec + .summers-info__sec { border-top: 1px solid var(--wp--preset--color--border); }
.summers-info__sec-ico {
	flex: none; width: 52px; height: 52px; border-radius: 50%;
	background: var(--wp--preset--color--tint); display: inline-flex; align-items: center; justify-content: center;
}
.summers-info__sec-ico svg { width: 26px; height: 26px; color: var(--summers-sky); }
.summers-info__sec:target .summers-info__sec-ico { background: var(--summers-sky); }
.summers-info__sec:target .summers-info__sec-ico svg { color: #fff; }
.summers-info__sec-title { color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); margin: 4px 0 8px; }
.summers-info__sec-desc { color: var(--wp--preset--color--text-soft); line-height: 1.65; }
.summers-info__sec-desc p { margin: 0 0 .7em; }
.summers-info__sec-desc > :last-child { margin-bottom: 0; }
/* Cuerpo WYSIWYG de cada sección: enlaces, imágenes, listas. */
.summers-info__sec-desc a { color: var(--wp--preset--color--primary-dark); text-decoration: underline; text-underline-offset: 2px; }
.summers-info__sec-desc a:hover { color: var(--wp--preset--color--primary-dark); }
.summers-info__sec-desc strong { color: var(--wp--preset--color--navy); }
.summers-info__sec-desc :where(img, .wp-block-image, video, .wp-block-video, .wp-block-embed) { margin: .8em 0; }
.summers-info__sec-desc img { max-width: 100%; height: auto; border-radius: var(--wp--custom--radius--md); }
.summers-info__sec-desc ul, .summers-info__sec-desc ol { margin: 0 0 .7em; padding-left: 1.3em; }
.summers-info__sec-desc li { margin: 0 0 .3em; }

/* Editor de secciones (padre/hijo). */
.summers-info-sections-editor > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block { margin-bottom: 10px; }
.summers-info-section-editor { display: flex; gap: 18px; padding: 14px; border: 1px dashed var(--wp--preset--color--mist); border-radius: var(--wp--custom--radius--md); }
.summers-info-section-editor .summers-info__sec-title { margin-top: 0; }

/* Banda CTA clara (mint), horizontal, con estela de avión a la izquierda. */
.summers-info__cta {
	position: relative; overflow: hidden; scroll-margin-top: var(--summers-sticky-top);
	max-width: var(--info-max); margin: 0 auto var(--wp--custom--space--flow); border-radius: var(--wp--custom--radius--xl);
	background: linear-gradient(120deg, var(--wp--preset--color--tint) 0%, var(--summers-wash-hi) 100%);
	padding: clamp(30px, 4vw, 44px) clamp(28px, 4vw, 48px);
	display: flex; align-items: center; gap: clamp(20px, 3vw, 40px);
}
.summers-info__cta-plane { flex: none; line-height: 0; color: var(--wp--preset--color--navy); }
.summers-info__cta-plane svg { width: clamp(120px, 14vw, 190px); height: auto; display: block; }
.summers-info__cta-copy { flex: 1 1 auto; text-align: center; }
.summers-info__cta-title { color: var(--wp--preset--color--navy); font-weight: 800; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-info__cta-text { color: var(--wp--preset--color--text-soft); margin: 8px 0 0; font-size: var(--wp--preset--font-size--body); }
.summers-info__cta-btn { flex: none; margin: 0; }

@media (max-width: 900px) {
	.summers-info__body { grid-template-columns: 1fr; }
	.summers-info__toc { position: static; }
	.summers-info__toc ul { display: grid; grid-template-columns: repeat(2, 1fr); }
	.summers-info__toc li + li { border-top: none; }
	.summers-info__cta { flex-direction: column; text-align: center; gap: 18px; }
	.summers-info__cta-plane svg { width: 130px; }
}
/* Hero mobile: foto a ancho completo + velo navy para legibilidad del texto. */
@media (max-width: 782px) {
	.summers-info__hero-bg { width: 100%; -webkit-mask-image: none; mask-image: none; }
	.summers-info__hero::before {
		content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
		background: linear-gradient(180deg, rgba(13,43,78,.5) 0%, rgba(13,43,78,.82) 100%),
		            linear-gradient(105deg, rgba(13,43,78,.75) 22%, rgba(13,43,78,.28) 100%);
	}
}
@media (max-width: 560px) {
	.summers-info__toc ul { grid-template-columns: 1fr; }
	.summers-info__toc li + li { border-top: 1px solid var(--wp--preset--color--tint-cool); }
	.summers-info__sec { gap: 14px; }
	.summers-info__sec-ico { width: 44px; height: 44px; }
	.summers-info__sec-ico svg { width: 22px; height: 22px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ==========================================================================
   Página legal / términos (summers/legal-page) — documento numerado
   ========================================================================== */
.summers-legal { --legal-max: 1080px; }

/* Hero partido (idéntico patrón al de info-page, sin cursiva ni sol). */
.summers-legal__hero {
	position: relative; overflow: hidden;
	background: var(--wp--preset--color--navy);
	padding: var(--wp--custom--space--flow-lg) 24px var(--wp--custom--space--flow-lg);
}
.summers-legal__hero-bg {
	position: absolute; top: 0; right: 0; bottom: 0; z-index: 0;
	width: 58%; height: 100%; object-fit: cover;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%);
	        mask-image: linear-gradient(to right, transparent 0%, #000 42%);
}
.summers-legal__hero-inner { position: relative; z-index: 3; max-width: var(--legal-max); margin: 0 auto; }
.summers-legal__crumb { color: var(--summers-mist); font-size: var(--wp--preset--font-size--sm); margin: 0 0 18px; }
.summers-legal__crumb a { color: var(--summers-mist); text-decoration: none; }
.summers-legal__crumb a:hover { color: #fff; text-decoration: underline; }
.summers-legal__crumb span { margin: 0 6px; opacity: .6; }
.summers-legal__title {
	color: #fff; font-weight: 800; line-height: 1.05; margin: 0; max-width: 16ch;
	font-size: var(--wp--preset--font-size--hero);
}
.summers-legal__accent { display: block; width: 64px; height: 4px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer); margin: 20px 0 0; }
.summers-legal__lead { color: var(--summers-mist); max-width: 46ch; margin: 20px 0 0; font-size: var(--wp--preset--font-size--body); line-height: 1.55; }

/* Cuerpo WYSIWYG (InnerBlocks): prosa en una columna centrada. */
.summers-legal__content {
	max-width: var(--legal-max); margin: 0 auto; padding: clamp(36px, 5vw, 64px) 24px;
	color: var(--wp--preset--color--text-soft); line-height: 1.7;
}
/* H2 = sección, con divisor superior (menos la primera). */
.summers-legal__content h2 {
	color: var(--wp--preset--color--navy); font-weight: 700;
	font-size: var(--wp--preset--font-size--h-2); line-height: 1.25;
	margin: 2.2em 0 .55em; padding-top: 1.4em; border-top: 1px solid var(--wp--preset--color--border);
}
.summers-legal__content > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.summers-legal__content h3 {
	color: var(--wp--preset--color--navy); font-weight: 700;
	font-size: var(--wp--preset--font-size--h-3); margin: 1.6em 0 .4em;
}
.summers-legal__content p { margin: 0 0 1em; }
.summers-legal__content a {
	color: var(--wp--preset--color--primary-dark); text-decoration: underline; text-underline-offset: 2px;
}
.summers-legal__content a:hover { color: var(--wp--preset--color--primary-dark); }
.summers-legal__content strong { color: var(--wp--preset--color--navy); font-weight: 700; }
.summers-legal__content ul, .summers-legal__content ol { margin: 0 0 1em; padding-left: 1.4em; }
.summers-legal__content li { margin: 0 0 .4em; }

/* Vista del editor (InnerBlocks). */
.summers-legal-editor__hero {
	background: var(--wp--preset--color--navy); color: #fff;
	border-radius: var(--wp--custom--radius--md); padding: 24px 32px; margin-bottom: 16px;
}
.summers-legal-editor__hero h1 { color: #fff; margin: 4px 0 0; font-size: var(--wp--preset--font-size--h-2); font-weight: 800; }
.summers-legal-editor__crumb { color: var(--summers-mist); font-size: var(--wp--preset--font-size--sm); margin: 0; }
.summers-legal-editor__accent { display: block; width: 56px; height: 4px; border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer); margin: 12px 0 0; }
.summers-legal-editor__lead { color: var(--summers-mist); margin: 12px 0 0; }
.summers-legal-editor__label {
	text-transform: uppercase; letter-spacing: 1.5px; font-size: var(--wp--preset--font-size--xs); font-weight: 700;
	color: var(--wp--preset--color--text-soft); opacity: .7; margin: 18px 0 6px;
}
.summers-legal-editor__body { border: 1px dashed var(--wp--preset--color--mist); border-radius: var(--wp--custom--radius--md); padding: 4px 14px; }
/* Preview de la banda CTA en el editor. */
.summers-legal-editor__cta {
	display: flex; align-items: center; gap: 16px;
	background: linear-gradient(120deg, var(--wp--preset--color--tint) 0%, var(--summers-wash-hi) 100%);
	border-radius: var(--wp--custom--radius--lg); padding: 20px 24px; margin-top: 6px;
}
.summers-legal-editor__cta-badge {
	flex: none; width: 48px; height: 48px; border-radius: 50%;
	background: var(--wp--preset--color--whatsapp, var(--wp--preset--color--whatsapp)); color: #fff;
	display: flex; align-items: center; justify-content: center;
}
.summers-legal-editor__cta-badge svg { width: 26px; height: 26px; }
.summers-legal-editor__cta-copy { flex: 1 1 auto; display: flex; flex-direction: column; }
.summers-legal-editor__cta-copy strong { color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--h-3); }
.summers-legal-editor__cta-copy span { color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-legal-editor__cta-btn {
	flex: none; background: var(--wp--preset--color--primary, var(--wp--preset--color--sky)); color: #fff;
	font-weight: 700; font-size: var(--wp--preset--font-size--sm); padding: 10px 18px; border-radius: var(--wp--custom--radius--md);
}

/* Banda CTA clara con badge de WhatsApp. */
.summers-legal__cta {
	position: relative; overflow: hidden;
	max-width: var(--legal-max); margin: 0 auto var(--wp--custom--space--flow); border-radius: var(--wp--custom--radius--xl);
	background: linear-gradient(120deg, var(--wp--preset--color--tint) 0%, var(--summers-wash-hi) 100%);
	padding: clamp(26px, 3.5vw, 38px) clamp(28px, 4vw, 48px);
	display: flex; align-items: center; gap: clamp(18px, 3vw, 32px);
}
.summers-legal__cta-badge {
	flex: none; width: 66px; height: 66px; border-radius: 50%;
	background: var(--wp--preset--color--whatsapp, var(--wp--preset--color--whatsapp)); color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 20px rgba(37, 211, 102, .28);
}
.summers-legal__cta-badge svg { width: 34px; height: 34px; }
.summers-legal__cta-copy { flex: 1 1 auto; }
.summers-legal__cta-title { color: var(--wp--preset--color--navy); font-weight: 800; font-size: var(--wp--preset--font-size--h-2); margin: 0; }
.summers-legal__cta-text { color: var(--wp--preset--color--text-soft); margin: 6px 0 0; font-size: var(--wp--preset--font-size--body); }
.summers-legal__cta-btn { flex: none; margin: 0; }

@media (max-width: 782px) {
	.summers-legal__hero-bg { width: 100%; -webkit-mask-image: none; mask-image: none; }
	.summers-legal__hero::before {
		content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
		background: linear-gradient(180deg, rgba(13,43,78,.5) 0%, rgba(13,43,78,.82) 100%),
		            linear-gradient(105deg, rgba(13,43,78,.75) 22%, rgba(13,43,78,.28) 100%);
	}
	.summers-legal__cta { flex-direction: column; text-align: center; gap: 16px; }
}

/* ==========================================================================
   Página Contacto — hero claro, métodos, formulario+info, tira de ayuda
   ========================================================================== */

/* ---------- Contacto: hero overlay full-bleed (mismo enfoque que Nosotros,
   pero en claro: foto a todo el ancho + degradado diagonal sobre el texto) ---------- */
.summers-chero { position: relative; overflow: hidden; background: var(--wp--preset--color--base); }
.summers-chero__media { position: absolute; inset: 0; width: 100%; z-index: 0; }
.summers-chero__media img,
.summers-chero__ph { width: 100%; height: 100%; object-fit: cover; display: block; }
.summers-chero__ph {
	background: var(--wp--preset--color--tint);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
}
.summers-chero__ph-ico svg { width: 48px; height: 48px; color: var(--summers-sky); }
.summers-chero__ph-cap { color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--sm); }
/* Overlay claro diagonal: opaco a la izquierda (texto navy legible) → transparente a la derecha (foto). */
.summers-chero::after {
	content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(102deg,
		rgba(245,247,249,.99) 0%,
		rgba(245,247,249,.97) 40%,
		rgba(245,247,249,.5) 57%,
		rgba(245,247,249,0) 74%);
}
/* Caja del hero: mismas medidas que .summers-hero (home/about) para que coincidan
   —padding, min-height 460 y centrado vertical—. Solo cambia el tema (claro). */
.summers-chero__inner {
	position: relative; z-index: 2;
	max-width: 1180px; margin: 0 auto;
	padding: var(--wp--custom--space--flow-xs) var(--wp--preset--spacing--24);
	min-height: 460px; display: flex; flex-direction: column; justify-content: center;
}
.summers-chero__copy { width: 100%; max-width: 520px; }
.summers-chero__title { color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.05; font-size: var(--wp--preset--font-size--hero); margin: 0; }
.summers-chero__cursive { font-family: 'Pacifico', cursive; color: var(--summers-sky); font-size: var(--wp--preset--font-size--hero); line-height: 1.2; margin: .15rem 0 0; }
.summers-chero__sun { width: .58em; height: .58em; vertical-align: .18em; margin: 0 0 0 .12em; }
.summers-chero__text { color: var(--wp--preset--color--text-soft); line-height: 1.6; max-width: 440px; margin: 1rem 0 0; }
/* CTAs del hero de destinos (primario + fantasma), sobre el hero claro. */
.summers-chero__buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 1.5rem; }
.summers-chero__btn { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 600; font-size: var(--wp--preset--font-size--sm); padding: .85rem 1.5rem; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--primary); color: #fff; border: 1px solid transparent; transition: background-color .18s ease; }
.summers-chero__btn:hover, .summers-chero__btn:focus-visible { background: var(--wp--preset--color--primary-dark); color: #fff; }
.summers-chero__btn--ghost { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--navy); border-color: var(--wp--preset--color--border); }
.summers-chero__btn--ghost:hover, .summers-chero__btn--ghost:focus-visible { background: var(--wp--preset--color--tint-cool); color: var(--wp--preset--color--navy); }
/* Mobile: la foto NO se parte — sigue a sangre completa. El degradado claro pasa a
   vertical (foto visible arriba, velo claro abajo) y el copy se ancla al fondo. */
@media (max-width: 782px) {
	.summers-chero__media img { object-position: 62% top; }
	/* Antes 130vw: 507px de un viewport de 844 (60%) solo para el hero. Con 96vw
	   baja a ~375px y la foto sigue leyéndose encima del copy, que va anclado abajo. */
	.summers-chero__inner { justify-content: flex-end; min-height: clamp(380px, 96vw, 460px); }
	.summers-chero::after {
		background: linear-gradient(180deg,
			rgba(245,247,249,0) 0%,
			rgba(245,247,249,.5) 40%,
			rgba(245,247,249,.94) 66%,
			rgba(245,247,249,.99) 100%);
	}
	/* Catálogo: mismo formato que los demás heroes (foto a sangre + velo claro + copy abajo),
	   pero su copy es largo y la foto saturada: con el velo en % el texto quedaba sobre la
	   foto con medio velo. Aquí el hero crece para dejar una zona de foto libre arriba y el
	   velo se ancla al copy: llega a .94 justo donde empieza el texto, mida lo que mida. */
	.summers-chero--destinos { --chero-photo: clamp(170px, 46vw, 210px); --chero-fade: 72px; }
	.summers-chero--destinos .summers-chero__inner { min-height: 0; padding-top: var(--chero-photo); }
	.summers-chero--destinos::after {
		background: linear-gradient(180deg, rgba(245,247,249,0), rgba(245,247,249,.94) var(--chero-fade), rgba(245,247,249,.99))
			left bottom / 100% calc(100% - var(--chero-photo) + var(--chero-fade)) no-repeat;
	}
	/* CTAs: comparten la fila cuando caben (menos alto, más foto); si no, cada uno baja
	   a ancho completo en vez de salirse del borde (≤ 360 px). */
	.summers-chero--destinos .summers-chero__btn { flex: 1 1 auto; justify-content: center; padding-inline: var(--wp--preset--spacing--16); white-space: nowrap; }
}

/* Título de sección centrado con guion amarillo (métodos + ayuda) */
.summers-cmethods__title, .summers-chelp__title {
	text-align: center; color: var(--wp--preset--color--navy); font-weight: 800;
	font-size: var(--wp--preset--font-size--h-2); margin: 0 0 clamp(28px, 4vw, 44px);
}
.summers-cmethods__title::after, .summers-chelp__title::after {
	content: ''; display: block; width: 60px; height: 3px; margin: 16px auto 0;
	border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer);
}

/* ---------- Contacto: métodos (grid de tarjetas) ---------- */
.summers-cmethods { max-width: 1180px; margin: 0 auto; padding: var(--wp--custom--space--flow) 24px; }
.summers-cmethods__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2vw, 24px); }
.summers-cmethods__card {
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--soft);
	padding: clamp(22px, 2.6vw, 32px) 22px; text-align: center;
	display: flex; flex-direction: column; align-items: center;
	transition: transform .25s ease, box-shadow .25s ease;
}
.summers-cmethods__card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--hover); }
.summers-cmethods__ico {
	width: 64px; height: 64px; border-radius: 50%; background: var(--wp--preset--color--tint);
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.summers-cmethods__ico svg { width: 28px; height: 28px; color: var(--wp--preset--color--primary); }
.summers-cmethods__card-title { color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); margin-bottom: 8px; }
.summers-cmethods__card-desc { color: var(--wp--preset--color--text-soft); line-height: 1.55; font-size: var(--wp--preset--font-size--body); margin-bottom: 20px; }
.summers-cmethods__btn {
	margin-top: auto; display: inline-flex; align-items: center; justify-content: center;
	padding: .7rem 1.35rem; border: 1.5px solid var(--wp--preset--color--primary); border-radius: var(--wp--custom--radius--md);
	color: var(--wp--preset--color--primary-dark); font-weight: 600; font-size: var(--wp--preset--font-size--sm); text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.summers-cmethods__btn:hover { background: var(--wp--preset--color--primary); color: #fff; }
@media (max-width: 900px) { .summers-cmethods__grid { grid-template-columns: repeat(2, 1fr); } }
/* Mobile: mantener 2×2 (no 1 columna) y compactar la tarjeta para que no quede apretada. */
@media (max-width: 560px) {
	.summers-cmethods { padding-left: 16px; padding-right: 16px; }
	.summers-cmethods__grid { gap: 12px; }
	.summers-cmethods__card { padding: 20px 14px; }
	.summers-cmethods__ico { width: 48px; height: 48px; margin-bottom: 12px; }
	.summers-cmethods__ico svg { width: 22px; height: 22px; }
	.summers-cmethods__card-title { font-size: var(--wp--preset--font-size--h-3); margin-bottom: 6px; }
	.summers-cmethods__card-desc { font-size: var(--wp--preset--font-size--sm); line-height: 1.45; margin-bottom: 14px; }
	.summers-cmethods__btn { width: 100%; padding: .5rem .5rem; font-size: var(--wp--preset--font-size--sm); line-height: 1.25; }
}

/* ---------- Contacto: formulario + información ---------- */
.summers-cform { max-width: 1180px; margin: 0 auto; padding: 0 24px var(--wp--custom--space--flow); }
.summers-cform__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(24px, 4vw, 48px); align-items: stretch; }
.summers-cform__title, .summers-cform__info-title {
	color: var(--wp--preset--color--navy); font-weight: 800; font-size: var(--wp--preset--font-size--h-2); margin: 0 0 24px;
}
.summers-cform__title::after, .summers-cform__info-title::after {
	content: ''; display: block; width: 48px; height: 3px; margin: 14px 0 0;
	border-radius: var(--wp--custom--radius--xs); background: var(--wp--preset--color--offer);
}
.summers-cform__form {
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--soft);
	padding: clamp(22px, 3vw, 36px);
}
.summers-cform__privacy { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--sm); }
.summers-cform__lock svg { width: 15px; height: 15px; color: var(--wp--preset--color--offer); }
.summers-cform__info {
	--cform-info-pad: clamp(22px, 3vw, 34px); /* fuente única: lo usa el full-bleed del mapa */
	display: flex; flex-direction: column; gap: 24px;
	background: var(--wp--preset--color--tint-cool); border-radius: var(--wp--custom--radius--lg);
	padding: var(--cform-info-pad);
}
.summers-cform__item { display: flex; gap: 14px; align-items: flex-start; }
.summers-cform__ico { flex: 0 0 auto; width: 26px; display: inline-flex; margin-top: 2px; }
.summers-cform__ico svg { width: 24px; height: 24px; color: var(--wp--preset--color--primary); }
.summers-cform__label { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--sm); margin-bottom: 2px; }
.summers-cform__value { display: block; color: var(--wp--preset--color--text-soft); text-decoration: none; }
a.summers-cform__value:hover { color: var(--wp--preset--color--primary-dark); text-decoration: underline; }
.summers-cform__note { display: block; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--sm); margin-top: 2px; line-height: 1.5; }
.summers-cform__map { margin-top: 4px; border-radius: var(--wp--custom--radius--md); overflow: hidden; position: relative; flex: 1 1 auto; min-height: 240px; }
.summers-cform__map img,
.summers-cform__map-frame { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.summers-cform__map-ph {
	position: absolute; inset: 0; background: var(--wp--preset--color--tint-cool); border: 1px dashed var(--wp--preset--color--border);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--sm); text-align: center; padding: 12px;
}
.summers-cform__map-ico svg { width: 30px; height: 30px; color: var(--summers-mist); }
.summers-cform__map-btn {
	position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%);
	background: var(--wp--preset--color--navy); color: #fff; text-decoration: none;
	padding: .55rem 1.1rem; border-radius: var(--wp--custom--radius--md); font-weight: 600; font-size: var(--wp--preset--font-size--sm); white-space: nowrap;
}
.summers-cform__map-btn:hover { background: var(--wp--preset--color--navy-mid); }
@media (max-width: 900px) {
	.summers-cform__grid { grid-template-columns: 1fr; }
	/* En columna única el mapa ya no se estira con el form: altura cómoda y full-bleed
	   dentro del card — cancela el padding del aside (solo el mapa) y redondea solo las
	   esquinas de abajo para seguir el borde inferior del card. */
	.summers-cform__map {
		min-height: 300px;
		margin: 4px calc(-1 * var(--cform-info-pad)) calc(-1 * var(--cform-info-pad));
		border-radius: 0 0 var(--wp--custom--radius--lg) var(--wp--custom--radius--lg);
	}
}

/* CF7 dentro del formulario de contacto (autop desactivado; markup propio) */
.summers-cform .cf7-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.summers-cform .cf7-field--full { margin-bottom: 14px; }
.summers-cform .wpcf7-form-control-wrap { display: block; }
/* Etiqueta visible sobre cada campo: el placeholder solo es una pista y
   desaparece al escribir, así que no puede hacer de etiqueta. */
.summers-cform .cf7-field > label {
	display: block; margin-bottom: 6px;
	color: var(--wp--preset--color--navy); font-weight: 600;
	font-size: var(--wp--preset--font-size--sm);
}
.summers-cform .cf7-req { color: var(--wp--preset--color--primary-dark); }
.summers-cform .wpcf7 input[type="text"],
.summers-cform .wpcf7 input[type="email"],
.summers-cform .wpcf7 input[type="tel"],
.summers-cform .wpcf7 select,
.summers-cform .wpcf7 textarea {
	width: 100%; box-sizing: border-box; padding: .8rem 1rem;
	border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--md);
	font: inherit; color: var(--wp--preset--color--navy); background: var(--wp--preset--color--surface);
}
.summers-cform .wpcf7 textarea { min-height: 120px; resize: vertical; }
/* Focus: se usa el indicador del DS (:focus-visible global, outline primary). */
.summers-cform .wpcf7 select {
	appearance: none; -webkit-appearance: none;
	padding-right: 2.6rem; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6b7b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 1rem center; background-size: 15px;
}
.summers-cform .wpcf7 input[type="submit"] {
	background-color: var(--wp--preset--color--primary); color: #fff; border: 0; cursor: pointer;
	padding: .85rem 1.6rem .85rem 2.7rem; border-radius: var(--wp--custom--radius--md); font-weight: 600; font-size: var(--wp--preset--font-size--sm);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2 11 13'/%3E%3Cpath d='M22 2 15 22 11 13 2 9z'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: 1.15rem center; background-size: 17px;
	transition: background-color .2s ease;
}
.summers-cform .wpcf7 input[type="submit"]:hover { background-color: var(--wp--preset--color--primary-dark); }
/* Validación: se usa el par de estado "danger" del DS. La especificidad sube a
   propósito: el shorthand `border` de arriba y el CSS del plugin ganan si no. */
.summers-cform .wpcf7 input.wpcf7-not-valid,
.summers-cform .wpcf7 select.wpcf7-not-valid,
.summers-cform .wpcf7 textarea.wpcf7-not-valid { border-color: var(--wp--custom--status--danger-ink); }
.summers-cform .wpcf7 .wpcf7-not-valid-tip {
	color: var(--wp--custom--status--danger-ink);
	font-size: var(--wp--preset--font-size--sm); margin-top: 6px;
}
.summers-cform .wpcf7 form .wpcf7-response-output { padding: 12px 16px; }
.summers-cform .wpcf7 form.invalid .wpcf7-response-output,
.summers-cform .wpcf7 form.unaccepted .wpcf7-response-output,
.summers-cform .wpcf7 form.failed .wpcf7-response-output {
	background: var(--wp--custom--status--danger-bg);
	border-color: var(--wp--custom--status--danger-ink);
	color: var(--wp--custom--status--danger-ink);
}
/* Envío correcto: mismo componente, par "success". */
.summers-cform .wpcf7 form.sent .wpcf7-response-output {
	background: var(--wp--custom--status--success-bg);
	border-color: var(--wp--custom--status--success-ink);
	color: var(--wp--custom--status--success-ink);
}

@media (max-width: 480px) { .summers-cform .cf7-grid { grid-template-columns: 1fr; } }

/* ---------- Contacto: tira de ayuda ---------- */
.summers-chelp { max-width: 1180px; margin: 0 auto; padding: var(--wp--custom--space--flow-sm) 24px var(--wp--custom--space--flow-lg); }
.summers-chelp__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 1.8vw, 20px); }
.summers-chelp__card {
	display: flex; align-items: center; gap: 14px; text-decoration: none;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--soft);
	padding: 18px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.summers-chelp__card:hover { transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--hover); border-color: var(--wp--preset--color--primary); }
.summers-chelp__ico {
	flex: 0 0 auto; width: 44px; height: 44px; border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--tint); display: inline-flex; align-items: center; justify-content: center;
}
.summers-chelp__ico svg { width: 22px; height: 22px; color: var(--wp--preset--color--primary); }
.summers-chelp__body { flex: 1 1 auto; min-width: 0; }
.summers-chelp__card-title { display: block; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--body); }
.summers-chelp__card-desc { display: block; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--body); line-height: 1.45; margin-top: 2px; }
.summers-chelp__chev { flex: 0 0 auto; color: var(--wp--preset--color--text-muted); }
.summers-chelp__chev svg { width: 16px; height: 16px; transform: rotate(-90deg); transition: transform .25s ease; }
.summers-chelp__card:hover .summers-chelp__chev { color: var(--wp--preset--color--primary); }
.summers-chelp__card:hover .summers-chelp__chev svg { transform: rotate(-90deg) translateY(3px); }
@media (max-width: 900px) { .summers-chelp__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .summers-chelp__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Archive de destinos (Colecciones) — regiones, tipos (chips) y países.
   Todo con tokens del DS; secciones a ancho de contenido (alignwide).
   ========================================================================== */

/* Encabezados de sección compartidos por regiones/países/tipos. */
.summers-regiones__title, .summers-paises__title, .summers-tipos__title, .summers-destacados__title {
	color: var(--wp--preset--color--navy); font-weight: 800; line-height: 1.15;
	font-size: var(--wp--preset--font-size--h-2); margin: 0 0 8px;
}
.summers-paises__head, .summers-tipos__head, .summers-destacados__head {
	display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: var(--wp--preset--spacing--24);
}
.summers-paises__more, .summers-tipos__more, .summers-destacados__more {
	font-size: var(--wp--preset--font-size--sm); font-weight: 600; text-decoration: none; white-space: nowrap;
}

/* Regiones: grid de destacadas (2) + resto (3). */
.summers-regiones__hero { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: var(--wp--preset--spacing--24); }
.summers-regiones__rest { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.summers-region {
	position: relative; display: block; overflow: hidden; text-decoration: none;
	border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--card);
	transition: var(--summers-lift);
}
.summers-region:hover, .summers-region:focus-visible { box-shadow: var(--wp--preset--shadow--hover); }
.summers-region--big { min-height: 236px; }
.summers-region--small { min-height: 132px; box-shadow: var(--wp--preset--shadow--soft); }
.summers-region__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.summers-region__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(13, 43, 78, .92) 0%, rgba(13, 43, 78, .5) 45%, rgba(13, 43, 78, .05) 100%); }
.summers-region--small .summers-region__scrim { background: linear-gradient(to top, rgba(13, 43, 78, .9) 0%, rgba(13, 43, 78, .35) 60%, rgba(13, 43, 78, .05) 100%); }
.summers-region__badge {
	position: absolute; left: 18px; top: 18px; z-index: 1;
	background: var(--wp--preset--color--offer); color: var(--wp--preset--color--navy);
	font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: 1px;
	padding: 4px 10px; border-radius: var(--wp--custom--radius--pill);
}
.summers-region__foot { position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.summers-region__foot--small { left: 14px; right: 14px; bottom: 13px; display: block; }
.summers-region__name { display: block; color: #fff; font-weight: 800; line-height: 1.1; font-size: var(--wp--preset--font-size--h-3); }
.summers-region--small .summers-region__name { font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.2; }
.summers-region__desc { display: block; margin-top: 6px; color: var(--wp--preset--color--mist); font-size: var(--wp--preset--font-size--sm); line-height: 1.45; }
.summers-region__stats { display: block; margin-top: 8px; color: var(--wp--preset--color--sky); font-size: var(--wp--preset--font-size--xs); font-weight: 600; }
.summers-region__arrow { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary-dark); display: inline-flex; align-items: center; justify-content: center; }

/* Tipos de viaje (chips): icono + nombre + conteo. */
.summers-tipos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: var(--wp--preset--spacing--24); }
.summers-tipo {
	display: flex; align-items: center; gap: 13px; text-decoration: none;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg); padding: 15px 16px; box-shadow: var(--wp--preset--shadow--soft);
	transition: var(--summers-lift);
}
.summers-tipo:hover, .summers-tipo:focus-visible { box-shadow: var(--wp--preset--shadow--hover); }
.summers-tipo__ico { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--tint); color: var(--wp--preset--color--navy); display: inline-flex; align-items: center; justify-content: center; }
.summers-tipo__ico svg { width: 17px; height: 17px; }
.summers-tipo__body { min-width: 0; }
.summers-tipo__name { display: block; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.25; }
.summers-tipo__count { display: block; margin-top: 3px; color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--xs); font-weight: 600; }

/* Países: grid de tarjetas horizontales con miniatura. */
.summers-paises__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: var(--wp--preset--spacing--24); }
.summers-pais {
	display: flex; align-items: center; gap: 14px; text-decoration: none;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg); padding: 12px 16px 12px 12px; box-shadow: var(--wp--preset--shadow--soft);
	transition: var(--summers-lift);
}
.summers-pais:hover, .summers-pais:focus-visible { box-shadow: var(--wp--preset--shadow--hover); }
.summers-pais__img { flex: none; width: 58px; height: 58px; border-radius: var(--wp--custom--radius--md); object-fit: cover; }
.summers-pais__img--ph { background: repeating-linear-gradient(45deg, var(--wp--preset--color--border) 0 12px, var(--wp--preset--color--base) 12px 24px); }
.summers-pais__info { flex: 1; min-width: 0; }
.summers-pais__name { display: block; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: 1.2; }
.summers-pais__cities { display: block; margin-top: 4px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--xs); line-height: 1.45; }
.summers-pais__stats { display: block; margin-top: 5px; color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--xs); font-weight: 600; }
.summers-pais__arrow { flex: none; color: var(--wp--preset--color--primary); }

/* Mobile: colapsan a menos columnas. */
@media (max-width: 781px) {
	.summers-regiones__hero { grid-template-columns: 1fr; }
	.summers-regiones__rest { grid-template-columns: 1fr 1fr; }
	.summers-tipos { grid-template-columns: 1fr 1fr; }
	.summers-paises__grid { grid-template-columns: 1fr; }
}
/* A una sola columna estas tarjetas quedaban enormes y obligaban a scrollear de
   más; en 2 columnas se abarca la oferta de un vistazo, que es su trabajo. */
@media (max-width: 480px) {
	.summers-tipos, .summers-regiones__rest { gap: 10px; }
	.summers-tipo { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; }
	.summers-tipo__ico { width: 30px; height: 30px; }
	/* La flecha empujaba el conteo a una tercera línea; en móvil sobra: la tarjeta
	   entera ya es el enlace. */
	.summers-tipo__count { font-size: var(--wp--preset--font-size--xs); }
	.summers-tipo__arrow { display: none; }
}

/* ==========================================================================
   Destinos destacados — ticket horizontal en slider (sección nueva)
   Reutiliza el bloque summers/destino-card. Todo scopeado a
   .summers-ticket-slider para no afectar la sección de destinos vertical.
   Card horizontal según prompt-cards-horizontales.md (propuesta 1a).
   ========================================================================== */

/* Track del slider (flechas + puntos los monta slider.js reutilizando .summers-slider).
   Margen negativo + padding: da aire a la sombra de la card para que el overflow del
   carrusel no la recorte, manteniendo la primera card alineada al borde del contenido. */
.wp-block-post-template.summers-ticket-slider {
	/* A scroller clips whatever overflows it, shadows included: the padding gives the card
	   shadow and the hover lift room, and the negative margin keeps the cards where they were.
	   Side padding = gap, so the next card never peeks in. */
	list-style: none; margin: -12px -18px -14px; padding: 18px 18px 30px;
	max-width: none;   /* core caps post templates at 100%, which would cancel the negative margin */
	display: flex; gap: 18px;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 18px;
	-webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.summers-ticket-slider::-webkit-scrollbar { height: 0; }
.summers-ticket-slider .summers-card:is(:hover, :focus-within) { box-shadow: var(--wp--preset--shadow--soft); }   /* elevated would not fit the scroller's padding */
.summers-ticket-slider > li { margin: 0; flex: 0 0 calc((100% - 18px) / 2); scroll-snap-align: start; }
/* Una card por fila (mobile) o en horizontal (desktop): no hay vecinas con las que alinear,
   así que el título y la línea de noches no reservan una 2.ª línea vacía. */
:is(.summers-ticket-slider, .summers-ticketgrid, .summers-filtros__grid) :is(.summers-card__title, .summers-card__meta) { min-height: 0; }

/* Grid del archive: 2 tickets por fila en desktop (mobile → 1 col, ver más abajo). */
.summers-ticketgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 18px; }
.summers-ticketgrid > li { margin: 0; }   /* anula el margin-block del post-template (el gap del grid ya separa) */

/* Desktop + tablet: the card turns horizontal, photo on the left half and the same solid
   panel as the vertical card on the right (info stacked, full-width button below). */
@media (min-width: 782px) {
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card {
		flex-direction: row;
		box-shadow: var(--wp--preset--shadow--card);
	}
	/* The photo stretches to the panel's height. It sits absolutely inside, so a portrait
	   photo crops instead of setting the card height (with a 768x1365 photo every card in the
	   slider grew to 516px). */
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card__media { width: 50%; flex: none; aspect-ratio: auto; }
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card__media > :is(a, .summers-card__ph) { position: absolute; inset: 0; }
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card__body {
		width: 50%; min-width: 0; padding: 18px 20px;
		gap: 8px; justify-content: center;
	}
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card__title { min-height: 0; }
	:is(.summers-ticket-slider, .summers-ticketgrid) .summers-card__price { font-size: var(--wp--preset--font-size--h-3); }
}

/* Tablet: 1 ticket por vista (necesita ancho para que la foto respire) */
@media (min-width: 782px) and (max-width: 1024px) {
	.summers-ticket-slider > li { flex-basis: calc(100% - 16px); }
}

/* Mobile (<782px): la card vuelve a vertical (estilo base) dentro del carrusel */
@media (max-width: 781px) {
	.summers-ticket-slider > li { flex: 0 0 100%; }
	.summers-ticketgrid { grid-template-columns: 1fr; }
	/* Destinos: sin el tinte base — banda blanca a lo ancho con espacios parejos. */
	#destinos {
		background: var(--wp--preset--color--surface);
		margin: 0 -1.5rem -16px !important;   /* pega al ribbon (blanco continuo); -16 deja más aire hacia la siguiente sección */
		padding: 16px 1.5rem 24px;            /* menos aire arriba (junto al ribbon), normal abajo */
	}
	/* El slider y los dots deben ir sobre el blanco de la sección, no sobre el base del body. */
	#destinos .summers-destinos-tickets,
	#destinos .summers-slider { background: var(--wp--preset--color--surface); }
	/* Sombra sutil (no la 'elevated' fuerte) para que no haga halo gris sobre el blanco. */
	#destinos .summers-card { box-shadow: var(--wp--preset--shadow--card); }
}

/* ==========================================================================
   Colección (archive de término con filtros): breadcrumb, hero de término,
   sidebar de filtros, resultados. Solo tokens del DS.
   ========================================================================== */

/* Breadcrumb (barra clara sobre el hero del término). */
.summers-crumbs {
	position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	background: var(--wp--preset--color--surface); border-bottom: 1px solid var(--wp--preset--color--border);
	padding: 14px 24px; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--text-soft);
}
.summers-crumbs a { font-weight: 600; text-decoration: none; }
.summers-crumbs__current { color: var(--wp--preset--color--navy); font-weight: 600; }

/* Hero de término: reutiliza .summers-chero pero más corto y con H1 menor. */
.summers-chero--term .summers-chero__title--term { font-size: var(--wp--preset--font-size--hero); }
.summers-chero--term .summers-chero__text--term { color: var(--wp--preset--color--navy); max-width: 460px; }
.summers-term__stats { margin: 16px 0 0; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
@media (min-width: 782px) {
	.summers-chero--term .summers-chero__inner { min-height: 260px; }
}
/* En móvil el hero de listado es cabecera de servicio, no portada: lo justo para
   ubicarte (migas, título, stats) sin empujar la grilla fuera de pantalla. */
@media (max-width: 781px) {
	.summers-chero--term .summers-chero__inner { min-height: clamp(300px, 74vw, 360px); }
}

/* Layout: sidebar + resultados. */
/* Full width, sin card: sidebar (~30%) + contenido, tipo colección Shopify. */
/* El padding superior da el aire respecto al hero (antes lo aportaba, sin querer,
   el blockGap raíz). Abajo no hace falta: lo pone el margin del banner. */
.summers-filtros { padding: 36px clamp(1rem, 4vw, 3rem) 0; }
.summers-filtros__layout { display: flex; align-items: flex-start; gap: 32px; }
/* Sidebar = panel con fondo propio (se diferencia del contenido en base). */
.summers-filtros__aside { box-sizing: border-box; flex: 0 0 30%; max-width: 400px; align-self: flex-start;
	/* Pegajoso: con muchas taxonomías la lista es más alta que los resultados y, 
	   quieto, dejaba medio lienzo vacío al hacer scroll. */
	position: sticky; top: var(--summers-sticky-top); background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--soft); padding: 20px; display: flex; flex-direction: column; gap: 0; }
.summers-filtros__aside-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.summers-filtros__aside-title { color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--body); font-weight: 700; }
.summers-filtros__collapse { cursor: pointer; font-family: inherit; width: 30px; height: 30px; flex: none; border: 1px solid var(--wp--preset--color--border); background: var(--wp--preset--color--surface); border-radius: var(--wp--custom--radius--sm); color: var(--wp--preset--color--navy); }

/* Acordeón de grupos. */
.summers-fgroup { border-top: 1px solid var(--wp--preset--color--border); padding: 16px 0 6px; display: flex; flex-direction: column; gap: 8px; }
.summers-fgroup__head { cursor: pointer; font-family: inherit; background: transparent; border: 0; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; width: 100%; }
.summers-fgroup__label { color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 700; }
.summers-fgroup__caret { flex: none; color: var(--wp--preset--color--primary); font-size: var(--wp--preset--font-size--xs); transition: transform .2s ease; }
.summers-fgroup[data-open="false"] .summers-fgroup__caret { transform: rotate(180deg); }
.summers-fgroup__opts { display: grid; grid-template-rows: 1fr; margin: 0 -6px; opacity: 1; transition: grid-template-rows .3s ease, opacity .22s ease; }
.summers-fgroup[data-open="false"] .summers-fgroup__opts { grid-template-rows: 0fr; opacity: 0; }
.summers-fgroup__opts-inner { overflow: hidden; min-height: 0; display: flex; flex-direction: column; gap: 1px; }

/* Opción (checkbox custom). */
.summers-fopt { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: var(--wp--custom--radius--sm); cursor: pointer; transition: background-color .15s ease; }
.summers-fopt:hover { background: var(--wp--preset--color--tint-cool); }
.summers-fopt input { position: absolute; opacity: 0; width: 0; height: 0; }
.summers-fopt__box { flex: none; width: 17px; height: 17px; border-radius: var(--wp--custom--radius--xs); border: 1.5px solid var(--wp--preset--color--border); background: var(--wp--preset--color--surface); display: inline-flex; align-items: center; justify-content: center; transition: background-color .18s ease, border-color .18s ease, transform .12s ease; }
.summers-fopt:active .summers-fopt__box { transform: scale(.88); }
.summers-fopt input:checked + .summers-fopt__box { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
.summers-fopt input:checked + .summers-fopt__box::after { content: '✓'; color: #fff; font-size: var(--wp--preset--font-size--xs); line-height: 1; animation: summers-check-pop .22s ease; }
.summers-fopt input:focus-visible + .summers-fopt__box { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.summers-fopt__txt { flex: 1; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); }
.summers-fopt input:checked ~ .summers-fopt__txt { font-weight: 700; }
.summers-fopt__n { flex: none; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--xs); }
/* "Ver N más": con JS las opciones extra esperan tras el botón (sin JS se ven todas). */
.summers-fgroup__more { display: none; }
.summers-filtros.has-js .summers-fgroup__more {
	display: inline-flex; align-self: flex-start; align-items: center; min-height: 32px; margin: 4px 0 0; padding: 0 6px;
	border: 0; background: none; cursor: pointer; font: inherit; font-size: var(--wp--preset--font-size--sm); font-weight: 700;
	color: var(--wp--preset--color--navy); text-decoration: underline; text-underline-offset: 4px;
}
.summers-filtros.has-js .summers-fgroup:not(.is-all) .summers-fopt--extra { display: none; }
/* Sin scroll interno: si el panel no cabe en pantalla deja de ser sticky y sube con la página. */
@media (min-width: 901px) { .summers-filtros.is-tall .summers-filtros__aside { position: static; } }
/* Término con el que se llegó al archivo: es un filtro normal, solo se señala. */
.summers-fopt--current .summers-fopt__txt::after {
	content: ''; display: inline-block; width: 5px; height: 5px; margin-left: 6px; vertical-align: middle;
	border-radius: 50%; background: var(--wp--preset--color--primary);
}

/* Pie del sidebar. */
.summers-filtros__aside-foot { border-top: 1px solid var(--wp--preset--color--border); margin-top: 12px; padding-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.summers-filtros__apply { cursor: pointer; font-family: inherit; background: var(--wp--preset--color--primary); color: #fff; border: 0; font-size: var(--wp--preset--font-size--sm); font-weight: 600; padding: .7rem 1rem; border-radius: var(--wp--custom--radius--md); }
.summers-filtros__apply:hover { background: var(--wp--preset--color--primary-dark); }
.summers-filtros__clear { text-align: center; text-decoration: none; border: 1px solid var(--wp--preset--color--border); color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 600; padding: .7rem 1rem; border-radius: var(--wp--custom--radius--md); }
.summers-filtros__clear:hover { background: var(--wp--preset--color--tint-cool); color: var(--wp--preset--color--navy); }
.summers-filtros__advisor { display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--wp--preset--color--whatsapp); color: var(--wp--custom--brand--whatsapp-ink); text-decoration: none; font-weight: 700; font-size: var(--wp--preset--font-size--sm); padding: .7rem 1rem; border-radius: var(--wp--custom--radius--md); }
.summers-filtros__advisor:hover { color: var(--wp--custom--brand--whatsapp-ink); filter: brightness(.96); }

/* Riel colapsado (oculto por defecto; el toggle lo muestra). */
.summers-filtros__rail { display: none; flex: none; width: 56px; align-self: stretch; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--soft); padding: 20px 0; flex-direction: column; align-items: center; gap: 14px; }
.summers-filtros__rail-txt { writing-mode: vertical-rl; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 700; letter-spacing: 1px; }
.summers-filtros__rail-badge { width: 22px; height: 22px; border-radius: 50%; background: var(--wp--preset--color--primary); color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.summers-filtros[data-collapsed="true"] .summers-filtros__aside { display: none; }
.summers-filtros[data-collapsed="true"] .summers-filtros__rail { display: flex; }

/* Zona de resultados. */
.summers-filtros__main { flex: 1; min-width: 0; }
.summers-filtros__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.summers-filtros__count { margin: 0; color: var(--wp--preset--color--navy); font-family: inherit; font-size: var(--wp--preset--font-size--body); font-weight: 700; line-height: inherit; letter-spacing: normal; }
.summers-filtros__sort { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.summers-filtros__sort-lbl { color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-filtros__pill { font-size: var(--wp--preset--font-size--sm); font-weight: 600; padding: 7px 13px; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--navy); border: 1px solid var(--wp--preset--color--border); text-decoration: none; }
.summers-filtros__pill.is-active { background: var(--wp--preset--color--primary); color: #fff; border-color: var(--wp--preset--color--primary); }

/* Chips activos. */
.summers-filtros__chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 14px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--md); margin-bottom: 20px; }
.summers-filtros__chips-lbl { color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: 1.5px; }
.summers-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--wp--preset--color--tint); border: 1px solid var(--wp--preset--color--primary); border-radius: var(--wp--custom--radius--pill); padding: 6px 12px; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 600; text-decoration: none; }
.summers-chip span { color: var(--wp--preset--color--primary-dark); }

/* Grid de resultados + cargar más. */
/* 3 por fila repartiéndose todo el ancho disponible. Se fija el número (en vez
   de auto-fill) para que la fila no cambie sola según el ancho. */
.summers-filtros__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 18px; }
.summers-filtros__more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 32px; }
.summers-filtros__more-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--wp--preset--color--navy); color: #fff; text-decoration: none; font-weight: 600; font-size: var(--wp--preset--font-size--sm); padding: .85rem 1.75rem; border-radius: var(--wp--custom--radius--md); }
.summers-filtros__more-btn:hover { background: var(--wp--preset--color--navy-mid); color: #fff; }
.summers-filtros__showing { color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--sm); }
.summers-filtros__empty { text-align: center; padding: 32px 16px; color: var(--wp--preset--color--text-soft); display: flex; flex-direction: column; align-items: center; gap: 14px; }

/* --- Micro-interacciones: transiciones y entradas --- */
.summers-filtros__pill,
.summers-chip,
.summers-filtros__apply,
.summers-filtros__clear,
.summers-filtros__advisor,
.summers-filtros__more-btn,
.summers-filtros__collapse { transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .12s ease, filter .16s ease; }
.summers-filtros__pill:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary-dark); }
.summers-filtros__pill.is-active:hover { color: #fff; }
.summers-filtros__pill:active,
.summers-chip:active,
.summers-filtros__more-btn:active { transform: translateY(1px); }
.summers-chip:hover { background: var(--wp--preset--color--surface); box-shadow: var(--wp--preset--shadow--soft); transform: translateY(-1px); }
.summers-filtros__collapse:hover { color: var(--wp--preset--color--primary); }
.summers-filtros__more-btn:hover { transform: translateY(-1px); box-shadow: var(--wp--preset--shadow--soft); }

/* Entrada de las cards al cargar/filtrar y al "cargar más". */
.summers-filtros__grid > * { animation: summers-card-in .38s cubic-bezier(.22,.61,.36,1) both; }
.summers-filtros__grid > *:nth-child(2) { animation-delay: .05s; }
.summers-filtros__grid > *:nth-child(3) { animation-delay: .1s; }
.summers-filtros__grid > *:nth-child(4) { animation-delay: .15s; }
.summers-filtros__grid > *:nth-child(5) { animation-delay: .2s; }
.summers-filtros__grid > *:nth-child(n+6) { animation-delay: .24s; }

/* Colapsar / expandir el sidebar: fundido suave. */
.summers-filtros__rail { animation: summers-fade-in .28s ease; }
.summers-filtros:not([data-collapsed="true"]) .summers-filtros__aside { animation: summers-fade-in .28s ease; }

@keyframes summers-check-pop { 0% { transform: scale(0); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }
@keyframes summers-card-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes summers-fade-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	.summers-fgroup__opts,
	.summers-fopt__box,
	.summers-filtros__pill,
	.summers-chip,
	.summers-filtros__apply,
	.summers-filtros__clear,
	.summers-filtros__advisor,
	.summers-filtros__more-btn,
	.summers-filtros__collapse { transition: none; }
	.summers-filtros__grid > *,
	.summers-filtros__rail,
	.summers-filtros__aside,
	.summers-fopt input:checked + .summers-fopt__box::after { animation: none; }
}

/* Banda inferior. */
/* Banda inferior = callout contenido (dentro del contenedor), con aire antes del footer. */
.summers-filtros__band { margin-top: 48px; margin-bottom: var(--wp--custom--space--flow-sm); background: var(--wp--preset--color--band); padding: 32px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); }
.summers-filtros__band p { margin: 0; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--body); line-height: 1.6; max-width: 620px; }
.summers-filtros__band-cta { flex: none; display: inline-flex; align-items: center; gap: 10px; background: var(--wp--preset--color--whatsapp); color: var(--wp--custom--brand--whatsapp-ink); text-decoration: none; font-weight: 700; font-size: var(--wp--preset--font-size--sm); padding: .85rem 1.5rem; border-radius: var(--wp--custom--radius--md); }
.summers-filtros__band-cta:hover { color: var(--wp--custom--brand--whatsapp-ink); filter: brightness(.96); }

/* Pill de país en la card (grid vertical). */
.summers-card__country { background: rgba(255, 255, 255, .88); color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .5px; line-height: 1.3; padding: 3px 10px; border-radius: var(--wp--custom--radius--pill); }

/* Con el sidebar al lado, por debajo de ~1100px tres cards quedan muy estrechas. */
@media (max-width: 1100px) { .summers-filtros__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Elementos que solo existen en la hoja inferior: fuera en escritorio. */
.summers-filtros__sheet-btn,
.summers-filtros__sheet-close,
.summers-filtros__sheet-apply,
.summers-filtros__grab,
.summers-filtros__scrim { display: none; }

/* Mobile: los filtros pasan a hoja inferior.
   Desplegados sobre la grilla obligaban a pasar seis grupos antes de ver un
   destino; aquí los resultados quedan arriba y el panel se invoca cuando hace
   falta. Los cambios se acumulan dentro y se aplican al cerrar (ver slider.js),
   en vez de recargar a cada check. */
@media (max-width: 900px) {
	.summers-filtros__layout { flex-direction: column; gap: 20px; }
	.summers-filtros__collapse, .summers-filtros__rail { display: none !important; }
	/* Sin sidebar al lado hay sitio de sobra: vuelven 3. */
	.summers-filtros__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.summers-filtros__sheet-btn {
		display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
		min-height: 40px; padding: 0 16px;
		font: inherit; font-size: var(--wp--preset--font-size--sm); font-weight: 700;
		color: var(--wp--preset--color--navy);
		background: var(--wp--preset--color--surface);
		border: 1px solid var(--wp--preset--color--border);
		border-radius: var(--wp--custom--radius--pill);
		box-shadow: var(--wp--preset--shadow--card);
		transition: transform .16s cubic-bezier(.23, 1, .32, 1);
	}
	.summers-filtros__sheet-btn:active { transform: scale(.97); }
	.summers-filtros__sheet-n {
		display: inline-flex; align-items: center; justify-content: center;
		min-width: 20px; height: 20px; padding: 0 6px;
		border-radius: var(--wp--custom--radius--pill);
		background: var(--wp--preset--color--primary); color: #fff;
		font-size: var(--wp--preset--font-size--xs);
	}

	.summers-filtros__scrim {
		display: block; position: fixed; inset: 0; z-index: 59;
		background: rgba(13, 43, 78, .5);
		opacity: 0; transition: opacity .3s ease;
	}
	.summers-filtros__scrim[hidden] { display: none; }
	.summers-filtros.is-sheet-open .summers-filtros__scrim { opacity: 1; }

	/* Columna de tres piezas: cabecera, zona con scroll y botón. Solo la del medio
	   hace scroll, así cabecera y botón se quedan quietos sin position:fixed (que
	   aquí no funciona: el transform de la animación vuelve a la hoja el bloque
	   contenedor de sus hijos fixed, y el botón se iba con el scroll). */
	.summers-filtros__aside {
		/* Pantalla completa: la lista de filtros es larga y el alto es lo que más rinde. */
		position: fixed; inset: 0; z-index: 60;
		width: auto; max-width: none; flex: none;
		height: 100dvh; max-height: none; overflow: hidden;
		display: flex; flex-direction: column;
		border: 0; border-radius: 0;
		padding: env(safe-area-inset-top) 0 0;
		box-shadow: var(--wp--preset--shadow--elevated);
		/* translateY en % para no depender del alto, y curva de drawer iOS. */
		transform: translateY(100%); visibility: hidden;
		transition: transform .3s cubic-bezier(.32, .72, 0, 1), visibility 0s linear .3s;
	}
	.summers-filtros.is-sheet-open .summers-filtros__aside {
		transform: translateY(0); visibility: visible; transition-delay: 0s;
	}

	/* Cabecera pegajosa con tirador y cierre. */
	.summers-filtros__aside-head {
		flex: none;
		display: grid; grid-template-columns: 1fr auto; align-items: center;
		margin: 0; padding: 8px 16px;
		background: var(--wp--preset--color--surface);
		border-bottom: 1px solid var(--wp--preset--color--border);
	}
	/* A pantalla completa no es una hoja que se arrastra: sin tirador, la cabecera gana aire. */
	.summers-filtros__grab { display: none; }
	.summers-filtros__sheet-close {
		display: inline-flex; align-items: center; justify-content: center;
		width: 44px; height: 44px; margin-right: -10px;
		font-size: var(--wp--preset--font-size--h-2); line-height: 1;
		background: none; border: 0; cursor: pointer; color: var(--wp--preset--color--text-soft);
	}

	/* Solo la acción principal va fijada; lo secundario baja con el contenido.
	   Tres botones apilados y pegados se comían media hoja. */
	.summers-filtros__scroll {
		flex: 1 1 auto; min-height: 0;   /* min-height:0 deja que encoja y haga scroll */
		overflow-y: auto; overscroll-behavior: contain;
		padding: 0 16px 16px;
	}
	.summers-filtros__aside-foot {
		display: flex; flex-direction: column; gap: 10px;
		margin: 12px 0 0; padding: 0; border: 0;
	}
	.summers-filtros__apply { display: none; }
	/* Limpiar pasa a enlace: es la salida, no la acción. */
	.summers-filtros__clear { border: 0; background: none; box-shadow: none; min-height: 44px; }
	/* Última pieza de la columna: siempre al pie de la hoja, al alcance del pulgar. */
	.summers-filtros__sheet-apply {
		flex: none;
		display: block; width: 100%; cursor: pointer;
		min-height: calc(52px + env(safe-area-inset-bottom)); margin: 0;
		padding: 0 16px env(safe-area-inset-bottom);
		font: inherit; font-size: var(--wp--preset--font-size--sm); font-weight: 700;
		color: #fff; background: var(--wp--preset--color--primary);
		border: 0; border-radius: 0;
		box-shadow: 0 -8px 20px rgba(13, 43, 78, .1);
		transition: transform .16s cubic-bezier(.23, 1, .32, 1), background-color .18s ease;
	}
	/* El FAB de WhatsApp se montaba sobre la acción principal de la hoja. */
	body:has(.summers-filtros.is-sheet-open) .summers-fab { display: none; }
	.summers-filtros__sheet-apply:active { transform: scale(.98); }
	.summers-filtros__sheet-apply:hover { background: var(--wp--preset--color--primary-dark); }
}

@media (prefers-reduced-motion: reduce) {
	.summers-filtros__aside, .summers-filtros__scrim, .summers-filtros__sheet-btn, .summers-filtros__sheet-apply { transition: none; }
}
@media (max-width: 680px) { .summers-filtros__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .summers-filtros__grid { grid-template-columns: 1fr; } }

/* ============================================================
   Ficha de destino (single-destino) — propuesta 1a
   Hero + columna de contenido con panel de cotización sticky.
   ============================================================ */

/* --- Hero --- */
.summers-dhero { position: relative; min-height: 340px; display: flex; overflow: hidden; }
.summers-dhero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.summers-dhero__scrim { position: absolute; inset: 0; background: linear-gradient(115deg, rgba(13,43,78,.85) 0%, rgba(13,43,78,.45) 48%, rgba(13,43,78,0) 78%); }
.summers-dhero__crumbs { color: var(--wp--preset--color--mist); font-size: var(--wp--preset--font-size--sm); }
.summers-dhero__crumbs a { color: var(--wp--preset--color--mist); text-decoration: none; }
.summers-dhero__crumbs a:hover { color: #fff; }
.summers-dhero__crumbs-cur { color: #fff; font-weight: 600; }
.summers-dhero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--summers-container); margin-inline: auto; padding: 26px clamp(1rem, 4vw, 3rem) 36px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.summers-dhero__copy { display: flex; flex-direction: column; align-items: flex-start; }
.summers-dhero__badge { display: inline-flex; color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 600; padding: 5px 12px; border-radius: var(--wp--custom--radius--pill); margin-bottom: 14px; }
.summers-dhero__title { margin: 0; color: #fff; font-size: var(--wp--preset--font-size--hero); font-weight: 800; line-height: 1.1; }
.summers-dhero__text { margin: 12px 0 0; color: var(--wp--preset--color--mist); font-size: var(--wp--preset--font-size--body); line-height: 1.6; max-width: 520px; }

/* --- Layout del cuerpo --- */
.summers-dficha { padding: 36px clamp(1rem, 4vw, 3rem) 44px; background: var(--wp--preset--color--surface); }
.summers-dficha__layout { max-width: var(--summers-container); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) 348px; gap: 32px; align-items: start; }
.summers-dficha__layout--solo { grid-template-columns: minmax(0, 420px); justify-content: center; }
.summers-dficha__layout--solo .summers-dficha__main { display: none; }
.summers-dficha__layout--solo .summers-dpanel { position: static; }
.summers-dficha__main { min-width: 0; display: flex; flex-direction: column; gap: 32px; }

/* --- Datos rápidos --- */
.summers-dfacts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.summers-dfact { display: flex; align-items: center; gap: 11px; background: var(--wp--preset--color--tint-cool); border-radius: var(--wp--custom--radius--md); padding: 13px 14px; }
.summers-dfact__ico { width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--wp--preset--color--surface); display: inline-flex; align-items: center; justify-content: center; color: var(--wp--preset--color--navy); }
.summers-dfact__ico svg { width: 18px; height: 18px; }
.summers-dfact__body { min-width: 0; }
.summers-dfact__k { display: block; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: 1px; }
.summers-dfact__v { display: block; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 600; }

/* --- Secciones --- */
.summers-dsec__title { margin: 0 0 12px; font-size: var(--wp--preset--font-size--h-2); font-weight: 800; color: var(--wp--preset--color--navy); }
.summers-dsec__p { margin: 0 0 12px; color: var(--wp--preset--color--text-soft); line-height: 1.7; font-size: var(--wp--preset--font-size--body); }
.summers-dsec__p:last-child { margin-bottom: 0; }

/* --- Incluye / No incluye --- */
.summers-dinc { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.summers-dinc__title { margin: 0 0 12px; font-size: var(--wp--preset--font-size--h-3); font-weight: 700; color: var(--wp--preset--color--navy); }
.summers-dinc__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; }
.summers-dinc__list li { display: flex; gap: 10px; align-items: flex-start; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); line-height: 1.5; }
.summers-dinc__list--no li { color: var(--wp--preset--color--text-muted); }
.summers-dinc__ok { flex: none; margin-top: 1px; color: var(--wp--preset--color--primary-dark); }
.summers-dinc__ok svg { width: 17px; height: 17px; display: block; }
.summers-dinc__no { flex: none; color: var(--wp--preset--color--mist); font-weight: 700; }
/* --- Secciones de información: caja compacta (tinte + una fila por ítem) --- */
.summers-dsecc__list { list-style: none; margin: 0; padding: var(--wp--preset--spacing--4) var(--wp--preset--spacing--24); background: var(--wp--preset--color--tint-cool); border-radius: var(--wp--custom--radius--md); }
.summers-dsecc__row { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--wp--preset--color--border); color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); line-height: 1.45; }
.summers-dsecc__row:last-child { border-bottom: 0; }
.summers-dsecc__txt { min-width: 0; }
.summers-dsecc__txt strong { color: var(--wp--preset--color--navy); font-weight: 600; }
.summers-dsecc__ico { color: var(--wp--preset--color--sky-deep); display: flex; }
.summers-dsecc__ico svg { width: 18px; height: 18px; }
.summers-dsecc__dato { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--xs); font-weight: 700; }
.summers-dsecc__dato svg { width: 14px; height: 14px; color: var(--wp--preset--color--sky-deep); }
.summers-dsecc--hoteles .summers-dsecc__dato { padding: 2px 10px; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--surface); }
/* Itinerario: la hora en su columna; actividad y detalle en la misma línea. */
.summers-dsecc--itinerario .summers-dsecc__row { grid-template-columns: 76px minmax(0, 1fr); align-items: baseline; }
.summers-dsecc--sin-hora .summers-dsecc__row { grid-template-columns: minmax(0, 1fr); }
.summers-dsecc__hora { color: var(--wp--preset--color--sky-deep); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .5px; overflow-wrap: anywhere; }
/* Lista libre: dos columnas sin divisores, para que una lista larga no estire la página. */
.summers-dsecc--lista .summers-dsecc__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--24); }
.summers-dsecc--lista .summers-dsecc__row { grid-template-columns: 18px minmax(0, 1fr); align-items: start; padding: 0; border: 0; }
.summers-dsecc--lista .summers-dsecc__ico { padding-top: 1px; }

/* --- Galería --- */
.summers-dgal { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 118px; gap: 10px; }
.summers-dgal__item { position: relative; display: block; overflow: hidden; border-radius: var(--wp--custom--radius--md); cursor: zoom-in; }
.summers-dgal__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s cubic-bezier(.22,.61,.36,1); }
.summers-dgal__item:hover img { transform: scale(1.04); }
.summers-dgal__item:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.summers-dgal__item--extra { display: none; }
.summers-dgal > .summers-dgal__item:first-child { grid-row: span 2; }
.summers-dgal__more { position: absolute; inset: 0; background: rgba(13,43,78,.66); color: #fff; font-size: var(--wp--preset--font-size--sm); font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* --- Lightbox de la galería (<dialog> nativo) --- */
/* height:fit-content es clave: el UA le pone inset:0 al dialog modal, así que con
   height:auto se estiraría a todo el alto y la imagen quedaría pegada arriba.
   Encogiendo al contenido, el margin:auto del navegador lo centra vertical. */
.summers-lb { width: min(96vw, 1180px); max-width: none; height: fit-content; max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.summers-lb::backdrop { background: rgba(8, 24, 44, .92); }
.summers-lb__fig { margin: 0; display: flex; align-items: center; justify-content: center; }
.summers-lb__img { max-width: 100%; max-height: 82vh; width: auto; height: auto; object-fit: contain; border-radius: var(--wp--custom--radius--md); display: block; }
.summers-lb__btn { position: absolute; z-index: 2; cursor: pointer; font-family: inherit; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: var(--wp--preset--font-size--h-3); line-height: 1; transition: background-color .16s ease; }
.summers-lb__btn:hover { background: rgba(255,255,255,.28); }
.summers-lb__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.summers-lb__close { top: -54px; right: 0; }
.summers-lb__prev { left: -54px; top: 50%; transform: translateY(-50%); }
.summers-lb__next { right: -54px; top: 50%; transform: translateY(-50%); }
.summers-lb__count { position: absolute; left: 0; right: 0; bottom: -38px; margin: 0; text-align: center; color: rgba(255,255,255,.72); font-size: var(--wp--preset--font-size--sm); }

/* En pantallas donde no caben fuera, las flechas van dentro de la imagen. */
@media (max-width: 1320px) {
	.summers-lb { width: min(92vw, 1180px); }
	.summers-lb__prev { left: 8px; }
	.summers-lb__next { right: 8px; }
	.summers-lb__close { top: 8px; right: 8px; background: rgba(8,24,44,.55); }
	.summers-lb__count { bottom: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.summers-dgal__item img { transition: none; }
	.summers-dgal__item:hover img { transform: none; }
}

/* --- Panel de cotización sticky --- */
.summers-dpanel { position: sticky; top: var(--summers-sticky-top); display: flex; flex-direction: column; gap: 14px; }
.summers-dpanel__card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); box-shadow: var(--wp--preset--shadow--hover); padding: 24px; }
.summers-dpanel__from { color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--xs); }
.summers-dpanel__price { color: var(--wp--preset--color--navy); font-weight: 800; font-size: var(--wp--preset--font-size--h-2); line-height: 1.1; margin-top: 2px; }
.summers-dpanel__price span { color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--sm); }
.summers-dpanel__base { color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--xs); margin-top: 4px; }
.summers-dpanel__usd { margin: 8px 0 0; color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--xs); line-height: 1.45; }
.summers-dpanel__rule { height: 1px; background: var(--wp--preset--color--border); margin: 16px 0; }
.summers-dpanel__sum { margin: 0; display: flex; flex-direction: column; gap: 9px; }
.summers-dpanel__sum > div { display: flex; justify-content: space-between; gap: 12px; font-size: var(--wp--preset--font-size--sm); }
.summers-dpanel__sum dt { color: var(--wp--preset--color--text-soft); }
.summers-dpanel__sum dd { margin: 0; color: var(--wp--preset--color--navy); font-weight: 600; text-align: right; }
.summers-dpanel__cta { margin-top: 18px; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--wp--preset--color--whatsapp); color: var(--wp--custom--brand--whatsapp-ink); text-decoration: none; font-weight: 700; font-size: var(--wp--preset--font-size--sm); padding: 1rem; border-radius: var(--wp--custom--radius--md); }
.summers-dpanel__cta:hover { color: var(--wp--custom--brand--whatsapp-ink); filter: brightness(.96); }
.summers-dpanel__pdf { margin-top: 9px; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--wp--preset--color--tint-cool); color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; font-size: var(--wp--preset--font-size--sm); padding: .85rem; border-radius: var(--wp--custom--radius--md); }
.summers-dpanel__pdf:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--navy); }
.summers-dpanel__nota { margin: 14px 0 0; color: var(--wp--preset--color--text-muted); font-size: var(--wp--preset--font-size--xs); line-height: 1.5; text-align: center; }

/* --- Card de asesor --- */
.summers-dasesor { background: var(--wp--preset--color--tint); border-radius: var(--wp--custom--radius--lg); padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start; }
.summers-dasesor__ico { flex: none; color: var(--wp--preset--color--navy); }
.summers-dasesor__ico svg { width: 26px; height: 26px; display: block; }
.summers-dasesor__n { display: block; color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--sm); font-weight: 700; }
.summers-dasesor__t { display: block; margin-top: 3px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); line-height: 1.5; }

/* Zona libre: si el destino no tiene contenido extra, no dejes la banda vacía. */
.summers-dextra:not(:has(.wp-block-post-content *)) { display: none; }

/* --- Destinos parecidos --- */
.summers-drel { padding: 36px clamp(1rem, 4vw, 3rem) 44px; background: linear-gradient(180deg, var(--wp--preset--color--tint) 0%, var(--wp--preset--color--surface) 100%); }
.summers-drel__inner { max-width: var(--summers-container); margin-inline: auto; }
.summers-drel__title { margin: 0 0 18px; font-size: var(--wp--preset--font-size--h-2); font-weight: 800; color: var(--wp--preset--color--navy); }

/* Con el panel de 348px al lado, 4 fichas en línea se aprietan por debajo de ~1200px. */
@media (max-width: 1200px) {
	.summers-dfacts { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
	.summers-dficha__layout { grid-template-columns: 1fr; gap: 24px; }
	/* En móvil el precio y el CTA van primero: la decisión no debe quedar al final. */
	.summers-dpanel { position: static; order: -1; }
	.summers-dfacts { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	.summers-dhero__title { font-size: var(--wp--preset--font-size--h-2); }
	.summers-dinc { grid-template-columns: 1fr; gap: 20px; }
	.summers-dgal { grid-template-columns: 1fr 1fr; grid-auto-rows: 104px; }
	.summers-dgal > :first-child { grid-row: span 1; grid-column: span 2; }
	.summers-dsecc__list { padding-inline: var(--wp--preset--spacing--16); }
	.summers-dsecc--itinerario .summers-dsecc__row { grid-template-columns: 64px minmax(0, 1fr); }
	.summers-dsecc--sin-hora .summers-dsecc__row { grid-template-columns: minmax(0, 1fr); }
	.summers-dsecc--lista .summers-dsecc__list { grid-template-columns: minmax(0, 1fr); padding-inline: var(--wp--preset--spacing--16); }
}

/* Tipo comercial (Plan / Pasadía / Tour) en la card del destino. */
.summers-card__tipo { display: inline-block; align-self: flex-start; margin-bottom: 0; padding: 2px 9px; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--tint-cool); color: var(--wp--preset--color--primary-dark); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .5px; }


/* --- Buscador del header (blocks/buscador, assets/js/search.js) --- */
.summers-search { display: flex; }
.summers-search__open { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--wp--custom--radius--pill); background: transparent; color: var(--wp--preset--color--surface); cursor: pointer; transition: background-color .16s ease; }
.summers-search__open:hover { background: color-mix(in srgb, var(--wp--preset--color--surface) 14%, transparent); }
.summers-search__open svg, .summers-search__icon svg { width: 22px; height: 22px; display: block; }
.summers-search__dlg { width: min(640px, calc(100% - 32px)); max-width: none; max-height: min(80vh, 640px); margin: 10vh auto auto; padding: 0; border: 0; border-radius: var(--wp--custom--radius--lg); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--navy); box-shadow: var(--wp--preset--shadow--elevated); overflow: hidden; flex-direction: column; opacity: 1; translate: 0; transition: opacity .18s ease, translate .18s ease, overlay .18s allow-discrete, display .18s allow-discrete; }
.summers-search__dlg[open] { display: flex; }
@starting-style { .summers-search__dlg[open] { opacity: 0; translate: 0 8px; } }
.summers-search__dlg::backdrop { background: color-mix(in srgb, var(--wp--preset--color--navy) 60%, transparent); }
.summers-search__form { display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 16px; border-bottom: 1px solid var(--wp--preset--color--border); }
/* El input no lleva outline propio: el foco se ve como subrayado de toda la barra. */
.summers-search__form:focus-within { box-shadow: inset 0 -2px 0 var(--wp--preset--color--primary-dark); outline: 2px solid transparent; outline-offset: -2px; } /* outline transparente: visible en forced-colors, donde se pierde el box-shadow */
.summers-search__icon { flex: none; color: var(--wp--preset--color--text-soft); }
.summers-search__input { flex: 1; min-width: 0; padding: 12px 0; border: 0; background: transparent; font: inherit; font-size: var(--wp--preset--font-size--body); color: var(--wp--preset--color--navy); }
.summers-search__input:focus { outline: none; }
/* Una sola × (cerrar): la del input type=search nativo sobra. */
.summers-search__input::-webkit-search-cancel-button { appearance: none; }
.summers-search__input::placeholder { color: var(--wp--preset--color--text-soft); }
.summers-search__close { flex: none; width: 44px; height: 44px; border: 0; border-radius: var(--wp--custom--radius--sm); background: transparent; color: var(--wp--preset--color--text-soft); font: inherit; font-size: var(--wp--preset--font-size--h-3); line-height: 1; cursor: pointer; }
.summers-search__close:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--navy); }
.summers-search__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 4px 8px 8px; }
.summers-search__body:focus-visible { outline: 2px solid var(--wp--preset--color--primary-dark); outline-offset: -2px; }
.summers-search__hint { margin: 12px 8px 4px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-search__msg { margin: 12px 8px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-search__list, .summers-search__grp { list-style: none; margin: 0; padding: 0; }
.summers-search__group { padding: 12px 8px 4px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.summers-search__opt a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px; border-radius: var(--wp--custom--radius--md); color: inherit; text-decoration: none; outline: 2px solid transparent; }
.summers-search__opt a[aria-selected="true"] { background: var(--wp--preset--color--tint); outline-color: var(--wp--preset--color--primary-dark); outline-offset: -2px; }
.summers-search__opt img, .summers-search__ph { flex: none; width: 48px; height: 48px; border-radius: var(--wp--custom--radius--sm); object-fit: cover; background: var(--wp--preset--color--tint-cool); }
.summers-search__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.summers-search__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--sm); }
.summers-search__meta { display: flex; align-items: center; gap: 4px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--xs); }
.summers-search__dot { width: 8px; height: 8px; border-radius: var(--wp--custom--radius--pill); background: var(--c, var(--wp--preset--color--primary)); }
.summers-search__price { flex: none; text-align: right; color: var(--wp--preset--color--navy); font-weight: 700; font-size: var(--wp--preset--font-size--sm); white-space: nowrap; }
.summers-search__price small { color: var(--wp--preset--color--text-soft); font-weight: 400; font-size: var(--wp--preset--font-size--xs); }
.summers-search__opt--term .summers-search__name { flex: 1; }
.summers-search__kind { flex: none; padding: 4px 8px; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--tint); color: var(--wp--preset--color--navy); font-size: var(--wp--preset--font-size--xs); font-weight: 700; }
.summers-search__n { flex: none; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--xs); }
.summers-search__empty { padding: 12px 8px; color: var(--wp--preset--color--text-soft); font-size: var(--wp--preset--font-size--sm); }
.summers-search__empty p { margin: 0 0 8px; }
.summers-search__empty a { color: var(--wp--preset--color--navy); font-weight: 700; text-decoration: underline; }
.summers-search__all { flex: none; display: block; margin: 0 16px 16px; padding: 12px 16px; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--navy); color: var(--wp--preset--color--surface); font-weight: 700; font-size: var(--wp--preset--font-size--sm); text-align: center; text-decoration: none; }
.summers-search__all:hover { color: var(--wp--preset--color--surface); background: var(--wp--preset--color--navy-mid); }
.summers-search__all[hidden] { display: none; }
/* Móvil: el panel ocupa la pantalla. La lupa sigue el orden del DOM (después del menú)
   para que el foco con teclado coincida con lo que se ve. */
@media (max-width: 599px) {
	.summers-search__name { white-space: normal; overflow-wrap: anywhere; }
	.summers-search__dlg { width: 100%; height: 100%; max-height: none; margin: 0; border-radius: 0; }
	/* El precio baja bajo el nombre para no cortar títulos largos. */
	.summers-search__opt:not(.summers-search__opt--term) a { display: grid; grid-template-columns: 48px 1fr; gap: 4px 12px; }
	.summers-search__opt img, .summers-search__ph { grid-row: span 2; }
	.summers-search__price { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
	.summers-search__dlg { transition: none; }
}
/* Con la lupa, el menú de escritorio no cabía en una línea entre 600 y ~850 px (justo al salir
   de la hamburguesa y al reaparecer "Cotiza tu viaje"): separaciones más compactas en ese rango. */
/* Mobile: lupa + hamburguesa juntas; con el gap de 24 px el header se desbordaba a 320 px. */
@media (max-width: 599px) {
	.wp-site-blocks header .wp-block-group:has(> .summers-search) { gap: var(--wp--preset--spacing--8); }
}
@media (min-width: 600px) and (max-width: 1024px) {
	.wp-site-blocks header .wp-block-group:has(> .summers-search) { gap: var(--wp--preset--spacing--12); }
	.wp-site-blocks header .wp-block-navigation .wp-block-navigation__container { gap: var(--wp--preset--spacing--16); }
}
