/*
Theme Name: Casa Vidro
Theme URI: https://casa-vidro-commerce-87d4a056.base44.app
Author: Casa Vidro Commerce
Description: Tema de loja para o varejo brasileiro, leve e pensado para o celular. A identidade visual (logo, cores, fontes) vem do plugin Casa Vidro Design; o tema só desenha a estrutura.
Version: 0.3.1
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: casavidro
Tags: e-commerce, block-themes, full-site-editing, one-column, wide-blocks
*/

/* As cores e fontes vêm do theme.json (que o Casa Vidro Design troca pela marca da loja) e das variáveis --cv-*. */

:root {
	--cvs-radius: var(--cv-radius, 8px);
	--cvs-radius-button: var(--cv-radius-button, var(--cvs-radius));
	--cvs-price: var(--cv-color-price, var(--wp--preset--color--contrast));
	--cvs-sale: var(--cv-color-sale, #d0021b);
	--cvs-pix: #0f7b4b;
	--cvs-line: color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	--cvs-soft: color-mix(in srgb, var(--wp--preset--color--contrast) 4%, var(--wp--preset--color--base));
}

body { -webkit-font-smoothing: antialiased; }
img { height: auto; }

/* ---------- botões e campos */
.wp-element-button, .wp-block-button__link, .button, .woocommerce .button, .wc-block-components-button {
	border-radius: var(--cvs-radius-button) !important;
	transition: background-color .2s ease, opacity .2s ease;
}
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], input[type="password"], select, textarea,
.wc-block-components-text-input input, .wc-block-components-combobox input {
	border-radius: var(--cvs-radius) !important;
}

/* ---------- cabeçalho */
.cvs-header { border-bottom: 1px solid var(--cvs-line); background: var(--wp--preset--color--base); }
/* O WordPress embrulha a parte do modelo num <header> da mesma altura: quem gruda no topo é o embrulho */
header.wp-block-template-part:has(> .cvs-header.is-sticky) { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part:has(> .cvs-header.is-sticky) { top: 32px; }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part:has(> .cvs-header.is-sticky) { top: 0; } }
.cvs-header .wp-block-site-logo img { max-height: 56px; width: auto; }
/* Com logo, o nome em texto sai (o bloco do logo não imprime nada quando não há logo) */
.wp-block-site-logo + .wp-block-site-title,
.wp-block-group:has(> .wp-block-site-logo) > .wp-block-site-title { display: none; }
.cvs-header .wp-block-navigation { font-weight: 500; }
@media (max-width: 781px) {
	.cvs-header .cvs-header__nav-desktop { display: none !important; }
	.cvs-header .wp-block-site-logo img { max-height: 40px; }
}

