/*
Theme Name: Tennis Now Editorial 2026 — Revised
Theme URI: https://tennisnow.com/
Description: Child theme of Tennis Now Editorial 2026. Applies the August review notes (Chris Oddo, Richard Pagliaro) and the editor's cleanup list without touching the parent theme, posts, pages, media or URLs. Deactivating it restores the parent instantly.
Author: Tennis Now
Template: tennisnow-2026
Version: 1.4.5
Requires at least: 6.3
Tested up to: 6.9
Requires PHP: 7.4
Text Domain: tennisnow-2026-child
*/

/* ============================================================
   0. Guard rails
   ============================================================ */
html, body { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 3px solid var(--tn-lime); outline-offset: 2px; }
.tn-hero a:focus-visible, .tn-footer a:focus-visible { outline-color: var(--tn-lime); }

/* ============================================================
   1. Readability — the 7–10px label scale is lifted to 11–13px,
      body copy to 16–18px, display tracking loosened.
   ============================================================ */
body .tn-kicker { font-size: 12px; letter-spacing: .14em; }
body .tn-nav a { font-size: 12px; letter-spacing: .1em; padding: 4px 0; }
body .tn-nav ul { gap: 28px; min-height: 52px; }
body .tn-actions > a { font-size: 12px; }
body .tn-score-strip > a { font-size: 12px; }
body .tn-score-note { font-size: 13px; }

