/* The Talent Pathway — /courses/talent-pathway
   Dark page (body.dark-body), everything scoped under .tp so the shared nav
   and footer are untouched. Brand rules from the production brief: #ED1C24
   (hover #c41920) on #0B0A0F, cards #13121A with #222130 borders, grey
   #AAAAAA, cream #FAF8F5. Bebas Neue for titles and hero only, DM Sans for
   everything else, kickers in DM Sans bold uppercase. Buttons 5px, cards
   square. The 6px red rail is the brand signature. No gradients, no shadows. */

.tp {
  --tp-bg: #0B0A0F;
  --tp-card: #13121A;
  --tp-border: #222130;
  --tp-grey: #AAAAAA;
  --tp-grey-2: #77737A;
  --tp-cream: #FAF8F5;
  --tp-red: #ED1C24;
  --tp-red-hover: #c41920;
  --tp-red-deep: #7a1116;
  background: var(--tp-bg);
  color: var(--tp-cream);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
.tp *, .tp *::before, .tp *::after { box-sizing: border-box; }
.tp-wrap { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.tp-narrow { max-width: 820px; }
.tp-rail { border-left: 6px solid var(--tp-red); padding-left: 28px; }

.tp-kicker { font-weight: 700; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--tp-red); margin: 0 0 14px; }
.tp h1, .tp h2 { font-family: var(--font-display); font-weight: 400; letter-spacing: .01em; line-height: .95; color: var(--tp-cream); margin: 0 0 20px; text-wrap: balance; }
.tp h1 { font-size: clamp(3rem, 8vw, 5.6rem); }
.tp h2 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
.tp h1 span, .tp h2 span { color: var(--tp-red); }
.tp h3 { font-family: var(--font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.3; color: var(--tp-cream); margin: 0 0 8px; }
.tp p { margin: 0 0 16px; color: var(--tp-grey); }
.tp strong { color: var(--tp-cream); font-weight: 700; }
.tp-lead { max-width: 64ch; }
.tp-select { user-select: all; -webkit-user-select: all; color: var(--tp-cream); font-weight: 500; }

/* Buttons: 5px radius, DM Sans bold. Own class names, so the site-wide
   .btn system in theme.css is neither redefined nor inherited. */
.tp-btn { display: inline-block; font-family: var(--font-body); font-weight: 700; font-size: 15px; letter-spacing: .02em; line-height: 1.2; text-align: center; text-decoration: none; background: var(--tp-red) !important; color: #fff !important; border: 1px solid var(--tp-red) !important; border-radius: 5px; padding: 15px 26px; cursor: pointer; transition: background .2s, border-color .2s; }
.tp-btn:hover { background: var(--tp-red-hover) !important; border-color: var(--tp-red-hover) !important; color: #fff !important; }
.tp-btn:focus-visible { outline: 2px solid var(--tp-cream); outline-offset: 2px; }
.tp-btn--ghost { background: transparent !important; border-color: var(--tp-border) !important; color: var(--tp-cream) !important; font-weight: 500; }
.tp-btn--ghost:hover { background: var(--tp-card) !important; border-color: var(--tp-grey-2) !important; }
.tp-btn.is-disabled { background: var(--tp-border) !important; border-color: var(--tp-border) !important; color: var(--tp-grey-2) !important; cursor: not-allowed; }
.tp-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }

/* 1 · Hero */
.tp-hero { padding: 150px 0 80px; }
.tp-sub { font-size: clamp(1.05rem, 2vw, 1.25rem); max-width: 60ch; }
.tp-meta-row { font-weight: 500; color: var(--tp-cream) !important; font-size: 15px; margin-top: 8px !important; }
.tp-meta-row i { font-style: normal; color: var(--tp-red); padding: 0 .35em; }
.tp-seats { font-size: 14px; color: var(--tp-grey) !important; margin: 18px 0 0 !important; }

/* 2 · Credibility strip */
.tp-strip { border-top: 1px solid var(--tp-border); border-bottom: 1px solid var(--tp-border); padding: 22px 0; }
.tp-strip .tp-wrap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 22px; }
.tp-strip-lab { font-size: 12px; color: var(--tp-grey-2); letter-spacing: .12em; text-transform: uppercase; }
.tp-strip ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.tp-strip li { font-weight: 700; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--tp-cream); }
.tp-strip li + li::before { content: '·'; color: var(--tp-red); margin: 0 22px 0 -12px; }

/* Sections */
.tp-sec { padding: 88px 0; }
.tp-sec--alt { background: #0F0E14; border-top: 1px solid var(--tp-border); border-bottom: 1px solid var(--tp-border); }
.tp-callout { border-left: 6px solid var(--tp-red); background: var(--tp-card); padding: 20px 22px; color: var(--tp-cream) !important; margin-top: 28px !important; }

/* 4 · Sessions: 2 × 4 on desktop, one column on mobile */
.tp-sessions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 36px; }
.tp-session { background: var(--tp-card); border: 1px solid var(--tp-border); padding: 22px 20px 20px; display: flex; flex-direction: column; }
.tp-session-num { font-family: var(--font-display); font-size: 3.4rem; line-height: .9; color: var(--tp-red-deep); margin-bottom: 14px; }
.tp-session-kicker { font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tp-red) !important; margin-bottom: 8px !important; }
.tp-session p { font-size: 14px; }
.tp-session-date { margin: auto 0 0 !important; padding-top: 10px; border-top: 1px solid var(--tp-border); font-size: 12.5px !important; color: var(--tp-grey-2) !important; }

