/* PokerHafen Legal-GUI: Kanonische Light-Tokens kommen aus ph-light-ui.css. */
:root {
  color-scheme: light;
  /* Legal-Namensraum: Aliase und fachlich eigenständige Rechtstextwerte. */
  --legal-navy: var(--ph-color-navy);
  --legal-deep: var(--ph-color-navy-deep);
  --legal-text: var(--ph-color-text);
  --legal-muted: var(--ph-color-text-muted);
  --legal-gold: var(--ph-color-gold);
  --legal-gold-dark: var(--ph-color-gold-dark);
  --legal-cream: var(--ph-color-cream);
  --legal-white: var(--ph-color-white);
  --legal-sky: var(--ph-color-sky);
  --legal-line: var(--ph-color-border);
  --legal-line-gold: var(--ph-color-text-primary-legacy-254b0ef); /* nahe --ph-color-border-gold, bewusst etwas dezenter fuer Rechtstexte */
  --legal-danger: var(--ph-color-status-danger-text-legacy-abe1c73);
  --legal-danger-soft: var(--ph-color-status-danger-text-legacy-464e21e);
  --legal-danger-line: var(--ph-color-status-danger-text-legacy-e6c79f6);
  --legal-danger-border: var(--ph-color-status-danger-border-legacy-5b7ee7b);
  --legal-panel: var(--ph-panel-bg);
  --legal-panel-strong: var(--ph-panel-bg-strong);
  --legal-shadow: 0 22px 70px var(--ph-color-shadow-panel-legacy-c852eaa);
  --legal-radius-xl: 30px;
  --legal-radius-lg: var(--ph-radius-card, 22px);
  --legal-radius-md: var(--ph-radius-card-sm, 16px);
}

* { box-sizing: border-box; }

html {
  min-width: 0;
  overflow-x: hidden;
}

body.legal-leuchtturm-page {
  margin: var(--ph-space-content-stack-legacy-0);
  min-width: 0;
  overflow-x: hidden;
  color: var(--legal-text);
  font-family: var(--ph-font-sans);
  font-size: var(--ph-type-small);
  line-height: var(--ph-leading-relaxed);
  background:
    linear-gradient(180deg, var(--ph-color-surface-page-legacy-4c8e311) 0%, var(--ph-color-surface-page-legacy-de0f8f3) 48%, var(--ph-color-surface-page-legacy-a3f2452) 100%),
    url("../img/legal/leuchtturm/legal-lighthouse-bg.png") center top / cover fixed no-repeat,
    linear-gradient(180deg, var(--ph-color-surface-page-legacy-8cbc0d6) 0%, var(--ph-color-surface-page-legacy-56c7e24) 76%);
  padding-bottom: max(104px, calc(env(safe-area-inset-bottom) + 96px));
}

body.legal-leuchtturm-page::before,
body.legal-leuchtturm-page::after {
  content: "";
  position: fixed;
  pointer-events: none;
  z-index: -1;
  border-radius: 999px;
  filter: blur(2px);
}

body.legal-leuchtturm-page::before {
  width: min(52vw, 720px);
  height: min(52vw, 720px);
  left: -14vw;
  top: -18vw;
  background: radial-gradient(circle, var(--ph-color-surface-page-legacy-21aa1e7), var(--ph-color-surface-page-legacy-cf501b0) 66%);
}

body.legal-leuchtturm-page::after {
  width: min(44vw, 620px);
  height: min(44vw, 620px);
  right: -12vw;
  top: 18vh;
  background: radial-gradient(circle, var(--ph-color-surface-page-legacy-d0102b0), var(--ph-color-surface-page-legacy-4babd7a) 68%);
}

.legal-page-shell {
  width: min(1240px, calc(100% - 32px));
  margin: var(--ph-space-content-stack-legacy-0) auto;
  padding: var(--ph-space-card-padding-block-start-legacy-24px) var(--ph-space-card-padding-inline-legacy-0) var(--ph-space-card-padding-block-end-legacy-132px);
}

