/*
Theme Name: Do Campo
Theme URI: https://docampo.179.236.82.123.sslip.io
Author: Micas DSG
Description: Tema da loja oficial Do Campo, feito a partir do Figma aprovado. Tema de blocos com WooCommerce.
Version: 1.0.0
Requires at least: 7.0
Requires PHP: 8.1
Text Domain: docampo
*/

/* ==========================================================================
   Tokens (Figma: Semantic Claro/Escuro). Cores só por variável.
   ========================================================================== */
:root {
	color-scheme: light;
	--bg: #f5f0e8; --bg-subtle: #efe8dc; --surface: #faf7f2; --surface-hover: #fdfbf8; --media: #ebe2d4;
	--fill: #152e2b0a; --fill-hover: #152e2b12; --fill-active: #152e2b14;
	--glass: #f5f0e8b8;
	--border: #152e2b1f; --border-hover: #152e2b38; --border-strong: #152e2b73;
	--text: #152e2b; --text-muted: #4a5a56; --text-subtle: #5f6b67; --text-disabled: #9aa3a0;
	--accent: #152e2b; --accent-text: #1f3f3b;
	--btn-bg: #152e2b; --btn-bg-hover: #1f3f3b; --btn-text: #f5f0e8; --btn2-bg: #152e2b0d;
	--danger: #b42318; --danger-bg: #b4231814; --focus: #2c534e;

	--font-titulo: Unbounded, system-ui, sans-serif;
	--font-texto: Geist, system-ui, -apple-system, "Segoe UI", sans-serif;
	--t-h1-size: 64px; --t-h1-lh: 68px;
	--t-h1p-size: 48px; --t-h1p-lh: 52px;
	--t-h2-size: 48px; --t-h2-lh: 52px;
	--t-h3-size: 32px; --t-h3-lh: 40px;
	--t-h4-size: 24px; --t-h4-lh: 32px;
	--t-h5-size: 20px; --t-h5-lh: 28px;
	--t-lead-size: 18px; --t-lead-lh: 28px;

	--space-32: 32px; --space-48: 48px; --space-64: 64px; --space-80: 80px;
	--sec-pad: clamp(72px, 11svh, 112px);
	--page-margin: 80px;
	--card-r: 20px; --card-pad: 24px; --media-inset: 8px;
	--r-in: calc(var(--card-r) - var(--media-inset));
	--hdr-top: 32px; --hdr-h: 64px;
	--sticky-top: calc(var(--hdr-top) + var(--hdr-h) + 32px);

	--ease: cubic-bezier(.25, .46, .45, .94);
	--ease-out: cubic-bezier(.165, .84, .44, 1);
	--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--focus);
}

.is-escuro {
	color-scheme: dark;
	--bg: #152e2b; --bg-subtle: #0e1f1d; --surface: #183330; --surface-hover: #1c3936; --media: #1f3f3b;
	--fill: #ffffff0d; --fill-hover: #ffffff14; --fill-active: #ffffff1a;
	--glass: #0e1f1d8c;
	--border: #ffffff1f; --border-hover: #ffffff33; --border-strong: #ffffff73;
	--text: #f5f0e8; --text-muted: #c7cdc4; --text-subtle: #a3b2ad; --text-disabled: #6c807b;
	--accent: #b2e67a; --accent-text: #b2e67a;
	--btn-bg: #f5f0e8; --btn-bg-hover: #ffffff; --btn-text: #152e2b; --btn2-bg: #ffffff0f;
	--danger: #f97066; --danger-bg: #f970661f; --focus: #b2e67a;
	background-color: var(--bg);
	color: var(--text);
}

@media (max-width: 1279px) { :root { --page-margin: 40px; } }
@media (max-width: 1024px) {
	:root {
		--t-h1-size: 56px; --t-h1-lh: 60px; --t-h1p-size: 40px; --t-h1p-lh: 44px;
		--t-h2-size: 40px; --t-h2-lh: 44px; --t-h3-size: 28px; --t-h3-lh: 36px;
		--space-48: 40px; --space-64: 56px; --space-80: 64px;
		--sec-pad: 80px; --card-r: 16px; --hdr-top: 24px; --hdr-h: 56px;
	}
}
@media (max-width: 640px) {
	:root {
		--t-h1-size: 40px; --t-h1-lh: 44px; --t-h1p-size: 32px; --t-h1p-lh: 36px;
		--t-h2-size: 32px; --t-h2-lh: 36px; --t-h3-size: 24px; --t-h3-lh: 32px;
		--t-h4-size: 20px; --t-h4-lh: 28px; --t-h5-size: 18px; --t-h5-lh: 24px;
		--t-lead-size: 16px; --t-lead-lh: 24px;
		--page-margin: 16px; --space-32: 24px; --space-48: 32px; --space-64: 48px; --space-80: 48px;
		--sec-pad: 64px; --card-pad: 16px; --hdr-top: 16px;
	}
}

/* ==========================================================================
   Base
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr-top) + var(--hdr-h) + 24px); scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
	background: var(--bg); color: var(--text);
}
.wp-site-blocks { overflow-x: clip; }
::selection { background: color-mix(in srgb, var(--accent) 22%, transparent); color: var(--text); }
h1, h2, h3, h4, p, li, dd, dt, blockquote, summary { text-wrap: pretty; }
h1, h2, .dc-painel__titulo { text-wrap: balance; }
img { max-width: 100%; height: auto; }
:focus { outline: none; }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 4px; }
a { color: inherit; transition: color var(--dur, 250ms) var(--ease); }
.has-lead-font-size, .dc-lead { font-size: var(--t-lead-size) !important; line-height: var(--t-lead-lh); }
.dc-apoio, .dc-lead { color: var(--text-muted); }
.dc-sutil { color: var(--text-subtle); }
.dc-eyebrow { font-size: 14px; line-height: 20px; color: var(--text-subtle); margin: 0; }
.is-escuro .dc-eyebrow { color: var(--accent-text); }
.dc-numero { font-variant-numeric: tabular-nums; }
.sr-only, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
main { min-height: 50svh; }

/* Seções: blocos tonais, separadas por espaço. */
.dc-secao { padding-top: var(--sec-pad); padding-bottom: var(--sec-pad); margin-block: 0 !important; }
.wp-site-blocks > main > * , .wp-site-blocks > main { margin-block-start: 0; }
.dc-cabecalho-secao { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: var(--space-48) !important; flex-wrap: wrap; }
.dc-cabecalho-secao h2 { margin: 0; }
.dc-cabecalho-secao p { margin: 16px 0 0; max-width: 560px; }

/* ==========================================================================
   Botões (CTL): pílula, 40/48, hover muda só fundo e borda.
   ========================================================================== */
.wp-element-button, .wp-block-button__link, .wc-block-components-button:not(.is-link), .button, button.single_add_to_cart_button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 40px; padding: 8px 16px; border-radius: 9999px; border: 1px solid transparent;
	background: var(--btn-bg); color: var(--btn-text); font: 500 15px/24px var(--font-texto);
	white-space: nowrap; cursor: pointer; text-decoration: none;
	transition: background-color 250ms var(--ease), border-color 250ms var(--ease), color 250ms var(--ease);
}
.wp-element-button:hover, .wp-block-button__link:hover, .wc-block-components-button:not(.is-link):hover, .button:hover { background: var(--btn-bg-hover); color: var(--btn-text); }
.wp-element-button:active, .wp-block-button__link:active, .wc-block-components-button:active { transform: scale(.98); }
.wp-block-button.is-style-secundario .wp-block-button__link, .dc-btn-secundario {
	background: var(--btn2-bg); color: var(--text); border-color: var(--border);
}
.wp-block-button.is-style-secundario .wp-block-button__link:hover, .dc-btn-secundario:hover { background: var(--fill-hover); border-color: var(--border-hover); color: var(--text); }
.wp-block-button.is-style-lg .wp-block-button__link, .dc-btn-lg { min-height: 48px; padding: 12px 24px; font-size: 16px; }
.wp-block-button__link.has-seta::after, .dc-seta::after {
	content: ""; width: 16px; height: 16px; background: currentColor;
	-webkit-mask: var(--i-seta) center / contain no-repeat; mask: var(--i-seta) center / contain no-repeat;
}
.wp-block-buttons { gap: 12px; }

/* Chips (pílula 32px) */
.dc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dc-chip, .dc-chips a {
	display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px; border-radius: 9999px;
	border: 1px solid var(--border); background: var(--fill); color: var(--text-muted);
	font: 400 14px/20px var(--font-texto); white-space: nowrap; text-decoration: none;
	transition: background-color 250ms var(--ease), border-color 250ms var(--ease), color 250ms var(--ease);
}
.dc-chips a:hover { background: var(--fill-hover); border-color: var(--border-hover); color: var(--text); }
.dc-chips a[aria-current="page"], .dc-chip.is-ativo { background: var(--fill-active); border-color: var(--border-strong); color: var(--text); font-weight: 500; }
.dc-tag { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--fill); font-size: 12px; line-height: 16px; color: var(--text); width: fit-content; }

/* ==========================================================================
   Ícones (traço, sem caixa): máscaras SVG.
   ========================================================================== */
:root {
	--i-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E");
	--i-lixeira: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M5.5 7l1 12a2 2 0 0 0 2 2h7a2 2 0 0 0 2-2l1-12M9 7V4.5A1.5 1.5 0 0 1 10.5 3h3A1.5 1.5 0 0 1 15 4.5V7'/%3E%3C/svg%3E");
	--i-mais: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
	--i-caminhao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v10H2zM13 9h4l4 4v3h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='1.75'/%3E%3Ccircle cx='17' cy='17.5' r='1.75'/%3E%3C/svg%3E");
	--i-cartao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='M3 10h18M7 15h3'/%3E%3C/svg%3E");
	--i-troca: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h15l-3-3M20 16H5l3 3'/%3E%3C/svg%3E");
	--i-conversa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11.5a8 8 0 0 1-11.8 7L4 20l1.4-4A8 8 0 1 1 20 11.5z'/%3E%3C/svg%3E");
	--i-sacola: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E");
	--i-cadeado: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
	--i-regua: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='8' width='20' height='8' rx='1.5'/%3E%3Cpath d='M6 8v3M10 8v4M14 8v3M18 8v4'/%3E%3C/svg%3E");
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.dc-ico::before {
	content: ""; display: block; width: 24px; height: 24px; background: var(--accent-text);
	-webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.dc-ico-caminhao { --ico: var(--i-caminhao); } .dc-ico-cartao { --ico: var(--i-cartao); }
.dc-ico-troca { --ico: var(--i-troca); } .dc-ico-conversa { --ico: var(--i-conversa); }
.dc-ico-check { --ico: var(--i-check); } .dc-ico-regua { --ico: var(--i-regua); }
.dc-ico-sm::before { width: 16px; height: 16px; }
.dc-ico-lg::before { width: 32px; height: 32px; }

/* ==========================================================================
   Header (NAV): pílula fixa flutuando, nunca some.
   ========================================================================== */
.dc-header-wrap { position: fixed; inset: var(--hdr-top) 0 auto; z-index: 100; pointer-events: none; margin: 0 !important; padding: 0 !important; }
.dc-header {
	pointer-events: auto; position: relative;
	width: min(1280px, 100% - 2 * var(--page-margin)); height: var(--hdr-h); margin: 0 auto !important;
	display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px;
	padding: 0 8px 0 24px !important; border-radius: 9999px;
	background: var(--glass); border: 1px solid var(--border);
	-webkit-backdrop-filter: blur(24px) saturate(180%); backdrop-filter: blur(24px) saturate(180%);
	transition: width 700ms var(--ease-out), background-color 400ms var(--ease), border-color 400ms var(--ease);
}
/* Sobre a hero, o JS liga a largura à rolagem: 90vw (faixa da hero) até a largura do conteúdo. */
.dc-header.is-acompanha { transition: background-color 400ms var(--ease), border-color 400ms var(--ease); }
.dc-header.is-escuro { background: var(--glass); }
.dc-logo { display: flex; align-items: center; margin: 0 !important; }
.dc-logo a { display: block; line-height: 0; }
.dc-logo img { width: 132px; height: auto; }
.dc-logo .dc-logo-bege { display: none; }
.dc-header.is-escuro .dc-logo .dc-logo-verde { display: none; }
.dc-header.is-escuro .dc-logo .dc-logo-bege { display: block; }
.dc-nav { margin: 0 !important; }
.dc-nav .wp-block-navigation__container { gap: 32px; }
.dc-nav .wp-block-navigation-item__content { font: 400 14px/20px var(--font-texto); color: var(--text-muted); padding: 8px 0; }
.dc-nav .wp-block-navigation-item__content:hover, .dc-nav .current-menu-item > a { color: var(--text); }
.dc-acoes { display: flex !important; justify-content: flex-end; align-items: center; gap: 4px !important; margin: 0 !important; }
.dc-acoes > * { margin: 0 !important; }
.dc-acoes .wp-block-woocommerce-customer-account a,
.dc-acoes .wp-block-search__button {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0;
	border-radius: 9999px; border: 0; background: transparent; color: var(--text);
	transition: background-color 250ms var(--ease);
}
.dc-acoes .wp-block-woocommerce-customer-account a:hover, .dc-acoes .wp-block-search__button:hover { background: var(--fill-hover); }
.dc-acoes .wp-block-woocommerce-customer-account svg, .dc-acoes .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.dc-acoes .wp-block-search { margin: 0; }
.dc-acoes .wp-block-search__inside-wrapper { border: 0; padding: 0; background: none; }
.dc-acoes .wp-block-search__input { border-radius: 9999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); height: 40px; padding: 0 16px; font-size: 16px; }
.dc-acoes .wp-block-search.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0; padding: 0; border: 0; }

