/* =========================================================
   RiNG STUDiO — floating price-calculator button
   Shared by index.html and wedding.html (markup: a.w-calc-float).
   ========================================================= */
.w-calc-float{
  position:fixed; z-index:89;
  right:calc(26px + env(safe-area-inset-right)); bottom:calc(102px + env(safe-area-inset-bottom));
  display:flex; align-items:center; justify-content:flex-end; height:60px; max-width:60px; overflow:hidden;
  --cf:#c9505c; --cf-2:#e08a92;
  border-radius:999px; background:var(--cf); color:#fff;
  box-shadow:0 12px 30px -10px var(--cf);
  transition:max-width .75s var(--ease), opacity .5s ease, transform .6s var(--ease), box-shadow .4s ease;
  touch-action:manipulation;
}
.w-calc-float{ opacity:0; transform:translateY(16px) scale(.9); pointer-events:none; }
.w-calc-float.is-shown{ opacity:1; transform:none; pointer-events:auto; }
.w-calc-float.is-open, .w-calc-float:hover, .w-calc-float:focus-visible{ max-width:340px; box-shadow:0 16px 38px -10px var(--cf); }
.w-cf-label{
  display:flex; flex-direction:column; justify-content:center; padding:0 6px 0 24px; white-space:nowrap; line-height:1.25;
  opacity:0; transform:translateX(10px); transition:opacity .35s ease, transform .5s var(--ease);
}
.w-calc-float.is-open .w-cf-label, .w-calc-float:hover .w-cf-label, .w-calc-float:focus-visible .w-cf-label{
  opacity:1; transform:none; transition-delay:.18s;
}
.w-cf-label b{ font-size:13.5px; font-weight:600; letter-spacing:.01em; }
.w-cf-label small{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; opacity:.85; margin-top:2px; }
.w-cf-icon{ position:relative; flex:0 0 60px; width:60px; height:60px; display:grid; place-items:center; }
.w-cf-icon::before{
  content:''; position:absolute; inset:0; border-radius:50%; border:2px solid var(--cf-2);
  animation:wCfPulse 2.8s infinite ease-out; pointer-events:none;
}
.w-calc-float.is-open .w-cf-icon::before{ animation:none; opacity:0; }
.w-calc-float:hover{ transform:none; }
@keyframes wCfPulse{ 0%{ transform:scale(.85); opacity:.7; } 100%{ transform:scale(1.35); opacity:0; } }
@media (max-width:560px){
  .w-calc-float{ height:52px; max-width:52px; right:calc(16px + env(safe-area-inset-right)); bottom:calc(82px + env(safe-area-inset-bottom)); }
  .w-calc-float.is-open, .w-calc-float:focus-visible{ max-width:calc(100vw - 32px); }
  .w-cf-icon{ flex-basis:52px; width:52px; height:52px; }
  .w-cf-label{ padding-left:20px; }
  .w-cf-label b{ font-size:13px; }
}
body.w-lb-lock .w-calc-float{ opacity:0 !important; pointer-events:none !important; }

@media (prefers-reduced-motion: reduce){
  .w-cf-icon::before{ animation:none !important; }
  .w-calc-float, .w-cf-label{ transition:opacity .3s ease !important; transform:none !important; }
}
