:root {
  /* Approved Storywire brand tokens */
  --sw-navy: #092448;
  --sw-navy-deep: #061830;
  --sw-teal: #007F95;
  --sw-teal-dark: #006277; /* AA small-text actions */
  --sw-cyan: #00B8D4;
  --sw-orange: #F58220;
  --sw-coral: #E74F43;
  --sw-crimson: var(--sw-coral); /* breaking / legacy alias */
  --sw-saffron: var(--sw-orange);
  --sw-warm: #F7FAFC;
  --sw-ink: #172B40;
  --sw-muted: #4A5D73;
  --sw-border: #D7E0EA;
  --sw-surface: #ffffff;
  --sw-surface-alt: #EEF3F8;
  --sw-focus: #007F95;
  --sw-font-display: "Literata", "Noto Serif Devanagari", Georgia, serif;
  --sw-font-ui: "Source Sans 3", "Noto Sans Devanagari", system-ui, sans-serif;
  --sw-measure: 74rem;
  --sw-radius: 6px;
  --sw-shadow-depth: 0 14px 36px rgb(9 36 72 / 0.14);
  --sw-masthead-offset: 7.25rem;
  --sw-edition-accent: var(--sw-teal);
  --sw-edition-accent-alt: var(--sw-orange);
}

html {
  scroll-padding-top: calc(var(--sw-masthead-offset) + 0.5rem);
  /* Reserve scrollbar space so appearing/disappearing bars do not shift the page */
  scrollbar-gutter: stable;
}

[data-theme="dark"] {
  --sw-warm: #0a1420;
  --sw-ink: #e8eef6;
  --sw-muted: #9aabbd;
  --sw-border: #243447;
  --sw-surface: #121c28;
  --sw-surface-alt: #1a2636;
  --sw-coral: #f06a60;
  --sw-crimson: #f06a60;
  --sw-teal: #2ab0c4;
  --sw-cyan: #4ecfe3;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .sw-ribbon, .sw-ribbons { animation: none !important; }
}

body {
  margin: 0;
  background:
    radial-gradient(ellipse 60% 36% at 0% -5%, rgb(0 184 212 / 0.07), transparent),
    radial-gradient(ellipse 50% 30% at 100% 0%, rgb(245 130 32 / 0.06), transparent),
    var(--sw-warm);
  color: var(--sw-ink);
  font-family: var(--sw-font-display);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; text-underline-offset: 0.15em; }
a:hover { color: var(--sw-teal); }
.sw-content a, .sw-static-content a, .sw-source a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}
img { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 2px solid var(--sw-focus); outline-offset: 2px; }

.sw-sr, .screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.sw-skip {
  position: absolute; left: -999px; top: 0; background: #fff; padding: 0.5rem 0.75rem; z-index: 100;
}
.sw-skip:focus { left: 1rem; top: 1rem; }

.sw-wrap {
  width: min(100% - 2rem, var(--sw-measure));
  margin-inline: auto;
}

/* ——— Chrome: utility + masthead + nav share one sticky stack ——— */
.sw-chrome {
  position: sticky;
  top: 0;
  z-index: 50;
}
.sw-utility {
  background: var(--sw-navy-deep);
  color: #c5d4e6;
  font-family: var(--sw-font-ui);
  font-size: 0.72rem;
}
.sw-utility .sw-wrap {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.35rem 1rem;
  padding: 0.28rem 0; align-items: center;
}
.sw-utility p { margin: 0; }
.sw-utility-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.sw-utility select, .sw-utility button {
  border: 1px solid rgb(255 255 255 / 0.22); background: rgb(255 255 255 / 0.08); color: #e8eef7;
  border-radius: 2px; padding: 0.15rem 0.45rem; font: inherit; min-height: 26px; cursor: pointer;
}
.sw-lang { display: inline-flex; gap: 2px; }
.sw-lang a, .sw-lang button {
  border: 1px solid rgb(255 255 255 / 0.22); background: transparent; color: #e8eef7;
  border-radius: 2px; padding: 0.15rem 0.5rem; font-family: "Noto Sans Devanagari", "Source Sans 3", sans-serif;
  min-height: 26px; min-width: 2.15rem; text-decoration: none; text-align: center;
}
.sw-lang .is-active { background: var(--sw-teal); color: #fff; border-color: var(--sw-teal); }

.sw-masthead {
  background: var(--sw-surface);
  border-bottom: 1px solid var(--sw-border);
}
.sw-masthead-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.5rem 0.85rem;
  padding: 0.45rem 0 0.35rem;
}
.sw-menu-btn {
  grid-column: 1; min-width: 44px; min-height: 44px; border: 1px solid var(--sw-border);
  background: var(--sw-surface); border-radius: var(--sw-radius); font-size: 1.1rem; cursor: pointer;
}
@media (min-width: 768px) {
  .sw-menu-btn { display: none; }
  .sw-masthead-row { grid-template-columns: 1fr auto; }
}

.sw-brand {
  grid-column: 2;
  display: inline-flex; align-items: center;
  text-decoration: none; min-width: 0; justify-self: start;
}
@media (min-width: 768px) { .sw-brand { grid-column: 1; } }
.sw-brand-logo { display: block; height: auto; width: auto; max-height: 2.6rem; }
.sw-brand-logo--desktop { display: none; }
.sw-brand-logo--mobile { display: block; max-height: 2.15rem; }
@media (min-width: 768px) {
  .sw-brand-logo--desktop { display: block; max-height: 2.75rem; }
  .sw-brand-logo--mobile { display: none; }
}

.sw-masthead-tools {
  grid-column: 3; justify-self: end; display: flex; align-items: center; gap: 0.4rem;
}
@media (min-width: 768px) { .sw-masthead-tools { grid-column: 2; } }

.sw-search-toggle {
  min-height: 40px; min-width: 40px; border: 1px solid var(--sw-border);
  background: var(--sw-surface); border-radius: var(--sw-radius);
  font-family: var(--sw-font-ui); font-size: 0.78rem; font-weight: 600; cursor: pointer;
}
@media (min-width: 768px) { .sw-search-toggle { display: none; } }
.sw-search { display: none; gap: 0.35rem; align-items: center; }
.sw-search.is-open { display: flex; }
@media (min-width: 768px) { .sw-search { display: flex; } }
.sw-search input {
  width: min(15rem, 32vw); border: 1px solid var(--sw-border); background: var(--sw-warm);
  border-radius: var(--sw-radius); padding: 0.4rem 0.65rem; font: inherit; font-size: 0.84rem;
  font-family: var(--sw-font-ui);
}
@media (max-width: 767px) {
  .sw-search.is-open {
    position: absolute; left: 1rem; right: 1rem; top: 100%;
    display: flex; background: var(--sw-surface); padding: 0.45rem 0 0.7rem; z-index: 4;
  }
  .sw-search.is-open input { flex: 1; width: auto; }
  .sw-masthead { position: relative; }
}
.sw-search button, .sw-btn {
  border: 0; border-radius: var(--sw-radius); background: var(--sw-teal-dark); color: #fff;
  padding: 0.4rem 0.8rem; font-family: var(--sw-font-ui); font-size: 0.84rem; font-weight: 600;
  min-height: 36px; cursor: pointer;
}
.sw-search button:hover, .sw-btn:hover { background: var(--sw-teal); }

.sw-nav {
  display: none;
  background: var(--sw-navy);
  color: #e8eef7;
  padding: 0.2rem 0;
}
.sw-nav.is-open { display: block; padding: 0.55rem 0 1rem; }
@media (min-width: 768px) { .sw-nav { display: block; } }
.sw-nav ul {
  list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.15rem;
  font-family: var(--sw-font-ui); font-size: 0.84rem; font-weight: 600;
}
.sw-nav li > a, .sw-more-btn {
  display: block; padding: 0.5rem 0; color: inherit; background: transparent; border: 0;
  font: inherit; cursor: pointer; text-align: left;
}
@media (min-width: 768px) {
  .sw-nav ul {
    flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0;
  }
  .sw-nav li > a, .sw-more-btn {
    display: inline-block; padding: 0.42rem 0.72rem; border-radius: 0; text-decoration: none;
    color: #e8eef7; background: transparent; border: 0; font: inherit; cursor: pointer;
  }
  .sw-nav li > a:hover, .sw-more-btn:hover {
    background: rgb(0 184 212 / 0.18); color: #fff;
  }
  .sw-nav li > a:focus-visible, .sw-more-btn:focus-visible {
    outline: 2px solid var(--sw-cyan); outline-offset: -2px;
  }
}
.sw-nav a { text-decoration: none; color: inherit; }
.sw-nav a:hover { color: var(--sw-cyan); }
.sw-nav-more { position: relative; }
.sw-more-btn { font-family: var(--sw-font-ui); font-weight: 600; }
.sw-more-panel {
  background: var(--sw-navy-deep);
  border: 1px solid rgb(255 255 255 / 0.12);
  padding: 0.4rem 0;
  min-width: 13rem;
}
@media (min-width: 768px) {
  .sw-more-panel {
    position: absolute; top: 100%; left: 0; z-index: 6;
    box-shadow: var(--sw-shadow-depth);
  }
  .sw-more-panel ul { flex-direction: column; }
  .sw-more-panel a { display: block; padding: 0.4rem 0.85rem; }
}
.sw-drawer-extras { display: none; margin-top: 1rem; }
.sw-nav.is-open .sw-drawer-extras { display: block; }
@media (min-width: 768px) { .sw-drawer-extras { display: none !important; } }
.sw-drawer-label {
  margin: 0.85rem 0 0.35rem; font-family: var(--sw-font-ui); font-size: 0.68rem;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--sw-cyan);
}
.sw-drawer-editions {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.25rem 0.6rem;
  font-family: var(--sw-font-ui); font-size: 0.84rem;
}
.sw-lang--drawer { margin-bottom: 0.35rem; }

/* Compact state is visual-only — never change chrome height (sticky CLS / "shake"). */
.sw-chrome.is-compact {
  box-shadow: 0 1px 0 var(--sw-border), 0 8px 24px rgb(9 36 72 / 0.06);
}
.sw-chrome.is-compact .sw-utility {
  opacity: 0.92;
}