.legal-public-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ph-space-layout-gap-legacy-18px);
  margin-bottom: var(--ph-space-content-stack-legacy-18px);
  padding: var(--ph-space-content-padding-block-legacy-10px) var(--ph-space-content-padding-inline-legacy-14px);
  border: 1px solid var(--ph-color-border-default-legacy-5e93337);
  border-radius: 24px;
  background: var(--ph-color-surface-page-legacy-da4c268);
  box-shadow: 0 14px 42px var(--ph-color-shadow-panel-legacy-feac60e);
  backdrop-filter: blur(16px) saturate(1.05);
  -webkit-backdrop-filter: blur(16px) saturate(1.05);
}

.legal-brand,
.legal-public-actions,
.legal-trust-row,
.legal-side-card dl div,
.legal-principles-card li,
.sticky-legal-footer-links {
  display: flex;
  align-items: center;
}

.legal-brand {
  min-width: 0;
  gap: var(--ph-space-layout-gap-legacy-13px);
  color: var(--legal-text);
  text-decoration: none;
}

.legal-brand-mark {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(145deg, var(--ph-color-surface-page-legacy-d29ed28), var(--ph-color-surface-page-legacy-d6e1844));
  border: 2px solid var(--ph-color-border-default-legacy-0fdac4b);
  box-shadow: 0 14px 34px var(--ph-color-shadow-panel-legacy-7b0c5cd), inset 0 1px 0 var(--ph-color-shadow-panel-legacy-e5c6c23);
}

.legal-brand-mark img {
  width: 33px;
  height: 33px;
  object-fit: contain;
}

.legal-brand-copy strong {
  display: block;
  margin: var(--ph-space-content-stack-legacy-0);
  color: var(--legal-deep);
  font-family: var(--ph-font-serif);
  font-size: var(--ph-type-body);
  line-height: var(--ph-leading-heading);
  letter-spacing: var(--ph-tracking-brand);
}

.legal-brand-copy strong span { color: var(--legal-gold-dark); }

.legal-brand-copy small {
  display: block;
  margin-top: var(--ph-space-content-stack-legacy-4px);
  color: var(--ph-color-text-muted-legacy-877aaa5);
  font-size: var(--ph-type-meta);
  font-weight: var(--ph-font-weight-medium);
  letter-spacing: var(--ph-tracking-brand);
  text-transform: uppercase;
}

.legal-public-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ph-space-button-group-legacy-10px);
}

.legal-soft-button,
.legal-primary-button,
.sticky-legal-footer-links a,
.legal-quick-nav a {
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}

.legal-soft-button,
.legal-primary-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ph-space-button-group-legacy-8px);
  border-radius: 999px;
  padding: var(--ph-space-control-padding-block-legacy-10px) var(--ph-space-control-padding-inline-legacy-16px);
  font-size: var(--ph-type-control);
  font-weight: var(--ph-font-weight-bold);
}

.legal-soft-button {
  color: var(--legal-text);
  background: var(--ph-color-action-secondary-bg-legacy-5976559);
  border: 1px solid var(--ph-color-border-default-legacy-b6329e5);
}

.legal-primary-button {
  color: var(--ph-color-action-primary-text);
  background: linear-gradient(180deg, var(--legal-navy), var(--legal-deep));
  border: 1px solid var(--ph-color-border-default-legacy-e77ac99);
  box-shadow: inset 0 1px 0 var(--ph-color-shadow-action-legacy-e5c6c23), 0 12px 28px var(--ph-color-shadow-action-legacy-b636c31);
}

.legal-soft-button:hover,
.legal-primary-button:hover,
.legal-quick-nav a:hover,
.sticky-legal-footer-links a:hover {
  transform: translateY(-1px);
  border-color: var(--ph-color-border-default-legacy-0fdac4b);
}

.legal-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: clamp(18px, 3vw, 36px);
  overflow: hidden;
  margin-bottom: var(--ph-space-section-stack-legacy-22px);
  padding: clamp(24px, 4.2vw, 46px);
  border: 1px solid var(--ph-color-border-strong-legacy-92a067d);
  border-radius: var(--legal-radius-xl);
  background:
    linear-gradient(100deg, var(--ph-color-surface-page-legacy-0850a77) 0%, var(--ph-color-surface-page-legacy-de1e351) 58%, var(--ph-color-surface-page-legacy-daac441) 100%);
  box-shadow: var(--legal-shadow);
}

