/* ============================================================
   OSW Chrome — preloader, cursor ring, progress bar, WhatsApp float.
   Values verbatim from the source .loader / .cring / .progress / .wa-float.
   Motion states gate behind html.ovs-anim (see core plumbing).
   ============================================================ */

/* ── Preloader ── */
.ovs-chrome .ovs-loader{display:none;position:fixed;inset:0;z-index:1000;background:var(--ovs-bg);flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:opacity .6s ease,visibility .6s}
html.ovs-anim .ovs-chrome .ovs-loader{display:flex}
.ovs-chrome .ovs-loader.ovs-done{opacity:0;visibility:hidden;pointer-events:none}
.ovs-chrome .ovs-loader-word{display:flex;overflow:hidden}
.ovs-chrome .ovs-loader-word span{font-family:var(--ovs-display);font-size:clamp(3rem,8vw,5.2rem);letter-spacing:.06em;line-height:1;color:var(--ovs-white);transform:translateY(110%);animation:ovs-ldUp .7s cubic-bezier(.2,.8,.2,1) forwards}
.ovs-chrome .ovs-loader-word span.ovs-champ-letter{color:var(--ovs-champ)}
.ovs-chrome .ovs-loader-word span:nth-child(2){animation-delay:.05s}
.ovs-chrome .ovs-loader-word span:nth-child(3){animation-delay:.09s}
.ovs-chrome .ovs-loader-word span:nth-child(4){animation-delay:.13s}
.ovs-chrome .ovs-loader-word span:nth-child(5){animation-delay:.17s}
.ovs-chrome .ovs-loader-word span:nth-child(6){animation-delay:.21s}
.ovs-chrome .ovs-loader-word span:nth-child(7){animation-delay:.25s}
@keyframes ovs-ldUp{to{transform:translateY(0)}}
.ovs-chrome .ovs-loader-bar{width:min(220px,50vw);height:2px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.ovs-chrome .ovs-loader-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ovs-copper),var(--ovs-champ));animation:ovs-ldBar 1s ease forwards .15s}
@keyframes ovs-ldBar{to{width:100%}}
.ovs-chrome .ovs-loader-tag{font-family:var(--ovs-mono);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ovs-muted)}

/* ── Cursor ring / progress ── */
.ovs-chrome .ovs-cring{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid rgba(227,201,143,.5);border-radius:50%;pointer-events:none;z-index:999;opacity:0;transition:opacity .3s,width .25s,height .25s,border-color .25s}
.ovs-chrome .ovs-cring.ovs-on{opacity:1}
.ovs-chrome .ovs-cring.ovs-hot{width:52px;height:52px;border-color:var(--ovs-champ);background:rgba(227,201,143,.06)}
@media(pointer:coarse){.ovs-chrome .ovs-cring{display:none}}
.ovs-chrome .ovs-progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--ovs-copper),var(--ovs-champ));z-index:120}

/* ── WhatsApp float ──
   Brand-styled (champagne-gold), not stock WhatsApp green — bg/icon/hover
   glow are all Style-tab controls; these are just their defaults. */
.ovs-chrome .ovs-wa-float{position:fixed;right:20px;bottom:20px;z-index:98;width:52px;height:52px;border-radius:50%;background:var(--ovs-champ);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.5);transition:opacity .35s,transform .35s,box-shadow .25s}
.ovs-chrome .ovs-wa-float svg{width:26px;height:26px;color:#221A0D}
.ovs-chrome .ovs-wa-float:hover{box-shadow:0 14px 38px rgba(227,201,143,.4)}
html.ovs-anim .ovs-chrome .ovs-wa-float{opacity:0;transform:translateY(14px);pointer-events:none}
html.ovs-anim .ovs-chrome .ovs-wa-float.ovs-show{opacity:1;transform:none;pointer-events:auto}
@media(max-width:560px){
  .ovs-chrome .ovs-wa-float{right:14px;bottom:14px;width:48px;height:48px}
  .ovs-chrome .ovs-wa-float.ovs-hide-mobile{display:none}
}

/* Editor safety — position:fixed resolves against Elementor's transformed
   editing canvas (not the viewport), so fixed chrome elements detach / cover
   the panel. In edit mode fall back to in-flow positioning so they stay visible
   and harmless; the real frontend keeps position:fixed. The preloader stays
   display:none in the editor (it only shows behind html.ovs-anim, frontend-only). */
body.elementor-editor-active .ovs-chrome .ovs-cring,
body.elementor-editor-active .ovs-chrome .ovs-progress,
body.elementor-editor-active .ovs-chrome .ovs-wa-float,
body.elementor-editor-active .ovs-chrome .ovs-loader{position:relative;inset:auto}
