/*
Theme Name: Vya Fit
Theme URI: https://vyafitballet.com
Author: Lipinski Studio
Author URI: https://lipinskistudio.com
Description: Tema sob medida da VYA Fit — dancewear, uniformes e figurinos, com loja em WooCommerce. Desenvolvido a partir do handoff de design da marca.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vya-fit
Tags: e-commerce, woocommerce
*/

/* =========================================================================
   1. Tokens
   ========================================================================= */

:root {
	/* Cores */
	--magenta-700: #8E0F51;
	--magenta-600: #A4145E;
	--magenta-500: #C42B7F;
	--magenta-400: #E351A3;
	--pink-300: #F3B8D6;
	--pink-200: #F7DCE8;
	--pink-100: #FDF3F6;
	--pink-050: #FDF4F7;
	--cream: #FBF6F4;
	--ink-900: #2E2C31;
	--ink-800: #35333A;
	--ink-700: #26242A;
	--ink-600: #57545C;
	--ink-500: #6B676F;
	--ink-400: #8C8890;
	--line: rgba(46, 44, 49, .08);
	--line-strong: rgba(46, 44, 49, .16);

	--grad-primary: linear-gradient(100deg, #8E0F51, #A4145E 55%, #C42B7F);
	--grad-bar: linear-gradient(90deg, #8E0F51, #A4145E 40%, #E351A3);

	/* Tipografia */
	--font-title: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--font-body: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;

	/* Sombras */
	--sh-card-soft: 0 16px 36px rgba(46, 44, 49, .07);
	--sh-card: 0 18px 40px rgba(46, 44, 49, .06);
	--sh-image: 0 24px 50px rgba(46, 44, 49, .12);
	--sh-image-lg: 0 30px 70px rgba(46, 44, 49, .13);
	--sh-hero-band: 0 26px 60px rgba(46, 44, 49, .16);
	--sh-panel-pink: 0 30px 70px rgba(164, 20, 94, .10);
	--sh-btn: 0 14px 34px rgba(164, 20, 94, .25);
	--sh-btn-hover: 0 20px 44px rgba(164, 20, 94, .34);

	/* Estrutura */
	--container: 1360px;
	--gutter: 48px;
	--header-h: 92px;
	--ease: cubic-bezier(.22, 1, .36, 1);
}

/* =========================================================================
   2. Base
   ========================================================================= */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 24px);
}

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink-900);
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--magenta-600);
	text-decoration: none;
	transition: color .3s ease;
}

a:hover {
	color: var(--magenta-400);
}

::selection {
	background: var(--pink-200);
	color: var(--ink-900);
}

h1, h2, h3, h4 {
	margin: 0;
	font-family: var(--font-title);
	font-weight: 300;
	text-wrap: balance;
}

p {
	margin: 0 0 18px;
	text-wrap: pretty;
}

p:last-child {
	margin-bottom: 0;
}

button {
	font-family: inherit;
}

:focus-visible {
	outline: 2px solid var(--magenta-600);
	outline-offset: 3px;
	border-radius: 4px;
}

.vya-container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: .5rem;
	left: .5rem;
	z-index: 200;
	width: auto;
	height: auto;
	padding: .6rem 1.2rem;
	background: #fff;
	clip-path: none;
	box-shadow: var(--sh-card);
	border-radius: 999px;
}

/* =========================================================================
   3. Tipografia utilitária
   ========================================================================= */

.vya-eyebrow {
	margin: 0 0 18px;
	font-size: 11.5px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

.vya-eyebrow--light {
	color: var(--pink-300);
}

.vya-h1 {
	font-size: clamp(44px, 5vw, 86px);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -.01em;
}

.vya-h2 {
	font-size: clamp(30px, 3.4vw, 52px);
	font-weight: 300;
	line-height: 1.13;
}

.vya-h3 {
	font-size: 25px;
	font-weight: 400;
	line-height: 1.15;
}

.vya-italic {
	font-style: italic;
	color: var(--magenta-600);
}

.vya-lead {
	font-size: 17px;
	font-weight: 300;
	line-height: 1.8;
	color: var(--ink-600);
}

.vya-quote {
	font-family: var(--font-title);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(26px, 3.4vw, 50px);
	line-height: 1.3;
}

.vya-label {
	font-size: 11px;
	line-height: 1.4;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-400);
}

.vya-sec {
	padding-block: clamp(64px, 8vw, 120px);
}

.vya-sec--tight {
	padding-block: clamp(56px, 6vw, 92px);
}

.vya-sec-head {
	max-width: 720px;
	margin-bottom: 52px;
}

/* Painel flutuante no rosa da marca, sobre a seção clara. */
.vya-painel-rosa {
	padding: clamp(38px, 5vw, 76px);
	border-radius: 32px;
	background: var(--grad-primary);
	box-shadow: 0 34px 70px rgba(164, 20, 94, .28);
	color: #fff;
}

.vya-painel-rosa .vya-sec-head {
	margin-bottom: 44px;
}

.vya-painel-rosa h2,
.vya-painel-rosa h3 {
	color: #fff;
}

.vya-painel-rosa p {
	color: rgba(255, 255, 255, .82);
}

.vya-painel-rosa .vya-eyebrow {
	color: var(--pink-200);
}

.vya-painel-rosa .vya-etapas {
	border-top-color: rgba(255, 255, 255, .3);
}

.vya-painel-rosa .vya-etapa {
	border-right-color: rgba(255, 255, 255, .22);
}

.vya-painel-rosa .vya-etapa h3 {
	color: #fff;
}

.vya-painel-rosa .vya-etapa__num {
	color: var(--pink-200);
}

.vya-painel-rosa .vya-etapa__prazo {
	color: var(--pink-200);
}

.vya-painel-rosa .vya-etapa p {
	color: rgba(255, 255, 255, .78);
}

@media (max-width: 1200px) {
	.vya-painel-rosa .vya-etapa {
		border-bottom-color: rgba(255, 255, 255, .22);
	}
}

/* Seção sobre fundo escuro — mesma cor das bandas do kit e do portfólio. */
.vya-sec--escuro {
	background: var(--ink-800);
	color: #fff;
}

.vya-sec--escuro h1,
.vya-sec--escuro h2,
.vya-sec--escuro h3 {
	color: #fff;
}

.vya-sec--escuro p {
	color: rgba(255, 255, 255, .72);
}

