/* =============================================================================
   Direct Skills UAE — course-side pages
   Course listing and taxonomy landings · filter panel and phone drawer ·
   course cards · pagination · empty state · course detail · enrolment ·
   awarding bodies · search results · the enquiry dialog in brand colours.
   Loaded only on those pages. Colours only through --ds-* tokens; no :hover
   or .is-active rule changes padding, margin, gap, width or font.
   ========================================================================== */

/* ------------------------------------------------------ small utilities */
.ds-icon { width: 1.15em; height: 1.15em; flex: none; }
.ds-btn--sm { min-height: 42px; padding: 0 18px; font-size: .92rem; }

/* ------------------------------------------------------ catalog layout */
.ds-catalog { padding: 76px 0 110px; }
.ds-catalog__grid { display: grid; grid-template-columns: 296px minmax(0, 1fr); gap: 56px; align-items: start; }
.ds-catalog__side { position: sticky; top: 96px; min-width: 0; }
.ds-catalog__main { min-width: 0; scroll-margin-top: 110px; }
.ds-catalog__open { display: none; }
.ds-catalog__open-icon { width: 9px; height: 9px; flex: none; transform: rotate(45deg); border: 1px solid var(--ds-gold-deep); }
.ds-catalog__open-count { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 12px; background: var(--ds-gold); color: var(--ds-ink-deep); font-size: .78rem; font-weight: 600; }

/* ------------------------------------------------------- filter panel */
.ds-filters { display: flex; flex-direction: column; max-height: calc(100vh - 120px); background: var(--ds-paper); border: 1px solid var(--ds-line); border-top: 2px solid var(--ds-gold); border-radius: 3px; }
.ds-filters__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px 16px; border-bottom: 1px solid var(--ds-line); }
.ds-filters__title { font-family: var(--ds-font-caps); font-weight: 600; font-size: .78rem; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-filters__reset { margin-left: auto; font-size: .86rem; font-weight: 600; color: var(--ds-ink); box-shadow: inset 0 -1px 0 var(--ds-gold); transition: color .25s var(--ds-ease); }
.ds-filters__reset:hover { color: var(--ds-gold-deep); }
.ds-filters__close { display: none; flex: none; width: 42px; height: 42px; border: 1px solid var(--ds-line); border-radius: 3px; background: var(--ds-paper); color: var(--ds-ink); font-size: 1.5rem; line-height: 1; cursor: pointer; place-items: center; }
.ds-filters__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 24px 12px; scrollbar-width: thin; scrollbar-color: var(--ds-gold-soft) transparent; }
.ds-filters__actions { padding: 16px 24px 20px; border-top: 1px solid var(--ds-line); }
.ds-filters__actions .ds-btn { width: 100%; }
.ds-js .ds-filters__actions { display: none; }

.ds-filters__locked { display: grid; gap: 2px; margin: 18px 0 6px; padding: 14px 16px; background: var(--ds-parchment); border-left: 2px solid var(--ds-gold); }
.ds-filters__locked span { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-filters__locked strong { font-family: var(--ds-font-head); font-weight: 400; font-size: 1.12rem; color: var(--ds-ink); line-height: 1.3; }
.ds-filters__locked .ds-link { justify-self: start; margin-top: 8px; font-size: .86rem; }

.ds-filters__search { padding: 18px 0 10px; }
.ds-filters__search-label { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-filters__search-row { display: grid; grid-template-columns: minmax(0, 1fr) 40px; align-items: end; }
.ds-filters__search-btn { height: 45px; border: 0; border-bottom: 1px solid var(--ds-ink); background: transparent; color: var(--ds-ink); display: grid; place-items: center; cursor: pointer; transition: color .25s var(--ds-ease); }
.ds-filters__search-btn:hover { color: var(--ds-gold-deep); }
.ds-filters__search-btn svg { width: 18px; height: 18px; }
.ds-filters__scrim { position: fixed; inset: 0; z-index: 84; background: rgb(var(--ds-ink-deep-rgb) / .5); }

/* A disclosure per filter, radios inside. */
.ds-facet { border-bottom: 1px solid var(--ds-line); }
.ds-facet:last-of-type { border-bottom: 0; }
.ds-facet__summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 16px 0; cursor: pointer; font-weight: 600; font-size: .95rem; color: var(--ds-ink); }
.ds-facet__summary::-webkit-details-marker { display: none; }
.ds-facet__label { flex: 1; min-width: 0; }
.ds-facet__dot { flex: none; width: 7px; height: 7px; transform: rotate(45deg); background: var(--ds-gold); }
.ds-facet__chev { flex: none; width: 9px; height: 9px; margin-right: 4px; border-right: 1.5px solid var(--ds-gold-deep); border-bottom: 1.5px solid var(--ds-gold-deep); transform: translateY(-25%) rotate(45deg); transition: transform .3s var(--ds-ease); }
.ds-facet[open] .ds-facet__chev { transform: translateY(25%) rotate(-135deg); }
.ds-facet__body { display: grid; gap: 2px; padding: 0 0 16px; }

.ds-radio { display: flex; align-items: flex-start; gap: 12px; padding: 7px 8px; margin: 0 -8px; border-radius: 3px; cursor: pointer; font-size: .93rem; line-height: 1.45; color: var(--ds-text); transition: background-color .2s var(--ds-ease), color .2s var(--ds-ease); }
.ds-radio:hover { background: var(--ds-parchment); }
.ds-radio > span { min-width: 0; overflow-wrap: anywhere; }
.ds-radio input { appearance: none; flex: none; display: grid; place-items: center; width: 17px; height: 17px; margin: 2px 0 0; border: 1px solid rgb(var(--ds-ink-rgb) / .45); border-radius: 50%; background: var(--ds-paper); cursor: pointer; transition: border-color .2s var(--ds-ease), box-shadow .2s var(--ds-ease); }
.ds-radio input::before { content: ""; width: 7px; height: 7px; background: var(--ds-gold-deep); transform: rotate(45deg) scale(0); transition: transform .2s var(--ds-ease); }
.ds-radio input:checked { border-color: var(--ds-gold-deep); box-shadow: 0 0 0 3px rgb(var(--ds-gold-rgb) / .22); }
.ds-radio input:checked::before { transform: rotate(45deg) scale(1); }
.ds-radio input:checked + span { color: var(--ds-ink); }
.ds-radio input:focus-visible { outline: 2px solid var(--ds-gold); outline-offset: 2px; }

/* --------------------------------------------------------- results bar */
.ds-results { min-width: 0; }
.ds-results[aria-busy="true"], [aria-busy="true"] > .ds-results { opacity: .55; transition: opacity .2s var(--ds-ease); }
.ds-results__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-bottom: 18px; margin-bottom: 30px; border-bottom: 1px solid var(--ds-gold); }
.ds-results__count { color: var(--ds-muted); font-size: .98rem; }
.ds-results__count strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.55rem; color: var(--ds-ink); margin-right: 4px; vertical-align: -2px; }
.ds-results__page { white-space: nowrap; }
.ds-results__sort { display: flex; align-items: center; gap: 12px; min-width: 0; font-size: .88rem; color: var(--ds-muted); }
.ds-select, .ds-results__sort select {
  appearance: none; min-width: 0; max-width: 100%; border: 0; border-bottom: 1px solid var(--ds-ink); border-radius: 0; padding: 7px 28px 7px 0;
  font-weight: 600; color: var(--ds-ink); cursor: pointer; background-color: transparent;
  background-image: linear-gradient(45deg, transparent 50%, var(--ds-gold-deep) 50%), linear-gradient(135deg, var(--ds-gold-deep) 50%, transparent 50%);
  background-position: calc(100% - 11px) 55%, calc(100% - 6px) 55%; background-size: 5px 5px; background-repeat: no-repeat;
}
.ds-select:focus, .ds-results__sort select:focus { outline: none; border-bottom-color: var(--ds-gold); box-shadow: inset 0 -1px 0 var(--ds-gold); }

