.elementor-kit-8{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   LP IVS — CSS de apoio ao template do Elementor
   Cole em: Elementor → Configurações do site → CSS personalizado
   (Site Settings → Custom CSS). Vale para todas as unidades.

   Este arquivo mira a estrutura que o ELEMENTOR gera
   (.elementor-widget-heading > .elementor-heading-title, etc.),
   não o HTML da maquete. Não misture com o CSS do index.html.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Urbanist:wght@500;600;700;800;900&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&display=swap');

:root{
  --azul:#003DFF; --azul-esc:#0030CC; --azul-luz:#2960FF; --azul-nevoa:#EEF2FF;
  --laranja:#E25205; --laranja-solido:#CB4A05; --laranja-texto:#B84304; --laranja-nevoa:#FFF2E9;
  --verde:#00A64A; --verde-texto:#007535; --verde-nevoa:#E9F8F0;
  --tinta:#0E1120; --tinta-suave:#333849; --tinta-mute:#585A5F;
  --osso:#F5F6FA;
  --linha:rgba(14,17,32,.12);
  --linha-clara:rgba(255,255,255,.22);
  --sombra:0 1px 2px rgba(14,17,32,.05), 0 14px 34px -14px rgba(14,17,32,.16);
  --sombra-alta:0 2px 6px rgba(14,17,32,.06), 0 40px 70px -28px rgba(14,17,32,.34);
  --r:20px;
}

/* A barra fixa cobre o alvo das âncoras — compensa o deslocamento */
html{ scroll-padding-top:72px }

body{ font-family:"DM Sans", ui-sans-serif, system-ui, sans-serif; color:var(--tinta) }

/* Rede de segurança: o CSS do próprio Elementor já faz isso, mas se ele não
   carregar (ou o tema sobrescrever) a imagem estoura a largura da página. */
.elementor img{ max-width:100%; height:auto }

/* ---------- Tipografia base ---------- */
.display .elementor-heading-title,
.elementor h1.elementor-heading-title,
.elementor h2.elementor-heading-title{
  font-family:"Urbanist", sans-serif;
  font-weight:900; line-height:.98; letter-spacing:-.025em;
  text-wrap:balance; margin:0;
}
.secao-titulo .elementor-heading-title{ font-size:clamp(1.8rem, 4.8vw, 3rem) }
.hero-h1 .elementor-heading-title{ font-size:clamp(2.25rem, 6.8vw, 4.15rem); color:#fff }
.hero-h1 em{ font-style:normal; color:#FFC7A6 }

.rotulo{
  font-family:"Urbanist",sans-serif; font-weight:800; text-transform:uppercase;
  letter-spacing:.18em; font-size:.72rem; line-height:1.4;
  display:inline-flex; align-items:center; gap:.6rem;
}
.rotulo::before{ content:""; width:22px; height:2px; background:currentColor; opacity:.65 }
.cabeca-rotulo{ text-align:center }
.cabeca-rotulo .rotulo::before{ display:none }

.secao-sub p{ margin:0; color:var(--tinta-mute); font-size:clamp(1rem,1.5vw,1.15rem) }

/* ---------- Trama de pontos (eco do uniforme IVS) ---------- */
.pontos{ position:relative; overflow:hidden }
.pontos::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(#fff 1.4px, transparent 1.4px);
  background-size:16px 16px; opacity:.13;
  -webkit-mask-image:linear-gradient(200deg,#000 5%,transparent 65%);
          mask-image:linear-gradient(200deg,#000 5%,transparent 65%);
}
.pontos > *{ position:relative; z-index:1 }

/* ---------- Botões ---------- */
.btn-voucher .elementor-button,
.btn-barra .elementor-button,
.btn-flutua .elementor-button{
  font-family:"Urbanist",sans-serif; font-weight:800; letter-spacing:.02em;
  border-radius:999px; border:2px solid transparent;
  background:var(--laranja-solido); color:#fff;
  box-shadow:0 12px 30px -12px rgba(226,82,5,.85);
  transition:transform .18s cubic-bezier(.2,.7,.3,1), background-color .18s, box-shadow .18s;
}
.btn-voucher .elementor-button{ padding:1.15rem 2.1rem; font-size:1.08rem }
.btn-voucher .elementor-button:hover,
.btn-barra .elementor-button:hover,
.btn-flutua .elementor-button:hover{
  background:var(--laranja); color:#fff; transform:translateY(-2px);
  box-shadow:0 18px 38px -14px rgba(226,82,5,.9);
}
/* Botão da barra fixa: invertido */
.btn-barra .elementor-button{
  background:#fff; color:var(--laranja-texto);
  padding:.5rem 1.1rem; font-size:.88rem; box-shadow:none;
}
.btn-barra .elementor-button:hover{ background:var(--tinta); color:#fff }

/* ---------- Barra fixa de escassez ---------- */
.barra p{ margin:0; font-size:.88rem; font-weight:500; color:#fff }
.barra b{ font-family:"Urbanist",sans-serif; font-weight:800 }
.pulso{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:#fff; margin-right:.45rem; vertical-align:1px;
}
@media (prefers-reduced-motion:no-preference){
  .pulso{ animation:pulso 1.8s ease-in-out infinite }
  @keyframes pulso{ 0%,100%{ opacity:.35; transform:scale(.8) } 50%{ opacity:1; transform:scale(1.15) } }
}
@media (max-width:640px){ .barra p{ font-size:.8rem } .barra .btn-barra{ display:none } }

.marca-logo img{ height:40px; width:auto }
@media (max-width:640px){ .marca-logo img{ height:32px } }

/* ---------- Hero ---------- */
.hero{
  background-image:
    radial-gradient(120% 90% at 78% 12%, rgba(41,96,255,.85) 0%, transparent 58%),
    radial-gradient(90% 70% at 8% 92%, rgba(0,166,74,.42) 0%, transparent 60%) !important;
}
.hero, .hero p, .hero .elementor-heading-title{ color:#fff }
.hero-selo{
  display:inline-flex; align-items:center; gap:.55rem;
  background:rgba(255,255,255,.14); border:1px solid var(--linha-clara);
  padding:.45rem 1rem .45rem .7rem; border-radius:999px;
  font-family:"Urbanist",sans-serif; font-weight:700; font-size:.82rem;
  letter-spacing:.06em; text-transform:uppercase;
}
.hero-selo b{ color:#FFE7DA }
.hero-lead p{ margin:0; font-size:clamp(1.02rem,1.6vw,1.18rem); color:rgba(255,255,255,.92); max-width:46ch }
.hero-nota{ margin:0; font-size:.87rem; color:rgba(255,255,255,.84) }

/* Preço como objeto gráfico */
.preco{
  display:flex; align-items:flex-start; gap:1.15rem; flex-wrap:wrap;
  padding:1.1rem 1.45rem; width:fit-content;
  background:rgba(255,255,255,.1); border:1px solid var(--linha-clara); border-radius:18px;
}
.preco-cifra{ display:flex; align-items:flex-start; font-family:"Urbanist",sans-serif; line-height:.85 }
.preco-cifra .rs{ font-size:clamp(1.1rem,2vw,1.5rem); font-weight:800; margin:.35em .25rem 0 0 }
.preco-cifra .num{ font-size:clamp(3.2rem,9vw,5rem); font-weight:900; letter-spacing:-.045em }
.preco-lado{ align-self:center; font-size:.95rem; line-height:1.45; color:rgba(255,255,255,.92) }
.preco-lado b{ font-family:"Urbanist",sans-serif; font-weight:800; color:#fff; display:block; font-size:1.06rem }
/* ênfase dentro da linha de detalhe — <strong> para não virar bloco como o <b> */
.preco-lado strong{ font-family:"Urbanist",sans-serif; font-weight:800; color:#fff }
.preco-de{ text-decoration:line-through; opacity:.72 }

.hero-foto{ position:relative; max-width:440px; margin-inline:auto }
.hero-foto img{ border-radius:26px; box-shadow:var(--sombra-alta); border:6px solid rgba(255,255,255,.16) }
.hero-carimbo{
  position:absolute; right:-.5rem; top:-1.1rem; z-index:3;
  width:clamp(92px,22vw,116px); aspect-ratio:1; border-radius:50%;
  background:var(--laranja-solido); color:#fff; display:grid; place-content:center;
  text-align:center; box-shadow:0 18px 40px -14px rgba(226,82,5,.9);
  font-family:"Urbanist",sans-serif; line-height:1.05; rotate:-8deg;
}
.hero-carimbo b{ display:block; font-size:clamp(1.5rem,4.5vw,1.95rem); font-weight:900 }
.hero-carimbo span{ font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase }
/* o widget do carimbo não deve ocupar altura no fluxo */
.hero-foto > .elementor-widget-html{ position:absolute; inset:0; pointer-events:none }

/* ---------- Blocos de captura ---------- */
.captura, .captura p, .captura .elementor-heading-title{ color:#fff }
.captura .secao-sub p{ color:rgba(255,255,255,.9) }
.provas{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem }
.provas li{ position:relative; padding-left:1.9rem; font-size:.98rem }
.provas li::before{
  content:""; position:absolute; left:0; top:.45em;
  width:14px; height:8px; border-left:3px solid #8FF3BC; border-bottom:3px solid #8FF3BC;
  transform:rotate(-45deg);
}

/* Cartão branco do formulário */
.caixa{
  background:#fff !important; border-radius:24px;
  padding:clamp(1.6rem,3.2vw,2.3rem) !important;
  box-shadow:var(--sombra-alta);
}
.caixa, .caixa p, .caixa .elementor-heading-title{ color:var(--tinta) }
.caixa-selo{
  display:inline-flex; align-items:center; gap:.45rem;
  background:var(--laranja-nevoa); color:var(--laranja-texto);
  padding:.35rem .8rem; border-radius:999px;
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:.74rem;
  text-transform:uppercase; letter-spacing:.1em;
}
.caixa-titulo .elementor-heading-title{
  font-family:"Urbanist",sans-serif; font-weight:900;
  font-size:clamp(1.25rem,2.6vw,1.55rem); letter-spacing:-.02em;
}
.caixa-lead p{ margin:0; font-size:.93rem; color:var(--tinta-mute) }
.caixa-unidade{
  display:flex; gap:.6rem; align-items:flex-start;
  background:var(--azul-nevoa); border-radius:12px; padding:.8rem 1rem;
}
.caixa-unidade svg{ flex:none; margin-top:.15rem; color:var(--azul) }
.caixa-unidade b{ font-family:"Urbanist",sans-serif; font-weight:800; font-size:.9rem; display:block }
.caixa-unidade span{ font-size:.82rem; color:var(--tinta-mute) }
.caixa-nota{ margin:0; font-size:.76rem; color:var(--tinta-mute); text-align:center; line-height:1.5 }

/* Formulário do Elementor Pro */
.form-voucher .elementor-field-group > label{
  font-family:"Urbanist",sans-serif; font-weight:700; font-size:.82rem;
  color:var(--tinta); margin-bottom:.4rem;
}
.form-voucher .elementor-field-textual{
  padding:.95rem 1rem; border-radius:12px;
  border:1.5px solid var(--linha); background:var(--osso);
  color:var(--tinta); font-size:1rem; line-height:1.4;
  transition:border-color .18s, background-color .18s;
}
.form-voucher .elementor-field-textual:focus{ background:#fff; border-color:var(--azul); box-shadow:none }
.form-voucher .elementor-field-textual::placeholder{ color:#8A8D96 }
.form-voucher .elementor-button[type=submit]{
  width:100%; border-radius:999px; border:2px solid transparent;
  background:var(--laranja-solido); color:#fff;
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:1.08rem;
  padding:1.15rem 2rem; box-shadow:0 12px 30px -12px rgba(226,82,5,.85);
  transition:transform .18s, background-color .18s;
}
.form-voucher .elementor-button[type=submit]:hover{ background:var(--laranja); transform:translateY(-2px) }
.form-voucher .elementor-message{ font-size:.92rem }

/* ---------- Números ---------- */
.numeros, .numeros p{ color:#fff }
.num-v{ font-family:"Urbanist",sans-serif; font-weight:900; font-size:clamp(2rem,5vw,3rem); line-height:1; letter-spacing:-.04em; text-align:center }
.num-v span{ color:#F06A22 }
.num-r{ display:block; margin-top:.5rem; font-size:.87rem; color:rgba(255,255,255,.78); line-height:1.35; text-align:center }
.num-item{ text-align:center }

/* ---------- Cards genéricos (lentes) ---------- */
.card{
  background:#fff !important; border:1px solid var(--linha); border-radius:var(--r);
  padding:1.6rem !important; box-shadow:var(--sombra);
  transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s, border-color .2s;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--sombra-alta); border-color:transparent }
.card-titulo .elementor-heading-title{
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:1.2rem;
  letter-spacing:-.01em; line-height:1.25;
}
.card p{ margin:0; color:var(--tinta-mute); font-size:.95rem }

/* ---------- Categorias ---------- */
.cat-card{
  background:#fff !important; border:1px solid var(--linha); border-radius:var(--r);
  overflow:hidden; padding:0 !important; box-shadow:var(--sombra);
  transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s, border-color .2s;
}
.cat-card:hover{ transform:translateY(-4px); box-shadow:var(--sombra-alta); border-color:transparent }
/* Placeholder enquanto as fotos do Drive não chegam.
   Para trocar por foto: apague o <svg> e o <span class="pend"> do widget HTML
   e ponha <img src="..." alt="..."> no lugar. */
.cat-card-foto{
  aspect-ratio:4/3; position:relative; display:grid; place-items:center;
  background:linear-gradient(150deg, var(--azul-nevoa) 0%, #DCE4FF 100%);
  color:var(--azul);
}
.cat-card-foto img{ width:100%; height:100%; object-fit:cover; display:block }
.cat-card-foto .pend{
  position:absolute; right:.6rem; bottom:.6rem;
  background:rgba(255,255,255,.94); color:var(--tinta-mute);
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:.62rem;
  text-transform:uppercase; letter-spacing:.11em;
  padding:.3rem .6rem; border-radius:999px;
}
/* o widget HTML do placeholder não pode ganhar padding do container */
.cat-card > .elementor-widget-html{ width:100% }

/* --- Carrossel de fotos da categoria (widget Image Carousel) --- */
.cat-card-carrossel{ width:100% }
.cat-card-carrossel .elementor-widget-container{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:linear-gradient(150deg, var(--azul-nevoa) 0%, #DCE4FF 100%);
}
/* Estado vazio: enquanto ninguém escolheu as fotos, o bloco se explica
   em vez de aparecer como um vão branco. As fotos cobrem isso depois. */
.cat-card-carrossel .elementor-widget-container::before{
  content:"Foto pendente";
  position:absolute; inset:0; z-index:0; display:grid; place-items:center;
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:.68rem;
  letter-spacing:.11em; text-transform:uppercase; color:var(--tinta-mute);
}
.cat-card-carrossel .elementor-image-carousel-wrapper,
.cat-card-carrossel .swiper,
.cat-card-carrossel .swiper-wrapper,
.cat-card-carrossel .swiper-slide{ position:relative; z-index:1; height:100% }
.cat-card-carrossel .swiper-slide figure{ margin:0; height:100% }
.cat-card-carrossel .swiper-slide-image{
  width:100%; height:100%; object-fit:cover; display:block; border-radius:0;
}
/* bolinhas sobre a foto, não empurrando o card */
.cat-card-carrossel .swiper-pagination{
  position:absolute; bottom:.55rem; left:0; right:0; z-index:2; line-height:0;
}
.cat-card-carrossel .swiper-pagination-bullet{
  width:7px; height:7px; background:#fff; opacity:.55; margin:0 3px;
  box-shadow:0 1px 3px rgba(14,17,32,.45);
}
.cat-card-carrossel .swiper-pagination-bullet-active{ opacity:1; width:18px; border-radius:99px }
.cat-card-titulo{ padding:1.35rem 1.35rem 0 }
.cat-card-titulo .elementor-heading-title{
  font-family:"Urbanist",sans-serif; font-weight:800; font-size:1.12rem; letter-spacing:-.01em;
}
.cat-card-txt{ padding:.4rem 1.35rem 1.35rem }
.cat-card-txt p{ margin:0; color:var(--tinta-mute); font-size:.92rem }

/* ---------- Depoimentos ---------- */
.dep{
  background:#fff !important; border:1px solid var(--linha); border-radius:var(--r);
  padding:1.6rem !important; box-shadow:var(--sombra);
}
.dep-estrelas{ color:var(--laranja-texto); letter-spacing:.15em; font-size:.95rem }
.dep p{ margin:0; font-size:.96rem; color:var(--tinta-suave) }
.dep-quem{ display:flex; align-items:center; gap:.75rem; border-top:1px solid var(--linha); padding-top:1.1rem; margin-top:.4rem }
.dep-ini{
  width:42px; height:42px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--azul-nevoa); color:var(--azul);
  font-family:"Urbanist",sans-serif; font-weight:900; font-size:.95rem;
}
.dep-quem b{ font-family:"Urbanist",sans-serif; font-weight:800; display:block; font-size:.95rem }
.dep-quem span:not(.dep-ini){ font-size:.8rem; color:var(--tinta-mute) }

/* ---------- Unidade ---------- */
.unidade{
  border-radius:26px; overflow:hidden; box-shadow:var(--sombra-alta);
  background:#fff !important; padding:0 !important;
}
.unidade-mapa, .unidade-mapa .elementor-widget-google_maps,
.unidade-mapa .elementor-custom-embed{ height:100%; min-height:320px }
.unidade-mapa iframe{ width:100%; height:100%; min-height:320px; border:0; display:block }
.unidade-dados{ padding:clamp(1.75rem,3.5vw,2.75rem) !important }
.unidade-h3 .elementor-heading-title{
  font-family:"Urbanist",sans-serif; font-weight:900;
  font-size:clamp(1.35rem,2.8vw,1.85rem); letter-spacing:-.02em;
}
.dl{ display:grid; gap:1.05rem }
.dl-item b{
  font-family:"Urbanist",sans-serif; font-weight:800; display:block;
  font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:var(--tinta-mute);
}
.dl-item p{ margin:.15rem 0 0; font-size:1rem }

/* ---------- FAQ (widget sanfona) ---------- */
.faq .elementor-accordion-item{ border:0; border-bottom:1px solid var(--linha) }
.faq .elementor-tab-title{
  background:transparent; padding:1.3rem 3rem 1.3rem 0;
  font-family:"Urbanist",sans-serif; font-weight:800;
  font-size:clamp(1rem,2vw,1.1rem); letter-spacing:-.01em; color:var(--tinta);
}
.faq .elementor-tab-title.elementor-active{ color:var(--azul) }
.faq .elementor-tab-title .elementor-accordion-icon{ color:var(--azul) }
.faq .elementor-tab-content{
  border:0; padding:0 0 1.5rem;
  color:var(--tinta-mute); font-size:.98rem; max-width:70ch;
}
.faq .elementor-tab-content p{ margin:0 }

/* ---------- CTA repetido ---------- */
.cta-linha{ text-align:center }
.cta-nota{ margin:0; font-size:.83rem; color:var(--tinta-mute) }
.cta-linha.claro .cta-nota{ color:#fff }

/* ---------- Rodapé ---------- */
.rodape, .rodape p{ color:rgba(255,255,255,.72); text-align:center }
.rodape p{ margin:0 auto .5rem; font-size:.88rem; max-width:56ch }
.rodape-logo img{ height:44px; width:auto; margin-inline:auto }
.rodape-links{ margin-top:1.25rem; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:center; font-size:.85rem }
.rodape-links a{ color:rgba(255,255,255,.72); text-decoration:none; display:inline-flex; align-items:center; min-height:34px }
.rodape-links a:hover{ color:#fff; text-decoration:underline }
.rodape-fim{ margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.14); font-size:.78rem }

/* ============================================================
   PÁGINA DE OBRIGADO
   ============================================================ */
.obrigado-h1 .elementor-heading-title{ line-height:.95; margin-bottom:-.15em }
.obrigado-h2 .elementor-heading-title{ font-weight:800; letter-spacing:-.02em }
.obrigado-lead p, .obrigado-share-txt p{ margin:0; font-size:1.05rem; max-width:46ch; line-height:1.55 }
.obrigado-lead b, .obrigado-share-txt b{ color:var(--tinta); font-weight:700 }

/* setas desenhadas entre os passos */
.seta-wrap{ color:var(--verde-texto); line-height:0; padding-left:2.2rem }
.seta-wrap.seta-dir{ padding-left:0; padding-right:2.2rem; text-align:right }
.seta-wrap.seta-dir .seta{ transform:scaleX(-1) }

/* "Ative uma condição extra" */
.pilula{
  display:inline-block; border:2px solid var(--verde-texto); color:var(--verde-texto);
  background:#fff; border-radius:999px; padding:.85rem 1.9rem;
  font-family:"Urbanist",sans-serif; font-weight:800;
  font-size:clamp(1.05rem,2.2vw,1.35rem); letter-spacing:-.01em;
}

.btn-zap-share{ width:100%; max-width:520px }
.btn-zap-share .elementor-button{ width:100%; justify-content:center }

.obrigado-foto img{
  border-radius:24px; box-shadow:var(--sombra-alta);
  max-width:100%; height:auto;   /* sem isso a foto de 1200px estoura a largura */
}

/* faixa com endereço e horário */
.obrigado-dados{
  display:grid; gap:1.25rem 3rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  text-align:center; margin-top:.4rem;
}
.obrigado-dados b{
  font-family:"Urbanist",sans-serif; font-weight:800; display:block;
  font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; color:var(--tinta-mute);
}
.obrigado-dados p{ margin:.3rem 0 0; font-size:1rem; color:var(--tinta) }

@media (max-width:900px){
  .obrigado-in > .e-con{ width:100% !important }
  .obrigado-foto{ max-width:340px; margin-inline:auto }
  .seta-wrap, .seta-wrap.seta-dir{ padding:0; text-align:center }
}

/* ---------- CTA flutuante (só mobile) ---------- */
.flutua{
  display:none !important;
  position:fixed; left:0; right:0; bottom:0; z-index:95;
  background:rgba(255,255,255,.94); backdrop-filter:saturate(150%) blur(12px);
  border-top:1px solid var(--linha);
  padding-bottom:calc(10px + env(safe-area-inset-bottom)) !important;
}
.flutua .elementor-button{ width:100%; padding:.95rem 1.5rem }
@media (max-width:900px){
  .flutua{ display:flex !important }
  .rodape{ padding-bottom:7rem !important }
}

/* ---------- Responsivo das grades ---------- */
@media (max-width:1024px){
  .cat-grade > .e-con, .grade.g4 > .e-con{ width:48% !important }
}
@media (max-width:767px){
  .cat-grade > .e-con, .grade.g4 > .e-con,
  .numeros-grade > .e-con{ width:100% !important }
  .unidade{ border-radius:20px }
  .hero-foto{ max-width:340px }
}
@media (max-width:767px) and (min-width:480px){
  .numeros-grade > .e-con{ width:48% !important }
}

/* ---------- Botao flutuante de WhatsApp (canto inferior direito) ---------- */
.zap-flutuante{
  position:fixed; right:18px; bottom:18px; z-index:98;
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.95rem 1.4rem; border-radius:999px;
  background:#188741; color:#fff !important; text-decoration:none;
  font-family:"Urbanist", sans-serif; font-weight:800; font-size:1rem; line-height:1;
  box-shadow:0 14px 34px -10px rgba(24,135,65,.8);
  transition:transform .18s cubic-bezier(.2,.7,.3,1), background-color .18s;
}
.zap-flutuante:hover{ background:#136B34; color:#fff !important; transform:translateY(-3px) }
.zap-flutuante:focus-visible{ outline:3px solid var(--tinta); outline-offset:3px }
.zap-flutuante svg{ flex:none }
@media (max-width:900px){
  .zap-flutuante{ padding:1rem; bottom:84px }
  .zap-flutuante span{ display:none }
}
@media (prefers-reduced-motion:reduce){
  .zap-flutuante{ transition:none }
  .zap-flutuante:hover{ transform:none }
}

/* As colunas do hero e dos blocos de captura tem largura em % no desktop.
   Abaixo de 900px o container vira coluna, entao a largura volta a 100%. */
@media (max-width:900px){
  .hero-in > .e-con, .captura-in > .e-con{ width:100% !important }
  .hero-foto{ margin-inline:auto }
}/* End custom CSS */