/* ============================================================
   V3 — Escala tipográfica, header, microinterações e mapa MT
   ============================================================ */
:root{
  --header-h:78px;
  --content-max:1280px;
  --radius-md:10px;
  --shadow-soft:0 12px 34px rgba(0,42,105,.10);
  --shadow-hover:0 20px 44px rgba(0,42,105,.16);
}

body{font-size:15px;line-height:1.6;overflow-x:hidden}
.container{width:min(var(--content-max),calc(100% - 64px))}

/* HEADER — referência ideal: 78px de altura no desktop */
.site-header,.header-inner{height:var(--header-h)}
.site-header{border-bottom:1px solid rgba(255,255,255,.09)}
.site-header.scrolled{box-shadow:0 8px 30px rgba(0,22,60,.22)}
.header-inner{gap:18px}
.brand{min-width:190px;gap:11px}
.brand-mark{width:40px;height:40px;border-width:1.5px}
.brand-mark>span{border-left-width:9px;border-right-width:9px;border-bottom-width:17px}
.brand-copy b{font-size:12px;letter-spacing:.3px}
.brand-copy small{font-size:10px;margin-top:4px}
.main-nav{gap:42px;margin-left:auto}
.main-nav a{font-size:12.5px;letter-spacing:.25px;padding:30px 0 27px}
.main-nav a:after{bottom:18px;height:2px}
.header-cta{height:42px;min-width:183px;margin-left:72px;border-radius:7px;font-size:11px;letter-spacing:.2px;transition:.25s ease;position:relative;overflow:hidden;isolation:isolate}
.header-cta:hover{background:rgba(244,218,0,.10);box-shadow:0 0 0 4px rgba(244,218,0,.08),0 10px 28px rgba(0,0,0,.12);transform:translateY(-1px)}
.header-cta-icon{width:19px;height:19px;display:inline-flex}

/* Botões e ícones */
.btn{height:48px;padding:0 23px;border-radius:7px;font-size:11.5px;letter-spacing:.15px;position:relative;overflow:hidden;isolation:isolate}
.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.18) 48%,transparent 70%);transform:translateX(-130%);transition:transform .6s ease;z-index:-1}
.btn:hover:before{transform:translateX(130%)}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.btn-svg-icon{width:20px;height:20px;display:inline-flex;flex:0 0 20px}
.btn-svg-icon svg,.header-cta-icon svg,.time-icon svg{width:100%;height:100%}

