/* Small-screen corrections; retain original grids, type and colors. */
[data-table-scroll] { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
[data-table-scroll]:focus-visible { outline: 2px solid var(--moss); outline-offset: 4px; }
@media (max-width: 768px) {
  .hero-content { padding-inline: var(--gutter); }
  [data-table-scroll] .schedule-table { min-width: 600px; }
  .nav-toggle { width: 44px; height: 44px; flex-shrink: 0; }
  .nav-cta { width: auto; flex-shrink: 0; }
}
@media (max-width: 380px) {
  .site-header { padding-inline: 16px; }
  .site-header .logo { font-size: 1.2rem; gap: 0.35rem; }
  .nav-cta { padding: 0.6rem 0.75rem; font-size: 0.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
/* Readable text inside light cards on a dark section, and over photo banners. */
.section-moss .feature-card h3 { color: var(--moss-dark); }
.discount-banner p:not(.kicker) { color: var(--lark); }
.contact-card-icon { color: var(--moss); }
:root { --stone: #626B5E; --clay-readable: #9F5B41; }
.btn-primary, .pricing-badge { background: var(--clay-readable); border-color: var(--clay-readable); }
.btn-ghost { color: var(--clay-readable); }
.kicker, .hero-content .kicker, .team-role, .single-content a { color: var(--clay-readable); }
.section-moss .kicker, .discount-banner .kicker { color: var(--clay-light); }
@media (max-width: 1100px) {
  .nav-links {
    position: fixed; top: 68px; left: 0; right: 0;
    background: var(--lark); border-bottom: 1px solid var(--line);
    flex-direction: column; padding: 1rem; gap: 0.25rem;
    transform: translateY(-110%); opacity: 0;
    transition: all var(--dur) var(--ease); pointer-events: none;
  }
  .nav-links.open { transform: none; opacity: 1; pointer-events: auto; }
  .nav-link { width: 100%; text-align: center; padding: 0.75rem; }
  .nav-toggle { display: flex; width: 44px; height: 44px; }
  .nav-cta { width: auto; flex-shrink: 0; }
}

@media (max-width: 520px) {
  .single-content h1 { overflow-wrap: break-word; hyphens: auto; }
}
@media (max-width: 360px) { .single-content h1 { font-size: 2rem; } }

/* Keep footer navigation balanced on phones, with the brand above it. */
@media (max-width: 900px) {
  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1.25rem;
    row-gap: 2rem;
    align-items: start;
  }
  .footer-brand { grid-column: 1 / -1; max-width: 36rem; }
  .footer-col { min-width: 0; }
  .footer-col h4 { margin-bottom: .75rem; }
  .footer-col ul li { overflow-wrap: anywhere; }
  .footer-col ul a { display: inline-block; padding: .25rem 0; }
}
@media (max-width: 600px) {
  .site-footer { padding-top: 2.5rem; }
  .footer-grid { column-gap: .875rem; row-gap: 2rem; }
  .footer-col h4 { font-size: .95rem; }
  .footer-col ul li, .footer-col ul a { font-size: .8rem; line-height: 1.6; }
  .footer-col ul li { margin-bottom: .5rem; }
  .footer-bottom { margin-top: 2rem; padding: 1.5rem 3rem; font-size: .75rem; }
}
@media (max-width: 379px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-col:last-child { grid-column: 1 / -1; text-align: center; }
  .footer-col ul li, .footer-col ul a { font-size: .875rem; }
}
