/* =============================================================
   PISO E TIERRA — Sistema de movimiento y microinteracciones (v1.4)
   Archivo: assets/css/pt-motion.css  (se carga DESPUÉS de pt-site.css)

   Contenido
     1. Títulos: revelado por palabras, línea decorativa, secuencia
     2. Variantes de entrada (zoom, pop, tilt, campo, slide, rise)
     3. Botones: sistema primario / secundario / controles
     4. Mejoras por página (alojamientos, experiencias, chef, tours,
        transporte, caminata nocturna, blog)
     5. Movimiento ambiental discreto
     6. Responsive y prefers-reduced-motion

   Reglas de oro: solo transform/opacity en animaciones continuas,
   nada de librerías, el Home conserva su diseño, y si JS falla el
   contenido sigue visible (los estados ocultos los crea pt-motion.js).
   ============================================================= */

:root {
	--pt-ease-out: cubic-bezier(.22,.61,.36,1);
	--pt-ease-expo: cubic-bezier(.16,.84,.3,1);
	--pt-crema-claro: #faf8f2;
	--pt-verde-brillo: #a9b97e;
}

/* -------------------------------------------------------------
   1. TÍTULOS
   ------------------------------------------------------------- */
/* Máscara por palabra. El relleno amplía la zona visible para que no se
   recorten sombras, cursivas ni descendentes; los márgenes negativos
   devuelven el espacio, así el texto no cambia de posición. */
.pt-w {
	display: inline-block; overflow: hidden; vertical-align: top;
	padding: .12em .32em .26em; margin: -.12em -.32em -.26em;
}
.pt-w__i { display: inline-block; }

@media (prefers-reduced-motion: no-preference) {

	/* Respaldo anti-parpadeo: html.pt-js lo pone un script mínimo en <head>.
	   Si por cualquier motivo pt-motion.js no llega a dividir el título,
	   este keyframe lo muestra igualmente a los 1.8 s. */
	html.pt-js :is(.pt-hero__title, .pt-archive-hero__title, .pt-archive-exp-hero__title, .pt-exp-hero__title, .pt-tour-hero__title, .pt-sa-hero__title, .pt-transp-hero__title, .pt-blog-hero__title, .pt-post-hero__title):not(.pt-split) {
		opacity: 0;
		animation: ptMotionFailsafe .01s linear 1.8s forwards;
	}
	@keyframes ptMotionFailsafe { to { opacity: 1; } }

	/* Títulos de cabecera: palabras que suben desde la máscara. */
	.pt-title--hero.pt-split { animation: none; opacity: 1; }
	.pt-title--hero .pt-w__i {
		animation: ptWordUp 1s var(--pt-ease-expo) calc(.12s + var(--pt-wi, 0) * 70ms) both;
	}
	@keyframes ptWordUp {
		from { transform: translate3d(0, 115%, 0) rotate(2.5deg); }
		to   { transform: none; }
	}

	/* Etiqueta, subtítulo y botones entran escalonados, después del título. */
	body .pt-hero__eyebrow, body .pt-archive-hero__eyebrow, body .pt-exp-hero__eyebrow,
	body .pt-tour-hero__eyebrow, body .pt-blog-hero__eyebrow, body .pt-archive-exp-hero__eyebrow,
	body .pt-sa-hero__location {
		animation: ptFadeUp .75s var(--pt-ease-out) 0s both;
	}
	body .pt-hero__subtitle, body .pt-archive-hero__subtitle, body .pt-exp-hero__sub,
	body .pt-sa-hero__meta, body .pt-blog-hero__subtitle, body .pt-archive-exp-hero__desc {
		animation: ptFadeUp .8s var(--pt-ease-out) .62s both;
	}
	body .pt-hero__cta-group, body .pt-hero__actions, body .pt-sa-hero__btns {
		animation: ptFadeUp .8s var(--pt-ease-out) .82s both;
	}

	/* Línea decorativa que se dibuja bajo los títulos interiores. */
	.pt-title-line {
		animation: ptLineDraw 1s var(--pt-ease-expo) calc(.3s + var(--pt-wcount, 3) * 65ms) both;
	}
	@keyframes ptLineDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

	/* Títulos de sección: etiqueta → título → descripción. */
	.pt-title--section .pt-w__i {
		transform: translate3d(0, 115%, 0);
		transition: transform .95s var(--pt-ease-expo) calc(.14s + var(--pt-wi, 0) * 55ms);
	}
	.pt-title--section.is-seq .pt-w__i { transform: none; }

	.pt-seq { transition: opacity .75s ease, transform .85s var(--pt-ease-out); }
	.pt-seq:not(.is-seq) { opacity: 0; transform: translate3d(0, 14px, 0); }
	.pt-seq--desc { transition-delay: .42s; }
}
.pt-title-line {
	display: block; width: 72px; height: 2px; margin: 1.15rem 0 0;
	background: linear-gradient(90deg, var(--pt-crema), rgba(243,240,231,.18));
	transform-origin: left center; border-radius: 2px;
}
.pt-title-line--center { margin-inline: auto; transform-origin: center; }
/* Ficha de alojamiento: nunca hay línea bajo el título (choca con las etiquetas). */
.pt-sa-hero .pt-title-line { display: none; }

