.soexpress-map-section{--sox-accent:#165DFF;position:relative;font-family:'Montserrat',Arial,sans-serif}.soexpress-map-heading{max-width:780px;margin:0 auto 28px;text-align:center}.soexpress-map-eyebrow{display:inline-block;color:var(--sox-accent);font-size:11px;font-weight:800;letter-spacing:.16em;margin-bottom:8px}.soexpress-map-heading h2{font-size:clamp(28px,4vw,46px);line-height:1.08;margin:0 0 12px;color:#11233e}.soexpress-map-heading p{font-size:16px;line-height:1.65;color:#68778d;margin:0}.soexpress-map-shell{position:relative;border-radius:26px;background:#fff;border:1px solid #e6edf6;box-shadow:0 20px 60px rgba(26,48,82,.10);overflow:hidden}.soexpress-map-canvas{width:100%;background:#eef4f8;z-index:1}.soexpress-map-stats{position:absolute;top:20px;left:20px;z-index:500;display:flex;gap:8px}.soexpress-map-stats>div{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border:1px solid rgba(218,227,239,.95);border-radius:14px;min-width:88px;padding:10px 13px;box-shadow:0 8px 26px rgba(20,42,75,.09)}.soexpress-map-stats strong{display:block;font-size:19px;color:#10243f;line-height:1}.soexpress-map-stats span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#748197;margin-top:6px}.soexpress-map-legend{position:absolute;bottom:16px;left:16px;z-index:500;display:flex;gap:16px;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border:1px solid #e0e8f2;border-radius:12px;padding:9px 12px;font-size:11px;color:#5f6e83}.soexpress-map-legend span{display:flex;align-items:center;gap:6px}.sox-dot{width:10px;height:10px;border-radius:50%;background:var(--sox-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--sox-accent),transparent 80%)}.sox-area{width:13px;height:13px;border-radius:50%;border:1px solid var(--sox-accent);background:color-mix(in srgb,var(--sox-accent),transparent 90%)}.sox-map-marker-wrap{background:none!important;border:none!important}.sox-map-marker{width:34px;height:34px;display:block;position:relative}.sox-map-marker:before,.sox-map-marker:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--marker-color)}.sox-map-marker:before{animation:soxPulse 2s infinite;opacity:.25;inset:0}.sox-map-marker:after{box-shadow:0 4px 15px rgba(0,0,0,.2);border:3px solid #fff}.sox-map-marker i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2}@keyframes soxPulse{0%{transform:scale(.65);opacity:.36}70%{transform:scale(1.25);opacity:0}100%{transform:scale(.65);opacity:0}}.sox-leaflet-popup .leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 18px 44px rgba(18,39,70,.18)}.sox-leaflet-popup .leaflet-popup-content{margin:18px 18px 16px}.sox-map-popup>span{display:block;color:var(--sox-accent);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:10px}.sox-map-popup h4{font-size:18px;margin:5px 0 7px;color:#10243f}.sox-map-popup p{font-size:13px;line-height:1.55;color:#66758a;margin:0 0 10px}.sox-popup-link{display:inline-flex;align-items:center;gap:6px;color:var(--sox-accent)!important;font-weight:800;text-decoration:none!important}.soexpress-map-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.soexpress-map-location-card{display:grid;grid-template-columns:42px 1fr;gap:13px;border:1px solid #e6edf5;border-radius:16px;background:#fff;padding:16px;cursor:pointer;transition:.25s ease}.soexpress-map-location-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--sox-accent),#fff 65%);box-shadow:0 12px 28px rgba(23,55,97,.08)}.sox-location-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--sox-accent),#fff 91%);color:var(--sox-accent);font-size:18px;font-weight:800}.soexpress-map-location-card span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--sox-accent)}.soexpress-map-location-card h3{font-size:15px;margin:4px 0 4px;color:#162842}.soexpress-map-location-card p{font-size:12px;line-height:1.45;color:#758298;margin:0}.soexpress-map-attribution{text-align:right;font-size:10px;color:#8793a5;margin-top:8px}.soexpress-map-section .leaflet-control-zoom a{color:#17365f!important}.soexpress-map-section .leaflet-container,.soexpress-map-section .leaflet-popup-content,.soexpress-map-section .leaflet-tooltip{font-family:'Montserrat',Arial,sans-serif}@media(max-width:900px){.soexpress-map-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.soexpress-map-stats{position:relative;top:auto;left:auto;z-index:2;padding:12px;background:#fff}.soexpress-map-stats>div{flex:1;box-shadow:none;text-align:center;min-width:0}.soexpress-map-legend{bottom:10px;left:10px;right:10px;justify-content:center;gap:10px}.soexpress-map-list{grid-template-columns:1fr}.soexpress-map-heading{text-align:left}.soexpress-map-shell{border-radius:18px}}

/* SOEXPRESS v1.1 — animation layer */
.soexpress-map-section.sox-animate .soexpress-map-heading{opacity:0;transform:translateY(14px)}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-heading{animation:soxHeadingReveal .65s cubic-bezier(.22,.8,.26,1) forwards}
.soexpress-map-section.sox-animate .soexpress-map-shell{opacity:0;transform:translateY(18px) scale(.992)}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-shell{animation:soxShellReveal .78s .08s cubic-bezier(.22,.8,.26,1) forwards}
.soexpress-map-section.sox-animate .soexpress-map-location-card{opacity:0;transform:translateY(12px)}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card{animation:soxCardReveal .5s cubic-bezier(.22,.8,.26,1) forwards}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(1){animation-delay:.18s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(2){animation-delay:.24s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(3){animation-delay:.30s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(4){animation-delay:.36s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(5){animation-delay:.42s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-location-card:nth-child(n+6){animation-delay:.48s}

.sox-map-marker{width:38px;height:38px;display:block;position:relative;transform-origin:center;will-change:transform,opacity;transition:transform .24s ease,filter .24s ease}
.sox-map-marker:before,.sox-map-marker:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.sox-map-marker:before{inset:0;background:var(--marker-color);opacity:.18;animation:soxPulse 2.25s infinite ease-out;animation-delay:var(--sox-delay,0ms)}
.sox-map-marker:after{inset:8px;background:var(--marker-color);border:3px solid #fff;box-shadow:0 5px 17px rgba(0,0,0,.22)}
.sox-map-marker i{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;box-shadow:0 0 0 0 rgba(255,255,255,.65);animation:soxInnerBlink 2.25s infinite;animation-delay:var(--sox-delay,0ms)}
.sox-marker-wave{position:absolute;inset:4px;border:1px solid color-mix(in srgb,var(--marker-color),transparent 30%);border-radius:50%;opacity:0;z-index:1;animation:soxWave 3.4s infinite ease-out;animation-delay:calc(var(--sox-delay,0ms) + 550ms);pointer-events:none}
.soexpress-map-section.sox-animate .sox-map-marker{opacity:0;transform:scale(.45)}
.soexpress-map-section.sox-animate.sox-animation-started .sox-map-marker{animation:soxMarkerReveal .52s cubic-bezier(.18,.9,.28,1.35) forwards;animation-delay:var(--sox-delay,0ms)}
.sox-map-marker.is-hovered{transform:scale(1.18);filter:drop-shadow(0 7px 10px rgba(22,93,255,.18))}
.sox-map-marker.is-selected{transform:scale(1.22);filter:drop-shadow(0 7px 12px rgba(22,93,255,.23))}
.sox-map-marker.is-selected:before{animation-duration:1.25s;opacity:.24}
.sox-map-marker.is-selected .sox-marker-wave{animation-duration:1.9s}

.sox-coverage-circle{stroke-dasharray:8 9;stroke-linecap:round;will-change:stroke-dashoffset,opacity,fill-opacity;animation:soxCoverageDrift 7s linear infinite}
.soexpress-map-section.sox-animate .sox-coverage-circle{opacity:0}
.soexpress-map-section.sox-animate.sox-animation-started .sox-coverage-circle{animation:soxCoverageReveal .8s cubic-bezier(.22,.8,.26,1) forwards,soxCoverageDrift 7s .8s linear infinite;animation-delay:var(--sox-delay,0ms),calc(var(--sox-delay,0ms) + 800ms)}
.sox-coverage-state{stroke-dasharray:11 10}

.soexpress-map-location-card.is-selected{border-color:color-mix(in srgb,var(--sox-accent),#fff 35%);box-shadow:0 14px 34px rgba(23,55,97,.12);transform:translateY(-3px)}
.soexpress-map-location-card.is-selected .sox-location-icon{transform:rotate(45deg) scale(1.05);box-shadow:0 7px 18px color-mix(in srgb,var(--sox-accent),transparent 82%)}
.sox-location-icon{transition:transform .25s ease,box-shadow .25s ease}

.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-stats>div{animation:soxStatFloat 5s ease-in-out infinite}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-stats>div:nth-child(2){animation-delay:.45s}
.soexpress-map-section.sox-animate.sox-animation-started .soexpress-map-stats>div:nth-child(3){animation-delay:.9s}

@keyframes soxHeadingReveal{to{opacity:1;transform:translateY(0)}}
@keyframes soxShellReveal{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes soxCardReveal{to{opacity:1;transform:translateY(0)}}
@keyframes soxMarkerReveal{0%{opacity:0;transform:scale(.45)}70%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:scale(1)}}
@keyframes soxPulse{0%{transform:scale(.62);opacity:.32}68%{transform:scale(1.55);opacity:0}100%{transform:scale(1.55);opacity:0}}
@keyframes soxWave{0%{transform:scale(.7);opacity:.46}62%{opacity:.12}100%{transform:scale(1.85);opacity:0}}
@keyframes soxInnerBlink{0%,70%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.58)}78%{box-shadow:0 0 0 4px rgba(255,255,255,0)}}
@keyframes soxCoverageReveal{from{opacity:0;fill-opacity:0;stroke-dashoffset:30}to{opacity:.52;stroke-dashoffset:0}}
@keyframes soxCoverageDrift{to{stroke-dashoffset:-170}}
@keyframes soxStatFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

@media (prefers-reduced-motion:reduce){
  .soexpress-map-section *,.soexpress-map-section *:before,.soexpress-map-section *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .soexpress-map-section.sox-animate .soexpress-map-heading,.soexpress-map-section.sox-animate .soexpress-map-shell,.soexpress-map-section.sox-animate .soexpress-map-location-card,.soexpress-map-section.sox-animate .sox-map-marker,.soexpress-map-section.sox-animate .sox-coverage-circle{opacity:1!important;transform:none!important}
}

/* SOEXPRESS v1.2 — illustrated Brazil map */
.soexpress-map-shell{background:linear-gradient(145deg,#fbfdff 0%,#f4f8fc 52%,#eef5fb 100%)}
.soexpress-map-shell:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(circle at 72% 22%,color-mix(in srgb,var(--sox-accent),transparent 90%) 0,transparent 34%),radial-gradient(circle at 18% 78%,rgba(57,111,173,.07) 0,transparent 28%);mix-blend-mode:multiply}
.soexpress-map-canvas{position:relative;background-color:#f5f9fd;background-image:radial-gradient(circle at 1px 1px,rgba(27,64,108,.075) 1px,transparent 0);background-size:18px 18px}
.soexpress-map-canvas .leaflet-pane,.soexpress-map-canvas .leaflet-control{z-index:3}
.soexpress-map-canvas .leaflet-overlay-pane svg{overflow:visible}
.soexpress-map-canvas .leaflet-control-zoom{border:0!important;box-shadow:0 8px 24px rgba(26,48,82,.11)!important}
.soexpress-map-canvas .leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:34px!important;background:rgba(255,255,255,.92)!important;border-color:#e3ebf4!important}
.soexpress-map-canvas .leaflet-control-zoom a:first-child{border-radius:11px 11px 0 0!important}.soexpress-map-canvas .leaflet-control-zoom a:last-child{border-radius:0 0 11px 11px!important}
.sox-state-shape{transition:fill-opacity .22s ease,stroke-width .22s ease,filter .22s ease;filter:drop-shadow(0 2px 3px rgba(36,69,108,.045))}
.sox-state-shape.is-full-state{filter:drop-shadow(0 5px 10px color-mix(in srgb,var(--sox-accent),transparent 87%))}
.sox-state-shape.is-city-state{filter:drop-shadow(0 3px 7px color-mix(in srgb,var(--sox-accent),transparent 91%))}
.sox-state-label{background:transparent!important;border:0!important;box-shadow:none!important;color:#fff!important;font-weight:900!important;font-size:10px!important;letter-spacing:.08em!important;text-shadow:0 1px 4px rgba(16,36,63,.25)!important;text-align:center!important;pointer-events:none!important}
.sox-state-label:before{display:none!important}.sox-state-label span{display:block}.sox-state-label small{display:block;font-size:7px;line-height:1.1;margin-top:1px;letter-spacing:0;text-transform:none;font-weight:700;opacity:.82;white-space:nowrap}
.sox-route-line{stroke-linecap:round;animation:soxRouteFlow 8s linear infinite;animation-delay:var(--sox-route-delay,0ms)}
.soexpress-map-section.sox-animate .sox-route-line{opacity:0}.soexpress-map-section.sox-animate.sox-animation-started .sox-route-line{animation:soxRouteReveal .9s ease forwards,soxRouteFlow 8s 1s linear infinite;animation-delay:var(--sox-route-delay,0ms),calc(var(--sox-route-delay,0ms) + 900ms)}
.soexpress-map-legend{z-index:510}.soexpress-map-stats{z-index:510}
.soexpress-map-attribution{font-size:9px;opacity:.78}
@keyframes soxRouteFlow{to{stroke-dashoffset:-130}}
@keyframes soxRouteReveal{from{opacity:0;stroke-dashoffset:40}to{opacity:.18;stroke-dashoffset:0}}
@media(max-width:680px){.sox-state-label small{display:none}.sox-state-label{font-size:8px!important}.soexpress-map-canvas{background-size:14px 14px}}


/* SOEXPRESS v1.3 — Montserrat + persuasive invitation */
.soexpress-map-section,.soexpress-map-section button,.soexpress-map-section input,.soexpress-map-section select,.soexpress-map-section textarea{font-family:'Montserrat',Arial,sans-serif!important}
.soexpress-map-heading{max-width:900px}
.soexpress-map-heading h2{font-weight:800;letter-spacing:-.035em}
.soexpress-map-heading p{max-width:790px;margin-left:auto;margin-right:auto;font-weight:500}
.soexpress-map-eyebrow{font-weight:800}
.soexpress-map-invite{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:9px 14px;border:1px solid color-mix(in srgb,var(--sox-accent),#fff 73%);border-radius:999px;background:color-mix(in srgb,var(--sox-accent),#fff 94%);color:var(--sox-accent);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.soexpress-map-invite i{font-style:normal;font-size:15px;line-height:1;animation:soxInviteArrow 1.65s ease-in-out infinite}
@keyframes soxInviteArrow{0%,100%{transform:translateY(-1px)}50%{transform:translateY(3px)}}
@media(max-width:680px){.soexpress-map-heading p{margin-left:0;margin-right:0}.soexpress-map-invite{font-size:10px}}
@media(prefers-reduced-motion:reduce){.soexpress-map-invite i{animation:none!important}}