body .tn-hero-meta { font-size: 11px; letter-spacing: .14em; }
body .tn-daily-line { letter-spacing: -.045em; line-height: .78; }
body .tn-daily-line small { font: 700 12px/1.3 var(--tn-sans); letter-spacing: .14em; padding: 8px 12px; border-color: #ffffff66; text-transform: uppercase; }
body .tn-hero-copy p { font-size: 18px; }
body .tn-read-link { font-size: 12px; letter-spacing: .12em; gap: 12px; }
body .tn-story-picker header { font-size: 11px; }
body .tn-story-tab { font-size: 13px; line-height: 1.2; }
body .tn-story-tab b { font-size: 11px; }
body .tn-story-tab small { font-size: 10px; margin-bottom: 5px; }

body .tn-section-head small { font-size: 12px; }
body .tn-section-head > p { font-size: 17px; line-height: 1.55; max-width: 46ch; }
body .tn-card small { font-size: 11px; letter-spacing: .12em; }
body .tn-card h3 { font-size: 26px; line-height: 1.1; margin: 14px 0 10px; }
body .tn-card p { font-size: 16px; line-height: 1.55; }
body .tn-card-meta { font-size: 12px; margin-top: 16px; }

body .tn-fresh-copy small { font-size: 12px; }
body .tn-fresh-copy h2 { letter-spacing: -.04em; }
body .tn-fresh-copy p { font-size: 19px; max-width: 60ch; }
body .tn-fresh-copy b { font-size: 12px; margin-top: 22px; }

body .tn-feature-copy h2 { letter-spacing: -.045em; }
body .tn-feature-copy p { font-size: 19px; line-height: 1.45; }
body .tn-feature-side > span { font-size: 12px; letter-spacing: .13em; }
body .tn-feature-side p { font-size: 17px; }
body .tn-feature-side a { font-size: 12px; }

body .tn-ad-label { font-size: 11px; }
body .tn-player-card small { font-size: 11px; }
body .tn-player-card span { font-size: 12px; }
body .tn-live p { font-size: 18px; line-height: 1.5; }
body .tn-score-priority { font-size: 11px; }
body .tn-score-fallback { font-size: 11px; }
body .tn-instruction p { font-size: 17px; line-height: 1.55; }
body .tn-instruction-links span, body .tn-classic-link { font-size: 12px; }
body .tn-archive-strip p { font-size: 17px; line-height: 1.55; }
body .tn-newsletter p { font-size: 18px; }
body .tn-newsletter .tn-newsletter-status { font-size: 14px; }
body .tn-newsletter-image span { font-size: 12px; }

body .tn-footer-links b { font-size: 11px; }
body .tn-footer-links a { font-size: 15px; }
body .tn-footer-bottom { font-size: 12px; }

body .tn-byline { font-size: 13px; }
body .tn-article-dek { font-size: 23px; }
body .tn-entry-content { font-size: 19px; line-height: 1.72; }
body .tn-entry-content p { margin-bottom: 28px; }
body .tn-sidebar-card a { font-size: 15px; padding: 12px 0; }
body .tn-comment-reply a, body .tn-comment-form .submit { font-size: 11px; }
body .tn-search-row button { font-size: 12px; }
body .tn-breaking b, body .tn-breaking i { font-size: 11px; }

/* Word and letter spacing: Fraunces was tracked to −0.045…−0.08em on
   every headline (letters touching) while labels ran at +0.14…0.17em
   (words falling apart). One scale for the whole site. */
body .tn-daily-line { letter-spacing: -.03em; }
body .tn-article-header h1, body .tn-archive-header h1 { letter-spacing: -.025em; line-height: .96; }
body .tn-section-head h2, body .tn-live h2, body .tn-newsletter h2, body .tn-instruction h2, body .tn-archive-strip h2 { letter-spacing: -.02em; line-height: 1; }
body .tn-fresh-copy h2, body .tn-feature-copy h2 { letter-spacing: -.025em; }
body .tn-card h3, body .tn-player-card h3, body .tn-sidebar-card h2, body .tn-comments h2 { letter-spacing: -.01em; }
body .tn-article-dek, body .tn-hero-copy p, body .tn-fresh-copy p, body .tn-feature-copy p, body .tn-entry-content { letter-spacing: 0; word-spacing: 0; }
body .tn-entry-content { font-weight: 450; }
body .tn-kicker, body .tn-section-head small, body .tn-card small, body .tn-fresh-copy small, body .tn-feature-side > span, body .tn-player-card small, body .tn-hero-meta, body .tn-daily-line small, body .tn-story-picker header, body .tn-story-tab small, body .tn-score-priority, body .tn-ad-label, body .tn-newsletter-image span, body .tn-footer-links b, body .tn-footer-bottom, body .tn-nav a, body .tn-actions > a, body .tn-read-link, body .tn-fresh-copy b, body .tn-feature-side a, body .tn-player-card span, body .tn-instruction-links span, body .tn-classic-link, body .tn-score-fallback, .tnc-ticker-label, .tnc-ticker-list a small { letter-spacing: .08em; }
body .tn-breaking b, body .tn-breaking i { letter-spacing: .08em; }

/* ============================================================
   2. Spacing — room between sections and inside cards
   ============================================================ */
body .tn-section { padding: 112px 0; }
body .tn-section-head { margin-bottom: 44px; padding-top: 22px; }
body .tn-story-grid { gap: 44px 32px; }
body .tn-card { padding-top: 18px; }
body .tn-fresh-copy { padding: 64px; }
body .tn-feature-copy { padding: 80px 56px; }
body .tn-feature-side { padding: 64px 40px; }
body .tn-live, body .tn-player-zone { padding: 112px 0; }
body .tn-instruction, body .tn-archive-strip { padding: 96px 0; }
body .tn-ad-wrap { padding: 0 0 96px; }
body .tn-content-shell { margin: 80px auto; gap: 64px; }
body .tn-footer { padding: 84px 0 32px; }

/* ============================================================
   3. Hero — headline one notch smaller, hero one notch shorter
   ============================================================ */
body .tn-hero { height: min(720px, calc(100svh - 120px)); min-height: 640px; }
body .tn-daily-line { top: 13%; }
body .tn-daily-line.tn-hero-size-compact  { font-size: clamp(46px, 6vw, 100px); }
body .tn-daily-line.tn-hero-size-standard { font-size: clamp(56px, 7.6vw, 124px); }
body .tn-daily-line.tn-hero-size-impact   { font-size: clamp(64px, 8.6vw, 140px); }
/* Parent-markup guards: a homepage cached before the child templates went
   live still carries the editor-facing strings; hide them until child.js
   rewrites them (the child templates never render these). */
body .tn-daily-line small:not(.tnc-tagline) { visibility: hidden; }
body.tnc-ready .tn-daily-line small { visibility: visible; }
body .tn-feature-side:not(.tnc-built) > span, body .tn-feature-side:not(.tnc-built) > p { display: none; }
body.home main#main-content { display: flex; flex-direction: column; }
body.home main#main-content > .tn-hero { order: 1; }  body.home main#main-content > .tnc-ticker { order: 2; }
body.home main#main-content > #latest { order: 3; }   body.home main#main-content > .tn-fresh { order: 4; }
body.home main#main-content > #scores { order: 5; }   body.home main#main-content > #players { order: 6; }
body.home main#main-content > #features { order: 7; } body.home main#main-content > #shop { order: 8; }
body.home main#main-content > .tn-instruction { order: 9; } body.home main#main-content > .tn-archive-strip { order: 10; }
body.home main#main-content > #newsletter { order: 11; }
body.home main#main-content > .tn-section.tn-wrap { width: min(1400px, calc(100% - 64px)); }

/* ============================================================
   4. Headline ticker under the hero (Richard's note)
   ============================================================ */
.tnc-ticker { position: relative; background: var(--tn-lime); color: var(--tn-ink); border-bottom: 1px solid var(--tn-ink); overflow: hidden; }
.tnc-ticker-inner { display: flex; align-items: center; min-height: 60px; }
.tnc-ticker-label { flex: none; align-self: stretch; display: flex; align-items: center; padding: 0 22px; background: var(--tn-ink); color: var(--tn-lime); font: 850 11px/1 var(--tn-sans); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.tnc-ticker-track { flex: 1; min-width: 0; overflow: hidden; }
.tnc-ticker-list { display: inline-flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; white-space: nowrap; animation: tnc-marquee var(--tnc-ticker-speed, 70s) linear infinite; }
.tnc-ticker:hover .tnc-ticker-list, .tnc-ticker:focus-within .tnc-ticker-list { animation-play-state: paused; }
.tnc-ticker-list li { display: inline-flex; align-items: center; }
.tnc-ticker-list a { display: inline-flex; align-items: baseline; gap: 12px; padding: 18px 28px 18px 0; color: inherit; font: 700 19px/1.1 var(--tn-display); letter-spacing: -.01em; }
.tnc-ticker-list a:hover { text-decoration: underline; text-underline-offset: 4px; }
.tnc-ticker-list a small { font: 850 10px/1 var(--tn-sans); letter-spacing: .12em; text-transform: uppercase; color: #22411e; }
.tnc-ticker-list li:after { content: "•"; margin: 0 28px 0 0; color: #22411e; }
@keyframes tnc-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .tnc-ticker-list { animation: none; }
  .tnc-ticker-track { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ============================================================
   5. TV and Daily Fuzz (Chris: each a full-width splash, higher up)
   ============================================================ */
/* TV and Daily Fuzz: two full-width splash teasers instead of a split row */
body .tn-fresh { grid-template-columns: 1fr; }
body .tn-fresh-card { min-height: 560px; }
body .tn-fresh-copy { width: min(1400px, 100%); margin: 0 auto; padding: 64px max(32px, calc((100% - 1400px) / 2)) 64px; }
body .tn-fresh-copy h2 { font-size: clamp(56px, 7vw, 108px); }
body .tn-fuzz .tn-fresh-copy h2 { font-size: clamp(64px, 8.5vw, 128px); }
body .tn-fresh-card > img { object-position: center 25%; }

/* ============================================================
   6. Live scores — never clip the feed
   ============================================================ */
body .tn-live-embed { position: relative; overflow: visible; }
body .tn-live-embed iframe { position: relative; z-index: 1; height: 560px; }
/* Homepage scores teaser: a card that opens the live scores page */
body .tnc-score-teaser { display: flex; flex-direction: column; justify-content: center; min-height: 340px; padding: 48px 56px; background: #f7f8f3; color: var(--tn-ink); transition: transform .3s, box-shadow .3s; }
body .tnc-score-teaser:hover { transform: translateY(-3px); box-shadow: 0 24px 60px #0000003d; }
body .tnc-score-teaser > span { color: var(--tn-green); font: 850 12px/1 var(--tn-sans); letter-spacing: .08em; text-transform: uppercase; }
body .tnc-score-teaser > span:before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--tn-orange); box-shadow: 0 0 0 5px #ff603a2b; vertical-align: 1px; }
body .tnc-score-teaser h3 { font: 700 clamp(38px, 4.5vw, 64px)/.95 var(--tn-display); letter-spacing: -.02em; margin: 20px 0 16px; }
body .tnc-score-teaser p { color: var(--tn-muted); font-size: 18px; line-height: 1.5; max-width: 40ch; margin: 0; }
body .tnc-score-teaser b { display: inline-block; align-self: flex-start; margin-top: 28px; padding: 16px 22px; background: var(--tn-green); color: #fff; font: 850 12px/1 var(--tn-sans); letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 760px) { body .tnc-score-teaser { min-height: 0; padding: 32px 22px; } }
body .tn-live-note { display: none; }               /* editorial note removed */
body .tn-score-priority { padding: 14px 18px; }
body.wp-theme-tennisnow-2026 #tennis-live-widget-inline { overflow: visible; }

/* ============================================================
   7. Longform & Opinion block — side rail lists Statisfaction columns
   ============================================================ */
.tnc-more { list-style: none; margin: 22px 0 0; padding: 0; }
.tnc-more li { border-top: 1px solid #ffffff22; }
.tnc-more a { display: block; padding: 16px 0; color: #fff; font: 600 17px/1.3 var(--tn-display); }
.tnc-more a:hover { color: var(--tn-lime); }
body .tn-feature-side > a { margin-top: 28px; padding-bottom: 6px; border-bottom: 1px solid var(--tn-lime); align-self: flex-start; }

/* ============================================================
   8. Player hub — reader-facing copy, tag-page links
   ============================================================ */
body .tn-player-grid { gap: 24px; }
body .tn-player-card h3 { font-size: 30px; }
.tnc-inline-link { color: var(--tn-lime); font-weight: 700; white-space: nowrap; }
.tnc-inline-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.tnc-page .tnc-players-grid { grid-template-columns: repeat(4, 1fr); }
.tnc-page .tn-player-card { background: #29342e; color: #fff; }
.tnc-page .tn-player-card:after { background: linear-gradient(transparent, #07110cf2); }
@media (max-width: 1050px) { .tnc-page .tnc-players-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .tnc-page .tnc-players-grid { grid-template-columns: repeat(2, 1fr); } }

/* Ad note ("This shared campaign placement updates…") is internal */
body .tn-ad-note { display: none; }

/* ============================================================
   9. Back to top / back home (Chris's first note)
   ============================================================ */
.tnc-top { position: fixed; right: 20px; bottom: 20px; z-index: 80; width: 52px; height: 52px; border: 1px solid #ffffff33; border-radius: 50%; background: var(--tn-ink); color: var(--tn-lime); font: 850 11px/1 var(--tn-sans); letter-spacing: .08em; cursor: pointer; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .25s, transform .25s; box-shadow: 0 10px 30px #0000004d; }
.tnc-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.tnc-top:hover { background: var(--tn-green); color: #fff; }
.tnc-footer-top { display: inline-flex; gap: 10px; align-items: center; color: var(--tn-lime); }
@media (prefers-reduced-motion: reduce) { .tnc-top { transition: none; } }

/* ============================================================
   10. Inner pages the child theme templates (TV, Live Scores)
   ============================================================ */
.tnc-page .tn-archive-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; margin-bottom: 44px; }
.tnc-page .tn-archive-header h1 { max-width: 12ch; text-wrap: balance; }
.tnc-page .tn-archive-header p { grid-column: 1; max-width: 56ch; margin: 0; color: var(--tn-muted); font-size: 18px; line-height: 1.55; }
.tnc-page .tn-archive-header .tn-read-link { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
.tnc-scores-frame { background: #07130d; border: 1px solid #ffffff28; }
.tnc-scores-frame iframe { display: block; width: 100%; height: min(78vh, 900px); min-height: 560px; border: 0; background: #07130d; }
.tnc-scores-note { margin: 18px 0 0; color: var(--tn-muted); font-size: 14px; }
.tnc-video-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; margin-top: 64px; padding: 40px; background: var(--tn-forest); color: #fff; }
.tnc-video-cta h2 { margin: 0; font: 700 clamp(28px, 3.4vw, 44px)/1 var(--tn-display); letter-spacing: -.03em; }
.tnc-video-cta a { color: var(--tn-lime); }

/* ============================================================
   11. Mobile — the site is read on phones first
   ============================================================ */
@media (max-width: 1050px) {
  body .tn-fresh-copy { padding: 48px 32px; }
  body .tn-feature-copy { padding: 56px 32px; }
  .tnc-page .tn-archive-header { grid-template-columns: 1fr; }
  .tnc-page .tn-archive-header .tn-read-link { grid-column: 1; grid-row: auto; }
  .tnc-video-cta { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body .tn-section { padding: 72px 0; }
  body .tn-section-head { margin-bottom: 32px; }
  body .tn-story-grid { gap: 40px; }
  body .tn-nav.is-open ul { flex-wrap: wrap; gap: 6px 22px; padding: 14px 20px 18px; min-height: 0; }
  body .tn-nav.is-open a { padding: 10px 0; font-size: 13px; }
  body .tn-hero { height: 640px; min-height: 640px; }
  body .tn-daily-line { top: 15%; line-height: .8; }
  body .tn-daily-line.tn-hero-size-compact  { font-size: 11vw; }
  body .tn-daily-line.tn-hero-size-standard { font-size: 13vw; }
  body .tn-daily-line.tn-hero-size-impact   { font-size: 14.5vw; }
  body .tn-daily-line small { font-size: 11px; }
  body .tn-story-tab { font-size: 14px; min-height: 72px; }
  .tnc-ticker-label { padding: 0 14px; font-size: 10px; }
  .tnc-ticker-list a { font-size: 17px; padding: 16px 20px 16px 0; }
  .tnc-ticker-list li:after { margin-right: 20px; }
  .tnc-ticker-list { --tnc-ticker-speed: 55s; }
  body .tn-fresh-card { min-height: 480px; }
  body .tn-fresh-copy { padding: 36px 20px; }
  body .tn-fresh-copy h2, body .tn-fuzz .tn-fresh-copy h2 { font-size: clamp(48px, 15vw, 72px); }
  body .tn-fresh-copy p { font-size: 17px; }
  body .tn-feature-copy { min-height: 0; padding: 44px 20px; }
  body .tn-feature-copy h2 { font-size: clamp(56px, 17vw, 84px); }
  body .tn-feature-side { padding: 40px 20px; }
  body .tn-live, body .tn-player-zone { padding: 72px 0; }
  body .tn-live-embed iframe { height: 520px; }
  body .tn-player-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  body .tn-player-card { aspect-ratio: .82; }
  body .tn-player-card div { left: 14px; right: 14px; bottom: 14px; }
  body .tn-player-card h3 { font-size: 22px; margin: 6px 0 10px; }
  body .tn-instruction, body .tn-archive-strip { padding: 64px 0; }
  body .tn-content-shell { margin: 48px auto; gap: 40px; }
  body .tn-article-dek { font-size: 20px; }
  body .tn-entry-content { font-size: 18px; line-height: 1.7; }
  body .tn-footer { padding: 64px 0 28px; }
  .tnc-top { right: 14px; bottom: 14px; width: 48px; height: 48px; }
  .tnc-scores-frame iframe { height: 70vh; min-height: 520px; }
  .tnc-video-cta { padding: 28px 20px; }
}


/* ============================================================
   12. Full-site menu drawer (the two-bar button, every screen size)
   ============================================================ */
body .tn-menu-toggle { position: relative; }
body .tn-menu-toggle i { transition: transform .25s, opacity .25s, width .25s; }
body.tnc-menu-open .tn-menu-toggle i:first-child { transform: translateY(3.5px) rotate(45deg); }
body.tnc-menu-open .tn-menu-toggle i:last-child { width: 100%; transform: translateY(-3.5px) rotate(-45deg); }
.tnc-menu { position: fixed; inset: 0; z-index: 320; display: none; overflow: auto; background: #07130df7; color: #fff; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
body.tnc-menu-open .tnc-menu { display: block; }
.tnc-menu-inner { padding: 28px 0 60px; }
.tnc-menu-top { display: flex; align-items: center; justify-content: space-between; height: 70px; margin-bottom: 40px; border-bottom: 1px solid #ffffff22; }
.tnc-menu-top .tn-logo { color: #fff; }
.tnc-menu-top .tn-logo em { color: var(--tn-lime); }
.tnc-menu-close { width: 48px; height: 48px; border: 1px solid #ffffff55; border-radius: 50%; background: transparent; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.tnc-menu-close:hover { background: var(--tn-lime); color: var(--tn-ink); border-color: var(--tn-lime); }
.tnc-menu-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.tnc-menu-col { display: flex; flex-direction: column; gap: 4px; }
.tnc-menu-col b { color: var(--tn-lime); font: 850 11px/1 var(--tn-sans); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 14px; }
.tnc-menu-col a { padding: 10px 0; border-top: 1px solid #ffffff1a; color: #fff; font: 600 22px/1.15 var(--tn-display); letter-spacing: -.01em; }
.tnc-menu-col a:hover, .tnc-menu-col a:focus-visible { color: var(--tn-lime); }
.tnc-menu-search { display: flex; margin-top: 48px; border-bottom: 2px solid var(--tn-lime); }
.tnc-menu-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: #fff; padding: 16px 0; font: 500 20px var(--tn-display); outline: 0; }
.tnc-menu-search input::placeholder { color: #9fb5a8; }
.tnc-menu-search button { border: 0; background: var(--tn-lime); color: var(--tn-ink); padding: 0 22px; font: 850 12px var(--tn-sans); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
@media (max-width: 1050px) { .tnc-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; } }
@media (max-width: 760px) {
  .tnc-menu-inner { padding-top: 14px; }
  .tnc-menu-top { height: 56px; margin-bottom: 24px; }
  .tnc-menu-grid { grid-template-columns: 1fr; gap: 22px; }
  .tnc-menu-col a { font-size: 20px; padding: 9px 0; }
  .tnc-menu-search { margin-top: 32px; }
}
@media (prefers-reduced-motion: reduce) { body .tn-menu-toggle i { transition: none; } }

/* ============================================================
   13. One site, one look on inner pages
   The old site's WPCode snippets append a second comment form, a
   "Mailbag" box and a contact form under every page. They belong on the
   Contact page only; everywhere else the theme's own blocks are the ones.
   Nothing is removed; the blocks are hidden outside /contact/.
   ============================================================ */
body.tnc:not(.page-id-61) #tnx-comments,
body.tnc:not(.page-id-61) #tnx-mailbag,
body.tnc:not(.page-id-61) #tnx-contactform,
body.tnc:not(.page-id-61) #tnx-mailbag-slot,
body.tnc:not(.page-id-61) #tnx-contact-slot { display: none !important; }
body.tnc #tnxPromo, body.tnc .tnx-promo { display: none !important; }
/* Archive pages share the page header and card styling */
body.tnc .tn-archive-header { margin-bottom: 44px; }
body.tnc .tn-archive-header .tn-article-dek { grid-column: 1; margin: 0; font: 500 18px/1.55 var(--tn-sans); color: var(--tn-muted); }
body.tnc .tn-archive-list { gap: 44px 32px; }
body.tnc .tn-pagination { margin-top: 56px; }
body.tnc .tn-pagination .page-numbers { font: 700 13px var(--tn-sans); padding: 12px 16px; }

/* Anchor targets for legacy links */
.tnc-anchor { display: block; position: relative; top: -120px; height: 0; }

/* Legacy footer link to a page that does not exist (JS retargets it when a privacy page is published) */
body.tnc-no-privacy a[href$="/privacy-policy/"] { display: none; }