.legal-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 16% 18%, var(--ph-color-surface-page-legacy-3bfc3a3), transparent 22rem),
    radial-gradient(circle at 88% 12%, var(--ph-color-surface-page-legacy-24bda09), transparent 25rem),
    linear-gradient(180deg, var(--ph-color-surface-page-legacy-4babd7a), var(--ph-color-surface-page-legacy-338f97a));
}

.legal-hero > * { position: relative; z-index: 1; }

.legal-kicker,
.legal-side-label {
  display: inline-flex;
  align-items: center;
  gap: var(--ph-space-layout-gap-legacy-8px);
  color: var(--legal-gold-dark);
  text-transform: uppercase;
  letter-spacing: var(--ph-tracking-label);
  font-size: var(--ph-type-eyebrow);
  font-weight: var(--ph-font-weight-medium);
}

.legal-kicker::before,
.legal-side-label::before {
  content: "";
  width: 24px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--legal-gold-dark), var(--legal-gold));
}

.legal-hero h1,
.legal-content h1 {
  margin: var(--ph-space-heading-body-legacy-d24rem) var(--ph-space-heading-body-legacy-0) var(--ph-space-heading-body-legacy-d55rem);
  color: var(--legal-deep);
  font-family: var(--ph-font-serif);
  font-size: var(--ph-type-display);
  line-height: var(--ph-leading-display);
  letter-spacing: var(--ph-tracking-display);
}

.legal-hero p {
  max-width: 760px;
  margin: var(--ph-space-section-stack-legacy-0);
  color: var(--ph-color-text-heading-legacy-a04a235);
  font-size: var(--ph-type-body);
  font-weight: var(--ph-font-weight-regular);
}

.legal-trust-row {
  flex-wrap: wrap;
  gap: var(--ph-space-layout-gap-legacy-10px);
  margin-top: var(--ph-space-content-stack-legacy-22px);
}

.legal-trust-row span {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--ph-space-layout-gap-legacy-9px);
  padding: var(--ph-space-content-padding-block-legacy-9px) var(--ph-space-content-padding-inline-legacy-13px);
  border: 1px solid var(--ph-color-border-default-legacy-254b0ef);
  border-radius: 14px;
  color: var(--legal-text);
  background: var(--ph-color-surface-page-legacy-d6f0e3f);
  box-shadow: inset 0 1px 0 var(--ph-color-shadow-panel-legacy-c90ada5);
  font-size: var(--ph-type-small);
  font-weight: var(--ph-font-weight-bold);
}

.legal-trust-row img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.legal-hero-visual {
  align-self: stretch;
  min-height: 230px;
  margin: var(--ph-space-section-stack-legacy-0);
  overflow: hidden;
  border: 1px solid var(--ph-color-border-strong-legacy-656a19f);
  border-radius: 24px;
  background: var(--ph-color-surface-page-legacy-8cbc0d6);
  box-shadow: inset 0 1px 0 var(--ph-color-shadow-panel-legacy-7ea5b2b), 0 18px 50px var(--ph-color-shadow-panel-legacy-c6658af);
}

.legal-hero-visual img {
  width: 100%;
  height: 100%;
  min-height: 230px;
  display: block;
  object-fit: cover;
}

.legal-document-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: var(--ph-space-layout-gap-legacy-22px);
  align-items: start;
}

.legal-document-layout--single {
  grid-template-columns: minmax(0, 1fr);
}

.legal-document-layout--single .legal-content {
  width: 100%;
}

.legal-content {
  min-width: 0;
  display: grid;
  gap: var(--ph-space-layout-gap-legacy-18px);
}

.legal-content .card,
.legal-side-card {
  border: 1px solid var(--legal-line);
  border-radius: var(--legal-radius-lg);
  background: var(--legal-panel);
  box-shadow: 0 18px 52px var(--ph-color-shadow-panel-legacy-b76dc05);
  backdrop-filter: blur(14px) saturate(1.03);
  -webkit-backdrop-filter: blur(14px) saturate(1.03);
}

.legal-content .card {
  position: relative;
  overflow: hidden;
  padding: clamp(20px, 2.8vw, 30px);
}

.legal-content .card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--ph-color-surface-panel-legacy-99886fd), var(--legal-gold), var(--ph-color-surface-panel-legacy-60d94c8));
}