/* Sacola (mini-cart do WooCommerce) em pílula "Sacola  2" */
.wc-block-mini-cart__button {
	display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 12px 0 16px !important;
	border-radius: 9999px; border: 1px solid var(--border-hover) !important; background: var(--btn2-bg) !important;
	color: var(--text) !important; font: 500 15px/24px var(--font-texto);
	transition: background-color 250ms var(--ease), border-color 250ms var(--ease);
}
.wc-block-mini-cart__button:hover { background: var(--fill-hover) !important; border-color: var(--border-strong) !important; }
.wc-block-mini-cart__button::after { content: "Sacola"; order: 2; }
.wc-block-mini-cart__quantity-badge { display: contents; }
.wc-block-mini-cart__icon { order: 1; width: 18px; height: 18px; }
.wc-block-mini-cart__badge {
	order: 3; position: static !important; transform: none !important; min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 9999px; background: var(--btn-bg) !important; color: var(--btn-text) !important; border: 0 !important;
	font: 500 12px/22px var(--font-texto); font-variant-numeric: tabular-nums; margin-left: 4px;
}
.wc-block-mini-cart__button { flex-direction: row; }
.is-escuro .wc-block-mini-cart__badge { background: var(--accent) !important; color: #152e2b !important; }

/* Menu do celular: abaixo de 1200px vira gaveta. */
.dc-nav-mobile { display: none !important; }
@media (max-width: 1199px) {
	.dc-header { grid-template-columns: 1fr auto; padding-left: 20px !important; }
	.dc-nav { display: none !important; }
	.dc-nav-mobile { display: flex !important; }
	.dc-acoes .wp-block-search { display: none; }
}
@media (max-width: 640px) {
	.wc-block-mini-cart__button::after { content: none; }
	.wc-block-mini-cart__button { width: 40px; height: 40px; padding: 0 !important; justify-content: center; position: relative; }
	.wc-block-mini-cart__badge { position: absolute !important; top: -2px; right: -4px; }
	.dc-acoes .wp-block-woocommerce-customer-account { display: none; }
	.dc-logo img { width: 109px; }
}
.dc-nav-mobile .wp-block-navigation__responsive-container-open { width: 40px; height: 40px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; }
.dc-nav-mobile .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--bg) !important; color: var(--text) !important; padding: 16px var(--page-margin) 32px !important;
}
.dc-nav-mobile .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 88px; align-items: stretch; }
.dc-nav-mobile .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.dc-nav-mobile .is-menu-open .wp-block-navigation-item { width: 100%; }
.dc-nav-mobile .is-menu-open .wp-block-navigation-item + .wp-block-navigation-item { border-top: 1px solid var(--border); }
.dc-nav-mobile .is-menu-open .wp-block-navigation-item__content { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; padding: 16px 4px !important; width: 100%; color: var(--text); }
.dc-nav-mobile .wp-block-navigation__responsive-container-close { top: 24px; right: calc(var(--page-margin) + 8px); width: 40px; height: 40px; border-radius: 9999px; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; }

/* ==========================================================================
   Hero da Home: carrossel de fotos, tela cheia (HER-01).
   ========================================================================== */
.dc-hero {
	position: relative; min-height: 100svh; display: flex !important; flex-direction: column; justify-content: flex-end;
	padding: calc(var(--hdr-top) + var(--hdr-h) + 48px) 5vw 56px !important; margin: 0 !important; overflow: hidden;
	background: #0e1f1d; color: #f5f0e8;
}
.dc-hero__slides { position: absolute !important; inset: 0; margin: 0 !important; z-index: 0; }
.dc-hero__slides .wp-block-image, .dc-hero__slides figure { position: absolute; inset: 0; margin: 0 !important; opacity: 0; transition: opacity 1200ms var(--ease); }
.dc-hero__slides .wp-block-image.is-ativo, .dc-hero__slides figure.is-ativo { opacity: 1; }
.dc-hero__slides .wp-block-image:first-child { opacity: 1; }
.dc-hero__slides.is-pronto .wp-block-image:first-child:not(.is-ativo) { opacity: 0; }
.dc-hero__slides img { width: 100%; height: 100% !important; object-fit: cover; object-position: center 30%; }
.dc-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(180deg, rgba(14,31,29,.5) 0%, rgba(14,31,29,0) 28%, rgba(14,31,29,.1) 50%, rgba(14,31,29,.86) 100%);
}
.dc-hero__conteudo { position: relative; z-index: 2; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); align-items: end; gap: 48px; max-width: none !important; margin: 0 !important; }
.dc-hero__conteudo > * { margin: 0 !important; }
.dc-hero h1 { color: #f5f0e8; max-width: 820px; margin: 12px 0 0 !important; }
.dc-hero .dc-eyebrow { color: #f5f0e8cc; }
.dc-hero__apoio p { color: #f5f0e8d9; margin: 0 0 24px; }
.dc-hero .wp-block-button__link { background: #f5f0e8; color: #152e2b; }
.dc-hero .wp-block-button__link:hover { background: #ffffff; color: #152e2b; }
.dc-hero__pontos { position: relative; z-index: 2; display: flex; gap: 0; margin-top: 23px; }
.dc-hero__pontos button { display: flex; align-items: center; justify-content: flex-start; width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; transition: width 400ms var(--ease-out); } /* área de toque 24×24 (CTL-09) */
.dc-hero__pontos button[aria-current="true"] { width: 42px; }
.dc-hero__pontos button::before { content: ""; width: 6px; height: 6px; border-radius: 9999px; background: #f5f0e873; transition: width 400ms var(--ease-out), background-color 400ms var(--ease); }
.dc-hero__pontos button[aria-current="true"]::before { width: 24px; background: #f5f0e8; }
@media (max-width: 1024px) {
	.dc-hero { padding-inline: var(--page-margin) !important; }
	.dc-hero__conteudo { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 640px) {
	.dc-hero { padding-bottom: 32px !important; }
	.dc-hero__apoio p { margin-bottom: 16px; }
	.dc-hero .wp-block-buttons, .dc-hero .wp-block-button, .dc-hero .wp-block-button__link { width: 100%; }
}

/* Abertura com foto (Quem somos) */
.dc-abertura-foto { position: relative; min-height: 100svh; display: flex !important; flex-direction: column; justify-content: flex-end; padding: calc(var(--hdr-top) + var(--hdr-h) + 48px) 5vw 56px !important; margin: 0 !important; overflow: hidden; color: #f5f0e8; background: #0e1f1d; }
.dc-abertura-foto > .wp-block-image { position: absolute !important; inset: 0; margin: 0 !important; z-index: 0; }
.dc-abertura-foto > .wp-block-image img { width: 100%; height: 100% !important; object-fit: cover; object-position: center 34%; }
.dc-abertura-foto::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(14,31,29,.5) 0%, rgba(14,31,29,0) 30%, rgba(14,31,29,.1) 50%, rgba(14,31,29,.88) 100%); }
.dc-abertura-foto .dc-hero__conteudo { z-index: 2; }
.dc-abertura-foto h1 { color: #f5f0e8; }
.dc-abertura-foto .dc-eyebrow { color: #f5f0e8cc; }
.dc-abertura-foto p { color: #f5f0e8d9; }
@media (max-width: 1024px) { .dc-abertura-foto { padding-inline: var(--page-margin) !important; } }

/* Abertura curta das páginas internas (HER-02) */
.dc-abertura { padding-top: calc(var(--hdr-top) + var(--hdr-h) + 48px) !important; padding-bottom: var(--space-48) !important; margin: 0 !important; }
.dc-abertura__linha { display: grid !important; grid-template-columns: 1fr minmax(0, 420px); align-items: end; gap: 48px; margin-top: var(--space-32) !important; }
.dc-abertura__linha > * { margin: 0 !important; }
.dc-abertura h1 { margin: 0; }
@media (max-width: 1024px) { .dc-abertura__linha { grid-template-columns: 1fr; gap: 16px; } }

/* Caminho (breadcrumb) */
.woocommerce-breadcrumb, .dc-caminho { font-size: 14px; line-height: 20px; color: var(--text-subtle); margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.woocommerce-breadcrumb a, .dc-caminho a { color: var(--text-subtle); }
.woocommerce-breadcrumb a:hover, .dc-caminho a:hover { color: var(--text); }
.woocommerce-breadcrumb .breadcrumb-separator, .dc-caminho .sep { width: 12px; height: 12px; display: inline-block; background: currentColor; font-size: 0; -webkit-mask: var(--i-chevron) center / contain no-repeat; mask: var(--i-chevron) center / contain no-repeat; }
.dc-caminho [aria-current] { color: var(--text); }

/* ==========================================================================
   Cards (CRD): quase da cor do fundo, raio 20, hover só fundo e borda.
   ========================================================================== */
.dc-card {
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-r); padding: var(--card-pad);
	transition: background-color 400ms var(--ease), border-color 400ms var(--ease);
}
.dc-card:hover { border-color: var(--border-hover); }
a.dc-card:hover, .dc-card.is-link:hover { background: var(--surface-hover); }
.dc-card-midia { padding: var(--media-inset) !important; }
.dc-card-midia .wp-block-image, .dc-card-midia figure { margin: 0 !important; border-radius: var(--r-in); overflow: hidden; background: var(--media); }
.dc-card-midia img { display: block; width: 100%; height: 100% !important; object-fit: cover; object-position: top; transition: transform 900ms var(--ease-out); }

/* Grade de produtos (Product Collection) */
.wc-block-product-template { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px !important; margin: 0 !important; padding: 0 !important; list-style: none; }
.wc-block-product-template .wc-block-product { width: auto !important; }
.wc-block-product-template .wc-block-product {
	position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-r);
	padding: var(--media-inset) var(--media-inset) var(--card-pad) !important; margin: 0 !important;
	display: flex; flex-direction: column; gap: 4px; text-align: left;
	transition: background-color 400ms var(--ease), border-color 400ms var(--ease);
}
.wc-block-product-template .wc-block-product:hover { background: var(--surface-hover); border-color: var(--border-hover); }
.wc-block-product .wc-block-components-product-image { margin: 0 0 16px !important; border-radius: var(--r-in); overflow: hidden; background: var(--media); aspect-ratio: 4 / 5; }
.wc-block-product .wc-block-components-product-image a, .wc-block-product .wc-block-components-product-image img { display: block; width: 100%; height: 100% !important; object-fit: cover; object-position: top; border-radius: 0; }
.wc-block-product .wc-block-components-product-image img { transition: transform 900ms var(--ease-out); }
.wc-block-product .wp-block-post-title { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto) !important; letter-spacing: -0.005em; margin: 0 16px !important; padding: 0 !important; }
.wc-block-product .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* card inteiro clicável */
.wc-block-product .wc-block-components-product-price { margin: 0 !important; }
.wc-block-product .wp-block-woocommerce-product-price { margin: 0 16px !important; font-size: 14px !important; line-height: 20px; color: var(--text-muted); text-align: left !important; }
.wc-block-product .wc-block-components-product-sale-badge { position: absolute; top: 16px; right: 16px; z-index: 2; }
.wc-block-components-product-sale-badge { border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); color: var(--text); font: 400 12px/16px var(--font-texto); padding: 4px 10px; text-transform: none; letter-spacing: 0; }
@media (hover: hover) {
	.dc-card:hover img, .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.05); }
}
@media (max-width: 1024px) {
	.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.wc-block-product-template { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--page-margin)) !important; padding: 0 var(--page-margin) 8px !important; scrollbar-width: none; gap: 16px !important; }
	.wc-block-product-template .wc-block-product { flex: 0 0 72%; scroll-snap-align: start; }
}

/* Bento da Loja: primeiro produto grande (SEC-06). */
.dc-loja-grade .wc-block-product-template { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; }
.dc-loja-grade .wc-block-product-template > .wc-block-product:first-child { grid-column: span 2; grid-row: span 2; }
.dc-loja-grade .wc-block-product-template > .wc-block-product:first-child .wc-block-components-product-image { aspect-ratio: auto; flex: 1; }
.dc-loja-grade .wc-block-product-template > .wc-block-product:first-child .wp-block-post-title { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-texto) !important; letter-spacing: -0.01em; }
@media (max-width: 1024px) {
	.dc-loja-grade .wc-block-product-template { grid-template-columns: repeat(2, 1fr) !important; }
	.dc-loja-grade .wc-block-product-template > .wc-block-product:first-child { grid-row: auto; }
	.dc-loja-grade .wc-block-product-template > .wc-block-product:first-child .wc-block-components-product-image { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
	.dc-loja-grade .wc-block-product-template { display: grid !important; grid-template-columns: 1fr 1fr !important; overflow: visible; margin-inline: 0 !important; padding: 0 !important; }
	.dc-loja-grade .wc-block-product-template .wc-block-product { flex: none; }
}
.dc-filtros { display: flex !important; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 24px !important; flex-wrap: wrap; }
.dc-filtros .woocommerce-result-count, .dc-filtros .wc-block-product-results-count { font-size: 14px; color: var(--text-subtle); margin: 0; }
.dc-filtros-dir { display: flex !important; align-items: center; gap: 16px; }
.woocommerce-ordering select, .wc-block-catalog-sorting select {
	height: 32px; border-radius: 9999px; border: 1px solid var(--border); background: var(--fill); color: var(--text);
	font: 400 14px/20px var(--font-texto); padding: 0 32px 0 12px;
}
@media (max-width: 640px) {
	.dc-filtros .dc-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--page-margin)); padding: 0 var(--page-margin); scrollbar-width: none; width: calc(100% + 2 * var(--page-margin)); }
}

