/* Motion and states that Framer's runtime used to provide. */

html { scroll-behavior: smooth; }

/* Button label roll on hover (Framer's CSS only flips it; this animates it). */
@media (hover: hover) {
  .framer-LWDPL .framer-1hhkatf > * { transition: transform .35s cubic-bezier(.22,1,.36,1); }
  .framer-LWDPL:hover .framer-1hhkatf > * { transform: translateY(calc(-100% - 10px)); }
}

/* Endorsement photo cards lift on hover. */
@media (hover: hover) {
  .framer-wyh500, .framer-1c5jhph, .framer-jqty50, .framer-1skawyq {
    transition: transform .4s cubic-bezier(.3,1.25,.6,1), box-shadow .4s ease;
  }
  .framer-wyh500:hover, .framer-1c5jhph:hover, .framer-jqty50:hover, .framer-1skawyq:hover {
    transform: translateY(-8px) scale(1.03);
    box-shadow: 0 0 44px rgba(96, 52, 176, .42);
  }
}

/* D'lux Suite on phones: the design squeezed each description into a 1px column; stack them. */
@media (max-width: 809.98px) {
  .framer-1qw1p4m, .framer-qt30jd, .framer-1sytemp { flex-direction: column !important; align-items: stretch !important; }
  .framer-crrkm3-container, .framer-ld3o-container, .framer-1czeu07-container {
    width: 100% !important; height: auto !important; aspect-ratio: 480 / 352;
  }
  .framer-1srec3g, .framer-1bsepoi, .framer-16h3qot { flex: none !important; width: 100% !important; }
}

/* Slow spin behind the hero and the bobbing scroll cue. */
.framer-q5ecxp { animation: cal-spin 12s linear infinite; }
.framer-1mwerlq { animation: cal-spin-centred 12s linear infinite; }
.framer-15qs65m, .framer-1xlmj5 { animation: cal-bob .9s cubic-bezier(.42,0,.58,1) infinite alternate; }
@keyframes cal-spin { to { rotate: 360deg; } }
@keyframes cal-spin-centred {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes cal-bob { to { translate: 0 8px; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .framer-q5ecxp, .framer-1mwerlq, .framer-15qs65m, .framer-1xlmj5 { animation: none; }
}

/* FAQ */
[data-framer-name="Answer"][hidden] { display: none !important; }
[data-framer-name="Icon Holder"] > div { transition: transform .3s cubic-bezier(.22,1,.36,1); }

/* Phone menu: the three lines fold into an X. */
.framer-tpF2z .framer-1p0y4dr, .framer-tpF2z .framer-189pjhq, .framer-tpF2z .framer-1xgtgyx {
  transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .2s;
}
.framer-tpF2z.cal-open .framer-1p0y4dr { transform: translateY(9px) rotate(45deg) !important; }
.framer-tpF2z.cal-open .framer-189pjhq { transform: translateY(-9px) rotate(-45deg) !important; }
.framer-tpF2z.cal-open .framer-1xgtgyx { opacity: 0 !important; }
.cal-menu {
  position: fixed; left: 0; right: 0; z-index: 100;
  display: flex; flex-direction: column; padding: 4px 20px 12px;
  background: #000; border-bottom: 1px solid #222;
  font: 500 17px/1.3 "Inter", "Inter Display", -apple-system, "Helvetica Neue", Arial, sans-serif;
}
.cal-menu[hidden] { display: none; }
.cal-menu a { padding: 14px 0; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.cal-menu a:last-child { border-bottom: 0; }
