/*!
 * Alstera Capital — style.css
 * Design system bespoke, grid via Bootstrap 5 (ver www/index.html <head>)
 * Fontes: Georgia Bold (headings) + Montserrat variável (corpo)
 */

/* ================================================================
   Fontes
   ================================================================ */
@font-face {
  font-family: 'AlsteraSerif';
  src: url('../fonts/georgiab.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'AlsteraSerif';
  src: url('../fonts/georgia.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-VariableFont_wght.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-Italic-VariableFont_wght.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* ================================================================
   Design tokens
   ================================================================ */
:root{
  /* brand — extraído da paleta oficial (af_alstera26_site.svg) */
  --primary:#16263d;         /* navy profundo — header, títulos, seções escuras */
  --primary-dark:#0c1726;    /* navy mais escuro — gradientes, overlays */
  --primary-light:#2a4a72;   /* azul secundário — degradês, hovers claros */
  --primary-50:#eef1f5;      /* tint quase branco do navy — fundos suaves */
  --primary-100:#dbe2ea;
  --accent:#bd744e;          /* terracota — assinatura da marca, ~10% da superfície */
  --accent-dark:#a15f3c;
  --accent-light:#d9a481;
  --accent-50:#f7ece5;
  --cream:#f2f0eb;           /* creme — fundo de seções claras */
  --cream-dark:#eae5dd;
  --warm-grey:#bbb7b1;
  --dark:#0a1220;            /* quase preto navy — preloader, seções profundas */
  --white:#ffffff;
  --off-white:#fcfcfc;

  /* neutros — escala de texto */
  --gray-900:#2a2a29;
  --gray-800:#4a4a49;
  --gray-700:#575756;
  --gray-600:#6f6f6e;
  --gray-500:#8f8d8a;
  --gray-400:#bbb7b1;
  --gray-200:#e4e1db;
  --gray-100:#f2f0eb;

  /* feedback */
  --success:#3f7a5c; --success-bg:#e7f1eb;
  --danger:#a4463a;  --danger-bg:#f6e8e6;

  /* tipografia */
  --font-heading:'AlsteraSerif', Georgia, 'Times New Roman', serif;
  --font-body:'Montserrat', 'Segoe UI', sans-serif;

  /* forma */
  --radius-sm:6px; --radius-md:14px; --radius-lg:26px; --radius-full:999px;
  --header-h:104px;

  /* elevação */
  --shadow-sm:0 2px 10px rgba(10,18,32,.08);
  --shadow-md:0 14px 34px rgba(10,18,32,.12);
  --shadow-lg:0 26px 64px rgba(10,18,32,.18);
  --shadow-accent:0 14px 32px rgba(189,116,78,.34);
  --shadow-primary:0 16px 40px rgba(22,38,61,.28);

  /* movimento */
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --t-fast:.2s var(--ease); --t-base:.4s var(--ease); --t-slow:.7s var(--ease);
}

/* ================================================================
   Base / reset
   ================================================================ */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-weight:400;
  color:var(--gray-700);
  background:var(--off-white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.no-scroll{ overflow:hidden; }

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
input, textarea{ font-family:inherit; }

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  font-weight:700;
  color:var(--gray-900);
  line-height:1.15;
  margin:0 0 .6em;
  letter-spacing:-.01em;
}
h1{ font-size:clamp(2.4rem,4.2vw,4rem); }
h2{ font-size: 26px; }
h3{ font-size:clamp(1.35rem,2vw,1.75rem); }
p{ margin:0 0 1.1em; line-height:1.8; }
p:last-child{ margin-bottom:0; }

::selection{ background:var(--accent); color:var(--white); }

/* scrollbar (webkit) — discreto, alinhado à marca */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cream); }
::-webkit-scrollbar-thumb{ background:var(--primary-light); border-radius:var(--radius-full); }
::-webkit-scrollbar-thumb:hover{ background:var(--primary); }

/* ================================================================
   Utilitários (fora do grid — grid é 100% Bootstrap)
   ================================================================ */
.flex{ display:flex; }
.flex-center{ display:flex; align-items:center; }
.flex-between{ display:flex; align-items:center; justify-content:space-between; }
.flex-wrap{ flex-wrap:wrap; }
.gap-sm{ gap:.6rem; } .gap-md{ gap:1.4rem; } .gap-lg{ gap:2.4rem; }

.text-center{ text-align:center; }
.text-muted{ color:var(--gray-500); }
.text-primary{ color:var(--primary); }
.text-accent{ color:var(--accent); }
.text-white{ color:var(--white); }

.section{ padding:clamp(4.5rem,8vw,8rem) 0; position:relative; }
.section-sm{ padding:clamp(3rem,5vw,5rem) 0; }

.section-title{ max-width:640px; }
.section-title.mx-auto{ margin-left:auto; margin-right:auto; text-align:center; }

/* ================================================================
   Botões
   ================================================================ */
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  padding:1em 2.1em;
  font-family:var(--font-body); font-weight:600; font-size:.92rem;
  letter-spacing:.03em;
  border-radius:var(--radius-full);
  border:1.5px solid transparent;
  transition:transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  white-space:nowrap;
}
.btn i, .btn svg{ font-size:.9em; transition:transform var(--t-base); }
.btn:hover{ transform:translateY(-3px); }
.btn:hover i, .btn:hover svg{ transform:translateX(4px); }