/* ==========================================================================
   Home: destaque do chapéu
   ========================================================================== */
.dc-destaque { display: grid !important; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
.dc-destaque > * { margin: 0 !important; }
.dc-destaque__midia { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
.dc-destaque__midia > * { margin: 0 !important; }
.dc-destaque__midia .dc-foto-principal { grid-column: 1 / -1; aspect-ratio: 612 / 500; }
.dc-destaque__midia .dc-foto-detalhe { aspect-ratio: 281 / 156; }
.dc-destaque__selo { background: var(--bg-subtle); border-radius: var(--r-in); padding: 20px !important; display: flex !important; flex-direction: column; justify-content: flex-end; gap: 4px; margin: 0 !important; }
.dc-destaque__selo p { margin: 0; }
.dc-destaque__selo p:first-child { font-weight: 500; font-size: 14px; }
.dc-destaque__selo p:last-child { font-size: 14px; color: var(--text-muted); }
.dc-destaque__texto { padding-left: 56px !important; display: flex !important; flex-direction: column; gap: 32px; }
.dc-destaque__texto > * { margin: 0 !important; }
.dc-destaque__texto h2 { margin: 16px 0 !important; }
.dc-preco { display: block; font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-titulo); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.dc-preco del { font-size: .6em; color: var(--text-subtle); }
.dc-preco ins { text-decoration: none; }
.dc-condicoes { font-size: 14px; line-height: 20px; color: var(--text-muted); margin: 4px 0 0; }
@media (max-width: 1024px) {
	.dc-destaque { grid-template-columns: 1fr; gap: 40px; }
	.dc-destaque__texto { padding-left: 0 !important; }
}
@media (max-width: 640px) {
	.dc-destaque__texto .wp-block-buttons { flex-direction: column; }
	.dc-destaque__texto .wp-block-button, .dc-destaque__texto .wp-block-button__link { width: 100%; }
}

/* Home: quem é o Luciano. Frase que acende com a rolagem (MOV-05) e pilares com foto. */
.dc-manifesto { margin-bottom: var(--space-64) !important; }
.dc-manifesto__titulo h2 { margin: 12px 0 0; }
.dc-manifesto__frase { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; color: var(--text); max-width: 960px; margin: var(--space-48) 0 0; text-wrap: pretty; }
.dc-manifesto__frase .p { transition: color 250ms var(--ease); }
.dc-manifesto.is-lendo .dc-manifesto__frase .p { color: var(--text-disabled); }
.dc-manifesto.is-lendo .dc-manifesto__frase .p.is-aceso { color: var(--text); }
.dc-pilares-fotos { list-style: none; margin: 0 auto var(--space-48) !important; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dc-pilares-fotos > li { margin: 0; display: flex; flex-direction: column; }
.dc-pilares-fotos figure { aspect-ratio: 4 / 3; margin: 0 !important; }
.dc-pilares-fotos img { object-position: center 30%; }
.dc-pilares-fotos__texto { padding: 16px 16px 12px; }
.dc-pilares-fotos .n { font-size: 14px; line-height: 20px; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.dc-pilares-fotos h3 { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-texto); letter-spacing: -0.01em; margin: 8px 0; }
.dc-pilares-fotos p { margin: 0; color: var(--text-muted); }
@media (max-width: 1024px) {
	.dc-pilares-fotos { grid-template-columns: 1fr; }
	.dc-pilares-fotos figure { aspect-ratio: 16 / 10; }
}
@media (max-width: 640px) {
	.dc-manifesto__frase { font: 400 var(--t-lead-size)/var(--t-lead-lh) var(--font-texto); letter-spacing: 0; color: var(--text-muted); margin-top: 16px; }
	.dc-pilares-fotos__texto { padding: 8px 8px 8px; }
}

/* Home: benefícios da compra (células com borda compartilhada) */

/* Painel de chamada (CTA final, SEC-08) */
.dc-painel { border-radius: var(--card-r); padding: var(--space-48) !important; display: flex !important; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.dc-painel > * { margin: 0 !important; }
.dc-painel h2 { margin: 0 0 12px !important; }
.dc-painel p { margin: 0; color: var(--text-muted); }
@media (max-width: 640px) {
	.dc-painel { padding: 32px 16px !important; }
	.dc-painel .wp-block-buttons { width: 100%; flex-direction: column; }
	.dc-painel .wp-block-button, .dc-painel .wp-block-button__link { width: 100%; }
}

/* ==========================================================================
   Páginas de conteúdo: índice lateral fixo + texto
   ========================================================================== */
.dc-conteudo { display: grid !important; grid-template-columns: 240px minmax(0, 1fr); gap: 64px; align-items: start; }
.dc-conteudo > * { margin: 0 !important; }
.dc-indice { position: sticky; top: var(--sticky-top); font-size: 14px; line-height: 20px; }
.dc-indice p { color: var(--text-subtle); margin: 0 0 12px; }
.dc-indice ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.dc-indice a { display: block; padding: 6px 0; color: var(--text-muted); }
.dc-indice a:hover, .dc-indice a.is-ativo { color: var(--text); }
.dc-texto { max-width: 820px; }
.dc-texto > h2 { font-size: var(--t-h3-size); line-height: var(--t-h3-lh); letter-spacing: -0.015em; margin: var(--space-64) 0 24px; }
.dc-texto > h2:first-child { margin-top: 0; }
.dc-texto h3 { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); letter-spacing: -0.005em; margin: 32px 0 8px; }
.dc-texto p, .dc-texto li { color: var(--text-muted); max-width: 680px; }
@media (max-width: 1024px) {
	.dc-conteudo { grid-template-columns: 1fr; gap: 32px; }
	.dc-indice { position: static; }
	.dc-indice ul { flex-direction: row; flex-wrap: wrap; gap: 8px; }
	.dc-indice a { height: 32px; padding: 0 12px; border-radius: 9999px; border: 1px solid var(--border); background: var(--fill); display: inline-flex; align-items: center; }
}

/* Perguntas (FAQ): core/details */
.wp-block-details { border-top: 1px solid var(--border); padding: 16px 0; margin: 0 !important; }
.wp-block-details summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px;
	font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); letter-spacing: -0.005em; color: var(--text);
	transition: color 250ms var(--ease);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; flex: none; width: 16px; height: 16px; background: var(--text-subtle);
	-webkit-mask: var(--i-mais) center / contain no-repeat; mask: var(--i-mais) center / contain no-repeat;
	transition: transform 250ms var(--ease);
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details summary:hover { color: var(--text-muted); }
.wp-block-details > :not(summary) { margin: 12px 0 0; color: var(--text-muted); max-width: 680px; }
.wp-block-details[open] > :not(summary) { animation: dcFaq 250ms var(--ease) both; }
@keyframes dcFaq { from { opacity: 0; transform: translateY(6px); } }
.dc-texto .wp-block-details + h2, .dc-texto .wp-block-details:last-child { border-bottom: 0; }

/* Tabela de medidas */
.dc-tabela table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; font-size: 14px; font-variant-numeric: tabular-nums; }
.dc-tabela th, .dc-tabela td { padding: 12px 16px; text-align: left; border: 0; }
.dc-tabela th { background: var(--bg-subtle); font-weight: 500; color: var(--text); }
.dc-tabela td { background: var(--surface); color: var(--text-muted); }
.dc-tabela tr + tr > * { border-top: 1px solid var(--border); }
.dc-tabela th + th, .dc-tabela td + td, .dc-tabela th + td { border-left: 1px solid var(--border); }
.dc-tabela { overflow-x: auto; margin: 24px 0 !important; }

/* Quem somos: capítulos com a foto presa ao lado (só ≥1025px) */
.dc-capitulos { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 0 80px; align-items: start; }
.dc-capitulos__fotos { position: sticky; top: var(--sticky-top); height: min(calc(100svh - var(--sticky-top) - 32px), 760px); display: grid !important; margin: 0 !important; }
.dc-capitulos__fotos figure { grid-area: 1 / 1; height: 100%; opacity: 0; transition: opacity 800ms var(--ease-out); }
.dc-capitulos__fotos figure.is-ativo { opacity: 1; }
.dc-capitulos__fotos img, .dc-capitulo__foto img { object-position: center 30%; }
.dc-capitulos__lista { list-style: none; margin: 0; padding: 0; }
.dc-capitulo { min-height: 64svh; display: flex; flex-direction: column; justify-content: center; color: var(--text); transition: color 400ms var(--ease); }
.dc-capitulo .n { font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; color: var(--accent-text); transition: color 400ms var(--ease); }
.dc-capitulo h3 { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; color: inherit; margin: 12px 0 16px; }
.dc-capitulo p { font-size: var(--t-lead-size); line-height: var(--t-lead-lh); color: inherit; margin: 0; max-width: 440px; }
.dc-capitulo__foto { display: none !important; }
.js .dc-capitulo:not(.is-ativo), .js .dc-capitulo:not(.is-ativo) .n { color: var(--text-subtle); }

/* Valores: lista numerada, divisória só entre itens (LST-01) */
.dc-valores-lista { list-style: none; margin: 0; padding: 0; }
.dc-valores-lista li { display: grid; grid-template-columns: 80px minmax(0, 4fr) minmax(0, 6fr); gap: 24px; align-items: baseline; padding: 32px 0; }
.dc-valores-lista li:first-child { padding-top: 0; }
.dc-valores-lista li:last-child { padding-bottom: 0; }
.dc-valores-lista li + li { border-top: 1px solid var(--border); }
.dc-valores-lista .n { font-size: 14px; line-height: 20px; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.dc-valores-lista h3 { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; margin: 0; }
.dc-valores-lista p { margin: 0; color: var(--text-muted); font-size: var(--t-lead-size); line-height: var(--t-lead-lh); max-width: 560px; }

/* Galeria: no desktop a rolagem vertical anda o trilho na horizontal (SEC-05) */
.dc-galeria__trilho { display: flex; gap: 24px; }
.dc-galeria__trilho > .dc-card { flex: 0 0 auto; height: min(calc(100svh - var(--sticky-top) - 64px), 560px); aspect-ratio: 4 / 5; margin: 0 !important; }
.dc-galeria__trilho figure, .dc-capitulo__foto figure { height: 100%; }
.dc-galeria.is-presa .dc-galeria__palco { position: sticky; top: var(--sticky-top); }
.dc-galeria.is-presa .dc-galeria__trilho { will-change: transform; }

@media (max-width: 1024px) {
	.dc-capitulos { display: block; }
	.dc-capitulos__fotos { display: none !important; }
	.dc-capitulos__lista { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-48) 24px; }
	.dc-capitulo { min-height: 0; justify-content: flex-start; }
	.js .dc-capitulo:not(.is-ativo) { color: var(--text); }
	.js .dc-capitulo:not(.is-ativo) .n { color: var(--accent-text); }
	.dc-capitulo__foto { display: block !important; aspect-ratio: 4 / 5; margin: 0 0 24px !important; }
	.dc-valores-lista li { grid-template-columns: 48px minmax(0, 1fr) minmax(0, 1fr); }
	.dc-galeria__trilho { overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--page-margin); margin-inline: calc(-1 * var(--page-margin)); padding: 0 var(--page-margin); scrollbar-width: none; }
	.dc-galeria__trilho::-webkit-scrollbar { display: none; }
	.dc-galeria__trilho > .dc-card { height: auto; width: 40%; scroll-snap-align: start; }
}
@media (max-width: 640px) {
	.dc-capitulos__lista { grid-template-columns: 1fr; }
	.dc-valores-lista li { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
	.dc-galeria__trilho { gap: 16px; }
	.dc-galeria__trilho > .dc-card { width: 72%; }
}

/* ==========================================================================
   Produto
   ========================================================================== */
.dc-produto { display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; margin-top: 32px !important; }
.dc-produto > * { margin: 0 !important; }
.dc-produto__compra { position: sticky; top: var(--sticky-top); display: flex !important; flex-direction: column; gap: 24px; }
.dc-produto__compra > * { margin: 0 !important; }
.dc-produto__compra h1 { font-size: var(--t-h1p-size) !important; line-height: var(--t-h1p-lh) !important; letter-spacing: -0.025em; margin: 12px 0 0 !important; }
.dc-produto__compra .wc-block-components-product-price { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-titulo) !important; letter-spacing: -0.01em; color: var(--text); font-variant-numeric: tabular-nums; }
.dc-produto__compra .wp-block-post-excerpt__excerpt { color: var(--text-muted); margin: 0; }
@media (max-width: 1024px) {
	.dc-produto { grid-template-columns: 1fr; gap: 32px; }
	.dc-produto__compra { position: static; }
}

