/**
 * Briluz Shoptimizer Child -- Custom CSS
 *
 * Estilos de componentes adicionais que nao cabem no style.css principal.
 * Enfileirado na prioridade 35 (apos shoptimizer-child-style na p30).
 *
 * Cascata: shoptimizer-main [p10] -> shoptimizer-child-style [p30] -> briluz-custom [p35]
 *
 * @package briluz-shoptimizer
 * @since   1.0.0
 */

/* GLOBAL: previne scroll horizontal acidental (footer 100vw, etc) */
html,
body {
	overflow-x: clip !important;
}

@supports not (overflow: clip) {

	html,
	body {
		overflow-x: hidden !important;
	}
}

/* Remove gutter de scrollbar reservado (causa barra branca no mobile) */
html {
	scrollbar-gutter: auto !important;
}

/* S2: SKIP LINK -- Acessibilidade (NFR-3.3) */

/**
 * Skip link visivel apenas ao receber foco via teclado.
 * Posicionado acima de todo conteudo com z-index maximo.
 */
.briluz-skip-link {
	position: absolute;
	top: -100%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9999;
	padding: 12px 24px;
	background-color: var(--color-primary);
	color: var(--color-btn-text);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	text-decoration: none;
	border-radius: 0 0 4px 4px;
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
	transition: top 0.15s ease;
}

.briluz-skip-link:focus {
	top: 0;
}

/* S2: ANNOUNCEMENT BAR / BARRA DE BENEFICIOS (FR-3A) */

#briluz-announcement-bar,
.briluz-announcement-bar {
	color: var(--color-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	position: relative;
	z-index: 101;
	overflow: hidden;
	height: 36px;
	max-height: 36px;
	display: flex;
	align-items: center;
}

/* Track: 3 segmentos identicos, scroll infinito via translateX(-33.333%) */
#briluz-announcement-bar .briluz-announcement-bar__track,
.briluz-announcement-bar .briluz-announcement-bar__track {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	width: max-content;
	animation: briluz-marquee 12s linear infinite;
	white-space: nowrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Cada segmento: items em linha horizontal */
#briluz-announcement-bar .briluz-announcement-bar__segment,
.briluz-announcement-bar .briluz-announcement-bar__segment {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	flex-shrink: 0;
	white-space: nowrap;
	list-style: none;
}

#briluz-announcement-bar .briluz-announcement-bar__item,
.briluz-announcement-bar .briluz-announcement-bar__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
	padding: 0 24px;
	list-style: none;
}

.briluz-announcement-bar__item svg {
	flex-shrink: 0;
}

.briluz-announcement-bar__separator {
	color: var(--color-primary);
	opacity: 0.4;
	font-size: 10px;
	margin: 0 20px;
}

/* Botao fechar: fixo no canto direito com fundo herdado */
.briluz-announcement-bar__close {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	border: none;
	cursor: pointer;
	padding: 0 10px;
	color: var(--color-primary);
	opacity: 0.6;
	transition: opacity 0.2s;
	line-height: 1;
	z-index: 2;
	display: flex;
	align-items: center;
}

.briluz-announcement-bar__close:hover {
	opacity: 1;
}

/* Scroll infinito: desloca 50% = 1 segmento de 2 */
@keyframes briluz-marquee {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-50%);
	}
}

/* Pause on hover */
.briluz-announcement-bar:hover .briluz-announcement-bar__track {
	animation-play-state: paused;
}

/* Acessibilidade: sem animacao se preferido */
@media (prefers-reduced-motion: reduce) {
	.briluz-announcement-bar__track {
		animation: none !important;
		width: 100%;
		justify-content: center;
	}

	.briluz-announcement-bar__segment:nth-child(n+2) {
		display: none;
	}

	.briluz-announcement-bar {
		height: auto;
	}
}

/* S2: HEADER STICKY (FR-2.1) -- z-index: 100 conforme hierarquia definida na story. */

/**
 * Header sticky com position: sticky para manter no topo durante scroll.
 * Reserva de espaco automatica via sticky (nao desloca conteudo como fixed).
 * Max-height 60px em mobile para nao comprimir viewport.
 */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--color-bg);
	transition: box-shadow 0.2s ease;
	/* Fecha gap de subpixel entre announcement bar (amarela) e o header em zoom != 100% */
	margin-top: -1px;
}

/* Sombra sutil ao rolar para indicar que o header esta sobre o conteudo */
.site-header.is-scrolled {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Mobile: header altura controlada pelo Customizer (mobile_header_height) */
@media (max-width: 767px) {

	/* Esconde wishlist no mobile (prioriza carrinho) */
	.site-header .briluz-account-icon {
		display: none !important;
	}

	/* Menu hamburger: integrar ao header escuro */
	.site-header .menu-toggle,
	.site-header button.menu-toggle {
		background-color: transparent !important;
		color: var(--color-bg) !important;
		border: none !important;
		box-shadow: none !important;
	}

	.site-header .menu-toggle:hover,
	.site-header .menu-toggle:focus {
		background-color: rgba(255, 255, 255, 0.1) !important;
		color: var(--color-bg) !important;
	}

	/* Cor da sacola/carrinho mobile e contador - apenas o necessario */
	.site-header .shoptimizer-cart .cart-contents svg,
	.site-header .shoptimizer-cart .cart-contents svg *,
	.site-header .site-header-cart svg,
	.site-header .site-header-cart svg * {
		fill: var(--color-bg) !important;
		stroke: var(--color-bg) !important;
	}

	/* Sacola mobile: -20% no visual (mantém centralização nativa do tema) */
	.site-header .shoptimizer-cart .cart-contents,
	.site-header .site-header-cart .cart-contents {
		transform: scale(0.8);
		transform-origin: center;
	}

	/* Badge do contador (numero "9"): fundo amarelo da marca */
	.site-header .cart-contents .count,
	.site-header .shoptimizer-cart .count,
	.site-header .cart-contents-count {
		background-color: var(--color-accent, #ffc40d) !important;
		color: var(--color-text-strong) !important;
	}
}

/* S2: LOGO -- WordPress Custom Logo (FR-2.2) */

/**
 * Logo: Native First — controlado 100% pelo Customizer.
 * Antes hardcoded em max-width:200px desktop / 180px mobile / min-width:57px,
 * o que travava o slider do Shoptimizer. Agora apenas o alinhamento vertical.
 */
.site-header .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

/* S2: SEARCH BAR -- Background escuro (FR-2.3) */

/**
 * Estilizacao do campo de busca com fundo escuro.
 * CommerceKit-first: apenas CSS, sem reimplementar logica AJAX.
 * Contraste WCAG AA do placeholder verificado: #c0c0c0 sobre var(--color-search-bg) = 4.58:1.
 */

/* Estilizar campo de busca Shoptimizer / CommerceKit */
.site-header .site-search .search-field,
.site-header .dgwt-wcas-search-input,
.site-header .commercekit-search input[type="search"],
.site-header input.search-field {
	background-color: var(--color-search-bg);
	color: var(--color-bg);
	border: 1px solid var(--color-highlight, var(--color-highlight));
	border-radius: var(--btn-radius) !important;
	padding: 10px 16px 10px 40px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Placeholder com cor clara -- WCAG AA: #c0c0c0 sobre var(--color-search-bg) = 4.58:1 */
.site-header .site-search .search-field::placeholder,
.site-header .dgwt-wcas-search-input::placeholder,
.site-header .commercekit-search input[type="search"]::placeholder,
.site-header input.search-field::placeholder {
	color: #c0c0c0;
	opacity: 1;
}

/* Focus state para busca — borda única grossa laranja */
.site-header .site-search .search-field:focus,
.site-header .dgwt-wcas-search-input:focus,
.site-header .commercekit-search input[type="search"]:focus,
.site-header input.search-field:focus {
	outline: none !important;
	border: 2px solid var(--color-accent, var(--color-accent)) !important;
}

/* Search icon */
.site-header .site-search .search-submit,
.site-header .dgwt-wcas-ico-magnifier {
	color: #c0c0c0;
}

/* Mobile: busca full-width */
@media (max-width: 767px) {

	.site-header .site-search .search-field,
	.site-header .dgwt-wcas-search-input,
	.site-header .commercekit-search input[type="search"],
	.site-header input.search-field {
		width: 100%;
		padding: 8px 12px 8px 36px;
		font-size: 16px;
		/* Previne zoom no iOS */
	}
}

/* S2: BARRA TOPO -- Secondary Navigation (FR-2.6) */

/**
 * Header inteiro escuro — fundo #333 em todo o topo
 * (logo + busca + secondary menu + icones conta/carrinho).
 * Referencia: briluzeletrica.com.br original.
 */
.site-header {
	background-color: #333333 !important;
}

.site-header .site-branding a,
.site-header .site-title a {
	color: var(--color-bg) !important;
}

/* Mobile: respeitar o display:none do Shoptimizer */
@media (min-width: 993px) {
	.site-header .secondary-navigation {
		padding: 0;
		display: flex;
		align-items: center;
	}
}

.site-header .secondary-navigation ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header .secondary-navigation li {
	line-height: 1;
}

.site-header .secondary-navigation li a {
	display: inline-flex;
	align-items: center;
}

/* Resetar padding-top do Shoptimizer (main.min.css: 35px/50px) que empurra texto para baixo */
@media (min-width: 993px) {
	.secondary-navigation .menu li:not(.ri) a {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
	}

	.secondary-navigation .menu .ri a,
	.secondary-navigation .menu .fa a {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
	}

	/* Ícones: remover absolute, colocar inline ao lado do texto */
	.secondary-navigation .icon-wrapper {
		position: static !important;
		transform: none !important;
		display: inline-flex !important;
		align-items: center !important;
		margin-right: 6px !important;
	}

	/* Separadores: cinza sutil, altura da barra de busca */
	.secondary-navigation .menu-item {
		border-left: 1px solid rgba(255, 255, 255, 0.2) !important;
		padding: 8px 12px !important;
		align-self: stretch !important;
		display: flex !important;
		align-items: center !important;
	}

	.secondary-navigation .menu-item:first-child {
		border-left: none !important;
	}
}

.site-header .secondary-navigation li a,
.site-header .secondary-navigation li a:visited {
	color: var(--color-bg) !important;
	font-size: 13px;
	text-decoration: none;
	white-space: nowrap;
}

.site-header .secondary-navigation li a:hover {
	color: var(--color-accent, var(--color-accent)) !important;
}

/* Icones do header (conta, carrinho) brancos sobre fundo escuro */
.site-header .site-header-cart a,
.site-header .briluz-account-icon a,
.site-header .site-header-cart .cart-contents,
.site-header .header-cart-link {
	color: var(--color-bg) !important;
}

.site-header .site-header-cart svg {
	fill: var(--color-bg);
	stroke: var(--color-bg);
}

/* .site-header .briluz-account-icon svg -- migrado para briluz-nuclear.css */

/* S2: BARRA CATEGORIAS -- Primary Navigation (FR-2.6) */

/* Barra categorias: bg delegada ao Customizer > Header > Primary Nav BG */

/* Centralizar menu apenas no desktop, sem afetar o mobile menu */
/* Estrutura: .shoptimizer-primary-navigation.col-full (flex) > nav#site-navigation > div.primary-navigation > div.menu-primary-menu-container > ul.menu > li */
@media (min-width: 993px) {
	.shoptimizer-primary-navigation>#site-navigation {
		flex: 1 1 0%;
		min-width: 0;
	}

	#site-navigation>.primary-navigation {
		width: 100%;
	}

	#site-navigation .primary-navigation>.menu-primary-menu-container:not(.shoptimizer-mobile-menu) {
		width: 100%;
	}

	#site-navigation .menu-primary-menu-container:not(.shoptimizer-mobile-menu)>ul.menu>li {
		float: none;
	}
}

/* Nav texto: cores delegadas ao Customizer > Header > Primary Nav Text */
.col-full-nav .main-navigation a {
	font-weight: 600;
}

/* Carrinho na barra (.col-full-nav .shoptimizer-cart .cart-contents .amount
   e .col-full-nav .shoptimizer-cart-icon) — migrado para briluz-nuclear.css. */

/* S2: HEADER ICONS -- Conta + Carrinho (FR-2.4, FR-2.5) -- Touch targets >= 44x44px (NFR-3.4) */

/**
 * Icones de header (conta e carrinho) com touch targets acessiveis.
 * SVG inline com currentColor para herdar cor do link.
 */
.briluz-header-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	color: var(--color-text);
	text-decoration: none;
	position: relative;
	transition: color 0.2s ease;
}

.briluz-header-icon:hover {
	color: var(--color-accent-a11y);
}

.briluz-header-icon svg {
	width: 24px;
	height: 24px;
	pointer-events: none;
}

/* S2: SECONDARY CATEGORY MENU (FR-2.6) -- Abaixo do header principal, com estilos de navegacao. */

/**
 * Barra de categorias abaixo do header.
 * Mobile-first: scrollavel horizontalmente.
 * Desktop: layout normal centralizado.
 */
.briluz-category-nav {
	background-color: var(--color-bg);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.briluz-category-menu {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 15px;
	/* Mobile-first: horizontal scroll */
	overflow-x: auto;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	/* Firefox */
}

.briluz-category-menu::-webkit-scrollbar {
	display: none;
	/* Chrome, Safari, Edge */
}

.briluz-category-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	gap: 0;
}

.briluz-category-menu-list li {
	display: inline-flex;
	flex-shrink: 0;
}

.briluz-category-menu-list li a {
	display: inline-flex;
	align-items: center;
	padding: 10px 16px;
	color: var(--color-text);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-semi);
	font-family: var(--font-family-base);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, background-color 0.2s ease;
	min-height: 44px;
	/* Touch target (NFR-3.4) */
}

.briluz-category-menu-list li a:hover {
	color: var(--color-accent-a11y);
	background-color: var(--color-bg-alt);
}

.briluz-category-menu-list li.current-menu-item a,
.briluz-category-menu-list li.current_page_item a {
	color: var(--color-accent-a11y);
	border-bottom: 2px solid var(--color-accent-a11y);
}

/* S2: MENU SCROLL HORIZONTAL MOBILE (FR-2.7) */

/**
 * Desktop (>= 1025px): layout normal sem scroll.
 * Mobile/Tablet (< 1025px): ja configurado acima como mobile-first.
 */
@media (min-width: 1025px) {
	.briluz-category-menu {
		overflow-x: visible;
		white-space: normal;
	}

	.briluz-category-menu-list {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}
}

/* S2: ACCESSIBILITY -- Focus Indicators (NFR-3.2) -- outline: 2px solid var(--color-accent) em todos os elementos interativos do header. */

/**
 * Focus indicators consistentes em todos os elementos interativos do header.
 * Cor: --color-accent (var(--color-accent)) que e valida em fundos tanto claros quanto escuros.
 * O outline-offset garante que o ring nao sobreponha o conteudo.
 */
.site-header a:focus,
.site-header button:focus,
.site-header input:focus,
.site-header select:focus,
.site-header [tabindex]:focus,
.briluz-category-nav a:focus,
.briluz-header-icon:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Remove outline padrao em cliques (mouse), mantem em teclado */
.site-header a:focus:not(:focus-visible),
.site-header button:focus:not(:focus-visible),
.briluz-category-nav a:focus:not(:focus-visible),
.briluz-header-icon:focus:not(:focus-visible) {
	outline: none;
}

/* Restaurar focus-visible para navegacao por teclado */
.site-header a:focus-visible,
.site-header button:focus-visible,
.site-header input:focus-visible,
.briluz-category-nav a:focus-visible,
.briluz-header-icon:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Dropdown menus z-index */
.site-header .sub-menu,
.site-header .dropdown-menu {
	z-index: 200;
}

/* S2: FALLBACK AJAX SEARCH RESULTS (somente sem CommerceKit) */

/**
 * Estilizacao dos resultados de busca AJAX fallback.
 * Renderizado apenas quando CommerceKit nao esta ativo.
 */
.briluz-search-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-top: none;
	border-radius: 0 0 4px 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	z-index: 200;
	max-height: 400px;
	overflow-y: auto;
	display: none;
}

.briluz-search-results.is-visible {
	display: block;
}

/* FOOTER — 4 COLUNAS (FR-10) */