.btn-accent{ background:var(--accent); color:var(--white); box-shadow:var(--shadow-accent); }
.btn-accent:hover{ background:var(--accent-dark); color:var(--white); }

.btn-primary{ background:var(--primary); color:var(--white); box-shadow:var(--shadow-primary); }
.btn-primary:hover{ background:var(--primary-dark); color:var(--white); }

.btn-outline-light{ border-color:rgba(255,255,255,.55); color:var(--white); }
.btn-outline-light:hover{ background:rgba(255,255,255,.12); border-color:var(--white); color:var(--white); }

.btn-outline-primary{ border-color:var(--primary); color:var(--primary); }
.btn-outline-primary:hover{ background:var(--primary); color:var(--white); }

.btn-sm{ padding:.75em 1.5em; font-size:.82rem; }

/* ================================================================
   Preloader
   ================================================================ */
.preloader{
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  background:var(--dark);
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.preloader__mark{
  width:64px; height:64px;
  animation:preloader-pulse 1.4s ease-in-out infinite;
}
body.is-loaded .preloader{ opacity:0; visibility:hidden; pointer-events:none; }

@keyframes preloader-pulse{
  0%,100%{ transform:scale(.85); opacity:.6; }
  50%{ transform:scale(1); opacity:1; }
}

/* ================================================================
   Header
   ================================================================ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1002;
  margin-top: 20px;
  padding:10px 0;
  background:linear-gradient(90deg, rgba(74,71,66,.55), rgba(22,38,61,.5));
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  transition:background var(--t-base), padding var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  padding:14px 0;
  background:rgba(10,18,32,.94);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-md);
  border-bottom-color:rgba(255,255,255,.08);
}

/* .brand__mark — usado isoladamente como glifo animado no preloader (a logo
   oficial tem texto navy, ilegível sobre o fundo escuro do preloader) */
.brand__mark{
  width:34px; height:34px; flex:none;
  background:var(--accent);
  clip-path:polygon(50% 0%, 100% 100%, 62% 100%, 50% 55%, 38% 100%, 0% 100%);
}

.nav-menu{ display:flex; align-items:center; gap:clamp(2.1rem,4vw,4rem); }
.nav-menu a{
  position:relative;
  font-size:.82rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.86);
  padding:.4em 0;
  transition:color var(--t-fast);
}
.nav-menu a::after{
  content:''; position:absolute; left:0; bottom:-2px; height:2px; width:0;
  background:var(--accent); transition:width var(--t-base) var(--ease);
}
.nav-menu a:hover, .nav-menu a.is-active{ color:var(--white); }
.nav-menu a:hover::after, .nav-menu a.is-active::after{ width:100%; }

