/* ==========================================================================
   <= 600px  phones
   ========================================================================== */
@media (max-width: 600px) {

  /* Stop iPhones from zooming the page in when a field is tapped */
  input,
  select,
  textarea {
    font-size: 16px;
  }

  /* ----- header ----- */
  header {
    padding: 8px 14px;
  }
  header h1,
  .petsmart .brand-text {
    font-size: 20px;
  }
  .petsmart .logo {
    width: 44px;
  }

  /* ----- login / register / verify / reset pages + profile: side padding ----- */
  main:not(.main-content) {
    padding-left: 14px;
    padding-right: 14px;
  }
  main:has(> .login-shell) {
    padding-top: 28px;
    padding-bottom: 28px;
  }
  .login-shell {
    max-width: 100%;
  }
  .card-wrapper {
    padding: 14px;
    border-radius: 24px;
  }
  .login-card {
    padding: 22px 16px 20px;
    border-radius: 20px;
  }
  .card-header {
    margin-bottom: 22px;
  }
  .card-header h2 {
    font-size: 23px;
  }

  /* ----- landing + homepage ----- */
  .texth {
    padding: 22px 20px 0;
  }
  .texth h1 {
    font-size: 28px;
    letter-spacing: 1px;
  }
  .texth p {
    font-size: 16px;
    letter-spacing: 0.5px;
  }
  .btnbook {
    font-size: 18px;
    padding: 11px 18px;
  }
  .imgh {
    padding: 0 20px 22px;
  }
  #why,
  #services {
    padding-left: 16px;
    padding-right: 16px;
  }
  #why h2,
  #services h2,
  #about h2,
  #contact h2 {          /* #contact = homepage contact section (was #about) */
    font-size: 24px;
  }
  .why-container,
  #services .services-container {
    gap: 20px;
  }
  .why-card,
  #services .serve {
    width: 100%;
    max-width: 290px;
    padding: 28px 22px;
  }
  #about,
  #contact {
    padding: 28px 12px;
  }
  .about-container {
    padding: 6px;
    border-width: 4px;
  }
  .contact {
    padding: 12px;
  }
  .contact h3 {
    font-size: 22px;
  }
  .contact p {
    font-size: 16px;
    align-items: flex-start;
  }
  .opening td {
    font-size: 14px;
    padding: 6px 4px;
  }

  /* ----- chat window ----- */
  .chat-widget {
    right: 14px;
    bottom: 14px;
  }
  .chat-widget .chat-panel {
    width: min(360px, calc(100vw - 28px));
    height: min(480px, calc(100vh - 100px));
    height: min(480px, calc(100dvh - 100px));
  }

  /* ----- services pages ----- */
  .page-frame {
    padding: 22px 14px 44px;
  }
  .service-panel {
    padding: 0;
  }
  .service-header {
    gap: 12px;
    margin-bottom: 20px;
  }
  .service-header h2 {
    font-size: 22px;
  }
  .package-card {
    padding: 22px 18px;
    border-radius: 22px;
  }
  .package-card__top {
    gap: 16px;
  }
  .package-card h3 {
    font-size: 20px;
  }
  .package-meta {
    margin-top: 20px;
    gap: 16px;
  }
  .package-meta h4 {
    font-size: 26px;
  }
  .section-title {
    font-size: 15px;
    letter-spacing: 0.14em;
  }
  .service-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .mini-card {
    padding: 22px 18px;
  }

  /* ----- booking ----- */
  .booking-layout {
    gap: 20px;
  }
  .booking-card {
    padding: 22px 16px;
    border-radius: 22px;
  }
  .summary-panel {
    padding: 22px 18px;
    border-radius: 22px;
  }
  .step-actions {
    flex-wrap: wrap;
  }
  .receipt-box {
    padding: 18px 16px;
  }

  /* ----- profile ----- */
  main:has(> .account-info) {
    gap: 1.25rem;
  }
  .account-info,
  .schedule,
  .history-card {
    padding: 14px;
  }
  .section-header-row {
    flex-wrap: wrap;
    gap: 10px;
  }
  .appt-row {
    flex-wrap: wrap;
  }
  .appt-row .appt-text {
    flex: 1 1 140px;
    min-width: 0;
  }
  .appt-row .cancel-btn {
    margin-left: auto;
  }
  .two-col {
    gap: 1.25rem;
  }
  .modal-box {
    padding: 1.2rem 1.1rem;
    max-height: 90vh;
    max-height: 90dvh;
  }
  .form-row-2 {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  /* ----- admin ----- */
  .main-content {
    padding: 16px 14px 24px;
    gap: 16px;
  }
  .stat-card {
    padding: 14px 16px;
  }
  .reports-header {
    flex-wrap: wrap;
    gap: 12px;
  }
  .reports-actions {
    width: 100%;
  }
  .reports-actions .range-filter {
    flex: 1 1 auto;
    min-width: 0;
  }
}
