/* Rechtliches Modal: Impressum & Datenschutz */
.legal-modal-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(13,31,34,.62);
  backdrop-filter:blur(8px);
}
.legal-modal-overlay.is-open{display:flex;}
.legal-modal-dialog{
  width:min(980px, calc(100vw - 32px));
  max-height:min(86vh, 900px);
  background:#fffdf8;
  color:#203033;
  border:1px solid rgba(38,85,88,.20);
  border-radius:24px;
  box-shadow:0 28px 90px rgba(0,0,0,.28);
  overflow:hidden;
  position:relative;
}
.legal-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 22px;
  border-bottom:1px solid rgba(38,85,88,.14);
  background:linear-gradient(135deg, rgba(233,241,237,.96), rgba(255,253,248,.96));
}
.legal-modal-title{
  margin:0;
  font-family:Georgia, "Times New Roman", Times, serif;
  font-size:clamp(22px, 2.2vw, 32px);
  line-height:1.1;
  color:#173c40;
}
.legal-modal-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid rgba(38,85,88,.22);
  border-radius:999px;
  background:#ffffff;
  color:#173c40;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.legal-modal-close:hover,
.legal-modal-close:focus{background:#e9f1ed;outline:none;}
.legal-modal-body{
  max-height:calc(min(86vh, 900px) - 82px);
  overflow:auto;
  padding:28px 30px 34px;
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:16px;
  line-height:1.65;
}
.legal-modal-body .legal,
.legal-modal-body article,
.legal-modal-body main{
  box-shadow:none!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  max-width:none!important;
}
.legal-modal-body .hero{
  padding:0 0 1.4rem!important;
  margin:0 0 1.4rem!important;
  background:transparent!important;
  color:#203033!important;
  text-align:left!important;
  border-bottom:1px solid rgba(42, 73, 74, 0.18);
}
.legal-modal-body .hero::before,
.legal-modal-body .hero::after{display:none!important;}
.legal-modal-body .hero .container{
  max-width:none!important;
  padding:0!important;
  margin:0!important;
}
.legal-modal-body .hero-eyebrow{
  margin:0 0 .45rem!important;
  color:#7b5f2e!important;
  font-size:.78rem!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
.legal-modal-body .hero h1{
  margin:0 0 .75rem!important;
  color:#173c40!important;
  font-size:clamp(1.75rem, 3vw, 2.45rem)!important;
  line-height:1.1!important;
}
.legal-modal-body .hero p{
  max-width:none!important;
  margin:0!important;
  color:#4f6665!important;
}
.legal-modal-body .hero-rule{display:none!important;}
.legal-modal-body h1,
.legal-modal-body h2,
.legal-modal-body h3{
  color:#173c40;
  line-height:1.22;
}
.legal-modal-body a{color:#255558;text-decoration:underline;}
body.legal-modal-lock{overflow:hidden;}
@media (max-width:640px){
  .legal-modal-overlay{padding:12px;align-items:center;}
  .legal-modal-dialog{width:calc(100vw - 24px);max-height:88vh;border-radius:18px;}
  .legal-modal-header{padding:14px 16px;}
  .legal-modal-body{padding:22px 18px 28px;font-size:15px;}
  .legal-modal-close{width:40px;height:40px;font-size:26px;}
}
/* Rechteseiten: bessere optische Trennung der Hauptabschnitte */
.legal-page h1,
.legal-modal__content h1 {
  margin-top: 0;
  margin-bottom: 1.15rem;
  line-height: 1.18;
}

.legal-page h2,
.legal-modal__content h2 {
  margin-top: 2.25rem;
  margin-bottom: 0.85rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(42, 73, 74, 0.18);
  line-height: 1.28;
}

.legal-page h3,
.legal-modal__content h3 {
  margin-top: 1.55rem;
  margin-bottom: 0.55rem;
  line-height: 1.32;
}

.legal-page p,
.legal-page ul,
.legal-page ol,
.legal-modal__content p,
.legal-modal__content ul,
.legal-modal__content ol {
  margin-bottom: 0.85rem;
}

.legal-page section,
.legal-modal__content section {
  margin-bottom: 1.8rem;
}

.legal-page .legal-credit,
.legal-modal__content .legal-credit {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(42, 73, 74, 0.22);
  font-size: 0.95rem;
  color: #4f6665;
}

.legal-page .legal-credit a,
.legal-modal__content .legal-credit a {
  font-weight: 600;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Impressum-Erstellerhinweis auch in der Modalbox sichtbar */
.legal-modal__content .legal-credit,
.legal-page .legal-credit {
  display: block;
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(42, 73, 74, 0.22);
  font-size: 0.95rem;
  color: #4f6665;
}

.legal-modal__content .legal-credit a,
.legal-page .legal-credit a {
  font-weight: 600;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
