/* Clear glass: the surface stays transparent; light is concentrated at the rim. */
.button,
.hero .button,
.header .header-phone,
.source-faithful .mobile-contact,
.header .menu-toggle {
  color: #103347;
  font-weight: 600;
  border: 1px solid rgba(255, 255, 255, .64);
  border-radius: 18px;
  background: linear-gradient(118deg, #ffffff1c 0%, #ffffff00 38%, #a8ced709 65%, #ffffff24 100%);
  -webkit-backdrop-filter: blur(3px) saturate(150%) brightness(97%);
  backdrop-filter: blur(3px) saturate(150%) brightness(97%);
  box-shadow:
    inset 1px 1px 1px #ffffffeb,
    inset -1px -1px 1px #365a7338,
    inset 0 0 0 1px #ffffff1f,
    0 2px 3px #173f4c12,
    0 8px 22px #173f4c20;
  text-shadow: 0 1px 1px #ffffffb3;
  transition: background 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}
.button, .header .menu-toggle, .support-film-play { position: relative; }
/* The edge and the surface reflect the pointer's actual position. */
.glass-surface { --glass-x: 50%; --glass-y: 20%; --glass-angle: 135deg; --glass-active: 0; isolation: isolate; }
.glass-surface::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from var(--glass-angle), #ffffff14 0deg, #33597670 70deg, #ffffffed 125deg, #ffffff26 180deg, #33597638 230deg, #fff 300deg, #ffffff14 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
}
.glass-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(75px 48px at var(--glass-x) var(--glass-y), #ffffffdb 0%, #ffffff61 25%, #ffffff00 76%),
    linear-gradient(var(--glass-angle), #ffffff00 24%, #ffffff03 38%, #ffffff80 47%, #ffffff26 51%, #ffffff00 65%);
  opacity: var(--glass-active);
  pointer-events: none;
  transition: opacity 220ms ease;
}
.glass-surface:focus-visible { --glass-active: .75; }
.header .menu-toggle { padding: 8px; border-radius: 14px; align-items: center; }

@media (hover: hover) {
  .button:hover,
  .hero .button:hover,
  .header .header-phone:hover,
  .source-faithful .mobile-contact:hover,
  .header .menu-toggle:hover {
    color: #103347;
    background: linear-gradient(118deg, #ffffff30, #ffffff05 38%, #b0d7e00d 65%, #ffffff30);
    box-shadow: inset 1px 1px 1px #fff, inset -1px -1px 1px #365a7347, 0 3px 5px #173f4c14, 0 10px 26px #173f4c2b;
    transform: translateY(-1px);
  }
}
.button:active,
.hero .button:active,
.header .header-phone:active,
.source-faithful .mobile-contact:active,
.header .menu-toggle:active {
  transform: scale(.985);
  box-shadow: inset 1px 1px 2px #365a7326, inset -1px -1px 1px #ffffffa6, 0 2px 8px #173f4c20;
}
.button:focus-visible,
.mobile-contact:focus-visible,
.menu-toggle:focus-visible,
.route-tabs button:focus-visible {
  outline: 3px solid #33779f;
  outline-offset: 4px;
}

.source-faithful .route-tabs {
  border: 1px solid #ffffff80;
  border-radius: 20px;
  background: linear-gradient(115deg, #ffffff14, #ffffff00 60%, #ffffff1a);
  -webkit-backdrop-filter: blur(3px) saturate(150%);
  backdrop-filter: blur(3px) saturate(150%);
  box-shadow: inset 1px 1px 1px #ffffffcc, inset -1px -1px 1px #365a7326, 0 5px 16px #173f4c14;
}
.source-faithful .route-tabs button {
  position: relative;
  border: 1px solid transparent;
  border-radius: 13px;
  color: #38556a;
  background: transparent;
  box-shadow: none;
}
.source-faithful .route-tabs button[aria-selected="true"] {
  color: #103347;
  font-weight: 700;
  background: linear-gradient(120deg, #8cbdcb24, #ffffff0a 55%, #ffffff30);
  border-color: #ffffffa6;
  box-shadow: inset 1px 1px 1px #fffffff0, inset -1px -1px 1px #365a7338, 0 2px 8px #173f4c20;
}

.support-film-play {
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, #ffffff21, #ffffff00 50%, #ffffff14);
  border: 1px solid #ffffff9e;
  -webkit-backdrop-filter: blur(3px) saturate(150%);
  backdrop-filter: blur(3px) saturate(150%);
  box-shadow: inset 1px 1px 1px #ffffffeb, inset -1px -1px 1px #071d334d, 0 8px 24px #071d3333;
}
.support-film-play svg { filter: drop-shadow(0 1px 3px #071d33b3); }

@media (max-width: 760px) {
  .header .header-phone,
  .header .header-phone:hover,
  .header .header-phone:active {
    border: 0;
    border-radius: 0;
    background: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
    transform: none;
  }
  .header .header-phone::before, .header .header-phone::after { content: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .button, .hero .button, .source-faithful .mobile-contact, .header .menu-toggle { background: #e3eff4b3; }
  .support-film-play { background: #10334766; }
}
@media (prefers-reduced-transparency: reduce) {
  .button, .hero .button, .header .header-phone, .source-faithful .mobile-contact,
  .source-faithful .route-tabs, .header .menu-toggle {
    background: #eaf2f7;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .support-film-play { background: #103347; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .button, .hero .button, .header .header-phone, .source-faithful .mobile-contact, .header .menu-toggle, .glass-surface::after { transition: none; }
}
