/* Extra effects are layered over the original design and its animations. */
:root {
  --ed-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
}
.ed-ambient-light {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  contain: paint;
}
.ed-ambient-light i {
  position: absolute;
  width: min(65vw, 740px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    #eb100024,
    #eb10000b 38%,
    transparent 68%
  );
  animation: ed-light-drift 16s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.ed-ambient-light i:first-child {
  left: -25%;
  top: -45%;
}
.ed-ambient-light i:last-child {
  right: -20%;
  bottom: -65%;
  animation-delay: -8s;
  animation-direction: alternate-reverse;
}
.ed-ambient-light.ed-in-view i {
  animation-play-state: running;
}
@keyframes ed-light-drift {
  from {
    transform: translate3d(-4%, 0, 0) scale(0.9);
    opacity: 0.45;
  }
  to {
    transform: translate3d(16%, 12%, 0) scale(1.15);
    opacity: 1;
  }
}

.ed-polished-button {
  position: relative;
  isolation: isolate;
}
/* A dedicated decorative layer leaves existing arrow and pseudo effects intact. */
.ed-polished-button .ed-button-sheen {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: inherit;
  pointer-events: none;
  overflow: hidden;
  background: transparent;
}
.ed-button-sheen::before {
  content: "";
  position: absolute;
  inset: -20% -60%;
  background: linear-gradient(
    110deg,
    transparent 40%,
    #ffffff35 49%,
    transparent 58%
  );
  transform: translateX(-60%);
  transition: transform 850ms var(--ed-motion-ease);
}
@media (prefers-reduced-motion: no-preference) {
  .ed-polished-button:is(:hover, :focus-visible) .ed-button-sheen::before {
    transform: translateX(60%);
  }
  :is(a, button):active:not(:disabled) {
    scale: 0.98;
  }
  .faq details {
    interpolate-size: allow-keywords;
  }
  .faq details::details-content {
    height: 0;
    opacity: 0;
    overflow: clip;
    transition:
      height 420ms var(--ed-motion-ease),
      opacity 300ms,
      content-visibility 420ms allow-discrete;
  }
  .faq details[open]::details-content {
    height: auto;
    opacity: 1;
  }
  .ed-enquiry-option {
    transition:
      border-color 250ms,
      background-color 250ms,
      box-shadow 250ms;
  }
  .ed-enquiry-screen {
    animation-duration: 360ms;
    animation-timing-function: var(--ed-motion-ease);
  }
  .ed-enquiry-option:has(input:checked) {
    box-shadow: inset 3px 0 #eb1000;
  }
  .ed-enquiry-track > * {
    transition: width 550ms var(--ed-motion-ease);
  }
}
@media (max-width: 760px) {
  .ed-ambient-light i {
    width: 105vw;
  }
  .ed-ambient-light i:first-child {
    top: -15%;
    left: -70%;
  }
  .ed-ambient-light i:last-child {
    right: -65%;
    bottom: -10%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ed-ambient-light {
    display: none;
  }
  .ed-button-sheen {
    display: none;
  }
}
