/* Homepage composition uses the shared phase 2 grid and card system. */
.t24-shows { background: var(--t24-primary); color: #fff; padding: clamp(20px, 3vw, 40px); border-top: 4px solid var(--t24-accent); }
.t24-shows__heading { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.t24-shows__eyebrow { color: var(--t24-accent); text-transform: uppercase; font-size: .75rem; font-weight: 700; letter-spacing: .16em; margin: 0 0 10px; }
.t24-shows h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; margin: 0; letter-spacing: -.03em; }
.t24-shows__intro { max-width: 29ch; color: #d8e3ef; margin: 0; }
.t24-shows__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.t24-show { position: relative; isolation: isolate; display: grid; align-items: end; min-height: 360px; margin: 0; overflow: hidden; background: #0b2846; border-radius: 8px; }
.t24-show img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.t24-show::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(5 17 31 / 0%) 10%, rgb(5 17 31 / 88%) 75%, #05111f 100%); }
.t24-show figcaption { padding: 24px; }
.t24-show__type { color: var(--t24-accent); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.t24-show h3 { font-size: clamp(1.75rem, 2.5vw, 2.25rem); line-height: 1.1; letter-spacing: -.03em; margin: 12px 0; }
.t24-show p { color: #e0e8f0; font-size: .9375rem; line-height: 1.5; margin: 0; }
.t24-shows__notice { color: #d8e3ef; font-size: .75rem; margin: 20px 0 0; }
.t24-shows :is(h2, h3, p, span) { overflow-wrap: anywhere; }
@media (min-width: 768px) { .t24-shows__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.t24-homepage { padding-block-start: var(--t24-space-6); }
.t24-homepage .t24-meta { overflow-wrap: anywhere; }
.t24-homepage .t24-meta a { color: inherit; }
.t24-homepage .t24-support { align-content: start; }
.t24-homepage .t24-badge { margin-block: var(--t24-space-4) var(--t24-space-2); }

/* Alternate the featured story on desktop; retain featured-first reading order on mobile. */
@media (min-width: 1024px) {
  .t24-category-grid--reverse > .t24-card { grid-column: 7 / span 6; grid-row: 1; }
  .t24-category-grid--reverse > .t24-support { grid-column: 1 / span 6; grid-row: 1; }
}

@media (max-width: 767px) {
  .t24-grid--latest .t24-card__excerpt { display: none; }
  .t24-grid--latest .t24-card--mobile-horizontal { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); align-items: start; gap: 12px; }
  .t24-grid--latest .t24-card__body { min-width: 0; overflow-wrap: anywhere; }
  .t24-grid--latest .t24-card__body .t24-badge { white-space: normal; overflow-wrap: anywhere; max-width: 100%; }
  .t24-grid--latest .t24-card__body > :first-child { margin-block-start: 0; }
  .t24-grid--latest .t24-card--mobile-horizontal .t24-card__title { font-size: 1.125rem; line-height: 1.3; }
}

/* Image-overlay editorial hero. */
.t24-home-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.t24-hero-support { display: grid; gap: 16px; min-width: 0; }
.t24-hero-story { position: relative; isolation: isolate; display: flex; align-items: end; min-width: 0; min-height: 260px; overflow: hidden; border-radius: 8px; background: var(--t24-primary); color: #fff; }
.t24-hero-story--primary { min-height: 420px; }
.t24-hero-image { position: absolute; inset: 0; z-index: -2; }
.t24-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.t24-hero-story::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(5 17 31 / 5%) 15%, rgb(5 17 31 / 40%) 45%, rgb(5 17 31 / 94%) 100%); }
.t24-hero-content { width: 100%; padding: clamp(20px, 3vw, 36px); }
.t24-hero-title { font-family: var(--t24-font-editorial); font-size: clamp(1.375rem, 1.2rem + .5vw, 1.75rem); font-weight: 700; line-height: 1.25; letter-spacing: -.015em; margin: 0; overflow-wrap: anywhere; text-wrap: pretty; text-shadow: 0 2px 8px rgb(0 0 0 / 45%); }
.t24-hero-story--primary .t24-hero-title { font-size: var(--t24-text-lead); line-height: 1.18; text-wrap: balance; }
.t24-hero-title a { color: inherit; text-decoration: none; }
.t24-hero-title a::after { content: ''; position: absolute; inset: 0; }
.t24-hero-title a:focus-visible { outline: none; box-shadow: none; }
.t24-hero-story:focus-within { outline: 3px solid var(--t24-accent); outline-offset: 4px; }
.t24-hero-category { margin: 0 0 12px; color: var(--t24-accent); font: 700 .8125rem/1.4 var(--t24-font-ui); letter-spacing: .07em; text-transform: uppercase; }
.t24-hero-date { margin: 12px 0 0; font: .8125rem/1.5 var(--t24-font-ui); color: #e3edf7; }
.t24-hero-story--text::before { background: linear-gradient(135deg, transparent, rgb(5 17 31 / 55%)); }
@media (min-width: 1024px) {
 .t24-home-hero { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
 .t24-home-hero--single { grid-template-columns: minmax(0, 1fr); }
 .t24-hero-story--primary { min-height: 560px; }
 .t24-hero-support { grid-template-rows: repeat(2, minmax(260px, 1fr)); }
 .t24-hero-support .t24-hero-content { padding: 24px; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .t24-hero-story:hover .t24-hero-image img { transform: scale(1.035); } }
@media (prefers-reduced-motion: reduce) { .t24-hero-image img { transition: none; } }