:root {
  --td-navy: #012169;
  --td-red: #c8102e;
  --td-green: #00966e;
  --td-paper: #faf6ee;
  --td-ink: #172033;
  --td-rule: #ded5c6;
}

.td-page { background: var(--td-paper); color: var(--td-ink); }
.td-shell { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.td-hero { background: linear-gradient(135deg, #012169 0%, #183b81 74%, #8b1427 100%); color: #fff; padding: 34px 0 44px; }
.td-breadcrumb { display: flex; gap: 8px; align-items: center; margin-bottom: 32px; font-size: .88rem; }
.td-breadcrumb a { color: #fff; }
.td-eyebrow, .td-kicker { margin: 0 0 7px; color: var(--td-red); font: 700 .78rem/1.2 'Space Grotesk', sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.td-hero .td-eyebrow { color: #ffd166; }
.td-hero h1 { max-width: 820px; margin: 0; font: 800 clamp(2.35rem, 7vw, 5.1rem)/.98 'Playfair Display', Georgia, serif; }
.td-deck { max-width: 790px; margin: 22px 0 0; font-size: clamp(1.02rem, 2.3vw, 1.28rem); line-height: 1.6; }
.td-status { margin: 22px 0 0; font-size: .92rem; color: #e9edf7; }
.td-main { padding-block: 30px 70px; }
.td-today { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); overflow: hidden; margin: 0 0 24px; border: 1px solid var(--td-rule); border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(1, 33, 105, .09); }
.td-today-image { min-height: 280px; background: #e6e0d4; }
.td-today-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.td-today-copy { min-width: 0; padding: clamp(24px, 5vw, 52px); align-self: center; }
.td-today-date { margin: 0 0 8px; font: 700 .95rem/1.2 'Space Grotesk', sans-serif; color: var(--td-green); }
.td-today-copy h2 { margin: 0 0 14px; font: 800 clamp(1.55rem, 3.5vw, 2.65rem)/1.08 'Playfair Display', Georgia, serif; overflow-wrap: anywhere; }
.td-today-copy h2 a { color: var(--td-navy); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.td-today-copy > p:not([class]) { line-height: 1.65; }
.td-read-time { color: #636b78; font-size: .88rem; }
.td-companions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0 0 46px; }
.td-companions > div { padding: 18px; border-left: 4px solid var(--td-green); background: #fff; line-height: 1.55; }
.td-companions > div + div { border-left-color: var(--td-red); }
.td-section { margin-top: 66px; scroll-margin-top: 88px; }
.td-section > h2 { max-width: 800px; margin: 0 0 14px; color: var(--td-navy); font: 800 clamp(1.85rem, 4vw, 3.1rem)/1.08 'Playfair Display', Georgia, serif; }
.td-section > p { max-width: 850px; line-height: 1.72; }
.td-paper { padding: clamp(24px, 5vw, 52px); border: 1px solid var(--td-rule); border-radius: 18px; background: #fff; }
.td-calendar-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 24px 0 12px; padding: 14px; border: 1px solid var(--td-rule); border-radius: 12px; background: #fff; }
.td-calendar-controls button, .td-calendar-controls select { min-height: 44px; border: 2px solid var(--td-navy); border-radius: 8px; background: #fff; color: var(--td-navy); padding: 8px 14px; font: 700 .9rem/1.2 'Space Grotesk', sans-serif; cursor: pointer; }
.td-calendar-controls button:hover { background: var(--td-navy); color: #fff; }
.td-calendar-controls label { font-weight: 700; }
.td-calendar-key { display: flex; flex-wrap: wrap; gap: 18px; font-size: .83rem; }
.td-calendar-key span::before { display: inline-block; width: 11px; height: 11px; margin-right: 6px; border: 2px solid var(--td-navy); border-radius: 2px; content: ''; }
.td-key-published::before { background: var(--td-navy); }
.td-key-empty::before { background: #eee8dc; border-style: dashed !important; }
.td-months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.td-month { min-width: 0; padding: 18px; border: 1px solid var(--td-rule); border-radius: 14px; background: #fff; scroll-margin-top: 90px; }
.td-month h3 { margin: 0 0 12px; border-bottom: 2px solid var(--td-navy); padding-bottom: 8px; color: var(--td-navy); font: 800 1.45rem/1.15 'Playfair Display', Georgia, serif; }
.td-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.td-date { display: flex; min-width: 0; min-height: 54px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #e2dccf; border-radius: 7px; text-align: center; }
.td-date--published { background: var(--td-navy); color: #fff; text-decoration: none; }
.td-date--published:hover { background: var(--td-red); color: #fff; }
.td-date--empty { background: #f2eee6; color: #777; border-style: dashed; }
.td-day-number { font: 700 .94rem/1 'Space Grotesk', sans-serif; }
.td-day-state { margin-top: 4px; font-size: .57rem; line-height: 1; text-transform: uppercase; }
.td-four-grid, .td-trails { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.td-four-grid article, .td-trail { min-width: 0; padding: 20px; border-top: 4px solid var(--td-green); background: var(--td-paper); }
.td-four-grid article:nth-child(even), .td-trail:nth-child(even) { border-color: var(--td-red); }
.td-four-grid h3, .td-trail h3 { margin: 0 0 8px; color: var(--td-navy); font: 800 1.22rem/1.2 'Playfair Display', Georgia, serif; }
.td-four-grid p { line-height: 1.62; }
.td-trail ol { margin: 0; padding-left: 1.25rem; }
.td-trail li { margin: 9px 0; }
.td-trail li span { display: block; color: #555; font-size: .82rem; }
.td-page a:focus-visible, .td-page button:focus-visible, .td-page select:focus-visible { outline: 4px solid #f0c040; outline-offset: 3px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (max-width: 760px) {
  .td-shell { width: min(100% - 24px, 1120px); }
  .td-today { grid-template-columns: 1fr; }
  .td-today-image { min-height: 210px; }
  .td-companions, .td-four-grid, .td-trails, .td-months { grid-template-columns: 1fr; }
  .js .td-month { display: none; }
  .js .td-month.is-active { display: block; }
  .td-calendar-controls { align-items: stretch; }
  .td-calendar-controls button { flex: 1 1 120px; }
  .td-calendar-controls label { align-self: center; }
  .td-calendar-controls select { flex: 1 1 150px; min-width: 0; }
}

@media (max-width: 360px) {
  .td-month { padding: 12px 8px; }
  .td-month-grid { gap: 3px; }
  .td-date { min-height: 49px; }
  .td-day-state { font-size: .52rem; }
  .td-paper { padding: 21px 16px; }
}

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

