/**
 * Flash Motion — base styles (step 1/6, no animations yet).
 */

:root {
	--fm-fast: 0.4s;
	--fm-base: 0.8s;
	--fm-slow: 1.2s;
	--fm-stagger: 0.09s;
}

/* Anti-flash: hide motion targets until JS decides they should animate in. */
html.fm-ready [data-fm],
html.fm-ready [data-fm-stagger] > * {
	visibility: hidden;
}

/* Fallback (reduced motion opted out, or CDN/GSAP failed to load): always show content. */
html.fm-off [data-fm],
html.fm-off [data-fm-stagger] > * {
	visibility: visible;
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html.fm-ready [data-fm],
	html.fm-ready [data-fm-stagger] > * {
		visibility: visible;
		opacity: 1;
		transform: none;
	}
}

#smooth-wrapper {
	overflow: hidden;
}

/* ---------------------------------------------------------------------------
   Micro-interacoes. Complementam os hovers que ja existem no style.css
   (.pcard, .btb-benefit, .btn) nos blocos que tinham transition declarada mas
   nenhum estado de hover para disparar.
   --------------------------------------------------------------------------- */

/* Cards de plano: mesma elevacao ja usada em .btb-benefit, para o conjunto
   responder igual. O card em destaque sobe um pouco mais. */
.plan-card:hover {
	transform: translateY(-6px);
	border-color: rgba(189, 95, 46, .32);
	box-shadow: 0 24px 50px -34px rgba(42, 28, 18, .42);
}

.plan-card--featured:hover {
	transform: translateY(-10px);
}

/* Chips de preferencia do quiz. */
.quiz-option:hover {
	border-color: var(--ink);
	background: var(--cream2);
}

.quiz-option.is-selected:hover {
	background: var(--ink);
}

/* Passos numerados do clube. */
.fs {
	transition: transform .25s ease, box-shadow .25s ease;
}

.fs:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 44px -32px rgba(42, 28, 18, .4);
}

/* Packshot cresce dentro do proprio quadro no hover do card. */
.pcard .pimg,
li.product .pimg {
	overflow: hidden;
}

.pcard .pimg img,
li.product .pimg img {
	transition: transform .6s cubic-bezier(.2, .6, .2, 1);
}

.pcard:hover .pimg img,
li.product:hover .pimg img {
	transform: scale(1.05);
}

/* Setas "→" avancam junto com o link. */
.btn span[aria-hidden="true"],
.club-hero__link span[aria-hidden="true"],
.about-story__action .btn span[aria-hidden="true"] {
	display: inline-block;
	transition: transform .25s ease;
}

.btn:hover span[aria-hidden="true"],
.club-hero__link:hover span[aria-hidden="true"] {
	transform: translateX(4px);
}

/* Feedback tatil ao clicar. */
.btn:active {
	transform: translateY(1px);
}

/* Sublinhado do menu cresce a partir do centro em vez de aparecer inteiro. */
.main-nav a {
	position: relative;
}

.main-nav a::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: var(--gold-soft);
	transform: scaleX(0);
	transition: transform .28s cubic-bezier(.2, .6, .2, 1);
}

.main-nav a:hover::before {
	transform: scaleX(1);
}

.main-nav .current-menu-item > a::before,
.main-nav .current_page_item > a::before {
	content: none;
}

/* Nada acima se aplica a quem pediu menos movimento. */
@media (prefers-reduced-motion: reduce) {
	.plan-card:hover,
	.plan-card--featured:hover,
	.fs:hover,
	.btn:active {
		transform: none;
	}

	.pcard:hover .pimg img,
	li.product:hover .pimg img {
		transform: none;
	}

	.btn:hover span[aria-hidden="true"],
	.club-hero__link:hover span[aria-hidden="true"] {
		transform: none;
	}

	.main-nav a::before {
		transition: none;
	}
}