.legal-content .card h2,
.legal-content .card h3,
.legal-content .card h4 {
  color: var(--legal-deep);
  line-height: var(--ph-leading-heading);
}

.legal-content .card h2 {
  margin: var(--ph-space-heading-body-legacy-d1rem) var(--ph-space-heading-body-legacy-0) var(--ph-space-heading-body-legacy-d65rem);
  font-family: var(--ph-font-serif);
  font-size: var(--ph-type-section-title);
}

.legal-content .card h3 {
  margin: var(--ph-space-heading-body-legacy-1d35rem) var(--ph-space-heading-body-legacy-0) var(--ph-space-heading-body-legacy-d45rem);
  font-size: var(--ph-type-card-title);
}

.legal-content .card p,
.legal-content .card li,
.legal-content .card dd,
.legal-content .card td,
.legal-content .card th {
  color: var(--ph-color-text-primary-legacy-a04a235);
}

.legal-content .card p { margin:var(--ph-space-section-stack-legacy-d72rem) var(--ph-space-section-stack-legacy-0); }
.legal-content .card ul,
.legal-content .card ol { margin:var(--ph-space-section-stack-legacy-d72rem) var(--ph-space-section-stack-legacy-0); padding-left:var(--ph-space-card-padding-inline-legacy-1d25rem); }
.legal-content .card li { margin:var(--ph-space-section-stack-legacy-d32rem) var(--ph-space-section-stack-legacy-0); }

.legal-content .card a {
  color: var(--legal-navy);
  font-weight: var(--ph-font-weight-bold);
  text-decoration-color: var(--ph-color-text-link-legacy-6497a06);
  text-underline-offset: 3px;
}

.legal-content .card table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--ph-space-section-stack-legacy-1rem) var(--ph-space-section-stack-legacy-0);
  overflow: hidden;
  border-radius: 14px;
}

.legal-content .card th,
.legal-content .card td {
  padding: var(--ph-space-card-padding-block-legacy-d7rem) var(--ph-space-card-padding-inline-legacy-d8rem);
  border: 1px solid var(--ph-color-border-default-legacy-c3ffaef);
  background: var(--ph-color-surface-panel-legacy-4c4a8a2);
  text-align: left;
}

.legal-content .card th {
  color: var(--legal-deep);
  background: var(--ph-color-surface-panel-legacy-c87fe9b);
}

.legal-content .card code {
  display: inline-flex;
  max-width: 100%;
  overflow-wrap: anywhere;
  border: 1px solid var(--ph-color-border-default);
  border-radius: 8px;
  padding: var(--ph-space-card-padding-block-legacy-1px) var(--ph-space-card-padding-inline-legacy-7px);
  color: var(--legal-deep);
  background: var(--ph-color-surface-panel-legacy-75bada8);
}

.legal-stand-card {
  background: var(--legal-panel-strong) !important;
}

.legal-page-sidebar {
  position: sticky;
  top: 18px;
  display: grid;
  gap: var(--ph-space-layout-gap-legacy-14px);
  min-width: 0;
}

.legal-side-card {
  padding: var(--ph-space-card-padding-all-legacy-18px);
  background: var(--ph-color-surface-panel-legacy-de1e351);
}

.legal-side-card-document > img {
  width: 54px;
  height: 54px;
  object-fit: contain;
  display: block;
  margin-bottom: var(--ph-space-section-stack-legacy-8px);
}

.legal-side-card h2 {
  margin: var(--ph-space-heading-body-legacy-d45rem) var(--ph-space-heading-body-legacy-0) var(--ph-space-heading-body-legacy-d75rem);
  color: var(--legal-deep);
  font-family: var(--ph-font-serif);
  font-size: var(--ph-type-section-title);
  line-height: var(--ph-leading-heading);
}

.legal-side-card dl {
  display: grid;
  gap: var(--ph-space-layout-gap-legacy-10px);
  margin: var(--ph-space-section-stack-legacy-0);
}

.legal-side-card dl div {
  justify-content: space-between;
  gap: var(--ph-space-layout-gap-legacy-12px);
  padding-bottom: var(--ph-space-card-padding-block-legacy-9px);
  border-bottom: 1px solid var(--ph-color-border-default-legacy-9b012a5);
}

.legal-side-card dt {
  color: var(--legal-muted);
  font-size: var(--ph-type-small);
  font-weight: var(--ph-font-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--ph-tracking-none);
}

