/* A phone layout also applies to narrow portrait tablets. Wide layouts keep
   their existing typography and column arrangements. */
@media (max-width: 760px), (orientation: portrait) and (max-width: 1024px) {
  .wrap { width: min(1160px, calc(100% - 36px)); }
  main :where(.hero-grid, .page-hero-grid, .intro-grid, .split,
    .resource-top, .nationals-grid, .practice-layout, .topic-generator-grid,
    .feature-grid, .format-grid, .activities-grid, .choice-grid, .guide-grid,
    .file-grid, .current-topic-grid, .heading-row, .timer-toolbar,
    .round-notes li, .related-actions, .footer-inner) > * { min-width: 0; }

  h1, .page-hero h1, .practice-heading h1 {
    font-size: clamp(2.25rem, 8vw, 4.25rem);
    line-height: 1.08;
    max-width: 100%;
  }
  h2, .resource-top h2, .current-topics-heading h2, .round-notes h2 {
    font-size: clamp(1.7rem, 6.5vw, 2.6rem);
    line-height: 1.15;
    max-width: 100%;
  }
  h1, h2, h3 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    white-space: normal;
    text-wrap: balance;
  }
  p, li, dd, .profile-text, .photo-caption {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }
  p, li { line-height: 1.6; }
  .eyebrow, .kicker, .meta, .feature-num, .topic-type,
  .current-topic-card > span { line-height: 1.5; }

  .nav { height: 70px; gap: 12px; }
  .brand, .mode, .menu { flex-shrink: 0; }
  .mode { margin-left: auto; }
  .mode, .menu { min-height: 44px; }
  .menu { display: block; }
  .navlinks {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    padding: 14px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 0 0 12px 12px;
    box-shadow: var(--shadow);
    gap: 6px 14px;
    font-size: .78rem;
  }
  .navlinks.open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .navlinks a { min-height: 44px; padding: 11px 8px; }

  .hero-grid, .page-hero-grid, .intro-grid, .split, .resource-top,
  .nationals-grid, .practice-layout, .topic-generator-grid,
  .current-topics-heading, .checklist-panel { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .hero-grid { min-height: auto; padding: 52px 0; }
  .hero-photo, .page-hero-photo { transform: none; margin-right: 0; }
  .section, .format-overview, .resource-section, .resource-guide-section,
  .topic-generator-section, .arena-section { padding: 60px 0; }
  .page-hero { padding: 52px 0; }
  .heading-row { display: block; margin-bottom: 28px; }
  .heading-row > p, .heading-row .arena-intro { max-width: 65ch; margin-top: 18px; }
  .closing-inner { display: block; }
  .closing-mark { display: none; }

  .feature-grid, .format-grid, .activities-grid, .choice-grid, .guide-grid,
  .file-grid, .evergreen-guides, .current-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px;
  }
  .feature, .format-card, .activity-card, .choice-card, .file,
  .current-topic-card { min-height: 0; }
  .choice-card > p, .topic-column h3 { min-height: 0; }
  .feature h3, .format-card h3, .file h3, .choice-card h3,
  .profile h3, .activity-card h3, .guide-card h3 { line-height: 1.25; }
  .faq-grid, .topic-board { grid-template-columns: minmax(0, 1fr); }
  .topic-column + .topic-column { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .topic-column { padding: 26px; }
  .topic-column h3 { font-size: 1.4rem; line-height: 1.25; }
  .checklist { columns: 1; }
  .announcement-inner, .announcement-inner > div { display: block; }
  .announcement-inner { padding: 18px 0; }
  .announcement-label { display: inline-block; margin-bottom: 10px; }
  .announcement-inner strong { display: block; line-height: 1.5; }
  .announcement-inner p { margin: 8px 0 0; }
  .meeting { display: grid; gap: 14px; }
  .meeting div { margin-top: 0; line-height: 1.6; }
  .words { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .word { font-size: .875rem; }
  .purpose-buttons .purpose-button:last-child { grid-column: 1 / -1; }
  .purpose-buttons .purpose-button { justify-content: space-between; padding: 17px 16px; }
  .purpose-button > span:first-child { white-space: nowrap; }
  .purpose-icon { flex-shrink: 0; }

  .content-link, .button {
    max-width: 100%; min-width: 0;
    white-space: normal; overflow-wrap: normal; word-break: normal;
    line-height: 1.5; text-align: left;
  }
  .content-link::after, .button > span:last-child { flex-shrink: 0; }
  .content-link-large { font-size: .9rem; padding: 14px 18px; }
  .related-actions { align-items: stretch; }
  .related-actions .content-link { flex: 1 1 240px; justify-content: space-between; }
  .format-path-step { grid-template-columns: minmax(0, 1fr) auto; }
  .resource-guide summary { grid-template-columns: minmax(0, 1fr) auto; }
  .resource-guide-body dl { grid-template-columns: minmax(0, 1fr); }
  .resource-guide-body dd { margin-left: 0; }

  .current-topic-card { padding: 24px; }
  .current-topic-card h3 { font-size: clamp(1.25rem, 3.6vw, 1.65rem); line-height: 1.35; margin: 20px 0; }
  .current-topic-card a { max-width: 100%; width: auto; align-self: flex-start; line-height: 1.5; }
  .congress-current { grid-column: 1 / -1; }
  .practice-shell { padding: 56px 0; }
  .practice-layout { margin-top: 30px; }
  .round-notes { display: block; }
  .round-notes li { grid-template-columns: 24px minmax(0, 1fr); }
  .timer-toolbar { flex-direction: column; align-items: stretch; gap: 18px; }
  .format-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .format-tab { min-height: 44px; padding: 10px 6px; }
  .timer-utility { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .timer-utility button { min-width: 0; min-height: 44px; padding: 10px 6px; }
  .timer-utility .fullscreen-toggle { grid-column: auto; }
  .preset-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; overflow: visible; }
  .preset { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-width: 0; gap: 8px; padding: 12px; }
  .preset span { line-height: 1.4; white-space: normal; }
  .preset b { white-space: nowrap; }
  .current-speech { font-size: clamp(1.4rem, 4vw, 2rem); overflow-wrap: normal; }
  .practice-clock { font-size: clamp(3.4rem, 15vw, 7rem); }
  .timer-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timer-primary { grid-column: 1 / -1; grid-row: 1; }
  .timer-reset { grid-column: 1 / -1; }
  .timer-controls button { min-height: 50px; }
  .topic-toolbar { display: block; }
  .topic-format-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .topic-format { min-height: 44px; line-height: 1.5; padding: 10px 8px; }
  .topic-number { display: block; margin-top: 14px; }
  .topic-card { min-height: 0; padding: 28px 0; }
  .topic-card h3 { font-size: clamp(1.35rem, 4vw, 1.9rem); line-height: 1.35; }
  .new-topic-button { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px; line-height: 1.5; }
  .arena-fallback { padding: 24px; }
  .footer .wrap.footer-inner { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 12px; }
  .footer .footer-tagline { text-align: center; }
  .footer .footer-credit { order: -1; }
}

@media (max-width: 760px) {
  .feature-grid, .format-grid, .activities-grid, .choice-grid, .guide-grid,
  .file-grid, .evergreen-guides, .current-topic-grid { grid-template-columns: minmax(0, 1fr); }
  .congress-current { grid-column: auto; }
  .current-topic-card { padding: 22px; }
  .timer-utility { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timer-utility .fullscreen-toggle { grid-column: 1 / -1; }
  .preset-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topic-format-tabs { grid-template-columns: minmax(0, 1fr); }
  .topic-format { width: 100%; }
  .gallery-grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-grid .photo:first-child { grid-column: auto; grid-row: auto; min-height: 280px; }
  .gallery-grid .photo { min-height: 240px; }
  .sponsor { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .sponsor .photo { width: min(100%, 300px); margin-inline: auto; }
  .announcement-inner strong { line-height: 1.5; }
}

@media (max-width: 380px) {
  .wrap { width: calc(100% - 28px); }
  h1, .page-hero h1, .practice-heading h1 { font-size: 2rem; }
  .nav { gap: 8px; }
  .brand { font-size: .9rem; }
  .button { justify-content: space-between; }
  .practice-timer { padding: 20px 14px; }
  .preset { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}
