/* ==========================================================================
   Divinus Doceria: design system
   --------------------------------------------------------------------------
   Direção visual: editorial de pâtisserie, com referência nas casas
   Pierre Hermé e Magnolia Bakery: a fotografia conduz, as seções se separam
   por espaço e filetes (não por caixas), rótulos em caixa-alta espaçada,
   cantos retos e links sublinhados.

   Tokens: papéis de cor do Material Design 3 (primary / on-primary /
   surface / inverse) e escala de espaçamento do Shopify Polaris (base 4 px).
   Formulários seguem o GOV.UK Design System (rótulo visível, dica, erro por
   campo). Contraste mínimo WCAG 2.2 AA.

   Sumário
   1. Fontes
   2. Tokens
   3. Base
   4. Layout
   5. Componentes
   6. Seções
   7. Conteúdo (prose)
   8. Formulários
   9. WooCommerce
   10. Utilitários e acessibilidade
   ========================================================================== */

/* 1. Fontes (auto-hospedadas, subconjunto latino, eixo de peso variável) */
@font-face {
	font-family: "Figtree";
	src: url("../fonts/figtree-latin-wght.woff2") format("woff2");
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-wght.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* 2. Tokens */
:root {
	/* Paleta base (extraída do logotipo e do site atual) */
	--c-cream: #fffaf7;
	--c-white: #ffffff;
	--c-rose-50: #fbf1ed;
	--c-rose-100: #f5e1da;
	--c-rose-200: #ecd0c7;
	--c-rose-300: #dbb1a5;
	--c-coral-400: #f16d7b;
	--c-berry-600: #b8394c;
	--c-berry-700: #9c2c3f;
	--c-cocoa-900: #2e1b17;
	--c-cocoa-800: #3d2621;
	--c-cocoa-700: #5a3a32;
	--c-cocoa-500: #7a5a51;
	--c-line: #ead8d1;
	--c-line-strong: #8f6f66;
	--c-success-bg: #e8f5ec;
	--c-success: #1d6b3d;
	--c-error-bg: #fbe9e8;
	--c-error: #a8231b;
	--c-whatsapp: #25d366;

	/* Papéis semânticos */
	--color-bg: var(--c-cream);
	--color-surface: var(--c-white);
	--color-surface-tint: var(--c-rose-50);
	--color-surface-strong: var(--c-rose-100);
	--color-text: var(--c-cocoa-900);
	--color-text-soft: var(--c-cocoa-700);
	--color-text-muted: var(--c-cocoa-500);
	--color-primary: var(--c-berry-600);
	--color-primary-hover: var(--c-berry-700);
	--color-on-primary: var(--c-white);
	--color-accent: var(--c-coral-400);
	--color-accent-soft: var(--c-rose-300);
	--color-inverse: var(--c-cocoa-900);
	--color-inverse-2: var(--c-cocoa-800);
	--color-on-inverse: var(--c-cream);
	--color-on-inverse-soft: #e9d6cf;
	--color-border: var(--c-line);
	--color-border-strong: var(--c-line-strong);
	--color-focus: var(--c-berry-700);

	/* Tipografia */
	--font-sans: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;

	--text-xs: 0.8125rem;
	--text-sm: 0.9375rem;
	--text-base: 1.0625rem;
	--text-lg: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
	--text-xl: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
	--text-2xl: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
	--text-3xl: clamp(1.875rem, 1.55rem + 1.5vw, 2.75rem);
	--text-4xl: clamp(2.25rem, 1.7rem + 2.6vw, 3.75rem);

	--leading-tight: 1.15;
	--leading-snug: 1.3;
	--leading-body: 1.65;

	/* Espaçamento (base 4 px) */
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.5rem;
	--space-6: 2rem;
	--space-7: 3rem;
	--space-8: 4rem;
	--space-9: 6rem;
	--section-y: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);

	/* Forma e profundidade */
	--radius-sm: 2px;
	--radius-md: 3px;
	--radius-lg: 4px;
	--radius-pill: 999px;
	--shadow-sm: 0 1px 2px rgb(46 27 23 / 0.06);
	--shadow-md: 0 8px 24px -12px rgb(46 27 23 / 0.18);
	--shadow-lg: 0 24px 48px -20px rgb(46 27 23 / 0.28);
	--hairline: 1px solid var(--color-border);

	/* Layout */
	--container: 1200px;
	--container-narrow: 760px;
	--gutter: 16px;
	--header-h: 72px;

	/* Movimento */
	--ease: cubic-bezier(0.2, 0, 0, 1);
	--dur-fast: 150ms;
	--dur: 250ms;
}

@media (min-width: 768px) {
	:root {
		--gutter: 24px;
		--header-h: 84px;
	}
}

/* 3. Base */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + var(--space-4));
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	line-height: var(--leading-body);
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

h1,
h2,
h3,
h4 {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 450;
	line-height: var(--leading-tight);
	letter-spacing: -0.015em;
	color: var(--color-text);
	text-wrap: balance;
}

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

a {
	color: var(--color-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color var(--dur-fast) var(--ease);
}

a:hover {
	color: var(--color-primary-hover);
}

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

::selection {
	background: var(--c-rose-200);
	color: var(--color-text);
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

button {
	cursor: pointer;
}

.site-main:focus {
	outline: none;
}

/* 4. Layout */
.container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.container--narrow {
	max-width: calc(var(--container-narrow) + var(--gutter) * 2);
}

.section {
	padding-block: var(--section-y);
}

.section--flush-top {
	padding-top: var(--space-6);
}

.section--tint {
	background: var(--color-surface-tint);
}

.section--dark {
	background: var(--color-inverse);
	color: var(--color-on-inverse);
}

.section--dark .section-title,
.section--dark h3 {
	color: var(--color-on-inverse);
}

.section__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-3);
	margin-top: var(--space-6);
}