.legal-side-card dd {
  margin: var(--ph-space-section-stack-legacy-0);
  color: var(--legal-text);
  text-align: right;
  font-weight: var(--ph-font-weight-bold);
}

.legal-quick-nav {
  display: grid;
  gap: var(--ph-space-nav-group-legacy-8px);
}

.legal-quick-nav a {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ph-space-nav-group-legacy-10px);
  border: 1px solid var(--ph-color-border-default-legacy-5e93337);
  border-radius: 13px;
  padding: var(--ph-space-control-padding-block-legacy-9px) var(--ph-space-control-padding-inline-legacy-11px);
  color: var(--legal-text);
  background: var(--ph-color-action-secondary-bg-legacy-72c5f11);
  font-weight: var(--ph-font-weight-medium);
}

.legal-quick-nav a::after {
  content: "›";
  color: var(--legal-gold-dark);
  font-size: var(--ph-type-nav);
  line-height: 1;
}

.legal-quick-nav a.is-active,
.legal-quick-nav a[aria-current="page"] {
  color: var(--ph-color-action-secondary-text-legacy-c659d63);
  border-color: var(--ph-color-border-default-legacy-f996525);
  background: linear-gradient(180deg, var(--legal-navy), var(--legal-deep));
  box-shadow: 0 10px 24px var(--ph-color-shadow-panel-legacy-b636c31);
}

.legal-principles-card ul {
  display: grid;
  gap: var(--ph-space-layout-gap-legacy-10px);
  margin: var(--ph-space-section-stack-legacy-12px) var(--ph-space-section-stack-legacy-0) var(--ph-space-section-stack-legacy-0);
  padding: var(--ph-space-card-padding-all-legacy-0);
  list-style: none;
}

.legal-principles-card li {
  gap: var(--ph-space-layout-gap-legacy-10px);
  color: var(--legal-text);
  font-weight: var(--ph-font-weight-regular);
}

.legal-principles-card li img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex: 0 0 24px;
}

.legal-page-sticky-footer {
  margin-top: var(--ph-space-content-stack-legacy-30px);
  color: var(--legal-muted);
  font-size: var(--ph-type-meta);
}

.sticky-legal-footer-links {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: max(10px, env(safe-area-inset-bottom));
  z-index: 1000;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--ph-space-layout-gap-legacy-8px);
  width: auto;
  max-width: min(1120px, calc(100vw - 24px));
  margin: var(--ph-space-content-stack-legacy-0) auto;
  padding: var(--ph-space-content-padding-block-legacy-9px) var(--ph-space-content-padding-inline-legacy-10px);
  border: 1px solid var(--ph-color-border-default);
  border-radius: 999px;
  background: var(--ph-color-surface-page-legacy-0af615e);
  box-shadow: 0 14px 42px var(--ph-color-shadow-panel-legacy-c852eaa), inset 0 1px 0 var(--ph-color-shadow-panel-legacy-78f2335);
  backdrop-filter: blur(16px) saturate(1.08);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
}

.sticky-legal-footer-links a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  border: 1px solid var(--ph-color-border-default-legacy-487a706);
  border-radius: 999px;
  padding: var(--ph-space-content-padding-block-legacy-7px) var(--ph-space-content-padding-inline-legacy-12px);
  color: var(--legal-text);
  background: var(--ph-color-surface-page-legacy-b67e9e7);
  font-size: var(--ph-type-meta);
  font-weight: var(--ph-font-weight-regular);
}

.sticky-legal-footer-links a[aria-current="page"] {
  color: var(--ph-color-text-link-legacy-c659d63);
  border-color: var(--ph-color-border-default-legacy-f996525);
  background: linear-gradient(180deg, var(--legal-navy), var(--legal-deep));
}

.legal-footer-note {
  max-width: 880px;
  margin: var(--ph-space-content-stack-legacy-28px) auto var(--ph-space-content-stack-legacy-0);
  text-align: center;
  color: var(--ph-color-text-primary-legacy-2131d2c);
  font-weight: var(--ph-font-weight-medium);
}

.roadmap-list {
  display: grid;
  gap: var(--ph-space-section-grid-legacy-18px);
}