/* Footer Principal — Background, tipografia, sombra (FR-10.2, FR-10.3) */

.briluz-footer {
	background-color: var(--color-primary);
	/* var(--color-primary) */
	color: var(--color-bg);
	box-shadow: var(--shadow-footer);
	/* 0 -1px 10px rgba(0,0,0,0.1) */
	padding: 48px 0 0;
}

/* Grid 4 Colunas — Desktop / Tablet / Mobile (FR-10.1, FR-10.5) */

.briluz-footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

/* Tablet: 2 colunas (768px - 1024px) */
@media (min-width: 768px) {
	.briluz-footer-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px;
	}
}

/* Desktop: 4 colunas (>= 1025px) */
@media (min-width: 1025px) {
	.briluz-footer-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 32px;
	}
}

/* Colunas do Footer (FR-10.1) */

.briluz-footer-column {
	padding: 0;
}

/* Titulos dos Widgets — Cor accent (FR-10.2) */

.briluz-footer .footer-widget-title {
	color: var(--color-accent);
	/* var(--color-accent) */
	font-size: var(--font-size-h4);
	/* 16px */
	font-weight: var(--font-weight-bold);
	margin-bottom: 16px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Links do Footer — Default var(--color-border), Hover var(--color-accent) (FR-10.3) */

.briluz-footer a {
	color: var(--color-border);
	/* var(--color-border) */
	text-decoration: none;
	transition: color 0.2s ease;
}

.briluz-footer a:hover,
.briluz-footer a:active {
	color: var(--color-accent);
	/* var(--color-accent) */
}

/* Focus indicator — Acessibilidade (NFR-3) */
.briluz-footer a:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Widgets do Footer — Listas e texto */

.briluz-footer .footer-widget {
	margin-bottom: 24px;
}

.briluz-footer .footer-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.briluz-footer .footer-widget li {
	margin-bottom: 8px;
	line-height: 1.6;
}

.briluz-footer .footer-widget li a {
	display: inline-block;
	padding: 2px 0;
}

.briluz-footer .footer-widget p {
	margin-bottom: 12px;
	line-height: 1.7;
	color: var(--color-bg);
}

/* Barra Inferior — Copyright, CNPJ, endereco, selos (FR-10.4) */

.briluz-footer-bottom {
	background-color: #111111;
	padding: 20px 24px;
	margin-top: 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	font-size: 12px;
	color: var(--color-border);
	/* var(--color-border) */
	text-align: center;
}

@media (min-width: 768px) {
	.briluz-footer-bottom {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		flex-wrap: wrap;
		text-align: left;
	}
}

.briluz-footer-bottom-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.briluz-footer-bottom-info p {
	margin: 0;
	line-height: 1.6;
}

.briluz-footer-copyright {
	font-weight: var(--font-weight-semi);
}

/* Link "Configurar Cookies" — LGPD (FR-10.6) */

.briluz-footer-cookies-link {
	color: var(--color-border);
	/* var(--color-border) */
	text-decoration: none;
	transition: color 0.2s ease;
	font-size: 12px;
	padding: 4px 0;
}

.briluz-footer-cookies-link:hover {
	color: var(--color-accent);
	/* var(--color-accent) */
}

.briluz-footer-cookies-link:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Selos de Pagamento — Mercado Pago (FR-10.4) */

.briluz-footer-payment-badges {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
}

@media (min-width: 768px) {
	.briluz-footer-payment-badges {
		justify-content: flex-end;
	}
}

.briluz-footer-payment-label {
	font-size: 12px;
	color: var(--color-border);
	white-space: nowrap;
}

.briluz-footer-payment-icons {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.briluz-payment-icon {
	height: 26px;
	width: auto;
	opacity: 0.8;
	transition: opacity 0.2s ease;
}

.briluz-payment-icon:hover {
	opacity: 1;
}

/* Accordion Mobile — Footer (< 768px) (FR-10.5) */

@media (max-width: 767px) {
	.briluz-footer-column {
		border-bottom: 1px solid #222222;
	}

	.briluz-footer-column:last-child {
		border-bottom: none;
	}

	.briluz-footer .footer-widget {
		margin-bottom: 0;
	}

	.briluz-footer .footer-widget-title {
		cursor: pointer;
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 16px 0;
		margin-bottom: 0;
		user-select: none;
		min-height: 44px;
		/* Touch target minimo WCAG (NFR-3) */
	}

	.briluz-footer .footer-widget-title::after {
		content: '+';
		font-size: 20px;
		line-height: 1;
		flex-shrink: 0;
		margin-left: 12px;
		transition: transform 0.2s ease;
	}

	.briluz-footer .footer-widget-title.is-open::after {
		transform: rotate(45deg);
	}

	.briluz-footer .footer-widget-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}

	.briluz-footer .footer-widget-content.is-open {
		max-height: 500px;
	}

	/* Padding inferior para conteudo expandido */
	.briluz-footer .footer-widget-content.is-open {
		padding-bottom: 16px;
	}
}

/* PRODUCT PAGE CSS — Movido para assets/css/modules/briluz-product.css */
/* Carregado condicionalmente em is_product() via briluz_enqueue_styles */

/* S9a: WHATSAPP FLUTUANTE (FR-11) */

/* Botao Principal -- Posicionamento e estilo (FR-11.1, FR-11.2) */

.briluz-whatsapp-btn {
	position: fixed;
	bottom: 24px;
	right: 24px;
	width: 56px;
	height: 56px;
	background-color: var(--color-whatsapp);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 800;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

/* Esconder WhatsApp quando side cart está aberto (não atrapalhar conversão) */
.cgkit-sidecart-visible .briluz-whatsapp-btn,
body.cgkit-sidecart-open .briluz-whatsapp-btn,
body.sidecart-open .briluz-whatsapp-btn {
	opacity: 0;
	pointer-events: none;
}

/* Hover + Focus -- Escala e indicador acessivel (FR-11.2, NFR-3) */

.briluz-whatsapp-btn:hover,
.briluz-whatsapp-btn:focus {
	transform: scale(1.1);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
	outline: none;
	border: none;
}

/* Remove outline em cliques de mouse, mantem em teclado */
.briluz-whatsapp-btn:focus:not(:focus-visible) {
	outline: none;
}

.briluz-whatsapp-btn:focus-visible {
	outline: 2px solid var(--color-bg);
	outline-offset: 2px;
}

/* Efeito radar — ondas verdes saindo do botao continuamente via box-shadow */

@media (prefers-reduced-motion: no-preference) {
	.briluz-whatsapp-btn {
		animation: briluz-wa-radar 2s ease-out infinite !important;
	}
}

@keyframes briluz-wa-radar {
	0% {
		box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5), 0 0 0 0 rgba(37, 211, 102, 0.3);
	}

	70% {
		box-shadow: 0 0 0 14px rgba(37, 211, 102, 0), 0 0 0 28px rgba(37, 211, 102, 0);
	}

	100% {
		box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 0 0 0 rgba(37, 211, 102, 0);
	}
}

/* Tooltip "Fale conosco" -- Hover desktop apenas (FR-11.3) */

.briluz-whatsapp-tooltip {
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	transform: translateY(-50%) translateX(4px);
	background: var(--color-bg);
	color: var(--color-text);
	padding: 6px 12px;
	border-radius: 6px;
	font-size: 13px;
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.briluz-whatsapp-btn:hover .briluz-whatsapp-tooltip {
	opacity: 1;
	transform: translateY(-50%) translateX(0);
}

/* Mobile -- Posicionamento seguro e ocultacao de tooltip (FR-11.8) */

@media (max-width: 768px) {
	.briluz-whatsapp-btn {
		bottom: 56px;
		right: 16px;
	}

	/* Ocultar tooltip em dispositivos touch */
	.briluz-whatsapp-tooltip {
		display: none;
	}
}

/* S4b: PRODUCT VARIATION SWATCHES -- CommerceKit Override (FR-5) */

/* S4b: SWATCH CONTAINER -- Layout (AC-7) -- Mobile-first: flex-wrap para multiplas linhas sem overflow horizontal. */

.single-product .ckit-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 8px 0 16px;
}

/* S4b: SWATCHES DE COR -- Circulos 32px (AC-1, FR-5.1) */

/**
 * Swatch de cor: circulo de 32px preenchido com a cor da variacao.
 * Estado default: borda --color-border (var(--color-border)).
 * box-sizing: border-box para que a borda nao altere dimensoes externas.
 */
.single-product .ckit-swatches .ckit-swatch-color {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1.5px solid var(--color-border);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	position: relative;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	flex-shrink: 0;
}

/**
 * Hover: borda muda para --color-accent (var(--color-accent)) (AC-3, FR-5.3).
 * Transicao suave de 0.15s ease ja definida acima.
 */
.single-product .ckit-swatches .ckit-swatch-color:hover {
	border-color: var(--color-accent);
}

/**
 * Selecionado: borda 2px --color-primary (var(--color-primary)) + anel exterior
 * via box-shadow para indicador visual claro alem da borda (AC-1).
 * Suporta tanto a classe .selected quanto aria-checked (acessibilidade).
 */
.single-product .ckit-swatches .ckit-swatch-color.selected,
.single-product .ckit-swatches .ckit-swatch-color[aria-checked="true"] {
	border: 2px solid var(--color-primary);
	box-shadow: 0 0 0 2px var(--color-primary);
}

/**
 * Fora de estoque: opacidade 0.3, nao clicavel, risco diagonal (AC-4, FR-5.4).
 * pointer-events: none impede cliques.
 * O pseudo-elemento ::after gera o risco diagonal.
 */
.single-product .ckit-swatches .ckit-swatch-color.out-of-stock,
.single-product .ckit-swatches .ckit-swatch-color[aria-disabled="true"] {
	opacity: 0.3;
	pointer-events: none;
	cursor: not-allowed;
}

.single-product .ckit-swatches .ckit-swatch-color.out-of-stock::after,
.single-product .ckit-swatches .ckit-swatch-color[aria-disabled="true"]::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to top right,
			transparent calc(50% - 0.75px),
			rgba(0, 0, 0, 0.5) calc(50% - 0.75px),
			rgba(0, 0, 0, 0.5) calc(50% + 0.75px),
			transparent calc(50% + 0.75px));
	border-radius: 50%;
	pointer-events: none;
}

/* S4b: SWATCHES DE TAMANHO/TIPO -- Botoes retangulares (AC-2, FR-5.2) */

/**
 * Botao retangular para variacoes de tamanho/tipo (ex: bitola, modelo).
 * Estado default: fundo --color-bg (var(--color-bg)), borda --color-border (var(--color-border)).
 * border-radius: 4px (sutil, NAO pill-shaped como CTA).
 */
.single-product .ckit-swatches .ckit-swatch-button,
.single-product .ckit-swatches .ckit-swatch-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 36px;
	padding: 4px 10px;
	border: 1.5px solid var(--color-border);
	border-radius: 4px;
	background: var(--color-bg);
	color: var(--color-text);
	cursor: pointer;
	box-sizing: border-box;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
	flex-shrink: 0;
}

/**
 * Hover: borda --color-accent (var(--color-accent)) (AC-3, FR-5.3).
 */
.single-product .ckit-swatches .ckit-swatch-button:hover,
.single-product .ckit-swatches .ckit-swatch-label:hover {
	border-color: var(--color-accent);
}

/**
 * Selecionado: fundo --color-primary (var(--color-primary)), texto --color-btn-text (var(--color-btn-text)),
 * borda --color-primary (AC-2).
 * Contraste WCAG AA verificado: var(--color-btn-text) sobre var(--color-primary) = 19.3:1 (>> 4.5:1).
 */
.single-product .ckit-swatches .ckit-swatch-button.selected,
.single-product .ckit-swatches .ckit-swatch-button[aria-checked="true"],
.single-product .ckit-swatches .ckit-swatch-label.selected,
.single-product .ckit-swatches .ckit-swatch-label[aria-checked="true"] {
	background: var(--color-primary);
	color: var(--color-btn-text);
	border-color: var(--color-primary);
}

/**
 * Fora de estoque: opacidade 0.3, nao clicavel, texto riscado (AC-4, FR-5.4).
 */
.single-product .ckit-swatches .ckit-swatch-button.out-of-stock,
.single-product .ckit-swatches .ckit-swatch-button[aria-disabled="true"],
.single-product .ckit-swatches .ckit-swatch-label.out-of-stock,
.single-product .ckit-swatches .ckit-swatch-label[aria-disabled="true"] {
	opacity: 0.3;
	pointer-events: none;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* S4b: FOCUS INDICATORS -- Acessibilidade teclado (AC-6, NFR-3.5) */

/**
 * Focus ring visivel em swatches de cor e de tamanho/tipo.
 * outline-offset: 2px para nao sobrepor o conteudo.
 */
.single-product .ckit-swatches .ckit-swatch-color:focus,
.single-product .ckit-swatches .ckit-swatch-button:focus,
.single-product .ckit-swatches .ckit-swatch-label:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Remove outline em cliques de mouse, mantem em navegacao por teclado.
 */
.single-product .ckit-swatches .ckit-swatch-color:focus:not(:focus-visible),
.single-product .ckit-swatches .ckit-swatch-button:focus:not(:focus-visible),
.single-product .ckit-swatches .ckit-swatch-label:focus:not(:focus-visible) {
	outline: none;
}

/**
 * Restaura focus-visible para navegacao por teclado (Tab, setas).
 */
.single-product .ckit-swatches .ckit-swatch-color:focus-visible,
.single-product .ckit-swatches .ckit-swatch-button:focus-visible,
.single-product .ckit-swatches .ckit-swatch-label:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S4b: MOBILE TOUCH TARGETS -- Min 44x44px (AC-5, FR-5.5, NFR-3.8) -- Mobile-first breakpoint: max-width 767px. */

/**
 * Swatches de cor ampliados de 32px para 44px no mobile
 * para atender ao touch target minimo WCAG (44x44px).
 */
@media (max-width: 767px) {
	.single-product .ckit-swatches .ckit-swatch-color {
		width: 44px;
		height: 44px;
	}

	/**
	 * Swatches de tamanho/tipo: min-height e min-width de 44px no mobile.
	 */
	.single-product .ckit-swatches .ckit-swatch-button,
	.single-product .ckit-swatches .ckit-swatch-label {
		min-height: 44px;
		min-width: 44px;
	}

	/**
	 * Maior gap no mobile para facilitar selecao por toque.
	 */
	.single-product .ckit-swatches {
		gap: 10px;
	}
}

/* S4b: RESPONSIVIDADE -- Breakpoints adicionais (AC-7, NFR-4) */

/* Tablet (768px - 1024px): ajuste sutil de espacamento */
@media (min-width: 768px) and (max-width: 1024px) {
	.single-product .ckit-swatches {
		gap: 8px;
	}
}

/* Desktop (>= 1025px): espacamento padrao */
@media (min-width: 1025px) {

}

/* S3: HOMEPAGE -- Container e layout base (Story S3) -- Mobile-first. Todas as secoes da homepage da Briluz Eletrica. */

/* S3: Container wrapper -- largura maxima consistente */

.briluz-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 16px;
}

/* S3: Section Titles -- Titulos de secao da homepage */

.briluz-section-title {
	font-size: var(--font-size-h2);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-h2);
	color: var(--color-primary);
	text-align: center;
	margin: 0 0 24px;
}

/* S3: SLIDER SECTION (AC-1) */

.briluz-slider-section {
	margin-bottom: 32px;
}

/* Smart Slider 3 container */
.briluz-slider-section .n2-ss-slider {
	max-width: 100%;
}

/* Legacy MetaSlider selectors kept for backwards compatibility */
.briluz-slider-section .metaslider {
	max-width: 100%;
}

/* S3: CATEGORIAS EM DESTAQUE (AC-2) -- 4 cards com imagem, nome e link. Mobile-first: 1 coluna. */

.briluz-featured-categories {
	padding: 40px 0;
}

/* S3: Category Cards Grid -- Mobile-first: 1 coluna */

/* Slider scroll-snap horizontal: 1.2 mobile / 2.2 tablet / 4 desktop */
.briluz-category-cards {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding: 0 16px;
	gap: 16px;
	-webkit-overflow-scrolling: touch;
	/* Esconde scrollbar mantendo scroll funcional */
	scrollbar-width: none;
	/* Firefox */
	-ms-overflow-style: none;
	/* IE/Edge legacy */
}

