/* Corelight responsive branding 1.1.0.
   Theme state follows CTFd's authoritative html[data-bs-theme] value. */
.cl-corelight-logo {
  --cl-corelight-logo-size: clamp(1.15rem, 2.2vw, 2rem);
  block-size: var(--cl-corelight-logo-size);
  display: inline-grid;
  flex: 0 0 auto;
  inline-size: var(--cl-corelight-logo-size);
  line-height: 0;
  margin-inline: .08em .14em;
  vertical-align: -.42em;
}

.cl-corelight-logo__image {
  block-size: 100%;
  display: block;
  grid-area: 1 / 1;
  inline-size: 100%;
  object-fit: contain;
}

.cl-corelight-logo__image--dark {
  display: none;
}

html[data-bs-theme="dark"] .cl-corelight-logo__image--light {
  display: none;
}

html[data-bs-theme="dark"] .cl-corelight-logo__image--dark {
  display: block;
}

/* System preference is only a fallback before CTFd establishes an explicit
   mode. Manual Light/Dark selection remains authoritative. */
@media (prefers-color-scheme: dark) {
  html:not([data-bs-theme]) .cl-corelight-logo__image--light {
    display: none;
  }

  html:not([data-bs-theme]) .cl-corelight-logo__image--dark {
    display: block;
  }
}

:is(.cl-home__eyebrow, .cl-book__eyebrow, .cl-day-template__eyebrow, .cl-reference__eyebrow) .cl-corelight-logo {
  --cl-corelight-logo-size: clamp(1.15rem, 2.1vw, 1.8rem);
}

.cl-site-nav__brand-logo {
  block-size: clamp(1.8rem, 3.1vw, 2.2rem) !important;
  display: block !important;
  inline-size: clamp(1.8rem, 3.1vw, 2.2rem) !important;
  max-width: none !important;
  object-fit: contain;
}

@media (min-width: 62rem) and (max-width: 84.99rem) {
  .cl-site-nav__brand img.cl-site-nav__brand-logo {
    display: block !important;
  }
}

/* Program Directory Emblems.
   The adjacent h3 remains the accessible name; emblems are decorative. */
.cl-book__card.cl-book__card--with-emblem {
  --cl-program-emblem-size: clamp(4.25rem, 10vw, 9rem);
  align-items: center;
  column-gap: clamp(.65rem, 1.2vw, 1rem);
  display: grid;
  grid-template-columns: var(--cl-program-emblem-size) minmax(0, 1fr);
}

.cl-book__card-copy {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.cl-book__card-copy > a {
  margin-top: auto;
}

.cl-book__card-emblem {
  align-self: center;
  aspect-ratio: 1;
  display: block;
  filter: drop-shadow(0 .4rem .8rem rgb(0 0 0 / 22%));
  grid-column: 1;
  grid-row: 1;
  height: auto;
  inline-size: var(--cl-program-emblem-size);
  justify-self: start;
  max-inline-size: 100%;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

html[data-bs-theme="dark"] .cl-book__card-emblem {
  filter: drop-shadow(0 0 .55rem rgb(255 255 255 / 9%));
}

#choose-your-module {
  scroll-margin-top: 6rem;
}

.cl-program-challenge-status {
  align-items: center;
  border: 1px dashed var(--cl-rule, rgb(255 255 255 / 32%));
  color: var(--cl-muted, rgb(255 255 255 / 70%));
  display: inline-flex;
  font: 700 .68rem/1 var(--cl-font-mono, monospace);
  letter-spacing: .06em;
  min-height: 2.45rem;
  padding: .7rem .85rem;
  text-transform: uppercase;
}

@media (max-width: 50rem) {
  .cl-book__toc {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 35rem) {
  .cl-book__card.cl-book__card--with-emblem {
    --cl-program-emblem-size: clamp(3.75rem, 20vw, 5.25rem);
    column-gap: .65rem;
  }
}

@media (forced-colors: active) {
  .cl-book__card-emblem,
  .cl-corelight-logo,
  .cl-site-nav__brand-logo {
    forced-color-adjust: none;
  }
}

@media print {
  .cl-book__card-emblem {
    filter: none;
    max-width: 1in;
  }

  .cl-corelight-logo__image--light {
    display: block !important;
  }

  .cl-corelight-logo__image--dark {
    display: none !important;
  }
}