.version-pill {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ph-color-border-default-legacy-0772799);
  border-radius: 999px;
  padding: var(--ph-space-content-padding-block-legacy-6px) var(--ph-space-content-padding-inline-legacy-11px);
  color: var(--legal-gold-dark);
  background: var(--ph-color-surface-page-legacy-b056c1c);
  font-size: var(--ph-type-meta);
  font-weight: var(--ph-font-weight-bold);
  letter-spacing: var(--ph-tracking-none);
}

@media (max-width: 1040px) {
  .legal-hero,
  .legal-document-layout {
    grid-template-columns: 1fr;
  }

  .legal-page-sidebar {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .legal-side-card dd { text-align: left; }
  .legal-side-card dl div { align-items: flex-start; flex-direction: column; gap:var(--ph-space-layout-gap-legacy-3px); }
}

@media (max-width: 760px) {
  body.legal-leuchtturm-page {
    background-attachment: scroll, scroll, scroll;
    padding-bottom: max(164px, calc(env(safe-area-inset-bottom) + 154px));
  }

  .legal-page-shell {
    width: min(calc(100% - 22px), 1240px);
    padding: var(--ph-space-card-padding-block-start-legacy-12px) var(--ph-space-card-padding-inline-legacy-0) var(--ph-space-card-padding-block-end-legacy-186px);
  }

  .legal-public-header {
    align-items: flex-start;
    flex-direction: column;
    border-radius: 20px;
  }

  .legal-public-actions {
    width: 100%;
    justify-content: stretch;
  }

  .legal-soft-button,
  .legal-primary-button {
    flex: 1 1 150px;
  }

  .legal-brand-copy strong {
    font-size: var(--ph-type-body);
  }

  .legal-brand-copy small {
    letter-spacing: var(--ph-tracking-brand);
  }

  .legal-brand-mark {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .legal-hero {
    padding: var(--ph-space-card-padding-all-legacy-22px);
    border-radius: 24px;
  }

  .legal-hero-visual {
    min-height: 180px;
  }

  .legal-hero-visual img {
    min-height: 180px;
  }

  .legal-trust-row span {
    flex: 1 1 100%;
  }

  .legal-page-sidebar {
    grid-template-columns: 1fr;
  }

  .legal-content .card {
    padding: var(--ph-space-card-padding-all-legacy-19px);
    border-radius: 19px;
  }

  .sticky-legal-footer-links {
    align-items: stretch;
    justify-content: flex-start;
    max-height: 35vh;
    overflow-y: auto;
    border-radius: 22px;
    -webkit-overflow-scrolling: touch;
  }

  .sticky-legal-footer-links a {
    flex: 1 1 calc(50% - 8px);
    min-height: 38px;
    white-space: normal;
  }
}

@media (max-width: 420px) {
  .legal-hero h1,
  .legal-content h1 {
    font-size: var(--ph-type-display);
  }

  .sticky-legal-footer-links a {
    flex-basis: 100%;
  }
}

/* Kontaktformular: nutzt die helle Legal-/Premium-GUI und bleibt bewusst in legal.css, damit kontakt.php keine lokalen Style-Blöcke benötigt. */
.contact-document-layout {
  grid-template-columns: minmax(0, 1fr) minmax(270px, 360px);
}

.contact-form-card {
  overflow: visible;
}

.contact-intro {
  max-width: 68ch;
}

.contact-form {
  display: grid;
  gap: var(--ph-space-form-stack-legacy-18px);
  margin-top: var(--ph-space-form-stack-legacy-18px);
}

.contact-field-grid {
  display: grid;
  gap: var(--ph-space-form-stack-legacy-16px);
}

.contact-field-grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-field {
  display: grid;
  gap: var(--ph-space-form-stack-legacy-7px);
  color: var(--legal-text);
  font-family: var(--ph-font-sans);
  font-weight: var(--ph-font-weight-medium);
}

.contact-field span {
  color: var(--legal-navy);
}

.contact-field strong {
  color: var(--legal-gold-dark);
}

.contact-field small,
.contact-field em {
  font-size: var(--ph-type-meta);
  font-style: normal;
  font-weight: var(--ph-font-weight-medium);
  line-height: var(--ph-leading-meta);
}

.contact-field small {
  color: var(--legal-muted);
}

.contact-field em,
.contact-alert-error {
  color: var(--legal-danger);
}

.contact-field input,
.contact-field textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--legal-line);
  border-radius: var(--legal-radius-md);
  padding: var(--ph-space-form-padding-block-legacy-12px) var(--ph-space-form-padding-inline-legacy-14px);
  color: var(--legal-text);
  background: var(--ph-color-surface-panel-legacy-2917bdb);
  box-shadow: inset 0 1px 0 var(--ph-color-shadow-panel-legacy-d6f0e3f), 0 10px 24px var(--ph-color-shadow-panel-legacy-8700e75);
  font-family: var(--ph-font-sans);
  font-size: var(--ph-type-body);
  font-weight: var(--ph-font-weight-medium);
  line-height: var(--ph-leading-control);
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.contact-field textarea {
  min-height: 188px;
  resize: vertical;
}

.contact-field input:focus,
.contact-field textarea:focus {
  border-color: var(--legal-gold);
  background: var(--legal-white);
  box-shadow: 0 0 0 4px var(--ph-color-shadow-focus-legacy-3bfc3a3), inset 0 1px 0 var(--ph-color-shadow-focus-legacy-7ea5b2b);
}

.contact-field-has-error input,
.contact-field-has-error textarea {
  border-color: var(--legal-danger-border);
  box-shadow: 0 0 0 4px var(--legal-danger-soft), inset 0 1px 0 var(--ph-color-status-danger-text-legacy-d6f0e3f);
}

.contact-security-box {
  display: grid;
  grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
  gap: var(--ph-space-layout-gap-legacy-16px);
  align-items: end;
  border: 1px solid var(--ph-color-border-default-legacy-92a067d);
  border-radius: var(--legal-radius-lg);
  padding: var(--ph-space-content-padding-all-legacy-16px);
  background: linear-gradient(135deg, var(--ph-color-surface-page-legacy-de1e351), var(--ph-color-surface-page-legacy-2917bdb));
}

.contact-security-box p {
  margin: var(--ph-space-content-stack-legacy-0);
  color: var(--legal-muted);
  font-size: var(--ph-type-body);
  font-weight: var(--ph-font-weight-regular);
}

.contact-alert {
  display: grid;
  gap: var(--ph-space-layout-gap-legacy-4px);
  margin: var(--ph-space-content-stack-legacy-14px) var(--ph-space-content-stack-legacy-0);
  border-radius: var(--legal-radius-md);
  padding: var(--ph-space-dialog-padding-block-legacy-14px) var(--ph-space-dialog-padding-inline-legacy-16px);
  font-weight: var(--ph-font-weight-bold);
}

.contact-alert-success {
  border: 1px solid var(--ph-color-status-success-border-legacy-ae1d540);
  color: var(--legal-text);
  background: linear-gradient(135deg, var(--ph-color-status-success-surface-legacy-c3d956d), var(--ph-color-status-success-surface-legacy-da4c268));
}

.contact-alert-success span {
  color: var(--legal-muted);
  font-size: var(--ph-type-body);
}

.contact-alert-error {
  border: 1px solid var(--legal-danger-line);
  background: var(--ph-color-status-danger-surface-legacy-3b91e2a);
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ph-space-button-group-legacy-12px);
  align-items: center;
}