.briluz-category-cards::-webkit-scrollbar {
	display: none;
	/* Chrome, Safari, Opera */
}

.briluz-category-cards>.briluz-category-card {
	flex: 0 0 calc((100% - 16px) / 1.2);
	scroll-snap-align: start;
}

/* Slider wrapper com setas */
.briluz-category-slider-wrapper {
	position: relative;
}

.briluz-slider-arrow {
	position: absolute;
	top: calc(50% - 24px);
	/* alinha pelo meio do card (compensa label embaixo) */
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	background: var(--color-bg, var(--color-bg));
	box-shadow: var(--shadow-card, 0 2px 8px rgba(0, 0, 0, .15));
	font-size: 28px;
	line-height: 1;
	color: var(--color-text, var(--color-text-strong));
	cursor: pointer;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.2s, transform 0.2s, background 0.2s;
}

.briluz-slider-arrow:hover {
	background: var(--color-accent, #ffc40d);
	transform: translateY(-50%) scale(1.05);
}

.briluz-slider-arrow:disabled {
	opacity: 0;
	pointer-events: none;
}

.briluz-slider-arrow--prev {
	left: -8px;
}

.briluz-slider-arrow--next {
	right: -8px;
}

/* Esconde setas em mobile (usuário usa swipe) */
@media (max-width: 767px) {
	.briluz-slider-arrow {
		display: none;
	}
}

/* Tablet (768px - 1024px): ~2.2 visíveis */
@media (min-width: 768px) {
	.briluz-category-cards {
		gap: 20px;
	}

	.briluz-category-cards>.briluz-category-card {
		flex: 0 0 calc((100% - 20px * 1.2) / 2.2);
	}
}

/* Desktop (>= 1025px): exatamente 4 visíveis */
@media (min-width: 1025px) {
	.briluz-category-cards {
		gap: 24px;
		overflow-x: auto;
	}

	.briluz-category-cards>.briluz-category-card {
		flex: 0 0 calc((100% - 24px * 3) / 4);
	}
}

/* S3: Category Card -- Estilo individual com hover effect (AC-2) */

.briluz-category-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	background: var(--color-bg);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-card);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.briluz-category-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: scale(1.02);
}

/* Focus indicator para navegacao por teclado */
.briluz-category-card:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-category-card:focus:not(:focus-visible) {
	outline: none;
}

.briluz-category-card:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-category-card-image {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}

.briluz-category-card-placeholder {
	width: 100%;
	aspect-ratio: 1 / 1;
	background-color: var(--color-bg-alt);
}

.briluz-category-card-name {
	display: block;
	padding: 12px 16px;
	font-size: var(--font-size-h4);
	font-weight: var(--font-weight-semi);
	color: var(--color-primary);
	text-align: center;
	width: 100%;
}

/* S3: PRODUTOS POPULARES (AC-3) */

.briluz-popular-products {
	padding: 40px 0;
}

/* WooCommerce product cards -- shadow e hover */
.briluz-popular-products .products .product,
.briluz-sale-products .products .product {
	box-shadow: var(--shadow-card);
	border-radius: 8px;
	overflow: hidden;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.briluz-popular-products .products .product:hover,
.briluz-sale-products .products .product:hover {
	box-shadow: var(--shadow-card-hover);
	transform: scale(1.02);
}

/* Preco antigo riscado usa --color-text-muted (AC-3) */
.briluz-popular-products .products .product del,
.briluz-sale-products .products .product del {
	color: var(--color-text-muted);
}

/* WooCommerce product images -- lazy load com dimensoes */
.briluz-popular-products .products .product img,
.briluz-sale-products .products .product img {
	width: 100%;
	height: auto;
	display: block;
}

/* WooCommerce grid columns override -- Mobile-first: 2 colunas */
.briluz-popular-products .woocommerce ul.products,
.briluz-sale-products .woocommerce ul.products,
.briluz-popular-products ul.products,
.briluz-sale-products ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

/* Tablet (>= 768px): 3 colunas */
@media (min-width: 768px) {

	.briluz-popular-products .woocommerce ul.products,
	.briluz-sale-products .woocommerce ul.products,
	.briluz-popular-products ul.products,
	.briluz-sale-products ul.products {
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
	}
}

/* Desktop (>= 1025px): 4 colunas */
@media (min-width: 1025px) {

	.briluz-popular-products .woocommerce ul.products,
	.briluz-sale-products .woocommerce ul.products,
	.briluz-popular-products ul.products,
	.briluz-sale-products ul.products {
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
	}
}

/* Reset WooCommerce default float-based grid */
.briluz-popular-products ul.products li.product,
.briluz-sale-products ul.products li.product {
	float: none;
	width: 100%;
	margin: 0;
}

/* S3: FAIXA DE PROMOCAO (AC-4) */

.briluz-sale-products {
	padding: 40px 0;
	background-color: var(--color-bg-alt);
}

/* Sale badge override -- cores do design system (AC-4) */
.briluz-sale-products .products .product .onsale,
.briluz-sale-products .onsale {
	background-color: var(--color-highlight);
	color: var(--color-primary);
	font-size: var(--font-size-badge);
	font-weight: var(--font-weight-bold);
}

/* S3: TRUST BADGES (AC-5) -- 3 badges: Pagamento Seguro, Entrega Segura, Garantia. */

.briluz-trust-badges {
	padding: 40px 0;
	border-top: 1px solid var(--color-border);
}

.briluz-trust-badge {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px;
}

/* Centralizado no mobile */
@media (max-width: 767px) {
	.briluz-trust-badge {
		flex-direction: column;
		text-align: center;
	}
}

/* S3: PREFERS-REDUCED-MOTION (AC-1, AC-2 -- NFR-3.7) */

@media (prefers-reduced-motion: reduce) {

	/* Slider (Smart Slider 3 handles this natively, kept as fallback) */
	.n2-ss-slider,
	.metaslider .flexslider {
		transition-duration: 0.01ms;
	}

	/* Category cards */
	.briluz-category-card {
		transition: none;
	}

	.briluz-category-card:hover {
		transform: none;
	}

	/* Product cards */
	.briluz-popular-products .products .product,
	.briluz-sale-products .products .product {
		transition: none;
	}

	.briluz-popular-products .products .product:hover,
	.briluz-sale-products .products .product:hover {
		transform: none;
	}
}

/* S3: HOMEPAGE -- Focus e Touch Targets (AC-7, NFR-3.8) -- Touch targets >= 44px para todos os elementos interativos. */

/* Trust badge links (se envoltos em <a>) */
.briluz-trust-badge a {
	min-height: 44px;
	min-width: 44px;
	display: inline-flex;
	align-items: center;
}

/* Slider controls acessiveis (Smart Slider 3 + MetaSlider fallback) */
.briluz-slider-section .n2-ss-slider-controls a,
.briluz-slider-section .metaslider .flex-direction-nav a {
	min-width: 44px;
	min-height: 44px;
}

/* Slider controls focus */
.briluz-slider-section .n2-ss-slider-controls a:focus,
.briluz-slider-section .metaslider .flex-direction-nav a:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-slider-section .n2-ss-slider-controls a:focus:not(:focus-visible),
.briluz-slider-section .metaslider .flex-direction-nav a:focus:not(:focus-visible) {
	outline: none;
}

.briluz-slider-section .n2-ss-slider-controls a:focus-visible,
.briluz-slider-section .metaslider .flex-direction-nav a:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S7: PAGINA MINHA CONTA (FR-9) */

/* S7: LOGIN / REGISTRO -- Layout 2 colunas desktop (AC-1, FR-9.1) */

/**
 * Container login/registro: mobile-first 1 coluna, desktop 2 colunas.
 * Usa o wrapper padrao WooCommerce .u-columns.col2-set.
 */
.woocommerce-account .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	align-items: stretch;
}

@media (min-width: 1025px) {
	.woocommerce-account .col2-set {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}
}

/**
 * Centraliza H1 "Minha conta" acima dos cards (apenas tela deslogada).
 */
.woocommerce-account:not(.logged-in) .entry-title,
.woocommerce-account:not(.logged-in) .page-title {
	text-align: center;
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 24px;
}

/**
 * Colunas individuais de login e registro.
 * Padding e borda para separacao visual. Stretch para igualar alturas.
 */
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2 {
	background: var(--color-bg);
	padding: 28px;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
}

/**
 * Empurra botao para o final do card (alinha submits entre col-1 e col-2).
 */
.woocommerce-account .col2-set .woocommerce-form-login,
.woocommerce-account .col2-set .woocommerce-form-register {
	display: flex;
	flex-direction: column;
	flex: 1;
}

/**
 * Texto LGPD do cadastro -- compactar para nao desbalancear card.
 */
.woocommerce-account .col2-set .woocommerce-privacy-policy-text,
.woocommerce-account .col2-set .woocommerce-privacy-policy-text p {
	font-size: 12px;
	line-height: 1.5;
	color: var(--color-text-muted);
	margin-top: 8px;
	margin-bottom: 8px;
}

/**
 * Titulos H2 de Login e Registro.
 */
.woocommerce-account .col2-set h2 {
	font-size: var(--font-size-h2);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--color-border);
}

/**
 * Labels dos formularios de login/registro.
 */
.woocommerce-account .col2-set label {
	display: block;
	margin-bottom: 6px;
	font-weight: var(--font-weight-semi);
	color: var(--color-text);
}

/**
 * Inputs dos formularios de login/registro.
 */
.woocommerce-account .col2-set input[type="text"],
.woocommerce-account .col2-set input[type="email"],
.woocommerce-account .col2-set input[type="password"] {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	color: var(--color-text);
	background: var(--color-bg);
	transition: border-color 0.2s ease;
	box-sizing: border-box;
}

.woocommerce-account .col2-set input[type="text"]:focus,
.woocommerce-account .col2-set input[type="email"]:focus,
.woocommerce-account .col2-set input[type="password"]:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Botoes de Login e Registrar -- pill-shaped.
 * Herdam de .woocommerce button.button no style.css.
 */
.woocommerce-account .col2-set .woocommerce-form-login__submit,
.woocommerce-account .col2-set .woocommerce-form-register__submit {
	width: 100%;
	margin-top: 16px;
}

/**
 * Link "Esqueceu a senha?" -- cor acessivel.
 * Usa --color-accent-a11y (var(--color-accent-a11y)) em fundos claros -- WCAG AA.
 */
.woocommerce-account .col2-set .woocommerce-LostPassword a,
.woocommerce-account .lost_password a {
	color: var(--color-accent-a11y);
	text-decoration: none;
	font-weight: var(--font-weight-semi);
	transition: color 0.2s ease;
}

.woocommerce-account .col2-set .woocommerce-LostPassword a:hover,
.woocommerce-account .lost_password a:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

/* S7: MYACCOUNT LAYOUT -- Navegacao + Conteudo (todos os ACs) */

/**
 * Layout principal da conta logada: sidebar + conteudo.
 * Mobile-first: stack vertical. Desktop: 2 colunas.
 */
.woocommerce-account .woocommerce-MyAccount-navigation {
	margin-bottom: 24px;
}

@media (min-width: 1025px) {
	.woocommerce-account .entry-content>.woocommerce {
		display: grid;
		grid-template-columns: 220px 1fr;
		gap: 32px;
	}
}

/* S7: NAVIGATION -- Menu lateral desktop (AC-6, FR-9.6) */

/**
 * Desktop: navegacao lateral com links empilhados.
 */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation li {
	margin-bottom: 0;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 16px;
	color: var(--color-text);
	text-decoration: none;
	font-weight: var(--font-weight-semi);
	font-family: var(--font-family-base);
	border-left: 3px solid transparent;
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.woocommerce-MyAccount-navigation li a:hover {
	background-color: var(--color-bg-alt);
	color: var(--color-accent-a11y);
}

/**
 * Item ativo: borda lateral accent, fundo alt.
 */
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	background-color: var(--color-bg-alt);
	border-left-color: var(--color-primary);
	color: var(--color-primary);
	font-weight: var(--font-weight-bold);
}

/**
 * Focus indicator -- Acessibilidade (NFR-3).
 */
.woocommerce-MyAccount-navigation li a:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.woocommerce-MyAccount-navigation li a:focus:not(:focus-visible) {
	outline: none;
}

.woocommerce-MyAccount-navigation li a:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S7: NAVIGATION -- Mobile tabs horizontais scrollaveis (AC-6, FR-9.6) */

/**
 * Mobile (<= 768px): menu converte para tabs horizontais scrollaveis.
 * overflow-x: auto com scroll suave.
 * Touch targets minimo 44px altura (NFR-3.8).
 */
@media (max-width: 768px) {
	.woocommerce-MyAccount-navigation ul {
		display: flex;
		overflow-x: auto;
		white-space: nowrap;
		scroll-behavior: smooth;
		gap: 0;
		border-bottom: 2px solid var(--color-border);
		-webkit-overflow-scrolling: touch;
		/* Barra de scroll oculta */
		scrollbar-width: none;
		/* Firefox */
	}

	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
		/* Chrome, Safari, Edge */
	}

	.woocommerce-MyAccount-navigation li {
		flex-shrink: 0;
	}

	.woocommerce-MyAccount-navigation li a {
		display: block;
		padding: 12px 16px;
		min-height: 44px;
		background: var(--color-bg-alt);
		color: var(--color-text);
		border-left: none;
		border-right: 1px solid var(--color-border);
		border-bottom: 2px solid transparent;
		white-space: nowrap;
		line-height: 20px;
		box-sizing: border-box;
	}

	.woocommerce-MyAccount-navigation li.is-active a {
		background: var(--color-primary);
		color: var(--color-btn-text);
		border-left: none;
		border-bottom-color: var(--color-accent);
	}
}

/* S7: DASHBOARD CARDS (AC-2, FR-9.2) */

/**
 * Welcome paragraph.
 */
.briluz-dashboard-welcome {
	margin-bottom: 24px;
	font-size: var(--font-size-body);
	line-height: var(--line-height-body);
	color: var(--color-text);
}

/**
 * Grid de 4 cards: 1 coluna mobile, 2 colunas tablet, 4 colunas desktop.
 */
.briluz-dashboard-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.briluz-dashboard-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1025px) {
	.briluz-dashboard-cards {
		grid-template-columns: repeat(4, 1fr);
	}
}

/**
 * Card individual: bg alt, borda, sombra, clicavel.
 */
.briluz-dashboard-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	background: var(--color-bg-alt);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	box-shadow: var(--shadow-card);
	text-decoration: none;
	color: var(--color-text);
	text-align: center;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	min-height: 140px;
}

.briluz-dashboard-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
}

/**
 * Focus indicator para cards.
 */
.briluz-dashboard-card:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-dashboard-card:focus:not(:focus-visible) {
	outline: none;
}

.briluz-dashboard-card:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Icone do card.
 */
.briluz-dashboard-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
	color: var(--color-primary);
}

.briluz-dashboard-card-icon svg {
	width: 32px;
	height: 32px;
}

/**
 * Titulo do card.
 */
.briluz-dashboard-card-title {
	display: block;
	font-size: var(--font-size-h4);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	margin-bottom: 6px;
}

/**
 * Descricao do card.
 */
.briluz-dashboard-card-desc {
	display: block;
	font-size: 13px;
	color: var(--color-text-muted);
	line-height: 1.4;
}

/* S7: ORDER STATUS BADGES (AC-3, FR-9.3) */

/**
 * Badge pill-shaped para status de pedidos.
 */
.briluz-order-status {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--btn-radius) !important;
	font-size: 12px;
	font-weight: var(--font-weight-bold);
	text-transform: capitalize;
	white-space: nowrap;
	line-height: 1.5;
}

/**
 * Processando: fundo accent (var(--color-accent)) com texto preto.
 * Contraste var(--color-primary) sobre var(--color-accent) = 5.6:1 (WCAG AA).
 */
.briluz-order-status--processing {
	background-color: var(--color-accent);
	color: var(--color-primary);
}

/**
 * Concluido: fundo verde (var(--color-success)) com texto branco.
 * Contraste var(--color-bg) sobre var(--color-success) = 5.9:1 (WCAG AA).
 */
