.utility-main { padding-top: clamp(58px, 6.4vw, 92px); }
.utility-main h1,
.utility-main h2,
.utility-main h3,
.legal-main h1,
.legal-main h2,
.legal-main h3,
.not-found-main h1,
.not-found-main h2,
.not-found-main h3 { font-family: var(--sans); }
.utility-hero { padding-inline: clamp(39px, 4.2vw, 61px); }
.utility-hero .eyebrow { margin-bottom: clamp(18px, 1.8vw, 26px); }
.utility-hero h1 {
  max-width: 10.5em; margin: 0; font-size: clamp(48px, 6vw, 86px); font-weight: 690;
  line-height: .99; letter-spacing: -.057em;
}
.utility-hero > p:not(.eyebrow) {
  max-width: 42em; margin: clamp(23px, 2.4vw, 35px) 0 0; color: #595959;
  font-size: clamp(15px, 1.5vw, 21.5px); line-height: 1.65;
}
.utility-card { margin-top: clamp(42px, 4.6vw, 66px); }
.utility-note {
  display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 13px 15px;
  border: 1px solid #deded9; border-radius: 9px; color: #62625f; background: #eeeeeb;
  font-size: 12px; line-height: 1.55;
}
.utility-note .icon { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; color: var(--orange-dark); }