/* Galeria clássica: miniaturas à esquerda */
.woocommerce-product-gallery { position: relative; display: flex; flex-direction: row-reverse; gap: 16px; margin: 0 !important; opacity: 1 !important; }
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__wrapper { flex: 1; border-radius: var(--card-r); overflow: hidden; background: var(--surface); border: 1px solid var(--border); padding: var(--media-inset); }
.woocommerce-product-gallery__image img { border-radius: var(--r-in); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; }
.woocommerce-product-gallery .flex-control-thumbs { flex: 0 0 72px; display: flex; flex-direction: column; gap: 8px; list-style: none; margin: 0; padding: 0; }
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img { width: 72px; height: 90px; object-fit: cover; border-radius: 12px; border: 1px solid var(--border); padding: 3px; background: var(--surface); cursor: pointer; opacity: 1; transition: border-color 250ms var(--ease); }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: var(--border-strong); }
.woocommerce-product-gallery__trigger { position: absolute; top: 20px; right: 20px; z-index: 3; width: 40px; height: 40px; border-radius: 9999px; background: var(--surface); border: 1px solid var(--border); font-size: 0; display: flex; align-items: center; justify-content: center; }
.woocommerce-product-gallery__trigger::before { content: ""; width: 16px; height: 16px; background: var(--text); -webkit-mask: var(--i-mais) center / contain no-repeat; mask: var(--i-mais) center / contain no-repeat; }
.woocommerce-product-gallery__trigger img { display: none; }
@media (max-width: 640px) {
	.woocommerce-product-gallery { flex-direction: column; }
	.woocommerce-product-gallery .flex-control-thumbs { flex-direction: row; flex-basis: auto; }
	.woocommerce-product-gallery .flex-control-thumbs img { width: 56px; height: 70px; }
}

/* Comprar: variações em chips, quantidade e botão */
.wc-block-add-to-cart-with-options, .wp-block-woocommerce-add-to-cart-with-options { display: flex; flex-direction: column; gap: 24px; }
.wc-block-add-to-cart-with-options-variation-selector-attribute, .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute { display: flex; flex-direction: column; gap: 12px; margin: 0 0 20px; }
.wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name, .wc-block-add-to-cart-with-options-variation-selector-attribute-name { font: 500 14px/20px var(--font-texto); color: var(--text); margin: 0; }
.wc-block-product-filter-chips__items { display: flex; flex-wrap: wrap; gap: 8px; }
.wc-block-product-filter-chips__item {
	display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 9999px;
	border: 1px solid var(--border) !important; background: var(--fill) !important; color: var(--text) !important;
	font: 400 14px/20px var(--font-texto); cursor: pointer;
	transition: background-color 250ms var(--ease), border-color 250ms var(--ease);
}
.wc-block-product-filter-chips__item:hover { background: var(--fill-hover) !important; border-color: var(--border-hover) !important; }
.wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--fill-active) !important; border-color: var(--border-strong) !important; font-weight: 500; }
.wc-block-product-filter-chips__item[aria-disabled="true"], .wc-block-product-filter-chips__item:disabled { color: var(--text-disabled) !important; text-decoration: line-through; cursor: not-allowed; }
.wc-block-components-quantity-selector, .quantity {
	display: inline-flex; align-items: center; height: 48px; border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); overflow: hidden;
}
.wc-block-components-quantity-selector input, .quantity input.qty { width: 40px; border: 0; background: transparent; text-align: center; font: 500 16px/24px var(--font-texto); color: var(--text); -moz-appearance: textfield; }
.wc-block-components-quantity-selector button { width: 40px; height: 100%; border: 0; background: transparent; color: var(--text); cursor: pointer; font-size: 18px; }
.wc-block-components-quantity-selector button:hover { background: var(--fill-hover); }
.wc-block-add-to-cart-with-options .wp-block-button__link, .wc-block-add-to-cart-with-options button[type="submit"], .single_add_to_cart_button {
	min-height: 48px !important; padding: 12px 24px !important; font-size: 16px !important; flex: 1;
}
.wc-block-add-to-cart-with-options form, form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Abas de detalhes do produto viram lista sanfonada no visual */
.dc-produto__detalhes { margin-top: 8px !important; }

/* Avisos da loja */
.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-radius: 16px !important; border: 1px solid var(--border) !important; background: var(--surface) !important; color: var(--text) !important; padding: 16px 20px !important; font-size: 14px;
}
.wc-block-components-notice-banner.is-error, .woocommerce-error { border-color: color-mix(in srgb, var(--danger) 40%, transparent) !important; background: var(--danger-bg) !important; }
.wc-block-components-notice-banner > svg { fill: currentColor; background: none !important; }

/* ==========================================================================
   Sacola (gaveta do mini-cart)
   ========================================================================== */
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer { background: var(--surface) !important; color: var(--text); }
.wc-block-components-drawer__screen-overlay { background: rgba(21, 46, 43, .45) !important; }
/* Sacola fechada sai da ordem do teclado (ela fica no HTML com aria-hidden). O atraso deixa a saída animar. */
.wc-block-components-drawer__screen-overlay--is-hidden .wc-block-mini-cart__drawer { visibility: hidden; transition: visibility 0s linear 400ms; }
.wc-block-mini-cart__drawer.wc-block-components-drawer { max-width: 480px; width: 100%; border-radius: 24px 0 0 24px; border-left: 1px solid var(--border); box-shadow: none !important; }
.wc-block-mini-cart__title { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-texto) !important; letter-spacing: -0.01em; margin: 32px 32px 16px !important; mask-image: none !important; }
.wc-block-components-drawer__close { top: 28px !important; right: 28px !important; width: 40px; height: 40px; border-radius: 9999px; border: 1px solid var(--border) !important; background: var(--fill) !important; display: flex; align-items: center; justify-content: center; }
.wc-block-mini-cart__items { padding: 0 32px !important; }
.wc-block-mini-cart__products-table .wc-block-cart-items__row { border-top: 1px solid var(--border); padding: 24px 0 !important; }
.wc-block-mini-cart__products-table .wc-block-cart-items__row:first-child { border-top: 0; padding-top: 8px !important; }
.wc-block-cart-item__image img { border-radius: 12px; background: var(--media); aspect-ratio: 4 / 5; object-fit: cover; }
.wc-block-components-product-name { font: 400 16px/24px var(--font-texto) !important; color: var(--text) !important; text-decoration: none !important; }
.wc-block-components-product-metadata, .wc-block-components-product-details { font-size: 14px; color: var(--text-muted); }
.wc-block-cart-item__remove-link { font-size: 14px !important; color: var(--text-muted) !important; text-decoration: none !important; }
.wc-block-cart-item__remove-link:hover { color: var(--text) !important; }
.wc-block-mini-cart__footer { padding: 24px 32px 32px !important; border-top: 1px solid var(--border); box-shadow: none !important; }
.wc-block-mini-cart__footer-subtotal { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); }
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value { font: 300 24px/32px var(--font-titulo); font-variant-numeric: tabular-nums; }
.wc-block-mini-cart__footer-actions { display: flex !important; flex-direction: column-reverse; gap: 12px !important; }
.wc-block-mini-cart__footer-actions .wc-block-components-button { width: 100%; min-height: 48px; font-size: 16px; }
.wc-block-mini-cart__footer-cart.wc-block-components-button { background: var(--btn2-bg) !important; color: var(--text) !important; border: 1px solid var(--border) !important; }
.wc-block-mini-cart__footer-cart.wc-block-components-button:hover { background: var(--fill-hover) !important; border-color: var(--border-hover) !important; }
.wc-block-components-drawer, .wc-block-components-drawer * { box-shadow: none; }