.card-grid {
	display: grid;
	gap: var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.card-grid--3,
	.card-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.card-grid--3 {
		grid-template-columns: repeat(3, 1fr);
	}

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

.split {
	display: grid;
	gap: var(--space-6);
	align-items: center;
}

.split--top {
	align-items: start;
}

@media (min-width: 900px) {
	.split {
		grid-template-columns: 5fr 7fr;
		gap: var(--space-8);
	}
}

.split__media img,
.split__media .media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
}

.split__content > * + * {
	margin-top: var(--space-4);
}

.split__content .btn {
	margin-top: var(--space-5);
}

/* 5. Componentes -------------------------------------------------------- */

/* Botões */
.btn {
	--btn-bg: var(--color-primary);
	--btn-fg: var(--color-on-primary);
	--btn-border: transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 50px;
	padding: 0 var(--space-5);
	border: 1px solid var(--btn-border);
	border-radius: var(--radius-sm);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.btn:hover {
	color: var(--btn-fg);
}

.btn:disabled {
	opacity: 0.65;
	cursor: progress;
	transform: none;
}

.btn--primary:hover {
	--btn-bg: var(--color-primary-hover);
}

.btn--secondary {
	--btn-bg: transparent;
	--btn-fg: var(--color-text);
	--btn-border: var(--color-text);
}

.btn--secondary:hover {
	--btn-bg: var(--color-text);
	--btn-fg: var(--color-on-inverse);
}

.btn--ghost {
	--btn-bg: transparent;
	--btn-fg: var(--color-primary-hover);
	--btn-border: transparent;
	padding-inline: var(--space-2);
	text-decoration: underline;
	text-underline-offset: 0.35em;
}

.btn--ghost:hover {
	--btn-fg: var(--c-cocoa-900);
	--btn-bg: var(--color-surface-tint);
}

.btn--light {
	--btn-bg: var(--c-cream);
	--btn-fg: var(--color-inverse);
}

.btn--light:hover {
	--btn-bg: var(--c-rose-100);
}

.btn--sm {
	min-height: 42px;
	padding: 0 var(--space-4);
	font-size: 0.75rem;
}

.btn--lg {
	min-height: 56px;
	padding: 0 var(--space-6);
	font-size: 0.875rem;
}

.btn .icon {
	flex: none;
}

.btn__spinner {
	display: none;
}

[aria-busy="true"] .btn__spinner {
	display: block;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

.icon-button {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-pill);
	background: transparent;
	color: var(--color-text);
	transition: background-color var(--dur-fast) var(--ease);
	position: relative;
}

.icon-button:hover {
	background: var(--color-surface-strong);
}

.link-button {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-size: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-bottom: var(--space-3);
	color: var(--color-primary);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.eyebrow::before {
	content: "";
	width: 24px;
	height: 1.5px;
	background: currentColor;
}

.section-header {
	max-width: 680px;
	margin-bottom: var(--space-7);
}

.section-header--center {
	margin-inline: auto;
	text-align: center;
}

.section-header--center .eyebrow {
	justify-content: center;
}

.section-title {
	font-size: var(--text-3xl);
	font-weight: 400;
}

.section-lead {
	margin-top: var(--space-3);
	color: var(--color-text-soft);
	font-size: var(--text-lg);
}

.section--dark .section-lead {
	color: var(--color-on-inverse-soft);
}

/* Aviso do topo */
.notice-bar {
	background: var(--color-inverse);
	color: var(--color-on-inverse);
	font-size: var(--text-xs);
	font-weight: 500;
}

.notice-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 36px;
	padding-block: var(--space-2);
	text-align: center;
}

.notice-bar .icon {
	flex: none;
	color: var(--color-accent-soft);
}

/* Cabeçalho */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgb(255 250 247 / 0.92);
	backdrop-filter: saturate(1.4) blur(12px);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.site-header.is-scrolled {
	border-bottom-color: var(--color-border);
	box-shadow: 0 4px 20px -12px rgb(46 27 23 / 0.25);
}

.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-height: var(--header-h);
}

.brand {
	display: inline-flex;
	align-items: center;
	flex: none;
	text-decoration: none;
	color: var(--color-text);
}

.brand__logo {
	width: auto;
	height: 60px;
	/* Integra o fundo branco do logotipo atual ao fundo creme do site. */
	mix-blend-mode: multiply;
}

.brand--footer .brand__logo {
	height: 88px;
}

.brand__text {
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 600;
}

@media (min-width: 768px) {
	.brand--header .brand__logo {
		height: 68px;
	}
}

.site-nav__list {
	display: flex;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav__list a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 var(--space-3);
	color: var(--color-text-soft);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color var(--dur-fast) var(--ease);
}

.site-nav__list a::after {
	content: "";
	position: absolute;
	left: var(--space-3);
	right: var(--space-3);
	bottom: 8px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dur) var(--ease);
}

.site-nav__list a:hover {
	color: var(--color-text);
}

.site-nav__list a:hover::after,
.site-nav__list .current-menu-item > a::after,
.site-nav__list .current_page_item > a::after,
.site-nav__list .current_page_parent > a::after {
	transform: scaleX(1);
}

.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a,
.site-nav__list .current-menu-ancestor > a,
.site-nav__list .current_page_parent > a {
	color: var(--color-primary);
}

.site-nav__mobile-extra {
	display: none;
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin-left: auto;
}

.cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: var(--radius-pill);
	background: var(--color-primary);
	color: var(--color-on-primary);
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
}

