/* Mavvi · "Explore o mundo Mavvi" — seção, mapa, painel e barra de perfil.
   Paleta oficial: #0E382E verde · #8283AB lilás · #F5F3EF areia · #2B2A30 grafite. Fonte: Satoshi. */
.mm,.mm-panel{--mv:#0E382E;--ml:#8283AB;--ma:#F5F3EF;--mg:#2B2A30;}
.mm{--mline:rgba(14,56,46,.14);font-family:"Satoshi",system-ui,-apple-system,sans-serif;font-weight:400;color:var(--mg);background:var(--mv);position:relative;padding:88px 0 0;overflow:hidden}
.mm *{box-sizing:border-box}
.mm-wrap{width:min(1200px,calc(100% - 32px));margin-inline:auto}
.mm-head{color:var(--ma);max-width:720px}
.mm-eyebrow{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#C9CAE6;margin-bottom:14px;font-weight:500}
.mm h2{font-family:"Satoshi",system-ui,sans-serif;font-weight:300;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.08;letter-spacing:-.02em;color:#fff;margin:0 0 16px}
.mm h2 em{font-style:normal;color:#C9CAE6}
.mm-lead{color:rgba(245,243,239,.78);font-size:1.05rem;line-height:1.65;margin:0 0 28px}
.mm-stage{position:relative;margin-top:8px;border-radius:28px;background:radial-gradient(120% 90% at 50% 0%,#14493C 0%,#0E382E 60%);border:1px solid rgba(245,243,239,.10);min-height:260px}
.mm-poster{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:56px 20px;min-height:320px;color:var(--ma)}
.mm-poster p{margin:0;color:rgba(245,243,239,.7);font-size:.95rem;max-width:440px}
.mm-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 26px;border-radius:999px;border:0;font:500 .97rem/1 "Satoshi",system-ui,sans-serif;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}
.mm-btn:hover{transform:translateY(-1px)}
.mm-btn-light{background:var(--ma);color:var(--mv)}
.mm-btn-light:hover{background:#fff}
.mm-btn-green{background:var(--mv);color:#fff}
.mm-btn-green:hover{background:#155244}
.mm-btn-line{background:transparent;color:var(--mv);border:1.5px solid var(--mv)}
.mm :focus-visible{outline:3px solid #C9CAE6;outline-offset:3px;border-radius:10px}
.mm-map{position:relative;width:100%;aspect-ratio:1000/372}
.mm-map svg{display:block;width:100%;height:100%}
.mm-land{stroke:rgba(245,243,239,.28);stroke-width:3.3;stroke-linecap:round;fill:none}
.mm-arc{fill:none;stroke:#C9CAE6;stroke-width:1.2;stroke-dasharray:4 5;opacity:.55}
.mm-anim .mm-arc{animation:mmDash 2.6s linear infinite}
@keyframes mmDash{to{stroke-dashoffset:-18}}
.mm-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;background:none;border:0;padding:6px;cursor:pointer;color:#fff;font:500 .82rem/1 "Satoshi",system-ui,sans-serif;white-space:nowrap}
.mm-pin .dot{width:14px;height:14px;border-radius:50%;background:var(--ma);box-shadow:0 0 0 4px rgba(130,131,171,.45);flex:none;position:relative}
.mm-anim .mm-pin .dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #C9CAE6;animation:mmPulse 2.4s ease-out infinite}
@keyframes mmPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.mm-pin .lbl{background:rgba(14,56,46,.86);border:1px solid rgba(245,243,239,.22);padding:6px 10px;border-radius:999px}
.mm-pin.left{flex-direction:row-reverse}
.mm-pin[aria-pressed=true] .dot{background:#C9CAE6;box-shadow:0 0 0 6px rgba(201,202,230,.35)}
.mm-pin[aria-pressed=true] .lbl{background:var(--ma);color:var(--mv)}
.mm-pin.dim{opacity:.35}
.mm-soon{position:absolute;transform:translate(-50%,-50%);background:none;border:0;padding:4px;cursor:pointer;color:rgba(245,243,239,.75);font:500 .66rem/1 "Satoshi",system-ui,sans-serif;white-space:nowrap}
.mm-soon .dot{display:block;width:9px;height:9px;border-radius:50%;border:1.5px dashed rgba(245,243,239,.8)}
.mm-soon .lbl{position:absolute;padding:3px 7px;border-radius:999px;background:rgba(14,56,46,.8);border:1px dashed rgba(245,243,239,.3)}
.mm-soon .lbl i{font-style:normal;opacity:.6}
.mm-soon.d-r .lbl{left:16px;top:50%;transform:translateY(-50%)}
.mm-soon.d-l .lbl{right:16px;top:50%;transform:translateY(-50%)}
.mm-soon.d-u .lbl{left:50%;bottom:16px;transform:translateX(-30%)}
.mm-soon.d-d .lbl{left:50%;top:16px;transform:translateX(-20%)}
.mm-soon[aria-pressed=true] .dot{background:#C9CAE6}
.mm-list{display:flex;flex-wrap:wrap;gap:10px;padding:18px 20px 22px;border-top:1px solid rgba(245,243,239,.08)}
.mm-chip{min-height:44px;padding:10px 18px;border-radius:999px;border:1px solid rgba(245,243,239,.28);background:transparent;color:var(--ma);font:500 .9rem/1 "Satoshi",system-ui,sans-serif;cursor:pointer}
.mm-chip[aria-pressed=true]{background:var(--ma);color:var(--mv)}
.mm-chip.soon{border-style:dashed;color:rgba(245,243,239,.7)}
.mm-chip.soon small{opacity:.65;font-size:.72rem;margin-left:4px}
.mm-chip.dim{opacity:.4}
@media (hover:hover){.mm-chip:not(.soon):hover{background:var(--ma);color:var(--mv)}}
/* Barra de perfil */
.mm-profile{position:sticky;bottom:12px;z-index:30;margin:22px auto 0;width:max-content;max-width:calc(100% - 16px);display:flex;align-items:center;gap:6px;padding:6px;background:rgba(245,243,239,.96);border-radius:999px;box-shadow:0 18px 40px rgba(0,0,0,.28);overflow-x:auto;scrollbar-width:none}
.mm-profile::-webkit-scrollbar{display:none}
.mm-profile .t{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ml);padding:0 8px 0 12px;white-space:nowrap}
.mm-profile button{min-height:40px;padding:9px 16px;border-radius:999px;border:0;background:transparent;color:var(--mv);font:500 .9rem/1 "Satoshi",system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.mm-profile button[aria-pressed=true]{background:var(--mv);color:#fff}
.mm-profile-note{color:rgba(245,243,239,.72);font-size:.86rem;text-align:center;margin:12px 0 0;min-height:1.3em}
.mm-bottom-pad{height:72px}
/* Painel */
.mm-scrim{position:fixed;inset:0;background:rgba(14,30,26,.42);z-index:900;opacity:0;transition:opacity .25s}
.mm-scrim.on{opacity:1}
.mm-panel{position:fixed;z-index:901;top:0;right:0;height:100%;width:min(480px,100%);background:var(--ma,#F5F3EF);color:#2B2A30;font-family:"Satoshi",system-ui,sans-serif;box-shadow:-24px 0 60px rgba(0,0,0,.25);transform:translateX(102%);transition:transform .35s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column}
.mm-panel.on{transform:none}
.mm-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:26px 26px 14px;border-bottom:1px solid rgba(14,56,46,.12)}
.mm-panel-head .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#8283AB;margin-bottom:6px}
.mm-panel h3{font-weight:300;font-size:2rem;line-height:1.1;margin:0;color:#0E382E;letter-spacing:-.01em}
.mm-x{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid rgba(14,56,46,.2);background:#fff;color:#0E382E;font-size:1.3rem;cursor:pointer}
.mm-panel-body{overflow-y:auto;padding:18px 26px 26px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mm-panel-body p{line-height:1.6;margin:0 0 14px;font-size:.96rem}
.mm-panel h4{font-weight:500;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#0E382E;margin:22px 0 10px}
.mm-visas{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.mm-visas li{background:#fff;border:1px solid rgba(14,56,46,.10);border-radius:14px;padding:12px 14px;transition:border-color .2s,box-shadow .2s}
.mm-visas li strong{display:block;font-weight:500;color:#0E382E}
.mm-visas li span{font-size:.88rem;color:#55545c;line-height:1.5}
.mm-visas li.hl{border-color:#8283AB;box-shadow:0 0 0 2px rgba(130,131,171,.25)}
.mm-visas li .tag{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#8283AB;border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.mm-note{font-size:.86rem;background:#fff;border-left:3px solid #8283AB;padding:10px 12px;border-radius:8px}
.mm-eco{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;list-style:none;margin:0;padding:0}
.mm-eco li{background:#fff;border:1px solid rgba(14,56,46,.10);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;min-height:86px}
.mm-eco .n{font-size:.68rem;color:#8283AB;letter-spacing:.06em}
.mm-eco .c{font-size:.84rem;font-weight:500;color:#0E382E;line-height:1.25}
.mm-eco .soon{font-size:.74rem;color:#8a8990;margin-top:auto}
.mm-eco img{max-height:34px;width:auto;max-width:100%;object-fit:contain;object-position:left;margin-top:auto}
.mm-eco .logos{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.mm-eco .logos img{max-height:28px;max-width:46%}
.mm-panel-foot{display:grid;gap:10px;padding:16px 26px calc(18px + env(safe-area-inset-bottom));border-top:1px solid rgba(14,56,46,.12);background:#F5F3EF}
.mm-panel-foot .mm-btn{width:100%}
.mm-panel a.mm-btn-green{color:#fff}.mm-panel a.mm-btn-line{color:#0E382E}
.mm-panel-foot small{font-size:.72rem;color:#6d6c73;line-height:1.45;text-align:center}
@media (max-width:760px){
  .mm{padding-top:64px}
  .mm-stage{border-radius:20px}
  .mm-pin .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .mm-pin{padding:12px}
  .mm-pin .dot{width:11px;height:11px}
  .mm-soon .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);padding:0;border:0}
  .mm-soon{padding:8px}
  .mm-panel{top:auto;bottom:0;height:min(86vh,100%);width:100%;border-radius:22px 22px 0 0;transform:translateY(102%);box-shadow:0 -20px 50px rgba(0,0,0,.25)}
  .mm-panel::before{content:"";display:block;width:44px;height:5px;border-radius:9px;background:rgba(14,56,46,.25);margin:10px auto 0}
  .mm-panel-head{padding:12px 20px 12px}
  .mm-panel h3{font-size:1.6rem}
  .mm-panel-body{padding:14px 20px 20px}
  .mm-panel-foot{grid-template-columns:1fr 1fr;padding:12px 20px calc(14px + env(safe-area-inset-bottom))}
  .mm-panel-foot small{grid-column:1/-1}
  .mm-profile{bottom:calc(10px + env(safe-area-inset-bottom))}
  .mm-profile .t{display:none}
  .mm-profile button{padding:9px 13px;font-size:.85rem}
}
@media (prefers-reduced-motion:reduce){
  .mm *,.mm-panel,.mm-scrim{animation:none!important;transition:none!important}
}
/* Europa é densa: rótulos dos "em breve" europeus aparecem no hover/foco (nomes também nos chips abaixo) */
.mm-soon.eu .lbl{opacity:0;pointer-events:none;transition:opacity .15s;z-index:3}
.mm-soon.eu:hover .lbl,.mm-soon.eu:focus-visible .lbl,.mm-soon.eu[aria-pressed=true] .lbl{opacity:1}
/* O ponto fica exatamente na coordenada; o rótulo é posicionado ao lado */
.mm-pin{display:block;padding:8px}
.mm-pin .lbl{position:absolute;top:50%;left:calc(100% + 2px);transform:translateY(-50%)}
.mm-pin.left .lbl{left:auto;right:calc(100% + 2px)}
.mm-pin .dot{display:block}
/* Parceiros (Opção A) + categorias "em breve" compactas no painel */
.mm-eco{grid-template-columns:1fr}
.mm-eco li{min-height:0}
.mm-eco .logos{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:8px;margin-top:4px}
.mm-eco .logos img{width:100%;height:auto;max-height:none;max-width:100%;aspect-ratio:2.5/1;object-fit:cover;border-radius:8px;border:1px solid rgba(14,56,46,.10);background:#F5F3EF}
.mm-soon-cats{margin-top:10px}
.mm-soon-cats p{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#8a8990;margin:0 0 8px}
.mm-soon-cats ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mm-soon-cats li{font-size:.76rem;line-height:1.2;padding:5px 10px;border-radius:999px;border:1px dashed rgba(14,56,46,.22);color:#4d4c54;background:#fff}
.mm-disc{font-size:.72rem!important;line-height:1.55!important;color:#6d6c73;border-top:1px solid rgba(14,56,46,.12);padding-top:12px;margin-top:18px!important}
/* deslocamento dos pontos da Europa (ver OFF em mundo.js) */
.mm-pin,.mm-soon{translate:var(--dx,0) var(--dy,0)}
.mm-pin{padding:5px}
.mm-pin.left .lbl{right:calc(100% + 2px)}
@media (max-width:760px){.mm-pin,.mm-soon{translate:var(--mdx,0) var(--mdy,0)}.mm-pin{padding:6px}.mm-soon{padding:6px}}