/* ——— Ticker ——— */
.sw-ticker {
  border-bottom: 1px solid color-mix(in srgb, var(--sw-crimson) 45%, var(--sw-border));
  background: #f8e9ec;
}
[data-theme="dark"] .sw-ticker { background: #3a151d; }
.sw-ticker .sw-wrap {
  display: flex; align-items: center; gap: 0.55rem; padding: 0.22rem 0;
}
.sw-badge {
  display: inline-block; font-family: var(--sw-font-ui); font-size: 0.65rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; padding: 0.25rem 0.5rem; border-radius: 2px;
}
.sw-badge-breaking { background: var(--sw-crimson); color: #fff; }
.sw-badge-cat { color: var(--sw-teal-dark); padding-left: 0; }
.sw-ticker-viewport { flex: 1; min-width: 0; max-width: 100%; overflow: hidden; }
.sw-ticker-track {
  display: flex; width: max-content; gap: 2rem; animation: sw-ticker 42s linear infinite;
  font-family: var(--sw-font-ui); font-size: 0.84rem; font-weight: 600;
}
.sw-ticker-track[data-paused="true"] { animation-play-state: paused; }
.sw-ticker-track a { white-space: nowrap; text-decoration: none; }
.sw-ticker-pause {
  flex-shrink: 0; border: 1px solid var(--sw-crimson); color: var(--sw-crimson); background: transparent;
  border-radius: 2px; padding: 0.2rem 0.45rem; font-family: var(--sw-font-ui); font-size: 0.68rem;
  min-height: 28px; cursor: pointer;
}
@keyframes sw-ticker { to { transform: translateX(-50%); } }

/* Legacy brand-hero removed from templates; keep rule inert if cached HTML exists. */
.sw-brand-hero { display: none !important; }
.sw-brand-hero__accent {
  height: 4px;
  background: linear-gradient(90deg, var(--sw-orange) 0%, var(--sw-cyan) 46%, var(--sw-teal) 100%);
}
.sw-brand-hero__inner {
  display: flex;
  align-items: center;
  gap: 0.85rem 1.15rem;
  padding: 0.7rem 0 0.8rem;
  min-height: 0;
}
.sw-brand-hero__mark {
  width: 56px;
  height: 56px;
  flex: 0 0 auto;
  object-fit: contain;
  background: #fff;
  border-radius: 8px;
  padding: 5px;
}
.sw-brand-hero__copy { min-width: 0; }
.sw-brand-hero__kicker {
  margin: 0;
  font-family: var(--sw-font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sw-cyan);
}
.sw-brand-hero__line {
  margin: 0.12rem 0 0;
  font-family: var(--sw-font-display);
  font-size: clamp(1.15rem, 2.1vw, 1.55rem);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
  color: #fff;
}
.sw-brand-hero__sub {
  margin: 0.2rem 0 0;
  font-family: var(--sw-font-ui);
  font-size: 0.84rem;
  color: rgb(255 255 255 / 0.78);
  line-height: 1.35;
}
@media (max-width: 639px) {
  .sw-brand-hero__mark { width: 44px; height: 44px; padding: 4px; }
  .sw-brand-hero__inner { padding: 0.55rem 0 0.65rem; }
  .sw-brand-hero__line { font-size: 1.05rem; }
}

/* ——— Shared story primitives ——— */
.sw-kicker {
  margin: 0 0 0.35rem;
  font-family: var(--sw-font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sw-teal-dark);
  text-decoration: none;
}
.sw-story-meta {
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.55rem; margin-bottom: 0.3rem; align-items: center;
}
.sw-deck {
  margin: 0.45rem 0 0;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
  font-size: 0.92rem;
  line-height: 1.5;
}
.sw-time {
  display: block; margin-top: 0.4rem;
  font-family: var(--sw-font-ui); font-size: 0.72rem; color: var(--sw-muted);
}
.sw-headline { margin: 0; font-family: var(--sw-font-display); font-weight: 650; line-height: 1.25; text-wrap: balance; }
.sw-headline a { text-decoration: none; }
.sw-headline--lead { font-size: clamp(1.35rem, 2.2vw, 1.85rem); }
.sw-headline--support { font-size: clamp(1.05rem, 1.3vw, 1.2rem); }
.sw-headline--card { font-size: clamp(1rem, 1.2vw, 1.15rem); }
.sw-headline--rail { font-size: 0.95rem; font-weight: 600; }

.sw-thumb {
  display: block; overflow: hidden; border-radius: var(--sw-radius);
  background: var(--sw-surface-alt); position: relative;
}
.sw-thumb img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 420ms ease;
}
.sw-depth:hover .sw-thumb img { transform: scale(1.03); }
.sw-thumb--hero { aspect-ratio: 16 / 10; }
.sw-thumb--support { aspect-ratio: 16 / 10; max-height: none; }
.sw-thumb--feat { aspect-ratio: 16 / 10; }
.sw-thumb--sport { aspect-ratio: 16 / 10; }
.sw-thumb--sm { width: 72px; height: 72px; flex-shrink: 0; border-radius: 4px; }
.sw-thumb--fallback {
  display: grid; place-items: center;
  background:
    radial-gradient(circle at 28% 22%, rgb(0 184 212 / 0.38), transparent 48%),
    radial-gradient(circle at 82% 78%, rgb(245 130 32 / 0.28), transparent 46%),
    linear-gradient(145deg, var(--sw-navy), var(--sw-navy-deep));
  color: #fff; text-decoration: none; min-height: 8rem;
}
.sw-thumb--fallback span {
  font-family: var(--sw-font-ui); font-size: 0.75rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.9;
}

.sw-depth {
  transition: transform 220ms ease, box-shadow 220ms ease;
  background: var(--sw-surface);
  border-radius: calc(var(--sw-radius) + 2px);
}
.sw-depth:hover { transform: translateY(-2px); box-shadow: var(--sw-shadow-depth); }
@media (max-width: 639px) {
  .sw-depth:hover { transform: none; box-shadow: none; }
  .sw-depth:hover .sw-thumb img { transform: none; }
}

.sw-story-body { padding: 0.75rem 0.85rem 0.95rem; }
.sw-section { margin: 2.25rem 0; }
.sw-section-head {
  display: flex; justify-content: space-between; align-items: end; gap: 1rem;
  border-bottom: 1px solid var(--sw-border); padding-bottom: 0.55rem; margin-bottom: 1.1rem;
}
.sw-section-head--flush { border-bottom: 0; margin-bottom: 0.75rem; padding-bottom: 0; }
.sw-section-title {
  margin: 0; font-family: var(--sw-font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.55rem); font-weight: 700; color: var(--sw-navy);
}
[data-theme="dark"] .sw-section-title { color: var(--sw-ink); }
.sw-section-head a {
  font-family: var(--sw-font-ui); font-size: 0.84rem; color: var(--sw-teal-dark); text-decoration: none; white-space: nowrap;
}

/* ——— Top Stories + Latest ——— */
.sw-top-stories { padding: 1.35rem 0 0.5rem; }
.sw-section-head--flush {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.sw-carousel-toolbar, .sw-latest-toolbar {
  display: inline-flex; gap: 0.25rem; align-items: center;
}
.sw-icon-btn {
  min-width: 36px; min-height: 36px; border: 1px solid var(--sw-border);
  background: var(--sw-surface); color: var(--sw-navy); border-radius: var(--sw-radius);
  font-family: var(--sw-font-ui); font-size: 0.85rem; font-weight: 600; cursor: pointer;
}
.sw-icon-btn:hover { border-color: var(--sw-teal); color: var(--sw-teal); }
.sw-icon-btn[aria-pressed="true"] { background: var(--sw-navy); color: #fff; border-color: var(--sw-navy); }

/* Top Stories: shared grid, tops aligned, cards hug content (no blank stretch) */
.sw-top-stories {
  padding-top: 0.35rem;
  scroll-margin-top: calc(var(--sw-masthead-offset) + 0.75rem);
}
.sw-top-stories .sw-section-title {
  scroll-margin-top: calc(var(--sw-masthead-offset) + 0.5rem);
}
.sw-top-layout {
  display: grid;
  gap: 1.25rem;
  align-items: start;
}
@media (min-width: 960px) {
  .sw-top-layout {
    grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 0.42fr);
    /* Both columns top-aligned — never let Latest define a tall empty row */
    align-items: start;
  }
  .sw-carousel,
  .sw-latest-rail {
    align-self: start;
    min-height: 0;
  }
}
@media (max-width: 959px) {
  .sw-top-layout {
    grid-template-areas: "carousel" "latest";
    align-items: start;
  }
  .sw-carousel { grid-area: carousel; }
  .sw-latest-rail { grid-area: latest; }
}

.sw-carousel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: auto;
  width: 100%;
}
.sw-carousel__viewport {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  /* JS locks --sw-carousel-min to the tallest measured slide (no shrink on advance) */
  min-height: var(--sw-carousel-min, 0px);
}
/* Inactive slides out of flow; active slide defines content. Min-height prevents shrink/CLS. */
.sw-carousel__slide {
  display: none;
  width: 100%;
  min-width: 0;
  height: auto;
}
.sw-carousel__slide.is-active {
  display: block;
  animation: sw-fade 0.35s ease;
}
@keyframes sw-fade {
  /* Opacity only — never translate (transform on slides caused perceived shake) */
  from { opacity: 0.45; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-carousel__slide.is-active { animation: none; }
}
.sw-carousel__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin: 0.65rem 0 0;
  padding: 0.35rem 0 0;
  border-top: 1px solid var(--sw-border);
  order: 2;
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
}
.sw-carousel__dots {
  display: flex;
  gap: 0.45rem;
  justify-content: flex-start;
  align-items: center;
  margin: 0;
  padding: 0;
}
.sw-dot {
  width: 10px; height: 10px; border-radius: 50%; border: 0;
  background: color-mix(in srgb, var(--sw-navy) 25%, white); cursor: pointer; padding: 0;
}
.sw-dot.is-active { background: var(--sw-orange); transform: scale(1.15); }
.sw-thumb {
  overflow: hidden;
  background: var(--sw-surface-alt);
}
.sw-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sw-top-grid {
  display: grid;
  gap: 0.85rem;
  align-items: start;
  height: auto;
}
@media (min-width: 720px) {
  .sw-top-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 0.95fr);
    gap: 0.9rem;
    align-items: start;
  }
}
@media (max-width: 719px) {
  .sw-top-grid {
    grid-template-columns: 1fr;
  }
  .sw-support-col {
    display: grid;
    grid-template-columns: 1fr;
  }
}
.sw-lead, .sw-support-card {
  overflow: hidden;
  border: 1px solid var(--sw-border);
  background: var(--sw-surface);
  display: flex;
  flex-direction: column;
  height: auto !important;
  max-height: none;
  min-height: 0;
  align-self: start;
  flex: 0 0 auto;
}
.sw-lead .sw-thumb--hero {
  aspect-ratio: 16 / 10;
  width: 100%;
  flex: 0 0 auto;
  min-height: 0;
  max-height: 22rem;
}
/* Text-first lead: accent only — do not reserve a 16:10 photo void */
.sw-lead .sw-thumb--hero.sw-thumb--text,
.sw-lead:has(> .sw-thumb--text) .sw-thumb--hero {
  aspect-ratio: auto;
  max-height: 0.28rem;
  min-height: 0;
  height: 0.28rem;
}
.sw-lead .sw-thumb--hero img,
.sw-support-card .sw-thumb--support img {
  display: block; width: 100%; height: 100%; object-fit: cover;
}
.sw-lead .sw-story-body,
.sw-support-card .sw-story-body {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.85rem 0.8rem;
}
.sw-lead .sw-deck {
  margin: 0.1rem 0 0.15rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sw-deck--compact {
  font-size: 0.88rem;
  margin: 0.1rem 0 0.15rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sw-lead .sw-time,
.sw-support-card .sw-time { margin-top: 0.2rem; }
.sw-support-col {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  align-content: start;
  align-items: stretch;
  align-self: start;
  height: auto;
  min-height: 0;
}
.sw-support-card .sw-thumb--support {
  aspect-ratio: 16 / 10;
  max-height: none;
  min-height: 0;
  flex: 0 0 auto;
  width: 100%;
}
.sw-headline--lead {
  font-size: clamp(1.28rem, 2vw, 1.72rem);
  line-height: 1.22;
  margin: 0;
}
.sw-headline--support {
  font-size: clamp(1rem, 1.2vw, 1.14rem);
  line-height: 1.32;
  margin: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.sw-support-card,
.sw-lead,
.sw-sports-card,
.sw-mosaic-item,
.sw-related-card,
.sw-search-card {
  min-width: 0;
}
.sw-support-card .sw-story-body,
.sw-lead .sw-story-body {
  min-width: 0;
}
.sw-support-card .sw-headline a,
.sw-lead .sw-headline a {
  overflow-wrap: break-word;
  word-break: normal;
}
.sw-top-grid .sw-headline a { color: inherit; text-decoration: none; }
.sw-top-grid .sw-headline a:hover { color: var(--sw-teal); }

.sw-latest-rail {
  border: 1px solid var(--sw-border);
  border-radius: 10px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--sw-navy) 4%, var(--sw-surface)), var(--sw-surface));
  padding: 0.85rem 0.9rem 0.75rem;
  display: flex;
  flex-direction: column;
  height: auto;
  max-height: none;
  min-height: 0;
  box-sizing: border-box;
}
.sw-latest-head {
  display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
  margin-bottom: 0.45rem;
  flex: 0 0 auto;
}
.sw-rail-label {
  margin: 0;
  font-family: var(--sw-font-ui); font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--sw-navy);
}
.sw-latest-banner { margin-bottom: 0.45rem; flex: 0 0 auto; }
.sw-latest-refresh {
  width: 100%; border: 1px dashed var(--sw-teal); background: color-mix(in srgb, var(--sw-teal) 10%, white);
  color: var(--sw-teal-dark); font-family: var(--sw-font-ui); font-size: 0.8rem; font-weight: 600;
  border-radius: var(--sw-radius); padding: 0.45rem 0.6rem; cursor: pointer;
}
.sw-latest-timeline {
  overflow-y: auto;
  flex: 1 1 auto;
  /* Cap height so Latest never stretches the Top Stories row into a void */
  max-height: min(36rem, 70vh);
  min-height: 0;
  padding-right: 0.25rem; scroll-behavior: smooth;
  border-top: 1px solid var(--sw-border);
}
.sw-latest-meta {
  margin: 0.55rem 0 0;
  font-family: var(--sw-font-ui); font-size: 0.72rem; color: var(--sw-muted);
  flex: 0 0 auto;
}
.sw-rail-item {
  border-bottom: 1px solid var(--sw-border); padding: 0.65rem 0.35rem 0.65rem 0.55rem;
  border-left: 3px solid transparent; transition: background 0.2s ease, border-color 0.2s ease;
}
.sw-rail-item:last-child { border-bottom: 0; }
.sw-rail-item.is-focus {
  background: color-mix(in srgb, var(--sw-orange) 8%, transparent);
  border-left-color: var(--sw-orange);
}
.sw-kicker--rail {
  display: inline-block; font-size: 0.68rem; margin: 0.15rem 0 0.2rem;
}
.sw-headline--rail {
  font-size: 0.98rem;
  line-height: 1.3;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 960px) {
  .sw-latest-timeline {
    /* Match typical lead+support column; JS tightens to carousel height */
    max-height: min(40rem, 72vh);
  }
  .sw-latest-rail {
    max-height: none;
    height: auto;
  }
}
@media (max-width: 959px) {
  .sw-latest-timeline { max-height: 18rem; flex: 0 1 auto; }
  .sw-icon-btn { min-width: 32px; min-height: 32px; font-size: 0.78rem; }
  .sw-support-card .sw-thumb--support { max-height: none; }
}