.nav-toggle__close {
	display: none;
}

.nav-open .nav-toggle__open {
	display: none;
}

.nav-open .nav-toggle__close {
	display: block;
}

@media (min-width: 1024px) {
	.site-nav {
		margin-left: auto;
	}

	.site-header__actions {
		margin-left: var(--space-2);
	}

	.nav-toggle {
		display: none;
	}
}

@media (max-width: 1023.98px) {
	.site-header__cta {
		display: none;
	}

	/* Painel ancorado ao cabeçalho fixo: acompanha aviso do topo e barra de admin. */
	.js .site-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: calc(100dvh - var(--header-h));
		z-index: 40;
		border-top: 1px solid var(--color-border);
		display: flex;
		flex-direction: column;
		gap: var(--space-6);
		padding: var(--space-5) var(--gutter) var(--space-7);
		background: var(--color-bg);
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		transform: translateY(-8px);
		transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility 0s linear var(--dur);
	}

	.js.nav-open .site-nav {
		visibility: visible;
		opacity: 1;
		transform: none;
		transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
	}

	.js.nav-open body {
		overflow: hidden;
	}

	.js .site-nav__list {
		flex-direction: column;
		gap: 0;
	}

	.js .site-nav__list a {
		width: 100%;
		min-height: 60px;
		padding: 0;
		border-bottom: 1px solid var(--color-border);
		font-family: var(--font-display);
		font-size: var(--text-2xl);
		font-weight: 400;
		letter-spacing: -0.01em;
		text-transform: none;
		color: var(--color-text);
	}

	.js .site-nav__list a::after {
		display: none;
	}

	.js .site-nav__mobile-extra {
		display: grid;
		gap: var(--space-5);
		justify-items: start;
	}

	.no-js .site-header__inner {
		flex-wrap: wrap;
	}

	.no-js .site-nav {
		order: 3;
		width: 100%;
		overflow-x: auto;
	}
}

/* Busca */
.search-dialog {
	width: min(640px, calc(100% - 2 * var(--gutter)));
	margin: 12vh auto auto;
	padding: 0;
	border: 0;
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-lg);
}

.search-dialog::backdrop,
.consent-dialog::backdrop,
.lightbox::backdrop {
	background: rgb(46 27 23 / 0.55);
	backdrop-filter: blur(3px);
}

.search-dialog__inner {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-4);
}

.search-form {
	display: flex;
	flex: 1;
	gap: var(--space-2);
}

.search-form__input {
	flex: 1;
	min-width: 0;
	min-height: 50px;
	padding: 0 var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
}

.search-inline {
	max-width: 560px;
	margin: 0 auto var(--space-7);
}

@media (max-width: 480px) {
	.search-form__submit span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.search-form__submit {
		padding: 0 var(--space-4);
	}
}

/* Mídia de apoio quando não há foto */
.media-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--c-rose-100);
	color: var(--c-rose-300);
}

/* Cartões de especialidade */
.feature-card {
	position: relative;
	display: flex;
	flex-direction: column;
	counter-increment: feature;
}

.card-grid--4 {
	counter-reset: feature;
}

.feature-card__media {
	overflow: hidden;
	background: var(--c-rose-100);
}

.feature-card__media img,
.feature-card__media .media-placeholder {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 900ms var(--ease);
}

.feature-card:hover .feature-card__media img {
	transform: scale(1.03);
}

.feature-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--space-2);
	padding-top: var(--space-4);
}

.feature-card__body::before {
	content: counter(feature, decimal-leading-zero);
	color: var(--color-primary);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.14em;
}

.feature-card__title {
	font-size: var(--text-2xl);
	font-weight: 400;
}

.feature-card__link {
	color: inherit;
	text-decoration: none;
}

/* Área clicável do cartão inteiro, mantendo um único link acessível. */
.feature-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.feature-card__body p {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.feature-card__more {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-top: auto;
	padding-top: var(--space-3);
	color: var(--color-text);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 0.4em;
}

.feature-card:hover .feature-card__more .icon {
	transform: translateX(3px);
}

.feature-card__more .icon {
	transition: transform var(--dur-fast) var(--ease);
}

/* Etapas */
.steps {
	display: grid;
	gap: var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: step;
}

@media (min-width: 720px) {
	.steps {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1100px) {
	.steps {
		grid-template-columns: repeat(4, 1fr);
	}
}

.steps__item {
	position: relative;
	padding-top: var(--space-5);
	border-top: 1px solid rgb(255 250 247 / 0.28);
	counter-increment: step;
}

.steps__item::before {
	content: counter(step, decimal-leading-zero);
	display: block;
	margin-bottom: var(--space-4);
	color: var(--color-accent-soft);
	font-family: var(--font-display);
	font-size: var(--text-4xl);
	font-weight: 300;
	line-height: 1;
}

.steps__title {
	margin-bottom: var(--space-2);
	font-size: var(--text-lg);
}

.steps__item p {
	color: var(--color-on-inverse-soft);
	font-size: var(--text-sm);
}

/* Tabela de tamanhos */
.sizes .section-header {
	margin-bottom: var(--space-6);
}

.table-wrap {
	overflow-x: auto;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-sm);
}

.sizes__table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	font-size: var(--text-sm);
}

.sizes__table th,
.sizes__table td {
	padding: var(--space-4) var(--space-5);
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: middle;
}

