/*
 * TSCEC design: navy and red from the circuit's logo, Archivo Black headlines, Archivo text.
 * Customer layer (pages, theme and this file). Colors come from css/theme.css so Studio's design tokens still apply.
 * Header, hero, page headers, band and footer stay dark in both color modes; everything else follows light/dark.
 */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/archivo-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/archivo-black-latin.woff2') format('woff2');
}

:root {
  --tc-navy: #2b2b55;
  --tc-navy-deep: #17172f;
  --tc-red: #be2034;
  --tc-pink: #ff8493;
  --tc-on-dark: #ffffff;
  --tc-on-dark-muted: #d3d6ea;
  --tc-max: 1240px;
  --tc-narrow: 820px;
  --tc-gutter: clamp(16px, 4vw, 32px);
}

body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.tc-main { display: block; overflow-x: clip; }
.tc-skip { position: absolute; left: 12px; top: -80px; z-index: 100; padding: 12px 18px; background: var(--tc-navy); color: #fff; border-radius: 8px; font-weight: 700; transition: top 0.15s; }
.tc-skip:focus { top: 12px; }
.tc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:where(.tc-main, .tc-footer, [data-site-header]) :focus-visible { outline: 3px solid var(--ring); outline-offset: 3px; border-radius: 4px; }
:where(.tc-hero, .tc-pagehead, .tc-band, .tc-cta, .tc-footer, .tc-factsband, [data-site-header]) :focus-visible { outline-color: #fff; }

/* ---------- header and footer: navy in both color modes ---------- */
[data-site-header] {
  --background: var(--tc-navy);
  --foreground: #ffffff;
  --muted: rgb(255 255 255 / 0.12);
  --muted-foreground: var(--tc-on-dark-muted);
  --accent: rgb(255 255 255 / 0.14);
  --accent-foreground: #ffffff;
  --border: rgb(255 255 255 / 0.16);
  --input: rgb(255 255 255 / 0.28);
  --primary: var(--tc-red);
  --primary-foreground: #ffffff;
  background: var(--tc-navy);
  color: #fff;
  box-shadow: 0 2px 0 var(--tc-red);
}
[data-site-header] [data-header-brand] img { border-radius: 4px; height: 2.5rem; width: auto; }
@media (min-width: 1024px) { [data-site-header] [data-header-brand] img { height: 2.75rem; } }

.tc-footer { background: var(--tc-navy-deep); color: var(--tc-on-dark-muted); border-top: 4px solid var(--tc-red); }
.tc-footer a { color: inherit; text-decoration: none; }
.tc-footer a.tc-btn, .tc-footer a.tc-btn:hover { color: var(--primary-foreground); text-decoration: none; }
.tc-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.tc-footer__top { display: grid; gap: 40px; max-width: var(--tc-max); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--tc-gutter) 32px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .tc-footer__top { grid-template-columns: minmax(260px, 1fr) 2fr; } }
.tc-footer__brand { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.tc-footer__logo img { width: 190px; height: auto; border-radius: 6px; }
.tc-footer__tag { max-width: 22rem; font-size: 0.95rem; line-height: 1.6; }
.tc-footer__apps { display: flex; flex-wrap: wrap; gap: 10px; }
.tc-footer__apps img { height: 40px; width: auto; }
.tc-footer__cols { display: grid; gap: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .tc-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tc-footer__title { font-family: var(--font-display); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.tc-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.tc-footer__links a { display: inline-block; padding: 5px 0; font-size: 0.95rem; }
.tc-footer__bottom { max-width: var(--tc-max); margin: 0 auto; padding: 22px var(--tc-gutter) 36px; border-top: 1px solid rgb(255 255 255 / 0.14); display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; font-size: 0.875rem; }
.tc-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.tc-footer__social { display: flex; gap: 8px; }
.tc-footer__social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgb(255 255 255 / 0.22); }
.tc-footer__social a:hover { background: rgb(255 255 255 / 0.12); text-decoration: none; }

/* ---------- layout ---------- */
.tc-wrap { width: 100%; max-width: var(--tc-max); margin-inline: auto; padding-inline: var(--tc-gutter); }
.tc-wrap--narrow { max-width: var(--tc-narrow); }
.tc-section { padding-block: clamp(52px, 7vw, 100px); }
.tc-section--tight { padding-block: clamp(32px, 5vw, 56px); }
.tc-section--alt { background: var(--card); }
.tc-section--nf { min-height: 56vh; display: grid; align-items: center; }
.tc-center { display: flex; justify-content: center; margin-top: clamp(28px, 4vw, 44px); }
.tc-note { color: var(--muted-foreground); font-size: 0.95rem; }
.tc-count { color: var(--muted-foreground); font-size: 0.9rem; margin: 6px 0 18px; min-height: 1.4em; }

.tc-head { max-width: 46rem; margin-bottom: clamp(28px, 4vw, 48px); }
.tc-head--center { margin-inline: auto; text-align: center; }
.tc-eyebrow { font-family: var(--font-display); font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--primary); margin-bottom: 10px; display: block; }
.tc-eyebrow--light { color: var(--tc-pink); }
.tc-h1, .tc-title, .tc-h3, .tc-card__title, .tc-howto__title, .tc-article__title, .tc-newscard__title, .tc-event__title, .tc-officer__name { font-family: var(--font-display); font-weight: 400; letter-spacing: 0.005em; line-height: 1.12; text-wrap: balance; }
.tc-h1 { font-size: clamp(1.8rem, 0.9rem + 4.4vw, 4.1rem); text-transform: uppercase; color: #fff; line-height: 1.04; }
.tc-h1--hero { font-size: clamp(1.85rem, 0.6rem + 6.2vw, 5rem); }
.tc-title { font-size: clamp(1.6rem, 1rem + 2.4vw, 2.7rem); text-transform: uppercase; color: var(--foreground); }
.tc-title--light { color: #fff; }
.tc-h3 { font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem); text-transform: uppercase; margin-bottom: 16px; }
.tc-lead { font-size: clamp(1.02rem, 0.95rem + 0.4vw, 1.2rem); line-height: 1.65; color: var(--muted-foreground); margin-top: 14px; max-width: 42rem; }
.tc-lead--light { color: var(--tc-on-dark-muted); }
.tc-head--center .tc-lead { margin-inline: auto; }

.tc-split { display: grid; gap: clamp(28px, 5vw, 64px); align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
  .tc-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tc-split--flip > :first-child { order: 2; }
  .tc-split--intro { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
}
.tc-split__copy .tc-title { margin-bottom: 18px; }
.tc-photo { width: 100%; height: auto; border-radius: calc(var(--radius) * 1.4); box-shadow: var(--shadow-lg); }
.tc-photo--map { background: #fff; padding: 8px; }
.tc-photos { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; align-items: start; }
.tc-photos img { width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow-md); }
.tc-photos--stack { grid-template-columns: 1fr; }
.tc-photos--three img:first-child { grid-column: 1 / -1; }
.tc-results { display: grid; gap: clamp(28px, 4vw, 56px); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1000px) { .tc-results { grid-template-columns: minmax(0, 1fr) 340px; } }
.tc-results__media .tc-photo { max-height: 560px; object-fit: cover; }
@media (max-width: 999px) { .tc-results__media { display: none; } }

/* Public racing pages (shared stack): heading in the site's display type */
main[data-cms-zone] > section[data-cms-section='page-heading'] h1 { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; letter-spacing: 0.005em; line-height: 1.1; }
.tc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.tc-actions--spaced { margin-top: 34px; }

/* ---------- buttons ---------- */
.tc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0.7rem 1.35rem; border-radius: 999px; border: 2px solid transparent; font-weight: 700; font-size: 0.95rem; letter-spacing: 0.02em; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: background-color 0.15s, color 0.15s, border-color 0.15s, transform 0.15s; }
.tc-btn--lg { min-height: 54px; padding-inline: 1.8rem; font-size: 1rem; }
.tc-btn--sm { min-height: 40px; padding: 0.45rem 1rem; font-size: 0.875rem; }
.tc-btn--primary { background: var(--primary); color: var(--primary-foreground); }
.tc-btn--primary:hover { background: color-mix(in srgb, var(--primary) 86%, #000); }
.tc-btn--navy { background: var(--secondary); color: var(--secondary-foreground); border-color: color-mix(in srgb, #fff 16%, transparent); }
.tc-btn--navy:hover { background: color-mix(in srgb, var(--secondary) 80%, #fff); }
.tc-btn--light { background: #fff; color: var(--tc-navy); }
.tc-btn--light:hover { background: #e5e7ed; }
.tc-btn--ghost { color: inherit; border-color: currentColor; background: transparent; }
.tc-btn--ghost:hover { background: rgb(128 128 160 / 0.18); }
.tc-hero .tc-btn--ghost, .tc-band .tc-btn--ghost, .tc-cta .tc-btn--ghost, .tc-pagehead .tc-btn--ghost { color: #fff; }
.tc-btn--outline { background: transparent; color: var(--foreground); border-color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.tc-btn--outline:hover { background: var(--muted); border-color: var(--foreground); }
.tc-link { font-weight: 700; color: var(--primary); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.tc-link:hover { text-decoration-thickness: 3px; }
.tc-link::after { content: ' \2192'; }

/* ---------- hero and page headers ---------- */
.tc-hero, .tc-pagehead { position: relative; isolation: isolate; color: #fff; background: var(--tc-navy-deep); display: flex; align-items: flex-end; overflow: hidden; }
.tc-hero { min-height: clamp(560px, 88vh, 840px); }
.tc-pagehead { min-height: clamp(300px, 46vh, 460px); }
.tc-pagehead--compact { min-height: clamp(240px, 34vh, 340px); }
.tc-hero__bg, .tc-pagehead__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.tc-hero__shade, .tc-pagehead__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(23 23 47 / 0.35) 0%, rgb(23 23 47 / 0.55) 45%, rgb(23 23 47 / 0.94) 100%), linear-gradient(90deg, rgb(23 23 47 / 0.72) 0%, rgb(23 23 47 / 0) 70%); }
.tc-hero__copy { max-width: 820px; min-width: 0; padding-block: clamp(80px, 14vh, 150px) clamp(48px, 8vh, 96px); }
.tc-hero__emblem { width: clamp(120px, 16vw, 180px); height: auto; margin-bottom: 22px; border-radius: 6px; box-shadow: var(--shadow-lg); }
.tc-hero .tc-lead { font-size: clamp(1.1rem, 1rem + 0.8vw, 1.5rem); font-weight: 600; margin-top: 18px; }
.tc-pagehead__inner { padding-block: clamp(70px, 10vh, 110px) clamp(32px, 5vh, 56px); }
.tc-pagehead .tc-h1 { max-width: 20ch; }
.tc-pagehead .tc-lead { max-width: 44rem; }

.tc-factsband { background: var(--tc-navy); color: #fff; border-bottom: 4px solid var(--tc-red); }
.tc-facts { display: grid; gap: 0; grid-template-columns: 1fr; list-style: none; padding: 0; margin: 0; }
@media (min-width: 720px) { .tc-facts { grid-template-columns: repeat(3, 1fr); } }
.tc-fact { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 24px 8px; border-top: 1px solid rgb(255 255 255 / 0.14); }
.tc-fact:first-child { border-top: 0; }
@media (min-width: 720px) { .tc-fact { border-top: 0; border-left: 1px solid rgb(255 255 255 / 0.14); padding: 30px 28px; } .tc-fact:first-child { border-left: 0; } }
.tc-fact__num { font-family: var(--font-display); font-size: clamp(2.2rem, 4.4vw, 3.4rem); color: var(--tc-pink); line-height: 1; }
.tc-fact__lbl { font-size: 0.98rem; line-height: 1.4; color: var(--tc-on-dark-muted); }

/* ---------- cards and grids ---------- */
.tc-grid { display: grid; gap: clamp(16px, 2.4vw, 28px); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .tc-grid--2, .tc-grid--3, .tc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .tc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tc-card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 26px; background: var(--card); border: 1px solid var(--border); border-radius: calc(var(--radius) * 1.3); box-shadow: var(--shadow-sm); }
.tc-section--alt .tc-card { background: var(--background); }
.tc-card__title { font-size: 1.25rem; text-transform: uppercase; }
.tc-card__text { color: var(--muted-foreground); line-height: 1.6; }
.tc-card__foot { margin-top: auto; padding-top: 8px; }
.tc-card--division { border-top: 5px solid var(--primary); }
.tc-card--division .tc-card__foot { margin-top: 4px; }
.tc-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 4px 0 0; padding: 0; }
.tc-chip { display: inline-flex; align-items: center; min-height: 38px; padding: 0.35rem 0.95rem; border-radius: 999px; border: 1px solid var(--input); background: var(--background); color: var(--foreground); font-weight: 600; font-size: 0.875rem; line-height: 1.2; text-decoration: none; cursor: pointer; font-family: inherit; }
.tc-chip:hover { border-color: var(--primary); color: var(--primary); }
.tc-chip[aria-pressed='true'], .tc-chip[aria-current='true'] { background: var(--tc-navy); color: #fff; border-color: var(--tc-navy); }
.dark .tc-chip[aria-pressed='true'], .dark .tc-chip[aria-current='true'] { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.tc-chips--years { margin-bottom: 28px; }
.tc-chip--year { font-family: var(--font-display); font-weight: 400; letter-spacing: 0.04em; }

/* ---------- document tiles ---------- */
.tc-docs { display: grid; gap: 14px; margin-top: 8px; }
.tc-docs--grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.tc-docs--inline { margin-top: 24px; }
.tc-doc { position: relative; display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--background); transition: border-color 0.15s, box-shadow 0.15s; }
.tc-doc:hover { border-color: var(--primary); box-shadow: var(--shadow-md); }
.tc-card .tc-doc { margin: 0; }
.tc-doc__icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; background: color-mix(in srgb, var(--primary) 12%, var(--background)); color: var(--primary); }
.tc-doc__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tc-doc__link { font-weight: 700; color: var(--foreground); text-decoration: none; overflow-wrap: anywhere; }
.tc-doc__link::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.tc-doc:hover .tc-doc__link { color: var(--primary); }
.tc-doc__note { font-size: 0.875rem; color: var(--muted-foreground); }
.tc-doc__meta { font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground); }

/* ---------- rich text ---------- */
.tc-prose { color: var(--foreground); line-height: 1.75; font-size: 1.04rem; overflow-wrap: anywhere; }
.tc-prose > * + * { margin-top: 1.05em; }
.tc-prose h2, .tc-prose h3, .tc-prose h4 { font-family: var(--font-display); font-weight: 400; line-height: 1.2; margin-top: 1.6em; text-transform: uppercase; }
.tc-prose h2 { font-size: 1.6rem; } .tc-prose h3 { font-size: 1.3rem; } .tc-prose h4 { font-size: 1.1rem; }
.tc-prose a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.tc-prose a:hover { text-decoration-thickness: 2px; }
.tc-prose ul { list-style: disc; padding-left: 1.4em; }
.tc-prose ol { list-style: decimal; padding-left: 1.5em; }
.tc-prose li { margin-top: 0.5em; padding-left: 0.2em; }
.tc-prose li::marker { color: var(--primary); font-weight: 700; }
.tc-prose strong { font-weight: 700; }
.tc-prose blockquote { border-left: 4px solid var(--primary); padding-left: 1em; color: var(--muted-foreground); }
.tc-prose p > strong:only-child > a:only-child { display: inline-flex; align-items: center; min-height: 46px; padding: 0.65rem 1.3rem; border-radius: 999px; background: var(--primary); color: var(--primary-foreground); font-weight: 700; text-decoration: none; }
.tc-prose p > strong:only-child > a:only-child:hover { background: color-mix(in srgb, var(--primary) 86%, #000); }
.tc-prose p:has(> strong:only-child > a:only-child) { display: inline-block; margin: 0.4em 0.6em 0.4em 0; }
.tc-article__body > p:has(> strong:only-child > a:only-child) { margin-top: 0.5em; }

/* ---------- steps (membership and registration how-to) ---------- */
.tc-howto { display: grid; gap: clamp(24px, 4vw, 48px); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) { .tc-howto { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tc-howto__col { background: var(--card); border: 1px solid var(--border); border-radius: calc(var(--radius) * 1.4); padding: clamp(20px, 3vw, 36px); }
.tc-howto__title { font-size: 1.5rem; text-transform: uppercase; margin-bottom: 20px; }
.tc-howto__done { margin-top: 18px; padding: 14px 16px; border-left: 4px solid var(--primary); background: var(--background); font-weight: 600; }
.tc-steps ol { list-style: none; padding: 0; counter-reset: step; }
.tc-steps ol > li { counter-increment: step; position: relative; margin: 0 0 10px; padding: 14px 16px 14px 62px; background: var(--background); border: 1px solid var(--border); border-radius: 12px; line-height: 1.55; }
.tc-steps ol > li::before { content: counter(step); position: absolute; left: 14px; top: 12px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--primary); color: var(--primary-foreground); font-family: var(--font-display); font-size: 0.95rem; }
.tc-steps ol > li > ul { margin-top: 10px; list-style: disc; padding-left: 1.2em; }
.tc-steps ol > li > ul li { margin-top: 6px; }
.tc-steps ol > li::marker { content: ''; }

/* ---------- FAQ ---------- */
.tc-faq { display: grid; gap: 12px; }
.tc-faq__item { background: var(--background); border: 1px solid var(--border); border-radius: var(--radius); }
.tc-faq__item[open] { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.tc-faq__item > summary { list-style: none; cursor: pointer; display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 18px 22px; font-weight: 700; font-size: 1.05rem; line-height: 1.4; min-height: 56px; }
.tc-faq__item > summary::-webkit-details-marker { display: none; }
.tc-faq__item > summary::after { content: ''; flex: none; width: 12px; height: 12px; border-right: 3px solid var(--primary); border-bottom: 3px solid var(--primary); transform: rotate(45deg); transition: transform 0.2s; margin-right: 4px; }
.tc-faq__item[open] > summary::after { transform: rotate(-135deg); }
.tc-faq__a { padding: 0 22px 22px; }

/* ---------- band, call to action ---------- */
.tc-band { background: var(--tc-navy); color: #fff; padding-block: clamp(52px, 7vw, 100px); border-block: 4px solid var(--tc-red); }
.tc-band__grid { display: grid; gap: clamp(28px, 5vw, 64px); align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .tc-band__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.tc-band .tc-lead { color: var(--tc-on-dark-muted); }
.tc-cta { background: linear-gradient(135deg, var(--tc-navy) 0%, var(--tc-navy-deep) 100%); color: #fff; padding-block: clamp(48px, 6vw, 84px); position: relative; }
.tc-cta::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--tc-red); }
.tc-cta__inner { display: grid; gap: 28px; align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .tc-cta__inner { grid-template-columns: minmax(0, 1fr) auto; } .tc-cta .tc-actions { margin-top: 0; } }

/* ---------- clubs, officers, sponsors, quote ---------- */
.tc-card--club { padding: 0; overflow: hidden; gap: 0; }
.tc-club__media { aspect-ratio: 1; background: var(--muted); }
.tc-club__media img { width: 100%; height: 100%; object-fit: cover; }
.tc-club__body { display: flex; flex-direction: column; gap: 8px; padding: 20px; flex: 1; }
.tc-club__abbr { font-family: var(--font-display); font-size: 0.85rem; letter-spacing: 0.12em; color: var(--primary); min-height: 1.2em; }
.tc-club__body .tc-link { margin-top: auto; padding-top: 8px; }
.tc-officer { gap: 6px; }
.tc-officer__role { font-family: var(--font-display); font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--primary); }
.tc-officer__name { font-size: 1.4rem; }
.tc-officer__mail { margin-top: 10px; display: inline-block; font-weight: 700; color: var(--foreground); overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--primary); text-decoration-thickness: 2px; }
.tc-officer__mail:hover { color: var(--primary); }
.tc-sponsors { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .tc-sponsors { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .tc-sponsors { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.tc-sponsor__tile { position: relative; aspect-ratio: 3 / 2; background: #fff; border: 1px solid #d8dbe5; border-radius: var(--radius); }
.tc-sponsor__tile img { position: absolute; inset: 14px; width: calc(100% - 28px); height: calc(100% - 28px); object-fit: contain; }
.tc-quote { text-align: center; max-width: 52rem; margin-inline: auto; }
.tc-quote blockquote { font-family: var(--font-display); font-size: clamp(1.4rem, 1rem + 2.2vw, 2.4rem); line-height: 1.25; text-transform: uppercase; }
.tc-quote figcaption { margin-top: 16px; font-weight: 700; color: var(--primary); letter-spacing: 0.08em; text-transform: uppercase; }
.tc-signup { max-width: 44rem; }

/* ---------- race info and schedule archive ---------- */
.tc-filterbar { display: grid; gap: 14px; margin-bottom: 8px; }
.tc-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tc-filters[data-tc-filters]:empty { display: none; }
.tc-news, .tc-latest { display: grid; gap: clamp(16px, 2.4vw, 26px); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .tc-news, .tc-latest { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .tc-news, .tc-latest { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tc-newscard { position: relative; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); border-radius: calc(var(--radius) * 1.3); overflow: hidden; box-shadow: var(--shadow-sm); transition: box-shadow 0.15s, border-color 0.15s; }
.tc-section--alt .tc-newscard { background: var(--background); }
.tc-newscard:hover { box-shadow: var(--shadow-lg); border-color: var(--primary); }
.tc-newscard__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--muted); }
.tc-newscard__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.tc-newscard__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 22px; flex: 1; }
.tc-newscard__meta { font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; color: var(--primary); }
.tc-newscard__title { font-size: 1.2rem; text-transform: none; line-height: 1.25; }
.tc-newscard__title a { color: var(--foreground); text-decoration: none; }
.tc-newscard__title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.tc-newscard__text { color: var(--muted-foreground); font-size: 0.95rem; line-height: 1.55; }
.tc-newscard__tags { margin-top: auto; padding-top: 6px; font-size: 0.8rem; text-transform: capitalize; color: var(--muted-foreground); }
.tc-newscard[hidden], .tc-event[hidden] { display: none; }

.tc-events { border-top: 1px solid var(--border); }
.tc-event { display: grid; gap: 6px 20px; padding: 18px 8px; border-bottom: 1px solid var(--border); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 760px) { .tc-event { grid-template-columns: 172px minmax(0, 1fr) auto; padding-inline: 14px; } }
.tc-event:hover { background: var(--card); }
.tc-event__date { font-family: var(--font-display); font-size: 0.95rem; letter-spacing: 0.03em; color: var(--primary); }
.tc-event__title { font-size: 1.15rem; line-height: 1.25; text-transform: none; }
.tc-event__title a { color: var(--foreground); text-decoration: none; }
.tc-event__title a:hover { color: var(--primary); text-decoration: underline; }
.tc-event__loc { color: var(--muted-foreground); font-size: 0.95rem; margin-top: 4px; }
.tc-event__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: 0.85rem; color: var(--muted-foreground); }
.tc-event__cat { font-weight: 700; color: var(--foreground); }

.tc-article__head { padding-block: clamp(36px, 6vw, 72px) 20px; }
.tc-back { display: inline-block; margin-bottom: 18px; font-weight: 700; color: var(--primary); text-decoration: none; }
.tc-back::before { content: '\2190  '; }
.tc-back:hover { text-decoration: underline; }
.tc-article__title { font-size: clamp(1.8rem, 1.2rem + 2.6vw, 3rem); text-transform: none; margin-top: 4px; }
.tc-article__tags { margin-top: 12px; font-size: 0.85rem; text-transform: capitalize; color: var(--muted-foreground); }
.tc-article__gallery { padding-block: 32px clamp(48px, 7vw, 88px); }
.tc-facts-list { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 10px; }
.tc-facts-list li { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.tc-facts-list__k { font-weight: 800; font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--primary); min-width: 9.5em; }
.tc-gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.tc-gallery__item { display: block; aspect-ratio: 4 / 5; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; cursor: zoom-in; }
.tc-gallery__item img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.2s; }
.tc-gallery__item:hover img { transform: scale(1.03); }
.tc-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.tc-lightbox::backdrop { background: rgb(10 10 24 / 0.92); }
.tc-lightbox__inner { position: fixed; inset: 0; display: grid; place-items: center; padding: 56px 16px 16px; }
.tc-lightbox img { max-width: 100%; max-height: calc(100vh - 80px); width: auto; height: auto; object-fit: contain; border-radius: 8px; background: #fff; }
.tc-lightbox button { position: fixed; top: 12px; right: 12px; z-index: 2; min-width: 44px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 2px solid #fff; background: var(--tc-navy); color: #fff; font-weight: 700; cursor: pointer; }

/* ---------- live sections from the shared stack ---------- */
.tc-upcoming [data-imported-schedule] { margin: 0; }
.tc-upcoming:not(:has([data-imported-schedule]:not([hidden]))) { display: none; }
.tc-upcoming__intro { margin-bottom: 8px; }
.tc-rules-docs { margin: 12px 0 8px; display: grid; gap: 14px; }
.tc-rules-docs .tc-h3 { margin-bottom: 0; }
.tc-rules-head { background: var(--card); border-bottom: 1px solid var(--border); }
.tc-rules-head > .tc-rulesearch > section { border: 0; }
.tc-rulesearch h1 { font-family: var(--font-display); text-transform: uppercase; font-weight: 400; letter-spacing: 0.005em; }
.tc-rulesearch h2, .tc-rulesearch h3 { font-weight: 700; }

/* ---------- motion and print ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  [data-site-header], .tc-footer, .tc-skip { display: none !important; }
  .tc-hero, .tc-pagehead { min-height: 0; color: #000; background: none; }
  .tc-hero__bg, .tc-pagehead__bg, .tc-hero__shade, .tc-pagehead__shade { display: none; }
  .tc-h1 { color: #000; }
}