/* La palabra enmascarada nunca debe romperse por el letter-spacing del título. */
.pt-title .pt-w__i { white-space: nowrap; }

/* -------------------------------------------------------------
   2. VARIANTES DE ENTRADA — una vez, al entrar en pantalla
   ------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.pt-anim.pt-fx-zoom:not(.is-in)       { transform: scale(.92); }
	.pt-anim.pt-fx-rise-long:not(.is-in)  { transform: translate3d(0, 48px, 0) scale(.97); }
	.pt-anim.pt-fx-pop:not(.is-in)        { transform: translate3d(0, 22px, 0) scale(.9); }
	.pt-anim.pt-fx-tilt:not(.is-in)       { transform: translate3d(0, 26px, 0) rotate(-1.6deg); }
	.pt-anim.pt-fx-field:not(.is-in)      { transform: translate3d(0, 16px, 0); }
	.pt-anim.pt-fx-slide-in:not(.is-in)   { transform: translate3d(-22px, 0, 0); }
	/* Las fotografías "se asientan" al entrar: zoom suave dentro de su marco. */
	.pt-exp-acard__img-wrap img, .pt-sa-galeria__item img, .pt-aloj-card__media img {
		transition: transform 1.1s var(--pt-ease-out), filter .45s ease;
	}
	.pt-exp-acard.pt-anim:not(.is-in) .pt-exp-acard__img-wrap img,
	.pt-sa-galeria__item.pt-anim:not(.is-in) img { transform: scale(1.16); }
}
.pt-exp-acard__img-wrap, .pt-aloj-card__media { overflow: hidden; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-exp-acard:hover .pt-exp-acard__img-wrap img { transform: scale(1.06); }
}

/* -------------------------------------------------------------
   3. BOTONES — sistema coherente
      Primarios: relleno que barre + brillo + flecha.
      Secundarios: relleno que sube + borde que se aviva.
      Controles (filtros, pestañas): píldora con estados claros.
   ------------------------------------------------------------- */
:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar, .pt-sa-reserva-card__airbnb) {
	position: relative; overflow: hidden; isolation: isolate;
	-webkit-tap-highlight-color: transparent; user-select: none;
}
.pt-btn { border-radius: 999px; gap: .55rem; }
.pt-btn--primary:not(.pt-header__cta) { padding: .82rem 1.65rem; }
.pt-btn--primary { box-shadow: 0 6px 16px rgba(46,56,37,.16); }