.ds-chips { list-style: none; margin: -12px 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ds-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; border: 1px solid var(--ds-gold); border-radius: 2px; background: var(--ds-paper); font-size: .86rem; font-weight: 500; color: var(--ds-ink); transition: background-color .2s var(--ds-ease); }
.ds-chip:hover { background: var(--ds-parchment); }
.ds-chip__x { color: var(--ds-gold-deep); font-size: 1.15rem; line-height: 1; }
.ds-results > .ds-share { margin-top: 44px; }

/* ------------------------------------------------------ course cards */
.ds-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 28px; }
.ds-cards > li { display: flex; min-width: 0; }
/* An odd card out (or a single result) takes the whole row, laid sideways. */
.ds-cards > li:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* Three across where there is no sidebar; the last row is always filled. */
.ds-cards--wide { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ds-cards--wide > li { grid-column: span 2; }
.ds-cards--wide > li:last-child:nth-child(odd) { grid-column: span 2; }
.ds-cards--wide > li:nth-child(3n+1):nth-last-child(2), .ds-cards--wide > li:nth-child(3n+1):nth-last-child(2) + li { grid-column: span 3; }
.ds-cards--wide > li:nth-child(3n+1):last-child { grid-column: 1 / -1; }

.ds-ccard { position: relative; display: flex; flex-direction: column; width: 100%; min-width: 0; padding: 10px 10px 22px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-radius: 999px 999px 4px 4px / 150px 150px 4px 4px; outline: 1px solid transparent; outline-offset: -6px; color: var(--ds-ink); transition: outline-color .3s var(--ds-ease), box-shadow .3s var(--ds-ease); }
.ds-ccard:hover { outline-color: rgb(var(--ds-gold-rgb) / .55); box-shadow: var(--ds-shadow-soft); }
.ds-ccard__top { position: relative; }
.ds-ccard__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 999px 999px 3px 3px / 140px 140px 3px 3px; background: var(--ds-parchment-2); }
.ds-ccard__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transition: transform .8s var(--ds-ease); }
.ds-ccard:hover .ds-ccard__media img { transform: scale(1.04); }
.ds-ccard__media::after { content: ""; position: absolute; inset: 9px; border: 1px solid rgb(var(--ds-paper-rgb) / .6); border-radius: 999px 999px 2px 2px / 131px 131px 2px 2px; pointer-events: none; }
.ds-ccard__seal { --size: 60px; position: absolute; right: 22px; bottom: -24px; font-size: 1rem; }
.ds-ccard__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 26px 14px 0; min-width: 0; }
.ds-ccard__kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; min-height: 30px; padding-right: 64px; font-size: .78rem; font-weight: 600; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; color: var(--ds-muted); }
.ds-ccard__kicker b { color: var(--ds-ink-2); font-weight: 600; }
.ds-ccard__logo { display: inline-grid; place-items: center; height: 30px; padding: 3px 8px; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 2px; }
.ds-ccard__logo img { height: 20px; width: auto; max-width: 76px; object-fit: contain; }
.ds-ccard__title { font-size: 1.3rem; font-weight: 400; line-height: 1.28; text-wrap: balance; overflow-wrap: break-word; }
.ds-ccard__title a { background: linear-gradient(var(--ds-gold), var(--ds-gold)) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--ds-ease); }
.ds-ccard__title a:hover { background-size: 100% 1px; }
.ds-ccard__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; row-gap: 4px; font-size: .88rem; line-height: 1.5; color: var(--ds-muted); }
.ds-ccard__facts li { display: inline-flex; align-items: center; }
.ds-ccard__facts li + li::before { content: ""; flex: none; width: 4px; height: 4px; margin: 0 10px; transform: rotate(45deg); background: var(--ds-gold); }
.ds-ccard__foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ds-line); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 16px; }
.ds-ccard__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px 18px; }
.ds-ccard__actions .ds-link { font-size: .92rem; white-space: nowrap; }
.ds-ccard__enrol { min-height: 42px; padding: 0 20px; }
.ds-ccard__asks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: .88rem; }
.ds-ccard__ask { font-weight: 600; color: var(--ds-ink); box-shadow: inset 0 -1px 0 var(--ds-line); transition: box-shadow .25s var(--ds-ease), color .25s var(--ds-ease); }
.ds-ccard__ask:hover { color: var(--ds-gold-deep); box-shadow: inset 0 -1px 0 var(--ds-gold); }

.ds-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; min-width: 0; }
.ds-price strong { font-family: var(--ds-font-head); font-weight: 400; font-size: 1.6rem; line-height: 1.1; color: var(--ds-ink); }
.ds-price s { font-size: .9rem; color: var(--ds-muted); }
.ds-price small { font-size: .9rem; color: var(--ds-muted); }

