/* Black and graphite with red accents. */
:root {
  color-scheme: dark;
  --ink: #eeeeec;
  --paper: #090a0b;
  --accent: #ed5148;
  --accent-solid: #c92b24;
  --accent-hover: #df322a;
  --muted: #a2a7ae;
  --line: #2d3034;
}

body { background: var(--paper); color: var(--ink); }
::selection { background: var(--accent-solid); color: #ffffff; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.header { border-bottom-color: #ffffff24; }
.header.scrolled, .menu-open .header { background: #08090af2; }
.header-cta { border-color: var(--accent-solid); }
.header-cta:hover { background: var(--accent-solid); border-color: var(--accent-solid); color: #ffffff; }
.mobile-menu { background: #090a0b; color: var(--ink); }
.hero { background: #050607; }
.hero-video { filter: grayscale(1) contrast(1.16) brightness(.82); }
.hero-shade {
  background: linear-gradient(90deg, #050607ed 0%, #0506079e 39%, #05060714 82%),
    linear-gradient(0deg, #050607eb, transparent 48%);
}
.hero h1 span { color: var(--accent); }
.hero-copy { color: #c1c5ca; }
.hero-side { color: #b2b7be; }
.status-dot, .small-dot { background: var(--accent); }
.primary {
  background: var(--accent-solid);
  color: #ffffff;
  box-shadow: none;
}
.primary:hover { background: var(--accent-hover); color: #ffffff; }
.dark { background: var(--accent-solid); color: #ffffff; }
.dark:hover { background: var(--accent-hover); }
.principles {
  background: #111315;
  color: #b9bec5;
  border-top: 1px solid #32353a;
  border-bottom: 1px solid #32353a;
}
.principles i { color: var(--accent); }
.large-copy, .about-text > p, .section-heading > p { color: #b2b7be; }
.about-tags span { border-color: #42464c; color: #b8bec6; }
.editorial-photo { background: #16181b; border: 1px solid #2d3034; }
.programs { background: #111315; border-block: 1px solid #272a2f; }
.program-image { background: #1a1d21; border: 1px solid #30343a; }
.image-tag { background: #101214e8; border: 1px solid #6e747e; color: #e5e7e9; }
.program-body > p, .steps p { color: #afb5bd; }
.card-action { border-color: #3c4148; color: #e4e7ea; }
.card-action:hover { color: var(--accent); }
.steps article { border-color: #34383e; }
.steps article > span { color: #a4abb5; }
.schedule { background: #111315; color: var(--ink); border-block: 1px solid #272a2f; }
.schedule .section-label span:last-child, .schedule-note { color: #a2a8b1; }
.schedule .section-heading > p { color: #b5bbc4; }
.day-tabs { border-color: #3d4249; }
.day-tabs button { color: #aab0b8; }
.day-tabs button[aria-selected=true] { background: #c92b2412; border-bottom-color: var(--accent); }
.schedule-row { border-color: #34383e; }
.session-time small, .session-name span { color: #a2a9b3; }
.session-level, .schedule-foot { color: #adb4be; }
.schedule-row .session-contact { color: #eeeeec; border-color: var(--accent-solid); }
.schedule-row .session-contact:hover { background: var(--accent-solid); border-color: var(--accent-solid); color: #ffffff; }
.faq-list details, .faq-list details:first-child { border-color: #34383e; }
summary span { color: var(--accent); }
details p { color: #b3b9c2; }
.closing {
  background: linear-gradient(135deg, #171a1e, #090a0b 80%);
  color: var(--ink);
  border-block: 1px solid #34383e;
}
.closing h2 span { color: var(--accent); }
.closing .section-label span:last-child { color: #a8afb9; }
.round-cta { border-color: var(--accent-solid); color: var(--accent); }
.round-cta:hover { background: var(--accent-solid); color: #ffffff; }
.closing-foot { border-color: #424851; }
.closing-foot p, .closing-foot > a { color: #b8bfc9; }
.closing-foot > a:hover { color: #ffffff; }
.footer p { color: #a0a7b0; }
.footer .footer-note { color: #949ca7; }
.back-top { border-color: #4c535e; }
.booking-dialog { background: #111315; color: var(--ink); border: 1px solid #454c56; }
.booking-dialog::backdrop { background: #000000d9; }
.dialog-intro, .form-note { color: #b3bac4; }
input, select { color: #eeeeec; border-bottom-color: #626b78; }
input::placeholder { color: #929ba8; opacity: 1; }
input:focus, select:focus { border-bottom-color: #e5e9ee; }
.success-icon { color: var(--accent); }

@media (max-width: 800px) {
  .hero-shade {
    background: linear-gradient(90deg, #050607e0, #05060745),
      linear-gradient(0deg, #050607eb, transparent 60%);
  }
}

.section-label > span:first-child { color: var(--accent); }
.card-action > span, .underlined-link > span { color: var(--accent); }
.back-top:hover { border-color: var(--accent); color: var(--accent); }
