/* Small-screen adjustments; the existing palette and desktop dimensions remain authoritative. */
:root { --touch-target: 44px; }
.mobile-table-scroll { display: contents; }
.mobile-table-hint { display: none; }
.drawer { visibility: hidden; overflow: hidden; }
.drawer.open { visibility: visible; }
html.menu-open { overflow: hidden; }
.drawer-inner { overscroll-behavior: contain; }

@media (max-width: 940px) {
  .menu-btn, .drawer [data-close] {
    min-width: var(--touch-target); min-height: var(--touch-target);
    align-items: center; justify-content: center; flex-shrink: 0;
  }
  .drawer-inner { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
  .drawer a { min-height: var(--touch-target); flex-shrink: 0; }
  .drawer .btn { white-space: normal; text-align: center; }
  .drawer .btn svg { flex-shrink: 0; }
}

@media (max-width: 600px) {
  .btn, .apply-btn {
    min-height: var(--touch-target); max-width: 100%;
    white-space: normal; overflow-wrap: anywhere; text-align: center;
  }
  .btn svg { flex-shrink: 0; }
  .a11y-btn, .filter-btn, .filter-chip, .anchor-row a, .footer-social a {
    min-height: var(--touch-target); min-width: var(--touch-target);
  }
  .a11y-bar-inner { gap: var(--gap-xs) var(--gap-sm); }
  .a11y-group { flex-wrap: wrap; }
  .post-layout, .legal-layout { grid-template-columns: minmax(0, 1fr); }
  .post-body, .post-side, .legal-body, .footer-dl dd { min-width: 0; overflow-wrap: anywhere; }
  .mid-cta-text, .inline-cta .cta-text { min-width: 0; flex-basis: 100%; }
  .inline-cta { padding: var(--gap-md); }
  .inline-cta .cta-actions, .mid-cta .btn { max-width: 100%; }
  .inline-cta .cta-actions { width: 100%; }
  .submit-row .btn { min-width: 0; width: 100%; }
  .form-row input, .form-row select, .form-row textarea { min-width: 0; max-width: 100%; font-size: var(--fs-body); }
  .form-row label { flex-wrap: wrap; }
  .channel-card, .form-wrap { min-width: 0; }
  .officer-meta { grid-template-columns: 1fr; padding: var(--gap-sm); }
  .officer-meta dd { margin-bottom: var(--gap-xs); }
  .footer-dl { column-gap: var(--gap-xs); }
  .promise-grid, .msg-related .grid { grid-template-columns: minmax(0, 1fr); }
  .audience-switch { position: static; }
  .audience-tab { min-width: 0; min-height: var(--touch-target); }
  .cat-item details summary, .faq summary { min-height: var(--touch-target); }
  .flow-arrows { display: none; }
  .flow-targets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow-target { font-size: var(--fs-xs); line-height: 1.7; }
  .mobile-table-scroll {
    display: block; max-width: 100%; min-width: 0; overflow-x: auto;
    -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain;
    margin-block: var(--gap-md);
  }
  .mobile-table-hint {
    display: block; font-size: var(--fs-xs); color: var(--ink-2);
    padding-bottom: var(--gap-xs);
  }
  .mobile-table-scroll > table { min-width: 560px; margin-block: 0; }
  .mobile-table-scroll:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
  .float-cta {
    width: auto; max-width: none; gap: var(--gap-xs);
    padding: var(--gap-xs); bottom: max(8px, env(safe-area-inset-bottom));
    border-radius: var(--r-md);
  }
  .float-cta .float-cta-text-long { display: none; }
  .float-cta .btn { min-width: 0; padding: var(--gap-xs); flex: 1 1 0; font-size: var(--fs-xs); }
  .float-cta .btn + .btn { margin-left: 0; }
  .float-cta .float-cta-close { width: var(--touch-target); height: var(--touch-target); margin-left: 0; flex: 0 0 var(--touch-target); }
  body:has(.float-cta) { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .cta-triple[style], .steps[style], .cat-grid[style], .blog-list-grid[style] { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 480px) {
  .check-grid, .cat-grid, .price-grid { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { line-height: 1.4; }
  .cta-final { padding-inline: var(--gap-md); }
  .conclusion-box, .worry-list { padding-inline: var(--gap-sm); }
  .flow-card { padding-inline: var(--gap-sm); }
  .branch-card { padding-inline: var(--gap-md); }
}
