/* ========================================================================== */
/* Watermark logo overlays                                                     */
/* ========================================================================== */

@font-face {
  font-family:"tschopp-housemark-optimum";
  src:url('/fonts/tschopp-housemark-optimum.woff2') format('woff2'),
      url('/fonts/tschopp-housemark-optimum.woff') format('woff'),
      url('/fonts/tschopp-housemark-optimum.ttf') format('truetype');
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}

.icon-tschopp-housemark-optimum::before {
  content:'\54';
  font-family:"tschopp-housemark-optimum";
  font-style:normal;
  font-weight:normal;
  display:inline-block;
  line-height:1;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.Dohring-watermark,
.TORC-watermark,
.SCE-watermark,
.Tschopp-watermark {
  position: relative;
  z-index: 1;
}

.Dohring-watermark::before,
.TORC-watermark::before,
.SCE-watermark::before,
.Tschopp-watermark::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.1;
  z-index: -1;
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.Dohring-watermark::before { background-image: url(https://tedt.org/img/home/logo-Dohring.webp); }
.TORC-watermark::before    { background-image: url(https://tedt.org/img/home/logo-TORC.webp); }
.SCE-watermark::before     { background-image: url(https://tedt.org/img/home/logo-SCE.webp); }
.Tschopp-watermark::before { background-image: url(https://tedt.org/img/home/logo-Tschopp.webp); }

/* ========================================================================== */
/* Category theming tokens                                                     */
/* ========================================================================== */

:root {
  --theme-accent-start:#06b6d4;
  --theme-accent-end:#a78bfa;
  --theme-text-light:#0f172a;
  --theme-text-dark:#e5e7eb;
  --theme-badge-border:rgba(99,102,241,.35);

  --theme-title-weight:600;
  --theme-font-title:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --theme-title-size:clamp(1.9rem,1.2rem + 2.5vw,3.2rem);
  --theme-title-style:normal;
  --theme-title-transform:none;
  --theme-title-color:var(--theme-text-light);
  --theme-title-shadow:none;
  --theme-title-hover-color:inherit;
  --theme-title-hover-shadow:var(--theme-title-shadow);
}

.category-theme .category-title,
h1 .category-title,
.h1 .category-title,
h2 .category-title,
.h2 .category-title {
  font-family:var(--theme-font-title);
  font-weight:var(--theme-title-weight,600);
  font-size:var(--theme-title-size);
  font-style:var(--theme-title-style);
  text-transform:var(--theme-title-transform);
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--theme-title-color, var(--theme-title-color-light, var(--theme-text-light)));
  text-shadow:var(--theme-title-shadow);
  overflow-wrap:anywhere;
  margin:0;
  position:relative;
  display:inline;
}

@supports (text-wrap: balance) {
  .category-theme .category-title,
  h1 .category-title,
  .h1 .category-title,
  h2 .category-title,
  .h2 .category-title {
    text-wrap:balance;
  }
}

.category-theme {
  position:relative;
  display:block;
  padding-bottom:.85rem;
}

.category-theme::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:.35rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--theme-accent-start),var(--theme-accent-end));
  box-shadow:0 4px 24px rgba(167,139,250,.35);
}

.category-theme.no-underline::after,
.no-category-underline .category-theme::after {
  display:none !important;
}

.category-theme .category-badge,
.category-badge {
  display:inline-flex;
  align-items:center;
  gap:.5ch;
  font:600 12px/1 "Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.4rem .66rem;
  border-radius:999px;
  border:1px solid var(--theme-badge-border);
  background:linear-gradient(90deg,
          color-mix(in srgb, var(--theme-accent-start) 18%, transparent),
          color-mix(in srgb, var(--theme-accent-end) 18%, transparent));
  color:var(--theme-text-light);
}

.category-theme .category-badge .badge-dot,
.category-badge .badge-dot {
  width:.5rem;
  height:.5rem;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%, var(--theme-accent-start), var(--theme-accent-end));
}

.category-theme a:hover .category-title {
  color:var(--theme-title-hover-color, var(--theme-title-hover-color-light, var(--theme-title-color)));
  text-shadow:var(--theme-title-hover-shadow, var(--theme-title-shadow));
}

@media (prefers-color-scheme: dark) {
  .category-theme .category-title,
  h1 .category-title,
  .h1 .category-title,
  h2 .category-title,
  .h2 .category-title {
    color:var(--theme-title-color-dark, var(--theme-title-color, var(--theme-text-dark)));
    text-shadow:var(--theme-title-shadow, 0 1px 2px rgba(0,0,0,.55));
  }

  .category-theme a:hover .category-title {
    color:var(--theme-title-hover-color-dark, var(--theme-title-hover-color, var(--theme-title-color-dark, var(--theme-title-color))));
    text-shadow:var(--theme-title-hover-shadow, var(--theme-title-shadow));
  }

  .category-theme .category-badge,
  .category-badge {
    color:var(--theme-text-dark);
    border-color:var(--theme-accent-end);
    background:linear-gradient(90deg,
      color-mix(in srgb, var(--theme-accent-start) 34%, transparent),
      color-mix(in srgb, var(--theme-accent-end) 34%, transparent)
    );
    box-shadow:0 0 0 1px rgba(255,255,255,.05), 0 2px 6px -1px rgba(0,0,0,.7);
  }
}

@media (prefers-color-scheme: light) {
  .category-theme .category-title,
  h1 .category-title,
  .h1 .category-title,
  h2 .category-title,
  .h2 .category-title {
    color:var(--theme-text-light);
    text-shadow:var(--theme-title-shadow);
  }

  .category-theme .category-badge,
  .category-badge {
    color:var(--theme-text-light);
  }
}

@media (prefers-reduced-motion: reduce) {
  .category-theme .category-title,
  h1 .category-title,
  .h1 .category-title,
  h2 .category-title,
  .h2 .category-title,
  .category-theme .category-badge,
  .category-badge {
    transition:none !important;
  }
}

/* Data for per-category fonts, colors, and shadows now flows from
   _data/category_registry.yml via category-theme-inline-style.html. */

/* ========================================================================== */
/* Navigation + layout adjustments                                            */
/* ========================================================================== */

.nav-rpg-label .category-title {
  font-size:inherit !important;
  font-weight:inherit;
  line-height:inherit;
  font-family:inherit;
  text-shadow:none;
}

.navbar .nav-link .nav-rpg-label.category-theme {
  display:inline-block;
  padding-bottom:0;
}

.navbar .nav-link .nav-rpg-label.category-theme::after {
  display:none !important;
}

.navbar .dropdown-menu {
  max-width:420px;
  width:max-content;
  overflow-wrap:break-word;
  white-space:normal;
}

.navbar .dropdown-item {
  white-space:normal;
  line-height:1.25;
  padding-right:1rem;
}

.navbar .dropdown-item img {
  vertical-align:middle;
  margin-right:.25rem;
}

/* ========================================================================== */
/* Full-width badge helpers                                                    */
/* ========================================================================== */

.full-width-badge.category-theme {
  display:block;
  padding-bottom:0;
}

.full-width-badge.category-theme::after {
  display:none !important;
}

.full-width-badge .category-badge {
  display:flex;
  align-items:center;
  width:100%;
  font-family:var(--theme-font-title, inherit);
  font-weight:var(--theme-title-weight,600);
  font-style:var(--theme-title-style,normal);
  text-transform:var(--theme-title-transform,uppercase);
  letter-spacing:.05em;
  font-size:1.5rem;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--theme-title-color, var(--theme-title-color-light, inherit));
}

[data-cat="dcc"] .full-width-badge .category-badge {
  padding-top:.55rem;
  padding-bottom:.30rem;
}

.full-width-badge .category-badge:hover {
  color:var(--theme-title-hover-color, var(--theme-title-hover-color-light, var(--theme-title-color, inherit)));
  text-shadow:var(--theme-title-hover-shadow, var(--theme-title-shadow));
}

@media (prefers-color-scheme: dark) {
  .full-width-badge .category-badge {
    color:var(--theme-title-color-dark, var(--theme-title-color, var(--theme-title-color-light, inherit)));
  }

  .full-width-badge .category-badge:hover {
    color:var(--theme-title-hover-color-dark, var(--theme-title-hover-color, var(--theme-title-color-dark, var(--theme-title-color))));
  }
}

/* ========================================================================== */
/* Category page headline                                                      */
/* ========================================================================== */

.category-page-head .category-title {
  display:inline-block;
  font-size:clamp(2.25rem,5vw,3.5rem);
  line-height:1.1;
  color:var(--theme-title-color-light, var(--theme-title-color, inherit));
  text-shadow:var(--theme-title-shadow, none);
  text-decoration:none;
}

.category-page-head .category-title:hover,
.category-page-head .category-title:focus {
  color:var(--theme-title-hover-color-light, var(--theme-title-hover-color, var(--theme-title-color-light, var(--theme-title-color))));
  text-shadow:var(--theme-title-hover-shadow, var(--theme-title-shadow));
}

@media (prefers-color-scheme: dark) {
  .category-page-head .category-title {
    color:var(--theme-title-color-dark, var(--theme-title-color, var(--theme-title-color-light, inherit)));
  }

  .category-page-head .category-title:hover,
  .category-page-head .category-title:focus {
    color:var(--theme-title-hover-color-dark, var(--theme-title-hover-color, var(--theme-title-color-dark, var(--theme-title-color))));
  }
}

/* Tighten vertical rhythm once nav badges inherit standard line-height */
.navbar .nav-link {
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* ========================================================================== */
/* Footer palette (WCAG AA)                                                   */
/* ========================================================================== */

footer.bd-footer {
  --footer-bg:#111827;
  --footer-text:#e2e8f0;
  --footer-muted:#cbd5f5;
  --footer-heading:#f8fafc;
  --footer-link:#38bdf8;
  --footer-link-hover:#0ea5e9;
  --footer-divider:#94a3b8;
  margin:0 !important;
  background-color:var(--footer-bg) !important;
  color:var(--footer-text);
  border-top:1px solid rgba(148,163,184,.16);
}

footer.bd-footer .container {
  color:inherit;
}

footer.bd-footer .footer-shell {
  color:inherit;
}

footer.bd-footer .footer-main-row {
  row-gap:2rem;
}

footer.bd-footer .footer-profile-card {
  max-width:22rem;
  margin:0 auto;
}

footer.bd-footer .footer-avatar-wrap {
  display:flex;
  justify-content:center;
}

footer.bd-footer .footer-avatar {
  width:8rem;
  height:8rem;
  object-fit:cover;
}

footer.bd-footer .footer-name-link {
  color:var(--footer-heading);
  text-decoration:none;
}

footer.bd-footer .footer-name-link:hover,
footer.bd-footer .footer-name-link:focus-visible {
  color:var(--footer-link-hover);
  text-decoration:none;
}

footer.bd-footer p,
footer.bd-footer li,
footer.bd-footer .p-note,
footer.bd-footer .text-body-secondary {
  color:var(--footer-text);
}

footer.bd-footer .text-muted,
footer.bd-footer .small {
  color:var(--footer-muted) !important;
}

footer.bd-footer .h4,
footer.bd-footer .h5,
footer.bd-footer .p-job-title,
footer.bd-footer .fnp-name,
footer.bd-footer .p-note .mb-2 {
  color:var(--footer-heading) !important;
  font-weight:600;
}

footer.bd-footer .footer-location {
  color:var(--footer-muted) !important;
  font-size:1rem;
}

footer.bd-footer .footer-profile-details {
  margin-top:1rem;
  display:grid;
  gap:.65rem;
  text-align:center;
}

footer.bd-footer .footer-profile-details li {
  margin-bottom:0;
  color:var(--footer-muted);
}

footer.bd-footer .footer-profile-label {
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--footer-muted);
}

footer.bd-footer .footer-section-title {
  margin-bottom:1rem;
}

footer.bd-footer .footer-bio-list {
  display:grid;
  gap:.8rem;
}

footer.bd-footer .footer-bio-list li {
  margin-bottom:0;
}

footer.bd-footer .footer-housemark {
  margin-top:.5rem;
  margin-bottom:0;
  width:100%;
}

footer.bd-footer .footer-housemark-image {
  display:block;
  height:1em;
  width:auto;
  max-width:100%;
}

footer.bd-footer .footer-link-groups,
footer.bd-footer .footer-link-group {
  min-width:0;
}

footer.bd-footer a {
  color:var(--footer-link);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:0.2em;
  font-weight:600;
}

footer.bd-footer a:hover,
footer.bd-footer a:focus-visible {
  color:var(--footer-link-hover);
}

footer.bd-footer .footer-link {
  display:inline-flex;
  align-items:flex-start;
  gap:.55rem;
  color:var(--footer-link);
  text-decoration:none;
}

footer.bd-footer .footer-link-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 1.75rem;
  height:1.6em;
  min-width:1.75rem;
  line-height:1;
  color:var(--footer-link-icon-color, var(--footer-link-hover));
  text-decoration:none;
}

footer.bd-footer .footer-link-icon i {
  color:inherit;
  display:block;
  line-height:1;
}

footer.bd-footer .footer-link-text {
  color:var(--footer-link);
  overflow-wrap:anywhere;
}

footer.bd-footer .footer-link:hover,
footer.bd-footer .footer-link:focus-visible {
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:0.2em;
}

footer.bd-footer .list-inline-item {
  color:var(--footer-divider);
}

footer.bd-footer .list-inline-item a {
  color:var(--footer-link);
}

footer.bd-footer .list-inline-item a:hover,
footer.bd-footer .list-inline-item a:focus-visible {
  color:var(--footer-link-hover);
}

footer.bd-footer .display-1,
footer.bd-footer .icon-tschopp-housemark-optimum {
  color:var(--footer-heading);
}

footer.bd-footer .footer-meta-row {
  margin-top:2.5rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(148,163,184,.16);
}

footer.bd-footer .footer-meta-links {
  margin-bottom:0;
}

@media (min-width:992px) {
  footer.bd-footer .footer-profile-card {
    margin:0;
  }

  footer.bd-footer .footer-avatar-wrap {
    justify-content:flex-start;
  }

  footer.bd-footer .footer-profile-details {
    text-align:left;
  }
}

@media (prefers-color-scheme: dark) {
  footer.bd-footer {
    --footer-bg:#0b1120;
    --footer-text:#e2e8f0;
    --footer-heading:#f8fafc;
    --footer-link:#60a5fa;
    --footer-link-hover:#93c5fd;
    --footer-divider:#94a3b8;
  }
}

