/* v5.1.0 – Holiday showcase animated hero. Scene 1920×720 (shown window: y 90–690 = 600 high), scaled to the width. */
.m3vh{position:relative;width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;background:#0C2643;color:#fff}
.m3vh-view{position:relative;width:100%;height:calc(100vw * 300 / 1920);min-height:230px;overflow:hidden}
.m3vh-scene{position:absolute;left:0;top:0;width:1920px;height:720px;transform-origin:0 0;overflow:hidden;
  background:radial-gradient(ellipse at 72% 40%,#2E6EA6 0%,#174A7C 35%,#0C2643 70%,#081A30 100%)}
.m3vh-scene:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(8,26,48,.6) 0%,rgba(8,26,48,.28) 35%,rgba(8,26,48,0) 55%)}
.m3vh .vh-world{position:absolute;inset:0;will-change:transform}
.m3vh .vh-world>i{position:absolute;display:block}
.m3vh .vh-glow{right:120px;top:40px;width:640px;height:440px;background:radial-gradient(ellipse,rgba(255,200,120,.22),rgba(255,200,120,0) 65%);animation:m3vhPulse 4s ease-in-out infinite alternate}
.m3vh .vh-bk{border-radius:50%;filter:blur(2px);animation:m3vhTw var(--t,3s) ease-in-out infinite alternate}
.m3vh .vh-snow{inset:0;background-image:radial-gradient(rgba(255,255,255,.7) 1.4px,transparent 1.6px),radial-gradient(rgba(255,255,255,.45) 1px,transparent 1.2px);background-size:90px 90px,53px 53px;opacity:.55;animation:m3vhFall 16s linear infinite}
.m3vh .vh-snow2{inset:0;background-image:radial-gradient(rgba(255,255,255,.9) 2px,transparent 2.4px);background-size:140px 140px;opacity:.5;animation:m3vhFall2 8s linear infinite}
.m3vh .vh-sweep{z-index:3;top:-20%;bottom:-20%;width:320px;left:-400px;background:linear-gradient(90deg,transparent,rgba(255,220,180,.07),transparent);transform:skewX(-18deg);animation:m3vhSweep 8s ease-in-out infinite}
.m3vh .vh-drift{left:0;right:0;bottom:-40px;height:190px;background:radial-gradient(ellipse at 60% 100%,#fff 0%,#EAF2FA 45%,rgba(234,242,250,0) 72%),radial-gradient(ellipse at 15% 110%,#fff 0%,rgba(255,255,255,0) 60%)}
.m3vh .vh-cam{position:absolute;left:0;top:0;width:1920px;height:720px;z-index:4}
.m3vh .vh-gnd{position:absolute;left:0;top:0;z-index:1;overflow:visible}
.m3vh .vh-big{position:absolute;left:0;top:0;z-index:2;overflow:visible}
.m3vh .vh-big path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.m3vh .vh-swing{position:absolute;left:1078.69px;top:-86.32px;width:482.62px;height:670.24px;z-index:2;transform-origin:50% 0}
.m3vh .vh-shp{width:100%;height:100%;overflow:visible}
.m3vh .vh-shp path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:1}
.m3vh .vh-g{opacity:0}
.m3vh .vh-end{position:absolute;z-index:6;font:700 30px/1 "Baloo 2",Archivo,sans-serif;letter-spacing:-.01em;color:#14171A;opacity:0;white-space:nowrap}
.m3vh .vh-end span{color:#FF4300}
.m3vh .vh-ff{position:absolute;left:0;top:0;border-radius:50%;background:radial-gradient(circle,#FFF6C8 0,#FFD36A 45%,rgba(255,170,60,0) 72%);box-shadow:0 0 12px 4px rgba(255,200,90,.55);opacity:0;z-index:3;pointer-events:none}
@keyframes m3vhPulse{0%{opacity:.6}100%{opacity:1}}
@keyframes m3vhTw{0%{opacity:.25;transform:scale(.8)}100%{opacity:1;transform:scale(1.25)}}
@keyframes m3vhFall{from{background-position:0 0,25px 31px}to{background-position:90px 720px,-28px 720px}}
@keyframes m3vhFall2{from{background-position:0 0}to{background-position:0 700px}}
@keyframes m3vhSweep{0%,60%{left:-400px}100%{left:2100px}}
/* text + buttons (normal HTML) */
.m3vh-txt{position:absolute;z-index:5;left:max(16px,calc(50% - 600px));top:50%;transform:translateY(-50%);max-width:min(600px,50vw);animation:m3vhIn .9s ease-out both}
@keyframes m3vhIn{from{opacity:0;margin-top:14px}to{opacity:1;margin-top:0}}
.m3vh-chip{position:relative;display:inline-flex;align-items:center;gap:7px;padding:6px 13px 6px 10px;font-size:12px!important;border-radius:999px;background:linear-gradient(135deg,#FF4300,#FF7A3D);color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 0 0 4px rgba(255,67,0,.18),0 10px 26px -8px rgba(255,67,0,.7);overflow:hidden;animation:m3vhChip 2.8s ease-in-out infinite}
.m3vh-chip svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;animation:m3vhSpin 9s linear infinite}
.m3vh-chip:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);animation:m3vhShine 3.2s ease-in-out infinite}
@keyframes m3vhChip{0%,100%{box-shadow:0 0 0 4px rgba(255,67,0,.18),0 10px 26px -8px rgba(255,67,0,.7)}50%{box-shadow:0 0 0 8px rgba(255,67,0,.08),0 10px 30px -6px rgba(255,67,0,.9)}}
@keyframes m3vhSpin{to{transform:rotate(360deg)}}
@keyframes m3vhShine{0%,55%{left:-60%}100%{left:130%}}
.m3vh-txt h1{font:800 clamp(24px,2.5vw,46px)/1.05 Archivo,Arial,sans-serif;letter-spacing:-.02em;margin:10px 0 6px;color:#fff;white-space:nowrap}
.m3vh-txt h1 br{display:none}
.m3vh-txt h1 em{margin-left:.25em}
.m3vh-txt h1 em{font-style:normal;color:#FF7A3D}
.m3vh-txt p{font-size:clamp(13px,1vw,17px);line-height:1.45;color:rgba(255,255,255,.88);margin:0}
.m3vh-cta{display:inline-flex;align-items:center;margin-top:12px;height:42px;padding:0 20px;border-radius:12px;background:#FF4300;color:#fff!important;font-weight:700;font-size:15px;text-decoration:none;transition:background .2s}
.m3vh-cta:hover{background:#E03B00}
.m3vh-ctl{position:absolute;z-index:6;right:16px;bottom:16px;display:flex;gap:8px}
.m3vh-ctl button{display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);background:rgba(8,26,48,.6);backdrop-filter:blur(6px);color:#fff;font:600 12.5px/1 "IBM Plex Sans",system-ui,sans-serif;cursor:pointer;transition:background .2s,border-color .2s}
.m3vh-ctl button:hover{background:#FF4300;border-color:#FF4300}
.m3vh-ctl svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m3vh-snd .on{display:none}
.m3vh-snd[aria-pressed="true"] .on{display:inline}
.m3vh-snd[aria-pressed="true"] .off{display:none}
/* phones: the scene on top, the text under it */
@media (max-width:760px){
  .m3vh-view{height:56vw;min-height:0}
  .m3vh-txt h1{white-space:normal}.m3vh-txt h1 br{display:inline}.m3vh-txt h1 em{margin-left:0}
  .m3vh-txt{position:relative;left:auto;top:auto;transform:none;max-width:none;padding:22px 16px 28px;background:#0C2643}
  .m3vh-ctl{top:12px;bottom:auto;right:12px}
}
@media (prefers-reduced-motion:reduce){.m3vh .vh-world>i{animation:none!important}}
.m3vt>.m3vh:first-child{margin-top:-18px;margin-bottom:22px}
@media (prefers-reduced-motion:reduce){.m3vh-chip,.m3vh-chip svg,.m3vh-chip:after,.m3vh-txt{animation:none!important}}

/* v5.2.6 – no half-drawn scene while the page loads: the scene fades in once it is sized */
.m3vh-scene{opacity:0;transition:opacity .5s ease}
.m3vh.is-ready .m3vh-scene{opacity:1}
/* v5.2.9 – hanging bauble: size/position set by the script; final text inside the bauble */
.m3vh .vh-swing{transform-origin:50% 0}
.m3vh .vh-tx{font:700 92px/1 "Baloo 2",Archivo,sans-serif;fill:#fff;letter-spacing:-1px;opacity:0}
.m3vh .vh-tx tspan{fill:#FF4300}
/* v5.3.0 – more air in the text block; discreet phone instead of the button */
.m3vh-view{min-height:260px}
.m3vh-txt{max-width:min(560px,46vw)}
.m3vh-txt h1{margin:16px 0 12px;line-height:1.08}
.m3vh-txt p{line-height:1.6;max-width:460px}
.m3vh-tel{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.92)!important;text-decoration:none;font:600 15px/1.2 "IBM Plex Sans",system-ui,sans-serif;letter-spacing:.01em;transition:color .2s}
.m3vh-tel svg{flex:none;width:30px;height:30px;padding:7px;box-sizing:border-box;border-radius:50%;border:1px solid rgba(255,255,255,.3);fill:none;stroke:#FF7A3D;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:border-color .2s,background .2s}
.m3vh-tel small{font-size:12.5px;font-weight:400;color:rgba(255,255,255,.55)}
.m3vh-tel small:before{content:"·";margin-right:8px;color:rgba(255,255,255,.35)}
.m3vh-tel:hover{color:#fff!important}
.m3vh-tel:hover svg{border-color:#FF4300;background:rgba(255,67,0,.15)}
@media (max-width:760px){.m3vh-view{min-height:0}.m3vh-txt{max-width:none}.m3vh-txt h1{margin:14px 0 10px}.m3vh-tel{margin-top:16px;padding-top:14px}}
/* v5.3.1 – one centred group (text left, bauble right), lighter title, smooth snow that ends in pure white */
.m3vh-txt{left:max(16px,calc(50% - 440px));top:46%;max-width:min(470px,44vw)}
.m3vh-txt h1{font-weight:300;font-size:clamp(24px,2.2vw,38px);letter-spacing:-.01em;margin:16px 0 12px}
.m3vh-txt h1 em{font-weight:500}
.m3vh-txt p{font-size:clamp(13px,.95vw,16px);font-weight:300;color:rgba(255,255,255,.82)}
.m3vh .vh-drift{left:-5%;right:-5%;bottom:0;height:230px;
  background:
    radial-gradient(60% 70% at 22% 100%,rgba(255,255,255,.9) 0%,rgba(255,255,255,0) 70%),
    radial-gradient(55% 80% at 70% 100%,rgba(255,255,255,.95) 0%,rgba(255,255,255,0) 70%),
    linear-gradient(180deg,rgba(234,242,250,0) 0%,rgba(234,242,250,.55) 40%,rgba(246,249,253,.92) 68%,#fff 87%,#fff 100%)}
.m3vh-scene:after{-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 86%);mask-image:linear-gradient(180deg,#000 62%,transparent 86%)}
.m3vh .vh-sweep{-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 85%);mask-image:linear-gradient(180deg,#000 60%,transparent 85%)}
.m3vh{background:#fff}
.m3vh-view{background:#fff}
.m3vt>.m3vh:first-child{margin-bottom:10px}
@media (max-width:999px) and (min-width:761px){.m3vh-txt{left:4vw;max-width:50vw}}
@media (max-width:760px){.m3vh-txt{background:#fff;color:#14171A;padding:20px 16px 26px}.m3vh-txt h1{color:#14171A}.m3vh-txt h1 em{color:#FF4300}.m3vh-txt p{color:#4A5560}.m3vh-tel{color:#14171A!important;border-top-color:#E3E7EB}.m3vh-tel svg{border-color:#D5DBE1;stroke:#FF4300}.m3vh-tel small{color:#7A8590}.m3vh-tel small:before{color:#B8C0C8}}
/* v5.3.1b – taller window so the text never touches the top; shorter, cleaner snow */
.m3vh-view{min-height:340px}
.m3vh-txt{top:42%}
.m3vh .vh-drift{height:175px;
  background:
    radial-gradient(60% 75% at 22% 100%,rgba(255,255,255,.9) 0%,rgba(255,255,255,0) 70%),
    radial-gradient(55% 85% at 70% 100%,rgba(255,255,255,.95) 0%,rgba(255,255,255,0) 70%),
    linear-gradient(180deg,rgba(200,222,244,0) 0%,rgba(214,231,247,.5) 35%,rgba(240,246,252,.95) 62%,#fff 80%,#fff 100%)}
@media (max-width:760px){.m3vh-view{min-height:0}}
@media (max-width:760px){.m3vh-txt{left:auto;top:auto;max-width:none}.m3vh-tel{white-space:nowrap;flex-wrap:wrap}.m3vh-chip{white-space:nowrap}}
/* v5.3.2 – fluid header: everything scales with the screen width (no fixed max-width) */
@media (min-width:761px){
  .m3vh-view{height:clamp(340px,21vw,640px);min-height:0}
  .m3vh-txt{left:max(24px,calc(50% - 28vw));max-width:clamp(420px,34vw,900px);top:42%}
  .m3vh-chip{font-size:clamp(11px,.62vw,16px)!important;padding:.55em 1.1em .55em .85em;gap:.6em}
  .m3vh-chip svg{width:1.3em;height:1.3em}
  .m3vh-txt h1{font-size:clamp(28px,2vw,42px);margin:clamp(12px,.8vw,18px) 0 clamp(8px,.6vw,14px)} /* v5.8.7: same size as the other page titles */
  .m3vh-txt p{font-size:clamp(14px,.98vw,25px);max-width:32em}
  .m3vh-tel{font-size:clamp(14px,.86vw,22px);gap:.65em;margin-top:clamp(16px,1.2vw,32px);padding-top:clamp(12px,1vw,26px)}
  .m3vh-tel svg{width:2em;height:2em;padding:.45em}
  .m3vh-tel small{font-size:.82em}
  .m3vh-ctl{right:clamp(16px,1.2vw,32px);bottom:clamp(16px,1.2vw,32px);gap:clamp(8px,.5vw,14px)}
  .m3vh-ctl button{width:clamp(42px,2.3vw,60px);height:clamp(42px,2.3vw,60px)}
  .m3vh-ctl svg{width:40%;height:40%}
}
@media (max-width:999px) and (min-width:761px){.m3vh-txt{left:4vw;max-width:50vw}}
@media (min-width:761px){.m3vh-txt{top:45%}}
/* v5.3.6 – phones: same layout as desktop – text over the scene on the left (title on one line), bauble on the right */
@media (max-width:760px){
  .m3vh-view{height:clamp(320px,92vw,420px)!important;min-height:0}
  .m3vh-txt{position:absolute!important;left:16px!important;top:42%!important;transform:translateY(-50%)!important;max-width:58vw!important;padding:0!important;background:none!important;color:#fff}
  .m3vh-chip{font-size:10px!important;padding:5px 10px 5px 8px;gap:5px}
  .m3vh-chip svg{width:12px;height:12px}
  .m3vh-txt h1{white-space:nowrap!important;font-size:clamp(18px,5.4vw,28px)!important;margin:10px 0 6px!important;color:#fff!important}
  .m3vh-txt h1 br{display:none!important}.m3vh-txt h1 em{margin-left:.25em!important;color:#FF7A3D!important}
  .m3vh-txt p{font-size:12.5px!important;line-height:1.45;color:rgba(255,255,255,.85)!important}
  .m3vh-tel{margin-top:12px!important;padding-top:10px!important;font-size:13.5px!important;color:#fff!important;border-top-color:rgba(255,255,255,.18)!important;gap:8px;flex-wrap:nowrap}
  .m3vh-tel svg{width:26px!important;height:26px!important;padding:6px!important;border-color:rgba(255,255,255,.3)!important;stroke:#FF7A3D!important}
  .m3vh-tel small{display:none}
  .m3vh-ctl{top:auto!important;bottom:12px!important;right:12px!important}
  .m3vh-ctl button{width:36px;height:36px}
}
@media (max-width:760px){.m3vh-view{height:clamp(300px,86vw,400px)!important}.m3vh-txt{max-width:54vw!important}.m3vh-txt h1{font-size:clamp(17px,5.2vw,28px)!important}.m3vh-txt p{font-size:12px!important}}
/* v5.4.0 – text starts at the same left edge as the content below */
@media (min-width:1000px){.m3vh-txt{left:calc(50% - var(--vtw) / 2)!important;max-width:calc(var(--vtw) * .5)!important}}

/* v5.8.18 – smaller hero text on desktop */
@media (min-width:761px){
  .m3vh-txt h1{font-size:clamp(24px,1.7vw,34px)}
  .m3vh-txt p{font-size:clamp(13px,.82vw,16px);line-height:1.55;max-width:30em}
}