/* ——— State Editions directory (replaces schematic India map) ——— */
.sw-across {
  padding: 1.1rem 0 0.35rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.sw-across--directory {
  margin-top: 1.5rem;
}
.sw-across .sw-section-head {
  margin-bottom: 0.85rem;
}
.sw-states {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  font-family: var(--sw-font-ui);
  font-size: 0.9rem;
  margin: 0 0 1.25rem;
}
@media (min-width: 560px) { .sw-states { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 860px) { .sw-states { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sw-states { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.sw-states a {
  display: flex;
  align-items: center;
  min-height: 2.65rem;
  border: 1px solid var(--sw-border);
  background: var(--sw-surface);
  padding: 0.55rem 0.7rem;
  border-radius: var(--sw-radius);
  text-decoration: none;
  color: var(--sw-ink);
  line-height: 1.25;
  font-weight: 600;
  transition: border-color 140ms ease, color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}
.sw-states a:hover,
.sw-states a:focus-visible {
  border-color: var(--sw-teal);
  color: var(--sw-teal-dark);
  background: color-mix(in srgb, var(--sw-teal) 6%, var(--sw-surface));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--sw-teal) 18%, transparent);
}
.sw-states a:focus-visible {
  outline: 2px solid var(--sw-focus);
  outline-offset: 2px;
}
.sw-states__name { display: block; }
.sw-states--directory {
  margin-bottom: 1.35rem;
}
.sw-region-cards {
  display: grid;
  gap: 1rem;
  grid-auto-flow: dense;
  align-items: start;
}
@media (min-width: 700px) {
  .sw-region-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.sw-region-card {
  overflow: hidden;
  border: 1px solid var(--sw-border);
  align-self: start;
  min-width: 0;
}
/* Text-first region cards: accent bar + padded body — no reserved photo hole */
.sw-region-card:has(.sw-thumb--text),
.sw-region-card.sw-card--text {
  display: flex;
  flex-direction: column;
  background: var(--sw-surface);
}
.sw-region-card:has(.sw-thumb--text) .sw-story-body,
.sw-region-card.sw-card--text .sw-story-body {
  padding: 0.85rem 0.95rem 1rem;
}

/* ——— Politics ——— */
.sw-politics-grid {
  display: grid; gap: 1.15rem;
}
@media (min-width: 860px) {
  .sw-politics-grid { grid-template-columns: 1.35fr 1fr; align-items: start; }
}
.sw-feat-photo { overflow: hidden; border: 1px solid var(--sw-border); }
.sw-politics-side { display: grid; gap: 0.85rem; }
.sw-thumb-row {
  display: grid; grid-template-columns: 72px 1fr; gap: 0.75rem; align-items: center;
  padding-bottom: 0.75rem; border-bottom: 1px solid var(--sw-border);
}
.sw-headline-list {
  list-style: none; margin: 0; padding: 0;
  font-family: var(--sw-font-ui);
}
.sw-headline-list li {
  border-bottom: 1px solid var(--sw-border); padding: 0.55rem 0;
}
.sw-headline-list a { text-decoration: none; font-weight: 600; font-size: 0.95rem; }

/* ——— Business / Tech split ——— */
.sw-split {
  display: grid; gap: 1.5rem;
}
@media (min-width: 800px) { .sw-split { grid-template-columns: 1fr 1fr; gap: 1.75rem; } }
.sw-split-col { display: grid; gap: 0.85rem; align-content: start; }
.sw-split-card { overflow: hidden; border: 1px solid var(--sw-border); display: grid; grid-template-columns: 42% 1fr; }
@media (max-width: 520px) { .sw-split-card { grid-template-columns: 1fr; } }
.sw-split-card .sw-thumb { border-radius: 0; aspect-ratio: 4/3; min-height: 100%; }
.sw-split-card .sw-story-body { padding: 0.7rem 0.8rem; }

/* ——— Sports ——— */
.sw-sports-tabs {
  display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 1rem;
  font-family: var(--sw-font-ui);
}
.sw-sports-tab {
  border: 1px solid var(--sw-border); background: var(--sw-surface); color: var(--sw-ink);
  border-radius: var(--sw-radius); padding: 0.35rem 0.65rem; font: inherit; font-size: 0.82rem;
  font-weight: 600; cursor: pointer; min-height: 34px;
}
.sw-sports-tab.is-active, .sw-sports-tab[aria-selected="true"] {
  background: var(--sw-navy); color: #fff; border-color: var(--sw-navy);
}
.sw-fixtures {
  display: flex; gap: 0.65rem; overflow-x: auto; margin: 0 0 1rem; padding-bottom: 0.35rem;
  font-family: var(--sw-font-ui); font-size: 0.82rem;
}
.sw-fixture {
  flex: 0 0 auto; border: 1px solid var(--sw-border); border-radius: var(--sw-radius);
  padding: 0.45rem 0.7rem; background: var(--sw-surface-alt); white-space: nowrap;
}
.sw-fixture__score { font-weight: 700; margin-inline: 0.45rem; color: var(--sw-teal-dark); }
.sw-fixture__status { color: var(--sw-muted); }

.sw-sports-composition {
  display: grid;
  gap: 0.85rem 1.1rem;
  align-items: start;
  width: 100%;
}
.sw-sports-lead { grid-area: auto; }
.sw-sports-cards { grid-area: auto; }
.sw-sports-more { grid-area: auto; }
.sw-sports-list-wrap { grid-area: auto; }
@media (min-width: 900px) {
  /* Preview fills the wrap: lead + readable support rail — no empty third column */
  .sw-sports-composition,
  .sw-sports--preview .sw-sports-composition {
    grid-template-columns: minmax(0, 1.35fr) minmax(16.5rem, 0.95fr);
    grid-template-areas:
      "lead cards"
      "more more";
  }
  .sw-sports-lead { grid-area: lead; }
  .sw-sports-cards { grid-area: cards; }
  .sw-sports-more { grid-area: more; margin: 0; }
  .sw-sports-list-wrap { grid-area: list; }
  .sw-sports-composition:has(.sw-sports-list-wrap) {
    grid-template-areas:
      "lead cards"
      "list list"
      "more more";
  }
  .sw-sports-composition[data-count="1"] {
    grid-template-columns: 1fr;
    grid-template-areas: "lead" "more";
  }
}
.sw-sports-lead {
  overflow: hidden; border: 1px solid var(--sw-border); background: var(--sw-surface);
  min-width: 0;
}
.sw-sports-lead .sw-thumb--sport-lead { aspect-ratio: 16/10; }
.sw-sports-cards {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
  min-width: 0;
  width: 100%;
}
.sw-sports-cards[data-cards="1"] { grid-template-columns: 1fr; }
/* Never three ultra-thin columns — stack beside lead, or 2-up when stacked under lead */
@media (max-width: 899px) {
  .sw-sports-cards[data-cards="2"],
  .sw-sports-cards[data-cards="3"],
  .sw-sports-cards[data-cards="4"] {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  }
}
.sw-sports-card {
  overflow: hidden;
  border: 1px solid var(--sw-border);
  min-width: 0;
  background: var(--sw-surface);
  display: grid;
  grid-template-columns: minmax(5.5rem, 38%) minmax(0, 1fr);
  align-items: stretch;
}
.sw-sports-card .sw-thumb--sport,
.sw-sports-card .sw-thumb--fallback {
  aspect-ratio: 1 / 1;
  max-height: none;
  min-height: 5.5rem;
  width: 100%;
  height: 100%;
}
.sw-sports-card .sw-story-body {
  padding: 0.55rem 0.7rem 0.65rem;
  min-width: 0;
}
.sw-sports-card .sw-headline {
  font-size: clamp(0.95rem, 1.1vw, 1.08rem);
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: normal;
}
.sw-sports-list-wrap {
  border-top: 2px solid var(--sw-navy); padding-top: 0.55rem;
}
@media (min-width: 900px) and (max-width: 1099px) {
  .sw-sports-list-wrap {
    border-top: 1px solid var(--sw-border);
    padding-top: 0.75rem;
  }
  .sw-sports-list {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem;
  }
}
@media (min-width: 1100px) {
  .sw-sports-list-wrap { border-top: 0; border-left: 1px solid var(--sw-border); padding-left: 0.85rem; }
}
.sw-sports-list {
  list-style: none; margin: 0.35rem 0 0; padding: 0;
  font-family: var(--sw-font-ui);
}
.sw-sports-list li {
  border-bottom: 1px solid var(--sw-border); padding: 0.55rem 0;
  display: grid; gap: 0.15rem;
}
.sw-sports-list a { text-decoration: none; font-weight: 600; font-size: 0.92rem; }
.sw-sports-empty, .sw-empty-note {
  font-family: var(--sw-font-ui); color: var(--sw-muted); padding: 1rem 0;
}

/* ——— Entertainment mosaic ——— */
.sw-gallery-mosaic {
  display: grid; gap: 0.85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 800px) {
  .sw-gallery-mosaic {
    grid-template-columns: 1.4fr 1fr 1fr;
    grid-template-rows: auto auto;
  }
  .sw-mosaic-item.is-large {
    grid-row: span 2;
  }
}
.sw-mosaic-item { min-width: 0; }
.sw-mosaic-item .sw-thumb { aspect-ratio: 4/3; margin-bottom: 0.45rem; }
.sw-mosaic-item.is-large .sw-thumb { aspect-ratio: 3/4; }
@media (max-width: 799px) {
  .sw-mosaic-item.is-large { grid-column: 1 / -1; }
  .sw-mosaic-item.is-large .sw-thumb { aspect-ratio: 16/10; }
}

/* ——— Health / Education / Environment ——— */
.sw-triad {
  display: grid; gap: 1.35rem;
}
@media (min-width: 800px) {
  .sw-triad { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
}
.sw-triad-col { min-width: 0; }
.sw-list-story {
  border-bottom: 1px solid var(--sw-border); padding: 0.55rem 0;
}
.sw-world-grid {
  display: grid; gap: 1rem;
}
@media (min-width: 700px) { .sw-world-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 699px) { .sw-world-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sw-world-card { overflow: hidden; border: 1px solid var(--sw-border); }
.sw-opinion-grid {
  display: grid; gap: 1rem;
}
@media (min-width: 760px) { .sw-opinion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sw-opinion-card {
  border-top: 3px solid var(--sw-orange); padding: 0.85rem 0.15rem 0.5rem;
}

/* ——— Explained (navy band) ——— */
.sw-explained {
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  padding: 0;
  border: 0;
}
.sw-explained-inner {
  width: min(100% - 2rem, var(--sw-measure));
  margin: 0 auto;
  padding: 2rem 0;
  color: #f2f5fa;
  background:
    radial-gradient(circle at 12% 20%, rgb(197 34 56 / 0.28), transparent 42%),
    radial-gradient(circle at 88% 70%, rgb(14 124 123 / 0.22), transparent 40%),
    linear-gradient(145deg, var(--sw-navy), var(--sw-navy-deep));
  border-radius: 12px;
  padding-inline: 1.25rem;
  box-shadow: var(--sw-shadow-depth);
}
.sw-explained .sw-section-head { border-color: rgb(255 255 255 / 0.18); }
.sw-explained .sw-section-title { color: #fff; }
.sw-explained .sw-kicker { color: #f0c56e; }
.sw-explained .sw-headline a { color: #fff; text-decoration: none; }
.sw-explained .sw-deck { color: rgb(255 255 255 / 0.78); }
.sw-explained-grid {
  display: grid; gap: 1.15rem;
}
@media (min-width: 760px) { .sw-explained-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ——— India in Pictures ——— */
.sw-photo-rail {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 260px);
  gap: 0.85rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: 0.4rem; -webkit-overflow-scrolling: touch;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.sw-photo-card {
  margin: 0; scroll-snap-align: start; background: var(--sw-surface);
  border: 1px solid var(--sw-border); border-radius: var(--sw-radius); overflow: hidden;
}
.sw-photo-open {
  display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in;
  aspect-ratio: 4/3; overflow: hidden;
}
.sw-photo-open img { width: 100%; height: 100%; object-fit: cover; }
.sw-photo-card figcaption {
  padding: 0.55rem 0.65rem 0.7rem;
  font-family: var(--sw-font-ui); font-size: 0.82rem;
}
.sw-photo-card figcaption a { text-decoration: none; font-weight: 600; }
.sw-credit { display: block; margin-top: 0.25rem; font-size: 0.7rem; color: var(--sw-muted); }

/* ——— Videos section ——— */
.sw-videos-grid {
  display: grid; gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}
.sw-videos-grid[data-count="1"] { grid-template-columns: 1fr; max-width: 22rem; }
.sw-videos-grid[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sw-video-card {
  border: 1px solid var(--sw-border); border-radius: var(--sw-radius);
  overflow: hidden; background: var(--sw-surface); align-self: start;
}
.sw-video-poster {
  position: relative; aspect-ratio: 16/9; background: var(--sw-navy-deep);
  display: block; border: 0; width: 100%; padding: 0; cursor: pointer; overflow: hidden;
}
.sw-video-poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sw-video-play {
  position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%);
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  background: color-mix(in srgb, var(--sw-teal) 88%, #000); color: #fff;
  display: grid; place-items: center; font-size: 1rem; pointer-events: none;
  box-shadow: 0 6px 18px rgb(0 0 0 / 0.35);
}
.sw-video-duration,
.sw-video-live {
  position: absolute; right: 0.5rem; bottom: 0.5rem;
  background: rgb(0 0 0 / 0.7); color: #fff; font-family: var(--sw-font-ui);
  font-size: 0.7rem; padding: 0.15rem 0.4rem; border-radius: 3px;
}
.sw-video-live {
  left: 0.5rem; right: auto;
  background: color-mix(in srgb, var(--sw-coral, #c45c48) 92%, #000);
  font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
}

/* ——— Most read / newsletter / empty ——— */
.sw-most-read { border-top: 1px solid var(--sw-border); }
.sw-ranked {
  display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; padding: 0.75rem 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw-rank {
  font-family: var(--sw-font-display); font-size: 1.45rem; font-weight: 700; color: var(--sw-orange); line-height: 1;
}
.sw-newsletter {
  border: 1px solid var(--sw-border); background: var(--sw-surface); padding: 1.35rem; border-radius: 10px; margin: 2.25rem 0;
}
.sw-newsletter form { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.65rem; }
.sw-newsletter input[type="email"] {
  flex: 1; min-width: 200px; border: 1px solid var(--sw-border); border-radius: var(--sw-radius);
  padding: 0.5rem 0.7rem; font: inherit; font-family: var(--sw-font-ui);
}
.sw-empty { padding: 1.25rem 0.25rem; text-align: left; color: var(--sw-muted); max-width: 36rem; }
.sw-empty h2 { margin: 0 0 0.35rem; font-size: 1.15rem; color: var(--sw-navy); }
.sw-empty p { margin: 0; font-family: var(--sw-font-ui); font-size: 0.92rem; }

/* ——— Lightbox ——— */
.sw-lightbox {
  border: 0; padding: 0; max-width: min(92vw, 960px); background: transparent; color: #fff;
}
.sw-lightbox::backdrop { background: rgb(6 10 18 / 0.88); }
.sw-lightbox img {
  width: 100%; max-height: 78vh; object-fit: contain; background: #000; border-radius: 6px;
}
.sw-lightbox__caption {
  margin: 0.65rem 0 0; font-family: var(--sw-font-ui); font-size: 0.9rem; text-align: center;
}
.sw-lightbox__close {
  position: absolute; top: -2.4rem; right: 0;
  border: 1px solid rgb(255 255 255 / 0.4); background: transparent; color: #fff;
  border-radius: 999px; padding: 0.25rem 0.7rem; font-family: var(--sw-font-ui); cursor: pointer;
}

/* ——— Article ——— */
.sw-article {
  max-width: 42rem; margin: 1.5rem auto 3rem; padding: 0 1rem;
  font-size: clamp(1.05rem, 0.35vw + 1rem, 1.2rem); line-height: 1.75;
}
.sw-article header h1 {
  margin: 0.35rem 0 0;
  font-size: clamp(1.65rem, 2.8vw, 2.35rem);
  line-height: 1.2; font-weight: 700; text-wrap: balance;
}
.sw-byline {
  display: flex; flex-wrap: wrap; gap: 0.35rem 0.85rem; margin-top: 0.75rem;
  font-family: var(--sw-font-ui); font-size: 0.82rem; color: var(--sw-muted);
}
.sw-article-hero {
  margin: 1.15rem 0 1.35rem; border-radius: var(--sw-radius); overflow: hidden;
  background: var(--sw-surface-alt);
}
.sw-article-hero img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.sw-article-hero figcaption {
  padding: 0.55rem 0.15rem 0; font-family: var(--sw-font-ui); font-size: 0.78rem; color: var(--sw-muted);
}
.sw-related {
  margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--sw-border);
}
.sw-related-grid {
  display: grid; gap: 1rem;
}
@media (min-width: 640px) { .sw-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sw-related-card { border: 1px solid var(--sw-border); border-radius: var(--sw-radius); overflow: hidden; background: var(--sw-surface); }
.sw-related-card .sw-thumb { aspect-ratio: 16/10; border-radius: 0; }
.sw-source {
  margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--sw-border);
  font-family: var(--sw-font-ui); font-size: 0.88rem; color: var(--sw-muted);
}

/* ——— Footer ——— */
.sw-footer {
  margin-top: 2.25rem; background: var(--sw-navy); color: #d7e2ef;
}
.sw-footer a { color: inherit; text-decoration: none; }
.sw-footer a:hover, .sw-footer a:focus-visible { color: var(--sw-cyan); }
.sw-footer-intro {
  display: grid; gap: 0.75rem;
  padding: 1.35rem 0 1.1rem;
  border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
@media (min-width: 800px) {
  .sw-footer-intro { grid-template-columns: minmax(16rem, 22rem) 1fr; align-items: start; }
}
.sw-footer-blurb { margin: 0; font-family: var(--sw-font-ui); font-size: 0.9rem; line-height: 1.45; max-width: 36rem; }
.sw-footer-social { display: flex; flex-wrap: wrap; gap: 0.55rem; font-family: var(--sw-font-ui); font-size: 0.82rem; }
.sw-footer-cols {
  display: grid; gap: 1rem 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid rgb(255 255 255 / 0.12);
}
@media (min-width: 720px) { .sw-footer-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sw-footer-heading {
  margin: 0 0 0.45rem; font-family: var(--sw-font-ui); font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--sw-cyan);
}
.sw-footer-editions { padding: 1rem 0 0.85rem; }
.sw-footer-states {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.2rem 0.75rem;
  font-family: var(--sw-font-ui); font-size: 0.86rem; line-height: 1.45;
}
@media (min-width: 600px) { .sw-footer-states { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .sw-footer-states { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .sw-footer-states { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.sw-footer-states a { padding: 0.2rem 0; overflow-wrap: anywhere; }
.sw-footer-legal { border-top: 1px solid rgb(255 255 255 / 0.12); }
.sw-footer-legal .sw-wrap { padding: 0.55rem 0 0.7rem; }

/* Hindi / Devanagari care */
:lang(hi) .sw-headline,
:lang(hi) .sw-section-title,
:lang(hi) .sw-brand-hero__line {
  font-family: "Noto Serif Devanagari", "Literata", serif;
  line-height: 1.35;
}
:lang(hi) body { font-family: "Noto Sans Devanagari", "Source Sans 3", sans-serif; }

/* ——— Inner pages ——— */
.sw-page-bar { border-bottom: 1px solid var(--sw-border); background: var(--sw-surface); }
.sw-breadcrumbs ol {
  list-style: none; margin: 0; padding: 0.55rem 0;
  display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
  font-family: var(--sw-font-ui); font-size: 0.78rem; color: var(--sw-muted);
}
.sw-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 0.35rem; opacity: 0.55; }
.sw-breadcrumbs a { text-decoration: none; color: var(--sw-teal-dark); }
.sw-page-title {
  margin: 0.2rem 0 0; font-family: var(--sw-font-display);
  font-size: clamp(1.55rem, 2.4vw, 2.1rem); color: var(--sw-navy); line-height: 1.2;
}
.sw-search--page { display: flex; gap: 0.45rem; margin-top: 0.85rem; max-width: 36rem; }
.sw-search--page input {
  flex: 1; border: 1px solid var(--sw-border); border-radius: var(--sw-radius);
  padding: 0.55rem 0.75rem; font: inherit; font-family: var(--sw-font-ui);
}
.sw-search-results { display: grid; gap: 1rem; }
.sw-search-card {
  display: grid; grid-template-columns: minmax(120px, 220px) 1fr; gap: 0;
  overflow: hidden; border: 1px solid var(--sw-border); background: var(--sw-surface);
}
@media (max-width: 639px) { .sw-search-card { grid-template-columns: 1fr; } }
.sw-search-card .sw-thumb { border-radius: 0; aspect-ratio: 16/10; }
.sw-pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0 2rem; font-family: var(--sw-font-ui); }
.sw-pagination a, .sw-pagination span {
  display: inline-block; padding: 0.4rem 0.7rem; border: 1px solid var(--sw-border);
  border-radius: 4px; text-decoration: none; color: var(--sw-navy);
}
.sw-pagination .current { background: var(--sw-navy); color: #fff; border-color: var(--sw-navy); }
.sw-share {
  display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.85rem;
  font-family: var(--sw-font-ui); font-size: 0.8rem;
}
.sw-share a {
  border: 1px solid var(--sw-border); border-radius: 999px; padding: 0.3rem 0.7rem;
  text-decoration: none; color: var(--sw-teal-dark);
}
.sw-lang-notice {
  margin: 0.85rem 0 0; padding: 0.65rem 0.8rem; border-radius: 6px;
  background: color-mix(in srgb, var(--sw-orange) 12%, var(--sw-surface));
  border: 1px solid color-mix(in srgb, var(--sw-orange) 35%, var(--sw-border));
  font-family: var(--sw-font-ui); font-size: 0.9rem;
}
.sw-states--compact { margin-top: 0.85rem; }
.sw-states a.is-active {
  background: var(--sw-navy); color: #fff; border-color: var(--sw-navy);
}
.sw-footer-grid {
  display: grid; gap: 1.5rem;
}
@media (min-width: 800px) { .sw-footer-grid { grid-template-columns: 1.3fr 1fr 1fr; } }
.sw-footer-brand {
  display: inline-flex; gap: 0.7rem; align-items: center; text-decoration: none; color: #fff; margin-bottom: 0.65rem;
}
.sw-footer-brand img { border-radius: 6px; background: #fff; }
.sw-footer-brand strong { display: block; font-size: 1.15rem; letter-spacing: 0.02em; }
.sw-footer-brand small { display: block; font-family: var(--sw-font-ui); font-size: 0.72rem; opacity: 0.8; font-weight: 400; }
.sw-footer ul { list-style: none; margin: 0; padding: 0; font-family: var(--sw-font-ui); }
.sw-footer li { margin: 0.35rem 0; }
.sw-footer-regions { columns: 2; gap: 1rem; }
@media (min-width: 720px) { .sw-footer-regions { columns: 3; } }
@media (min-width: 1024px) { .sw-footer-regions { columns: 4; } }
.sw-copy { margin: 0; font-family: var(--sw-font-ui); font-size: 0.78rem; opacity: 0.75; }
.sw-trending-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 0.15rem;
}
@media (min-width: 800px) { .sw-trending-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.2rem 1.25rem; } }
.sw-trending-list a {
  display: grid; gap: 0.1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--sw-border);
  text-decoration: none;
}
.sw-reads { font-family: var(--sw-font-ui); font-size: 0.72rem; color: var(--sw-muted); }
.sw-empty--404 { padding: 3rem 0; text-align: left; max-width: 36rem; }
.sw-empty--404 .sw-search--page { margin-bottom: 1rem; }

/* ——— Static CMS pages (about / contact / policy) ——— */
.sw-static-page {
  max-width: 42rem;
  margin: 1.25rem auto 3.5rem;
  padding: 0 1rem;
}
.sw-static-header { margin-bottom: 1.1rem; }
.sw-static-header .sw-kicker {
  margin: 0 0 0.35rem;
  font-family: var(--sw-font-ui);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
}
.sw-static-header h1 {
  margin: 0;
  font-family: var(--sw-font-display);
  font-size: clamp(1.7rem, 2.6vw, 2.35rem);
  line-height: 1.2;
  color: var(--sw-navy);
  text-wrap: balance;
}
.sw-static-content {
  font-size: clamp(1.02rem, 0.3vw + 0.98rem, 1.12rem);
  line-height: 1.75;
  color: var(--sw-ink, #1a1f2c);
}
.sw-static-content > *:first-child { margin-top: 0; }
.sw-static-content p { margin: 0 0 1rem; }
.sw-static-content a { color: var(--sw-teal-dark); }
.sw-static-content ul,
.sw-static-content ol { margin: 0 0 1rem; padding-left: 1.25rem; }
.sw-static-content li { margin: 0.35rem 0; }
.sw-static-content h2,
.sw-static-content h3 {
  margin: 1.6rem 0 0.55rem;
  font-family: var(--sw-font-display);
  color: var(--sw-navy);
  line-height: 1.25;
}
.sw-static-content form {
  display: grid;
  gap: 0.75rem;
  margin: 1.25rem 0 0;
  padding: 1rem 1.05rem;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
}
.sw-static-content label {
  display: grid;
  gap: 0.3rem;
  font-family: var(--sw-font-ui);
  font-size: 0.88rem;
  color: var(--sw-muted);
}
.sw-static-content input[type="text"],
.sw-static-content input[type="email"],
.sw-static-content input[type="url"],
.sw-static-content input[type="tel"],
.sw-static-content textarea,
.sw-static-content select {
  width: 100%;
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: 0.55rem 0.7rem;
  font: inherit;
  background: #fff;
  color: inherit;
}
.sw-static-content textarea { min-height: 8rem; resize: vertical; }
.sw-static-content button,
.sw-static-content input[type="submit"] {
  justify-self: start;
  border: 0;
  border-radius: 6px;
  padding: 0.55rem 1rem;
  background: var(--sw-navy);
  color: #fff;
  font-family: var(--sw-font-ui);
  font-weight: 600;
  cursor: pointer;
}

.sw-nav a:hover, .sw-section-head a { color: var(--sw-teal-dark); }
.sw-badge-breaking { background: var(--sw-coral); }
.sw-kicker { color: var(--sw-coral); }
.sw-section-title { color: var(--sw-navy); }
.sw-ticker { background: color-mix(in srgb, var(--sw-coral) 10%, #fff); border-bottom-color: color-mix(in srgb, var(--sw-coral) 40%, var(--sw-border)); }

/* ——— Sports desk + Archive ——— */
.sw-sports-page__header { margin-bottom: 1rem; }
.sw-sports-quick-filters {
  display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 1rem;
}
.sw-sports-more {
  margin: 0.35rem 0 0;
  padding-top: 0.15rem;
}
.sw-sports--preview .sw-sports-more {
  margin-top: 0;
}
.sw-text-cta {
  font-family: var(--sw-font-ui); font-weight: 700; color: var(--sw-teal-dark);
  text-decoration: none;
}
.sw-text-cta:hover { color: var(--sw-navy); }
.sw-sports-list--page { list-style: none; margin: 0; padding: 0; }
.sw-sports-list--page li {
  display: grid; gap: 0.2rem;
  border-bottom: 1px solid var(--sw-border); padding: 0.75rem 0;
}
.sw-sports-list--page a { text-decoration: none; font-weight: 600; }
.sw-fixtures-note { margin: 0 0 1rem; font-size: 0.88rem; }

.sw-archive-filters {
  display: grid; gap: 0.75rem; margin: 0 0 1rem;
  padding: 0.9rem 1rem; border: 1px solid var(--sw-border);
  border-radius: 10px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--sw-navy) 4%, var(--sw-surface)), var(--sw-surface));
  font-family: var(--sw-font-ui);
}
@media (min-width: 720px) {
  .sw-archive-filters {
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    align-items: end;
  }
}
.sw-archive-filters label { display: grid; gap: 0.25rem; font-size: 0.78rem; color: var(--sw-muted); }
.sw-archive-filters input,
.sw-archive-filters select {
  border: 1px solid var(--sw-border); border-radius: 6px;
  padding: 0.45rem 0.55rem; font: inherit; background: #fff; color: inherit;
}
.sw-archive-meta {
  font-family: var(--sw-font-ui); font-size: 0.82rem; color: var(--sw-muted);
  margin: 0 0 1rem;
}
.sw-archive-list { display: grid; gap: 0.85rem; }
.sw-archive-row {
  display: grid; gap: 0.85rem; border: 1px solid var(--sw-border); overflow: hidden;
}
@media (min-width: 640px) {
  .sw-archive-row { grid-template-columns: 180px 1fr; }
}
.sw-thumb--archive { aspect-ratio: 16/10; border-radius: 0; }
.sw-pagination { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 1.5rem 0; }
.sw-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; min-height: 36px; padding: 0.25rem 0.55rem;
  border: 1px solid var(--sw-border); border-radius: 6px;
  text-decoration: none; font-family: var(--sw-font-ui); font-size: 0.85rem;
}
.sw-pagination .page-numbers.current,
.sw-pagination a.current {
  background: var(--sw-navy); color: #fff; border-color: var(--sw-navy);
}

/* ——— Edition layer (strict local, no national rails) ——— */
.sw-edition-home .sw-section { margin: 1.25rem 0 1.5rem; }
.sw-edition-home .sw-section-head { margin-bottom: 0.75rem; }
.sw-edition-home .sw-top-grid {
  gap: 1rem 1.25rem;
  align-items: start;
}
.sw-edition-home .sw-lead .sw-thumb--hero {
  aspect-ratio: 16/10;
  object-fit: cover;
  width: 100%;
}
.sw-edition-home .sw-support-card .sw-thumb--support {
  aspect-ratio: 16/10;
  object-fit: cover;
}
.sw-edition-home .sw-support-col { gap: 0.75rem; }
.sw-edition-place .sw-region-cards,
.sw-edition-sector .sw-edition-cards {
  display: grid;
  gap: 0.9rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .sw-edition-place .sw-region-cards,
  .sw-edition-sector .sw-edition-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px) {
  .sw-edition-place .sw-region-cards,
  .sw-edition-sector .sw-edition-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.sw-edition-place .sw-region-card .sw-thumb,
.sw-edition-sector .sw-split-card .sw-thumb {
  aspect-ratio: 16/10;
  object-fit: cover;
}
.sw-edition-scarce {
  padding: 1.25rem 0 2rem;
  max-width: 36rem;
}
.sw-deck--tight { margin: 0.2rem 0 0; max-width: 40rem; font-size: 0.95rem; }

.sw-edition-masthead {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 1rem;
  padding: 0.85rem 0 0.75rem;
  border-bottom: 2px solid color-mix(in srgb, var(--sw-edition-accent) 55%, var(--sw-border));
  margin-bottom: 0.75rem;
  background:
    linear-gradient(118deg, color-mix(in srgb, var(--sw-edition-accent) 12%, transparent), transparent 58%),
    linear-gradient(0deg, color-mix(in srgb, var(--sw-edition-accent-alt) 4%, transparent), transparent 40%);
}
.sw-edition-lockup { display: flex; gap: 0.7rem; align-items: flex-start; max-width: 46rem; }
.sw-edition-mark { border-radius: 6px; flex: 0 0 auto; }
.sw-edition-title {
  margin: 0.1rem 0 0.2rem;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.15;
  color: var(--sw-navy);
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.45rem;
}
.sw-edition-brand { font-weight: 700; }
.sw-edition-state { color: var(--sw-edition-accent); font-weight: 650; }
.sw-edition-script {
  margin: 0 0 0.2rem;
  font-family: var(--sw-font-ui);
  font-size: 0.8rem;
  color: var(--sw-muted);
}
.sw-edition-national-link {
  margin: 0; font-family: var(--sw-font-ui); font-size: 0.85rem;
  align-self: flex-start;
}
.sw-edition-national-link a { color: var(--sw-teal-dark); font-weight: 600; text-decoration: none; }
.sw-edition-national-link a:hover { text-decoration: underline; }

.sw-place-nav, .sw-sector-nav {
  display: flex; flex-wrap: wrap; gap: 0.35rem;
  margin: 0 0 0.65rem;
  font-family: var(--sw-font-ui); font-size: 0.8rem;
}
.sw-place-nav--national {
  margin: 0.85rem 0 1.25rem;
  max-height: 11rem;
  overflow: auto;
  padding-right: 0.25rem;
}
.sw-place-nav--national a {
  font-size: 0.78rem;
}
.sw-place-nav a, .sw-sector-nav a {
  text-decoration: none;
  border: 1px solid var(--sw-border);
  background: var(--sw-surface);
  padding: 0.28rem 0.55rem;
  border-radius: 3px;
  color: var(--sw-ink);
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}
.sw-place-nav a:hover, .sw-sector-nav a:hover,
.sw-place-nav a.is-active, .sw-sector-nav a.is-active {
  border-color: var(--sw-edition-accent);
  color: var(--sw-edition-accent);
  background: color-mix(in srgb, var(--sw-edition-accent) 8%, white);
}
.sw-sector-nav a {
  font-weight: 600;
  font-size: 0.76rem;
  letter-spacing: 0.02em;
}

.sw-edition-notice {
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.75rem;
  border-left: 3px solid var(--sw-edition-accent);
  background: color-mix(in srgb, var(--sw-edition-accent) 7%, var(--sw-surface));
  font-family: var(--sw-font-ui);
  font-size: 0.88rem;
  color: var(--sw-ink);
}
.sw-edition-notice--compact {
  padding: 0.4rem 0;
  border-left: 0;
  background: transparent;
  color: var(--sw-muted);
}

.sw-badge-local {
  background: color-mix(in srgb, var(--sw-edition-accent) 18%, white);
  color: var(--sw-navy);
  font-family: var(--sw-font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border-radius: 2px;
}
.sw-badge-national {
  background: color-mix(in srgb, var(--sw-navy) 12%, white);
  color: var(--sw-navy);
  font-family: var(--sw-font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border-radius: 2px;
}

.sw-edition-break-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 0;
  font-family: var(--sw-font-ui);
}
.sw-edition-break-list li {
  display: grid;
  grid-template-columns: 5.25rem 1fr;
  gap: 0.55rem;
  align-items: baseline;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw-edition-break-list time { color: var(--sw-muted); font-size: 0.76rem; }
.sw-edition-rail {
  margin-top: 0.85rem;
  border-top: 1px solid var(--sw-border);
  display: grid;
  gap: 0;
}
.sw-edition-rail .sw-rail-item {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw-edition-rail .sw-headline--rail { margin: 0.2rem 0 0; }
@media (min-width: 720px) {
  .sw-edition-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.25rem;
  }
}

.sw-edition-grid { margin-top: 0.35rem; }
.sw-edition-nat-grid,
.sw-edition-cards {
  gap: 0.85rem;
}
.sw-edition-nat-grid .sw-deck {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  color: var(--sw-muted);
}
.sw-edition-subhead { padding-bottom: 0.35rem; }
.sw-edition-search { margin-top: 1.5rem; padding-top: 0.5rem; border-top: 1px solid var(--sw-border); }

@keyframes sw-ed-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.sw-ed-rise {
  animation: sw-ed-rise 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.sw-edition-grid .sw-ed-rise:nth-child(1) { animation-delay: 40ms; }
.sw-support-col .sw-ed-rise:nth-child(1) { animation-delay: 90ms; }
.sw-support-col .sw-ed-rise:nth-child(2) { animation-delay: 140ms; }
.sw-support-col .sw-ed-rise:nth-child(3) { animation-delay: 190ms; }
.sw-support-col .sw-ed-rise:nth-child(4) { animation-delay: 240ms; }
.sw-edition-rail .sw-ed-rise:nth-child(n) { animation-delay: 180ms; }
.sw-edition-nat-grid .sw-ed-rise:nth-child(1) { animation-delay: 60ms; }
.sw-edition-nat-grid .sw-ed-rise:nth-child(2) { animation-delay: 110ms; }
.sw-edition-nat-grid .sw-ed-rise:nth-child(3) { animation-delay: 160ms; }
.sw-edition-nat-grid .sw-ed-rise:nth-child(4) { animation-delay: 210ms; }
@media (prefers-reduced-motion: reduce) {
  .sw-ed-rise { animation: none; }
}

.sw-edition .sw-page-bar { border-bottom-color: color-mix(in srgb, var(--sw-edition-accent) 35%, var(--sw-border)); }

/* Compact inner headers — brand masthead only on national home */
.sw-inner .sw-page-header { padding: 0.85rem 0 0.65rem; }
.sw-inner .sw-page-title {
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  margin: 0.15rem 0 0.35rem;
}
.sw-inner .sw-cinematic,
.sw-inner .sw-brand-hero { display: none !important; }

/* Date / tag / topic archives */
.sw-date-nav {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin: 0.75rem 0 1.25rem;
  font-family: var(--sw-font-ui); font-size: 0.85rem;
}

/* Gallery strip */
.sw-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (min-width: 720px) {
  .sw-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.sw-gallery-card {
  border: 1px solid var(--sw-border);
  background: var(--sw-surface);
  overflow: hidden;
}
.sw-gallery-card .sw-thumb { aspect-ratio: 1; }
.sw-gallery-card .sw-story-body { padding: 0.55rem 0.65rem 0.75rem; }

/* Motif accents — logo palette only (navy / teal / orange) */
.sw-motif--tea .sw-edition-masthead,
.sw-motif--backwater .sw-edition-masthead,
.sw-motif--coastal .sw-edition-masthead,
.sw-motif--hills .sw-edition-masthead {
  background: linear-gradient(120deg, rgb(0 127 149 / 0.12), transparent 60%);
}
.sw-motif--desert .sw-edition-masthead,
.sw-motif--temple .sw-edition-masthead,
.sw-motif--french-quarter .sw-edition-masthead {
  background: linear-gradient(120deg, rgb(245 130 32 / 0.12), transparent 60%);
}
.sw-motif--himalaya .sw-edition-masthead {
  background: linear-gradient(120deg, rgb(9 36 72 / 0.12), transparent 60%);
}

/* Honest scarce local desk */
.sw-edition-notice--scarce {
  border-left-color: var(--sw-muted);
  background: color-mix(in srgb, var(--sw-surface-alt) 80%, var(--sw-surface));
}
.sw-edition-notice--national {
  font-size: 0.88rem;
  margin: 0 0 0.75rem;
  border-left-color: var(--sw-navy);
}
.sw-edition-grid--scarce { max-width: 52rem; }
.sw-edition-scarce { margin: 0.75rem 0 1.25rem; }

/* Local script lockup polish */
.sw-edition-script {
  font-family: var(--sw-font-display);
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--sw-edition-accent) 70%, var(--sw-muted));
}

/* Homepage section rhythm — ~24–32px desktop, tighter on mobile */
.sw-home #main > .sw-wrap > .sw-section,
.sw-home #main > .sw-wrap > .sw-top-stories {
  margin-top: 1.5rem;
  margin-bottom: 1.75rem;
}
@media (max-width: 719px) {
  .sw-home #main > .sw-wrap > .sw-section,
  .sw-home #main > .sw-wrap > .sw-top-stories {
    margin-top: 1rem;
    margin-bottom: 1.25rem;
  }
}
.sw-home .sw-section-head {
  align-items: end;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}
.sw-politics-grid, .sw-region-cards, .sw-grid {
  align-items: start;
}

/* Sticky masthead clearance for in-page anchors + inner titles */
.sw-page-bar,
.sw-page-header,
.sw-page-title,
.sw-edition-masthead,
.sw-cat-feature,
.sw-article > article > header,
#main {
  scroll-margin-top: calc(var(--sw-masthead-offset) + 0.35rem);
}

/* Inner page rhythm — cut blank gaps / fixed empty bands */
.sw-page-header {
  padding: 1rem 0 0.65rem;
}
.sw-cat-page .sw-cat-feature,
.sw-sports-page .sw-sports-feature {
  margin-top: 0.35rem;
}
.sw-cat-feature,
.sw-sports-feature {
  display: grid;
  gap: 1rem;
  align-items: start;
}
@media (min-width: 900px) {
  .sw-cat-feature,
  .sw-sports-feature {
    grid-template-columns: 1.4fr 1fr;
  }
}
.sw-cat-support {
  display: grid;
  gap: 0.75rem;
  align-content: start;
}
.sw-thumb--hero,
.sw-thumb--feat,
.sw-thumb--sport-lead {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--sw-surface-alt);
}
.sw-thumb--hero img,
.sw-thumb--feat img,
.sw-thumb--sport-lead img,
.sw-thumb--support img,
.sw-thumb--card img,
.sw-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.sw-thumb--support { aspect-ratio: 16 / 10; overflow: hidden; max-height: none; }
.sw-article .sw-content {
  max-width: 42rem;
  font-size: 1.0625rem;
  line-height: 1.75;
}
.sw-article-hero {
  margin: 0.85rem 0 1.1rem;
  border-radius: var(--sw-radius);
  overflow: hidden;
}
.sw-article-hero img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 30%;
}
.sw-article-hero figcaption {
  padding: 0.45rem 0.15rem 0;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
  font-size: 0.82rem;
}
.sw-empty {
  padding: 1.5rem 1rem;
  border: 1px dashed var(--sw-border);
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
  text-align: left;
}
.sw-empty h2 { margin: 0 0 0.35rem; font-size: 1.25rem; }
.sw-empty p { margin: 0; color: var(--sw-muted); font-family: var(--sw-font-ui); }
.sw-empty-note {
  margin: 0.5rem 0 1rem;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
  font-size: 0.9rem;
}
.sw-fixtures-note {
  border: 0;
  padding: 0;
  background: transparent;
}
.sw-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 1.25rem 0 0.5rem;
  font-family: var(--sw-font-ui);
}
.sw-pagination a,
.sw-pagination span {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  padding: 0.35rem 0.65rem;
  text-decoration: none;
  min-height: 2.1rem;
  display: inline-flex;
  align-items: center;
}
.sw-pagination .current {
  background: var(--sw-navy);
  color: #fff;
  border-color: var(--sw-navy);
}

@media (max-width: 720px) {
  :root { --sw-masthead-offset: 5.75rem; }
  .sw-states { font-size: 0.86rem; gap: 0.35rem; }
  .sw-states a { min-height: 2.45rem; padding: 0.45rem 0.55rem; }
}


/* ——— Card grids: readable min widths, no squeeze ——— */
.sw-related-grid,
.sw-world-grid,
.sw-triad,
.sw-sports-cards,
.sw-mosaic,
.sw-gallery-grid,
.sw-explained-grid {
  min-width: 0;
}
.sw-related-grid,
.sw-world-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
@media (min-width: 700px) {
  .sw-world-grid { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
}
@media (min-width: 900px) and (max-width: 1099px) {
  .sw-sports-desk {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Tasteful brand fallback — transparent Storywire mark, not blurry circles */
.sw-thumb--fallback {
  display: grid;
  place-items: center;
  min-height: 0;
  aspect-ratio: 16 / 10;
  background:
    linear-gradient(125deg, color-mix(in srgb, var(--sw-navy) 88%, #0a3a4a), var(--sw-navy-deep));
  color: #fff;
  text-decoration: none;
}
.sw-thumb--fallback-compact {
  aspect-ratio: 16 / 10;
  min-height: 0;
}
.sw-thumb-fallback-mark {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.35));
}
.sw-thumb--fallback span:not(.sw-thumb-fallback-mark) { display: none; }

/* Text-first card when media is fallback-only: keep readable headline width */
.sw-support-card:has(.sw-thumb--fallback) .sw-headline--support,
.sw-sports-card:has(.sw-thumb--fallback) .sw-headline {
  font-size: clamp(1.02rem, 1.25vw, 1.18rem);
}

/* ——— Bureaucracy & Transfers ——— */
.sw-bureau-hero {
  padding: 1.5rem 0 0.75rem;
  border-bottom: 1px solid var(--sw-border);
  margin-bottom: 1.25rem;
  background:
    radial-gradient(ellipse at 0% 0%, rgb(0 184 212 / 0.12), transparent 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--sw-navy) 4%, var(--sw-bg)), var(--sw-bg));
}
.sw-bureau-hero h1 {
  margin: 0 0 0.35rem;
  font-family: var(--sw-font-display);
  font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  color: var(--sw-navy);
}
.sw-bureau-hero p {
  margin: 0;
  max-width: 42rem;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
}
.sw-bureau-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  margin: 0.85rem 0 0;
  font-family: var(--sw-font-ui);
  font-size: 0.88rem;
}
.sw-bureau-nav a {
  text-decoration: none;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  padding: 0.35rem 0.7rem;
  color: var(--sw-navy);
  background: var(--sw-surface);
}
.sw-bureau-nav a.is-active,
.sw-bureau-nav a:hover {
  border-color: var(--sw-teal);
  color: var(--sw-teal-dark);
}
.sw-bureau-filters {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  margin: 0 0 1.1rem;
  padding: 0.85rem;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
}
.sw-bureau-filters label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-family: var(--sw-font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--sw-muted);
}
.sw-bureau-filters input,
.sw-bureau-filters select {
  font: inherit;
  font-weight: 500;
  color: var(--sw-ink);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: 0.4rem 0.5rem;
  min-height: 2.25rem;
  background: var(--sw-bg);
}
.sw-bureau-filters .sw-bureau-actions {
  display: flex;
  align-items: end;
  gap: 0.45rem;
}
.sw-bureau-table-wrap { overflow-x: auto; min-width: 0; }
.sw-bureau-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--sw-font-ui);
  font-size: 0.9rem;
}
.sw-bureau-table th,
.sw-bureau-table td {
  text-align: left;
  padding: 0.65rem 0.55rem;
  border-bottom: 1px solid var(--sw-border);
  vertical-align: top;
  min-width: 0;
}
.sw-bureau-table th {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-muted);
}
.sw-bureau-table a { color: var(--sw-navy); text-decoration: none; font-weight: 600; }
.sw-bureau-table a:hover { color: var(--sw-teal); }
.sw-bureau-mobile { display: none; gap: 0.75rem; }
.sw-bureau-card {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  padding: 0.85rem 0.95rem;
  background: var(--sw-surface);
  min-width: 0;
}
.sw-bureau-card h3 { margin: 0 0 0.35rem; font-size: 1.05rem; }
.sw-bureau-card dl {
  display: grid;
  grid-template-columns: minmax(6rem, 8.5rem) 1fr;
  gap: 0.25rem 0.65rem;
  margin: 0;
  font-family: var(--sw-font-ui);
  font-size: 0.86rem;
}
.sw-bureau-card dt { color: var(--sw-muted); }
.sw-bureau-card dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.sw-bureau-muted { color: var(--sw-muted); font-style: italic; }
.sw-bureau-sections {
  display: grid;
  gap: 1.5rem;
  margin: 1.5rem 0;
}
.sw-bureau-section-list { list-style: none; margin: 0; padding: 0; }
.sw-bureau-section-list li {
  border-bottom: 1px solid var(--sw-border);
  padding: 0.65rem 0;
}
.sw-bureau-section-list a { text-decoration: none; font-weight: 600; color: var(--sw-navy); }
.sw-bureau-meta { font-family: var(--sw-font-ui); font-size: 0.8rem; color: var(--sw-muted); }
.sw-order-detail {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .sw-order-detail { grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.7fr); }
}
.sw-order-panel {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  padding: 1rem 1.1rem;
  background: var(--sw-surface);
  min-width: 0;
}
.sw-order-panel h2 {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  font-family: var(--sw-font-display);
}
.sw-order-dl {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) 1fr;
  gap: 0.4rem 0.85rem;
  margin: 0;
  font-family: var(--sw-font-ui);
  font-size: 0.92rem;
}
.sw-order-dl dt { color: var(--sw-muted); }
.sw-order-dl dd { margin: 0; overflow-wrap: anywhere; }
.sw-bureau-preview {
  margin: 1.75rem 0 0.5rem;
  padding: 1rem 0 0;
  border-top: 1px solid var(--sw-border);
}
.sw-bureau-preview .sw-section-head { margin-bottom: 0.75rem; }
@media (max-width: 799px) {
  .sw-bureau-table-wrap { display: none; }
  .sw-bureau-mobile { display: grid; }
}
@media (min-width: 800px) {
  .sw-bureau-mobile { display: none; }
  .sw-bureau-table-wrap { display: block; }
}

/* No-photo support cards: short brand strip, not a full photo void */
.sw-support-card .sw-thumb--fallback,
.sw-support-card .sw-thumb--fallback-compact,
.sw-mosaic-item .sw-thumb--fallback,
.sw-related-card .sw-thumb--fallback,
.sw-search-card .sw-thumb--fallback {
  aspect-ratio: auto;
  min-height: 3.25rem;
  max-height: 3.75rem;
}
.sw-sports-card .sw-thumb--fallback,
.sw-sports-card .sw-thumb--fallback-compact {
  aspect-ratio: 1 / 1;
  min-height: 5.5rem;
  max-height: none;
}
.sw-lead .sw-thumb--fallback {
  aspect-ratio: 16 / 10;
  max-height: 14rem;
}
.sw-latest-rail {
  min-width: 0;
}
.sw-headline--rail {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}
@media (min-width: 960px) {
  .sw-headline--rail {
    font-size: 0.95rem;
    -webkit-line-clamp: 4;
  }
}

/* ——— Portal polish 3.1.4: compact cinematic (no baked logo overlay) ——— */
.sw-cinematic--compact {
  position: relative;
  max-height: clamp(6.5rem, 13vw, 9rem);
  overflow: hidden;
  margin: 0 0 0.35rem;
  background: linear-gradient(118deg, var(--sw-navy-deep), var(--sw-navy) 48%, #0a3a4a);
  color: #f3f7fb;
}
.sw-cinematic__media {
  position: absolute;
  inset: 0;
}
.sw-cinematic__poster,
.sw-cinematic__poster img,
.sw-cinematic__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sw-cinematic__video {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 280ms ease;
}
.sw-cinematic__video.is-ready { opacity: 1; }
.sw-cinematic__ribbon {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, transparent 0 38%, rgb(0 127 149 / 0.22) 46%, transparent 54%),
    linear-gradient(75deg, transparent 0 62%, rgb(245 130 32 / 0.18) 70%, transparent 78%);
  background-size: 220% 100%, 240% 100%;
  animation: sw-cinematic-ribbon 14s ease-in-out infinite alternate;
  pointer-events: none;
  mix-blend-mode: soft-light;
}
@keyframes sw-cinematic-ribbon {
  from { background-position: 0% 50%, 100% 50%; }
  to { background-position: 100% 50%, 0% 50%; }
}
.sw-cinematic__overlay {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1.25rem;
  min-height: clamp(6.5rem, 13vw, 9rem);
  padding: 0.75rem 0;
}
.sw-cinematic__copy {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  flex: 1 1 auto;
  max-width: 46rem;
}
.sw-cinematic__line {
  margin: 0;
  font-family: var(--sw-font-display);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 700;
  text-wrap: balance;
  text-shadow: 0 1px 12px rgb(6 24 48 / 0.45);
}
.sw-cinematic__sub {
  margin: 0;
  font-family: var(--sw-font-ui);
  font-size: 0.9rem;
  line-height: 1.4;
  opacity: 0.9;
  max-width: 38rem;
  text-shadow: 0 1px 10px rgb(6 24 48 / 0.4);
}
.sw-cinematic__toggle {
  flex: 0 0 auto;
  margin-left: 0;
  background: rgb(255 255 255 / 0.12);
  border-color: rgb(255 255 255 / 0.28);
  color: #fff;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .sw-cinematic__overlay {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .sw-cinematic__toggle { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .sw-cinematic__video { display: none !important; }
  .sw-cinematic__ribbon { animation: none; }
}

/* ——— State scroller (replaces oversized directory) ——— */
.sw-across--scroller {
  margin-top: 0.35rem;
  margin-bottom: 0.15rem;
  padding: 0.55rem 0 0.15rem;
  border-top: 1px solid var(--sw-border);
  max-width: 100%;
  min-width: 0;
}
.sw-section-head--scroller {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.4rem;
}
.sw-state-scroller {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden; /* contain chip track — never expand document width */
}
.sw-state-scroller__track {
  display: flex;
  gap: 0.55rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 0.2rem 0.1rem 0.75rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.sw-state-scroller__track:focus-visible {
  outline: 2px solid var(--sw-focus);
  outline-offset: 3px;
}
.sw-state-chip {
  flex: 0 0 auto;
  scroll-snap-align: start;
  min-width: 7.25rem;
  max-width: 12rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--sw-radius);
  border: 1px solid var(--sw-border);
  background: var(--sw-surface);
  text-decoration: none;
  color: var(--sw-ink);
  font-family: var(--sw-font-ui);
  font-weight: 650;
  font-size: 0.86rem;
  line-height: 1.25;
  box-shadow: inset 3px 0 0 var(--sw-teal);
  transition: border-color 140ms ease, transform 140ms ease, box-shadow 140ms ease;
}
.sw-state-chip:hover,
.sw-state-chip:focus-visible {
  border-color: var(--sw-teal);
  transform: translateY(-1px);
}
.sw-state-chip:focus-visible {
  outline: 2px solid var(--sw-focus);
  outline-offset: 2px;
}
.sw-state-chip--navy { box-shadow: inset 3px 0 0 var(--sw-navy); }
.sw-state-chip--orange { box-shadow: inset 3px 0 0 var(--sw-orange); }
.sw-state-chip--cyan { box-shadow: inset 3px 0 0 var(--sw-cyan); }
.sw-state-chip--teal { box-shadow: inset 3px 0 0 var(--sw-teal); }
.sw-state-chip__name { display: block; overflow-wrap: anywhere; }
.sw-state-scroller--districts { margin-top: 0.55rem; }
.sw-state-scroller--districts .sw-state-chip { min-width: 7.25rem; padding: 0.55rem 0.75rem; font-size: 0.86rem; }

.sw-district-picker {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
}
.sw-district-picker__label {
  display: block;
  font-family: var(--sw-font-ui);
  font-size: 0.8rem;
  font-weight: 650;
  color: var(--sw-muted);
  margin-bottom: 0.35rem;
}
.sw-district-picker__row {
  display: grid;
  gap: 0.45rem;
}
@media (min-width: 640px) {
  .sw-district-picker__row { grid-template-columns: 1fr 1fr; }
}
.sw-district-picker__filter,
.sw-district-picker select {
  width: 100%;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  padding: 0.5rem 0.65rem;
  font: inherit;
  font-family: var(--sw-font-ui);
  background: var(--sw-warm);
  color: var(--sw-ink);
}

/* ——— Wire article completeness ——— */
.sw-badge-wire {
  background: color-mix(in srgb, var(--sw-teal) 14%, var(--sw-surface));
  color: var(--sw-teal-dark);
  border: 1px solid color-mix(in srgb, var(--sw-teal) 35%, var(--sw-border));
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  font-family: var(--sw-font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sw-wire-panel {
  margin: 0.35rem 0 0.5rem;
  padding: 1.1rem 1.15rem 1.2rem;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--sw-teal) 7%, var(--sw-surface)), var(--sw-surface) 55%),
    var(--sw-surface);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sw-teal) 8%, transparent);
}
.sw-wire-panel__title {
  margin: 0 0 0.55rem;
  font-family: var(--sw-font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-teal-dark);
}
.sw-wire-lede {
  margin: 0;
  font-size: clamp(1.08rem, 0.4vw + 1rem, 1.22rem);
  line-height: 1.7;
  color: var(--sw-ink);
}
.sw-wire-lede--missing {
  color: var(--sw-muted);
  font-style: italic;
}
.sw-wire-actions {
  margin-top: 1rem;
  display: grid;
  gap: 0.55rem;
}
.sw-btn--original {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: fit-content;
  max-width: 100%;
  padding: 0.55rem 0.95rem;
  border-radius: var(--sw-radius);
  background: var(--sw-teal-dark);
  color: #fff !important;
  text-decoration: none;
  font-family: var(--sw-font-ui);
  font-weight: 650;
  font-size: 0.92rem;
}
.sw-btn--original:hover,
.sw-btn--original:focus-visible {
  background: var(--sw-teal);
}
.sw-wire-actions__src { font-weight: 500; opacity: 0.92; }
.sw-wire-note {
  margin: 0;
  font-family: var(--sw-font-ui);
  font-size: 0.86rem;
  color: var(--sw-muted);
  line-height: 1.5;
}
.sw-article .sw-content--wire {
  max-width: 42rem;
}
.sw-deck--wire {
  color: var(--sw-muted);
}

/* Hide legacy oversized directory if cached markup remains */
.sw-across--directory .sw-states--directory,
.sw-footer-editions { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .sw-state-scroller__track { scroll-behavior: auto; }
  .sw-state-chip { transition: none; }
}

/* Brand logo — keyboard focus + sticky-safe hit target */
.sw-brand,
.sw-footer-brand {
  border-radius: var(--sw-radius);
}
.sw-brand:focus-visible,
.sw-footer-brand:focus-visible {
  outline: 2px solid var(--sw-focus);
  outline-offset: 3px;
}
.sw-brand:focus:not(:focus-visible),
.sw-footer-brand:focus:not(:focus-visible) {
  outline: none;
}

/* ——— 3.1.5 checklist: never let horizontal rails expand the document ——— */
.sw-wrap,
.sw-section,
.sw-top-layout,
.sw-pictures,
.sw-sports--preview {
  max-width: 100%;
  min-width: 0;
}

/* ——— 3.1.7: text-first cards (no logo-as-photo) + video desk ——— */
.sw-thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: color-mix(in srgb, var(--sw-navy) 6%, var(--sw-surface));
}
.sw-thumb--text {
  display: block;
  aspect-ratio: auto;
  min-height: 0;
  height: 0.28rem;
  max-height: 0.28rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    var(--sw-teal),
    color-mix(in srgb, var(--sw-orange) 70%, var(--sw-teal))
  );
  pointer-events: none;
}
.sw-thumb--text .sw-thumb-text-accent {
  display: none;
}
.sw-thumb--fallback,
.sw-thumb--fallback-compact {
  /* Legacy class retained; treat like text-first (no logo stretch). */
  aspect-ratio: auto !important;
  min-height: 0.28rem !important;
  max-height: 0.28rem !important;
  height: 0.28rem;
  background: linear-gradient(90deg, var(--sw-teal), var(--sw-orange));
}
.sw-thumb--fallback .sw-thumb-fallback-mark,
.sw-thumb--fallback-compact .sw-thumb-fallback-mark {
  display: none !important;
}

.sw-card--text.sw-split-card,
.sw-split-card:has(> .sw-thumb--text),
.sw-split-card:has(> .sw-thumb--fallback) {
  grid-template-columns: 1fr;
}
.sw-card--text.sw-search-card,
.sw-search-card:has(> .sw-thumb--text) {
  grid-template-columns: 1fr;
}
.sw-support-card:has(.sw-thumb--text) .sw-story-body,
.sw-related-card:has(.sw-thumb--text) .sw-story-body,
.sw-mosaic-item:has(.sw-thumb--text) .sw-story-body,
.sw-split-card:has(.sw-thumb--text) .sw-story-body {
  padding-top: 0.85rem;
}
.sw-feat-photo:has(.sw-thumb--text) .sw-headline--lead,
.sw-card--text .sw-headline {
  max-width: 42rem;
}
.sw-support-card .sw-thumb--text,
.sw-related-card .sw-thumb--text,
.sw-mosaic-item .sw-thumb--text,
.sw-search-card .sw-thumb--text,
.sw-sports-card .sw-thumb--text {
  margin: 0;
}

/* Videos desk — one featured + denser supporting column */
.sw-videos-home,
.sw-videos-stage {
  display: grid;
  gap: 0.85rem;
  max-width: 72rem;
  margin-inline: auto;
  align-items: start;
}
.sw-videos-home > .sw-video-card--lead,
.sw-videos-stage .sw-video-lead {
  max-width: 100%;
  min-width: 0;
}
.sw-video-card--lead .sw-video-poster { aspect-ratio: 16 / 9; }
.sw-video-card--lead .sw-headline--card {
  font-size: clamp(1.05rem, 1.4vw, 1.35rem);
  line-height: 1.28;
}
.sw-video-card .sw-headline--card {
  font-size: clamp(0.95rem, 1.1vw, 1.08rem);
  line-height: 1.32;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sw-video-card .sw-story-body {
  padding: 0.5rem 0.7rem 0.65rem;
}
.sw-video-poster-empty,
.sw-video-poster-adapted {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.sw-video-poster-empty {
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--sw-navy) 55%, #0b1a24), var(--sw-navy-deep));
  position: relative;
}
.sw-video-poster-empty__accent {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0.28rem;
  background: var(--sw-teal);
}
.sw-video-poster-adapted {
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--sw-navy) 88%, #000), color-mix(in srgb, var(--sw-teal) 35%, #0b1a24));
}
.sw-video-poster-adapted__mark {
  font-family: var(--sw-font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgb(255 255 255 / 0.88);
  font-size: clamp(1rem, 2vw, 1.35rem);
}
/* Text-first video preview — restrained navy play strip (not a photo void) */
.sw-video-poster--text {
  aspect-ratio: auto;
  height: 3.25rem;
  min-height: 3.25rem;
  max-height: 3.25rem;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--sw-navy) 92%, #000), color-mix(in srgb, var(--sw-navy) 70%, var(--sw-teal)));
  border-bottom: 1px solid var(--sw-border);
}
.sw-video-card--lead .sw-video-poster--text {
  height: 4rem;
  min-height: 4rem;
  max-height: 4rem;
}
.sw-video-poster--text .sw-video-poster-empty {
  background: transparent;
}
.sw-video-poster--text .sw-video-poster-empty__accent {
  width: 0.22rem;
  background: var(--sw-orange);
}
.sw-video-poster--text .sw-video-play {
  width: 2.15rem;
  height: 2.15rem;
  font-size: 0.85rem;
  box-shadow: none;
  background: rgb(255 255 255 / 0.16);
  border: 1px solid rgb(255 255 255 / 0.45);
}
.sw-video-poster--text .sw-video-duration,
.sw-video-poster--text .sw-video-live {
  background: rgb(0 0 0 / 0.45);
}
.sw-video-card--text {
  border-left: 3px solid var(--sw-teal);
}
.sw-video-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 0 0 0.3rem;
  font-size: 0.74rem;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
}
.sw-video-credit {
  margin: 0.28rem 0 0;
  font-size: 0.72rem;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
}
.sw-video-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.1rem;
}
.sw-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.65rem;
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  text-decoration: none;
  color: var(--sw-ink);
  font-family: var(--sw-font-ui);
  font-size: 0.8rem;
  background: var(--sw-surface);
}
.sw-chip.is-active,
.sw-chip[aria-current="page"] {
  border-color: var(--sw-teal);
  color: var(--sw-navy);
  background: color-mix(in srgb, var(--sw-teal) 16%, var(--sw-surface));
}
.sw-article-video { margin: 0 0 1.25rem; }
.sw-article-video__frame {
  border-radius: var(--sw-radius);
  overflow: hidden;
  background: #000;
  aspect-ratio: 16 / 9;
}
.sw-article-video--text .sw-article-video__frame {
  aspect-ratio: auto;
  min-height: 4.5rem;
}
.sw-article-video figcaption {
  margin-top: 0.45rem;
  font-size: 0.8rem;
  color: var(--sw-muted);
}
.sw-videos-desk .sw-videos-stage { margin-bottom: 1rem; }
.sw-videos-archive-link {
  margin: 0.35rem 0 1.5rem;
  font-family: var(--sw-font-ui);
  font-size: 0.9rem;
}
.sw-videos-archive-link a { font-weight: 600; text-decoration: none; }
.sw-videos-archive-link a:hover { color: var(--sw-teal); }
@media (min-width: 900px) {
  .sw-videos-home,
  .sw-videos-stage {
    grid-template-columns: minmax(0, 1.7fr) minmax(15rem, 0.75fr);
    gap: 0.85rem;
    align-items: start;
  }
  .sw-videos-home .sw-videos-grid--support,
  .sw-videos-stage .sw-videos-grid--support {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  /* Supporting cards stay compact — not second heroes */
  .sw-videos-home .sw-videos-grid--support .sw-video-poster:not(.sw-video-poster--text),
  .sw-videos-stage .sw-videos-grid--support .sw-video-poster:not(.sw-video-poster--text) {
    max-height: 8.5rem;
  }
  .sw-videos-home .sw-videos-grid--support .sw-headline--card,
  .sw-videos-stage .sw-videos-grid--support .sw-headline--card {
    font-size: 0.95rem;
    -webkit-line-clamp: 2;
  }
  .sw-videos-home[data-count="1"],
  .sw-videos-stage[data-count="1"] {
    grid-template-columns: minmax(0, 40rem);
    justify-content: center;
  }
}
@media (max-width: 899px) {
  .sw-videos-home .sw-videos-grid--support,
  .sw-videos-stage .sw-videos-grid--support {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sw-videos-grid--support[data-count="1"] {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .sw-videos-home .sw-videos-grid--support,
  .sw-videos-stage .sw-videos-grid--support {
    grid-template-columns: 1fr;
  }
}

/* ——— 3.1.8 home polish: Hindi rhythm, overflow, empty-module collapse ——— */
html[lang^="hi"] body,
[data-lang="hi"] body,
html[lang^="hi"] .sw-headline,
[data-lang="hi"] .sw-headline,
html[lang^="hi"] .sw-deck,
[data-lang="hi"] .sw-deck,
html[lang^="hi"] .sw-content,
[data-lang="hi"] .sw-content {
  line-height: 1.75;
  letter-spacing: 0;
  word-break: normal;
  overflow-wrap: anywhere;
}
html[lang^="hi"] .sw-headline--lead,
[data-lang="hi"] .sw-headline--lead {
  line-height: 1.35;
}
html[lang^="hi"] .sw-nav a,
[data-lang="hi"] .sw-nav a,
html[lang^="hi"] .sw-kicker,
[data-lang="hi"] .sw-kicker {
  font-family: "Noto Sans Devanagari", var(--sw-font-ui);
  letter-spacing: 0.02em;
}

/* Selected / active controls stay navy+teal (no white-on-white) */
.sw-lang a.is-active,
.sw-lang button.is-active {
  background: var(--sw-teal);
  border-color: var(--sw-teal);
  color: #fff;
}
[data-theme="dark"] .sw-lang a.is-active {
  background: var(--sw-teal);
  color: #061830;
}
.sw-search button,
.sw-masthead .sw-search button[type="submit"] {
  background: var(--sw-teal);
  border-color: var(--sw-teal);
  color: #fff;
}
.sw-search button:hover {
  background: var(--sw-teal-dark);
  border-color: var(--sw-teal-dark);
  color: #fff;
}
[data-theme="dark"] .sw-search button {
  background: var(--sw-teal);
  color: #061830;
}

/* Collapse truly empty homepage modules without leaving holes */
.sw-section:empty,
.sw-top-stories:not(:has(.sw-top-layout)),
.sw-videos-home:empty {
  display: none;
}

/* Component-level overflow containment (avoid page-wide overflow-x:hidden) */
.sw-top-grid,
.sw-carousel,
.sw-carousel__viewport,
.sw-latest-rail,
.sw-state-scroller,
.sw-politics-grid,
.sw-videos-home {
  max-width: 100%;
  min-width: 0;
}

.sw-across--scroller {
  margin-top: 0.35rem;
  padding: 0.55rem 0 0.15rem;
}
.sw-state-scroller__track {
  padding-bottom: 0.35rem;
  gap: 0.45rem;
}

/* Cards hug content — never stretch short cards to neighbour column height */
.sw-support-card,
.sw-split-card,
.sw-related-card,
.sw-mosaic-item,
.sw-world-card,
.sw-region-card {
  align-self: start;
  height: auto;
}

/* ——— 3.1.9: layout stability + denser home grids + editorial media ——— */
.sw-home #main > .sw-wrap > .sw-section.sw-across--scroller {
  margin-top: 0.65rem;
  margin-bottom: 0.85rem;
}
.sw-home #main > .sw-wrap > .sw-section.sw-india,
.sw-home #main > .sw-wrap > .sw-section.sw-politics {
  margin-top: 1.15rem;
  margin-bottom: 1.25rem;
}

/* Politics: text-only side rows collapse the empty thumb column */
.sw-thumb-row:has(.sw-thumb--text),
.sw-thumb-row.sw-card--text {
  grid-template-columns: 1fr;
  gap: 0.35rem;
}
.sw-thumb-row .sw-thumb--text {
  max-width: 3.5rem;
  height: 0.22rem;
  max-height: 0.22rem;
}
.sw-thumb-row:has(.sw-thumb--text) .sw-thumb--text,
.sw-thumb-row.sw-card--text .sw-thumb--text {
  display: none;
}
.sw-feat-photo:has(.sw-thumb--text) .sw-thumb--text {
  display: block;
  width: 100%;
  max-width: none;
}

/* Support / mosaic text-first: no photo-shaped void beside headlines */
.sw-support-card:has(.sw-thumb--text),
.sw-support-card.sw-card--text {
  display: flex;
  flex-direction: column;
}
.sw-support-card:has(.sw-thumb--text) .sw-story-body {
  padding: 0.75rem 0.15rem 0.35rem;
}

/* Stable page width — do NOT use overflow-x:hidden on html/body */
body {
  overflow-x: visible;
  width: 100%;
}
.sw-chrome,
#main,
.sw-wrap {
  width: 100%;
  max-width: 100%;
}

/* Reserve image boxes before decode (CLS) */
.sw-thumb img {
  aspect-ratio: inherit;
  background: color-mix(in srgb, var(--sw-navy) 5%, var(--sw-surface-alt));
}

/* World / related: fill columns evenly; hide trailing empty auto cells via dense */
.sw-world-grid,
.sw-related-grid {
  grid-auto-flow: dense;
  align-items: start;
}

/* Carousel controls stay in-flow without expanding the Top Stories band */
.sw-carousel__controls {
  margin-top: 0.5rem;
  padding-top: 0.3rem;
  min-height: 2.5rem;
}

/* Latest rail: fixed flex shell so refresh does not shove the page */
.sw-latest-rail {
  contain: layout;
}
.sw-latest-timeline {
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Hide empty politics side lists / empty modules without leaving gaps */
.sw-politics-side:empty,
.sw-headline-list:empty,
.sw-region-cards:empty {
  display: none;
}

/* ==========================================================================
   3.2.0 — Premium newsroom composition
   Elevate visual density/hierarchy while preserving CLS / text-first / video.
   ========================================================================== */

:root {
  --sw-radius: 4px;
  --sw-shadow-depth: 0 8px 22px rgb(9 36 72 / 0.1);
  --sw-shadow-soft: 0 1px 0 rgb(9 36 72 / 0.04);
  --sw-desk-gap: 1.15rem;
  --sw-rule: 2px solid var(--sw-navy);
}

/* Surface: quiet paper, not flat white voids */
body {
  background:
    linear-gradient(180deg, #f4f7fb 0%, var(--sw-warm) 18rem, var(--sw-warm) 100%);
}

/* ——— Chrome: one continuous band (utility → masthead → nav) ——— */
.sw-chrome {
  border-bottom: 0;
  box-shadow: none;
}
.sw-utility {
  border-bottom: 1px solid rgb(255 255 255 / 0.06);
  /* Lock single-line height before webfonts settle (prevents ~32px mobile CLS) */
  min-height: 2.05rem;
}
.sw-utility .sw-wrap {
  flex-wrap: nowrap;
  min-height: 1.85rem;
  overflow: hidden;
}
.sw-utility-date {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1 1 auto;
}
.sw-utility-actions {
  flex-wrap: nowrap;
  flex: 0 0 auto;
}
@media (max-width: 719px) {
  /* Edition lives in the drawer on small screens — drop from utility to keep one row */
  .sw-utility .sw-edition-label { display: none; }
  .sw-utility-date { max-width: 42vw; font-size: 0.68rem; }
}
.sw-masthead {
  border-bottom: 0;
}
.sw-masthead-row {
  padding: 0.4rem 0 0.3rem;
}
.sw-nav {
  border-top: 1px solid rgb(255 255 255 / 0.08);
  padding: 0;
}
@media (min-width: 768px) {
  .sw-nav li > a,
  .sw-more-btn {
    padding: 0.48rem 0.78rem;
    letter-spacing: 0.01em;
  }
}
.sw-brand-logo--desktop { max-height: 2.55rem; }
.sw-search input {
  background: var(--sw-surface);
  border-color: color-mix(in srgb, var(--sw-navy) 14%, var(--sw-border));
}
.sw-search button {
  border-radius: var(--sw-radius);
}

/* Slim integrated ticker — flush under chrome, not a floating strip */
.sw-ticker,
.sw-ticker--integrated {
  margin: 0;
  border-top: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--sw-coral) 28%, var(--sw-border));
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--sw-coral) 12%, #fff) 0%, #fff 14%, #fff 100%);
}
.sw-ticker .sw-wrap {
  padding: 0.18rem 0;
  gap: 0.5rem;
  min-height: 2rem;
}
.sw-ticker-track {
  font-size: 0.8rem;
  font-weight: 600;
  gap: 1.75rem;
}
.sw-badge-breaking {
  letter-spacing: 0.1em;
  padding: 0.2rem 0.45rem;
  font-size: 0.62rem;
}
.sw-ticker-pause {
  min-height: 26px;
  padding: 0.12rem 0.4rem;
  font-size: 0.65rem;
}

