/* Motion-only enhancement. Content remains visible without JavaScript. */
:root {
  --motion-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
}
.button,
.floating-booking {
  transition:
    background 300ms var(--motion-ease),
    transform 300ms var(--motion-ease),
    box-shadow 300ms var(--motion-ease);
}
.button > span,
.motion-arrow {
  display: inline-block;
  transition: transform 300ms var(--motion-ease);
}
.service {
  transition:
    background 350ms var(--motion-ease),
    border-color 350ms var(--motion-ease),
    transform 350ms var(--motion-ease);
}
.service-photo,
.team-card > img,
.equipment-photo img,
.studio-photo img {
  transition: transform 500ms var(--motion-ease);
}
.electro-chevron,
.faq summary > span {
  transition:
    transform 350ms var(--motion-ease),
    color 300ms var(--motion-ease);
}
.carousel-controls button {
  transition:
    transform 250ms var(--motion-ease),
    background 300ms var(--motion-ease);
}
.text-link,
.service-more {
  transition:
    border-color 300ms var(--motion-ease),
    color 300ms var(--motion-ease);
}
@media (hover: hover) and (pointer: fine) {
  .service:hover {
    transform: translateY(-2px);
    border-color: #d7bfd0;
  }
  .service:hover .service-photo,
  .team-card:hover > img,
  .equipment-card:hover .equipment-photo img,
  .studio-photo:hover img {
    transform: scale(1.025);
  }
  .button:hover > span,
  .text-link:hover .motion-arrow,
  .service-more:hover .motion-arrow {
    transform: translate(3px, -3px);
  }
  .floating-booking:hover {
    transform: translateY(-2px);
  }
  .carousel-controls button:hover {
    transform: scale(1.04);
  }
}
.button:active,
.floating-booking:active {
  transform: scale(0.98);
}
.carousel-controls button:active {
  transform: scale(0.96);
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  .button,
  .floating-booking,
  .button > span,
  .motion-arrow,
  .service,
  .service-photo,
  .team-card > img,
  .equipment-photo img,
  .studio-photo img,
  .electro-chevron,
  .faq summary > span,
  .carousel-controls button {
    transition: none !important;
    transform: none !important;
    translate: none !important;
  }
}
/* Overlap only the two transitioning reviews, retaining the existing fixed stage size. */
.reviews-stage {
  display: grid;
}
.reviews-stage .carousel-slide {
  grid-area: 1/1;
  min-width: 0;
  min-height: 0;
}

/* Shared restrained illumination for services, masters and equipment. */
.team-card,
.equipment-card {
  transition:
    background 650ms var(--motion-ease),
    border-color 650ms var(--motion-ease);
}
@media (hover: hover) and (pointer: fine) {
  .team-card:hover,
  .equipment-card:hover {
    background: var(--pink);
    border-color: #d7bfd0;
  }
}
@media (max-width: 720px) and (prefers-reduced-motion: no-preference) {
  .service,
  .team-card,
  .equipment-card {
    transition:
      background 750ms var(--motion-ease),
      border-color 750ms var(--motion-ease);
  }
  .service.motion-in-focus,
  .team-card.motion-in-focus,
  .equipment-card.motion-in-focus {
    background: var(--pink);
    border-color: #d7bfd0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .team-card,
  .equipment-card {
    transition: none !important;
  }
}
