.vh-loader { position:fixed;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;background:#061222 url('../images/sections/morocc-night-market-v1.png') center/cover;color:#f1f6ff;transition:opacity .4s,visibility .4s;animation:vh-loader-failsafe 0s 8s forwards;font-family:Prompt,Tahoma,sans-serif; }
.vh-loader *{box-sizing:border-box}.vh-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.vh-loader-shade,.vh-loader-stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vh-loader-shade{background:radial-gradient(ellipse at center,#06122266,#030a17e8 75%),linear-gradient(#06122280,#061222bb)}
.vh-loader-card{position:relative;z-index:1;text-align:center;width:min(480px,calc(100% - 40px));padding:26px 24px 30px;background:linear-gradient(145deg,#0b2035c9,#071422e0);border:1px solid #e2bd6440;border-radius:26px;box-shadow:0 25px 90px #0008,inset 0 1px #bbddff15;backdrop-filter:blur(10px)}
.vh-loader-kicker{font-size:10px;letter-spacing:.23em;color:#efce83;margin:0}.vh-loader-emblem{position:relative;display:grid;place-items:center;width:min(290px,85%);height:220px;margin:8px auto}.vh-loader-emblem>span{position:absolute;width:170px;height:170px;border:1px solid #6ed8ff55;border-radius:50%;box-shadow:0 0 35px #67d3ff18,inset 0 0 25px #67d3ff18}.vh-loader-emblem>span:after{content:'';position:absolute;inset:-10px;border:1px dashed #e7c77840;border-radius:50%;animation:vh-orbit 20s linear infinite}.vh-loader-emblem img{position:relative;width:100%;height:auto;filter:drop-shadow(0 8px 18px #41afff33);animation:vh-float 4s ease-in-out infinite}.vh-loader-card h2{font-size:clamp(20px,4vw,27px);font-weight:600;margin:6px 0 10px}.vh-loader-card #vhLoadingText{font-size:12px;color:#bbd0e4;line-height:1.8;margin:0}.vh-loader-track{height:5px;overflow:hidden;margin:24px auto 17px;background:#243a4e;border-radius:99px;width:85%}.vh-loader-track span{display:block;width:45%;height:100%;background:linear-gradient(90deg,transparent,#79ddff,#f8d17f);border-radius:99px;animation:vh-progress 1.7s ease-in-out infinite}.vh-loader-caption{display:flex;gap:8px;justify-content:center;align-items:center;font-size:10px;color:#9eb9d0}.vh-loader-dot{width:6px;height:6px;background:#7de5d2;border-radius:50%;box-shadow:0 0 12px #7de5d2}.vh-loader #vhLoadingSkip{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));z-index:2;background:#12334b;border:1px solid #90c8df66;border-radius:10px;color:#dbedff;padding:12px 20px;font-size:12px;cursor:pointer}.vh-loader #vhLoadingSkip[hidden]{display:none}
.vh-loader-stars i{position:absolute;bottom:-10px;left:15%;width:3px;height:3px;border-radius:50%;background:#c5f2ff;box-shadow:0 0 12px #77d5ff;animation:vh-star 5s linear infinite}.vh-loader-stars i:nth-child(2){left:30%;animation-delay:-2s}.vh-loader-stars i:nth-child(3){left:44%;animation-delay:-4s}.vh-loader-stars i:nth-child(4){left:60%;animation-delay:-1s}.vh-loader-stars i:nth-child(5){left:75%;animation-delay:-3s}.vh-loader-stars i:nth-child(6){left:88%;animation-delay:-.5s}.vh-loader-stars i:nth-child(7){left:8%;animation-delay:-2.5s}.vh-loader-stars i:nth-child(8){left:93%;animation-delay:-4.5s}
@keyframes vh-loader-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes vh-orbit{to{transform:rotate(360deg)}}@keyframes vh-float{50%{transform:translateY(-7px)}}@keyframes vh-progress{from{transform:translateX(-110%)}to{transform:translateX(340%)}}@keyframes vh-star{to{transform:translate(25px,-100vh);opacity:0}}
.vh-alert{--alert:#83c8ef;display:flex;align-items:flex-start;gap:11px;border:1px solid #83c8ef40;border-left:3px solid var(--alert);border-radius:12px;background:#12354a55;color:#cfebfb;padding:14px 16px;font-family:Prompt,Tahoma,sans-serif;font-size:12px;line-height:1.8;text-align:left;animation:vh-alert-in .2s ease-out}.vh-alert:empty,.vh-alert[hidden]{display:none!important}.vh-alert[data-tone=error]{--alert:#fb929a;border-color:#f1788555;border-left-color:var(--alert);background:#401f2bb3;color:#ffdadc}.vh-alert[data-tone=success]{--alert:#7de1b5;border-color:#58bf9955;border-left-color:var(--alert);background:#123b32b3;color:#ccf7e4}.vh-alert[data-tone=warning]{--alert:#f4cf81;border-color:#d2ad5b55;border-left-color:var(--alert);background:#3d311bb3;color:#fceac4}.vh-alert-icon{flex-shrink:0;color:var(--alert);width:22px;height:22px;margin-top:2px}.vh-alert-icon svg,.vh-alert-dismiss svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vh-alert-content{flex:1;min-width:0}.vh-alert-content strong{display:block;font-weight:600;font-size:12px;color:var(--alert);margin-bottom:3px}.vh-alert-text{display:block;overflow-wrap:anywhere}.vh-alert .vh-alert-dismiss{flex-shrink:0;width:28px;height:28px;padding:5px;min-height:0;border:0;background:transparent;color:var(--alert);border-radius:6px;cursor:pointer}.vh-alert-dismiss:hover{background:#ffffff0f}.vh-alert-dismiss:focus-visible{outline:2px solid var(--alert);outline-offset:2px}.vh-alert[data-tone=loading] .vh-alert-icon{animation:vh-orbit 1.3s linear infinite}
.booking-dialog #authMessage.vh-alert{padding:14px 16px;margin:10px 28px 20px}.booking-dialog #bookingMessage.vh-alert{padding:14px 16px;margin:14px 0}.booking-page #bookingNotice.vh-alert{padding:14px 16px;margin-top:24px}.vh-form-alert{margin:16px 0}
@keyframes vh-alert-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:600px){.vh-loader-card{padding:24px 18px}.vh-loader-emblem{height:190px;width:250px;max-width:95%}.booking-dialog #authMessage.vh-alert{margin-inline:18px}.vh-alert{font-size:11px;padding:12px;gap:9px}.vh-alert-content strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.vh-loader-emblem img,.vh-loader-emblem>span:after,.vh-loader-stars i,.vh-loader-track span,.vh-alert,.vh-alert[data-tone=loading] .vh-alert-icon{animation:none}.vh-loader-track span{width:100%;background:#83c8ef}.vh-loader{transition:none}}