/* Relleno que barre (primarios sobre fondo oscuro/medio). */
:is(.pt-btn--primary, .pt-exp-btn--solid, .pt-exp-cta__btn, .pt-btn-reservar, .pt-btn--hero-solid, .pt-btn--filtro)::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.17) 100%);
	transform: translate3d(-101%, 0, 0);
	transition: transform .55s var(--pt-ease-out);
}
/* Primarios claros (sobre bandas verdes): el relleno oscurece un poco. */
:is(.pt-cn-cta__btn, .pt-tour-cierre__btn)::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(110,122,78,.16);
	transform: translate3d(-101%, 0, 0);
	transition: transform .55s var(--pt-ease-out);
}
/* Secundarios: el relleno sube desde abajo. */
:is(.pt-btn--outline-light, .pt-btn--outline-dark, .pt-exp-btn--outline, .pt-sa-reserva-card__airbnb)::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(243,240,231,.14);
	transform: translate3d(0, 101%, 0);
	transition: transform .45s var(--pt-ease-out);
}
.pt-sa-reserva-card__airbnb::before { background: rgba(110,122,78,.12); }
.pt-btn--outline-dark::before { background: rgba(46,56,37,.08); }

@media (hover: hover) {
	:is(.pt-btn--primary, .pt-exp-btn--solid, .pt-exp-cta__btn, .pt-btn-reservar, .pt-btn--hero-solid, .pt-btn--filtro, .pt-cn-cta__btn, .pt-tour-cierre__btn,
	    .pt-btn--outline-light, .pt-btn--outline-dark, .pt-exp-btn--outline, .pt-sa-reserva-card__airbnb):hover::before {
		transform: none;
	}
}
:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar) svg {
	transition: transform .35s var(--pt-ease-out); flex: 0 0 auto;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	/* Flecha que se desliza (solo los botones cuyo icono es una flecha). */
	:is(.pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn--hero-solid, .pt-btn--hero-outline):hover svg { transform: translateX(4px); }
	.pt-btn--outline-light:hover svg { transform: scale(1.12) rotate(-6deg); }
	.pt-exp-btn:hover, .pt-exp-cta__btn:hover, .pt-tour-cierre__btn:hover, .pt-btn-reservar:hover { box-shadow: 0 14px 28px rgba(28,36,20,.2); }
	.pt-btn--outline-light:hover, .pt-btn--outline-dark:hover { transform: translateY(-2px); }
}
:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar, .pt-sa-reserva-card__airbnb):active {
	transform: translateY(0) scale(.97); transition-duration: .1s;
}

/* Onda de clic (la inserta pt-motion.js). */
.pt-has-ripple { position: relative; overflow: hidden; isolation: isolate; }
.pt-ripple {
	position: absolute; z-index: -1; border-radius: 50%; pointer-events: none;
	background: currentColor; opacity: .26; transform: scale(0);
	animation: ptRipple .7s var(--pt-ease-out) forwards;
}
@keyframes ptRipple { to { transform: scale(1); opacity: 0; } }

/* Controles: filtros y pestañas — selección bien diferenciada. */
:is(.pt-exp-filtro-btn, .pt-tour-filtros__btn, .pt-sa-galeria__tab, .pt-post-share__copy) {
	position: relative; -webkit-tap-highlight-color: transparent;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease, transform .25s var(--pt-ease-out);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	:is(.pt-exp-filtro-btn, .pt-tour-filtros__btn, .pt-sa-galeria__tab, .pt-post-share__copy):not(.is-active):hover {
		transform: translateY(-2px); border-color: var(--pt-verde-medio);
		box-shadow: 0 8px 18px rgba(46,56,37,.12);
	}
}
:is(.pt-exp-filtro-btn, .pt-tour-filtros__btn, .pt-sa-galeria__tab):active { transform: scale(.96); }
:is(.pt-exp-filtro-btn, .pt-tour-filtros__btn).is-active { box-shadow: 0 8px 20px rgba(46,56,37,.25); }

/* Foco accesible con contraste suficiente también sobre fondos oscuros. */
:is(.pt-hero, .pt-archive-hero, .pt-sa-hero, .pt-exp-hero, .pt-tour-hero, .pt-transp-hero, .pt-blog-hero, .pt-cn-cta, .pt-exp-cta-band, .pt-exp-cta, .pt-tour-cierre, .pt-footer, #pt-footer) :focus-visible {
	outline-color: var(--pt-crema);
}
:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar):focus-visible {
	outline-offset: 4px; border-radius: 999px;
}