/* ---------- cartões de produto */
.wc-block-product, .wc-block-grid__product, li.product {
	background: var(--wp--preset--color--base);
}
.wc-block-components-product-image img, .wc-block-grid__product-image img, .wp-block-woocommerce-product-image img {
	border-radius: var(--cvs-radius);
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.wc-block-components-product-sale-badge, .onsale {
	background: var(--cvs-sale) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-size: 12px !important;
	font-weight: 600;
	padding: 2px 10px !important;
}
.price, .wc-block-components-product-price { color: var(--cvs-price); font-weight: 600; }
.price del, .wc-block-components-product-price del { opacity: .55; font-weight: 400; }

/* Preço no Pix e parcelas (inc/brasil.php) */
.cvs-pay { display: block; margin-top: 4px; font-size: .82em; line-height: 1.35; font-weight: 400; color: var(--wp--preset--color--contrast); opacity: .85; }
.cvs-pay__pix { display: block; color: var(--cvs-pix); font-weight: 600; opacity: 1; }
.cvs-pay__pix small { font-weight: 400; }
.single-product .cvs-pay { font-size: .62em; margin-top: 8px; }

/* ---------- seções da página inicial */
.cvs-hero { border-radius: var(--cvs-radius); overflow: hidden; }
.cvs-benefits { border-block: 1px solid var(--cvs-line); }
.cvs-benefits .wp-block-column { text-align: center; }
.cvs-benefits p { margin: 0; }
.cvs-category-card { border-radius: var(--cvs-radius); overflow: hidden; }

/* ---------- rodapé */
.cvs-footer { background: var(--cvs-soft); border-top: 1px solid var(--cvs-line); }
.cvs-footer a { text-decoration: none; }
.cvs-footer a:hover { text-decoration: underline; }
.cvs-seals { display: flex; flex-wrap: wrap; gap: 8px; }
.cvs-seals span { border: 1px solid var(--cvs-line); border-radius: 6px; padding: 4px 8px; font-size: 12px; background: var(--wp--preset--color--base); }

/* ---------- barra fixa do celular (inc/mobile-bar.php) */
.cvs-mbar { display: none; }
@media (max-width: 781px) {
	.cvs-mbar {
		display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
		position: fixed; inset: auto 0 0 0; z-index: 90;
		background: var(--wp--preset--color--base); border-top: 1px solid var(--cvs-line);
		padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
		box-shadow: 0 -6px 18px rgba(0, 0, 0, .06);
	}
	.cvs-mbar a { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 11px; color: var(--wp--preset--color--contrast); text-decoration: none; padding: 4px 0; position: relative; }
	.cvs-mbar svg { width: 22px; height: 22px; }
	.cvs-mbar .cvs-mbar__wa { color: #128c4b; }
	.cvs-mbar .cvs-mbar__count { position: absolute; top: 0; left: 55%; min-width: 16px; height: 16px; border-radius: 99px; background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); font-size: 10px; line-height: 16px; text-align: center; padding: 0 4px; }
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}

/* ---------- busca do cabeçalho: só o ícone, discreto */
.cvs-header .wp-block-search__button {
	background: transparent !important; color: var(--wp--preset--color--contrast) !important;
	padding: 6px !important; border: 0 !important; min-width: 0; box-shadow: none;
}
.cvs-header .wp-block-search__button svg { width: 24px; height: 24px; fill: currentColor; }
.cvs-header .wp-block-search.wp-block-search__searchfield-hidden .wp-block-search__input { border: 0; }

/* ---------- seções e listas de produtos (blocos casavidro/*) */
.cvs-section { margin-block-start: var(--wp--preset--spacing--60); }
.cvs-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: var(--wp--preset--spacing--40); }
.cvs-section__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.cvs-section__link { font-size: var(--wp--preset--font-size--small); font-weight: 600; white-space: nowrap; }
.cvs-muted { color: var(--wp--preset--color--accent-4); font-size: var(--wp--preset--font-size--small); margin: 0; }
.cvs-empty { color: var(--wp--preset--color--accent-4); }

/* position: relative prende os textos para leitor de tela do WooCommerce (absolutos) dentro do carrossel */
.cvs-products { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--wp--preset--spacing--40); position: relative; }
.cvs-products > li { min-width: 0; }
.cvs-products.is-grid { grid-template-columns: repeat(var(--cvs-cols, 4), minmax(0, 1fr)); }
.cvs-products.is-carousel {
	grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--cvs-cols, 4) - 1) * var(--wp--preset--spacing--40)) / var(--cvs-cols, 4));
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.cvs-products.is-carousel::-webkit-scrollbar { display: none; }
.cvs-products.is-carousel > li { scroll-snap-align: start; }
@media (max-width: 781px) {
	.cvs-products.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.cvs-products.is-carousel { grid-auto-columns: 44%; gap: 12px; }
}
.cvs-carousel { position: relative; }
.cvs-carousel__nav {
	position: absolute; top: 35%; z-index: 2; width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--cvs-line); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}
.cvs-carousel__nav.is-prev { left: -14px; }
.cvs-carousel__nav.is-next { right: -14px; }
.cvs-carousel__nav:disabled { opacity: 0; pointer-events: none; }
@media (max-width: 781px) { .cvs-carousel__nav { display: none; } }

