/* Shared maintenance layer — 2026-08-13 */
:root { -webkit-font-smoothing: antialiased; }
h1, h2, h3 { text-wrap: balance; }
p, li { text-wrap: pretty; }
.hamburger, .close-btn, .mobile-search-btn, .search-close, .faq-question { min-width: 40px; min-height: 40px; }
.hamburger:focus-visible, .close-btn:focus-visible, .mobile-search-btn:focus-visible, .search-close:focus-visible,
.footer a:focus-visible, .route-card:focus-visible, .blog-filter:focus-visible, .blog-search-input:focus-visible {
  outline: 3px solid #ffb38f; outline-offset: 3px;
}
.hero-buttons .btn-primary, .hero-buttons .btn-secondary { transition-property: transform, background-color, border-color, box-shadow; }
.hero-buttons .btn-primary:active, .hero-buttons .btn-secondary:active, .footer-actions a:active, .blog-filter:active { transform: scale(0.96); }
.route-statewide { margin: 1.25rem 0 0; text-align: right; }
.route-statewide a { color: #5b36aa; font-weight: 700; }
.route-card { min-height: 148px; }
.route-arrow { font-size: 1.4rem; font-weight: 700; color: var(--route-accent); }
.footer.footer-compact { background: #12182c; color: #eef0f8; padding: 3.25rem 0 1.5rem; }
.footer-compact .footer-content { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.05fr; gap: clamp(1.5rem, 3vw, 3rem); margin-bottom: 2rem; }
.footer-compact h2 { color: #ff8a5b; font-family: inherit; font-size: 0.95rem; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 1rem; }
.footer-compact p, .footer-compact li { color: #d9ddeb; font-size: 0.93rem; line-height: 1.65; }
.footer-compact ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.footer-compact a { color: #f3f4fb; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.footer-compact a:hover { color: #ff9b73; }
.footer-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.footer-actions a { display: inline-flex; min-height: 40px; align-items: center; padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; text-decoration: none; }
.footer-registration { padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.14); }
.footer-compact .footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding-top: 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; text-align: left; }
.footer-compact .footer-bottom p { margin: 0; font-size: .8rem; color: #b8bfd3; }
.blog-discovery { padding: 2.5rem 0; background: linear-gradient(135deg,#f7f2ff,#fff7f0); }
.blog-discovery-panel { max-width: 980px; margin: 0 auto; padding: clamp(1.25rem,3vw,2.25rem); background: #fff; border-radius: 22px; box-shadow: 0 12px 38px rgba(52,35,92,.09); }
.blog-discovery-kicker { margin: 0 0 .35rem; color: #6b46c1; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; }
.blog-discovery h2 { margin: 0 0 .5rem; color: #1e293b; }
.blog-search-label { display: block; margin: 1.25rem 0 .45rem; font-weight: 700; color: #263248; }
.blog-search-input { width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid #c9cfdd; border-radius: 12px; font: inherit; color: #182033; background: #fff; }
.blog-filter-list { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.blog-filter { min-height: 40px; padding: .5rem .8rem; border: 1px solid #d6d4e8; border-radius: 999px; background: #fff; color: #3f3b55; font: inherit; font-weight: 700; cursor: pointer; }
.blog-filter.is-active { background: #6b46c1; border-color: #6b46c1; color: #fff; }
.blog-filter-status { min-height: 1.5em; margin: .8rem 0 0; color: #5d6575; font-size: .9rem; }
.article-card[hidden] { display: none !important; }
.error-page { min-height: 60vh; display: grid; align-items: center; padding: 5rem 0; background: linear-gradient(135deg,#f7f2ff,#fff7f0); }
.error-card { max-width: 820px; margin: 0 auto; padding: clamp(1.5rem,5vw,4rem); border-radius: 28px; background: #fff; box-shadow: 0 20px 60px rgba(50,35,90,.12); text-align: center; }
.error-code { color: #6b46c1; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
.error-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1rem; border-radius: 999px; background: #6b46c1; color: #fff; font-weight: 700; text-decoration: none; }
.error-actions a.secondary { background: #fff; color: #5b36aa; border: 1px solid #b8addb; }
@media (min-width: 1261px) and (max-width: 1320px) {
  .header .nav { padding-inline: 20px; }
  .header .logo-text { font-size: 1.1rem; }
  .header .nav-menu { gap: .8rem; }
  .header .nav-menu a { font-size: .9rem; }
  .header .nav-menu .book-appointment-btn { padding: 12px 15px !important; }
}
@media (max-width: 900px) { .footer-compact .footer-content { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) {
  .whatsapp-float { display: none !important; }
  .footer-compact .footer-content { grid-template-columns: 1fr; }
  .footer-compact .footer-bottom { display: grid; text-align: center; }
  .route-statewide { text-align: left; }
  .route-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
