/* AMANI Bali mapa - sekcia Lokality (nahradza Leaflet mapu) */
.bm-sec{--gold:#C9A96A;--gold-deep:#8B7355;--cream:#F5F1E8;--line:#E0DCD3;--muted:#6b7066;--forest-light:#2A4F3D;--font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;--font-body:'Montserrat','Helvetica Neue',Arial,sans-serif}



.bm-sec .rd-wrap{max-width:1140px;margin:0 auto}
.bm-sec .rd-eyebrow{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:#9B6A4A;font-weight:600;margin-bottom:12px}
.bm-sec .rd-title{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,4vw,42px);color:#1A2F23;line-height:1.15;margin-bottom:12px;font-weight:600}
.bm-sec .rd-sub{color:#6b7066;max-width:640px;margin-bottom:8px;font-size:15.5px;line-height:1.65}
.rd-btn{display:inline-block;background:#1A2F23;color:#fff;padding:14px 26px;font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;border:none;border-radius:2px;cursor:pointer;text-align:center;text-decoration:none;transition:background .2s}
.rd-btn--gold{background:#C8A96E;color:#1A2F23}
.bm-sec{padding:88px 24px 64px}
.bm-sec.dark{background:radial-gradient(1100px 640px at 50% 42%,#22412F 0%,#0F1A15 55%,#152619 100%)}
.bm-sec.dark .rd-eyebrow{color:#C8A96E}
.bm-sec.dark .rd-title{color:var(--cream)}
.bm-sec.dark .rd-sub{color:#cfc8b4}
.bm-sec.light{background:radial-gradient(1100px 640px at 50% 42%,#FFFFFF 0%,#FBFAF6 55%,#EFEAE0 100%)}
/* ===== MAPA ===== */
  .bm-mapwrap{position:relative;max-width:920px;margin:6px auto 0}
.bm-mapwrap svg{width:100%;height:auto;display:block;overflow:visible}
.coast{fill:rgba(245,241,232,.045);stroke:rgba(200,169,110,.5);stroke-width:1.3;stroke-linejoin:round;fill-opacity:0;transition:fill-opacity .5s ease}
.tex-in .coast{fill-opacity:1}
.bm-sec.light .coast{fill:rgba(28,58,45,.05);stroke:rgba(139,115,85,.65)}
.coast.draw{transition:fill-opacity .5s ease}
.ldot{fill:rgba(245,241,232,.13);opacity:0}
.tex-in .ldot{opacity:1;transition:opacity .35s ease}
.bm-sec.light .ldot{fill:#CFC5AC}
.route{fill:none;stroke:rgba(200,169,110,.34);stroke-width:1.1;transition:stroke-dashoffset 1.4s ease, stroke .25s}
.bm-sec.light .route{stroke:rgba(139,115,85,.4)}
.route.hl{stroke:rgba(200,169,110,.85)}
.bm-sec.light .route.hl{stroke:rgba(139,115,85,.9)}
.leader{stroke:rgba(245,241,232,.28);stroke-width:.8;fill:none}
.bm-sec.light .leader{stroke:rgba(60,60,50,.3)}
.volc{fill:none;stroke:rgba(245,241,232,.4);stroke-width:1;opacity:0;transition:opacity .8s ease 1.2s}
.bm-sec.light .volc{stroke:rgba(107,112,102,.55)}
.map-in .volc{opacity:1}
.pin-g{cursor:pointer;opacity:0}
.pin-g.in{opacity:1}
.pins-lock .pin-g{pointer-events:none}
@keyframes pinIn{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}
@keyframes pinInHero{0%{opacity:0;transform:scale(.5)}65%{opacity:1;transform:scale(1.25)}100%{opacity:1;transform:scale(1)}}
.pin-g{transform-box:fill-box;transform-origin:center}
.pin-dot{transition:transform .22s ease;transform-origin:center;transform-box:fill-box}
.pin-g:hover .pin-dot,.pin-g.on .pin-dot{transform:scale(1.5)}
.pin-dot.hero{fill:var(--gold)}
.pin-dot.spot{fill:none;stroke:#8ea08d;stroke-width:1.6}
.bm-sec.light .pin-dot.spot{stroke:#a99c7f}
.pin-g.on .pin-dot.spot{stroke:var(--gold)}
.pin-ring{fill:none;stroke:var(--gold);stroke-width:1.3;opacity:.55;transform-origin:center;transform-box:fill-box;animation:bmpulse 2.7s ease-out infinite}
.pin-ring.r2{animation-delay:1.35s}
@keyframes bmpulse{0%{transform:scale(.35);opacity:.7}75%{transform:scale(2.4);opacity:0}100%{transform:scale(2.4);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .pin-ring{animation:none;opacity:0}
  .pin-dot.hero{animation:heroFade 2.5s ease-in-out infinite}
}
.pulseg{transition:opacity .4s ease}
.pulseg.dim{opacity:.3}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes heroFade{0%,100%{opacity:1}50%{opacity:.72}}
.live .pin-g:not(:hover):not(.on) .pin-dot.hero{animation:breathe 2.5s ease-in-out infinite}
.pin-label{font-family:'Montserrat',sans-serif;letter-spacing:1.6px;font-weight:600;text-transform:uppercase}
.bm-sec.dark .pin-label{fill:rgba(245,241,232,.8)}
.bm-sec.light .pin-label{fill:#4a4f47}
.pin-label.herol{fill:#EBDCBA;letter-spacing:2.2px}
.bm-sec.light .pin-label.herol{fill:#7a6344}
.pin-sub{font-family:'Montserrat',sans-serif;letter-spacing:1.1px;font-weight:500}
.bm-sec.dark .pin-sub{fill:rgba(200,169,110,.9)}
.bm-sec.light .pin-sub{fill:#8B7355}
.bm-hint{text-align:center;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;margin-top:12px}
.bm-sec.dark .bm-hint{color:rgba(245,241,232,.38)}
.bm-sec.light .bm-hint{color:#a49b87}
.bm-legend{display:flex;gap:22px;justify-content:center;margin-top:14px;font-size:12.5px;flex-wrap:wrap}
.bm-sec.dark .bm-legend{color:#cfc8b4}
.bm-sec.light .bm-legend{color:#6b7066}
.bm-legend span{display:inline-flex;align-items:center;gap:8px}
.bm-legend i{width:9px;height:9px;border-radius:50%;flex:none}
.bm-legend i.l1{background:var(--gold)}
.bm-legend i.l2{background:none;border:2px solid #8ea08d;width:6px;height:6px}
.bm-sec.light .bm-legend i.l2{border-color:#a99c7f}
/* index destinácií */
  .bm-index{list-style:none;display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:20px auto 0;max-width:860px;padding:0}
.bm-index button{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:40px;background:none;font-family:'Montserrat',sans-serif;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.bm-sec.dark .bm-index button{border:1px solid rgba(245,241,232,.2);color:rgba(245,241,232,.82)}
.bm-sec.dark .bm-index button:hover{border-color:#C8A96E;color:#C8A96E}
.bm-sec.dark .bm-index button.on{background:rgba(200,169,110,.14);border-color:#C8A96E;color:#E8D9B8}
.bm-sec.light .bm-index button{border:1px solid #D8D2C2;color:#4a4f47}
.bm-sec.light .bm-index button:hover{border-color:#8B7355;color:#8B7355}
.bm-sec.light .bm-index button.on{background:rgba(139,115,85,.1);border-color:#8B7355;color:#6b573f}
.bm-index button b{font-weight:600}
.bm-index button small{font-weight:500;opacity:.65;letter-spacing:1px;text-transform:none}
.bm-index button.first{border-color:#C8A96E}
.bm-sec.dark .bm-index button.first{color:#E8D9B8;background:rgba(200,169,110,.1)}
.bm-sec.light .bm-index button.first{color:#6b573f;background:rgba(139,115,85,.08)}
/* tooltip */
  .ws-tip{position:absolute;z-index:6;width:225px;background:#fff;border:1px solid var(--line);border-radius:3px;box-shadow:0 18px 44px -18px rgba(15,25,18,.5);opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;overflow:hidden}
.ws-tip.show{opacity:1;transform:translateY(0)}
.ws-tip .t-img{width:100%;height:100px;object-fit:cover;display:block;background:linear-gradient(135deg,#c9b291,#7f9a86)}
.ws-tip .t-body{padding:12px 14px 12px}
.ws-tip .t-name{font-family:'Cormorant Garamond',serif;font-size:19px;color:#1A2F23;font-weight:600;line-height:1.15}
.ws-tip .t-loc{font-size:11px;color:#6b7066;letter-spacing:.4px;margin-top:2px;line-height:1.5}
.t-chip{display:inline-block;font-size:9.5px;letter-spacing:1.1px;text-transform:uppercase;font-weight:600;padding:3px 8px;border-radius:2px;margin-bottom:8px}
.t-chip.live{background:#EAF3EC;color:#2F6B44}
.t-chip.spot{background:#EFEDE6;color:#77836f}
.ws-tip .t-hint{font-size:10.5px;color:#9b9482;margin-top:8px;letter-spacing:.3px}
/* panel */
  .ws-panel{max-width:640px;margin:24px auto 0;background:#fff;border:1px solid var(--line);border-radius:3px;box-shadow:0 24px 60px -30px rgba(15,25,18,.45);overflow:hidden;display:none}
.ws-panel.open{display:block;animation:wsin .35s ease}
@keyframes wsin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ws-panel .p-img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;display:block}
.ws-panel .p-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px 0}
.ws-panel .p-name{font-family:'Cormorant Garamond',serif;font-size:26px;color:#1A2F23;font-weight:600;line-height:1.1}
.ws-panel .p-loc{font-size:12px;color:#6b7066;margin-top:2px}
.ws-panel .p-x{background:none;border:0;font-size:22px;line-height:1;color:#9b9482;cursor:pointer;padding:2px 6px}
.ws-panel .p-x:hover{color:#1A2F23}
.ws-panel .p-body{padding:14px 22px 22px}
.ws-panel .t-chip{font-size:10px;letter-spacing:1.2px;padding:4px 9px;margin-bottom:12px}
.ws-panel .p-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:4px 0 16px}
.ws-panel .p-fact .k{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#9b9482}
.ws-panel .p-fact .v{font-family:'Cormorant Garamond',serif;font-size:19px;color:#1A2F23;font-weight:600;margin-top:1px}
.ws-panel .p-note{font-size:12.5px;color:#6b7066;line-height:1.6;margin-bottom:16px}
.ws-panel .p-cta-row{display:flex;gap:10px;flex-wrap:wrap}
.ws-panel .p-small{font-size:11px;color:#9b9482;margin-top:10px}
/* banner budúce destinácie */
  .bm-banner{text-align:center;margin-top:26px;font-size:12px;letter-spacing:.3px}
.bm-sec.dark .bm-banner{color:rgba(245,241,232,.45)}
.bm-sec.light .bm-banner{color:#a49b87}
.bm-banner a{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bm-sec.dark .bm-banner a{color:rgba(200,169,110,.8)}
.bm-sec.light .bm-banner a{color:#8B7355}
.bm-banner a:hover{opacity:.8}
.bm-wait{display:none;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.bm-wait.open{display:flex}
.bm-wait input{width:250px;border:1px solid rgba(245,241,232,.3);background:rgba(255,255,255,.06);border-radius:2px;padding:11px 13px;font-family:'Montserrat',sans-serif;font-size:13px;color:var(--cream)}
.bm-sec.light .bm-wait input{border-color:#D8D2C2;background:#fff;color:#2C2C2C}
.bm-wait input:focus{outline:none;border-color:var(--gold)}
@media(max-width:680px){
  .bm-sec{padding:60px 16px 52px}
  .ws-tip{display:none}
  .bm-index{gap:7px}
  .bm-index button{padding:8px 12px;font-size:9.5px;letter-spacing:1.1px}
}
.bm-sec{--gold:#C9A96A}
.bm-sec.dark{background:radial-gradient(1100px 640px at 50% 42%,#1A2B21 0%,#0F1A15 58%,#0B130E 100%)}
.bm-sec.dark .rd-title{color:#E8E4D8}
.bm-sec.dark .rd-sub{color:#8A8578}
.bm-sec.dark .pin-label{fill:rgba(232,228,216,.85)}
.bm-sec.dark .bm-hint{color:rgba(232,228,216,.34)}
.bm-sec.dark .bm-legend{color:#8A8578}
.pin-dot.spot{fill:#8ea08d;stroke:none}
.bm-sec.light .pin-dot.spot{fill:#a99c7f;stroke:none}
.pin-dot.dia{fill:none;stroke:#7A7F52;stroke-width:1.6}
.bm-sec.light .pin-dot.dia{stroke:#8a8560}
.pin-g.on .pin-dot.dia,.pin-g:hover .pin-dot.dia{stroke:var(--gold)}
.pin-label.lml{font-weight:500;letter-spacing:1.2px}
.bm-sec.dark .pin-label.lml{fill:rgba(190,195,160,.78)}
.bm-sec.light .pin-label.lml{fill:#8a8560}
.bm-sec.dark .pin-sub.lms{fill:rgba(138,133,120,.9)}
.bm-sec.light .pin-sub.lms{fill:#a49b87}
.lmline{fill:none;stroke:rgba(122,127,82,.55);stroke-width:1;stroke-dasharray:3 5;opacity:0;transition:opacity .25s}
.bm-sec.light .lmline{stroke:rgba(138,133,96,.6)}
.lmline.show{opacity:1}
.t-chip.lm{background:#EEEFE3;color:#6d7248}
.bm-filters{display:flex;gap:9px;justify-content:center;margin:4px 0 18px;flex-wrap:wrap}
.bm-filters button{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:40px;background:none;font-family:'Montserrat',sans-serif;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.2s;opacity:.55}
.bm-filters button.on{opacity:1}
.bm-sec.dark .bm-filters button{border:1px solid #1F2A24;color:rgba(232,228,216,.85)}
.bm-sec.dark .bm-filters button.on{border-color:rgba(201,169,106,.55);background:rgba(201,169,106,.08)}
.bm-sec.light .bm-filters button{border:1px solid #D8D2C2;color:#4a4f47}
.bm-sec.light .bm-filters button.on{border-color:#8B7355;background:rgba(139,115,85,.07)}
.bm-filters i{width:8px;height:8px;border-radius:50%;background:#8ea08d;flex:none}
.bm-filters i.d{border-radius:0;transform:rotate(45deg);background:none;border:1.6px solid #7A7F52;width:7px;height:7px}
.bm-sec.light .bm-filters i{background:#a99c7f}
.bm-sec.light .bm-filters i.d{background:none;border-color:#8a8560}
.bm-legend i.ld{border-radius:0;transform:rotate(45deg);background:none;border:2px solid #7A7F52;width:7px;height:7px;flex:none}
.bm-sec.light .bm-legend i.ld{border-color:#8a8560}
.bm-legend i.l2{background:#8ea08d;border:none}
.bm-sec.light .bm-legend i.l2{background:#a99c7f;border:none}
.bm-trust{position:absolute;top:4px;right:0;font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:600;pointer-events:none}
.bm-sec.dark .bm-trust{color:rgba(201,169,106,.75)}
.bm-sec.light .bm-trust{color:#8B7355}
.ripple{fill:none;stroke:rgba(201,169,106,.4);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;pointer-events:none}
.bm-sec.light .ripple{stroke:rgba(139,115,85,.42)}
.live .ripple.r0{animation:ripl 7.5s ease-out .9s infinite}
.live .ripple.r1{animation:ripl 7.5s ease-out 3.4s infinite}
.live .ripple.r2{animation:ripl 7.5s ease-out 5.9s infinite}
@keyframes ripl{0%{transform:scale(1);opacity:0}6%{opacity:.34}100%{transform:scale(1.06);opacity:0}}
#balimap{transform-origin:50% 55%}
.live #balimap{animation:kb 16s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.013)}}
@media (prefers-reduced-motion: reduce){
  .ripple,.live #balimap{animation:none!important}
}
.bm-canvas{position:absolute;inset:0;width:100%;pointer-events:none;transition:opacity .4s ease}
.pin-g{outline:none}
.pin-g:focus-visible .pin-dot{transform:scale(1.5)}
@media(max-width:680px){
  .bm-trust{position:static;text-align:center;margin-top:10px}
}
