/* Quick actions: a small stack on the right (Schedules / Rules / Back to Top) that appears once the
   visitor has scrolled past the hero. Which buttons exist is decided per page in the markup, never here. */
.qa { position: fixed; right: max(14px, env(safe-area-inset-right, 0px)); bottom: max(18px, env(safe-area-inset-bottom, 0px)); z-index: 90;
  display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin: 0; padding: 0;
  opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .25s, transform .25s; }
.qa.is-on { opacity: 1; transform: none; pointer-events: auto; }
.qa[hidden] { display: none; }
.qa-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 999px;
  background: rgba(7,23,47,0.94); border: 1px solid rgba(125,182,255,0.55); color: #fff; font-family: var(--font-body, 'Barlow', sans-serif); font-size: 14px; font-weight: 600;
  text-decoration: none; box-shadow: 0 6px 20px rgba(0,0,0,0.35); cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.qa-btn:hover { background: #0F3A8A; border-color: #9CCAFF; }
.qa-btn:focus-visible { outline: 2px solid #9CCAFF; outline-offset: 3px; }
.qa-social { width: 48px; height: 48px; padding: 0; border-radius: 50%; }
.qa-social svg { width: 20px; height: 20px; }
.qa-top { width: 44px; padding: 0; font-size: 18px; line-height: 1; margin-top: 10px; }  /* breathing room above the arrow */
.qa-top span { position: absolute; left: -9999px; }
html.menu-open .qa { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .qa { transition: none; } }

/* phones: one compact 44px row at the bottom-right so the controls cover only a thin band, never a column of reading text;
   hidden while the menu is open or while a form field has focus */
@media (max-width: 640px) {
  /* vertical stack on the right, clear of Safari's bottom controls; hidden while the menu is open or a field has focus */
  .qa { flex-direction: column; align-items: flex-end; gap: 8px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); }
  .qa-social { width: 44px; height: 44px; } .qa-social svg { width: 18px; height: 18px; }
  .qa-top { margin-top: 4px; }
}
html.qa-hide .qa { opacity: 0; pointer-events: none; }
