.tts-partner-disclosure {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  padding: 10px 20px;
  background: #111827;
  color: #f9fafb;
  font: 13px/1.45 Inter, Arial, sans-serif;
  text-align: center;
}
.tts-partner-disclosure__label { font-weight: 800; color: #f4cc67; }
.tts-partner-disclosure a, .tts-partner-consent a { color: #f4cc67; text-decoration: underline; }
.tts-partner-disclosure button { border: 0; padding: 0; background: none; color: #f4cc67; font: inherit; text-decoration: underline; cursor: pointer; }
.tts-partner-disclosure a:focus-visible, .tts-partner-consent :focus-visible { outline: 3px solid #f4cc67; outline-offset: 3px; }
.tts-partner-consent {
  box-sizing: border-box;
  position: fixed;
  /* Below the display-preferences launcher (10001), which must stay usable
     before a cookie choice (AGENTS.md: panel stacking is functional). */
  z-index: 10000;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 20px;
  background: #111827;
  color: #f9fafb;
  border-top: 1px solid #596275;
  box-shadow: 0 -4px 20px #0004;
  font: 14px/1.5 Inter, Arial, sans-serif;
}
.tts-partner-consent[hidden], .tts-partner-consent [hidden] { display: none; }
.tts-partner-consent p { flex: 1 1 500px; max-width: 920px; margin: 0; color: inherit; font: inherit; }
.tts-partner-consent button {
  appearance: none;
  min-height: 44px;
  min-width: 80px;
  padding: 10px 16px;
  border: 2px solid #f4cc67;
  border-radius: 6px;
  background: transparent;
  color: #fff;
  font: 700 14px/1 Inter, Arial, sans-serif;
  cursor: pointer;
}
.tts-partner-consent button:hover { background: #f4cc67; color: #111827; }
.tts-cam-video-trigger, .tts-cam-video-frame { display: block; box-sizing: border-box; width: 100%; aspect-ratio: 1.6; border: 0; }
.tts-cam-video-trigger { position: relative; padding: 0; background: #000; cursor: pointer; }
.tts-cam-video-trigger img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tts-cam-video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 64px; height: 64px; border-radius: 12px; background: #16a34ae8; color: #fff; font: 28px/1 Arial, sans-serif; }
.tts-cam-video-trigger:hover .tts-cam-video-play { background: #15803d; }
@media (max-width: 600px) {
  .tts-partner-consent { padding: 12px 16px; }
  .tts-partner-consent p { flex-basis: 100%; }
  .tts-partner-consent button { flex: 1 1 120px; }
}

/* TTS color layer. It loads after Jonathan's CSS and changes paint only. */
html[data-theme="dark"] {
  color-scheme: dark;
  --partner-canvas: #05070c;
  --partner-band: #10131c;
  --partner-card: #171b28;
  --partner-input: #0b0e16;
  --partner-ink: #eef1f6;
  --partner-muted: #d7deea;
  --partner-subtle: #bbc6d6;
  --partner-line: #52627c;
  --partner-accent: #46b4f5;
  --partner-accent-2: #8d7cf4;
  --partner-accent-ink: #06101a;
  --partner-highlight: rgba(70, 180, 245, .28);
}
html[data-theme="light"] {
  color-scheme: light;
  --partner-canvas: #e8eef7;
  --partner-band: #f9fbff;
  --partner-card: #ffffff;
  --partner-input: #ffffff;
  --partner-ink: #091426;
  --partner-muted: #223149;
  --partner-subtle: #34465f;
  --partner-line: #7b8798;
  --partner-accent: #075c91;
  --partner-accent-2: #5139ae;
  --partner-accent-ink: #ffffff;
  --partner-highlight: rgba(7, 92, 145, .18);
}

body.offer-page {
  --bg: var(--partner-canvas);
  --bg-deep: var(--partner-band);
  --card: var(--partner-card);
  --surface: var(--partner-card);
  --surface-2: var(--partner-band);
  --text: var(--partner-ink);
  --text-2: var(--partner-muted);
  --text-3: var(--partner-subtle);
  --line: var(--partner-line);
  --line-gold: var(--partner-line);
  --gold: var(--partner-accent);
  --gold-2: var(--partner-accent-2);
  --grad: linear-gradient(135deg, var(--partner-accent), var(--partner-accent-2));
  --glow: var(--partner-highlight);
  --ink: var(--partner-ink);
  --ink-2: var(--partner-muted);
  --hair: var(--partner-line);
  --tint: var(--partner-band);
  --lift: 0 8px 24px rgba(2, 12, 30, .16);
  background: var(--partner-canvas);
  color: var(--partner-ink);
}
body.offer-page::before, body.offer-page::after { display: none; }
body.offer-page .btn--gold,
body.offer-page .q-submit,
body.offer-page .cam-sticky,
body.offer-page .mc-sticky { color: var(--partner-accent-ink); }
body.offer-page .offer-card,
body.offer-page .price-card { background: var(--partner-card); border-color: var(--partner-line); }
body.offer-page .price-card .amt,
body.offer-page .vcap,
body.offer-page .band__line a { color: var(--partner-accent); }
body.offer-page .price-card .fine { color: var(--partner-muted); }
body.offer-page .faq .a p { color: var(--partner-muted); }

/* The training page has its own white paint rules, so remap its surfaces. */
body.offer-page main,
body.offer-page .section,
body.offer-page .mc-end { background: var(--partner-canvas); color: var(--partner-ink); }
body.offer-page .hero,
body.offer-page .section--alt { background: var(--partner-band); }
body.offer-page .q-card,
body.offer-page .fit .checks li,
body.offer-page .mc-end__social a { background: var(--partner-card); color: var(--partner-ink); border-color: var(--partner-line); }
body.offer-page .q-input { background: var(--partner-input); color: var(--partner-ink); border-color: var(--partner-line); }
body.offer-page .q-input::placeholder { color: var(--partner-subtle); }
body.offer-page .q-input:focus-visible,
body.offer-page .btn:focus-visible,
body.offer-page main a:focus-visible,
body.offer-page main button:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }
body.offer-page .hl {
  background-image: linear-gradient(180deg, transparent 52%, var(--partner-highlight) 52%, var(--partner-highlight) 96%, transparent 96%);
}
body.offer-page .fit .checks li::before,
body.offer-page .frow__list li::before { background: var(--partner-accent); }
body.offer-page .frow__media { background: var(--partner-card); }
body.offer-page .mc-legal a,
body.offer-page .mc-end__logo { color: var(--partner-ink); }
body.offer-page .mc-end__tag,
body.offer-page .mc-end__disc,
body.offer-page .mc-end__copy { color: var(--partner-muted); }
html[data-theme="dark"] body.offer-page .q-err { color: #ffaaa5; }

/* The disclosure and consent controls belong to TTS in both modes. */
html .tts-partner-disclosure,
html .tts-partner-consent {
  background: var(--partner-band);
  color: var(--partner-ink);
  border-color: var(--partner-line);
}
html .tts-partner-disclosure__label,
html .tts-partner-disclosure a,
html .tts-partner-disclosure button,
html .tts-partner-consent a { color: var(--partner-accent); }
html .tts-partner-consent button { border-color: var(--partner-accent); color: var(--partner-ink); }
html .tts-partner-consent button:hover { background: var(--partner-accent); color: var(--partner-accent-ink); }
html .tts-partner-disclosure :focus-visible,
html .tts-partner-consent :focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }
html .tts-partner-theme { white-space: nowrap; }

html .tts-partner-disclosure {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 32px 24px;
  border-top: 1px solid var(--partner-line);
  font-size: 13px;
  line-height: 1.55;
}
html .tts-partner-disclosure > span:not(.tts-partner-disclosure__label) { max-width: 740px; }
html .tts-partner-disclosure__label {
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--partner-ink);
}
html .tts-partner-disclosure__label span { color: var(--partner-accent); }
html .tts-partner-disclosure a,
html .tts-partner-disclosure button { text-underline-offset: 3px; }

body.offer-page .tts-partner-form-note,
body.offer-page .tts-partner-cta-note {
  max-width: 620px;
  margin: 14px auto 0;
  color: var(--partner-muted);
  font: 13px/1.5 Inter, Arial, sans-serif;
}
body.offer-page .tts-partner-form-note { margin-top: 16px; text-align: left; }
body.offer-page .tts-partner-form-note a { color: var(--partner-accent); text-decoration: underline; text-underline-offset: 3px; }
body.offer-page .tts-partner-cta-note { max-width: 440px; text-align: center; }
body.offer-page .tts-partner-form-note a:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }

/* ---------------------------------------------------------------------------
   Total Talent Source site chrome on the partner pages (David, 2026-09-30):
   the TTS footer, the corner light/dark switch, and TTS type. Values mirror
   template-ui.css and base.html, which these pages do not load because they
   would restyle the partner's approved layout.
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.offer-page {
  --tts-bg-deep: #020304;
  --tts-cyan-bright: #8ad6ff;
  --tts-line: rgba(238, 241, 246, 0.28);
}
html[data-theme="light"] body.offer-page {
  --tts-bg-deep: #d7e1ee;
  --tts-cyan-bright: #053a5d;
  --tts-line: rgba(18, 45, 78, 0.38);
}
body.offer-page {
  --tts-font: 'Manrope', 'Inter', system-ui, sans-serif;
  --tts-font-heading: 'Space Grotesk', 'Archivo', system-ui, sans-serif;
  /* The partner sheet routes every family through these two variables. */
  --sans: var(--tts-font);
  --serif: var(--tts-font-heading);
  font-family: var(--tts-font);
  font-size: 15px;
  line-height: 1.6;
}

/* Type scale measured on totaltalentsource.com: Space Grotesk 700 headings at
   46/32/22 px on desktop and 32/24/18 px on phones; Manrope 15 px body copy with
   17 px lead paragraphs; Space Grotesk 700 14 px buttons. Form inputs keep 16 px
   so phones do not zoom into the email field. */
html body.offer-page h1,
html body.offer-page h2,
html body.offer-page h3 {
  font-family: var(--tts-font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
}
html body.offer-page h1,
html body.offer-page .hero h1 { font-size: clamp(32px, 4vw, 46px); line-height: 1.08; }
html body.offer-page h2 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.14; }
html body.offer-page h3,
html body.offer-page .frow__copy h3 { font-size: clamp(18px, 1.8vw, 22px); line-height: 1.25; }
html body.offer-page .lede,
html body.offer-page .hero .lede { font-size: 17px; line-height: 1.65; }
html body.offer-page .body,
html body.offer-page .checks li,
html body.offer-page .fit .checks li,
html body.offer-page .for-you .checks li,
html body.offer-page .frow__list li,
html body.offer-page .flist li,
html body.offer-page .callout p,
html body.offer-page .faq .a,
html body.offer-page .faq .a p,
html body.offer-page .fcard p,
html body.offer-page .step__b p,
html body.offer-page .tcard p,
html body.offer-page .authorbox__bio { font-size: 15px; line-height: 1.65; }
html body.offer-page .btn,
html body.offer-page .btn--lg,
html body.offer-page .hero .btn,
html body.offer-page .herov .btn,
html body.offer-page .offer-hero .btn,
html body.offer-page .cam-sticky,
html body.offer-page .mc-sticky {
  font-family: var(--tts-font-heading);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.01em;
}
html body.offer-page .tts-partner-disclosure,
html body.offer-page .tts-partner-consent,
html body.offer-page .tts-partner-consent button,
html body.offer-page .tts-partner-form-note,
html body.offer-page .tts-partner-cta-note { font-family: var(--tts-font); }
html body.offer-page .tts-partner-disclosure__label { font-family: var(--tts-font-heading); font-weight: 700; }

/* Corner light/dark switch, as in base.html. */
#theme-toggle {
  position: fixed;
  top: 14px;
  right: 14px;
  z-index: 9998;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 9999px;
  background: var(--partner-card);
  border: 1px solid var(--partner-line);
  color: var(--partner-ink);
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
#theme-toggle:hover { border-color: var(--partner-accent); color: var(--partner-accent); }
#theme-toggle:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }
#theme-toggle svg { width: 18px; height: 18px; }
#theme-toggle .icon-sun { display: none; }
[data-theme="dark"] #theme-toggle .icon-moon { display: none; }
[data-theme="dark"] #theme-toggle .icon-sun { display: block; }
@media (prefers-reduced-motion: no-preference) {
  #theme-toggle { transition: background 150ms ease, border-color 150ms ease, color 150ms ease; }
}
.tts-translation-notice {
  margin: 0;
  padding: 10px 20px;
  text-align: center;
  font: 13.6px/1.5 var(--tts-font);
  background: var(--partner-band);
  color: var(--partner-ink);
  border-bottom: 1px solid var(--partner-line);
}
.tts-translation-notice[hidden] { display: none; }

/* Doctor AI's required notices, above the TTS footer. */
body.offer-page .tts-partner-legal {
  padding: 0 24px 28px;
  background: var(--partner-band);
  color: var(--partner-muted);
  font: 12px/1.65 var(--tts-font);
  text-align: center;
}
body.offer-page .tts-partner-legal p { max-width: 800px; margin: 0 auto 8px; color: inherit; font: inherit; }
body.offer-page .tts-partner-legal a { color: var(--partner-accent); text-decoration: underline; text-underline-offset: 3px; }

/* The TTS footer (partials/footer.html), as styled in template-ui.css. The host
   keeps class "footer" for the CAM sticky-bar script; clear the partner's
   .footer paint so only the TTS footer shows. */
body.offer-page .footer.tts-partner-footer-host { padding: 0; margin: 0; background: none; border: 0; }
body.offer-page .tts-site-footer {
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 52px max(24px, calc((100vw - 1200px) / 2)) 24px;
  color: var(--partner-muted);
  background: var(--tts-bg-deep);
  border-top: 1px solid var(--tts-line);
  text-align: left;
  font: 15px/1.6 var(--tts-font);
}
body.offer-page .tts-footer-main { display: flex; justify-content: space-between; gap: 54px; }
body.offer-page .tts-footer-brand { max-width: 340px; }
body.offer-page .tts-footer-brand-row { display: flex; align-items: center; gap: 10px; color: var(--partner-ink); font: 700 17px/1.2 var(--tts-font-heading); }
body.offer-page .tts-site-footer .tts-brand-mark { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; overflow: hidden; }
body.offer-page .tts-site-footer .tts-brand-mark img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.72); }
body.offer-page .tts-footer-brand p { margin: 14px 0 0; color: var(--partner-muted); font-size: 13px; line-height: 1.7; }
body.offer-page .tts-footer-links { display: flex; gap: 64px; }
body.offer-page .tts-footer-links > div { display: flex; flex-direction: column; gap: 8px; min-width: 150px; }
body.offer-page .tts-footer-label { margin-bottom: 3px; color: var(--partner-subtle); font: 700 10px/1.2 var(--tts-font-heading); letter-spacing: 0.12em; text-transform: uppercase; }
body.offer-page .tts-footer-links a,
body.offer-page .tts-footer-links button,
body.offer-page .tts-footer-bottom a { width: fit-content; padding: 0; color: var(--partner-muted); background: none; border: 0; font: inherit; font-size: 12px; line-height: 1.6; text-decoration: none; cursor: pointer; }
body.offer-page .tts-footer-links a:hover,
body.offer-page .tts-footer-links button:hover,
body.offer-page .tts-footer-bottom a:hover { color: var(--tts-cyan-bright); }
body.offer-page .tts-site-footer a:focus-visible,
body.offer-page .tts-site-footer button:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 3px; }
body.offer-page .tts-footer-bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 34px; padding-top: 20px; color: var(--partner-subtle); border-top: 1px solid var(--tts-line); font-size: 12px; }
body.offer-page .px-footer-gpc { margin-top: 12px; font-size: 12px; color: var(--partner-subtle); }
body.offer-page .px-footer-gpc.hidden { display: none; }
body.offer-page .tts-preferred-source { display: flex; justify-content: flex-end; margin-top: 20px; }
@media (max-width: 760px) {
  body.offer-page .tts-footer-main { flex-direction: column; }
  body.offer-page .tts-footer-links { flex-wrap: wrap; gap: 36px; }
  body.offer-page .tts-footer-bottom { flex-direction: column; }
}

/* Phones: the partner's sticky call-to-action bar starts right of the TTS
   accessibility launcher (fixed 16px from the bottom-left, 52px wide), so neither
   covers the other. Position only; the bar's link and show/hide script are unchanged. */
@media (max-width: 899px) {
  html body.offer-page .mc-sticky,
  html body.offer-page .cam-sticky { left: 80px; }
}

/* Brand social icon links in the TTS footer, as in template-ui.css. */
body.offer-page .tts-footer-social { display: flex; flex-wrap: wrap; gap: 4px; margin: 14px 0 0 -12px; padding: 0; list-style: none; }
body.offer-page .tts-footer-social li { margin: 0; padding: 0; }
body.offer-page .tts-footer-social li::before { content: none; }
body.offer-page .tts-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 9999px; color: var(--partner-muted); }
body.offer-page .tts-footer-social a:hover { color: var(--tts-cyan-bright); }
body.offer-page .tts-footer-social a:focus-visible { outline: 3px solid var(--partner-accent); outline-offset: 2px; }
body.offer-page .tts-footer-social svg { width: 20px; height: 20px; fill: currentColor; }