.contact-submit-button {
  border: 0;
  cursor: pointer;
}

.contact-submit-button:focus-visible,
.contact-actions a:focus-visible {
  outline: 3px solid var(--ph-color-border-focus-legacy-fc666d3);
  outline-offset: var(--ph-space-focus-offset-legacy-3px);
}

.contact-trap {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-side-card .legal-side-card-document {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

@media (max-width: 1040px) {
  .contact-document-layout,
  .contact-security-box {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .contact-field-grid-two {
    grid-template-columns: 1fr;
  }

  .contact-form {
    gap: var(--ph-space-form-stack-legacy-15px);
  }

  .contact-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .contact-submit-button,
  .contact-actions a {
    width: 100%;
  }
}

/* v1.25.141: Einheitliche einzeilige Footer-Linkleiste auf Recht-/Kontakt-/Supportseiten. */
.sticky-legal-footer-links {
  flex-wrap: nowrap;
  justify-content: flex-start;
  overflow-x: auto;
  overflow-y: hidden;
  max-height: none;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.sticky-legal-footer-links a {
  flex: 0 0 auto;
  white-space: nowrap;
  scroll-snap-align: center;
}
@media (max-width: 760px) {
  body.legal-leuchtturm-page {
    padding-bottom: max(118px, calc(env(safe-area-inset-bottom) + 108px));
  }
  .legal-page-shell {
    padding-bottom: var(--ph-space-card-padding-block-legacy-132px);
  }
  .sticky-legal-footer-links {
    align-items: center;
    border-radius: 999px;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
  }
  .sticky-legal-footer-links a {
    flex: 0 0 auto;
    min-height: 36px;
    white-space: nowrap;
  }
}
@media (max-width: 420px) {
  .sticky-legal-footer-links a {
    flex-basis: auto;
  }
}


/* v1.25.143: Rechtsseiten nutzen denselben statischen Footer wie die Lobby-Seite. */
body.legal-leuchtturm-page:has(.app-static-legal-footer) {
  padding-bottom: max(92px, calc(env(safe-area-inset-bottom) + 84px));
}

.legal-leuchtturm-page .app-legal-footer.app-static-legal-footer {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: max(10px, env(safe-area-inset-bottom));
  width: auto;
  max-width: min(1220px, calc(100vw - 24px));
  margin: var(--ph-space-content-stack-legacy-0) auto;
  z-index: 390;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: var(--ph-space-layout-gap-legacy-d45rem);
  padding: var(--ph-space-content-padding-all-legacy-d55rem);
  border-radius: 999px;
  border: 1px solid var(--ph-color-border-default-legacy-ff484be);
  background: var(--ph-color-surface-page-legacy-5eabbec);
  box-shadow: 0 .9rem 2.1rem var(--ph-color-shadow-panel-legacy-a213c9d), inset 0 1px 0 var(--ph-color-shadow-panel-legacy-bfeccfc);
  backdrop-filter: blur(16px) saturate(1.08);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.legal-leuchtturm-page .app-legal-footer .app-link-button {
  flex: 0 0 auto;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ph-space-button-group-legacy-d38rem);
  white-space: nowrap;
  padding: var(--ph-space-control-padding-block-legacy-d48rem) var(--ph-space-control-padding-inline-legacy-d82rem);
  border-radius: 999px;
  border: 1px solid var(--ph-color-border-default-legacy-ff484be);
  color: var(--ph-color-action-quiet-text-legacy-2917bdb);
  text-decoration: none;
  font-size: var(--ph-type-control);
  font-weight: var(--ph-font-weight-bold);
  line-height: var(--ph-leading-control);
  background: var(--ph-color-action-quiet-bg-legacy-38da6d9);
  box-shadow: inset 0 1px 0 var(--ph-color-shadow-action-legacy-bfeccfc), 0 .65rem 1.5rem var(--ph-color-shadow-action-legacy-391df97);
  transition: transform .16s ease, border-color .16s ease, background .16s ease, color .16s ease;
}

.legal-leuchtturm-page .app-legal-footer .app-link-button:hover,
.legal-leuchtturm-page .app-legal-footer .app-link-button:focus-visible,
.legal-leuchtturm-page .app-legal-footer .app-link-button[aria-current="page"] {
  color: var(--ph-color-action-quiet-text-legacy-daf8874);
  border-color: var(--ph-color-border-focus-legacy-afea9dc);
  background: var(--ph-color-action-quiet-bg-legacy-232fd74);
  transform: translateY(-1px);
  outline: none;
}

/* v1.25.143: Rechtsseiten-Footer-Schriftgröße exakt an Lobby-Footer angleichen. */
.legal-leuchtturm-page .app-legal-footer .app-link-button,
.legal-leuchtturm-page .app-legal-footer.app-static-legal-footer a,
.legal-leuchtturm-page .app-legal-footer.app-static-legal-footer button {
  font-size: var(--ph-type-control);
}

@media (max-width: 720px) {
  body.legal-leuchtturm-page:has(.app-static-legal-footer) {
    padding-bottom: max(104px, calc(env(safe-area-inset-bottom) + 96px));
  }
  .legal-leuchtturm-page .app-legal-footer.app-static-legal-footer {
    border-radius: 999px;
  }
}