/* A card alone on its row lies sideways: photo left, words right. */
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard { flex-direction: row; align-items: stretch; gap: 34px; padding: 10px 30px 10px 10px; border-radius: 999px 4px 4px 999px / 160px 4px 4px 160px; }
.ds-cards--wide > li:last-child:nth-child(odd):not(:nth-child(3n+1)) > .ds-ccard { flex-direction: column; gap: 0; padding: 10px 10px 22px; border-radius: 999px 999px 4px 4px / 150px 150px 4px 4px; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__top,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__top { flex: 0 0 42%; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__media,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__media { aspect-ratio: auto; height: 100%; min-height: 290px; border-radius: 999px 3px 3px 999px / 150px 3px 3px 150px; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__media::after,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__media::after { border-radius: 999px 2px 2px 999px / 141px 2px 2px 141px; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__seal,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__seal { right: -30px; bottom: auto; top: 30px; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__body,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__body { padding: 28px 0 18px 26px; justify-content: center; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__kicker,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__kicker { padding-right: 0; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__title,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__title { font-size: 1.6rem; }
.ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__foot,
.ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__foot { margin-top: 10px; }

/* --------------------------------------------------------- pagination */
.ds-pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--ds-line); }
.ds-pager__pages { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ds-pager__num { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 6px; border: 1px solid transparent; border-radius: 50%; font-family: var(--ds-font-caps); font-weight: 600; color: var(--ds-ink); transition: background-color .2s var(--ds-ease), border-color .2s var(--ds-ease); }
a.ds-pager__num:hover { border-color: var(--ds-gold); background: var(--ds-parchment); }
.ds-pager__num[aria-current] { background: var(--ds-ink); color: var(--ds-gold-soft); box-shadow: 0 0 0 1px var(--ds-gold), 0 0 0 4px var(--ds-paper), 0 0 0 5px rgb(var(--ds-gold-rgb) / .5); }
.ds-pager__gap { display: grid; place-items: center; min-width: 26px; height: 42px; color: var(--ds-muted); }
.ds-pager__step { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; font-weight: 600; color: var(--ds-ink); transition: color .2s var(--ds-ease); }
a.ds-pager__step:hover { color: var(--ds-gold-deep); }
.ds-pager__step[aria-disabled] { color: rgb(var(--ds-ink-rgb) / .32); }

/* -------------------------------------------------------- empty state */
.ds-empty { display: grid; justify-items: center; gap: 14px; margin: 6px; padding: 64px 28px 58px; text-align: center; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 5px; border-radius: 3px; }
.ds-empty__seal { --size: 72px; margin-bottom: 10px; font-size: 1.6rem; }
.ds-empty__title { font-size: clamp(1.45rem, 2.4vw, 2rem); text-wrap: balance; }
.ds-empty__text { max-width: 54ch; color: var(--ds-muted); text-wrap: pretty; }
.ds-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 12px; }

/* --------------------------------------------- landing: awarding body */
.ds-landing-body { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 24px; padding: 14px 20px 14px 14px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-left: 2px solid var(--ds-gold); border-radius: 3px; }
.ds-landing-body__logo { display: grid; place-items: center; width: 118px; height: 64px; padding: 8px; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 2px; }
.ds-landing-body__logo img { max-height: 46px; width: auto; object-fit: contain; }
.ds-landing-body__text { display: grid; gap: 2px; min-width: 0; }
.ds-landing-body__text span { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-landing-body__text strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.1rem; letter-spacing: .06em; color: var(--ds-ink); }
.ds-landing-body__text .ds-link { justify-self: start; margin-top: 6px; font-size: .9rem; }

/* ========================================================== responsive */
@media (max-width: 1180px) {
  .ds-catalog__grid { grid-template-columns: 264px minmax(0, 1fr); gap: 40px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__title { font-size: 1.4rem; }
}

@media (max-width: 1024px) {
  .ds-catalog { padding: 44px 0 88px; }
  .ds-catalog__grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .ds-catalog__side { position: static; }
  .ds-js .ds-catalog__open { display: flex; width: 100%; }
  .ds-filters { max-height: none; }
  .ds-js .ds-filters {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 85; width: min(430px, 100%); height: 100%; max-height: none;
    border: 0; border-left: 2px solid var(--ds-gold); border-radius: 0; box-shadow: var(--ds-shadow);
    transform: translateX(104%); visibility: hidden;
    transition: transform .4s var(--ds-ease), visibility 0s linear .4s;
  }
  .ds-js .ds-filters.is-open { transform: translateX(0); visibility: visible; transition: transform .4s var(--ds-ease), visibility 0s; }
  .ds-js .ds-filters__close { display: grid; }
  .ds-js .ds-filters__actions { display: block; box-shadow: 0 -12px 24px -18px rgb(var(--ds-ink-deep-rgb) / .3); }
  .ds-js .ds-filters__head { padding: 14px 20px 14px 24px; }
  .ds-pager__word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

@media (max-width: 768px) {
  .ds-cards, .ds-cards--wide { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ds-cards--wide > li, .ds-cards--wide > li:nth-child(3n+1):nth-last-child(2), .ds-cards--wide > li:nth-child(3n+1):nth-last-child(2) + li { grid-column: auto; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard { flex-direction: column; gap: 0; padding: 10px 10px 22px; border-radius: 999px 999px 4px 4px / 150px 150px 4px 4px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__top,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__top { flex: none; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__media,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__media { aspect-ratio: 4 / 3; height: auto; min-height: 0; border-radius: 999px 999px 3px 3px / 140px 140px 3px 3px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__media::after,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__media::after { border-radius: 999px 999px 2px 2px / 131px 131px 2px 2px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__seal,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__seal { right: 22px; top: auto; bottom: -24px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__body,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__body { padding: 26px 14px 0; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__kicker { padding-right: 64px; }
  .ds-cards > li:last-child:nth-child(odd) > .ds-ccard .ds-ccard__title,
  .ds-cards--wide > li:nth-child(3n+1):last-child > .ds-ccard .ds-ccard__title { font-size: 1.22rem; }
  .ds-ccard__media { aspect-ratio: 16 / 11; }
  .ds-results__bar { margin-bottom: 24px; }
  .ds-empty { padding: 48px 20px 44px; }
}

@media (max-width: 430px) {
  .ds-ccard__foot { grid-template-columns: minmax(0, 1fr); }
  .ds-ccard__actions { justify-content: space-between; }
  .ds-ccard__enrol { flex: 1 1 auto; }
  .ds-results__sort { width: 100%; justify-content: space-between; }
  .ds-results__sort select { flex: 1; }
  .ds-pager { gap: 8px; }
  .ds-pager__pages { gap: 4px; }
  .ds-pager__num { min-width: 36px; height: 36px; }
  .ds-empty__actions .ds-btn { width: 100%; }
}

/* ======================================================= course detail */
.ds-cfacts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ds-cfacts li { display: flex; min-width: 0; }
.ds-cfacts a, .ds-cfacts span { display: inline-flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 14px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-radius: 2px; font-size: .88rem; font-weight: 500; color: var(--ds-ink); transition: border-color .25s var(--ds-ease), color .25s var(--ds-ease); }
.ds-cfacts a::before, .ds-cfacts span::before { content: ""; flex: none; width: 6px; height: 6px; transform: rotate(45deg); background: var(--ds-gold); }
.ds-cfacts a:hover { border-color: var(--ds-gold); color: var(--ds-gold-deep); }

.ds-cdetail { padding: 84px 0 104px; }
.ds-cdetail__grid { display: grid; grid-template-columns: minmax(0, 1fr) 384px; gap: 72px; align-items: start; }
.ds-cdetail__main { min-width: 0; }
.ds-cdetail__main > .ds-share { margin-top: 56px; }
.ds-cdetail__side { position: sticky; top: 100px; min-width: 0; }

/* Underlined text tabs. Without JavaScript every section is shown in turn. */
.ds-tabs__list { display: flex; gap: 0 34px; margin-bottom: 42px; border-bottom: 1px solid var(--ds-line); overflow-x: auto; scrollbar-width: none; }
.ds-tabs__list::-webkit-scrollbar { display: none; }
.ds-tabs__tab { flex: none; padding: 14px 0 15px; font-weight: 600; font-size: .98rem; white-space: nowrap; color: var(--ds-muted); box-shadow: inset 0 -2px 0 transparent; transition: color .25s var(--ds-ease), box-shadow .25s var(--ds-ease); }
.ds-tabs__tab:hover { color: var(--ds-ink); box-shadow: inset 0 -2px 0 var(--ds-line); }
.ds-tabs__tab[aria-selected="true"] { color: var(--ds-ink); box-shadow: inset 0 -2px 0 var(--ds-gold); }
.ds-tabs__tab:focus-visible { outline-offset: -3px; }
.ds-tabs__panel { scroll-margin-top: 110px; }
.ds-tabs__panel:focus-visible { outline: 2px solid var(--ds-gold); outline-offset: 10px; }
.ds-tabs:not(.is-tabbed) .ds-tabs__panel + .ds-tabs__panel { margin-top: 56px; padding-top: 52px; border-top: 1px solid var(--ds-line); }
.ds-tabs__heading { font-size: clamp(1.6rem, 2.6vw, 2.15rem); margin-bottom: 24px; text-wrap: balance; }
.ds-tabs.is-tabbed .ds-tabs__heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ds-tabs__part + .ds-tabs__part { margin-top: 40px; padding-top: 36px; border-top: 1px solid var(--ds-line); }
.ds-tabs__sub { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; font-family: var(--ds-font-caps); font-size: .76rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-tabs__sub::after { content: ""; flex: 1; min-width: 30px; height: 1px; background: linear-gradient(90deg, var(--ds-gold) 0, var(--ds-gold) 48px, var(--ds-line) 48px); }

.ds-modules { list-style: none; margin: 0; padding: 0; counter-reset: ds-mod; border-top: 1px solid var(--ds-gold); }
.ds-modules > li { counter-increment: ds-mod; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: baseline; gap: 6px 16px; padding: 16px 0; border-bottom: 1px solid var(--ds-line); }
.ds-modules > li::before { content: counter(ds-mod, decimal-leading-zero); font-family: var(--ds-font-caps); font-weight: 600; color: var(--ds-gold-deep); }
.ds-modules__title { color: var(--ds-ink); font-weight: 500; }
.ds-modules__credits { font-size: .86rem; color: var(--ds-muted); white-space: nowrap; }
.ds-modules__text { grid-column: 2 / -1; font-size: .94rem; color: var(--ds-muted); }

.ds-qual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin: 0; border-top: 1px solid var(--ds-gold); }
.ds-qual > div { min-width: 0; padding: 18px 0; border-bottom: 1px solid var(--ds-line); }
.ds-qual > .ds-qual__wide { grid-column: 1 / -1; }
.ds-qual > div:last-child:nth-child(odd):not(.ds-qual__wide) { grid-column: 1 / -1; }
.ds-qual dt { margin-bottom: 4px; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-qual dd { margin: 0; font-family: var(--ds-font-head); font-size: 1.2rem; line-height: 1.35; color: var(--ds-ink); overflow-wrap: break-word; }
.ds-qual dd a { box-shadow: inset 0 -1px 0 var(--ds-gold); transition: color .25s var(--ds-ease); }
.ds-qual dd a:hover { color: var(--ds-gold-deep); }
.ds-qual dd p { margin-top: 6px; font-family: var(--ds-font-body); font-size: .95rem; line-height: 1.65; color: var(--ds-muted); }

/* The credential card. */
.ds-credential { position: relative; padding: 34px 30px 28px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 5px; border-radius: 3px; box-shadow: var(--ds-shadow-soft); }
.ds-credential::before { content: ""; position: absolute; top: -7px; left: 50%; width: 12px; height: 12px; background: var(--ds-paper); border: 1px solid var(--ds-gold); transform: translateX(-50%) rotate(45deg); }
.ds-credential__eyebrow { margin-bottom: 10px; text-align: center; font-family: var(--ds-font-caps); font-size: .74rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-credential__price { padding-bottom: 22px; text-align: center; border-bottom: 1px solid var(--ds-line); }
.ds-credential__amount { display: flex; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; }
.ds-credential__amount strong { font-family: var(--ds-font-head); font-weight: 300; font-size: 3rem; line-height: 1; color: var(--ds-ink); }
.ds-credential__amount s { font-size: 1.05rem; color: var(--ds-muted); }
.ds-credential__save { display: inline-block; margin-top: 14px; padding: 4px 12px; background: var(--ds-parchment); box-shadow: inset 0 -2px 0 var(--ds-gold); font-size: .84rem; font-weight: 600; color: var(--ds-ink); }
.ds-credential__feenote { margin-top: 12px; font-size: .88rem; line-height: 1.5; color: var(--ds-muted); }
.ds-credential__seals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 26px 0 22px; border-bottom: 1px solid var(--ds-line); }
.ds-credential__seals--one { grid-template-columns: minmax(0, 1fr); }
.ds-credential__seal { display: grid; justify-items: center; align-content: start; gap: 14px; min-width: 0; text-align: center; font-size: .82rem; line-height: 1.35; color: var(--ds-muted); }
.ds-credential__seal a { display: grid; justify-items: center; gap: 14px; color: inherit; }
.ds-credential__seal .ds-seal { --size: 68px; font-size: 1.2rem; }
.ds-credential__seal b { display: block; margin-top: 2px; font-size: .95rem; font-weight: 600; color: var(--ds-ink); transition: color .25s var(--ds-ease); }
.ds-credential__seal a:hover b { color: var(--ds-gold-deep); }
.ds-seal--logo { background: var(--ds-white); padding: 13px; }
.ds-seal--logo img { width: 100%; height: 100%; object-fit: contain; }
.ds-credential__facts { margin: 0; padding: 8px 0 2px; }
.ds-credential__facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 0; border-bottom: 1px dashed var(--ds-line); font-size: .92rem; }
.ds-credential__facts > div:last-child { border-bottom: 0; }
.ds-credential__facts dt { flex: none; color: var(--ds-muted); }
.ds-credential__facts dd { margin: 0; min-width: 0; text-align: right; font-weight: 600; color: var(--ds-ink); overflow-wrap: anywhere; }
.ds-credential__actions { display: grid; gap: 10px; margin-top: 18px; }
.ds-credential__actions .ds-btn { width: 100%; }
.ds-btn svg { width: 18px; height: 18px; flex: none; }
.ds-credential__asks { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin-top: 16px; font-size: .9rem; }
.ds-textlink { font-weight: 600; color: var(--ds-ink); box-shadow: inset 0 -1px 0 var(--ds-gold); transition: color .25s var(--ds-ease); }
.ds-textlink:hover { color: var(--ds-gold-deep); }
.ds-credential__foot { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--ds-line); text-align: center; font-size: .86rem; line-height: 1.55; color: var(--ds-muted); text-wrap: pretty; }

/* The awarding body strip with its certificate. */
.ds-bodystrip-band { padding: 92px 0; background: var(--ds-parchment); }
.ds-bodystrip { display: grid; grid-template-columns: 190px minmax(0, 1fr) minmax(0, 300px); align-items: center; gap: 52px; padding: 44px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 6px; border-radius: 3px; }
.ds-bodystrip--no-cert { grid-template-columns: 190px minmax(0, 1fr); }
.ds-bodystrip__logo { display: grid; place-items: center; width: 100%; aspect-ratio: 1; padding: 34px; background: var(--ds-white); border-radius: 50%; box-shadow: 0 0 0 1px var(--ds-gold), 0 0 0 8px var(--ds-paper), 0 0 0 9px rgb(var(--ds-gold-rgb) / .55), var(--ds-shadow-soft); }
.ds-bodystrip__logo img { max-height: 100%; width: auto; object-fit: contain; }
.ds-bodystrip__logo span { font-family: var(--ds-font-caps); font-size: 1.8rem; color: var(--ds-ink); }
.ds-bodystrip__text { min-width: 0; }
.ds-bodystrip__eyebrow { font-family: var(--ds-font-caps); font-size: .76rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-bodystrip__text h2 { margin: 10px 0 14px; font-size: clamp(1.6rem, 2.5vw, 2.25rem); }
.ds-bodystrip__text p { color: var(--ds-muted); text-wrap: pretty; }
.ds-bodystrip__centre { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: 18px; font-size: .84rem; }
.ds-bodystrip__centre strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.05rem; letter-spacing: .06em; color: var(--ds-ink); }
.ds-bodystrip__links { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 22px; }
.ds-cert { position: relative; display: block; margin: 0; padding: 12px; background: var(--ds-white); border: 1px solid var(--ds-line); box-shadow: var(--ds-shadow-soft); transform: rotate(-1.4deg); transition: transform .4s var(--ds-ease), box-shadow .4s var(--ds-ease); }
.ds-cert:hover { transform: rotate(0deg); box-shadow: var(--ds-shadow); }
.ds-cert::before { content: ""; position: absolute; inset: 5px; border: 1px solid rgb(var(--ds-gold-rgb) / .6); pointer-events: none; }
.ds-cert img { width: 100%; height: auto; }

/* Related courses and questions. */
.ds-cband { padding: 100px 0; }
.ds-cband--parchment { background: var(--ds-parchment); }
.ds-cband .ds-head { margin-bottom: 48px; }
.ds-qa { max-width: 920px; border-top: 1px solid var(--ds-gold); }
.ds-qa details { border-bottom: 1px solid var(--ds-line); }
.ds-qa summary { position: relative; padding: 22px 44px 22px 0; list-style: none; cursor: pointer; font-family: var(--ds-font-head); font-size: 1.16rem; line-height: 1.4; color: var(--ds-ink); }
.ds-qa summary::-webkit-details-marker { display: none; }
.ds-qa summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 11px; height: 11px; border-right: 1.5px solid var(--ds-gold-deep); border-bottom: 1.5px solid var(--ds-gold-deep); transform: translateY(-70%) rotate(45deg); transition: transform .3s var(--ds-ease); }
.ds-qa details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.ds-qa__answer { padding: 0 44px 24px 0; color: var(--ds-muted); }
.ds-qa__more { margin-top: 30px; }

/* Phone bar: Enrol · WhatsApp (shown below 769px). */
.ds-cbar { display: none; }

/* ====================================================== enquiry dialog */
/* The record dialogs (frontend/partials/record-modals) were written for the
   previous design and read --ve-* variables that no longer exist. On these
   pages they are drawn in the brand tokens instead. */
.ve-modal {
  --ve-primary: var(--ds-ink); --ve-primary-dark: var(--ds-ink-deep); --ve-accent: var(--ds-gold); --ve-gold-400: var(--ds-gold-soft);
  --ve-purple-050: var(--ds-parchment); --ve-purple-100: rgb(var(--ds-gold-rgb) / .25); --ve-purple-600: var(--ds-ink-2); --ve-purple-700: var(--ds-ink);
  --ve-indigo-100: var(--ds-parchment-2); --ve-indigo-900: var(--ds-ink-deep); --ve-ink-100: var(--ds-line); --ve-ink-200: var(--ds-line); --ve-ink-900: var(--ds-ink-deep);
  --ve-teal-500: var(--ds-success); --ve-pastel-mint: var(--ds-parchment); --ve-surface-alt: var(--ds-parchment); --ve-surface-brand: var(--ds-parchment);
  --ve-text: var(--ds-text); --ve-text-strong: var(--ds-ink); --ve-text-muted: var(--ds-muted); --ve-text-inverse-muted: rgb(var(--ds-parchment-rgb) / .75);
  --ve-border: var(--ds-line); --ve-border-subtle: var(--ds-line); --ve-error: var(--ds-error);
  --ve-radius-md: 3px; --ve-radius-lg: 3px; --ve-radius-xl: 4px; --ve-shadow-xs: none; --ve-shadow-sm: var(--ds-shadow-soft); --ve-shadow-md: var(--ds-shadow);
  --ve-text-xs: .76rem; --ve-text-sm: .9rem; --ve-text-md: 1rem; --ve-text-lg: 1.15rem; --ve-text-xl: 1.5rem; --ve-text-2xl: 1.8rem;
  --ve-font-display: var(--ds-font-head); --ve-leading-relaxed: 1.7; --ve-ease: var(--ds-ease); --ve-dur-fast: .2s; --ve-dur-base: .3s; --ve-header-height: 0px;
  font-family: var(--ds-font-body); color: var(--ds-text);
}
.ve-modal::backdrop { background: rgb(var(--ds-ink-deep-rgb) / .62); }
.ve-modal .ve-modal__panel { background: var(--ds-paper); border-radius: 3px; box-shadow: var(--ds-shadow); }
.ve-modal .ve-modal__head { background: var(--ds-ink-deep); border-bottom: 2px solid var(--ds-gold); color: var(--ds-parchment); }
.ve-modal .ve-modal__eyebrow { font-family: var(--ds-font-caps); font-weight: 600; letter-spacing: .22em; color: var(--ds-gold-soft); }
.ve-modal .ve-modal__title { font-family: var(--ds-font-head); font-weight: 300; font-size: 1.75rem; color: var(--ds-parchment); }
.ve-modal .ve-modal__about, .ve-modal .ve-modal__about span { color: rgb(var(--ds-parchment-rgb) / .75); }
.ve-modal .ve-modal__about strong { color: var(--ds-parchment); font-weight: 600; }
.ve-modal .ve-modal__close { display: grid; place-items: center; flex: none; width: 42px; height: 42px; padding: 0; border: 1px solid rgb(var(--ds-gold-soft-rgb) / .5); border-radius: 50%; background: transparent; color: var(--ds-parchment); cursor: pointer; transition: background-color .2s var(--ds-ease); }
.ve-modal .ve-modal__close:hover { background: rgb(var(--ds-gold-soft-rgb) / .14); }
.ve-modal .ve-modal__close svg { width: 18px; height: 18px; }
.ve-modal .ve-form { display: grid; gap: 20px; }
.ve-modal .ve-field { display: grid; gap: 6px; min-width: 0; }
.ve-modal .ve-field__label { font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ds-ink-2); }
.ve-modal .req { color: var(--ds-gold-deep); margin-left: 2px; }
.ve-modal .ve-field__optional { margin-left: 6px; font-size: .78rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ds-muted); }
.ve-modal .ve-input, .ve-modal .ve-select, .ve-modal .ve-textarea { width: 100%; min-width: 0; padding: 9px 0; border: 0; border-bottom: 1px solid var(--ds-ink); border-radius: 0; background: transparent; font-size: 1rem; color: var(--ds-text); }
.ve-modal .ve-select { appearance: none; padding-right: 26px; background-image: linear-gradient(45deg, transparent 50%, var(--ds-gold-deep) 50%), linear-gradient(135deg, var(--ds-gold-deep) 50%, transparent 50%); background-position: calc(100% - 11px) 55%, calc(100% - 6px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }
.ve-modal .ve-textarea { padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 2px; resize: vertical; }
.ve-modal .ve-input:focus, .ve-modal .ve-select:focus, .ve-modal .ve-textarea:focus { outline: none; border-bottom-color: var(--ds-gold); box-shadow: inset 0 -1px 0 var(--ds-gold); }
.ve-modal .ve-checkbox { display: flex; align-items: flex-start; gap: 10px; font-size: .9rem; line-height: 1.55; color: var(--ds-muted); }
.ve-modal .ve-checkbox input { flex: none; width: 17px; height: 17px; margin-top: 3px; accent-color: var(--ds-ink); }
.ve-modal .ve-checkbox a { color: var(--ds-ink); box-shadow: inset 0 -1px 0 var(--ds-gold); }
.ve-modal .ve-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ve-modal .ve-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ve-modal .ve-cta, .ve-modal .ve-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border: 0; border-radius: 3px; background: var(--ds-ink); color: var(--ds-parchment); box-shadow: inset 0 -2px 0 var(--ds-gold); font-weight: 600; cursor: pointer; transition: background-color .25s var(--ds-ease); }
.ve-modal .ve-cta:hover, .ve-modal .ve-btn:hover { background: var(--ds-ink-deep); }
.ve-modal .ve-cta svg, .ve-modal .ve-btn svg { width: 18px; height: 18px; }
.ve-modal .ve-done { background: var(--ds-parchment); border: 1px solid var(--ds-gold); border-radius: 3px; color: var(--ds-ink); }
.ve-modal .ve-done__mark { background: var(--ds-ink); color: var(--ds-gold-soft); }
.ve-modal .ve-form__summary { border: 0; border-left: 2px solid var(--ds-error); border-radius: 0; background: var(--ds-paper); color: var(--ds-error); }
.ve-modal svg:not([width]) { width: 1.1em; height: 1.1em; }

/* ---------------------------------------------------- detail responsive */
@media (max-width: 1180px) {
  .ds-cdetail__grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; }
  .ds-credential { padding: 30px 24px 24px; }
  .ds-bodystrip { grid-template-columns: 150px minmax(0, 1fr) minmax(0, 240px); gap: 36px; padding: 36px; }
  .ds-bodystrip--no-cert { grid-template-columns: 150px minmax(0, 1fr); }
  .ds-bodystrip__logo { padding: 26px; }
}
@media (max-width: 960px) {
  .ds-cdetail { padding: 56px 0 80px; }
  .ds-cdetail__grid { grid-template-columns: minmax(0, 1fr); gap: 56px; }
  .ds-cdetail__side { position: static; order: -1; }
  .ds-credential { max-width: 620px; width: 100%; margin: 0 auto; }
  .ds-bodystrip, .ds-bodystrip--no-cert { grid-template-columns: 130px minmax(0, 1fr); gap: 28px 32px; }
  .ds-bodystrip .ds-cert { grid-column: 1 / -1; width: 100%; max-width: 420px; justify-self: center; }
  .ds-bodystrip__logo { padding: 22px; }
}
@media (max-width: 768px) {
  .ds-cband, .ds-bodystrip-band { padding: 72px 0; }
  .ds-cband .ds-head { margin-bottom: 36px; }
  .ds-tabs__list { gap: 0 24px; margin-bottom: 32px; }
  .ds-qual { grid-template-columns: minmax(0, 1fr); }
  .ds-modules > li { grid-template-columns: 40px minmax(0, 1fr); }
  .ds-modules__credits { grid-column: 2; }
  .ds-credential__amount strong { font-size: 2.6rem; }
  .ds-bodystrip, .ds-bodystrip--no-cert { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 32px 22px; }
  .ds-bodystrip__logo { width: 140px; }
  .ds-bodystrip__centre, .ds-bodystrip__links { justify-content: center; }
  .ds-qa summary { font-size: 1.05rem; }

  .ds-cbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 58; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--ds-paper); border-top: 1px solid var(--ds-gold); box-shadow: 0 -14px 30px -20px rgb(var(--ds-ink-deep-rgb) / .45); transition: transform .35s var(--ds-ease); }
  .ds-js .ds-cbar { transform: translateY(120%); }
  .ds-js .ds-cbar.is-shown { transform: translateY(0); }
  .ds-cbar__price { display: grid; min-width: 0; line-height: 1.15; }
  .ds-cbar__price strong { font-family: var(--ds-font-head); font-weight: 400; font-size: 1.3rem; color: var(--ds-ink); }
  .ds-cbar__price s, .ds-cbar__price small { font-size: .78rem; color: var(--ds-muted); }
  .ds-cbar .ds-btn { min-height: 46px; padding: 0 18px; }
  .ds-cbar__wa { width: 46px; padding: 0; }
  /* The sticky bar already carries Enrol and WhatsApp, so the floating buttons
     step aside while it is on screen instead of covering the fee card. */
  body:has(.ds-cbar.is-shown) .ds-dock { opacity: 0; visibility: hidden; pointer-events: none; }
  .ds-dock { transition: opacity .25s var(--ds-ease), visibility 0s linear .25s; }
  body:has(.ds-cbar) .ds-footer__strip .ds-container { padding-bottom: 160px; }
  .ve-modal .ve-modal__title { font-size: 1.45rem; }
}
/* ======================================================= awarding bodies */
.ds-bodies-band { padding: 84px 0 110px; }
.ds-bpanels { list-style: none; margin: 0; padding: 0; display: grid; gap: 44px; }
.ds-bpanel { display: grid; grid-template-columns: 210px minmax(0, 1fr) 250px; align-items: center; gap: 52px; padding: 46px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 6px; border-radius: 3px; }
.ds-bpanel__text { min-width: 0; }
.ds-bpanel__text h2 { margin: 10px 0 14px; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.ds-bpanel__text h2 a { transition: color .25s var(--ds-ease); }
.ds-bpanel__text h2 a:hover { color: var(--ds-gold-deep); }
.ds-bpanel__text > p:not(.ds-bodystrip__eyebrow) { color: var(--ds-muted); text-wrap: pretty; }
.ds-bpanel__ofqual { margin-top: 16px; padding-left: 16px; border-left: 2px solid var(--ds-gold); font-size: .95rem; }
.ds-bpanel__more { margin-top: 22px; }
.ds-bpanel__aside { display: grid; align-content: center; justify-items: center; gap: 20px; align-self: stretch; padding-left: 44px; text-align: center; border-left: 1px solid var(--ds-line); }
.ds-bpanel__aside .ds-btn { width: 100%; }
.ds-bpanel__figure strong { display: block; font-family: var(--ds-font-caps); font-weight: 600; font-size: 2.8rem; line-height: 1; color: var(--ds-ink); }
.ds-bpanel__figure span { font-size: .9rem; color: var(--ds-muted); }
.ds-centre { display: grid; justify-items: center; gap: 4px; }
.ds-centre span { font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-centre strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.15rem; letter-spacing: .06em; color: var(--ds-ink); }

.ds-bintro { padding: 84px 0 100px; }
.ds-bintro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 72px; align-items: start; }
.ds-bintro__main { display: grid; gap: 52px; min-width: 0; }
.ds-bintro__side { min-width: 0; position: sticky; top: 100px; scroll-margin-top: 110px; }
.ds-bmark { display: flex; flex-wrap: wrap; align-items: center; gap: 28px 36px; padding-bottom: 40px; border-bottom: 1px solid var(--ds-line); }
.ds-bmark .ds-bodystrip__logo { flex: none; width: 150px; padding: 28px; }
.ds-seal--centre { --size: 150px; margin: 0; padding: 18px; align-content: center; gap: 6px; text-align: center; line-height: 1.25; }
.ds-seal--centre span { font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-gold-soft); }
.ds-seal--centre strong { font-size: .98rem; font-weight: 600; letter-spacing: .04em; color: var(--ds-parchment); overflow-wrap: anywhere; }
.ds-bmark__text { flex: 1 1 240px; min-width: 0; display: grid; gap: 12px; justify-items: start; color: var(--ds-muted); }
.ds-bsection { min-width: 0; scroll-margin-top: 110px; }
.ds-bsection h2 { margin-bottom: 20px; font-size: clamp(1.6rem, 2.6vw, 2.15rem); }
.ds-bintro__main > .ds-share { margin-top: 4px; }
.ds-certframe { margin: 0; padding: 22px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 6px; border-radius: 3px; box-shadow: var(--ds-shadow); }
.ds-certframe__eyebrow { margin-bottom: 16px; text-align: center; font-family: var(--ds-font-caps); font-size: .74rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-certframe__inner { position: relative; display: block; padding: 12px; background: var(--ds-white); border: 1px solid var(--ds-line); transition: box-shadow .3s var(--ds-ease); }
.ds-certframe__inner:hover { box-shadow: var(--ds-shadow-soft); }
.ds-certframe__inner::before { content: ""; position: absolute; inset: 5px; border: 1px solid rgb(var(--ds-gold-rgb) / .6); pointer-events: none; }
.ds-certframe img { width: 100%; height: auto; }
.ds-certframe figcaption { display: flex; justify-content: center; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin-top: 18px; font-size: .86rem; color: var(--ds-muted); }
.ds-certframe figcaption strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.05rem; letter-spacing: .06em; color: var(--ds-ink); }
.ds-campus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--pics, 2), minmax(0, 1fr)); gap: 16px; }
.ds-campus img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 999px 999px 3px 3px / 90px 90px 3px 3px; }

/* ================================================================ search */
.ds-sstart-band { padding: 76px 0 110px; }
.ds-sstart { display: grid; gap: 40px; max-width: 920px; margin: 0 auto; }
.ds-sstart__intro h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); text-wrap: balance; }
.ds-sstart__intro .ds-lede { margin-top: 14px; }
.ds-sbox { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px 20px; padding: 32px 36px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 5px; border-radius: 3px; }
.ds-sbox .ds-flabel { grid-column: 1 / -1; }
.ds-sbox__input { font-size: 1.25rem; }
.ds-linkchips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ds-linkchips a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-radius: 2px; font-size: .92rem; font-weight: 500; color: var(--ds-ink); transition: border-color .2s var(--ds-ease), background-color .2s var(--ds-ease); }
.ds-linkchips a:hover { border-color: var(--ds-gold); background: var(--ds-parchment); }
.ds-sstart__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ds-sresults .ds-sstart { margin: 0; }

