/* Keyboard affordances shared by the academy and standalone service pages. */
.a11y-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
html { scroll-padding-block: 110px calc(180px + env(safe-area-inset-bottom)); }
.a11y-skip {
  position: fixed; top: 10px; left: 14px; z-index: 20000;
  padding: 12px 18px; background: #fff; color: #111315;
  transform: translateY(-180%); text-decoration: underline;
}
.a11y-skip:focus { transform: none; }
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #111315 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #fff !important;
}
.trial-choice-grid input:focus-visible + span,
.trial-slot-grid input:focus-visible + span {
  outline: 3px solid #111315 !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff !important;
}
body footer { flex-wrap: wrap; }
.a11y-footer-link { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.a11y-service-footer { display: flex; justify-content: center; gap: 24px; padding: 20px; background: #111315; color: #fff; text-align: center; }
.branch-accessibility { width: min(1100px, calc(100% - 40px)); margin: 22px auto; padding: 20px; border: 1px solid #d8d1c7; border-radius: 10px; background: #f4f1eb; color: #111315; }
.branch-accessibility h2 { font-size: 23px; line-height: 1.4; margin: 0 0 10px; letter-spacing: normal; }
.branch-accessibility p { color: #4e4943; line-height: 1.7; }
.branch-accessibility a { color: #8b171c; text-decoration: underline; }
.accessibility-table-wrap { overflow-x: auto; }
#accessibility { grid-column: 1 / -1; }
.accessibility-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.accessibility-table caption { text-align: start; font-weight: 700; padding-block: 12px; }
.accessibility-table th, .accessibility-table td { padding: 12px; border: 1px solid #c5bcae; text-align: start; vertical-align: top; }
.accessibility-table th { background: #e9e4dc; color: #111315; }
@media (max-width: 1050px) {
  body footer { padding-bottom: calc(180px + env(safe-area-inset-bottom)) !important; }
  .a11y-service-footer { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* October 2026 audit: contrast on solid backgrounds. */
body .why-head p, body .why-grid article p, body .team-heading p,
body .faq-intro p, body .first-visit li small { color: #595550 !important; }
body footer > p { color: #bdb9b2 !important; }
body .google-stars, body .review-stars { color: #815b00 !important; }
body .lang-switch > span { color: #bdb9b2 !important; }
body .review-summary { margin: 0; line-height: 1.7; }
body #sales { grid-column: 1 / -1; }
body #sales a { overflow-wrap: anywhere; }
