/* Extensions for Coach Edition only.
   Load after Bootstrap 4.6.1 and the supplied, unmodified style.css.
   Grid, spacing, display, buttons and text utilities come from those files. */


/* Product cover and monochrome photographic treatment. */
.td-accent, .td-eyebrow, .td-number { color: #ff2850; }
.td-muted { color: #b8b8bc; }
.td-rule-bottom { border-bottom: 1px solid #39393d; }
.td-heading { font-size: clamp(2rem, 3.5vw, 3.6rem); line-height: 1.12; letter-spacing: -.035em; }
.td-eyebrow { font-size: .75rem; letter-spacing: .12em; }
.td-number { font: 700 2rem/1 juventus_fansbold, sans-serif; }
.td-brand { font-family: juventus_fansbold, sans-serif; }
.td-skip:focus { position: fixed; top: 12px; left: 12px; z-index: 1200; }
.td-hero-copy { min-width: 0; }
.td-hero-copy > .td-brand { font-size: clamp(2rem, 3vw, 2.7rem); text-align: left; }
.td-title { font: 700 clamp(5rem, 10.5vw, 11rem)/1.1 juventus_fansboldstretched, sans-serif; padding-top: 24px; margin-bottom: 30px; }
.td-title span, .td-plan-title { color: #ff2850; }
.td-hero-art { min-height: 710px; }
.td-photo { object-fit: cover; object-position: 65% center; filter: grayscale(1); left:0; }
.td-hero-art::after, .td-assessment-photo::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, #000d); pointer-events: none; }
.td-photo-caption { bottom: 30px; left: 28px; right: 24px; z-index: 1; color: #fff; text-align: left; }
.td-photo-caption span { font-size: .75rem; letter-spacing: .07em; }
.td-photo-caption strong { display: block; font-size: 1.35rem; }
.td-photo-index { right: 20px; top: 25px; writing-mode: vertical-rl; font-size: .75rem; letter-spacing: .1em; background: #0009; padding: 12px 6px; }
.td-watermark { background: #000000 url('../img/j-dark.svg') no-repeat 96% 90% / 280px auto; }
.td-flow-step { border-top: 1px solid var(--td-line); }
.td-assessment-photo { height: 680px; }

/* Personal Coach Plan: document hierarchy and its two accessible tabs. */
.td-plan-section { background: #0d0d0e; }
.td-plan-title { font: 700 clamp(4rem, 6.7vw, 7.5rem)/1.2 juventus_fansboldstretched, sans-serif; letter-spacing: 0; }
.td-plan-contents { counter-reset: coach; }
.td-plan-contents li { counter-increment: coach; }
.td-plan-contents li::before { content: counter(coach, decimal-leading-zero); position: absolute; left: 0; top: 19px; font: 700 1.5rem/1 juventus_fansbold, sans-serif; color: #ff2850; }
.td-paper { background: #222223; }
.td-paper-header img { width: 85px; filter: invert(1); }
.td-paper-header > span { font: 700 1.4rem/1.2 juventus_fansbold, sans-serif; text-align: right; }
.td-paper-header small { display: block; font: 700 .75rem/1.4 Montserrat, sans-serif; color: #ff2850; margin-top: 10px; }

/* Timed testing programme and expandable practical questions. */
.td-duration { gap: 24px; }
.td-duration strong { font: 700 8rem/1.2 juventus_fansboldstretched, sans-serif; color: #ff2850; }
.td-duration span { max-width: 120px; font-size: 1rem; }
.td-schedule-row { background: #222223; border-left: 2px solid transparent; }
.td-football { border-left-color: #ff2850; }
.td-time { width: 78px; font-variant-numeric: tabular-nums; }
.td-faq summary { list-style: none; cursor: pointer; font-size: 1.125rem; }
.td-faq summary::-webkit-details-marker { display: none; }
.td-faq summary::after { content: '+'; position: absolute; right: 0; top: 20px; font-size: 1.5rem; color: #ff2850; }
.td-faq details[open] summary::after { content: '−'; }
.td-participate { background: #131314 url('../img/j-dark.svg') no-repeat 95% 100% / 300px auto; }

/* Desktop hero fits the first screen: the row fills the 100vh container under the fixed header,
   type and spacing scale with viewport height. !important only where it overrides Bootstrap utilities. */
@media (min-width: 992px) {
  .fullscreen-bg:has(.td-hero-copy) { padding-top: calc(100vh - 100px); }
  .row:has(> .td-hero-copy) { flex: 1 1 auto; align-self: stretch; }
  .td-hero-copy { display: flex; flex-direction: column; justify-content: center; padding-top: clamp(1rem, 5vh, 3rem) !important; padding-bottom: clamp(1rem, 5vh, 3rem) !important; }
  .td-hero-copy .td-eyebrow { margin-bottom: 2.5vh !important; }
  .td-hero-copy > .td-brand { font-size: min(3vw, 5.5vh, 2.7rem); }
  .td-title { font-size: min(9vw, 16vh, 11rem); padding-top: 1vh; margin-bottom: 2.5vh; white-space: nowrap; }
  .td-hero-copy .td-heading { font-size: min(3.5vw, 6vh, 3.6rem); margin-bottom: 2.5vh !important; }
  .td-hero-copy .btn { align-self: center; margin-top: 3vh !important; }
  .td-hero-art { min-height: 0; }
}

@media (max-width: 991px) {
  .td-title { font-size: clamp(5rem, 20vw, 10rem); }
  .td-hero-art { min-height: 450px; }
  .td-assessment-photo { height: 430px; }
  .td-plan-title { font-size: clamp(4rem, 13vw, 6rem); }
  .fullscreen-bg { height: auto; padding-top: 0; }
  .fullscreen-bg .overlay { position: relative; height: auto; }
  .fullscreen-bg .h-100vh { height: auto; padding-top: 40px; padding-bottom: 40px; }
}
@media (max-width: 575px) {
  .testing-day { padding-top: 76px; }
  .testing-day main, .testing-day main section, .testing-day footer { scroll-margin-top: 90px; }
  .td-topbar { min-height: 76px; }
  .td-title { font-size: 18vw; }
  .td-hero-art { min-height: 380px; }
  .td-photo-caption { left: 20px; right: 20px; }
  .td-time { width: 64px; }
}
@media (prefers-reduced-motion: reduce) {
  .testing-day *, .testing-day *::before, .testing-day *::after { transition: none !important; }
}