/* Category kickers = teal; coral reserved for breaking only */
.sw-kicker {
  color: var(--sw-teal-dark);
  margin: 0 0 0.28rem;
  font-size: 0.66rem;
  letter-spacing: 0.11em;
}
.sw-kicker--rail { color: var(--sw-teal-dark); }
.sw-rail-item .sw-kicker,
.sw-trending-list .sw-kicker { color: var(--sw-teal-dark); }

/* Section heads — newsroom rule with teal accent */
.sw-section-head {
  border-bottom: var(--sw-rule);
  padding-bottom: 0.45rem;
  margin-bottom: 0.85rem;
  position: relative;
}
.sw-section-head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 3.25rem;
  height: 2px;
  background: var(--sw-teal);
}
.sw-section-head--flush {
  border-bottom: 0;
  margin-bottom: 0.7rem;
  padding-bottom: 0;
}
.sw-section-head--flush::after { display: none; }
.sw-section-title {
  font-size: clamp(1.18rem, 1.55vw, 1.42rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.sw-section-head a {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--sw-teal-dark);
}
.sw-section-head a:hover { color: var(--sw-navy); }

/* Home rhythm: tighter, even desks — no large module voids */
.sw-home #main > .sw-wrap > .sw-section,
.sw-home #main > .sw-wrap > .sw-top-stories {
  margin-top: 1.15rem;
  margin-bottom: 1.25rem;
}
.sw-home #main > .sw-wrap > .sw-section.sw-across--scroller {
  margin-top: 0.55rem;
  margin-bottom: 0.7rem;
  padding: 0.4rem 0 0.1rem;
}
.sw-home #main > .sw-wrap > .sw-section.sw-india,
.sw-home #main > .sw-wrap > .sw-section.sw-politics,
.sw-home #main > .sw-wrap > .sw-section.sw-split,
.sw-home #main > .sw-wrap > .sw-section.sw-sports,
.sw-home #main > .sw-wrap > .sw-section.sw-culture,
.sw-home #main > .sw-wrap > .sw-section.sw-videos {
  margin-top: 1.05rem;
  margin-bottom: 1.15rem;
}
@media (max-width: 719px) {
  .sw-home #main > .sw-wrap > .sw-section,
  .sw-home #main > .sw-wrap > .sw-top-stories {
    margin-top: 0.9rem;
    margin-bottom: 1rem;
  }
}