/* Botón de la cabecera: más presencia sin cambiar su tamaño. */
.pt-header__cta { box-shadow: 0 4px 12px rgba(46,56,37,.18); }

/* Brillo ocasional (cada ~9 s) en las llamadas a la acción clave. */
@media (prefers-reduced-motion: no-preference) {
	.pt-sa-reserva-card .pt-btn--primary::after, .pt-cn-cta__btn::after, .pt-exp-cta__btn::after, .pt-transp-form__submit::after {
		content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
		background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);
		transform: translate3d(-150%, 0, 0);
		animation: ptBtnSheen 9s ease-in-out 3s infinite;
	}
	@keyframes ptBtnSheen { 0%, 78% { transform: translate3d(-150%, 0, 0); } 92%, 100% { transform: translate3d(150%, 0, 0); } }
}

/* Enlaces "ver más" de tarjetas: flecha y subrayado vivos. */
:is(.pt-exp-acard__cta, .pt-card__cta, .pt-blog-card__cta, .pt-blog-featured__cta, .pt-aloj-card__cta, .pt-post-related__link) svg {
	transition: transform .3s var(--pt-ease-out);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	:is(.pt-exp-acard, .pt-card, .pt-blog-card, .pt-blog-featured, .pt-post-related__card):hover :is(.pt-exp-acard__cta, .pt-card__cta, .pt-blog-card__cta, .pt-blog-featured__cta, .pt-post-related__link) svg {
		transform: translateX(5px);
	}
}

/* -------------------------------------------------------------
   4. MEJORAS POR PÁGINA
   ------------------------------------------------------------- */

/* ── Alojamientos: ficha ── */
.pt-sa-features li svg { transition: transform .4s var(--pt-ease-out), color .3s ease; }
.pt-sa-features li { transition: opacity .8s ease, transform .85s var(--pt-ease-out), border-color .3s ease, box-shadow .3s ease, background-color .3s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-sa-features li:hover svg { transform: scale(1.18) rotate(-7deg); color: var(--pt-verde-acento); }
	.pt-sa-features li.is-in:hover { transform: translateY(-3px); border-color: rgba(110,122,78,.4); box-shadow: 0 10px 22px rgba(46,56,37,.09); }
}
.pt-sa-galeria__seccion-titulo::before {
	content: ""; display: inline-block; width: 24px; height: 2px; margin-right: .7rem;
	vertical-align: middle; background: var(--pt-verde-medio); border-radius: 2px;
	transform-origin: left center; transition: transform .9s var(--pt-ease-expo) .2s;
}
@media (prefers-reduced-motion: no-preference) {
	.pt-sa-galeria__seccion:not(.is-in) .pt-sa-galeria__seccion-titulo::before { transform: scaleX(0); }
}
.pt-sa-reserva-card { position: relative; overflow: hidden; }
.pt-sa-reserva-card::before {
	content: ""; position: absolute; left: 0; top: 0; right: 0; height: 4px; z-index: 2; pointer-events: none;
	background: linear-gradient(90deg, var(--pt-verde-medio), var(--pt-verde-brillo), var(--pt-verde-medio));
	transform-origin: left center; transition: transform 1.1s var(--pt-ease-expo) .25s;
}
@media (prefers-reduced-motion: no-preference) {
	.pt-sa-reserva-card:not(.is-in)::before { transform: scaleX(0); }
}
.pt-sa-galeria__item { position: relative; overflow: hidden; }

/* ── Alojamientos: listado ── */
.pt-aloj-card__title {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1px;
	transition: background-size .55s var(--pt-ease-out);
}
@media (hover: hover) { .pt-aloj-card:hover .pt-aloj-card__title { background-size: 100% 1px; } }