.briluz-order-status--completed {
	background-color: var(--color-success);
	color: var(--color-bg);
}

/**
 * Aguardando pagamento (on-hold): fundo highlight (var(--color-highlight)) com texto preto.
 * Contraste var(--color-primary) sobre var(--color-highlight) = 14.5:1 (WCAG AA).
 */
.briluz-order-status--on-hold,
.briluz-order-status--pending {
	background-color: var(--color-highlight);
	color: var(--color-primary);
}

/**
 * Cancelado: fundo vermelho (var(--color-error)) com texto branco.
 * Contraste var(--color-bg) sobre var(--color-error) = 5.6:1 (WCAG AA).
 */
.briluz-order-status--cancelled {
	background-color: var(--color-error);
	color: var(--color-bg);
}

/**
 * Reembolsado: fundo cinza com texto escuro.
 */
.briluz-order-status--refunded {
	background-color: var(--color-bg-alt);
	color: var(--color-text);
	border: 1px solid var(--color-border);
}

/**
 * Falhou: fundo vermelho escuro.
 */
.briluz-order-status--failed {
	background-color: #b71c1c;
	color: var(--color-bg);
}

/* S7: ORDERS TABLE -- Estilizacao (AC-3, FR-9.3) */

/**
 * Wrapper da tabela para scroll horizontal no mobile.
 */
.briluz-orders-table-wrapper {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/**
 * Tabela de pedidos.
 */
.woocommerce-MyAccount-orders {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-MyAccount-orders thead th {
	background-color: var(--color-bg-alt);
	color: var(--color-primary);
	font-weight: var(--font-weight-bold);
	font-size: var(--font-size-body);
	padding: 12px 16px;
	text-align: left;
	border-bottom: 2px solid var(--color-border);
}

.woocommerce-MyAccount-orders tbody td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--color-border);
	font-size: var(--font-size-body);
	vertical-align: middle;
}

.woocommerce-MyAccount-orders tbody tr:hover {
	background-color: var(--color-bg-alt);
}

/**
 * Links de numero de pedido.
 */
.woocommerce-orders-table__cell-order-number a {
	color: var(--color-accent-a11y);
	font-weight: var(--font-weight-bold);
	text-decoration: none;
}

.woocommerce-orders-table__cell-order-number a:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

/**
 * Botao "Ver" -- estilo secundario (outline) pill-shaped.
 */
.woocommerce-orders-table__cell-order-actions .button {
	font-size: 13px;
	padding: 8px 16px;
}

/**
 * Mobile (< 768px): tabela responsiva layout card por pedido.
 * Cada linha da tabela exibe como card empilhado com data-title labels.
 */
@media (max-width: 768px) {
	.woocommerce-MyAccount-orders thead {
		display: none;
	}

	.woocommerce-MyAccount-orders tbody tr {
		display: block;
		padding: 16px;
		margin-bottom: 16px;
		border: 1px solid var(--color-border);
		border-radius: 8px;
		background: var(--color-bg);
	}

	.woocommerce-MyAccount-orders tbody td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 8px 0;
		border-bottom: 1px solid var(--color-bg-alt);
	}

	.woocommerce-MyAccount-orders tbody td:last-child {
		border-bottom: none;
	}

	.woocommerce-MyAccount-orders tbody td::before {
		content: attr(data-title);
		font-weight: var(--font-weight-bold);
		color: var(--color-primary);
		margin-right: 12px;
		flex-shrink: 0;
	}
}

/* S7: ADDRESS CARDS (AC-4, FR-9.4) */

/**
 * Introducao dos enderecos.
 */
.briluz-addresses-intro {
	margin-bottom: 24px;
	color: var(--color-text);
}

/**
 * Grid de enderecos: 1 coluna mobile, 2 colunas desktop.
 */
.briluz-addresses-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (min-width: 1025px) {
	.briluz-addresses-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/**
 * Card individual de endereco.
 */
.briluz-address-card {
	background: var(--color-bg-alt);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 24px;
}

/**
 * Header do card com titulo e botao editar.
 */
.briluz-address-card .woocommerce-Address-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--color-border);
}

.briluz-address-card .woocommerce-Address-title h3 {
	font-size: var(--font-size-h3);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	margin: 0;
}

/**
 * Botao "Editar" -- pill-shaped secundario.
 */
.briluz-address-card .woocommerce-Address-title .edit {
	font-size: 13px;
	padding: 8px 16px;
}

/**
 * Endereco exibido.
 */
.briluz-address-card address {
	font-style: normal;
	line-height: var(--line-height-body);
	color: var(--color-text);
}

/**
 * Mensagem de endereco nao cadastrado.
 */
.briluz-no-address {
	color: var(--color-text-muted);
	font-style: italic;
}

/* S7: FORM EDIT ACCOUNT (AC-5, FR-9.5) */

/**
 * Grupo de campos Nome/Sobrenome lado a lado.
 */
.briluz-form-row-group {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 769px) {
	.briluz-form-row-group {
		grid-template-columns: 1fr 1fr;
	}
}

/**
 * Formulario de editar conta: inputs com largura total.
 */
.woocommerce-EditAccountForm .form-row {
	margin-bottom: 16px;
}

.woocommerce-EditAccountForm label {
	display: block;
	margin-bottom: 6px;
	font-weight: var(--font-weight-semi);
	color: var(--color-text);
}

.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"] {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	color: var(--color-text);
	background: var(--color-bg);
	transition: border-color 0.2s ease;
	box-sizing: border-box;
}

.woocommerce-EditAccountForm input:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Validacao inline: erro -- borda vermelha e texto vermelho abaixo do campo.
 * WooCommerce adiciona .woocommerce-invalid aos campos com erro.
 */
.woocommerce-EditAccountForm .woocommerce-invalid input,
.woocommerce-EditAccountForm .form-row.woocommerce-invalid input {
	border-color: var(--color-error);
}

.woocommerce-EditAccountForm .woocommerce-invalid .woocommerce-error,
.woocommerce-EditAccountForm .woocommerce-invalid .error {
	color: var(--color-error);
	font-size: 13px;
	margin-top: 4px;
	display: block;
}

/**
 * Mensagem de sucesso na pagina de conta.
 */
.woocommerce-account .woocommerce-message {
	background-color: var(--color-success-bg);
	border: 1px solid var(--color-success);
	border-left-width: 4px;
	color: var(--color-success-dark);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 24px;
}

/**
 * Mensagem de erro global na pagina de conta.
 */
.woocommerce-account .woocommerce-error {
	background-color: var(--color-error-bg);
	border: 1px solid var(--color-error);
	border-left-width: 4px;
	color: var(--color-error);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 24px;
}

.woocommerce-account .woocommerce-error li {
	list-style: none;
}

/**
 * Descricao auxiliar sob campos.
 */
.briluz-field-description {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--color-text-muted);
}

/**
 * Fieldset de alteracao de senha.
 */
.briluz-password-fieldset {
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 24px;
	margin: 24px 0;
}

.briluz-password-fieldset legend {
	font-size: var(--font-size-h3);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	padding: 0 8px;
}

/* S7: PASSWORD TOGGLE (AC-5, FR-9.5) */

/**
 * Wrapper para posicionamento do botao toggle dentro do campo.
 */
.briluz-password-wrapper {
	display: block;
	position: relative;
}

.briluz-password-wrapper input[type="password"],
.briluz-password-wrapper input[type="text"] {
	padding-right: 48px;
}

/**
 * Botao de toggle mostrar/ocultar senha.
 * Acessivel via ARIA-label. Touch target >= 44px (NFR-3.8).
 */
.briluz-toggle-password {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	color: var(--color-text-muted);
	padding: 4px;
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s ease;
}

.briluz-toggle-password:hover {
	color: var(--color-primary);
}

.briluz-toggle-password:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-toggle-password:focus:not(:focus-visible) {
	outline: none;
}

.briluz-toggle-password:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-toggle-password svg {
	width: 20px;
	height: 20px;
	pointer-events: none;
}

/* S7: WOOCOMMERCE NOTICES -- Estilizacao conta (todos os ACs) */

/**
 * Notices do WooCommerce na pagina de conta.
 * Mensagens de info/aviso.
 */
.woocommerce-account .woocommerce-info {
	background-color: var(--color-bg-alt);
	border: 1px solid var(--color-border);
	border-left: 4px solid var(--color-accent);
	color: var(--color-text);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 24px;
}

/**
 * Botoes dentro de notices.
 */
.woocommerce-account .woocommerce-info .button,
.woocommerce-account .woocommerce-message .button {
	margin-right: 12px;
}

/* S7: ACCESSIBILITY -- Focus, touch targets, contraste (AC-7, NFR-3) */

/**
 * Required asterisk -- estilizacao acessivel.
 * O asterisco e decorativo (aria-hidden="true" no HTML).
 */
.woocommerce-EditAccountForm .required {
	color: var(--color-error);
	font-weight: var(--font-weight-bold);
}

/**
 * Paginacao de pedidos.
 */
.woocommerce-pagination {
	display: flex;
	justify-content: space-between;
	margin-top: 24px;
	gap: 16px;
}

.woocommerce-pagination .button {
	font-size: 13px;
	padding: 10px 20px;
}

/**
 * prefers-reduced-motion: desabilita animacoes de hover nos dashboard cards.
 */
@media (prefers-reduced-motion: reduce) {
	.briluz-dashboard-card {
		transition: none;
	}

	.briluz-dashboard-card:hover {
		transform: none;
	}
}

/* S4c: CALCULADORA DE FRETE — Pagina de Produto (FR-6) */

/* S4c: WIDGET CONTAINER + LABEL */

/**
 * Container principal da calculadora de frete.
 * Posicionado abaixo do botao "Comprar" via hook PHP.
 */
.briluz-shipping-calc {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--color-border);
	/* Forçar bloco completo — CommerceKit PDC form pode usar flex/inline */
	display: block;
	width: 100%;
	clear: both;
	flex-basis: 100%;
}

/**
 * Label "Calcular Frete" acima do formulario.
 */
.briluz-shipping-calc__label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
}

/* S4c: FORM INLINE — Input CEP + Botao Calcular (AC-6) */

/**
 * Formulario inline: input e botao lado a lado em desktop/tablet.
 * Empilha verticalmente abaixo de 480px (mobile).
 */
.briluz-shipping-calc__form {
	display: flex;
	gap: 8px;
	align-items: stretch;
}

/**
 * Input de CEP.
 * Border com token --color-border, touch target >= 44px (NFR-3.8).
 */
/*
.briluz-shipping-calc__input {
	flex: 1;
	padding: 8px 14px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	color: var(--color-text);
	background: var(--color-bg, var(--color-bg));
	min-height: 38px;
	box-sizing: border-box;
	transition: border-color 0.2s ease;
}

.briluz-shipping-calc__input::placeholder {
	color: var(--color-text-muted, var(--color-text-soft));
	opacity: 1;
}
*/

/**
 * Focus indicator no input: outline com --color-accent (NFR-3.5).
 */
/*
.briluz-shipping-calc__input:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-shipping-calc__input:focus:not(:focus-visible) {
	outline: none;
}

.briluz-shipping-calc__input:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}
*/

/**
 * Botao "Calcular" — pill-shaped com tokens do design system.
 * Touch target >= 44px (NFR-3.8).
 */
/*
.briluz-shipping-calc__btn {
	background: var(--color-primary);
	color: var(--color-btn-text);
	border: none;
	border-radius: var(--btn-radius) !important;
	padding: 8px 20px !important;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-bold);
	cursor: pointer;
	min-height: 38px;
	white-space: nowrap;
	transition: opacity 0.2s ease;
	box-sizing: border-box;
}

.briluz-shipping-calc__btn:hover {
	opacity: 1;
}
*/

/**
 * Focus indicator no botao (NFR-3.5).
 */
/*
.briluz-shipping-calc__btn:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-shipping-calc__btn:focus:not(:focus-visible) {
	outline: none;
}

.briluz-shipping-calc__btn:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}
*/

/**
 * Estado disabled do botao durante loading.
 */
/*
.briluz-shipping-calc__btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
*/

/* S4c: MENSAGEM DE ERRO (AC-2) */

/**
 * Mensagem de erro inline abaixo do formulario.
 * Usa role="alert" e aria-live="assertive" para screen readers.
 */
.briluz-shipping-calc__error {
	margin-top: 8px;
	font-size: 13px;
	color: var(--color-error);
	display: none;
}

/* S4c: LOADING STATE (AC-4) */

/**
 * Indicador de carregamento com spinner CSS.
 */
.briluz-shipping-calc__loading {
	display: none;
	margin-top: 12px;
	font-size: var(--font-size-body);
	color: var(--color-text);
	align-items: center;
	gap: 8px;
}

.briluz-shipping-calc__loading[aria-hidden="false"] {
	display: flex;
}

/**
 * Spinner CSS puro — circular, animacao de rotacao.
 */
.briluz-shipping-calc__spinner {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid var(--color-border);
	border-top-color: var(--color-primary);
	border-radius: 50%;
	animation: briluz-spin 0.6s linear infinite;
	flex-shrink: 0;
}

@keyframes briluz-spin {
	to {
		transform: rotate(360deg);
	}
}

/**
 * prefers-reduced-motion: desabilita animacao do spinner.
 */
@media (prefers-reduced-motion: reduce) {
	.briluz-shipping-calc__spinner {
		animation: none;
		border-top-color: var(--color-text);
	}
}

/* S4c: RESULTADOS DE FRETE — Lista (AC-4) */

/**
 * Container de resultados.
 */
.briluz-shipping-calc__results {
	margin-top: 12px;
}

/**
 * Lista de opcoes de frete — clean, sem list-style.
 */
.briluz-shipping-calc__results-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/**
 * Item individual de frete: transportadora + prazo a esquerda, valor a direita.
 * Separadores visuais com border-bottom.
 */
.briluz-shipping-calc__result-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-text);
	font-size: var(--font-size-body);
	gap: 12px;
}

.briluz-shipping-calc__result-item:last-child {
	border-bottom: none;
}

/**
 * Info da transportadora (nome + prazo).
 */
.briluz-shipping-calc__result-info {
	flex: 1;
	min-width: 0;
}

.briluz-shipping-calc__result-label {
	font-weight: var(--font-weight-bold);
}

.briluz-shipping-calc__result-delivery {
	color: var(--color-text-muted, var(--color-text-medium));
	font-size: 13px;
}

/**
 * Valor do frete — alinhado a direita, destaque.
 */
.briluz-shipping-calc__result-cost {
	font-weight: var(--font-weight-bold);
	white-space: nowrap;
	color: var(--color-primary);
}

/* S4c: RESPONSIVIDADE MOBILE (AC-6, NFR-4) */

/**
 * Mobile (< 480px): formulario empilha verticalmente.
 * Botao ocupa largura total.
 */
@media (max-width: 479px) {
	.briluz-shipping-calc__form {
		flex-direction: column;
	}

	.briluz-shipping-calc__btn {
		width: 100%;
	}
}

/**
 * Tablet (480px - 767px): manter inline, sem ajustes extras.
 */

/**
 * Desktop (768px+): inline padrao, sem ajustes extras.
 */

/* S4c: BUSCA DE CEP POR ENDERECO — "Nao sei meu CEP" (FR-6.6) */

.briluz-cep-lookup {
	margin-top: 12px;
}

.briluz-cep-lookup__toggle {
	background: none;
	border: none;
	padding: 0;
	color: var(--color-accent, var(--color-accent));
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.briluz-cep-lookup__toggle:hover {
	opacity: 0.8;
}

.briluz-cep-lookup__arrow {
	font-size: 8px;
	transition: transform 0.2s ease;
	text-decoration: none;
	display: inline-block;
}

.briluz-cep-lookup__arrow--open {
	transform: rotate(180deg);
}

.briluz-cep-lookup__panel {
	display: none;
	margin-top: 10px;
	padding: 12px;
	background: #f9f9f9;
	border: 1px solid var(--color-border);
	border-radius: 6px;
}

.briluz-cep-lookup__panel[aria-hidden="false"] {
	display: block;
}

.briluz-cep-lookup__form-row {
	display: flex;
	gap: 8px;
	margin-bottom: 8px;
}

.briluz-cep-lookup__form-row:last-of-type {
	margin-bottom: 0;
}

.briluz-cep-lookup__field {
	flex: 1;
}

.briluz-cep-lookup__field--uf {
	flex: 0 0 60px;
}

.briluz-cep-lookup__field--uf .briluz-cep-lookup__input {
	text-align: center;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 1px;
}

.briluz-cep-lookup__field--city {
	flex: 1;
}

.briluz-cep-lookup__field--street {
	flex: 1;
}

.briluz-cep-lookup__input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-size: 14px;
	color: var(--color-text);
	background: var(--color-bg);
	box-sizing: border-box;
	min-height: 44px;
}