/* Compact cinematic — brand atmosphere without competing with Top Stories */
.sw-cinematic--compact {
  max-height: 5.25rem;
  margin: 0;
}
.sw-cinematic--compact .sw-cinematic__media {
  max-height: 5.25rem;
}
.sw-cinematic__line {
  font-size: clamp(0.95rem, 1.5vw, 1.15rem);
}
.sw-cinematic__sub {
  font-size: 0.74rem;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sw-cinematic__overlay {
  padding-block: 0.4rem;
}
@media (max-width: 700px) {
  .sw-cinematic--compact,
  .sw-cinematic--compact .sw-cinematic__media {
    max-height: 4.35rem;
  }
  .sw-cinematic__sub { display: none; }
}

/* Top Stories: denser shared wrap, equal visual weight */
.sw-top-stories {
  padding-top: 0.45rem;
  padding-bottom: 0.1rem;
}
.sw-top-layout {
  gap: 0.7rem;
  padding: 0.65rem;
  border: 1px solid color-mix(in srgb, var(--sw-navy) 10%, var(--sw-border));
  border-radius: var(--sw-radius);
  background: color-mix(in srgb, var(--sw-navy) 2.5%, var(--sw-surface));
}
@media (min-width: 960px) {
  .sw-top-layout {
    grid-template-columns: minmax(0, 1.72fr) minmax(16rem, 0.38fr);
    gap: 0.75rem;
  }
}
.sw-top-grid { gap: 0.55rem; }
@media (min-width: 720px) {
  .sw-top-grid {
    gap: 0.6rem;
  }
}
.sw-top-layout .sw-lead,
.sw-top-layout .sw-support-card,
.sw-top-layout .sw-latest-rail {
  box-shadow: none;
}
.sw-lead,
.sw-support-card,
.sw-region-card,
.sw-feat-photo,
.sw-split-card,
.sw-sports-lead,
.sw-sports-card,
.sw-world-card,
.sw-related-card,
.sw-video-card,
.sw-mosaic-item {
  border: 1px solid color-mix(in srgb, var(--sw-navy) 10%, var(--sw-border));
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
  box-shadow: var(--sw-shadow-soft);
}
.sw-mosaic-item {
  overflow: hidden;
  padding: 0;
}
.sw-mosaic-item .sw-thumb {
  border-radius: 0;
  margin-bottom: 0;
}
.sw-mosaic-item .sw-story-body {
  padding: 0.55rem 0.7rem 0.7rem;
}
.sw-mosaic-item.sw-card--text {
  border-left: 3px solid var(--sw-teal);
}
.sw-mosaic-item.sw-card--text .sw-story-body {
  padding: 0.7rem 0.85rem;
}

/* Depth hover: color/shadow only — no translate (avoids perceived shake) */
.sw-depth {
  transition: box-shadow 180ms ease, border-color 180ms ease;
}
.sw-depth:hover {
  transform: none;
  border-color: color-mix(in srgb, var(--sw-teal) 35%, var(--sw-border));
  box-shadow: var(--sw-shadow-depth);
}
.sw-depth:hover .sw-thumb img {
  transform: scale(1.025);
}

.sw-lead .sw-story-body,
.sw-support-card .sw-story-body {
  padding: 0.6rem 0.75rem 0.7rem;
  gap: 0.1rem;
}
.sw-headline--lead {
  font-size: clamp(1.22rem, 1.85vw, 1.62rem);
  letter-spacing: -0.018em;
}
.sw-headline--support {
  font-size: clamp(0.98rem, 1.1vw, 1.08rem);
}
.sw-support-col { gap: 0.55rem; }
.sw-support-card .sw-thumb--support {
  aspect-ratio: 16 / 9;
}

/* Latest rail — dense timeline */
.sw-latest-rail {
  border-radius: var(--sw-radius);
  border-color: color-mix(in srgb, var(--sw-navy) 12%, var(--sw-border));
  padding: 0.7rem 0.75rem 0.6rem;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--sw-navy) 5%, var(--sw-surface)), var(--sw-surface));
}
.sw-rail-label {
  font-size: 0.68rem;
  letter-spacing: 0.14em;
}
.sw-rail-item {
  padding: 0.5rem 0.3rem 0.5rem 0.45rem;
}
.sw-rail-item .sw-time {
  margin: 0;
  font-size: 0.68rem;
}
.sw-headline--rail {
  font-size: 0.92rem;
  line-height: 1.28;
  -webkit-line-clamp: 3;
}
.sw-carousel__controls {
  margin-top: 0.45rem;
  padding-top: 0.28rem;
  min-height: 2.35rem;
}