/* cartão */
.cvs-card { display: flex; flex-direction: column; gap: 6px; height: 100%; }
.cvs-card__media { position: relative; display: block; border-radius: var(--cvs-radius); overflow: hidden; background: var(--cvs-soft); }
.cvs-card__img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .35s ease; }
.cvs-card__media:hover .cvs-card__img { transform: scale(1.04); }
.cvs-card__badge { position: absolute; top: 8px; left: 8px; z-index: 1; background: var(--cvs-sale); color: #fff; font-size: 12px; font-weight: 700; border-radius: 99px; padding: 2px 9px; }
.cvs-card__badge.is-out { background: var(--wp--preset--color--contrast); }
.cvs-card__title { margin: 4px 0 0; font-size: var(--wp--preset--font-size--medium); font-family: var(--wp--preset--font-family--body); font-weight: 500; line-height: 1.35; }
.cvs-card__title a { color: inherit; text-decoration: none; }
.cvs-card__price { font-size: var(--wp--preset--font-size--medium); }
.cvs-card__btn { margin-top: auto; text-align: center; font-size: var(--wp--preset--font-size--small) !important; padding: .6rem 1rem !important; }
.cvs-card__btn.is-outline, .wp-element-button.is-outline { background: transparent !important; color: var(--wp--preset--color--contrast) !important; box-shadow: inset 0 0 0 1.5px currentColor; }
.cvs-card__btn.added::after { content: " ✓"; }
.cvs-card .added_to_cart { font-size: var(--wp--preset--font-size--small); text-align: center; }

/* categorias */
.cvs-cat { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; }
.cvs-cat__img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--cvs-radius); background: var(--cvs-soft); }
.cvs-cat__img.is-empty { display: grid; place-items: center; font-size: 2.5rem; font-weight: 700; color: var(--wp--preset--color--accent-1); }
.cvs-cat__name { font-weight: 600; }
.cvs-cat__count { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); margin-top: -6px; }

/* abas */
.cvs-tabs__nav { display: flex; gap: 8px; overflow-x: auto; margin-bottom: var(--wp--preset--spacing--40); scrollbar-width: none; }
.cvs-tabs__tab {
	flex: none; border: 1px solid var(--cvs-line); background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	border-radius: 99px; padding: 8px 16px; font: inherit; font-weight: 500; cursor: pointer;
}
.cvs-tabs__tab[aria-selected="true"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); border-color: transparent; }

/* ---------- página de produto */
.cvs-product__summary > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.cvs-product .wp-block-woocommerce-product-price { font-weight: 700; }
.cvs-product__buy form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.cvs-product__buy .single_add_to_cart_button { flex: 1; min-height: 52px; font-size: 1.05rem !important; }
.cvs-product__buy .quantity input { height: 52px; width: 72px; text-align: center; }

.cvs-pagamento { border: 1px solid var(--cvs-line); border-radius: var(--cvs-radius); padding: 12px 14px; }
.cvs-pagamento summary { cursor: pointer; display: flex; justify-content: space-between; gap: 8px; font-weight: 600; list-style: none; }
.cvs-pagamento summary::-webkit-details-marker { display: none; }
.cvs-pagamento summary::after { content: "+"; font-weight: 400; }
.cvs-pagamento[open] summary::after { content: "–"; }
.cvs-pagamento__pix { color: var(--cvs-pix); margin-left: auto; }
.cvs-pagamento__line { margin: 10px 0 4px; font-size: var(--wp--preset--font-size--small); }
.cvs-pagamento__table { list-style: none; margin: 0; padding: 0; font-size: var(--wp--preset--font-size--small); columns: 2; column-gap: 24px; }
.cvs-pagamento__table li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; break-inside: avoid; border-bottom: 1px dashed var(--cvs-line); }

.cvs-estoque__text { margin: 0 0 6px; color: var(--cvs-sale); font-size: var(--wp--preset--font-size--small); }
.cvs-estoque__bar { display: block; height: 6px; border-radius: 99px; background: var(--cvs-soft); overflow: hidden; }
.cvs-estoque__bar span { display: block; height: 100%; background: var(--cvs-sale); border-radius: inherit; }