.header-actions{ position:relative; z-index:1003; display:flex; align-items:center; gap:1.1rem; margin-left:auto; }
.icon-btn{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); border:1px solid rgba(255,255,255,.3);
  transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);
  flex:none;
}
.icon-btn:hover{ background:var(--accent); border-color:var(--accent); transform:translateY(-2px); }

.nav-toggle{
  display:none; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  width:40px; height:40px; border:none; background:transparent; flex:none;
}
.nav-toggle span{
  display:block; width:24px; height:2px; background:var(--white);
  transition:transform var(--t-base) var(--ease), opacity var(--t-base) var(--ease);
}
.nav-toggle.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2){ opacity:0; }
.nav-toggle.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:991.98px){
  .nav-menu{
    position:fixed; top:0; right:0; height:100vh; width:min(340px,84vw);
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:1.7rem; padding:6rem 2.6rem 3rem;
    background:var(--dark);
    box-shadow:var(--shadow-lg);
    transform:translateX(100%);
    transition:transform var(--t-slow) var(--ease);
    z-index:1001;
  }
  .nav-menu.is-open{ transform:translateX(0); }
  .nav-menu a{ font-size:1rem; }
  .header-actions .icon-btn.search-toggle{ display:none; }

  .site-header, .site-header.is-scrolled{
    background:none; box-shadow:none; border-bottom-color:transparent;
    -webkit-backdrop-filter:none; backdrop-filter:none;
  }
  .nav-toggle{
    display:flex; background:var(--dark); border-radius:50%;
    width:56px; height:56px;
    box-shadow:var(--shadow-md);
  }
}

.nav-overlay{
  position:fixed; inset:0; background:rgba(10,18,32,.6); z-index:999;
  opacity:0; visibility:hidden; transition:opacity var(--t-base), visibility var(--t-base);
}
.nav-overlay.is-open{ opacity:1; visibility:visible; }

/* ================================================================
   Hero
   ================================================================ */
.hero{
  position:relative;
  display:flex; align-items:stretch;
  background:var(--cream);
  overflow:hidden;
}
.hero__content{
  display:flex; flex-direction:column; justify-content:center;
  padding-top: 160px;
  padding-bottom:3.2rem;
  padding-right:1rem;
  /* alinha com a mesma margem que o .container do Bootstrap usa no resto do
     site (a seção usa .container-fluid para a imagem poder encostar na
     lateral, então o recuo do texto precisa ser recriado aqui) */
  padding-left:12px;
  position:relative; z-index:2;
}
@media (min-width:576px){
  .hero__content{ padding-left:calc((100vw - 540px) / 2 + 12px); }
}
@media (min-width:768px){
  .hero__content{ padding-left:calc((100vw - 720px) / 2 + 12px); }
}
@media (min-width:992px){
  .hero__content{ padding-left:calc((100vw - 960px) / 2 + 12px); }
}
@media (min-width:1200px){
  .hero__content{ padding-left:calc((100vw - 1140px) / 2 + 12px); }
  .hero__title{
    padding-right: 140px;
  }
}
@media (min-width:1400px){
  .hero__content{ padding-left:calc((100vw - 1320px) / 2 + 12px); }
  .hero__title{
    padding-right: 140px;
  }
}
.hero__brand{ width:200px; height:auto; margin-bottom:50px; }
.hero__title{
  font-size: 28px;
  color:var(--primary);
  margin-bottom:50px;
  color: #4a4a49;
}
.hero__text{ max-width:460px; color:var(--gray-700); }