/* Trending — dense editorial strip */
.sw-trending {
  padding: 0.15rem 0 0.25rem;
}
.sw-trending-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--sw-border);
}
.sw-trending-list li {
  border-bottom: 1px solid var(--sw-border);
  margin: 0;
}
.sw-trending-list a {
  display: grid;
  gap: 0.12rem;
  padding: 0.65rem 0.15rem;
  text-decoration: none;
}
.sw-trending-list .sw-headline {
  font-size: 0.98rem;
}
.sw-trending-list .sw-reads {
  font-family: var(--sw-font-ui);
  font-size: 0.72rem;
  color: var(--sw-muted);
}
@media (min-width: 800px) {
  .sw-trending-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.5rem;
    border-top: 0;
  }
  .sw-trending-list li:nth-child(odd) {
    border-right: 1px solid var(--sw-border);
    padding-right: 0.85rem;
  }
  .sw-trending-list li:nth-child(even) {
    padding-left: 0.85rem;
  }
}

/* Text-first elegant list rows (shared across desks + inner pages) */
.sw-text-rows {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  border-top: 1px solid var(--sw-border);
}
.sw-text-rows--side {
  margin-top: 0.15rem;
  border-top: 0;
}
.sw-text-row {
  display: grid;
  gap: 0.12rem;
  padding: 0.62rem 0.15rem 0.62rem 0.7rem;
  border-bottom: 1px solid var(--sw-border);
  border-left: 3px solid var(--sw-teal);
  background: transparent;
}
.sw-text-row:last-child { border-bottom: 0; }
.sw-text-row .sw-kicker { margin: 0; }
.sw-text-row .sw-time { margin: 0.05rem 0 0; }
.sw-text-row--card {
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--sw-navy) 10%, var(--sw-border));
  border-left: 3px solid var(--sw-teal);
  border-radius: var(--sw-radius);
  padding: 0.7rem 0.85rem;
  background: var(--sw-surface);
  box-shadow: var(--sw-shadow-soft);
}
.sw-text-row--card + .sw-text-row--card,
.sw-split-card + .sw-text-row--card,
.sw-text-row--card + .sw-split-card {
  margin-top: 0.55rem;
}