.cvs-wa-btn {
	display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
	border: 1.5px solid #128c4b; color: #128c4b; border-radius: var(--cvs-radius-button); font-weight: 600; text-decoration: none;
}
.cvs-wa-btn:hover { background: #128c4b; color: #fff; }

.cvs-frete { background: var(--cvs-soft); border-radius: var(--cvs-radius); padding: 14px; }
.cvs-frete__label { display: block; font-weight: 600; margin-bottom: 8px; }
.cvs-frete__form { display: flex; gap: 8px; }
.cvs-frete__cep { flex: 1; min-width: 0; height: 46px; padding: 0 12px; border: 1px solid var(--cvs-line); font-size: 16px; background: var(--wp--preset--color--base); }
.cvs-frete__form .wp-element-button { padding: 0 18px !important; }
.cvs-frete__help { display: inline-block; margin-top: 6px; font-size: 12px; }
.cvs-frete__rates { list-style: none; margin: 10px 0 0; padding: 0; font-size: var(--wp--preset--font-size--small); }
.cvs-frete__rates li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid var(--cvs-line); }
.cvs-frete__msg { margin: 10px 0 0; font-size: var(--wp--preset--font-size--small); }
.cvs-frete__msg.is-error { color: var(--cvs-sale); }

.cvs-selos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: var(--wp--preset--font-size--small); }
.cvs-selos li { display: flex; align-items: center; gap: 10px; }
.cvs-selos svg { flex: none; color: var(--wp--preset--color--accent-1); }

.wp-block-woocommerce-product-details { margin-block-start: var(--wp--preset--spacing--60) !important; }