.sizes__table thead th {
	background: var(--color-surface-strong);
	color: var(--color-text);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sizes__table tbody tr:last-child > * {
	border-bottom: 0;
}

.sizes__table tbody th {
	font-family: var(--font-display);
	font-size: var(--text-lg);
	font-weight: 600;
}

.sizes__from {
	display: block;
	color: var(--color-text-muted);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.sizes__price {
	color: var(--color-primary);
	font-weight: 700;
	white-space: nowrap;
}

.sizes__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	margin-top: var(--space-4);
	color: var(--color-text-soft);
	font-size: var(--text-sm);
	text-align: center;
}

@media (max-width: 599.98px) {
	.table-wrap {
		overflow: visible;
		border: 0;
		background: none;
		box-shadow: none;
	}

	.sizes__table {
		min-width: 0;
	}

	.sizes__table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.sizes__table,
	.sizes__table tbody,
	.sizes__table tr,
	.sizes__table th,
	.sizes__table td {
		display: block;
	}

	.sizes__table tbody {
		display: grid;
		gap: var(--space-3);
	}

	.sizes__table tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--space-2) var(--space-4);
		padding: var(--space-4) var(--space-5);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		background: var(--color-surface);
	}

	.sizes__table th,
	.sizes__table td {
		padding: 0;
		border: 0;
	}

	.sizes__table tbody th {
		grid-column: 1 / -1;
	}

	.sizes__table td::before {
		content: attr(data-label);
		display: block;
		color: var(--color-text-muted);
		font-size: var(--text-xs);
		font-weight: 600;
	}
}

/* Galeria */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.gallery-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--space-4);
	}
}

@media (min-width: 1024px) {
	.gallery-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.gallery-grid__link {
	display: block;
	overflow: hidden;
	border-radius: var(--radius-md);
	background: var(--color-surface-strong);
}

.gallery-grid__link img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	transition: transform 600ms var(--ease);
}

.gallery-grid__link:hover img {
	transform: scale(1.04);
}

.lightbox {
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--c-white);
}

.lightbox[open] {
	display: grid;
	place-items: center;
}

.lightbox__figure {
	display: grid;
	gap: var(--space-3);
	justify-items: center;
	margin: 0;
	padding: var(--space-8) var(--space-4);
}

.lightbox__img {
	max-width: min(92vw, 1100px);
	max-height: 80vh;
	border-radius: var(--radius-md);
	object-fit: contain;
}

.lightbox__caption {
	font-size: var(--text-sm);
}

.lightbox__btn {
	position: fixed;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: var(--radius-pill);
	background: rgb(255 255 255 / 0.14);
	color: var(--c-white);
	transition: background-color var(--dur-fast) var(--ease);
}

.lightbox__btn:hover {
	background: rgb(255 255 255 / 0.28);
}

.lightbox__prev {
	left: var(--space-4);
	top: 50%;
	transform: translateY(-50%);
}

.lightbox__next {
	right: var(--space-4);
	top: 50%;
	transform: translateY(-50%);
}

.lightbox__close {
	top: var(--space-4);
	right: var(--space-4);
}

/* Cartão de artigo */
.post-card {
	position: relative;
	display: flex;
	flex-direction: column;
}

.post-card__media {
	overflow: hidden;
	background: var(--c-rose-100);
}

.post-card__media img,
.post-card__media .media-placeholder {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 900ms var(--ease);
}

.post-card:hover .post-card__media img {
	transform: scale(1.03);
}

.post-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--space-2);
	padding-top: var(--space-4);
}

.post-card__title {
	font-size: var(--text-xl);
	font-weight: 400;
	line-height: var(--leading-snug);
}

.post-card:hover .post-card__title {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.post-card__link {
	color: inherit;
	text-decoration: none;
}

.post-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.post-card__excerpt {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	color: var(--color-text-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Cabeçalho de páginas internas */
.page-hero {
	padding-block: var(--space-7) var(--space-6);
	background: var(--color-bg);
}

.page-hero--compact {
	padding-block: var(--space-5) 0;
}

.page-hero__title {
	max-width: 22ch;
	font-size: var(--text-4xl);
	font-weight: 400;
}

.page-hero--article .page-hero__title {
	max-width: none;
	font-size: var(--text-3xl);
	margin-bottom: var(--space-4);
}

.page-hero__lead {
	max-width: 60ch;
	margin-top: var(--space-4);
	color: var(--color-text-soft);
	font-size: var(--text-lg);
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-2);
	margin: 0 0 var(--space-4);
	padding: 0;
	list-style: none;
	font-size: var(--text-xs);
	font-weight: 500;
}

.breadcrumbs li {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-text-muted);
}

.breadcrumbs a {
	color: var(--color-text-soft);
	text-decoration: none;
}

.breadcrumbs a:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

.breadcrumbs [aria-current] {
	color: var(--color-text);
}

/* Chamada dentro de páginas */
.inline-cta {
	display: grid;
	gap: var(--space-4);
	align-items: center;
	margin-top: var(--space-7);
	padding: var(--space-5) 0;
	border-top: 1px solid var(--color-text);
	border-bottom: var(--hairline);
}

@media (min-width: 720px) {
	.inline-cta {
		grid-template-columns: 1fr auto;
	}
}

.inline-cta__title {
	font-family: var(--font-display);
	font-size: var(--text-2xl);
	font-weight: 400;
}

.inline-cta p:not(.inline-cta__title) {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.cta-panel {
	display: grid;
	gap: var(--space-5);
	align-items: center;
	padding: clamp(2rem, 1rem + 4vw, 4.5rem);
	background: var(--color-inverse);
	color: var(--color-on-inverse);
}

@media (min-width: 860px) {
	.cta-panel {
		grid-template-columns: 1fr auto;
		gap: var(--space-8);
	}
}

.cta-panel__title {
	color: var(--color-on-inverse);
	font-size: var(--text-4xl);
	font-weight: 300;
}

.cta-panel p {
	margin-top: var(--space-3);
	color: var(--color-on-inverse-soft);
	font-size: var(--text-lg);
}

.section--cta {
	padding-top: 0;
}

.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: var(--space-6) 0 0;
	padding: 0;
	list-style: none;
}

.tag-list li {
	padding: var(--space-1) var(--space-3);
	border: var(--hairline);
	color: var(--color-text-soft);
	font-size: var(--text-xs);
	font-weight: 600;
}

.pagination {
	margin-top: var(--space-7);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2);
}

.pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-text);
	font-weight: 600;
	text-decoration: none;
}

.pagination .page-numbers.current {
	border-color: var(--color-text);
	background: var(--color-text);
	color: var(--color-on-inverse);
}

.pagination a.page-numbers:hover {
	border-color: var(--color-text);
}

.empty-state {
	display: grid;
	gap: var(--space-3);
	justify-items: center;
	padding: var(--space-8) var(--space-4);
	text-align: center;
	color: var(--color-text-soft);
}

.empty-state .icon {
	color: var(--color-accent);
}

.empty-state .search-inline {
	width: 100%;
	margin: var(--space-3) 0;
}

.empty-state__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-3);
}

.card {
	padding: clamp(1.25rem, 0.8rem + 2vw, 2.25rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-surface);
}

.card--tint {
	border-color: transparent;
	background: var(--color-surface-strong);
}

.card__title {
	margin-bottom: var(--space-4);
	font-size: var(--text-xl);
}

.check-list,
.contact-list {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.check-list li,
.contact-list li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--space-3);
	font-size: var(--text-sm);
}

.check-list .icon,
.contact-list .icon {
	margin-top: 2px;
	color: var(--color-primary);
}

.contact-list strong {
	display: block;
	color: var(--color-text);
	font-weight: 650;
}

.contact-list span {
	color: var(--color-text-soft);
}

.contact-list a {
	display: inline-block;
	margin-top: 2px;
	font-weight: 600;
}

.pillars {
	display: grid;
	gap: var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 860px) {
	.pillars {
		grid-template-columns: repeat(3, 1fr);
	}
}

.pillar {
	padding-top: var(--space-5);
	border-top: 1px solid var(--color-text);
}

.pillar__icon {
	display: inline-grid;
	margin-bottom: var(--space-4);
	color: var(--color-primary);
}

.pillar h3 {
	margin-bottom: var(--space-2);
	font-size: var(--text-2xl);
	font-weight: 400;
}

.pillar p {
	color: var(--color-text-soft);
}

/* Perguntas frequentes */
.faq {
	border-top: 1px solid var(--color-text);
}

.faq__item {
	border-bottom: var(--hairline);
}

.faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	min-height: 72px;
	padding: var(--space-4) 0;
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 400;
	list-style: none;
	cursor: pointer;
}

.faq__question::-webkit-details-marker {
	display: none;
}

.faq__chevron {
	flex: none;
	color: var(--color-primary);
	transition: transform var(--dur) var(--ease);
}

.faq__item[open] .faq__chevron {
	transform: rotate(180deg);
}

.faq__answer {
	max-width: 62ch;
	padding: 0 0 var(--space-5);
	color: var(--color-text-soft);
}

/* Contato */
.contact-layout {
	display: grid;
	gap: var(--space-5);
	align-items: start;
}

@media (min-width: 960px) {
	.contact-layout {
		grid-template-columns: 7fr 5fr;
		gap: var(--space-6);
	}
}

.contact-layout__aside {
	display: grid;
	gap: var(--space-5);
}

.contact-map {
	margin-top: var(--space-7);
}

.map-embed {
	width: 100%;
	height: clamp(300px, 45vw, 480px);
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--color-surface-strong);
}

.map-embed.is-video {
	height: auto;
	aspect-ratio: 16 / 9;
}

.map-embed iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.map-embed__placeholder {
	display: grid;
	gap: var(--space-3);
	place-content: center;
	justify-items: center;
	height: 100%;
	padding: var(--space-5);
	color: var(--color-text-soft);
	font-size: var(--text-sm);
	text-align: center;
}

.map-embed__placeholder .icon {
	color: var(--color-primary);
}

.map-embed__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2);
}

