/* Responsive text and touch navigation, shared by every page. */
@media (max-width: 1024px) {
  .pagehero h1, .survey-hero h1 {
    font-size: clamp(30px, 7.8vw, 64px);
    overflow-wrap: anywhere;
    hyphens: manual;
  }
  main h2, main h3, .price, .card, .contactinfo {
    overflow-wrap: anywhere;
    hyphens: auto;
  }
  .story > *, .cards > *, .contact > *, .pricegrid > *, .process > *, .foot > * {
    min-width: 0;
  }
  .actions { flex-wrap: wrap; }
  input, textarea, select { min-width: 0; font-size: 16px; }
  .header .nav { width: calc(100% - 38px); gap: 12px; height: 72px; }
  .header .brand { font-size: clamp(18px, 3vw, 27px); flex-shrink: 1; min-width: 0; }
  .header .brand small { font-size: clamp(5.5px, 1.6vw, 8px); }
  .header .nav:after { display: none; }
  .header .menu { display: none; }
  .header .menu-toggle { display: block; flex: 0 0 44px; }
  .header.menu-open .menu {
    display: flex; position: absolute; top: 72px; left: 0; right: 0;
    flex-direction: column; flex-wrap: nowrap; align-items: stretch;
    justify-content: flex-start; gap: 0; padding: 12px 19px 20px;
    background: rgba(255,255,255,.98); border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 24px rgba(20,30,25,.10);
    max-height: calc(100vh - 72px); max-height: calc(100dvh - 72px);
    overflow-y: auto; overscroll-behavior: contain;
    padding-bottom: max(20px, env(safe-area-inset-bottom));
  }
  .header.menu-open .menu a {
    display: flex; flex-shrink: 0; align-items: center; min-height: 48px;
    padding: 12px 0; font-size: 16px; line-height: 1.4;
    white-space: normal; letter-spacing: normal; border-bottom: 1px solid var(--line);
  }
  .header.menu-open .menu .active:after { display: none; }
  .header.menu-open .menu .btn {
    justify-content: center; min-height: 48px; margin-top: 14px;
    padding: 12px 20px; font-size: 14px; color: #fff; border: 1px solid var(--green);
  }
}
