/* Mobile-only density and ordering improvements. Desktop rules remain untouched. */
@media (max-width: 640px) {
  /* Keep the six primary destinations together in the home introduction. */
  .hero {
    padding-block: 1rem 1.5rem;
  }
  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }
  .hero h1 {
    font-size: clamp(1.75rem, 8vw, 2rem);
    line-height: 1.12;
    margin-bottom: .5rem;
  }
  .hero .lead {
    font-size: .9rem;
    line-height: 1.45;
    margin-bottom: 0;
  }
  .hero .hero-cta {
    gap: .5rem;
    margin-top: .65rem;
  }
  .hero .hero-cta .btn {
    min-height: 44px;
    padding-block: .55rem;
    font-size: .9rem;
  }
  .hero .hero-trust {
    gap: .75rem 1rem;
    margin-top: .75rem;
    padding-top: .65rem;
  }
  .hero .trust-stat .num { font-size: 1.25rem; }
  .hero .trust-stat .label { font-size: .875rem; }
  .hero .hero-card {
    padding: .75rem;
    border-radius: var(--radius-lg);
  }
  .hero .hero-card h3 {
    font-size: .95rem;
    line-height: 1.25;
    margin-bottom: .35rem;
  }
  .hero .hero-card-item {
    min-height: 44px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: .55rem;
    padding: .25rem .1rem;
  }
  .hero .hc-icon {
    width: 36px;
    height: 36px;
  }
  .hero .hc-name { font-size: .9rem; line-height: 1.3; }
  .hero .hc-desc { display: none; }
  .hero .hero-slide-dots { bottom: .25rem; }
  .hero .hero-slide-dot { width: 12px; height: 12px; }

  /* Six cards stay scannable in one column without descriptive copy. */
  .services-page .page-hero { padding-block: .75rem; }
  .services-page .page-hero h1 {
    font-size: 1.75rem;
    line-height: 1.2;
    margin-block: .5rem;
  }
  .services-page .page-hero .lead { font-size: .9rem; line-height: 1.45; }
  .services-page > .section { padding-block: 1.25rem; }
  .services-page .section-head { margin-bottom: .75rem; }
  .services-page .page-hero + .section .grid { gap: .65rem; }
  .services-page .service-card {
    min-height: 0;
    padding: .85rem;
  }
  .services-page .service-card .icon-badge {
    width: 36px;
    height: 36px;
    margin-bottom: .35rem;
  }
  .services-page .service-card h3 {
    font-size: 1rem;
    line-height: 1.3;
    margin-bottom: .25rem;
  }
  .services-page .service-card p { display: none; }
  .services-page .service-card .link-arrow {
    min-height: 44px;
    align-self: flex-start;
    padding-block: .5rem;
    font-size: .875rem;
  }

  /* Put the consultation form first and defer contact details until after it. */
  .contact-page .page-hero { padding-block: .65rem; }
  .contact-page .page-hero h1 {
    font-size: 1.75rem;
    line-height: 1.2;
    margin-block: .35rem;
  }
  .contact-page .page-hero .lead { font-size: .9rem; line-height: 1.4; margin: 0; }
  .contact-page .contact-main { padding-block: .75rem 1.25rem; }
  .contact-page .contact-wrap {
    display: flex;
    flex-direction: column;
    gap: .75rem;
  }
  .contact-page .consultation-card { order: 0; padding: .85rem; }
  .contact-page .contact-wrap > [data-reveal]:first-child { order: 1; }
  .contact-page .consultation-card h3 {
    font-size: 1.05rem;
    line-height: 1.25;
    margin-bottom: .5rem;
  }
  .contact-page .consultation-card .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem .6rem;
  }
  .contact-page .consultation-card .field label { font-size: .875rem; }
  .contact-page .consultation-card .field .input,
  .contact-page .consultation-card .field input,
  .contact-page .consultation-card .field select {
    min-height: 44px;
    padding: .45rem .55rem;
    font-size: .875rem;
  }
  .contact-page .consultation-card .field textarea {
    min-height: 64px;
    height: 64px;
    padding: .45rem .55rem;
    font-size: .875rem;
  }
  .contact-page .consultation-card .field:has(textarea) { grid-column: 1 / -1; }
  .contact-page .consultation-card .btn {
    min-height: 44px;
    margin-top: .55rem !important;
    padding-block: .55rem;
    font-size: .9rem;
  }
  .contact-page .consultation-card form > p { font-size: .875rem !important; margin-top: .5rem !important; }
  .contact-page .contact-wrap > [data-reveal]:first-child h2 {
    font-size: 1.25rem;
    margin-bottom: .5rem;
  }
  .contact-page .contact-item { margin-bottom: .6rem; }

  /* Keep the about story introduction focused before the rest of the page. */
  .about-page .page-hero { padding-block: .75rem; }
  .about-page .page-hero h1 {
    font-size: 1.7rem;
    line-height: 1.2;
    margin-block: .45rem;
  }
  .about-page .page-hero .lead { font-size: .9rem; line-height: 1.45; margin: 0; }
  .about-page .about-story { padding-block: 1.25rem; }
  .about-page .about-story .split { gap: .75rem; }
  .about-page .about-story .frame { display: none; }
  .about-page .about-story h2 { font-size: 1.35rem; margin-bottom: .5rem; }
  .about-page .about-story p { font-size: .9rem; line-height: 1.5; margin-bottom: .5rem; }
}

@media (max-width: 640px) {
  #Pathways { padding-block: 20px; }
  #Pathways .section-head { margin-bottom: 16px; }
  #Pathways .section-head h2 { font-size: 1.35rem; }
  #Pathways .section-head p { display: none; }
  #Pathways .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  #Pathways .service-card { padding: 12px; }
  #Pathways .service-card p { display: none; }
  #Pathways .service-card h3 { font-size: .875rem; line-height: 1.35; }
  #Pathways .service-card .link-arrow { min-height: 44px; font-size: .875rem; }
  #Pathways .service-card .icon-badge { width: 32px; height: 32px; margin-bottom: 8px; }
  .hero .hero-grid { gap: 12px; }
  .opening-contact-inner { font-size: .875rem; gap: 4px 12px; padding-block: 8px; }
}

@media (max-width: 640px) {
  /* The bottom contact bar already occupies the mobile action area. */
  .scroll-top { display: none !important; }
}
