/* Fonts */
@font-face { font-family: 'Oswald'; src: url('../fonts/oswald-v53-latin-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Oswald'; src: url('../fonts/oswald-v53-latin-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Oswald'; src: url('../fonts/oswald-v53-latin-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Roboto'; src: url('../fonts/roboto-v51-latin-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Roboto'; src: url('../fonts/roboto-v51-latin-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Roboto'; src: url('../fonts/roboto-v51-latin-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/* ----------------------------------------------------------------
   Legal pages (Impressum, Datenschutz, AGB)
   Restrained document-style typography over Tailwind preflight.
---------------------------------------------------------------- */
.legal-prose {
  font-family: 'Roboto', sans-serif;
  color: #2a2a2a;
  font-size: 1rem;
  line-height: 1.75;
}

.legal-prose h2,
.legal-prose h3,
.legal-prose h4 {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: #111;
  letter-spacing: 0.01em;
}

.legal-prose h2 {
  font-size: 1.75rem;
  line-height: 1.2;
  margin-top: 3rem;
  margin-bottom: 1rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(57, 53, 54, 0.12);
}
.legal-prose > *:first-child h2:first-child,
.legal-prose h2:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.legal-prose h3 {
  font-size: 1.25rem;
  line-height: 1.3;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

.legal-prose h4 {
  font-size: 1.05rem;
  line-height: 1.3;
  margin-top: 1.5rem;
  margin-bottom: 0.25rem;
}

.legal-prose p {
  margin: 0 0 1rem 0;
}
.legal-prose p:last-child { margin-bottom: 0; }

.legal-prose strong { color: #111; font-weight: 700; }
.legal-prose em { font-style: italic; }
.legal-prose u { text-decoration-color: #d40d32; text-underline-offset: 3px; }


.legal-prose a {
  color: #d40d32;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  word-break: break-word;
  transition: color 150ms ease;
}
.legal-prose a:hover {
  color: #111;
  text-decoration-color: #111;
}

.legal-prose ul,
.legal-prose ol {
  margin: 0 0 1rem 0;
  padding-left: 1.5rem;
}
.legal-prose ul { list-style: none; }
.legal-prose ul > li { position: relative; padding-left: 1rem; margin-bottom: 0.25rem; }
.legal-prose ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 0.5rem;
  height: 1px;
  background: #d40d32;
}
.legal-prose ol { list-style: decimal; }
.legal-prose ol > li { padding-left: 0.5rem; margin-bottom: 0.25rem; }

.legal-prose blockquote {
  border-left: 2px solid #d40d32;
  padding-left: 1rem;
  margin: 1.5rem 0;
  color: #444;
  font-style: italic;
}

/* Block wrapper that Kirby's text block renders */
.legal-prose .block-type-text + .block-type-text { margin-top: 1.5rem; }

/* ----------------------------------------------------------------
   Impressum — render the h3+p pairs as a definition-list grid.
   Each <h3> label sits in the left column, each <p> value sits
   in the right column. Tailwind preflight already removes default
   margins on h3/p so the grid aligns cleanly.
---------------------------------------------------------------- */
@media (min-width: 768px) {
  .legal-impressum .legal-prose {
    display: grid;
    grid-template-columns: 14rem 1fr;
    column-gap: 2.5rem;
    row-gap: 0.25rem;
    align-items: baseline;
  }
  .legal-impressum .legal-prose > * {
    grid-column: 1 / -1;
  }
  .legal-impressum .legal-prose h3 {
    grid-column: 1 / 2;
    margin: 0;
    padding-top: 1.25rem;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #393536;
    border-top: 1px solid rgba(57, 53, 54, 0.12);
  }
  .legal-impressum .legal-prose p {
    grid-column: 2 / 3;
    padding-top: 1.25rem;
    margin: 0;
    border-top: 1px solid rgba(57, 53, 54, 0.12);
  }
  .legal-impressum .legal-prose h3:first-of-type,
  .legal-impressum .legal-prose h3:first-of-type + p {
    border-top: 0;
    padding-top: 0;
  }
}