/* WhatsApp flutuante (ícone oficial da marca) */
.whatsapp-float {
	position: fixed;
	right: var(--space-4);
	bottom: var(--space-4);
	z-index: 45;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	height: 56px;
	padding: 0 14px;
	border-radius: var(--radius-pill);
	background: var(--c-whatsapp);
	color: var(--c-white);
	box-shadow: 0 10px 24px -6px rgb(18 140 76 / 0.5);
	text-decoration: none;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.whatsapp-float:hover {
	color: var(--c-white);
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -6px rgb(18 140 76 / 0.6);
}

.whatsapp-float__label {
	display: none;
	padding-right: var(--space-1);
	color: #0a3d22;
	font-size: var(--text-sm);
	font-weight: 700;
}

@media (min-width: 1024px) {
	.whatsapp-float__label {
		display: inline;
	}
}

.consent-open .whatsapp-float {
	bottom: calc(var(--consent-h, 0px) + var(--space-4));
}

/* Rodapé */
.site-footer {
	margin-top: var(--section-y);
	background: var(--color-inverse);
	color: var(--color-on-inverse-soft);
	font-size: var(--text-sm);
}

.section--cta + .site-footer,
.site-main:has(> .section--cta:last-child) + .site-footer {
	margin-top: 0;
}

.site-footer__grid {
	display: grid;
	gap: var(--space-7);
	padding-block: var(--space-8) var(--space-7);
}

@media (min-width: 720px) {
	.site-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1100px) {
	.site-footer__grid {
		grid-template-columns: 1.2fr 1.3fr 0.9fr 1fr;
	}
}

.site-footer__brand {
	display: grid;
	gap: var(--space-4);
	align-content: start;
}

.site-footer__brand .brand {
	justify-self: start;
	padding: var(--space-2);
	border-radius: var(--radius-pill);
	background: var(--c-cream);
}

.site-footer__title {
	margin-bottom: var(--space-4);
	color: var(--color-on-inverse);
	font-family: var(--font-sans);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-footer a {
	color: var(--color-on-inverse);
}

.site-footer a:hover {
	color: var(--color-accent-soft);
}

.site-footer a.btn,
.site-footer a.btn:hover {
	color: var(--btn-fg);
}

.site-footer .contact-list .icon {
	color: var(--color-accent-soft);
}

.site-footer .contact-list strong {
	color: var(--color-on-inverse);
}

.site-footer .contact-list span {
	color: var(--color-on-inverse-soft);
}

.site-footer :focus-visible {
	outline-color: var(--color-accent-soft);
}

.footer-links {
	display: grid;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links a {
	text-decoration: none;
}

.footer-links a:hover {
	text-decoration: underline;
}

.footer-links--secondary {
	margin-top: var(--space-5);
	padding-top: var(--space-4);
	border-top: 1px solid rgb(255 250 247 / 0.14);
}

.site-footer__order {
	display: grid;
	gap: var(--space-4);
	align-content: start;
	justify-items: start;
}

.site-footer__bottom {
	border-top: 1px solid rgb(255 250 247 / 0.14);
}

.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	padding-block: var(--space-5);
	font-size: var(--text-xs);
	padding-bottom: calc(var(--space-5) + 64px);
}

@media (min-width: 1024px) {
	.site-footer__bottom-inner {
		padding-bottom: var(--space-5);
	}
}

.social-links {
	display: flex;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.social-links a {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid currentColor;
	border-radius: var(--radius-pill);
	transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.site-footer .social-links a:hover {
	background: var(--c-cream);
	color: var(--color-inverse);
}

.social-links--nav a {
	color: var(--color-text);
}

/* Consentimento */
.consent-banner {
	position: fixed;
	right: var(--space-3);
	bottom: var(--space-3);
	left: var(--space-3);
	z-index: 60;
	max-width: 980px;
	margin-inline: auto;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-lg);
}

.consent-banner[hidden] {
	display: none;
}

.consent-banner__inner {
	display: grid;
	gap: var(--space-4);
	padding: var(--space-5);
}

@media (min-width: 900px) {
	.consent-banner__inner {
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: var(--space-6);
	}
}

.consent-banner h2 {
	margin-bottom: var(--space-1);
	font-size: var(--text-lg);
}

.consent-banner p {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.consent-banner__actions,
.consent-dialog__footer {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

@media (max-width: 520px) {
	.consent-banner__inner {
		padding: var(--space-4);
	}

	.consent-banner__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.consent-banner__actions [data-consent-open] {
		grid-column: 1 / -1;
		order: 3;
		min-height: 36px;
		border-color: transparent;
		text-decoration: underline;
	}

	.consent-dialog__footer .btn {
		flex: 1 1 100%;
	}
}

.consent-dialog {
	width: min(560px, calc(100% - 2 * var(--gutter)));
	max-height: calc(100dvh - 2 * var(--space-5));
	padding: 0;
	border: 0;
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	color: var(--color-text);
	box-shadow: var(--shadow-lg);
}

.consent-dialog__form {
	display: grid;
	gap: var(--space-5);
	padding: var(--space-5) var(--space-5) var(--space-5);
}

.consent-dialog__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.consent-dialog__header h2 {
	font-size: var(--text-xl);
}

.consent-options {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	border: 0;
}

.consent-option {
	padding: var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}

.consent-option p {
	margin-top: var(--space-2);
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.switch {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-weight: 650;
	cursor: pointer;
}

.switch input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.switch__ui {
	position: relative;
	flex: none;
	width: 44px;
	height: 26px;
	border-radius: var(--radius-pill);
	background: var(--color-border-strong);
	transition: background-color var(--dur-fast) var(--ease);
}

.switch__ui::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--c-white);
	box-shadow: var(--shadow-sm);
	transition: transform var(--dur-fast) var(--ease);
}

.switch input:checked + .switch__ui {
	background: var(--color-primary);
}

.switch input:checked + .switch__ui::after {
	transform: translateX(18px);
}

.switch input:disabled + .switch__ui {
	opacity: 0.6;
}

.switch input:focus-visible + .switch__ui {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}

/* 6. Seções --------------------------------------------------------------- */

.hero {
	position: relative;
	padding-block: var(--space-7) var(--space-8);
	overflow: hidden;
	background: var(--color-bg);
}

.hero__grid {
	display: grid;
	gap: var(--space-7);
	align-items: center;
}

@media (min-width: 960px) {
	.hero__grid {
		grid-template-columns: 7fr 5fr;
		gap: var(--space-8);
	}
}

.hero__title {
	font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.75rem);
	font-weight: 350;
	line-height: 1.05;
	letter-spacing: -0.025em;
}

.hero__text {
	max-width: 54ch;
	margin-top: var(--space-5);
	color: var(--color-text-soft);
	font-size: var(--text-lg);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-top: var(--space-6);
}

@media (max-width: 480px) {
	.hero__actions .btn {
		width: 100%;
	}
}

.hero__highlights {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-6);
	margin: var(--space-7) 0 0;
	padding: var(--space-5) 0 0;
	border-top: var(--hairline);
	list-style: none;
	color: var(--color-text-soft);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hero__highlights li {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.hero__highlights .icon {
	color: var(--color-primary);
}

.hero__media {
	position: relative;
	max-width: 520px;
	justify-self: center;
	width: 100%;
}

.hero__media::before {
	content: "";
	position: absolute;
	inset: 20px -20px -20px 20px;
	z-index: 0;
	border: 1px solid var(--c-rose-300);
}

.hero__image,
.hero__media .media-placeholder {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.hero__badge {
	margin: 0;
	position: absolute;
	left: -24px;
	bottom: 40px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-3) var(--space-4);
	background: var(--color-inverse);
	color: var(--color-on-inverse);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hero__badge .icon {
	color: var(--color-accent-soft) !important;
}

@media (max-width: 600px) {
	.hero__badge {
		left: 0;
		bottom: 20px;
	}

	.hero__media::before {
		inset: 12px -8px -12px 8px;
	}
}

.hero__badge .icon {
	color: var(--color-primary);
}

/* 7. Conteúdo (prose) ------------------------------------------------------ */

.prose {
	color: var(--color-text-soft);
	font-size: var(--text-base);
}

.prose > * + * {
	margin-top: var(--space-4);
}

.prose h2,
.prose h3,
.prose h4 {
	color: var(--color-text);
}

.prose h2 {
	margin-top: var(--space-7);
	font-size: var(--text-2xl);
}

.prose h3 {
	margin-top: var(--space-6);
	font-size: var(--text-xl);
}

.prose h4 {
	margin-top: var(--space-5);
	font-size: var(--text-lg);
}

.prose h2 + *,
.prose h3 + *,
.prose h4 + * {
	margin-top: var(--space-3);
}

.prose strong {
	color: var(--color-text);
	font-weight: 650;
}

.prose ul,
.prose ol {
	padding-left: 1.25em;
}

.prose li + li {
	margin-top: var(--space-2);
}

.prose li::marker {
	color: var(--color-primary);
}

.prose blockquote {
	margin-inline: 0;
	padding: var(--space-4) var(--space-5);
	border-left: 3px solid var(--color-accent);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	background: var(--color-surface-tint);
}

.prose img {
	border-radius: var(--radius-md);
}

.prose .aligncenter,
.prose img.aligncenter {
	margin-inline: auto;
}

.prose .alignleft {
	float: left;
	margin: 0 var(--space-5) var(--space-4) 0;
}

.prose .alignright {
	float: right;
	margin: 0 0 var(--space-4) var(--space-5);
}

@media (max-width: 600px) {
	.prose .alignleft,
	.prose .alignright {
		float: none;
		margin: 0 auto;
	}
}

.prose figure {
	margin-inline: 0;
}

.prose figcaption,
.prose .wp-caption-text {
	margin-top: var(--space-2);
	color: var(--color-text-muted);
	font-size: var(--text-xs);
	text-align: center;
}

.prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--text-sm);
}

.prose th,
.prose td {
	padding: var(--space-3);
	border-bottom: 1px solid var(--color-border);
	text-align: left;
}

.prose iframe {
	width: 100%;
	border: 0;
	border-radius: var(--radius-md);
}

.prose .map-embed {
	margin-block: var(--space-5);
}

.prose .maxbutton,
.prose a.btn {
	text-decoration: none;
}

.prose .content-cta,
.prose p:has(> a.maxbutton) {
	text-align: center;
}

.prose a.btn {
	white-space: normal;
	padding-block: var(--space-2);
}

.prose .mb-text {
	all: unset;
}

.entry-cover {
	margin: 0 0 var(--space-6);
}

.entry-cover img {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	border-radius: var(--radius-lg);
}

.clearfix::after,
.entry-content::after {
	content: "";
	display: table;
	clear: both;
}

/* 8. Formulários ----------------------------------------------------------- */

.lead-form__title {
	margin-bottom: var(--space-5);
	font-size: var(--text-2xl);
}

.form-grid {
	display: grid;
	gap: var(--space-5);
}

@media (min-width: 640px) {
	.form-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.field--full {
		grid-column: 1 / -1;
	}
}

.field {
	display: grid;
	gap: var(--space-2);
	align-content: start;
}

.field label {
	color: var(--color-text);
	font-weight: 650;
}

.field__optional {
	color: var(--color-text-muted);
	font-weight: 500;
}

.field__hint {
	color: var(--color-text-muted);
	font-size: var(--text-sm);
}

.field__error {
	color: var(--c-error);
	font-size: var(--text-sm);
	font-weight: 650;
}

.field input:not([type="checkbox"]),
.field select,
.field textarea {
	width: 100%;
	min-height: 52px;
	padding: var(--space-3) var(--space-4);
	border: 1.5px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-text);
	transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.field select {
	appearance: none;
	padding-right: var(--space-7);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235a3a32' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}

.field textarea {
	min-height: 120px;
	resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
	border-color: var(--color-text);
	outline: 3px solid var(--c-rose-200);
	outline-offset: 0;
}

.field.has-error input,
.field.has-error select,
.field.has-error textarea {
	border-color: var(--c-error);
	border-width: 2px;
}

.field.has-error {
	padding-left: var(--space-4);
	border-left: 4px solid var(--c-error);
}

.check {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--space-3);
	align-items: start;
	font-size: var(--text-sm);
	font-weight: 500 !important;
	cursor: pointer;
}

.check input {
	width: 24px;
	height: 24px;
	margin: 0;
	accent-color: var(--color-primary);
}

.lead-form__actions {
	display: grid;
	gap: var(--space-3);
	justify-items: start;
	margin-top: var(--space-6);
}

.lead-form__alt {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
}

.hp-field {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.form-status:focus {
	outline: none;
}

.alert {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--space-3);
	align-items: start;
	margin-bottom: var(--space-5);
	padding: var(--space-4) var(--space-5);
	border-radius: var(--radius-md);
	font-weight: 550;
}

.alert .btn {
	grid-column: 1 / -1;
	justify-self: start;
}

.alert:not(:has(> .icon)) {
	grid-template-columns: 1fr;
}

.alert--success {
	background: var(--c-success-bg);
	color: var(--c-success);
}

.alert--error {
	background: var(--c-error-bg);
	color: var(--c-error);
}

/* 9. WooCommerce ------------------------------------------------------------ */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
	margin: 0;
	padding: 0;
}

@media (min-width: 560px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 var(--space-5);
	float: none !important;
	border-bottom: var(--hairline);
	text-align: left;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0 0 var(--space-4) !important;
	aspect-ratio: 1;
	object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 !important;
	font-family: var(--font-display);
	font-size: var(--text-2xl) !important;
	font-weight: 400;
	color: var(--color-text);
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: var(--space-2) 0 0 !important;
	padding: 0;
	color: var(--color-primary) !important;
	font-size: var(--text-base) !important;
	font-weight: 700;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.woocommerce ul.products li.product .product-card__cta,
.woocommerce ul.products li.product .button {
	position: relative;
	z-index: 1;
	align-self: flex-start;
	margin: var(--space-4) 0 0;
}

.price-consult {
	color: var(--color-text-soft);
	font-size: var(--text-sm);
	font-weight: 600;
}

.woocommerce div.product {
	display: grid;
	gap: var(--space-7);
}

@media (min-width: 900px) {
	.woocommerce div.product {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}

	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .upsells,
	.woocommerce div.product .product-sizes {
		grid-column: 1 / -1;
	}
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

.woocommerce div.product div.images img {
	border-radius: var(--radius-lg);
}

.woocommerce div.product .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--space-2);
	margin-top: var(--space-3) !important;
}

.woocommerce div.product .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
}

.woocommerce div.product .flex-control-thumbs img {
	border-radius: var(--radius-sm);
}

.woocommerce div.product .product_title {
	font-size: var(--text-4xl);
	font-weight: 400;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: var(--space-3) 0 var(--space-5);
	color: var(--color-primary);
	font-size: var(--text-xl);
	font-weight: 700;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--color-text-soft);
}