.ds-snote { margin: -10px 0 26px; padding: 12px 16px; background: var(--ds-parchment); border-left: 2px solid var(--ds-gold); font-size: .9rem; }
.ds-stabs { list-style: none; margin: -6px 0 30px; padding: 0; display: flex; gap: 0 28px; overflow-x: auto; border-bottom: 1px solid var(--ds-line); scrollbar-width: none; }
.ds-stabs::-webkit-scrollbar { display: none; }
.ds-stab { display: inline-flex; align-items: center; gap: 8px; padding: 12px 0 13px; white-space: nowrap; font-size: .95rem; font-weight: 600; color: var(--ds-muted); box-shadow: inset 0 -2px 0 transparent; transition: color .2s var(--ds-ease), box-shadow .2s var(--ds-ease); }
.ds-stab:hover { color: var(--ds-ink); }
.ds-stab[aria-current] { color: var(--ds-ink); box-shadow: inset 0 -2px 0 var(--ds-gold); }
.ds-stab__count { display: inline-grid; place-items: center; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 11px; background: var(--ds-parchment-2); font-size: .76rem; color: var(--ds-ink); }
.ds-sgroup + .ds-sgroup { margin-top: 54px; }
.ds-sgroup__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.ds-sgroup__head h2 { font-size: 1.55rem; font-weight: 400; }
.ds-sgroup__count { font-family: var(--ds-font-caps); font-weight: 600; color: var(--ds-gold-deep); }
.ds-sgroup__more, .ds-sback { margin-top: 20px; }
.ds-slist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ds-gold); }
.ds-sresult { display: grid; grid-template-columns: 112px minmax(0, 1fr) 40px; align-items: center; gap: 24px; padding: 20px 10px; border-bottom: 1px solid var(--ds-line); color: var(--ds-ink); transition: background-color .25s var(--ds-ease); }
.ds-sresult:hover { background: var(--ds-parchment); }
.ds-sresult__media { display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 999px 999px 3px 3px / 50px 50px 3px 3px; background: var(--ds-parchment-2); color: var(--ds-gold-deep); }
.ds-sresult__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-sresult__media--contain { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 3px; }
.ds-sresult__media--contain img { object-fit: contain; padding: 10px; }
.ds-sresult__media--icon .ds-icon { width: 34px; height: 34px; }
.ds-sresult__body { display: grid; gap: 4px; min-width: 0; }
.ds-sresult__type { font-family: var(--ds-font-caps); font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-sresult__title { font-family: var(--ds-font-head); font-size: 1.22rem; line-height: 1.3; overflow-wrap: break-word; }
.ds-sresult__summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: .92rem; color: var(--ds-muted); }
.ds-sresult__meta { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: .82rem; color: var(--ds-muted); }
.ds-sresult mark { padding: 0 2px; border-radius: 2px; background: rgb(var(--ds-gold-rgb) / .3); color: var(--ds-ink); }
.ds-sresult__go { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--ds-line); border-radius: 50%; color: var(--ds-gold-deep); transition: background-color .25s var(--ds-ease), color .25s var(--ds-ease), border-color .25s var(--ds-ease); }
.ds-sresult:hover .ds-sresult__go { background: var(--ds-ink); border-color: var(--ds-ink); color: var(--ds-gold-soft); }