.briluz-cep-lookup__input:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-cep-lookup__loading {
	display: none;
	margin-top: 8px;
	font-size: 13px;
	color: var(--color-text);
	align-items: center;
	gap: 8px;
}

.briluz-cep-lookup__loading[aria-hidden="false"] {
	display: flex;
}

.briluz-cep-lookup__results {
	list-style: none;
	padding: 0;
	margin: 10px 0 0 0;
	display: none;
}

.briluz-cep-lookup__result-item {
	padding: 10px 12px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	margin-bottom: 4px;
	background: var(--color-bg);
	cursor: pointer;
	font-size: 13px;
	color: var(--color-text);
	transition: background 0.15s ease, border-color 0.15s ease;
}

.briluz-cep-lookup__result-item:hover,
.briluz-cep-lookup__result-item:focus {
	background: var(--color-btn-text);
	border-color: var(--color-accent, var(--color-accent));
	outline: none;
}

.briluz-cep-lookup__result-item strong {
	color: var(--color-primary);
}

@media (max-width: 479px) {
	.briluz-cep-lookup__panel {
		padding: 10px;
	}

	.briluz-cep-lookup__form-row {
		flex-wrap: wrap;
	}

	.briluz-cep-lookup__field--city {
		flex: 1 1 calc(100% - 68px);
	}

	.briluz-cep-lookup__field--street {
		flex: 1 1 100%;
	}

	.briluz-cep-lookup__form-row .briluz-shipping-calc__btn {
		width: 100%;
	}
}

/* CART-DISABLED-START (toggle para ver carrinho nativo) — remover wrapper @supports pra reativar */
@supports not (display: block) {

/* S5: SIDE CART — CommerceKit Override (FR-7.1, FR-7.2, FR-7.3, FR-7.4) */

/* S5: Side Cart — Container principal (AC-2, FR-7.2) -- Background branco, box-shadow, z-index hierarquico. */

/**
 * Fundo branco e sombra lateral para destaque visual.
 * z-index: var(--z-side-cart) = 9999 (hierarquia definida em style.css :root).
 * !important usado em z-index para garantir sobreposicao sobre estilos
 * inline do CommerceKit que podem definir z-index diretamente.
 */
.cgkit-sidecart,
[class*="sidecart"] {
	background: var(--color-bg);
	/* var(--color-bg) */
	box-shadow: var(--shadow-side-cart);
	/* -4px 0 20px rgba(0,0,0,0.15) */
	z-index: var(--z-side-cart, 9999) !important;
	/* !important: override z-index inline do CommerceKit */
}

/* S5: Side Cart — Overlay (AC-2) -- Semi-transparente sobre o restante da pagina. */

.cgkit-sidecart__overlay,
[class*="sidecart"] .overlay,
[class*="sidecart-overlay"] {
	z-index: calc(var(--z-side-cart, 9999) - 1);
}

/* S5: Side Cart — Cabecalho (AC-2) */

.cgkit-sidecart__header,
[class*="sidecart"] .header,
[class*="sidecart__header"] {
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-bold);
	border-bottom: 1px solid var(--color-border);
}

/* S5: Side Cart — Botoes CTA pill-shaped (AC-3, FR-7.3) -- "Ver Carrinho" (secundario) e "Finalizar Compra" (primario). */

/**
 * Todos os botoes dentro do side cart: pill-shaped via --btn-radius.
 * !important em border-radius para sobrescrever especificidade do CommerceKit
 * que pode definir border-radius inline ou com seletores de alta especificidade.
 */
.cgkit-sidecart .button,
.cgkit-sidecart a.button,
.cgkit-sidecart button,
[class*="sidecart"] .button,
[class*="sidecart"] a.button,
[class*="sidecart"] button.button {
	border-radius: var(--btn-radius) !important;
	/* !important: override border-radius do CommerceKit */
	padding: var(--btn-padding);
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-bold);
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 48px;
}

/**
 * Botao "Finalizar Compra" — estilo primario.
 * Background preto, texto --color-btn-text (var(--color-btn-text)).
 */
.cgkit-sidecart .button.checkout,
.cgkit-sidecart a.button.checkout,
.cgkit-sidecart .checkout-button,
[class*="sidecart"] .button.checkout,
[class*="sidecart"] .checkout-button,
[class*="sidecart"] a.button.alt {
	background-color: var(--color-primary) !important;
	/* !important: override bg do CommerceKit */
	color: var(--color-btn-text) !important;
	/* !important: override color do CommerceKit */
	border: 2px solid var(--color-bg);
}

.cgkit-sidecart .button.checkout:hover,
.cgkit-sidecart a.button.checkout:hover,
.cgkit-sidecart .checkout-button:hover,
[class*="sidecart"] .button.checkout:hover,
[class*="sidecart"] .checkout-button:hover,
[class*="sidecart"] a.button.alt:hover {
	color: var(--color-accent) !important;
	/* !important: override hover do CommerceKit */
}

/**
 * Botao "Ver Carrinho" — estilo secundario.
 * Transparente com borda preta, texto preto.
 */
.cgkit-sidecart .button:not(.checkout):not(.alt),
.cgkit-sidecart a.button:not(.checkout):not(.alt),
[class*="sidecart"] .button:not(.checkout):not(.alt),
[class*="sidecart"] a.button:not(.checkout):not(.alt) {
	background-color: transparent !important;
	/* !important: override bg do CommerceKit */
	color: var(--color-primary) !important;
	/* !important: override color do CommerceKit */
	border: 2px solid var(--color-primary);
}

.cgkit-sidecart .button:not(.checkout):not(.alt):hover,
.cgkit-sidecart a.button:not(.checkout):not(.alt):hover,
[class*="sidecart"] .button:not(.checkout):not(.alt):hover,
[class*="sidecart"] a.button:not(.checkout):not(.alt):hover {
	background-color: var(--color-primary) !important;
	/* !important: override bg hover do CommerceKit */
	color: var(--color-btn-text) !important;
	/* !important: override color hover do CommerceKit */
}

/**
 * Focus indicators para botoes do side cart (NFR-3.2).
 */
.cgkit-sidecart .button:focus,
.cgkit-sidecart a.button:focus,
[class*="sidecart"] .button:focus,
[class*="sidecart"] a.button:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.cgkit-sidecart .button:focus:not(:focus-visible),
.cgkit-sidecart a.button:focus:not(:focus-visible),
[class*="sidecart"] .button:focus:not(:focus-visible),
[class*="sidecart"] a.button:focus:not(:focus-visible) {
	outline: none;
}

.cgkit-sidecart .button:focus-visible,
.cgkit-sidecart a.button:focus-visible,
[class*="sidecart"] .button:focus-visible,
[class*="sidecart"] a.button:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S5: Side Cart — Itens (AC-2) */

.cgkit-sidecart__item,
[class*="sidecart"] .cart-item,
[class*="sidecart__item"] {
	border-bottom: 1px solid var(--color-border);
	padding: 12px 0;
}

/* S5: Side Cart — Animacao slide-in (AC-1, NFR-3.7) -- Respeita prefers-reduced-motion: reduce. */

/**
 * Animacao de slide desativada quando o usuario prefere movimento reduzido.
 * O CommerceKit usa CSS transitions para o slide — forcamos nenhuma
 * transicao quando prefers-reduced-motion: reduce esta ativo.
 */
@media (prefers-reduced-motion: reduce) {

	.cgkit-sidecart,
	[class*="sidecart"] {
		transition: none !important;
		/* !important: override transition inline do CommerceKit */
	}
}

/* S5: Side Cart — Mobile full-width (AC-4, FR-7.4) */

@media (max-width: 767px) {

	.cgkit-sidecart,
	[class*="sidecart"]:not([class*="overlay"]) {
		width: 100% !important;
		/* !important: override largura inline do CommerceKit */
		max-width: 100% !important;
		/* !important: override max-width do CommerceKit */
	}
}

/* Desktop: largura fixa recomendada */
@media (min-width: 768px) {

	.cgkit-sidecart,
	[class*="sidecart"]:not([class*="overlay"]) {
		width: 400px;
		max-width: 100%;
	}
}

/* S5: PAGINA CARRINHO FULL — Layout e Componentes (FR-7.5 a FR-7.12) */

/* S5: Carrinho Full — Layout 2 colunas desktop (AC-5, FR-7.5) */

/**
 * Container principal do carrinho: CSS Grid para layout 2 colunas.
 * A pagina WooCommerce usa .woocommerce-cart como body class
 * e .woocommerce como container principal.
 */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

@media (min-width: 1025px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: 7fr 3fr;
		gap: 40px;
		align-items: start;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: 65fr 35fr;
		gap: 24px;
		align-items: start;
	}
}

/**
 * Tabela de itens do carrinho: ocupa coluna esquerda.
 */
.woocommerce-cart .shop_table.cart {
	width: 100%;
	border-collapse: collapse;
}

/**
 * Area de resumo (cart-collaterals): ocupa coluna direita.
 * Sticky no desktop para acompanhar scroll dos itens.
 */
.woocommerce-cart .cart-collaterals {
	position: sticky;
	top: 100px;
	/* Abaixo do header sticky */
}

@media (max-width: 767px) {
	.woocommerce-cart .cart-collaterals {
		position: static;
	}
}

/* S5: Carrinho Full — Cards de Item (AC-6, FR-7.6) -- Cada item: thumbnail, nome, preco, seletor quantidade, botao remover. */

/**
 * Rows da tabela como cards visuais.
 */
.woocommerce-cart .shop_table.cart tr.cart_item {
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-cart .shop_table.cart tr.cart_item td {
	padding: 16px 12px;
	vertical-align: middle;
	font-size: var(--font-size-body);
}

/**
 * Thumbnail do produto.
 */
.woocommerce-cart .shop_table.cart .product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 4px;
	border: 1px solid var(--color-border);
}

/**
 * Nome do produto.
 */
.woocommerce-cart .shop_table.cart .product-name a {
	color: var(--color-text);
	font-weight: var(--font-weight-semi);
	text-decoration: none;
	transition: color 0.2s ease;
}

.woocommerce-cart .shop_table.cart .product-name a:hover {
	color: var(--color-accent-a11y);
}

.woocommerce-cart .shop_table.cart .product-name a:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Preco unitario.
 */
.woocommerce-cart .shop_table.cart .product-price {
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
}

/**
 * Subtotal por item.
 */
.woocommerce-cart .shop_table.cart .product-subtotal {
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
}

/**
 * Seletor de quantidade: botoes + e - com touch targets >= 44px (NFR-3.8).
 * ARIA labels adicionados via HTML nativo do WooCommerce.
 */
.woocommerce-cart .shop_table.cart .quantity .qty {
	min-height: 44px;
	min-width: 44px;
	text-align: center;
	font-size: 16px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-family: var(--font-family-base);
}

/**
 * Botao remover item: icone X com aria-label descritivo.
 * Touch target >= 44px (NFR-3.8).
 */
.woocommerce-cart .shop_table.cart .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	color: var(--color-text-muted);
	font-size: 20px;
	text-decoration: none;
	transition: color 0.2s ease;
	border-radius: 50%;
}

.woocommerce-cart .shop_table.cart .product-remove a.remove:hover {
	color: var(--color-error);
	background-color: var(--color-error-bg);
}

.woocommerce-cart .shop_table.cart .product-remove a.remove:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.woocommerce-cart .shop_table.cart .product-remove a.remove:focus:not(:focus-visible) {
	outline: none;
}

.woocommerce-cart .shop_table.cart .product-remove a.remove:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Header da tabela.
 */
.woocommerce-cart .shop_table.cart thead th {
	padding: 12px;
	font-weight: var(--font-weight-bold);
	font-size: var(--font-size-body);
	color: var(--color-text);
	border-bottom: 2px solid var(--color-border);
	text-align: left;
}

/**
 * Botao "Atualizar Carrinho" — estilo secundario pill-shaped.
 */
.woocommerce-cart .shop_table.cart .actions .button {
	border-radius: var(--btn-radius) !important;
	padding: 10px 20px;
	font-size: var(--font-size-body);
}

/* S5: Carrinho Full — Mobile layout (AC-12, FR-7.12) -- Itens empilham verticalmente, thumbnails menores. */

@media (max-width: 767px) {

	/**
	 * Ocultar header da tabela em mobile.
	 */
	.woocommerce-cart .shop_table.cart thead {
		display: none;
	}

	/**
	 * Cada item exibe como card/bloco empilhado.
	 */
	.woocommerce-cart .shop_table.cart tr.cart_item {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
		padding: 16px 0;
		border-bottom: 1px solid var(--color-border);
	}

	.woocommerce-cart .shop_table.cart tr.cart_item td {
		padding: 4px 0;
		border: none;
	}

	/**
	 * Thumbnail menor no mobile (nao ocupa largura total).
	 */
	.woocommerce-cart .shop_table.cart .product-thumbnail {
		flex: 0 0 60px;
	}

	.woocommerce-cart .shop_table.cart .product-thumbnail img {
		width: 60px;
		height: 60px;
	}

	/**
	 * Nome do produto: ocupa restante da linha.
	 */
	.woocommerce-cart .shop_table.cart .product-name {
		flex: 1 1 0;
		min-width: 0;
	}

	/**
	 * Remover: posicao no canto superior direito.
	 */
	.woocommerce-cart .shop_table.cart .product-remove {
		flex: 0 0 auto;
		order: -1;
		align-self: flex-start;
	}

	/**
	 * Preco, quantidade e subtotal: linha propria no mobile.
	 */
	.woocommerce-cart .shop_table.cart .product-price,
	.woocommerce-cart .shop_table.cart .product-quantity,
	.woocommerce-cart .shop_table.cart .product-subtotal {
		flex: 0 0 auto;
	}

	/**
	 * Actions row (atualizar carrinho) — full-width.
	 */
	.woocommerce-cart .shop_table.cart .actions {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
		padding: 16px 0;
	}

	.woocommerce-cart .shop_table.cart .actions .button {
		width: 100%;
	}
}

/* S5: Campo de Cupom (AC-7, FR-7.7) -- Design system: border, botao pill-shaped, feedback inline. */

/**
 * Container do cupom.
 */
.woocommerce-cart .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

/**
 * Input do cupom.
 */
.woocommerce-cart .coupon #coupon_code {
	flex: 1 1 auto;
	min-width: 120px;
	padding: 10px 16px;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	color: var(--color-text);
	transition: border-color 0.2s ease;
}

.woocommerce-cart .coupon #coupon_code:focus {
	border-color: var(--color-primary);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/**
 * Botao "Aplicar cupom" — pill-shaped secundario.
 */
.woocommerce-cart .coupon .button {
	flex: 0 0 auto;
	border-radius: var(--btn-radius) !important;
	padding: 10px 20px;
	font-size: var(--font-size-body);
}

/**
 * Feedback de sucesso/erro do cupom (exibido inline pelo WooCommerce).
 */
.woocommerce-cart .woocommerce-message {
	background-color: var(--color-success-bg);
	border: 1px solid var(--color-success);
	border-left-width: 4px;
	color: var(--color-success-dark);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 16px;
}

.woocommerce-cart .woocommerce-error {
	background-color: var(--color-error-bg);
	border: 1px solid var(--color-error);
	border-left-width: 4px;
	color: var(--color-error);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 16px;
}

/* S5: Resumo do Pedido (AC-9, FR-7.9) -- Subtotal, frete, desconto (badge highlight), total destacado. */

/**
 * Container do resumo do pedido (cart totals).
 */
.woocommerce-cart .cart_totals {
	background: var(--color-bg-alt);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 24px;
}

