.impressum-page {
  min-height: calc(100vh - var(--header-height));
  padding: clamp(38px, 6vw, 82px) clamp(20px, 5vw, 72px);
  animation: impressum-rise 480ms ease both;
}

.impressum-head {
  max-width: 760px;
  margin-bottom: 34px;
}

.impressum-head h1 {
  font-size: clamp(2.3rem, 5vw, 4.8rem);
}

.impressum-content {
  display: grid;
  max-width: 860px;
  gap: 16px;
}

.impressum-content article {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.impressum-content article:hover {
  border-color: rgba(13, 124, 102, 0.26);
  box-shadow: 0 16px 36px rgba(23, 33, 31, 0.09);
  transform: translateY(-2px);
}

.impressum-content h2 {
  margin: 0 0 10px;
  font-size: 1.18rem;
  letter-spacing: 0;
}

.impressum-content p {
  margin: 0;
  color: var(--muted);
}

.impressum-content a {
  color: var(--brand-dark);
  font-weight: 700;
  transition: color 160ms ease;
}

.impressum-content a:hover {
  color: var(--brand);
}

@keyframes impressum-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.impressum-content ul {
  margin: 0;
  padding-left: 20px;
}

.impressum-content li + li {
  margin-top: 6px;
}

.impressum-content p + p,
.impressum-content p + ul,
.impressum-content ul + p {
  margin-top: 10px;
}

.impressum-content code {
  padding: 1px 6px;
  border-radius: 4px;
  background: var(--soft);
}

/* ---------- AGB / Widerruf / Kuendigung ---------- */
.legal-page .impressum-content article:hover {
  transform: none;
}

.legal-hint {
  padding: 10px 14px;
  border-left: 4px solid var(--brand);
  border-radius: 6px;
  background: var(--soft);
  color: var(--ink) !important;
}

.legal-form {
  margin-top: 12px;
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fff;
}

.legal-form p {
  color: var(--ink);
}

.impressum-content .legal-print,
.impressum-content .button {
  margin-top: 14px;
}

.cancel-form {
  display: grid;
  gap: 18px;
}

.cancel-form fieldset {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.cancel-form legend {
  padding: 0 6px;
  color: var(--brand-dark);
  font-weight: 800;
}

.cancel-form .form-field {
  display: grid;
  gap: 6px;
}

.cancel-form label {
  font-weight: 700;
}

.cancel-form small {
  color: var(--muted);
}

.cancel-form input[type="text"],
.cancel-form input[type="email"],
.cancel-form input[type="date"],
.cancel-form textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font: inherit;
}

.cancel-form input:focus,
.cancel-form textarea:focus {
  border-color: var(--brand);
  outline: 3px solid rgba(13, 124, 102, 0.16);
}

.cancel-option {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-weight: 500 !important;
  cursor: pointer;
}

.cancel-option:has(input:checked) {
  border-color: var(--brand);
  background: var(--soft);
}

.cancel-option input[type="radio"] {
  accent-color: var(--brand);
}

.cancel-form input.cancel-date {
  width: auto;
  min-height: 38px;
}

.cancel-hp {
  position: absolute;
  left: -9999px;
}

.cancel-submit {
  justify-self: start;
  min-width: 220px;
}

.cancel-page .form-error {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid #f0b8b1;
  border-radius: 8px;
  background: #fdf0ee;
  color: #a1281b;
}

.cancel-done {
  border-left: 6px solid var(--brand) !important;
}

.cancel-done ul {
  margin-top: 10px !important;
  color: var(--ink);
}

@media print {
  .page-header,
  .site-header,
  header,
  footer,
  .legal-print,
  .cancel-done .button {
    display: none !important;
  }

  .impressum-page {
    padding: 0;
    animation: none;
  }
}