.hero__visual{
  position:relative;
  height:100%;
  /*clip-path:polygon(18% 0, 100% 0, 100% 100%, 0% 100%);*/
  overflow:hidden;
}
@media (min-width:992px){
  /*.hero__visual{ clip-path:polygon(30% 0, 100% 0, 100% 100%, 0% 100%); }*/
}
.hero__bg, .hero__figure{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero__bg{ transform:scale(1.15); will-change:transform; }
.hero__overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(150deg, rgba(13,23,38,.94) 0%, rgba(22,38,61,.82) 42%, rgba(42,74,114,.55) 100%);
}
.hero__figure{
  object-position:top left;
  filter:saturate(1.02);
}
.hero__dotgrid{
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.16) 1px, transparent 1px);
  background-size:22px 22px;
  mix-blend-mode:overlay;
  opacity:.5;
}

/* ================================================================
   Quem somos
   ================================================================ */
.about{ background:var(--off-white); }
.about__text p + p{ margin-top:1.2em; }
@media (min-width:992px){
  .about__text{ padding-right:2.5rem; }
}

.collage{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:1.1rem;
}
.collage__top{ grid-column:1/3; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.collage__bl, .collage__br{ border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:1/1; }
.collage img{ width:100%; height:100%; object-fit:cover; transition:transform var(--t-slow); }
.collage a:hover img, .collage__top:hover img{ transform:scale(1.06); }

/* ================================================================
   Desafios & Solução
   ================================================================ */
.split-band .row{ align-items:stretch; }
.split-band{ overflow:hidden; }
.split-band__col{
  padding:clamp(3rem,6vw,5.5rem) clamp(1.6rem,5vw,5rem);
  display:flex; flex-direction:row; align-items:flex-start; justify-content:center;
  gap:1.4rem;
}
.split-band__col--dark{ background:var(--primary); color:rgba(255,255,255,.86); }
.split-band__col--light{ background:var(--cream); color:var(--gray-700); }
.split-band__icon{
  flex:none;
  display:flex; align-items:center; justify-content:center;
}
.split-band__icon img{ width:96px; height:96px; object-fit:contain; }
.split-band__col--dark h3{ color:var(--white); }
.split-band__col--light h3{ color:var(--primary); }
.split-band__col p{ max-width:440px; }

/* ================================================================
   Soluções (tabs)
   ================================================================ */
.solutions{ background:var(--cream); }
.solutions__panel{
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.tabs-nav{
  display:flex; flex-wrap:wrap;
  background:var(--cream-dark);
  border-bottom:1px solid var(--gray-200);
}
.tabs-nav__item{
  flex:1 1 0;
  min-width:140px;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  padding:1.6rem 1rem;
  text-align:center;
  background:transparent;
  border:none; border-right:1px solid var(--gray-200);
  color:var(--gray-600);
  transition:background var(--t-fast), color var(--t-fast);
}
.tabs-nav__item:last-child{ border-right:none; }
.tabs-nav__item img{ width:32px; height:32px; object-fit:contain; transition:transform var(--t-fast); }
.tabs-nav__item span{ font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.tabs-nav__item:hover{ background:var(--white); }
.tabs-nav__item.is-active{ background:var(--white); color:var(--primary); box-shadow:inset 0 -3px 0 var(--accent); }
.tabs-nav__item.is-active img{ transform:translateY(-3px); }

.tab-panel{ display:none; padding:clamp(1.8rem,4vw,3.4rem); }
.tab-panel.is-active{ display:block; }
.tab-panel__media{ border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); height:100%; min-height:260px; }
.tab-panel__media img{ width:100%; height:100%; object-fit:cover; }
.tab-panel__body{ display:flex; flex-direction:column; height:100%; justify-content:center; }
.tab-panel__body h3{ font-size: 24px; margin-bottom:.5em; }
.tab-panel__intro{ color:var(--gray-600); margin-bottom:1.3em; }
.check-list{ margin-bottom:1.5em; }
.check-list li{
  display:flex; align-items:flex-start; gap:.7em;
  padding:.42em 0; font-size:.95rem; color:var(--gray-700);
}
.check-list i{ color:var(--accent); margin-top:.3em; font-size:.8em; }
.tab-panel__closing{
  font-family:var(--font-body); font-style:italic; font-weight:600;
  color:var(--primary); padding-top:1em; border-top:1px dashed var(--gray-200);
}

/* ================================================================
   Remuneração & Governança
   ================================================================ */
.governance{
  position:relative;
  color:var(--white);
  overflow:hidden;
}
.governance__bg{
  position:absolute; inset:-8% -2%; width:104%; height:116%;
  object-fit:cover; will-change:transform;
}
.governance__overlay{
  position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(10,18,32,.95) 0%, rgba(22,38,61,.9) 55%, rgba(22,38,61,.72) 100%);
}
.governance__content{ position:relative; z-index:2; }
.governance__content h2{ color:var(--white); }
.governance__item + .governance__item{ margin-top:2.6rem; padding-top:2.6rem; border-top:1px solid rgba(255,255,255,.16); }
.governance__item i{ color:var(--accent-light); font-size:1.4rem; margin-bottom:1rem; display:inline-block; }
.governance__item h3{ color:var(--white); }
.governance__item p{ color:rgba(255,255,255,.78); max-width:520px; }

/* ================================================================
   Diferenciais
   ================================================================ */
.diferenciais{ background:var(--off-white); }
.diferenciais__content{ padding:clamp(2.75rem,6vw,4.5rem); display:flex; flex-direction:column; justify-content:center; height:100%; }
.diferenciais__content h2{ margin-bottom:1.6rem; }
.diferenciais__media{ overflow:hidden; height:100%; min-height:340px; }
.diferenciais__media img{ width:100%; height:100%; object-fit:cover; object-position:right center; }
.diferenciais__list{ display:flex; flex-direction:column; gap:1.8rem; }
.diferenciais__row{ display:flex; align-items:flex-start; gap:1.3rem; }
.diferenciais__num{
  flex:none; width:52px; height:52px; border-radius:var(--radius-sm);
  background:var(--accent); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-size:1.3rem; font-weight:700;
  box-shadow:var(--shadow-accent);
}
.diferenciais__row p{ color:var(--gray-700); }

/* ================================================================
   Rodapé
   ================================================================ */
.site-footer{ position:relative; color:var(--gray-700); overflow:hidden; }
.footer-map{
  position:relative; height:280px; overflow:hidden;
}
.footer-map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.3); }
.footer-map__overlay{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at center, rgba(0,0,0,0) 0%, rgba(0,0,0,.75) 60%, #000 100%);
}
.footer-map__directions{
  position:absolute; left:14px; bottom:14px; z-index:3;
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--accent); color:var(--white); text-decoration:none;
  font-size:.85rem; font-weight:700;
  padding:.6rem 1rem; border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md); transition:background var(--t-fast);
}
.footer-map__directions:hover{ background:var(--accent-dark); }
.footer-map__zoom{
  position:absolute; right:14px; bottom:14px; z-index:3;
  display:flex; flex-direction:column; border-radius:var(--radius-sm);
  overflow:hidden; box-shadow:var(--shadow-md);
}
.footer-map__zoom-btn{
  width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  background:var(--white); color:var(--gray-800); border:none;
  border-bottom:1px solid var(--gray-200);
  font-size:1.1rem; line-height:1; font-weight:700;
  transition:background var(--t-fast);
}
.footer-map__zoom-btn:last-child{ border-bottom:none; }
.footer-map__zoom-btn:hover{ background:var(--cream-dark); }