/**
 * Titulo "Totais do Carrinho".
 */
.woocommerce-cart .cart_totals>h2 {
	font-size: var(--font-size-h3);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--color-border);
}

/**
 * Tabela de totais.
 */
.woocommerce-cart .cart_totals table {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-cart .cart_totals table tr {
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-cart .cart_totals table tr:last-child {
	border-bottom: none;
}

.woocommerce-cart .cart_totals table th {
	padding: 12px 0;
	font-weight: var(--font-weight-semi);
	font-size: var(--font-size-body);
	color: var(--color-text);
	text-align: left;
	white-space: nowrap;
}

.woocommerce-cart .cart_totals table td {
	padding: 12px 0;
	text-align: right;
	font-size: var(--font-size-body);
	color: var(--color-text);
}

/**
 * Total destacado: fonte maior e negrito (AC-9).
 */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	font-size: var(--font-size-price);
	font-weight: var(--font-weight-bold);
	color: var(--color-primary);
	padding-top: 16px;
}

/**
 * Badge de desconto de cupom: background highlight (var(--color-highlight)) com texto preto.
 * Contraste WCAG AA: var(--color-primary) sobre var(--color-highlight) = 14.5:1.
 */
.woocommerce-cart .cart_totals .cart-discount .amount,
.woocommerce-cart .cart_totals .discount .amount {
	display: inline-block;
	background: var(--color-highlight);
	color: var(--color-primary);
	padding: 2px 8px;
	border-radius: 4px;
	font-weight: var(--font-weight-bold);
	font-size: var(--font-size-body);
}

/**
 * Opcoes de frete no carrinho.
 */
.woocommerce-cart .cart_totals .shipping ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-cart .cart_totals .shipping ul li {
	margin-bottom: 4px;
}

.woocommerce-cart .cart_totals .shipping ul li label {
	cursor: pointer;
}

/* S5: Botao "Finalizar Compra" — Full Page Cart (AC-10, FR-7.10) -- Grande, pill-shaped, estilo primario. */

/**
 * Botao "Finalizar Compra" na pagina de carrinho full.
 * Width 100% para preencher toda a coluna de resumo.
 * Padding generoso (>= var(--btn-padding) = 15px 20px).
 */
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	text-align: center;
	background-color: var(--color-primary);
	color: var(--color-btn-text);
	border: 2px solid var(--color-bg);
	border-radius: var(--btn-radius) !important;
	padding: 16px 24px;
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-bold);
	font-size: 18px;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.2s ease, background-color 0.2s ease;
	margin-top: 16px;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background-color: var(--color-primary);
	color: var(--color-accent);
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus:not(:focus-visible) {
	outline: none;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S5: Estado Vazio do Carrinho (AC-11, FR-7.11) -- Icone + mensagem + botao CTA "Explorar Produtos". */

/**
 * Container centralizado para o estado vazio.
 */
.briluz-empty-cart {
	text-align: center;
	padding: 60px 20px;
	max-width: 400px;
	margin: 0 auto;
}

/**
 * Icone SVG de carrinho vazio.
 */
.briluz-empty-cart__icon {
	color: var(--color-border);
	margin-bottom: 24px;
}

.briluz-empty-cart__icon svg {
	width: 80px;
	height: 80px;
}

/**
 * Mensagem amigavel.
 */
.briluz-empty-cart__message {
	font-size: var(--font-size-h2);
	font-weight: var(--font-weight-bold);
	color: var(--color-text);
	margin-bottom: 24px;
	line-height: var(--line-height-h2);
}

/**
 * Botao CTA "Explorar Produtos" — pill-shaped primario.
 * Direciona para a pagina de loja.
 */
.briluz-empty-cart__cta {
	display: inline-block;
	background-color: var(--color-primary);
	color: var(--color-btn-text);
	border: 2px solid var(--color-bg);
	border-radius: var(--btn-radius) !important;
	padding: var(--btn-padding);
	font-family: var(--font-family-base);
	font-weight: var(--font-weight-bold);
	font-size: 16px;
	text-decoration: none;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.briluz-empty-cart__cta:hover {
	color: var(--color-accent);
}

.briluz-empty-cart__cta:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.briluz-empty-cart__cta:focus:not(:focus-visible) {
	outline: none;
}

.briluz-empty-cart__cta:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* S5: Mobile — Botao Sticky Checkout no Bottom (AC-12, FR-7.12) */

@media (max-width: 767px) {

	/**
	 * Botao sticky fixo no bottom.
	 * Background branco com sombra superior para destaque.
	 * z-index: 100 (abaixo de flutuantes como WhatsApp/LGPD).
	 */
	.woocommerce-cart .wc-proceed-to-checkout {
		position: sticky;
		bottom: 0;
		background: var(--color-bg);
		padding: 16px;
		z-index: 100;
		box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
	}

	/**
	 * Padding inferior no conteudo principal para o botao sticky
	 * nao cobrir conteudo importante.
	 */
	.woocommerce-cart .woocommerce {
		padding-bottom: 80px;
	}
}

/* S5: Acessibilidade e prefers-reduced-motion (NFR-3, NFR-3.7) */

/**
 * prefers-reduced-motion: desabilita transicoes no carrinho.
 */
@media (prefers-reduced-motion: reduce) {

	.woocommerce-cart .shop_table.cart .product-remove a.remove,
	.woocommerce-cart .shop_table.cart .product-name a,
	.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
	.briluz-empty-cart__cta {
		transition: none;
	}
}

}
/* CART-DISABLED-END */

/* COOKIE-HARDCODED-DISABLED-START (substituído por CookieYes — remover wrapper @supports pra reativar) */
@supports not (display: block) {

/* S9b: LGPD COOKIE BANNER (FR-12) */

/* Banner Principal (AC-1, AC-2) -- Background preto, texto branco, botoes pill-shaped. */

.briluz-cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--color-primary);
	color: var(--color-bg);
	z-index: 9997;
	transform: translateY(100%);
	transition: transform 0.3s ease;
	box-sizing: border-box;
}

.briluz-cookie-banner.is-visible {
	transform: translateY(0);
}

.briluz-cookie-banner[aria-hidden="true"] {
	visibility: hidden;
}

.briluz-cookie-banner[aria-hidden="false"] {
	visibility: visible;
}

.briluz-cookie-banner__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 16px 24px;
	max-width: 1200px;
	margin: 0 auto;
}

.briluz-cookie-banner__text {
	flex: 1;
	font-size: 14px;
	line-height: 1.5;
	margin: 0;
	min-width: 200px;
}

.briluz-cookie-banner__text a {
	color: var(--color-accent);
	/* var(--color-accent) */
	text-decoration: underline;
}

.briluz-cookie-banner__text a:hover {
	color: var(--color-bg);
}

.briluz-cookie-banner__text a:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Botoes do Banner (AC-2) -- Pill-shaped: border-radius 9999px. Touch targets >= 44px. */

.briluz-cookie-banner__actions {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.briluz-cookie-btn-accept {
	background: var(--color-accent);
	/* var(--color-accent) */
	color: var(--color-btn-text);
	/* var(--color-btn-text) */
	border: none;
	border-radius: 9999px;
	padding: 12px 24px;
	cursor: pointer;
	font-weight: 700;
	font-size: 14px;
	font-family: var(--font-family-base);
	min-height: 44px;
	line-height: 1.2;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

.briluz-cookie-btn-accept:hover {
	background: #e08500;
}

.briluz-cookie-btn-accept:active {
	transform: scale(0.97);
}

.briluz-cookie-btn-accept:focus {
	outline: 2px solid var(--color-bg);
	outline-offset: 2px;
}

.briluz-cookie-btn-configure {
	background: transparent;
	color: var(--color-bg);
	border: 2px solid var(--color-bg);
	border-radius: 9999px;
	padding: 12px 24px;
	cursor: pointer;
	font-weight: 700;
	font-size: 14px;
	font-family: var(--font-family-base);
	min-height: 44px;
	line-height: 1.2;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.briluz-cookie-btn-configure:hover {
	background: rgba(255, 255, 255, 0.1);
}

.briluz-cookie-btn-configure:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Botao "Recusar todos" — mesmo peso visual de Aceitar/Configurar (LGPD) */
.briluz-cookie-btn-reject {
	background: transparent;
	color: var(--color-bg);
	border: 2px solid var(--color-bg);
	border-radius: 9999px;
	padding: 12px 24px;
	cursor: pointer;
	font-weight: 700;
	font-size: 14px;
	font-family: var(--font-family-base);
	min-height: 44px;
	line-height: 1.2;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.briluz-cookie-btn-reject:hover {
	background: rgba(255, 255, 255, 0.1);
}

.briluz-cookie-btn-reject:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* Modal de Configuracao Granular (AC-3) -- Dentro do banner, expandido abaixo dos botoes. */

.briluz-cookie-modal {
	display: none;
	background: var(--color-text-strong);
	border-top: 1px solid #333333;
}

.briluz-cookie-modal.is-visible {
	display: block;
}

.briluz-cookie-modal__body {
	padding: 24px;
	max-width: 1200px;
	margin: 0 auto;
}

.briluz-cookie-modal__title {
	color: var(--color-bg);
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 20px;
}

/* Categorias de Cookies (AC-3) -- 3 categorias: Necessarios (disabled), Analytics, Marketing. */

.briluz-cookie-category {
	padding: 16px 0;
	border-bottom: 1px solid #333333;
}

.briluz-cookie-category:last-of-type {
	border-bottom: none;
}

.briluz-cookie-category__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.briluz-cookie-category__label {
	font-size: 15px;
	font-weight: 600;
	color: var(--color-bg);
	cursor: pointer;
}

.briluz-cookie-category__desc {
	font-size: 13px;
	color: #aaaaaa;
	margin: 6px 0 0;
	line-height: 1.5;
}

/* Toggle Switch (AC-3) -- Ativo: accent/verde, Inativo: cinza, Disabled: cinza escuro. */

.briluz-cookie-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.briluz-cookie-toggle input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.briluz-cookie-toggle__slider {
	display: block;
	width: 48px;
	height: 26px;
	background: #555555;
	border-radius: 13px;
	position: relative;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.briluz-cookie-toggle__slider::after {
	content: '';
	position: absolute;
	width: 20px;
	height: 20px;
	background: var(--color-bg);
	border-radius: 50%;
	top: 3px;
	left: 3px;
	transition: transform 0.2s ease;
}

/* Toggle checked state */
.briluz-cookie-toggle input[type="checkbox"]:checked+.briluz-cookie-toggle__slider {
	background: var(--color-accent);
	/* var(--color-accent) */
}

.briluz-cookie-toggle input[type="checkbox"]:checked+.briluz-cookie-toggle__slider::after {
	transform: translateX(22px);
}

/* Toggle focus state */
.briluz-cookie-toggle input[type="checkbox"]:focus+.briluz-cookie-toggle__slider {
	box-shadow: 0 0 0 2px var(--color-accent);
}

/* Toggle disabled state (Necessarios) */
.briluz-cookie-toggle--disabled .briluz-cookie-toggle__slider {
	background: #444444;
	cursor: not-allowed;
	opacity: 0.7;
}

.briluz-cookie-toggle--disabled input[type="checkbox"]:checked+.briluz-cookie-toggle__slider {
	background: var(--color-text-medium);
}

/* Acoes do Modal (AC-3) */

.briluz-cookie-modal__actions {
	margin-top: 20px;
	display: flex;
	justify-content: flex-end;
}

/* Mobile (AC-8) — Banner full-width, botoes empilhados -- Touch targets >= 44px (NFR-3.8) */

@media (max-width: 768px) {
	.briluz-cookie-banner__content {
		flex-direction: column;
		align-items: stretch;
		padding: 16px;
	}

	.briluz-cookie-banner__text {
		min-width: 0;
	}

	.briluz-cookie-banner__actions {
		flex-direction: column;
	}

	.briluz-cookie-btn-accept,
	.briluz-cookie-btn-configure {
		width: 100%;
		text-align: center;
		min-height: 44px;
		/* Touch target (NFR-3.8) */
		justify-content: center;
	}

	.briluz-cookie-modal__body {
		padding: 16px;
	}

	.briluz-cookie-modal__actions {
		justify-content: stretch;
	}

	.briluz-cookie-modal__actions .briluz-cookie-btn-accept {
		width: 100%;
	}
}

/* Reduced Motion — Desabilita animacoes do banner (NFR-3) */

@media (prefers-reduced-motion: reduce) {
	.briluz-cookie-banner {
		transition: none;
	}

	.briluz-cookie-toggle__slider,
	.briluz-cookie-toggle__slider::after {
		transition: none;
	}
}

/* Body class — Prevent scroll when banner is active (optional UX) */

.briluz-cookie-banner-active {
	/* Allow scroll but ensure banner is visible */
}

/* 404 PAGE — Movido para modules/briluz-404.css */

/* BLOG ARCHIVE + SINGLE POST + SHARE + SIDEBAR — Movido para modules/briluz-blog.css */

/* EMPTY STATES (CART, SEARCH, CATEGORY) — Movido para modules/briluz-empty-states.css */

/* SEARCH RESULTS PAGE — Movido para modules/briluz-search-results.css */

/* SKELETON LOADERS SHIMMER — Movido para modules/briluz-skeleton-loaders.css */

}
/* COOKIE-HARDCODED-DISABLED-END */

/* S11: BADGE DE ESTOQUE BAIXO — "Ultimas X unidades!" (FR-17.1) */

/**
 * Badge base — estilos compartilhados entre badges de urgencia.
 */
.briluz-badge {
	display: inline-block;
	font-family: var(--font-family-base);
	font-size: 12px;
	font-weight: var(--font-weight-bold);
	line-height: 1;
	padding: 6px 12px;
	border-radius: 9999px;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	white-space: nowrap;
}

/**
 * Badge estoque baixo: fundo dourado (var(--color-highlight)), texto preto.
 */
.briluz-badge--stock {
	background-color: var(--color-highlight);
	/* var(--color-highlight) */
	color: var(--color-primary);
	/* var(--color-primary) */
	margin-bottom: 8px;
}

/**
 * CLS prevention: reserva espaco minimo para badges (NFR-1.4).
 * Aplicado no container da stock info do WooCommerce.
 */
.single-product .stock,
.woocommerce ul.products li.product .stock {
	min-height: 28px;
}

/* S11: BADGE DE DESCONTO — "{X}% OFF" (FR-17.2) */

/**
 * Badge de desconto: fundo laranja (var(--color-accent)), texto preto.
 * Posicao absoluta no canto superior esquerdo do card de produto.
 */
.briluz-badge--discount {
	background-color: var(--color-accent);
	/* var(--color-accent) */
	color: var(--color-primary);
	/* var(--color-primary) */
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 5;
}

/**
 * Container do card precisa position: relative para posicionar badge.
 */
/* Global product grid — override Shoptimizer float-based layout */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	list-style: none;
}

@media (min-width: 768px) and (max-width: 1024px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (max-width: 767px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px;
	}
}

.woocommerce ul.products li.product {
	position: relative;
	float: none !important;
	width: auto !important;
	display: flex !important;
	flex-direction: column !important;
	margin: 0 !important;
}

/**
 * Esconde o badge "Sale!" padrao do WooCommerce quando nosso badge esta ativo.
 * O filtro woocommerce_sale_flash ja substitui, mas garantimos via CSS.
 */
.woocommerce ul.products li.product .onsale:not(.briluz-badge--discount),
.single-product .onsale:not(.briluz-badge--discount) {
	display: none;
}

/**
 * Na pagina de produto single, posicionar badge sobre a galeria.
 */
.single-product .briluz-badge--discount {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 5;
}

/**
 * Galeria precisa position relative para posicionar badge.
 */
.single-product .woocommerce-product-gallery {
	position: relative;
}

/**
 * CLS prevention: reserva espaco no container do badge (NFR-1.4).
 */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
	position: relative;
	min-height: 28px;
}

/* S11: BARRA DE FRETE GRATIS — Progresso (FR-17.3) -- Fill: --color-accent (var(--color-accent)), track: --color-bg-alt. */

/**
 * Barra de progresso de frete gratis.
 * Exibida no cart page e mini-cart/side-cart.
 */
.briluz-free-shipping-bar {
	margin-bottom: 20px;
	padding: 12px 16px;
	background-color: var(--color-bg-alt);
	border-radius: 4px;
}

.briluz-free-shipping-bar__msg {
	margin: 0 0 8px 0;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-semi);
	color: var(--color-text);
	text-align: center;
}

/**
 * Track (fundo) da barra de progresso.
 */
.briluz-free-shipping-bar__track {
	width: 100%;
	height: 8px;
	background-color: var(--color-border-light);
	border-radius: 4px;
	overflow: hidden;
}

/**
 * Fill (preenchimento) da barra de progresso.
 * Cor: --color-accent (var(--color-accent)).
 * Transicao suave ao atualizar via AJAX.
 */
.briluz-free-shipping-bar__fill {
	height: 100%;
	background-color: var(--color-accent);
	/* var(--color-accent) */
	border-radius: 4px;
	transition: width 0.4s ease;
	min-width: 0;
}

/* S11: STAR RATING — Destaque com cor accent (FR-17.4) */

/**
 * Override da cor das estrelas de avaliacao nos cards de produto.
 * Usa --color-accent (var(--color-accent)) para fill.
 * Condicionado a classe no body para toggle via Customizer.
 */
.briluz-star-rating-highlight .star-rating span::before {
	color: var(--color-accent);
	/* var(--color-accent) */
}

/**
 * Estrelas vazias (background) em cinza claro para contraste.
 */
.briluz-star-rating-highlight .star-rating::before {
	color: var(--color-border-light);
}

/**
 * Numero de avaliacoes ao lado das estrelas em texto muted.
 */
.briluz-star-rating-highlight .woocommerce-review-link,
.briluz-star-rating-highlight .count {
	color: var(--color-text-muted);
}

/* S11: BADGES — Acessibilidade e Motion (NFR-3, NFR-3.7) */

/**
 * prefers-reduced-motion: desabilita animacoes de badges.
 */
@media (prefers-reduced-motion: reduce) {
	.briluz-badge {
		transition: none;
		animation: none;
	}

	.briluz-free-shipping-bar__fill {
		transition: none;
	}
}

/* CHECKOUT (CHECKOUTWC ACTIVE, BUT DISTRACTION-FREE + PLACE_ORDER STYLES) — Movido para modules/briluz-checkout.css */

/* BUGFIXES — Correcoes de bugs visuais identificados na revisao */

/**
 * Bug 1: Ocultar titulo da pagina "Inicio" na homepage.
 * O front-page.php nao renderiza titulo, mas o parent theme Shoptimizer
 * injeta o titulo da pagina estatica via header template.
 * Ocultamos para todas as variacoes de classe que o WP pode gerar.
 */
.home .entry-title,
.home .page-title,
.home .entry-header,
body.page-template-front-page .entry-title,
body.page-template-front-page .entry-header {
	display: none;
}

/**
 * Bug 4: Badge "% OFF" sobrepondo titulo do produto.
 * Garante que o link do produto (container do badge) nao vaze fora
 * da area da imagem. overflow: hidden impede que o badge absolute
 * sobreponha elementos vizinhos.
 */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
	overflow: hidden;
}

