 :root {
     --deep-blue: #0b1a3a;
     --deep-blue-dark: #060f24;
     --green: #0ca544;
     --green-light: #25d366;
     --green-glow: #4ade80;
     --dark-overlay: rgba(0, 0, 0, 0.62);
     --glass-bg: rgba(255, 255, 255, 0.07);
     --glass-border: rgba(255, 255, 255, 0.16);
 }

 *,
 *::before,
 *::after {
     box-sizing: border-box;
 }

 html {
     scroll-behavior: smooth;
     overflow-x: hidden;
     max-width: 100vw;
 }

 body {
     overflow-x: hidden;
     max-width: 100vw;
     font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
     margin: 0;
     color: #1e293b;
     line-height: 1.6;
 }

 /* ============ HEADER STICKY ============ */
 #siteHeader {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 50;
     transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
     background: #060f241a;
     backdrop-filter: blur(4px);
 }

 /* Estado scrolled: fundo igual ao rodapé */
 #siteHeader.scrolled {
     background: #060f24;
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
     border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }

 .header-top {
     background: transparent;
     color: #fff;
     padding: 6px 0;
     font-size: 0.85rem;
     letter-spacing: 0.01em;
     transition: background 0.4s cubic-bezier(0.16, 1, 0.3, 1);
 }

 #siteHeader.scrolled .header-top {
     background: #060f24;
 }

 .header-top a {
     color: #4ade80;
     text-decoration: none;
     transition: color 0.3s;
 }

 .header-top a:hover {
     color: #fff;
 }

 .nav-link {
     font-weight: 500;
     letter-spacing: 0.01em;
     transition: color 0.3s, text-shadow 0.3s;
     position: relative;
     color: #ffffff;
     text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
     padding: 6px 2px;
     font-size: 0.95rem;
 }

 .nav-link::after {
     content: '';
     position: absolute;
     bottom: -2px;
     left: 0;
     width: 0;
     height: 2.5px;
     background: #25d366;
     transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
     border-radius: 2px;
 }

 .nav-link:hover {
     color: #4ade80;
     text-shadow: none;
 }

 .nav-link:hover::after {
     width: 100%;
 }

 #siteHeader.scrolled .nav-link {
     color: #ffffff;
     text-shadow: none;
 }

 #siteHeader.scrolled .nav-link:hover {
     color: #4ade80;
 }

 #siteHeader.scrolled .nav-link::after {
     background: #4ade80;
 }

 .logo-text {
     color: #ffffff;
     text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
     transition: color 0.4s;
     font-weight: 500;
 }

 #siteHeader.scrolled .logo-text {
     color: #ffffff;
     text-shadow: none;
 }

 .btn-primary {
     background: #25d366;
     color: #fff;
     padding: 11px 30px;
     border-radius: 50px;
     font-weight: 600;
     letter-spacing: 0.02em;
     transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
     display: inline-block;
     position: relative;
     overflow: hidden;
     box-shadow: 0 4px 18px rgba(37, 211, 102, 0.35);
 }

 .btn-primary::after {
     content: '';
     position: absolute;
     inset: 0;
     background: linear-gradient(135deg, transparent 35%, rgba(255, 255, 255, 0.22) 50%, transparent 65%);
     background-size: 220% 220%;
     animation: btnShimmer 3.2s ease-in-out infinite;
 }

 @keyframes btnShimmer {

     0%,
     100% {
         background-position: 220% 0;
     }

     50% {
         background-position: -220% 0;
     }
 }

 .btn-primary:hover {
     background: #0ca544;
     transform: translateY(-3px) scale(1.03);
     color: #fff;
     box-shadow: 0 12px 35px rgba(12, 165, 68, 0.5);
 }

 .btn-outline-light {
     border: 2px solid rgba(255, 255, 255, 0.7);
     color: #fff;
     padding: 11px 30px;
     border-radius: 50px;
     font-weight: 600;
     letter-spacing: 0.02em;
     transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
     display: inline-block;
     backdrop-filter: blur(4px);
     background: rgba(255, 255, 255, 0.06);
 }

 .btn-outline-light:hover {
     background: rgba(255, 255, 255, 0.18);
     border-color: #fff;
     transform: translateY(-3px);
     box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
     color: #fff;
 }

 .btn-dark-solid {
     background: #0b1a3a;
     color: #fff;
     padding: 11px 30px;
     border-radius: 50px;
     font-weight: 600;
     letter-spacing: 0.02em;
     transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
     display: inline-block;
     box-shadow: 0 4px 18px rgba(11, 26, 58, 0.35);
 }

 .btn-dark-solid:hover {
     background: #0d2249;
     transform: translateY(-3px) scale(1.03);
     box-shadow: 0 12px 35px rgba(11, 26, 58, 0.5);
     color: #fff;
 }

 /* ============ HERO ============ */
 .hero-section {
     position: relative;
     min-height: 100vh;
     display: flex;
     align-items: center;
     overflow: hidden;
     max-width: 100vw;
 }

 .hero-section video {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
     z-index: 0;
 }

 .hero-overlay {
     position: absolute;
     inset: 0;
     background: linear-gradient(160deg,
             rgba(11, 26, 58, 0.9) 0%,
             rgba(11, 26, 58, 0.7) 35%,
             rgba(12, 165, 68, 0.4) 65%,
             rgba(37, 211, 102, 0.18) 100%);
     z-index: 1;
 }

 .hero-content {
     position: relative;
     z-index: 3;
     padding-top: 130px;
 }

 .hero-badge {
     display: inline-block;
     background: rgba(255, 255, 255, 0.14);
     backdrop-filter: blur(12px);
     border: 1px solid rgba(255, 255, 255, 0.22);
     padding: 8px 20px;
     border-radius: 50px;
     font-size: 0.9rem;
     font-weight: 500;
     color: #fff;
     letter-spacing: 0.02em;
 }

 .hero-headline {
     font-size: clamp(2.4rem, 5.5vw, 4.2rem);
     font-weight: 800;
     line-height: 1.15;
     color: #fff;
     letter-spacing: -0.02em;
 }

 .hero-headline .highlight {
     color: #4ade80;
     position: relative;
 }

 .hero-subtext {
     font-size: 1.15rem;
     color: rgba(255, 255, 255, 0.85);
     max-width: 540px;
     line-height: 1.7;
 }

 /* Speed lines etc. mantidos */
 .speed-lines-container {
     position: absolute;
     inset: 0;
     z-index: 2;
     pointer-events: none;
     overflow: hidden;
 }

 .speed-line {
     position: absolute;
     height: 2px;
     background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), rgba(37, 211, 102, 0.7), transparent);
     border-radius: 50%;
     animation: speedLinePass var(--duration) linear infinite;
     animation-delay: var(--delay);
     opacity: 0;
     left: -20%;
 }

 @keyframes speedLinePass {
     0% {
         left: -25%;
         opacity: 0;
     }

     5% {
         opacity: 1;
     }

     40% {
         opacity: 0.85;
     }

     85% {
         opacity: 0.15;
     }

     100% {
         left: 110%;
         opacity: 0;
     }
 }

 .headlight-sweep {
     position: absolute;
     top: 0;
     left: -30%;
     width: 25%;
     height: 100%;
     z-index: 2;
     pointer-events: none;
     background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.05) 30%, rgba(37, 211, 102, 0.1) 50%, rgba(255, 255, 255, 0.05) 70%, transparent 100%);
     animation: headlightSweep 9s ease-in-out infinite;
 }

 @keyframes headlightSweep {
     0% {
         left: -35%;
         opacity: 0;
     }

     15% {
         opacity: 1;
     }

     35% {
         left: 110%;
         opacity: 0.6;
     }

     50% {
         left: 110%;
         opacity: 0;
     }

     100% {
         left: -35%;
         opacity: 0;
     }
 }

 .road-stripe {
     position: absolute;
     bottom: 18%;
     height: 4px;
     width: 60px;
     background: rgba(255, 255, 255, 0.45);
     z-index: 2;
     pointer-events: none;
     border-radius: 2px;
     animation: stripeMove 1.8s linear infinite;
 }

 @keyframes stripeMove {
     0% {
         left: -80px;
         opacity: 0.5;
     }

     100% {
         left: calc(100% + 80px);
         opacity: 0.5;
     }
 }

 /* ============ SEÇÕES COM IMAGEM DE FUNDO ============ */
 .section-bg-image {
     background-size: cover;
     background-position: center;
     background-repeat: no-repeat;
     position: relative;
 }

 .section-bg-image .section-overlay {
     position: absolute;
     inset: 0;
     background: rgba(11, 26, 58, 0.84);
     z-index: 1;
 }

 .section-bg-image .section-inner {
     position: relative;
     z-index: 3;
     color: #ffffff;
 }

 .glass-card {
     background: rgba(255, 255, 255, 0.07);
     border: 1px solid rgba(255, 255, 255, 0.16);
     border-radius: 20px;
     padding: 2rem;
     backdrop-filter: blur(8px);
     -webkit-backdrop-filter: blur(8px);
     transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
 }

 .glass-card:hover {
     background: rgba(255, 255, 255, 0.13);
     transform: translateY(-8px);
     box-shadow: 0 24px 45px rgba(0, 0, 0, 0.35);
     border-color: rgba(255, 255, 255, 0.3);
 }

 .glass-card h3 {
     color: #4ade80;
     font-weight: 700;
 }

 .glass-card .icon-circle {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     width: 56px;
     height: 56px;
     border-radius: 50%;
     background: rgba(74, 222, 128, 0.2);
     color: #4ade80;
     font-size: 1.5rem;
     margin-bottom: 1rem;
     transition: all 0.4s;
 }

 .glass-card:hover .icon-circle {
     background: rgba(74, 222, 128, 0.35);
     box-shadow: 0 0 30px rgba(74, 222, 128, 0.4);
 }

 /* ============ SEÇÕES SEM IMAGEM ============ */
 .section-solid-dark {
     background: #0b1a3a;
     color: #fff;
 }

 .section-solid-light {
     background: #ffffff;
     color: #1e293b;
 }

 .section-solid-gray {
     background: #f1f5f9;
     color: #1e293b;
 }

 .section-title {
     font-size: clamp(1.8rem, 3.5vw, 2.4rem);
     font-weight: 700;
     position: relative;
     display: inline-block;
     letter-spacing: -0.01em;
 }

 .section-title::after {
     content: '';
     position: absolute;
     bottom: -10px;
     left: 50%;
     transform: translateX(-50%);
     width: 60px;
     height: 4px;
     background: #25d366;
     border-radius: 4px;
 }

 .section-solid-dark .section-title {
     color: #fff;
 }

 .section-solid-dark .section-title::after {
     background: #4ade80;
 }

 .section-bg-image .section-title {
     color: #fff;
 }

 .section-bg-image .section-title::after {
     background: #4ade80;
 }

 .card-elevated {
     background: #fff;
     border-radius: 20px;
     padding: 2rem;
     box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
     transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
     border: 1px solid rgba(0, 0, 0, 0.04);
 }

 .card-elevated:hover {
     transform: translateY(-8px);
     box-shadow: 0 28px 50px rgba(0, 0, 0, 0.12);
 }

 /* ============ DEPOIMENTOS ============ */
 .testimonial-card {
     background: #fff;
     border-radius: 20px;
     padding: 2rem;
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
     position: relative;
     border: 1px solid rgba(0, 0, 0, 0.04);
     transition: all 0.35s;
 }

 .testimonial-card:hover {
     box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
     transform: translateY(-4px);
 }

 .testimonial-card::before {
     content: '\201C';
     font-size: 5rem;
     color: #25d366;
     opacity: 0.25;
     position: absolute;
     top: -10px;
     left: 20px;
     font-family: serif;
     line-height: 1;
 }

 /* ============ ANIMAÇÕES ============ */
 .reveal {
     opacity: 0;
     transform: translateY(50px);
     transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
 }

 .reveal.visible {
     opacity: 1;
     transform: translateY(0);
 }

 .reveal-left {
     opacity: 0;
     transform: translateX(-60px);
     transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
 }

 .reveal-left.visible {
     opacity: 1;
     transform: translateX(0);
 }

 .reveal-right {
     opacity: 0;
     transform: translateX(60px);
     transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
 }

 .reveal-right.visible {
     opacity: 1;
     transform: translateX(0);
 }

 .stagger-1 {
     transition-delay: 0.1s;
 }

 .stagger-2 {
     transition-delay: 0.2s;
 }

 .stagger-3 {
     transition-delay: 0.3s;
 }

 .stagger-4 {
     transition-delay: 0.4s;
 }

 .stagger-5 {
     transition-delay: 0.5s;
 }

 /* ============ WHATSAPP FLOAT ============ */
 .whatsapp-float {
     position: fixed;
     bottom: 30px;
     right: 30px;
     z-index: 999;
     background-color: #25d366;
     color: white;
     border-radius: 50%;
     width: 60px;
     height: 60px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 28px;
     box-shadow: 0 8px 30px rgba(37, 211, 102, 0.45);
     transition: all 0.3s;
     animation: floatPulse 2.8s ease-in-out infinite;
 }

 @keyframes floatPulse {

     0%,
     100% {
         box-shadow: 0 8px 30px rgba(37, 211, 102, 0.45);
         transform: scale(1);
     }

     50% {
         box-shadow: 0 8px 50px rgba(37, 211, 102, 0.75);
         transform: scale(1.07);
     }
 }

 .whatsapp-float:hover {
     transform: scale(1.12);
     box-shadow: 0 14px 40px rgba(37, 211, 102, 0.65);
 }

 /* ============ ROAD DIVIDER ============ */
 .road-divider {
     position: relative;
     height: 6px;
     background: #1e293b;
     overflow: hidden;
     z-index: 2;
 }

 .road-divider::before {
     content: '';
     position: absolute;
     top: 50%;
     left: 0;
     width: 100%;
     height: 2px;
     background: repeating-linear-gradient(90deg, #4ade80 0px, #4ade80 28px, transparent 28px, transparent 48px);
     animation: roadDashMove 1.4s linear infinite;
     transform: translateY(-50%);
 }

 @keyframes roadDashMove {
     0% {
         transform: translateY(-50%) translateX(0);
     }

     100% {
         transform: translateY(-50%) translateX(-76px);
     }
 }

 /* Mobile menu */
 #mobileMenu {
     background: #ffffff;
     border-top: 1px solid #e2e8f0;
     transition: all 0.3s ease;
     box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
 }

 #mobileMenu .nav-link {
     color: #1e293b !important;
     text-shadow: none !important;
 }

 @media (max-width: 768px) {
     .hero-section {
         background-attachment: scroll;
         min-height: 90vh;
     }

     .hero-content {
         padding-top: 100px;
     }

     .hero-headline {
         font-size: 2rem;
     }

     .section-title {
         font-size: 1.6rem;
     }
 }
