/* dojokun.css v2.5.2 – Gestaltung der Webseite dojokun.de; ergänzt Bootstrap 5.3.1. Farben: #031633 / #052c65 / #cc3333, Schrift Fira Sans. */
:root {
  --dk-navy: #031633;
  --dk-navy-2: #052c65;
  --dk-red: #cc3333;
  --dk-red-dark: #a82828;
  --dk-ink: #1b2330;
  --dk-ink-soft: #4c5665;
  --dk-line: #d9dee6;
  --dk-paper: #ffffff;
  --dk-paper-2: #f3f5f8;
  --bs-body-font-family: "Fira Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: var(--dk-ink);
  --bs-link-color: var(--dk-navy-2);
  --bs-link-hover-color: var(--dk-red);
  --bs-link-color-rgb: 5, 44, 101;
  --bs-link-hover-color-rgb: 204, 51, 51;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--bs-body-font-family);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--dk-ink);
  background: var(--dk-paper);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
main { flex: 1 0 auto; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 300;
  letter-spacing: -0.01em;
  color: var(--dk-navy);
  line-height: 1.2;
}
h1 { font-size: clamp(2rem, 4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.25rem); }
h3 { font-size: 1.35rem; font-weight: 400; }
h4 { font-size: 1.15rem; font-weight: 500; }
h5 { font-size: 1.05rem; font-weight: 500; }

a { text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: 0.15em; }
:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }

/* Externe Links erhalten wie bisher ein Verweis-Symbol (Bootstrap Icons, box-arrow-up-right) */
main a[href^="http"]::after {
  content: "";
  display: inline-block;
  width: 0.7em;
  height: 0.7em;
  margin-left: 0.3em;
  vertical-align: -0.05em;
  background: currentColor;
  -webkit-mask: url("../bootstrap-icons/box-arrow-up-right.svg") no-repeat center / contain;
          mask: url("../bootstrap-icons/box-arrow-up-right.svg") no-repeat center / contain;
}

/* ---------- Kopfbereich ---------- */
.dk-header {
  background: var(--dk-paper);
  border-bottom: 1px solid var(--dk-line);
}
.dk-header .navbar { padding-top: 1rem; padding-bottom: 1rem; }
.dk-header .navbar-brand img { height: 34px; width: auto; display: block; }
.dk-header .nav-link {
  color: var(--dk-navy);
  font-weight: 400;
  padding: 0.5rem 0;
  margin-left: 1.75rem;
  border-bottom: 2px solid transparent;
}
.dk-header .nav-link:hover,
.dk-header .nav-link:focus-visible { color: var(--dk-red); text-decoration: none; }
.dk-header .nav-link.active { border-bottom-color: var(--dk-red); }
.dk-header .navbar-toggler { border-color: var(--dk-line); }
.dk-header .navbar-toggler:focus { box-shadow: none; }
@media (max-width: 991.98px) {
  .dk-header .nav-link { margin-left: 0; padding: 0.6rem 0; }
  .dk-header .nav-link.active { border-bottom-color: transparent; color: var(--dk-red); }
  .dk-header .navbar-collapse { padding-top: 0.75rem; }
}

/* ---------- Bühne ---------- */
.dk-hero {
  background: var(--dk-navy);
  color: #fff;
  padding: clamp(3.5rem, 8vw, 7rem) 0;
  position: relative;
  overflow: hidden;
}
.dk-hero h1 { color: #fff; max-width: 22ch; }
.dk-hero .dk-claim {
  color: var(--dk-red);
  font-weight: 500;
  font-size: 1.05rem;
  margin-bottom: 1.25rem;
}
.dk-hero p { color: rgba(255, 255, 255, 0.82); max-width: 62ch; font-size: 1.125rem; }
.dk-hero .dk-rule { border-left: 3px solid var(--dk-red); padding-left: 1.5rem; }

/* ---------- Abschnitte ---------- */
.dk-section { padding: clamp(3rem, 6vw, 5.5rem) 0; }
.dk-section-alt { background: var(--dk-paper-2); }
.dk-section h2 { margin-bottom: 0.75rem; }
.dk-intro { color: var(--dk-ink-soft); max-width: 66ch; margin-bottom: 2.5rem; }

/* Seitenkopf der Unterseiten */
.dk-pagehead {
  padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem);
  border-bottom: 1px solid var(--dk-line);
}
.dk-pagehead h1 { margin-bottom: 0.5rem; }
.dk-pagehead p { color: var(--dk-ink-soft); max-width: 66ch; margin: 0; }
.dk-pagehead .dk-rule { border-left: 3px solid var(--dk-red); padding-left: 1.5rem; }

