/* ==========================================================================
   The Good Designers — additions to the Jano theme
   Loaded after style.css and responsive.css. Jano's own files are unchanged,
   so theme updates can be applied safely.
   Colours reuse Jano's variables: --prime-eleven (#FFCE4C yellow), #000, #FBF4EE.
   ========================================================================== */

:root {
  --tgd-yellow: var(--prime-eleven, #FFCE4C);
  --tgd-cream: #FBF4EE;
  --tgd-ink: #000;
  --tgd-muted: rgba(0, 0, 0, 0.6);
  --tgd-line: rgba(0, 0, 0, 0.12);
}

/* ---------- Header: text wordmark (swap for logo image later) ---------- */
.tgd-wordmark {
  font-weight: 700;
  font-size: 19px;
  line-height: 1.05;
  letter-spacing: -0.5px;
  color: var(--tgd-ink);
  text-decoration: none;
}
.tgd-wordmark:hover { color: var(--tgd-ink); }
.theme-menu-nine .navbar .navbar-nav .nav-link { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1599px) {
  .theme-menu-nine .navbar .navbar-nav .nav-link { font-size: 16px; margin: 0 10px; }
}

/* ---------- Shared small pieces ---------- */
.tgd-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.tgd-badge {
  display: inline-block;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  padding: 8px 12px;
  border: 1.5px solid var(--tgd-ink);
  color: var(--tgd-ink);
  background: #fff;
}
.tgd-badge--dark { background: var(--tgd-ink); color: #fff; }

.tgd-list li {
  position: relative;
  padding: 0 0 14px 34px;
  font-size: 18px;
  line-height: 1.55;
}
.tgd-list--check li:before {
  content: "\F26E"; /* bootstrap-icons check-lg */
  font-family: bootstrap-icons !important;
  position: absolute; left: 0; top: 1px;
  width: 22px; height: 22px; line-height: 22px; text-align: center;
  background: var(--tgd-yellow); border: 1.5px solid var(--tgd-ink);
  font-size: 13px;
}
.tgd-list--dot li:before {
  content: ""; position: absolute; left: 6px; top: 11px;
  width: 9px; height: 9px; background: var(--tgd-ink);
}

.btn-eighteen-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 16px; color: var(--tgd-ink);
  border-bottom: 2px solid var(--tgd-ink); padding-bottom: 2px;
}
.btn-eighteen-link:hover { color: var(--tgd-ink); border-color: var(--tgd-yellow); }
.tgd-btn-block { display: block; text-align: center; line-height: 54px; background: var(--tgd-yellow); color: #000; }
.tgd-btn-block:hover { background: #000; color: #fff; }

/* ---------- Format strip (course listing) ---------- */
.tgd-format-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.tgd-format-strip span {
  font-size: 16px; font-weight: 500; padding: 10px 18px;
  border: 1.5px solid var(--tgd-ink); background: #fff;
}
.tgd-format-strip .tgd-format-strip__label { border: 0; background: none; padding-left: 0; color: var(--tgd-muted); }

/* ---------- Course card (listing) ---------- */
.tgd-course-card { background: #fff; border: 2px solid var(--tgd-ink); position: relative; }
.tgd-course-card .img-meta { border-bottom: 2px solid var(--tgd-ink); }
.tgd-course-info { padding: 28px 30px 32px; }
.tgd-course-info__title { font-size: 24px; line-height: 1.3; font-weight: 500; margin: 0 0 12px; }
.tgd-course-info__title a { color: var(--tgd-ink); }
.tgd-course-info__title a:hover { text-decoration: underline; text-decoration-color: var(--tgd-yellow); text-decoration-thickness: 3px; }
.tgd-course-info p { font-size: 17px; color: var(--tgd-muted); margin-bottom: 20px; }

.tgd-crosslink {
  display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
  background: var(--tgd-cream); border: 2px solid var(--tgd-ink); padding: 40px 50px;
}
.tgd-crosslink h3 { font-size: 28px; font-weight: 500; margin-bottom: 8px; }

/* ---------- Course detail ---------- */
.tgd-agenda { width: 100%; border-collapse: collapse; border-top: 2px solid var(--tgd-ink); }
.tgd-agenda th, .tgd-agenda td { padding: 18px 16px 18px 0; border-bottom: 1px solid var(--tgd-line); vertical-align: top; font-size: 17px; }
.tgd-agenda tbody th { width: 130px; font-weight: 500; white-space: nowrap; }
.tgd-agenda--modules thead th { font-size: 14px; font-weight: 500; color: var(--tgd-muted); padding-top: 14px; padding-bottom: 14px; }
.tgd-agenda--modules tbody th { width: 34%; white-space: normal; }
.tgd-agenda .tgd-mins { width: 80px; text-align: right; font-weight: 500; white-space: nowrap; padding-right: 0; }

.tgd-enquire-box {
  position: sticky; top: 110px;
  background: var(--tgd-yellow); border: 2px solid var(--tgd-ink);
  box-shadow: 8px 8px 0 var(--tgd-ink);
  padding: 34px 32px;
}
.tgd-enquire-box h4 { font-size: 24px; font-weight: 500; margin-bottom: 18px; }
.tgd-enquire-box ul { margin-bottom: 28px; }
.tgd-enquire-box li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid rgba(0,0,0,.2); font-size: 16px; }
.tgd-enquire-box li strong { font-weight: 500; text-align: right; }
.tgd-enquire-box .btn-twentyFour { background: #fff; }

.tgd-trainer { display: flex; gap: 22px; align-items: flex-start; }
.tgd-trainer__avatar {
  flex: 0 0 84px; width: 84px; height: 84px;
  display: flex; align-items: center; justify-content: center;
  background: var(--tgd-yellow); border: 2px solid var(--tgd-ink);
  font-weight: 700; font-size: 26px;
}
.tgd-trainer--card { border: 2px solid var(--tgd-ink); padding: 34px; background: #fff; }

/* ---------- Video (click-to-load YouTube) ---------- */
.tgd-video { position: relative; border: 2px solid var(--tgd-ink); background: #000; aspect-ratio: 16 / 9; overflow: hidden; }
.tgd-video__play { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.tgd-video__play img { height: 100%; object-fit: cover; }
.tgd-video__icon {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 76px; height: 76px; border-radius: 50%;
  background: var(--tgd-yellow); border: 2px solid var(--tgd-ink);
  display: flex; align-items: center; justify-content: center; font-size: 36px; color: #000;
  transition: transform .2s ease;
}
.tgd-video__play:hover .tgd-video__icon { transform: translate(-50%, -50%) scale(1.08); }
.tgd-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tgd-video__title { font-size: 22px; font-weight: 500; }

/* ---------- Lunch & Learns ---------- */
.tgd-facts { display: grid; grid-template-columns: repeat(4, 1fr); border: 2px solid var(--tgd-ink); background: #fff; }
.tgd-facts > div { padding: 24px 26px; border-right: 1px solid var(--tgd-line); }
.tgd-facts > div:last-child { border-right: 0; }
.tgd-facts strong { display: block; font-size: 20px; font-weight: 500; }
.tgd-facts span { font-size: 15px; color: var(--tgd-muted); }
.tgd-facts--center { grid-template-columns: repeat(3, 1fr); max-width: 900px; margin-left: auto; margin-right: auto; text-align: center; }

.tgd-lnl-card { position: relative; display: flex; flex-direction: column; }
.tgd-lnl-card .pr-feature { flex-grow: 1; }
.tgd-lnl-card .pack-name { font-size: 24px !important; line-height: 1.3; min-height: 2.6em; }
.tgd-lnl-card__no { font-size: 14px; font-weight: 500; color: var(--tgd-muted); margin-bottom: 6px; }
.tgd-lnl-card .top-banner { gap: 14px; }
.tgd-lnl-card .top-banner span { font-size: 18px !important; }
.tgd-lnl-card .top-banner em { font-size: 14px; font-style: normal; }
.tgd-lnl-card--soon { background: #fafafa; }
.tgd-ribbon {
  position: absolute; top: -14px; right: 24px;
  background: var(--tgd-yellow); border: 1.5px solid var(--tgd-ink);
  font-size: 13px; font-weight: 500; padding: 5px 12px;
}
.pricing-table-area-four .pr-table-wrapper.full-width .price { font-size: 44px; }

.tgd-sticky { position: sticky; top: 120px; }
.tgd-acc .accordion-button { font-size: 22px; line-height: 1.35; }
.tgd-acc-no { display: inline-block; min-width: 42px; font-weight: 700; color: var(--tgd-ink); opacity: .35; }
.tgd-hook {
  font-size: 22px; line-height: 1.45; font-weight: 500; font-style: italic;
  border-left: 5px solid var(--tgd-yellow); padding: 4px 0 4px 20px; margin: 10px 0 22px;
}
.tgd-takeaway { background: var(--tgd-cream); padding: 16px 20px; font-size: 17px; }

.tgd-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: none; border-top: 2px solid var(--tgd-ink); }
.tgd-steps li { padding: 30px 26px 10px 0; position: relative; }
.tgd-steps li + li { padding-left: 26px; border-left: 1px solid var(--tgd-line); }
.tgd-steps span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; background: var(--tgd-yellow); border: 2px solid var(--tgd-ink);
  font-weight: 700; font-size: 18px; margin-bottom: 18px;
}
.tgd-steps h4 { font-size: 20px; font-weight: 500; margin-bottom: 8px; }
.tgd-steps p { font-size: 16px; color: var(--tgd-muted); }

/* ---------- Qualifying form ---------- */
.tgd-form ::placeholder { color: rgba(0, 0, 0, 0.35); }
.tgd-form .input-bg-group { padding: 50px 60px 50px; }
.tgd-form__step {
  font-size: 15px; font-weight: 500; letter-spacing: .5px; color: var(--tgd-muted);
  border-bottom: 2px solid var(--tgd-ink); padding-bottom: 12px; margin: 10px 0 34px;
}
.tgd-form__step:not(:first-child) { margin-top: 30px; }
.tgd-fieldset { border: 0; padding: 0; margin: 0; }
.tgd-fieldset legend { font-size: 17px; font-weight: 500; color: #000; margin-bottom: 14px; float: none; }
.tgd-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.tgd-choices--stack { flex-direction: column; align-items: flex-start; }
.tgd-choice { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; margin: 0; }
.tgd-choices .tgd-choice {
  border: 1.5px solid var(--tgd-ink); padding: 10px 16px; background: #fff; font-size: 16px;
  transition: background .15s ease;
}
.tgd-choices .tgd-choice:hover { background: var(--tgd-cream); }
.tgd-choices .tgd-choice:has(input:checked) { background: var(--tgd-yellow); }
.tgd-choice input { width: 18px; height: 18px; margin-top: 2px; accent-color: #000; flex: 0 0 auto; }
.tgd-choice--agree { font-size: 16px; line-height: 1.5; margin-top: 10px; }
.tgd-form .help-block { font-size: 14px; color: #c0392b; margin-top: 6px; }
.tgd-form .has-error .tgd-choice { border-color: #c0392b; }

/* ---------- Webinars ---------- */
.hero-banner-twelve .hero-heading.tgd-hero-sm { font-size: 72px; }
.tgd-next-webinar { display: flex; background: #fff; border: 2px solid var(--tgd-ink); box-shadow: 10px 10px 0 var(--tgd-ink); }
.tgd-next-webinar__date {
  flex: 0 0 110px; background: var(--tgd-yellow); border-right: 2px solid var(--tgd-ink);
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 20px 10px;
}
.tgd-next-webinar__date span { font-size: 14px; font-weight: 500; }
.tgd-next-webinar__date strong { font-size: 30px; font-weight: 700; line-height: 1.1; }
.tgd-next-webinar__body { padding: 30px 30px 32px; }
.tgd-next-webinar__body h3 { font-size: 28px; font-weight: 500; line-height: 1.25; margin-bottom: 12px; }
.tgd-webinar-meta li { font-size: 15px; font-weight: 500; }
.tgd-webinar-meta li:before { display: none; }
.tgd-webinar-meta li + li { margin-top: 4px; color: var(--tgd-muted); }
.tgd-card-empty { background: var(--tgd-cream) !important; }
.tgd-band-title { font-size: 36px; }
/* ---------- Community programmes ---------- */
.tgd-prog-card { display: flex; flex-direction: column; }
.tgd-prog-card p { flex-grow: 1; }
.tgd-prog-card h4 { font-size: 22px; line-height: 1.35; }
.tgd-prog-price { display: flex; gap: 0; border-top: 2px solid var(--tgd-ink); margin-top: 20px; }
.tgd-prog-price > div { flex: 1; padding-top: 16px; }
.tgd-prog-price > div + div { padding-left: 18px; border-left: 1px solid var(--tgd-line); }
.tgd-prog-price strong { display: block; font-size: 28px; font-weight: 700; line-height: 1.1; }
.tgd-prog-price span { font-size: 14px; color: var(--tgd-muted); }
.tgd-prog-card--cta { background: var(--tgd-yellow) !important; border: 2px solid var(--tgd-ink); justify-content: center; }
.tgd-prog-card--cta .btn-twentyFour { background: #fff; align-self: flex-start; }
.fancy-short-banner-ten p { max-width: 460px; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
  .hero-banner-twelve .hero-heading.tgd-hero-sm { font-size: 56px; }
}
@media (max-width: 991px) {
  .tgd-facts { grid-template-columns: repeat(2, 1fr); }
  .tgd-facts > div:nth-child(2) { border-right: 0; }
  .tgd-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--tgd-line); }
  .tgd-facts--center { grid-template-columns: 1fr; }
  .tgd-facts--center > div { border-right: 0; border-bottom: 1px solid var(--tgd-line); }
  .tgd-steps { grid-template-columns: repeat(2, 1fr); }
  .tgd-steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .tgd-enquire-box, .tgd-sticky { position: static; }
  .tgd-form .input-bg-group { padding: 36px 26px; }
  .tgd-crosslink { padding: 30px; }
}
@media (max-width: 767px) {
  .hero-banner-twelve .hero-heading.tgd-hero-sm { font-size: 42px; }
  .tgd-steps { grid-template-columns: 1fr; }
  .tgd-steps li, .tgd-steps li + li { padding-left: 0; border-left: 0; border-bottom: 1px solid var(--tgd-line); padding-bottom: 20px; }
  .tgd-next-webinar { flex-direction: column; }
  .tgd-next-webinar__date { flex: none; flex-direction: row; gap: 10px; border-right: 0; border-bottom: 2px solid var(--tgd-ink); }
  .tgd-trainer { flex-direction: column; }
  .tgd-agenda tbody th { width: 100px; }
  .tgd-acc .accordion-button { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .tgd-video__icon, .tgd-choices .tgd-choice { transition: none; }
}

/* ---------- Fixes to Jano sections reused on new pages ---------- */
/* Banner ten was built to overlap a different footer; stop it covering footer-style-eleven */
.fancy-short-banner-ten { margin-bottom: 0; }
/* Keep course cards level in the isotope grid */
.tgd-course-info__title { min-height: 2.6em; }
.tgd-course-info p { min-height: 3.2em; }
@media (max-width: 767px) {
  .tgd-course-info__title, .tgd-course-info p { min-height: 0; }
}

/* ---------- Brand alignment: Jano's pink labels become black on these pages ---------- */
.title-style-five .sc-title-two,
.title-style-twelve .sc-title { color: rgba(0, 0, 0, 0.6); }
.title-style-five .sc-title-two:before,
.title-style-twelve .sc-title:before { background: var(--tgd-yellow); height: 3px; top: 13px; }

/* Course detail banner sits below the header, not under it */
.inner-banner-two.tgd-banner-offset { margin-top: 150px; }
@media (max-width: 991px) { .inner-banner-two.tgd-banner-offset { margin-top: 110px; } }

/* Form spacing */
.tgd-form .tgd-fieldset { margin-bottom: 40px; }
.tgd-enquiry-section { margin-top: 10px; } /* + 60px of section padding above = 70px gap under the cards */
@media (max-width: 1399px) { .tgd-enquiry-section { margin-top: 30px; } }
@media (max-width: 1199px) { .tgd-enquiry-section { margin-top: 80px; } }

/* Enquiry box small print readable on yellow */
.tgd-enquire-box p { color: rgba(0, 0, 0, 0.75); opacity: 1 !important; }
.tgd-enquire-box li span { color: rgba(0, 0, 0, 0.7); }

/* Lunch & Learn cards: keep price banners level */
.tgd-lnl-card .pack-details { min-height: 3em; }
.tgd-prog-card .tgd-badge { align-self: flex-start; width: auto; }
.fancy-feature-fiftySix .bg-wrapper { background: var(--tgd-cream); }
.contact-section-three .address-wrapper { background: var(--tgd-cream); }
/* Spam trap field: never visible */
.tgd-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* Lunch & Learn fact strip now has five items */
.pricing-section-four .tgd-facts { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 991px) { .pricing-section-four .tgd-facts { grid-template-columns: repeat(2, 1fr); } }

/* ==========================================================================
   Part 2 components: Home, TVET, Teacher Capacity Building, About, Stories
   ========================================================================== */
.hero-banner-twelve .hero-heading.tgd-hero-md { font-size: 76px; line-height: 1.08; }
.hero-banner-twelve .card-style.card-three p { font-size: 15px; }
@media (max-width: 1199px) { .hero-banner-twelve .hero-heading.tgd-hero-md { font-size: 58px; } }
@media (max-width: 767px)  { .hero-banner-twelve .hero-heading.tgd-hero-md { font-size: 44px; } }

/* Pathway staircase */
.tgd-stair { display: flex; flex-direction: column; gap: 6px; }
.tgd-stair li { border: 2px solid #000; background: #fff; padding: 16px 22px; }
.tgd-stair li:nth-child(2) { margin-left: 6%; }
.tgd-stair li:nth-child(3) { margin-left: 12%; }
.tgd-stair li:nth-child(4) { margin-left: 18%; background: var(--tgd-cream); }
.tgd-stair li:nth-child(5) { margin-left: 24%; background: var(--tgd-yellow); box-shadow: 6px 6px 0 #000; }
.tgd-stair strong { display: block; font-size: 19px; font-weight: 500; }
.tgd-stair span { font-size: 15px; color: var(--tgd-muted); }
@media (max-width: 767px) { .tgd-stair li { margin-left: 0 !important; } }

/* Client names */
.tgd-logos { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid #000; border-left: 1px solid var(--tgd-line); }
.tgd-logos li { padding: 26px 18px; text-align: center; font-size: 18px; font-weight: 500; border-right: 1px solid var(--tgd-line); border-bottom: 1px solid var(--tgd-line); }
@media (max-width: 767px) { .tgd-logos { grid-template-columns: repeat(2, 1fr); } .tgd-logos li { font-size: 15px; padding: 18px 10px; } }

/* Story cards */
.tgd-story-card { border: 2px solid #000; background: #fff; display: flex; flex-direction: column; }
.tgd-story-card__img { border-bottom: 2px solid #000; aspect-ratio: 7 / 5; overflow: hidden; }
.tgd-story-card__img img { height: 100%; object-fit: cover; }
.tgd-story-card__body { padding: 26px 26px 30px; display: flex; flex-direction: column; flex: 1; }
.tgd-story-card h3 { font-size: 22px; line-height: 1.35; font-weight: 500; }
.tgd-story-card p { font-size: 16px; color: var(--tgd-muted); flex: 1; }
.tgd-soon { font-size: 14px; font-weight: 500; color: var(--tgd-muted); }

/* TVET programme cards */
.tgd-programme-card { display: flex; flex-direction: column; border: 2px solid #000; background: var(--tgd-yellow); padding: 44px 44px 40px; color: #000; box-shadow: 8px 8px 0 #000; transition: transform .2s ease; }
.tgd-programme-card:hover { color: #000; transform: translate(-3px, -3px); }
.tgd-programme-card--dark { background: #000; color: #fff; box-shadow: 8px 8px 0 var(--tgd-yellow); }
.tgd-programme-card--dark:hover { color: #fff; }
.tgd-programme-card--dark .btn-eighteen-link { color: #fff; border-color: #fff; }
.tgd-programme-card__code { font-size: 15px; font-weight: 700; letter-spacing: 1px; opacity: .6; }
.tgd-programme-card h3 { font-size: 36px; font-weight: 500; margin: 10px 0 14px; }
.tgd-programme-card p { font-size: 18px; flex: 1; }
.tgd-programme-card__meta { display: flex; gap: 0; border-top: 1.5px solid currentColor; margin: 20px 0 30px; }
.tgd-programme-card__meta li { flex: 1; padding-top: 16px; }
.tgd-programme-card__meta strong { display: block; font-size: 22px; font-weight: 700; }
.tgd-programme-card__meta span { font-size: 14px; opacity: .7; }

.tgd-compare thead th { font-size: 17px; font-weight: 500; padding: 16px 16px 16px 0; border-bottom: 2px solid #000; }
.tgd-compare tbody th { width: 24%; white-space: normal; color: var(--tgd-muted); font-weight: 500; }
.tgd-compare td { width: 38%; }

.tgd-steps--five { grid-template-columns: repeat(5, 1fr); }
.tgd-steps--six { grid-template-columns: repeat(6, 1fr); }
.tgd-steps--six li, .tgd-steps--five li { padding-right: 18px; }
.tgd-steps--six li + li, .tgd-steps--five li + li { padding-left: 18px; }
@media (max-width: 1199px) { .tgd-steps--six { grid-template-columns: repeat(3, 1fr); } .tgd-steps--six li:nth-child(4) { padding-left: 0; border-left: 0; } }
@media (max-width: 991px) { .tgd-steps--five { grid-template-columns: repeat(2, 1fr); } .tgd-steps--six { grid-template-columns: repeat(2, 1fr); }
  .tgd-steps--five li:nth-child(odd), .tgd-steps--six li:nth-child(odd) { padding-left: 0; border-left: 0; } }
@media (max-width: 767px) { .tgd-steps--five, .tgd-steps--six { grid-template-columns: 1fr; } }

.tgd-outcome-chain { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; }
.tgd-outcome-chain span { border: 2px solid #000; padding: 12px 22px; font-size: 18px; font-weight: 500; background: #fff; }
.tgd-outcome-chain span:last-child { background: var(--tgd-yellow); }

/* Year + quarter blocks */
.tgd-year__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; border-bottom: 2px solid #000; padding-bottom: 14px; }
.tgd-year__head h3 { font-size: 34px; font-weight: 500; margin: 0; }
.tgd-year__head span { font-size: 17px; color: var(--tgd-muted); }
.tgd-quarter { border: 2px solid #000; background: #fff; padding: 26px 24px; display: flex; flex-direction: column; }
.tgd-quarter__q { font-size: 14px; font-weight: 500; color: var(--tgd-muted); margin-bottom: 8px; }
.tgd-quarter h4 { font-size: 21px; line-height: 1.3; font-weight: 500; margin-bottom: 14px; }
.tgd-quarter ul { flex: 1; margin-bottom: 18px; }
.tgd-quarter li { font-size: 15.5px; line-height: 1.5; padding: 6px 0 6px 16px; position: relative; border-bottom: 1px solid var(--tgd-line); }
.tgd-quarter li:before { content: ""; position: absolute; left: 0; top: 14px; width: 6px; height: 6px; background: #000; }
.tgd-quarter__proj { background: var(--tgd-yellow); border: 1.5px solid #000; padding: 12px 14px; }
.tgd-quarter__proj span { display: block; font-size: 12px; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; }
.tgd-quarter__proj strong { font-size: 16px; font-weight: 500; }

/* Help / principle cards */
.tgd-help-card { border: 2px solid #000; padding: 26px 24px; background: #fff; }
.tgd-help-card span { font-size: 14px; font-weight: 700; opacity: .4; }
.tgd-help-card p { font-size: 17px; margin: 10px 0 0; }
.tgd-help-card h4 { font-size: 21px; font-weight: 500; line-height: 1.3; margin-bottom: 4px; }
.tgd-help-card h4 + p { color: var(--tgd-muted); font-size: 16px; }

.tgd-list--two { columns: 2; column-gap: 30px; }
.tgd-list--two li { break-inside: avoid; }
@media (max-width: 575px) { .tgd-list--two { columns: 1; } }

.tgd-legal h3 { font-size: 22px; font-weight: 500; margin: 36px 0 12px; }
.tgd-legal p { font-size: 17px; line-height: 1.7; }
.tgd-programme-card--dark h3 { color: #fff; }
.tgd-story-card .tgd-badge { align-self: flex-start; }

/* ==========================================================================
   Part 3: typewriter hero, galleries, timeline, hover and spacing fixes
   ========================================================================== */

/* --- Typewriter headline (home hero) --- */
.tgd-type-wrap { display: block; min-height: 3.3em; }
.tgd-caret { display: inline-block; width: 3px; height: 0.95em; background: var(--tgd-yellow);
  margin-left: 6px; vertical-align: -0.08em; animation: tgd-blink 1s steps(1) infinite; }
@keyframes tgd-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .tgd-caret { display: none; } }
@media (max-width: 991px) { .tgd-type-wrap { min-height: 0; } }

/* --- HOVER FIX: Jano hides these borders on hover. Keep the outline; change the fill only. --- */
body .card-style-eighteen:hover { background: var(--tgd-yellow); border-color: #000; }
body .card-style-eighteen { border: 2px solid #000; transition: background .2s ease; }
body .card-style-eighteen.more-item:hover { background: #fff; border-color: #000; }
body .btn-twentyFour:hover { border-color: #000; }
body .btn-twentyFour:hover:after, body .btn-twentyFour:hover:before { background: #f3c755; border-color: #000; }
body .btn-twentySix { border: 2px solid #000; }
body .btn-twentySix:hover { border-color: #000; }
body .btn-twentySix:hover:before { border-color: #000; }
body .btn-twenty:hover { border-color: #000; }
.pricing-table-area-four .pr-table-wrapper .trial-button:hover { border-color: #000; }
.theme-main-menu .signup-btn-three { border: 2px solid #000; }
.theme-main-menu .signup-btn-three:hover { border-color: #000; }
.tgd-story-card:hover, .tgd-course-card:hover, .tgd-quarter:hover { border-color: #000; }

/* --- SPACING FIX: btn-twentyFour draws a frame 16px above and right of itself --- */
body .btn-twentyFour { margin-top: 26px; margin-right: 20px; }
.tgd-list + .btn-twentyFour, .tgd-list + a.btn-twentyFour,
.tgd-list + .btn-fifteen, .tgd-list + a.btn-one { margin-top: 30px; }
.hero-banner-twelve .btn-twentyFour { margin-top: 30px; }
.tgd-enquire-box .btn-twentyFour, .tgd-crosslink .btn-twentyFour { margin-top: 20px; }
.tgd-prog-card--cta .btn-twentyFour { margin-top: 24px; }


/* --- Photo gallery --- */
.tgd-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.tgd-gallery__item { margin: 0; border: 2px solid #000; background: #fff; }
.tgd-gallery__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-bottom: 2px solid #000; }
.tgd-gallery figcaption { font-size: 15px; padding: 12px 16px; color: var(--tgd-muted); }
@media (max-width: 991px) { .tgd-gallery { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 575px) { .tgd-gallery { grid-template-columns: 1fr; } }

/* --- Project timeline --- */
.tgd-timeline { position: relative; padding-left: 0; }
.tgd-timeline:before { content: ""; position: absolute; left: 13px; top: 10px; bottom: 10px; width: 2px; background: #000; }
.tgd-timeline__item { position: relative; padding: 0 0 46px 60px; }
.tgd-timeline__marker { position: absolute; left: 0; top: 6px; width: 28px; height: 28px; background: var(--tgd-yellow); border: 2px solid #000; }
.tgd-timeline__tag { font-size: 13px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; color: var(--tgd-muted); }
.tgd-timeline__body h4 { font-size: 26px; font-weight: 500; margin: 6px 0 6px; }
.tgd-timeline__meta { font-size: 16px; font-weight: 500; background: var(--tgd-cream); display: inline-block; padding: 5px 12px; margin-bottom: 14px; }
.tgd-timeline__body p { font-size: 18px; line-height: 1.6; max-width: 62ch; }
.tgd-timeline__photo { margin: 18px 0 0; border: 2px solid #000; max-width: 420px; }
.tgd-timeline__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
@media (max-width: 575px) { .tgd-timeline__item { padding-left: 44px; } .tgd-timeline:before { left: 9px; }
  .tgd-timeline__marker { width: 20px; height: 20px; } .tgd-timeline__body h4 { font-size: 22px; } }

/* --- Misc --- */
.tgd-hook--lg { font-size: 26px; line-height: 1.45; }
.tgd-narrow { max-width: 70ch; margin-left: auto; margin-right: auto; }
.tgd-narrow-left { max-width: 70ch; }
.tgd-cycle-note { display: inline-flex; align-items: center; gap: 10px; margin-top: 30px;
  border: 2px solid #000; background: var(--tgd-yellow); padding: 12px 20px; font-weight: 500; }
/* Hero stat cards: pull them inside the viewport (Jano's -10% clips at 1440px) */
.hero-banner-twelve .card-two { right: -2%; width: 170px; height: auto; padding: 14px 10px; }
.hero-banner-twelve .card-three { right: -2%; width: 200px; height: auto; padding: 14px 10px; }
.hero-banner-twelve .card-one { top: 52%; left: -6%; height: auto; padding: 14px 10px; } /* sits lower so the hero photos stay visible */
@media (max-width: 1199px) {
  .hero-banner-twelve .card-two, .hero-banner-twelve .card-three { right: 0; }
}

/* --- Public run schedule, funded programmes, OnePA prices --- */
.tgd-runs thead th { font-size: 14px; font-weight: 500; color: var(--tgd-muted); padding: 14px 16px 14px 0; border-bottom: 2px solid #000; }
.tgd-runs tbody th { width: 34%; white-space: normal; font-weight: 500; }
.tgd-runs td { font-size: 16px; }
.tgd-run-cta { display: inline-block; border: 1.5px solid #000; background: var(--tgd-yellow); padding: 8px 14px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.tgd-run-cta:hover { background: #000; color: #fff; }
.tgd-funded-card { display: block; border: 2px solid #000; background: var(--tgd-cream); padding: 34px 34px 36px; color: #000; }
.tgd-funded-card:hover { background: var(--tgd-yellow); color: #000; }
.tgd-funded-card h3 { font-size: 26px; font-weight: 500; line-height: 1.3; }
.tgd-funded-card p { font-size: 17px; color: var(--tgd-muted); }
.tgd-onepa-price { border-top: 1.5px solid #000; padding-top: 12px; margin-top: 4px; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.tgd-onepa-price span { font-size: 15px; font-weight: 500; }
.tgd-badge--private { background: #000; color: #fff; border-color: #000; }

/* --- Programme attribute tags (category / funding are separate attributes, never part of a title) --- */
.tgd-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tgd-badge--cat { background: #000; color: #fff; border-color: #000; }
.tgd-badge--funded { background: var(--tgd-yellow); border-color: #000; color: #000; }
.tgd-programme-card--dark .tgd-badge { background: #fff; border-color: #fff; }
.tgd-programme-card--dark .tgd-badge--cat { background: transparent; color: #fff; border-color: #fff; }
.tgd-programme-card--dark .tgd-badge--funded { background: var(--tgd-yellow); border-color: var(--tgd-yellow); color: #000; }
.tgd-attr-row { border-top: 1px solid rgba(255,255,255,.18); padding-top: 22px; margin-top: 4px; }
.tgd-crosslink--dark { background: #000; border-color: #000; color: #fff; }
.tgd-crosslink--dark h3, .tgd-crosslink--dark p { color: #fff; }
.tgd-quote-panel { border: 2px solid #000; background: var(--tgd-cream); padding: 44px 48px; }
.tgd-quote-panel h3 { font-size: 28px; font-weight: 500; margin-bottom: 24px; }
@media (max-width: 767px) { .tgd-quote-panel { padding: 28px 24px; } }

/* --- Seat status on listed runs --- */
.tgd-seats { display: inline-block; font-size: 13px; font-weight: 500; padding: 6px 10px; border: 1.5px solid #000; white-space: nowrap; }
.tgd-seats--open { background: #E4F4F1; }
.tgd-seats--filling { background: var(--tgd-yellow); }
.tgd-seats--last { background: #FFEBEB; }
.tgd-seats--full, .tgd-seats--closed { background: #EFEFEF; color: rgba(0,0,0,.6); }
.tgd-seats--soon { background: #fff; color: rgba(0,0,0,.6); }

/* --- Giving Back --- */
.tgd-vol-card { border: 2px solid #000; background: #fff; padding: 30px 30px 32px; }
.tgd-vol-card h4 { font-size: 22px; font-weight: 500; line-height: 1.3; margin-bottom: 6px; }
.tgd-vol-card__org { font-size: 16px; font-weight: 500; color: var(--tgd-muted); margin-bottom: 12px; }
.tgd-vol-card p { font-size: 16.5px; }
.tgd-giving-strip { display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; align-items: center;
  border: 2px solid #000; background: var(--tgd-yellow); padding: 46px 50px; color: #000; box-shadow: 8px 8px 0 #000; }
.tgd-giving-strip:hover { color: #000; background: #ffd873; }
.tgd-giving-strip > div { max-width: 58ch; }
.tgd-giving-strip h2 { font-size: 34px; margin: 6px 0 14px; }
.tgd-giving-strip p { font-size: 17px; }
.tgd-giving-strip__nums { display: flex; gap: 30px; }
.tgd-giving-strip__nums strong { display: block; font-size: 40px; font-weight: 700; line-height: 1; }
.tgd-giving-strip__nums span { font-size: 14px; }
@media (max-width: 767px) { .tgd-giving-strip { padding: 30px 26px; } .tgd-giving-strip h2 { font-size: 26px; }
  .tgd-giving-strip__nums { gap: 20px; } .tgd-giving-strip__nums strong { font-size: 30px; } }

/* ==========================================================================
   Navigation fixes (29 Sep) — breathing room between 992px and 1400px,
   and dropdowns wide enough to keep every label on one line.
   ========================================================================== */

/* Dropdowns: never wrap a menu label */

/* Top-level items: step the spacing down as the window narrows,
   instead of letting the labels run into each other. */
@media (min-width: 1400px) {
  .theme-menu-nine .navbar .navbar-nav .nav-link { margin: 0 20px; }
}
@media (min-width: 1200px) and (max-width: 1399px) {
  .theme-menu-nine .navbar .navbar-nav .nav-link { font-size: 16px; margin: 0 16px; }
  .theme-menu-nine .signup-btn-three { padding: 0 22px; font-size: 16px; }
  .theme-menu-nine .right-widget { margin-left: 18px !important; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .theme-main-menu { padding-right: 16px; padding-left: 16px; }
  .theme-menu-nine .navbar .navbar-nav .nav-link { font-size: 15px; margin: 0 11px; }
  .theme-menu-nine .signup-btn-three { padding: 0 16px; font-size: 15px; line-height: 42px; }
  .theme-menu-nine .right-widget { margin-left: 10px !important; }
  .tgd-wordmark { font-size: 17px; }
}

/* The dropdown caret needs its own room, or it crowds the next label */
@media (min-width: 992px) {
  .theme-menu-nine .navbar .navbar-nav .nav-link.dropdown-toggle { padding-right: 14px; }
}

/* ==========================================================================
   NAV DROPDOWNS — single source of truth. Nothing else in this file sets
   width, white-space or text-transform on .dropdown-menu.
   Jano (navbar.css) sets left:0 AND right:0 on the desktop dropdown, which
   pins its width to min-width, so any longer label wraps. width:max-content
   lets the menu size itself to its longest label.
   ========================================================================== */
@media (min-width: 992px) {
  .theme-main-menu .navbar .navbar-nav .dropdown-menu {
    left: 0;
    right: auto;
    width: max-content;
    min-width: 300px;
    padding: 10px 8px;
  }
}
.theme-main-menu .navbar .dropdown-menu .dropdown-item,
.theme-main-menu .navbar .dropdown-menu .dropdown-item span {
  white-space: nowrap;
  text-transform: none;
}
/* Group label inside a dropdown ("Education systems") */
.theme-main-menu .navbar .navbar-nav .dropdown-menu li.tgd-dd-label {
  margin: 8px 0 0;
  padding: 18px 15px 8px 20px;
  border-top: 1px solid var(--tgd-line, rgba(0, 0, 0, 0.12));
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.45);
  white-space: nowrap;
  pointer-events: none;
}
@media (max-width: 991px) {
  .theme-main-menu .navbar .navbar-nav .dropdown-menu li.tgd-dd-label {
    margin-top: 4px;
    padding: 14px 10px 6px 15px;
  }
}
/* The last two menus sit near the right edge: open them leftwards so a
   max-content menu can never push the page sideways on a narrow laptop. */
@media (min-width: 992px) {
  .theme-main-menu .navbar .navbar-nav .nav-item.dropdown:nth-last-child(-n+2) .dropdown-menu {
    left: auto;
    right: 0;
  }
}

/* ==========================================================================
   2 Oct — hover colour, hero cards, gallery size, run button, dropdown label
   ========================================================================== */

/* Bootstrap's reboot was colouring plain links blue (#0a58ca) on hover.
   Reset that, then set our own hover colour where a link is really text. */
a:hover, a:focus { color: inherit; }
.main-page-wrapper p a:hover,
.tgd-legal a:hover,
.accordion-body a:hover { color: var(--prime-ten); }
.card-style-eighteen:hover h4,
.card-style-eighteen:hover p { color: #000; }

/* Hero stat cards: centre everything */
.hero-banner-twelve .card-style { text-align: center; }
.hero-banner-twelve .card-style h4,
.hero-banner-twelve .card-style h5,
.hero-banner-twelve .card-style p { text-align: center; width: 100%; }

/* Photo gallery: three per row, smaller frames */
.tgd-gallery { grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1040px; margin-inline: auto; }
.tgd-gallery__item img { aspect-ratio: 3 / 2; }
.tgd-gallery figcaption { font-size: 14px; padding: 10px 14px; }
@media (max-width: 991px) { .tgd-gallery { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (max-width: 575px) { .tgd-gallery { grid-template-columns: 1fr; } }

/* Register interest: a real button in the runs table */
.tgd-run-btn {
  display: inline-block; white-space: nowrap;
  font-size: 15px; font-weight: 500; line-height: 1;
  padding: 12px 20px; color: #000;
  background: var(--tgd-yellow); border: 2px solid #000;
  transition: background .15s ease, color .15s ease;
}
.tgd-run-btn:hover { background: #000; color: #fff; }

/* Dropdown group label: aligned with the items, uppercase, orange, divider above */
.theme-main-menu .navbar .navbar-nav .dropdown-menu li.tgd-dd-label {
  padding: 16px 15px 8px;
  margin: 10px 0 2px;
  border-top: 1px solid var(--tgd-line, rgba(0, 0, 0, 0.12));
  color: #E8722B;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
@media (max-width: 991px) {
  .theme-main-menu .navbar .navbar-nav .dropdown-menu li.tgd-dd-label { padding: 14px 10px 6px; }
}

/* ==========================================================================
   2 Oct, round 2 — logo, tile icons, runs table, gallery, OnePA buttons
   ========================================================================== */

/* Logo */
.tgd-logo img { display: block; height: auto; max-width: 100%; }
.theme-main-menu .logo .tgd-logo img { width: 170px; }
@media (max-width: 1199px) { .theme-main-menu .logo .tgd-logo img { width: 140px; } }
.footer-intro .tgd-logo--footer img { width: 180px; margin-bottom: 4px; }

/* Tile icons are inline SVG now, so the yellow can turn white on hover */
.card-style-eighteen .tgd-tile-icon { max-height: 48px; width: auto; }
.card-style-eighteen:hover .tgd-tile-icon [fill="#FFCE4C"],
.card-style-eighteen:hover .tgd-tile-icon [fill="#ffce4c"] { fill: #fff; }
.card-style-eighteen:hover .tgd-tile-icon [stroke="#FFCE4C"],
.card-style-eighteen:hover .tgd-tile-icon [stroke="#ffce4c"] { stroke: #fff; }

/* Best-selling band: course name at a readable size, not hero size */
.tgd-band-course { font-size: 30px !important; line-height: 1.25; }
@media (max-width: 767px) { .tgd-band-course { font-size: 24px !important; } }

/* Section heading one size down */
.tgd-heading-sm { font-size: 32px !important; }
@media (max-width: 767px) { .tgd-heading-sm { font-size: 24px !important; } }

/* Runs table: narrower course column, wider date column, matching control heights */
.tgd-runs tbody th { width: 26%; }
.tgd-runs td:nth-child(2) { width: 17%; }
.tgd-runs td:nth-child(3) { width: 17%; }
.tgd-seats, .tgd-run-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 40px; padding: 0 16px; font-size: 14px; line-height: 1; white-space: nowrap;
}
.tgd-run-btn { font-size: 15px; padding: 0 20px; }

/* Recent workshops: full container width, same as the cards above */
.tgd-gallery { max-width: none; }

/* OnePA registration button on community cards */
.tgd-onepa-btn {
  display: block; text-align: center; margin-top: 18px;
  padding: 12px 18px; font-size: 15px; font-weight: 500;
  border: 2px solid #000; background: #fff; color: #000;
  transition: background .15s ease, color .15s ease;
}
.tgd-onepa-btn:hover { background: var(--tgd-yellow); color: #000; }

/* Read more on story cards */
.tgd-readmore {
  display: inline-block; align-self: flex-start; margin-top: 4px;
  padding: 10px 18px; font-size: 15px; font-weight: 500;
  border: 2px solid #000; background: #fff; color: #000; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.tgd-story-card:hover .tgd-readmore,
.tgd-readmore:hover { background: var(--tgd-yellow); }
/* Community cards: keep the fee row and OnePA button level across the row */
.tgd-quarter > p { flex: 1 1 auto; }
.tgd-quarter .tgd-onepa-price { margin-top: auto; }

/* ==========================================================================
   2 Oct, round 3 — photos in cards, full-width galleries
   ========================================================================== */

/* Photo at the top of a programme card (community programmes) */
.tgd-card-photo { margin: -26px -24px 20px; border-bottom: 2px solid #000; overflow: hidden; }
.tgd-card-photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }

/* Horizontal photo on a volunteering card */
.tgd-vol-card { padding-top: 0; overflow: hidden; }
.tgd-vol-card__photo { margin: 0 -30px 24px; border-bottom: 2px solid #000; }
.tgd-vol-card__photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

/* Galleries: full container width, larger frames */
.tgd-gallery { max-width: none; gap: 30px; }
.tgd-gallery__item img { aspect-ratio: 16 / 10; }
@media (max-width: 991px) { .tgd-gallery { gap: 18px; } }

/* ==========================================================================
   2 Oct v4 — best-selling slider, trainer cards, journey timeline
   ========================================================================== */
.tgd-bs-slider { position: relative; }
.tgd-bs-slider .slick-list { overflow: hidden; }
.tgd-bs-photo { border: 2px solid var(--tgd-yellow); max-width: none; }
.tgd-bs-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.tgd-bs-list li { color: #fff; opacity: .8; font-size: 16px; padding: 4px 0 4px 22px; position: relative; }
.tgd-bs-list li:before { content: ""; position: absolute; left: 0; top: 14px; width: 8px; height: 8px; background: var(--tgd-yellow); }
.tgd-bs-slider .btn-twentyFive { margin-top: 26px; }
.tgd-bs-arrow {
  position: absolute; bottom: -6px; right: 0; z-index: 3;
  width: 48px; height: 48px; border: 2px solid var(--tgd-yellow); background: transparent;
  color: var(--tgd-yellow); font-size: 20px; line-height: 1; cursor: pointer; transition: all .15s ease;
}
.tgd-bs-arrow--prev { right: 58px; }
.tgd-bs-arrow:hover { background: var(--tgd-yellow); color: #000; }
.tgd-bs-slider .slick-dots { display: flex; gap: 10px; list-style: none; padding: 0; margin: 34px 0 0; }
.tgd-bs-slider .slick-dots li button { width: 34px; height: 4px; padding: 0; border: 0; background: rgba(255,255,255,.3); font-size: 0; cursor: pointer; }
.tgd-bs-slider .slick-dots li.slick-active button { background: var(--tgd-yellow); }
@media (max-width: 991px) {
  .tgd-bs-photo { max-width: none; margin-bottom: 30px; }
  .tgd-bs-arrow { position: static; margin: 20px 10px 0 0; }
}

/* Trainer / team cards with photo and LinkedIn */
.tgd-person { border: 2px solid #000; background: #fff; display: flex; flex-direction: column; }
.tgd-person__photo { border-bottom: 2px solid #000; }
.tgd-person__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.tgd-person__body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.tgd-person__body h4 { font-size: 22px; font-weight: 500; margin-bottom: 4px; }
.tgd-person__role { font-size: 15px; color: var(--tgd-muted); margin-bottom: 14px; }
.tgd-person__body p { font-size: 16px; flex: 1; }
.tgd-person__li { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  font-size: 15px; font-weight: 500; border-bottom: 2px solid var(--tgd-yellow); padding-bottom: 2px; }
.tgd-person__li:hover { border-color: #000; }

/* Journey timeline (About) */
/* The .tgd-journey timeline list was replaced by the story component (§27). */

/* ==========================================================================
   2 Oct v6 — wide trainer card, social links, Lunch & Learn series box
   ========================================================================== */
.tgd-person--wide { flex-direction: row; }
.tgd-person--wide .tgd-person__photo { flex: 0 0 200px; border-bottom: 0; border-right: 2px solid #000; }
.tgd-person--wide .tgd-person__photo img { height: 100%; }
.tgd-person__links { display: flex; flex-wrap: wrap; gap: 8px 20px; }
@media (max-width: 575px) {
  .tgd-person--wide { flex-direction: column; }
  .tgd-person--wide .tgd-person__photo { flex: none; border-right: 0; border-bottom: 2px solid #000; }
}
.tgd-series-box .tgd-includes { border-left: 2px solid #000; padding-left: 28px; }
.tgd-series-box .tgd-includes h5 { font-size: 18px; font-weight: 500; margin-bottom: 16px; }
.tgd-series-box .tgd-includes .tgd-list li { font-size: 16px; padding-bottom: 10px; }
@media (max-width: 991px) { .tgd-series-box .tgd-includes { border-left: 0; border-top: 2px solid #000; padding: 24px 0 0; } }

/* ---------- Responsive fixes (audit 05-10-2026) ---------- */
/* Notice bar: sit in the header flow on phones so the wrapped text no longer runs under the logo */
@media (max-width: 575px) {
  .theme-menu-nine.theme-main-menu { padding-top: 0; }
  .theme-menu-nine .notice-banner { position: relative; font-size: 13px; line-height: 1.4; padding: 6px 12px; margin: 0 -12px 10px; }
  .theme-menu-nine .notice-banner a { line-height: 1.4; }
  .theme-menu-nine.sticky-menu.fixed .notice-banner { display: none; }
  .main-page-wrapper { padding-top: 24px; } /* header is taller with the bar in flow; keep hero text clear of the logo */
}
/* Fact boxes: keep long words inside the border on small phones */
@media (max-width: 400px) {
  .tgd-facts > div { padding: 18px 14px; }
  .tgd-facts strong { font-size: 18px; overflow-wrap: anywhere; }
}
/* Homepage hero badge: undo the desktop -6% offset so it stays on screen */
@media (max-width: 767px) { .hero-banner-twelve .card-one { left: 0; } }
/* Decorative squiggle that runs off the right edge on phones/tablets */
@media (max-width: 991px) { .fancy-feature-fortyOne .wrapper .shape-two { display: none !important; } } /* !important: lazy-load fadeIn sets inline display */
/* Best Selling slider dots: same 4px bar, 24px tall tap area */
.tgd-bs-slider .slick-dots li button { height: 24px; padding: 10px 0; margin-top: -10px; margin-bottom: -10px; background-clip: content-box; }
.tgd-bs-slider .slick-dots li.slick-active button { background-clip: content-box; }
/* Small text links: invisible 44px-tall tap area, no change to how they look */
@media (max-width: 767px) {
  .notice-banner a, .btn-eighteen a, .btn-eighteen-link, .tgd-person__li, .pj-title,
  a.text-decoration-underline, .btn-line, .btn-fifteen { position: relative; }
  .notice-banner a::after, .btn-eighteen a::after, .btn-eighteen-link::after, .tgd-person__li::after, .pj-title::after,
  a.text-decoration-underline::after, .btn-line::after, .btn-fifteen::after {
    content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%);
  }
}
/* Wide tables: swipe hint that stays in view while the table scrolls */
@media (max-width: 767px) {
  .table-responsive::after {
    content: "Swipe to see more \2192"; display: block; position: sticky; left: 0;
    padding-top: 10px; font-size: 13px; color: var(--tgd-muted);
  }
}
/* Closing CTA banner: half the gap between the banner and the footer content (pages with the banner only) */
.fancy-short-banner-ten + .footer-style-eleven { padding-top: 75px; }
@media (max-width: 1199px) { .fancy-short-banner-ten + .footer-style-eleven { padding-top: 50px; } }

/* Client logo rail — copied from v8 (3 Oct) */
/* Client logos: eight at a time, scrolling on their own */
.tgd-client-slider { border-top: 2px solid #000; border-bottom: 1px solid var(--tgd-line); padding: 10px 0; }
.tgd-client-slide { padding: 18px 20px; display: flex !important; align-items: center; justify-content: center; height: 110px; }
.tgd-client-logo { max-width: 100%; max-height: 64px; width: auto; object-fit: contain;
  filter: grayscale(100%); opacity: .75; transition: filter .2s ease, opacity .2s ease; }
.tgd-client-slide:hover .tgd-client-logo { filter: none; opacity: 1; }
.tgd-client-slider .slick-track { display: flex; align-items: center; }

/* Seat status: green available, orange filling, red full */
.tgd-seats--open { background: #DCF3E4; border-color: #0A6B33; color: #0A6B33; }
.tgd-seats--filling, .tgd-seats--last { background: #FFE8CC; border-color: #B35309; color: #B35309; }
.tgd-seats--full { background: #FFE0E0; border-color: #B32020; color: #B32020; }
.tgd-seats--closed { background: #EFEFEF; border-color: rgba(0,0,0,.4); color: rgba(0,0,0,.6); }
.tgd-seats--soon { background: #fff; border-color: rgba(0,0,0,.4); color: rgba(0,0,0,.6); }
.tgd-seats--new { background: #E1EDFB; border-color: #1C5BA6; color: #1C5BA6; }   /* blue: new date released */

/* About "From workshops to / national curricula." — fixed two lines (break is a <br> in the HTML) */
.title-style-eight .main-title.tgd-title-2line { font-size: 54px; }
@media (max-width: 1399px) { .title-style-eight .main-title.tgd-title-2line { font-size: 46px; } }
@media (max-width: 1199px) { .title-style-eight .main-title.tgd-title-2line { font-size: 48px; } }
@media (max-width: 991px)  { .title-style-eight .main-title.tgd-title-2line { font-size: 35px; } }
@media (max-width: 374px)  { .title-style-eight .main-title.tgd-title-2line { font-size: 30px; } }
.title-style-eight .main-title.tgd-title-tight { line-height: 1.05; }   /* a two-line heading set close, e.g. Workshops for Students "Skills that lead somewhere." */

/* Upcoming runs on a course detail page */
.tgd-course-runs { border: 2px solid #000; background: #fff; padding: 30px 32px 34px; }
.tgd-course-runs h3 { font-size: 24px; font-weight: 500; margin-bottom: 6px; }
.tgd-course-runs > p { font-size: 16px; color: var(--tgd-muted); margin-bottom: 22px; }
.tgd-run-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 16px 0; border-top: 1px solid var(--tgd-line); }
.tgd-run-row__date { font-size: 18px; font-weight: 500; min-width: 190px; }
.tgd-run-row__meta { font-size: 15px; color: var(--tgd-muted); flex: 1; min-width: 180px; }
.tgd-run-row .tgd-run-btn { margin-left: auto; }
@media (max-width: 575px) { .tgd-run-row .tgd-run-btn { margin-left: 0; } }
/* Course page runs box: equal-width seat badges and buttons so every row lines up */
.tgd-course-runs .tgd-seats, .tgd-course-runs .tgd-run-btn { width: 170px; }
/* Public Workshops "Upcoming workshops" table: every button the same width */
.tgd-runs--equal .tgd-run-btn, .tgd-runs--equal .tgd-seats { width: 165px; }
/* Work With Us: the form is the last section — same 75px / 50px gap above the footer content as pages ending with the banner */
.tgd-enquiry-section + .footer-style-eleven { padding-top: 29px; }  /* + 46px trailing space of the form section */
@media (max-width: 1399px) { .tgd-enquiry-section + .footer-style-eleven { padding-top: 39px; } }  /* + 36px */
@media (max-width: 1199px) { .tgd-enquiry-section + .footer-style-eleven { padding-top: 34px; } }  /* + 16px */
/* Page that ends with a crosslink strip (no closing banner): same 75px / 50px gap above the footer content */
.tgd-last-section + .footer-style-eleven { padding-top: 75px; }
@media (max-width: 1199px) { .tgd-last-section + .footer-style-eleven { padding-top: 50px; } }

/* "Two ways to fund this work" cards (Teacher Capacity Building): clear guidance line + real call-to-action button */
.tgd-programme-card .tgd-card-fit { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 500; margin: 0 0 26px; }
.tgd-programme-card .tgd-card-fit i { font-size: 18px; line-height: 1; }
.tgd-card-cta {
  display: inline-block; padding: 15px 26px; text-align: left;
  font-size: 16px; font-weight: 500; line-height: 1.35; text-decoration: none;
  background: #000; color: #fff; border: 2px solid #000;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.tgd-card-cta i { display: inline-block; margin-left: 8px; vertical-align: -1px; transition: transform .2s ease; }
.tgd-card-cta:hover, .tgd-card-cta:focus-visible { background: #fff; color: #000; }
.tgd-card-cta:hover i, .tgd-card-cta:focus-visible i { transform: translateX(4px); }
.tgd-card-cta:focus-visible { outline: 3px solid #000; outline-offset: 3px; }
.tgd-programme-card--dark .tgd-card-cta { background: var(--tgd-yellow); color: #000; border-color: var(--tgd-yellow); }
.tgd-programme-card--dark .tgd-card-cta:hover, .tgd-programme-card--dark .tgd-card-cta:focus-visible { background: #fff; border-color: #fff; color: #000; }
.tgd-programme-card--dark .tgd-card-cta:focus-visible { outline-color: #fff; }
@media (max-width: 575px) { .tgd-card-cta { padding: 14px 20px; font-size: 15px; } }
/* When the whole card is the link (TVET Curriculum), the button reacts to hovering anywhere on the card */
a.tgd-programme-card:hover .tgd-card-cta, a.tgd-programme-card:focus-visible .tgd-card-cta { background: #fff; color: #000; }
a.tgd-programme-card--dark:hover .tgd-card-cta, a.tgd-programme-card--dark:focus-visible .tgd-card-cta { border-color: #fff; }
a.tgd-programme-card:hover .tgd-card-cta i, a.tgd-programme-card:focus-visible .tgd-card-cta i { transform: translateX(4px); }

/* Client logo rail: trimmed logos sized to an equal visual area (per-logo --w/--h), identical gaps between logos */
.tgd-client-slider .tgd-client-slide { height: 100px; padding: 0 20px; }          /* 40px between every pair of logos */
.tgd-client-slider .tgd-client-logo { width: var(--w); height: var(--h); max-width: none; max-height: none; object-fit: contain; }
@media (max-width: 767px) {
  .tgd-client-slider .tgd-client-slide { height: 84px; padding: 0 14px; }   /* 28px on phones */
  .tgd-client-slider .tgd-client-logo { width: calc(var(--w) * .78); height: calc(var(--h) * .78); }
}
/* Course pages: previous / next course blocks show that course's banner photo, same 16:9 shape for both */
.portfolio-details-one .project-pagination .arrow-block img { aspect-ratio: 16 / 9; object-fit: cover; }
/* Default (non-photo) course image in a prev/next block: show it whole, letterboxed in its own cream colour */
.portfolio-details-one .project-pagination .arrow-block img.tgd-img-whole { object-fit: contain; background: var(--tgd-cream); }
/* Private & Corporate Training course cards: each shows its course's banner photo, all at the same 16:9 shape */
.tgd-course-card .img-meta img { aspect-ratio: 16 / 9; object-fit: cover; }
/* Programme cards: button sits 40px below the last bullet, matching the card's 40px bottom padding.
   (The list's own margin is zeroed by the theme's .style-none; the last <li> already adds ~16px.) */
.tgd-programme-card .tgd-list + .tgd-card-cta { margin-top: 24px !important; }

/* Course pages: trainer profile — photo on top, details below, LinkedIn link last (open layout, no card box) */
.tgd-trainer-profile { display: flex; flex-direction: column; align-items: flex-start; }
.tgd-trainer-profile__photo { width: 200px; border: 2px solid var(--tgd-ink); box-shadow: 8px 8px 0 var(--tgd-yellow); margin-bottom: 28px; }
.tgd-trainer-profile__photo img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.tgd-trainer-profile__name { font-size: 24px; font-weight: 500; margin: 0 0 4px; }
.tgd-trainer-profile__role { font-size: 15px; color: var(--tgd-muted); margin-bottom: 12px; }
.tgd-trainer-profile__bio { font-size: 16px; line-height: 1.7; margin-bottom: 16px; }
@media (max-width: 575px) { .tgd-trainer-profile__photo { width: 160px; } }
/* Trainer profile: tighter gap between the bio and the LinkedIn link (beats the theme's 45px paragraph margin) */
.tgd-trainer-profile p.tgd-trainer-profile__bio { margin-bottom: 22px; }
/* Course pages: enquiry form follows the programme cards — standard section gap (70px desktop / 80px below 1200px) */
.tgd-enquiry-section.tgd-enquiry-section--course { margin-top: 40px; }   /* + 30px section padding */
@media (max-width: 1399px) { .tgd-enquiry-section.tgd-enquiry-section--course { margin-top: 50px; } }
@media (max-width: 1199px) { .tgd-enquiry-section.tgd-enquiry-section--course { margin-top: 55px; } }

/* Course pages: photo gallery (click to enlarge in the Fancybox lightbox) */
.tgd-gallery--course { max-width: none; gap: 20px; }
.tgd-gallery--course.tgd-gallery--n3 { grid-template-columns: repeat(3, 1fr); }
.tgd-gallery--course.tgd-gallery--n2 { grid-template-columns: repeat(2, 1fr); }
.tgd-gallery--course.tgd-gallery--n1 { grid-template-columns: 1fr; }
.tgd-gallery--course .tgd-gallery__item { display: block; overflow: hidden; cursor: zoom-in; }
.tgd-gallery--course .tgd-gallery__item img { aspect-ratio: 3 / 2; border-bottom: 0; transition: transform .35s ease; }
.tgd-gallery--course.tgd-gallery--n1 .tgd-gallery__item img { aspect-ratio: 16 / 9; }
.tgd-gallery--course .tgd-gallery__item:hover img, .tgd-gallery--course .tgd-gallery__item:focus-visible img { transform: scale(1.04); }
@media (max-width: 991px) { .tgd-gallery--course.tgd-gallery--n3 { grid-template-columns: repeat(2, 1fr); } .tgd-gallery--course { gap: 14px; } }
@media (max-width: 575px) { .tgd-gallery--course.tgd-gallery--n3, .tgd-gallery--course.tgd-gallery--n2 { grid-template-columns: 1fr; } }
/* Course gallery: max 6 photos in the grid; the 6th shows "+N" for the rest, which open in the lightbox */
.tgd-gallery--course .tgd-gallery__item--more { position: relative; }
.tgd-gallery__more {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(0, 0, 0, .55); color: #fff; font-size: 40px; font-weight: 500; letter-spacing: 1px;
  transition: background .25s ease;
}
.tgd-gallery--course .tgd-gallery__item--more:hover .tgd-gallery__more { background: rgba(0, 0, 0, .45); }

/* Form response message (enquiry form + course registration form) — from v11 */
.tgd-formmsg { font-size: 16px; padding: 14px 18px; border: 2px solid #000; margin-bottom: 22px; }
.tgd-formmsg.is-ok { background: #DCF3E4; border-color: #0A6B33; color: #0A6B33; }
.tgd-formmsg.is-err { background: #FFE0E0; border-color: #B32020; color: #B32020; }
/* Homepage "Recent workshops": course cards link to their course page */
.tgd-gallery__item--link { display: block; color: inherit; overflow: hidden; }
.tgd-gallery__item--link img { transition: transform .35s ease; }
.tgd-gallery__item--link:hover img, .tgd-gallery__item--link:focus-visible img { transform: scale(1.04); }
.tgd-gallery__item--link:hover figcaption, .tgd-gallery__item--link:focus-visible figcaption { color: #000; }
/* Corporate Training course cards: hover covers the whole image (no rotated band / tilt leaving empty corners) */
.tgd-course-card.hvr-shutter-out .img-meta:before { inset: 0; top: 0; bottom: 0; left: 0; right: 0; transform: none; opacity: 0; transition: opacity .35s ease; }
.tgd-course-card.hvr-shutter-out .img-meta:hover:before { top: 0; bottom: 0; opacity: 1; }
.tgd-course-card.hvr-shutter-out .img-meta img { transition: transform .5s ease; }
.tgd-course-card.hvr-shutter-out .img-meta:hover img { transform: scale(1.17) rotate(5deg); }   /* 1.17 = enough zoom to fill a 16:9 box when tilted 5° */
/* Portrait images in the cream bands (About journey illustration, Lunch & Learn photo): never taller than the screen allows */
.illustration-holder .tgd-journey-img { display: block; width: auto; max-width: 100%; height: auto; max-height: min(720px, calc(100vh - 140px)); margin: 0 auto; }

/* Lunch & Learns workshop cards — one consistent layout for every card */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .pack-details { min-height: calc(2 * 1.5em + 40px); line-height: 1.5; padding: 6px 0 34px; }  /* subtitle reserves 2 lines → price boxes line up */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .top-banner { min-height: 104px; }
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .pr-feature { padding: 30px 0 30px 23px; }
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .pr-feature li { line-height: 1.5; padding-top: 7px; padding-bottom: 7px; }   /* wrapped items no longer use the theme's 42px line height */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .pr-feature li:before { top: 10px; }
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card { padding-bottom: 30px; }                                              /* bottom inner space = top inner space */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .trial-text { font-size: 15px; }                                          /* one line on every card, so the buttons stay aligned */
@media (max-width: 1399px) { .pricing-table-area-four .pr-table-wrapper.tgd-lnl-card { padding-bottom: 25px; } }
.tgd-ribbon { top: -14px; right: 50%; transform: translateX(50%); white-space: nowrap; }                                         /* centred over the card */
/* "Coming in 2027" card: its full two-line note fits in the same space as the one-line links on the other cards, so every button lines up */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card .trial-text { height: 47.5px; }   /* same note area on every card: 25px gap + one 22.5px line */
.pricing-table-area-four .pr-table-wrapper.tgd-lnl-card--soon .trial-text { font-size: 14px; line-height: 1.35; padding-top: 9.7px !important; }   /* two lines (2 × 18.9px) + 9.7px gap = 47.5px */

/* Navigation: services that are not open yet — shown greyed out, not clickable */
.theme-main-menu .navbar .dropdown-menu .dropdown-item.tgd-dd-disabled,
.theme-main-menu .navbar .dropdown-menu .dropdown-item.tgd-dd-disabled:hover { opacity: .4; cursor: default; pointer-events: none; background: transparent; }
/* Footer Subscribe button: fit the label + arrow instead of the theme's fixed width */
.theme-basic-footer .form-widget form button { width: auto; padding: 0 20px; }
.theme-basic-footer .form-widget form input { padding-right: 165px; }
/* Course pages: normal paragraph spacing in the Overview text (theme default is 45px) */
.portfolio-details-one .project-desctiption [data-cms="course.overview"] p { margin-bottom: 20px; }
/* Floating WhatsApp: opens a chat with +65 9296 3877. Sits above the back-to-top button. */
.tgd-whatsapp {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 990;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  padding: 0 18px 0 16px;
  background: #25D366;
  color: #fff;
  border: 2px solid var(--tgd-ink);
  border-radius: 999px;
  box-shadow: 4px 4px 0 var(--tgd-ink);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}
.tgd-whatsapp:hover,
.tgd-whatsapp:focus-visible {
  color: #fff;
  background: #1ebe5d;
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--tgd-ink);
}
.tgd-whatsapp svg { display: block; flex: 0 0 auto; }
.scroll-top { bottom: 90px; right: 33px; }
@media (max-width: 575px) {
  .tgd-whatsapp { width: 56px; height: 56px; padding: 0; justify-content: center; right: 16px; bottom: 16px; }
  .tgd-whatsapp span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .scroll-top { bottom: 82px; right: 26px; }
}

/* Course registration form: tighter spacing between its parts */
.tgd-enquiry-section--course .tgd-form .input-bg-group { padding: 40px 60px; }
.tgd-enquiry-section--course .tgd-form .tgd-fieldset { margin-bottom: 25px; }
@media (max-width: 767px) { .tgd-enquiry-section--course .tgd-form .input-bg-group { padding: 30px 26px; } }
/* Home hero: photo slider inside the theme's image frame */
.hero-banner-twelve .tgd-hero-slider { overflow: hidden; }
.hero-banner-twelve .tgd-hero-slide img { display: block; width: 100%; height: auto; aspect-ratio: 490 / 542; object-fit: cover; }
.hero-banner-twelve .tgd-hero-slider:not(.slick-initialized) .tgd-hero-slide:not(:first-child) { display: none; }
/* About, "From workshops to national curricula": sit the illustration against the text side, not centred in its column */
@media (min-width: 992px) { .illustration-holder .tgd-journey-img--end { margin-right: 0; } }
/* ...and centre the illustration + text as one group so the space on both sides is equal */
@media (min-width: 1200px) {
  .tgd-journey-row { justify-content: center; }
  .tgd-journey-row > .order-lg-first { flex: 0 0 auto; width: auto; margin: 0 !important; }
  .tgd-journey-row > .order-lg-last { margin-left: 0 !important; }
}
/* About, "What we believe": icon at the top of each card, number kept on the right */
.tgd-help-card--icon .tgd-help-card__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.tgd-help-card--icon .tgd-help-card__icon { width: 72px; height: 72px; }
@media (max-width: 767px) { .tgd-help-card--icon .tgd-help-card__icon { width: 60px; height: 60px; } }
/* TVET Curriculum, "Scaffolding Learning Across the Quarters": icon at the top of each step, number kept on the right */
.tgd-steps--icons .tgd-steps__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.tgd-steps--icons .tgd-steps__top span { margin-bottom: 0; }
.tgd-steps--icons .tgd-steps__icon { width: 64px; height: 64px; }
@media (max-width: 767px) { .tgd-steps--icons .tgd-steps__icon { width: 56px; height: 56px; } }
/* Steps on phones: one column, so no left indent on any step (the five/six-step padding was overriding the reset) */
@media (max-width: 767px) { .tgd-steps--five li + li, .tgd-steps--six li + li { padding-left: 0; } }
/* ...step number shown as a small muted label (like the About "What we believe" cards) instead of the yellow box, so it doesn't compete with the icon */
.tgd-steps--icons .tgd-steps__top { align-items: flex-start; }
.tgd-steps--icons .tgd-steps__top span { display: inline; width: auto; height: auto; background: none; border: 0; font-size: 14px; font-weight: 700; opacity: .4; }
/* Work With Us, three option cards: keep each button label on one line so the buttons match */
.address-block-four .btn-twentySix { white-space: nowrap; padding: 0 22px; }
@media (min-width: 1200px) and (max-width: 1399px) { .address-block-four .btn-twentySix { padding: 0 16px; font-size: 16px !important; } }
@media (min-width: 992px) and (max-width: 1199px) { .address-block-four .btn-twentySix { padding: 0 12px; font-size: 15px !important; } }
@media (max-width: 400px) { .address-block-four .btn-twentySix { padding: 0 16px; font-size: 16px !important; } }
/* Work With Us card buttons: clear hover — fills black, white text, arrow nudges right */
.address-block-four .btn-twentySix { transition: color .25s ease; }
.address-block-four .btn-twentySix:hover, .address-block-four .btn-twentySix:focus-visible { color: #fff; }
.address-block-four .btn-twentySix:hover:after, .address-block-four .btn-twentySix:focus-visible:after { top: 0; left: 0; background: #000; }
.address-block-four .btn-twentySix i { display: inline-block; transition: transform .25s ease; }
.address-block-four .btn-twentySix:hover i, .address-block-four .btn-twentySix:focus-visible i { transform: translateX(4px); }
/* 3D-edge buttons (btn-twentyFour, used site-wide): clear hover — front fills black with white text, edges fill yellow, arrow nudges right */
body .btn-twentyFour { transition: background-color .25s ease, color .25s ease; }
body .btn-twentyFour:hover, body .btn-twentyFour:focus-visible { background: #000 !important; color: #fff !important; border-color: #000; }
body .btn-twentyFour:hover span, body .btn-twentyFour:focus-visible span { color: #fff; }
body .btn-twentyFour:hover:before, body .btn-twentyFour:hover:after,
body .btn-twentyFour:focus-visible:before, body .btn-twentyFour:focus-visible:after { background: #f3c755; border-color: #000; }
body .btn-twentyFour i, body .btn-twentyFour img { display: inline-block; transition: transform .25s ease, filter .25s ease; }
body .btn-twentyFour:hover i, body .btn-twentyFour:hover img,
body .btn-twentyFour:focus-visible i, body .btn-twentyFour:focus-visible img { transform: translateX(4px); }
body .btn-twentyFour:hover img, body .btn-twentyFour:focus-visible img { filter: invert(1); }
/* Webinars cards: the "Get notified" / "Suggest a topic" label turns yellow when the card is hovered or focused */
.card-style-nineteen .tag2 { transition: background-color .25s ease; }
.card-style-nineteen:hover .tag2, .card-style-nineteen:focus-visible .tag2 { background: var(--tgd-yellow); }
.card-style-nineteen .tag2 i { display: inline-block; transition: transform .25s ease; }
.card-style-nineteen:hover .tag2 i, .card-style-nineteen:focus-visible .tag2 i { transform: translateX(4px); }
/* Work With Us header: beige runs full width (no white frame); the theme's 30px/20px frame padding is added inside instead so the text stays put */
@media (min-width: 1400px) { .tgd-wwu-hero .address-wrapper { padding-top: 210px; } .tgd-wwu-hero { padding-bottom: 30px; } }
@media (min-width: 1200px) and (max-width: 1399px) { .tgd-wwu-hero .address-wrapper { padding-top: 200px; } .tgd-wwu-hero { padding-bottom: 20px; } }
/* Beige panels (About, Community Programmes, Lunch & Learns, Workshops for Students): colour runs full width.
   Only the side padding of the theme's p-30 frame is removed; top/bottom stay, so section gaps are unchanged. */
.p-30.tgd-full-bleed { padding-left: 0; padding-right: 0; }
/* Two-photo gallery (Community Programmes) */
.tgd-gallery--two { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 575px) { .tgd-gallery--two { grid-template-columns: 1fr; } }
/* In-page links (#register, #enquire, #notify, #services…): stop below the sticky header instead of under it */
html { scroll-padding-top: 110px; }
@media (max-width: 991px) { html { scroll-padding-top: 95px; } }
/* Black btn-one buttons (e.g. Webinars "Register your interest"): theme yellow on hover instead of Jano's orange (--prime-one) */
body .btn-one:hover, body .btn-one:focus-visible { background: var(--tgd-yellow); color: #000; }
body .btn-one i { display: inline-block; transition: transform .25s ease; }
body .btn-one:hover i, body .btn-one:focus-visible i { transform: translateX(4px); }
/* Disabled pages (e.g. Teacher Capacity Building): footer links and homepage service card shown greyed out, not clickable — same look as the disabled menu items */
.tgd-link-disabled { opacity: .4; cursor: default; pointer-events: none; }
.card-style-eighteen.tgd-card-disabled { cursor: default; pointer-events: none; border-color: rgba(0,0,0,.25); }
.card-style-eighteen.tgd-card-disabled > * { opacity: .4; }
/* Home hero frame: sized from its width/height attributes before it downloads, so the photo slider never starts tiny */
.hero-banner-twelve .image-holder .tgd-hero-frame { max-width: 100%; height: auto; }
/* Venue always on one line (run tables and course-page run rows) */
.tgd-runs td[data-cms="run.venue"] { white-space: nowrap; }
/* Course-page runs table at its original width: on 1200–1399px laptops, slightly narrower badge/button so all six columns fit without scrolling */
@media (min-width: 1200px) and (max-width: 1399px) {
  .tgd-course-runs .tgd-runs--equal .tgd-seats, .tgd-course-runs .tgd-runs--equal .tgd-run-btn { width: 138px; padding: 0 8px; font-size: 13px; }
  .tgd-course-runs .tgd-runs th, .tgd-course-runs .tgd-runs td { padding-right: 12px; }
}
/* Course-page runs tables (Date | Time | Venue | Seats): date and time on one line from 1400px up (narrower screens wrap so the table never scrolls) */
@media (min-width: 1400px) { .tgd-course-runs .tgd-runs td[data-cms="run.date"], .tgd-course-runs .tgd-runs td[data-cms="run.time"] { white-space: nowrap; } }
/* Checklist ticks always sit in a yellow box, so the tick is always black (was inheriting white text in black cards) */
.tgd-list--check li:before { color: #000; }
/* 3D-edge buttons on black backgrounds (e.g. homepage "See 1-to-1 coaching" strip): hover turns white, not black */
.tgd-crosslink--dark .btn-twentyFour:hover, .tgd-crosslink--dark .btn-twentyFour:focus-visible,
.tgd-programme-card--dark .btn-twentyFour:hover, .tgd-programme-card--dark .btn-twentyFour:focus-visible { background: #fff !important; color: #000 !important; border-color: #fff; }
.tgd-crosslink--dark .btn-twentyFour:hover span, .tgd-crosslink--dark .btn-twentyFour:focus-visible span,
.tgd-programme-card--dark .btn-twentyFour:hover span, .tgd-programme-card--dark .btn-twentyFour:focus-visible span { color: #000; }
.tgd-crosslink--dark .btn-twentyFour:hover:before, .tgd-crosslink--dark .btn-twentyFour:hover:after,
.tgd-programme-card--dark .btn-twentyFour:hover:before, .tgd-programme-card--dark .btn-twentyFour:hover:after { background: var(--tgd-yellow); border-color: #fff; }
/* Homepage black "1-to-1 coaching" strip: flat button, same look as the closing banner's "Book a discovery call" */
.tgd-crosslink--dark .btn-solid { display: inline-block; line-height: 54px; font-size: 17px; padding: 0 36px; color: #0C0C0C; background: var(--prime-six); white-space: nowrap; }
.tgd-crosslink--dark .btn-solid:hover, .tgd-crosslink--dark .btn-solid:focus-visible { background: #fff; color: #0C0C0C; }
.tgd-crosslink--dark .btn-solid i { display: inline-block; transition: transform .25s ease; }
.tgd-crosslink--dark .btn-solid:hover i, .tgd-crosslink--dark .btn-solid:focus-visible i { transform: translateX(4px); }
@media (max-width: 1199px) { .tgd-crosslink--dark .btn-solid { line-height: 50px; font-size: 15px; padding: 0 30px; } }

/* ==========================================================================
   Lunch & Learn — four-part session outline
   Shift Mindsets / Plant New Convictions / Spark New Perspectives / Inspire Action
   Lives inside the "Module by module" accordion bodies on lunch-and-learns.html.
   ========================================================================== */
.tgd-outline__head {
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #6B6B70;
	margin: 0 0 14px;
	font-weight: 600;
}
.tgd-outline__head + .tgd-outline { margin-bottom: 34px; }
.tgd-agenda--modules + .tgd-outline__head,
.table-responsive + .tgd-outline__head { margin-top: 34px; }
.tgd-outline__head:not(:first-child) { margin-top: 34px; }

.tgd-outline {
	margin: 0 0 30px;
	border-left: 3px solid var(--tgd-yellow, #FFCE4C);
	padding-left: 0;
}
.tgd-outline__row {
	display: grid;
	grid-template-columns: 215px 1fr;
	gap: 0 22px;
	padding: 13px 0 13px 22px;
	border-bottom: 1px solid #ECECEC;
}
.tgd-outline__row:last-child { border-bottom: 0; }
.tgd-outline dt {
	font-weight: 600;
	color: #0C0C0C;
	font-size: 16px;
	line-height: 1.5;
}
.tgd-outline dd {
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: #4A4A50;
}
@media (max-width: 767px) {
	.tgd-outline__row { grid-template-columns: 1fr; gap: 4px; padding-left: 18px; }
	.tgd-outline dt { font-size: 15px; }
	.tgd-outline dd { font-size: 15px; }
}

/* ==========================================================================
   Form dropdowns
   The four longest radio groups on work-with-us.html, and "Who are you
   registering?" on the course pages, are now <select> controls. Styled to match
   Jano's text inputs so the form reads as one thing.
   ========================================================================== */
.tgd-select {
	width: 100%;
	height: 60px;
	border: 1px solid #E5E5E5;
	border-radius: 8px;
	background-color: #fff;
	padding: 0 48px 0 20px;
	font-size: 17px;
	color: #0C0C0C;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230C0C0C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 20px center;
	cursor: pointer;
}
.tgd-select:focus {
	outline: none;
	border-color: #0C0C0C;
	box-shadow: 0 0 0 3px rgba(255, 206, 76, .45);
}
/* Until a choice is made, the placeholder reads as placeholder text, not an answer. */
.tgd-select:invalid { color: #8A8A90; }
.tgd-select option { color: #0C0C0C; }
.tgd-selectwrap label { margin-bottom: 12px; font-weight: 500; }
@media (max-width: 767px) {
	.tgd-select { height: 54px; font-size: 16px; padding: 0 44px 0 16px; }
}


/* ==========================================================================
   ===  OCTOBER 2026 — LEARNING PATHWAYS, GALLERY, DELIVERY  ===============
   ========================================================================== */

/* ==========================================================================
   1. LEVEL BADGE
   Used only where progression is real. A badge on every course would make the
   catalogue look like a syllabus and tell the reader nothing.
   ========================================================================== */
.tgd-level {
	display: inline-flex; align-items: center; gap: 7px;
	border: 1.5px solid var(--tgd-ink); border-radius: 30px;
	padding: 3px 13px 3px 4px; font-size: 13px; font-weight: 600;
	background: #fff; white-space: nowrap; line-height: 1.5;
}
.tgd-level__n {
	display: grid; place-items: center;
	width: 21px; height: 21px; border-radius: 50%;
	background: var(--tgd-yellow); font-size: 11.5px; font-weight: 700;
}
.tgd-level--2 .tgd-level__n { background: #2B1B4D; color: #fff; }
.tgd-level--3 .tgd-level__n { background: #00A98F; color: #fff; }
.tgd-level--new .tgd-level__n { background: #FF5A36; color: #fff; }
.tgd-level--dark { background: transparent; border-color: rgba(255,255,255,.5); color: #fff; }

/* Status chips — keeps a planned course from looking bookable */
.tgd-status {
	display: inline-flex; align-items: center; gap: 6px;
	border-radius: 30px; padding: 3px 12px;
	font-size: 12.5px; font-weight: 600; white-space: nowrap;
	border: 1.5px solid;
}
.tgd-status--soon      { background: #FFF3CD; border-color: #B35309; color: #B35309; }
.tgd-status--dev       { background: #EFEFEC; border-color: #5A5A55; color: #5A5A55; }
.tgd-status--selling   { background: #DCF3E4; border-color: #0A6B33; color: #0A6B33; }
.tgd-status--funded    { background: #E2F2FD; border-color: #1B4D7A; color: #1B4D7A; }

/* ==========================================================================
   2. PATHWAY — the visual progression between related courses
   ========================================================================== */
.tgd-pathway { margin: 0; }
.tgd-pathway__track {
	display: grid; gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
	align-items: stretch;
}
.tgd-step {
	position: relative; display: flex; flex-direction: column;
	border: 2px solid var(--tgd-ink); border-radius: 14px;
	background: #fff; padding: 22px 22px 20px; text-decoration: none; color: inherit;
	transition: transform .18s ease, box-shadow .18s ease;
}
a.tgd-step:hover { transform: translateY(-3px); box-shadow: 7px 7px 0 var(--tgd-yellow); color: inherit; }
.tgd-step--here { background: var(--tgd-cream); box-shadow: 7px 7px 0 var(--tgd-yellow); }
.tgd-step--soon { border-style: dashed; background: #FCFCFB; }
.tgd-step__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 13px; }
.tgd-step__title { font-size: 18px; font-weight: 500; line-height: 1.4; margin: 0 0 9px; }
.tgd-step__desc { font-size: 15px; line-height: 1.6; color: var(--tgd-muted); margin: 0 0 15px; }
.tgd-step__meta {
	margin-top: auto; padding-top: 14px; border-top: 1px solid var(--tgd-line);
	font-size: 13.5px; color: var(--tgd-muted);
	display: flex; flex-wrap: wrap; gap: 5px 14px;
}
.tgd-step__meta b { color: var(--tgd-ink); font-weight: 600; }
/* The arrow between steps, on wide screens only */
.tgd-step + .tgd-step::before {
	content: ""; position: absolute; left: -13px; top: 50%;
	width: 9px; height: 9px; margin-top: -5px;
	border-top: 2px solid var(--tgd-ink); border-right: 2px solid var(--tgd-ink);
	transform: rotate(45deg);
}
@media (max-width: 860px) { .tgd-step + .tgd-step::before { display: none; } }

/* "You are here" marker */
.tgd-step__here {
	position: absolute; top: -11px; left: 20px;
	background: var(--tgd-ink); color: #fff;
	font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
	font-weight: 600; padding: 2px 10px; border-radius: 20px;
}

/* Prerequisite / next-course strip at the end of a course page */
.tgd-nextup {
	border: 2px solid var(--tgd-ink); border-radius: 14px; overflow: hidden;
	display: grid; grid-template-columns: 1fr 1fr;
}
.tgd-nextup > div { padding: 24px 26px; }
.tgd-nextup > div + div { border-left: 2px solid var(--tgd-ink); }
.tgd-nextup h5 {
	font-size: 12px; letter-spacing: .09em; text-transform: uppercase;
	color: var(--tgd-muted); font-weight: 600; margin: 0 0 11px;
}
.tgd-nextup strong { display: block; font-size: 18px; font-weight: 500; line-height: 1.4; margin-bottom: 7px; }
.tgd-nextup p { font-size: 15px; line-height: 1.6; color: var(--tgd-muted); margin: 0 0 13px; }
@media (max-width: 767px) {
	.tgd-nextup { grid-template-columns: 1fr; }
	.tgd-nextup > div + div { border-left: 0; border-top: 2px solid var(--tgd-ink); }
}

/* ==========================================================================
   5. DELIVERY — format picker and the group-size / venue rule
   ========================================================================== */
.tgd-formats { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tgd-format {
	border: 2px solid var(--tgd-ink); border-radius: 14px; padding: 24px 24px 22px; background: #fff;
}
.tgd-format--funded { background: var(--tgd-cream); box-shadow: 7px 7px 0 var(--tgd-yellow); }
.tgd-format__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.tgd-format h4 { font-size: 20px; font-weight: 500; margin: 0; }
.tgd-format ul { margin: 0; padding: 0; list-style: none; }
.tgd-format li {
	position: relative; padding-left: 24px; margin-bottom: 9px;
	font-size: 15.5px; line-height: 1.6;
}
.tgd-format li::before {
	content: ""; position: absolute; left: 0; top: 8px; width: 8px; height: 8px;
	border-radius: 50%; background: var(--tgd-yellow); border: 1.5px solid var(--tgd-ink);
}
.tgd-format li.is-no::before { background: #fff; border-color: #BDBDB6; }
.tgd-format li.is-no { color: var(--tgd-muted); }
@media (max-width: 767px) { .tgd-formats { grid-template-columns: 1fr; } }

/* Group size -> venue */
.tgd-size {
	border: 2px solid var(--tgd-ink); border-radius: 16px; padding: 28px 30px; background: #fff;
}
.tgd-size__pips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
.tgd-size__pip {
	flex: 1 1 32px; min-width: 32px; height: 42px; border-radius: 8px;
	display: grid; place-items: center; font-size: 14px; font-weight: 600;
	background: #F0F0EC; color: var(--tgd-muted);
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.tgd-size__pip.is-on { background: var(--tgd-yellow); color: var(--tgd-ink); border: 1.5px solid var(--tgd-ink); }
.tgd-size__pip.is-over { background: #2B1B4D; color: #fff; }
.tgd-size__legend {
	display: flex; justify-content: space-between; gap: 16px;
	font-size: 13.5px; color: var(--tgd-muted);
	border-top: 2px solid var(--tgd-ink); padding-top: 9px; margin-bottom: 26px;
}
.tgd-size__legend b { color: var(--tgd-ink); }
.tgd-size__row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.tgd-size__row label { font-weight: 600; font-size: 15.5px; margin: 0; }
.tgd-size__range { flex: 1 1 240px; accent-color: var(--tgd-ink); height: 6px; min-width: 180px; }
.tgd-size__num { font-size: 30px; font-weight: 600; min-width: 48px; text-align: right; font-variant-numeric: tabular-nums; }
.tgd-size__out {
	margin-top: 20px; background: var(--tgd-cream);
	border: 1.5px solid var(--tgd-line); border-radius: 10px;
	padding: 15px 19px; font-size: 15.5px; line-height: 1.6;
}
.tgd-size__out b { font-weight: 600; }
@media (max-width: 575px) {
	.tgd-size { padding: 22px 18px; }
	.tgd-size__pip { height: 34px; font-size: 12px; min-width: 26px; }
	.tgd-size__num { font-size: 25px; }
}

/* Venue cards */
.tgd-venues { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; }
.tgd-venue { border: 2px solid var(--tgd-ink); border-radius: 14px; padding: 23px 24px; background: #fff; }
.tgd-venue--alt { background: #2B1B4D; color: #fff; border-color: #2B1B4D; }
.tgd-venue--alt h4 { color: #fff; }
.tgd-venue--alt .tgd-venue__tag { background: rgba(255,255,255,.17); color: #fff; }
.tgd-venue--alt li { color: rgba(255,255,255,.84); }
.tgd-venue--alt li::before { background: var(--tgd-yellow); border-color: var(--tgd-yellow); }
.tgd-venue__tag {
	display: inline-block; background: var(--tgd-cream); border-radius: 20px;
	padding: 3px 12px; font-size: 11.5px; letter-spacing: .07em;
	text-transform: uppercase; font-weight: 600; margin-bottom: 13px;
}
.tgd-venue h4 { font-size: 22px; font-weight: 500; margin: 0 0 6px; }
.tgd-venue__addr { font-size: 14.5px; opacity: .72; margin-bottom: 15px; }
.tgd-venue ul { margin: 0; padding: 0; list-style: none; }
.tgd-venue li { position: relative; padding-left: 23px; margin-bottom: 9px; font-size: 15px; line-height: 1.55; }
.tgd-venue li::before {
	content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px;
	border-radius: 50%; background: var(--tgd-yellow); border: 1.5px solid currentColor;
}
@media (max-width: 767px) { .tgd-venues { grid-template-columns: 1fr; } }

/* Chips inside a programme card. The card is a flex column, so a bare inline
   badge stretches to the full width and reads as an input field rather than a
   label. The row keeps them at their natural size. */
.tgd-chiprow {
	display: flex; flex-wrap: wrap; gap: 7px;
	align-self: flex-start; margin-top: 14px;
}
.tgd-chiprow .tgd-level, .tgd-chiprow .tgd-status { align-self: flex-start; }

/* ==========================================================================
   LADDER — "Whichever way you want to learn"
   Four formats, ordered shortest to deepest. The cards step UP in height so
   the progression is visible before a word is read.

   Two things done differently from a plain card row:
   · On mobile the staircase would collapse and the whole idea with it, so
     below 768px it becomes a vertical spine with a growing depth bar.
   · The baseline runs the full width with a label at each end, so the row
     reads as a scale rather than four unrelated boxes.
   ========================================================================== */
.tgd-ladder-band {
	background: #0C0C0C;
	color: #fff;
	padding: 90px 0 70px;
}
.tgd-ladder-band .sc-title { color: var(--tgd-yellow); }
.tgd-ladder-band .main-title { color: #fff; }
.tgd-ladder__lead { font-size: 20px; line-height: 1.65; color: rgba(255,255,255,.78); margin: 0; }

/* The row. align-items:end is what makes the cards sit on a shared baseline. */
.tgd-ladder {
	display: grid; grid-template-columns: repeat(4, 1fr);
	gap: 20px; align-items: end; margin-top: 56px;
}
.tgd-rung {
	position: relative; display: flex; flex-direction: column;
	border: 1.5px solid rgba(255,255,255,.22);
	border-top: 2.5px solid var(--tgd-yellow);
	border-radius: 16px;
	padding: 30px 26px 26px;
	background: rgba(255,255,255,.035);
	text-decoration: none; color: inherit;
	transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
/* The staircase. Each rung is taller than the last. */
.tgd-rung--1 { padding-top: 30px; }
.tgd-rung--2 { padding-top: 56px; }
.tgd-rung--3 { padding-top: 84px; }
.tgd-rung--4 { padding-top: 112px; background: rgba(255,206,76,.1); border-color: rgba(255,206,76,.42); }

a.tgd-rung:hover, a.tgd-rung:focus-visible {
	transform: translateY(-6px);
	background: rgba(255,255,255,.08);
	border-color: var(--tgd-yellow);
	color: inherit;
}
.tgd-rung--4:hover { background: rgba(255,206,76,.16); }

.tgd-rung__time {
	font-family: 'Recoleta', Georgia, serif;
	font-size: 42px; line-height: 1.05; font-weight: 400;
	color: #fff; margin-bottom: 26px; letter-spacing: -.01em;
}
.tgd-rung--4 .tgd-rung__time { color: var(--tgd-yellow); }
.tgd-rung h4 { font-size: 20px; font-weight: 600; color: #fff; margin: 0 0 10px; line-height: 1.35; }
.tgd-rung p {
	font-size: 15.5px; line-height: 1.65;
	color: rgba(255,255,255,.72); margin: 0 0 20px;
}
.tgd-rung__facts {
	margin-top: auto; padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.17);
	font-size: 14.5px; color: rgba(255,255,255,.72);
}
.tgd-rung__facts span { display: block; }
.tgd-rung__facts span + span { margin-top: 3px; }
.tgd-rung__go {
	display: inline-flex; align-items: center; gap: 8px;
	margin-top: 20px; font-size: 15.5px; font-weight: 600;
	color: var(--tgd-yellow);
}
.tgd-rung__go i { transition: transform .2s ease; }
a.tgd-rung:hover .tgd-rung__go i { transform: translateX(5px); }

/* The scale underneath: a line with a label at each end. */
.tgd-ladder__axis {
	display: flex; align-items: center; gap: 20px;
	margin-top: 34px; padding-top: 0;
}
.tgd-ladder__axis span { font-size: 14.5px; color: rgba(255,255,255,.62); white-space: nowrap; }
.tgd-ladder__axis .line {
	flex: 1; height: 1px;
	background: linear-gradient(to right, rgba(255,255,255,.18), var(--tgd-yellow));
	position: relative;
}
.tgd-ladder__axis .line::after {
	content: ""; position: absolute; right: 0; top: -3.5px;
	width: 8px; height: 8px;
	border-top: 1.5px solid var(--tgd-yellow);
	border-right: 1.5px solid var(--tgd-yellow);
	transform: rotate(45deg);
}

@media (max-width: 1199px) {
	.tgd-ladder { grid-template-columns: repeat(2, 1fr); gap: 18px; }
	.tgd-rung--1, .tgd-rung--2, .tgd-rung--3, .tgd-rung--4 { padding-top: 30px; }
	.tgd-rung--3, .tgd-rung--4 { margin-top: 0; }
}

/* Below 768 the staircase cannot survive, so the progression moves to a
   spine on the left with a bar that grows rung by rung. */
@media (max-width: 767px) {
	.tgd-ladder {
		grid-template-columns: 1fr; gap: 0;
		margin-top: 40px; padding-left: 26px; position: relative;
	}
	.tgd-ladder::before {
		content: ""; position: absolute; left: 5px; top: 12px; bottom: 12px; width: 2px;
		background: linear-gradient(to bottom, rgba(255,255,255,.2), var(--tgd-yellow));
	}
	.tgd-rung {
		border-radius: 12px; margin-bottom: 16px; padding: 24px 22px 22px;
		border-top-width: 1.5px; border-top-color: rgba(255,255,255,.22);
	}
	.tgd-rung--4 { border-top-color: rgba(255,206,76,.42); }
	.tgd-rung::before {
		content: ""; position: absolute; left: -26px; top: 30px;
		width: 12px; height: 12px; border-radius: 50%;
		background: #0C0C0C; border: 2px solid var(--tgd-yellow);
	}
	/* the depth bar grows with each rung */
	.tgd-rung::after {
		content: ""; position: absolute; left: 22px; bottom: 10px;
		height: 3px; background: var(--tgd-yellow); border-radius: 2px;
	}
	.tgd-rung--1::after { width: 22px; }
	.tgd-rung--2::after { width: 42px; }
	.tgd-rung--3::after { width: 74px; }
	.tgd-rung--4::after { width: 112px; }
	.tgd-rung__time { font-size: 34px; margin-bottom: 20px; }
	.tgd-ladder__axis { margin-top: 24px; }
	.tgd-ladder__axis span { font-size: 13px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
	.tgd-rung, .tgd-rung__go i { transition: none; }
}

/* ==========================================================================
   SKILL TRACK — a five-level progression on one spine
   Used for the mobile photography → content creation route. Different shape
   from the three-card .tgd-pathway, because five steps in a row would squeeze
   to nothing. A vertical spine also suits a route you read top to bottom.

   The level a learner is currently on is marked, and any level can be entered
   directly — the copy says so, because nobody should sit through Level 1 to
   reach Level 3 if they already shoot competently.
   ========================================================================== */
.tgd-track { position: relative; padding-left: 52px; }
.tgd-track::before {
	content: ""; position: absolute; left: 17px; top: 18px; bottom: 36px; width: 2px;
	background: linear-gradient(to bottom, var(--tgd-yellow), var(--tgd-ink));
}
.tgd-track__step {
	position: relative; margin-bottom: 18px;
	border: 2px solid var(--tgd-ink); border-radius: 14px;
	background: #fff; padding: 24px 26px 22px;
	transition: transform .18s ease, box-shadow .18s ease;
}
a.tgd-track__step { display: block; text-decoration: none; color: inherit; }
a.tgd-track__step:hover { transform: translateX(4px); box-shadow: 7px 7px 0 var(--tgd-yellow); color: inherit; }
.tgd-track__step--here { background: var(--tgd-cream); box-shadow: 7px 7px 0 var(--tgd-yellow); }
.tgd-track__step--soon { border-style: dashed; background: #FCFCFB; }

/* The numbered node sitting on the spine */
.tgd-track__node {
	position: absolute; left: -52px; top: 24px;
	width: 36px; height: 36px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--tgd-yellow); border: 2px solid var(--tgd-ink);
	font-weight: 700; font-size: 15px;
}
.tgd-track__step--soon .tgd-track__node { background: #fff; }
.tgd-track__step--here .tgd-track__node { background: var(--tgd-ink); color: var(--tgd-yellow); }

.tgd-track__top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 9px; }
.tgd-track__lvl {
	font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase;
	font-weight: 700; color: var(--tgd-muted);
}
.tgd-track__step h4 { font-size: 20px; font-weight: 500; margin: 0 0 9px; line-height: 1.35; }
.tgd-track__who {
	font-size: 14.5px; color: var(--tgd-muted); margin: 0 0 14px; line-height: 1.6;
}
.tgd-track__who b { color: var(--tgd-ink); font-weight: 600; }

/* The skills list, two columns where there is room */
.tgd-track__skills {
	list-style: none; margin: 0 0 16px; padding: 0;
	columns: 2; column-gap: 32px;
}
.tgd-track__skills li {
	position: relative; padding-left: 20px; margin-bottom: 7px;
	font-size: 15px; line-height: 1.55; break-inside: avoid;
}
.tgd-track__skills li::before {
	content: ""; position: absolute; left: 0; top: 8px; width: 7px; height: 7px;
	background: var(--tgd-yellow); border: 1.5px solid var(--tgd-ink); border-radius: 50%;
}
/* What they walk out with — the part buyers actually scan for */
.tgd-track__make {
	border-top: 1px solid var(--tgd-line); padding-top: 13px;
	font-size: 15px; line-height: 1.6;
}
.tgd-track__make b { font-weight: 600; }
.tgd-track__cta {
	display: inline-flex; align-items: center; gap: 7px; margin-top: 13px;
	font-size: 15px; font-weight: 600; border-bottom: 2px solid var(--tgd-ink);
	padding-bottom: 1px;
}
.tgd-track__note {
	margin-top: 6px; font-size: 15px; color: var(--tgd-muted);
	background: var(--tgd-cream); border-radius: 10px; padding: 14px 18px;
}

@media (max-width: 767px) {
	.tgd-track { padding-left: 38px; }
	.tgd-track::before { left: 12px; }
	.tgd-track__node { left: -38px; width: 27px; height: 27px; font-size: 13px; top: 22px; }
	.tgd-track__step { padding: 20px 20px 18px; }
	.tgd-track__skills { columns: 1; }
	.tgd-track__step h4 { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .tgd-track__step { transition: none; } }

/* ==========================================================================
   STUDENT PROGRAMME CARDS — two columns, expandable
   Nine programmes with up to nine modules each is far too much to show flat.

   The footer row replaces an earlier text line that read "4 modules and a
   final project". That sentence competed with a separate + button for the
   same job and carried no visual weight. The row now SHOWS the count as a
   strip of numbered pips plus a trophy for the final project — the reader
   sees the depth of a programme without reading a word, and the pips
   foreshadow the numbered spine that appears when the card opens.

   One affordance, not two: the whole footer is the control, so the title
   gets the full card width back.

   Height animates with grid-template-rows 0fr -> 1fr rather than a guessed
   max-height, so a 4-module and a 9-module panel both open at their true
   height and at the same speed.

   Progressive enhancement: panels ship OPEN and are closed by
   js/tgd-custom.js §14, so every module stays in the page source.
   ========================================================================== */
.tgd-progs { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.tgd-prog {
	border: 2px solid var(--tgd-ink); border-radius: 14px;
	background: #fff; overflow: hidden; transition: box-shadow .18s ease;
}
.tgd-prog:has(.tgd-prog__head[aria-expanded="true"]) { box-shadow: 8px 8px 0 var(--tgd-yellow); }

.tgd-prog__head {
	width: 100%; background: none; border: 0; text-align: left; font: inherit;
	cursor: pointer; padding: 24px 26px 0; display: block; color: inherit;
}
.tgd-prog__head:hover { background: var(--tgd-cream); }
.tgd-prog__head:focus-visible { outline: 3px solid var(--tgd-yellow); outline-offset: -3px; }
.tgd-prog__meta {
	display: inline-block; font-size: 12px; letter-spacing: .07em; text-transform: uppercase;
	font-weight: 700; color: var(--tgd-ink); background: var(--tgd-yellow);
	border: 1.5px solid var(--tgd-ink); border-radius: 20px;
	padding: 2px 11px; margin-bottom: 13px;
}
.tgd-prog__head h4 { font-size: 20px; font-weight: 500; line-height: 1.35; margin: 0 0 9px; }
.tgd-prog__head > p { font-size: 15px; line-height: 1.6; color: var(--tgd-muted); margin: 0; }

/* ---- The footer: the count, shown rather than described ---- */
.tgd-prog__foot {
	display: flex; align-items: center; gap: 14px;
	margin-top: 18px; padding: 14px 0 18px;
	border-top: 1px solid var(--tgd-line);
}
.tgd-prog__pips { display: flex; align-items: center; gap: 4px; flex: 1; flex-wrap: wrap; }
.tgd-prog__pip {
	width: 20px; height: 20px; border-radius: 50%;
	border: 1.5px solid var(--tgd-ink); background: #fff;
	font-size: 10.5px; font-weight: 700; line-height: 1;
	display: grid; place-items: center; color: var(--tgd-ink);
	transition: background .18s ease;
}
.tgd-prog__head:hover .tgd-prog__pip { background: var(--tgd-cream); }
.tgd-prog__head[aria-expanded="true"] .tgd-prog__pip { background: var(--tgd-yellow); }
/* the trophy pip, set slightly apart so it reads as the end of the run */
.tgd-prog__pip--end {
	background: var(--tgd-yellow); margin-left: 7px; position: relative;
	width: 22px; height: 22px; font-size: 11px;
}
.tgd-prog__pip--end::before {
	content: ""; position: absolute; left: -7px; top: 50%;
	width: 5px; height: 1.5px; background: var(--tgd-line);
}
.tgd-prog__open {
	display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
	font-size: 14.5px; font-weight: 600; color: var(--tgd-ink);
}
.tgd-prog__open .lbl--less { display: none; }
.tgd-prog__head[aria-expanded="true"] .lbl--more { display: none; }
.tgd-prog__head[aria-expanded="true"] .lbl--less { display: inline; }
.tgd-prog__chev {
	width: 26px; height: 26px; border-radius: 50%;
	border: 1.5px solid var(--tgd-ink); background: #fff;
	display: grid; place-items: center; position: relative;
	transition: background .18s ease, transform .22s ease;
}
.tgd-prog__chev::after {
	content: ""; width: 7px; height: 7px; margin-top: -3px;
	border-right: 1.7px solid var(--tgd-ink); border-bottom: 1.7px solid var(--tgd-ink);
	transform: rotate(45deg);
}
.tgd-prog__head[aria-expanded="true"] .tgd-prog__chev { background: var(--tgd-yellow); transform: rotate(180deg); }
.tgd-prog__head:hover .tgd-prog__chev { background: var(--tgd-yellow); }

/* ---- The panel ---- */
.tgd-prog__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.tgd-prog__body[data-open="true"] { grid-template-rows: 1fr; }
.tgd-prog__body.is-static { grid-template-rows: 1fr; }
.tgd-prog__clip { overflow: hidden; min-height: 0; }
.tgd-prog__inner { padding: 2px 26px 24px; }
.tgd-prog__inner h5 {
	font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase;
	color: var(--tgd-muted); font-weight: 700; margin: 18px 0 13px;
}
.tgd-prog__facts { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.tgd-prog__fact {
	font-size: 13.5px; border: 1px solid var(--tgd-line);
	border-radius: 20px; padding: 3px 12px; background: var(--tgd-cream);
}
.tgd-prog__mods { list-style: none; margin: 0; padding: 0; position: relative; counter-reset: mod; }
.tgd-prog__mods::before {
	content: ""; position: absolute; left: 11px; top: 12px; bottom: 12px;
	width: 2px; background: var(--tgd-line);
}
.tgd-prog__mods li {
	position: relative; padding-left: 38px; margin-bottom: 15px; counter-increment: mod;
}
.tgd-prog__mods li:last-child { margin-bottom: 0; }
.tgd-prog__mods li::before {
	content: counter(mod); position: absolute; left: 0; top: 1px;
	width: 24px; height: 24px; border-radius: 50%;
	background: var(--tgd-yellow); border: 1.5px solid var(--tgd-ink);
	font-size: 12px; font-weight: 700; display: grid; place-items: center;
}
.tgd-prog__mods b { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.45; margin-bottom: 3px; }
.tgd-prog__mods span { display: block; font-size: 14.5px; line-height: 1.6; color: var(--tgd-muted); }

.tgd-prog__final {
	margin-top: 22px; background: var(--tgd-cream);
	border: 1.5px solid var(--tgd-ink); border-radius: 12px;
	padding: 17px 20px; display: flex; gap: 14px; align-items: flex-start;
}
.tgd-prog__final i { font-size: 19px; line-height: 1.3; flex-shrink: 0; }
.tgd-prog__final h6 {
	font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase;
	font-weight: 700; margin: 0 0 4px; color: var(--tgd-muted);
}
.tgd-prog__final p { margin: 0; font-size: 15.5px; line-height: 1.6; }

@media (max-width: 991px) { .tgd-progs { grid-template-columns: 1fr; } }
@media (max-width: 575px) {
	.tgd-prog__head { padding: 20px 20px 0; }
	.tgd-prog__inner { padding: 2px 20px 20px; }
	.tgd-prog__head h4 { font-size: 18px; }
	.tgd-prog__mods li { padding-left: 34px; }
	.tgd-prog__final { flex-direction: column; gap: 9px; }
	.tgd-prog__open .lbl--more, .tgd-prog__open .lbl--less { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	.tgd-prog__body, .tgd-prog__chev, .tgd-prog__pip { transition: none; }
}

/* ==========================================================================
   LEAD TRAINER — featured profile
   Charmaine's bio runs to three paragraphs and roughly 870 characters; the
   associates run to one paragraph and 200–400. Putting them in the same
   3-across grid made her cell two to four times taller than its neighbours
   and left a ragged row. Her three paragraphs were also inside a single <p>,
   which HTML collapses into one run-on block.

   She now gets a horizontal featured card above the grid, which suits a
   longer bio and reads as the role it is. The associates keep the even grid.
   ========================================================================== */
.tgd-lead {
	display: grid; grid-template-columns: minmax(0,2fr) minmax(0,3fr); gap: 0;   /* photo 40%: the source is 600x600, 50% blew it up past 650px */
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	background: #fff; overflow: hidden; box-shadow: 10px 10px 0 var(--tgd-yellow);
}
.tgd-lead__photo { position: relative; background: var(--tgd-cream); }
.tgd-lead__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.tgd-lead__badge {
	position: absolute; left: 0; bottom: 0;
	background: var(--tgd-ink); color: #fff;
	font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
	font-weight: 700; padding: 7px 16px;
}
.tgd-lead__body { padding: 36px 40px 34px; border-left: 2px solid var(--tgd-ink); }
.tgd-lead__name { font-size: 32px; font-weight: 500; margin: 0 0 5px; line-height: 1.2; }
.tgd-lead__role {
	font-size: 16px; color: var(--tgd-muted); margin-bottom: 20px;
	padding-bottom: 20px; border-bottom: 1px solid var(--tgd-line);
}
.tgd-lead__body p { font-size: 16.5px; line-height: 1.75; margin: 0 0 16px; }
.tgd-lead__body p:last-of-type { margin-bottom: 0; }

/* The numbers a client scans before reading anything */
.tgd-lead__stats {
	display: flex; flex-wrap: wrap; gap: 0;
	border: 1.5px solid var(--tgd-ink); border-radius: 10px;
	overflow: hidden; margin: 22px 0 24px;
}
.tgd-lead__stats div {
	flex: 1 1 0; min-width: 120px; padding: 13px 18px;
	border-right: 1px solid var(--tgd-line);
}
.tgd-lead__stats div:last-child { border-right: 0; }
.tgd-lead__stats strong { display: block; font-size: 21px; line-height: 1.15; font-weight: 600; }
.tgd-lead__stats span { display: block; font-size: 12.5px; color: var(--tgd-muted); margin-top: 3px; }

.tgd-lead__tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 24px 0 22px; padding: 0; list-style: none; }
.tgd-lead__tags li {
	font-size: 13px; border: 1px solid var(--tgd-line); border-radius: 20px;
	padding: 3px 12px; background: var(--tgd-cream);
}

@media (max-width: 991px) {
	.tgd-lead { grid-template-columns: 1fr; }
	.tgd-lead__photo { aspect-ratio: 16 / 10; }
	.tgd-lead__body { border-left: 0; border-top: 2px solid var(--tgd-ink); padding: 28px 26px 26px; }
	.tgd-lead__name { font-size: 27px; }
}
@media (max-width: 575px) {
	.tgd-lead { box-shadow: 7px 7px 0 var(--tgd-yellow); }
	.tgd-lead__stats div { min-width: 50%; flex: 1 1 50%; }
	.tgd-lead__body { padding: 24px 20px 22px; }
}

/* ---------------------------------------------------------------------------
   §24  Plain badge + trainer credential chips          (added v19, 27 Oct 2026)
   --------------------------------------------------------------------------- */

/* A white badge, stated explicitly so it survives next to --dark and --cat
   in the same chip row. */
.tgd-badge--plain {
	background: #fff; color: var(--tgd-ink); border-color: var(--tgd-ink);
}
.tgd-programme-card--dark .tgd-badge--plain {
	background: #fff; color: #000; border-color: #fff;
}

/* Credentials on an associate trainer card. Small, quiet, and set apart from
   the bio so the letters read as qualifications rather than prose. */
.tgd-person__creds {
	display: flex; flex-wrap: wrap; gap: 6px;
	list-style: none; margin: 14px 0 16px; padding: 0;
}
.tgd-person__creds li {
	font-size: 11px; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; line-height: 1;
	padding: 6px 10px; border-radius: 4px;
	border: 1.5px solid var(--tgd-ink); color: var(--tgd-ink);
	background: var(--tgd-cream);
}

/* The lead card is now a half-and-half split, so the portrait carries real
   weight. The photo fills its half; object-fit crops rather than letterboxes. */
.tgd-lead__photo { min-height: 100%; }
/* With the body on half the width, four stat tiles in a row are cramped.
   Let them fall into a 2x2 block instead. */
@media (min-width: 992px) and (max-width: 1599px) {
	.tgd-lead__stats div { flex: 1 1 50%; min-width: 50%; }
}

/* ---------------------------------------------------------------------------
   §25  Differentiation band — index.html                (added v19, 27 Oct 2026)

   Replaces the twelve-tile service grid. Four unequal cards: the tall one on
   the left carries the strongest claim, and the two small cards on the right
   of row two act as supporting evidence rather than equal siblings. An ink
   strip closes the band and carries the only CTA.
   --------------------------------------------------------------------------- */

.tgd-diff__lead {
	font-size: 18px; line-height: 1.65; color: #3d3d3d; margin: 0;
	padding-left: 22px; border-left: 3px solid var(--tgd-yellow);
}

.tgd-diff {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 20px;
}

.tgd-diff__card {
	grid-column: span 4;
	display: flex; flex-direction: column;
	padding: 34px 34px 32px;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	background: #fff;
	position: relative; overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
}
.tgd-diff__card:hover { transform: translateY(-4px); box-shadow: 8px 8px 0 var(--tgd-yellow); }

/* Row 1 col 1, spanning both rows: the ten-person cap. */
.tgd-diff__card--tall {
	grid-column: span 5; grid-row: span 2;
	background: var(--tgd-cream);
	justify-content: flex-start;
	padding: 44px 40px 40px;
}
.tgd-diff__card--yellow {
	grid-column: span 7;
	background: var(--tgd-yellow);
	justify-content: center;
}
/* Row 2 beside the tall card has seven columns to fill: 3 + 4. */
.tgd-diff__card--sm { grid-column: span 3; }
.tgd-diff__card--ink {
	background: var(--tgd-ink); color: #fff; border-color: var(--tgd-ink);
}
.tgd-diff__card--ink p { color: rgba(255,255,255,.9); }
.tgd-diff__card--ink .tgd-diff__label { color: var(--tgd-yellow); }
.tgd-diff__card--ink:hover { box-shadow: 8px 8px 0 var(--tgd-yellow); }

/* The figures. Recoleta, oversized, set tight so the number is the picture. */
.tgd-diff__fig {
	font-family: 'Recoleta', Georgia, serif;
	font-size: 64px; line-height: .9; letter-spacing: -.02em;
	margin-bottom: 10px;
}
.tgd-diff__fig span { font-size: .42em; letter-spacing: 0; margin-left: 6px; vertical-align: .55em; }
.tgd-diff__card--tall .tgd-diff__fig { font-size: 120px; }

.tgd-diff__label {
	font-size: 12px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: #6a6a6a; margin-bottom: 16px;
}
.tgd-diff__card--tall .tgd-diff__label { font-size: 13px; margin-bottom: 22px; }

.tgd-diff__kicker {
	font-family: 'Recoleta', Georgia, serif;
	font-size: 36px; line-height: 1.15; letter-spacing: -.01em;
	margin-bottom: 16px; color: var(--tgd-ink);
}

.tgd-diff__card p { font-size: 16px; line-height: 1.7; color: #3d3d3d; margin: 0; }
.tgd-diff__card--tall p { font-size: 17px; }
.tgd-diff__card--yellow p { color: #1a1a1a; font-size: 17px; }
.tgd-diff__card--ink p { color: #fff; }   /* after the card text colour above, so the black card's text stays white */

/* A short yellow rule anchored to the bottom of the tall card, so the extra
   height reads as deliberate rather than as leftover space. */
.tgd-diff__rule { display: block; margin-top: auto; padding-top: 30px; }
.tgd-diff__rule::after {
	content: ""; display: block; width: 76px; height: 5px;
	background: var(--tgd-yellow); border-radius: 3px;
}

/* Closing strip. */
.tgd-diff__strip {
	grid-column: span 12;
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
	padding: 26px 34px;
	background: var(--tgd-ink); color: #fff;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	text-decoration: none; transition: background .25s ease;
}
.tgd-diff__strip:hover { background: #1c1c1c; }
.tgd-diff__strip-text { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.8); max-width: 72ch; }
.tgd-diff__strip-cta {
	flex: none; font-weight: 600; font-size: 15px; color: var(--tgd-yellow);
	white-space: nowrap;
}
.tgd-diff__strip-cta i { transition: transform .25s ease; display: inline-block; }
.tgd-diff__strip:hover .tgd-diff__strip-cta i { transform: translateX(5px); }

@media (max-width: 1199px) {
	.tgd-diff__card--tall .tgd-diff__fig { font-size: 96px; }
	.tgd-diff__fig { font-size: 54px; }
	.tgd-diff__kicker { font-size: 30px; }
}
@media (max-width: 991px) {
	/* Two columns: the tall card drops its row span and runs half width. */
	.tgd-diff__card, .tgd-diff__card--tall, .tgd-diff__card--yellow,
	.tgd-diff__card--sm { grid-column: span 6; }
	.tgd-diff__card--tall { grid-row: auto; }
}
@media (max-width: 767px) {
	.tgd-diff { gap: 16px; }
	.tgd-diff__card, .tgd-diff__card--tall, .tgd-diff__card--yellow,
	.tgd-diff__card--sm, .tgd-diff__strip { grid-column: span 12; }
	.tgd-diff__card { padding: 28px 24px 26px; }
	.tgd-diff__card--tall { padding: 32px 24px 28px; }
	.tgd-diff__card--tall .tgd-diff__fig { font-size: 84px; }
	.tgd-diff__strip { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; }
	.tgd-diff__lead { font-size: 16.5px; }
}

/* ---------------------------------------------------------------------------
   §26  Public-run interest register                     (added v19, 27 Oct 2026)

   Two panels inside one bordered box: the pitch on cream, the form on white.
   The ten pips are the whole idea made visible — ten registrations opens a run.
   --------------------------------------------------------------------------- */

.tgd-register {
	display: grid; grid-template-columns: 1fr 1fr;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	overflow: hidden; background: #fff;
	box-shadow: 10px 10px 0 var(--tgd-yellow);
}
.tgd-register__pitch {
	background: var(--tgd-cream);
	padding: 46px 44px 42px;
	border-right: 2px solid var(--tgd-ink);
}
.tgd-register__form { padding: 44px 42px 40px; }

.tgd-register__title {
	font-size: 32px; font-weight: 500; line-height: 1.2;
	color: var(--tgd-ink); margin: 8px 0 18px;
}
.tgd-register__pitch > p { font-size: 17px; line-height: 1.7; color: #3d3d3d; margin: 0; }

/* Ten pips. Nine outlined, the tenth filled, so the target reads at a glance. */
.tgd-register__meter { display: flex; gap: 8px; margin: 30px 0 10px; }
.tgd-register__pip {
	width: 22px; height: 22px; border-radius: 50%;
	border: 1.5px solid var(--tgd-ink); background: transparent;
}
.tgd-register__pip--last { background: var(--tgd-yellow); }
.tgd-register__meter-label {
	font-size: 12px; font-weight: 700; letter-spacing: .1em;
	text-transform: uppercase; color: #6a6a6a; margin-bottom: 26px;
}

.tgd-register__steps {
	list-style: none; counter-reset: reg; padding: 0; margin: 0 0 24px;
}
.tgd-register__steps li {
	counter-increment: reg; position: relative;
	padding-left: 40px; margin-bottom: 15px;
	font-size: 15.5px; line-height: 1.6; color: #3d3d3d;
}
.tgd-register__steps li::before {
	content: counter(reg);
	position: absolute; left: 0; top: 1px;
	width: 26px; height: 26px; border-radius: 50%;
	background: var(--tgd-ink); color: #fff;
	font-size: 12px; font-weight: 700;
	display: grid; place-items: center;
}
.tgd-register__steps b { color: var(--tgd-ink); font-weight: 600; }

.tgd-register__note {
	font-size: 14.5px; line-height: 1.6; color: #6a6a6a; margin: 0;
	padding-top: 20px; border-top: 1px solid var(--tgd-line);
}
.tgd-register__note a { color: var(--tgd-ink); text-decoration: underline; }

.tgd-register__fineprint {
	font-size: 13.5px; line-height: 1.55; color: #7a7a7a;
	margin: 18px 0 0; text-align: center;
}

/* Match the select to the theme's text inputs, which Jano styles but leaves
   selects out of. */
.tgd-select {
	width: 100%; height: 56px;
	border: 1px solid var(--tgd-line); border-radius: 8px;
	padding: 0 42px 0 20px; font-size: 16px; color: var(--tgd-ink);
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23111' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	appearance: none; -webkit-appearance: none;
}
.tgd-select:focus { outline: none; border-color: var(--tgd-ink); }

@media (max-width: 991px) {
	.tgd-register { grid-template-columns: 1fr; box-shadow: 7px 7px 0 var(--tgd-yellow); }
	.tgd-register__pitch {
		border-right: 0; border-bottom: 2px solid var(--tgd-ink);
		padding: 34px 28px 30px;
	}
	.tgd-register__form { padding: 32px 28px 30px; }
	.tgd-register__title { font-size: 27px; }
}
@media (max-width: 480px) {
	.tgd-register__meter { gap: 6px; }
	.tgd-register__pip { width: 18px; height: 18px; }
}

/* Jano styles text inputs only inside .input-bg-group, which this form does not
   use. Style them here instead, to match .tgd-select exactly. */
#public-run-form input[type="text"],
#public-run-form input[type="email"],
#public-run-form input[type="number"] {
	width: 100%; height: 56px;
	border: 1px solid var(--tgd-line); border-radius: 8px;
	padding: 0 20px; font-size: 16px; color: var(--tgd-ink);
	background: #fff;
}
#public-run-form input::placeholder { color: #9a9a9a; }
#public-run-form input:focus { outline: none; border-color: var(--tgd-ink); }
#public-run-form label { font-size: 14px; font-weight: 500; color: #5a5a5a; margin-bottom: 8px; }
#public-run-form .tgd-form__step {
	font-size: 13px; letter-spacing: .12em; color: var(--tgd-ink);
	padding-bottom: 16px; margin-bottom: 26px;
	border-bottom: 2px solid var(--tgd-ink);
}
/* The spam trap must stay out of sight and out of the tab order. */
.tgd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Portrait illustration beside "Skills that lead somewhere". The img carries
   width/height attributes to reserve space while loading, so it needs an
   explicit height:auto — otherwise .w-100 sets the width and the height
   attribute sets the height, and the picture is stretched. */
.tgd-illus-tall img { height: auto; display: block; aspect-ratio: 2 / 3; }
.tgd-illus-tall { max-width: 420px; margin-inline: auto; }
/* Desktop: the artwork is sized by the height of the text beside it (85% of it, centred against the text).
   The column stretches with the row. The drawing fills the middle 75% of the image width (12.5%
   plain margin each side), so cover is safe while the box is at least ~0.5 as wide as it is tall:
   ≥1400px it fills the full height edge to edge; 992–1399px the column is too narrow for that,
   so the whole drawing is shown, centred against the text. Image background matches the section. */
@media (min-width: 992px) {
	.tgd-illus-tall { max-width: none; width: 100%; height: 85%; }
	.tgd-illus-tall img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; object-position: center; }
}
@media (min-width: 1400px) {
	.tgd-illus-tall img { object-fit: cover; }
}

/* ---------------------------------------------------------------------------
   §27  The story — about.html                           (added v21, 27 Oct 2026)

   Not a timeline. Chapters sit in two staggered columns; the rings beside each
   one show how far the work reached at that point, widening as you read down.
   The 2017 card breaks the pattern because that is where the story turns.
   --------------------------------------------------------------------------- */

.tgd-story-band { background: var(--tgd-cream); padding: 90px 0 80px; }
.tgd-story__lead {
	font-size: 18px; line-height: 1.65; color: #3d3d3d; margin: 0;
	padding-left: 22px; border-left: 3px solid var(--tgd-yellow);
}

.tgd-chapters { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

.tgd-chapter {
	display: grid; grid-template-columns: 112px 1fr; gap: 26px;
	align-items: start;
	padding: 32px 32px 30px;
	background: #fff;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	transition: transform .25s ease, box-shadow .25s ease;
}
.tgd-chapter:hover { transform: translateY(-4px); box-shadow: 8px 8px 0 var(--tgd-yellow); }

.tgd-chapter__mark { text-align: center; }
.tgd-chapter__reach {
	display: block; margin-top: 12px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: #6a6a6a; line-height: 1.45;
}

.tgd-chapter__year {
	font-size: 12px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--tgd-ink); margin-bottom: 10px;
}
.tgd-chapter h4 {
	font-size: 21px; font-weight: 500; line-height: 1.3;
	color: var(--tgd-ink); margin: 0 0 12px;
}
.tgd-chapter p { font-size: 16px; line-height: 1.7; color: #3d3d3d; margin: 0; }

/* The rings. Everything inside the reach is ink, the edge of it is yellow and
   heavier, everything beyond is a faint dash — the distance not yet travelled. */
.tgd-rings { display: block; margin: 0 auto; overflow: visible; }
.tgd-rings circle { fill: none; }
.tgd-rings__in  { stroke: var(--tgd-ink); stroke-width: 1.5; opacity: .5; }
.tgd-rings__at  { stroke: var(--tgd-yellow); stroke-width: 4; }
.tgd-rings__out { stroke: #cfc7bf; stroke-width: 1.25; stroke-dasharray: 3 5; }
.tgd-rings__dot { fill: var(--tgd-ink); stroke: none; }

/* The 2017 card: full width, yellow, and the only one without rings, because
   this chapter is not about reaching further. */
.tgd-chapter--pivot {
	grid-column: 1 / -1;
	grid-template-columns: 1.35fr 1fr;
	gap: 40px; align-items: center;
	background: var(--tgd-yellow);
	padding: 38px 40px 36px;
}
.tgd-chapter--pivot:hover { transform: none; box-shadow: none; }
.tgd-chapter--pivot p { color: #1a1a1a; font-size: 17px; }
.tgd-chapter--pivot h4 { font-size: 27px; }
.tgd-chapter__flag {
	display: inline-block; margin-bottom: 14px;
	padding: 6px 12px; border-radius: 4px;
	background: var(--tgd-ink); color: #fff;
	font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.tgd-chapter__quote {
	margin: 0; padding: 0 0 0 28px;
	border-left: 4px solid var(--tgd-ink);
}
.tgd-chapter__quote p {
	font-family: 'Recoleta', Georgia, serif;
	font-size: 25px; line-height: 1.3; color: var(--tgd-ink); margin: 0;
}

/* Closing strip. */
.tgd-story__close {
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
	margin-top: 20px; padding: 26px 34px;
	background: var(--tgd-ink); color: #fff;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	text-decoration: none; transition: background .25s ease;
}
.tgd-story__close:hover { background: #1c1c1c; }
.tgd-story__close-text { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.88); max-width: 72ch; }
.tgd-story__close-cta {
	flex: none; font-weight: 600; font-size: 15px; color: var(--tgd-yellow); white-space: nowrap;
}
.tgd-story__close-cta i { display: inline-block; transition: transform .25s ease; }
.tgd-story__close:hover .tgd-story__close-cta i { transform: translateX(5px); }

@media (max-width: 991px) {
	.tgd-story-band { padding: 60px 0 55px; }
	.tgd-chapters { grid-template-columns: 1fr; }
	.tgd-chapter--pivot { grid-template-columns: 1fr; gap: 26px; align-items: start; }
	.tgd-chapter__quote { padding-left: 22px; }
	.tgd-chapter__quote p { font-size: 22px; }
}
@media (max-width: 575px) {
	.tgd-chapter { grid-template-columns: 1fr; gap: 18px; padding: 26px 22px 24px; }
	/* Rings and reach label sit side by side once the card is a single column. */
	.tgd-chapter__mark { display: flex; align-items: center; gap: 14px; text-align: left; }
	.tgd-chapter__mark .tgd-rings { margin: 0; flex: none; }
	.tgd-chapter__reach { margin-top: 0; }
	.tgd-chapter--pivot { padding: 28px 22px 26px; }
	.tgd-chapter--pivot h4 { font-size: 23px; }
	.tgd-story__close { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; }
	.tgd-story__lead { font-size: 16.5px; }
}

/* ---------------------------------------------------------------------------
   §26  Webinar alerts ("Get notified") — webinars.html     (added 28 Oct 2026)

   Same layout language as the §25 diff band and the ladder: 16px radius, 2px
   ink border, yellow offset shadow on interaction. Type stays in the site's
   regular font, as the section had before. One card split in two: a yellow panel that says what
   you get, and a white panel that asks for three things.
   --------------------------------------------------------------------------- */

.tgd-notify {
	display: grid; grid-template-columns: 5fr 7fr;
	border: 2px solid var(--tgd-ink); border-radius: 16px;
	background: #fff; overflow: hidden;
	box-shadow: 10px 10px 0 var(--tgd-ink);
}

/* Left: the promise */
.tgd-notify__intro {
	display: flex; flex-direction: column;
	background: var(--tgd-yellow);
	border-right: 2px solid var(--tgd-ink);
	padding: 48px 44px 44px;
}
.tgd-notify__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
	font-size: 14px; font-weight: 500;
	color: var(--tgd-ink); background: #fff;
	border: 1.5px solid var(--tgd-ink); border-radius: 30px;
	padding: 6px 14px 5px; margin-bottom: 26px;
}
.tgd-notify__title { font-size: 36px; margin: 0 0 15px; }
.tgd-notify__lead { margin: 0; }
.tgd-notify__facts {
	margin: auto 0 0; padding-top: 34px;
}
.tgd-notify__facts li {
	display: flex; align-items: flex-start; gap: 12px;
	font-size: 15.5px; line-height: 1.5; color: #1a1a1a;
	padding: 11px 0; border-top: 1.5px solid rgba(0,0,0,.18);
}
.tgd-notify__facts li i {
	flex: none; display: inline-grid; place-items: center;
	width: 22px; height: 22px; margin-top: 1px;
	border-radius: 50%; background: var(--tgd-ink); color: var(--tgd-yellow);
	font-size: 13px;
}

/* Right: the form */
.tgd-notify__form { display: flex; flex-direction: column; justify-content: center; padding: 48px 48px 40px; }
.tgd-notify__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; }
.tgd-notify__field--wide { grid-column: 1 / -1; }
.tgd-notify__field label {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	font-size: 15px; font-weight: 500;
	color: var(--tgd-ink); margin-bottom: 8px;
}
.tgd-notify__field label span {
	display: inline-flex; align-items: center; gap: 6px;
	font-weight: 400; font-size: 14px; color: #6a6a6a;
}
.tgd-notify__field label span i { color: #1DA851; font-size: 14px; }
.tgd-notify__field input {
	display: block; width: 100%; height: 58px; padding: 0 18px;
	font-size: 17px; color: var(--tgd-ink);
	background: var(--tgd-cream); border: 2px solid var(--tgd-ink); border-radius: 10px;
	outline: none; transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.tgd-notify__field input::placeholder { color: rgba(0,0,0,.38); }
.tgd-notify__field input:hover { background: #fff; }
.tgd-notify__field input:focus { background: #fff; box-shadow: 5px 5px 0 var(--tgd-yellow); transform: translate(-2px, -2px); }
.tgd-notify__form.was-validated input:invalid { border-color: #B32020; background: #FFF5F5; box-shadow: none; transform: none; }

.tgd-notify__btn {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	width: 100%; height: 60px; margin-top: 28px;
	font-size: 17px; font-weight: 600; color: #fff;
	background: var(--tgd-ink); border: 2px solid var(--tgd-ink); border-radius: 10px;
	transition: transform .2s ease, box-shadow .2s ease;
}
.tgd-notify__btn i { color: var(--tgd-yellow); transition: transform .2s ease; }
.tgd-notify__btn:hover, .tgd-notify__btn:focus-visible { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--tgd-yellow); }
.tgd-notify__btn:hover i { transform: translateX(5px); }
.tgd-notify__btn:disabled { opacity: .7; cursor: default; transform: none; box-shadow: none; }

.tgd-notify__note { font-size: 14px; line-height: 1.5; color: #6a6a6a; margin: 16px 0 0; text-align: center; }
.tgd-notify__note a { color: var(--tgd-ink); text-decoration: underline; text-underline-offset: 3px; }

.tgd-notify__form .messages:empty { display: none; }
.tgd-notify__form .messages.tgd-formmsg { margin: 18px 0 0; border-radius: 10px; }

@media (max-width: 1199px) {
	.tgd-notify__intro { padding: 40px 34px 36px; }
	.tgd-notify__form { padding: 40px 36px 34px; }
}
@media (max-width: 991px) {
	.tgd-notify { grid-template-columns: 1fr; box-shadow: 8px 8px 0 var(--tgd-ink); }
	.tgd-notify__intro { border-right: 0; border-bottom: 2px solid var(--tgd-ink); }
	.tgd-notify__facts { padding-top: 26px; }
}
@media (max-width: 575px) {
	.tgd-notify { box-shadow: 6px 6px 0 var(--tgd-ink); }
	.tgd-notify__intro { padding: 32px 24px 26px; }
	.tgd-notify__form { padding: 30px 24px 28px; }
	.tgd-notify__title { font-size: 30px; }
	.tgd-notify__fields { grid-template-columns: 1fr; gap: 18px; }
	.tgd-notify__field label { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
	.tgd-notify__field input, .tgd-notify__btn, .tgd-notify__btn i { transition: none; }
}

/* ---------------------------------------------------------------------------
   §28  Learning pathway — interactive              (added v22, 28 Oct 2026)

   Replaces both earlier pathway designs (.tgd-pathway horizontal cards and
   .tgd-track long vertical list). One accordion, used on every course page and
   placed above the upcoming runs, so a visitor sees which level they are
   looking at before they look at dates.

   The panels ship OPEN in the markup and are closed by js/tgd-custom.js §15,
   so the module content is in the page source for search engines and still
   readable with JavaScript off.
   --------------------------------------------------------------------------- */

.tgd-path { list-style: none; margin: 0; padding: 0 0 0 54px; position: relative; }

/* The spine the level markers sit on. */
.tgd-path::before {
	content: ""; position: absolute; left: 17px; top: 26px; bottom: 26px;
	width: 2px; background: linear-gradient(to bottom, var(--tgd-yellow), var(--tgd-ink));
}

.tgd-path__step {
	position: relative; margin-bottom: 14px;
	border: 2px solid var(--tgd-ink); border-radius: 14px;
	background: #fff; overflow: hidden;
	transition: box-shadow .25s ease;
}
.tgd-path__step:last-child { margin-bottom: 0; }
.tgd-path__step--here { background: var(--tgd-cream); }
.tgd-path__step--here:has(.tgd-path__head[aria-expanded="true"]),
.tgd-path__step:has(.tgd-path__head[aria-expanded="true"]) {
	box-shadow: 7px 7px 0 var(--tgd-yellow);
}
/* Not yet running: dashed, so an unbuilt course cannot be mistaken for one
   you can book today. */
.tgd-path__step--dev { border-style: dashed; background: #FCFCFB; }

/* Level marker, pinned to the spine. */
.tgd-path__lvl {
	position: absolute; left: -54px; top: 22px;
	width: 36px; height: 36px; border-radius: 50%;
	border: 2px solid var(--tgd-ink); background: #fff;
	display: grid; place-items: center;
	font-size: 14px; font-weight: 700; color: var(--tgd-ink);
	z-index: 1;
}
.tgd-path__step--here .tgd-path__lvl { background: var(--tgd-ink); color: var(--tgd-yellow); }
.tgd-path__step--dev .tgd-path__lvl { border-style: dashed; color: #8a8a8a; }

/* The clickable row. */
.tgd-path__head {
	display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center;
	width: 100%; text-align: left;
	padding: 20px 24px; border: 0; background: none; cursor: pointer;
	font: inherit; color: inherit;
}
.tgd-path__head:focus-visible { outline: 3px solid var(--tgd-ink); outline-offset: -3px; }

.tgd-path__top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 7px; }
.tgd-path__tag {
	font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	padding: 4px 9px; border-radius: 4px;
	background: var(--tgd-ink); color: #fff;
}
.tgd-path__step--dev .tgd-path__tag { background: #8a8a8a; }
.tgd-path__here {
	font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	padding: 4px 9px; border-radius: 4px;
	background: var(--tgd-yellow); color: #000;
}

.tgd-path__title { display: block; font-size: 19px; font-weight: 500; line-height: 1.35; color: var(--tgd-ink); }
.tgd-path__meta {
	display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px;
	font-size: 13.5px; color: #6a6a6a;
}
.tgd-path__meta b { color: var(--tgd-ink); font-weight: 600; }

/* Open / close affordance. */
.tgd-path__open {
	display: inline-flex; align-items: center; gap: 9px;
	font-size: 13.5px; font-weight: 600; color: var(--tgd-ink); white-space: nowrap;
}
.tgd-path__chev {
	width: 26px; height: 26px; border-radius: 50%;
	border: 1.5px solid var(--tgd-ink); position: relative; flex: none;
	transition: transform .3s ease, background .2s ease;
}
.tgd-path__chev::before, .tgd-path__chev::after {
	content: ""; position: absolute; left: 50%; top: 50%; background: var(--tgd-ink);
}
.tgd-path__chev::before { width: 11px; height: 1.8px; transform: translate(-50%, -50%); }
.tgd-path__chev::after  { width: 1.8px; height: 11px; transform: translate(-50%, -50%); transition: opacity .25s ease; }
.tgd-path__head[aria-expanded="true"] .tgd-path__chev { background: var(--tgd-yellow); }
.tgd-path__head[aria-expanded="true"] .tgd-path__chev::after { opacity: 0; }
.tgd-path__head .lbl--less, .tgd-path__head[aria-expanded="true"] .lbl--more { display: none; }
.tgd-path__head[aria-expanded="true"] .lbl--less { display: inline; }

/* Panel. grid-template-rows animates to the panel's true height, so a step
   with five skills and one with nine open at the same speed. */
.tgd-path__body { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .3s ease; }
.tgd-path__body[data-open="false"] { grid-template-rows: 0fr; }
.tgd-path__clip { overflow: hidden; min-height: 0; }
.tgd-path__inner { padding: 2px 24px 24px; }
.tgd-path__step--here .tgd-path__inner,
.tgd-path__inner { border-top: 1px solid var(--tgd-line); margin-top: 0; padding-top: 20px; }

.tgd-path__who { font-size: 15.5px; line-height: 1.6; color: #3d3d3d; margin: 0 0 14px; }
.tgd-path__who b { color: var(--tgd-ink); font-weight: 600; }

.tgd-path__skills {
	list-style: none; margin: 0 0 16px; padding: 0;
	columns: 2; column-gap: 34px;
}
.tgd-path__skills li {
	position: relative; padding-left: 20px; margin-bottom: 7px;
	font-size: 15px; line-height: 1.5; color: #3d3d3d;
	break-inside: avoid;
}
.tgd-path__skills li::before {
	content: ""; position: absolute; left: 0; top: 8px;
	width: 7px; height: 7px; background: var(--tgd-yellow);
	border: 1px solid var(--tgd-ink); border-radius: 50%;
}

.tgd-path__make {
	font-size: 15.5px; line-height: 1.6; color: var(--tgd-ink); margin: 0;
	padding: 12px 16px; background: rgba(255,206,76,.22); border-radius: 8px;
}
.tgd-path__make b { font-weight: 600; }

.tgd-path__note {
	display: block; margin-top: 12px;
	font-size: 13.5px; line-height: 1.5; color: #7a7a7a; font-style: italic;
}
.tgd-path__go {
	display: inline-flex; align-items: center; gap: 7px; margin-top: 16px;
	font-size: 14.5px; font-weight: 600; color: var(--tgd-ink);
	border-bottom: 2px solid var(--tgd-yellow); padding-bottom: 2px;
	text-decoration: none;
}
.tgd-path__go i { transition: transform .2s ease; }
.tgd-path__go:hover i { transform: translateX(4px); }

.tgd-path__lead { font-size: 18px; line-height: 1.65; color: #3d3d3d; max-width: 76ch; }

@media (max-width: 767px) {
	.tgd-path { padding-left: 0; }
	.tgd-path::before { display: none; }
	.tgd-path__lvl { position: static; margin-bottom: 12px; }
	.tgd-path__head { grid-template-columns: 1fr; gap: 14px; padding: 18px 18px 16px; align-items: start; }
	.tgd-path__open { justify-content: flex-start; }
	.tgd-path__inner { padding: 18px 18px 20px; }
	.tgd-path__skills { columns: 1; }
	.tgd-path__title { font-size: 17.5px; }
	.tgd-path__lead { font-size: 16.5px; }
}

/* Price chip in the short pathway strip, and spacing between its cards.
   (Char, 28 Oct: "check the spacing as well".)                §28b */
.tgd-step__price { font-weight: 700; color: var(--tgd-ink); }
.tgd-pathway__track { gap: 20px; }
.tgd-step { padding: 24px 24px 22px; }
.tgd-step__meta { gap: 5px 14px; margin-top: 14px; }
.tgd-step__desc { margin-bottom: 0; }

/* The long pathway now sits low on the page, after the gallery, so it gets a
   little more air above it and a quieter lead-in. */
#pathway-detail { margin-top: 70px; }
#pathway-detail .tgd-path { margin-top: 8px; }
.tgd-path__step { margin-bottom: 16px; }
.tgd-path__head { padding: 22px 26px; }
.tgd-path__inner { padding: 22px 26px 26px; }

/* ---------------------------------------------------------------------------
   §29  Executive coaching                              (added v24, 28 Oct 2026)

   The premium end of the brand. Everywhere else TGD leads with yellow on
   white; this page leads with ink and gives the yellow one job — marking the
   thing you are meant to look at. More space, serif display type, nothing
   competing for attention. It should feel like the quiet room it describes.
   --------------------------------------------------------------------------- */

.tgd-exec-hero {
	background: #0C0C0C; color: #fff;
	/* Sits below the header rather than behind it: the wordmark is dark and
	   would disappear against this band. Same offset the course banners use. */
	margin-top: 150px;
	padding: 86px 0 0;
	position: relative; overflow: hidden;
}
@media (max-width: 991px) { .tgd-exec-hero { margin-top: 110px; padding-top: 56px; } }
/* A single slow arc of warm light behind the headline. No pattern, no shapes. */
.tgd-exec-hero::before {
	content: ""; position: absolute; inset: -40% -10% auto -10%; height: 150%;
	background: radial-gradient(60% 50% at 70% 35%, rgba(255,206,76,.17), transparent 70%);
	pointer-events: none;
}
.tgd-exec-hero > * { position: relative; }

.tgd-exec__eyebrow {
	font-size: 11.5px; font-weight: 700; letter-spacing: .22em;
	text-transform: uppercase; color: var(--tgd-yellow); margin-bottom: 26px;
}
.tgd-exec__h1 {
	font-family: 'Recoleta', Georgia, serif;
	font-size: clamp(42px, 6.2vw, 88px); line-height: 1.02; letter-spacing: -.02em;
	color: #fff; margin: 0 0 30px; font-weight: 400;
}
.tgd-exec__h1 em { font-style: normal; color: var(--tgd-yellow); }
.tgd-exec__strap {
	font-size: 20px; line-height: 1.6; color: rgba(255,255,255,.72);
	max-width: 58ch; margin: 0 0 46px;
}

/* Facts, laid along a hairline. */
.tgd-exec__facts {
	display: grid; grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255,255,255,.16);
	margin: 0 0 56px;
}
.tgd-exec__facts div { padding: 26px 26px 26px 0; }
.tgd-exec__facts div + div { border-left: 1px solid rgba(255,255,255,.16); padding-left: 26px; }
.tgd-exec__facts strong {
	display: block; font-family: 'Recoleta', Georgia, serif;
	font-size: 25px; font-weight: 400; color: #fff; margin-bottom: 7px;
}
.tgd-exec__facts span { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.6); }

.tgd-exec__cta {
	display: inline-flex; align-items: center; gap: 12px;
	padding: 17px 34px; border-radius: 100px;
	background: var(--tgd-yellow); color: #0C0C0C;
	font-size: 16px; font-weight: 600; text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.tgd-exec__cta:hover { color: #0C0C0C; transform: translateY(-2px); box-shadow: 0 12px 34px rgba(255,206,76,.26); }
.tgd-exec__cta i { transition: transform .2s ease; }
.tgd-exec__cta:hover i { transform: translateX(4px); }
.tgd-exec__under { font-size: 14px; color: rgba(255,255,255,.5); margin: 20px 0 0; }
.tgd-exec-hero__pad { padding-bottom: 110px; }

/* ---- section furniture, shared ---- */
.tgd-exec-sec { padding: 96px 0; }
.tgd-exec-sec--cream { background: var(--tgd-cream); }
.tgd-exec-sec--ink { background: #0C0C0C; color: #fff; }
.tgd-exec__kicker {
	font-size: 11.5px; font-weight: 700; letter-spacing: .2em;
	text-transform: uppercase; color: #8a8a8a; margin-bottom: 20px;
}
.tgd-exec-sec--ink .tgd-exec__kicker { color: var(--tgd-yellow); }
.tgd-exec__h2 {
	font-family: 'Recoleta', Georgia, serif; font-weight: 400;
	font-size: clamp(30px, 3.6vw, 46px); line-height: 1.14; letter-spacing: -.01em;
	color: var(--tgd-ink); margin: 0 0 24px;
}
.tgd-exec-sec--ink .tgd-exec__h2 { color: #fff; }
.tgd-exec__body { font-size: 18px; line-height: 1.72; color: #3d3d3d; max-width: 60ch; }
.tgd-exec-sec--ink .tgd-exec__body { color: rgba(255,255,255,.72); }
.tgd-exec__body p + p { margin-top: 20px; }

/* ---- subjects you can be coached on ---- */
.tgd-subjects { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--tgd-line); border: 1px solid var(--tgd-line); }
.tgd-subject {
	background: #fff; padding: 36px 34px 32px;
	transition: background .25s ease;
}
.tgd-subject:hover { background: var(--tgd-cream); }
.tgd-subject__n {
	font-family: 'Recoleta', Georgia, serif; font-size: 15px;
	color: #b0a99f; display: block; margin-bottom: 16px;
}
.tgd-subject h4 { font-size: 22px; font-weight: 500; color: var(--tgd-ink); margin: 0 0 12px; line-height: 1.3; }
.tgd-subject p { font-size: 15.5px; line-height: 1.65; color: #5a5a5a; margin: 0; }
.tgd-subject--open { background: var(--tgd-ink); }
.tgd-subject--open:hover { background: var(--tgd-ink); }
.tgd-subject--open h4 { color: #fff; }
.tgd-subject--open p { color: rgba(255,255,255,.68); }
.tgd-subject--open .tgd-subject__n { color: var(--tgd-yellow); }

/* ---- the two engagement shapes ---- */
.tgd-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.tgd-plan {
	border: 1px solid rgba(255,255,255,.2); border-radius: 18px;
	padding: 40px 38px 36px; background: rgba(255,255,255,.03);
	display: flex; flex-direction: column;
}
.tgd-plan--feature { border-color: var(--tgd-yellow); background: rgba(255,206,76,.07); }
.tgd-plan__n {
	font-family: 'Recoleta', Georgia, serif; font-size: 56px; line-height: 1;
	color: var(--tgd-yellow); margin-bottom: 6px;
}
.tgd-plan__u { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 22px; }
.tgd-plan h4 { font-size: 24px; font-weight: 500; color: #fff; margin: 0 0 14px; }
.tgd-plan > p { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.7); margin: 0 0 22px; }
.tgd-plan ul { list-style: none; margin: 0 0 24px; padding: 0; }
.tgd-plan li {
	position: relative; padding-left: 26px; margin-bottom: 11px;
	font-size: 15.5px; line-height: 1.55; color: rgba(255,255,255,.82);
}
.tgd-plan li::before {
	content: ""; position: absolute; left: 0; top: 8px; width: 9px; height: 9px;
	border-radius: 50%; background: var(--tgd-yellow);
}
.tgd-plan__foot { margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); font-size: 14.5px; color: rgba(255,255,255,.6); }

/* ---- the EA panel ---- */
.tgd-ea {
	display: grid; grid-template-columns: 1.15fr 1fr; gap: 0;
	border: 2px solid var(--tgd-ink); border-radius: 18px; overflow: hidden;
	background: #fff; box-shadow: 12px 12px 0 var(--tgd-yellow);
}
.tgd-ea__body { padding: 46px 46px 42px; }
.tgd-ea__aside { background: var(--tgd-cream); padding: 46px 42px; border-left: 2px solid var(--tgd-ink); }
.tgd-ea__aside h5 { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; margin: 0 0 20px; }
.tgd-ea__aside ul { list-style: none; margin: 0; padding: 0; }
.tgd-ea__aside li {
	position: relative; padding-left: 26px; margin-bottom: 15px;
	font-size: 15.5px; line-height: 1.55; color: #3d3d3d;
}
.tgd-ea__aside li::before {
	content: ""; position: absolute; left: 0; top: 7px; width: 9px; height: 9px;
	border: 1.5px solid var(--tgd-ink); background: var(--tgd-yellow); border-radius: 50%;
}

/* ---- discretion ---- */
.tgd-disc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.tgd-disc > div { padding-top: 24px; border-top: 2px solid var(--tgd-yellow); }
.tgd-disc h4 { font-size: 19px; font-weight: 500; color: var(--tgd-ink); margin: 0 0 10px; }
.tgd-disc p { font-size: 15.5px; line-height: 1.65; color: #5a5a5a; margin: 0; }

@media (max-width: 991px) {
	.tgd-exec-hero { padding-top: 140px; }
	.tgd-exec-hero__pad { padding-bottom: 80px; }
	.tgd-exec-sec { padding: 68px 0; }
	.tgd-exec__facts { grid-template-columns: 1fr 1fr; }
	.tgd-exec__facts div:nth-child(3) { border-left: 0; padding-left: 0; }
	.tgd-exec__facts div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.16); }
	.tgd-subjects, .tgd-plans, .tgd-disc { grid-template-columns: 1fr; }
	.tgd-ea { grid-template-columns: 1fr; box-shadow: 8px 8px 0 var(--tgd-yellow); }
	.tgd-ea__aside { border-left: 0; border-top: 2px solid var(--tgd-ink); }
	.tgd-ea__body, .tgd-ea__aside { padding: 34px 28px; }
	.tgd-exec__strap { font-size: 18px; }
}
@media (max-width: 575px) {
	.tgd-exec__facts { grid-template-columns: 1fr; }
	.tgd-exec__facts div + div { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
	.tgd-exec__cta { width: 100%; justify-content: center; }
	.tgd-subject { padding: 28px 24px 26px; }
	.tgd-plan { padding: 30px 26px 28px; }
}