/* ==========================================================================
   Sacola e checkout (blocos do WooCommerce)
   ========================================================================== */
.dc-checkout-pagina { padding-top: calc(var(--hdr-top) + var(--hdr-h) + 48px) !important; }
.wc-block-cart, .wc-block-checkout { margin-top: 32px !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-checkout__sidebar, .wc-block-cart__sidebar {
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-r); padding: var(--card-pad) !important;
}
.wc-block-components-title.wc-block-components-title { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto) !important; letter-spacing: -0.005em; }
.wc-block-components-checkout-step { border: 0 !important; }
.wc-block-components-checkout-step__heading { margin-bottom: 16px !important; }
.wc-block-components-checkout-step__title { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo) !important; letter-spacing: -0.015em; }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-address-form select {
	min-height: 48px !important; border-radius: 9999px !important; border: 1px solid var(--border-hover) !important; background: var(--surface) !important; color: var(--text) !important; font-size: 16px !important; padding-left: 20px !important; box-shadow: none !important;
}
.wc-block-components-textarea { border-radius: 16px !important; }
.wc-block-components-text-input label, .wc-block-components-combobox label { left: 21px !important; color: var(--text-subtle) !important; }
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus { border-color: var(--border-strong) !important; box-shadow: var(--focus-ring) !important; }
.wc-block-components-text-input.has-error input, .wc-block-components-validation-error { border-color: var(--danger) !important; color: var(--danger); }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option {
	border: 1px solid var(--border) !important; border-radius: 16px !important; background: var(--surface); margin-bottom: 8px !important; box-shadow: none !important;
	transition: border-color 250ms var(--ease), background-color 250ms var(--ease);
}
.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control__option--checked-option-highlighted { border-color: var(--accent) !important; background: color-mix(in srgb, var(--accent) 6%, var(--surface)) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--accent) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--accent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--accent); border-color: var(--accent); }
.wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button { min-height: 48px !important; font-size: 16px !important; width: 100%; }
.wc-block-components-totals-item__label { color: var(--text-muted); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: 300 24px/32px var(--font-titulo); font-variant-numeric: tabular-nums; }
.wc-block-components-order-summary-item__image img { border-radius: 12px; }
.wc-block-components-order-summary-item__quantity { background: var(--btn-bg) !important; color: var(--btn-text) !important; border: 0 !important; box-shadow: none !important; }

/* Sacola tradicional (woocommerce/cart/*.php) */
body .dc-checkout-pagina .woocommerce:has(.dc-sacola) { margin-top: var(--space-48); }
.dc-sacola { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-64); align-items: start; }
.dc-sacola__itens { list-style: none; margin: 0; padding: 0; }
.dc-sacola__item {
	display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: "foto info sub" "foto acoes sub";
	grid-template-rows: auto 1fr; column-gap: 24px; row-gap: 16px; padding: 24px 0;
}
.dc-sacola__item:first-child { padding-top: 0; }
.dc-sacola__item:last-child { padding-bottom: 0; }
.dc-sacola__item + .dc-sacola__item { border-top: 1px solid var(--border); }
.dc-sacola__foto { grid-area: foto; }
.dc-sacola__foto img { display: block; width: 96px; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; border-radius: 12px; background: var(--media); }
.dc-sacola__info { grid-area: info; min-width: 0; }
.dc-sacola__nome { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); letter-spacing: -0.005em; margin: 0; }
.dc-sacola__nome a { color: var(--text); text-decoration: none; transition: color 250ms var(--ease); }
.dc-sacola__nome a:hover { color: var(--text-muted); }
.dc-sacola__info dl.variation { display: flex; flex-wrap: wrap; gap: 0; margin: 4px 0 0; font-size: 14px; line-height: 20px; color: var(--text-muted); }
.dc-sacola__info dl.variation dt, .dc-sacola__info dl.variation dd, .dc-sacola__info dl.variation p { display: inline; margin: 0; font-weight: 400; }
.dc-sacola__info dl.variation dt { margin-right: 4px; }
.dc-sacola__info dl.variation dd:not(:last-child) { margin-right: 16px; }
.dc-sacola__unitario { margin: 4px 0 0 !important; font-size: 14px; line-height: 20px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.dc-sacola__acoes { grid-area: acoes; display: flex; align-items: center; gap: 8px; align-self: end; }
.dc-sacola__subtotal { grid-area: sub; margin: 0 !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dc-qtd { display: inline-flex; align-items: center; height: 40px; box-sizing: border-box; border: 1px solid var(--border-hover); border-radius: 9999px; }
.dc-qtd__botao { width: 36px; height: 38px; padding: 0; border: 0; border-radius: 9999px; background: none; color: var(--text); font: 400 18px/1 var(--font-texto); cursor: pointer; transition: color 250ms var(--ease); }
.dc-qtd__botao:disabled { color: var(--text-disabled); cursor: not-allowed; }
body .woocommerce .dc-qtd input.qty { box-sizing: border-box; border-radius: 0; box-shadow: none; outline-offset: -2px; width: 32px; height: 38px; padding: 0; border: 0; background: none; color: var(--text); font: 400 16px/24px var(--font-texto); font-variant-numeric: tabular-nums; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.dc-qtd input.qty::-webkit-inner-spin-button, .dc-qtd input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.dc-qtd__fixa { padding: 0 16px; font-size: 14px; color: var(--text-muted); }
body .woocommerce a.remove.dc-sacola__remover {
	display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px;
	color: var(--text-muted) !important; background: none !important; font-size: 0; transition: color 250ms var(--ease);
}
body .woocommerce a.remove.dc-sacola__remover::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--i-lixeira) center / contain no-repeat; mask: var(--i-lixeira) center / contain no-repeat; }
body .woocommerce a.remove.dc-sacola__remover:hover { color: var(--text) !important; }
.dc-sacola__atualizar { margin-top: 24px; }
.js .dc-sacola__atualizar { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
body .woocommerce .cart-collaterals .dc-resumo { float: none; width: auto; box-sizing: border-box; }
body .woocommerce .cart-collaterals { width: auto; float: none; }
.dc-resumo { position: sticky; top: var(--sticky-top); background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-r); padding: var(--space-32); }
.dc-resumo__titulo { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto) !important; letter-spacing: -0.005em; margin: 0 0 8px !important; }
body .woocommerce .dc-resumo__tabela { width: 100%; border: 0; border-collapse: collapse; border-spacing: 0; margin: 0; }
body .woocommerce .dc-resumo__tabela th, body .woocommerce .dc-resumo__tabela td { padding: 12px 0; border: 0; background: none; vertical-align: baseline; }
.dc-resumo__tabela th { white-space: nowrap; padding-right: 16px !important; }
.dc-resumo__tabela tr + tr th, .dc-resumo__tabela tr + tr td { border-top: 1px solid var(--border); }
.dc-resumo__tabela th { text-align: left; font-weight: 400; color: var(--text-muted); }
.dc-resumo__tabela td { text-align: right; font-variant-numeric: tabular-nums; }
.dc-resumo__tabela td.dc-resumo__nota { color: var(--text-muted); }
.dc-resumo__tabela .order-total th { font: 500 16px/32px var(--font-texto); color: var(--text); }
body .woocommerce .dc-resumo__tabela .order-total th, body .woocommerce .dc-resumo__tabela .order-total td { vertical-align: middle; }
.dc-resumo__tabela .order-total td { font: 300 24px/32px var(--font-titulo); color: var(--text); }
.dc-resumo__tabela .order-total td strong { font-weight: 300; }
.dc-resumo__tabela .woocommerce-remove-coupon { margin-left: 8px; font-size: 14px; color: var(--text-muted); }
.dc-cupom { margin-top: 8px; border-top: 1px solid var(--border); padding-top: 16px; }
.dc-cupom summary { display: flex; align-items: center; justify-content: space-between; min-height: 24px; font: 500 14px/20px var(--font-texto); color: var(--text); cursor: pointer; list-style: none; transition: color 250ms var(--ease); }
.dc-cupom summary::-webkit-details-marker { display: none; }
.dc-cupom summary::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-chevron) center / contain no-repeat; mask: var(--i-chevron) center / contain no-repeat; transition: transform 250ms var(--ease); }
.dc-cupom[open] summary::after { transform: rotate(180deg); }
.dc-cupom summary:hover { color: var(--text-muted); }
.dc-cupom__campo { display: flex; gap: 8px; margin-top: 12px; }
body .woocommerce .dc-cupom__campo input.input-text { flex: 1; min-width: 0; height: 40px; box-sizing: border-box; padding: 0 16px; border: 1px solid var(--border-hover); border-radius: 9999px; background: var(--surface); color: var(--text); font: 400 16px/24px var(--font-texto); }
body .woocommerce .dc-cupom__campo input.input-text:focus { border-color: var(--border-strong); outline: none; box-shadow: var(--focus-ring); }
body .woocommerce .dc-cupom__campo .button { height: 40px; padding: 0 16px; border: 1px solid var(--border); border-radius: 9999px; background: var(--btn2-bg); color: var(--text); font: 500 15px/24px var(--font-texto); }
body .woocommerce .dc-cupom__campo .button:hover { background: var(--fill-hover); border-color: var(--border-hover); }
.wc-proceed-to-checkout { margin-top: 24px; padding: 0 !important; }
body .woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; min-height: 48px; margin: 0; padding: 12px 24px; border-radius: 9999px; background: var(--btn-bg); color: var(--btn-text); font: 500 16px/24px var(--font-texto); text-decoration: none; }
body .woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: var(--btn-bg-hover); }
body .woocommerce .dc-vazio .return-to-shop { margin: 8px 0 0 !important; }
body .woocommerce .dc-vazio .return-to-shop a { display: inline-flex; align-items: center; min-height: 48px; box-sizing: border-box; padding: 12px 24px; font: 500 16px/24px var(--font-texto); }
@media (max-width: 1024px) {
	.dc-sacola { grid-template-columns: 1fr; gap: var(--space-48); }
	.dc-resumo { position: static; }
}
@media (max-width: 640px) {
	.dc-sacola__item { grid-template-columns: 80px minmax(0, 1fr) auto; grid-template-areas: "foto info info" "foto acoes sub"; column-gap: 16px; }
	.dc-sacola__foto img { width: 80px; }
	.dc-sacola__subtotal { align-self: center; }
	.dc-resumo { padding: var(--card-pad); }
}

/* Header do checkout */
.dc-header-checkout .dc-protegido { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-subtle); justify-self: end; padding-right: 16px; margin: 0; }
.dc-header-checkout .dc-protegido::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-cadeado) center / contain no-repeat; mask: var(--i-cadeado) center / contain no-repeat; }
.dc-header-checkout { grid-template-columns: 1fr 1fr !important; }

