/* Legal pages: Impressum and Datenschutz (kt-legal__*). Tokens come from main.css. */

/* ---------- Hero ---------- */
.kt-legal__hero { padding-block: 52px 60px; background-color: var(--kt-ink); }
.kt-legal__hero .kt-wrap > * { max-width: 820px; }
.kt-legal__crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 26px;
  font: 500 13px/1.4 var(--font-family-1);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}
.kt-legal__crumbs a { color: rgba(255, 255, 255, 0.9); transition: color 0.3s ease; cursor: pointer; }
.kt-legal__crumbs a:hover, .kt-legal__crumbs a:focus-visible { color: var(--kt-yellow); text-decoration: underline; }
.kt-legal__crumbs-sep { color: var(--kt-yellow); }
.kt-legal__title { margin-bottom: 18px; font-size: 48px; line-height: 1.12; color: #ffffff; }
.kt-legal__lead { font-size: 18px; line-height: 1.55; color: rgba(255, 255, 255, 0.82); }

/* ---------- Main + layout ---------- */
.kt-legal__main { padding-block: 64px 96px; background: #ffffff; }
.kt-legal__layout {
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.kt-legal__layout > * { min-width: 0; }

/* table of contents */
.kt-legal__toc {
  position: sticky;
  top: calc(var(--kt-nav-h) + 24px);
  padding: 22px 22px 20px;
  background: var(--kt-gray);
  border-left: 4px solid var(--kt-yellow);
  border-radius: 3px;
}
.kt-legal__toc-title {
  margin-bottom: 14px;
  font: 500 13px/1.3 var(--font-family-1);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kt-ink);
}
.kt-legal__toc-list { display: grid; gap: 2px; counter-reset: kt-legal-toc; }
.kt-legal__toc-list li { counter-increment: kt-legal-toc; }
.kt-legal__toc-list a {
  position: relative;
  display: block;
  padding: 7px 0 7px 30px;
  font-size: 15px;
  line-height: 1.35;
  color: var(--kt-text);
  cursor: pointer;
  transition: color 0.3s ease, transform 0.3s ease;
}
.kt-legal__toc-list a::before {
  content: counter(kt-legal-toc) ".";
  position: absolute;
  left: 0;
  top: 7px;
  width: 24px;
  font: 600 13px/1.6 var(--font-family-1);
  color: var(--kt-yellow-2);
}
.kt-legal__toc-list a:hover, .kt-legal__toc-list a:focus-visible { color: var(--kt-ink); transform: translateX(3px); }

/* ---------- Info cards (Impressum) ---------- */
.kt-legal__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-bottom: 64px; }
.kt-legal__card {
  position: relative;
  min-width: 0;
  padding: 30px 28px 28px;
  background: #ffffff;
  border: 1px solid var(--kt-line);
  border-left: 4px solid var(--kt-yellow);
  border-radius: 3px;
  transition: box-shadow 0.3s ease;
}
.kt-legal__card:hover { box-shadow: var(--shadow-3); }
.kt-legal__card-ico {
  position: relative;
  display: block;
  width: 44px;
  height: 44px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--kt-gray);
}
.kt-legal__card-ico > img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
}
.kt-legal__card-title { margin-bottom: 14px; font-size: 24px; line-height: 1.25; font-weight: 400; letter-spacing: -0.02em; color: var(--kt-ink); }
.kt-legal__card p, .kt-legal__dl dd { font-size: 16px; line-height: 1.6; color: var(--kt-text); }
.kt-legal__card p + p { margin-top: 10px; }
.kt-legal__card strong { color: var(--kt-ink); }
.kt-legal__dl { display: grid; gap: 12px; margin: 0; }
.kt-legal__dl dt {
  font: 500 12px/1.3 var(--font-family-2);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kt-yellow-2);
}
.kt-legal__dl dd { margin: 3px 0 0; overflow-wrap: anywhere; }