/* Identidade ACMMP e acesso ao portal */
.site-logo { display:flex; align-items:center; justify-content:center; flex-shrink:0; background:#fff; padding:6px 10px; border-radius:10px; }
.site-logo img { display:block; width:132px; height:84px; object-fit:contain; }
.associate-login { font-size:14px; padding:10px 18px; white-space:nowrap; text-align:center; text-decoration:none; }
.associate-login:focus-visible, .site-logo:focus-visible { outline:3px solid #25d366; outline-offset:4px; }
#mobileMenu .associate-login-mobile { display:block; margin-top:12px; }
@media (max-width:639px) { .site-logo img { width:104px; height:66px; } }

.footer-logo img { width:150px; height:96px; object-fit:contain; }
.legal-links { display:flex; flex-wrap:wrap; justify-content:center; gap:14px 24px; margin-bottom:18px; }
.legal-links a { color:#e2e8f0; text-decoration:none; }
.legal-links a:hover { color:#25d366; text-decoration:underline; }
.legal-links a:focus-visible { outline:3px solid #25d366; outline-offset:4px; }

/* Rodapé institucional — layout independente das classes utilitárias */
.acmmp-footer{background:#060f24;color:#b5c0d2;padding:56px 24px 28px;font-size:14px;line-height:1.7}
.acmmp-footer *{box-sizing:border-box}
.acmmp-footer-grid{display:grid;grid-template-columns:1.25fr .85fr 1.1fr 1fr;gap:36px;max-width:1200px;margin:0 auto}
.acmmp-footer-grid>section{min-width:0}
.acmmp-footer h2{font-size:14px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;color:#fff;font-weight:700;margin:0 0 18px}
.acmmp-footer p{margin:0 0 16px;max-width:34ch}
.acmmp-footer .footer-logo{display:inline-flex;margin-bottom:20px;padding:8px 12px;background:#fff;border-radius:10px}
.acmmp-footer .footer-logo img{display:block;width:150px;height:96px;object-fit:contain;max-width:100%}
.acmmp-footer .acmmp-footer-name{font-weight:600;color:#f1f5f9;margin-bottom:12px}
.acmmp-footer a{color:#d4ddec;text-decoration:none;transition:color .2s}
.acmmp-footer a:hover{color:#4ade80;text-decoration:underline;text-underline-offset:4px}
.acmmp-footer a:focus-visible{outline:3px solid #4ade80;outline-offset:5px;border-radius:3px}
.acmmp-footer-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.acmmp-footer-list a{display:inline-block;padding:4px 0;overflow-wrap:anywhere}
.acmmp-footer-social{gap:4px}
.acmmp-footer-bottom{max-width:1200px;margin:36px auto 0;padding-top:24px;border-top:1px solid #ffffff24;text-align:center}
.acmmp-footer-legal{list-style:none;margin:0 0 18px;padding:0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;column-gap:32px;row-gap:8px}
.acmmp-footer-legal li{margin:0;padding:0;min-width:0}
.acmmp-footer-legal a{display:inline-flex;align-items:center;min-height:44px;padding:6px 4px;white-space:normal}
.acmmp-footer .acmmp-footer-copyright{max-width:none;margin:0 0 20px;color:#a9b5c8;font-size:13px}
.acmmp-footer-credit{display:inline-flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;font-size:12px}
.acmmp-footer-credit img{display:block;object-fit:contain;width:140px;height:40px;max-width:100%}
@media(max-width:1050px){.acmmp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
@media(max-width:600px){.acmmp-footer{padding:40px 20px calc(28px + env(safe-area-inset-bottom,0px))}.acmmp-footer-grid{grid-template-columns:minmax(0,1fr);gap:30px}.acmmp-footer h2{margin-bottom:10px}.acmmp-footer-list a{min-height:44px;display:inline-flex;align-items:center}.acmmp-footer-legal{flex-direction:column;gap:4px;align-items:center}.acmmp-footer-bottom{margin-top:28px}.acmmp-footer p{max-width:42ch}}

/* Menu compacto para celular e tablet */
@media(max-width:1023px){
 #siteHeader{background:#0b1a3af5;backdrop-filter:none;-webkit-backdrop-filter:none}
 #siteHeader .header-top{padding:6px 0;font-size:12px;line-height:1.4}
 #siteHeader .header-top>div{display:block;text-align:center}
 #siteHeader .header-top>div>div:first-child{display:flex;justify-content:center;align-items:center;gap:8px 14px;flex-wrap:wrap}
 #siteHeader .header-top>div>div:last-child{display:none}
 #siteHeader .header-top .hidden{display:none!important}
 #siteHeader .nav-bar{padding-top:8px;padding-bottom:10px}
 #siteHeader .nav-bar>.max-w-7xl{flex-wrap:nowrap;gap:12px}
 #siteHeader .nav-bar .site-logo{padding:4px 8px;border-radius:8px}
 #siteHeader .nav-bar .site-logo img{width:100px;height:64px;object-fit:contain}
 #siteHeader .logo-text{font-size:11px}
 #menuBtn{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:8px;color:#fff}
 #menuBtn[aria-expanded="true"]{background:#ffffff1a}
 #menuBtn:focus-visible{outline:3px solid #4ade80;outline-offset:3px}
 #mobileMenu{position:absolute;top:100%;left:0;right:0;box-sizing:border-box;display:flex;flex-direction:column;gap:0;padding:10px 18px 18px;background:#fff;border-top:1px solid #e2e8f0;border-radius:0 0 16px 16px;box-shadow:0 16px 28px #060f2430;max-height:calc(100vh - var(--mobile-header-height,120px) - 12px);max-height:calc(100svh - var(--mobile-header-height,120px) - 12px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 #mobileMenu.hidden{display:none}
 #mobileMenu>*{margin:0!important;flex-shrink:0}
 #mobileMenu .nav-link{display:flex;align-items:center;min-height:44px;padding:10px 8px;font-size:15px;line-height:1.4;font-weight:500;border-bottom:1px solid #eef2f7;border-radius:0}
 #mobileMenu .nav-link::after{display:none}
 #mobileMenu .nav-link:hover,#mobileMenu .nav-link:focus-visible{background:#f0fdf4;color:#087b39!important}
 #mobileMenu .btn-primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:12px 18px!important;font-size:15px;font-weight:600;line-height:1.4;background:#25d366;color:#fff;border-radius:12px;box-shadow:none;text-align:center;text-decoration:none;transform:none!important}
 #mobileMenu .btn-primary::after{display:none}
 #mobileMenu .associate-login-mobile{margin-top:14px!important;margin-bottom:10px!important}
 #mobileMenu .btn-primary:hover{background:#0ca544;color:#fff}
 #mobileMenu a:focus-visible{outline:3px solid #087b39;outline-offset:-3px}
 .hero-content{padding-top:170px;padding-bottom:48px}
 input,select,textarea{font-size:16px!important}
}
@media(max-width:380px){#siteHeader .header-top{font-size:11px}#siteHeader .header-top>div>div:first-child{gap:4px 10px}#siteHeader .nav-bar .site-logo img{width:90px;height:58px}}