/* Newsletter */
.newsletter-page .utility-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(42px, 5.2vw, 75px); align-items: end; }
.newsletter-page .utility-hero h1 { max-width: 9em; }
.newsletter-page .utility-hero-copy > p:not(.eyebrow) { max-width: 33em; margin: clamp(22px, 2.2vw, 32px) 0 0; color: #595959; font-size: clamp(15px, 1.5vw, 21.5px); line-height: 1.62; }
.newsletter-page .utility-hero-aside { padding-bottom: 4px; }
.newsletter-page .utility-hero-aside p { margin: 13px 0 0; color: #666; font-size: clamp(12px, 1.12vw, 16px); line-height: 1.65; }
.newsletter-page .newsletter-stage {
  display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); overflow: hidden;
  border-color: #d7d7d2; background: #e2e2de;
}
.newsletter-page .newsletter-promise { display: flex; flex-direction: column; justify-content: space-between; min-height: clamp(390px, 36vw, 520px); padding: clamp(39px, 4.2vw, 61px); }
.newsletter-page .newsletter-promise .newsletter-icon { width: clamp(64px, 6vw, 86px); height: clamp(64px, 6vw, 86px); background: rgba(255,255,255,.72); border-color: #d3d3ce; }
.newsletter-page .newsletter-promise h2 { max-width: 10em; margin: clamp(28px, 3vw, 43px) 0 0; font-size: clamp(31px, 3.8vw, 55px); line-height: 1.03; letter-spacing: -.05em; }
.newsletter-page .newsletter-promise > p { max-width: 30em; margin: 22px 0 0; color: #5b5b58; font-size: clamp(13px, 1.25vw, 18px); line-height: 1.65; }
.newsletter-page .promise-list { display: grid; gap: 14px; margin: clamp(32px, 3.5vw, 50px) 0 0; padding: 0; list-style: none; }
.newsletter-page .promise-list li { display: flex; gap: 12px; align-items: center; color: #343432; font-size: clamp(12px, 1.08vw, 15.5px); font-weight: 620; }
.newsletter-page .promise-list .icon { width: 19px; height: 19px; color: var(--orange-dark); }
.newsletter-page .signup-panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(39px, 4.6vw, 66px); background: rgba(255,255,255,.96); }
.newsletter-page .signup-panel .section-kicker { margin-bottom: 12px; }
.newsletter-page .signup-panel h2 { margin: 0; font-size: clamp(26px, 3vw, 43px); line-height: 1.08; letter-spacing: -.045em; }
.newsletter-page .signup-panel > p { margin: 17px 0 0; color: #666; font-size: clamp(12px, 1.18vw, 17px); line-height: 1.65; }
.newsletter-page .signup-panel .newsletter-form { grid-template-columns: 1fr; gap: 10px; margin-top: clamp(25px, 2.8vw, 40px); }
.newsletter-page .signup-panel .newsletter-form input,
.newsletter-page .signup-panel .newsletter-form button { min-height: clamp(47px, 4.8vw, 69px); font-size: clamp(12px, 1.2vw, 17px); }
.newsletter-page .signup-panel .form-note { margin-top: 2px; font-size: clamp(10px, .9vw, 13px); }
.newsletter-page .signup-substack-cta { margin-top: clamp(25px, 2.8vw, 40px); justify-self: start; }
.newsletter-page .external-newsletter-cta { display: grid; }
/* The external Substack CTA keeps the approved form rhythm without creating
   a local email field: its existing service label occupies the same 24 px row
   as the reference label, so the centered signup panel does not drift. */
.newsletter-page .external-newsletter-cta .newsletter-cta-label { display: block; min-height: 24px; line-height: 24px; }
.newsletter-page .external-newsletter-cta .newsletter-cta-prompt,
.newsletter-page .external-newsletter-cta .newsletter-cta-button {
  min-height: clamp(47px, 4.8vw, 69px);
  border-radius: clamp(5px, .5vw, 8px);
}
.newsletter-page .external-newsletter-cta .newsletter-cta-prompt {
  padding-inline: clamp(10px, 1vw, 15px);
  color: #747471;
  background: #fafafa;
  border: 1px solid #dededc;
  font-size: clamp(12px, 1.2vw, 17px);
}
.newsletter-page .external-newsletter-cta .newsletter-cta-button {
  display: inline-flex;
  justify-content: center;
  padding-inline: clamp(14px, 1.4vw, 20px);
  font-size: clamp(12px, 1.2vw, 17px);
}
.provider-note { display: flex; align-items: center; gap: 8px; margin-top: 22px; color: #797979; font-size: clamp(10px, .92vw, 13px); }
.provider-note .icon { width: 16px; height: 16px; }
.newsletter-page .issue-preview { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(35px, 4.2vw, 61px); align-items: center; margin-top: clamp(12px, 1.3vw, 19px); padding: clamp(34px, 3.7vw, 53px); }
.newsletter-page .issue-preview h2 { margin: 0; font-size: clamp(25px, 2.8vw, 40px); line-height: 1.08; letter-spacing: -.04em; }
.newsletter-page .issue-preview p { margin: 15px 0 0; color: #666; font-size: clamp(12px, 1.1vw, 16px); line-height: 1.7; }
.issue-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.issue-list a { display: grid; grid-template-columns: auto 1fr auto; gap: 17px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.issue-list .issue-number { color: var(--orange); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.issue-list strong { font-size: clamp(14px, 1.35vw, 19.5px); }
.issue-list .icon { width: 19px; height: 19px; color: var(--orange-dark); }

/* Legal */
.legal-main { padding-top: clamp(48px, 5.5vw, 79px); }
.legal-intro { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); gap: clamp(35px, 4vw, 58px); align-items: end; padding-inline: clamp(32px, 3.5vw, 50px); }
.legal-intro h1 { max-width: 13em; margin: 0; font-size: clamp(43px, 5.3vw, 76px); font-weight: 690; line-height: 1; letter-spacing: -.052em; }
.legal-intro .legal-summary { color: #606060; font-size: clamp(13px, 1.25vw, 18px); line-height: 1.65; }
.legal-intro .legal-summary p { margin: 0; }
.legal-summary .wp-block-post-excerpt__excerpt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.legal-intro .legal-summary p + p { margin-top: 12px; }
.legal-layout { display: grid; grid-template-columns: minmax(205px, .27fr) minmax(0, 1fr); gap: clamp(30px, 4vw, 58px); align-items: start; margin-top: clamp(42px, 4.5vw, 65px); }
.legal-toc { position: sticky; top: 115px; padding: clamp(23px, 2.5vw, 36px); }
.legal-toc strong { display: block; color: var(--orange-dark); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.legal-toc nav { display: grid; gap: 12px; margin-top: 18px; }
.legal-toc a { color: #565656; font-size: clamp(11px, 1vw, 14.5px); line-height: 1.35; text-decoration: none; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--orange-dark); }
.legal-document { padding: clamp(37px, 4.3vw, 62px) clamp(35px, 4.8vw, 69px); }
.legal-document > .utility-note { margin-bottom: clamp(30px, 3vw, 43px); }
.legal-section { scroll-margin-top: 120px; }
.legal-section + .legal-section { margin-top: clamp(34px, 3.6vw, 52px); padding-top: clamp(31px, 3.3vw, 48px); border-top: 1px solid var(--line); }
.legal-section h2 { margin: 0 0 18px; font-size: clamp(23px, 2.5vw, 36px); line-height: 1.1; letter-spacing: -.04em; }
.legal-section h3 { margin: 27px 0 11px; font-size: clamp(16px, 1.65vw, 24px); line-height: 1.2; letter-spacing: -.025em; }
.legal-section p, .legal-section li { color: #505050; font-size: clamp(13px, 1.18vw, 17px); line-height: 1.78; }
.legal-section p { margin: 0; }
.legal-section p + p { margin-top: 15px; }
.legal-section ul { display: grid; gap: 8px; margin: 15px 0 0; padding-left: 20px; }
.legal-document > .wp-block-post-content > h2 { margin: 0 0 18px; font-family: var(--sans); font-size: clamp(23px, 2.5vw, 36px); line-height: 1.1; letter-spacing: -.04em; }
.legal-document > .wp-block-post-content > h2:not(:first-child) { margin-top: clamp(34px, 3.6vw, 52px); padding-top: clamp(31px, 3.3vw, 48px); border-top: 1px solid var(--line); }
.legal-document > .wp-block-post-content > h3 { margin: 27px 0 11px; font-family: var(--sans); font-size: clamp(16px, 1.65vw, 24px); line-height: 1.2; letter-spacing: -.025em; }
.legal-document > .wp-block-post-content > p,
.legal-document > .wp-block-post-content > ul,
.legal-document > .wp-block-post-content > ol { color: #505050; font-size: clamp(13px, 1.18vw, 17px); line-height: 1.78; }
.legal-document > .wp-block-post-content > p { margin: 0; }
.legal-document > .wp-block-post-content > p + p { margin-top: 15px; }
.legal-document > .wp-block-post-content > ul,
.legal-document > .wp-block-post-content > ol { display: grid; gap: 8px; margin: 15px 0 0; padding-left: 20px; }
/*
 * Legacy legal pages keep their real nested lists. Core's generic prose rule
 * otherwise promotes each `li` to the article size (19.2px at 1440px), while
 * the approved legal surface uses the same compact text rhythm as its
 * paragraphs. Keep this scope within the legal document so post lists retain
 * their editorial treatment.
 */
.legal-document > .wp-block-post-content :is(ul, ol, li) {
  color: #505050;
  font-size: clamp(13px, 1.18vw, 17px);
  line-height: 1.78;
}
.legal-placeholder { padding: 2px 4px; color: #6c4a35; background: #fff0e5; border-radius: 3px; font-weight: 650; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 21px; color: #858585; font-size: 12px; }
.legal-meta span { display: inline-flex; align-items: center; gap: 6px; }
.legal-meta .icon { width: 15px; height: 15px; }
.context-empty-icon { display: none; }
body.search-no-results .context-search-icon { display: none; }
body.search-no-results .context-empty-icon { display: block; }

/* 404 */
.not-found-main { min-height: calc(100vh - 250px); padding-top: clamp(50px, 5.8vw, 84px); }
.not-found-panel { display: grid; grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); overflow: hidden; }
.not-found-code { position: relative; display: grid; place-items: center; min-height: clamp(430px, 40vw, 580px); overflow: hidden; background: var(--footer); color: #fff; }
.not-found-code::before, .not-found-code::after { content: ""; position: absolute; border: 1px solid rgba(255,101,0,.45); border-radius: 50%; }
.not-found-code::before { width: 330px; height: 330px; top: -92px; left: -122px; }
.not-found-code::after { width: 210px; height: 210px; right: -78px; bottom: -82px; }
.not-found-code strong { position: relative; z-index: 1; color: #fff; font-size: clamp(108px, 15vw, 216px); font-weight: 690; line-height: .8; letter-spacing: -.09em; }
.not-found-code strong::after { content: ""; position: absolute; left: 9%; right: 2%; bottom: -17px; height: 6px; background: var(--orange); }
.not-found-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 5vw, 72px); }
.not-found-copy h1 { max-width: 9em; margin: 0; font-size: clamp(37px, 4.6vw, 66px); line-height: 1.02; letter-spacing: -.052em; }
.not-found-copy > p { max-width: 34em; margin: 20px 0 0; color: #626262; font-size: clamp(13px, 1.25vw, 18px); line-height: 1.68; }
.recovery-search { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: clamp(27px, 3vw, 43px); }
.recovery-search input, .recovery-search button { min-height: clamp(45px, 4.5vw, 65px); }
.recovery-search input { min-width: 0; padding-inline: 17px; border: 1px solid #d8d8d5; border-radius: 8px; background: #fafafa; outline: none; }
.recovery-search input:focus { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(255,101,0,.12); }
.recovery-search button { display: inline-flex; align-items: center; gap: 9px; padding-inline: 22px; border: 0; border-radius: 8px; color: #fff; background: var(--orange); font-weight: 720; cursor: pointer; }
.recovery-search button .icon { width: 18px; height: 18px; }
.recovery-results { min-height: 1.5em; margin-top: 12px; color: #6a6a6a; font-size: 13px; }
.recovery-results a { color: var(--orange-dark); font-weight: 700; }
.recovery-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 25px; }
.recovery-links a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 62px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 9px; color: #333; background: #fff; font-size: clamp(11px, 1vw, 14px); font-weight: 680; text-decoration: none; }
.recovery-links a:hover, .recovery-links a:focus-visible { border-color: #ffb17d; color: var(--orange-dark); }
.recovery-links .icon { width: 17px; height: 17px; }

@media (max-width: 980px) and (min-width: 701px) {
  .newsletter-page .newsletter-stage { grid-template-columns: .95fr 1.05fr; }
  .newsletter-page .newsletter-promise, .newsletter-page .signup-panel { padding: 38px; }
  /* The reference lead issue wraps at this width. Reserve the same lead-row
     height when a real title is shorter so the following rows keep their
     visual anchors. */
  .newsletter-page .issue-list a:first-child { min-height: 79px; }
  .legal-layout { grid-template-columns: 190px 1fr; gap: 26px; }
  .not-found-copy { padding: 42px; }
  .recovery-links { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .utility-main, .legal-main, .not-found-main { padding-top: 39px; }
  .utility-hero { padding-inline: 7px; }
  .utility-hero h1 { font-size: clamp(42px, 12vw, 52px); }
  .utility-hero > p:not(.eyebrow) { font-size: 15px; }
  .newsletter-page .utility-hero { grid-template-columns: 1fr; gap: 25px; align-items: start; }
  .newsletter-page .utility-hero-copy > p:not(.eyebrow) { font-size: 15px; }
  .newsletter-page .utility-hero-aside { padding: 0; }
  .newsletter-page .newsletter-stage, .newsletter-page .issue-preview { grid-template-columns: 1fr; }
  .newsletter-page .newsletter-promise { min-height: auto; padding: 30px 20px 35px; }
  .newsletter-page .newsletter-promise h2 { font-size: 38px; }
  .newsletter-page .signup-panel { padding: 34px 20px; }
  .newsletter-page .signup-substack-cta { width: 100%; }
  .newsletter-page .signup-substack-cta .substack-cta-link { min-height: 48px; font-size: 13px; }
  .newsletter-page .issue-preview { gap: 28px; padding: 30px 20px; }
  /* Keep the lead issue row stable when real title lengths differ from the reference. */
  .newsletter-page .issue-list a:first-child { min-height: 79px; }
  .issue-list a { grid-template-columns: auto 1fr; }
  .issue-list a .icon { display: none; }
  .legal-intro { grid-template-columns: 1fr; gap: 24px; padding-inline: 7px; }
  .legal-intro h1 { font-size: clamp(40px, 11vw, 49px); }
  .legal-intro .legal-summary { font-size: 14px; }
  .legal-layout { grid-template-columns: 1fr; gap: 10px; margin-top: 34px; }
  .legal-toc { position: static; padding: 22px 19px; }
  .legal-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 17px; }
  .legal-document { padding: 30px 20px; }
  .legal-section p, .legal-section li { font-size: 14px; }
  /* Historical legal pages use direct paragraphs rather than only
     `.legal-section` children; retain the approved mobile prose scale. */
  .legal-document > .wp-block-post-content > p { font-size: 14px; }
  .legal-document > .wp-block-post-content :is(ul, ol, li) { font-size: 14px; }
  .not-found-panel { grid-template-columns: 1fr; }
  .not-found-code { min-height: 250px; }
  .not-found-code strong { font-size: 130px; }
  .not-found-copy { padding: 35px 20px; }
  .not-found-copy h1 { font-size: 42px; }
  .recovery-search { grid-template-columns: 1fr; }
  .recovery-search input, .recovery-search button { min-height: 48px; }
  .recovery-search button { justify-content: center; }
  .recovery-links { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