/**
 * Bug 5: Icone de busca flutuante na pagina 404.
 * O parent theme Shoptimizer ou CommerceKit injeta um toggle de busca
 * que fica flutuando no canto da 404. Ocultamos via CSS.
 */
.error404 .search-toggle,
.error404 .cg-header-search-toggle,
.error404 .header-search-toggle {
	display: none;
}

/**
 * Bug 2: Menu Minha Conta — texto quebrado no desktop.
 * O parent theme Shoptimizer pode aplicar letter-spacing ou word-spacing
 * que causa quebra visual do texto. Forcamos valores normais e garantimos
 * que a navegacao tenha largura minima adequada.
 */
.woocommerce-MyAccount-navigation li a {
	letter-spacing: normal;
	word-spacing: normal;
	text-transform: none;
}

@media (min-width: 1025px) {
	.woocommerce-account .woocommerce-MyAccount-navigation {
		min-width: 200px;
	}
}

/**
 * Ocultar botao "Questions? Request a Call Back" de plugin externo.
 * Nao previsto no PRD, texto em ingles, conflita com WhatsApp button.
 */
.callback-request-btn,
.request-callback-btn,
[class*="callback"],
[class*="CallBack"],
a[href*="callback"] {
	display: none !important;
}

/**
 * Regra legada que escondia o sidebar em product_cat removida.
 * O sidebar.php agora é contextual (shop: filtros WC; blog: widgets de blog;
 * demais páginas: sem sidebar via return antecipado no template).
 */

/**
 * Remover espaco vazio excessivo no final das paginas de produto.
 */
.single-product .site-main {
	padding-bottom: 0;
}

.single-product .related.products {
	margin-bottom: 40px;
}

/* GLOBAL OVERRIDE -- Shoptimizer Customizer Inline Style Protection */

/* --- Botoes: forcar pill-shaped (unico override de forma, nao cor) --- */
body .woocommerce .button,
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .woocommerce input[type="submit"],
body .woocommerce #respond input#submit,
body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .woocommerce input.button.alt,
body .single_add_to_cart_button,
body .product .cart .single_add_to_cart_button,
body.single-product .single_add_to_cart_button,
body .checkout-button,
body .wc-block-components-button,
body .commercekit_sticky-atc .button,
body button.button.alt,
body .wp-element-button {
	border-radius: 9999px !important;
}

/* Cores de botoes e tabs: delegadas ao Customizer do Shoptimizer.
   Customizer > WooCommerce > Button Color / Text / Hover
   Customizer > Colors > Accent Color */

/* PARCELAS & DESCONTO PIX (Story S-PIX) -- Layout: Pix price (big green) + label → original price (gray) + installments */

.briluz-installments {
	display: block;
	clear: both;
	width: 100%;
	margin-top: 8px;
	line-height: 1.4;
}

/* --- Bloco Pix (preco grande verde + label) --- */
.briluz-pix-block {
	display: block;
	margin-bottom: 10px;
}

.briluz-pix-price {
	display: flex;
	align-items: baseline;
	gap: 5px;
	color: var(--color-success);
	font-weight: 400;
	font-size: 26px;
}

.briluz-pix-price svg {
	fill: var(--color-success);
	width: 18px;
	height: 18px;
	position: relative;
	top: 2px;
	flex-shrink: 0;
}

.briluz-pix-price .woocommerce-Price-amount {
	color: var(--color-success) !important;
	font-weight: 400;
	font-size: 26px;
}

.briluz-pix-price .woocommerce-Price-currencySymbol {
	font-size: 0.65em;
}

.briluz-pix-label {
	display: block;
	font-size: 13px;
	color: #555;
	font-weight: 400;
	margin-top: 2px;
}

.briluz-pix-label strong {
	font-weight: 700;
	color: var(--color-accent, var(--color-accent));
}

/* --- Bloco Parcelas (preco original + info) --- */
.briluz-installments-block {
	display: block;
}

.briluz-original-price {
	display: block;
	color: var(--color-text-medium);
	font-weight: 400;
	font-size: 18px;
	margin-top: 2px;
}

.briluz-original-price .woocommerce-Price-amount {
	color: var(--color-text-medium);
}

.briluz-installments-info {
	display: block;
	color: #555;
	font-weight: 400;
	font-size: 14px;
	margin-top: 2px;
}

.briluz-installments-info strong {
	color: var(--color-accent, var(--color-accent));
}

/* Single product — destaque */
.briluz-installments--single {
	margin-top: 10px;
	margin-bottom: 10px;
}

.briluz-installments--single .briluz-pix-price {
	font-size: 26px;
}

.briluz-installments--single .briluz-pix-price svg {
	width: 18px;
	height: 18px;
}

.briluz-installments--single .briluz-pix-label {
	font-size: 14px;
}

.briluz-installments--single .briluz-original-price {
	font-size: 18px;
}

.briluz-installments--single .briluz-installments-info {
	font-size: 14px;
}

/* Loop/listagem — compacto */
.briluz-installments--loop {
	margin-top: 4px;
}

.briluz-installments--loop .briluz-pix-block {
	margin-bottom: 4px;
}

.briluz-installments--loop .briluz-pix-price {
	font-size: 15px;
}

.briluz-installments--loop .briluz-pix-price svg {
	width: 11px;
	height: 11px;
}

.briluz-installments--loop .briluz-pix-label {
	font-size: 11px;
}

.briluz-installments--loop .briluz-original-price {
	font-size: 13px;
}

.briluz-installments--loop .briluz-installments-info {
	font-size: 11px;
}

/* Carrinho — compacto */
.briluz-installments--cart {
	margin-top: 4px;
}

.briluz-installments--cart .briluz-pix-block {
	margin-bottom: 4px;
}

.briluz-installments--cart .briluz-pix-price {
	font-size: 14px;
}

.briluz-installments--cart .briluz-pix-price svg {
	width: 11px;
	height: 11px;
}

.briluz-installments--cart .briluz-pix-label {
	font-size: 11px;
}

.briluz-installments--cart .briluz-original-price {
	font-size: 13px;
}

.briluz-installments--cart .briluz-installments-info {
	font-size: 11px;
}

/* S2: MOBILE MENU — Headers de seção + ícones outline (SVG mask) */

/* Headers de seção (Categorias, Minha conta) */
.shoptimizer-mobile-menu .briluz-menu-section {
	pointer-events: none;
	margin-top: 8px;
	border-bottom: none !important;
}

.shoptimizer-mobile-menu .briluz-menu-section a {
	color: var(--color-text-soft) !important;
	cursor: default !important;
	pointer-events: none;
	font-size: 11px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	padding: 18px 16px 6px !important;
	border-bottom: none !important;
}

.shoptimizer-mobile-menu .briluz-menu-section a::before {
	display: none !important;
}

/* Base do icone para itens regulares */
.shoptimizer-mobile-menu .menu-item:not(.briluz-menu-section)>a::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-right: 14px;
	vertical-align: -4px;
	background-color: #9a9a9a;
	/* cinza claro, paleta do fundo escuro */
	transition: background-color 0.2s ease;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* Hover/focus: icone vira laranja accent */
.shoptimizer-mobile-menu .menu-item:not(.briluz-menu-section)>a:hover::before,
.shoptimizer-mobile-menu .menu-item:not(.briluz-menu-section)>a:focus::before,
.shoptimizer-mobile-menu .menu-item:not(.briluz-menu-section).current-menu-item>a::before {
	background-color: var(--color-accent, var(--color-accent));
}

/* MARCADOR único para todas as categorias: chevron-right (›) outline */
.shoptimizer-mobile-menu .menu-ico-iluminacao>a::before,
.shoptimizer-mobile-menu .menu-ico-fios>a::before,
.shoptimizer-mobile-menu .menu-ico-tomadas>a::before,
.shoptimizer-mobile-menu .menu-ico-disjuntores>a::before,
.shoptimizer-mobile-menu .menu-ico-duchas>a::before,
.shoptimizer-mobile-menu .menu-ico-ferramentas>a::before,
.shoptimizer-mobile-menu .menu-ico-utilidades>a::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>");
}

/* USER (Minha Conta) */
.shoptimizer-mobile-menu .menu-ico-conta>a::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>");
}

/* HEART (Lista de Desejos) */
.shoptimizer-mobile-menu .menu-ico-wishlist>a::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/></svg>");
}

/* PACKAGE (Rastrear Pedido) */
.shoptimizer-mobile-menu .menu-ico-rastrear>a::before {
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 9.4 7.55 4.24'/><path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/><polyline points='3.27 6.96 12 12.01 20.73 6.96'/><line x1='12' y1='22.08' x2='12' y2='12'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 9.4 7.55 4.24'/><path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/><polyline points='3.27 6.96 12 12.01 20.73 6.96'/><line x1='12' y1='22.08' x2='12' y2='12'/></svg>");
}

/* CART-DISABLED-START (toggle) */
@supports not (display: block) {

/* S5: CARRINHO — Remover espaço topo + esconder descrição curta no item */

/* Topo sobrando: zerar margin do bloco principal do cart */
.wp-block-woocommerce-cart .wc-block-cart {
	margin-top: 0 !important;
}

/* Esconder a descrição curta do produto no item do carrinho */
.wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart-items__row .wc-block-components-product-metadata p,
.wc-block-cart-item__product>p,
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-details {
	display: none !important;
}

/* Compactar item do carrinho mobile - mantem layout original, so reduz tamanhos */
@media (max-width: 767px) {
	.wc-block-cart-items__row {
		padding: 12px 0 !important;
	}

	.wc-block-cart-item__image {
		max-width: 70px !important;
	}

	/* Nome do produto: max 2 linhas com ellipsis */
	.wc-block-cart-item__product .wc-block-components-product-name {
		display: -webkit-box !important;
		-webkit-line-clamp: 2 !important;
		line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		font-size: 13px !important;
		line-height: 1.3 !important;
	}

	/* Preco unitario menor (mantido visivel) */
	.wc-block-cart-item__product .wc-block-cart-item__prices,
	.wc-block-cart-item__product>.wc-block-components-product-price {
		font-size: 13px !important;
		margin: 4px 0 !important;
	}

	/* Total: bold para destaque */
	.wc-block-cart-item__total .wc-block-components-product-price {
		font-size: 14px !important;
		font-weight: 700 !important;
	}

	/* Quantidade selector menor */
	.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
		height: 32px !important;
		max-width: 110px !important;
	}
}

/* Esconde wrapper .woocommerce vazio na pagina do carrinho (cria espaco fantasma) */
.woocommerce-cart .shoptimizer-archive>.col-full>.woocommerce:empty,
.woocommerce-cart .col-full>.woocommerce:empty {
	display: none !important;
}

}
/* CART-DISABLED-END */

/* S5: CARRINHO — Briluz CEP Finder (busca por endereço, interna) */
.briluz-cep-finder {
	margin: 12px 0;
	font-family: var(--font-family-base);
}

.briluz-cep-finder__toggle {
	background: none;
	border: none;
	padding: 0;
	color: var(--color-accent, var(--color-accent));
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
}

.briluz-cep-finder__toggle:hover {
	color: var(--color-accent-a11y, var(--color-accent-a11y));
}

.briluz-cep-finder__panel {
	margin-top: 10px;
	padding: 12px;
	background: #f7f7f7;
	border-radius: 8px;
}

.briluz-cep-finder__fields {
	display: grid;
	grid-template-columns: 60px 1fr 1fr auto;
	gap: 6px;
}

.briluz-cep-finder__panel input[type="text"] {
	padding: 8px 10px;
	border: 1px solid var(--color-border);
	border-radius: 6px;
	font-size: 13px;
	background: var(--color-bg);
}

.briluz-cep-finder__search {
	padding: 8px 14px;
	background: var(--color-text, var(--color-text));
	color: var(--color-bg);
	border: none;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.briluz-cep-finder__search:hover {
	background: var(--color-accent, var(--color-accent));
}

.briluz-cep-finder__results {
	margin-top: 10px;
}

.briluz-cep-finder__list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 240px;
	overflow-y: auto;
}

.briluz-cep-finder__pick {
	width: 100%;
	text-align: left;
	background: var(--color-bg);
	border: 1px solid var(--color-border-light);
	padding: 8px 10px;
	margin-bottom: 4px;
	border-radius: 6px;
	font-size: 12px;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}

.briluz-cep-finder__pick:hover {
	border-color: var(--color-accent, var(--color-accent));
	background: #fff8ec;
}

.briluz-cep-finder__msg {
	font-size: 12px;
	margin: 8px 0 0;
	color: #555;
}

.briluz-cep-finder__msg--error {
	color: var(--color-error);
}

.briluz-cep-finder__msg--success {
	color: var(--color-success);
}

@media (max-width: 600px) {
	.briluz-cep-finder__fields {
		grid-template-columns: 60px 1fr;
	}

	.briluz-cep-finder__fields input[name="briluz_cep_street"] {
		grid-column: 1 / -1;
	}

	.briluz-cep-finder__search {
		grid-column: 1 / -1;
	}
}