/* Leistungsfelder: Spalten mit feinen Trennlinien statt Karten */
.dk-fields { --bs-gutter-x: 0; }
.dk-field { padding: 1.75rem 2rem 1.75rem 0; }
.dk-field h3 { margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--dk-red); display: inline-block; }
.dk-field ul { list-style: none; padding: 0; margin: 0; }
.dk-field li { padding: 0.45rem 0; border-top: 1px solid var(--dk-line); color: var(--dk-ink); }
.dk-field li:first-child { border-top: 0; }
@media (min-width: 992px) {
  .dk-field + .dk-field { padding-left: 2rem; border-left: 1px solid var(--dk-line); }
}
@media (max-width: 991.98px) {
  .dk-field { padding-right: 0; }
  .dk-field + .dk-field { border-top: 1px solid var(--dk-line); }
}

/* Kernwerte */
.dk-values { list-style: none; padding: 0; margin: 0; }
.dk-values li { padding: 0.25rem 0 0.25rem 1.25rem; border-left: 2px solid var(--dk-red); margin-bottom: 1.5rem; }
.dk-values li strong { display: block; font-weight: 500; color: var(--dk-navy); margin-bottom: 0.2rem; }
.dk-values li p { margin: 0; color: var(--dk-ink-soft); }

/* Kontaktaufruf */
.dk-contact { background: var(--dk-navy-2); color: #fff; }
.dk-contact h2 { color: #fff; }
.dk-contact p { color: rgba(255, 255, 255, 0.85); max-width: 60ch; }
.dk-contact .dk-mail {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 1.25rem;
  font-weight: 500;
  color: #fff;
  border-bottom: 2px solid var(--dk-red);
  padding-bottom: 0.15rem;
}
.dk-contact .dk-mail:hover { color: #fff; border-bottom-color: #fff; text-decoration: none; }

/* Rechtstexte: schmale Lesespalte */
.dk-legal { max-width: 76ch; padding: 2.5rem 0 3.5rem; }
.dk-legal h2 { font-size: 1.5rem; margin-top: 2.25rem; }
.dk-legal h3 { font-size: 1.25rem; margin-top: 1.75rem; }
.dk-legal h4, .dk-legal h5 { font-size: 1.05rem; margin-top: 1.25rem; }
.dk-legal p, .dk-legal li { color: var(--dk-ink); }
.dk-legal .dk-revision { color: var(--dk-ink-soft); font-size: 0.95rem; }

/* ---------- Fußbereich ---------- */
.dk-footer { background: var(--dk-navy); color: rgba(255, 255, 255, 0.75); font-size: 0.95rem; }
.dk-footer .dk-footer-main { padding: 2.5rem 0; }
.dk-footer strong { color: #fff; font-weight: 500; }
.dk-footer a { color: rgba(255, 255, 255, 0.75); }
.dk-footer a:hover, .dk-footer a:focus-visible { color: #fff; }
.dk-footer ul { list-style: none; padding: 0; margin: 0; }
.dk-footer li { padding: 0.15rem 0; }
.dk-footer .dk-footer-claim { color: var(--dk-red); font-weight: 500; }
.dk-footer .dk-copyright { background: var(--dk-navy-2); padding: 0.75rem 0; color: rgba(255, 255, 255, 0.6); font-size: 0.875rem; }

/* Bühne mit Grafik */
.dk-hero h1 { font-size: clamp(2.3rem, 4.6vw, 3.6rem); max-width: 18ch; margin-bottom: 1.25rem; }
.dk-hero .dk-hero-lead { font-size: 1.2rem; line-height: 1.55; max-width: 58ch; }
.dk-hero-art { width: 100%; max-width: 440px; display: block; margin-left: auto; }
.dk-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.btn.dk-btn-primary {
  background: var(--dk-red); color: #fff; border: 2px solid var(--dk-red);
  font-weight: 500; padding: 0.7rem 1.4rem; border-radius: 4px;
}
.btn.dk-btn-primary:hover, .btn.dk-btn-primary:focus-visible { background: var(--dk-red-dark); border-color: var(--dk-red-dark); color: #fff; }
.btn.dk-btn-ghost {
  color: #fff; border: 2px solid rgba(255, 255, 255, 0.45); background: transparent;
  font-weight: 400; padding: 0.7rem 1.4rem; border-radius: 4px;
}
.btn.dk-btn-ghost:hover, .btn.dk-btn-ghost:focus-visible { border-color: #fff; color: #fff; background: rgba(255, 255, 255, 0.06); }

/* einmalige Einblendung beim Laden */
@media (prefers-reduced-motion: no-preference) {
  .dk-hero-text > * { opacity: 0; animation: dk-fade 0.6s ease-out forwards; }
  .dk-hero-text > :nth-child(2) { animation-delay: 0.1s; }
  .dk-hero-text > :nth-child(3) { animation-delay: 0.2s; }
  .dk-hero-text > :nth-child(4) { animation-delay: 0.3s; }
  .dk-hero-art { opacity: 0; animation: dk-fade 0.9s ease-out 0.25s forwards; }
}
@keyframes dk-rise { to { opacity: 1; transform: none; } }
@keyframes dk-fade { to { opacity: 1; } }

/* Themen */
.dk-topic { height: 100%; padding: 1.75rem 1.75rem 1.5rem; border-top: 3px solid var(--dk-red); background: var(--dk-paper-2); }
.dk-topic .dk-icon { width: 40px; height: 40px; color: var(--dk-red); margin-bottom: 1rem; display: block; }
.dk-topic h3 { font-weight: 500; font-size: 1.4rem; margin-bottom: 0.15rem; }
.dk-topic .dk-topic-sub { color: var(--dk-ink-soft); font-size: 0.95rem; margin-bottom: 0.9rem; }
.dk-topic p:last-of-type { margin-bottom: 0; }
.dk-topic ul { list-style: none; padding: 0; margin: 1rem 0 0; }
.dk-topic li { padding: 0.4rem 0 0.4rem 1.1rem; border-top: 1px solid var(--dk-line); position: relative; font-size: 0.98rem; }
.dk-topic li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 5px; height: 5px; background: var(--dk-red); border-radius: 50%; }
.dk-section-alt .dk-topic { background: var(--dk-paper); }

/* Zielgruppen */
.dk-audience h3 { font-weight: 500; font-size: 1.2rem; padding-left: 1rem; border-left: 3px solid var(--dk-red); margin-bottom: 0.75rem; }
.dk-audience p { color: var(--dk-ink-soft); margin: 0; padding-left: calc(1rem + 3px); }

/* dunkler Nachweisblock */
.dk-section-dark { background: var(--dk-navy); color: #fff; }
.dk-section-dark h2 { color: #fff; }
.dk-section-dark .dk-intro { color: rgba(255, 255, 255, 0.75); }
.dk-proof { border-left: 1px solid rgba(255, 255, 255, 0.2); padding-left: 1.5rem; }
.dk-proof-lead { font-size: 1.9rem; font-weight: 300; line-height: 1.1; color: #fff; margin-bottom: 0.4rem; letter-spacing: -0.01em; }
.dk-proof-text { color: rgba(255, 255, 255, 0.75); margin: 0; }

/* Vorgehen */
.dk-steps { list-style: none; padding: 0; margin: 0; counter-reset: none; }
.dk-step { position: relative; padding-top: 0.5rem; }
.dk-step-no { display: inline-block; font-size: 0.9rem; font-weight: 500; color: var(--dk-red); border: 2px solid var(--dk-red); border-radius: 50%; width: 2rem; height: 2rem; line-height: 1.75rem; text-align: center; margin-bottom: 0.9rem; }
.dk-step h3 { font-weight: 500; font-size: 1.2rem; margin-bottom: 0.5rem; }
.dk-step p { color: var(--dk-ink-soft); margin: 0; }
@media (min-width: 992px) {
  .dk-step:not(:last-child)::after { content: ""; position: absolute; top: 1.5rem; left: 3rem; right: 0.5rem; height: 1px; background: var(--dk-line); }
}

/* Kontakt */
.dk-contact .dk-contact-note { color: rgba(255, 255, 255, 0.65); margin: 0.75rem 0 0; font-size: 0.95rem; }
.dk-contact .dk-mail { font-size: 1.45rem; }

/* Startseite: kompakte Leitsätze */
.dk-section-kun { background: var(--dk-paper); border-top: 1px solid var(--dk-line); }
.dk-kun-list { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.dk-kun a { display: block; height: 100%; padding: 1.25rem 1.25rem 1.25rem 0; color: inherit; text-decoration: none; border-top: 2px solid var(--dk-line); transition: border-color 0.2s; }
.dk-kun a:hover, .dk-kun a:focus-visible { border-top-color: var(--dk-red); text-decoration: none; }
.dk-kun-no { display: block; color: var(--dk-red); font-weight: 500; font-size: 0.9rem; margin-bottom: 0.4rem; }
.dk-kun-key { display: block; font-size: 1.35rem; font-weight: 500; color: var(--dk-navy); margin-bottom: 0.35rem; }
.dk-kun-lead { display: block; color: var(--dk-ink-soft); font-size: 0.98rem; line-height: 1.45; }
.dk-kun-more { margin: 2rem 0 0; }
.dk-kun-more a { font-weight: 500; border-bottom: 2px solid var(--dk-red); padding-bottom: 0.1rem; }
.dk-kun-more a:hover { text-decoration: none; color: var(--dk-red); }

/* Dōjōkun-Seite: fünf Leitsätze */
.dk-principle { padding: 2.5rem 0; border-top: 1px solid var(--dk-line); scroll-margin-top: 1.5rem; }
.dk-principle:first-child { border-top: 0; padding-top: 0; }
.dk-principle:last-child { padding-bottom: 0; }
.dk-principle-no { color: var(--dk-red); font-weight: 500; font-size: 0.95rem; margin-bottom: 0.25rem; }
.dk-principle h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 400; margin-bottom: 0.75rem; }
.dk-principle-de { font-size: 1.1rem; color: var(--dk-navy); margin-bottom: 0.2rem; }
.dk-principle-romaji { color: var(--dk-ink-soft); font-style: italic; font-size: 0.95rem; margin: 0; }
.dk-principle-lead { font-size: 1.35rem; font-weight: 300; line-height: 1.35; color: var(--dk-navy); padding-left: 1rem; border-left: 3px solid var(--dk-red); margin-bottom: 1rem; }
.dk-principle-values-title { font-weight: 500; color: var(--dk-navy); margin: 1.5rem 0 0.5rem; }
.dk-principle-values { list-style: none; padding: 0; margin: 0; }
.dk-principle-values li { padding: 0.5rem 0; border-top: 1px solid var(--dk-line); color: var(--dk-ink-soft); }
.dk-principle-values li strong { color: var(--dk-ink); font-weight: 500; }

/* Schriftzeichen als SVG aus dem Logo (unabhängig von installierten Systemschriften) */
.dk-kanji-inline { height: 1.15em; width: auto; vertical-align: -0.2em; }
.dk-kanji-large { width: 100%; max-width: 380px; height: auto; display: block; margin-left: auto; opacity: 0.9; }
.dk-kanji-medium { width: 100%; max-width: 300px; height: auto; opacity: 0.9; }

.dk-topic h3 { font-size: 1.25rem; }
.dk-proof { margin-bottom: 0.5rem; }

.dk-topic-note { margin: 1rem 0 0; padding-top: 0.75rem; border-top: 1px solid var(--dk-line); font-size: 0.9rem; color: var(--dk-ink-soft); }
.dk-section-footnote { margin: 2rem 0 0; font-size: 0.95rem; color: var(--dk-ink-soft); max-width: 70ch; }
.dk-section-note { border-top: 1px solid var(--dk-line); }
.dk-section-note h2 { scroll-margin-top: 1.5rem; }

.dk-field, .dk-topic, .dk-proof, .dk-audience { hyphens: manual; overflow-wrap: break-word; }
.dk-field h3 { display: block; padding-right: 0.5rem; }

.dk-proof-lead { font-size: 1.45rem; }

.dk-hero-photo { position: relative; overflow: hidden; background: #031633 url("../images/hero-dojo.jpg") no-repeat right center / cover; }
.dk-hero-photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #031633 0%, #031633 38%, rgba(3, 22, 51, 0.72) 58%, rgba(3, 22, 51, 0.15) 100%); }
.dk-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 22, 51, 0.25), rgba(3, 22, 51, 0) 30%, rgba(3, 22, 51, 0) 70%, rgba(3, 22, 51, 0.35)); }
.dk-hero-photo .container { position: relative; z-index: 1; }
@media (max-width: 991.98px) { .dk-hero-photo::before { background: linear-gradient(180deg, rgba(3, 22, 51, 0.88), rgba(3, 22, 51, 0.62)); } }

.dk-pagehead { background: var(--dk-navy); color: #fff; border-bottom: 0; padding: clamp(2.5rem, 5vw, 4rem) 0; position: relative; overflow: hidden; }
.dk-pagehead h1 { color: #fff; }
.dk-pagehead p { color: rgba(255, 255, 255, 0.82); }
.dk-pagehead .dk-revision { color: rgba(255, 255, 255, 0.65); }
.dk-pagehead .container { position: relative; z-index: 1; }
.dk-pagehead-photo { background: var(--dk-navy) url("../images/hero-dojo.jpg") no-repeat right 35% / cover; }
.dk-pagehead-photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #031633 0%, #031633 40%, rgba(3, 22, 51, 0.75) 60%, rgba(3, 22, 51, 0.2) 100%); }
@media (max-width: 991.98px) { .dk-pagehead-photo::before { background: linear-gradient(180deg, rgba(3, 22, 51, 0.9), rgba(3, 22, 51, 0.7)); } }
.dk-pagehead-kun .dk-kanji-large { opacity: 0.95; }

.dk-section-dark p { color: rgba(255, 255, 255, 0.85); }
.dk-section-dark.dk-section-note { border-top: 0; }

@media (min-width: 1200px) { .dk-field { padding-right: 1.25rem; } .dk-field + .dk-field { padding-left: 1.25rem; } }
@media (min-width: 768px) and (max-width: 1199.98px) { .dk-field:nth-child(odd) { padding-right: 1.5rem; } .dk-field:nth-child(even) { padding-left: 1.5rem; border-left: 1px solid var(--dk-line); } .dk-field + .dk-field { border-top: 0; } .dk-field:nth-child(n+3) { border-top: 1px solid var(--dk-line); padding-top: 1.75rem; } }

.dk-header .dropdown-menu { border: 1px solid var(--dk-line); border-radius: 4px; box-shadow: 0 6px 20px rgba(3, 22, 51, 0.12); padding: 0.4rem 0; margin-top: 0.5rem; }
.dk-header .dropdown-item { color: var(--dk-navy); padding: 0.5rem 1.1rem; }
.dk-header .dropdown-item:hover, .dk-header .dropdown-item:focus { background: var(--dk-paper-2); color: var(--dk-red); }
.dk-header .dropdown-item[aria-current="page"] { font-weight: 500; border-left: 2px solid var(--dk-red); padding-left: calc(1.1rem - 2px); }
.dk-header .dropdown-toggle::after { vertical-align: 0.15em; opacity: 0.7; }
@media (max-width: 991.98px) { .dk-header .dropdown-menu { border: 0; box-shadow: none; padding-left: 1rem; margin-top: 0; } }

main p a:not(.btn):not(.dk-mail), main li a:not(.dropdown-item), .dk-section-footnote a, .dk-kun-more a {
  color: var(--dk-navy); font-weight: 500;
  text-decoration: underline; text-decoration-color: var(--dk-red); text-decoration-thickness: 1.5px; text-underline-offset: 0.18em;
  border-bottom: 0; transition: color 0.15s;
}
main p a:not(.btn):not(.dk-mail):hover, main li a:not(.dropdown-item):hover, .dk-section-footnote a:hover, .dk-kun-more a:hover { color: var(--dk-red); text-decoration-color: var(--dk-red); }
.dk-section-dark p a, .dk-contact p a, .dk-hero p a { color: #fff; text-decoration-color: var(--dk-red); }
.dk-section-dark p a:hover, .dk-contact p a:hover { color: #fff; text-decoration-color: #fff; }

.dk-legal { max-width: 84ch; margin-left: auto; margin-right: auto; }
.dk-legal h2:first-of-type { margin-top: 1.5rem; }

.dk-header .nav-link.dk-lang { font-size: 0.9rem; letter-spacing: 0.06em; font-weight: 500; color: var(--dk-ink-soft); }
@media (min-width: 992px) { .dk-header .nav-link.dk-lang { margin-left: 1.5rem; padding-left: 1.5rem; border-left: 1px solid var(--dk-line); border-bottom: 2px solid transparent; } }
.dk-header .nav-link.dk-lang:hover { color: var(--dk-red); }

abbr.dk-term { position: relative; text-decoration: underline dotted; text-decoration-color: var(--dk-red); text-decoration-thickness: 1.5px; text-underline-offset: 0.18em; cursor: help; -webkit-tap-highlight-color: transparent; }
abbr.dk-term:focus { outline: none; }
abbr.dk-term:focus-visible { outline: 2px solid var(--dk-red); outline-offset: 2px; }
abbr.dk-term::after {
  content: attr(data-tip); position: absolute; left: var(--tip-x, 0); bottom: calc(100% + 0.6rem); z-index: 60;
  width: min(30rem, calc(100vw - 2rem)); padding: 0.8rem 1rem; border-radius: 4px;
  background: var(--dk-navy); color: #fff; font-family: var(--bs-body-font-family); font-size: 0.9rem; font-weight: 400; line-height: 1.5; text-align: left; text-decoration: none;
  box-shadow: 0 8px 24px rgba(3, 22, 51, 0.25); border-left: 3px solid var(--dk-red);
  opacity: 0; visibility: hidden; transition: opacity 0.15s, visibility 0s linear 0.15s; pointer-events: none;
}
abbr.dk-term.is-open::after, abbr.dk-term:focus-visible::after { opacity: 1; visibility: visible; transition-delay: 0s; }
@media (hover: hover) and (pointer: fine) {
  abbr.dk-term:hover::after { opacity: 1; visibility: visible; transition-delay: 0s; }
}
.dk-section-dark abbr.dk-term::after, .dk-hero abbr.dk-term::after, .dk-contact abbr.dk-term::after, .dk-pagehead abbr.dk-term::after { background: #fff; color: var(--dk-ink); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); }
.dk-section-dark abbr.dk-term, .dk-hero abbr.dk-term, .dk-contact abbr.dk-term, .dk-pagehead abbr.dk-term { text-decoration-color: rgba(255, 255, 255, 0.7); }
/* Touchgeräte jeder Breite und schmale Fenster: feste Box am unteren Rand */
@media (hover: none), (max-width: 767.98px) {
  /* Box am sichtbaren unteren Rand; Position kommt vom Skript (visualViewport), Rückfall: unten im Fenster */
  abbr.dk-term::after { position: fixed; left: var(--tip-left, 1rem) !important; right: auto; bottom: auto; top: var(--tip-top, auto); transform: translateY(-100%); width: var(--tip-width, calc(100vw - 2rem)); max-height: 45vh; overflow: auto; background: var(--dk-navy); color: #fff; }
  abbr.dk-term:not([style*="--tip-top"])::after { top: auto; bottom: 1rem; transform: none; }
  abbr.dk-term.is-open::after { pointer-events: auto; }
}
@media (prefers-reduced-motion: reduce) { abbr.dk-term::after { transition: none; } }

body { min-height: 100svh; }
@supports not (min-height: 100svh) { body { min-height: 100%; } }
@media (hover: none) { html { scroll-behavior: auto; } }