/* India / region photo grid — consistent chrome, no jagged empty cells */
.sw-region-cards {
  gap: 0.75rem;
}
.sw-region-card .sw-story-body {
  padding: 0.55rem 0.7rem 0.7rem;
}
.sw-region-card .sw-time { margin-top: 0.2rem; }
.sw-region-card .sw-thumb {
  aspect-ratio: 16 / 9;
  border-radius: 0;
}

/* Politics desk */
.sw-politics-grid { gap: 0.85rem; }
.sw-feat-photo .sw-story-body { padding: 0.7rem 0.85rem 0.85rem; }
.sw-thumb-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 0.65rem;
  align-items: start;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw-thumb-row .sw-story-body { padding: 0; }
.sw-thumb-row .sw-thumb--sm {
  width: 72px;
  height: 72px;
  aspect-ratio: 1;
}

/* Biz / Tech split density */
.sw-split { gap: 1.15rem; }
@media (min-width: 800px) { .sw-split { gap: 1.35rem; } }
.sw-split-col { gap: 0.55rem; }
.sw-split-card {
  grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr);
}
.sw-split-card .sw-thumb {
  aspect-ratio: 16 / 10;
  min-height: 0;
  height: 100%;
  border-radius: 0;
}
.sw-split-card .sw-story-body {
  padding: 0.55rem 0.7rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.1rem;
}

/* Sports preview denser */
.sw-sports-composition { gap: 0.7rem 0.9rem; }
.sw-sports-quick-filters { margin-bottom: 0.75rem; }
.sw-sports-card .sw-story-body { padding: 0.5rem 0.65rem 0.55rem; }
.sw-sports-lead .sw-story-body { padding: 0.65rem 0.8rem 0.75rem; }

/* State scroller — compact tasteful accents */
.sw-state-chip {
  min-width: 7rem;
  padding: 0.45rem 0.7rem;
  font-size: 0.82rem;
  border-radius: var(--sw-radius);
  background: var(--sw-surface);
  border: 1px solid var(--sw-border);
}
.sw-state-scroller__track { gap: 0.4rem; }
.sw-section-head--scroller {
  margin-bottom: 0.55rem;
  border-bottom: 1px solid var(--sw-border);
  padding-bottom: 0.4rem;
}
.sw-section-head--scroller::after {
  width: 2.5rem;
  background: var(--sw-orange);
}

/* Videos — featured + dense supporting thumbs */
.sw-video-card--lead .sw-video-play {
  width: 3.15rem;
  height: 3.15rem;
}
.sw-videos-grid { gap: 0.65rem; }

/* Triad / world / opinion denser */
.sw-triad { gap: 1rem; }
.sw-list-story { padding: 0.48rem 0; }
.sw-world-grid { gap: 0.75rem; }
.sw-world-card .sw-story-body { padding: 0.55rem 0.65rem 0.7rem; }
.sw-opinion-card {
  border-top-width: 3px;
  padding: 0.7rem 0.1rem 0.45rem;
}
.sw-explained-inner {
  border-radius: var(--sw-radius);
  padding: 1.35rem 1.1rem;
}
.sw-newsletter {
  margin: 1.5rem 0 1.75rem;
  padding: 1.1rem 1.15rem;
  border-radius: var(--sw-radius);
}

/* Footer — balanced, no huge whitespace */
.sw-footer { margin-top: 1.75rem; }
.sw-footer-intro {
  padding: 1.1rem 0 0.9rem;
  gap: 0.55rem;
}
.sw-footer-cols {
  padding: 0.85rem 0;
  gap: 0.85rem 1.25rem;
}
.sw-footer-heading {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sw-cyan);
}
.sw-footer li { margin: 0.22rem 0; }
.sw-footer-legal .sw-wrap { padding: 0.45rem 0 0.55rem; }
.sw-footer-blurb { font-size: 0.86rem; max-width: 32rem; }

/* Inner pages — shared card/type system */
.sw-inner .sw-page-header {
  padding: 0.75rem 0 0.55rem;
  border-bottom: var(--sw-rule);
  margin-bottom: 0.85rem;
  position: relative;
}
.sw-inner .sw-page-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 3.25rem;
  height: 2px;
  background: var(--sw-teal);
}
.sw-inner .sw-page-title {
  font-size: clamp(1.4rem, 2vw, 1.75rem);
  letter-spacing: -0.02em;
}
.sw-cat-feature,
.sw-sports-feature {
  gap: 0.85rem;
}
.sw-cat-support { gap: 0.55rem; }
.sw-cat-page .sw-grid,
.sw-search-results,
.sw-archive-list {
  gap: 0.7rem;
}

/* Article reading measure */
.sw-article {
  max-width: 40.5rem;
  margin: 1.15rem auto 2.5rem;
  font-size: clamp(1.05rem, 0.3vw + 1rem, 1.15rem);
  line-height: 1.78;
}
.sw-article header h1 {
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
  letter-spacing: -0.02em;
}
.sw-article .sw-content {
  max-width: 40.5rem;
}
.sw-article-hero {
  margin: 0.95rem 0 1.15rem;
  border-radius: var(--sw-radius);
}
.sw-related {
  margin-top: 2rem;
  padding-top: 1rem;
}
.sw-related-grid { gap: 0.75rem; }

/* Bureaucracy / edition share desk chrome */
.sw-bureau-preview,
.sw-edition-home .sw-section {
  margin: 1.05rem 0 1.15rem;
}
.sw-bureau-section-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sw-bureau-section-list li {
  padding: 0.55rem 0 0.55rem 0.7rem;
  border-bottom: 1px solid var(--sw-border);
  border-left: 3px solid var(--sw-orange);
}

/* Icon buttons — quieter chrome */
.sw-icon-btn {
  min-width: 32px;
  min-height: 32px;
  font-size: 0.78rem;
  border-radius: var(--sw-radius);
}

/* Preserve text-first accent bars (must win over card chrome) */
.sw-thumb--text,
.sw-lead .sw-thumb--hero.sw-thumb--text,
.sw-lead:has(> .sw-thumb--text) .sw-thumb--hero,
.sw-thumb--fallback,
.sw-thumb--fallback-compact {
  aspect-ratio: auto !important;
  height: 0.22rem !important;
  max-height: 0.22rem !important;
  min-height: 0 !important;
  border-radius: 0;
}

/* Dark theme adjustments for premium layer */
[data-theme="dark"] body {
  background: var(--sw-warm);
}
[data-theme="dark"] .sw-ticker,
[data-theme="dark"] .sw-ticker--integrated {
  background: linear-gradient(90deg, #3a151d 0%, var(--sw-surface) 18%, var(--sw-surface) 100%);
}
[data-theme="dark"] .sw-lead,
[data-theme="dark"] .sw-support-card,
[data-theme="dark"] .sw-region-card,
[data-theme="dark"] .sw-feat-photo,
[data-theme="dark"] .sw-split-card,
[data-theme="dark"] .sw-sports-lead,
[data-theme="dark"] .sw-sports-card,
[data-theme="dark"] .sw-world-card,
[data-theme="dark"] .sw-related-card,
[data-theme="dark"] .sw-video-card,
[data-theme="dark"] .sw-mosaic-item,
[data-theme="dark"] .sw-text-row--card {
  background: var(--sw-surface);
  border-color: var(--sw-border);
  box-shadow: none;
}

/* ——— 3.2.1 video gaps + content voids ——— */

/* Top Stories: when lead is text-first, collapse photo column — support fills beside */
@media (min-width: 720px) {
  .sw-top-grid--text-lead {
    grid-template-columns: minmax(0, 1.15fr) minmax(16rem, 1fr);
  }
}
.sw-carousel__slide--text-lead .sw-lead.sw-card--text {
  border-left: 3px solid var(--sw-teal);
}
.sw-carousel__slide--text-lead .sw-lead .sw-thumb--hero.sw-thumb--text {
  display: block;
  width: 100%;
  max-width: none;
}

/* Videos stage: never leave empty support column */
.sw-videos-home:not(:has(.sw-videos-grid)),
.sw-videos-stage:not(:has(.sw-videos-grid)) {
  grid-template-columns: minmax(0, 42rem);
  justify-content: center;
}

/* Text-first video posters must beat generic 16:9 video rules */
.sw-video-poster.sw-video-poster--text,
.sw-video-card--text .sw-video-poster {
  aspect-ratio: auto !important;
  height: 3.25rem !important;
  min-height: 3.25rem !important;
  max-height: 3.25rem !important;
}
.sw-video-card--lead .sw-video-poster.sw-video-poster--text {
  height: 4rem !important;
  min-height: 4rem !important;
  max-height: 4rem !important;
}

/* Adaptive section grids when fewer cards than columns */
.sw-region-cards[data-count="1"],
.sw-region-cards[data-count="2"] {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}
.sw-world-grid:has(> :only-child),
.sw-explained-grid:has(> :only-child) {
  grid-template-columns: minmax(0, 22rem);
}
.sw-triad:has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Prevent fixed-height voids on sparse modules */
.sw-section:has(.sw-empty),
.sw-section:has(> .sw-empty-note:only-child) {
  margin-block: 0.75rem;
}
.sw-home #main > .sw-wrap > .sw-section.sw-videos {
  margin-top: 0.95rem;
  margin-bottom: 1.05rem;
}

/* Horizontal overflow: contain wide media without page-level clip */
.sw-videos-home,
.sw-videos-stage,
.sw-videos-desk,
.sw-article-video,
.sw-cinematic {
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

/* ==========================================================================
   3.3.0 — Decisive structural redesign (newsroom desk)
   First viewport = chrome + breaking + Top Stories as ONE composition.
   Cinematic relocated to a thin brand stripe BELOW Top Stories.
   Shared wrap edges, 24–28px cadence, one card system, dense packing.
   Preserves: CLS locks, text-first, video featured+supports, chrome demotion.
   ========================================================================== */

:root {
  --sw-measure: 74rem;
  --sw-desk-gap: 1.5rem; /* 24px */
  --sw-desk-gap-lg: 1.75rem; /* 28px */
  --sw-type-section: clamp(1.12rem, 1.4vw, 1.28rem);
  --sw-type-card: clamp(0.98rem, 1.05vw, 1.08rem);
  --sw-type-meta: 0.68rem;
  --sw-radius: 2px;
}

/* ——— Shared wrap: restore measure (override earlier width:100% leak) ——— */
.sw-chrome,
#main {
  width: 100%;
  max-width: 100%;
}
.sw-wrap {
  width: min(100% - 1.5rem, var(--sw-measure));
  max-width: var(--sw-measure);
  margin-inline: auto;
  box-sizing: border-box;
}
@media (min-width: 720px) {
  .sw-wrap {
    width: min(100% - 2rem, var(--sw-measure));
  }
}

/* ——— First-viewport newsroom: Top Stories flush under ticker ——— */
.sw-home .sw-newsroom {
  padding-top: 0.35rem;
  padding-bottom: 0;
}
.sw-home .sw-top-stories.sw-desk-open {
  margin: 0;
  padding: 0.15rem 0 0.35rem;
}
.sw-home .sw-section-head--desk {
  margin-bottom: 0.45rem;
  padding-bottom: 0.2rem;
  border-bottom: 2px solid var(--sw-navy);
  position: relative;
}
.sw-home .sw-section-head--desk::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 2.75rem;
  height: 2px;
  background: var(--sw-orange);
  display: block;
}

/* Top Stories as a measured desk — not a padded card-in-card */
.sw-top-layout {
  gap: 0.65rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  align-items: stretch;
}
@media (min-width: 960px) {
  .sw-top-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.78fr) minmax(15.5rem, 0.36fr);
    gap: 0.75rem;
    align-items: stretch;
  }
  .sw-carousel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
  }
  .sw-carousel__viewport {
    flex: 1 1 auto;
  }
  .sw-latest-rail {
    height: 100%;
    max-height: none;
    display: flex;
    flex-direction: column;
  }
  .sw-latest-timeline {
    flex: 1 1 auto;
    max-height: none;
  }
}
.sw-top-grid {
  gap: 0.55rem;
  height: 100%;
  align-items: stretch;
}
@media (min-width: 720px) {
  .sw-top-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(14.5rem, 0.9fr);
    gap: 0.55rem;
    align-items: stretch;
  }
  .sw-support-col {
    height: 100%;
    gap: 0.55rem;
    display: grid;
    grid-template-rows: 1fr 1fr;
  }
  .sw-support-card {
    height: 100%;
    min-height: 0;
  }
  .sw-lead {
    height: 100%;
  }
}