@media (max-width: 1180px) {
  .ds-bpanel { grid-template-columns: 170px minmax(0, 1fr); gap: 36px 40px; padding: 40px; }
  .ds-bpanel__aside { grid-column: 1 / -1; grid-template-columns: repeat(3, auto); justify-content: space-between; align-items: center; padding: 26px 0 0; border-left: 0; border-top: 1px solid var(--ds-line); }
  .ds-bpanel__aside .ds-btn { width: auto; }
  .ds-bintro__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 48px; }
}
@media (max-width: 960px) {
  .ds-bintro { padding: 60px 0 80px; }
  .ds-bintro__grid { grid-template-columns: minmax(0, 1fr); }
  .ds-bintro__side { position: static; width: 100%; max-width: 480px; justify-self: center; }
}
@media (max-width: 768px) {
  .ds-bodies-band { padding: 56px 0 88px; }
  .ds-bpanel { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 34px 22px; }
  .ds-bpanel .ds-bodystrip__logo { width: 140px; padding: 26px; }
  .ds-bpanel__ofqual { padding: 14px 0 0; border-left: 0; border-top: 2px solid var(--ds-gold); }
  .ds-bpanel__aside { width: 100%; grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .ds-bpanel__aside .ds-btn { width: 100%; }
  .ds-bmark { justify-content: center; text-align: center; }
  .ds-bmark .ds-bodystrip__logo { width: 124px; padding: 22px; }
  .ds-seal--centre { --size: 124px; padding: 14px; }
  .ds-bmark__text { flex-basis: 100%; justify-items: center; }
  .ds-campus { grid-template-columns: minmax(0, 1fr); }
  .ds-sstart-band { padding: 52px 0 88px; }
  .ds-sbox { grid-template-columns: minmax(0, 1fr); padding: 24px 20px; }
  .ds-sbox .ds-btn { width: 100%; }
  .ds-sresult { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 18px 2px; }
  .ds-sresult__go { display: none; }
  .ds-sresult__title { font-size: 1.08rem; }
}

/* ============================================================== enrolment */
.ds-enrol { padding: 72px 0 110px; }
.ds-enrol__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; }
.ds-enrol__main { min-width: 0; }
.ds-enrol__side { position: sticky; top: 100px; min-width: 0; }
.ds-eform { display: grid; gap: 28px; min-width: 0; }
.ds-eform__errors { padding: 18px 22px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-left: 2px solid var(--ds-error); border-radius: 3px; }
.ds-eform__errors h2 { font-family: var(--ds-font-body); font-size: 1rem; font-weight: 600; color: var(--ds-error); }
.ds-eform__errors ul { margin: 8px 0 0; padding-left: 18px; font-size: .92rem; color: var(--ds-error); }
.ds-eform__errors a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.ds-fcard { min-width: 0; margin: 0; padding: 34px 34px 32px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-top: 2px solid var(--ds-gold); border-radius: 3px; }
.ds-fcard__title { float: left; width: 100%; display: flex; align-items: baseline; gap: 14px; margin: 0 0 26px; padding: 0; font-family: var(--ds-font-head); font-size: 1.45rem; font-weight: 400; line-height: 1.25; color: var(--ds-ink); }
.ds-fcard__title + * { clear: both; }
.ds-fcard__no { flex: none; font-family: var(--ds-font-caps); font-size: .76rem; font-weight: 600; letter-spacing: .2em; color: var(--ds-gold-deep); }
.ds-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; }
.ds-fgroup { display: grid; gap: 12px; }
.ds-fgroup + .ds-fgroup { margin-top: 28px; }
.ds-ffield { display: grid; align-content: start; gap: 4px; min-width: 0; }
.ds-ffield--wide { grid-column: 1 / -1; }
.ds-flabel { font-size: .74rem; font-weight: 600; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; color: var(--ds-ink-2); }
.ds-req { margin-left: 3px; color: var(--ds-gold-deep); }
.ds-fopt { margin-left: 8px; font-size: .78rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ds-muted); }
.ds-finput { width: 100%; min-width: 0; min-height: 46px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--ds-ink); border-radius: 0; background: transparent; font-size: 1rem; color: var(--ds-text); }
.ds-finput::placeholder { color: var(--ds-muted); opacity: .8; }
.ds-finput:focus { outline: none; border-bottom-color: var(--ds-gold); box-shadow: inset 0 -1px 0 var(--ds-gold); }
select.ds-finput { appearance: none; padding-right: 26px; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, var(--ds-gold-deep) 50%), linear-gradient(135deg, var(--ds-gold-deep) 50%, transparent 50%); background-position: calc(100% - 11px) 55%, calc(100% - 6px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }
.ds-finput[aria-invalid="true"] { border-bottom-color: var(--ds-error); box-shadow: inset 0 -1px 0 var(--ds-error); }
.ds-fhint { font-size: .84rem; color: var(--ds-muted); }
.ds-ferror { margin-top: 2px; font-size: .86rem; font-weight: 600; color: var(--ds-error); }

