/*
 * Smartfix interaction language
 * Calm controls are the default. The animated sheen is reserved for paid,
 * premium, access-request and booking actions that deserve extra attention.
 */

/* Cancel older broad sheen rules without changing each component's colour,
   size, border, hover lift or other established design. */
.button::before,
.button::after,
.start-button::before,
.start-button::after,
.smartfix-admin-access::before,
.smartfix-admin-access::after {
  content: none !important;
  animation: none !important;
}

/* The splash-page teal hover and animated underline, shared by top navigation. */
header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button) {
  position: relative;
  color: inherit;
  text-decoration: none;
  transition: color .2s ease, text-shadow .2s ease;
}

header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg,#41e1d6,#27a9dc);
  transition: right .28s ease;
}

header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button):hover,
header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button):focus-visible {
  color: #59e6dc !important;
  text-shadow: 0 0 18px rgba(65,225,214,.55);
}

header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button):hover::after,
header nav a:not(.button):not(.nav-cta):not(.book):not(.mobile-book):not(.account-button):focus-visible::after {
  right: 0;
}

/* Explicit high-attention actions. */
.attention-action,
.nav-cta,
.book,
.mobile-book,
.js-book,
a[href$="#book"].button,
#repair-form button[type="submit"],
.premium-lab .button,
.premium-nudge .button,
.booking-button,
#booking-form button[type="submit"],
.remote-section #request-session,
#session-form button[type="submit"] {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.attention-action::after,
.nav-cta::after,
.book::after,
.mobile-book::after,
.js-book::after,
a[href$="#book"].button::after,
#repair-form button[type="submit"]::after,
.premium-lab .button::after,
.premium-nudge .button::after,
.booking-button::after,
#booking-form button[type="submit"]::after,
.remote-section #request-session::after,
#session-form button[type="submit"]::after {
  content: "" !important;
  position: absolute;
  z-index: 2;
  top: -35%;
  left: -40%;
  width: 22%;
  height: 180%;
  pointer-events: none;
  background: rgba(255,255,255,.62);
  filter: blur(5px);
  transform: skewX(-20deg);
  animation: smartfix-attention-sheen 3.1s ease-in-out infinite !important;
}

@keyframes smartfix-attention-sheen {
  0%,38% { left: -40%; }
  72%,100% { left: 130%; }
}

@media (prefers-reduced-motion: reduce) {
  header nav a::after { transition: none !important; }
  .attention-action::after,
  .nav-cta::after,
  .book::after,
  .mobile-book::after,
  .js-book::after,
  a[href$="#book"].button::after,
  #repair-form button[type="submit"]::after,
  .premium-lab .button::after,
  .premium-nudge .button::after,
  .booking-button::after,
  #booking-form button[type="submit"]::after,
  .remote-section #request-session::after,
  #session-form button[type="submit"]::after { animation: none !important; }
}