/* Pedido confirmado */
.wc-block-order-confirmation-status { padding: 0 !important; }
.wc-block-order-confirmation-status h1 { margin: 16px 0 12px !important; font-size: var(--t-h1p-size); line-height: var(--t-h1p-lh); }
.wc-block-order-confirmation-status h1::before { content: ""; display: block; width: 32px; height: 32px; background: var(--accent-text); margin-bottom: 16px; -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
.wc-block-order-confirmation-summary { border: 1px solid var(--border); border-radius: var(--card-r); background: var(--surface); padding: var(--card-pad); }
.wc-block-order-confirmation-totals table { border-collapse: collapse; width: 100%; }
.wc-block-order-confirmation-totals th, .wc-block-order-confirmation-totals td { border: 0; border-top: 1px solid var(--border); padding: 12px 0; }
.dc-proximos { border: 1px solid var(--border); border-radius: var(--card-r); background: var(--surface); padding: 32px !important; }
.dc-proximos h2 { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto) !important; margin: 0 0 24px !important; letter-spacing: -0.005em; }
.dc-proximos ol { list-style: none; margin: 0; padding: 0; }
.dc-proximos li { position: relative; padding: 0 0 24px 40px; }
.dc-proximos li:last-child { padding-bottom: 0; }
.dc-proximos li::before { content: ""; position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 9999px; border: 1px solid var(--border-strong); box-sizing: border-box; background: var(--surface); }
.dc-proximos li:first-child::before { background: var(--accent); border-color: var(--accent); }
.dc-proximos li::after { content: ""; position: absolute; left: 11.5px; top: 28px; bottom: 4px; width: 1px; background: var(--border-strong); }
.dc-proximos li:last-child::after { display: none; }
.dc-proximos strong { display: block; font-weight: 400; }
.dc-proximos span { font-size: 14px; line-height: 20px; color: var(--text-subtle); }

/* ==========================================================================
   Rodapé (NAV-08)
   ========================================================================== */
.dc-rodape { background: var(--bg-subtle); padding-top: var(--space-80) !important; padding-bottom: 32px !important; margin: 0 !important; }
.dc-rodape__topo { display: grid !important; grid-template-columns: 1fr repeat(3, 224px); gap: 24px; align-items: start; }
.dc-rodape__topo > * { margin: 0 !important; }
.dc-rodape h2 { font: 500 14px/20px var(--font-texto) !important; letter-spacing: 0; margin: 0 0 16px !important; color: var(--text); }
.dc-rodape ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.dc-rodape li a { display: inline-block; padding: 6px 0; font-size: 14px; line-height: 20px; color: var(--text-muted); }
.dc-rodape li a:hover { color: var(--text); }
.dc-rodape__base { display: flex !important; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: var(--space-64) !important; padding-top: 24px; border-top: 1px solid var(--border); font-size: 12px; line-height: 16px; color: var(--text-subtle); }
.dc-rodape__base p { margin: 0; }
.dc-rodape__trecho { white-space: nowrap; }
.dc-rodape__trecho:last-child { white-space: normal; }
@media (max-width: 1024px) { .dc-rodape__topo { grid-template-columns: 1fr 1fr 1fr; } .dc-rodape__topo > :first-child { grid-column: 1 / -1; margin-bottom: 16px !important; } }
@media (max-width: 640px) { .dc-rodape__topo { grid-template-columns: 1fr 1fr; } }

/* 404 */
.dc-404 { min-height: 100svh; display: flex !important; flex-direction: column; justify-content: center; padding-top: calc(var(--hdr-top) + var(--hdr-h) + 48px) !important; }

/* ==========================================================================
   Movimento (MOV-04): uma entrada só, ao rolar. Sem JS, tudo aparece normal.
   ========================================================================== */
.js .dc-revela { opacity: 0; transform: translateY(12px); transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out), background-color 400ms var(--ease), border-color 400ms var(--ease), color 400ms var(--ease); transition-delay: var(--atraso, 0ms), var(--atraso, 0ms), 0ms, 0ms, 0ms; }
.js .dc-revela.is-visivel { opacity: 1; transform: none; }
@media (max-width: 640px) { .js .dc-revela { transform: translateY(8px); } }
@media (hover: none) {
	.dc-card:hover img, .wc-block-product:hover .wc-block-components-product-image img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.js .dc-revela { opacity: 1; transform: none; }
}

/* Mostrar só no desktop / só no celular (RSP-04) */
@media (max-width: 640px) { .only-d { display: none !important; } }
@media (min-width: 641px) { .only-m { display: none !important; } }

/* Complementos de templates */
.dc-titulo-colecao { margin: 0 0 var(--space-48) !important; }
.dc-titulo-card { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto) !important; letter-spacing: -0.005em; margin: 0 0 16px !important; }
.dc-preco-bloco { margin: 0; }
.dc-confirmacao { display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.dc-confirmacao > * { margin: 0 !important; }
.dc-confirmacao__principal { display: flex !important; flex-direction: column; gap: 32px; }
.dc-confirmacao__principal > * { margin: 0 !important; }
.dc-confirmacao__resumo { position: sticky; top: var(--sticky-top); padding: var(--space-32) !important; display: flex !important; flex-direction: column; gap: 32px; }
.dc-confirmacao__resumo > * { margin: 0 !important; }
@media (max-width: 1024px) {
	.dc-confirmacao { grid-template-columns: 1fr; gap: 32px; }
	.dc-confirmacao__resumo { position: static; }
}
.dc-produto-pagina { padding-bottom: 0 !important; }
.dc-produto__compra .wp-block-post-content > * { max-width: 680px; }
.dc-painel__titulo { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; color: var(--text) !important; margin: 0 0 8px !important; }
.dc-texto .dc-painel { margin-top: var(--space-64) !important; max-width: none; }
.dc-texto .dc-painel p { max-width: none; }
.dc-texto > .wp-block-details:has(+ :not(.wp-block-details)), .dc-texto > .wp-block-details:last-child { border-bottom: 1px solid var(--border); }

/* Produto: ajustes finos da área de compra */
.dc-produto .wp-block-woocommerce-product-image-gallery, .dc-produto .woocommerce-product-gallery, .dc-produto .woocommerce-product-gallery__wrapper { width: 100% !important; max-width: none !important; float: none !important; }
.dc-produto .woocommerce-product-gallery__wrapper { margin: 0; }
.dc-produto__compra .wp-block-woocommerce-product-price { margin-top: 16px !important; }
.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute { margin: 0 0 24px !important; }
.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute > .wp-block-group { margin: 0 !important; gap: 12px !important; }
.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options-variation-description,
.dc-produto__compra .wp-block-woocommerce-product-stock-indicator { margin: 0 0 16px !important; font-size: 14px; color: var(--text-muted); }
.dc-produto__compra .wp-block-woocommerce-product-stock-indicator:empty { display: none; }
.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options > form, .dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options { gap: 0; }
.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options .wp-block-group.is-layout-flex { gap: 12px; flex-wrap: nowrap; align-items: stretch; }
.dc-produto__compra .wp-block-woocommerce-product-button { flex: 1; margin: 0 !important; }
.dc-produto__compra .wp-block-woocommerce-product-button .wp-block-button__link { width: 100%; }
.wc-block-components-product-button__button.disabled { opacity: 1; background: var(--fill-active); color: var(--text-muted); cursor: not-allowed; }
.wc-block-components-quantity-selector { width: auto !important; margin: 0 !important; }
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { border: 0 !important; box-shadow: none !important; min-width: 40px; height: 100%; padding: 0; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 40px; opacity: 1; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { color: var(--text-disabled); }
@media (max-width: 640px) {
	.dc-produto__compra .wp-block-woocommerce-add-to-cart-with-options .wp-block-group.is-layout-flex { flex-wrap: wrap; }
	.dc-produto__compra .wp-block-woocommerce-product-button { flex-basis: 100%; }
}

/* Sacola: respiro lateral do rodapé e botão de fechar */
.wc-block-mini-cart__footer { box-sizing: border-box; }
.wc-block-mini-cart__footer-actions .wc-block-components-button { box-sizing: border-box; max-width: 100%; }
.wc-block-components-drawer__close { top: 24px !important; right: 24px !important; color: var(--text) !important; opacity: 1 !important; }
.wc-block-components-drawer__close svg { width: 20px; height: 20px; fill: currentColor; }
.wc-block-mini-cart__title { margin: 24px 88px 16px 32px !important; }
.wc-block-components-quantity-selector { border-radius: 9999px !important; overflow: hidden; }
.wc-block-mini-cart__products-table .wc-block-components-quantity-selector { height: 40px; }
.wc-block-components-totals-item__description { font-size: 14px; line-height: 20px; color: var(--text-muted); margin-top: 4px; }

/* Título da abertura nunca passa de 2 linhas: abaixo de 1280px o apoio desce. */
@media (max-width: 1279px) { .dc-hero__conteudo { grid-template-columns: minmax(0, 1fr); gap: 24px; } .dc-hero__apoio, .dc-hero__conteudo > .dc-lead { max-width: 560px; } }
@media (max-width: 640px) {
	.dc-destaque__midia .dc-foto-detalhe { aspect-ratio: auto; min-height: 140px; }
	.dc-destaque__selo { padding: 16px !important; }
}
@media (max-width: 640px) {
	nav[aria-label="Categorias"] { width: calc(100% + 2 * var(--page-margin)); margin-inline: calc(-1 * var(--page-margin)); }
	.dc-chips { flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--page-margin); scrollbar-width: none; }
	.dc-chips::-webkit-scrollbar { display: none; }
	.dc-filtros .dc-chips { margin: 0; width: auto; }
}
@media (max-width: 640px) {
	.wc-block-product-template:not(.dc-loja-grade *) { flex-wrap: nowrap !important; }
}
@media (max-width: 640px) {
	.wc-block-product-template:not(.dc-loja-grade *) { padding: 0 var(--page-margin) 8px !important; scroll-padding-inline: var(--page-margin); }
}
.dc-vazio { padding: var(--space-48) 0 !important; display: flex !important; flex-direction: column; gap: 16px; align-items: flex-start; }
.dc-vazio > * { margin: 0 !important; }
.dc-vazio .wp-block-buttons { margin-top: 8px !important; }

/* ==========================================================================
   Checkout clássico (compatível com CPF, número e bairro do Brazilian Market)
   ========================================================================== */
.dc-checkout-pagina > * { max-width: var(--wp--style--global--wide-size, 1280px) !important; }
.dc-checkout-pagina > .wp-block-post-title { margin: 0 0 var(--space-48) !important; font-size: var(--t-h1p-size); line-height: var(--t-h1p-lh); letter-spacing: -0.025em; }
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle { margin-bottom: 12px; }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info { display: flex; gap: 8px; align-items: center; margin: 0; }
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none !important; }
.woocommerce-info a, .woocommerce-message a { text-decoration: underline; text-underline-offset: 3px; }
form.checkout_coupon, form.woocommerce-form-login { border: 1px solid var(--border); border-radius: var(--card-r); background: var(--surface); padding: var(--card-pad); margin: 0 0 24px; }

form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0 48px; align-items: start; margin-top: 24px; }
form.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
form.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
form.woocommerce-checkout #order_review_heading, form.woocommerce-checkout #order_review { grid-column: 2; }
#customer_details.col2-set { display: flex; flex-direction: column; gap: var(--space-48); width: 100%; }
#customer_details .col-1, #customer_details .col-2 { width: 100% !important; float: none !important; }
#customer_details::before, #customer_details::after { display: none; }
.woocommerce-checkout h3, #order_review_heading { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; margin: 0 0 24px; }
#ship-to-different-address { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); }
#ship-to-different-address label { display: flex; align-items: center; gap: 12px; cursor: pointer; }

