/* Componentes únicos do site: navbar, menu mobile, loader, footer e botão de WhatsApp.
   As páginas NÃO repetem estas regras; o CSS de cada página cuida só da hero e do conteúdo dela. */
:root{--navy:#03367A;--lime:#96CD3C;--lime-light:#bdf36a;--r-sm:12px}

/* Navbar e footer (base) */
.hero-header{width:100%;display:flex;justify-content:center}
.hero-header-inner{width:1100px;max-width:100%;padding:28px 16px;display:flex;align-items:center;justify-content:space-between;font-family:'Montserrat', sans-serif}
.hero-logo img{height:80px}
.hero-nav{display:flex;align-items:center;gap:26px}
.hero-nav a{color:#fff;text-decoration:none;font-size:15px;font-weight:500;opacity:.9;position:relative;height:44px;line-height:1;display:inline-flex;align-items:center;padding:0}
.hero-nav a.nav-active::after{content:'';position:absolute;left:0;right:0;bottom:6px;height:2px;background:#96CD3C;border-radius:2px}
.hero-nav a:hover{opacity:1}
.btn-cliente{background:#03367A;color:#fff;height:44px;padding:0 24px;border-radius:999px;font-weight:600;text-decoration:none;transition:.25s;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.hero-nav a.btn-cliente{padding:0 24px}
.btn-cliente:hover{background:#01B2E5}
.site-footer{background:#03367A;color:#fff;padding:60px 0 20px;font-family:Arial, sans-serif}
.footer-container{width:1100px;max-width:100%;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-col h4{font-family:'Montserrat', sans-serif;font-size:18px;font-weight:700;margin-bottom:20px;color:#96CD3C}
.footer-col p{font-size:15px;line-height:1.6;opacity:.9;margin-bottom:10px}
.footer-links a{display:block;color:#fff;text-decoration:none;margin-bottom:10px;opacity:.85;transition:.2s}
.footer-links a:hover{opacity:1;color:#01B2E5}
.footer-social{display:flex;gap:12px}
.footer-social img{width:24px;filter:invert(1);opacity:.8}
.footer-social img:hover{opacity:1}
.footer-iso{display:flex;flex-direction:column;gap:16px;align-items:flex-start;margin-top:0}
.footer-iso img{max-height:110px;height:auto;width:auto;max-width:100%;border-radius:12px;box-shadow:0 10px 26px rgba(0,0,0,.22);background:#fff;padding:6px}
.footer-bottom{text-align:center;border-top:1px solid rgba(255,255,255,0.1);padding-top:20px;font-size:14px;opacity:.7}
.footer-logo{height:74px;margin-bottom:16px;filter:grayscale(1) brightness(1000%)}
.footer-phone-title{margin-top:8px;font-weight:700}
.whatsapp-floating{position:fixed; right:0; bottom:22px; background:#25D366; color:#fff; padding:12px 24px 12px 18px; border-radius:50px 0 0 50px; text-decoration:none; font-weight:700; font-size:14px; display:flex; align-items:center; gap:12px; box-shadow:0 4px 12px rgba(0,0,0,.15); z-index:999; text-align: left;}
@media(max-width:900px){
  .footer-container{grid-template-columns:1fr;gap:32px}
  .hero-header-inner{flex-wrap:wrap;gap:16px}
  .hero-nav{flex-wrap:wrap;gap:14px;justify-content:flex-end}
}
.hero-header{position:relative;z-index:2}
.whatsapp-floating:hover{background:#1ebe5d}

/* Loader, menu mobile e ajustes de celular */
#pageLoader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity 180ms ease,visibility 180ms ease}
#pageLoader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.bs-loader__wrap{display:flex;flex-direction:column;align-items:center;gap:16px}
.bs-loader__logo{width:260px;height:110px;position:relative;--bs-loader-fill:#96CD3C}
.bs-loader__logo::before,.bs-loader__logo::after{content:'';position:absolute;inset:0;background:#03367A;mask-image:var(--bs-loader-logo);mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-image:var(--bs-loader-logo);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}
.bs-loader__logo::before{opacity:.12}
.bs-loader__logo::after{background:var(--bs-loader-fill);opacity:.95;clip-path:inset(100% 0 0 0);animation:bsLogoFill 1400ms ease-in-out infinite}
@keyframes bsLogoFill{0%{clip-path:inset(100% 0 0 0)}45%{clip-path:inset(0 0 0 0)}70%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(100% 0 0 0)}}
@media (prefers-reduced-motion:reduce){
  .bs-loader__logo::after{animation:none;clip-path:inset(0 0 0 0)}
}
.nav-toggle{display:none;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.18);color:#fff;cursor:pointer;transition:background 150ms ease,border-color 150ms ease,transform 150ms ease}
.nav-toggle:hover{background:rgba(0,0,0,.30);border-color:rgba(255,255,255,.26);transform:translateY(-1px)}
.nav-toggle-bars{display:flex;flex-direction:column;gap:6px}
.nav-toggle-bars span{display:block;width:22px;height:2px;border-radius:999px;background:#fff;opacity:.92}
.mobile-menu{position:fixed;inset:0;z-index:9998;background:rgba(3,54,122,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:26px 16px;display:flex;align-items:center;justify-content:center}
.mobile-menu[hidden]{display:none}
.mobile-menu-inner{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:12px}
.mobile-menu a{width:100%;max-width:360px;text-decoration:none;color:#fff;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px 16px;font-family:'Montserrat',sans-serif;font-weight:800;letter-spacing:.01em;transition:transform 150ms ease,background 150ms ease,border-color 150ms ease;text-align:center}
.mobile-menu a:hover{transform:translateY(-1px);background:rgba(0,0,0,.30);border-color:rgba(255,255,255,.24)}
@media(max-width:900px){
  .hero-nav{display:none !important}
  .nav-toggle{display:inline-flex !important}
  .hero-header-inner{flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:12px !important}
  .btn-cliente{display:none !important}
  .whatsapp-floating{display:none !important}
  body,body *{text-align:center !important}
  img{margin-left:auto !important;margin-right:auto !important}
  input,select,textarea,button{margin-left:auto !important;margin-right:auto !important}
  .hero-line{margin-left:auto !important;margin-right:auto !important}
}
@keyframes bsLogoFill{0%{clip-path:inset(100% 0 0 0)}45%{clip-path:inset(0 0 0 0)}70%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(100% 0 0 0)}}

/* Footer */
.site-footer{background: linear-gradient(175deg, #021430 0%, #03367A 100%); color: #fff; padding: 64px 0 24px; font-family: 'Inter', sans-serif; position: relative; overflow: hidden;}
.site-footer::before{content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 60% at 80% 30%, rgba(1,178,229,.08) 0%, transparent 50%), radial-gradient(ellipse 40% 50% at 10% 80%, rgba(150,205,60,.06) 0%, transparent 45%), linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size: auto, auto, 80px 80px, 80px 80px; pointer-events: none; z-index: 0;}
.site-footer::after{content: ''; position: absolute; inset: 0; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E"); background-size: 200px 200px; pointer-events: none; z-index: 0;}
.footer-container{position: relative; z-index: 1; width: 1120px; max-width: 100%; margin: 0 auto; padding: 0 20px; display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 48px; margin-bottom: 48px;}
.footer-col h4{font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--lime); margin-bottom: 18px;}
.footer-col p{font-size: 14px; line-height: 1.72; color: rgba(255,255,255,.78); margin-bottom: 10px;}
.footer-phone-title{font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.55); margin-top: 8px;}
.footer-logo{height: 56px; margin-bottom: 18px; opacity: .95; transition: opacity .3s;}
.footer-logo:hover{opacity: 1}
.footer-social{display: flex; gap: 12px; margin-top: 14px;}
.footer-social a{display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); transition: background .2s, border-color .2s, transform .2s;}
.footer-social a:hover{background: rgba(150,205,60,.18); border-color: rgba(150,205,60,.35); transform: translateY(-2px);}
.footer-social img{width: 18px; height: 18px; filter: invert(1); opacity: .85;}
.footer-iso{display: flex; flex-direction: column; gap: 14px; margin-top: 8px; align-items: flex-start;}
.footer-iso img{max-height: 105px; height: auto; width: auto; max-width: 100%; border-radius: var(--r-sm); background: rgba(255,255,255,.95); padding: 8px; box-shadow: 0 4px 16px rgba(0,0,0,.12); transition: transform .2s;}
.footer-iso img:hover{transform: translateY(-2px)}
.footer-bottom{position: relative; z-index: 1; text-align: center; border-top: 1px solid rgba(255,255,255,.08); padding: 18px 20px 0; font-size: 13px; color: rgba(255,255,255,.50); font-family: 'Inter', sans-serif; letter-spacing: .01em;}
@media(max-width:1024px){
  .footer-container{grid-template-columns: 1fr 1fr; gap: 32px}
}
@media(max-width:640px){
  .site-footer{padding: 44px 0 18px}
  .footer-container{grid-template-columns: 1fr; gap: 24px; text-align: center; justify-items: center}
  .footer-social{justify-content: center; width: 100%}
  .footer-iso{align-items: center; flex-direction: row; flex-wrap: wrap; gap: 10px; justify-content: center}
  .footer-iso img{max-width: calc(50% - 5px)}
}

/* Logo do footer: colorido como no navbar (o logo tem o texto branco numa pílula azul; filtro para branco vira uma pílula lisa) */
.footer-logo{filter:none;opacity:1}

/* ─── Kit de seções (para páginas internas) ───────────────────────────────────
   Use estas classes em vez de criar CSS novo por página:
   .ds-section (.ds-section--soft / --navy) > .ds-container > .ds-head (.ds-eyebrow, .ds-title, .ds-lead)
   .ds-grid (--2 / --3) com .ds-card (.ds-card__icon, h3, p) · botões .ds-btn (--primary / --whats / --ghost) */
:root{--ds-ink:#0f1f3a;--ds-muted:#5b6b82;--ds-line:#e3eaf3;--ds-soft:#f4f8fd;--ds-cyan:#01B2E5;--ds-radius:18px;--ds-shadow:0 18px 48px rgba(3,54,122,.10)}
.ds-section{padding:88px 0;background:#fff;font-family:'Inter',sans-serif;color:var(--ds-ink)}
.ds-section--soft{background:var(--ds-soft)}
.ds-section--navy{background:linear-gradient(160deg,#021d45 0%,#03367A 100%);color:#fff}
.ds-container{width:1120px;max-width:100%;margin:0 auto;padding:0 20px}
.ds-head{max-width:720px;margin:0 auto 48px;text-align:center}
.ds-head--left{margin-left:0;text-align:left}
.ds-eyebrow{display:inline-block;font-family:'Outfit',sans-serif;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ds-cyan);margin-bottom:12px}
.ds-section--navy .ds-eyebrow{color:var(--lime)}
.ds-title{font-family:'Montserrat',sans-serif;font-size:clamp(28px,3.2vw,38px);line-height:1.15;font-weight:800;color:var(--navy);margin-bottom:14px}
.ds-section--navy .ds-title{color:#fff}
.ds-lead{font-size:17px;line-height:1.7;color:var(--ds-muted)}
.ds-section--navy .ds-lead{color:rgba(255,255,255,.8)}
.ds-grid{display:grid;gap:22px}
.ds-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ds-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ds-card{position:relative;background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:28px;box-shadow:var(--ds-shadow);transition:transform .25s,box-shadow .25s}
.ds-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(3,54,122,.14)}
.ds-card h3{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:800;color:var(--navy);margin-bottom:8px;line-height:1.3}
.ds-card p{font-size:15px;line-height:1.65;color:var(--ds-muted)}
.ds-card__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:rgba(1,178,229,.10);color:var(--ds-cyan);margin-bottom:18px}
.ds-card__icon svg{width:24px;height:24px}
.ds-card__num{font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;color:var(--lime);letter-spacing:.08em;margin-bottom:14px;display:block}
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 26px;border-radius:999px;font-family:'Inter',sans-serif;font-size:15px;font-weight:700;text-decoration:none;border:0;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.ds-btn:hover{transform:translateY(-2px)}
.ds-btn svg{width:18px;height:18px;flex-shrink:0}
.ds-btn--primary{background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(3,54,122,.22)}
.ds-btn--primary:hover{background:var(--ds-cyan)}
.ds-btn--whats{background:#25D366;color:#fff;box-shadow:0 10px 24px rgba(37,211,102,.28)}
.ds-btn--whats:hover{background:#1ebe5d}
.ds-btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.ds-btn--ghost:hover{background:rgba(255,255,255,.1)}
.ds-actions{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:900px){
  .ds-section{padding:64px 0}
  .ds-grid--2,.ds-grid--3{grid-template-columns:1fr}
  .ds-head{margin-bottom:36px}
  .ds-actions{justify-content:center}
  .ds-card__icon{align-self:center}
}