/* Rosa claro no lugar do magenta: sobre o escuro, o magenta some. */
.vya-sec--escuro .vya-eyebrow,
.vya-sec--escuro .vya-etapa__prazo {
	color: var(--pink-300);
}

.vya-sec--escuro .vya-link {
	border-color: rgba(243, 184, 214, .5);
	color: var(--pink-200);
}

/* =========================================================================
   4. Botões e links
   ========================================================================= */

.vya-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 58px;
	padding: 0 38px;
	border: 0;
	border-radius: 999px;
	background: var(--grad-primary);
	box-shadow: var(--sh-btn);
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: transform .4s var(--ease), box-shadow .4s var(--ease), background .3s ease, color .3s ease;
}

.vya-btn:hover {
	color: #fff;
	transform: translateY(-3px);
	box-shadow: var(--sh-btn-hover);
}

.vya-btn--sm {
	min-height: 44px;
	padding: 0 26px;
	font-size: 12px;
}

.vya-btn--ghost {
	background: rgba(255, 255, 255, .5);
	border: 1px solid rgba(164, 20, 94, .35);
	box-shadow: none;
	color: var(--magenta-600);
}

.vya-btn--ghost:hover {
	background: #fff;
	color: var(--magenta-600);
	box-shadow: var(--sh-card-soft);
}

.vya-btn--onDark {
	background: transparent;
	border: 1px solid rgba(243, 184, 214, .55);
	box-shadow: none;
	color: var(--pink-200);
}

.vya-btn--onDark:hover {
	background: var(--pink-200);
	color: var(--ink-800);
}

.vya-btn--invert {
	background: var(--cream);
	box-shadow: none;
	color: var(--magenta-600);
}

.vya-btn--invert:hover {
	background: #fff;
	color: var(--magenta-600);
}

.vya-btn--block {
	width: 100%;
}

.vya-link {
	display: inline-block;
	padding-bottom: 3px;
	border-bottom: 1px solid rgba(164, 20, 94, .35);
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

.vya-link:hover {
	border-color: var(--magenta-400);
}

.vya-link--light {
	border-color: rgba(243, 184, 214, .5);
	color: var(--pink-200);
}

.vya-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}

/* =========================================================================
   5. Espaços de imagem (fotografia ainda não entregue)
   ========================================================================= */

.vya-slot {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	overflow: hidden;
	border-radius: 20px;
	background:
		radial-gradient(120% 90% at 25% 15%, rgba(247, 220, 232, .85), transparent 60%),
		linear-gradient(150deg, #F6ECF0, #EFE3E8 60%, #E9DCE2);
	color: var(--ink-400);
	text-align: center;
}

.vya-slot::after {
	content: "";
	position: absolute;
	inset: 12px;
	border: 1px dashed rgba(164, 20, 94, .22);
	border-radius: 14px;
	pointer-events: none;
}

.vya-slot__txt {
	position: relative;
	max-width: 260px;
	font-size: 11px;
	line-height: 1.6;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.vya-slot--dark {
	background: linear-gradient(150deg, #3C3941, #2F2D33);
	color: rgba(255, 255, 255, .45);
}

.vya-slot--dark::after {
	border-color: rgba(243, 184, 214, .2);
}

.vya-slot--3x4 { aspect-ratio: 3 / 4; }
.vya-slot--4x5 { aspect-ratio: 4 / 5; }
.vya-slot--4x3 { aspect-ratio: 4 / 3; }
.vya-slot--1x1 { aspect-ratio: 1 / 1; }
.vya-slot--21x9 { aspect-ratio: 21 / 9; }
.vya-slot--fill { height: 100%; min-height: 260px; }

/* =========================================================================
   6. Texturas de tule
   ========================================================================= */

.vya-tule {
	position: absolute;
	z-index: 1;
	border-radius: 50%;
	filter: blur(52px);
	opacity: .55;
	pointer-events: none;
	background: radial-gradient(circle, rgba(227, 81, 163, .5), rgba(247, 220, 232, 0) 70%);
	animation: vyaDrift 28s ease-in-out infinite alternate;
}

@keyframes vyaDrift {
	from { transform: translate3d(0, 0, 0) rotate(0deg); }
	to { transform: translate3d(2.5%, -2%, 0) rotate(2deg); }
}

@keyframes vyaFloat {
	from { transform: translateY(0); }
	to { transform: translateY(-14px); }
}

/* =========================================================================
   7. Barra de aviso + header
   ========================================================================= */

.vya-aviso {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 6px 20px;
	background: var(--grad-bar);
	color: #fff;
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-align: center;
}

.vya-cabecalho {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(251, 246, 244, .88);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-bottom: 1px solid var(--line);
}

.vya-cabecalho__interno {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	min-height: var(--header-h);
}

.vya-cabecalho__marca img {
	height: 52px;
	width: auto;
}

.vya-cabecalho__nome {
	font-family: var(--font-title);
	font-size: 30px;
	color: var(--ink-900);
}

.vya-nav__lista {
	display: flex;
	align-items: center;
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vya-nav__lista a {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 1px solid transparent;
	font-size: 13.5px;
	line-height: 1;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ink-600);
}

.vya-nav__lista a:hover,
.vya-nav__lista .current-menu-item > a,
.vya-nav__lista .current_page_item > a,
.vya-nav__lista .current-menu-parent > a {
	color: var(--magenta-600);
	border-color: var(--magenta-600);
}

.vya-acoes {
	display: flex;
	align-items: center;
	gap: 8px;
}

.vya-icone {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: var(--ink-900);
	transition: background .3s ease;
}

.vya-icone:hover {
	background: var(--pink-200);
	color: var(--ink-900);
}

.vya-icone svg {
	width: 19px;
	height: 19px;
	stroke: currentColor;
	stroke-width: 1.3;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.vya-icone__badge {
	position: absolute;
	top: -2px;
	right: -2px;
	min-width: 17px;
	height: 17px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--magenta-600);
	color: #fff;
	font-size: 10px;
	line-height: 17px;
	text-align: center;
}

.vya-menu-toggle {
	display: none;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink-900);
	cursor: pointer;
}

.vya-menu-toggle svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	stroke-width: 1.4;
	fill: none;
	stroke-linecap: round;
}

/* =========================================================================
   8. Rodapé
   ========================================================================= */

.vya-rodape {
	margin-top: 0;
	background: var(--pink-100);
	border-top: 1px solid var(--line);
}

.vya-rodape__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr) 1.2fr;
	gap: 48px;
	padding: 70px 0 36px;
}