/* barra de comprar (celular, página de produto): substitui a barra de atalhos */
.cvs-buybar { display: none; }
@media (max-width: 781px) {
	body.single-product .cvs-mbar { display: none; }
	.cvs-buybar {
		display: flex; align-items: center; gap: 12px; position: fixed; inset: auto 0 0 0; z-index: 90;
		background: var(--wp--preset--color--base); border-top: 1px solid var(--cvs-line);
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 18px rgba(0, 0, 0, .08);
	}
	.cvs-buybar__info { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
	.cvs-buybar__name { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .75; }
	.cvs-buybar__price { font-weight: 700; }
	.cvs-buybar__btn { padding: .7rem 1.6rem !important; }
	.cvs-pagamento__table { columns: 1; }
}
html { scroll-behavior: smooth; }
#comprar { scroll-margin-top: 90px; }

/* ---------- loja (lista de produtos) */
.cvs-shop__bar { margin-block: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
@media (max-width: 781px) {
	.cvs-shop .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
	.cvs-benefits { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* Acessibilidade */
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* =====================================================================
   Estilo Elegante (body.cvs-estilo-elegante) — inc/estilos.php
   Cabeçalho transparente sobre o banner que fica branco ao rolar, banner de tela cheia
   com carrossel de produtos e cards de destaque. Pensado primeiro para o celular.
   ===================================================================== */
.cvs-estilo-elegante {
	--cvs-el-serif: var(--cv-font-title, 'Cormorant Garamond', 'Playfair Display', Georgia, 'Times New Roman', serif);
	--cvs-el-gutter: 12px;
}
.cvs-estilo-elegante:not(.single-product) { padding-bottom: 0 !important; }
.cvs-estilo-elegante .wp-site-blocks > main.cvs-home { margin-block-start: 0; }

/* ---------- cabeçalho */
.cvs-estilo-elegante header.wp-block-template-part:has(> .cvs-hd) { position: sticky; top: 0; z-index: 100; }
.cvs-estilo-elegante header.wp-block-template-part:has(> .cvs-hd.is-overlay) { position: fixed; top: var(--cvs-top, 0px); left: 0; right: 0; }
.cvs-estilo-elegante header.wp-block-template-part:has(> .cvs-hd.is-overlay) + * { margin-block-start: 0; }
.cvs-hd { color: var(--wp--preset--color--contrast); background: var(--wp--preset--color--base); transition: background-color .35s ease, color .35s ease, box-shadow .35s ease; }
.cvs-hd.is-overlay:not(.is-solid) { background: transparent; color: #fff; }
.cvs-hd.is-solid { box-shadow: 0 1px 0 var(--cvs-line); }
.cvs-hd__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; max-width: 1440px; margin: 0 auto; }
.cvs-hd__logo { display: flex; align-items: center; color: inherit; text-decoration: none; min-width: 0; }
.cvs-hd__img { display: block; height: 30px; width: auto; max-width: 150px; object-fit: contain; }
.cvs-hd__img.is-light { display: none; }
.cvs-hd.is-overlay:not(.is-solid).has-light-logo .cvs-hd__img.is-dark { display: none; }
.cvs-hd.is-overlay:not(.is-solid).has-light-logo .cvs-hd__img.is-light { display: block; }
.cvs-hd.is-overlay:not(.is-solid):not(.has-light-logo) .cvs-hd__img.is-dark { filter: brightness(0) invert(1); }
.cvs-hd__name { font-family: var(--cvs-el-serif); font-size: 1.5rem; letter-spacing: .02em; white-space: nowrap; }
.cvs-hd__actions { display: flex; align-items: center; gap: 18px; }
.cvs-hd__bag { color: inherit; text-decoration: none; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.cvs-hd__menu { background: none; border: 0; padding: 4px; margin: -4px; color: inherit; cursor: pointer; display: flex; }

/* ---------- gaveta do menu */
.cvs-drawer { position: fixed; inset: 0; z-index: 200; background: rgba(0, 0, 0, .35); opacity: 0; transition: opacity .3s ease; }
.cvs-drawer[hidden] { display: none; }
.cvs-drawer.is-open { opacity: 1; }
.cvs-drawer__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(88vw, 380px); overflow-y: auto;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	padding: 16px 22px calc(24px + env(safe-area-inset-bottom)); transform: translateX(100%); transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.cvs-drawer.is-open .cvs-drawer__panel { transform: none; }
.cvs-drawer__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.cvs-drawer__title { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }
.cvs-drawer__close { background: none; border: 0; padding: 4px; margin: -4px; color: inherit; cursor: pointer; display: flex; }
.cvs-drawer__search input[type="search"] { width: 100%; border: 0; border-bottom: 1px solid var(--cvs-line); border-radius: 0 !important; padding: 10px 0; background: transparent; font-size: 16px; color: inherit; }
.cvs-drawer__menu { list-style: none; margin: 18px 0 0; padding: 0; }
.cvs-drawer__menu a { display: block; padding: 12px 0; font-family: var(--cvs-el-serif); font-size: 1.6rem; line-height: 1.2; color: inherit; text-decoration: none; }
html.cvs-locked, html.cvs-locked body { overflow: hidden; }

/* ---------- banner elegante */
.cvs-hero-el {
	position: relative; overflow: hidden; color: #fff; background: var(--cvs-hero-bg, #e9e4de);
	min-height: calc(var(--cvs-hero-h, 100svh) - var(--cvs-tb, 0px)); display: flex; flex-direction: column; justify-content: flex-end;
	margin-block: 0 !important;
}
.cvs-hero-el__bgs, .cvs-hero-el__shade { position: absolute; inset: 0; }
.cvs-hero-el__bg {
	position: absolute; inset: 0; width: 100%; height: 100% !important; max-width: none;
	object-fit: var(--cvs-hero-fit, cover); object-position: var(--cvs-hero-pos, center);
	opacity: 0; transform: scale(1.04); transition: opacity 1.1s ease, transform 6s ease;
}
.cvs-hero-el__bg.is-active { opacity: 1; transform: none; }
.cvs-hero-el__shade { background: linear-gradient(180deg, rgba(0, 0, 0, calc(var(--cvs-hero-dim, .25) * .8)) 0%, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, var(--cvs-hero-dim, .25)) 100%); pointer-events: none; }
.cvs-hero-el__content { position: relative; padding: 96px 20px 22px; text-align: center; transition: opacity .45s ease; text-shadow: 0 1px 18px rgba(0, 0, 0, .25); }
.cvs-hero-el__content.is-swapping { opacity: 0; }
.cvs-hero-el__title { margin: 0; font-family: var(--cvs-el-serif); font-weight: 400; line-height: 1.05; color: inherit; font-size: clamp(2.1rem, 9vw, 4.5rem); }
.cvs-hero-el__it { display: block; font-style: italic; text-transform: none; }
.cvs-hero-el__tt { display: block; text-transform: uppercase; letter-spacing: .04em; }
.cvs-hero-el__sub { margin: 12px auto 0; max-width: 34ch; font-size: 15px; line-height: 1.45; opacity: .92; }
.cvs-hero-el__btn {
	display: inline-block; margin-top: 18px; padding: 13px 34px; background: #fff; color: #111; text-decoration: none;
	font-size: 13px; letter-spacing: .14em; text-transform: uppercase; border-radius: var(--cvs-radius-button);
	transition: background-color .2s ease, color .2s ease;
}
.cvs-hero-el__btn:hover { background: #111; color: #fff; }
.cvs-hero-el__bottom { position: relative; padding: 0 0 calc(16px + env(safe-area-inset-bottom)); }
.cvs-hero-el__nav { display: flex; justify-content: center; gap: 8px; margin-bottom: 10px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.cvs-hero-el__nav button { background: none; border: 0; color: inherit; padding: 4px 2px; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.cvs-hero-el__nav button:disabled { opacity: .45; cursor: default; }
.cvs-hero-el__cards {
	list-style: none; margin: 0; padding: 0 var(--cvs-el-gutter); display: flex; gap: var(--cvs-el-gutter);
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.cvs-hero-el__cards::-webkit-scrollbar { display: none; }
.cvs-hero-el__card {
	flex: 0 0 calc(100% - 2 * var(--cvs-el-gutter)); scroll-snap-align: center; min-width: 0;
	display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px;
	background: rgba(255, 255, 255, .96); color: #111; box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
.cvs-hero-el__card.is-empty { visibility: hidden; height: 0; padding: 0; }
.cvs-hero-el__thumb { flex: 0 0 64px; height: 64px; border-radius: 8px; overflow: hidden; background: #f3f1ee; display: block; }
.cvs-hero-el__thumb img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.cvs-hero-el__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; line-height: 1.25; }
.cvs-hero-el__cat { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; opacity: .55; }
.cvs-hero-el__name { color: inherit; text-decoration: none; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvs-hero-el__price { font-size: 14px; font-weight: 600; }
.cvs-hero-el__price del { font-weight: 400; opacity: .5; margin-right: 4px; }
.cvs-hero-el__bag {
	flex: 0 0 44px; height: 44px; border-radius: 99px; display: flex; align-items: center; justify-content: center;
	color: #111; border: 1px solid rgba(0, 0, 0, .12); text-decoration: none; transition: background-color .2s ease, color .2s ease;
}
.cvs-hero-el__bag:hover, .cvs-hero-el__bag.added { background: #111; color: #fff; }
.cvs-hero-el__bag.loading { opacity: .5; }
.cvs-hero-el .added_to_cart { display: none; }
@media (min-width: 782px) {
	.cvs-hero-el__content { padding-bottom: 32px; }
	.cvs-hero-el__cards { justify-content: center; }
	.cvs-hero-el__card { flex-basis: 340px; }
	.cvs-hero-el__bottom { padding-bottom: 28px; }
}

/* ---------- cards de destaque */
.cvs-dest {
	display: grid; grid-template-columns: 1fr; gap: var(--cvs-el-gutter, 12px);
	padding: var(--cvs-el-gutter, 12px); margin-block-start: 0 !important;
}
.cvs-dest__card {
	position: relative; display: block; overflow: hidden; border-radius: 12px; aspect-ratio: var(--cvs-dest-ratio, 4/5);
	background: var(--cvs-soft); color: #fff; text-decoration: none;
}
.cvs-dest__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: var(--cvs-dest-fit, cover); object-position: var(--cvs-dest-pos, center); transition: transform .8s ease; }
.cvs-dest__card:hover .cvs-dest__img { transform: scale(1.03); }
.cvs-dest__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, .45) 100%); }
.cvs-dest__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.cvs-dest__title { font-family: var(--cvs-el-serif, Georgia, serif); font-size: clamp(1.7rem, 7vw, 2.4rem); line-height: 1.05; }
.cvs-dest__link { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 5px; }
@media (min-width: 782px) { .cvs-dest { grid-template-columns: repeat(var(--cvs-dest-cols, 2), minmax(0, 1fr)); } }

/* ---------- demais seções no Elegante */
.cvs-estilo-elegante .cvs-section__title, .cvs-estilo-elegante h1, .cvs-estilo-elegante h2 { font-family: var(--cvs-el-serif); font-weight: 400; }
.cvs-el-section { padding-inline: var(--cvs-el-gutter); }
