/* Identidade visual da 1001 Projetos (aprovada em 15/10/2026).
 * Tokens em variáveis: o Black November só redefine as variáveis. */
:root{--1001-fundo:#FFFFFF;--1001-superficie:#F4F4F2;--1001-texto:#1F1F1F;--1001-secundario:#5F6661;--1001-borda:#E4E4E0;--1001-marca:#F25C05;--1001-acao:#C2410C;--1001-acao-hover:#9A3412;--1001-pix:#15803D;--1001-preco:#1F1F1F;--1001-botao2:#EDEDEA;--1001-rodape:#1F1F1F;--1001-raio:8px;--1001-largura:1360px;--1001-titulo:clamp(1.375rem,1.1rem + 1vw,1.75rem);--1001-subtitulo:clamp(1.125rem,1rem + .5vw,1.375rem);--1001-corpo:1rem;--1001-pequeno:.875rem}
/* Variáveis do Elementor 4 (modelo atômico): o valor gravado nelas é só a amostra do editor; no site seguem as cores do kit,
 * que o Elementor declara no body (e o Black November redefine ali). Declarar em :root não serve: var() resolve vazio lá. */
body{--c1001-titulo:var(--e-global-color-secondary);--c1001-texto:var(--e-global-color-text);--c1001-acao:var(--e-global-color-accent);--c1001-pix:var(--e-global-color-138973b);--c1001-fundo:var(--e-global-color-fun1001);--c1001-sobre-cor:var(--e-global-color-txc1001);--c1001-acao-hover:var(--e-global-color-hov1001);--c1001-borda:var(--e-global-color-bor1001);--c1001-superficie:var(--e-global-color-sup1001);--c1001-linha:var(--e-global-color-lin1001);--c1001-selo-texto:var(--e-global-color-sel1001);--c1001-selo-fundo:var(--e-global-color-sef1001)}
/* Reserva das cores globais criadas em 15/10/2026 (o kit .elementor-kit-2765 define as mesmas e vence). Evita
 * texto branco sumir se o CSS do kit estiver desatualizado no cache. */
:root{--e-global-color-hov1001:#9A3412;--e-global-color-txc1001:#FFFFFF;--e-global-color-pes1001:#FFE8D6;--e-global-color-tri1001:#EEEEE7;--e-global-color-lin1001:#3A3A3A;--e-global-color-sel1001:#166534;--e-global-color-sef1001:#CAF6D9;--e-global-color-wha1001:#25D366;--e-global-color-ovl1001:#000000}
/* Escala de fonte fluida (pesquisa Madesa/MadeiraMadeira, nota zoom-referencias-1001): os widgets usam
 * var(--1001-fs-*) com o valor em rem como reserva. Mínimo em rem: o aumento de fonte do sistema também escala.
 * Nome e preço do card no tamanho medido na Madesa (14 e 16-18 px), desde 15/10/2026. */
:root{--1001-fs-h1:clamp(1.5rem,1rem + 1.6vw,2.25rem);--1001-fs-h2:clamp(1.25rem,1rem + .9vw,1.75rem);--1001-fs-h3:clamp(1.125rem,1.08rem + .2vw,1.25rem);--1001-fs-preco:clamp(1rem,.95rem + .2vw,1.125rem);--1001-fs-nome:.875rem;--1001-fs-menu:clamp(.8125rem,.75rem + .3vw,.9375rem);--1001-fs-texto:clamp(.9375rem,.9rem + .15vw,1rem);--1001-fs-detalhe:clamp(.8125rem,.78rem + .15vw,.875rem);--1001-fs-mini:.75rem}
/* Black (desde 0.36.0): a paleta mora no kit, nas cores globais "Black · …" (Elementor → Configurações do site →
 * Cores globais). Aqui só se diz qual cor do dia a dia vira qual cor Black; o hex depois da vírgula é a reserva
 * para o caso de o CSS do kit estar desatualizado no cache. Os widgets apontam para as globais do kit (texto =
 * secondary, fundo = fun1001...). O body tem a classe .elementor-kit-2765 que define as globais; body.tema-black
 * é mais específico e as troca. */
body.tema-black{--1001-fundo:var(--e-global-color-bkfundo,#141414);--1001-superficie:var(--e-global-color-bksuper,#1E1E1E);--1001-texto:var(--e-global-color-bktexto,#F2F2F2);--1001-secundario:var(--e-global-color-bksecun,#CFD3D0);--1001-borda:var(--e-global-color-bkborda,#2E2E2E);--1001-preco:var(--e-global-color-bkpreco,#FF7A2E);--1001-pix:var(--e-global-color-bkpix,#4ADE80);--1001-botao2:var(--e-global-color-bkbotao,#2A2A2A);--1001-rodape:var(--e-global-color-bkrodap,#0A0A0A)}
body.tema-black{--e-global-color-secondary:var(--e-global-color-bktexto,#F2F2F2);--e-global-color-381db5e:var(--e-global-color-bktexto,#F2F2F2);--e-global-color-text:var(--e-global-color-bksecun,#CFD3D0);--e-global-color-fun1001:var(--e-global-color-bkfundo,#141414);--e-global-color-sup1001:var(--e-global-color-bksuper,#1E1E1E);--e-global-color-bor1001:var(--e-global-color-bkborda,#2E2E2E);--e-global-color-138973b:var(--e-global-color-bkpix,#4ADE80);--e-global-color-primary:var(--e-global-color-bkpreco,#FF7A2E);--e-global-color-tri1001:var(--e-global-color-bkborda,#2E2E2E);--e-global-color-lin1001:var(--e-global-color-bkborda,#2E2E2E);--e-global-color-sef1001:var(--e-global-color-bkselof,#14532D);--e-global-color-sel1001:var(--e-global-color-bkselot,#BBF7D0)}
/* Negrito dentro de frase (<strong>/<b>) no peso da fonte global "Negrito em frase" do kit: a Poppins 700 pesa
 * bem mais que o 700 da Roboto da referência (16/10/2026). */
:where(.elementor) :is(strong,b){font-weight:var(--e-global-typography-dfr1001-font-weight,500)}
/* Fontes da loja que vêm de fora com Roboto fixo (widget Carrinho/Checkout do Elementor Pro e o campo da busca
 * FiboSearch) passam a seguir a fonte global "Texto" do kit. */
.elementor-widget-woocommerce-cart .woocommerce,.elementor-widget-woocommerce-checkout-page .woocommerce,.elementor-widget-woocommerce-my-account .woocommerce,body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input,body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input::placeholder{font-family:var(--e-global-typography-tex1001-font-family,"Poppins"),sans-serif}

/* Largura do conteúdo (pesquisa de zoom): até 1360 px com respiro lateral de 24 px (16 no celular) em todo
 * contêiner principal "em caixa". Contêiner com largura própria no Elementor (regra de 4 classes) continua mandando. */
.e-con.e-parent.e-con-boxed{--content-width:min(calc(100% - 48px),var(--container-max-width,1360px))}
@media (max-width:767px){.e-con.e-parent.e-con-boxed{--content-width:min(calc(100% - 32px),var(--container-max-width,1360px))}}

/* Foco do teclado sempre visível (acessibilidade). */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--1001-acao);outline-offset:2px}
body.tema-black :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--1001-preco)}

/* Títulos sem cor própria: o padrão do Elementor pinta com a cor primária (laranja). O desenho aprovado
 * reserva a cor para preço, selo, oferta e botão; título é texto. `body` na frente vence o padrão
 * (2 classes) e perde para a cor escolhida no widget (4 classes). */
body .elementor-widget-heading .elementor-heading-title,body .elementor-widget-theme-archive-title .elementor-heading-title,body .elementor-widget-woocommerce-product-title .elementor-heading-title{color:var(--1001-texto)}

/* Componentes: classes aplicadas nos templates do Elementor. */
.t1001-titulo .elementor-heading-title{font-size:var(--1001-titulo);font-weight:600;line-height:1.25;color:var(--1001-texto);text-align:left}
.t1001-ver-todos a,.t1001-ver-todos .elementor-button{color:var(--1001-acao);font-weight:600;background:none;padding:0;font-size:var(--1001-pequeno)}
.t1001-botao .elementor-button{background:var(--1001-acao);color:#fff;border-radius:var(--1001-raio);font-weight:600;min-height:44px}
.t1001-botao .elementor-button:hover{background:var(--1001-acao-hover)}
.t1001-botao2 .elementor-button{background:var(--1001-botao2);color:var(--1001-texto);border-radius:var(--1001-raio);font-weight:600;min-height:44px}
.t1001-pix{color:var(--1001-pix);font-weight:600}
.t1001-parcela{white-space:nowrap;color:var(--1001-secundario);font-size:var(--1001-pequeno)}

/* Black: superfícies que vêm do Elementor com cor fixa passam a seguir o tema. */
body.tema-black{background:var(--1001-fundo);color:var(--1001-texto)}
body.tema-black .t1001-superficie{background:var(--1001-superficie)}
body.tema-black .t1001-titulo .elementor-heading-title{color:var(--1001-texto)}
body.tema-black .t1001-preco,body.tema-black .t1001-preco *{color:var(--1001-preco)}

/* Acessibilidade (Lighthouse, 15/10/2026): contraste e alvo de toque em componentes de terceiros. */
body .ver-parcelas-link{color:var(--1001-acao);border-color:var(--1001-acao)}
body .ver-parcelas-link:hover,body .ver-parcelas-link:focus-visible{color:#fff;background:var(--1001-acao)}
body .ti-widget .ti-date,body .ti-widget .ti-date span,body .ti-widget .ti-read-more-active{color:var(--1001-secundario)!important}
#wc-shipping-sim-br-cep-finder a{display:inline-block;min-height:24px;line-height:24px;padding:2px 0}

/* Black: componentes com cor própria que não passam pelas globais. */
body.tema-black .e-n-accordion-item-title,body.tema-black .e-n-accordion-item-title-text{color:var(--1001-texto)}
body.tema-black .elementor-element-1f0dbd6 .elementor-button{color:var(--1001-preco)!important}
/* Depoimentos (widget Trustindex só tem tema claro): a seção continua clara no Black. */
body.tema-black .elementor-element-e367b62{--e-global-color-sup1001:#F4F4F2;--e-global-color-secondary:#1F1F1F;--1001-secundario:#5F6661;--1001-texto:#1F1F1F;background:#F4F4F2}
body.tema-black .elementor-menu-cart__main{background:var(--1001-superficie);color:var(--1001-texto)}

/* Acessibilidade no computador (Lighthouse, 15/10/2026): alvo de toque e contraste no rodapé e no filtro. */
.elementor-location-footer .elementor-icon-list-item>a{display:inline-flex;align-items:center;min-height:24px}
.wpfMainWrapper .wpfCurrencySymbol,.wpfMainWrapper .wpfFilterTaxNameWrapper{color:var(--1001-secundario)}
.wpfMainWrapper input[type=checkbox]{min-width:20px;min-height:20px}
.wpfMainWrapper .wpfFilterVerScroll li{min-height:24px;display:flex;align-items:center}

/* Grades de produto e coleção (15/10/2026, padrão Madesa): o card tem largura mínima em token e a grade
 * põe quantos couberem. Com zoom o card encolhe até o mínimo e só então sai uma coluna, em vez de saltar
 * de 4 para 2. Celular fica com as 2 colunas do widget. Carrosséis (Swiper) seguem a quantidade do widget:
 * 5 no computador e no laptop, 4 no tablet, 2 + um pedaço no celular. */
:root{--1001-card-min:200px;--1001-card-gap:16px;--1001-card-raio:12px;--1001-estrela:#F5B301}
@media (max-width:767px){:root{--1001-card-gap:12px}}
@media (min-width:768px){
.elementor-widget-loop-grid .elementor-loop-container,
.elementor-widget-woocommerce-products ul.products,
.elementor-widget-wc-products ul.products{grid-template-columns:repeat(auto-fill,minmax(var(--1001-card-min),1fr)) !important;column-gap:var(--1001-card-gap) !important}
}

/* Páginas de categoria com cards de subcategoria (Sofás, Cozinhas, Quartos... 17 páginas que compartilham o
 * título 6565f9c): cada linha vira grade com o mesmo card mínimo das grades de produto; foto quadrada ocupando o
 * card (as fotos da mídia têm tamanhos diferentes) e rótulo no tamanho do token. 15/10/2026. */
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c){display:grid !important;grid-template-columns:repeat(auto-fill,minmax(var(--1001-card-min),1fr));gap:var(--1001-card-gap) !important;align-items:start}
@media (max-width:767px){:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c){grid-template-columns:repeat(2,1fr)}}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) > .elementor-element-6565f9c{grid-column:1/-1}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) > .e-con{display:contents !important}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) > .e-con > .e-con{width:auto !important;max-width:none !important;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;gap:8px !important}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) > .e-con > .e-con:empty{display:none}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) .elementor-widget-image{width:100% !important}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) .elementor-widget-image a{display:block}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) .elementor-widget-image img{display:block;width:100% !important;height:auto !important;max-width:none !important;aspect-ratio:1/1;object-fit:cover;border-radius:var(--1001-card-raio)}
:is(.e-con,.e-con-inner):has(> .elementor-element-6565f9c) > .e-con .elementor-widget-heading .elementor-heading-title{font-size:var(--1001-fs-texto) !important;font-weight:500;line-height:1.3}

/* Home (#3335): seções de "Mais vendidos" para baixo (8ª em diante) só são montadas perto de aparecer na tela
 * (0.43.0, 16/10/2026). No celular simulado (CPU 4x, 4G): texto 2,8 → 2,5 s, foto 6,4 → 5,8 s, travamentos 0,47 → 0,33 s;
 * os 11 carrosséis montam normalmente ao rolar. As seções da 1ª tela (até os 3 cards) não entram. */
.elementor-3335>.e-con:nth-child(n+8){content-visibility:auto;contain-intrinsic-size:auto 600px}