/* ---------- Prose ---------- */
.kt-legal__body { max-width: 780px; }
.kt-legal__layout .kt-legal__body { max-width: none; }
.kt-legal__sec { padding-block: 0 44px; }
.kt-legal__sec:last-child { padding-bottom: 0; }
.kt-legal__h2 {
  position: relative;
  margin-bottom: 18px;
  padding-left: 20px;
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--kt-ink);
}
.kt-legal__h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.14em;
  bottom: 0.14em;
  width: 5px;
  border-radius: 1px;
  background: var(--kt-yellow);
}
.kt-legal__h3 { margin: 26px 0 8px; font-size: 21px; line-height: 1.3; font-weight: 500; color: var(--kt-ink); }
.kt-legal__sec p { max-width: 74ch; font-size: 16px; line-height: 1.75; color: var(--kt-text); }
.kt-legal__sec p + p { margin-top: 14px; }
.kt-legal__sec strong { color: var(--kt-ink); }
.kt-legal__list + p, .kt-legal__list + .kt-legal__note { margin-top: 18px; }
.kt-legal__list { display: grid; gap: 10px; max-width: 74ch; margin: 14px 0 0; }
.kt-legal__list li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.65; color: var(--kt-text); }
.kt-legal__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--kt-yellow);
}
.kt-legal__note {
  max-width: 74ch;
  margin-top: 18px;
  padding: 18px 22px;
  background: var(--kt-gray);
  border-left: 4px solid var(--kt-yellow);
  border-radius: 3px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--kt-ink-2);
}
.kt-legal__sec .kt-legal__note p { font-size: 15px; line-height: 1.65; color: var(--kt-ink-2); }

/* ---------- Links ---------- */
.kt-legal__link {
  color: var(--kt-ink);
  border-bottom: 1px solid var(--kt-yellow);
  overflow-wrap: anywhere;
  cursor: pointer;
  transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.kt-legal__link:hover, .kt-legal__link:focus-visible { color: var(--kt-ink); background: rgba(255, 198, 0, 0.28); border-color: var(--kt-yellow-2); }
.kt-legal__tel {
  color: var(--kt-ink);
  font-weight: 600;
  border-bottom: 2px solid var(--kt-yellow);
  cursor: pointer;
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.kt-legal__tel:hover, .kt-legal__tel:focus-visible { color: var(--kt-ink); background: rgba(255, 198, 0, 0.28); border-color: var(--kt-yellow-2); }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .kt-legal__layout { grid-template-columns: 240px minmax(0, 1fr); gap: 44px; }
  .kt-legal__cards { gap: 22px; }
  .kt-legal__card { padding: 26px 22px 24px; }
}
@media (max-width: 1024px) {
  .kt-legal__hero { padding-block: 48px 52px; }
  .kt-legal__title { font-size: 42px; }
  .kt-legal__main { padding-block: 52px 80px; }
  .kt-legal__layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .kt-legal__toc { position: static; }
  .kt-legal__toc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
  .kt-legal__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kt-legal__cards .kt-legal__card:last-child { grid-column: 1 / -1; }
  .kt-legal__body { max-width: none; }
}
@media (max-width: 768px) {
  .kt-legal__hero { padding-block: 40px 44px; }
  .kt-legal__title { font-size: 36px; }
  .kt-legal__lead { font-size: 17px; }
  .kt-legal__main { padding-block: 44px 64px; }
  .kt-legal__cards { grid-template-columns: minmax(0, 1fr); margin-bottom: 48px; }
  .kt-legal__toc-list { grid-template-columns: minmax(0, 1fr); }
  .kt-legal__h2 { font-size: 27px; }
  .kt-legal__sec { padding-bottom: 36px; }
}
@media (max-width: 480px) {
  .kt-legal__hero { padding-block: 40px 40px; }
  .kt-legal__title { font-size: 31px; }
  .kt-legal__lead { font-size: 16px; }
  .kt-legal__crumbs { margin-bottom: 20px; font-size: 12px; }
  .kt-legal__main { padding-block: 36px 56px; }
  .kt-legal__card { padding: 22px 18px 20px; }
  .kt-legal__card-title { font-size: 21px; }
  .kt-legal__toc { padding: 18px 16px; }
  .kt-legal__h2 { padding-left: 16px; font-size: 24px; }
  .kt-legal__h3 { font-size: 19px; }
  .kt-legal__sec p, .kt-legal__list li { font-size: 15px; line-height: 1.7; }
  .kt-legal__note { padding: 14px 16px; }
}
@media (max-width: 375px) {
  .kt-legal__title { font-size: 28px; }
  .kt-legal__h2 { font-size: 22px; }
  .kt-legal__card { padding: 20px 16px 18px; }
}