.vya-rodape__titulo {
	margin: 0 0 18px;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

.vya-rodape__lista {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.vya-rodape__lista a,
.vya-rodape__texto {
	font-size: 14px;
	color: var(--ink-600);
}

.vya-rodape__marca {
	padding-left: 48px;
	border-left: 1px solid var(--line);
}

.vya-rodape__marca img {
	width: 200px;
	margin-bottom: 22px;
}

.vya-rodape__frete {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-600);
}

.vya-social {
	display: flex;
	gap: 10px;
	margin-top: 22px;
}

.vya-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(164, 20, 94, .3);
	border-radius: 50%;
	color: var(--magenta-600);
	transition: background .3s ease, color .3s ease;
}

.vya-social a:hover {
	background: var(--magenta-600);
	color: #fff;
}

.vya-social svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	stroke-width: 1.4;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.vya-rodape__base {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 26px 0;
	border-top: 1px solid var(--line);
	font-size: 12.5px;
	color: var(--ink-400);
}

.vya-rodape__base ul {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vya-rodape__base a {
	color: var(--ink-400);
}

.vya-rodape__base a:hover {
	color: var(--magenta-600);
}

/* WhatsApp flutuante */
.vya-whats {
	position: fixed;
	right: 26px;
	bottom: 26px;
	z-index: 80;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: linear-gradient(140deg, #A4145E, #E351A3);
	box-shadow: var(--sh-btn);
	color: #fff;
	transition: transform .4s var(--ease);
}

.vya-whats:hover {
	color: #fff;
	transform: translateY(-3px);
}

.vya-whats svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}

/* =========================================================================
   9. Reveal
   ========================================================================= */

.vya-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease), transform 1.1s var(--ease);
}

.vya-reveal.is-visivel {
	opacity: 1;
	transform: none;
}

/* =========================================================================
   10. Home
   ========================================================================= */

.vya-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, #FFFFFF, #FDF4F7 45%, #F7E4EC);
}

/* Vídeo de fundo do hero */
.vya-hero__video {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.vya-hero__video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* O degradê rosa sobre o vídeo é o que mantém H1, texto e botões legíveis:
   forte na coluna do texto, some antes da bailarina. */
.vya-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(100deg, rgba(253, 244, 247, .97) 0%, rgba(253, 244, 247, .92) 26%, rgba(250, 233, 240, .55) 48%, rgba(247, 228, 236, .18) 68%, rgba(247, 228, 236, .06) 100%),
		linear-gradient(180deg, rgba(255, 255, 255, .35) 0%, rgba(255, 255, 255, 0) 30%);
}

.vya-hero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	align-items: center;
	gap: 64px;
	min-height: 720px;
}

.vya-hero__txt {
	position: relative;
	z-index: 2;
	padding-block: 72px;
}

.vya-hero__txt p.vya-lead {
	max-width: 520px;
	margin-top: 26px;
}

/* Flex em vez de quatro colunas fixas: cada selo ocupa a largura do próprio
   texto e quebra a linha quando precisa, em vez de espremer as palavras. */
.vya-selos {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 30px;
	margin: 48px 0 0;
	padding: 26px 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.vya-selos li {
	display: flex;
	align-items: center;
	gap: 9px;
	white-space: nowrap;
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-500);
}

.vya-selos li::before {
	flex: 0 0 auto;
}

/* Bloco do mapa + cartão de contato: proporção fora do inline, senão o
   empilhamento no mobile não consegue vencer o estilo do template. */
.vya-duas--mapa {
	align-items: stretch;
	gap: 32px;
	grid-template-columns: 1.15fr .85fr;
}

/* Mapa da loja */
.vya-mapa {
	position: relative;
	height: 100%;
	min-height: 460px;
	overflow: hidden;
	border-radius: 24px;
	box-shadow: var(--sh-card-soft);
}

.vya-mapa a {
	display: block;
	height: 100%;
}

.vya-mapa .vya-foto {
	height: 100%;
	border-radius: 0;
	transition: transform .6s var(--ease);
}

.vya-mapa:hover .vya-foto {
	transform: scale(1.03);
}

.vya-mapa__credito {
	position: absolute;
	right: 12px;
	bottom: 10px;
	margin: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(253, 244, 247, .85);
	font-size: 10.5px;
	letter-spacing: .04em;
	color: var(--ink-500);
}

.vya-mapa__credito a {
	color: var(--ink-500);
	text-decoration: underline;
}

.vya-selos li::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--magenta-400);
}

.vya-hero__media {
	position: relative;
	align-self: stretch;
	min-height: 720px;
}

.vya-medalhao {
	position: absolute;
	right: 56px;
	bottom: 148px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 190px;
	height: 190px;
	padding: 20px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .72);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: var(--sh-image);
	text-align: center;
	animation: vyaFloat 7s ease-in-out infinite alternate;
}

.vya-medalhao strong {
	font-family: var(--font-title);
	font-size: 34px;
	font-weight: 300;
	font-style: italic;
	color: var(--magenta-600);
}

.vya-medalhao span {
	margin-top: 6px;
	font-size: 10.5px;
	line-height: 1.5;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ink-500);
}

/* Jornada */
.vya-jornada {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 26px;
}

.vya-jornada__card {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	overflow: hidden;
	border-radius: 28px;
	box-shadow: var(--sh-card);
}

.vya-jornada__card--escuro {
	background: var(--ink-800);
	color: #fff;
}

.vya-jornada__card--claro {
	background: linear-gradient(150deg, #FFFFFF, #FBEFF3);
}

/* A composição de produto ocupa o card inteiro; o texto fica por cima, com
   um véu que nasce do lado do texto e some sobre a foto. */
.vya-jornada__media {
	position: absolute;
	inset: 0;
}

.vya-jornada__media .vya-foto,
.vya-jornada__media .vya-slot {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	-webkit-mask-image: none;
	mask-image: none;
}

.vya-jornada__card::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.vya-jornada__card--escuro::after {
	background: linear-gradient(90deg, rgba(24, 23, 26, .93) 0%, rgba(24, 23, 26, .84) 30%, rgba(24, 23, 26, .2) 60%, rgba(24, 23, 26, 0) 78%);
}

.vya-jornada__card--claro::after {
	background: linear-gradient(90deg, rgba(253, 246, 248, .95) 0%, rgba(253, 246, 248, .86) 30%, rgba(253, 246, 248, .18) 60%, rgba(253, 246, 248, 0) 78%);
}

.vya-jornada__txt {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	width: min(56%, 420px);
	padding: 52px 40px;
}

.vya-jornada__card--escuro h3,
.vya-jornada__card--escuro p {
	color: #fff;
}

.vya-jornada__card--escuro p {
	color: rgba(255, 255, 255, .72);
}

.vya-jornada__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	margin-bottom: 26px;
	border: 1px solid currentColor;
	border-radius: 16px;
	color: var(--magenta-400);
}