/* CART-DISABLED-START (toggle) */
@supports not (display: block) {

/* CART PAGE — CEP CALCULATOR (refinos pontuais) */

/* Label "Calcular Frete" antes do form (igual pagina de produto) */
#custom-postcode-form .woo-better-container-current-style::before {
	content: "Calcular Frete";
	display: block;
	margin-bottom: 8px;
	font-family: var(--font-family-base);
	font-size: var(--font-size-body, 14px);
	font-weight: var(--font-weight-bold, 700);
	color: var(--color-text, var(--color-text));
}

/* Esconde link "Não sei meu CEP" no carrinho (mantido na pagina de produto) */
#custom-postcode-form .woo-better-link-current-style,
.wp-block-woocommerce-cart-order-summary-block .woo-better-link-current-style {
	display: none !important;
}

/* Esconde "Você pode estar interessado..." (cross-sells) do carrinho */
.wp-block-woocommerce-cart-items-block>.wp-block-woocommerce-product-collection {
	display: none !important;
}

}
/* CART-DISABLED-END */

/* MENU MOBILE — Busca: aplicar mesmo estilo do desktop (pill amarelo) */
.col-full-nav .site-search input.search-field,
.shoptimizer-primary-navigation .site-search input.search-field {
	background-color: rgb(71, 71, 71) !important;
	color: var(--color-bg) !important;
	border: 1px solid var(--color-highlight) !important;
	border-radius: 9999px !important;
	padding: 12px 18px 12px 42px !important;
}

.col-full-nav .site-search input.search-field::placeholder,
.shoptimizer-primary-navigation .site-search input.search-field::placeholder {
	color: rgba(255, 255, 255, 0.7) !important;
}

.col-full-nav .site-search .search-submit,
.shoptimizer-primary-navigation .site-search .search-submit {
	color: rgba(255, 255, 255, 0.7) !important;
}

/* MENU MOBILE — 3 SECOES (Conta · Categorias · Ajuda) */
/* Em desktop: esconde headers/itens custom — só categorias originais aparecem */
.briluz-menu-section,
.briluz-menu-section__item {
	display: none !important;
}

/* Mobile (<= 768px): mostra as secoes */
@media (max-width: 768px) {

	.briluz-menu-section,
	.briluz-menu-section__item {
		display: block !important;
	}

	.briluz-menu-section--header {
		padding: 18px 20px 6px !important;
		text-transform: uppercase;
		font-size: 11px !important;
		letter-spacing: 1.5px;
		color: var(--color-text-soft) !important;
		font-weight: 700;
	}

	.briluz-menu-section--header span {
		color: inherit;
	}

	.briluz-menu-section--separator {
		padding: 0 !important;
		margin: 8px 20px !important;
		border-top: 1px solid rgba(255, 255, 255, 0.12);
		height: 0 !important;
		min-height: 0 !important;
	}

	.briluz-menu-section__item a {
		display: flex !important;
		align-items: center !important;
		gap: 10px !important;
		padding: 6px 20px !important;
		color: var(--color-bg) !important;
		font-weight: 500 !important;
		text-decoration: none !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
	}

	.briluz-menu-section__icon {
		flex-shrink: 0;
		color: var(--color-text-soft);
		opacity: 0.85;
	}

	.briluz-menu-section__item--cta .briluz-menu-section__icon {
		color: var(--color-accent, var(--color-accent));
		opacity: 1;
	}

	.briluz-menu-section__item--cta a {
		color: var(--color-accent, var(--color-accent)) !important;
		font-weight: 700 !important;
	}
}

/* SOCIAL PROOF (pagina de produto, antes do Adicionar ao carrinho) */
.briluz-social-proof {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--color-bg-soft);
	color: var(--color-text-strong);
	padding: 12px 16px;
	border-radius: 8px;
	margin: 16px 0;
}

.briluz-social-proof__icon {
	flex-shrink: 0;
	color: var(--color-text-strong);
}

.briluz-social-proof__text {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.briluz-social-proof__headline {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.5px;
	margin-bottom: 2px;
}

.briluz-social-proof__sub {
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 4px;
}

.briluz-social-proof__stars {
	color: var(--color-text-strong);
	font-size: 14px;
	letter-spacing: 2px;
	line-height: 1;
}

/**
 * Hover de links: laranja accent var(--color-accent) falha WCAG AA (~2.5:1) sobre branco.
 * Substituir por tom mais escuro #cc7a00 (4.5:1) — mantem identidade laranja
 * porem com legibilidade adequada.
 */
a:hover,
a:focus {
	color: #cc7a00 !important;
}

/* CART-DISABLED-START (toggle) */
@supports not (display: block) {

/**
 * Esconde a previa de "Métodos de Entrega" no carrinho (Better Calc plugin).
 * UX: cliente nao consegue selecionar aqui, so visualiza — mostra confusao.
 * Selecao real acontece no checkout.
 */
.woo-better-shipping-methods {
	display: none !important;
}

}
/* CART-DISABLED-END */

/**
 * Notice da Minha Conta (.woocommerce-info) com botao "Ir para a loja":
 * usar flex pra alinhar texto e botao verticalmente — antes ficava no float
 * padrao do WC, com o botao "subindo" sobre o texto.
 */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-info {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px !important;
	flex-wrap: wrap !important;
	/* WC coloca o botao antes do texto no HTML — inverter pra texto-esquerda, CTA-direita */
	flex-direction: row-reverse !important;
}

/**
 * Botoes em notices da Minha Conta (ex.: "Ir para a loja" no empty state
 * de pedidos): garantir fill preto pill, igual padrao da loja.
 */
.woocommerce-account .woocommerce-info .button.woocommerce-Button,
.woocommerce-account .woocommerce-message .button.woocommerce-Button,
.woocommerce-MyAccount-content .woocommerce-info a.button {
	float: none !important;
	margin: 0 !important;
	background-color: var(--color-primary, var(--color-primary)) !important;
	color: var(--color-btn-text, var(--color-bg)) !important;
	border: 1px solid var(--color-primary, var(--color-primary)) !important;
	border-radius: var(--btn-radius, 9999px) !important;
	padding: 10px 24px !important;
	font-weight: var(--font-weight-bold, 700) !important;
	text-decoration: none !important;
	white-space: nowrap !important;
}

.woocommerce-account .woocommerce-info .button.woocommerce-Button:hover,
.woocommerce-MyAccount-content .woocommerce-info a.button:hover {
	background-color: var(--color-bg) !important;
	color: var(--color-primary, var(--color-primary)) !important;
}

/**
 * Indicador ativo da Minha Conta: a barra esquerda preta cola no texto.
 * Adicionar padding-left pra dar respiro.
 */
.woocommerce-MyAccount-navigation li.is-active>a {
	padding-left: 12px !important;
}

/* FOOTER CUSTOM BRILUZ — Estrutura completa em 4 linhas */

.site-footer.briluz-footer {
	background: #222222;
	color: #d6d6d6;
	padding: 56px 0 0;
	font-size: 14px;
	line-height: 1.5;
	margin-top: 64px;
	/* Sai do .col-full (max-width 1320px) e ocupa a viewport inteira pro
	   background preto se estender de borda a borda. */
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
}

.briluz-footer__container {
	max-width: 1403.72px;
	margin: 0 auto;
	padding: 0 41.8868px;
	box-sizing: border-box;
}

/* ----- Linha 1: 4 colunas ----- */
.briluz-footer__main {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 48px;
}

.briluz-footer__brand .briluz-footer__logo {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.briluz-footer__logo-text-wrap {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.briluz-footer__logo-text {
	font-size: 28px;
	font-weight: 900;
	color: var(--color-bg);
	letter-spacing: 1px;
	display: flex;
	align-items: center;
	gap: 4px;
}

.briluz-footer__logo-mark {
	width: 64px;
	height: 64px;
	object-fit: contain;
	flex-shrink: 0;
}

.briluz-footer__logo-sub {
	font-size: 12px;
	font-weight: 700;
	color: #ffd000;
	letter-spacing: 6px;
	margin-top: -4px;
}

.briluz-footer__about {
	color: #b8b8b8;
	line-height: 1.6;
	margin: 0 0 20px;
	max-width: 320px;
}

.briluz-footer__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.briluz-footer__contact li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #d6d6d6;
}

.briluz-footer__contact a {
	color: #d6d6d6;
	text-decoration: none;
}

.briluz-footer__contact a:hover {
	color: #ffd000 !important;
}

.briluz-footer__icon {
	color: #ffd000;
	flex-shrink: 0;
}

.briluz-footer__heading {
	font-size: 14px;
	font-weight: 700;
	color: var(--color-bg);
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin: 0 0 12px;
	padding-bottom: 8px;
	position: relative;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.briluz-footer__heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 32px;
	height: 2px;
	background: #ffd000;
}

.briluz-footer__links {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.briluz-footer__links a {
	color: #d6d6d6;
	text-decoration: none;
	transition: color 0.15s ease;
}

.briluz-footer__links a:hover {
	color: #ffd000 !important;
}

/* ----- Linha 2: Benefícios ----- */
.briluz-footer__benefits {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 24px;
	padding: 28px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.briluz-footer__benefit {
	display: flex;
	align-items: center;
	gap: 14px;
}

.briluz-footer__benefit-icon {
	color: var(--color-text-soft);
	flex-shrink: 0;
}

.briluz-footer__benefit-text strong {
	display: block;
	color: var(--color-bg);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	margin-bottom: 4px;
}

.briluz-footer__benefit-text span {
	display: block;
	color: #b8b8b8;
	font-size: 12px;
	line-height: 1.4;
}

/* ----- Linha 3: Pagamento + Segurança ----- */
.briluz-footer__trust {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	padding: 28px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.briluz-footer__trust-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-bg);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0 0 14px;
}

.briluz-footer__pay-list,
.briluz-footer__sec-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.briluz-footer__pay-item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 44px;
	padding: 6px 10px;
	background: #e8e8e8;
	border-radius: 6px;
	box-sizing: border-box;
}

.briluz-footer__pay-item img {
	max-width: 100%;
	max-height: 100%;
	height: auto;
	width: auto;
	object-fit: contain;
	display: block;
}

.briluz-footer__sec-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 14px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 6px;
}

.briluz-footer__sec-item svg {
	flex-shrink: 0;
}

.briluz-footer__sec-item strong {
	display: block;
	color: var(--color-bg);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
}

.briluz-footer__sec-item span {
	display: block;
	color: #b8b8b8;
	font-size: 11px;
}

/* ----- Linha 4: Bottom ----- */
.briluz-footer__bottom {
	padding: 20px 0 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: center;
	text-align: center;
}

.briluz-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 18px;
	color: #b8b8b8;
	font-size: 12px;
}

.briluz-footer__legal strong {
	color: var(--color-bg);
}

.briluz-footer__copyright {
	margin: 0;
	color: var(--color-text-soft);
	font-size: 12px;
}

/* ----- Mobile ----- */
@media (max-width: 1024px) {
	.briluz-footer__main {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.briluz-footer__benefits {
		grid-template-columns: repeat(2, 1fr);
	}

	.briluz-footer__trust {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

@media (max-width: 600px) {
	.site-footer.briluz-footer {
		padding-top: 40px;
	}

	.briluz-footer__main {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.briluz-footer__benefits {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/**
 * Layout 2 colunas no formulario Editar Conta (form-row-first | form-row-last).
 * WC default depende de regras antigas de float; Shoptimizer nao prove.
 * Aqui forco grid de 2 colunas com gap e wrap automatico.
 */
.woocommerce-EditAccountForm,
.woocommerce-EditAddressForm {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 24px;
}

.woocommerce-EditAccountForm>p.form-row-wide,
.woocommerce-EditAccountForm>fieldset,
.woocommerce-EditAccountForm>p.clear,
.woocommerce-EditAccountForm>.woocommerce-form__fieldset,
.woocommerce-EditAccountForm>.woocommerce-form-row--wide,
.woocommerce-EditAccountForm>p:last-of-type,
.woocommerce-EditAddressForm>p.form-row-wide {
	grid-column: 1 / -1;
}

.woocommerce-EditAccountForm>p.form-row,
.woocommerce-EditAddressForm>p.form-row {
	margin: 0;
	width: 100%;
}

.woocommerce-EditAccountForm fieldset {
	margin-top: 16px;
	padding: 0;
	border: 0;
}

.woocommerce-EditAccountForm fieldset legend {
	display: block;
	width: 100%;
	font-size: 18px;
	font-weight: var(--font-weight-bold, 700);
	margin: 0 0 20px 0;
	padding: 0;
	border-bottom: 1px solid var(--color-border, #d2d6dc);
	padding-bottom: 8px;
}

.woocommerce-EditAccountForm fieldset>p.form-row {
	margin-top: 0;
	margin-bottom: 20px;
}

/* Esconde "Você pode estar interessado..." (cross-sells) do carrinho */
.wp-block-woocommerce-cart-items-block > .wp-block-woocommerce-product-collection {
	display: none !important;
}

/* =============================================================================
   MINI-CART BUTTONS — fix vertical text alignment
   Padding 16px conflitava com height/line-height 50px do parent.
   Reset padding e usa flex pra centralizar.
   ============================================================================= */
.woocommerce-mini-cart__buttons a.button,
.widget_shopping_cart_content p.buttons a.button,
.cgkit-sidecart p.buttons a.button {
	padding: 0 20px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
}

/* Botoes Primary delegados ao Customizer (Native First).
   Secondary e Tertiary em briluz-nuclear.css. */

@media (max-width: 600px) {

	.woocommerce-EditAccountForm,
	.woocommerce-EditAddressForm {
		grid-template-columns: 1fr;
	}
}

/**
 * CTAs primarios da Minha Conta — submits de login, register, lost password,
 * save account, save address. Devem ser FILLED preto pill (consistente com o
 * botao "Adicionar ao carrinho" / "Finalizar pedido"). WC nao adiciona .alt
 * automaticamente nesses submits, dai o visual outline indesejado.
 */
.woocommerce-form-login__submit,
.woocommerce-form-register__submit,
.woocommerce-ResetPassword button[type="submit"],
.woocommerce-MyAccount-content button[type="submit"].woocommerce-Button,
.woocommerce-MyAccount-content button[type="submit"].button {
	background-color: var(--color-primary, var(--color-primary)) !important;
	color: var(--color-btn-text, var(--color-bg)) !important;
	border: 2px solid var(--color-primary, var(--color-primary)) !important;
	border-radius: var(--btn-radius, 9999px) !important;
	padding: 12px 32px !important;
	font-weight: var(--font-weight-bold, 700) !important;
	min-height: 44px !important;
}

.woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover,
.woocommerce-ResetPassword button[type="submit"]:hover,
.woocommerce-MyAccount-content button[type="submit"].woocommerce-Button:hover,
.woocommerce-MyAccount-content button[type="submit"].button:hover {
	background-color: var(--color-bg) !important;
	color: var(--color-primary, var(--color-primary)) !important;
}

/**
 * Pagina /minha-conta/edit-address/: cards de endereco e botoes "Editar".
 * Garante que cada card preencha 100% da coluna do grid e que os links
 * "Editar Faturamento/Entrega" virem mini-botoes pill.
 */
.woocommerce-Addresses .woocommerce-Address {
	width: 100% !important;
}

.woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.woocommerce-Addresses a.edit,
.woocommerce-MyAccount-content a.edit.woocommerce-button.button {
	display: inline-block;
	padding: 6px 16px !important;
	background-color: transparent !important;
	color: var(--color-primary, var(--color-primary)) !important;
	border: 1px solid var(--color-primary, var(--color-primary)) !important;
	border-radius: var(--btn-radius, 9999px) !important;
	font-size: 13px !important;
	font-weight: var(--font-weight-bold, 700) !important;
	text-decoration: none !important;
	white-space: nowrap !important;
}

/* =============================================================================
   COOKIEYES — Esconder categorias vazias no Preference Centre
   Funcionais e Desempenho não são usadas pela loja Briluz.
   ============================================================================= */
#ckyDetailCategoryfunctional,
#ckyDetailCategoryperformance {
	display: none !important;
}

.woocommerce-Addresses a.edit:hover,
.woocommerce-MyAccount-content a.edit.woocommerce-button.button:hover {
	background-color: var(--color-primary, var(--color-primary)) !important;
	color: var(--color-btn-text, var(--color-bg)) !important;
}