/* BeGuest zone map: SVG + CSS 3D. Pairs with assets/zone-map.js */
.zm{--zt:#3AC8C4;--zt-d:#1A7F7B;--zd:#233238;--zs:#EAF8F8;--zg:#6B7B80;position:relative;margin:8px auto 0;max-width:1200px;}
.zm [hidden]{display:none!important;}
.zm-ic{width:16px;height:16px;flex:none;}

/* chips + hint */
.zm-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.zm-chips{display:flex;gap:6px;flex-wrap:wrap;padding:5px;border:1px solid #DCEDED;border-radius:999px;background:rgba(255,255,255,.85);box-shadow:0 10px 30px -18px rgba(26,127,123,.35);}
.zm-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:7px 10px 7px 15px;border:0;border-radius:999px;background:transparent;color:var(--zd);font:600 .86rem/1 var(--font-display,'Space Grotesk',sans-serif);cursor:pointer;transition:background .3s,color .3s,box-shadow .3s;}
.zm-chip b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--zs);color:var(--zt-d);font-size:.72rem;font-weight:700;transition:inherit;}
.zm-chip:hover{background:var(--zs);}
.zm-chip[aria-pressed="true"]{background:var(--zd);color:#fff;box-shadow:0 8px 20px -10px rgba(35,50,56,.6);}
.zm-chip[aria-pressed="true"] b{background:var(--zt);color:var(--zd);}
.zm-chip:focus-visible,.zm-x:focus-visible,.zm-c-act a:focus-visible{outline:2px solid var(--zt-d);outline-offset:2px;}
.zm-hint{display:flex;align-items:center;gap:8px;margin:0;color:var(--zg);font-size:.84rem;}
.zm-hint .zm-ic{color:var(--zt-d);}

/* stage */
.zm-vis{position:relative;}
/* borderless: the sea fades into the page on every side, the country floats in the section */
.zm-stage{position:relative;height:640px;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;
  background:radial-gradient(closest-side at 50% 54%,#A8E6E3 0%,#B9ECE9 40%,rgba(205,239,238,.75) 70%,rgba(234,248,248,.35) 88%,rgba(255,255,255,0) 100%);}
.zm-zoom{-webkit-mask-image:radial-gradient(closest-side at 50% 52%,#000 72%,transparent 100%);mask-image:radial-gradient(closest-side at 50% 52%,#000 72%,transparent 100%);}
.zm-stage::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='84'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.7' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M14 21q3-3 6 0t6 0'/%3E%3Cpath d='M74 63q3-3 6 0t6 0'/%3E%3C/g%3E%3C/svg%3E");background-size:120px 84px;
  -webkit-mask-image:radial-gradient(closest-side at 50% 54%,#000 40%,transparent 92%);mask-image:radial-gradient(closest-side at 50% 54%,#000 40%,transparent 92%);}
.zm.is-drag .zm-stage{cursor:grabbing;}
.zm-zoom,.zm-persp{position:absolute;inset:0;}
.zm-zoom{transform-origin:50% 50%;}
.zm-persp{perspective:2000px;perspective-origin:50% 50%;}
.zm-plane{position:absolute;left:50%;top:50%;width:520px;height:1010px;margin:-505px 0 0 -260px;transform-style:preserve-3d;transform-origin:50% 50%;--inv:1;--res:1;}
.zm-plane>svg,.zm-surf,.zm-surf>svg,.zm-surf>div{position:absolute;left:0;top:0;width:520px;height:1010px;overflow:visible;}
.zm-defs{width:0!important;height:0!important;}
.zm-shadow{transform:translateZ(calc(-40px * min(1, var(--inv) * 1.15)));opacity:calc(.5 * min(1, var(--inv) * var(--inv) * 1.3));}
.zm-l{transform:translateZ(calc(var(--d) * min(1, var(--inv) * 1.15)));}
.zm-surf{transform:translateZ(.4px);}
.zm-hi{position:absolute;left:0;top:0;width:calc(520px * var(--res));height:calc(1010px * var(--res));transform-origin:0 0;transform:scale(calc(1 / var(--res)));}
.zm-hi>svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;}
.zm-grid{opacity:calc(1.5 * var(--inv) - .3);}
.zm-coast{fill:none;stroke:#1FA9A4;stroke-width:calc(2.4px * var(--inv));stroke-linejoin:round;}
.zm-surf>div{pointer-events:none;}

/* office arcs: soft dotted lines, drawn once, then still */
.zm-arc{fill:none;stroke:var(--zt-d);stroke-opacity:.75;stroke-width:calc(2.4px * var(--inv));stroke-dasharray:0 calc(7px * var(--inv));stroke-linecap:round;}
.zm-draw{fill:none;stroke:#fff;stroke-width:12;stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s cubic-bezier(.6,0,.3,1);transition-delay:calc(.9s + var(--i) * .1s);}
.zm-in .zm-draw{stroke-dashoffset:0;}

/* ground region label */
.zm-gl{position:absolute;transform:translate(-50%,-50%);font:700 19px/1 var(--font-display,'Space Grotesk',sans-serif);letter-spacing:.3em;text-transform:uppercase;color:var(--zd);text-shadow:0 1px 0 rgba(255,255,255,.7);white-space:nowrap;transition:opacity .5s;}
.zm-gl.is-r{transform:translate(-100%,-50%);}
.zm:not([data-r="pt"]) .zm-gl{opacity:0;}

/* markers: hand-drawn sketches (assets/sketch.js) in a flat overlay; the voxel fallback is a small 3D scene that receives
   the map tilt (--hel), rotation (--hyaw) and zoom (--vs) from zone-map.js */
.zm-pins{position:absolute;inset:0;z-index:2;pointer-events:none;--vs:1;--hel:-36deg;--hyaw:-38deg;}
.zm-pin{position:absolute;left:0;top:0;width:0;height:0;transition:opacity .35s;--u:calc(var(--vs) * 4px);}
.zm[data-r="pt"] .zm-pin[data-reg="lx"],.zm[data-r="pt"] .zm-pin[data-reg="alg"],.zm:not([data-r="pt"]) .zm-cl{display:none;}
.zm-open .zm-pin:not(.is-on){opacity:.55;}
.zm-open .zm-pin.is-off:not(.is-on){opacity:.9;}
.zm .zm-open .zm-pin:not(.is-on) .zm-name,.zm.zm-open .zm-pin:not(.is-on) .zm-name{opacity:0;}
.zm-btn{position:absolute;left:0;bottom:calc(var(--u) * -3);transform:translateX(-50%);width:calc(var(--u) * 12);min-width:40px;height:calc(var(--u) * (var(--sh) + 5));min-height:40px;
  margin:0;padding:0;border:0;background:none;cursor:pointer;color:inherit;font:inherit;pointer-events:auto;-webkit-tap-highlight-color:transparent;}
.zm-btn:focus-visible{outline:2px solid var(--zd);outline-offset:2px;border-radius:8px;}
.zm-lift,.zm-pop,.zm-bob{position:absolute;left:0;bottom:0;width:0;height:0;}
.zm-lift{left:50%;bottom:calc(var(--u) * 3);transition:transform .35s cubic-bezier(.22,1,.36,1);}
/* markers fade in once when the map first appears, then stay completely still */
.zm:not(.zm-in) .zm-pop{opacity:0;transform:translateY(6px);}
.zm-pop{transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1);transition-delay:calc(.15s + var(--i) * .05s);}
/* hand-drawn marker: a flat sketch standing on its ground point */
.zm-sk{position:absolute;left:0;bottom:calc(var(--u) * -1.2);display:block;height:calc(var(--u) * var(--kh));width:calc(var(--u) * var(--kh) * var(--ar));transform:translateX(-50%);}
.zm-sk .sk{display:block;width:100%;height:100%;overflow:visible;}
.zm-sk::before{content:"";position:absolute;left:12%;right:12%;bottom:-2px;height:7px;border-radius:50%;background:rgba(58,200,196,0);transition:background .3s ease;}
.zm-btn:hover .zm-sk::before,.zm-btn:focus-visible .zm-sk::before,.zm-pin.is-on .zm-sk::before{background:rgba(58,200,196,.35);}
.zm-deco .zm-sk{bottom:0;}
/* the 3D model */
.zm-vox,.zm-g,.zm-pf,.zm-fg{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;}
.zm-vox{transform:rotateX(var(--hel)) rotateY(var(--hyaw)) scale3d(var(--vs),var(--vs),var(--vs));}
.vf{position:absolute;display:block;transform-origin:0 0;box-shadow:inset 0 0 0 1px rgba(35,50,56,.8);}
.vf b{position:absolute;display:block;}
.vd{background:var(--zd);border-radius:1px 1px 0 0;}
.vdo{background:var(--zt);}
.vw{background:#8FE0DD;box-shadow:0 0 0 1px var(--zd);}
.vwa{box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);}
.zm-pf{display:none;}
/* hover / select: soft halo and a small lift, no idle motion */
.zm-btn:hover .vb.vt,.zm-btn:focus-visible .vb.vt,.zm-pin.is-on .vb.vt{background:#8FE0DD!important;}
.zm-btn:hover .zm-lift,.zm-btn:focus-visible .zm-lift{transform:translateY(calc(var(--u) * -.6));}
.zm-pin.is-on .zm-lift{transform:translateY(calc(var(--u) * -1));}
.zm-sp{position:absolute;left:50%;bottom:calc(var(--u) * var(--sh) * .8);width:6px;height:6px;opacity:0;pointer-events:none;
  background:linear-gradient(var(--zt),var(--zt)) center/100% 34% no-repeat,linear-gradient(var(--zt),var(--zt)) center/34% 100% no-repeat;}

/* labels */
.zm-name{position:absolute;left:calc(50% + var(--u) * var(--hw) + 2px);bottom:calc(var(--u) * var(--sh) * .45 + 2px);padding:5px 10px;border-radius:6px;white-space:nowrap;font:700 .82rem/1.1 var(--font-display,'Space Grotesk',sans-serif);letter-spacing:.01em;color:var(--zd);text-rendering:geometricPrecision;
  background:#fff;border:1px solid #CFE7E6;box-shadow:0 8px 20px -12px rgba(35,50,56,.45);opacity:0;transition:opacity .25s ease;pointer-events:none;}
.zm[data-r="pt"] .zm-pin.is-major .zm-name,.zm[data-r="lx"] [data-reg="lx"] .zm-name,.zm[data-r="alg"] [data-reg="alg"] .zm-name,.zm[data-r="nt"] [data-reg="nt"] .zm-name,
.zm-btn:hover .zm-name,.zm-pin.is-on .zm-name,.zm-btn:focus-visible .zm-name,.zm-cl .zm-name{opacity:1;}
.zm-nt{display:inline-block;margin:-1px 7px -1px -4px;padding:2px 6px;border-radius:3px;background:var(--zd);color:#fff;font:600 .6rem/1.3 var(--font-body,'Inter',sans-serif);letter-spacing:.08em;text-transform:uppercase;vertical-align:1px;}
.zm .is-up .zm-name{left:50%;bottom:calc(var(--u) * 12 + 12px + var(--row) * 32px);transform:translateX(-50%);}
.zm-count{position:absolute;left:50%;bottom:calc(var(--u) * var(--sh) + 6px);transform:translateX(-50%);min-width:24px;height:24px;padding:0 6px;border-radius:5px;display:grid;place-items:center;
  background:var(--zd);color:#fff;border:0;border-radius:999px;font:700 .8rem/1 var(--font-display,'Space Grotesk',sans-serif);box-shadow:0 0 0 3px rgba(58,200,196,.35),0 8px 18px -10px rgba(35,50,56,.6);pointer-events:none;}
.zm-btn:hover .zm-count{background:var(--zt-d);}
.zm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* sky: two soft clouds, static */
.zm-sky{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.zm-cloud{position:absolute;width:110px;height:44px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 44'%3E%3Cpath d='M14 38c-8 0-11-9-4-12 0-8 9-11 15-7 3-9 15-12 22-5 5-9 21-9 25 2 9-3 18 3 16 11 7 1 9 11 1 11z' fill='%23fff' fill-opacity='.92' stroke='%23233238' stroke-opacity='.28' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M30 33c8 1 18 1 30-1' fill='none' stroke='%233AC8C4' stroke-opacity='.45' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.c1{top:30%;left:12%;}
.c2{top:58%;left:76%;width:76px;height:30px;}
/* region glow on hover */
.zm-rg{opacity:0;transition:opacity .4s;}
.zm[data-hov="lx"] .zm-rg[data-r="lx"],.zm[data-hov="alg"] .zm-rg[data-r="alg"],.zm[data-hov="nt"] .zm-rg[data-r="nt"]{opacity:1;}
/* decorative world: sketch trees, hills and boats, static */
.zm-deco .zm-lift{bottom:0;}
/* zone carousel */
.zm-car{display:flex;align-items:center;gap:8px;max-width:920px;margin:18px auto 0;}
.zm-track{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:14px 0;cursor:grab;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);}
.zm-track::-webkit-scrollbar{display:none;}
.zm-track::before,.zm-track::after{content:"";flex:0 0 calc(50% - 40px);}
.zm-track.is-drag{scroll-snap-type:none;cursor:grabbing;}
.zm-zc{flex:none;scroll-snap-align:center;padding:10px 16px;border-radius:999px;border:1px solid #CFE7E6;background:#fff;color:var(--zd);font:700 .9rem/1.1 var(--font-display,'Space Grotesk',sans-serif);white-space:nowrap;cursor:pointer;user-select:none;-webkit-user-select:none;
  box-shadow:0 8px 20px -14px rgba(35,50,56,.4);transform:scale(calc(1.14 - .34 * var(--k,1)));opacity:calc(1 - .6 * var(--k,1));transition:background .2s,color .2s,box-shadow .2s;}
.zm-zc:hover{background:var(--zs);}
.zm-zc.is-act{background:var(--zd);border-color:var(--zd);color:#fff;box-shadow:0 10px 24px -12px rgba(35,50,56,.6);}
.zm-zc:focus-visible,.zm-arr:focus-visible{outline:3px solid var(--zt-d);outline-offset:3px;}
.zm-arr{flex:none;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid #CFE7E6;background:#fff;color:var(--zd);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px -14px rgba(35,50,56,.4);transition:transform .2s ease,background .2s;}
.zm-arr:hover{background:var(--zs);}
.zm-arr:active{transform:scale(.94);}
.zm-arr .zm-ic{width:20px;height:20px;}

/* glass info card */
.zm-card{position:absolute;left:0;top:0;z-index:5;width:292px;padding:18px 18px 16px;border-radius:20px;color:var(--zd);
  background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(234,248,248,.82));border:1px solid rgba(255,255,255,.9);
  box-shadow:0 0 0 1px rgba(58,200,196,.22),0 30px 60px -24px rgba(35,50,56,.45),inset 0 1px 0 #fff;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);
  opacity:0;transition:opacity .25s,transform .18s ease-out;cursor:auto;}
.zm-card.is-shown{opacity:1;}
.zm-card h3{margin:2px 0 6px;font:700 1.2rem/1.2 var(--font-display,'Space Grotesk',sans-serif);color:var(--zd);padding-right:28px;}
.zm-c-reg,.zm-c-off{display:flex;align-items:center;gap:6px;margin:0;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--zt-d);}
.zm-c-off{display:inline-flex;margin:0 0 8px;padding:4px 9px;border-radius:999px;background:var(--zd);color:#fff;font-size:.66rem;}
.zm-c-off .zm-ic{color:var(--zt);width:14px;height:14px;}
.zm-c-line{margin:0 0 14px;font-size:.88rem;line-height:1.45;color:var(--zg);}
.zm-c-act{display:flex;flex-direction:column;gap:8px;}
.zm-c-act a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 14px;border-radius:12px;font-weight:600;font-size:.86rem;line-height:1.2;text-align:center;text-decoration:none;transition:transform .2s,background .2s,box-shadow .2s;}
.zm-a1{background:var(--zt);color:var(--zd);box-shadow:0 10px 22px -12px rgba(26,127,123,.8);}
.zm-a1:hover{transform:translateY(-1px);background:#4FD3CF;}
.zm-a2{background:#fff;color:var(--zd);border:1px solid #CFE7E6;}
.zm-a2:hover{border-color:var(--zt);}
.zm-a2 .zm-ic{color:var(--zt-d);}
.zm-x{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:10px;background:rgba(35,50,56,.06);color:var(--zd);cursor:pointer;}
.zm-x:hover{background:rgba(35,50,56,.12);}

/* stats + legend */
.zm-stats,.zm-legend{position:absolute;z-index:3;display:flex;gap:6px;margin:0;padding:4px;list-style:none;border-radius:999px;background:rgba(255,255,255,.55);border:0;
  box-shadow:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.zm-stats{left:8px;bottom:10px;}
.zm-stats li{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:11px;font-size:.84rem;color:var(--zg);white-space:nowrap;}
.zm-stats li+li{border-left:1px solid rgba(26,127,123,.18);border-radius:0;}
.zm-stats b{font:700 1.15rem/1 var(--font-display,'Space Grotesk',sans-serif);color:var(--zd);}
.zm-stats .zm-ic{color:var(--zt-d);}
.zm-legend{right:8px;bottom:10px;padding:9px 14px;gap:16px;font-size:.78rem;color:var(--zg);}
.zm-legend li{display:flex;align-items:center;gap:7px;}
.zm-legend .zm-ic{width:17px;height:17px;color:var(--zt-d);}
.zm-legend .zm-ic-o{color:#fff;background:var(--zd);border-radius:5px;padding:2px;width:19px;height:19px;}

/* fallback list under the map */
#areas .zone-links[hidden]{display:none;}

@media (max-width:1040px){.zm-stage{height:580px;}.zm-legend{display:none;}}
@media (max-width:640px){
  .zm-bar{justify-content:center;margin-bottom:10px;}
  .zm-chips{width:100%;justify-content:center;border-radius:18px;gap:4px;}
  .zm-chip{min-height:44px;padding:6px 8px 6px 12px;font-size:.8rem;gap:6px;}
  .zm-hint{width:100%;justify-content:center;font-size:.8rem;}
  .zm-stage{height:500px;}
  .zm-btn{min-width:48px;min-height:48px;}
  .zm-gl{display:none;}
  .zm[data-r] .zm-pin:not(.is-on) .zm-name{opacity:0;}
  .zm[data-r="pt"] .zm-pin.is-major .zm-name,.zm[data-r="pt"] .zm-pin.zm-cl:not(.is-on) .zm-name{opacity:1;}
  .zm-card{left:10px;right:10px;top:auto;bottom:10px;width:auto;transform:translateY(16px)!important;transition:opacity .25s,transform .35s cubic-bezier(.2,.9,.3,1);border-radius:20px;}
  .zm-card.is-shown{transform:none!important;}
  .zm-c-act{flex-direction:row;}
  .zm-c-act a{flex:1;padding:10px;min-height:46px;font-size:.82rem;}
  .zm-stats{position:static;margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
  .zm-stats li{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:5px;row-gap:2px;padding:8px 4px;font-size:.76rem;text-align:center;white-space:normal;}
  .zm-stats li span{grid-column:1 / -1;line-height:1.2;}
  .zm-stats b{font-size:1.05rem;}
}
@media (max-width:400px){
  .zm-chip b{display:none;}
  .zm-chips{padding:4px;gap:2px;justify-content:space-between;flex-wrap:nowrap;}
  .zm-chip{padding:6px 9px;font-size:.76rem;}
  .zm-c-act{flex-direction:column;}
  .zm-c-act a{min-height:44px;}
}
@media (max-width:640px){.c1{top:3%;left:6%;}.c2{top:13%;left:70%;}.zm-cloud{width:72px;height:29px;}.c2{width:52px;height:21px;}.zm-car{margin-top:12px;gap:6px;}.zm-zc{padding:9px 13px;font-size:.84rem;}.zm-arr{width:40px;height:40px;}}
@media (prefers-reduced-motion:reduce){
  .zm *,.zm *::after{animation:none!important;}
  .zm-pop,.zm-lift,.zm-pin,.zm-name,.zm-draw{transition:none!important;}
  .zm-pin.is-on .zm-sp{opacity:0;}
}
