/* Shared responsive finish, loaded after page-specific styles. */
.mobile-menu-toggle { display: none; }
.mobile-menu-links { display: contents; }
.heading-ending { display: inline; }
.site-nav .mobile-menu-links > a[href="/contact"] { margin-left: auto; }
@media (max-width: 620px) {
  .site-nav.mobile-menu-ready { display: block; margin-bottom: 32px; }
  .mobile-menu-toggle {
    display: flex; align-items: center; justify-content: flex-end; gap: 12px;
    min-width: 44px; min-height: 44px; margin-left: auto; padding: 0;
    border: 0; background: transparent; color: var(--ink); font: inherit;
    font-size: 17px; cursor: pointer;
  }
  .mobile-menu-icon { display: grid; gap: 5px; width: 22px; }
  .mobile-menu-icon i { display: block; height: 1px; background: currentColor; }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-icon i:first-child { transform: translateY(6px) rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-icon i:nth-child(2) { opacity: 0; }
  .mobile-menu-toggle[aria-expanded="true"] .mobile-menu-icon i:last-child { transform: translateY(-6px) rotate(-45deg); }
  .mobile-menu-ready .mobile-menu-links { display: none; }
  .mobile-menu-toggle[aria-expanded="true"] + .mobile-menu-links {
    display: grid; gap: 0; padding: 12px 0; margin-top: 8px;
    border-block: 1px solid var(--rule);
  }
  .site-nav .mobile-menu-links > a { margin: 0; min-height: 44px; font-size: 19px; }
  .site-nav .mobile-menu-links > a[href="/contact"] { margin-left: 0; }
  h1, h2, h3, .page-title, .section-label, .article-title {
    text-wrap: balance; overflow-wrap: break-word; hyphens: none;
  }
  .heading-ending { display: inline-block; max-width: 100%; text-wrap: balance; vertical-align: top; }
  .essay-page .article-header h1 { font-size: clamp(32px, 8.5vw, 38px); line-height: 1.12; }
  .essay-page .article-header h1[data-heading-length="long"] { font-size: clamp(27px, 7.5vw, 34px); }
  .subscribe-hero h1 br { display: none; }
  .subscribe-title-phrase { display: block; }
  .plp-title { font-size: clamp(32px, 8.5vw, 42px); }
  .plp-section-title, .plp-final-title { font-size: clamp(28px, 7.5vw, 36px); }
  .homepage .intro-copy { text-wrap: pretty; }
  .subscribe-hero h1 { margin-block: 24px 32px; }
  .subscribe-signup { margin-top: 32px; }
  .subscribe-close h2 { font-size: clamp(32px, 8vw, 42px); }
  .essay-ty-title { font-size: clamp(32px, 8.5vw, 40px); line-height: 1.12; }
  .essay-ty { padding-top: 12px; }
  .essay-page .article-header { gap: 20px; padding-bottom: 28px; }
}
