/* ExclusivaSeg - estilos compartilhados pelas 6 paginas.
   O que e especifico de cada pagina fica no <style> dela. */

/* icones SVG proprios - herdam a cor e o tamanho do texto ao redor */
.ic { width: 1.05em; height: 1.05em; flex: none; vertical-align: -0.15em; }

:root { 
            --orange: #FF5500; 
            --green: #007138; 
            --dark-green: #004D26; 
            --bg-white: #FFFFFF; 
            --text-main: #2D3748;
            --text-muted: #4A5568;
            --border: #E2E8F0;
        }

* { margin: 0; padding: 0; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }

html { scroll-behavior: smooth; }

body { background: var(--bg-white); color: var(--text-main); line-height: 1.7; font-size: 16px; }

.topbar { background: var(--dark-green); color: #fff; text-align: center; padding: 10px 15px; font-size: 13px; font-weight: 700; letter-spacing: 0.5px; }

header { 
            background: #fff; 
            padding: 16px 20px; 
            position: sticky; 
            top: 0; 
            z-index: 1000; 
            border-bottom: 2px solid var(--border); 
        }

.header-container { max-width: 1050px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; }

.logo-img { height: 130px !important; width: auto; max-width: 100%; display: block; background: transparent !important; }

nav.desktop-nav { display: flex; gap: 24px; align-items: center; }

nav.desktop-nav a { text-decoration: none; color: #4A5568; font-weight: 600; font-size: 14px; transition: color 0.2s; }

nav.desktop-nav a:hover, nav.desktop-nav a.active-page { color: var(--orange); font-weight: 700; }

nav.desktop-nav a.btn-wsp-nav { background: #25D366; color: #fff; padding: 8px 18px; border-radius: 20px; font-weight: 700; display: flex; align-items: center; gap: 8px; }

.btn-menu { display: none; background: none; border: none; font-size: 22px; line-height: 1; color: var(--dark-green); cursor: pointer; width: 44px; height: 44px; padding: 0; margin: -8px -10px -8px 0; flex: 0 0 44px; }

nav.mobile-nav { display: none; background: #fff; position: absolute; top: 100%; left: 0; width: 100%; border-bottom: 1px solid var(--border); }

nav.mobile-nav.active { display: block; }

nav.mobile-nav a { display: block; padding: 14px 20px; color: #333; text-decoration: none; font-weight: 600; border-bottom: 1px solid #f0f0f0; }

footer { background: var(--dark-green); color: #fff; padding: 45px 20px 25px 20px; font-size: 14px; }

.footer-content { max-width: 1050px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; }

.footer-logo-bg { background: #fff; padding: 12px 30px; border-radius: 8px; }

.footer-logo { height: 110px; width: auto; max-width: 100%; display: block; }

.footer-contacts p { margin: 4px 0; color: #E2E8F0; }

.footer-contacts a { color: #E2E8F0; text-decoration: none; display: inline-block; padding: 3px 2px; }

.footer-contacts a:hover { color: var(--orange); }

.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); width: 100%; margin-top: 20px; padding-top: 18px; font-size: 12px; color: #A0AEC0; }
        .footer-bottom a { display: inline-block; padding: 6px 4px; }

.float-container-right { position: fixed; bottom: 25px; right: 25px; display: flex; flex-direction: column; gap: 10px; z-index: 9999; }

.btn-float { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; text-decoration: none; font-size: 20px; border: none; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.18); }

.btn-wsp-float { background: #25D366; }

.btn-ig-float { background: var(--orange); }

.btn-top-float { background: var(--dark-green); font-size: 16px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s, visibility .25s; }

.btn-top-float.visivel { opacity: 1; visibility: visible; transform: translateY(0); }

/* --- texto corrido justificado (hifenizacao em pt-BR evita "rios" de espaco) --- */
        main p, main li { text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto; }

main [style*="center"] p, .cta-clean p, .cta-clean h3 { text-align: center; hyphens: manual; }


/* --- alvos de toque confortaveis no celular (minimo de 44px) --- */
@media (max-width: 850px) and (pointer: coarse) {
    nav.mobile-nav a { padding-top: 15px; padding-bottom: 15px; }
    .btn-link { padding: 14px 26px; }
    .btn-float { width: 52px; height: 52px; }
    .footer-contacts a { padding: 7px 2px; }
}