.vya-jornada__icone svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	stroke-width: 1.3;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.vya-jornada__txt h3 {
	margin-bottom: 14px;
	font-size: 30px;
}

.vya-jornada__txt p {
	font-size: 15px;
	color: var(--ink-600);
}

.vya-jornada__txt .vya-link {
	margin-top: 28px;
}

/* O botão do card não estica na largura toda como no mobile geral. */
.vya-jornada__txt .vya-btn {
	width: auto;
	flex: 0 0 auto;
}

.vya-jornada__media .vya-slot {
	height: 100%;
	border-radius: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 35%);
	mask-image: linear-gradient(90deg, transparent, #000 35%);
}

/* Categorias */
/* Flex em vez de grade fixa: com menos de sete categorias, as bolinhas
   continuam centralizadas em vez de sobrar vão à direita. */
.vya-categorias {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 28px 24px;
}

.vya-categoria {
	flex: 0 1 clamp(120px, 12vw, 168px);
}

.vya-sec--centro .vya-sec-head {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.vya-categoria {
	display: block;
	text-align: center;
	transition: transform .45s var(--ease);
}

.vya-categoria:hover {
	transform: translateY(-8px);
}

.vya-categoria .vya-slot {
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid rgba(164, 20, 94, .16);
	margin-bottom: 16px;
}

.vya-categoria span {
	font-size: 11.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-600);
}

.vya-categoria:hover span {
	color: var(--magenta-600);
}

/* Kit básico */
.vya-kit {
	position: relative;
	padding-block: clamp(64px, 7vw, 110px);
	background: #0B0B0D url("assets/fotos/kit-fundo.jpg") center / cover no-repeat;
	color: #fff;
}

/* Véu à esquerda: o texto branco precisa de contraste sobre o tule. */
.vya-kit::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 11, 13, .88) 0%, rgba(11, 11, 13, .62) 24%, rgba(11, 11, 13, .12) 44%, rgba(11, 11, 13, 0) 60%);
	pointer-events: none;
}

.vya-kit > * {
	position: relative;
	z-index: 1;
}

.vya-kit__grid {
	display: grid;
	grid-template-columns: .72fr 2fr;
	gap: 64px;
	align-items: start;
}

.vya-kit h2 {
	color: #fff;
}

.vya-kit p {
	color: rgba(255, 255, 255, .7);
}

/* Grade de cards de produto (home / relacionados) */
.vya-produtos {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.vya-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--sh-card-soft);
	transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}

.vya-card:hover {
	transform: translateY(-8px);
	box-shadow: var(--sh-image);
}

.vya-card__media {
	position: relative;
	background: #F4EDEF;
}

.vya-card__media .vya-slot {
	border-radius: 0;
	aspect-ratio: 3 / 4;
}

.vya-card__corpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 22px 22px 26px;
}

.vya-card__cat {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-400);
}

.vya-card__nome {
	margin: 10px 0 12px;
	font-family: var(--font-title);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--ink-900);
}

.vya-card__preco {
	font-family: var(--font-title);
	font-size: 23px;
	font-weight: 400;
	color: var(--magenta-600);
}

.vya-card__corpo .vya-link {
	margin-top: 18px;
	align-self: flex-start;
}

.vya-card__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .88);
	backdrop-filter: blur(6px);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

/* Blocos editoriais em duas colunas */
.vya-duas {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 72px;
}

.vya-duas--invertido .vya-duas__media {
	order: 2;
}

.vya-numeros {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	margin-top: 36px;
	padding-top: 30px;
	border-top: 1px solid var(--line);
}

.vya-numeros--4 {
	grid-template-columns: repeat(4, 1fr);
}

.vya-numero strong {
	display: block;
	font-family: var(--font-title);
	font-size: 40px;
	font-weight: 300;
	line-height: 1;
	color: var(--magenta-600);
}

.vya-numero span {
	display: block;
	margin-top: 10px;
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-400);
}

/* Faixa full-bleed com foto (figurinos) */
.vya-faixa {
	position: relative;
	overflow: hidden;
	background: var(--ink-700);
	color: #fff;
}

.vya-faixa__bg {
	position: absolute;
	inset: 0;
}

.vya-faixa__bg .vya-slot {
	height: 100%;
	border-radius: 0;
}

.vya-faixa__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(38, 36, 42, .95), rgba(38, 36, 42, .55) 55%, rgba(38, 36, 42, .12));
}

.vya-faixa__txt {
	position: relative;
	z-index: 2;
	max-width: 560px;
	padding-block: clamp(80px, 10vw, 140px);
}

.vya-faixa h2 {
	color: #fff;
}

.vya-faixa p {
	color: rgba(255, 255, 255, .78);
}

/* Diferenciais numerados */
.vya-etapas {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	border-top: 1px solid var(--line-strong);
}

.vya-etapas--4 { grid-template-columns: repeat(4, 1fr); }
.vya-etapas--3 { grid-template-columns: repeat(3, 1fr); }

.vya-etapa {
	padding: 40px 30px 10px 0;
	border-right: 1px solid var(--line);
}

/* Respiro entre o filete e o texto da coluna seguinte — sem ele as palavras
   encostam na linha. A primeira coluna segue alinhada com o título. */
.vya-etapa + .vya-etapa {
	padding-left: 30px;
}

.vya-etapa:last-child {
	border-right: 0;
	padding-right: 0;
}

.vya-etapa__num {
	display: block;
	margin-bottom: 18px;
	font-family: var(--font-title);
	font-size: 30px;
	font-weight: 300;
	color: var(--magenta-400);
}

.vya-etapa h3 {
	margin-bottom: 12px;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: .06em;
	color: var(--ink-900);
}

.vya-etapa p {
	font-size: 14px;
	color: var(--ink-500);
}

