/* Shared mobile readability rules; loaded after the compact desktop styles. */
@media (max-width: 760px) {
  body { font-size: 16px; line-height: 1.55; }

  main p,
  main li,
  main summary,
  main h3,
  main strong,
  main a,
  .primary-nav a {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }
  main h3,
  main strong { line-height: 1.35 !important; }
  main span { font-size: inherit; }
  main small,
  main figcaption,
  main figcaption span,
  main label,
  main label span,
  .topbar,
  .hero-promises > div,
  .story-highlights > div,
  .faq-heading span,
  .image-note,
  .site-shell main .eyebrow,
  .site-shell main .photo-disclaimer,
  .site-shell main .service-note,
  .site-shell main .field-note,
  .site-shell main .form-note,
  .site-shell main .information-note {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }
  main .eyebrow { letter-spacing: .12em; }
  main .image-note { padding: 4px 10px; }
  main .button,
  .site-footer .button {
    font-size: 16px !important;
    min-height: 46px;
    padding: 11px 18px;
  }
  main .text-link { padding: 10px 16px; }
  .contact-info-grid small { display: block; }
  .contact-info-grid .text-link { margin-top: 10px; }
  main .faq-heading { flex-wrap: wrap; gap: 6px 12px; }
  main summary { padding-top: 12px; padding-bottom: 12px; }
  .common-questions summary { padding-left: 26px; padding-right: 26px; }
  .common-questions summary::before,
  .common-questions summary::after { top: 16px; }
  main .check-list li { padding-left: 25px; margin-bottom: 10px; }
  main .check-list li::before { width: 18px; height: 18px; top: 3px; }

  .service-card,
  .value-card,
  .includes-grid article,
  .topic-card,
  .quick-card,
  .service-value-grid > div,
  .life-value-grid > div,
  .trust-grid > div { padding: 15px 13px; }
  .service-grid,
  .value-grid,
  .includes-grid,
  .topic-grid,
  .quick-grid { gap: 12px; }
  main .topic-card h3 { min-height: 0; }
  main .quick-card h3 { margin-bottom: 8px; }
  main .steps { grid-template-columns: 1fr; gap: 16px; }
  main .steps > div { min-width: 0; }
  main .steps > div::after { display: none; }
  main .steps .step-number { float: none; margin: 0 0 8px; }
  main .getting-started .steps > div,
  main .experience .steps > div { padding: 15px; }

  .life-gallery,
  .rhythm-gallery,
  .spaces-gallery,
  .everyday-gallery,
  .moments-gallery {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 75%);
    overflow-x: auto;
    padding-bottom: 10px;
    gap: 12px;
  }
  main .life-gallery img,
  main .rhythm-gallery img,
  main .spaces-gallery img,
  main .everyday-gallery img,
  main .moments-gallery img { height: 170px; }
  main .serve-card { grid-template-columns: 1fr; }
  main .serve-card > img { height: 210px; min-height: 0; }
  main .serve-card-copy { padding: 18px; }

  main .form-field input,
  main .form-field select,
  main .form-field textarea { font-size: 16px; line-height: 1.5; min-height: 46px; }
  main .slot-field legend,
  main .time-slot span,
  main .request-result dl { font-size: 16px; line-height: 1.5; }
  main .request-panel .form-grid { grid-template-columns: 1fr; gap: 18px; }
  main .request-panel .form-field-wide { grid-column: auto; }

  .site-footer .footer-intro p { font-size: 16px; line-height: 1.55; }
  .site-footer .footer-nav,
  .site-footer .footer-nav a,
  .site-footer .footer-contact,
  .site-footer .footer-contact strong,
  .site-footer .footer-contact small,
  .site-footer .footer-contact span,
  .site-footer .footer-contact a,
  .site-footer .footer-bottom,
  .site-footer .footer-bottom p { font-size: 14px; line-height: 1.5; }
  .site-footer .footer-nav { gap: 12px; }
  .site-footer .footer-contact { gap: 20px; }
  .site-footer .footer-actions { gap: 12px; }
  .site-footer .footer-nav h2 { font-size: 23px; }
}

@media (max-width: 360px) {
  .service-grid,
  .value-grid,
  .includes-grid,
  .service-value-grid,
  .life-value-grid,
  .trust-grid,
  .topic-grid,
  .quick-grid { grid-template-columns: 1fr; }
  .site-footer .footer-main { grid-template-columns: 1fr; }
  .site-footer .footer-nav:nth-of-type(2) { border-top: 1px solid #dfddd7; padding-top: 18px; }
  main .button { white-space: normal; text-align: center; }
}