.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, .woocommerce-account-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
.woocommerce-checkout .form-row { grid-column: 1 / -1; margin: 0 !important; padding: 0 !important; width: auto !important; float: none !important; display: flex; flex-direction: column; gap: 8px; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { grid-column: auto; }
.woocommerce-checkout .form-row label { font: 500 14px/20px var(--font-texto); color: var(--text); margin: 0; }
.woocommerce-checkout .form-row label .required { color: var(--danger); text-decoration: none; }
.woocommerce-checkout .form-row label .optional { color: var(--text-subtle); font-weight: 400; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce-checkout .select2-container .select2-selection--single {
	box-sizing: border-box; width: 100%; height: 48px; border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); color: var(--text);
	font: 400 16px/24px var(--font-texto); padding: 0 20px; box-shadow: none; transition: border-color 250ms var(--ease);
}
.woocommerce form textarea.input-text { height: 120px; border-radius: 16px; padding: 12px 20px; resize: vertical; }
.woocommerce form .input-text:hover, .woocommerce form select:hover { border-color: var(--border-strong); }
.woocommerce form .input-text:focus, .woocommerce form select:focus { border-color: var(--border-strong); box-shadow: var(--focus-ring); outline: none; }
.woocommerce form .input-text::placeholder { color: var(--text-subtle); }
.woocommerce-checkout .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce-checkout .select2-container .select2-selection__rendered { padding: 0 !important; line-height: 46px !important; color: var(--text) !important; }
.woocommerce-checkout .select2-container .select2-selection__arrow { height: 46px !important; right: 14px !important; }
.select2-dropdown { border: 1px solid var(--border-hover) !important; border-radius: 16px !important; overflow: hidden; background: var(--surface) !important; }
.select2-results__option--highlighted { background: var(--fill-active) !important; color: var(--text) !important; }
.woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger); }
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--border-hover); }
.woocommerce-checkout .checkbox, .woocommerce-form__label-for-checkbox { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 12px; font-weight: 400 !important; cursor: pointer; }
.woocommerce-checkout input[type="checkbox"], .woocommerce-checkout input[type="radio"] { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--accent); flex: none; }

/* Resumo do pedido: cartão fixo ao lado */
#order_review { position: sticky; top: var(--sticky-top); background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-r); padding: var(--space-32); }
#order_review_heading { margin-top: 0; }
#order_review .shop_table { width: 100%; border: 0; border-collapse: collapse; margin: 0 0 24px; font-size: 14px; }
#order_review .shop_table th, #order_review .shop_table td { border: 0; border-top: 1px solid var(--border); padding: 12px 0; background: none; text-align: left; }
#order_review .shop_table thead th { border-top: 0; padding-top: 0; font-weight: 500; color: var(--text-subtle); }
#order_review .shop_table td:last-child, #order_review .shop_table th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
#order_review .shop_table .product-quantity { color: var(--text-subtle); font-weight: 400; }
#order_review .shop_table .order-total td { font: 300 24px/32px var(--font-titulo); color: var(--text); }
#order_review .shop_table .order-total th { font: 500 16px/32px var(--font-texto); }
#order_review .shop_table dl.variation { margin: 4px 0 0; color: var(--text-subtle); font-size: 12px; }
#order_review .shop_table dl.variation dt, #order_review .shop_table dl.variation dd, #order_review .shop_table dl.variation p { display: inline; margin: 0; }
#payment { background: none !important; border-radius: 0; }
#payment ul.payment_methods { list-style: none; margin: 0 0 24px; padding: 0 !important; border: 0 !important; display: flex; flex-direction: column; gap: 8px; }
#payment ul.payment_methods li { border: 1px solid var(--border); border-radius: 16px; padding: 16px; background: var(--surface); transition: border-color 250ms var(--ease), background-color 250ms var(--ease); }
#payment ul.payment_methods li:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--surface)); }
#payment ul.payment_methods li.woocommerce-notice { border: 0; padding: 0; background: none; font-size: 14px; color: var(--text-muted); }
#payment div.payment_box { background: var(--fill) !important; border-radius: 12px; color: var(--text-muted); font-size: 14px; margin: 12px 0 0 !important; }
#payment div.payment_box::before { display: none !important; }
#payment .place-order { padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 16px; }
.woocommerce-privacy-policy-text p, .woocommerce-terms-and-conditions-wrapper { font-size: 14px; line-height: 20px; color: var(--text-muted); margin: 0; }
#place_order { width: 100%; min-height: 48px; padding: 12px 24px; font-size: 16px; border-radius: 9999px; background: var(--btn-bg); color: var(--btn-text); border: 0; cursor: pointer; transition: background-color 250ms var(--ease); }
#place_order:hover { background: var(--btn-bg-hover); }
.blockUI.blockOverlay { background: var(--bg) !important; opacity: .5 !important; }

@media (max-width: 1024px) {
	form.woocommerce-checkout { grid-template-columns: 1fr; gap: 32px; }
	form.woocommerce-checkout #customer_details, form.woocommerce-checkout #order_review_heading, form.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
	#order_review { position: static; }
}
@media (max-width: 640px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	#order_review { padding: var(--card-pad); }
}

/* Checkout clássico: vence os estilos padrão do WooCommerce (seletores mais fortes) */
body .dc-checkout-pagina .woocommerce { max-width: none; margin: 0; padding: 0; }
body .woocommerce form .form-row .input-text, body .woocommerce form .form-row select, body .woocommerce-page form .form-row .input-text {
	box-sizing: border-box; width: 100%; height: 48px; border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); color: var(--text);
	font: 400 16px/24px var(--font-texto); padding: 0 20px; box-shadow: none; outline: none; transition: border-color 250ms var(--ease);
}
body .woocommerce form .form-row textarea.input-text { height: 120px; border-radius: 16px; padding: 12px 20px; }
body .woocommerce form .form-row .input-text:hover, body .woocommerce form .form-row select:hover { border-color: var(--border-strong); }
body .woocommerce form .form-row .input-text:focus, body .woocommerce form .form-row select:focus { border-color: var(--border-strong); box-shadow: var(--focus-ring); }
body .woocommerce form .form-row.woocommerce-invalid .input-text, body .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger); }
body .woocommerce form .form-row.woocommerce-validated .input-text, body .woocommerce form .form-row.woocommerce-validated select { border-color: var(--border-hover); }
body .woocommerce form .form-row { margin: 0; padding: 0; }
body .woocommerce form .form-row label { line-height: 20px; margin: 0; }
body .woocommerce-checkout #payment ul.payment_methods li { line-height: 24px; }
body .woocommerce-checkout #payment ul.payment_methods li img { vertical-align: middle; max-height: 24px; }
.woocommerce-checkout .woocommerce-billing-fields .form-row#billing_country_field strong { font-weight: 400; height: 48px; display: flex; align-items: center; padding: 0 20px; border: 1px solid var(--border); border-radius: 9999px; background: var(--fill); }
.woocommerce form .woocommerce-input-wrapper { width: 100%; }

/* Menu aberto: o vidro do header não pode prender a gaveta (backdrop-filter cria contêiner para fixed). */
.dc-header:has(.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; }

/* ==========================================================================
   Home: abertura. A foto da hero encolhe com a rolagem até virar a foto do
   card do Chapéu Pantaneiro. Só ≥1025px e sem movimento reduzido (MOV-08);
   fora disso fica a hero com foto parada e o card logo abaixo.
   ========================================================================== */
