/*!
 * EVH Hero Overlays v2.2 — "Iron" (suit-POV HUD) + "Ice" (snowfall / aurora / frost)
 * Epic Vacation Homes. Drop-in, namespaced (every class starts with .evh-ov-), no dependencies.
 * Mount: <div class="evh-ov" data-evh-overlay="iron|ice"></div> as the LAST child inside a
 * position:relative hero, above the photo, below the headline/booking UI (z-index 3).
 */
.evh-ov{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;
  --ov-hud:#8fe3ff;--ov-hud-d:rgba(143,227,255,.38);--ov-accent:#ffb21a;--ov-ease:cubic-bezier(.22,1,.36,1);
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace}
.evh-ov *{box-sizing:border-box}

/* ================= IRON — suit POV HUD ================= */
.evh-ov-grid{position:absolute;inset:0;background-image:radial-gradient(rgba(143,227,255,.18) 1px,transparent 1.2px);background-size:34px 34px;-webkit-mask-image:radial-gradient(ellipse at center,transparent 35%,#000 100%);mask-image:radial-gradient(ellipse at center,transparent 35%,#000 100%);opacity:.55}
.evh-ov-frame{position:absolute;inset:var(--ov-top,92px) 26px 26px;animation:evhOvFlick 9s steps(1) infinite}
@keyframes evhOvFlick{0%,96%,100%{opacity:1}96.5%{opacity:.55}97%{opacity:1}97.5%{opacity:.7}}
.evh-ov-c{position:absolute;width:0;height:0;border:0 solid var(--ov-hud-d);animation:evhOvBrk 1s var(--ov-ease) forwards}
.evh-ov-c.tl{top:0;left:0;border-width:1px 0 0 1px;animation-delay:.3s}.evh-ov-c.tr{top:0;right:0;border-width:1px 1px 0 0;animation-delay:.42s}
.evh-ov-c.bl{bottom:0;left:0;border-width:0 0 1px 1px;animation-delay:.54s}.evh-ov-c.br{bottom:0;right:0;border-width:0 1px 1px 0;animation-delay:.66s}
@keyframes evhOvBrk{to{width:46px;height:46px}}
@keyframes evhOvFade{to{opacity:1}}
.evh-ov-tele{position:absolute;top:22px;left:26px;font-size:10.5px;letter-spacing:.16em;color:var(--ov-hud);opacity:.85;white-space:pre;line-height:1.95;text-transform:uppercase;text-shadow:0 0 8px rgba(143,227,255,.6)}
.evh-ov-tele::after{content:'\258D';animation:evhOvBlink 1s steps(1) infinite;margin-left:2px}
@keyframes evhOvBlink{50%{opacity:0}}
.evh-ov-tape{position:absolute;top:8px;left:50%;width:min(460px,46%);height:34px;transform:translateX(-50%);overflow:hidden;border-bottom:1px solid var(--ov-hud-d);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);opacity:0;animation:evhOvFade 1s var(--ov-ease) .9s forwards}
.evh-ov-strip{position:absolute;left:0;top:0;height:100%;white-space:nowrap;font-size:9.5px;letter-spacing:.1em;color:var(--ov-hud);display:flex;will-change:transform}
.evh-ov-strip span{display:inline-block;width:40px;text-align:center;padding-top:4px;border-left:1px solid var(--ov-hud-d);height:100%;position:relative}
.evh-ov-strip span::after{content:'';position:absolute;left:19px;bottom:0;width:1px;height:6px;background:var(--ov-hud-d)}
.evh-ov-caret{position:absolute;left:50%;bottom:0;margin-left:-5px;border:5px solid transparent;border-bottom-color:var(--ov-accent)}
.evh-ov-hdg{position:absolute;left:50%;top:-1px;transform:translateX(-50%);font-size:10px;font-weight:500;color:#000;background:var(--ov-hud);padding:2px 6px;border-radius:2px;letter-spacing:.12em}
.evh-ov-panel{position:absolute;font-size:10.5px;letter-spacing:.14em;color:var(--ov-hud);text-transform:uppercase;opacity:0;animation:evhOvFade 1.2s var(--ov-ease) 1.4s forwards}
.evh-ov-pl{left:26px;top:150px;width:230px;padding:10px 12px;background:linear-gradient(90deg,rgba(0,10,20,.55),rgba(0,10,20,.15));border-left:1px solid var(--ov-hud-d)}
.evh-ov-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed rgba(143,227,255,.22)}
.evh-ov-row b{font-weight:500;color:#fff;text-shadow:0 0 10px rgba(143,227,255,.7)}
.evh-ov-bar{height:3px;margin:4px 0 8px;background:rgba(143,227,255,.15);position:relative;overflow:hidden}
.evh-ov-bar i{position:absolute;left:0;top:0;bottom:0;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--ov-hud),var(--ov-accent));transition:transform .5s var(--ov-ease)}
.evh-ov-pr{right:26px;top:96px;width:160px;text-align:right;padding:10px 12px;background:linear-gradient(270deg,rgba(0,10,20,.55),rgba(0,10,20,.1));border-right:1px solid var(--ov-hud-d)}
.evh-ov-eq{display:flex;align-items:flex-end;justify-content:flex-end;gap:3px;height:44px;margin-bottom:10px}
.evh-ov-eq i{width:6px;height:44px;transform:scaleY(.18);transform-origin:50% 100%;background:linear-gradient(0deg,var(--ov-hud),rgba(143,227,255,.2));transition:transform .18s linear}
.evh-ov-hex{height:120px;overflow:hidden;white-space:pre;line-height:1.6;color:rgba(143,227,255,.55);font-size:9.5px;-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}
.evh-ov-ret{position:absolute;left:0;top:0;width:150px;height:150px;margin:-75px 0 0 -75px;opacity:0;animation:evhOvFade 1.6s var(--ov-ease) 1.2s forwards}
.evh-ov-ret svg{width:100%;height:100%;overflow:visible}
.evh-ov-ret .r1{transform-origin:100px 100px;animation:evhOvSpin 24s linear infinite}
.evh-ov-ret .r2{transform-origin:100px 100px;animation:evhOvSpin 15s linear infinite reverse}
@keyframes evhOvSpin{to{transform:rotate(360deg)}}
.evh-ov-retv{position:absolute;left:50%;top:50%;transform:translate(-50%,46px);font-size:10px;letter-spacing:.16em;color:var(--ov-accent);white-space:nowrap}
.evh-ov-tg{position:absolute;left:0;top:0;width:110px;height:110px;margin:-55px 0 0 -55px;transition:transform 1.6s cubic-bezier(.65,0,.35,1);will-change:transform}
.evh-ov-tg svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:transform .5s var(--ov-ease)}
.evh-ov-tg svg path{stroke:var(--ov-hud);stroke-width:1.75;fill:none;transition:stroke .3s}
.evh-ov-tg svg .x{stroke-width:1;opacity:.6}
.evh-ov-lbl{position:absolute;left:100%;top:4px;margin-left:10px;display:flex;align-items:flex-start;white-space:nowrap}
.evh-ov-tx{display:block;padding:4px 8px 5px;border-radius:2px;background:rgba(0,8,16,.62);font-size:11.5px;font-weight:500;line-height:1.45;letter-spacing:.13em;color:var(--ov-hud);text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.8)}
.evh-ov-tg:not(.lock) .evh-ov-lbl{opacity:0}
.evh-ov-lbl{transition:opacity .25s}
.evh-ov-tg.flip .evh-ov-lbl{left:auto;right:100%;margin:0 10px 0 0;flex-direction:row-reverse}
.evh-ov-lbl em{display:block;font-style:normal;color:rgba(255,255,255,.78)}
.evh-ov-ln{display:block;flex:none;width:10px;height:1px;margin-top:12px;background:var(--ov-hud)}
.evh-ov-tg.lock svg{transform:scale(.7)}
.evh-ov-tg.hop svg{transform:scale(1.15)}
.evh-ov-tg.hop svg path{stroke:#bff3ff;filter:drop-shadow(0 0 4px rgba(143,227,255,.9))}
.evh-ov-tg.lock svg path{stroke:var(--ov-accent)}
.evh-ov-tg.lock .evh-ov-tx{color:var(--ov-accent)}
.evh-ov-tg.lock .evh-ov-ln{background:var(--ov-accent)}
.evh-ov-tg.lock::after{content:'';position:absolute;inset:22%;border:1px solid var(--ov-accent);border-radius:50%;animation:evhOvPing .9s var(--ov-ease) forwards}
@keyframes evhOvPing{0%{transform:scale(.4);opacity:1}100%{transform:scale(2.4);opacity:0}}

/* ================= ICE — snowfall, aurora, frost ================= */
.evh-ov-snow{position:absolute;inset:0;width:100%;height:100%;-webkit-mask-image:linear-gradient(180deg,transparent 0,transparent var(--ov-top,92px),#000 calc(var(--ov-top,92px) + 90px));mask-image:linear-gradient(180deg,transparent 0,transparent var(--ov-top,92px),#000 calc(var(--ov-top,92px) + 90px))}
.evh-ov-aurora{position:absolute;inset:-20% -10% auto;height:75%;mix-blend-mode:screen;opacity:.6;filter:blur(40px)}
.evh-ov-aurora i{position:absolute;border-radius:50%;opacity:.55}
.evh-ov-aurora i:nth-child(1){left:5%;top:10%;width:55%;height:45%;background:radial-gradient(closest-side,rgba(123,107,255,.75),transparent);animation:evhOvAu1 18s ease-in-out infinite alternate}
.evh-ov-aurora i:nth-child(2){left:40%;top:0;width:60%;height:50%;background:radial-gradient(closest-side,rgba(80,220,255,.65),transparent);animation:evhOvAu2 22s ease-in-out infinite alternate}
.evh-ov-aurora i:nth-child(3){left:20%;top:25%;width:45%;height:35%;background:radial-gradient(closest-side,rgba(140,255,230,.4),transparent);animation:evhOvAu1 26s ease-in-out infinite alternate-reverse}
@keyframes evhOvAu1{to{transform:translate(18%,8%) scale(1.15)}}
@keyframes evhOvAu2{to{transform:translate(-20%,10%) scale(.9)}}
.evh-ov-frost{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(170,225,255,.08) 85%,rgba(210,240,255,.18) 100%)}
.evh-ov-glow{display:inline-block;padding-right:.08em;background:linear-gradient(100deg,#fff 0%,#fff 35%,#bff0ff 45%,#fff 50%,#a6e4ff 56%,#fff 66%,#fff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:evhOvShim 6s linear infinite;filter:drop-shadow(0 0 22px rgba(159,227,255,.55))}
@keyframes evhOvShim{from{background-position:100% 0}to{background-position:-150% 0}}
.evh-ov.is-paused *, .evh-ov.is-paused *::before, .evh-ov.is-paused *::after{animation-play-state:paused!important}
@media (max-width:860px){
  .evh-ov-grid,.evh-ov-tape,.evh-ov-panel,.evh-ov-ret{display:none}
  .evh-ov-frame{inset:76px 12px 12px}
  .evh-ov-tg.extra{display:none}
  .evh-ov-tg{width:78px;height:78px;margin:-39px 0 0 -39px}
  .evh-ov-tx{font-size:10.5px;letter-spacing:.1em}
  .evh-ov-tele{font-size:9.5px;line-height:1.8}
}
@media (prefers-reduced-motion:reduce){
  .evh-ov *,.evh-ov *::before,.evh-ov *::after{animation:none!important;transition:none!important}
  .evh-ov-c{width:46px;height:46px}.evh-ov-tape,.evh-ov-panel,.evh-ov-ret{opacity:1}
  .evh-ov-snow,.evh-ov-snow-page,.evh-ov-aurora{display:none}
  .evh-ov-glow{color:#fff;background:none}
}

/* keep the headline + booking bar above the overlay (EVH theme) */
.evh-ov ~ .evh-hero__in{position:relative;z-index:4}
