/* Mapa interativo e diretório Odous de Deus */
/* Mapa e diretório de distribuidores */
.distributor-explorer { display:grid; grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr); gap:18px; align-items:stretch; }
.dist-map-panel,.dist-directory-panel { min-width:0; padding:clamp(20px,2.5vw,30px); border:1px solid var(--line); border-radius:var(--r-xl); background:var(--surface); box-shadow:var(--shadow-sm); }
.dist-map-panel { display:flex; flex-direction:column; overflow:hidden; background:linear-gradient(145deg,#10172f 0%,#17204a 58%,#202d69 100%); color:#fff; border-color:rgba(255,255,255,.08); }
.dist-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.dist-panel-heading h3 { margin:5px 0 0; font-family:var(--font-display); font-size:clamp(18px,2vw,23px); line-height:1.2; letter-spacing:-.025em; }
.dist-panel-kicker { color:var(--brand); font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.dist-map-panel .dist-panel-kicker { color:#c5cafa; }
.dist-map-total { display:inline-flex; align-items:center; gap:5px; padding:7px 10px; border:1px solid rgba(255,255,255,.13); border-radius:var(--r-pill); color:rgba(255,255,255,.75); font-size:11px; white-space:nowrap; }
.dist-map-total b { color:#fff; }
.dist-map-instruction { margin:10px 0 0; color:rgba(255,255,255,.66); font-size:12px; line-height:1.5; }
.dist-map-stage { position:relative; display:grid; place-items:center; flex:1; min-height:310px; padding:6px 0; }
.dist-map-svg { display:block; width:min(100%,390px); height:auto; max-height:430px; overflow:hidden; cursor:grab; touch-action:none; }
.dist-map-svg:active { cursor:grabbing; }
.dist-map-reset { position:absolute; z-index:3; top:8px; left:8px; padding:8px 12px; border:1px solid rgba(255,255,255,.28); border-radius:99px; background:#263275; color:#fff; font-size:11px; font-weight:700; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.2); }
.dist-map-reset[hidden],.dist-map-tooltip[hidden] { display:none; }
.dist-map-reset:hover,.dist-map-reset:focus-visible { background:#394aa1; }
.dist-map-tooltip { position:absolute; z-index:4; transform:translate(-50%,-115%); max-width:200px; padding:7px 10px; border:1px solid rgba(255,255,255,.2); border-radius:9px; background:#0c1433; color:#fff; box-shadow:0 8px 20px rgba(0,0,0,.25); font-size:11px; font-weight:700; line-height:1.4; text-align:center; pointer-events:none; }
.dist-city-point { display:none; cursor:pointer; }
.dist-city-point.is-visible { display:block; }
.dist-city-leader { stroke:rgba(255,215,106,.6); stroke-width:.9; stroke-dasharray:2 1.5; pointer-events:none; }
.dist-city-halo { fill:rgba(255,205,83,.2); stroke:rgba(255,213,98,.45); stroke-width:.9; pointer-events:none; animation:dist-point-pulse 2.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
.dist-city-core { fill:#ffcf53; stroke:#fff; stroke-width:.8; filter:drop-shadow(0 1px 4px rgba(0,0,0,.7)); }
.dist-city-point:hover .dist-city-halo,.dist-city-point:focus-visible .dist-city-halo { fill:rgba(255,205,83,.5); stroke:#fff; }
.dist-city-point:hover .dist-city-core,.dist-city-point:focus-visible .dist-city-core { fill:#fff; }
@keyframes dist-point-pulse { 50% { opacity:.55; transform:scale(1.22); } }
.dist-map-state { cursor:pointer; outline:none; }
.dist-map-state path { fill:rgba(220,226,255,.14); stroke:rgba(255,255,255,.48); stroke-width:.7; vector-effect:non-scaling-stroke; transition:fill .18s ease,stroke .18s ease,filter .18s ease; }
.dist-map-state[data-count]:not([data-count="0"]) path { fill:#5e68c7; }
.dist-map-state[data-count]:not([data-count="0"]):hover path,.dist-map-state[data-count]:not([data-count="0"]):focus path { fill:#8790f0; filter:drop-shadow(0 0 4px rgba(183,190,255,.55)); }
.dist-map-state:hover path,.dist-map-state:focus path { fill:rgba(174,186,255,.7); }
.dist-map-state.is-selected path { fill:#f1c85b!important; stroke:#fff!important; stroke-width:1.6; filter:drop-shadow(0 0 5px rgba(241,200,91,.6)); }
.dist-map-state text { pointer-events:none; fill:#fff; font-family:var(--font-display); font-size:7px; font-weight:800; text-anchor:middle; dominant-baseline:central; text-shadow:0 1px 3px rgba(12,18,47,.8); }
.dist-map-legend { display:flex; flex-wrap:wrap; gap:10px 18px; padding:12px 0; border-top:1px solid rgba(255,255,255,.13); color:rgba(255,255,255,.74); font-size:10px; }
.dist-map-legend span { display:inline-flex; align-items:center; gap:7px; }
.dist-map-legend i { display:inline-block; width:10px; height:10px; border:1px solid rgba(255,255,255,.55); border-radius:3px; background:rgba(220,226,255,.14); }
.dist-map-legend i.has-distributors { border-color:#858de7; background:#5e68c7; }
.dist-map-note { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 13px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(255,255,255,.06); font-size:11px; }
.dist-map-note b { color:#fff; }
.dist-map-note span { color:rgba(255,255,255,.65); text-align:right; }
.dist-list-heading { margin-bottom:16px; }
.dist-result-count { display:grid; place-items:center; min-width:38px; height:38px; padding:0 10px; border-radius:13px; background:var(--brand-tint); color:var(--brand); font-size:14px; font-weight:800; }
.dist-search { display:flex; align-items:center; gap:10px; min-height:48px; padding:0 13px; border:1px solid var(--line); border-radius:15px; background:var(--bg-sunken); }
.dist-search:focus-within { border-color:var(--brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent); }
.dist-search svg { width:18px; height:18px; flex:none; fill:none; stroke:var(--muted); stroke-width:1.8; }
.dist-search input { width:100%; min-width:0; padding:0; border:0; outline:0; background:transparent; color:var(--text); font:inherit; font-size:12px; }
.dist-search input::placeholder { color:var(--muted); }
.dist-search button { padding:6px 9px; border:0; border-radius:var(--r-pill); background:var(--brand-tint); color:var(--brand); font:inherit; font-size:10px; font-weight:700; cursor:pointer; }
.dist-results-meta { margin:11px 0 10px; color:var(--muted); font-size:11px; }
.dist-state-list { display:grid; gap:8px; max-height:510px; overflow:auto; padding:1px 3px 1px 1px; scrollbar-color:var(--brand-tint) transparent; scrollbar-width:thin; }
.dist-state-item { border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden; }
.dist-state-item[hidden] { display:none; }
.dist-state-item > summary { display:flex; align-items:center; gap:11px; min-height:62px; padding:10px 13px; list-style:none; cursor:pointer; }
.dist-state-item > summary::-webkit-details-marker { display:none; }
.dist-state-item > summary:hover { background:var(--bg-sunken); }
.dist-uf-badge { display:grid; place-items:center; width:38px; height:38px; flex:none; border-radius:12px; color:var(--brand); background:var(--brand-tint); font-size:11px; font-weight:800; }
.dist-state-title { display:grid; gap:3px; flex:1; min-width:0; }
.dist-state-title b { font-size:13px; }
.dist-state-title small { color:var(--muted); font-size:10px; }
.dist-state-total { display:grid; justify-items:end; gap:1px; color:var(--text); font-size:13px; font-weight:800; }
.dist-state-total small { color:var(--muted); font-size:9px; font-weight:500; }
.dist-chevron { width:8px; height:8px; margin:0 3px 4px 8px; border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted); transform:rotate(45deg); transition:transform .18s ease; }
.dist-state-item[open] > summary .dist-chevron { margin-bottom:-4px; transform:rotate(225deg); }
.dist-cities { padding:2px 13px 14px; border-top:1px solid var(--line); }
.dist-city-group + .dist-city-group { margin-top:15px; }
.dist-city-group h4 { margin:14px 0 8px; color:var(--brand); font-size:11px; letter-spacing:.04em; }
.dist-city-group.is-focused { border-radius:12px; outline:2px solid #d6a622; outline-offset:5px; }
@media(prefers-reduced-motion:reduce) { .dist-city-halo { animation:none; } }
.dist-dealer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dist-dealer-card { display:grid; align-content:start; gap:5px; min-width:0; padding:11px; border:1px solid var(--line); border-radius:12px; background:var(--bg-sunken); }
.dist-dealer-card > b { font-size:11px; line-height:1.35; }
.dist-dealer-card > span { color:var(--muted); font-size:10px; }
.dist-dealer-phones { display:flex; flex-wrap:wrap; gap:6px; padding-top:3px; }
.dist-dealer-phones a,.dist-dealer-phones > span { color:var(--brand); font-size:10px; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.dist-empty { display:grid; justify-items:center; gap:7px; padding:36px 14px; border:1px dashed var(--line); border-radius:14px; text-align:center; }
.dist-empty[hidden] { display:none; }
.dist-empty > span { color:var(--brand); font-size:26px; }
.dist-empty b { font-size:13px; }
.dist-empty p { max-width:32ch; margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
@media(max-width:900px) { .distributor-explorer { grid-template-columns:1fr; } .dist-map-svg { max-width:330px; } .dist-state-list { max-height:560px; } }
@media(max-width:560px) { .dist-map-panel,.dist-directory-panel { padding:18px 15px; border-radius:var(--r-lg); } .dist-map-stage { min-height:260px; } .dist-map-svg { max-width:290px; } .dist-dealer-grid { grid-template-columns:1fr; } .dist-map-note { align-items:flex-start; flex-direction:column; } .dist-map-note span { text-align:left; } }

/* Cabeçalho compacto e busca colocada junto ao início do explorador. */
.institutional-hero.distributor-hero { min-height:190px; gap:12px; padding:clamp(22px,2.5vw,32px) clamp(25px,4.2vw,62px); }
.distributor-hero .institutional-hero-copy { max-width:820px; }
.distributor-hero .institutional-hero h1 { max-width:800px; margin:12px 0 8px; font-size:clamp(32px,3.6vw,44px); }
.distributor-hero .institutional-hero-copy>p { max-width:660px; font-size:14px; line-height:1.55; }
.distributor-hero .institutional-actions,.distributor-hero .institutional-hero-stats { display:none; }
.distributor-directory { padding-top:clamp(27px,3.5vw,42px); }
.dist-section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,.72fr); column-gap:38px; align-items:end; max-width:none; margin-bottom:20px; }
.dist-section-heading>.institutional-kicker { grid-column:1/-1; }
.dist-section-heading h2 { grid-column:1; margin-bottom:6px; }
.dist-section-heading p { grid-column:1; max-width:600px; font-size:13px; }
.dist-section-heading .dist-search { grid-column:2; grid-row:2/4; min-height:56px; margin-bottom:3px; padding:0 17px; border-radius:17px; background:var(--surface); box-shadow:0 8px 24px rgba(20,31,73,.07); }
.dist-section-heading .dist-search input { font-size:13px; }
.distributor-explorer { grid-template-columns:minmax(0,1.08fr) minmax(370px,.92fr); gap:16px; }
.dist-map-panel { position:relative; isolation:isolate; min-height:590px; border-radius:26px; background:radial-gradient(ellipse at 72% 42%,rgba(89,107,218,.28),transparent 42%),linear-gradient(145deg,#0b1531 0%,#101d46 54%,#202965 100%); }
.dist-map-panel::before { content:""; position:absolute; z-index:0; inset:0; border-radius:inherit; background-image:radial-gradient(circle,rgba(255,255,255,.2) 1px,transparent 1.6px),radial-gradient(circle,rgba(237,200,94,.3) 1px,transparent 1.8px); background-size:31px 31px,83px 83px; background-position:0 0,21px 14px; opacity:.34; mask-image:linear-gradient(125deg,transparent 5%,#000 48%,transparent 100%); animation:dist-particles-drift 24s linear infinite; pointer-events:none; }
.dist-map-panel::after { content:""; position:absolute; z-index:0; top:16%; right:-16%; width:68%; aspect-ratio:1; border:1px solid rgba(216,224,255,.09); border-radius:50%; box-shadow:0 0 0 28px rgba(216,224,255,.025),0 0 0 62px rgba(216,224,255,.02); animation:dist-orbit-breathe 7s ease-in-out infinite; pointer-events:none; }
.dist-map-panel>* { position:relative; z-index:1; }
.dist-map-panel .dist-panel-heading { align-items:flex-start; }
.dist-map-panel .dist-panel-heading h3 { font-size:clamp(21px,2.2vw,28px); }
.dist-map-total { background:rgba(255,255,255,.07); }
.dist-map-stage { min-height:370px; }
.dist-map-svg { width:min(100%,410px); max-height:470px; filter:drop-shadow(0 15px 20px rgba(2,7,24,.28)); }
.dist-map-state path { fill:rgba(188,201,255,.16); stroke:rgba(225,231,255,.5); transition:fill .3s ease,stroke .3s ease,filter .3s ease,transform .35s ease; transform-box:fill-box; transform-origin:center; }
.dist-map-state[data-count]:not([data-count="0"]) path { fill:#5465ba; }
.dist-map-state[data-count]:not([data-count="0"]):hover path,.dist-map-state[data-count]:not([data-count="0"]):focus path { fill:#8392ed; filter:drop-shadow(0 0 7px rgba(190,200,255,.65)); transform:scale(1.025); }
.dist-map-state.is-selected path { fill:#e9c65c!important; }
.dist-map-legend { padding-top:14px; }
.dist-map-note { min-height:49px; background:linear-gradient(100deg,rgba(255,255,255,.1),rgba(255,255,255,.045)); }
.dist-directory-panel { display:flex; flex-direction:column; min-height:590px; border-radius:26px; }
.dist-list-heading { margin-bottom:12px; }
.dist-state-list { max-height:480px; flex:1; align-content:start; grid-auto-rows:max-content; }
.dist-state-item { transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.dist-state-item:hover { transform:translateY(-1px); border-color:color-mix(in srgb,var(--brand) 28%,var(--line)); box-shadow:0 7px 18px rgba(20,31,73,.06); }
.dist-state-item[open] { border-color:color-mix(in srgb,var(--brand) 35%,var(--line)); box-shadow:0 8px 22px rgba(20,31,73,.08); }
.dist-uf-badge { border-radius:13px; transition:background .2s ease,color .2s ease; }
.dist-state-item[open] .dist-uf-badge { background:var(--brand); color:var(--on-brand,#fff); }
@keyframes dist-particles-drift { to { background-position:75px 55px,-61px 90px; } }
@keyframes dist-orbit-breathe { 50% { transform:scale(1.06); opacity:.55; } }
@media(max-width:900px) {
  .institutional-hero.distributor-hero { min-height:0; }
  .dist-section-heading { grid-template-columns:1fr; gap:9px; }
  .dist-section-heading>.institutional-kicker,.dist-section-heading h2,.dist-section-heading p,.dist-section-heading .dist-search { grid-column:1; grid-row:auto; }
  .dist-section-heading .dist-search { margin-top:8px; }
  .distributor-explorer { grid-template-columns:1fr; }
  .dist-map-panel,.dist-directory-panel { min-height:0; }
  .dist-state-list { max-height:460px; }
}
@media(max-width:560px) {
  .institutional-hero.distributor-hero { min-height:0; gap:12px; padding:24px 19px; }
  .distributor-hero .institutional-hero h1 { margin-top:10px; font-size:clamp(31px,8vw,40px); }
  .distributor-hero .institutional-hero-copy>p { font-size:13px; }
  .distributor-hero .institutional-hero-stats { gap:12px 22px; }
  .dist-section-heading { padding-inline:2px; }
  .dist-section-heading h2 { font-size:25px; }
  .dist-section-heading p { font-size:12px; }
  .dist-map-panel { min-height:0; }
  .dist-map-stage { min-height:285px; }
}
@media(prefers-reduced-motion:reduce) { .dist-map-panel::before,.dist-map-panel::after { animation:none; } }