.woocommerce div.product .woocommerce-product-details__short-description h3 {
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: 600;
}

.product-order {
	margin-top: var(--space-5);
}

.product-order__cta {
	width: 100%;
}

@media (min-width: 560px) {
	.product-order__cta {
		width: auto;
	}
}

.product-notice {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin-top: var(--space-4);
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-md);
	background: var(--color-surface-strong);
	color: var(--color-text-soft);
	font-size: var(--text-sm);
	font-weight: 550;
}

.product-notice .icon {
	flex: none;
	color: var(--color-primary);
}

.woocommerce div.product .product_meta {
	margin-top: var(--space-5);
	color: var(--color-text-muted);
	font-size: var(--text-xs);
}

.woocommerce div.product .product_meta > span {
	display: block;
}

.woocommerce div.product .woocommerce-tabs {
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--space-2);
	margin: 0 0 var(--space-5) !important;
	padding: 0 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--radius-sm) !important;
	background: var(--color-surface-strong) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: var(--space-2) var(--space-4) !important;
	color: var(--color-text) !important;
	font-weight: 600 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--color-text) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--color-on-inverse) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: var(--container-narrow);
	color: var(--color-text-soft);
}

.woocommerce div.product .woocommerce-tabs .panel > * + * {
	margin-top: var(--space-4);
}