/* HERO */
.hero{height:560px;background:linear-gradient(90deg,#003a7b 0 49%,#00306d 49% 100%)}
.hero-city,.hero-country{top:var(--header-h)}
.hero-divider{top:var(--header-h);height:482px}
.hero-copy{padding-top:103px}
.eyebrow{font-size:12px;margin-bottom:12px;gap:10px;letter-spacing:.25px}
.eyebrow span{width:25px;height:2.5px}
.hero h1{letter-spacing:-4px;text-shadow:0 7px 25px rgba(0,0,0,.15)}
.hero h1 span{font-size:112px}
.hero h1 strong{font-size:101px}
.role{font-size:20px;letter-spacing:8.5px;margin:15px 0 8px}
.role i{width:32px;height:2.5px}
.role b{font-size:11px}
.number{gap:13px;margin-bottom:16px}
.number b,.number strong{font-size:88px}
.hero-actions{gap:14px}
.hero-actions .btn:first-child{min-width:300px}
.hero-actions .btn:last-child{min-width:245px}
.candidate{width:485px;right:88px;bottom:-20px;transition:transform .22s ease-out;will-change:transform}
.mt-outline{width:365px;right:-8px;top:105px;animation:mapFloat 5s ease-in-out infinite;filter:drop-shadow(0 0 16px rgba(244,218,0,.12))}
.hero-whatsapp{right:42px;height:50px;gap:10px}
.hero-whatsapp .wa-icon{width:48px;height:48px;transition:.25s ease;animation:waPulse 2.6s ease-in-out infinite}
.hero-whatsapp:hover .wa-icon{transform:scale(1.08) rotate(-4deg)}
.hero-whatsapp small{font-size:10px}

/* TÍTULOS E SEÇÕES */
.section{padding:28px 0}
.section-title{gap:15px;margin-bottom:19px}
.section-title h2{font-size:22px;letter-spacing:.15px}
.section-title span{width:46px;height:2px;transform:scaleX(.35);transition:transform .65s ease}
.section-title:has(+ .show) span,.section-title:hover span{transform:scaleX(1)}

/* PRIORIDADES */
.priorities{padding-top:25px;padding-bottom:20px}
.priority-grid{gap:16px}
.priority-card{height:205px;padding:23px 19px 18px;grid-template-columns:70px 1fr;gap:13px;border-radius:10px;box-shadow:0 6px 18px rgba(7,48,103,.04);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.priority-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-hover);border-color:rgba(10,150,57,.28)}
.round-icon{width:66px;height:66px;border-width:5px;transition:transform .28s ease,box-shadow .28s ease}
.priority-card:hover .round-icon{transform:rotate(-5deg) scale(1.06);box-shadow:0 8px 18px rgba(8,127,49,.20)}
.round-icon svg{width:45px;height:45px}
.priority-card h3{font-size:16px;margin:4px 0 10px}
.priority-card p{font-size:13px;line-height:1.55}
.card-arrow{right:16px;bottom:12px;font-size:28px;transition:transform .25s ease}
.priority-card:hover .card-arrow,.proposal-card:hover .arrow{transform:translateX(5px)}
.stats{height:118px;margin-top:19px;padding:12px 26px;border-radius:9px;box-shadow:0 16px 36px rgba(0,54,142,.15)}
.stat{gap:20px}
.stat-icon{width:62px;height:62px;flex-basis:62px}
.stat strong,.stat b{font-size:44px}
.stat small{font-size:11.5px;margin-top:5px}
.stat:hover .stat-icon{animation:iconBounce .65s ease}

/* SOBRE */
.about{padding:18px 0 30px}
.about-grid{width:min(1140px,calc(100% - 80px));grid-template-columns:35% 65%;gap:64px}
.about-photo-wrap{height:410px}
.about-blue-block{width:360px;height:322px;left:-21px;bottom:-10px;border-radius:10px}
.about-photo{height:395px;border-radius:13px;box-shadow:var(--shadow-soft)}
.about-copy h2{font-size:28px;margin-bottom:11px}
.about-copy>p{font-size:14px;line-height:1.65;margin-bottom:12px}
.timeline{margin:8px 0 16px 7px}
.timeline div{grid-template-columns:62px 1fr;gap:14px;min-height:40px}
.timeline div:before{width:9px;height:9px;left:-5.4px;box-shadow:0 0 0 5px rgba(10,150,57,.08)}
.timeline b,.timeline span{font-size:13px}
.about-btn{height:46px;min-width:260px;font-size:11.5px}

/* PROPOSTAS */
.proposals{padding:18px 0 24px}
.filters{width:min(900px,100%);height:38px;margin-bottom:15px;border-radius:7px}
.filter{font-size:10.5px;transition:.2s ease}
.filter:hover{background:#f4f8f5;color:#078d35}
.filter.active{box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.proposal-grid{gap:15px 17px}
.proposal-card{height:132px;padding:18px;grid-template-columns:65px 1fr 22px;gap:12px;border-radius:9px;transition:transform .27s ease,box-shadow .27s ease,border-color .27s ease}
.proposal-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:rgba(10,150,57,.22)}
.proposal-icon{width:61px;height:61px;transition:transform .27s ease}
.proposal-card:hover .proposal-icon{transform:scale(1.08) rotate(-3deg)}
.proposal-card h3{font-size:14.5px;margin:2px 0 7px}
.proposal-card p{font-size:12px;line-height:1.5}
.proposal-card .arrow{font-size:25px;transition:transform .25s ease}

/* CTA AZUL */
.idea-band{height:102px;box-shadow:inset 0 1px rgba(255,255,255,.08),inset 0 -1px rgba(0,0,0,.12)}
.idea-inner{grid-template-columns:88px 405px 1fr 245px;gap:22px}
.megaphone{width:76px;height:68px;animation:megaphoneNudge 4s ease-in-out infinite}
.idea-band h2{font-size:21px}
.idea-band p{font-size:12px;line-height:1.55}
.idea-band .btn{height:43px}

/* MAPA INTERATIVO + AGENDA */
.road{padding:21px 0 18px}
.road .section-title{margin-bottom:14px}
.road-grid{width:min(1140px,calc(100% - 70px));grid-template-columns:46% 54%;gap:42px;align-items:center}
.map-card.interactive-map{height:360px;display:block;position:relative;border-radius:14px;background:linear-gradient(145deg,#fbfcfd,#f2f5f8);border:1px solid #e2e7ed;overflow:hidden;box-shadow:var(--shadow-soft)}
.map-viewport{position:absolute;inset:0 0 74px;overflow:hidden;cursor:grab}
.map-viewport:active{cursor:grabbing}
.map-transform-layer{position:absolute;inset:0;transform:translate(var(--map-pan-x,0px),var(--map-pan-y,0px)) scale(var(--map-scale,1));transform-origin:center center;transition:transform .22s ease;will-change:transform}
.mt-map-svg{position:absolute;inset:12px 18px 0;width:calc(100% - 36px);height:calc(100% - 15px)}
.map-region{fill:url(#mtFill);stroke:#b7bec8;stroke-width:2.5;stroke-dasharray:8 6;transition:fill .25s ease,stroke .25s ease}
.interactive-map:hover .map-region{fill:#eef3f2;stroke:#97a2af}
.map-routes{fill:none;stroke:#0a9639;stroke-width:2.2;stroke-dasharray:7 7;opacity:.30;animation:routeDash 7s linear infinite}
.map-toolbar{position:absolute;z-index:8;top:14px;right:14px;display:flex;gap:6px}
.map-control{width:34px;height:34px;border:1px solid #d5dce5;background:rgba(255,255,255,.94);border-radius:8px;color:#0c3c7e;font-weight:900;font-size:18px;cursor:pointer;box-shadow:0 5px 16px rgba(0,40,100,.08);transition:.2s ease}
.map-control:hover{background:#00368e;color:#fff;border-color:#00368e;transform:translateY(-1px)}
.map-reset{font-size:16px}
.map-pin{position:absolute;z-index:5;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-100%);border:0;background:transparent;padding:0;cursor:pointer;color:#0a9639;outline:0}
.pin-dot{display:block;width:22px;height:22px;border-radius:50% 50% 50% 0;background:#0a9639;border:4px solid #fff;transform:rotate(-45deg);box-shadow:0 5px 14px rgba(7,118,45,.28);position:relative;transition:.22s ease}
.pin-dot:after{content:"";position:absolute;width:5px;height:5px;background:#fff;border-radius:50%;left:4.5px;top:4.5px}
.pin-label{position:absolute;left:50%;top:27px;transform:translateX(-50%);padding:3px 7px;border-radius:5px;background:rgba(255,255,255,.94);box-shadow:0 4px 12px rgba(0,43,100,.08);font-size:10px;font-weight:700;color:#344765;white-space:nowrap;opacity:.88;transition:.2s ease}
.map-pin:after{content:"";position:absolute;left:50%;top:50%;width:31px;height:31px;border:2px solid rgba(10,150,57,.35);border-radius:50%;transform:translate(-50%,-70%);animation:pinPulse 2.2s ease-out infinite;pointer-events:none}
.map-pin:hover .pin-dot,.map-pin:focus .pin-dot,.map-pin.active .pin-dot{background:#00368e;transform:rotate(-45deg) scale(1.18);box-shadow:0 7px 18px rgba(0,54,142,.27)}
.map-pin:hover .pin-label,.map-pin:focus .pin-label,.map-pin.active .pin-label{opacity:1;color:#00368e;font-size:10.5px;transform:translateX(-50%) translateY(2px)}
.map-info{position:absolute;z-index:7;left:14px;right:14px;bottom:12px;min-height:60px;padding:10px 150px 10px 14px;border:1px solid #dce4eb;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-radius:10px;box-shadow:0 8px 24px rgba(0,42,105,.08);display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}
.map-info-kicker{grid-column:1/-1;text-transform:uppercase;color:#0a9639;font-size:9px;font-weight:900;letter-spacing:.6px}
.map-info strong{font-size:14px;color:#083a7a}
.map-info small{font-size:10.5px;color:#65758b;justify-self:start}
.map-info p{grid-column:1/-1;font-size:10.5px;margin:1px 0 0;color:#58677d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agenda-list{gap:9px;padding-left:20px}
.agenda-list:before{left:7px;top:13px;bottom:13px;width:2px}
.agenda-item{height:61px;grid-template-columns:70px 1fr 88px;gap:15px;border-radius:8px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;cursor:pointer}
.agenda-item:hover,.agenda-item.active{transform:translateX(5px);box-shadow:0 10px 24px rgba(0,42,105,.10);border-color:rgba(10,150,57,.30)}
.agenda-item:before{width:8px;height:8px;left:-17px;top:24px;box-shadow:0 0 0 4px #fff,0 0 0 5px #0a9639}
.agenda-item .date{border-radius:8px 0 0 8px}
.date strong{font-size:23px}
.date small{font-size:10px}
.agenda-text h3{font-size:13px;margin-bottom:3px}
.agenda-text p{font-size:10.5px}
.agenda-item time{font-size:10.5px;gap:6px}
.time-icon{width:16px;height:16px;display:inline-flex;opacity:.78}
.agenda-cta{margin-top:10px}
.agenda-cta .btn{height:42px;min-width:270px}
.btn-cal{width:20px;height:20px}

/* SOCIAL / VÍDEO */
.social-band{height:220px}
.social-grid{width:min(1080px,calc(100% - 100px));grid-template-columns:28% 72%;gap:28px}
.social-copy h2{font-size:25px;margin-bottom:9px}
.social-copy p{font-size:12px;max-width:270px}
.social-links{gap:12px;margin-top:16px}
.social-links a{width:43px;height:43px;border-width:1.5px;transition:.22s ease}
.social-links a svg{width:21px;height:21px}
.social-links a:hover{background:#fff;color:#00368e;transform:translateY(-4px);box-shadow:0 8px 18px rgba(0,0,0,.18)}
.video-card{height:190px;border-radius:10px;transition:transform .3s ease,box-shadow .3s ease}
.video-card:hover{transform:scale(1.012);box-shadow:0 18px 38px rgba(0,0,0,.18)}
.video-play{width:58px;height:58px;font-size:23px;transition:.25s ease}
.video-card:hover .video-play{transform:scale(1.08);background:rgba(255,255,255,.38)}
.video-controls{left:12px;right:12px;bottom:7px;height:15px;font-size:8px}

/* CONTATO */
.contact{padding:18px 0 16px}
.contact-layout{width:min(1080px,calc(100% - 100px));grid-template-columns:28% 72%;gap:28px}
.contact-intro p{font-size:12px;line-height:1.55;margin-bottom:13px}
.whatsapp-card{gap:10px;padding:7px 13px;border-radius:8px;transition:.22s ease}
.whatsapp-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(10,150,57,.12)}
.whatsapp-card>span{width:36px;height:36px}
.whatsapp-card b{font-size:10.5px}.whatsapp-card small{font-size:9.5px}
.contact-title{margin-bottom:8px}.contact-title h2{font-size:20px}
.field-row{gap:10px}
.contact-form label{margin-bottom:8px}
.contact-form input,.contact-form textarea{font-size:12px;border-radius:6px;padding:8px 11px;transition:.2s ease}
.contact-form input{height:40px}
.contact-form textarea{height:72px}
.contact-form input:focus,.contact-form textarea:focus{box-shadow:0 0 0 4px rgba(9,145,57,.09)}
.form-footer{height:40px}.form-footer #formStatus{font-size:10px}.form-footer .btn{height:38px;min-width:220px;font-size:10px}

/* RODAPÉ */
.footer{padding:18px 0 10px}
.footer-grid,.footer-bottom{width:min(1080px,calc(100% - 100px))}
.footer-grid{gap:32px}
.footer .brand-mark{width:33px;height:33px}.footer .brand-copy b{font-size:10px}.footer .brand-copy small{font-size:8.5px}
.footer h3{font-size:11px;margin-bottom:6px}.footer a,.footer p{font-size:9.5px;line-height:1.5}
.footer-col{padding-left:22px}.footer-social{gap:8px;margin-top:9px}.footer-social a{width:27px;height:27px}.footer-social a svg{width:14px;height:14px}
.footer-bottom{font-size:8px;margin-top:10px;padding-top:8px}.footer-bottom a{font-size:8px}

/* REVEAL E MICROANIMAÇÕES */
.reveal{opacity:0;transform:translateY(24px) scale(.985);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.show{opacity:1;transform:none}
.priority-card.reveal.show,.proposal-card.reveal.show{transition-delay:var(--reveal-delay,0ms)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:ripple .55s linear;pointer-events:none;z-index:2}

@keyframes mapFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes waPulse{0%,100%{filter:drop-shadow(0 2px 3px rgba(0,0,0,.24))}50%{filter:drop-shadow(0 0 12px rgba(12,194,76,.48))}}
@keyframes iconBounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-7px)}70%{transform:translateY(2px)}}
@keyframes megaphoneNudge{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(-7deg)}95%{transform:rotate(5deg)}}
@keyframes routeDash{to{stroke-dashoffset:-100}}
@keyframes pinPulse{0%{opacity:.8;transform:translate(-50%,-70%) scale(.55)}75%,100%{opacity:0;transform:translate(-50%,-70%) scale(1.45)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}

@media (max-width:1099px){
  :root{--header-h:70px;--content-max:980px}
  body{font-size:14px}
  .container{width:min(var(--content-max),calc(100% - 42px))}
  .brand{min-width:150px}.brand-mark{width:34px;height:34px}.brand-copy b{font-size:10px}.brand-copy small{font-size:8.5px}
  .main-nav{gap:24px}.main-nav a{font-size:10.5px}.header-cta{margin-left:24px;min-width:154px;height:38px;font-size:9.5px}
  .hero{height:500px}.hero-divider{height:430px}.hero-copy{padding-top:92px}.hero h1 span{font-size:91px}.hero h1 strong{font-size:82px}.role{font-size:17px;letter-spacing:6px}.number b,.number strong{font-size:72px}.candidate{width:410px;right:25px}.mt-outline{width:300px}
  .section-title h2{font-size:20px}.priority-card h3{font-size:14px}.priority-card p{font-size:11.5px}
  .about-grid{width:min(920px,calc(100% - 50px));gap:45px}.about-photo-wrap{height:360px}.about-photo{height:345px}.about-blue-block{width:310px;height:285px}.about-copy h2{font-size:24px}.about-copy>p{font-size:12.5px}.timeline b,.timeline span{font-size:11.5px}
  .proposal-card{height:124px}.proposal-card h3{font-size:13px}.proposal-card p{font-size:10.5px}
  .idea-inner{grid-template-columns:75px 335px 1fr 205px}.idea-band h2{font-size:18px}.idea-band p{font-size:10.5px}
  .road-grid{width:min(940px,calc(100% - 40px));gap:28px}.map-card.interactive-map{height:335px}.agenda-item{grid-template-columns:65px 1fr 75px}.agenda-text p{white-space:normal}
  .social-grid,.contact-layout,.footer-grid,.footer-bottom{width:min(900px,calc(100% - 60px))}
}

@media (max-width:760px){
  :root{--header-h:64px}
  body{font-size:14px}
  .container{width:min(100% - 28px,720px)}
  .site-header,.header-inner{height:var(--header-h)}
  .brand{min-width:135px}.brand-mark{width:32px;height:32px}.brand-copy b{font-size:9.5px}.brand-copy small{font-size:8px}
  .main-nav a{font-size:13px;padding:16px 0}
  .hero{min-height:740px;height:auto}.hero-copy{padding-top:4px}.hero-grid{padding-top:105px}.eyebrow{font-size:10px}.hero h1 span{font-size:67px}.hero h1 strong{font-size:59px}.role{font-size:13px;letter-spacing:4px}.number b,.number strong{font-size:58px}.btn{font-size:10px;height:44px}.hero-visual{height:325px}.candidate{width:315px;right:0}.mt-outline{width:235px;top:55px}
  .section{padding:30px 0}.section-title h2{font-size:18px}.section-title span{width:30px}
  .priority-card{min-height:155px;height:auto;padding:20px 16px;grid-template-columns:62px 1fr}.priority-card h3{font-size:15px}.priority-card p{font-size:12px}.round-icon{width:58px;height:58px}
  .stats{height:auto}.stat strong,.stat b{font-size:36px}.stat small{font-size:10.5px}
  .about-grid{width:min(100% - 28px,720px);gap:28px}.about-photo-wrap{height:360px}.about-photo{height:345px}.about-copy h2{font-size:24px}.about-copy>p{font-size:13px}.timeline div{grid-template-columns:65px 1fr}.timeline b,.timeline span{font-size:11.5px}
  .filters{grid-template-columns:repeat(3,1fr)}.filter{height:38px;font-size:9.5px}.proposal-card{min-height:118px;height:auto}.proposal-card h3{font-size:13.5px}.proposal-card p{font-size:11px}
  .idea-band{height:auto;padding:20px 0}.idea-inner{grid-template-columns:65px 1fr;gap:13px}.idea-band h2{font-size:17px}.idea-band p{font-size:11px}.idea-band .btn{height:42px}
  .road-grid{width:100%;grid-template-columns:1fr;gap:24px}.map-card.interactive-map{height:390px}.map-viewport{inset:0 0 88px}.map-info{padding-right:14px;min-height:73px}.map-info strong{font-size:13px}.map-info p{font-size:10px;white-space:normal}.pin-label{font-size:9px}.agenda-item{height:62px;grid-template-columns:62px 1fr 72px}.agenda-text h3{font-size:12px}.agenda-text p,.agenda-item time{font-size:9.5px}
  .social-band{height:auto;padding:25px 0}.social-grid,.contact-layout{grid-template-columns:1fr}.social-grid,.contact-layout,.footer-grid,.footer-bottom{width:min(100% - 28px,720px)}.social-copy h2{font-size:23px}.social-copy p{font-size:12px}.video-card{height:215px}
  .contact-intro p{font-size:12px}.contact-title h2{font-size:18px}.field-row{grid-template-columns:1fr}.contact-form input{height:44px}.contact-form textarea{height:92px}.contact-form input,.contact-form textarea{font-size:12px}.form-footer{height:45px}.form-footer .btn{height:40px;font-size:10px}
  .footer-grid{grid-template-columns:1fr 1fr}.footer h3{font-size:11px}.footer a,.footer p{font-size:9.5px}
}

@media (max-width:430px){
  .hero h1 span{font-size:57px}.hero h1 strong{font-size:51px}.role{font-size:11px;letter-spacing:3px}.number b,.number strong{font-size:52px}
  .filters{grid-template-columns:repeat(2,1fr)}
  .map-card.interactive-map{height:365px}.pin-label{display:none}.agenda-item{grid-template-columns:58px 1fr}.agenda-item time{display:none}
  .footer-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .mt-outline,.hero-whatsapp .wa-icon,.megaphone,.map-routes,.map-pin:after{animation:none!important}
  .reveal{opacity:1;transform:none;transition:none}
  .candidate,.map-transform-layer{transition:none}
}


/* ============================================================
   V4 — Header/hero com arte oficial enviada pelo usuário
   Arte original: 2048 × 693 px (proporção ~2.95:1)
   ============================================================ */
.hero{
  position:relative;
  background-image:var(--hero-bg,url('../img/header-mato-grosso.png'));
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(0,29,74,.93) 0%,
      rgba(0,39,92,.86) 24%,
      rgba(0,43,95,.66) 41%,
      rgba(0,27,68,.22) 59%,
      rgba(0,12,33,.08) 100%);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(0,18,49,.10),rgba(0,18,49,.18));
}
.hero-city,.hero-country,.hero-divider,.candidate,.mt-outline{display:none!important}
.hero-grid{z-index:3}
.hero-copy{position:relative;z-index:4}
.hero-visual{pointer-events:none}
.hero-whatsapp{z-index:5}

@media (min-width:1100px){
  .hero{height:650px;background-position:center center}
  .hero-copy{padding-top:125px}
}
@media (min-width:761px) and (max-width:1099px){
  .hero{height:560px;background-position:58% center}
  .hero-copy{padding-top:98px}
}
@media (max-width:760px){
  .hero{
    min-height:740px;
    height:auto;
    background-position:69% center;
  }
  .hero::before{
    background:linear-gradient(180deg,
      rgba(0,33,80,.62) 0%,
      rgba(0,35,84,.82) 37%,
      rgba(0,32,78,.96) 67%,
      rgba(0,30,73,.99) 100%);
  }
  .hero-grid{padding-top:98px}
  .hero-copy{padding-top:0}
  .hero-visual{height:275px}
}

/* ============================================================
   V5 — Logo oficial branca + identificação eleitoral no rodapé
   ============================================================ */
.brand-official{
  min-width:0;
  width:154px;
  height:66px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:visible;
}
.brand-logo{
  display:block;
  width:auto;
  height:62px;
  max-width:154px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.18));
  transition:transform .25s ease,filter .25s ease;
}
.brand-official:hover .brand-logo{
  transform:translateY(-1px) scale(1.015);
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.24));
}
.site-header.scrolled .brand-logo{
  height:58px;
}
.footer-brand .footer-logo-link{
  width:145px;
  height:auto;
  margin-bottom:7px;
}
.footer-brand .footer-logo{
  height:92px;
  max-width:145px;
  object-position:left center;
  filter:none;
}
.campaign-legal{
  width:min(1080px,calc(100% - 100px));
  margin-top:16px;
  padding:12px 16px;
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:5px 9px;
  color:#fff;
  text-align:center;
  font-size:10px;
  line-height:1.55;
  letter-spacing:.02em;
}
.campaign-legal strong{
  color:#f4da00;
  font-weight:800;
}
.campaign-legal span{
  color:#eef4ff;
}
.footer-bottom{
  margin-top:8px;
}
@media (max-width:1099px){
  .brand-official{width:132px;height:60px}
  .brand-logo{height:55px;max-width:132px}
  .site-header.scrolled .brand-logo{height:52px}
  .campaign-legal{width:min(900px,calc(100% - 60px));font-size:9px}
}
@media (max-width:760px){
  .brand-official{width:112px;height:58px}
  .brand-logo{height:52px;max-width:112px}
  .site-header.scrolled .brand-logo{height:49px}
  .footer-brand .footer-logo-link{width:135px}
  .footer-brand .footer-logo{height:88px;max-width:135px}
  .campaign-legal{width:min(100% - 28px,720px);font-size:8.8px;padding:11px 9px;margin-top:14px}
}
@media (max-width:430px){
  .brand-official{width:100px}
  .brand-logo{height:48px;max-width:100px}
  .footer-brand .footer-logo-link{width:125px}
  .footer-brand .footer-logo{height:82px;max-width:125px}
  .campaign-legal{font-size:8.4px;line-height:1.6}
  .campaign-legal > span[aria-hidden="true"]{display:none}
  .campaign-legal strong,.campaign-legal span{width:100%}
}

/* ============================================================
   V6 — Logo +20%, WhatsApp no header, rodapé social e avatar CTA
   ============================================================ */

/* Logo aproximadamente 20% maior em relação à V5 */
.brand-official{
  width:185px;
  height:76px;
  flex:0 0 185px;
}
.brand-logo{
  height:74px;
  max-width:185px;
}
.site-header.scrolled .brand-logo{height:70px}

/* CTA do header agora é WhatsApp */
.header-whatsapp-btn{
  min-width:154px;
  margin-left:38px;
  color:#fff;
  border-color:rgba(255,255,255,.38);
  background:linear-gradient(135deg,#18a64a,#0c8738);
  box-shadow:0 9px 24px rgba(3,109,45,.22);
}
.header-whatsapp-btn:hover{
  color:#fff;
  border-color:#25d366;
  background:linear-gradient(135deg,#25d366,#0d9f43);
  box-shadow:0 0 0 4px rgba(37,211,102,.13),0 12px 28px rgba(0,0,0,.18);
}
.header-whatsapp-btn .header-cta-icon{
  width:20px;
  height:20px;
  color:#fff;
}
.header-whatsapp-btn .header-cta-label{font-weight:800}

/* O WhatsApp flutuante do hero foi removido no HTML. */
.hero-whatsapp{display:none!important}

/* Rodapé: apenas Facebook, Instagram e WhatsApp, com cor oficial no hover */
.footer-social{
  gap:10px;
  margin-top:12px;
}
.footer-social a{
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.55);
  color:#fff;
  background:rgba(255,255,255,.04);
  transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.footer-social a svg{width:17px;height:17px}
.footer-social a:hover{transform:translateY(-4px) scale(1.04);color:#fff}
.footer-social .social-facebook:hover{
  background:#1877f2;
  border-color:#1877f2;
  box-shadow:0 9px 20px rgba(24,119,242,.32);
}
.footer-social .social-instagram:hover{
  background:radial-gradient(circle at 30% 110%,#fdf497 0 8%,#fdf497 8%,#fd5949 40%,#d6249f 62%,#285aeb 92%);
  border-color:rgba(255,255,255,.7);
  box-shadow:0 9px 20px rgba(214,36,159,.28);
}
.footer-social .social-whatsapp:hover{
  background:#25d366;
  border-color:#25d366;
  box-shadow:0 9px 20px rgba(37,211,102,.30);
}

/* Card para avatar oficial */
.avatar-promo{
  padding:16px 0 24px;
  background:linear-gradient(180deg,#fff 0%,#f3f7fc 100%);
}
.avatar-card{
  width:min(900px,100%);
  min-height:96px;
  margin:0 auto;
  padding:17px 22px;
  display:grid;
  grid-template-columns:88px 1fr 38px;
  align-items:center;
  gap:20px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(0,54,142,.12);
  border-radius:16px;
  background:
    radial-gradient(circle at 88% 15%,rgba(244,218,0,.18),transparent 31%),
    linear-gradient(135deg,#00368e 0%,#004aa5 54%,#05753c 100%);
  color:#fff;
  box-shadow:0 16px 38px rgba(0,54,142,.16);
  isolation:isolate;
  transition:transform .28s ease,box-shadow .28s ease;
}
.avatar-card:before{
  content:"";
  position:absolute;
  inset:-50% auto -50% -25%;
  width:32%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transform:skewX(-18deg) translateX(-220%);
  transition:transform .7s ease;
  z-index:-1;
}
.avatar-card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 52px rgba(0,54,142,.23);
}
.avatar-card:hover:before{transform:skewX(-18deg) translateX(520%)}
.avatar-card-icons{
  width:82px;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.avatar-card-icons span{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.85);
  border-radius:50%;
  box-shadow:0 8px 20px rgba(0,0,0,.14);
}
.avatar-card-icons span svg{width:25px;height:25px}
.avatar-card-icons .avatar-wa{background:#25d366;color:#fff;z-index:2;transform:translateX(8px)}
.avatar-card-icons .avatar-ig{
  background:radial-gradient(circle at 30% 110%,#fdf497 0 8%,#fd5949 40%,#d6249f 62%,#285aeb 92%);
  color:#fff;
  transform:translateX(-7px) translateY(5px);
}
.avatar-card-copy small{
  display:block;
  margin-bottom:3px;
  color:#f4da00;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:10px;
  font-weight:800;
}
.avatar-card-copy h2{
  margin:0 0 3px;
  font-size:17px;
  line-height:1.3;
  font-weight:800;
}
.avatar-card-copy p{
  margin:0;
  font-size:11.5px;
  color:#dcecff;
  font-weight:600;
}
.avatar-card-arrow{
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#f4da00;
  color:#00368e;
  font-size:22px;
  font-weight:900;
  transition:transform .25s ease;
}
.avatar-card:hover .avatar-card-arrow{transform:translateX(4px) rotate(-8deg)}

/* Tablet */
@media (max-width:1099px){
  .brand-official{width:158px;height:68px;flex-basis:158px}
  .brand-logo{height:66px;max-width:158px}
  .site-header.scrolled .brand-logo{height:62px}
  .header-whatsapp-btn{margin-left:18px;min-width:138px}
  .footer-social a{width:32px;height:32px}
}

/* Mobile: logo maior sem sacrificar o menu; WhatsApp vira botão compacto */
@media (max-width:760px){
  .header-inner{gap:8px}
  .brand-official{width:134px;height:62px;flex:0 0 134px}
  .brand-logo{height:61px;max-width:134px}
  .site-header.scrolled .brand-logo{height:58px}
  .header-whatsapp-btn{
    display:flex;
    width:39px;
    min-width:39px;
    height:39px;
    padding:0;
    margin-left:auto;
    border-radius:50%;
    flex:0 0 39px;
  }
  .header-whatsapp-btn .header-cta-label{display:none}
  .header-whatsapp-btn .header-cta-icon{width:22px;height:22px}
  .menu-toggle{margin-left:4px;flex:0 0 auto}

  .footer-grid{align-items:start}
  .footer-social{gap:12px;margin-top:13px}
  .footer-social a{width:38px;height:38px}
  .footer-social a svg{width:19px;height:19px}

  .avatar-promo{padding:12px 0 20px}
  .avatar-card{
    min-height:0;
    grid-template-columns:68px 1fr 30px;
    gap:12px;
    padding:15px 14px;
    border-radius:14px;
  }
  .avatar-card-icons{width:64px;height:52px}
  .avatar-card-icons span{width:39px;height:39px}
  .avatar-card-icons span svg{width:21px;height:21px}
  .avatar-card-copy small{font-size:8.5px}
  .avatar-card-copy h2{font-size:14px}
  .avatar-card-copy p{font-size:9.5px;overflow-wrap:anywhere}
  .avatar-card-arrow{width:29px;height:29px;font-size:18px}
}

@media (max-width:430px){
  .container{width:min(100% - 20px,720px)}
  .brand-official{width:116px;height:60px;flex-basis:116px}
  .brand-logo{height:58px;max-width:116px}
  .site-header.scrolled .brand-logo{height:55px}
  .header-whatsapp-btn{width:36px;min-width:36px;height:36px;flex-basis:36px}
  .header-whatsapp-btn .header-cta-icon{width:20px;height:20px}
  .menu-toggle{padding:3px}
  .menu-toggle span{width:21px}

  .footer-grid{grid-template-columns:1fr}
  .footer-brand{display:flex;flex-direction:column;align-items:flex-start}
  .footer-social a{width:40px;height:40px}

  .avatar-card{
    grid-template-columns:58px 1fr;
    padding:14px 12px;
  }
  .avatar-card-icons{width:56px}
  .avatar-card-icons span{width:36px;height:36px}
  .avatar-card-arrow{display:none}
  .avatar-card-copy h2{font-size:13px;line-height:1.35}
  .avatar-card-copy p{font-size:9px}
}

@media (prefers-reduced-motion:reduce){
  .avatar-card,.avatar-card:before,.avatar-card-arrow,.footer-social a{transition:none!important}
}

/* ============================================================
   V7 — WhatsApp de marca + card avatar + modais jurídicos
   ============================================================ */

/* Ajuste do SVG de marca do WhatsApp em todos os pontos da página. */
.header-whatsapp-btn .header-cta-icon svg,
.footer-social .social-whatsapp svg,
.avatar-wa svg,
.whatsapp-card svg,
.social-links a[aria-label="WhatsApp"] svg{
  display:block;
  width:100%;
  height:100%;
}

/* Card inteiro clicável; endereço oculto e CTA textual. */
.avatar-card-copy p strong{
  color:#fff;
  font-weight:900;
  text-decoration:underline;
  text-decoration-color:#f4da00;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.avatar-card:focus-visible{
  outline:3px solid #f4da00;
  outline-offset:4px;
}

/* Política de Privacidade / Termos: botões visuais no rodapé. */
.footer-legal-actions{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.footer-legal-link{
  appearance:none;
  border:0;
  padding:2px 0;
  margin:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.38);
  text-underline-offset:3px;
  transition:color .2s ease,text-decoration-color .2s ease;
}
.footer-legal-link:hover,
.footer-legal-link:focus-visible{
  color:#f4da00;
  text-decoration-color:#f4da00;
  outline:none;
}
.footer-legal-separator{opacity:.45}

/* Modal jurídico responsivo. */
.legal-dialog{
  width:min(680px,calc(100% - 32px));
  max-width:680px;
  max-height:min(82vh,760px);
  padding:0;
  border:0;
  border-radius:20px;
  background:transparent;
  color:#0a2d62;
  overflow:visible;
  box-shadow:0 30px 90px rgba(0,28,75,.34);
}
.legal-dialog::backdrop{
  background:rgba(0,20,55,.72);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.legal-dialog[open]{animation:legalDialogIn .24s ease both}
.legal-dialog-shell{
  max-height:min(82vh,760px);
  overflow:auto;
  border-radius:20px;
  background:#fff;
  border:1px solid rgba(0,54,142,.12);
}
.legal-dialog-head{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 24px 18px;
  color:#fff;
  background:linear-gradient(135deg,#00368e 0%,#004aa5 55%,#0a7d43 100%);
}
.legal-dialog-kicker{
  display:block;
  margin-bottom:4px;
  color:#f4da00;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.legal-dialog-head h2{margin:0;font-size:25px;line-height:1.2;color:#fff}
.legal-dialog-close{
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  border-radius:50%;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:27px;
  line-height:1;
  cursor:pointer;
  transition:.2s ease;
}
.legal-dialog-close:hover{transform:rotate(5deg) scale(1.05);background:#fff;color:#00368e}
.legal-dialog-body{padding:28px 26px 26px;text-align:center}
.legal-placeholder-icon{
  width:58px;
  height:58px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(135deg,#eef5ff,#e8f8ee);
  color:#007a3d;
  font-size:30px;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(0,54,142,.08);
}
.legal-dialog-body h3{margin:0 0 9px;color:#00368e;font-size:19px}
.legal-dialog-body p{max-width:540px;margin:0 auto;color:#51647c;font-size:13px;line-height:1.7}
.legal-dialog-foot{display:flex;justify-content:flex-end;padding:0 26px 24px}
.legal-dialog-button{
  min-width:116px;
  min-height:40px;
  padding:10px 20px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#0a8b43,#05743a);
  color:#fff;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(5,116,58,.18);
}
.legal-dialog-button:hover{filter:brightness(1.06);transform:translateY(-1px)}

@keyframes legalDialogIn{
  from{opacity:0;transform:translateY(12px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@media (max-width:760px){
  .footer-legal-actions{justify-content:flex-start;gap:8px}
  .legal-dialog{width:min(100% - 20px,680px);max-height:88vh;border-radius:16px}
  .legal-dialog-shell{max-height:88vh;border-radius:16px}
  .legal-dialog-head{padding:18px 18px 15px}
  .legal-dialog-head h2{font-size:21px}
  .legal-dialog-close{width:36px;height:36px;flex-basis:36px}
  .legal-dialog-body{padding:23px 18px 21px}
  .legal-dialog-body h3{font-size:17px}
  .legal-dialog-body p{font-size:12.5px;line-height:1.65}
  .legal-dialog-foot{padding:0 18px 18px}
  .legal-dialog-button{width:100%}
}

@media (max-width:430px){
  .footer-legal-actions{display:flex;width:100%;justify-content:flex-start}
  .footer-legal-link{font-size:10px}
  .legal-dialog{width:calc(100% - 14px)}
  .legal-dialog-head{padding:16px 15px 14px}
  .legal-dialog-head h2{font-size:19px}
  .legal-dialog-kicker{font-size:8.5px}
  .legal-dialog-body{padding:20px 15px}
}

@media (prefers-reduced-motion:reduce){
  .legal-dialog[open]{animation:none}
  .legal-dialog-close,.legal-dialog-button,.footer-legal-link{transition:none!important}
}

/* =========================================================
   V8 — Malha oficial do MT (IBGE), foco por compromisso e carro
   ========================================================= */
.road-grid{align-items:stretch}
.map-card.interactive-map{height:430px;background:linear-gradient(145deg,#fbfdff 0%,#eef3f7 100%);border-color:#dce4eb}
.map-viewport{inset:0 0 92px;touch-action:pan-y;cursor:grab}
.map-viewport.is-dragging{cursor:grabbing}
.map-transform-layer{
  left:12%;right:12%;top:5%;bottom:3%;
  transform-origin:0 0;
  transition:transform .42s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
.mt-official-map{
  position:absolute;inset:0;width:100%;height:100%;object-fit:fill;
  filter:drop-shadow(0 12px 18px rgba(0,54,142,.13));
  user-select:none;-webkit-user-drag:none;pointer-events:none;
}
.map-fallback .mt-official-map{opacity:.98}
.map-route-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}
.map-route-line{
  fill:none;stroke:#0a9639;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:2.2 2.4;vector-effect:non-scaling-stroke;opacity:.48;
  animation:routeDashV8 5.5s linear infinite;
}
.map-source-badge{
  position:absolute;z-index:10;left:14px;top:14px;display:inline-flex;align-items:center;gap:7px;
  height:31px;padding:0 10px;border-radius:8px;background:rgba(255,255,255,.94);color:#52667b;
  border:1px solid #d7e0e8;box-shadow:0 5px 15px rgba(0,42,105,.08);font-size:9px;font-weight:800;
  text-decoration:none;backdrop-filter:blur(8px);transition:.2s ease;
}
.map-source-badge span{display:inline-grid;place-items:center;height:20px;padding:0 5px;border-radius:4px;background:#00368e;color:#fff;font-size:8px;letter-spacing:.5px}
.map-source-badge:hover{transform:translateY(-1px);border-color:#b7c8d7;box-shadow:0 8px 18px rgba(0,42,105,.12)}
.map-pin{z-index:5}
.map-pin .pin-dot{width:24px;height:24px}
.pin-label{font-size:9.5px;top:29px}

.campaign-car{
  position:absolute;z-index:6;left:var(--car-x);top:var(--car-y);
  width:44px;height:30px;color:#0a9639;pointer-events:none;
  transform:translate(-50%,-60%) rotate(var(--car-rot,0deg));
  transform-origin:center;transition:left 1.45s cubic-bezier(.22,.78,.2,1),top 1.45s cubic-bezier(.22,.78,.2,1),transform .55s ease;
  filter:drop-shadow(0 6px 8px rgba(0,78,35,.25));
}
.campaign-car.no-transition{transition:none!important}
.campaign-car-icon{display:block;width:44px;height:30px;position:relative;z-index:2}
.campaign-car-icon svg{width:100%;height:100%;display:block;overflow:visible}
.campaign-car-shadow{position:absolute;left:7px;right:6px;bottom:1px;height:5px;border-radius:50%;background:rgba(0,0,0,.16);filter:blur(2px);z-index:1}
.campaign-car.is-driving .campaign-car-icon{animation:carBounce .34s ease-in-out infinite alternate}

.map-info{min-height:72px;padding:10px 158px 10px 14px}
.map-info-kicker{color:#087b34}
.map-external-link{
  position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-width:134px;height:34px;padding:0 11px;border-radius:8px;background:#0a9639;color:#fff;text-decoration:none;
  font-size:9.5px;font-weight:850;box-shadow:0 7px 17px rgba(10,150,57,.20);transition:.2s ease;
}
.map-external-link span{width:15px;height:15px;display:inline-flex}
.map-external-link span svg{width:100%;height:100%}
.map-external-link:hover{background:#087c31;transform:translateY(-1px)}

.agenda-item{min-height:72px;height:auto;padding-top:7px;padding-bottom:7px}
.agenda-text{align-self:center;min-width:0}
.agenda-map-hint{display:flex;align-items:center;gap:4px;margin-top:4px;color:#0a9639;font-size:8px;font-weight:800;opacity:.78;transition:.2s ease}
.agenda-map-hint span{width:11px;height:11px;display:inline-flex}
.agenda-map-hint svg{width:100%;height:100%}
.agenda-item:hover .agenda-map-hint,.agenda-item.active .agenda-map-hint{opacity:1;color:#006f2c}
.agenda-item.active{background:linear-gradient(90deg,#fff 0%,#f5fbf7 100%)}

@keyframes routeDashV8{to{stroke-dashoffset:-18}}
@keyframes carBounce{from{transform:translateY(0)}to{transform:translateY(-1.8px)}}

@media (max-width:1100px){
  .map-card.interactive-map{height:410px}
  .map-transform-layer{left:10%;right:10%;top:7%;bottom:4%}
}

@media (max-width:760px){
  .map-card.interactive-map{height:440px}
  .map-viewport{inset:43px 0 108px}
  .map-transform-layer{left:10%;right:10%;top:4%;bottom:4%}
  .map-source-badge{left:10px;top:9px;height:28px;font-size:8px}
  .map-toolbar{top:8px;right:9px}
  .map-control{width:30px;height:30px;font-size:16px}
  .map-info{left:9px;right:9px;bottom:9px;min-height:88px;padding:9px 112px 9px 11px;display:block}
  .map-info-kicker{display:block;margin-bottom:3px;font-size:8px}
  .map-info strong{display:block;font-size:13px}
  .map-info small{display:block;font-size:9px;margin-top:1px}
  .map-info p{font-size:9.5px;line-height:1.35;margin-top:3px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .map-external-link{right:8px;bottom:10px;min-width:98px;height:31px;padding:0 8px;font-size:8px}
  .campaign-car{width:38px;height:26px}
  .campaign-car-icon{width:38px;height:26px}
  .agenda-item{min-height:78px;grid-template-columns:58px 1fr 66px;gap:9px}
  .agenda-map-hint{font-size:7.5px}
}

@media (max-width:480px){
  .map-card.interactive-map{height:420px}
  .map-viewport{inset:41px 0 112px}
  .map-transform-layer{left:7%;right:7%;top:4%;bottom:5%}
  .map-source-badge{max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .pin-label{display:none}
  .campaign-car{width:34px;height:23px}
  .campaign-car-icon{width:34px;height:23px}
  .agenda-item{grid-template-columns:56px 1fr}
  .agenda-item time{display:none}
}

@media (prefers-reduced-motion:reduce){
  .map-route-line,.campaign-car-icon{animation:none!important}
  .campaign-car,.map-transform-layer{transition:none!important}
}

/* =========================================================
   V9 — mapa satélite, número 20400 unido e ajustes do avatar
   ========================================================= */
.number.number-joined{
  gap:0!important;
  column-gap:0!important;
  letter-spacing:-2px;
  white-space:nowrap;
}
.number.number-joined b,
.number.number-joined strong{
  display:inline-block;
  margin:0!important;
  padding:0!important;
  letter-spacing:-2px;
}
.number.number-joined strong{margin-left:-1px!important}

.avatar-card-copy{align-self:center}
.avatar-card-copy h2{margin-bottom:0}

/* O mapa usa Leaflet com camada de satélite. A área inferior fica reservada
   para o card de informações do compromisso. */
.map-card.interactive-map.satellite-map-card{
  position:relative;
  height:430px;
  overflow:hidden;
  background:#0b1d2d;
  border:1px solid #d4dee8;
}
.satellite-map-canvas{
  position:absolute;
  z-index:1;
  inset:0 0 92px;
  background:#102536;
}
.satellite-map-card .leaflet-container{
  font-family:'Montserrat',sans-serif;
  background:#102536;
}
.satellite-map-card .leaflet-control-zoom{display:none}
.satellite-map-card .leaflet-control-attribution{
  margin:0 7px 6px 0!important;
  padding:3px 6px!important;
  border-radius:5px 0 0 0;
  background:rgba(0,20,40,.70)!important;
  color:#fff!important;
  font-size:7px!important;
  backdrop-filter:blur(4px);
}
.satellite-map-card .leaflet-control-attribution a{color:#ffe45b!important}
.satellite-map-card .map-toolbar{z-index:950;top:14px;right:14px}
.satellite-map-card .map-source-badge{z-index:950}
.satellite-map-card .map-info{z-index:950}
.satellite-map-card .map-control{
  border-color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(0,0,0,.20);
}
.satellite-map-card .map-control:hover{background:#0a9639;border-color:#0a9639}
.satellite-badge{background:rgba(255,255,255,.94)}

/* Marcador de cidade sobre o satélite */
.leaflet-div-icon.campaign-city-marker,
.leaflet-div-icon.campaign-car-marker{
  background:transparent;
  border:0;
}
.campaign-map-pin{
  position:relative;
  width:30px;
  height:38px;
  transform:translate(-1px,-2px);
  filter:drop-shadow(0 5px 6px rgba(0,0,0,.38));
}
.campaign-map-pin .marker-shape{
  position:absolute;
  left:3px;
  top:1px;
  width:24px;
  height:24px;
  border:3px solid #fff;
  border-radius:50% 50% 50% 7px;
  background:#0a9639;
  transform:rotate(-45deg);
  transition:.22s ease;
}
.campaign-map-pin .marker-shape:after{
  content:'';
  position:absolute;
  left:50%;top:50%;
  width:7px;height:7px;
  border-radius:50%;
  background:#f4da00;
  transform:translate(-50%,-50%);
}
.campaign-map-pin .marker-label{
  position:absolute;
  left:50%;top:31px;
  transform:translateX(-50%);
  padding:4px 7px;
  border-radius:6px;
  background:rgba(0,34,82,.90);
  border:1px solid rgba(255,255,255,.58);
  color:#fff;
  font-size:8px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  opacity:.96;
  box-shadow:0 4px 10px rgba(0,0,0,.22);
}
.campaign-map-pin.is-active .marker-shape{
  background:#00368e;
  transform:rotate(-45deg) scale(1.16);
  box-shadow:0 0 0 5px rgba(244,218,0,.25);
}
.campaign-map-pin.is-active .marker-label{background:#0a9639}

/* Carrinho verde que percorre a rota entre os compromissos */
.campaign-map-car{
  position:relative;
  width:48px;
  height:34px;
  transform-origin:center;
  filter:drop-shadow(0 7px 8px rgba(0,0,0,.42));
}
.campaign-map-car svg{width:48px;height:34px;display:block;overflow:visible}
.campaign-map-car.is-driving{animation:leafletCarBounce .28s ease-in-out infinite alternate}
@keyframes leafletCarBounce{from{transform:translateY(0)}to{transform:translateY(-2px)}}

/* Limite oficial do MT sobre a imagem de satélite */
.mt-state-boundary{
  filter:drop-shadow(0 0 2px rgba(0,0,0,.7));
}

.satellite-map-fallback{
  position:absolute;
  z-index:4;
  inset:0 0 92px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:12px;
  padding:25px;
  background:linear-gradient(145deg,#eef4f7,#fff);
  color:#36516e;
  text-align:center;
}
.satellite-map-fallback[hidden]{display:none!important}
.satellite-map-fallback img{width:min(70%,320px);max-height:230px}
.satellite-map-fallback p{max-width:360px;margin:0;font-size:10px;font-weight:700}

@media (max-width:760px){
  .map-card.interactive-map.satellite-map-card{height:440px}
  .satellite-map-canvas,.satellite-map-fallback{inset:42px 0 108px}
  .satellite-map-card .map-toolbar{top:8px;right:9px}
  .satellite-map-card .map-source-badge{top:8px;left:9px;max-width:185px}
  .campaign-map-pin .marker-label{font-size:7.5px;padding:4px 5px}
  .campaign-map-car,.campaign-map-car svg{width:42px;height:30px}
}

@media (max-width:480px){
  .map-card.interactive-map.satellite-map-card{height:420px}
  .satellite-map-canvas,.satellite-map-fallback{inset:41px 0 112px}
  .campaign-map-pin .marker-label{display:none}
  .campaign-map-car,.campaign-map-car svg{width:38px;height:27px}
}

@media (prefers-reduced-motion:reduce){
  .campaign-map-car.is-driving{animation:none!important}
  .leaflet-fly-anim .leaflet-zoom-animated{transition:none!important}
}

/* =========================================================
   V11 — refinamentos de responsividade e legibilidade
   ========================================================= */
@media (max-width:760px){
  .footer h3{font-size:11px;line-height:1.3;margin-bottom:7px}
  .footer a,.footer p{font-size:9.5px;line-height:1.55}
  .footer-bottom,.footer-bottom a,.footer-legal-link{font-size:8.8px;line-height:1.45}
  .campaign-legal{font-size:9.4px;line-height:1.55}
  .contact-intro p{font-size:10px;line-height:1.6}
  .agenda-list{gap:9px}
  .agenda-item{border-radius:8px;box-shadow:0 4px 14px rgba(0,35,84,.05)}
  .agenda-text h3{font-size:10.5px}
  .agenda-text p{font-size:8.8px;line-height:1.4}
}
@media (max-width:480px){
  .hero{min-height:650px}
  .hero-grid{padding-top:96px}
  .hero h1{letter-spacing:-2px}
  .hero h1 span{font-size:clamp(44px,14vw,54px)}
  .hero h1 strong{font-size:clamp(40px,12.5vw,49px)}
  .role{font-size:10px;letter-spacing:2.6px;gap:7px}
  .number b,.number strong{font-size:48px}
  .footer-grid{gap:18px}
  .footer-brand .footer-logo{height:76px}
  .campaign-legal{font-size:9px}
  .footer-bottom{gap:8px}
  .footer-legal-actions{justify-content:flex-start}
  .map-card.interactive-map.satellite-map-card{height:440px}
}

/* V12 — vídeo com capa/modal + player do jingle */
.video-card-trigger{appearance:none;border:1.4px solid rgba(255,255,255,.72);padding:0;cursor:pointer;color:#fff;text-align:left;background:#062f71;isolation:isolate}
.video-card-trigger:disabled{cursor:default;opacity:.82}
.video-poster-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;transition:transform .45s ease,filter .35s ease}
.video-poster-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(0,33,82,.62),rgba(0,31,75,.26) 54%,rgba(0,28,68,.64))}
.video-card-trigger:not(:disabled):hover .video-poster-image{transform:scale(1.035);filter:saturate(1.08)}
.video-card-trigger .video-play{position:relative;z-index:2;width:50px;height:50px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(8px);box-shadow:0 8px 25px rgba(0,0,0,.2);transition:transform .2s ease,background .2s ease}
.video-card-trigger:not(:disabled):hover .video-play{transform:scale(1.08);background:rgba(13,144,62,.82)}
.video-card-caption{position:absolute;left:14px;bottom:10px;display:grid;gap:1px;z-index:2;text-shadow:0 1px 5px rgba(0,0,0,.35)}
.video-card-caption b{font-size:8px;text-transform:uppercase;letter-spacing:.25px}
.video-card-caption small{font-size:6.5px;opacity:.82}
.media-dialog{border:0;padding:0;background:transparent;width:min(1040px,calc(100% - 26px));max-width:none;color:#fff}
.media-dialog::backdrop{background:rgba(0,17,43,.82);backdrop-filter:blur(8px)}
.media-dialog-shell{overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:20px;background:#021c47;box-shadow:0 30px 90px rgba(0,0,0,.48)}
.media-dialog-head{min-height:72px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(110deg,#00368e,#075d65)}
.media-dialog-head span{display:block;text-transform:uppercase;font-size:9px;letter-spacing:1.2px;font-weight:900;color:#f4da00}.media-dialog-head h2{font-size:17px;margin:3px 0 0}
.media-dialog-close{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.08);color:#fff;font-size:24px;cursor:pointer}
.media-dialog-stage{background:#000;aspect-ratio:16/9;display:grid;place-items:center}.media-dialog-stage video,.media-dialog-stage iframe{width:100%;height:100%;border:0;display:block;background:#000}
.jingle-player{position:fixed;left:18px;bottom:18px;z-index:180;display:grid;grid-template-columns:44px minmax(0,220px) 28px;align-items:center;gap:9px;min-height:62px;padding:8px 9px;border-radius:16px;background:linear-gradient(120deg,rgba(0,54,142,.96),rgba(0,104,73,.96));color:#fff;box-shadow:0 15px 40px rgba(0,39,99,.28);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);transition:transform .25s ease,width .25s ease}
.jingle-toggle{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:#08a948;color:#fff;display:grid;place-items:center;cursor:pointer;font-size:15px;box-shadow:0 0 0 6px rgba(8,169,72,.11)}
.jingle-player.is-playing .jingle-toggle{animation:jinglePulse 1.8s infinite}.jingle-copy{min-width:0;display:grid}.jingle-copy small{font-size:7px;text-transform:uppercase;font-weight:900;letter-spacing:.7px;color:#f4da00}.jingle-copy b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jingle-copy span{font-size:7px;opacity:.75;margin-top:2px}.jingle-minimize{width:28px;height:28px;border:0;border-radius:8px;background:rgba(255,255,255,.11);color:#fff;cursor:pointer}.jingle-player.is-minimized{grid-template-columns:44px;padding:8px;width:62px}.jingle-player.is-minimized .jingle-copy,.jingle-player.is-minimized .jingle-minimize{display:none}
@keyframes jinglePulse{50%{box-shadow:0 0 0 11px rgba(8,169,72,0)}}
@media(min-width:1100px){.video-card-caption b{font-size:11px}.video-card-caption small{font-size:8px}.video-card-trigger .video-play{width:58px;height:58px;font-size:22px}.media-dialog-head{min-height:80px;padding-inline:24px}.media-dialog-head h2{font-size:21px}.jingle-player{left:24px;bottom:24px;grid-template-columns:50px minmax(0,250px) 30px;min-height:70px}.jingle-toggle{width:50px;height:50px}.jingle-copy b{font-size:11px}.jingle-copy small,.jingle-copy span{font-size:8px}}
@media(max-width:760px){.media-dialog{width:calc(100% - 18px)}.media-dialog-shell{border-radius:15px}.media-dialog-head{min-height:64px;padding:11px 13px}.media-dialog-head h2{font-size:14px}.media-dialog-stage{aspect-ratio:16/10}.jingle-player{left:10px;right:10px;bottom:10px;grid-template-columns:42px minmax(0,1fr) 28px;min-height:58px;border-radius:14px}.jingle-toggle{width:42px;height:42px}.jingle-copy b{font-size:9px}.jingle-player.is-minimized{right:auto;width:58px;grid-template-columns:42px}.video-card-caption b{font-size:9px}.video-card-caption small{font-size:7px}}
.legal-rich-text{max-width:590px;margin:0 auto;text-align:left;color:#465a73;font-size:12.5px;line-height:1.72;white-space:normal}.legal-rich-text br+br{line-height:2.15}.legal-dialog-body .legal-placeholder-icon{margin-bottom:18px}@media(max-width:760px){.legal-rich-text{font-size:11.5px;line-height:1.68}}

/* ============================================================
   V13 — cards de propostas reorganizados e mais responsivos
   ============================================================ */
.proposal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.proposal-card{
  position:relative;
  height:auto!important;
  min-height:150px;
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  align-items:start;
  gap:14px;
  padding:20px 48px 20px 18px;
  overflow:hidden;
}
.proposal-card>div:nth-child(2){min-width:0;align-self:start}
.proposal-card h3{
  margin:1px 0 8px;
  font-size:14px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.proposal-card p{
  margin:0;
  font-size:11.5px;
  line-height:1.55;
  color:#53667d;
  overflow-wrap:anywhere;
}
.proposal-card .proposal-icon{width:58px;height:58px;align-self:start}
.proposal-card .arrow{
  position:absolute;
  right:17px;
  bottom:16px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#edf8f1;
  color:#078c3d;
  font-size:19px;
  line-height:1;
}
.proposal-card:hover .arrow{background:#078c3d;color:#fff;transform:translateX(2px)}

@media(max-width:980px){
  .proposal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proposal-card{min-height:145px}
}
@media(max-width:620px){
  .proposal-grid{grid-template-columns:1fr;gap:12px}
  .proposal-card{min-height:132px;grid-template-columns:52px minmax(0,1fr);padding:17px 44px 17px 15px;gap:12px}
  .proposal-card .proposal-icon{width:50px;height:50px}
  .proposal-card h3{font-size:13.5px}
  .proposal-card p{font-size:11px}
  .proposal-card .arrow{right:13px;bottom:13px;width:28px;height:28px}
}


/* V21 mobile jingle adjustments */
@media (max-width: 900px){
  .jingle-player{left:12px!important;right:12px!important;bottom:84px!important;grid-template-columns:46px minmax(0,1fr) 28px!important;min-height:66px!important;padding:10px 10px!important;border-radius:18px!important;gap:10px!important}
  .jingle-toggle{width:46px!important;height:46px!important;font-size:16px!important}
  .jingle-copy small{font-size:9px!important;letter-spacing:.8px!important}
  .jingle-copy b{font-size:13px!important;line-height:1.2!important}
  .jingle-copy span{font-size:11px!important;line-height:1.2!important;margin-top:3px!important}
  .jingle-minimize{width:28px!important;height:28px!important;border-radius:9px!important}
  .jingle-player.is-minimized{width:66px!important;right:auto!important;bottom:84px!important}
}
@media (max-width: 520px){
  .jingle-player{left:10px!important;right:10px!important;bottom:90px!important;min-height:62px!important;padding:9px!important;grid-template-columns:42px minmax(0,1fr) 26px!important}
  .jingle-toggle{width:42px!important;height:42px!important;font-size:15px!important}
  .jingle-copy small{font-size:8px!important}
  .jingle-copy b{font-size:12px!important}
  .jingle-copy span{font-size:10px!important}
  .jingle-minimize{width:26px!important;height:26px!important}
  .jingle-player.is-minimized{width:60px!important}
}