.ds-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ds-choice { position: relative; display: block; min-width: 0; cursor: pointer; }
.ds-choice input { position: absolute; top: 50%; left: 20px; width: 1px; height: 1px; opacity: 0; }
.ds-choice__box { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 18px; background: var(--ds-paper); border: 1px solid var(--ds-line); border-radius: 3px; transition: border-color .2s var(--ds-ease), background-color .2s var(--ds-ease), box-shadow .2s var(--ds-ease); }
.ds-choice:hover .ds-choice__box { border-color: var(--ds-gold); }
.ds-choice__mark { flex: none; display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid rgb(var(--ds-ink-rgb) / .45); border-radius: 50%; background: var(--ds-paper); }
.ds-choice__mark::before { content: ""; width: 8px; height: 8px; background: var(--ds-gold-deep); transform: rotate(45deg) scale(0); transition: transform .2s var(--ds-ease); }
.ds-choice__label { min-width: 0; font-weight: 600; color: var(--ds-ink); }
.ds-choice input:checked + .ds-choice__box { background: var(--ds-parchment); border-color: var(--ds-gold-deep); box-shadow: inset 0 0 0 1px var(--ds-gold-deep); }
.ds-choice input:checked + .ds-choice__box .ds-choice__mark { border-color: var(--ds-gold-deep); }
.ds-choice input:checked + .ds-choice__box .ds-choice__mark::before { transform: rotate(45deg) scale(1); }
.ds-choice input:focus-visible + .ds-choice__box { outline: 2px solid var(--ds-gold); outline-offset: 3px; }
.ds-choices--error .ds-choice__box { border-color: var(--ds-error); }