.woocommerce div.product .woocommerce-tabs .panel h2:first-child {
	display: none;
}

.woocommerce div.product .woocommerce-tabs .panel blockquote {
	margin: var(--space-4) 0;
	padding: 0;
}

.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	margin-bottom: var(--space-5);
	font-size: var(--text-2xl);
}

.woocommerce .woocommerce-ordering select {
	min-height: 44px;
	padding: 0 var(--space-7) 0 var(--space-4);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-sm);
	background-color: var(--color-surface);
}

.woocommerce .woocommerce-ordering {
	margin-bottom: var(--space-5) !important;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--color-primary) !important;
	border-radius: var(--radius-md);
	background: var(--color-surface-tint) !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--color-primary) !important;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	min-height: 44px;
	padding: 0 var(--space-5) !important;
	border-radius: var(--radius-sm) !important;
	background: var(--color-primary) !important;
	color: var(--color-on-primary) !important;
	font-weight: 650 !important;
	line-height: 44px !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--color-primary-hover) !important;
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
}

/* 10. Utilitários e acessibilidade ----------------------------------------- */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: var(--space-2);
	left: var(--space-2);
	z-index: 100;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-sm);
	background: var(--color-inverse);
	color: var(--color-on-inverse);
	font-weight: 700;
	transform: translateY(-200%);
}

.skip-link:focus {
	transform: none;
	color: var(--color-on-inverse);
}

.no-js .js-only {
	display: none !important;
}

.icon {
	flex: none;
}

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

@media (forced-colors: active) {
	.btn,
	.feature-card,
	.post-card,
	.faq__item {
		border: 1px solid CanvasText;
	}
}

@media print {
	.site-header,
	.site-footer,
	.notice-bar,
	.whatsapp-float,
	.consent-banner,
	.inline-cta {
		display: none !important;
	}
}