.vya-etapa__prazo {
	display: block;
	margin-top: 16px;
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

.vya-etapas--escuro {
	border-color: rgba(255, 255, 255, .18);
}

.vya-etapas--escuro .vya-etapa {
	border-color: rgba(255, 255, 255, .12);
}

.vya-etapas--escuro h3 {
	color: #fff;
}

.vya-etapas--escuro p {
	color: rgba(255, 255, 255, .65);
}

/* Painel rosa (atendimento) */
.vya-painel {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 64px;
	padding: 56px;
	border-radius: 32px;
	background: linear-gradient(145deg, #FDF4F7, #F7E4EC);
	box-shadow: var(--sh-panel-pink);
}

.vya-painel .vya-slot {
	min-height: 420px;
	height: 100%;
	border-radius: 24px;
}

/* Instagram */
.vya-insta {
	display: grid;
	grid-template-columns: .85fr 2fr .85fr;
	gap: 48px;
	align-items: center;
}

.vya-insta__grade {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
}

.vya-insta__grade .vya-slot {
	aspect-ratio: 1;
	border-radius: 14px;
	transition: transform .4s var(--ease);
}

.vya-insta__grade a:hover .vya-slot {
	transform: translateY(-6px);
}

.vya-contato-col {
	padding-left: 48px;
	border-left: 1px solid var(--line);
	display: grid;
	gap: 22px;
}

.vya-contato-col dt {
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--magenta-600);
}

.vya-contato-col dd {
	margin: 6px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ink-600);
}

/* Fotos escalonadas */
.vya-fotos-duplas {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.vya-fotos-duplas .vya-slot:nth-child(2) {
	margin-top: 48px;
}

/* Bloco com filete à esquerda */
.vya-missao {
	margin-top: 28px;
	padding-left: 28px;
	border-left: 2px solid var(--magenta-400);
	font-family: var(--font-title);
	font-size: 21px;
	font-style: italic;
	font-weight: 300;
	line-height: 1.55;
	color: var(--ink-600);
}

/* Banda escura arredondada (atacado / CTA) */
.vya-banda {
	display: grid;
	grid-template-columns: 1.4fr .6fr;
	align-items: center;
	gap: 48px;
	padding: 72px;
	border-radius: 28px;
	background: var(--ink-800);
	color: #fff;
}

.vya-banda h2 {
	color: #fff;
}

.vya-banda p {
	margin-top: 18px;
	color: rgba(255, 255, 255, .72);
}

.vya-banda--centro {
	grid-template-columns: 1fr;
	justify-items: center;
	text-align: center;
}

/* =========================================================================
   11. Cabeçalho de página interna
   ========================================================================= */

.vya-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ink-400);
}

.vya-breadcrumb a {
	color: var(--ink-400);
}

.vya-breadcrumb a:hover {
	color: var(--magenta-600);
}

.vya-pagina-topo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding-block: 56px 40px;
}

.vya-pagina-topo p {
	max-width: 560px;
	margin-top: 16px;
}

/* Hero escuro (uniformes / figurinos) */
.vya-hero-escuro {
	position: relative;
	overflow: hidden;
	background: var(--ink-700);
	color: #fff;
}

.vya-hero-escuro__bg {
	position: absolute;
	inset: 0;
}

.vya-hero-escuro__bg .vya-slot {
	height: 100%;
	border-radius: 0;
}

.vya-hero-escuro__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(46, 44, 49, .94), rgba(46, 44, 49, .6) 55%, rgba(46, 44, 49, .12));
}

.vya-hero-escuro__txt {
	position: relative;
	z-index: 2;
	max-width: 720px;
	padding-block: clamp(90px, 11vw, 150px);
}

.vya-hero-escuro h1 {
	color: #fff;
}

.vya-hero-escuro p {
	margin-top: 24px;
	color: rgba(255, 255, 255, .78);
}

.vya-hero-escuro .vya-italic {
	color: var(--pink-300);
}

/* Hero claro em duas colunas (atacado) */
.vya-hero-claro {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, #FFFFFF, #FDF4F7 50%, #F7E4EC);
}

.vya-hero-claro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 64px;
	min-height: 600px;
}

.vya-hero-claro__media .vya-slot {
	height: 100%;
	min-height: 520px;
	border-radius: 24px;
}

/* Hero centralizado (sobre) */
.vya-hero-centro {
	padding-block: clamp(70px, 8vw, 120px) 60px;
	text-align: center;
}

.vya-hero-centro__txt {
	max-width: 1000px;
	margin-inline: auto;
}

.vya-hero-centro p {
	margin-top: 24px;
}

.vya-fachada {
	margin-top: -40px;
}

.vya-fachada .vya-slot {
	aspect-ratio: 21 / 9;
	border-radius: 28px;
	box-shadow: var(--sh-image-lg);
}

/* =========================================================================
   12. Cards de conteúdo
   ========================================================================= */

.vya-grade-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}

.vya-grade-cards--3 { grid-template-columns: repeat(3, 1fr); }

.vya-card-conteudo {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--sh-card-soft);
}

.vya-card-conteudo .vya-slot {
	border-radius: 0;
	aspect-ratio: 4 / 5;
}

.vya-card-conteudo__corpo {
	padding: 26px 24px 30px;
}

.vya-card-conteudo h3 {
	margin-bottom: 12px;
	font-size: 25px;
}

.vya-card-conteudo p {
	font-size: 14px;
	color: var(--ink-500);
}

.vya-card-conteudo--escuro {
	background: var(--ink-800);
}

.vya-card-conteudo--escuro h3 {
	color: #fff;
}

.vya-card-conteudo--escuro p {
	color: rgba(255, 255, 255, .65);
}

.vya-tag {
	display: inline-block;
	margin-bottom: 14px;
	font-size: 10.5px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--magenta-400);
}

.vya-bullets {
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 16px;
}

.vya-bullets li {
	display: flex;
	gap: 14px;
	font-size: 15px;
	color: var(--ink-600);
}

.vya-bullets li::before {
	content: "";
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	margin-top: 11px;
	border-radius: 50%;
	background: var(--magenta-400);
}

/* Mosaico de galeria */
.vya-mosaico {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	grid-auto-rows: 210px;
	gap: 26px;
}

/* As fotos precisam caber na célula: com min-height elas estouravam a linha e
   passavam por cima da foto de baixo. */