.footer-main{ position:relative; padding:4rem 0 0; background:var(--cream); }
.footer-main__bg{
  position:absolute; inset:auto 0 0 0; height:250px; width:100%;
  object-fit:cover; object-position:top; opacity:.4;
}
.footer-main__row{ position:relative; z-index:2; padding-bottom:120px; }

.footer-brand-lockup{ width:170px; height:auto; display:inline-block; }

.footer-contact{ display:flex; flex-direction:column; gap:1rem; }
.footer-contact a{
  display:flex; align-items:center; gap:.9rem; color:var(--gray-800);
  font-weight:500;
  transition:color var(--t-fast), transform var(--t-fast);
}
.footer-contact a:hover{ color:var(--accent-dark); transform:translateX(4px); }
.footer-contact i{
  width:38px; height:38px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent-50); color:var(--accent); font-size:.95rem;
}

.footer-bottom{
  position:relative; z-index:2;
  padding:1.6rem 96px 1.6rem 0;
  border-top:1px solid rgba(22,38,61,.12);
  font-size:.8rem; color:var(--gray-600);
}
.footer-bottom a{ color:var(--primary); }
.footer-bottom a:hover{ color:var(--accent-dark); }

.footer-credit{ display:inline-flex; align-items:center; gap:.4rem; }
.footer-credit a{ display:inline-flex; align-items:center; }
.footer-credit img{ display:inline-block; height:14px; width:auto; }

