/*
Theme Name: Astra Child
Theme URI: http://example.com/astra-child/
Description: Astra Child Theme
Author: Julia Romani
Author URI: https://br.wordpress.org/themes/astra/
Template: astra
Version: 1.0.0
*/
/* Adicione seus estilos personalizados aqui */

/* Padding lateral do container do Astra (pai) - 15px desktop e mobile */
.ast-container,
.ast-container-fluid {
    padding-left: 15px;
    padding-right: 15px;
}

/* Respiro do conteúdo (só no topo) */
#primary {
    margin: 1em 0em 0em 0em;
}

/***** Produtos *****/
a.button.product_type_simple, a.button.product_type_variable.add_to_cart_button {
    color: white;
    font-weight: 200;
    padding: 10px 30px;
    border-radius: 8px;
}
/* Botão "Comprar" dos cards (loja/categoria/home): SEMPRE verde da marca —
   produto simples E variável (antes só o variável era verde, então o simples
   aparecia azul nas categorias). Cobre as 2 variantes do Astra (.button e on-card). */
a.add_to_cart_button {
    background-color: #1A8F3C !important;
}
a.add_to_cart_button:hover,
a.add_to_cart_button:focus {
    background-color: #157a33 !important; /* hover um tom mais escuro */
}
/* No mobile os cards ficam mais estreitos (2 por linha) -> botão "Comprar" menor */
@media (max-width:768px){
    a.button.product_type_simple,
    a.button.product_type_variable.add_to_cart_button {
        font-size: 14px;
    }
}

.price span {
    font-size: 16px;
    color: #2F1804;
}
/* No mobile o card fica mais estreito (2 por linha) -> preço menor */
@media (max-width:768px){
    .price span {
        font-size: 12px;
    }
}


/*****	Posts	*****/
.uagb-post__inner-wrap > * {
    background-color: white;
    margin: 0 !important;
    /* padding: 0 30px; */
}

.uagb-post__image {
    border-radius: 10px 10px 0 0;
    /* padding: 30px; */
    background-color: white;
}

.uagb-post__text.uagb-post__cta.wp-block-button {
    background-color: white;
    width: 100%;
    text-align: center;
    padding-bottom: 30px;
    border-radius: 0 0 10px 10px;
}

/*****	Blog	*****/
.blog .ast-blog-layout-4-grid .ast-article-post {
    width: 50%;
}

/* Mobile: impede arrasto horizontal. Alguma seção full-bleed (width:100vw,
   ex.: banner de categoria / faixa de benefícios) estoura uns pixels pro lado.
   overflow-x:clip corta o excedente lateral SEM virar contêiner de scroll
   (não afeta o scroll vertical nem o full-bleed proposital). */
@media (max-width: 921px){
    /* hidden = fallback universal (iOS Safari < 16 ignora 'clip'); clip = navegadores
       modernos (não vira contêiner de scroll). A ordem importa: clip sobrepõe quando suportado. */
    html, body { overflow-x: hidden; overflow-x: clip; overscroll-behavior-x: none; }
}

/*****	Rodapé	*****/
.tit-rodape, .sub-tit-rodape, .txt-rodape, footer a {
    color: #F4EDD6;
}

footer a:hover{
    color: white;
}


p.txt-rodape.item-contato-rodape {
    margin: 0;
}

.item-contato-rodape .ico-contato {
    width: 18px;
    height: 18px;
    vertical-align: middle;
    margin-right: 6px;
    flex-shrink: 0;
}

p.sub-tit-rodape {
    margin: 10px 0 0;
}

/* Rodapé — seção 3 (Institucionais): 5px entre os blocos e título SEM o
   margin-bottom grande do estilo compartilhado. Escopado só nesta seção
   (não afeta "Conheça nossos projetos"/"Depoimentos"). Especificidade alta
   (4 classes) p/ ganhar do !important global do .uagb-heading-text. */
.site-footer-primary-section-3.site-footer-section.site-footer-section-3 > * {
    margin-bottom: 5px;
}
.site-footer-primary-section-3.site-footer-section.site-footer-section-3 .wp-block-uagb-advanced-heading .uagb-heading-text {
    margin-bottom: 0 !important;
    margin-top: 19px !important;
    /* mesmo font-size da seção 2 (Informações de contato), só no rodapé —
       não altera os demais títulos de seção do site (regra global). */
    font-size: clamp(1.2rem, 1rem + 1.3vw, 0.5rem) !important;
}

/* Rodapé — seção 2 (Informações de contato): MESMO padrão de formatação do
   título da seção 3 (Institucionais). Lá o título é um UAGB advanced-heading
   que herda a "regra única de títulos de seção" (caixa-alta + barra-gradiente);
   aqui é um <h3 class="tit-rodape"> de widget HTML, então replicamos a regra
   na unha + as margens específicas da seção 3. Vale desktop e mobile. */
.site-footer-primary-section-2.site-footer-section.site-footer-section-2 h3.tit-rodape {
    position: relative !important;
    display: inline-block !important;
    text-transform: uppercase !important;
    text-align: left !important;
    font-size: clamp(1.2rem, 1rem + 1.3vw, 0.5rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    line-height: 1.12 !important;
    margin-top: 19px !important;       /* = seção 3 */
    margin-bottom: 0 !important;       /* = seção 3 */
    padding-bottom: 0.16em !important; /* barra mais perto do texto */
    text-decoration: none !important;
}
.site-footer-primary-section-2.site-footer-section.site-footer-section-2 h3.tit-rodape::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2.6rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--lp-navy) 0%, var(--lp-taupe) 100%);
}

/* Wrapper do rodapé: padding-bottom menor (o Astra imprime 45px inline no
   <head>, mesma especificidade — !important garante o override). */
.site-primary-footer-wrap {
    padding-top: 45px !important;
    padding-bottom: 10px !important;
}

.ast-footer-copyright {
    font-size: 13px;
}

/* Barra abaixo do rodapé (copyright): limita a largura e centraliza, alinhando
   o conteúdo com o restante do site; min-height 0 deixa a barra mais justa. */
.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row {
    max-width: 1200px;
    min-height: 0px;
    margin-left: auto;
    margin-right: auto;
}

/* Rodapé mobile: alinhar tudo à esquerda (o Astra centraliza por padrão ≤921px). */
@media (max-width:921px){
    .site-footer .footer-widget-area-inner,
    .site-footer .ast-footer-copyright{
        text-align:left !important;
        justify-content:flex-start !important;
        padding-left:15px !important;
        padding-right:15px !important;
    }
    .site-footer .footer-bar-navigation,
    .site-footer .footer-nav-wrap,
    .site-footer .ast-nav-menu{
        justify-content:flex-start !important;
        text-align:left !important;
    }
    /* "Páginas institucionais" (footer menu do Astra) vira grid centralizado no
       mobile (≤921 e ≤544) — força à esquerda e dá 15px nas laterais. */
    .site-footer .footer-widget-area[data-section="section-footer-menu"]{
        padding-left:15px !important;
        padding-right:15px !important;
        text-align:left !important;
    }
    .site-footer .footer-widget-area[data-section="section-footer-menu"] .astra-footer-tablet-vertical-menu,
    .site-footer .footer-widget-area[data-section="section-footer-menu"] .astra-footer-mobile-vertical-menu{
        justify-content:start !important;
    }
    .site-footer .footer-widget-area[data-section="section-footer-menu"] .menu-item{
        align-items:flex-start !important;
        text-align:left !important;
    }
    .site-footer .footer-widget-area[data-section="section-footer-menu"] .uagb-heading-text{
        text-align:left !important;
    }
}

/* Rodapé "Informações de contato" — SÓ no mobile (≤544px, rodapé em coluna
   única). Espelha a hierarquia visual da seção Institucionais: título na
   margem, "Vendas"/"Lojas" recuados um nível e os telefones recuados mais
   um nível embaixo deles. No desktop/tablet (≥545px) nada muda. */
@media (max-width:544px){
    /* Vendas / Lojas: 1 nível de recuo (alinha com os itens do menu
       Institucionais logo abaixo, que começam em borda+20px). */
    .site-footer p.sub-tit-rodape{
        padding-left:20px;
        font-weight:600;
    }
    /* Linha de telefone: flex remove o espaço de whitespace entre o <svg> e o
       <a>; padding recua o ícone+número um nível abaixo de "Vendas"/"Lojas". */
    .site-footer p.txt-rodape.item-contato-rodape{
        display:flex;
        align-items:center;
        padding-left:40px;
    }
    .site-footer .item-contato-rodape .ico-contato{
        margin-right:4px;
    }
}

/***** Produtos *****/
.single-product div#content {
    background-color:white;
}

/***** Produto - página única *****/
.single-product  .woocommerce-message a.button {
    color: white!important;
}

.single-product  span.single-product-category {
    display: none!important;
}

.single-product h1.product_title.entry-title {
    font-size: 28px;
}

.single-product  p.preco-sem-promocao {
    font-size: 20px;
    margin: 0;
}

.single-product  p.preco-promocao {
    font-weight: 800;
    font-size: 35px;
    color: #052139;
    margin-bottom: 10px;
}

.single-product  button.single_add_to_cart_button.button.alt {
    width:fit-content;
	min-width:30%;
    color:white;
	border-radius:12px;
	font-size:18px;
    height: fit-content;
}

.single-product button.single_add_to_cart_button.button.alt img {
    padding-right: 10px;
    box-shadow: none;
}

.single-product a.cta-whatsapp button {
	color: white;
	text-align: left;
	padding: 10px 15px;
	border-radius: 12px;
	font-size:18px;
}

.single-product a.cta-whatsapp button span {
    font-size: 13px;
    font-weight: 100;
    line-height: 1;
}

.bloco-cta{
	display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 10px;
}

p.message-cta-whatsapp {
    line-height: 1.25;
    font-size: 14px;
    font-style: italic;
    margin-top: 10px;
    background: #f7f1e7;
    padding: 10px;
    border-radius: 12px;
}

/* =========================================================
   PÁGINA DE PRODUTO — REDESIGN (LineaPlas)
   ========================================================= */
:root{
    --lp-navy:#052139;
    --lp-green:#198839;      /* era #1c9b4e (3.59:1 c/ branco); igual ao botão Comprar, 4.54:1 */
    --lp-green-dark:#127436; /* era #15833f (4.47:1 sobre #eafaf0); agora 5.43:1 */
    --lp-red:#c0392b;
    --lp-text:#374151;
    --lp-muted:#6b7280;
    --lp-border:#e5e7eb;
}

/* ----- Layout topo: galeria + infos ----- */
.single-product .lp-produto-topo{
    display:grid;
    grid-template-columns:minmax(0,46%) minmax(0,1fr);
    gap:48px;
    float:none !important;
    width:100% !important;
    align-items:flex-start;
}
.single-product .lp-produto-topo .woocommerce-product-gallery,
.single-product .lp-produto-topo .summary{
    width:100% !important;
    float:none !important;
    margin:0 !important;
    padding:0 !important;
}
.single-product .lp-produto-topo .woocommerce-product-gallery img{ border-radius:8px; }
.single-product .lp-produto-topo .flex-control-thumbs{
    display:flex; gap:10px; margin-top:12px; padding:0; list-style:none;
}
.single-product .lp-produto-topo .flex-control-thumbs li{
    width:18% !important; margin:0 !important;
    aspect-ratio:1/1; /* reserva a altura antes do <img> do thumb carregar (CLS) */
}

/* CLS: antes do flexslider iniciar, a galeria empilha todas as fotos e ao
   montar colapsa p/ 1 — o summary pulava ~700px (CLS 0.56 em rede real).
   Pré-colapsa p/ 1ª foto até existir .flex-viewport; a 2ª regra reserva a
   linha dos thumbs (só quando há 2+ fotos, senão viraria vão permanente).
   :has() é suportado nos Chrome/Safari/Firefox atuais; em browser antigo a
   regra é ignorada e fica o comportamento de hoje. */
.single-product div.product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:not(:first-child){
    display:none;
}
/* ...e trava a área da foto em 1:1 durante o init (o flexslider des-esconde
   todos os slides p/ medir e a galeria explodia 463→1932px por ~100ms).
   Fotos do catálogo são todas quadradas; o clamp sai quando o slider monta. */
.single-product div.product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{
    aspect-ratio:1/1; overflow:hidden;
}
/* há ~96ms em que .flex-viewport existe SEM height inline e com o wrapper a
   width:400% (1ª foto vira um quadrado de 4×largura) — o aspect-ratio segura
   a altura até o flexslider gravar o height inline, que então prevalece */
.single-product div.product .woocommerce-product-gallery .flex-viewport{
    aspect-ratio:1/1;
    /* width explícita: sem ela, quando o flexslider grava o height inline o
       ratio passa a calcular a LARGURA (foto 2:1 → viewport quadrado cortando
       a metade direita). Com width fixa o ratio só age no init, height auto. */
    width:100%;
}
.single-product .lp-produto-topo .woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)):not(:has(.flex-control-nav li))::after{
    content:""; display:block; height:0; padding-bottom:calc(18% + 12px); /* % de padding = largura */
}

/* ----- Breadcrumb + título ----- */
.single-product .summary .woocommerce-breadcrumb{
    /* era #9aa1a9 (2.6:1); #6d6d6d = 5.2:1 e IGUAL à cor dos links — links e
       texto na mesma cor não disparam o axe link-in-text-block */
    font-size:13px; color:#6d6d6d; margin-bottom:10px;
}
.single-product .summary .product_title.entry-title{
    color:var(--lp-navy); font-size:30px; font-weight:700; margin:0 0 0px;
}