.ds-fcheck { display: flex; align-items: flex-start; gap: 12px; font-size: .98rem; line-height: 1.6; cursor: pointer; }
.ds-fcheck input { flex: none; width: 19px; height: 19px; margin-top: 4px; accent-color: var(--ds-ink); }
.ds-fcheck a { font-weight: 600; color: var(--ds-ink); box-shadow: inset 0 -1px 0 var(--ds-gold); }
.ds-eform__disclaimer { margin-top: 16px; padding-left: 31px; font-size: .88rem; color: var(--ds-muted); }
.ds-eform__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--ds-line); }
.ds-eform__submit .ds-btn { min-width: 250px; }
.ds-eform__submit p { font-size: .88rem; color: var(--ds-muted); }

.ds-esummary { position: relative; padding: 10px 10px 26px; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 5px; border-radius: 999px 999px 3px 3px / 120px 120px 3px 3px; box-shadow: var(--ds-shadow-soft); }
.ds-esummary__img { aspect-ratio: 16 / 10.5; overflow: hidden; border-radius: 999px 999px 3px 3px / 112px 112px 3px 3px; background: var(--ds-parchment-2); }
.ds-esummary__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; }
.ds-esummary__body { display: grid; gap: 14px; padding: 22px 16px 0; }
.ds-esummary__eyebrow { font-family: var(--ds-font-caps); font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ds-gold-deep); }
.ds-esummary__title { font-size: 1.32rem; font-weight: 400; line-height: 1.3; text-wrap: balance; }
.ds-esummary__title a { transition: color .25s var(--ds-ease); }
.ds-esummary__title a:hover { color: var(--ds-gold-deep); }
.ds-esummary__seals { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.ds-esummary__mark { display: inline-flex; align-items: center; gap: 12px; font-size: .88rem; font-weight: 600; color: var(--ds-ink); }
.ds-esummary__mark .ds-seal { --size: 44px; font-size: .82rem; }
.ds-esummary__mark .ds-seal--logo { padding: 8px; }
.ds-esummary__fee { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid var(--ds-gold); border-bottom: 1px solid var(--ds-line); }
.ds-esummary__fee > span { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-muted); }
.ds-esummary__fee strong { margin-left: 10px; font-family: var(--ds-font-head); font-size: 1.85rem; font-weight: 400; line-height: 1; color: var(--ds-ink); }
.ds-esummary__fee s, .ds-esummary__fee small { font-size: .92rem; color: var(--ds-muted); }
.ds-esummary .ds-credential__facts { padding: 0; }
.ds-esummary__note { font-size: .88rem; line-height: 1.6; color: var(--ds-muted); }
.ds-esummary__links { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: .9rem; }