/* Flatten Top Stories chrome — hairline rules, denser type */
.sw-top-layout .sw-lead,
.sw-top-layout .sw-support-card {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  box-shadow: none;
  background: var(--sw-surface);
}
.sw-top-layout .sw-latest-rail {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  box-shadow: none;
  padding: 0.55rem 0.6rem 0.45rem;
  background: var(--sw-surface);
}
.sw-lead .sw-story-body,
.sw-support-card .sw-story-body {
  padding: 0.45rem 0.65rem 0.55rem;
  gap: 0.08rem;
}
.sw-headline--lead {
  font-size: clamp(1.15rem, 1.7vw, 1.48rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
}
.sw-headline--support {
  font-size: var(--sw-type-card);
  line-height: 1.28;
}
.sw-lead .sw-deck {
  font-size: 0.88rem;
  line-height: 1.4;
  -webkit-line-clamp: 2;
  color: var(--sw-muted);
}
.sw-support-card .sw-deck--compact {
  display: none; /* denser support stack — headline + meta only */
}
.sw-lead .sw-thumb--hero {
  aspect-ratio: 16 / 9;
  max-height: 18rem;
}
.sw-support-card .sw-thumb--support {
  aspect-ratio: 16 / 9;
}
.sw-carousel__controls {
  margin-top: 0.35rem;
  padding-top: 0.25rem;
  min-height: 2.1rem;
}
.sw-headline--rail {
  font-size: 0.88rem;
  line-height: 1.28;
  -webkit-line-clamp: 3;
}
.sw-rail-item {
  padding: 0.42rem 0.2rem 0.42rem 0.35rem;
}
.sw-rail-item .sw-time,
.sw-kicker {
  font-size: var(--sw-type-meta);
}

/* ——— Cinematic as thin brand stripe BELOW Top Stories ——— */
.sw-cinematic--stripe,
.sw-cinematic.sw-cinematic--stripe {
  position: relative;
  max-height: 3.25rem;
  margin: 0.65rem 0 0.15rem;
  overflow: hidden;
  background: linear-gradient(118deg, var(--sw-navy-deep), var(--sw-navy) 48%, #0a3a4a);
  color: #f3f7fb;
}
.sw-cinematic--stripe .sw-cinematic__media {
  max-height: 3.25rem;
}
.sw-cinematic--stripe .sw-cinematic__overlay {
  min-height: 3.25rem;
  max-height: 3.25rem;
  padding-block: 0.25rem;
  gap: 0.5rem;
}
.sw-cinematic--stripe .sw-cinematic__line {
  font-size: clamp(0.88rem, 1.2vw, 1.02rem);
  font-weight: 700;
  line-height: 1.2;
}
.sw-cinematic--stripe .sw-cinematic__sub {
  display: none;
}
.sw-cinematic--stripe .sw-cinematic__toggle {
  min-height: 28px;
  min-width: 28px;
  font-size: 0.65rem;
  padding: 0.15rem 0.4rem;
}
@media (max-width: 700px) {
  .sw-cinematic--stripe,
  .sw-cinematic--stripe .sw-cinematic__media,
  .sw-cinematic--stripe .sw-cinematic__overlay {
    max-height: 2.85rem;
    min-height: 2.85rem;
  }
}

/* Legacy compact class still used elsewhere — keep short */
.sw-cinematic--compact {
  max-height: 3.25rem;
}

/* ——— Uniform section cadence (24–28px) ——— */
.sw-home #main > .sw-wrap > .sw-section,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section,
.sw-home #main > .sw-wrap > .sw-top-stories {
  margin-top: var(--sw-desk-gap);
  margin-bottom: var(--sw-desk-gap);
}
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section:first-child {
  margin-top: 0.85rem;
}
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-across--scroller {
  margin-top: 0.85rem;
  margin-bottom: 0.85rem;
  padding: 0.25rem 0 0;
}
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-india,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-politics,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-split,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-sports,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-culture,
.sw-home #main > .sw-wrap.sw-home-desks > .sw-section.sw-videos {
  margin-top: var(--sw-desk-gap);
  margin-bottom: var(--sw-desk-gap);
}
@media (min-width: 960px) {
  .sw-home #main > .sw-wrap.sw-home-desks > .sw-section {
    margin-top: var(--sw-desk-gap-lg);
    margin-bottom: var(--sw-desk-gap-lg);
  }
}
@media (max-width: 719px) {
  .sw-home #main > .sw-wrap.sw-home-desks > .sw-section {
    margin-top: 1.15rem;
    margin-bottom: 1.15rem;
  }
}

/* ——— Typography hierarchy: one section size, one card H3 ——— */
.sw-section-title {
  font-size: var(--sw-type-section);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.sw-headline--card {
  font-size: var(--sw-type-card);
  line-height: 1.28;
  margin: 0;
  letter-spacing: -0.01em;
}
.sw-section-head {
  border-bottom: 2px solid var(--sw-navy);
  padding-bottom: 0.35rem;
  margin-bottom: 0.65rem;
}
.sw-section-head::after {
  width: 2.5rem;
  background: var(--sw-teal);
}
.sw-time,
.sw-credit,
.sw-reads {
  font-size: var(--sw-type-meta);
  font-family: var(--sw-font-ui);
  color: var(--sw-muted);
}

/* ——— ONE card system: photo card vs text-row ——— */
.sw-region-card,
.sw-feat-photo,
.sw-split-card,
.sw-sports-lead,
.sw-sports-card,
.sw-world-card,
.sw-video-card {
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius);
  box-shadow: none;
  background: var(--sw-surface);
}
.sw-region-card .sw-story-body,
.sw-feat-photo .sw-story-body,
.sw-world-card .sw-story-body {
  padding: 0.45rem 0.6rem 0.55rem;
}
.sw-text-row {
  padding: 0.48rem 0.1rem 0.48rem 0.55rem;
  border-left-width: 2px;
}
.sw-text-row--card { display: none; } /* retired — use lead+list or text-rows */
.sw-photo-trio {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  align-items: stretch;
}
@media (min-width: 720px) {
  .sw-photo-trio {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sw-photo-trio .sw-region-card {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .sw-photo-trio .sw-story-body {
    flex: 1 1 auto;
  }
}
.sw-photo-trio .sw-thumb {
  aspect-ratio: 16 / 9;
}

/* Lead + list desk (politics / india fallback / culture / biz-tech) */
.sw-desk-leadlist {
  display: grid;
  gap: 0.75rem;
  align-items: start;
}
@media (min-width: 800px) {
  .sw-desk-leadlist {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 0.85rem;
  }
}
.sw-desk-leadlist--stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sw-desk-leadlist--stack .sw-section-head {
  width: 100%;
}
.sw-desk-leadlist--stack .sw-split-card {
  margin-bottom: 0.15rem;
}
.sw-desk-leadlist--stack .sw-text-rows--side {
  margin-top: 0.15rem;
}
.sw-desk-leadlist .sw-text-rows--side {
  margin: 0;
  border-top: 0;
}
.sw-desk-leadlist .sw-feat-photo .sw-thumb--feat {
  aspect-ratio: 16 / 9;
}

/* Politics: keep lead + side as one measured unit */
.sw-politics-grid {
  gap: 0.75rem;
  align-items: start;
}
@media (min-width: 900px) {
  .sw-politics-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  }
}
.sw-politics-side {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}
.sw-thumb-row {
  padding: 0.42rem 0;
  gap: 0.55rem;
  grid-template-columns: 64px minmax(0, 1fr);
}
.sw-thumb-row .sw-thumb--sm {
  width: 64px;
  height: 64px;
}

/* Biz / Tech split — equal columns, lead+list each */
.sw-split {
  display: grid;
  gap: var(--sw-desk-gap);
  align-items: start;
}
@media (min-width: 800px) {
  .sw-split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}
.sw-split-card {
  display: grid;
  grid-template-columns: minmax(5.5rem, 36%) minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
}
.sw-split-card.sw-card--text {
  grid-template-columns: 1fr;
  border-left: 2px solid var(--sw-teal);
}
.sw-split-card .sw-thumb {
  aspect-ratio: 16 / 10;
  height: 100%;
  min-height: 0;
}
.sw-split-card .sw-story-body {
  padding: 0.45rem 0.6rem;
  gap: 0.08rem;
}

/* Sports: lead + support stack as one unit */
.sw-sports-composition {
  gap: 0.65rem 0.75rem;
}
.sw-sports-quick-filters {
  margin-bottom: 0.55rem;
  gap: 0.35rem;
}
.sw-sports-tab {
  padding: 0.28rem 0.55rem;
  font-size: 0.75rem;
}

/* State scroller — single compact band */
.sw-across--scroller {
  border-top: 1px solid var(--sw-border);
  border-bottom: 1px solid var(--sw-border);
  padding: 0.35rem 0 0.15rem;
  margin: 0;
}
.sw-section-head--scroller {
  margin-bottom: 0.35rem;
  padding-bottom: 0.3rem;
}
.sw-state-chip {
  min-width: 6.5rem;
  padding: 0.38rem 0.6rem;
  font-size: 0.78rem;
  border-radius: var(--sw-radius);
}
.sw-deck--tight {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  color: var(--sw-muted);
  font-family: var(--sw-font-ui);
}

/* Videos: featured left / supports right — one unit (preserve) */
.sw-videos-home {
  gap: 0.65rem;
}
@media (min-width: 900px) {
  .sw-videos-home {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    align-items: start;
  }
}

/* Triad denser */
.sw-triad {
  gap: 0.85rem;
}
.sw-list-story {
  padding: 0.4rem 0;
}

/* World: equal photo cards, fill or collapse */
.sw-world-grid {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  align-items: stretch;
}
.sw-world-card .sw-thumb {
  aspect-ratio: 16 / 9;
}

/* Opinion denser */
.sw-opinion-grid {
  gap: 0.65rem 1rem;
}
.sw-opinion-card {
  padding: 0.55rem 0.1rem 0.35rem;
}

/* Explained / newsletter — less padding void */
.sw-explained-inner {
  padding: 1rem 0.95rem;
  border-radius: var(--sw-radius);
}
.sw-newsletter {
  margin: var(--sw-desk-gap) 0;
  padding: 0.9rem 1rem;
  border-radius: var(--sw-radius);
}

/* Trending denser under stripe */
.sw-trending {
  padding: 0;
}
.sw-trending-list a {
  padding: 0.5rem 0.1rem;
}
.sw-trending-list .sw-headline {
  font-size: var(--sw-type-card);
}

/* Footer — 4 columns + slim legal */
.sw-footer {
  margin-top: 1.35rem;
}
.sw-footer-intro {
  padding: 0.9rem 0 0.7rem;
  gap: 0.45rem;
}
.sw-footer-cols {
  padding: 0.7rem 0;
  gap: 0.75rem 1rem;
}
.sw-footer-cols--4 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 720px) {
  .sw-footer-cols--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.sw-footer-heading {
  margin: 0 0 0.28rem;
  font-size: 0.68rem;
}
.sw-footer li {
  margin: 0.16rem 0;
  font-size: 0.84rem;
}
.sw-footer-legal .sw-wrap {
  padding: 0.4rem 0 0.5rem;
}
.sw-footer-blurb {
  font-size: 0.82rem;
  max-width: 28rem;
  line-height: 1.4;
}

/* Depth hover: no translate (CLS/shake lock) */
.sw-depth:hover {
  transform: none;
}

/* Body density — newsroom scale */
body {
  font-size: 1rem;
  line-height: 1.55;
  background:
    linear-gradient(180deg, #eef3f8 0%, var(--sw-warm) 12rem, var(--sw-warm) 100%);
}

/* Mobile: clean stack, no overflow, preserve carousel min-height */
@media (max-width: 719px) {
  .sw-top-layout {
    gap: 0.75rem;
  }
  .sw-support-col {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
  }
  .sw-lead .sw-thumb--hero {
    max-height: 14rem;
  }
  .sw-carousel__viewport {
    min-height: var(--sw-carousel-min, 0px);
  }
  .sw-home .sw-top-stories.sw-desk-open {
    padding-top: 0.25rem;
  }
  .sw-desk-leadlist {
    gap: 0.55rem;
  }
}

/* Contain overflow without clipping sticky chrome */
.sw-newsroom,
.sw-home-desks,
.sw-top-layout,
.sw-desk-leadlist,
.sw-photo-trio {
  max-width: 100%;
  min-width: 0;
}

/* Dark theme */
[data-theme="dark"] .sw-top-layout .sw-lead,
[data-theme="dark"] .sw-top-layout .sw-support-card,
[data-theme="dark"] .sw-top-layout .sw-latest-rail,
[data-theme="dark"] .sw-region-card,
[data-theme="dark"] .sw-feat-photo,
[data-theme="dark"] .sw-split-card,
[data-theme="dark"] .sw-sports-lead,
[data-theme="dark"] .sw-sports-card,
[data-theme="dark"] .sw-world-card {
  background: var(--sw-surface);
  border-color: var(--sw-border);
}
[data-theme="dark"] body {
  background: var(--sw-warm);
}

/* ——— 3.3.0b: kill jagged Top Stories bottoms + denser packing ——— */
@media (min-width: 720px) {
  .sw-top-grid {
    align-items: stretch;
  }
  .sw-lead,
  .sw-support-col {
    align-self: stretch;
    height: 100%;
  }
  .sw-support-col {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .sw-support-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }
  .sw-support-card .sw-thumb--support {
    flex: 1 1 auto;
    min-height: 5.5rem;
    max-height: none;
    aspect-ratio: auto;
    height: auto;
  }
  .sw-support-card .sw-story-body {
    flex: 0 0 auto;
  }
  .sw-lead {
    display: flex;
    flex-direction: column;
  }
  .sw-lead .sw-thumb--hero {
    flex: 1 1 auto;
    min-height: 11rem;
    max-height: none;
    aspect-ratio: auto;
  }
  .sw-lead .sw-story-body {
    flex: 0 0 auto;
  }
}
@media (min-width: 960px) {
  .sw-top-layout {
    align-items: stretch;
  }
  /* Match Latest rail height to carousel content band */
  .sw-latest-rail {
    align-self: stretch;
  }
  .sw-latest-timeline {
    max-height: none;
  }
}

/* Denser first desk — less air between units */
.sw-top-grid { gap: 0.45rem; }
.sw-top-layout { gap: 0.55rem; }
.sw-lead .sw-story-body,
.sw-support-card .sw-story-body {
  padding: 0.4rem 0.55rem 0.48rem;
}
.sw-headline--lead {
  font-size: clamp(1.08rem, 1.55vw, 1.38rem);
  line-height: 1.16;
}
.sw-lead .sw-deck {
  font-size: 0.84rem;
  -webkit-line-clamp: 2;
}
.sw-home .sw-top-stories.sw-desk-open {
  padding-top: 0.1rem;
}
.sw-home .sw-section-head--desk {
  margin-bottom: 0.35rem;
}

/* Preserve CLS: keep reserved image boxes + carousel min-height */
.sw-carousel__viewport {
  min-height: var(--sw-carousel-min, 0px);
}
.sw-support-card .sw-thumb--support img,
.sw-lead .sw-thumb--hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Text-first must still collapse photo voids */
.sw-lead .sw-thumb--hero.sw-thumb--text,
.sw-lead:has(> .sw-thumb--text) .sw-thumb--hero,
.sw-support-card .sw-thumb--support.sw-thumb--text {
  flex: 0 0 auto !important;
  height: 0.22rem !important;
  min-height: 0 !important;
  max-height: 0.22rem !important;
  aspect-ratio: auto !important;
}

/* ——— 3.3.0c: support stack as horizontal rows (newsroom density, even bottoms) ——— */
@media (min-width: 720px) {
  .sw-support-col {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    height: 100%;
    justify-content: stretch;
  }
  .sw-support-card {
    display: grid !important;
    grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr);
    flex: 1 1 0;
    min-height: 0;
    height: auto;
    align-items: stretch;
  }
  .sw-support-card .sw-thumb--support {
    aspect-ratio: 1 / 1 !important;
    height: 100%;
    min-height: 0;
    max-height: none;
    flex: none;
  }
  .sw-support-card .sw-story-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.4rem 0.55rem;
    gap: 0.08rem;
  }
  .sw-lead .sw-thumb--hero {
    aspect-ratio: 16 / 9 !important;
    flex: 0 0 auto;
    max-height: 17rem;
    min-height: 0;
  }
  .sw-lead {
    height: auto;
  }
  .sw-top-grid {
    align-items: start;
  }
}
/* Mobile keeps stacked photo-over-text */
@media (max-width: 719px) {
  .sw-support-card {
    display: flex;
    flex-direction: column;
  }
  .sw-support-card .sw-thumb--support {
    aspect-ratio: 16 / 9;
  }
}

/* ——— 3.3.0d: Latest rail must NOT stretch the Top Stories desk ——— */
@media (min-width: 960px) {
  .sw-top-layout {
    align-items: start;
  }
  .sw-carousel,
  .sw-latest-rail {
    align-self: start;
    height: auto;
    max-height: none;
  }
  .sw-latest-rail {
    /* Cap to carousel band — scroll inside for older items */
    max-height: calc(var(--sw-carousel-min, 26rem) + 3.25rem);
    display: flex;
    flex-direction: column;
  }
  .sw-latest-timeline {
    flex: 1 1 auto;
    max-height: none;
    min-height: 0;
    overflow-y: auto;
  }
}