/* ----- Bloco de preços ----- */
.single-product .lp-preco{ margin-bottom:10px; }
.single-product .preco-sem-promocao{
    color:var(--lp-red); font-size:15px; margin:0; font-weight:600;
}
/* "de" é rótulo (sem risco); só o valor leva o line-through. */
.single-product .preco-sem-promocao .lp-de{ font-size:14px; font-weight:500; color:var(--lp-muted); text-decoration:none; }
.single-product .preco-sem-promocao .lp-de-val{ text-decoration:line-through; color:#ff0000; }
.single-product .preco-promocao{
    color:var(--lp-navy); font-weight:800; font-size:30px; margin:0 0 10px; line-height:1.1;
}
.single-product .preco-promocao .lp-por{ font-size:14px; font-weight:500; color:var(--lp-muted); }
.lp-parcelas{
    display:flex; align-items:center; gap:10px; font-size:14px; color:var(--lp-text); margin-bottom:12px;
}
.lp-parcelas img{ opacity:.7; }
.lp-parcelas strong{ color:#111; }
.lp-parcelas .lp-mais-pgto{ display:block; font-size:12px; color:var(--lp-muted); text-decoration:underline; }
.lp-avista-box{
    display:flex; align-items:center; gap:12px; width:fit-content;
    background:#eafaf0; border:1px solid #bfe9cd; border-radius:8px;
    padding:8px 14px; color:var(--lp-green-dark); font-weight:700; font-size:15px; margin-bottom:10px;
}
.lp-avista-box .lp-economize{ font-size:12px; color:var(--lp-text); font-weight:400; }
.lp-pix-box{
    display:flex; align-items:center; gap:12px; width:fit-content;
    background:#f6fbff; border:1px solid #d6e6f2; border-radius:8px; padding:10px 14px;
}
.lp-pix-info{ display:flex; flex-direction:column; }
.lp-pix-linha{ display:flex; align-items:center; gap:8px; }
.lp-pix-valor{ font-weight:800; color:#0a7d3a; font-size:17px; }
.lp-pix-badge{
    background:var(--lp-green); color:#fff !important; font-size:10px; font-weight:700;
    padding:2px 7px; border-radius:4px; letter-spacing:.3px;
}
.lp-pix-sub{ font-size:12px; color:var(--lp-muted); }

/* Remove o box-shadow que o Astra aplica em toda <img> dentro do artigo
   (deixava um "fundo" cinza ao redor dos ícones PNG transparentes) */
.single-product .lp-preco img,
.lp-pix-box img,
.lp-parcelas img,
img.lp-pix-ico{ box-shadow:none !important; }

/* ----- Variações em botões ----- */
.lp-variacoes{ margin:0px 0; }
.woocommerce-js div.product form.cart .variations {
    border: 2px solid #05213926;
    position: relative;
    margin-bottom: 1em;
    width: 100%;
    border-radius: 9px;
    padding: 10px 10px 10px 10px;
}
.lp-attr{ margin-bottom:8px; }
.lp-attr-label{ display:block; font-size:12px; color:var(--lp-text); margin-bottom:0px; font-weight:600; }
.lp-options{ display:flex; flex-wrap:wrap; gap:8px; }
.lp-option{
    background:#fff; border:1px solid #cbd5e1; color:#1f2937; border-radius:6px;
    padding:9px 18px; font-size:14px; cursor:pointer; transition:.15s; line-height:1;
}
.lp-option:hover,
.lp-option:active{
    border-color:#052139 !important;
    background:#052139 !important;
    color:#ffffff !important;
}
.lp-option:focus{ outline:none; }
.lp-option.selected,
.lp-option.selected:hover,
.lp-option.selected:focus,
.lp-option.selected:active{
    border-color:#052139 !important;
    background:#052139 !important;
    color:#fff !important;
}
.lp-select-hidden{ display:none; }
.lp-reset{ display:inline-block; font-size:12px; margin-top:6px; color:var(--lp-muted); }
.single-product .woocommerce-variation-price,
.single-product .woocommerce-variation-availability{ display:none !important; }
.single-product form.cart .quantity{ display:none !important; }
.single-product .single_variation_wrap .woocommerce-variation.single_variation{ display:none !important; }

/* ----- CTA: COMPRAR + WhatsApp ----- */
.single-product .bloco-cta{
    display:grid; grid-template-columns:1fr 1.4fr; gap:12px; align-items:stretch; margin-top:14px;
}
.single-product button.single_add_to_cart_button.button.alt,
.single-product button.single_add_to_cart_button.button.alt:focus,
.single-product button.single_add_to_cart_button.button.alt.disabled,
.single-product button.single_add_to_cart_button.button.alt:disabled{
    background-color:#052139 !important;
    color:#fff !important;
    display:flex; align-items:center; justify-content:center; gap:10px;
    width:100%; min-width:0; border-radius:10px; font-size:16px; padding:16px; height:100%; border:none;
}
.single-product button.single_add_to_cart_button.button.alt::before{
    content:""; width:20px; height:20px; flex:0 0 20px;
    background:url(assets/cart.svg) center/contain no-repeat;
}
.single-product button.single_add_to_cart_button.button.alt:hover{ background-color:#0a2f50 !important; }
.single-product button.single_add_to_cart_button.button.alt.disabled,
.single-product button.single_add_to_cart_button.button.alt:disabled{ opacity:.55; cursor:not-allowed; }
.single-product a.cta-whatsapp{ display:block; }
.single-product a.cta-whatsapp button{
    background:var(--lp-green); width:100%; height:100%; cursor:pointer; border:none;
    display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:10px;
    text-align:left; padding:12px 16px; border-radius:10px; color:#fff;
}
.single-product a.cta-whatsapp button img{ grid-row:1 / span 2; }
.single-product a.cta-whatsapp button .lp-wpp-titulo{ grid-column:2; font-size:16px; font-weight:700; }
.single-product a.cta-whatsapp button .lp-wpp-sub{ grid-column:2; font-size:12px; font-weight:300; line-height:1.25; }
.single-product a.cta-whatsapp button:hover{ background:var(--lp-green-dark); }

/* ----- Seções full-width ----- */
.lp-sec{ position:relative; margin-top:36px; }
.lp-container{
    max-width: 1200px;
    /* margin: 0 auto; */
    /* padding: 0 0px; */
}
.woocommerce-js h2{
    margin-bottom:0em;
}
.lp-h2{
    color:var(--lp-navy);
    font-size:18px;
    font-weight:700;
    /* border-bottom:2px solid var(--lp-navy); */
    display:inline-block;
    /* padding-bottom:4px; */
    margin:0 0 18px;
    width:100%;
    /* text-align:center; */
}
.lp-center{ display:block; text-align:center; border:none; }
.lp-placeholder{
    background:#f3f4f6; border:2px dashed #cbd5e1; color:#9aa1a9; font-size:20px; font-weight:700;
    text-align:center; padding:50px 20px; border-radius:8px;
}
.lp-placeholder small{ display:block; font-size:12px; font-weight:400; margin-top:8px; }

/* Banner + benefícios */
.lp-banner-sec{ margin-top:24px; }
.lp-banner-img{ display:block; width:100%; height:auto; }
/* Mobile: imagem da categoria full-width (ponta a ponta, igual à barra de
   benefícios) e encostada na barra (sem gap). */
@media (max-width:1024px){
    .lp-banner-sec .lp-container{
        width:100vw;
        max-width:none;
        margin-left:calc(50% - 50vw);
        padding-left:0;
        padding-right:0;
    }
}

/* Faixa de benefícios (bloco c28d4bbf consumido da home) — o Spectra não
   carrega o CSS da home aqui, então estilizamos a estrutura genérica. */
.lp-beneficios{ margin-top:0; }
/* Neutraliza o alignfull do bloco para ele respeitar a largura da .site-main */
.lp-beneficios .uagb-block-c28d4bbf.alignfull{
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    left: auto;
}
.lp-beneficios .uagb-block-c28d4bbf{
    background-color: var(--ast-global-color-0, #052139);
    padding: 15px 0;
    display: flex;
    justify-content: center;
}
/* No front (home) o bloco renderiza SEM o wrapper .lp-beneficios — é root
   container alignfull. Override direto no seletor real para o padding vertical
   pedido (vence o uag-css por especificidade .wp-block + ordem de carga). */
.wp-block-uagb-container.uagb-block-c28d4bbf{
    padding-top: 15px;
    padding-bottom: 15px;
}
/* Desktop: a barra de benefícios ocupava 100% da área de conteúdo e ficava mais
   larga que o banner (.lp-container = 1200px, alinhado à esq.). Limita à MESMA
   caixa do banner para os dois terem a mesma largura/borda direita. */
@media (min-width:1025px){
    .lp-banner-sec .lp-beneficios{
        max-width: 1200px; /* = .lp-container do banner */
        margin: 0;          /* alinhado à esquerda, igual ao banner */
    }
}

/* ===== Barra de benefícios MOBILE em cards (Inmetro full + 2x2) =====
   Markup gerado em inc/home-beneficios-mobile.php (substitui o bloco 850099a1).
   Visibilidade (só mobile/tablet) vem da classe uag-hide-desktop do Spectra. */
/* Espaçamentos/ícone/fonte enxutos para o texto de cada selo caber em no
   máximo 2 linhas mesmo em telas estreitas (360px) — "Spas e Banheiras até
   10x" era o pior caso e quebrava em 3 linhas. */
.lp-benef-mob{
    background: var(--ast-global-color-0, #052139);
    padding: 12px 6px;
}
.lp-benef-mob .lp-benef-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.lp-benef-mob .lp-benef-card{
    display: flex;
    align-items: center;
    gap: 7px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 10px;
    padding: 10px;
    box-sizing: border-box;
}
.lp-benef-mob .lp-benef-card--full{ width: 100%; justify-content: center; }
.lp-benef-mob .lp-benef-ico{
    width: 28px; height: 28px; flex: 0 0 28px;
    object-fit: contain;
}
.lp-benef-mob .lp-benef-txt{
    color: #fff; font-size: 12px; font-weight: 700; line-height: 1.2;
}
/* Produto: barra de benefícios = MESMA da home. Alterna desktop/mobile no mesmo
   corte da home (1024px); no mobile a barra em cards fica full-bleed (full-width). */
@media (max-width:1024px){
    .lp-beneficios .uagb-block-c28d4bbf{ display:none !important; }   /* esconde a barra desktop no mobile */
    .lp-beneficios .lp-benef-mob{
        width:100vw;
        margin-left:calc(50% - 50vw);
    }
}
@media (min-width:1025px){
    .lp-beneficios .lp-benef-mob{ display:none !important; }          /* esconde a barra mobile no desktop */
}
.lp-beneficios .uagb-container-inner-blocks-wrap{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 18px 44px;
    max-width: 1180px;
    width: 100%;
    margin: 0 auto;
}
.lp-beneficios .uagb-container-inner-blocks-wrap > .wp-block-uagb-container{
    display: flex;
    align-items: center;
    gap: 12px;
    width: auto;
}
.lp-beneficios .uagb-container-inner-blocks-wrap > .wp-block-uagb-container > .wp-block-uagb-container{
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}
.lp-beneficios figure{ margin: 0; line-height: 0; }
.lp-beneficios figure img{ width: auto; max-height: 40px; }
.lp-beneficios p{ margin: 0; line-height: 1.25; }
/* Tablet (768–880px): 2 colunas. */
@media (min-width:768px) and (max-width:880px){
    .lp-beneficios .uagb-container-inner-blocks-wrap{
        flex-wrap:wrap !important;
        justify-content:flex-start !important;
        gap:16px 24px;
        padding:16px 20px;
    }
    .lp-beneficios .uagb-container-inner-blocks-wrap > .wp-block-uagb-container{
        flex:1 1 42% !important;   /* 2 por linha */
    }
}
/* Mobile (≤767px): empilha em 1 coluna, igual à home. */
@media (max-width:767px){
    .lp-beneficios .uagb-container-inner-blocks-wrap{
        flex-direction:column !important;
        flex-wrap:nowrap !important;
        align-items:flex-start !important;
        gap:14px !important;
        padding:16px 18px;
    }
    .lp-beneficios .uagb-container-inner-blocks-wrap > .wp-block-uagb-container{
        flex:1 1 100% !important;
        width:100% !important;
    }
    .lp-beneficios p{ font-size:14px; }
}

/* Planta + descrição */
.lp-planta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
/* Produto sem planta baixa: 1 coluna, descrição ocupa a largura toda */
.lp-planta-grid.lp-sem-planta{ grid-template-columns:1fr; }
/* Coluna única tem espaço: mostra a descrição inteira, sem clamp nem fade */
.lp-planta-grid.lp-sem-planta .lp-desc-conteudo{ max-height:none; }
.lp-planta-grid.lp-sem-planta .lp-desc-conteudo::after{ display:none; }
.lp-planta-col img{ max-width:100%; height:auto; border:1px solid var(--lp-border); border-radius:6px; }
.lp-planta-nome{ text-transform:uppercase; color:#052139; font-weight:600; margin:0 0 5px; font-size:23px; }
.lp-planta-download{
    display:inline-flex; align-items:center; gap:8px; margin-top:14px;
    background:#052139; color:#fff; text-decoration:none;
    border-radius:6px; padding:9px 20px; font-size:14px; font-weight:600;
    transition:background .15s ease;
}
.lp-planta-download:hover,
.lp-planta-download:focus{ background:#1c9b4e; color:#fff; }
.lp-planta-download svg{ flex:0 0 auto; }
.lp-desc-col .lp-desc-conteudo{
    max-height: 570px;
    overflow: hidden;
    position: relative;
    color: #4b5563;
    line-height: 1.75;
}
.lp-desc-col.aberto .lp-desc-conteudo{ max-height:4000px; }
.lp-desc-col .lp-desc-conteudo::after{
    content:""; position:absolute; bottom:0; left:0; right:0; height:60px;
    background:linear-gradient(transparent,#fff);
}
.lp-desc-col.aberto .lp-desc-conteudo::after{ display:none; }
.lp-ver-mais{
    margin-top:14px; background:#1f2937; border:1px solid #1f2937; border-radius:6px;
    padding:8px 22px; cursor:pointer; color:#ffffff; font-size:13px;
}
.lp-ver-mais:hover,
.lp-ver-mais:focus,
.lp-ver-mais:active{
    border-color:var(--lp-navy) !important;
    color:#ffffff !important;
    background:var(--lp-navy) !important;
}
.lp-desc-col.aberto .lp-ver-mais{
    background:#1f2937;
    color:#ffffff;
    border-color:#1f2937;
}

/* Institucional */
hr{ background-color:#ccccccb3; border:0; height:1px; margin-bottom:1.5em; }
.lp-inst-hr{ border:0; margin:0 0 40px; }
.lp-inst-texto{ text-align:center; max-width:920px; margin:0 auto 26px; }
.lp-inst-titulo{ color:var(--lp-green-dark); font-size:24px; font-weight:700; margin:0 0 14px; }
.lp-inst-corpo{ color:#4b5563; line-height:1.75; }
.lp-inst-imgs{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.lp-inst-img,.lp-inst-img picture{ display:block; }
.lp-inst-img img{ width:100%; height:100%; display:block; border-radius:6px; object-fit:cover; }
.lp-inst-html{ display:block; }
.lp-inst-html img,.lp-inst-html iframe,.lp-inst-html video{ max-width:100%; height:auto; display:block; }
.lp-inst-ph{ min-height:300px; display:flex; align-items:center; justify-content:center; }

/* Avaliações */
.lp-aval-grid{ display:block; }

/* Esconde só o span (linha de baixo) do rating-text do widget Trustindex */
.ti-rating-text > span{ display:none !important; }
/* A foto de perfil do negócio no cabeçalho do widget (URL do Google) quebrou;
   substitui pelo ícone da marca. Mira pelo alt (= nome do negócio), p/ não pegar
   os avatares das avaliações. Caminho relativo ao CSS (funciona em subpasta). */
.ti-widget img[alt="Lineaplas Banheiras"]{ display:none !important; }
.ti-widget .ti-profile-img:has(img[alt="Lineaplas Banheiras"]),
.ti-widget .ti-header .ti-profile-img{
    width:48px !important; height:48px !important; border-radius:50% !important;
    background:#fff url(assets/avatar-lineaplas.webp) center/contain no-repeat !important;
}

/* Cards de opinião no estilo do widget Trustindex */
.lp-aval-carrossel{ align-items:stretch; }
.lp-aval-card{
    display:flex; flex-direction:column;
    background:#f5f6f7; border:1px solid #ececec; border-radius:12px; padding:18px;
}
.lp-aval-head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.lp-aval-avatar{
    width:44px; height:44px; border-radius:50%; object-fit:cover; flex:0 0 44px;
    background:#dfe3e8; display:block;
}
.lp-aval-nome{ font-weight:700; margin:0; color:#1f2937; font-size:15px; }
.lp-aval-stars{ color:#fbbc04; font-size:15px; letter-spacing:2px; margin-bottom:8px; }
.lp-aval-texto{ font-size:14px; color:#4b5563; margin:0; line-height:1.5; }
.lp-aval-carrossel .lp-aval-card{ flex:0 0 calc((100% - 40px) / 3); box-sizing:border-box; }
.lp-aval-carrossel .lp-aval-ph{ flex:0 0 calc((100% - 40px) / 3); min-height:200px; }
.lp-aval-google-ph{ min-height:320px; }

/* Relacionados (carrossel) */
.lp-carrossel{ display:flex; align-items:center; justify-content:center; gap:14px; }
.lp-carr-track{
    display: flex;
    gap: 20px;
    overflow-x: auto;                       /* auto -> permite arrastar com o dedo no mobile */
    -webkit-overflow-scrolling: touch;      /* rolagem com inércia no iOS */
    overscroll-behavior-x: contain;         /* não "vaza" o arraste p/ a página (faixa branca) */
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 4px;               /* = padding-left; sem isso o snap "corrige" 4px no load e o Chrome aborta a medição de LCP (NO_LCP no PSI) */
    padding: 8px 4px;
    flex: 0 1 auto;
    max-width: 100%;
    scrollbar-width: none;                  /* esconde a barra (Firefox) */
}
.lp-carr-track::-webkit-scrollbar{ display: none; }  /* esconde a barra (Chrome/Safari) */
.lp-card-prod{
    flex:0 0 250px; scroll-snap-align:start; text-decoration:none; color:inherit;
    border:1px solid #eee; border-radius:10px; padding:12px; background:#fff; transition:.15s;
    display:flex; flex-direction:column;
}
.lp-card-prod:hover{ box-shadow:0 3px 12px rgba(0,0,0,.1); }
.lp-card-img img{ width:100%; height:auto; border-radius:6px; }

/* Relacionados: usa o MESMO card do WooCommerce e o MESMO carrossel (.lp-ofertas-carr)
   da seção "Ofertas".
   No DESKTOP a seção já fica dentro do .lp-container (1200px) = mesma largura/cards da
   Ofertas. No MOBILE/tablet o conteúdo do produto tem um recuo maior, então damos a
   mesma "caixa" full-bleed (10px de recuo) da Ofertas p/ os cards saírem do mesmo tamanho. */
@media (max-width:1024px){
    .lp-rel-sec .lp-carrossel{
        width:calc(100vw - 20px);
        margin-left:calc(50% - 50vw + 10px);
        box-sizing:border-box;
    }
}

/* ===== Seção "Encontre pela sua necessidade" (home) ===== */
.lp-necessidade{
    /* largura full vem do alignfull (igual à barra de benefícios) */
    margin-top:0; margin-bottom:0;          /* colado na barra de benefícios */
    background:#eef4fb; padding:15px 15px !important; text-align:center;
}
.lp-necessidade .lp-necessidade-titulo{
    color:#052139; font-size:22px; font-weight:700; margin:0 0 16px;
    display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
}
.lp-necessidade .wp-block-buttons{ justify-content:center; gap:10px; }
.lp-necessidade .wp-block-button__link{
    background:#fff; color:#1f2937; border:1px solid #c9d6e5;
    border-radius:50px; padding:8px 18px; font-size:1.25rem; font-weight:700;
}
.lp-necessidade .wp-block-button__link:hover{ border-color:#052139; color:#052139; background:#fff; }
.lp-necessidade .lp-chip-destaque .wp-block-button__link{
    background:#374151; color:#fff; border-color:#374151;
}
.lp-necessidade .lp-chip-destaque .wp-block-button__link:hover{ background:#1f2937; color:#fff; }

/* ===== Seção "Compre com um representante" (home) — card de transição ===== */
.lp-representante{
    position:relative; z-index:2;
    max-width:1180px;
    margin:-79px auto 32px;            /* sobe sobre a seção acima (bloco de transição) */
    background:#eef4fb;
    border:3px solid #052139; border-radius:14px;
    box-shadow:0 6px 24px rgba(5,33,57,.06);
    padding:26px 28px;
}
.lp-representante .lp-rep-inner{ gap:14px 24px; }
.lp-representante .lp-rep-texto{ text-align:left; }
.lp-rep-titulo{ color:#1565c0; font-size:20px; font-weight:700; margin:0 0 4px; }
.lp-rep-sub{ color:#4b5563; font-size:14px; margin:0; }
.lp-rep-btn .wp-block-button__link{
    background:#16a34a; color:#fff; border-radius:6px; padding:12px 22px;
    font-weight:600; display:inline-flex; align-items:center; gap:8px;
}
.lp-rep-btn .wp-block-button__link:hover{ background:#15803d; color:#fff; }
.lp-rep-btn .wp-block-button__link::before{
    content:""; display:inline-block; width:18px; height:18px; flex-shrink:0;
    background:url(assets/whatsapp.svg) center/contain no-repeat;
}

/* ===== Selo de desconto "X% Off" (vermelho, canto superior esquerdo) ===== */
.woocommerce ul.products li.product,
.lp-card-img,
.single-product .woocommerce-product-gallery{ position:relative; }
.woocommerce span.onsale,
.lp-desconto,
.wc-block-grid__product .wc-block-grid__product-onsale{
    position:absolute !important; top:5px !important; left:5px !important; right:auto !important; margin:0 !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:30px !important; height:30px !important; box-sizing:border-box !important;
    padding:0 12px !important;            /* folga interna nas laterais */
    background-color:#052139 !important; color:#ffffff !important;
    font-weight:600 !important; font-size:11px !important; line-height:1.1 !important; text-align:center !important;
    border-radius:50% !important;          /* círculo */
    z-index:9 !important; min-width:0 !important; min-height:0 !important; transform:none !important;
}
/* Esconde o selo "Sale!" nativo do Astra — usamos o nosso (.onsale.lp-desconto).
   Só o selo: ast-on-card-button também é o botão de comprar do card, não mexer nele. */
.ast-onsale-card{ display:none !important; }
/* Preço De/Por nos cards de produto (listagens) */
.lp-pl-de{ display:block; color:#9aa3af; font-size:13px; font-weight:400; line-height:1.2; }
.lp-pl-de del{ text-decoration:line-through; }
.lp-pl-por{ display:block; color:var(--lp-navy); font-weight:700; font-size:18px; }
span.lp-pl-por{ font-size:19px; }
.lp-pl-economize{ display:block; color:#1a8f3c !important; font-size:13px; font-weight:600; line-height:1.3; margin-top:2px; }
.lp-pl-parcelas{ display:block; color:#6b7280; font-size:12px; font-weight:400; line-height:1.3; margin-top:2px; }
span.lp-pl-parcelas{ color:#052139; font-size:13px; }
/* No mobile o card fica mais estreito (2 por linha) -> textos de preço menores.
   Fica DEPOIS das regras base p/ vencer a especificidade igual de span.lp-pl-* */
@media (max-width:768px){
    span.lp-pl-por{ font-size:15px; }
    span.lp-pl-economize{ font-size:11px; }
    span.lp-pl-parcelas{ font-size:10px; }
}

.lp-card-nome{ font-size:14px; margin:10px 0 6px; color:#1f2937; font-weight:600; text-align:center; flex:1 1 auto; }
.lp-card-preco{ color:var(--lp-navy); font-weight:700; text-align:center; }
.lp-card-preco del{ color:var(--lp-muted); font-weight:400; font-size:13px; }
.lp-carr-nav{
    background:var(--lp-navy); color:#fff; border:none;
    width:30px; height:30px; min-width:30px; flex:0 0 30px; padding:0;
    box-sizing:border-box; border-radius:50%;
    display:none; align-items:center; justify-content:center;
    font-size:26px; line-height:1; cursor:pointer;
    box-shadow:0 2px 6px rgba(0,0,0,.18);
    -webkit-tap-highlight-color:transparent;
}
.lp-carrossel.lp-has-overflow .lp-carr-nav{ display:flex; }
.lp-carr-nav:hover{ background:#0a2f50; }
/* setas (prev/next): sem efeito de :hover/:active/:focus */
.lp-carr-prev:hover, .lp-carr-next:hover,
.lp-carr-prev:active, .lp-carr-next:active,
.lp-carr-prev:focus, .lp-carr-next:focus,
.lp-carr-prev:focus-visible, .lp-carr-next:focus-visible{
    background:var(--lp-navy); color:#ffffff; outline:none; box-shadow:0 2px 6px rgba(0,0,0,.18); transform:none;
}

/* ===== Ofertas (home): carrossel sobre o shortcode [products], card Woo intacto ===== */
.lp-ofertas-carr{ gap:10px; }
.lp-ofertas-carr .lp-carr-track.products{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto; gap:20px; margin:0; padding:8px 4px;
    overscroll-behavior-x:contain;                   /* não "vaza" o arraste p/ a página (faixa branca) */
    scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scroll-padding-left:4px;                         /* = padding-left; evita snap no load (NO_LCP no PSI) */
    -ms-overflow-style:none; scrollbar-width:none;   /* esconde barra */
    flex:1 1 auto; max-width:100%; width:100%;
}
.lp-ofertas-carr .lp-carr-track.products::-webkit-scrollbar{ display:none; }
.lp-ofertas-carr .lp-carr-track.products::before,
.lp-ofertas-carr .lp-carr-track.products::after{ content:none !important; display:none !important; }
.lp-ofertas-carr ul.products li.product{
    float:none !important; clear:none !important; margin:0 !important;
    flex:0 0 calc((100% - 60px) / 4); max-width:calc((100% - 60px) / 4);  /* 4 por vez (desktop) */
    box-sizing:border-box; scroll-snap-align:start;
}
/* Imagem do card: box QUADRADO + contain -> normaliza fotos paisagem/retrato
   (ex.: Cleo 2560x1280, Serena 1080x1292) que ficavam maiores que as quadradas. */
.lp-ofertas-carr ul.products li.product img{
    width:100% !important; height:auto !important;
    aspect-ratio:1 / 1; object-fit:contain !important; background:#fff;
}
@media (max-width:1024px){
    .lp-ofertas-carr ul.products li.product{
        flex-basis:calc((100% - 20px) / 2); max-width:calc((100% - 20px) / 2);  /* 2 por vez (tablet) */
    }
}
@media (max-width:600px){
    .lp-ofertas-carr ul.products li.product{
        flex-basis:calc((100% - 20px) / 2); max-width:calc((100% - 20px) / 2);   /* 2 por vez (mobile) */
    }
}
/* Setas das Ofertas SOBREPOSTAS nas bordas -> o trilho ocupa 100% e os cards
   ficam maiores (mesma técnica dos Projetos). */
.lp-ofertas-carr{ position:relative; gap:0; }
.lp-ofertas-carr .lp-carr-track.products{ width:100%; }
.lp-ofertas-carr.lp-has-overflow .lp-carr-nav{
    position:absolute; top:calc(50% - 15px); z-index:5;
}
.lp-ofertas-carr .lp-carr-prev{ left:-2px; }
.lp-ofertas-carr .lp-carr-next{ right:-2px; }

/* ===== Conheça nossos projetos (home): carrossel igual às Ofertas ===== */
.lp-projetos-carr{ gap:10px; }
.lp-projetos-carr .lp-carr-track{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto; margin:0; padding:8px 4px;
    gap:6px !important; column-gap:6px !important;   /* !important p/ vencer o column-gap:10px do UAGB */
    scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scroll-padding-left:4px;                         /* = padding-left; evita snap no load (NO_LCP no PSI) */
    -ms-overflow-style:none; scrollbar-width:none;   /* esconde barra */
    flex:1 1 auto; max-width:100%; width:100%;
}
.lp-projetos-carr .lp-carr-track::-webkit-scrollbar{ display:none; }
/* Vídeos mais PRÓXIMOS: o vídeo é limitado a 230px, mas a coluna é 25% (~300px),
   então sobra espaço em volta. Encolho a coluna p/ ~236px (abraça o vídeo) e
   centralizo a faixa -> o espaço some e os vídeos ficam juntos. */
.uagb-block-a3ba7514 .uagb-container-inner-blocks-wrap{
    column-gap:12px !important; justify-content:center !important;
}
.uagb-block-a3ba7514 .wp-block-uagb-container:has(.wp-block-embed){
    flex:0 0 236px !important; max-width:236px !important;
}
.lp-projetos-carr .lp-carr-track > .wp-block-uagb-container{
    flex:0 0 calc((100% - 18px) / 4); max-width:calc((100% - 18px) / 4);  /* 4 por vez (desktop) — 3 gaps de 6px */
    width:auto !important;                 /* anula o width:25% gerado pelo UAG */
    margin:0 !important; box-sizing:border-box; scroll-snap-align:start;
}
@media (max-width:1024px){
    .lp-projetos-carr .lp-carr-track > .wp-block-uagb-container{
        flex-basis:calc((100% - 6px) / 2); max-width:calc((100% - 6px) / 2);  /* 2 por vez (tablet) */
    }
}
@media (max-width:600px){
    .lp-projetos-carr .lp-carr-track > .wp-block-uagb-container{
        flex-basis:100%; max-width:100%;   /* 1 por vez (mobile) */
    }
}
/* Setas SOBREPOSTAS nas bordas do vídeo (saem do fluxo) -> a faixa ocupa toda
   a largura e o vídeo fica maior, principalmente no mobile. */
.lp-projetos-carr{ position:relative; gap:0; }
.lp-projetos-carr .lp-carr-track{ padding-left:0; padding-right:0; width:100%; }
.lp-projetos-carr.lp-has-overflow .lp-carr-nav{
    position:absolute; top:calc(50% - 15px);   /* centraliza (botão = 30px), sem transform p/ não saltar no hover */
    z-index:5;
}
.lp-projetos-carr .lp-carr-prev{ left:6px; }
.lp-projetos-carr .lp-carr-next{ right:6px; }
@media (max-width:600px){
    /* mais largura útil pro vídeo no mobile + setas um pouco menores e translúcidas */
    .uagb-block-a3ba7514{ padding-left:6px !important; padding-right:6px !important; }
    .lp-projetos-carr .lp-carr-nav{ width:30px; height:30px; min-width:30px; flex-basis:30px; font-size:20px; opacity:.92; }
    .lp-projetos-carr.lp-has-overflow .lp-carr-nav{ top:calc(50% - 15px); }
    .lp-projetos-carr .lp-carr-prev{ left:2px; }
    .lp-projetos-carr .lp-carr-next{ right:2px; }
}

/* ===== "Conheça nossos projetos": miniatura clicável + modal de vídeo (9:16) =====
   JS em inc/home-projetos-video-modal.php troca o iframe pela .lp-video-thumb. */
/* Limita o tamanho do vídeo (9:16) e centraliza no card — em todas as telas. */
.uagb-block-a3ba7514 .wp-block-embed{
    max-width:230px; margin-left:auto; margin-right:auto;
}
.lp-video-thumb{
    position:absolute; inset:0; width:100%; height:100%;
    padding:0; border:0; background:#000; cursor:pointer; overflow:hidden;
    border-radius:inherit; display:block;
}
.lp-video-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.lp-video-thumb__play{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:56px; height:56px; border-radius:50%; background:#e10600;
    box-shadow:0 2px 10px rgba(0,0,0,.35); transition:transform .15s ease;
}
.lp-video-thumb:hover .lp-video-thumb__play{ transform:translate(-50%,-50%) scale(1.08); }
.lp-video-thumb__play::after{
    content:""; position:absolute; top:50%; left:54%; transform:translate(-50%,-50%);
    border-style:solid; border-width:11px 0 11px 18px;
    border-color:transparent transparent transparent #fff;
}

/* Modal/lightbox do vídeo */
body.lp-modal-open{ overflow:hidden; }
.lp-video-modal{ position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center; }
.lp-video-modal.is-open{ display:flex; }
.lp-video-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.82); }
.lp-video-modal__box{
    position:relative; z-index:1;
    width:min(92vw, calc(88vh * 9 / 16)); max-width:420px;
}
.lp-video-modal__frame{
    position:relative; aspect-ratio:9 / 16; background:#000;
    border-radius:12px; overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,.5);
}
.lp-video-modal__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.lp-video-modal__close{
    position:absolute; top:-44px; right:-2px; width:40px; height:40px;
    border:0; background:transparent; color:#fff; font-size:36px; line-height:1; cursor:pointer;
    /* neutraliza o estilo global de button do Astra (padding 20px 40px,
       radius 50px e bg escuro no hover viravam uma "pílula" torta) */
    padding:0; box-sizing:border-box; border-radius:50%; box-shadow:none;
}
.lp-video-modal__close:hover,
.lp-video-modal__close:focus,
.lp-video-modal__close:active{
    background:transparent; border:0; color:#fff; box-shadow:none; opacity:.7;
}

/* ===== Posts em destaque (home): carrossel por scroll (sem slick), igual Ofertas =====
   Mira o próprio bloco (.uagb-block-5c45efaa) p/ o layout funcionar mesmo sem o JS
   das setas. O is-carousel é removido no servidor (inc/home-posts-destaque-carousel.php). */
.lp-posts-carr{ gap:10px; }
.uagb-block-5c45efaa{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto; gap:20px; margin:0; padding:8px 4px;
    scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scroll-padding-left:4px;                         /* = padding-left; evita snap no load (NO_LCP no PSI) */
    -ms-overflow-style:none; scrollbar-width:none;   /* esconde barra */
    flex:1 1 auto; max-width:100%; width:100%; box-sizing:border-box;
}
.uagb-block-5c45efaa::-webkit-scrollbar{ display:none; }
.uagb-block-5c45efaa > article.uagb-post__inner-wrap{
    flex:0 0 calc((100% - 60px) / 4); max-width:calc((100% - 60px) / 4);  /* 4 por vez (desktop) */
    width:auto !important;                 /* anula a largura de coluna gerada pelo UAG */
    margin:0 !important; box-sizing:border-box; scroll-snap-align:start;
}
@media (max-width:1024px){
    .uagb-block-5c45efaa > article.uagb-post__inner-wrap{
        flex-basis:calc((100% - 20px) / 2); max-width:calc((100% - 20px) / 2);  /* 2 por vez (tablet) */
    }
}
@media (max-width:767px){
    .uagb-block-5c45efaa > article.uagb-post__inner-wrap{
        flex-basis:100%; max-width:100%;   /* 1 por vez (mobile) */
    }
}

/* ----- Responsivo ----- */
@media (max-width:880px){
    .single-product .lp-produto-topo{ grid-template-columns:1fr; gap:24px; }
    .lp-planta-grid, .lp-inst-imgs, .lp-aval-grid{ grid-template-columns:1fr; }

    /* Institucional no mobile: imagem e bloco HTML em full width (ignora padding
       do container/Astra com a técnica de 100vw centralizado). */
    .lp-inst-sec .lp-inst-imgs{
        width:100vw; max-width:100vw; margin-left:50%; transform:translateX(-50%);
        gap:0;
    }
    .lp-inst-sec .lp-inst-img img{ border-radius:0; }
    /* Banner HTML "especialista" também encosta nas bordas (anula recuo/cantos
       do próprio banner; mantém o padding interno do conteúdo). */
    .lp-inst-sec .lp-inst-html .lp-esp{ padding:0 !important; }
    .lp-inst-sec .lp-inst-html .lp-esp__inner{ border-radius:0 !important; max-width:none !important; }
    .lp-aval-carrossel .lp-aval-card,
    .lp-aval-carrossel .lp-aval-ph{ flex-basis:calc((100% - 20px) / 2); }
    .single-product .bloco-cta{ grid-template-columns:1fr; }
    .lp-card-prod{ flex-basis:78%; }
    .single-product .summary .product_title.entry-title{ font-size:24px; }

    /* respiro lateral nas seções */
    .lp-container{ padding-left:16px; padding-right:16px; }

    /* descrição: evita estouro horizontal e escala títulos/mídia */
    .lp-desc-conteudo{ overflow-wrap:break-word; word-wrap:break-word; max-width:100%; }
    .lp-desc-conteudo h1,
    .lp-desc-conteudo h2,
    .lp-desc-conteudo h3{ font-size:20px; line-height:1.3; }
    .lp-desc-conteudo img{ max-width:100%; height:auto; }
    .lp-desc-conteudo table{ display:block; max-width:100%; overflow-x:auto; }

    /* títulos de seção não estouram */
    .lp-h2{ font-size:20px; overflow-wrap:break-word; }

    /* planta baixa: imagem responsiva */
    .lp-planta-col img{ max-width:100%; height:auto; }
}

/* Avaliações no mobile (≤767px): 1 card por vez, sem estourar a tela.
   (acima, em ≤880px, ficam 2 colunas — no celular estreito isso cortava o texto) */
@media (max-width:767px){
    /* as duas colunas (Google/Trustindex + manuais) ocupam a largura toda e alinham */
    .lp-aval-sec{ padding:24px 16px; }
    .lp-aval-grid{ gap:20px; }
    .lp-aval-google,
    .lp-aval-manual{ width:100%; max-width:100%; min-width:0; box-sizing:border-box; }

    /* widget do Google (Trustindex) usa a largura toda da coluna no mobile.
       O plugin aplica max-width interno; forçamos o container e os elementos
       de largura (widget/inner/cards) a esticar para aproveitar a tela. */
    .lp-aval-google{ width:100%; }
    .lp-aval-google .ti-widget-container,
    .lp-aval-google .ti-widget,
    .lp-aval-google .ti-inner,
    .lp-aval-google .ti-review-item,
    .lp-aval-google .ti-reviews-container,
    .lp-aval-google [class*="ti-"]{ max-width:100% !important; width:100% !important; box-sizing:border-box; margin-left:0 !important; margin-right:0 !important; float:none !important; }

    /* cards manuais: 1 por vez, largura total */
    .lp-aval-carrossel .lp-aval-card,
    .lp-aval-carrossel .lp-aval-ph{ flex:0 0 100% !important; max-width:100%; box-sizing:border-box; }
    .lp-aval-carrossel .lp-carr-track{ width:100%; max-width:100%; }
    .lp-aval-carrossel .lp-carr-nav{ display:none !important; } /* rola com o dedo */
}

/***** Carrinho - Cart *****/
.woocommerce-cart .button {
    padding: 10px 20px!important;
    color:white!important;
}

.woocommerce-cart div#content {
    background-color: white;
}

/***** Barra de busca	*****/
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp {
    background: #fff;
    padding: 0px 10px 0px 10px;
    border-radius: 10px;
}

input#dgwt-wcas-search-input-1 {
    border-radius: 30px;
}
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input {
    padding: 5px 18px 5px 40px;
    line-height: 24px;
    font-size: 17px;
    border: 2px solid transparent;
    border-radius: 30px;
    height: auto;
    font-family: Roboto, sans-serif;
    background-color: #fff;
}
/* Input de busca SEMPRE branco — em todos os estados (normal/hover/foco/autofill) */
input.dgwt-wcas-search-input,
input.dgwt-wcas-search-input:hover,
input.dgwt-wcas-search-input:focus,
input.dgwt-wcas-search-input:active,
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input,
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input:hover,
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input:focus {
    background: #fff !important;
    background-color: #fff !important;
}
/* neutraliza o fundo amarelo do autofill do Chrome */
input.dgwt-wcas-search-input:-webkit-autofill,
input.dgwt-wcas-search-input:-webkit-autofill:hover,
input.dgwt-wcas-search-input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    box-shadow: 0 0 0 1000px #fff inset !important;
}
/* Sem border quando o input está em foco/ativo (anula o border-color:#333
   que o plugin aplica via .dgwt-wcas-search-focused). */
.dgwt-wcas-style-pirx.dgwt-wcas-search-focused .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input {
    border-color: transparent !important;
}
/* min-width grande SÓ no desktop; no mobile estourava a tela ao abrir o overlay */
@media (min-width:922px){
    input#dgwt-wcas-search-input-1 {
        min-width: 400px!important;
    }
}
/* mobile: nenhum campo de busca (inclui o overlay injetado fora do .lp-mobile-search)
   pode forçar largura maior que a tela */
@media (max-width:921px){
    .dgwt-wcas-search-input,
    input#dgwt-wcas-search-input-1{
        min-width:0 !important;
        max-width:100% !important;
    }
    /* só no mobile: borda 1px + leve respiro acima (desktop já está 100%) */
    input.dgwt-wcas-search-input,
    .dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input{
        border:solid 1px;
        margin-top:10px;
    }
    /* mantém a borda visível também no foco (anula o border-color:transparent acima) */
    .dgwt-wcas-style-pirx.dgwt-wcas-search-focused .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input{
        border-color:currentColor !important;
    }
}

.ast-mobile-header-content .dgwt-wcas-sf-wrapp {
    border-radius: 0 !important;
}

/* ===== Hero (slider Spectra): mostra a arte INTEIRA (sem corte) em cada tela =====
   O slide tinha min-height fixo (350px) + background cover, cortando topo/base.
   Soltamos a altura e damos ao slide a proporção da arte (16:5 no desktop,
   4:5 no mobile) — aí o cover encaixa exato, sem recortar. */
.uagb-block-70522f27 .swiper-wrapper{ min-height:0 !important; align-items:stretch !important; }
.uagb-block-70522f27 .swiper-slide{ height:auto !important; }
.uagb-block-70522f27 .swiper-slide .swiper-content{
    min-height:0 !important;
    height:auto !important;
    padding:0 !important;
    aspect-ratio:16 / 5;             /* desktop = 1920×600 */
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
}
/* 976px, não 767px: é em ≤976px que o UAGB troca o background para a arte
   tablet/mobile (4:5). Com o corte em 767px, a faixa 768–976px (iPad em pé)
   recebia a arte vertical dentro do slot 16:5 e o cover comia ~75% dela. */
@media (max-width:976px){
    .uagb-block-70522f27 .swiper-slide .swiper-content{ aspect-ratio:4 / 5; }  /* mobile = 1080×1350 */
}

/* Barra de busca sempre visível no mobile (abaixo do cabeçalho) */
.lp-mobile-search { display: none; }
@media (max-width:921px){
    .lp-mobile-search{
        display:block;
        background:#052139;
        padding:0px 0px 20px;
    }
    .lp-mobile-search .dgwt-wcas-search-wrapp,
    .lp-mobile-search .dgwt-wcas-search-form,
    .lp-mobile-search .dgwt-wcas-sf-wrapp{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }
    .lp-mobile-search .dgwt-wcas-sf-wrapp{ background:transparent !important; border-radius:0 !important; }
    .lp-mobile-search input.dgwt-wcas-search-input{
        min-width:0 !important;
        width:100% !important;
        border-radius:12px;
    }
    /* esconde a lupa-toggle do cabeçalho mobile, já que a busca está sempre visível */
    .ast-mobile-header-content .ast-search-menu-icon{ display:none !important; }
    /* afasta conta+carrinho da borda direita (o contador do carrinho estava cortando) */
    .ast-mobile-header-wrap .site-header-primary-section-right{ padding-right:22px; justify-content:flex-end; align-items:center; }
    /* ícone do carrinho — SÓ no mobile: sem padding lateral + alinhado com o login (top) */
    .ast-site-header-cart i.astra-icon{
        font-size: 1.3em;
        font-style: normal;
        font-weight: normal;
        position: relative;
        padding: 0 0px;
        top: 4px;
    }
    /* centraliza o logo de verdade dentro da coluna central do grid (repeat(3,1fr)) */
    .ast-mobile-header-wrap .site-header-primary-section-center{ justify-content:center; }
    /* zera a margem esquerda do logo no mobile (estava empurrando p/ fora do centro) */
    .ast-builder-layout-element .ast-site-identity{ margin-left:0px; }
}

.ast-mobile-header-content > *:first-child, .ast-desktop-header-content > *:first-child {
    padding-top: 0!important;
}

section.lp-sec.lp-aval-sec {
    overflow: hidden;
}
/* "Veja a opinião do público" (produto) = MESMA largura do bloco Depoimentos da home.
   No DESKTOP já é idêntico. No MOBILE/tablet o conteúdo do produto recua mais (Astra),
   então damos full-bleed com 10px de recuo p/ os cards saírem do mesmo tamanho da home. */
@media (max-width:1024px){
    .lp-aval-sec{
        width:100vw;
        margin-left:calc(50% - 50vw);
        padding-left:10px;
        padding-right:10px;
        box-sizing:border-box;
    }
    /* o .lp-container interno tinha 16px de padding (a home não tem) -> zera p/ o
       bloco encostar nos 10px da seção e os cards baterem com a home. */
    .lp-aval-sec .lp-container{
        max-width:none;
        padding-left:0;
        padding-right:0;
    }
}
/* ----- Filtro lateral por atributos (loja + categorias) ----- */
.lp-shop-cols{ display:flex; gap:26px; align-items:flex-start; }
.lp-shop-cols .lp-filtros{ flex:0 0 240px; width:240px; box-sizing:border-box; }
.lp-shop-col-main{ flex:1 1 auto; min-width:0; }
.lp-filtros .lp-filtros-tit{ font-size:19px; margin:0 0 14px; color:#052139; }
@media (max-width:921px){
	.lp-shop-cols{ display:block; }
	.lp-shop-cols .lp-filtros{ width:auto; margin-bottom:22px; }

	/* "Filtrar" recolhido por padrão no mobile/tablet — toca pra abrir (JS em shop-filters.php).
	   Alinhamento e setinha iguais aos grupos de atributos, sem borda. */
	.lp-filtros .lp-filtros-tit{
		cursor:pointer; margin:0;
		display:flex; align-items:center; justify-content:space-between;
	}
	.lp-filtros .lp-filtros-tit::after{
		content:""; flex:0 0 auto; width:8px; height:8px; margin-left:8px;
		border-right:2px solid #052139; border-bottom:2px solid #052139;
		transform:rotate(45deg); transition:transform .15s ease;
	}
	.lp-filtros.is-open .lp-filtros-tit{ margin-bottom:14px; }
	.lp-filtros.is-open .lp-filtros-tit::after{ transform:rotate(-135deg); }
	/* esconde tudo após o título; só aparece quando aberto */
	.lp-filtros .lp-filtros-tit ~ *{ display:none; }
	.lp-filtros.is-open .lp-filtros-tit ~ *{ display:revert; }

	/* "Ordenação" no mobile: movida via JS pra ANTES do Filtrar, com o mesmo
	   visual do título Filtrar (texto navy + setinha à direita, sem borda). */
	.lp-shop-cols > .woocommerce-ordering{
		position:relative; width:100%; margin:0 0 18px; float:none;
	}
	.lp-shop-cols > .woocommerce-ordering select.orderby{
		-webkit-appearance:none; -moz-appearance:none; appearance:none;
		width:100%; border:none; background:transparent; box-shadow:none;
		font-size:19px; /* font-weight:700; */ color:#052139;
		padding:0 18px 0 0; margin:0; line-height:1.4; cursor:pointer;
		font-family:"Stone Humanist ITC Std", Helvetica, Arial, sans-serif;
	}
	/* opções da lista aberta em tamanho normal (não herdam os 20px do cabeçalho) */
	.lp-shop-cols > .woocommerce-ordering select.orderby option{
		font-size:15px; font-weight:400; color:#333;
	}
	.lp-shop-cols > .woocommerce-ordering::after{
		content:""; position:absolute; right:2px; top:50%; margin-top:-6px;
		width:8px; height:8px; border-right:2px solid #052139; border-bottom:2px solid #052139;
		transform:rotate(45deg); pointer-events:none;
	}
}

/* filtro lateral — marcação própria */
.lp-filtros .lp-filtros-limpar{ display:inline-block; margin-bottom:14px; font-size:13px; color:#c0392b; text-decoration:none; }
.lp-filtros .lp-filtro-grp{ margin-bottom:20px; }
.lp-filtros .lp-filtro-grp > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; padding-bottom:6px; border-bottom:1px solid #e7e7e7; }
.lp-filtros .lp-filtro-grp > summary::-webkit-details-marker{ display:none; }
.lp-filtros .lp-filtro-grp > summary span{ flex:1; font-size:15px; font-weight:700; margin:0; padding:0; border:0; color:#052139; }
.lp-filtros .lp-filtro-grp > summary::after{ content:""; flex:0 0 auto; width:8px; height:8px; margin-left:8px; border-right:2px solid #052139; border-bottom:2px solid #052139; transform:rotate(45deg); transition:transform .15s ease; }
.lp-filtros .lp-filtro-grp[open] > summary::after{ transform:rotate(-135deg); }
.lp-filtros .lp-filtro-grp ul{ list-style:none; margin:8px 0 0; padding:0; }
.lp-filtros .lp-filtro-grp li{ padding:3px 0; font-size:14px; }
.lp-filtros .lp-filtro-grp li a{ color:#333; text-decoration:none; display:flex; align-items:center; gap:8px; }
.lp-filtros .lp-filtro-grp li a:hover{ color:var(--lp-green,#1faa59); }
.lp-filtros .lp-check{ width:15px; height:15px; flex:0 0 15px; border:1px solid #bbb; border-radius:3px; display:inline-block; }
.lp-filtros .lp-filtro-grp li.chosen a{ font-weight:700; color:#052139; }
.lp-filtros .lp-filtro-grp li.chosen .lp-check{ background:var(--lp-green,#1faa59) url(assets/check.svg) center/11px no-repeat; border-color:var(--lp-green,#1faa59); }
.lp-filtros .count{ color:#999; font-size:12px; margin-left:auto; }

/* Paginação da loja: espaçamento vertical (desktop e mobile) */
nav.woocommerce-pagination {
    margin-top: 20px;
    margin-bottom: 20px;
}

/* Paginação da loja: caixas arredondadas (igual aos botões) e SEM quebra de linha */
.woocommerce nav.woocommerce-pagination ul{
    display:flex;
    flex-wrap:nowrap;          /* nunca quebra para a 2ª linha */
    justify-content:center;
    align-items:center;
    gap:6px;
    border:0;                  /* remove a borda/divisória compartilhada do Astra */
    max-width:100%;
    overflow-x:auto;           /* se faltar largura, rola na horizontal (não quebra) */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;      /* esconde a barra de rolagem (Firefox) */
}
.woocommerce nav.woocommerce-pagination ul::-webkit-scrollbar{ display:none; } /* esconde (WebKit) */
.woocommerce nav.woocommerce-pagination ul li{
    border:0;                  /* Astra coloca borda entre os <li>; aqui cada caixa é independente */
    margin:0;
    flex:0 0 auto;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 10px;
    border:1px solid var(--lp-border,#d6d6d6);
    border-radius:8px;         /* acompanha os botões "Comprar"/cards (8px) */
    line-height:1;
}
.woocommerce nav.woocommerce-pagination ul li span.page-numbers.dots{
    border-color:transparent;  /* as reticências ficam sem caixa */
    min-width:auto;
    padding:0 4px;
}

/* Paginação da loja: estado ativo/hover no navy da marca */
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--ast-global-color-0);
    color: #fff;
    border-color: var(--ast-global-color-0);
}

/* ===== Dropdown do menu do cabeçalho no hover (desktop) =====
   Garante a revelação do submenu no hover/foco (o Astra esconde com left:-999em). */
@media (min-width: 922px){
	.main-header-menu .menu-item-has-children:hover > .sub-menu,
	.main-header-menu .menu-item-has-children:focus-within > .sub-menu{
		left: auto;
		right: auto;
		opacity: 1;
		visibility: visible;
	}
	/* submenu de 2º nível (se houver) abre ao lado */
	.main-header-menu .sub-menu .menu-item-has-children:hover > .sub-menu,
	.main-header-menu .sub-menu .menu-item-has-children:focus-within > .sub-menu{
		left: 100%;
		top: 0;
	}
}

/* Submenu: padding mais compacto nos itens */
.main-header-menu .sub-menu .menu-link {
    padding: .3em 0.5em;
    display: block;
    word-wrap: break-word;
}

/* Efeito hover nas opções do submenu (dropdown do menu principal) */
.main-header-menu .sub-menu .menu-link{
    transition: background-color .15s ease, color .15s ease;
}
.main-header-menu .sub-menu .menu-item:hover > .menu-link,
.main-header-menu .sub-menu .menu-item > .menu-link:hover,
.main-header-menu .sub-menu .menu-item > .menu-link:focus,
.main-header-menu .sub-menu .menu-item.current-menu-item > .menu-link{
    background: var(--ast-global-color-0);
    color: #fff;
}

/* ===== Banner da página de categoria (imagem limpa) ===== */
.lp-cat-hero{ margin:0 0 26px; }
.lp-cat-hero a{ display:block; }
.lp-cat-hero-img{ display:block; width:100%; height:auto; border-radius:12px; }
/* título mantido só para SEO/leitores de tela */
.lp-cat-hero-sr{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

@media (min-width: 1200px) {
    .ast-plain-container.ast-no-sidebar #primary {
        /* margin-top: 20px; */
        margin-bottom: 20px;
    }
}

/* ===== Alinhar botões "Comprar" no grid de produtos ===== */
/* Força CSS Grid no container (linhas com altura igual) */
.woocommerce ul.products{
    display:grid !important;
    /* minmax(0,1fr): sem isso, o contain-intrinsic-size de 3000px que o WP 6.7+
       aplica em img[sizes^="auto"] vira o min-content do item e explode as
       colunas até as imagens lazy carregarem (flash de imagem gigante) */
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    gap:24px !important;
    margin:0 !important;
}
.woocommerce ul.products li.product{
    min-width:0;
    width:auto !important;
    margin:0 !important;
    float:none !important;
    display:flex !important;
    flex-direction:column;
    height:auto;
    /* card: delimita o produto com borda, cantos e sombra discreta */
    border:1px solid #ececec;
    border-radius:12px;
    box-shadow:0 2px 10px rgba(5,33,57,.06);
    padding:10px;
    background:#fff;
    transition:box-shadow .15s ease, border-color .15s ease;
}
.woocommerce ul.products li.product:hover{
    box-shadow:0 6px 18px rgba(5,33,57,.10);
    border-color:#dfe6ee;
}
/* o conteúdo fica em .astra-shop-summary-wrap; ele cresce e o botão "Comprar" vai pra base */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
    display:flex !important;
    flex-direction:column;
    flex:1 1 auto;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap > .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap > .add_to_cart_button{
    margin-top:auto !important;
}
@media (max-width:1024px){ .woocommerce ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media (max-width:768px){  .woocommerce ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; } }
@media (max-width:480px){  .woocommerce ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; } }
/* mais largura pros cards no mobile: reduz o padding lateral SÓ na loja/categoria */
@media (max-width:768px){
    .tax-product_cat .ast-container,
    .post-type-archive-product .ast-container,
    .woocommerce-shop .ast-container{ padding-left:6px !important; padding-right:6px !important; }
}

/* ===== Botão de busca por voz (FiboSearch) ===== */
.dgwt-wcas-sf-wrapp{ position:relative; }
.lp-voice-btn{
    position:absolute; top:50%; right:16px; transform:translateY(-50%);
    width:34px; height:34px; padding:0; z-index:6;
    display:flex; align-items:center; justify-content:center;
    background:transparent; border:none; border-radius:50%; cursor:pointer;
    color:#052139; transition:background .15s ease, color .15s ease;
}
/* Botão de submit (lupa) do FiboSearch — sobrescreve o estilo do plugin. */
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
    background: 0 0;
    border-radius: 100%;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    position: absolute;
    min-height: 33px;
    min-width: 33px;
    height: 33px;
    width: 33px;
    left: 16px;
    top: 3px;
    pointer-events: none;
    transition: none;
}
.lp-voice-btn:hover{ color:#1c9b4e; background:rgba(0,0,0,.06); }
.lp-voice-btn.lp-voice-listening{ color:#c0392b; animation:lp-voice-pulse 1s infinite; }
@keyframes lp-voice-pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
/* espaço para o texto não passar sob o microfone + botão de busca */
.dgwt-wcas-search-input{ padding-right:92px !important; }

/* só no mobile: o input ganhou margin-top:10px, então o microfone e a lupa
   descem junto p/ ficarem centrados no campo (desktop já está 100%) */
@media (max-width:921px){
    .lp-voice-btn{ top:58%; }
    .dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit{ top:10px; }
}

/* ===== Hover nos itens do menu principal (1º nível) ===== */
.main-header-menu > .menu-item > .menu-link{ transition: color .15s ease; }
.main-header-menu > .menu-item:hover > .menu-link,
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .menu-item.current-menu-item > .menu-link,
.main-header-menu > .menu-item.current-menu-ancestor > .menu-link{
    color: #052139;
}
@media (min-width:922px){
    .main-header-menu > .menu-item{ position:relative; }
    .main-header-menu > .menu-item::after{
        content:""; position:absolute; left:14px; right:14px; bottom:0; height:3px;
        background:#052139; border-radius:3px 3px 0 0;
        transform:scaleX(0); transform-origin:center; transition:transform .2s ease;
    }
    .main-header-menu > .menu-item:hover::after,
    .main-header-menu > .menu-item.current-menu-item::after,
    .main-header-menu > .menu-item.current-menu-ancestor::after{ transform:scaleX(1); }
}

/* ===== Destaque do item "Lançamentos" (badge vermelho) ===== */
.main-header-menu .menu-item-15073 > .menu-link{
    background:#c0392b !important;
    color:#fff !important;
    border-radius:8px;
    padding:8px 18px !important;
    height:auto !important;
    align-self:center;
    line-height:1.2 !important;
    transition:background .15s ease;
}
.main-header-menu .menu-item-15073:hover > .menu-link,
.main-header-menu .menu-item-15073 > .menu-link:hover{
    background:#a93226 !important;
    color:#fff !important;
}
/* sem o sublinhado animado nesse item */
.main-header-menu > .menu-item.menu-item-15073::after{ display:none !important; }

h1, .entry-content :where(h1) {
    font-size: 64px;
    font-size: 2rem;
    font-family: Stone Humanist ITC Std, Helvetica, Arial, sans-serif;
    line-height: 1.5em;
    margin-bottom: 0.5em;
}

h2, .entry-content :where(h2) {
    font-size: 48px;
    font-size: 1.5rem;
    font-family: Stone Humanist ITC Std, Helvetica, Arial, sans-serif;
    line-height: 1.5;
}

/* Border-radius nos elementos do dropdown do menu principal */
.main-header-menu .sub-menu{ border-radius:5px; }
.main-header-menu .sub-menu .menu-item,
.main-header-menu .sub-menu .menu-link{ border-radius:5px; }


/***** Seção da página Home *****/
.paths{
	display:grid;
	grid-template-columns:1.6fr auto 1fr;
	gap:22px;
	align-items:stretch;
}

 .divider{
	 display:flex;
	 flex-direction:column;
	 align-items:center;
	 justify-content:center;
	 gap:12px;
}

.divider .bar{
	width:1.5px;
	flex:1;
	background:#edf4fc;
}

.divider .ou{
	width:42px;
	height:42px;
	border-radius:50%;
	background:white;
    border:1.5px solid #edf4fc;
	display:flex;
	align-items:center;
	justify-content:center;
    font-weight:800;
	font-size:13px;
	color:var(--muted);
}

.panel{
	background:#05213924;
	border:1.5px solid #edf4fc;
	border-radius:22px;
    padding:26px;display:flex;flex-direction:column
}

a.chip {
    text-decoration: none !important;
}
 
.panel-head{
	display:flex;
	gap:12px;
	margin-bottom:6px;
	justify-content:space-around;
}

.step{
	width:30px;
	height:30px;
	border-radius:50%;
	background:#052139;
	color:#fff;
    display:flex;
	align-items:center;
	justify-content:center;
	font-weight:800;
	font-size:14px;
	flex:0 0 auto;
}

.panel-head h3{
	font-size:18px;
	font-weight:800;
}

.panel-sub{
	color:var(--muted);
	font-size:13.5px;
}

.chips{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	grid-auto-rows:1fr;
	gap:12px;
	flex:1;
}

.chip{
	background:#edf4fc;
	border:1.5px solid transparent;
	border-radius:14px;
    padding:18px 10px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:9px;
    cursor:pointer;
	text-align:center;
	text-decoration:none;
	color:var(--ink);
    transition:all .16s ease;position:relative;
}

.chip:hover{
	border-color:#052139;
	transform:translateY(-3px);
    box-shadow:0 14px 28px -16px rgba(5,33,57,.3);
}
  
.chip:hover .ic{
	background:#052139;
	color:#fff;
	border-color:#052139;
}

.chip .ic{
	width:44px;
	height:44px;
	border-radius:12px;
	background:white;
	display:flex;align-items:center;
	justify-content:center;
	color:#052139;
	border:1px solid var(--line);
	transition:all .16s ease;
}
 
/* Ícone via CSS mask (definitivo): NÃO depende de <svg> no conteúdo da página.
   O KSES do WP remove <svg> ao salvar a home; aqui o ícone fica no tema e
   nunca some. Escondemos qualquer <svg> inline herdado e desenhamos no ::before. */
.chip .ic svg{ display:none; }
.chip .ic::before{
	content:"";
	width:23px;
	height:23px;
	background-color:currentColor;   /* segue o color do .ic (azul / branco no hover) */
	-webkit-mask-position:center; mask-position:center;
	-webkit-mask-repeat:no-repeat;  mask-repeat:no-repeat;
	-webkit-mask-size:contain;      mask-size:contain;
}
.chips .chip:nth-child(1) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%223.3%22%2F%3E%3Cpath%20d%3D%22M5.5%2020c0-3.6%202.9-6%206.5-6s6.5%202.4%206.5%206%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%223.3%22%2F%3E%3Cpath%20d%3D%22M5.5%2020c0-3.6%202.9-6%206.5-6s6.5%202.4%206.5%206%22%2F%3E%3C%2Fsvg%3E"); }
.chips .chip:nth-child(2) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Cpath%20d%3D%22M3.5%2019c0-2.7%202-4.5%204.5-4.5%201%200%201.9.3%202.7.8%22%2F%3E%3Cpath%20d%3D%22M13.3%2015.3c.8-.5%201.7-.8%202.7-.8%202.5%200%204.5%201.8%204.5%204.5%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Cpath%20d%3D%22M3.5%2019c0-2.7%202-4.5%204.5-4.5%201%200%201.9.3%202.7.8%22%2F%3E%3Cpath%20d%3D%22M13.3%2015.3c.8-.5%201.7-.8%202.7-.8%202.5%200%204.5%201.8%204.5%204.5%22%2F%3E%3C%2Fsvg%3E"); }
.chips .chip:nth-child(3) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); }
.chips .chip:nth-child(4) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%226.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2216.1%22%20cy%3D%228.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217.1%22%20cy%3D%2213.2%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2214.3%22%20cy%3D%2216.7%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229.7%22%20cy%3D%2216.7%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%226.9%22%20cy%3D%2213.2%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227.9%22%20cy%3D%228.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%226.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2216.1%22%20cy%3D%228.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217.1%22%20cy%3D%2213.2%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2214.3%22%20cy%3D%2216.7%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229.7%22%20cy%3D%2216.7%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%226.9%22%20cy%3D%2213.2%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227.9%22%20cy%3D%228.8%22%20r%3D%221.05%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); }
.chips .chip:nth-child(5) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20.59%2013.41%2013.42%2020.58a2%202%200%200%201-2.83%200l-7-7A2%202%200%200%201%203%2012.17V5a2%202%200%200%201%202-2h7.17a2%202%200%200%201%201.41.59l7%207a2%202%200%200%201%20.01%202.82Z%22%2F%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%221.3%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20.59%2013.41%2013.42%2020.58a2%202%200%200%201-2.83%200l-7-7A2%202%200%200%201%203%2012.17V5a2%202%200%200%201%202-2h7.17a2%202%200%200%201%201.41.59l7%207a2%202%200%200%201%20.01%202.82Z%22%2F%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%221.3%22%2F%3E%3C%2Fsvg%3E"); }
.chips .chip:nth-child(6) .ic::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%204h8v4.5a4%204%200%200%201-8%200V4z%22%2F%3E%3Cpath%20d%3D%22M8%205.5H5.4A2.4%202.4%200%200%200%208%207.9%22%2F%3E%3Cpath%20d%3D%22M16%205.5h2.6A2.4%202.4%200%200%201%2016%207.9%22%2F%3E%3Cpath%20d%3D%22M12%2012.5v3%22%2F%3E%3Cpath%20d%3D%22M9.5%2015.5h5l1%204h-7z%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%204h8v4.5a4%204%200%200%201-8%200V4z%22%2F%3E%3Cpath%20d%3D%22M8%205.5H5.4A2.4%202.4%200%200%200%208%207.9%22%2F%3E%3Cpath%20d%3D%22M16%205.5h2.6A2.4%202.4%200%200%201%2016%207.9%22%2F%3E%3Cpath%20d%3D%22M12%2012.5v3%22%2F%3E%3Cpath%20d%3D%22M9.5%2015.5h5l1%204h-7z%22%2F%3E%3C%2Fsvg%3E"); }

.chip span.t{
	font-size:13.5px;
	font-weight:700;
	line-height:1.2;
}

.pop{
	position:absolute;
	top:8px;
	left:8px;
	font-size:9px;
	font-weight:800;
	letter-spacing:.04em;
    text-transform:uppercase;
	background:#052139;
	color:#fff;
	padding:3px 7px;
	border-radius:999px;
}

.rep{
	background:#052139;
	border-radius:22px;
	text-align: left;
	padding:26px;
	color:#fff;
    display:flex;
	flex-direction:column;
}
 
.rep .panel-head .step{
	background:green;
}

.rep h3{color:#fff}

.rep .panel-sub{
	color:#aebfce;
	margin-right:5px;
	text-align: left;
}

.rep .body{
	flex:1;
	color:#aebfce;
	font-size:14px;
	line-height:1.65;
}

.rep ul{
	list-style:none;
	margin-top:14px;
	display:flex;
	flex-direction:column;
	gap:10px;
}

.rep li{display:flex;
	align-items:flex-start;
	gap:9px;
	font-size:13.5px;
	color:#cdd9e6;
}

.rep li svg{width:16px;height:16px;color:#7ee2a5;flex:0 0 auto;margin-top:2px}

a.wa-btn{
	margin-top:11px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	background:green;
	color:#fff;
	text-decoration:none!important;
	font-weight:700;
	font-size:14px;
	padding:14px;
	border-radius:13px;
	transition:background .16s ease,transform .16s ease;
}

.wa-btn:hover{
	background:darkgreen;
	transform:translateY(-2px);
}

.wa-btn svg{
	width:20px;
	height:20px;
}

  @media(max-width:840px){
	  .panel-head {
    	display: flex;
    	gap: 12px;
    	margin-bottom: 6px;
		margin: auto;
	  }
	  
	  .rep .panel-sub {
		text-align: center;
	}
    .paths{grid-template-columns:1fr}
    .divider{flex-direction:row;width:100%}
    .divider .bar{height:1.5px;width:auto}
  }
  @media(max-width:520px){.chips{grid-template-columns:repeat(2,1fr)}}

@media (max-width: 544px) {
    .woocommerce ul.products li.product.mobile-align-left, .woocommerce-page ul.products li.product.mobile-align-left {
        text-align: center;
    }
    .ast-mobile-header-wrap .ast-primary-header-bar,
    .ast-primary-header-bar .site-primary-header-wrap {
        min-height: 67px;
    }
}

/**** Depoimento Google *****/
.ti-widget.ti-goog .ti-fade-container:nth-child(1) {
    flex-direction: column-reverse;
    text-align: center;
    gap: 2px !important;
}

/* Container Spectra e28d04bc (home) — ajuste de padding no mobile */
@media only screen and (max-width: 767px) {
    .wp-block-uagb-container.uagb-block-e28d04bc {
        padding-top: 15px;
        padding-bottom: 10px;
        padding-left: 10px;
        padding-right: 10px;
        order: initial;
        background-color: #ffffff;
    }
}

/* Container Spectra dfd6cf65 (home, "Conheça nossos projetos") — ajuste de espaçamento no mobile */
@media only screen and (max-width: 767px) {
    .wp-block-uagb-container.uagb-block-dfd6cf65 {
        padding-top: 0px;
        padding-bottom: 15px;
        padding-left: 0px;
        padding-right: 0px;
        margin-top: 0px !important;
        margin-bottom: 0px !important;
        margin-left: 0px;
        margin-right: 0px;
        order: initial;
        background-color: #ffffff;
    }
}
/* ===== Páginas institucionais estáticas (Sobre nós, Catálogos e Políticas) =====
   Padronização: fonte padrão do site (Poppins) no corpo + mesma margem lateral do
   "Sobre nós" (15px no mobile/tablet). Os títulos mantêm a fonte de display.
   IDs: 14810 Sobre nós · 14869 Catálogos · 14920 Privacidade · 14937 Entrega · 14941 Troca. */

/* Fonte: corrige o `body{font-family:Arial}` embutido no Sobre nós e garante o
   padrão (Poppins) em todas. `body.page-id-X` vence o `body{}` inline por especificidade. */
body.page-id-14810,
body.page-id-14869,
body.page-id-14920,
body.page-id-14937,
body.page-id-14941{
    font-family: "Poppins", sans-serif;
}

/* Margem lateral no conteúdo dos blocos Spectra alignfull (mobile/tablet), igual ao
   Sobre nós (antes o conteúdo encostava na borda). Desktop usa o max-width do bloco. */
@media (max-width:1024px){
    .page-id-14810 .wp-block-uagb-container.alignfull > .uagb-container-inner-blocks-wrap{
        padding-left:15px !important;
        padding-right:15px !important;
        box-sizing:border-box;
    }
}

/* (O Sobre nós usava um 2x2 no tablet para os vídeos; removido — agora a seção de
   vídeos do Sobre nós usa o MESMO carrossel/modal da home, via os JS de
   home-projetos-carousel.php e home-projetos-video-modal.php liberados p/ a página.) */

/* Catálogos (14869) e Políticas (Privacidade 14920, Entrega 14937, Troca 14941):
   conteúdo a 15px no mobile/tablet, igual ao Sobre nós. Aqui o recuo vai no PRÓPRIO
   bloco alignfull (padding 15) e zera o inner-wrap — os heroes dessas páginas são
   imagem de fundo, então seguem full-width. (O Sobre nós usa o approach acima por
   ter hero de <img>.) */
@media (max-width:1024px){
    .page-id-14869 .entry-content > .wp-block-uagb-container.alignfull,
    .page-id-14920 .entry-content > .wp-block-uagb-container.alignfull,
    .page-id-14937 .entry-content > .wp-block-uagb-container.alignfull,
    .page-id-14941 .entry-content > .wp-block-uagb-container.alignfull{
        padding-left:15px !important;
        padding-right:15px !important;
    }
    .page-id-14869 .entry-content > .wp-block-uagb-container.alignfull > .uagb-container-inner-blocks-wrap,
    .page-id-14920 .entry-content > .wp-block-uagb-container.alignfull > .uagb-container-inner-blocks-wrap,
    .page-id-14937 .entry-content > .wp-block-uagb-container.alignfull > .uagb-container-inner-blocks-wrap,
    .page-id-14941 .entry-content > .wp-block-uagb-container.alignfull > .uagb-container-inner-blocks-wrap{
        padding-left:0 !important;
        padding-right:0 !important;
    }
}

/* "Sobre nós": abas Missão/Visão/Valores (.tab, do <style> embutido na página)
   estouravam o container no mobile (somavam mais que a largura -> cortadas pelo
   overflow:hidden). No mobile viram 3 botões iguais preenchendo a largura. */
@media (max-width:767px){
    .page-id-14810 .tab{ gap:8px !important; }
    .page-id-14810 .tab > *{
        flex:1 1 0 !important;
        min-width:0 !important;
        padding-left:6px !important;
        padding-right:6px !important;
        box-sizing:border-box;
    }
}

/* "Sobre nós": ajuste de 2 seções no mobile (conforme solicitado).
   (As linhas margin-top/bottom: !important; do CSS original eram inválidas — removidas.) */
@media only screen and (max-width: 767px) {
    .wp-block-uagb-container.uagb-block-01e30a07 {
        padding-top: 20px;
        padding-bottom: 20px;
        padding-left: 0px;
        padding-right: 0px;
        order: initial;
        background-color: #ffffff;
    }
    .wp-block-uagb-container.uagb-block-833776c7 {
        padding-top: 0px;
        padding-bottom: 20px;
        padding-left: 0px;
        padding-right: 0px;
        order: initial;
        background-color: var(--ast-global-color-4);
    }
}

/* Troca (14941): hero mobile (bloco dd5cd040) tinha 50px+50px de padding e ficava
   235px (acima dos 32vh pedidos). Fixa em 32vh e centraliza o conteúdo. */
@media (max-width:767px){
    .page-id-14941 .uagb-block-dd5cd040{
        height:32vh !important;
        min-height:32vh !important;
        padding-top:12px !important;
        padding-bottom:12px !important;
        align-items:center !important;
        overflow:hidden;
    }
}

/* =========================================================
   >>> EMBELEZAMENTO HOME — início (origem: _pagina_live/embelezar.css)
   Aplicado em 2026-06-09. Para reverter: remover deste marcador
   até o marcador de fim. Documentação: _pagina_live/ROADMAP-EMBELEZAMENTO.md
   ========================================================= */
:root {
  --lp-navy: #052139;
  --lp-taupe: #9f7c68; /* --ast-global-color-3 (2ª cor da marca) */
  --lp-cream: #f4edd6; /* --ast-global-color-5 (títulos/links do rodapé) */
  /* Tokens de espaçamento — padrão proporcional 2:1
     (acima do título = 2× ; título → conteúdo = 1× = metade). */
  --lp-space-section: 3rem;                              /* borda da seção / ACIMA do título (2×) */
  --lp-space-title:   calc(var(--lp-space-section) / 2); /* título → próximo elemento (1×) */
  --lp-space-grid:    1.5rem;                            /* gap entre cards */
  --lp-space-inline:  0.5rem;                            /* micro */
}

html { scroll-behavior: smooth; }

/* ---------- ESPAÇAMENTO — GAPS DAS GRADES (teste) ----------
   Só mexe em gap de grids/flex (não toca largura de coluna). */

/* Grade de produtos (WooCommerce, display:grid) */
ul.products,
.woocommerce-page ul.products {
  column-gap: var(--lp-space-grid) !important;
  row-gap: calc(var(--lp-space-grid) * 1.6) !important; /* mais ar entre linhas */
}

/* Grade de posts do blog (Spectra post grid) */
.wp-block-uagb-post-grid.is-grid {
  gap: var(--lp-space-grid) !important;
}
.wp-block-uagb-post-grid .uagb-post__inner-wrap { margin: 0 !important; }

/* Grade de vídeos da seção "Conheça nossos projetos" */
.uagb-block-a3ba7514 > .uagb-container-inner-blocks-wrap {
  gap: var(--lp-space-grid) !important;
  column-gap: var(--lp-space-grid) !important;
}

/* ---------- TÍTULOS DE SEÇÃO (todos os tipos, regra única) ----------
   Caixa alta, à esquerda, MENORES e com barra-gradiente de destaque (WOW).
   Cobre os 3 tipos de heading usados nas seções.
   NÃO afeta títulos de produto nem de blog (proposital).               */
.wp-block-uagb-advanced-heading { text-align: left !important; }

.wp-block-uagb-advanced-heading .uagb-heading-text,
.uagb-block-dfd6cf65 h2.wp-block-heading,   /* Conheça nossos projetos */
.uagb-block-5dcf68a4 h2.wp-block-heading {  /* Depoimentos */
  position: relative !important;
  display: inline-block !important;
  text-transform: uppercase !important;
  text-align: left !important;
  /* menor e responsivo (antes ~35px) */
  font-size: clamp(1.4rem, 1rem + 1.3vw, 1.85rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.12 !important;
  margin-top: 0 !important;                        /* espaço acima vem do padding da seção (2×) */
  margin-bottom: var(--lp-space-title) !important; /* título → próximo elemento (1×) */
  padding-bottom: 0.16em !important;               /* barra mais perto do texto */
  text-decoration: none !important; /* tira o sublinhado antigo */
}

/* Home: 10px de margem esquerda no título "Conheça nossos projetos" p/ alinhar
   com os demais H2 de seção (sem afetar Depoimentos). O eventual excedente lateral
   é contido pelo overflow-x:hidden/clip do html,body (não gera faixa/scroll). */
.uagb-block-dfd6cf65 h2.wp-block-heading{
  margin-left: 10px !important;
  max-width: calc(100% - 10px);   /* não estoura a largura (evita a faixa) */
}

/* Barra-gradiente de destaque (o "WOW") */
.wp-block-uagb-advanced-heading .uagb-heading-text::after,
.uagb-block-dfd6cf65 h2.wp-block-heading::after,
.uagb-block-5dcf68a4 h2.wp-block-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.6rem;
  height: 2px; /* mais fino */
  border-radius: 999px;
  background: linear-gradient(90deg, var(--lp-navy) 0%, var(--lp-taupe) 100%);
}

/* Subtítulo da seção "Encontre pela sua necessidade" — alinhar à esquerda.
   Escopo no filho direto da seção pra não mexer nos títulos dos cards.   */
.lp-necessidade > p.has-text-align-center { text-align: left !important; }

/* Mesmo ritmo das outras seções (2× acima / 1× título→conteúdo).
   Aqui o "conteúdo" vem depois do par título+subtítulo. */
.lp-necessidade {
  padding-top: var(--lp-space-section) !important;
  padding-bottom: var(--lp-space-section) !important;
}

/* título e subtítulo coladinhos (par título+apoio)... */
.lp-necessidade .wp-block-uagb-advanced-heading { margin-bottom: 0 !important; }
.lp-necessidade .uagb-heading-text { margin-bottom: 0.1em !important; }
/* ...e o gap "1×" fica do subtítulo para os cards */
.lp-necessidade > p.has-text-align-center {
  margin-top: 0 !important;
  margin-bottom: var(--lp-space-title) !important;
}

/* ---------- SEÇÃO "CONHEÇA NOSSOS PROJETOS" (vídeos) ----------
   Título é um wp-block-heading comum (não Spectra), por isso escapou
   do tratamento. Escopo nos IDs dos blocos pra não vazar pra outras seções. */

/* 1) Títulos "Conheça nossos projetos" e "Depoimentos":
      tratados na regra única de TÍTULOS DE SEÇÃO acima. */

/* Seções OFERTAS e DEPOIMENTOS — ritmo vertical equilibrado.
   (Ofertas era top:15px/bot:0; Depoimentos era top:0/bot:15px — em ambas
   o conteúdo colava nas faixas vizinhas.) */
.uagb-block-e28d04bc,  /* Ofertas */
.uagb-block-5dcf68a4 { /* Depoimentos */
  padding-top: var(--lp-space-section) !important;
  padding-bottom: var(--lp-space-section) !important;
}

/* 1b) FAIXA NAVY — diferencia a seção do meio (branco → navy → branco).
   Cobre os dois root containers (título dfd6cf65 + vídeos a3ba7514). */
.uagb-block-dfd6cf65,
.uagb-block-a3ba7514 {
  background-color: var(--lp-navy) !important;
}
/* respiro pra virar um bloco coeso, sem faixa branca no meio */
.uagb-block-dfd6cf65 {
  padding-top: var(--lp-space-section) !important;
  padding-bottom: 0 !important;  /* gap título → vídeos é dado pela margem padronizada do título */
  margin-bottom: 0 !important;
}
.uagb-block-a3ba7514 {
  padding-top: 0 !important;
  padding-bottom: var(--lp-space-section) !important;
  margin-top: 0 !important;
}
/* título e barra legíveis no escuro */
.uagb-block-dfd6cf65 h2.wp-block-heading { color: var(--lp-cream) !important; } /* mesma cor do rodapé */
.uagb-block-dfd6cf65 h2.wp-block-heading::after {
  background: linear-gradient(90deg, var(--lp-cream) 0%, var(--lp-taupe) 100%) !important;
}

/* 2) Vídeos arredondados, com sombra e cantos recortados */
.uagb-block-a3ba7514 .wp-block-embed {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,.35); /* sombra adaptada ao fundo navy */
  transition: transform .22s ease, box-shadow .22s ease;
}
.uagb-block-a3ba7514 .wp-block-embed iframe { display: block; border-radius: 14px; }

/* 3) Hover sutil em cada vídeo */
.uagb-block-a3ba7514 .wp-block-embed:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,.45);
}

/* ---------- CARROSSEL DE OFERTAS — setas fora dos cards ----------
   O tema deixa as setas .lp-carr-nav em position:absolute (left/right:-2px)
   sobre o 1º/último card. O container .lp-carrossel já é flex
   [prev][track][next]; basta devolver as setas ao fluxo pra ficarem
   AO LADO da track, sem sobrepor. Cards ficam só um tico menores.        */
.lp-ofertas-carr { gap: 14px !important; }
.lp-ofertas-carr.lp-has-overflow .lp-carr-nav {
  position: static !important;
  top: auto !important;
}
.lp-ofertas-carr .lp-carr-track.products { width: auto !important; }
.lp-ofertas-carr .lp-carr-prev,
.lp-ofertas-carr .lp-carr-next { left: auto !important; right: auto !important; }

/* ---------- BARRA DE SELOS — distribuição no desktop ----------
   Itens têm largura de conteúdo. Com flex-start ficavam à esquerda;
   com space-between ficavam longe demais (e pior na quebra de linha).
   Solução: agrupar centralizado com gap fixo + row-gap pra quebra. */
.uagb-block-c28d4bbf > .uagb-container-inner-blocks-wrap {
  justify-content: center !important; /* agrupa centralizado (não estica nas pontas) */
  column-gap: 1.5rem !important;
  row-gap: 1rem !important;           /* organiza a quebra nas telas estreitas */
  /* sem flex-wrap: respeita o nowrap do tema no desktop (1 linha);
     o tema já quebra sozinho em ≤767px, e aí o center + row-gap atuam */
}
/* Altura da régua — padding vertical (era 15px). Só desktop, pra não
   alterar os cards do mobile. */
@media (min-width: 768px) {
  .uagb-block-c28d4bbf {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
}

/* Padroniza a distância entre as 2 linhas de cada selo
   (estavam com line-height avulso: 0.5, padrão e 1.5). */
.uagb-block-c28d4bbf p { line-height: 1.1 !important; font-size: 17px !important; }

/* Com o 6º selo (ISO 9001) os widthDesktop do UAGB passaram a somar >100%
   (21+21+21+22+19+17), então o flex comprimia cada item e o texto quebrava
   em 3 linhas. Correção: cada selo pela largura do conteúdo (ignora os %) e
   cada linha de texto sem quebra → sempre 2 linhas por selo. */
.uagb-block-c28d4bbf > .uagb-container-inner-blocks-wrap > .wp-block-uagb-container {
  width: auto !important;
  flex: 0 0 auto !important;
}
.uagb-block-c28d4bbf p { white-space: nowrap !important; }
/* Limita a altura dos ícones/selos na faixa da HOME (o bloco root não tem o
   max-height do wrapper .lp-beneficios do produto). Sem isto o selo ISO (SVG
   200×200, sem width) renderizava gigante depois do width:auto acima. */
.uagb-block-c28d4bbf figure img { max-height: 44px !important; }

/* Na PÁGINA DE PRODUTO a faixa é limitada à largura do banner (~1180px) — os 6
   selos com fonte 17 não cabiam em 1 fileira e o último ("Entrega") caía p/ a
   2ª linha. Compacta um pouco (gap + fonte) SÓ no produto (a home é full-width
   e continua 17px) p/ manter 1 fileira com 2 linhas por selo. */
.lp-beneficios .uagb-block-c28d4bbf > .uagb-container-inner-blocks-wrap { column-gap: 14px !important; }
.lp-beneficios .uagb-block-c28d4bbf p { font-size: 16px !important; }
/* Range estreito de desktop (1025–1240px): o container do produto encolhe abaixo
   de 1180px; reduz mais fonte/gap p/ os 6 selos ainda caberem em 1 fileira
   (abaixo de 1025px já entra a faixa mobile em cards). */
@media (min-width:1025px) and (max-width:1240px) {
  .lp-beneficios .uagb-block-c28d4bbf > .uagb-container-inner-blocks-wrap { column-gap: 10px !important; }
  .lp-beneficios .uagb-block-c28d4bbf p { font-size: 13px !important; }
}

/* Ícones da barra: todos são <figure>, mas o Inmetro é "size-full"
   (não "is-resized"), então a imagem vinha inline e criava um vão de
   baseline embaixo, desalinhando. Normaliza: sem margem, line-height 0
   e imagem em block — aí o align-items:center centraliza todos igual. */
.uagb-block-c28d4bbf figure { margin: 0 !important; line-height: 0 !important; }
.uagb-block-c28d4bbf figure img { display: block !important; }

/* <br> solto no texto do selo Inmetro empurra ele pra baixo.
   Isolado: SÓ esse selo (.uagb-block-2e3b1627) e SÓ no desktop
   (≥768px) — mobile permanece como está. */
@media (min-width: 768px) {
  .uagb-block-2e3b1627 p br { display: none !important; }
}

/* ---------- MENU PRINCIPAL — caixa alta + acento de marca ----------
   O tema já tem o sublinhado animado (scaleX no hover) e exclui o
   "Lançamentos". Aqui só somamos caixa alta/tracking e damos ao
   sublinhado o gradiente navy→taupe das barras de título.            */
.main-header-menu > .menu-item > .menu-link {
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  font-weight: 600 !important;
}
.main-header-menu > .menu-item::after {
  background: linear-gradient(90deg, var(--lp-navy), var(--lp-taupe)) !important;
}

/* ---------- BOTÕES / CTAs (Spectra + WooCommerce) ---------- */
.wp-block-button__link,
.uagb-button__link,
.wp-element-button,
.ast-on-card-button,
.add_to_cart_button {
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  will-change: transform;
}
.wp-block-button__link:hover,
.uagb-button__link:hover,
.wp-element-button:hover,
.ast-on-card-button:hover,
.add_to_cart_button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(5,33,57,.22);
  filter: brightness(1.05);
}
.wp-block-button__link:active,
.uagb-button__link:active,
.wp-element-button:active,
.ast-on-card-button:active,
.add_to_cart_button:active { transform: translateY(0); }

/* ---------- CARDS (produto, blog, depoimento) ---------- */
ul.products li.product,
.uagb-post__inner-wrap,
.lpd-card {
  transition: transform .22s ease, box-shadow .22s ease;
}
ul.products li.product:hover,
.uagb-post__inner-wrap:hover,
.lpd-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(5,33,57,.16);
}

/* Zoom sutil na imagem do card (precisa recortar o overflow) */
ul.products li.product a img,
.uagb-post__image img { transition: transform .35s ease; }
ul.products li.product .woocommerce-loop-product__link,
.uagb-post__image { overflow: hidden; display: block; }
ul.products li.product:hover a img,
.uagb-post__inner-wrap:hover .uagb-post__image img { transform: scale(1.04); }

/* ---------- LINKS + FOCO (acessibilidade) ---------- */
a { transition: color .15s ease, opacity .15s ease; }
a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--lp-navy);
  outline-offset: 2px;
  border-radius: 4px;
}

/* >>> EMBELEZAMENTO HOME — fim ========================================= */



/* =========================================================
   >>> CARROSSEL: DOTS NO MOBILE (genérico p/ todo .lp-carrossel)
   No mobile (<=768px) escondemos as setas e mostramos dots de paginação.
   JS que cria os dots: inc/carousel-dots-mobile.php. Aplicado em 2026-06-09.
   ========================================================= */
.lp-carr-dots{ display:none; }                /* desktop: sem dots (usa setas) */
@media (max-width:768px){
  /* esconde as setas em qualquer carrossel */
  .lp-carrossel .lp-carr-nav,
  .lp-carrossel.lp-has-overflow .lp-carr-nav{ display:none !important; }
  /* deixa os dots irem para uma linha abaixo da faixa */
  .lp-carrossel{ flex-wrap:wrap !important; }
  .lp-carr-dots{
    display:flex; flex-basis:100%; width:100%; order:3;
    justify-content:center; align-items:center; gap:8px;
    margin-top:12px; margin-bottom:12px; padding:0;
  }
  .lp-carr-dot{
    width:8px; height:8px; padding:0; border:0; border-radius:50%;
    background:rgba(5,33,57,.25);            /* fundo claro -> dot navy translúcido */
    cursor:pointer; transition:transform .2s ease, background .2s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .lp-carr-dot.is-active{ background:var(--lp-navy); transform:scale(1.3); }
  /* Seção "Conheça nossos projetos" tem fundo navy -> dots claros */
  .lp-projetos-carr .lp-carr-dot{ background:rgba(255,255,255,.45); }
  .lp-projetos-carr .lp-carr-dot.is-active{ background:#fff; }
}
/* >>> CARROSSEL: DOTS NO MOBILE — fim ================================= */


/* =========================================================
   >>> PROJETOS CARROSSEL (single-focus + loop infinito)
   1 vídeo centralizado em destaque, vizinhos esmaecidos "espiando", fade nas
   bordas e loop infinito por clones. JS: inc/home-projetos-carousel.php.
   Classes próprias .lp-proj-* (não usa o sistema genérico .lp-carrossel).
   Aplicado em 2026-06-09.
   ========================================================= */
/* o container interno passa a empilhar [carrossel] + [dots] */
.uagb-block-a3ba7514 .uagb-container-inner-blocks-wrap:has(.lp-proj-carousel){
  flex-direction: column !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}
.lp-proj-carousel{ position: relative; width: 100%; }

/* viewport com máscara de fade nas laterais */
.lp-proj-viewport{
  width: 100%; overflow: hidden; padding: 15px 0;
  touch-action: pan-y;                 /* arraste horizontal NÃO pana a página (só o swipe JS); vertical normal */
  overscroll-behavior-x: contain;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%);
}
.lp-proj-track{
  display: flex; gap: 30px; align-items: center;
  touch-action: pan-y;                 /* idem: o track recebe os eventos de toque do swipe */
  transition: transform .55s cubic-bezier(.4,0,.2,1); will-change: transform;
}
.lp-proj-track.no-transition{ transition: none !important; }

/* slide (9:16) — centro em destaque, vizinhos menores/esmaecidos */
.lp-proj-slide{
  flex: 0 0 308px; width: 308px; height: 548px;
  border-radius: 10px; overflow: hidden; position: relative; background: #000;
  opacity: .70; transform: scale(.9);
  transition: opacity .55s ease, transform .55s cubic-bezier(.4,0,.2,1), box-shadow .55s ease;
  cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.lp-proj-slide.active{
  opacity: 1; transform: scale(1); cursor: pointer;
  box-shadow: 0 14px 40px rgba(0,0,0,.45);
}
.lp-proj-thumb{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* play só "vivo" no slide central */
.lp-proj-slide .lp-video-thumb__play{ opacity: .55; transition: opacity .3s ease, transform .15s ease; }
.lp-proj-slide.active .lp-video-thumb__play{ opacity: 1; }
.lp-proj-slide.active:hover .lp-video-thumb__play{ transform: translate(-50%,-50%) scale(1.08); }

/* ---- player inline (YouTube IFrame API) no card central ---- */
.lp-proj-player{ position: absolute; inset: 0; z-index: 1; background: #000; }
.lp-proj-player iframe{ position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* overlay transparente que captura o clique -> abre o modal */
.lp-proj-clickcatch{ position: absolute; inset: 0; z-index: 2; cursor: pointer; }
/* esconde o "play" grande quando o vídeo está tocando inline */
.lp-proj-slide.lp-has-player .lp-video-thumb__play{ opacity: 0 !important; pointer-events: none; }
/* botão de som (canto inferior direito do central) */
.lp-proj-sound{
  position: absolute; right: 12px; bottom: 12px; z-index: 3;
  width: 40px; height: 40px; border-radius: 50%; border: none; padding: 0;
  background: rgba(5,33,57,.62); color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  box-shadow: 0 2px 10px rgba(0,0,0,.3);
  transition: background-color .2s ease, transform .15s ease;
}
.lp-proj-sound:hover{ background: rgba(5,33,57,.9); transform: scale(1.07); }
.lp-proj-sound:active{ transform: scale(.94); }
.lp-proj-sound svg{ width: 19px; height: 19px; display: block; }

/* setas brancas (seção navy), seta navy; hover taupe da marca */
.lp-proj-seta{
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border-radius: 50%; border: none;
  background: #fff; color: var(--lp-navy); cursor: pointer; z-index: 10;
  display: flex; align-items: center; justify-content: center; padding: 0;
  font-size: 30px; line-height: 1;
  box-shadow: 0 4px 14px rgba(0,0,0,.28);
  transition: background .2s, color .2s, box-shadow .2s, transform .2s;
}
.lp-proj-seta:hover{ background: var(--lp-taupe); color: #fff; }
.lp-proj-seta:active{ transform: translateY(-50%) scale(.94); }
.lp-proj-prev{ left: 10px; }
.lp-proj-next{ right: 10px; }

/* dots claros sobre o navy */
.lp-proj-dots{ display: flex; justify-content: center; gap: 12px; margin-top: 22px; }
.lp-proj-dot{
  width: 11px; height: 11px; border: none; padding: 0; border-radius: 50%;
  background: rgba(255,255,255,.4); cursor: pointer;
  transition: background-color .3s, transform .2s;
}
.lp-proj-dot:hover{ background: rgba(255,255,255,.7); }
.lp-proj-dot.active{ background: #fff; transform: scale(1.25); }

@media (max-width: 768px){
  .lp-proj-slide{ flex: 0 0 240px; width: 240px; height: 427px; }
  .lp-proj-track{ gap: 18px; }
  .lp-proj-viewport{
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
  }
  /* mobile: setas escondidas (navegação por swipe/dots); só aparecem no desktop */
  .lp-proj-seta{ display: none; }
}
/* >>> PROJETOS CARROSSEL (single-focus + loop) — fim ================== */

/* =========================================================
   >>> Home: painel "Compre com um representante"
   1) título alinhado à esquerda (panel-head usava justify-content:space-around)
   2) ícone do WhatsApp antes do texto no botão .wa-btn
   ========================================================= */
.rep .panel-head{ justify-content: flex-start; }
a.wa-btn::before{
  content:"";
  display:inline-block;
  flex:0 0 auto;
  width:20px; height:20px;
  background:url("assets/whatsapp.svg") no-repeat center / contain;
}
/* >>> fim ============================================================= */

/* =========================================================
   >>> Mini-carrinho VAZIO (dropdown do header)
   Botão "Continuar comprando" menor e menos espaço entre o
   texto e o botão (layout compacto). Escopado em #masthead p/
   NÃO afetar os botões globais do site (o seletor do Astra é
   global) e ganhar especificidade sem !important.
   ========================================================= */
#masthead .ast-site-header-cart .widget_shopping_cart_content{
  padding: 10px;
}
#masthead .ast-site-header-cart .ast-mini-cart-empty .woocommerce-mini-cart__empty-message{
  margin: 0 0 10px;
}
#masthead .ast-site-header-cart .ast-mini-cart-empty .woocommerce-mini-cart__buttons{
  margin: 0;
}
#masthead .ast-site-header-cart .ast-mini-cart-empty .woocommerce-mini-cart__buttons a.button{
  padding: 8px 18px;
  font-size: 0.9375rem; /* ~15px (era 1rem/20px) */
  line-height: 1.1;
}
/* >>> fim ============================================================= */

/* =========================================================
   >>> Barra de benefícios: texto em CAIXA-ALTA
   Escopado só na barra (desktop c28d4bbf + mobile lp-benef-mob),
   NÃO na classe genérica .uagb-container-inner-blocks-wrap.
   Só text-transform — não altera layout/estilo.
   ========================================================= */
.uagb-block-c28d4bbf,
.lp-benef-mob{ text-transform: uppercase; }
/* >>> fim ============================================================= */

/* =========================================================
   >>> Página "Minha conta": estilo dos botões (login/cadastro)
   Escopado na body .woocommerce-account; especificidade acima da
   regra global do Astra (.woocommerce button.button) p/ vencer
   sem !important (inclusive o radius 50px do customizer).
   ========================================================= */
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce input.button,
.woocommerce-account .woocommerce a.button{
  padding: 10px 20px;
  font-weight: 400;
  font-size: 1rem;
  border-radius: 10px;
}
/* >>> fim ============================================================= */

/* =========================================================
   >>> HOME: seção "Encontre pela sua necessidade" — redesign 2 colunas
   Escopado em .lp-nec2. Largura preservada (max-width:100% dentro do
   group constrained); neutraliza bg/padding antigos do .lp-necessidade.
   Markup injetado por deploy/redesign-necessidade-home.php.
   ========================================================= */
.lp-nec2{
  --navy:#052139; --creme:#f4edd6; --marrom:#9f7c68; --verde:#0a6600;
  background:#f3f5f9 !important; padding:0 !important; text-align:left;
}
.lp-nec2 .secao{max-width:var(--wp--style--global--content-size,1200px);margin-left:auto;margin-right:auto;padding:55px 20px;font-family:'Poppins',system-ui,-apple-system,sans-serif;color:var(--navy);}
.lp-nec2 .secao-head{text-align:left;margin:0 0 36px;}
.lp-nec2 .secao-head h2{font-size:28px;font-weight:600;margin:0 0 12px;color:var(--navy);display:inline-block;text-transform:uppercase;}
.lp-nec2 .secao-head h2::after{content:"";display:block;width:60px;height:3px;background:var(--marrom);border-radius:2px;margin-top:2px;}
.lp-nec2 .secao-head p{font-size:16px;color:#6b7280;line-height:1.6;margin:0;}
.lp-nec2 .colunas{display:flex;gap:24px;align-items:stretch;}
.lp-nec2 .bloco-site{flex:1.5;min-width:0;background:#dde4ee;border-radius:16px;padding:28px;}
.lp-nec2 .site-head{display:flex;align-items:center;gap:12px;margin-bottom:4px;}
.lp-nec2 .site-head .ic{flex:none;width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;}
.lp-nec2 .site-head .ic svg{width:23px;height:23px;stroke:var(--navy);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.lp-nec2 .bloco-site .titulo{font-size:18px;font-weight:600;margin:0;color:var(--navy);}
.lp-nec2 .bloco-site .sub{font-size:14px;color:#5a6275;line-height:1.6;margin:0 0 20px;}
.lp-nec2 .filtros{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.lp-nec2 .filtro{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;background:#eef2f8;border-radius:14px;padding:22px 12px;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease;}
.lp-nec2 .filtro:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(5,33,57,.1);}
.lp-nec2 .filtro .ic{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;}
.lp-nec2 .filtro .ic svg{width:22px;height:22px;stroke:var(--navy);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.lp-nec2 .filtro .nome{font-size:15px;font-weight:600;color:var(--navy);}
.lp-nec2 .filtro .badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:10px;font-weight:600;letter-spacing:.5px;padding:4px 12px;border-radius:999px;white-space:nowrap;}
.lp-nec2 .divisor{display:flex;flex-direction:column;align-items:center;gap:10px;}
.lp-nec2 .divisor .barra{width:1px;flex:1;background:#d8dbe2;min-height:30px;}
.lp-nec2 .divisor .ou{font-size:13px;color:#9aa1b1;}
.lp-nec2 .bloco-rep{flex:1;min-width:0;background:var(--navy);border-radius:16px;padding:28px;display:flex;flex-direction:column;}
.lp-nec2 .rep-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.lp-nec2 .rep-head .ic{flex:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;}
.lp-nec2 .rep-head .ic svg{width:23px;height:23px;stroke:var(--creme);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.lp-nec2 .rep-head .titulo{font-size:18px;font-weight:600;color:#fff;}
.lp-nec2 .rep-sub{font-size:14px;color:#9fb0c9;line-height:1.6;margin:0 0 18px;}
.lp-nec2 .rep-lista{list-style:none;padding:0;margin:0 0 22px;}
.lp-nec2 .rep-lista li{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.lp-nec2 .rep-lista li:last-child{margin-bottom:0;}
.lp-nec2 .rep-lista .ic{flex:none;width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;}
.lp-nec2 .rep-lista .ic svg{width:17px;height:17px;stroke:#7fd99f;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.lp-nec2 .rep-lista span.txt{font-size:14px;color:#e6ecf5;}
.lp-nec2 .wa-btn{margin-top:auto;width:100%;background:var(--verde);color:#fff;border:none;border-radius:12px;min-height:52px;padding:0 18px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;text-decoration:none;transition:filter .15s ease;}
.lp-nec2 .wa-btn:hover{filter:brightness(1.1);}
.lp-nec2 .wa-btn svg{width:22px;height:22px;fill:#fff;}
@media (max-width:860px){
  .lp-nec2 .colunas{flex-direction:column;}
  .lp-nec2 .divisor{flex-direction:row;width:100%;}
  .lp-nec2 .divisor .barra{width:auto;height:1px;flex:1;min-height:0;}
}
@media (max-width:520px){
  .lp-nec2 .filtros{grid-template-columns:repeat(2,1fr);}
  .lp-nec2 .secao-head h2{font-size:23px;}
}
/* =========================================================
   >>> "Encontre a opção perfeita" (.lp-nec2): ícones via CSS mask.
   O KSES do WP remove os <svg> do conteúdo da home ao salvar; por isso
   os .ic ficavam vazios. Mesma solução definitiva usada na seção .chips.
   ========================================================= */
.lp-nec2 .ic svg{display:none;}
.lp-nec2 .site-head .ic::before,
.lp-nec2 .filtro .ic::before,
.lp-nec2 .rep-head .ic::before,
.lp-nec2 .rep-lista .ic::before{content:"";display:block;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;}
.lp-nec2 .site-head .ic::before{width:23px;height:23px;background-color:#052139;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2212%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M8%2020h8%22/%3E%3Cpath%20d%3D%22M12%2016v4%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2212%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M8%2020h8%22/%3E%3Cpath%20d%3D%22M12%2016v4%22/%3E%3C/svg%3E");}
.lp-nec2 .filtro .ic::before{width:22px;height:22px;background-color:#052139;}
.lp-nec2 .rep-head .ic::before{width:23px;height:23px;background-color:#f4edd6;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2013v-2a8%208%200%200%201%2016%200v2%22/%3E%3Crect%20x%3D%222.5%22%20y%3D%2212.8%22%20width%3D%224.4%22%20height%3D%226.2%22%20rx%3D%221.6%22/%3E%3Crect%20x%3D%2217.1%22%20y%3D%2212.8%22%20width%3D%224.4%22%20height%3D%226.2%22%20rx%3D%221.6%22/%3E%3Cpath%20d%3D%22M19.3%2019v.4a3%203%200%200%201-3%203h-2.8%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2013v-2a8%208%200%200%201%2016%200v2%22/%3E%3Crect%20x%3D%222.5%22%20y%3D%2212.8%22%20width%3D%224.4%22%20height%3D%226.2%22%20rx%3D%221.6%22/%3E%3Crect%20x%3D%2217.1%22%20y%3D%2212.8%22%20width%3D%224.4%22%20height%3D%226.2%22%20rx%3D%221.6%22/%3E%3Cpath%20d%3D%22M19.3%2019v.4a3%203%200%200%201-3%203h-2.8%22/%3E%3C/svg%3E");}
.lp-nec2 .rep-lista .ic::before{width:17px;height:17px;background-color:#7fd99f;}
.lp-nec2 .filtros .filtro:nth-child(1) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%223.3%22%2F%3E%3Cpath%20d%3D%22M5.5%2020c0-3.6%202.9-6%206.5-6s6.5%202.4%206.5%206%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%223.3%22%2F%3E%3Cpath%20d%3D%22M5.5%2020c0-3.6%202.9-6%206.5-6s6.5%202.4%206.5%206%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .filtros .filtro:nth-child(2) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Cpath%20d%3D%22M3.5%2019c0-2.7%202-4.5%204.5-4.5%201%200%201.9.3%202.7.8%22%2F%3E%3Cpath%20d%3D%22M13.3%2015.3c.8-.5%201.7-.8%202.7-.8%202.5%200%204.5%201.8%204.5%204.5%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%228%22%20r%3D%222.7%22%2F%3E%3Cpath%20d%3D%22M3.5%2019c0-2.7%202-4.5%204.5-4.5%201%200%201.9.3%202.7.8%22%2F%3E%3Cpath%20d%3D%22M13.3%2015.3c.8-.5%201.7-.8%202.7-.8%202.5%200%204.5%201.8%204.5%204.5%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .filtros .filtro:nth-child(3) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%226%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%2216.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2210.5%22%20r%3D%221.1%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .filtros .filtro:nth-child(4) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204v16h16a16%2016%200%200%200-16-16z%22%2F%3E%3Cpath%20d%3D%22M7%207v10h10a10%2010%200%200%200-10-10z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204v16h16a16%2016%200%200%200-16-16z%22%2F%3E%3Cpath%20d%3D%22M7%207v10h10a10%2010%200%200%200-10-10z%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .filtros .filtro:nth-child(5) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224.3%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224.3%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .filtros .filtro:nth-child(6) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%229.5%22%20ry%3D%226.4%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%224.8%22%20ry%3D%222.4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%229.5%22%20ry%3D%226.4%22%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%224.8%22%20ry%3D%222.4%22%2F%3E%3C%2Fsvg%3E");}
.lp-nec2 .rep-lista li:nth-child(1) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2011.5a8%208%200%200%201-8%208%208.4%208.4%200%200%201-3.8-.9L3%2020l1.4-4.2A8%208%200%201%201%2021%2011.5z%22/%3E%3Cpath%20d%3D%22M9.6%209.2a2.5%202.5%200%200%201%204.9.5c0%201.7-2.4%202-2.4%203.4%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2216.2%22%20r%3D%22.7%22%20fill%3D%22%23000%22%20stroke%3D%22none%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2011.5a8%208%200%200%201-8%208%208.4%208.4%200%200%201-3.8-.9L3%2020l1.4-4.2A8%208%200%201%201%2021%2011.5z%22/%3E%3Cpath%20d%3D%22M9.6%209.2a2.5%202.5%200%200%201%204.9.5c0%201.7-2.4%202-2.4%203.4%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2216.2%22%20r%3D%22.7%22%20fill%3D%22%23000%22%20stroke%3D%22none%22/%3E%3C/svg%3E");}
.lp-nec2 .rep-lista li:nth-child(2) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15.5%203.6l4.9%204.9a1%201%200%200%201%200%201.4L9.9%2020.4a1%201%200%200%201-1.4%200l-4.9-4.9a1%201%200%200%201%200-1.4L14.1%203.6a1%201%200%200%201%201.4%200z%22/%3E%3Cpath%20d%3D%22M7.8%208.2l1.8%201.8%22/%3E%3Cpath%20d%3D%22M10.8%205.2l1.4%201.4%22/%3E%3Cpath%20d%3D%22M4.8%2011.2l1.4%201.4%22/%3E%3Cpath%20d%3D%22M13.8%2014.2l1.8%201.8%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15.5%203.6l4.9%204.9a1%201%200%200%201%200%201.4L9.9%2020.4a1%201%200%200%201-1.4%200l-4.9-4.9a1%201%200%200%201%200-1.4L14.1%203.6a1%201%200%200%201%201.4%200z%22/%3E%3Cpath%20d%3D%22M7.8%208.2l1.8%201.8%22/%3E%3Cpath%20d%3D%22M10.8%205.2l1.4%201.4%22/%3E%3Cpath%20d%3D%22M4.8%2011.2l1.4%201.4%22/%3E%3Cpath%20d%3D%22M13.8%2014.2l1.8%201.8%22/%3E%3C/svg%3E");}
.lp-nec2 .rep-lista li:nth-child(3) .ic::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v5c0%204.5-3%207.6-7%209-4-1.4-7-4.5-7-9V6z%22/%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4.2%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v5c0%204.5-3%207.6-7%209-4-1.4-7-4.5-7-9V6z%22/%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4.2%22/%3E%3C/svg%3E");}

/* >>> fim ============================================================= */

/* =========================================================
   >>> Minha conta: Login + Cadastro (template form-login.php)
   2 cards lado a lado — tamanhos/espaçamentos/ícones da referência.
   ========================================================= */
.lp-conta{--navy:#052139;--creme:#f4edd6;--marrom:#9f7c68;--erro:#d23b3b;max-width:1040px;margin:0 auto;padding:48px 20px;font-family:'Poppins',system-ui,-apple-system,sans-serif;color:var(--navy);}
.lp-conta .grid{display:flex;gap:24px;align-items:stretch;flex-wrap:wrap;}
.lp-conta .card{flex:1;min-width:300px;background:#fff;border:1px solid #e6e8ee;border-radius:16px;padding:32px;box-shadow:0 4px 20px rgba(5,33,57,.05);display:flex;flex-direction:column;}
.lp-conta .card-head{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.lp-conta .card-head .ic{flex:none;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.lp-conta .card-head .ic.entrar{background:var(--navy);}
.lp-conta .card-head .ic.entrar svg{stroke:#fff;}
.lp-conta .card-head .ic.cadastro{background:var(--creme);}
.lp-conta .card-head .ic.cadastro svg{stroke:var(--navy);}
.lp-conta .card-head .ic svg{width:24px;height:24px;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.lp-conta .card-head h2{font-size:19px;font-weight:600;margin:0;}
.lp-conta .card-sub{font-size:13px;color:#8a90a0;margin:2px 0 22px;line-height:1.5;}
.lp-conta .label{display:block;font-size:13px;font-weight:500;color:var(--navy);margin-bottom:7px;}
.lp-conta .label .req{color:var(--erro);}
.lp-conta .campo{display:flex;align-items:center;gap:9px;border:1px solid #d4d9e2;border-radius:10px;padding:0 13px;height:50px;margin-bottom:18px;background:#fff;transition:border-color .15s ease, box-shadow .15s ease;}
.lp-conta .campo:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(5,33,57,.08);}
.lp-conta .campo svg.lead{width:18px;height:18px;stroke:#9aa1b1;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.lp-conta .campo input{flex:1;min-width:0;border:none;background:transparent;-webkit-appearance:none;appearance:none;box-shadow:none;outline:none;font-size:15px;color:var(--navy);height:100%;font-family:inherit;margin:0;padding:0;}
.lp-conta .campo .olho{cursor:pointer;width:18px;height:18px;stroke:#9aa1b1;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.lp-conta .campo .olho.is-on{stroke:var(--navy);}
.lp-conta .linha{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.lp-conta .check{display:flex;align-items:center;gap:8px;font-size:14px;color:#5a6275;cursor:pointer;margin:0;}
.lp-conta .check input{width:16px;height:16px;accent-color:var(--navy);margin:0;}
.lp-conta .link{font-size:13px;color:#2b5a9e;text-decoration:none;}
.lp-conta .link:hover{text-decoration:underline;}
.lp-conta .info,.lp-conta .woocommerce-privacy-policy-text,.lp-conta .woocommerce-privacy-policy-text p{font-size:14px;color:#5a6275;line-height:1.6;margin:0 0 16px;}
.lp-conta .info-nota{display:flex;gap:10px;font-size:13px;color:#6b7280;line-height:1.6;background:#f5f7fa;border-radius:10px;padding:12px 14px;margin:0 0 22px;}
.lp-conta .info-nota svg{flex:none;width:18px;height:18px;stroke:var(--marrom);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
.lp-conta .cadastro-body{flex:1;}
.lp-conta .cadastro .btn{margin-top:auto;}
.lp-conta .btn{width:100%;border:none;border-radius:10px;height:50px;padding:0;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:9px;transition:filter .15s ease, transform .15s ease;text-decoration:none;line-height:1;}
.lp-conta .btn:hover{transform:translateY(-1px);}
.lp-conta .btn-primary{background:var(--navy);color:#fff;}
.lp-conta .btn-primary:hover{filter:brightness(1.15);background:var(--navy);}
.lp-conta .btn svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:760px){.lp-conta .grid{flex-direction:column;}}
/* >>> fim ============================================================= */

/* ===================================================================== */
/* Mega-menu do cabeçalho (desktop) — painel .lp-mega injetado por        */
/* inc/mega-menu.php sob Banheiras/Spas/Ofurôs/Acessórios.                */
/* Mobile mantém o accordion nativo do Astra (.sub-menu + .ast-menu-toggle)*/
/* ===================================================================== */

/* Mobile/oculto por padrão: nunca aparece abaixo do breakpoint do Astra. */
.lp-mega{ display:none; }

@media (min-width:922px){
	/* Itens com mega: usa o painel rico no lugar do submenu nativo. */
	.main-header-menu > .menu-item:has(> .lp-mega) > .sub-menu{ display:none !important; }

	.main-header-menu > .menu-item > .lp-mega{
		display:block;
		position:absolute;
		top:100%;
		left:0;
		z-index:999;
		min-width:240px;
		max-width:min(560px, calc(100vw - 40px));
		padding:20px 22px;
		background:#fff;
		border:1px solid #ece7da;
		border-top:2px solid var(--lp-taupe, #9f7c68);
		border-radius:0 0 12px 12px;
		box-shadow:0 14px 30px rgba(5,33,57,.16);
		opacity:0;
		visibility:hidden;
		transform:translateY(6px);
		transition:opacity .16s ease, transform .16s ease, visibility .16s;
		line-height:normal;
	}
	/* Painéis de uma coluna são mais estreitos. */
	.main-header-menu > .menu-item > .lp-mega[data-cols="1"]{ min-width:230px; }

	/* Revela no hover/foco do item de topo. */
	.main-header-menu > .menu-item:hover > .lp-mega,
	.main-header-menu > .menu-item:focus-within > .lp-mega{
		opacity:1;
		visibility:visible;
		transform:translateY(0);
	}

	/* Gira a seta do Astra quando o mega abre. */
	.main-header-menu > .menu-item:has(> .lp-mega):hover .ast-arrow-svg,
	.main-header-menu > .menu-item:has(> .lp-mega):focus-within .ast-arrow-svg{
		transform:rotate(180deg);
	}
	.main-header-menu > .menu-item:has(> .lp-mega) .ast-arrow-svg{ transition:transform .2s ease; }

	/* Colunas */
	.lp-mega-cols{ display:flex; gap:0; }
	.lp-mega-col{ padding:0 22px; }
	.lp-mega-col:first-child{ padding-left:0; }
	.lp-mega-col:last-child{ padding-right:0; }
	.lp-mega-col + .lp-mega-col{ border-left:1px solid #f0ece2; }

	/* Cabeçalho de seção */
	.lp-mega-h{
		display:flex; align-items:center; gap:7px;
		margin:0 0 12px;
		color:#9aa0aa;
		font-size:11px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase;
		white-space:nowrap;
	}
	.lp-mega-ic{ color:var(--lp-taupe, #9f7c68); flex-shrink:0; }

	/* Itens (pills) */
	.lp-mega-stack{ display:flex; flex-direction:column; gap:8px; }
	.lp-mega-stack--grid{
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:8px 10px;
	}
	.lp-pill{
		display:inline-flex; align-items:center;
		padding:8px 13px;
		background:#fff;
		border:1px solid #ece7da;
		border-radius:10px;
		font-size:14px;
		font-weight:400;
		line-height:1.2;
		color:var(--lp-navy, #052139) !important;
		white-space:nowrap;
		transition:border-color .15s ease, background-color .15s ease, color .15s ease;
	}
	.lp-pill:hover,
	.lp-pill:focus{
		border-color:#b9c3d4;
		background:#f7f9fc;
		color:var(--lp-navy, #052139) !important;
	}

	/* Rodapé "Ver todos ..." */
	.lp-mega-foot{
		display:flex; align-items:center; gap:7px;
		margin-top:16px; padding-top:13px;
		border-top:1px solid #f0ece2;
		font-size:13px; font-weight:600; letter-spacing:.3px;
		color:var(--lp-navy, #052139) !important;
		transition:gap .15s ease;
	}
	.lp-mega-foot svg{ color:var(--lp-taupe, #9f7c68); }
	.lp-mega-foot:hover{ gap:11px; }
}

/* ----- Mega-menu no MOBILE (#ast-hf-mobile-menu): MESMA config do desktop,
   renderizada como accordion. Substitui o submenu nativo dos itens de categoria.
   Abre/fecha pela seta nativa do Astra (classe .ast-submenu-expanded no <li>). --- */
@media (max-width:921px){
	/* efeito aberto/contraído: gira a seta do toggle nativo ao expandir o item
	   (o Astra não rotaciona sozinho aqui). Vale p/ todos os itens do menu mobile. */
	#ast-hf-mobile-menu .ast-menu-toggle .ast-arrow-svg{ transition:transform .25s ease; }
	#ast-hf-mobile-menu .menu-item.ast-submenu-expanded > .ast-menu-toggle .ast-arrow-svg{ transform:rotate(180deg); }

	/* esconde o submenu nativo dos itens que têm mega; usa o .lp-mega no lugar */
	#ast-hf-mobile-menu .menu-item:has(> .lp-mega) > .sub-menu{ display:none !important; }
	#ast-hf-mobile-menu .menu-item.ast-submenu-expanded > .lp-mega{ display:block; }
	#ast-hf-mobile-menu .lp-mega{ padding:2px 0 8px; }
	#ast-hf-mobile-menu .lp-mega-cols{ display:block; }
	#ast-hf-mobile-menu .lp-mega-col{ padding:8px 0; }
	#ast-hf-mobile-menu .lp-mega-col + .lp-mega-col{ border-top:1px solid #ececec; }
	#ast-hf-mobile-menu .lp-mega-h{
		display:flex; align-items:center; gap:8px;
		margin:0 0 4px; padding-left:20px;
		font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#052139;
	}
	#ast-hf-mobile-menu .lp-mega-ic{ color:var(--lp-taupe,#9f7c68); flex-shrink:0; }
	#ast-hf-mobile-menu .lp-mega-stack{ display:flex; flex-direction:column; }
	#ast-hf-mobile-menu .lp-mega-stack--grid{ display:grid; grid-template-columns:1fr 1fr; column-gap:8px; }
	#ast-hf-mobile-menu .lp-pill{
		display:block; padding:9px 16px 9px 40px;
		color:#052139; font-size:14px; line-height:1.3; text-decoration:none;
	}
	#ast-hf-mobile-menu .lp-pill:hover,
	#ast-hf-mobile-menu .lp-pill:focus{ color:var(--lp-taupe,#9f7c68); }
	#ast-hf-mobile-menu .lp-mega-foot{
		display:inline-flex; align-items:center; gap:6px;
		padding:10px 16px 2px 20px; color:var(--lp-taupe,#9f7c68);
		font-weight:600; font-size:13px; text-decoration:none;
	}
}


/* =========================================================================
   >>> MODELOS EXCLUSIVOS (seção premium da home)
   -------------------------------------------------------------------------
   Cópia da seção "As mais vendidas" com hero (foto + texto) acima do carrossel
   e tratamento visual próprio (paleta quente, acentos bronze). Tudo escopado em
   .lp-sec-cream / .lp-modelos-exclusivos -> NÃO afeta nenhuma outra seção.
   Depende da base que JÁ existe no site: card WooCommerce, carrossel .lp-carr-*,
   o underline padrão dos títulos UAGB (aqui recolorido) e a fonte Poppins.
   ========================================================================= */

/* Fundo cream: destaca a seção premium do branco do resto do site + respiro */
.lp-modelos-exclusivos.lp-sec-cream{
    background-color:#f4edd6 !important;
    padding-top:60px !important; padding-bottom:60px !important;
}

/* Setas prev/next: MESMO padrão da home ("As mais vendidas") — tamanho (30×30,
   círculo) e fonte (glifo ‹ › 26px) FIXOS, herdados de .lp-carr-nav. Aqui só
   muda a COR p/ harmonizar com o fundo cream (marrom no lugar do navy). */
.lp-sec-cream .lp-carr-nav{ background:#311a04; }
.lp-sec-cream .lp-carr-prev:hover, .lp-sec-cream .lp-carr-next:hover,
.lp-sec-cream .lp-carr-prev:active, .lp-sec-cream .lp-carr-next:active,
.lp-sec-cream .lp-carr-prev:focus, .lp-sec-cream .lp-carr-next:focus,
.lp-sec-cream .lp-carr-prev:focus-visible, .lp-sec-cream .lp-carr-next:focus-visible{
    background:#311a04; color:#fff;
}

/* Botão "Comprar" dos cards: marrom (harmoniza com a paleta quente) */
.lp-sec-cream a.add_to_cart_button{ background-color:#311a04 !important; }
.lp-sec-cream a.add_to_cart_button:hover,
.lp-sec-cream a.add_to_cart_button:focus{ background-color:#4a2a0a !important; }

/* Título da seção: marrom + underline padrão recolorido para bronze */
.lp-sec-cream .uagb-heading-text{ color:#311a04 !important; margin-bottom:18px !important; }
.lp-sec-cream .uagb-heading-text::after{
    background:linear-gradient(90deg, #b08d57 0%, #cda96b 100%) !important;
}

/* ===== Cabeçalho (kicker + estrelas + subtítulo) ===== */
.lp-sec-cream .wp-block-uagb-advanced-heading{ margin:0 !important; padding:0 !important; }
.lp-sec-cream .lpx-kicker{
    align-self:flex-start; margin:0 0 6px; padding:0; text-align:left;
    font-size:12px; font-weight:600; letter-spacing:.24em;
    text-transform:uppercase; color:#b08d57;
}
.lp-sec-cream .lpx-kicker::before{
    content:"\2605\2605\2605\2605\2605";
    margin-right:9px; letter-spacing:1px;
}
.lp-sec-cream .lpx-sub{
    align-self:flex-start; margin:8px 0 32px; padding:0; max-width:560px; text-align:left;
    font-size:15px; line-height:1.6; font-weight:400; color:#6b5a44;
}

/* ===== Hero 2 colunas (texto + foto) ===== */
.lp-sec-cream .lpx-hero{
    width:100%; display:grid; grid-template-columns:1.05fr .95fr;
    align-items:stretch; gap:48px; margin-bottom:40px;
}
.lp-sec-cream .lpx-hero-text{ min-width:0; }
.lp-sec-cream .lpx-hero-text .lpx-sub{ margin-bottom:0; }
.lp-sec-cream .lpx-hero-media{ min-width:0; position:relative; }
.lp-sec-cream .lpx-hero-media img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover; object-position:center 46%;
    border-radius:12px;
}
.lp-sec-cream .lpx-media-mobile{ display:none; }
@media (max-width:880px){
    /* só no mobile: foto entre tagline e CTA; sem o margin-bottom do hero */
    .lp-sec-cream .lpx-hero{ grid-template-columns:1fr; gap:24px; margin-bottom:0; }
    .lp-sec-cream .lpx-hero-media{ display:none; }
    .lp-sec-cream .lpx-media-mobile{ display:block; margin:24px 0 0; }
    .lp-sec-cream .lpx-media-mobile img{
        display:block; width:100%; aspect-ratio:16 / 10;
        object-fit:cover; object-position:center 46%; border-radius:12px;
    }
}

/* ===== Tagline de pilares + CTA + diferenciais ===== */
.lp-sec-cream .lpx-pillars{
    margin:5px 0 0; text-align:left;
    font-size:11px; font-style:italic; font-weight:600;
    letter-spacing:.16em; word-spacing:2px; text-transform:uppercase; color:#b08d57;
}
.lp-sec-cream .lpx-cta{
    display:inline-flex; align-items:center; gap:9px;
    margin:77px 0 0; padding:13px 26px;
    background:#311a04; color:#fff;
    border-radius:8px; font-size:13px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
    transition:background .2s ease, transform .2s ease;
}
.lp-sec-cream .lpx-cta,
.lp-sec-cream .lpx-cta:hover,
.lp-sec-cream .lpx-cta:focus{ text-decoration:none !important; }
.lp-sec-cream .lpx-cta:hover{ background:#4a2a0a; transform:translateY(-1px); }
.lp-sec-cream .lpx-cta .lpx-cta-arrow{ width:16px; height:16px; flex:0 0 16px; }
.lp-sec-cream .lpx-feats{
    list-style:none; margin:24px 0 0; padding:0;
    display:flex; flex-wrap:wrap; gap:12px 22px;
}
.lp-sec-cream .lpx-feats li{
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; font-weight:500; color:#6b5a44;
}
.lp-sec-cream .lpx-feats svg{
    width:20px; height:20px; flex:0 0 20px; stroke:#b08d57;
}

/* ===== Acabamento premium dos cards ===== */
.lp-sec-cream ul.products li.product{
    border:1px solid #e4d5b7 !important;
    box-shadow:0 6px 20px rgba(75,42,10,.10) !important;
    padding:14px !important;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}
.lp-sec-cream ul.products li.product:hover{
    transform:translateY(-4px) !important;
    box-shadow:0 14px 30px rgba(75,42,10,.16) !important;
    border-color:#cda96b !important;
}
.lp-sec-cream li.product .woocommerce-LoopProduct-link{
    display:block; overflow:hidden; border-radius:8px;
}
.lp-sec-cream li.product .woocommerce-LoopProduct-link img{
    transition:transform .4s ease;
}
.lp-sec-cream li.product:hover .woocommerce-LoopProduct-link img{
    transform:scale(1.05);
}

/* ===== Overrides SÓ no mobile (depois das regras desktop p/ vencer no source-order) ===== */
@media (max-width:880px){
    /* CTA mais próximo do conteúdo (no desktop os 77px casam a altura da foto) */
    .lp-sec-cream .lpx-cta{ margin:20px 0 0; }
    /* menos respiro no topo/base da seção no mobile (desktop = 60px) */
    .lp-modelos-exclusivos.lp-sec-cream{
        padding-top:30px !important; padding-bottom:30px !important;
    }
}

/* =========================================================================
   >>> BANHEIRAS, SPAS E OFURÔS (seção da home, espelho de "As mais vendidas")
   -------------------------------------------------------------------------
   Recria o padding/espaçamento do container UAGB (o bloco foi inserido via
   banco, sem o CSS gerado pelo UAGB). Mesmo respiro das demais seções.
   ========================================================================= */
.wp-block-uagb-container.uagb-block-b5077a01{
    box-shadow:none;
    padding:40px 0 0 15px;
    background-color:#ffffff;
    row-gap:0; column-gap:10px;
    overflow:visible;
}
@media only screen and (max-width:767px){
    .wp-block-uagb-container.uagb-block-b5077a01{
        padding:35px 0 5px 15px;
        background-color:#ffffff;
    }
}

/* Remove o sublinhado dos links de conteúdo que o Astra injeta via setting
   "underline-content-links" (CSS dinâmico do tema pai). !important porque o
   Astra imprime essa regra inline no <head>, depois deste stylesheet. */
.ast-single-post .entry-content a,
.ast-comment-content a:not(.ast-comment-edit-reply-wrap a),
.woocommerce-js .woocommerce-product-details__short-description a {
    text-decoration: none !important;
}

/* Heading oculto visualmente (acessibilidade/SEO) — visível só p/ leitores de tela e crawlers. */
.lp-sr-only{
    position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ===== Texto SEO no rodapé da categoria (depois dos produtos) =====
   Texto completo no HTML (indexável); "Leia mais" é só visual (clamp + JS). */
.lp-cat-seo{ padding:30px 0 10px; background:#fff; }
.lp-cat-seo .lp-container{ max-width:1200px; margin:0 auto; padding:0 20px; }
.lp-cat-seo__body{
    position:relative;
    max-height:9.4em;            /* título + ~3,5 linhas recolhido */
    overflow:hidden;
    color:#5a6b7b; font-size:15px; line-height:1.6;
    transition:max-height .3s ease;
}
.lp-cat-seo__body::after{        /* fade no estado recolhido */
    content:""; position:absolute; left:0; right:0; bottom:0; height:2.1em;
    background:linear-gradient(rgba(255,255,255,0), #fff); pointer-events:none;
}
.lp-cat-seo.is-open .lp-cat-seo__body{ max-height:3000px; }
.lp-cat-seo.is-open .lp-cat-seo__body::after{ display:none; }
.lp-cat-seo.is-short .lp-cat-seo__body{ max-height:none; }
.lp-cat-seo.is-short .lp-cat-seo__body::after{ display:none; }
.lp-cat-seo__body h1, .lp-cat-seo__body h2{ font-size:19px; font-weight:700; margin:0 0 8px; color:#052139; line-height:1.3; }
.lp-cat-seo__body h3{ font-size:16px; font-weight:600; margin:14px 0 6px; color:#052139; }
.lp-cat-seo__body h4{ font-size:15px; font-weight:700; margin:12px 0 4px; color:#052139; }
/* Regra fixa do projeto: uma única família de fonte (títulos herdam a do corpo) */
.lp-cat-seo__body h1, .lp-cat-seo__body h2, .lp-cat-seo__body h3, .lp-cat-seo__body h4, .lp-cat-seo__body h5, .lp-cat-seo__body h6{ font-family:inherit; }
.lp-cat-seo__body p{ margin:0 0 10px; }
.lp-cat-seo__body ul, .lp-cat-seo__body ol{ margin:0 0 10px 20px; }
.lp-cat-seo__body a{ color:#2b5a9e; text-decoration:underline; }
.lp-cat-seo__toggle{
    display:inline-flex; align-items:center; gap:9px;
    margin-top:16px; padding:11px 26px;
    background:var(--lp-navy); color:#fff;
    border:0; border-radius:8px;
    font-family:inherit; font-size:13px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase; line-height:1;
    cursor:pointer; transition:background .2s ease, transform .2s ease;
}
.lp-cat-seo__toggle:hover{ background:#0a2f50; transform:translateY(-1px); text-decoration:none; }
.lp-cat-seo__toggle::after{
    content:""; width:7px; height:7px; margin-top:-3px;
    border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(45deg); transition:transform .2s ease;
}
.lp-cat-seo.is-open .lp-cat-seo__toggle::after{ transform:rotate(-135deg); margin-top:2px; }
@media (max-width:767px){
    .lp-cat-seo__body{ font-size:14px; max-height:6.3em; } /* ~4.5 linhas no mobile */
}

/* ===== Bloco de texto SEO da HOME (page builder), abaixo dos Depoimentos ===== */
.wp-block-group.lp-home-seo{ padding:44px 20px 52px; }
.lp-home-seo .uagb-heading-text{ margin:0 0 16px; }
/* Regra fixa: uma única família de fonte + hierarquia dos títulos do bloco SEO da home */
.lp-home-seo .uagb-heading-text, .lp-home-seo h2, .lp-home-seo h3, .lp-home-seo h4{ font-family:inherit; }
.lp-home-seo h3{ font-size:18px; font-weight:700; color:#052139; margin:22px 0 8px; }
.lp-home-seo h4{ font-size:15px; font-weight:700; color:#052139; margin:14px 0 4px; }
.lp-home-seo p{ color:#4a5a68; font-size:16px; line-height:1.7; margin:0 0 13px; }
.lp-home-seo p:last-child{ margin-bottom:0; }
.lp-home-seo p a{ color:#2b5a9e; text-decoration:underline; }
@media (max-width:767px){
    .wp-block-group.lp-home-seo{ padding:32px 16px 36px; }
    .lp-home-seo p{ font-size:15px; }
}
/* "Leia mais" do bloco da home — clamp só quando o JS ativa (.is-enhanced);
   sem JS o texto aparece inteiro (bom p/ SEO e usabilidade). */
.lp-home-seo.is-enhanced .lp-home-seo__body{ position:relative; max-height:9.5em; overflow:hidden; transition:max-height .3s ease; }
.lp-home-seo.is-enhanced .lp-home-seo__body::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2.2em; background:linear-gradient(rgba(255,255,255,0),#fff); pointer-events:none; }
.lp-home-seo.is-enhanced.is-open .lp-home-seo__body{ max-height:4000px; }
.lp-home-seo.is-enhanced.is-open .lp-home-seo__body::after{ display:none; }
.lp-home-seo__toggle{
    display:inline-flex; align-items:center; gap:9px; margin-top:16px; padding:11px 26px;
    background:var(--lp-navy); color:#fff; border:0; border-radius:8px;
    font-family:inherit; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; line-height:1;
    cursor:pointer; transition:background .2s ease, transform .2s ease;
}
.lp-home-seo__toggle:hover{ background:#0a2f50; transform:translateY(-1px); }
.lp-home-seo__toggle::after{ content:""; width:7px; height:7px; margin-top:-3px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s ease; }
.lp-home-seo.is-open .lp-home-seo__toggle::after{ transform:rotate(-135deg); margin-top:2px; }

/* =========================================================
   >>> PÁGINA CERTIFICADOS (template page-certificados.php)
   Miolo fiel ao mockup, com header/footer do Astra.
   Regra "uma fonte só": títulos herdam Poppins (font:inherit).
   ========================================================= */
.lp-cert{ --cert-ink:#5a5a5a; --cert-ink-soft:#7a7a7a; --cert-gray:#f7f8fa; --cert-green:#0a6600; --cert-green-dk:#084f00;
    color:var(--cert-ink); font-size:16px; line-height:1.6; }
.lp-cert :is(h1,h2,h3,h4){ font-family:inherit; color:var(--lp-navy); text-transform:uppercase; font-weight:700; letter-spacing:.01em; }
.lp-cert a{ color:inherit; }
.lp-cert-wrap{ max-width:1360px; margin:0 auto; padding:0 16px; }
@media (min-width:768px){ .lp-cert-wrap{ padding:0 32px; } }
/* underline curto taupe (sec-title do site) */
.lp-cert-uline{ position:relative; display:inline-block; }
.lp-cert-uline::after{ content:""; display:block; width:64px; height:3px; background:var(--lp-taupe); margin-top:14px; border-radius:2px; }

/* Intro + breadcrumb */
.lp-cert-intro{ background:var(--cert-gray); border-bottom:1px solid rgba(0,0,0,.05); }
.lp-cert-intro .lp-cert-wrap{ padding-top:24px; padding-bottom:40px; }
@media (min-width:768px){ .lp-cert-intro .lp-cert-wrap{ padding-top:32px; padding-bottom:56px; } }
.lp-cert-crumb{ font-size:12px; color:var(--cert-ink-soft); margin-bottom:24px; }
.lp-cert-crumb a:hover{ color:var(--lp-taupe); }
.lp-cert-crumb span{ margin:0 8px; }
.lp-cert-crumb .is-current{ color:var(--lp-navy); font-weight:500; margin:0; }
.lp-cert-h1{ font-size:26px; line-height:1.15; }
@media (min-width:768px){ .lp-cert-h1{ font-size:38px; } }
.lp-cert-lead{ margin-top:24px; max-width:760px; color:var(--cert-ink); }

/* Seções: paddings */
.lp-cert-docs .lp-cert-wrap,
.lp-cert-guar .lp-cert-wrap,
.lp-cert-cta-sec .lp-cert-wrap{ padding-top:56px; padding-bottom:56px; }
@media (min-width:768px){
    .lp-cert-docs .lp-cert-wrap,
    .lp-cert-guar .lp-cert-wrap,
    .lp-cert-cta-sec .lp-cert-wrap{ padding-top:80px; padding-bottom:80px; }
}
.lp-cert-head{ margin-bottom:40px; }
@media (min-width:768px){ .lp-cert-head{ margin-bottom:56px; } }
.lp-cert-h2{ font-size:20px; }
@media (min-width:768px){ .lp-cert-h2{ font-size:30px; } }
.lp-cert-sub{ margin-top:24px; max-width:640px; }
.lp-cert-sub strong{ color:var(--lp-navy); }

/* Grid de certificados */
.lp-cert-grid{ display:grid; gap:32px; }
@media (min-width:768px){ .lp-cert-grid{ grid-template-columns:1fr 1fr; gap:48px; } }
.lp-cert-shot{ display:block; width:100%; padding:0; background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:8px;
    overflow:hidden; cursor:zoom-in; box-shadow:0 1px 2px rgba(5,33,57,.04),0 10px 30px rgba(5,33,57,.08);
    transition:transform .3s ease, box-shadow .3s ease; }
.lp-cert-shot img{ display:block; width:100%; height:auto; }
.lp-cert-card:hover .lp-cert-shot{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(5,33,57,.18); }
.lp-cert-info{ margin-top:28px; }
.lp-cert-badge{ display:inline-block; color:#fff; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding:4px 12px; border-radius:4px; }
.lp-cert-badge--navy{ background:var(--lp-navy); }
.lp-cert-badge--taupe{ background:var(--lp-taupe); }
.lp-cert-h3{ font-size:20px; margin-top:16px; }
.lp-cert-txt{ font-size:14px; margin-top:12px; color:var(--cert-ink); }
.lp-cert-dl{ margin-top:20px; font-size:14px; border-top:1px solid rgba(0,0,0,.1); border-bottom:1px solid rgba(0,0,0,.1); }
.lp-cert-dl > div{ display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid rgba(0,0,0,.1); }
.lp-cert-dl > div:first-child{ border-top:0; }
.lp-cert-dl dt{ color:var(--cert-ink-soft); }
.lp-cert-dl dd{ margin:0; font-weight:600; color:var(--lp-navy); text-align:right; }
.lp-cert-scope{ font-size:12px; color:var(--cert-ink-soft); margin-top:12px; line-height:1.6; }
.lp-cert-scope strong{ color:var(--lp-navy); font-weight:600; }
.lp-cert-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.lp-cert-btn{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; text-transform:uppercase; letter-spacing:.03em;
    padding:12px 20px; border-radius:6px; cursor:pointer; transition:background .2s ease,color .2s ease,border-color .2s ease; text-decoration:none; line-height:1; }
.lp-cert-btn svg{ width:16px; height:16px; }
.lp-cert-btn--fill{ background:var(--lp-navy); color:#fff; border:2px solid var(--lp-navy); }
.lp-cert-btn--fill:hover{ background:#0a3352; border-color:#0a3352; }
.lp-cert-btn--ghost{ background:transparent; color:var(--lp-navy); border:2px solid var(--lp-navy); }
.lp-cert-btn--ghost:hover{ background:var(--lp-navy); color:#fff; }

/* O que garantem */
.lp-cert-guar{ background:var(--cert-gray); border-top:1px solid rgba(0,0,0,.05); border-bottom:1px solid rgba(0,0,0,.05); }
.lp-cert-feats{ display:grid; gap:24px; }
@media (min-width:640px){ .lp-cert-feats{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .lp-cert-feats{ grid-template-columns:repeat(3,1fr); } }
.lp-cert-feat{ background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:8px; padding:28px;
    box-shadow:0 1px 2px rgba(5,33,57,.04),0 10px 30px rgba(5,33,57,.08); }
.lp-cert-ico{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:10px; background:var(--lp-navy); color:#fff; margin-bottom:20px; }
.lp-cert-ico svg{ width:24px; height:24px; }
.lp-cert-feat h3{ font-size:16px; }
.lp-cert-feat p{ font-size:14px; margin-top:12px; color:var(--cert-ink); }
.lp-cert-note{ font-size:12px; color:var(--cert-ink-soft); margin-top:32px; max-width:760px; }
.lp-cert-note a{ color:var(--lp-taupe); text-decoration:underline; text-underline-offset:2px; }
.lp-cert-note a:hover{ color:var(--cert-green-dk); }

/* CTA especialista */
.lp-cert-cta{ background:var(--lp-navy); color:#fff; border-radius:12px; padding:48px 24px; display:grid; gap:32px; }
@media (min-width:768px){ .lp-cert-cta{ grid-template-columns:1fr auto; align-items:center; padding:64px 56px; } }
.lp-cert-cta h2{ color:#fff; font-size:20px; }
@media (min-width:768px){ .lp-cert-cta h2{ font-size:30px; } }
.lp-cert-cta p{ color:rgba(255,255,255,.7); margin-top:16px; max-width:560px; }
.lp-cert-wpp{ display:inline-flex; align-items:center; gap:8px; justify-self:start; background:var(--cert-green); color:#fff;
    font-weight:600; text-transform:uppercase; letter-spacing:.03em; padding:14px 24px; border-radius:6px; text-decoration:none; white-space:nowrap; transition:background .2s ease; }
@media (min-width:768px){ .lp-cert-wpp{ justify-self:end; } }
.lp-cert-wpp:hover{ background:var(--cert-green-dk); }
.lp-cert-wpp svg{ width:20px; height:20px; }

/* Lightbox */
.lp-cert-lb{ position:fixed; inset:0; z-index:99999; background:rgba(5,33,57,.95); backdrop-filter:blur(3px);
    display:flex; align-items:center; justify-content:center; padding:16px; }
.lp-cert-lb[hidden]{ display:none; }
.lp-cert-lb-close{ position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:50%; border:0;
    background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s ease; }
.lp-cert-lb-close:hover{ background:rgba(255,255,255,.2); }
.lp-cert-lb-close svg{ width:24px; height:24px; }
.lp-cert-lb figure{ margin:0; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; }
.lp-cert-lb img{ max-width:100%; max-height:82vh; width:auto; height:auto; border-radius:8px; background:#fff; object-fit:contain; box-shadow:0 25px 50px -12px rgba(0,0,0,.5); }
.lp-cert-lb figcaption{ color:rgba(255,255,255,.8); font-size:14px; margin-top:12px; text-align:center; }

/* =========================================================
   Setas do carrossel (.lp-carr-nav): chevron via SVG mask.
   O glifo de fonte ‹/› caía baixo e à direita dentro do círculo
   (bearing/fallback da fonte). Agora o glifo é escondido (font-size:0)
   e o chevron é desenhado num ::before que, como filho flex do botão,
   é centralizado pelo próprio align-items/justify-content:center — sem
   depender de position (que varia entre os carrosséis). Mesma técnica
   de mask usada nos ícones do bloco "Encontre a opção perfeita".
   ========================================================= */
.lp-carr-nav{ font-size:0 !important; }
.lp-carr-nav::before{
    content:""; display:block; flex:none;
    width:18px; height:18px; background:#fff;
    -webkit-mask:center/contain no-repeat var(--lp-chev);
            mask:center/contain no-repeat var(--lp-chev);
}
.lp-carr-prev::before{ --lp-chev:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='3.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M15.5%205%208.5%2012%2015.5%2019'/%3E%3C/svg%3E"); }
.lp-carr-next::before{ --lp-chev:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='3.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M8.5%205%2015.5%2012%208.5%2019'/%3E%3C/svg%3E"); }

/* Mesmo fix para as setas do carrossel de PROJETOS/vídeos (.lp-proj-seta):
   classes próprias, não usam .lp-carr-nav. Círculo branco, chevron navy
   (branco no hover). */
.lp-proj-seta{ font-size:0 !important; }
.lp-proj-seta::before{
    content:""; display:block; flex:none;
    width:18px; height:18px; background:var(--lp-navy);
    -webkit-mask:center/contain no-repeat var(--lp-chev);
            mask:center/contain no-repeat var(--lp-chev);
}
.lp-proj-seta:hover::before{ background:#fff; }
.lp-proj-prev::before{ --lp-chev:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='3.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M15.5%205%208.5%2012%2015.5%2019'/%3E%3C/svg%3E"); }
.lp-proj-next::before{ --lp-chev:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='3.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M8.5%205%2015.5%2012%208.5%2019'/%3E%3C/svg%3E"); }

/* ===================================================================
   A11Y (Lighthouse/axe) — contraste 4.5:1 e alvos de toque 24×24
   Cores: mínimo escurecimento que passa WCAG AA (visual ~idêntico).
   Dots: a CAIXA clicável vira 24×24 (WCAG 2.5.8) e o ponto visual
   original é desenhado no ::before com o mesmo tamanho/cor de antes;
   margens compensam os 16px extras de altura p/ não deslocar o layout.
   =================================================================== */

/* contraste: #6b7280→#69707e | #9aa1b1→#6b707b | #b08d57→#806740 */
.lp-nec2 .secao-head p{ color:#69707e; }
.lp-nec2 .divisor .ou{ color:#6b707b; }
.lp-sec-cream .lpx-kicker,
.lp-sec-cream .lpx-pillars{ color:#806740; }
/* botão "Comprar" dos cards: verde #1a8f3c→#198839 (branco passa a 4.5:1) */
.woocommerce ul.products li.product .button,
ul.products li.product .button{ background-color:#198839 !important; font-weight:500; }

/* dots "Conheça nossos projetos" (desktop e mobile) */
.lp-proj-dots{ gap:0; margin-top:14px; margin-bottom:-8px; }
.lp-proj-dot{
    position:relative; width:24px; height:24px; background:transparent;
}
.lp-proj-dot::before{
    content:""; position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:11px; height:11px; border-radius:50%;
    background:rgba(255,255,255,.4);
    transition:background-color .3s, transform .2s;
}
.lp-proj-dot:hover{ background:transparent; }
.lp-proj-dot:hover::before{ background:rgba(255,255,255,.7); }
.lp-proj-dot.active{ background:transparent; transform:none; }
.lp-proj-dot.active::before{ background:#fff; transform:translate(-50%,-50%) scale(1.25); }

@media (max-width:768px){
  /* dots dos carrosséis de categoria/produtos */
  .lp-carr-dots{ gap:0; margin-top:4px; margin-bottom:4px; }
  .lp-carr-dot{ position:relative; width:24px; height:24px; background:transparent; }
  .lp-carr-dot::before{
      content:""; position:absolute; top:50%; left:50%;
      transform:translate(-50%,-50%);
      width:8px; height:8px; border-radius:50%;
      background:rgba(5,33,57,.25);
      transition:transform .2s ease, background .2s ease;
  }
  .lp-carr-dot.is-active{ background:transparent; transform:none; }
  .lp-carr-dot.is-active::before{ background:var(--lp-navy); transform:translate(-50%,-50%) scale(1.3); }
  .lp-projetos-carr .lp-carr-dot{ background:transparent; }
  .lp-projetos-carr .lp-carr-dot::before{ background:rgba(255,255,255,.45); }
  .lp-projetos-carr .lp-carr-dot.is-active{ background:transparent; }
  .lp-projetos-carr .lp-carr-dot.is-active::before{ background:#fff; }
}
/* (dots dos depoimentos: corrigidos direto em lineaplas-core/assets/depoimentos.css) */

/* bullets do slider UAG (swiper) — hero "Compre pelo site" */
.uagb-slider-container .swiper-pagination-bullet{
    width:24px; height:24px; background:transparent !important;
    opacity:1; position:relative; margin:0 !important;
}
.uagb-slider-container .swiper-pagination-bullet::before{
    content:""; position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:8px; height:8px; border-radius:50%;
    background:var(--swiper-pagination-bullet-inactive-color,#000);
    opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);
}
.uagb-slider-container .swiper-pagination-bullet-active::before{
    background:var(--swiper-pagination-color,var(--swiper-theme-color));
    opacity:1;
}
/* este slider tem bullets brancos e pagination a 2px do fundo: desce o
   container 8px p/ o ponto visual ficar onde estava (caixa cresceu 16px) */
.uagb-block-70522f27 .swiper-pagination-bullet::before,
.uagb-block-70522f27 .swiper-pagination-bullet-active::before{ background:#ffffff; }
.uagb-slider-container.uagb-block-70522f27 .swiper-pagination{ bottom:-6px; }

/* A11y desktop: alvo da setinha de submenu <24px de largura; padding à
   esquerda + margem negativa igual = caixa 24.8px sem mover o glyph */
.ast-desktop .main-header-menu .dropdown-menu-toggle{
    padding-left:4px; margin-left:-4px;
}
/* axe link-in-text-block: links no corpo do texto SEO precisam de
   indicador além da cor */
body .entry-content .lp-home-seo__body a{ text-decoration:underline !important; }
/* BP image-size-responsive: icone-industria exibido a 35×36 com intrínseco
   34×35 (1px de upscale); trava no tamanho natural */
.entry-content img[src*="icone-industria"]{ width:34px !important; height:35px !important; }
/* A11y: o CTA da seção institucional (HTML na option lineaplas_global) tem
   background #25a244 (3.31:1 c/ branco); override por especificidade evita
   mexer no banco — mesma cor do botão Comprar */
.lp-inst-html .lp-esp__cta{ background:#198839; }
.lp-inst-html .lp-esp__cta:hover{ background:#127436; }
/* A11y color-contrast: breadcrumb do Woo era #777 sobre branco (4.47:1,
   mínimo 4.5); #6d6d6d dá 5.1:1 sem mudança visual perceptível.
   body.woocommerce-js p/ vencer .woocommerce-js .woocommerce-breadcrumb a */
body.woocommerce-js .woocommerce-breadcrumb,
body.woocommerce-js .woocommerce-breadcrumb a{ color:#6d6d6d; }

/* =====================================================================
   Hero de VÍDEO da home (híbrido com o slider Spectra 70522f27)
   Regra: havendo vídeo, ele substitui o slider — em cada faixa de tela por
   sua conta. Em "vídeo e depois banner" (.lp-hero-video-hibrido) ele não
   substitui: cobre o slider e sai de cena quando termina.
   São duas peças independentes, como as artes do slider:
     .lp-hero-video-desk  -> tem peça de desktop (≥977px)
     .lp-hero-video-mob   -> tem peça de mobile  (≤976px)
   Só uma configurada = a outra tela continua no slider.
   O markup vem de inc/home-hero-video.php; as classes entram no <body>.
   ================================================================== */
.lp-hero-video{
    display:none;                     /* só aparece na faixa que tem peça */
    position:relative;
    width:100%;
    overflow:hidden;
    background:var(--lp-hero-bg, #F3EDD6);  /* cor da própria peça: nada pisca branco */
    line-height:0;
    color:transparent;                /* o alt do poster não vaza como texto */
}
.lp-hero-video picture{ display:contents; }
.lp-hero-video__poster,
.lp-hero-video__media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    margin:0;
}
/* o Astra põe box-shadow em <img>; aqui viraria uma borda cinza */
.lp-hero-video__poster{ box-shadow:none; border-radius:0; }
/* o vídeo entra por cima da capa com cross-fade quando começa a tocar */
.lp-hero-video__media{ opacity:0; transition:opacity .45s ease; }
.lp-hero-video.is-playing .lp-hero-video__media{ opacity:1; }

/* --- celular e tablet em pé: peça vertical (padrão 1080x1350) --- */
@media (max-width:976px){
    .lp-hero-video-mob .lp-hero-video{
        display:block;
        aspect-ratio:var(--lp-hero-ar-mob, 4 / 5);  /* mesmo slot do slider: zero deslocamento */
    }
    /* display:none também evita que o browser baixe os backgrounds do slider.
       No modo híbrido não: o banner vai ser visto, e precisa carregar junto. */
    .lp-hero-video-mob:not(.lp-hero-video-hibrido) .uagb-block-70522f27{ display:none !important; }
    /* No híbrido o banner continua ali por baixo, e o Swiper põe z-index 10
       nas setas e nos pontinhos — eles furariam o vídeo. Enquanto o vídeo
       está no ar não há banner para navegar, então eles esperam a vez. */
    .lp-hero-video-mob .lp-hero-stack:not(.is-done) .swiper-button-prev,
    .lp-hero-video-mob .lp-hero-stack:not(.is-done) .swiper-button-next,
    .lp-hero-video-mob .lp-hero-stack:not(.is-done) .swiper-pagination{
        opacity:0;
        pointer-events:none;
    }
}

/* --- desktop: peça deitada (padrão 1920x600) --- */
@media (min-width:977px){
    .lp-hero-video-desk .lp-hero-video{
        display:block;
        aspect-ratio:var(--lp-hero-ar, 16 / 5);
    }
    .lp-hero-video-desk:not(.lp-hero-video-hibrido) .uagb-block-70522f27{ display:none !important; }
    .lp-hero-video-desk .lp-hero-stack:not(.is-done) .swiper-button-prev,
    .lp-hero-video-desk .lp-hero-stack:not(.is-done) .swiper-button-next,
    .lp-hero-video-desk .lp-hero-stack:not(.is-done) .swiper-pagination{
        opacity:0;
        pointer-events:none;
    }
}

/* --- modo "vídeo e depois banner": os dois no MESMO espaço --------------
   Quem fica no fluxo e dá a altura é o slider, então a troca no fim do vídeo
   não desloca nada. O vídeo entra por cima, absoluto, e no fim some com fade
   revelando o banner que já estava pintado ali desde o primeiro paint — assim
   nenhuma imagem grande aparece tarde, que é o que estragaria o LCP.
   O wrapper vem de inc/home-hero-video.php (render_block). */
.lp-hero-stack{ position:relative; }
.lp-hero-stack .swiper-button-prev,
.lp-hero-stack .swiper-button-next,
.lp-hero-stack .swiper-pagination{ transition:opacity .6s ease; }
.lp-hero-stack > .lp-hero-video{
    position:absolute;
    inset:0;
    z-index:2;
    aspect-ratio:auto;              /* a altura é a do slider, não a da peça */
    transition:opacity .6s ease;
}
.lp-hero-stack > .lp-hero-video.is-done{
    opacity:0;
    pointer-events:none;            /* o clique passa a ser do banner na hora */
    visibility:hidden;              /* ... e as setas e os pontos voltam a valer */
    transition:opacity .6s ease, visibility 0s linear .6s;
}

@media (prefers-reduced-motion:reduce){
    .lp-hero-video__media{ transition:none; }
    .lp-hero-stack > .lp-hero-video,
    .lp-hero-stack > .lp-hero-video.is-done,
    .lp-hero-stack .swiper-button-prev,
    .lp-hero-stack .swiper-button-next,
    .lp-hero-stack .swiper-pagination{ transition:none; }
}

/* =====================================================================
   Slider do hero da home — comportamento de 27/08/2026
   (spec: arquivos/2026-08-27-lineaplas-comportamento-slider-home.pdf)

   O vídeo institucional deixou de ser peça separada e virou o PRIMEIRO
   slide do carrossel. O markup vem de inc/home-hero-slider.php, com as
   mesmas classes de slider-child dos outros slides — o que muda é só o
   miolo: em vez de background-image no .swiper-content, um <picture> com
   a capa e um <video> por cima.
   ================================================================== */
.lp-hero-slide-video{ background:var(--lp-hero-bg, #F3EDD6); }

/* Mesma altura dos slides de arte do bloco (min-height 50vh no container
   interno deles). Sem isto o wrapper flex centraliza um slide mais baixo
   e sobra faixa de fundo em cima e embaixo. */
.lp-hero-slide-video__content{
    position:relative;
    width:100%;
    min-height:50vh;
    padding:0;
    overflow:hidden;
    line-height:0;
    /* a URL do poster vem inline no <head> (inc/home-hero-slider.php): é o que
       segura os CLONES que o Swiper cria para o loop, onde o <picture> não é
       reavaliado e o <video> nasce sem src */
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
}
/* No clone o <img> ficou no GIF vazio: vale o fundo. (O JS remove esse <img>
   e o <video> sem fonte dos clones; a regra fica como rede de segurança para
   o caso de o script não rodar.) O <video> NÃO entra aqui: quando o clone é o
   slide ativo, é ele quem recebe o vídeo de verdade. */
.swiper-slide-duplicate .lp-hero-slide-video__poster{ display:none; }
.lp-hero-slide-video__link{
    position:absolute;
    inset:0;
    display:block;
    color:transparent;          /* o alt da capa não vaza como texto */
}
.lp-hero-slide-video picture{ display:contents; }
.lp-hero-slide-video__poster,
.lp-hero-slide-video__media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    margin:0;
}
/* o Astra põe box-shadow em <img>; aqui viraria uma borda cinza */
.lp-hero-slide-video__poster{ box-shadow:none; border-radius:0; }
/* o vídeo entra por cima da capa com cross-fade quando começa a tocar.
   A classe fica no próprio <video> porque ele MUDA DE SLIDE: quando o ativo é
   um clone, é para lá que ele vai (inc/home-hero-slider.php). */
.lp-hero-slide-video__media{ opacity:0; transition:opacity .45s ease; }
.lp-hero-slide-video__media.is-playing{ opacity:1; }
/* Sem capa não há cross-fade a fazer: o vídeo é o próprio conteúdo do slide e
   entra opaco desde o início. O fundo do slide é a cor da peça, então o
   primeiro quadro (que começa quase vazio) casa com ele. */
.lp-hero-slide-video--sem-capa .lp-hero-slide-video__media{ opacity:1; transition:none; }

/* Setas: permanentes no desktop (não só no hover), ausentes no mobile —
   lá a navegação é swipe + bullets (spec §4). */
@media (min-width:977px){
    .uagb-block-70522f27 .swiper-button-prev,
    .uagb-block-70522f27 .swiper-button-next{ opacity:1; visibility:visible; }
}
@media (max-width:976px){
    .uagb-block-70522f27 .swiper-button-prev,
    .uagb-block-70522f27 .swiper-button-next{ display:none; }
}

@media (prefers-reduced-motion:reduce){
    .lp-hero-slide-video__media{ transition:none; }
}