/* 5 · Blueprint */
.tp-blueprint { list-style: none; margin: 28px 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--tp-border); border: 1px solid var(--tp-border); }
.tp-blueprint li { background: var(--tp-card); padding: 14px 16px; color: var(--tp-cream); font-size: 15px; display: flex; gap: 12px; }
.tp-blueprint li span { font-family: var(--font-display); color: var(--tp-red); font-size: 1.15rem; line-height: 1.3; }
.tp-templates { border-left: 6px solid var(--tp-red); padding: 12px 16px; background: var(--tp-card); font-size: 14px; }

/* 6 · Faculty */
.tp-faculty { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 32px 0 24px; }
.tp-fac { background: var(--tp-card); border: 1px solid var(--tp-border); padding: 20px; display: flex; gap: 16px; align-items: flex-start; }
.tp-fac img, .tp-fac-initials { width: 72px; height: 72px; flex: 0 0 72px; object-fit: cover; }
.tp-fac-initials { background: var(--tp-border); color: var(--tp-cream); font-family: var(--font-display); font-size: 1.6rem; display: flex; align-items: center; justify-content: center; }
.tp-fac-role { font-weight: 700; font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--tp-red) !important; margin-bottom: 6px !important; }
.tp-fac-session { font-size: 14px; margin: 0 !important; }

/* 7 · Fit */
.tp-fit { display: grid; grid-template-columns: 3fr 2fr; gap: 12px; margin-top: 32px; }
.tp-fit > div { background: var(--tp-card); border: 1px solid var(--tp-border); padding: 26px 24px; }
.tp-fit-yes { border-left: 6px solid var(--tp-red) !important; }
.tp-fit ul { margin: 0; padding: 0; list-style: none; }
.tp-fit li { color: var(--tp-cream); padding: 10px 0 10px 22px; border-bottom: 1px solid var(--tp-border); position: relative; }
.tp-fit li:last-child { border-bottom: 0; }
.tp-fit li::before { content: ''; position: absolute; left: 0; top: 19px; width: 10px; height: 2px; background: var(--tp-red); }
.tp-fit-no h3 { color: var(--tp-grey); }

/* 8 · Pricing: Standard leads on mobile, sits in the middle on desktop */
.tp-prices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 32px; align-items: stretch; }
.tp-price { background: var(--tp-card); border: 1px solid var(--tp-border); padding: 28px 24px; display: flex; flex-direction: column; }
.tp-price[data-tier="early_bird"] { order: 1; }
.tp-price[data-tier="regular"] { order: 2; }
.tp-price[data-tier="academy_pack"] { order: 3; }
.tp-price--featured { border-color: var(--tp-red); border-top: 6px solid var(--tp-red); }
.tp-price-name { font-weight: 700; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--tp-red) !important; margin-bottom: 6px !important; }
.tp-price-amount { font-family: var(--font-display); font-size: 3.6rem; line-height: 1; color: var(--tp-cream) !important; margin-bottom: 18px !important; }
.tp-price ul { list-style: none; margin: 0 0 20px; padding: 0; }
.tp-price li { color: var(--tp-grey); font-size: 14.5px; padding: 7px 0; border-bottom: 1px solid var(--tp-border); }
.tp-price li:last-child { border-bottom: 0; }
.tp-price-state { font-size: 13px !important; color: var(--tp-cream) !important; min-height: 0; }
.tp-price-state:empty { display: none; }
.tp-price .tp-btn { margin-top: auto; }
.tp-price.is-closed { opacity: .6; }
.tp-fine { font-size: 13px; color: var(--tp-grey-2) !important; margin-top: 20px !important; }

/* 9 · Guarantee */
.tp-guarantee { border-left: 6px solid var(--tp-red); background: var(--tp-card); padding: 32px 28px; }
.tp-guarantee p { margin: 0; color: var(--tp-cream); }

/* 10 · FAQ */
.tp-faq { margin-top: 28px; border-top: 1px solid var(--tp-border); }
.tp-faq details { border-bottom: 1px solid var(--tp-border); }
.tp-faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font-weight: 700; color: var(--tp-cream); position: relative; }
.tp-faq summary::-webkit-details-marker { display: none; }
.tp-faq summary::after { content: '+'; position: absolute; right: 4px; top: 14px; font-size: 1.4rem; color: var(--tp-red); }
.tp-faq details[open] summary::after { content: '–'; }
.tp-faq summary:focus-visible { outline: 2px solid var(--tp-red); outline-offset: 2px; }
.tp-faq details p { padding: 0 0 18px; }

/* 11 · Final */
.tp-final { padding: 96px 0; }

@media (max-width: 960px) {
  .tp-sessions { grid-template-columns: repeat(2, 1fr); }
  .tp-faculty { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .tp-wrap { padding: 0 16px; }
  .tp-rail { padding-left: 16px; border-left-width: 4px; }
  .tp-hero { padding: 120px 0 56px; }
  .tp-sec { padding: 60px 0; }
  .tp-final { padding: 64px 0; }
  .tp-sessions, .tp-faculty, .tp-fit, .tp-prices, .tp-blueprint { grid-template-columns: 1fr; }
  .tp-price[data-tier="regular"] { order: 1; }
  .tp-price[data-tier="early_bird"] { order: 2; }
  .tp-cta-row .tp-btn { width: 100%; }
  .tp-strip li + li::before { display: none; }
}
@media (prefers-reduced-motion: reduce) { .tp * { transition: none !important; } }