/* ── Experiencias: listado ── */
.pt-exp-acard__img-wrap { position: relative; }
.pt-exp-acard__meta-chip { transition: background-color .3s ease, transform .3s var(--pt-ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-exp-acard:hover .pt-exp-acard__meta-chip { transform: translateY(-2px); }
}

/* ── Chef privado y experiencias individuales ── */
.pt-chef-story__media::after { transition: transform .9s var(--pt-ease-out), opacity .9s ease .25s; }
@media (prefers-reduced-motion: no-preference) {
	.pt-chef-story__media.pt-anim:not(.is-in)::after { opacity: 0; transform: translate3d(-14px,-14px,0); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-chef-story__media.is-in:hover::after { transform: translate3d(8px, 8px, 0); }
}
.pt-exp-pack__check { display: inline-flex; }
@media (prefers-reduced-motion: no-preference) {
	.pt-exp-pack__item.is-in .pt-exp-pack__check { animation: ptCheckPop .6s var(--pt-ease-out) .25s both; }
	@keyframes ptCheckPop { 0% { transform: scale(0) rotate(-30deg); } 70% { transform: scale(1.18) rotate(4deg); } 100% { transform: none; } }
}
.pt-exp-pack__item { transition: opacity .8s ease, transform .85s var(--pt-ease-out), background-color .3s ease; }
@media (hover: hover) { .pt-exp-pack__item:hover { background-color: rgba(110,122,78,.07); } }

/* ── Tours ── */
.pt-tour-meta-list li { transition: opacity .8s ease, transform .85s var(--pt-ease-out), background-color .3s ease; }
.pt-tour-meta-list__icon { transition: transform .4s var(--pt-ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-tour-meta-list li:hover .pt-tour-meta-list__icon { transform: scale(1.15) rotate(-6deg); }
}
.pt-tour-side__card { position: relative; overflow: hidden; }
.pt-tour-side__card::before {
	content: ""; position: absolute; left: 0; top: 0; right: 0; height: 4px; z-index: 2; pointer-events: none;
	background: linear-gradient(90deg, var(--pt-verde-medio), var(--pt-verde-brillo));
	transform-origin: left center; transition: transform 1s var(--pt-ease-expo) .3s;
}
@media (prefers-reduced-motion: no-preference) {
	.pt-tour-side__card:not(.is-in)::before { transform: scaleX(0); }
}
.pt-tour-condition-icon { transition: transform .4s var(--pt-ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-tour-condition-item:hover .pt-tour-condition-icon { transform: scale(1.12) rotate(-5deg); }
}

/* ── Transporte y alquiler ── */
.pt-transp-form__group-number { transition: transform .4s var(--pt-ease-out), box-shadow .4s ease, background-color .3s ease; }
.pt-transp-form__group:focus-within .pt-transp-form__group-number {
	transform: scale(1.1); box-shadow: 0 6px 16px rgba(46,56,37,.22);
}
.pt-field__input, .pt-field__textarea {
	transition: border-color .25s ease, box-shadow .3s ease, background-color .25s ease;
}
.pt-field__input:focus, .pt-field__textarea:focus {
	border-color: var(--pt-verde-medio); box-shadow: 0 0 0 4px rgba(110,122,78,.16);
}
.pt-cobertura-card { transition: opacity .8s ease, transform .85s var(--pt-ease-out), border-color .3s ease, box-shadow .3s ease, background-color .3s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-cobertura-card.is-in:hover { transform: translateY(-3px); }
}
.pt-transp-form__submit { gap: .6rem; }
.pt-transp-form__submit:disabled { opacity: .6; cursor: not-allowed; }

/* ── Caminata nocturna ── */
.pt-cn-ficha__list li { transition: opacity .8s ease, transform .85s var(--pt-ease-out), background-color .3s ease, padding-left .3s var(--pt-ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-cn-ficha__list li.is-in:hover { padding-left: .4rem; }
}

/* ── Blog ── */
.pt-blog-heading__title { position: relative; }
.pt-post-related__card { transition: opacity .8s ease, transform .85s var(--pt-ease-out), box-shadow .35s ease; }
.pt-post-related__img-wrap { overflow: hidden; }
.pt-post-related__img-wrap img { transition: transform .8s var(--pt-ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.pt-post-related__card.is-in:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(46,56,37,.13); }
	.pt-post-related__card:hover .pt-post-related__img-wrap img { transform: scale(1.06); }
	.pt-blog-card:hover .pt-blog-card__tag, .pt-card:hover .pt-card__tag { transform: translateY(-2px); }
}
.pt-blog-card__tag, .pt-card__tag { transition: transform .3s var(--pt-ease-out); }

/* -------------------------------------------------------------
   5. MOVIMIENTO AMBIENTAL DISCRETO
      Solo transform/opacity; nada sobre imágenes completas salvo
      el zoom ambiental que ya existía en pt-site.css.
   ------------------------------------------------------------- */
.pt-ambient { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.pt-ambient {
		display: block; position: absolute; inset: -12%; z-index: 1; pointer-events: none;
		background:
			radial-gradient(38% 46% at 18% 28%, rgba(169,185,126,.20), transparent 70%),
			radial-gradient(34% 42% at 84% 72%, rgba(243,240,231,.10), transparent 70%);
		animation: ptAmbientDrift 24s ease-in-out infinite alternate;
	}
	@keyframes ptAmbientDrift {
		from { transform: translate3d(-3%, -2%, 0) scale(1); }
		to   { transform: translate3d(3%, 2%, 0) scale(1.08); }
	}

	/* Iconos que respiran, desfasados para que no se muevan al unísono. */
	@keyframes ptMotionFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
	/* Solo flotan los iconos de bloques grandes (pocos por pantalla). Los iconos
	   pequeños de listas (características, ficha del tour, condiciones) permanecen
	   quietos y reaccionan únicamente al pasar el cursor, para no recargar la página. */
	.pt-transp-benefit__icon svg, .pt-exp-meta-item__icon svg, .pt-categorias__icon svg,
	.pt-cn-card__icon svg, .pt-chef-pillar__icon svg {
		animation: ptMotionFloat 7s ease-in-out infinite;
	}
	.pt-transp-benefit:nth-child(even) .pt-transp-benefit__icon svg,
	.pt-exp-meta-item:nth-child(even) .pt-exp-meta-item__icon svg, .pt-categorias__item:nth-child(even) .pt-categorias__icon svg,
	.pt-cn-card:nth-child(even) .pt-cn-card__icon svg, .pt-chef-pillar:nth-child(even) .pt-chef-pillar__icon svg { animation-delay: -2.4s; }
	.pt-categorias__item:nth-child(3n) .pt-categorias__icon svg, .pt-cn-card:nth-child(3n) .pt-cn-card__icon svg,
	.pt-chef-pillar:nth-child(3n) .pt-chef-pillar__icon svg { animation-delay: -4.6s; }
	/* El icono deja de flotar mientras reacciona al cursor. */
	.pt-categorias__item:hover .pt-categorias__icon svg, .pt-cn-card:hover .pt-cn-card__icon svg,
	.pt-chef-pillar:hover .pt-chef-pillar__icon svg { animation-play-state: paused; }
}

/* -------------------------------------------------------------
   6. RESPONSIVE
   ------------------------------------------------------------- */
@media (max-width: 640px) {
	.pt-title-line { width: 56px; margin-top: .9rem; }
	.pt-btn--primary:not(.pt-header__cta) { padding: .8rem 1.35rem; }
	.pt-w { padding-inline: .2em; margin-inline: -.2em; }
}
@media (min-width: 1700px) {
	.pt-title-line { width: 88px; height: 3px; }
}

/* -------------------------------------------------------------
   7. REDUCED MOTION — sin animaciones continuas ni entradas
   ------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.pt-ambient, .pt-ripple { display: none !important; }
	.pt-title-line { transform: none; }
	:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar)::before,
	:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar)::after { transition: none !important; animation: none !important; }
	:is(.pt-btn, .pt-exp-btn, .pt-exp-cta__btn, .pt-tour-cierre__btn, .pt-btn-reservar):active { transform: none; }
}