/* ================================================================
   Float stack (WhatsApp + voltar ao topo)
   ================================================================ */
.float-stack{
  position:fixed; right:22px; bottom:22px; z-index:900;
  display:flex; flex-direction:column; gap:14px; align-items:center;
}
.floatbtn{
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:1.25rem;
  box-shadow:var(--shadow-lg);
  transition:transform var(--t-base) var(--ease-bounce), box-shadow var(--t-fast);
  position:relative;
}
.floatbtn:hover{ transform:translateY(-4px) scale(1.05); color:var(--white); }

.floatbtn-whatsapp{ background:#25D366; }
.floatbtn-whatsapp::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:2px solid #25D366; opacity:.7;
  animation:pulse-ring 2.2s ease-out infinite;
}
@keyframes pulse-ring{
  0%{ transform:scale(1); opacity:.6; }
  100%{ transform:scale(1.7); opacity:0; }
}

.floatbtn-top{
  background:var(--primary);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity var(--t-base), visibility var(--t-base), transform var(--t-base);
}
.floatbtn-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.floatbtn-top svg{ position:absolute; inset:0; transform:rotate(-90deg); }
.floatbtn-top circle{
  fill:none; stroke:var(--accent); stroke-width:3;
  stroke-dasharray:157; stroke-dashoffset:calc(157 - (157 * var(--p, 0)) / 100);
  transition:stroke-dashoffset .1s linear;
}

/* ================================================================
   Parallax helpers
   ================================================================ */
[data-parallax]{ will-change:transform; }

/* ================================================================
   WOW.js / animate.css — ajustes finos
   ================================================================ */
.wow{ visibility:hidden; }
:root{ --animate-duration:.9s; --animate-delay:.15s; }

/* ================================================================
   Responsivo
   ================================================================ */
@media (max-width:991.98px){
  :root{ --header-h:84px; }
  .hero__visual{ min-height:280px; clip-path:none; }
  .hero__content{ padding-top:calc(var(--header-h) + 2rem); text-align:left; }
  .split-band__col{ text-align:left; }
  .footer-main{ text-align:left; }
  .footer-brand-lockup{ margin-top:1.5rem; }
}

@media (max-width:767.98px){
  .collage{ grid-template-columns:1fr 1fr; }
  .tabs-nav__item{ min-width:33%; }
  .footer-map{ height:200px; }
}

@media (max-width:575.98px){
  .btn{ width:100%; }
  .float-stack{ right:14px; bottom:14px; }
}

/* ================================================================
   Acessibilidade — prefers-reduced-motion
   ================================================================ */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .wow{ visibility:visible !important; animation:none !important; }
  [data-parallax]{ transform:none !important; }
  .floatbtn-whatsapp::after, .preloader__mark{ animation:none !important; }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}




.ttl-banner {
  font-size: 26px;
  font-weight: 400;
}