.dc-vitrine { position: relative; background: #ffffff; }
.dc-vitrine__palco { position: relative; }
.dc-vitrine__heroi { box-sizing: border-box; }
.dc-vitrine .dc-hero__slides picture { display: contents; }
.dc-vitrine__destaque { padding: var(--sec-pad) max(var(--page-margin), (100% - 1280px) / 2); }
.dc-vitrine__tela { display: none; }

.dc-vitrine.is-animado { height: 260svh; }
.dc-vitrine .dc-foto-principal img { object-position: center 30%; }
.dc-vitrine.is-animado .dc-vitrine__palco { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.dc-vitrine.is-animado .dc-vitrine__heroi { position: absolute; inset: 0; z-index: 3; min-height: 0; background: transparent; }
.dc-vitrine.is-pronto .dc-hero__slides { visibility: hidden; }
.dc-vitrine.is-animado .dc-vitrine__tela { display: block; position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.dc-vitrine.is-animado .dc-vitrine__destaque { box-sizing: border-box; height: 100%; display: flex; align-items: center; padding: var(--sticky-top) max(var(--page-margin), (100% - 1280px) / 2) 32px; }
.dc-vitrine.is-animado .dc-destaque { width: 100%; }
.dc-vitrine.is-animado .dc-destaque__midia { height: min(calc(100svh - var(--sticky-top) - 32px), 720px); grid-template-rows: minmax(0, 1fr) 156px; }
.dc-vitrine.is-animado .dc-destaque__midia .dc-foto-principal, .dc-vitrine.is-animado .dc-destaque__midia .dc-foto-detalhe { aspect-ratio: auto; }

/* O card e o texto aparecem quando a foto pousa, com a mesma entrada do site (MOV-04).
   A moldura só esmaece: se ela se mexesse, a foto não encaixaria. */
.dc-vitrine.is-animado .dc-destaque__midia { opacity: 0; transition: opacity 800ms var(--ease-out); }
.dc-vitrine.is-animado .dc-destaque__texto > * { opacity: 0; transform: translateY(12px); transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out); transition-delay: var(--atraso, 0ms); }
.dc-vitrine.is-animado:not(.is-pousado) .dc-destaque__texto { visibility: hidden; }
.dc-vitrine.is-pousado .dc-destaque__midia, .dc-vitrine.is-pousado .dc-destaque__texto > * { opacity: 1; transform: none; }

/* Home: a coleção. Um painel por produto, no mesmo formato do destaque do chapéu;
   no desktop eles se empilham presos ao topo enquanto a página rola (MOV-08). */
.dc-pilha { display: flex; flex-direction: column; gap: 24px; }
.dc-pilha__item { box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0; padding: var(--media-inset) !important; margin: 0 !important; height: min(calc(100svh - var(--sticky-top) - 32px), 640px); background: var(--surface); }
.dc-pilha__midia { display: block; border-radius: var(--r-in); overflow: hidden; background: var(--media); }
.dc-pilha__midia img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 900ms var(--ease-out); }
.dc-pilha__info { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 32px 32px 32px 56px; }
.dc-pilha__info > * { margin: 0; }
.dc-pilha__info .dc-tag { position: absolute; top: 24px; right: 24px; }
.dc-pilha__info h3 { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; }
.dc-pilha__info h3 a { color: inherit; text-decoration: none; }
@media (hover: hover) { .dc-pilha__item:hover .dc-pilha__midia img { transform: scale(1.05); } }
@media (min-width: 1025px) {
	.dc-pilha__item { position: sticky; top: calc(var(--sticky-top) + var(--i) * 12px); }
}
@media (max-width: 1024px) {
	.dc-pilha__item { grid-template-columns: 1fr; height: auto; }
	.dc-pilha__midia { aspect-ratio: 4 / 3; }
	.dc-pilha__info { padding: 24px 16px 16px; gap: 20px; }
	.dc-pilha__info .dc-tag { top: 24px; right: 16px; }
}
@media (max-width: 640px) {
	.dc-pilha { gap: 16px; }
	.dc-pilha__info { padding: 20px 8px 8px; }
	.dc-pilha__info .wp-block-button, .dc-pilha__info .wp-block-button__link { width: 100%; }
}

/* Voo da foto: canvas fixo acima do conteúdo e abaixo da lente e do texto da abertura. */
/* Na abertura com voo, a lente e o texto somem no começo da rolagem (como na Home). */
.dc-abertura-foto::after, .dc-abertura-foto .dc-hero__conteudo { opacity: var(--voo-op, 1); }
.dc-abertura-foto:has(~ * [data-voo-destino]) { background: color-mix(in srgb, #0e1f1d calc(var(--voo-op, 1) * 100%), transparent); }
.dc-voo { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; visibility: hidden; }

/* Paralaxe leve nas fotos (só ≥1025px, ligada pelo JS). Usa translate/scale, o zoom do hover continua no transform. */
.dc-paralaxe img { scale: 1.1; translate: 0 var(--py, 0px); }

/* Informações do produto em caixas (referência: configurador da Apple). Cada informação na sua caixa,
   tamanhos em pílulas; tom de preenchimento, sem borda. Raio 12 dentro do card de 20 (FOR-02). */
.dc-caixas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 !important; }
.dc-caixa { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: var(--r-in); background: var(--fill); }
.dc-caixa--larga { grid-column: 1 / -1; gap: 12px; }
.dc-caixa .dc-ico { margin-bottom: 8px; }
.dc-caixa__rotulo { font-size: 14px; line-height: 20px; color: var(--text-subtle); }
.dc-caixa__valor { white-space: nowrap; }
.dc-tamanhos { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.dc-tamanhos li { display: flex; }
.dc-tamanhos a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 32px; padding: 0 12px; border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); color: var(--text); text-decoration: none; font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; transition: background-color 250ms var(--ease), border-color 250ms var(--ease); }
.dc-tamanhos a:hover { background: var(--surface-hover); border-color: var(--border-strong); }
.dc-tamanhos a:active { transform: scale(0.98); }
@media (max-width: 640px) { .dc-tamanhos a { height: 40px; min-width: 48px; } }
.dc-pilha__topo > * { margin: 0; }
.dc-pilha__n { display: block; font-size: 14px; line-height: 20px; color: var(--text-subtle); font-variant-numeric: tabular-nums; margin-bottom: 8px !important; }
.dc-pilha__info .dc-preco-bloco { margin-top: -8px; }
.dc-pilha__info { gap: 32px; }
/* Pouco espaço (coluna estreita no desktop menor ou celular): as caixas viram linhas. */
.dc-pilha__info, .dc-destaque__texto { container-type: inline-size; }
@container (max-width: 430px) {
	.dc-caixas { grid-template-columns: 1fr; }
	.dc-caixa:not(.dc-caixa--larga) { flex-direction: row; align-items: center; gap: 12px; padding: 12px 16px; }
	.dc-caixa:not(.dc-caixa--larga) .dc-ico { margin: 0; }
	.dc-caixa:not(.dc-caixa--larga) .dc-caixa__valor { margin-left: auto; }
}
@media (max-width: 640px) { .dc-pilha__info { gap: 24px; } }

/* Home: como funciona a compra. Foto grande + quatro cards com a condição em destaque (bento, SEC-06). */
.dc-compra { display: grid; grid-template-columns: minmax(0, 5fr) repeat(2, minmax(0, 3.5fr)); grid-template-rows: repeat(2, 240px); gap: 24px; }
.dc-compra > * { margin: 0 !important; }
/* Card escuro (o único de outra cor no bento): o caminho do pedido em três etapas.
   No desktop a linha enche e cada etapa alcançada acende com a rolagem (MOV-06). */
.dc-compra__trilho { grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding: 32px !important; color: var(--text); container-type: inline-size; }
.dc-compra__trilho h3 { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; margin: 0; }
@container (max-width: 440px) { .dc-compra__trilho h3 { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-texto); letter-spacing: -0.01em; } }
.dc-etapas { list-style: none; margin: 0; padding: 0; }
.dc-etapas li { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 0 0 32px 40px; }
.dc-etapas li:last-child { padding-bottom: 0; }
.dc-etapas li::before { content: ""; position: absolute; left: 0; top: 2px; width: 24px; height: 24px; box-sizing: border-box; border-radius: 9999px; border: 1px solid var(--border-strong); background: var(--surface); transition: background-color 400ms var(--ease), border-color 400ms var(--ease); }
.dc-etapas li::after { content: ""; position: absolute; left: 11.5px; top: 30px; bottom: 4px; width: 1px; background: linear-gradient(var(--accent) calc(var(--enche, 0) * 100%), var(--border-strong) 0); }
.dc-etapas li:last-child::after { display: none; }
.dc-etapas__quando { font-size: 14px; line-height: 20px; color: var(--text-subtle); }
.dc-etapas__oque { font: 400 var(--t-h5-size)/var(--t-h5-lh) var(--font-texto); letter-spacing: -0.005em; color: var(--text-muted); transition: color 400ms var(--ease); }
.dc-etapas li.is-aceso::before { background: var(--accent); border-color: var(--accent); }
.dc-etapas li.is-aceso .dc-etapas__oque { color: var(--text); }
.dc-compra__item { display: flex; flex-direction: column; justify-content: space-between; }
.dc-compra__item h3 { font: 300 var(--t-h3-size)/var(--t-h3-lh) var(--font-titulo); letter-spacing: -0.015em; white-space: nowrap; margin: 0 0 8px; }
.dc-compra__item p { margin: 0; color: var(--text-muted); }
.dc-compra__item { container-type: inline-size; }
@container (max-width: 299px) { .dc-compra__item h3 { font: 400 var(--t-h4-size)/var(--t-h4-lh) var(--font-texto); letter-spacing: -0.01em; } }
@media (max-width: 1024px) {
	.dc-compra { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
	.dc-compra__trilho { grid-column: 1 / -1; grid-row: auto; }
	.dc-compra__item { min-height: 200px; }
}
@media (max-width: 640px) {
	.dc-compra { grid-template-columns: 1fr; gap: 16px; }
	.dc-compra__trilho { padding: 24px 16px !important; gap: 32px; }
	.dc-compra__item { min-height: 0; gap: 32px; }
}

/* Duas seções seguidas no mesmo tom: o respiro não dobra (ex.: galeria → CTA em Quem somos). */
.dc-secao:not(.is-escuro) + .dc-secao:not(.is-escuro):not([class*="dc-abertura"]) { padding-top: 0; }

/* ==========================================================================
   Entrar e criar conta (Minha conta sem login)
   ========================================================================== */
.dc-pagina-entrar .dc-abertura { display: none !important; }
.dc-pagina-entrar .dc-pagina-texto { padding: 0 !important; }
.dc-pagina-entrar .dc-pagina-texto > *, .dc-pagina-entrar .dc-texto, .dc-pagina-entrar .dc-texto > .woocommerce { max-width: none !important; margin: 0 !important; }
.dc-entrar {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px;
	min-height: 100svh; box-sizing: border-box;
	width: min(1280px, 100% - 2 * var(--page-margin)); margin-inline: auto !important;
	padding: calc(var(--hdr-top) + var(--hdr-h) + 24px) 0 24px;
}
.dc-entrar__foto { position: relative; border-radius: var(--card-r); overflow: hidden; background: var(--media); min-height: 480px; }
.dc-entrar__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.dc-entrar__lado { display: flex; align-items: center; justify-content: center; padding: 24px; }
.dc-entrar__caixa { width: 100%; max-width: 440px; display: flex; flex-direction: column; }
.dc-entrar__titulo { font: 300 var(--t-h1p-size)/var(--t-h1p-lh) var(--font-titulo); letter-spacing: -0.025em; margin: 0 0 16px !important; text-wrap: balance; }
.dc-entrar__apoio { color: var(--text-muted); margin: 0 0 var(--space-32) !important; text-wrap: pretty; }
.dc-entrar .woocommerce-notices-wrapper:not(:empty), .dc-entrar__caixa > .woocommerce-error { margin: 0 0 24px !important; }

/* Botão do Google: secundário, com a marca do Google como o Google pede */
.dc-google {
	display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 48px; box-sizing: border-box;
	border-radius: 9999px; border: 1px solid var(--border-hover); background: var(--surface); color: var(--text);
	font: 500 16px/24px var(--font-texto); text-decoration: none; white-space: nowrap;
	transition: background-color 250ms var(--ease), border-color 250ms var(--ease);
}
.dc-google:hover { background: var(--surface-hover); border-color: var(--border-strong); color: var(--text); }
.dc-google:active { transform: scale(.98); }
.dc-google:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.dc-google svg { width: 20px; height: 20px; flex: none; }
.dc-entrar__ou { margin: 24px 0 !important; text-align: center; font-size: 14px; line-height: 20px; color: var(--text-subtle); }

/* Abas Entrar / Criar conta (controle segmentado: trilho 40, item 32) */
.dc-entrar__abas { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; height: 40px; padding: 4px; box-sizing: border-box; border-radius: 9999px; background: var(--fill-active); margin-bottom: 24px; }
.dc-entrar__abas[hidden] { display: none; }
.dc-entrar__abas button {
	height: 32px; border: 1px solid transparent; border-radius: 9999px; background: transparent; color: var(--text-muted); cursor: pointer;
	font: 500 14px/20px var(--font-texto); transition: background-color 250ms var(--ease), color 250ms var(--ease), border-color 250ms var(--ease);
}
.dc-entrar__abas button:hover { color: var(--text); }
.dc-entrar__abas button[aria-selected="true"] { background: var(--surface); border-color: var(--border); color: var(--text); }
.dc-entrar__abas button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.dc-entrar__painel[hidden] { display: none; }
.dc-entrar__painel + .dc-entrar__painel { margin-top: var(--space-48); }
.js .dc-entrar__painel + .dc-entrar__painel { margin-top: 0; }

.dc-entrar form.woocommerce-form-login, .dc-entrar form.woocommerce-form-register { border: 0; background: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 20px; }
.dc-entrar .form-row { margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 8px; }
.dc-entrar .form-row label { font: 500 14px/20px var(--font-texto); color: var(--text); margin: 0; }
.dc-entrar .password-input { position: relative; display: block; }
.dc-entrar .password-input .input-text { padding-right: 56px; }
.dc-entrar .show-password-input { position: absolute; right: 4px; top: 4px; width: 40px; height: 40px; border: 0; border-radius: 9999px; background: transparent; color: var(--text-muted); cursor: pointer; display: grid; place-items: center; }
.dc-entrar .show-password-input:hover { background: var(--fill-hover); color: var(--text); }
.dc-entrar .show-password-input:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.dc-entrar__linha { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.dc-entrar__linha .woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center !important; gap: 12px; min-height: 24px; font: 400 14px/20px var(--font-texto); color: var(--text-muted); cursor: pointer; margin: 0; }
.dc-entrar__linha input[type="checkbox"] { width: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
.dc-entrar__link { display: inline-flex; align-items: center; min-height: 24px; font: 500 14px/20px var(--font-texto); color: var(--text); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--border-strong); transition: text-decoration-color 250ms var(--ease); }
.dc-entrar__link:hover { text-decoration-color: currentColor; }
.dc-entrar__enviar { width: 100%; min-height: 48px; margin-top: 4px; font-size: 16px !important; }
.dc-entrar__nota, .dc-entrar .woocommerce-privacy-policy-text p { margin: 0 !important; font-size: 14px; line-height: 20px; color: var(--text-muted); text-wrap: pretty; }
.dc-entrar .woocommerce-privacy-policy-text a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1024px) {
	.dc-entrar { grid-template-columns: 1fr; min-height: 0; }
	.dc-entrar__foto { display: none; }
	.dc-entrar__lado { padding: var(--space-32) 0 var(--space-64); }
}
@media (max-width: 640px) {
	.dc-entrar__lado { justify-content: flex-start; }
	.dc-entrar__caixa { max-width: none; }
}
