/* Reading sizes shared by the existing layouts. Heading styles stay in their original stylesheets. */
body { font-size: 18px; }
.prose { font-size: 21px; line-height: 1.6; }

.description, .story .description, .page-heading p, .directory-item p,
.section-intro, .gear-feature p, .play-placeholder p, .tournament-tile p,
.tournament-calendar-row p, .tournament-facts dd, .player-profile-intro,
.player-profile-facts strong, .player-empty, .player-rank, .player-row strong,
.score-player, .score-player b, .mini-movers a, .ticker > a, .ticker b,
.ranking-table, .ranking-table td, .data-table, .data-table td {
  font-size: 18px;
}

.primary-nav, .primary-nav .nav-about, .page-tabs a, .tabs button,
.match-filters select, .tournament-filters select, .tournament-filters input {
  font-size: 18px;
}

.small-note, .story-meta, .eyebrow, .brief-stories .eyebrow,
.tournament-tile .eyebrow, .h2h-feature .eyebrow, .ticker-title,
.ticker small, .ticker-title small, .ticker .ticker-all, .match-label,
.match-label > span, .score-player small, .mini-movers small,
.tournament-callout small, .tournament-callout > span, .tournament-calendar-date,
.tournament-calendar-date span, .tournament-facts dt, .stats small,
.player-row small, .player-data-label, .player-verification, .player-image-credit,
.ranking-table th, .ranking-table td small, .data-table th,
.match-filters label, .tournament-filters label, .gear-commerce label,
.brand-domain, .masthead-note, .edition, .edition b, .breadcrumbs,
.footer-bottom, .footer-top > a:last-child, .front-top h1 > span,
.related h3, .text-link, .gear-links, .section-top > a,
.dynamics-grid .section-top > a, .h2h-feature p, .h2h-feature b,
.play-placeholder h2 span, .portal-controls button {
  font-size: 16px;
  line-height: 1.45;
}

.primary-nav {
  height: auto;
  min-height: 46px;
  flex-wrap: wrap;
  gap: .2rem clamp(.75rem, 2vw, 2rem);
  overflow: visible;
}
.primary-nav a { min-height: 40px; }
.page-tabs { flex-wrap: wrap; }
.ticker { padding-block: .5rem; }
.ticker > a, .match-label, .section-top > a { min-width: 0; overflow-wrap: anywhere; }
.match-label { flex-wrap: wrap; }
.score-player small { width: auto; }
.mini-movers a { grid-template-columns: auto minmax(0, 1fr) auto auto; gap: .35rem; }
.mini-movers strong { overflow-wrap: anywhere; }
.versus { gap: .4rem; }
.versus > span { min-width: 0; overflow-wrap: anywhere; }
.footer-bottom { flex-wrap: wrap; }

@media (max-width: 600px) {
  .ranking-table th, .ranking-table td { padding-inline: .3rem; }
  .ranking-table td:nth-child(2) { overflow-wrap: anywhere; }
  .play-placeholder h2 span { display: inline-block; margin-top: .25rem; }
}

.story h3, .story .description { overflow-wrap: anywhere; }
.story .story-illustration img { height: auto; object-fit: contain; aspect-ratio: 1200 / 630; }
.story .story-illustration:hover img { transform: none; }

@media (max-width: 480px) {
  main { overflow-wrap: anywhere; }
  .section-top { flex-wrap: wrap; gap: .35rem .75rem; }
  .section-top > a { white-space: normal; }
}

.top-stories > div > .story + .story { border-top: 1px solid var(--line); margin-top: 1.25rem; padding-top: 1.25rem; }
.story-meta { letter-spacing: .25px; }
.story-meta time { white-space: nowrap; }
.editorial-directory, .latest-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1.25rem; }
.editorial-directory .story-image img, .latest-grid .story-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: center;
}
.top-stories .story-image img {
  width: 100%;
  height: clamp(10rem, 22vw, 17rem);
  object-fit: contain;
  object-position: center;
}
.story-image:hover img { transform: none; }
.tournament-photo { margin: 0 0 1rem; }
.tournament-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.tournament-photo figcaption { margin-top: .4rem; }
.tournament-submit-cta { background: #ebeee3; padding: 1.25rem; }
.tournament-submit-cta .text-link { text-decoration: underline; font-weight: 600; }
.rankings-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, auto); grid-auto-flow: column; }
.portal-banner { padding: 1.2rem 1.4rem; container-type: inline-size; }
.portal-banner strong { display: block; font-size: clamp(1.5rem, 6cqi, 4.25rem); line-height: 1.05; letter-spacing: -.035em; }
.portal-banner--news365 { background: white; color: #161616; border-inline-start-width: 8px; }
.portal-banner--news365 .eyebrow { color: #161616; }
.portal-banner--news24 { background: #a92e15; color: #fff; border-color: #d34c2d; border-inline-start-width: 8px; }
.portal-banner--news24 .eyebrow, .portal-banner--news24 strong { color: #fff; }
.portal-banner--tech365 { background: #102641; color: #e8faff; border-color: #23c5e8; border-inline-start-width: 8px; }
.portal-banner--tech365 .eyebrow, .portal-banner--tech365 strong { color: #80eaff; }
@media (max-width: 640px) {
  .rankings-directory { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; }
}

@media (max-width: 360px) {
  .secondary-stories { grid-template-columns: minmax(0, 1fr); }
  .secondary-stories .compact { border-left: 0; border-top: 1px solid var(--line); padding: 1rem 0 0; }
}

.player-portraits { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.player-portraits:empty { display: none; }
.player-portraits figure { flex: 1 1 7rem; max-width: 10rem; min-width: 0; margin: 0; }
.player-portraits img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 25%; }
.player-portraits figcaption { font-size: .875rem; line-height: 1.4; margin-top: .35rem; overflow-wrap: anywhere; }
.player-portraits figcaption a { text-decoration: underline; }

[data-match-item] .player-portraits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-match-item] .player-portraits:not(:has(figure)) { display: none; }

@media (max-width: 600px) {
  .top-stories .secondary .story-image { display: block; }
}