/* ---------------------------------------------------------- thank you */
.ds-thanks-band { padding: 80px 0 110px; }
.ds-thanks { max-width: 900px; margin: 0 auto; padding: 64px 56px 54px; text-align: center; background: var(--ds-paper); border: 1px solid var(--ds-gold); outline: 1px solid rgb(var(--ds-gold-rgb) / .45); outline-offset: 6px; border-radius: 3px; box-shadow: var(--ds-shadow-soft); }
.ds-thanks__seal { --size: 92px; margin: 0 auto 28px; font-size: 2.1rem; }
.ds-thanks h2 { max-width: 28ch; margin: 0 auto; font-size: clamp(1.65rem, 3vw, 2.45rem); text-wrap: balance; }
.ds-thanks__ref { display: grid; justify-items: center; gap: 6px; width: fit-content; max-width: 100%; margin: 32px auto 0; padding: 18px 36px; background: var(--ds-parchment); border: 1px dashed var(--ds-gold-deep); }
.ds-thanks__ref small { font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ds-muted); }
.ds-thanks__ref strong { font-family: var(--ds-font-caps); font-weight: 600; font-size: 1.8rem; letter-spacing: .08em; line-height: 1.2; color: var(--ds-ink); overflow-wrap: anywhere; }
.ds-thanks__text { max-width: 60ch; margin: 22px auto 0; color: var(--ds-muted); text-wrap: pretty; }
.ds-thanks__text strong { color: var(--ds-ink); overflow-wrap: anywhere; }
.ds-thanks__steps { list-style: none; margin: 44px 0 0; padding: 38px 0 0; display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 30px; text-align: left; border-top: 1px solid var(--ds-line); counter-reset: ds-step; }
.ds-thanks__steps li { counter-increment: ds-step; display: grid; align-content: start; gap: 8px; min-width: 0; }
.ds-thanks__steps li::before { content: counter(ds-step); display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 10px; border-radius: 50%; background: var(--ds-parchment); font-family: var(--ds-font-caps); font-weight: 600; color: var(--ds-ink); box-shadow: 0 0 0 1px var(--ds-gold), 0 0 0 4px var(--ds-paper), 0 0 0 5px rgb(var(--ds-gold-rgb) / .5); }
.ds-thanks__steps strong { font-weight: 600; color: var(--ds-ink); }
.ds-thanks__steps span { font-size: .94rem; line-height: 1.6; color: var(--ds-muted); }
.ds-thanks__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 42px; }
/* Pay the course fee online, straight after enrolling. */
.ds-thanks__pay { display: grid; justify-items: center; gap: 16px; margin: 40px auto 0; padding: 26px 28px; max-width: 620px; background: var(--ds-parchment); border: 1px solid var(--ds-line); border-top: 2px solid var(--ds-gold); }
.ds-thanks__pay p { margin: 0; color: var(--ds-text); text-wrap: pretty; }
.ds-thanks__pay form { margin: 0; }
.ds-thanks__pay + .ds-thanks__actions { margin-top: 26px; }

@media (max-width: 1180px) {
  .ds-enrol__grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 44px; }
}
@media (max-width: 960px) {
  .ds-enrol { padding: 52px 0 88px; }
  .ds-enrol__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .ds-enrol__side { position: static; order: -1; }
  .ds-esummary { border-radius: 3px; padding: 10px; }
  .ds-esummary__img { display: none; }
  .ds-esummary__body { padding: 16px 14px 14px; }
  /* On a phone the summary is the reminder above the form: course, marks and fee. */
  .ds-esummary .ds-credential__facts, .ds-esummary__note, .ds-esummary__links { display: none; }
}
@media (max-width: 768px) {
  .ds-fcard { padding: 26px 20px 24px; }
  .ds-fcard__title { font-size: 1.25rem; margin-bottom: 20px; }
  .ds-fgrid, .ds-choices { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ds-choices { gap: 12px; }
  .ds-eform__disclaimer { padding-left: 0; }
  .ds-eform__submit .ds-btn { width: 100%; min-width: 0; }
  .ds-thanks-band { padding: 52px 0 88px; }
  .ds-thanks { padding: 46px 20px 40px; }
  .ds-thanks__seal { --size: 76px; font-size: 1.7rem; }
  .ds-thanks__ref { padding: 16px 20px; }
  .ds-thanks__ref strong { font-size: 1.35rem; }
  .ds-thanks__steps { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ds-thanks__actions .ds-btn { width: 100%; }
}

@media (max-width: 360px) {
  .ds-cbar { gap: 8px; padding-left: 12px; padding-right: 12px; }
  .ds-cbar .ds-btn { padding: 0 14px; }
  .ds-credential { padding: 28px 18px 22px; }
  .ds-credential__seals { gap: 10px; }
}