.vya-mosaico .vya-slot,
.vya-mosaico .vya-foto {
	width: 100%;
	height: 100%;
	min-height: 0;
	border-radius: 18px;
	object-fit: cover;
	box-shadow: 0 20px 38px rgba(0, 0, 0, .34);
}

.vya-mosaico > *:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.vya-mosaico > *:nth-child(2) { grid-column: span 2; }
.vya-mosaico > *:nth-child(3) { grid-column: span 2; }
.vya-mosaico > *:nth-child(4) { grid-column: span 3; }
.vya-mosaico > *:nth-child(5) { grid-column: span 1; }

/* Chips de filtro (portfólio) */
.vya-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vya-chip {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 22px;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	background: none;
	color: var(--ink-600);
	font-size: 12px;
	letter-spacing: .13em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}

.vya-chip:hover {
	border-color: var(--magenta-400);
	color: var(--magenta-600);
}

.vya-chip.is-ativo {
	background: var(--magenta-600);
	border-color: var(--magenta-600);
	color: #fff;
}

.vya-chips--escuro .vya-chip {
	border-color: rgba(255, 255, 255, .28);
	color: rgba(255, 255, 255, .72);
}

.vya-chips--escuro .vya-chip.is-ativo {
	background: var(--pink-200);
	border-color: var(--pink-200);
	color: var(--magenta-600);
}

/* Acordeão */
.vya-acordeao {
	border-top: 1px solid var(--line);
}

.vya-acordeao__item {
	border-bottom: 1px solid var(--line);
}

.vya-acordeao__botao {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	padding: 24px 0;
	border: 0;
	background: none;
	color: var(--ink-900);
	font-size: 16px;
	text-align: left;
	cursor: pointer;
}

.vya-acordeao__botao::after {
	content: "+";
	font-size: 22px;
	font-weight: 300;
	color: var(--magenta-600);
	transition: transform .4s var(--ease);
}

.vya-acordeao__botao[aria-expanded="true"]::after {
	transform: rotate(135deg);
}

.vya-acordeao__painel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .5s var(--ease);
}

.vya-acordeao__item.is-aberto .vya-acordeao__painel {
	grid-template-rows: 1fr;
}

.vya-acordeao__painel > div {
	overflow: hidden;
}

.vya-acordeao__painel p {
	padding-bottom: 26px;
	font-size: 15px;
	color: var(--ink-600);
}

/* =========================================================================
   13. Formulários
   ========================================================================= */

.vya-form-grid {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 56px;
	align-items: start;
}

.vya-form-aside {
	position: sticky;
	top: calc(var(--header-h) + 32px);
}

.vya-form-aside__contato {
	display: grid;
	gap: 22px;
	margin-top: 34px;
	padding: 30px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: #fff;
}

.vya-form-card {
	padding: 52px;
	border: 1px solid var(--line);
	border-radius: 28px;
	background: #fff;
	box-shadow: var(--sh-panel-pink);
}

.vya-campos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
}

.vya-campo--full {
	grid-column: 1 / -1;
}

.vya-campo label,
.vya-campo > span {
	display: block;
	margin-bottom: 9px;
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ink-600);
}

.vya-campo input[type="text"],
.vya-campo input[type="email"],
.vya-campo input[type="tel"],
.vya-campo input[type="date"],
.vya-campo select {
	width: 100%;
	height: 52px;
	padding: 0 20px;
	border: 1px solid var(--line-strong);
	border-radius: 26px;
	background: #FDFAFB;
	color: var(--ink-900);
	font-family: inherit;
	font-size: 15px;
	transition: border-color .3s ease;
}

.vya-campo textarea {
	width: 100%;
	min-height: 130px;
	padding: 18px 20px;
	border: 1px solid var(--line-strong);
	border-radius: 22px;
	background: #FDFAFB;
	color: var(--ink-900);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.6;
	resize: vertical;
	transition: border-color .3s ease;
}

.vya-campo input:focus,
.vya-campo select:focus,
.vya-campo textarea:focus {
	border-color: var(--magenta-600);
	outline: none;
}

.vya-campo-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vya-campo-chips input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.vya-campo-chips label {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	margin: 0;
	padding: 0 22px;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-600);
	cursor: pointer;
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}

.vya-campo-chips input:checked + label {
	background: var(--magenta-600);
	border-color: var(--magenta-600);
	color: #fff;
}

.vya-campo-chips input:focus-visible + label {
	outline: 2px solid var(--magenta-600);
	outline-offset: 3px;
}

.vya-form-nota {
	margin-top: 18px;
	font-size: 13px;
	text-align: center;
	color: var(--ink-400);
}

.vya-form-aviso {
	margin-top: 24px;
	padding: 16px 20px;
	border-radius: 18px;
	background: var(--pink-100);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ink-600);
}

.vya-form-sucesso {
	margin-bottom: 26px;
	padding: 20px 24px;
	border: 1px solid rgba(164, 20, 94, .25);
	border-radius: 20px;
	background: var(--pink-100);
	color: var(--magenta-600);
	font-size: 15px;
}

.vya-form-erro {
	margin-bottom: 26px;
	padding: 20px 24px;
	border: 1px solid rgba(164, 20, 94, .3);
	border-radius: 20px;
	color: var(--magenta-600);
	font-size: 14px;
}

/* Tabela de medidas */
.vya-tabela {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.vya-tabela th {
	padding: 14px 16px;
	background: var(--pink-200);
	color: var(--magenta-600);
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-align: left;
}

.vya-tabela td {
	padding: 14px 16px;
	border-top: 1px solid var(--line);
	color: var(--ink-600);
}

.vya-tabela tr td:first-child {
	color: var(--ink-900);
}

/* =========================================================================
   14. Responsivo
   ========================================================================= */

@media (max-width: 1200px) {
	.vya-produtos,
	.vya-grade-cards { grid-template-columns: repeat(2, 1fr); }
	.vya-etapas,
	.vya-etapas--4 { grid-template-columns: repeat(2, 1fr); }
	.vya-etapa { border-bottom: 1px solid var(--line); }
	/* Em duas colunas, quem abre a linha volta a ficar alinhado à esquerda. */
	.vya-etapa:nth-child(odd) { padding-left: 0; }
	.vya-insta { grid-template-columns: 1fr; }
	.vya-contato-col { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); padding-top: 28px; }
	.vya-rodape__grid { grid-template-columns: repeat(2, 1fr); }
	.vya-rodape__marca { grid-column: 1 / -1; padding-left: 0; border-left: 0; border-top: 1px solid var(--line); padding-top: 32px; }
}

@media (max-width: 1024px) {
	:root { --gutter: 24px; }

	.vya-menu-toggle { display: inline-flex; }

	.vya-nav {
		position: fixed;
		inset: var(--header-h) 0 auto;
		display: none;
		padding: 24px var(--gutter) 32px;
		background: rgba(251, 246, 244, .98);
		backdrop-filter: blur(18px);
		border-bottom: 1px solid var(--line);
		box-shadow: var(--sh-card);
	}

	.vya-nav.is-aberto { display: block; }

	.vya-nav__lista {
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
	}

	.vya-nav__lista a { font-size: 15px; }

	.vya-hero__grid,
	.vya-hero-claro__grid,
	.vya-duas,
	.vya-jornada,
	.vya-kit__grid,
	.vya-painel,
	.vya-form-grid,
	.vya-banda {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.vya-hero__grid { min-height: 0; }
	.vya-hero__media { min-height: 300px; order: -1; }
	.vya-hero__txt { padding-block: 48px 8px; }
	.vya-medalhao { left: auto; right: 16px; bottom: 16px; width: 150px; height: 150px; }

	.vya-duas--invertido .vya-duas__media { order: -1; }
	.vya-duas--mapa { grid-template-columns: 1fr; }
	.vya-jornada__txt { width: 100%; }

	.vya-jornada__card--escuro::after {
		background: linear-gradient(180deg, rgba(24, 23, 26, .92) 0%, rgba(24, 23, 26, .86) 60%, rgba(24, 23, 26, .55) 100%);
	}

	.vya-jornada__card--claro::after {
		background: linear-gradient(180deg, rgba(253, 246, 248, .94) 0%, rgba(253, 246, 248, .88) 60%, rgba(253, 246, 248, .5) 100%);
	}
	.vya-painel { padding: 36px; }
	.vya-banda { padding: 44px; }
	.vya-form-card { padding: 32px 24px; }
	.vya-form-aside { position: static; }
	.vya-mosaico { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
	.vya-mosaico > * { grid-column: span 1 !important; grid-row: span 1 !important; }
	.vya-fotos-duplas .vya-slot:nth-child(2) { margin-top: 0; }
}

@media (max-width: 720px) {
	body { font-size: 14.5px; }

	.vya-aviso { font-size: 10.5px; letter-spacing: .16em; }
	.vya-sec { padding-block: 56px; }
	.vya-produtos { grid-template-columns: repeat(2, 1fr); }
	.vya-grade-cards,
	.vya-grade-cards--3,
	.vya-etapas,
	.vya-etapas--4,
	.vya-etapas--3,
	.vya-campos,
	.vya-numeros,
	.vya-numeros--4,
	.vya-fotos-duplas,
	.vya-insta__grade,
	.vya-mosaico,
	.vya-rodape__grid {
		grid-template-columns: 1fr;
	}
	.vya-insta__grade { grid-template-columns: repeat(2, 1fr); }
	.vya-etapa,
	.vya-etapa + .vya-etapa { padding-right: 0; padding-left: 0; border-right: 0; }
	.vya-btn { width: 100%; }
	.vya-actions .vya-btn { flex: 1 1 100%; }
	.vya-pagina-topo { padding-block: 36px 26px; }
	.vya-whats { right: 16px; bottom: 16px; width: 54px; height: 54px; }

	/* 21:9 vira uma tarja fina demais numa tela estreita. */
	.vya-fachada .vya-foto,
	.vya-fachada .vya-slot { aspect-ratio: 16 / 10; }
	.vya-mapa { min-height: 320px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.vya-reveal { opacity: 1; transform: none; }

	/* Sem animação: o vídeo dá lugar ao quadro-pôster. */
	.vya-hero__video video { display: none; }

	.vya-hero__video {
		background: url("assets/fotos/hero-poster.jpg") center / cover no-repeat;
	}
}

/* =========================================================================
   15. Conteúdo corrido (páginas institucionais, posts)
   ========================================================================= */

.vya-conteudo {
	max-width: 760px;
	font-size: 16px;
	line-height: 1.85;
	color: var(--ink-600);
}

.vya-conteudo h2 {
	margin: 48px 0 18px;
	font-size: clamp(26px, 3vw, 38px);
}

.vya-conteudo h3 {
	margin: 36px 0 14px;
	font-size: 25px;
	font-weight: 400;
}

.vya-conteudo ul,
.vya-conteudo ol {
	margin: 0 0 22px;
	padding-left: 22px;
}

.vya-conteudo li {
	margin-bottom: 10px;
}

.vya-conteudo img {
	border-radius: 20px;
}

.vya-conteudo blockquote {
	margin: 32px 0;
	padding-left: 26px;
	border-left: 2px solid var(--magenta-400);
	font-family: var(--font-title);
	font-size: 22px;
	font-style: italic;
	line-height: 1.55;
}

.vya-rodape__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vya-rodape__widgets {
	padding-bottom: 20px;
}

/* Paginação de arquivos */
.wp-block-query-pagination,
.navigation.pagination {
	margin-top: 48px;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	color: var(--ink-600);
	font-size: 13px;
}

.navigation.pagination .page-numbers.current {
	background: var(--magenta-600);
	border-color: var(--magenta-600);
	color: #fff;
}

/* =========================================================================
   16. Fotos editoriais (mesmas proporções dos espaços reservados)
   ========================================================================= */

.vya-foto {
	width: 100%;
	object-fit: cover;
	border-radius: 20px;
	background: #F4EDEF;
}

.vya-foto--3x4 { aspect-ratio: 3 / 4; }
.vya-foto--4x5 { aspect-ratio: 4 / 5; }
.vya-foto--4x3 { aspect-ratio: 4 / 3; }
.vya-foto--1x1 { aspect-ratio: 1 / 1; }
.vya-foto--21x9 { aspect-ratio: 21 / 9; border-radius: 28px; }

.vya-foto--fill {
	height: 100%;
	min-height: 260px;
	border-radius: 0;
}

/* Nos blocos que já recortam a imagem, o raio vem do contêiner. */
.vya-hero__media .vya-foto,
.vya-jornada__media .vya-foto,
.vya-faixa__bg .vya-foto,
.vya-hero-escuro__bg .vya-foto,
.vya-card__media .vya-foto,
.vya-card-conteudo .vya-foto {
	border-radius: 0;
}

.vya-hero__media .vya-foto {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 18%);
	mask-image: linear-gradient(90deg, transparent, #000 18%);
}

.vya-jornada__media .vya-foto {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 35%);
	mask-image: linear-gradient(90deg, transparent, #000 35%);
}

.vya-categoria .vya-foto {
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid rgba(164, 20, 94, .16);
	margin-bottom: 16px;
}

.vya-insta__grade .vya-foto {
	border-radius: 14px;
	transition: transform .4s var(--ease);
}

.vya-insta__grade a:hover .vya-foto {
	transform: translateY(-6px);
}

.vya-fotos-duplas .vya-foto:nth-child(2) {
	margin-top: 48px;
}

@media (max-width: 1024px) {
	.vya-hero__media .vya-foto { -webkit-mask-image: none; mask-image: none; }
	.vya-fotos-duplas .vya-foto:nth-child(2) { margin-top: 0; }
}


/* =========================================================================
   17. Seção sobre cetim rosa claro
   ========================================================================= */

.vya-sec--cetim {
	position: relative;
	padding-block: clamp(56px, 6vw, 88px) clamp(200px, 21vw, 340px);
	/* Duas camadas: a bainha do tecido ancorada na base da seção e, atrás dela,
	   a textura de cetim preenchendo o resto. Assim o tecido termina no próprio
	   acabamento em qualquer altura de seção — nunca num corte reto. */
	background:
		url("assets/fotos/cetim-bainha.png") center bottom / 100% auto no-repeat,
		var(--cream) url("assets/fotos/cetim-textura.jpg") center top / cover no-repeat;
}

/* Véu claro: mantém o texto escuro legível sobre as dobras do cetim. */
.vya-sec--cetim::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(253, 246, 248, .3);
	pointer-events: none;
}

.vya-sec--cetim > * {
	position: relative;
	z-index: 1;
}

.vya-sec--cetim .vya-etapas {
	border-top-color: rgba(46, 44, 49, .22);
}

.vya-sec--cetim .vya-etapa {
	border-right-color: rgba(46, 44, 49, .14);
}

.vya-sec--cetim .vya-etapa p {
	color: var(--ink-600);
}


/* =========================================================================
   18. Seção com a arte de fita (Instagram + contato)
   ========================================================================= */

.vya-sec--fita {
	position: relative;
	display: flex;
	align-items: center;
	/* A seção acompanha a proporção da arte (16:9), para ela caber inteira e
	   ocupar a largura toda — contain nunca corta, e o que sobrar ao redor é o
	   mesmo creme das bordas esfumadas da imagem. */
	min-height: 56.25vw;
	padding-block: clamp(60px, 6vw, 90px);
	background: var(--cream) url("assets/fotos/insta-fundo.jpg") center / contain no-repeat;
}

/* A arte fica atrás do conteúdo, como marca-d'água. */
.vya-sec--fita::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(251, 246, 244, .45);
	pointer-events: none;
}

.vya-sec--fita > * {
	position: relative;
	z-index: 1;
}

@media (max-width: 1024px) {
	.vya-sec--fita {
		/* No mobile a arte vai para o topo, ainda inteira, e o conteúdo desce. */
		display: block;
		min-height: 0;
		background-position: center top;
		background-size: 100% auto;
		padding-top: 58vw;
	}
}


/* =========================================================================
   19. Faixa de paetê entre seções
   ========================================================================= */

/* O tecido não ocupa faixa própria: fica POR CIMA da emenda, metade sobre a
   seção de cima e metade sobre a de baixo. Sem fundo e sem altura no fluxo (as
   margens negativas anulam a altura), então não nasce nenhuma borda nova. A
   altura sai da proporção do recorte: 106% da largura ÷ 5,93. */
.vya-glitter {
	position: relative;
	z-index: 3;
	height: 17.9vw;
	margin-block: -8.95vw;
	background: url("assets/fotos/glitter-faixa.webp") center / 106% auto no-repeat;
	filter: drop-shadow(0 14px 22px rgba(46, 44, 49, .12));
	pointer-events: none;
}

/* =========================================================================
   20. Busca
   ========================================================================= */

.vya-busca {
	border-top: 1px solid var(--line);
	background: rgba(253, 244, 247, .97);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

.vya-busca[hidden] {
	display: none;
}

.vya-busca__form {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-block: 18px;
}

.vya-busca__icone {
	display: inline-flex;
	color: var(--magenta-600);
}

.vya-busca__icone svg {
	width: 20px;
	height: 20px;
	stroke: currentColor;
	stroke-width: 1.3;
	fill: none;
	stroke-linecap: round;
}

.vya-busca__form input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 52px;
	padding: 0 4px;
	border: 0;
	border-bottom: 1px solid var(--line-strong);
	background: none;
	color: var(--ink-900);
	font-family: var(--font-title);
	font-size: clamp(20px, 2.4vw, 30px);
	font-weight: 300;
}

.vya-busca__form input[type="search"]:focus {
	outline: none;
	border-bottom-color: var(--magenta-600);
}

.vya-busca__form input[type="search"]::placeholder {
	color: var(--ink-400);
	font-size: 20px;
}

.vya-busca__fechar {
	flex: 0 0 auto;
}

@media (max-width: 720px) {
	.vya-busca__form {
		flex-wrap: wrap;
	}

	.vya-busca__form input[type="search"] {
		order: -1;
		flex: 1 1 100%;
		font-size: 20px;
	}

	.vya-busca__form .vya-btn {
		flex: 1;
	}
}

.vya-rodape__empresa small {
	display: block;
	margin-top: 6px;
	font-size: 11.5px;
	line-height: 1.5;
	color: var(--ink-400);
}

/* =========================================================================
   21. Aviso de cookies
   ========================================================================= */

.vya-cookies {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 90;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	max-width: 560px;
	padding: 18px 22px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: rgba(253, 246, 248, .97);
	backdrop-filter: blur(14px);
	box-shadow: var(--sh-card);
}

.vya-cookies[hidden] {
	display: none;
}

.vya-cookies p {
	flex: 1 1 260px;
	margin: 0;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ink-600);
}

.vya-cookies a {
	white-space: nowrap;
}

@media (max-width: 720px) {
	.vya-cookies {
		left: 12px;
		right: 12px;
		bottom: 12px;
		max-width: none;
	}

	.vya-cookies .vya-btn {
		width: 100%;
	}
}
