/* Shared styles for Impressum, Datenschutz, Barrierefreiheit pages */

:root{
  --cream:#faf5f2;
  --bone:#f3ebe7;
  --blush:#e4c8c2;
  --rose:#c49090;
  --rose-deep:#8f5661;
  --rose-soft:#e2bcba;
  --rose-mist:#f7e6e3;
  --ink:#1a1817;
  --charcoal:#2a2724;
  --muted:#6b5f57;
  --line:#eadfd9;
  --line-strong:#d9c8c2;
  --serif:'Inter',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --pad-x:clamp(1.25rem,5vw,5rem);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{
  font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.75;
  color:var(--charcoal);background:var(--cream);
  min-height:100vh;letter-spacing:.002em;
}

a{color:var(--rose-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s}
a:hover{color:var(--ink)}

/* NAV */
.legal-nav{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem var(--pad-x);
  background:rgba(250,245,242,.88);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.legal-nav-brand{
  display:flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none;
}
.legal-logo{
  height:36px;width:auto;display:block;
}
.legal-nav-brand span{
  font-family:var(--serif);font-size:1.05rem;font-weight:500;letter-spacing:.015em;
}
.legal-back{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  color:var(--rose-deep);text-decoration:none;
  padding:.6rem 1rem;border:1px solid var(--line-strong);border-radius:.6rem;
  transition:all .3s;
}
.legal-back:hover{background:var(--rose-deep);color:#fff;border-color:transparent}

@media(max-width:600px){
  .legal-nav-brand span{display:none}
  .legal-back{font-size:.72rem;padding:.5rem .8rem}
}

/* CONTENT */
.legal-content{
  max-width:780px;
  margin:0 auto;
  padding:4rem var(--pad-x) 6rem;
}
.legal-eyebrow{
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rose-deep);font-weight:500;margin-bottom:1rem;
}
h1{
  font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.1;letter-spacing:-.015em;color:var(--ink);margin-bottom:1.2rem;
}
.legal-lead{
  font-size:1.08rem;color:var(--muted);line-height:1.8;max-width:60ch;
  margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--line);
}

.legal-content section{margin-bottom:2.8rem}
.legal-content h2{
  font-family:var(--serif);font-weight:400;font-size:1.6rem;color:var(--ink);
  line-height:1.25;margin-bottom:1rem;letter-spacing:-.005em;
}
.legal-content h3{
  font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--ink);
  line-height:1.3;margin:1.4rem 0 .6rem;
}
.legal-content p{
  color:var(--charcoal);line-height:1.85;margin-bottom:1rem;max-width:70ch;
  font-size:.97rem;
}
.legal-content ul{
  margin:.5rem 0 1rem 1.3rem;
  color:var(--charcoal);line-height:1.8;
}
.legal-content li{margin-bottom:.35rem;font-size:.97rem}
.legal-content li::marker{color:var(--rose)}

.legal-indent{
  padding:1rem 1.3rem;background:var(--bone);border-left:3px solid var(--rose);
  border-radius:.6rem;margin:1rem 0 1.5rem;
  font-size:.94rem;
}

.legal-placeholder{
  display:inline-block;
  padding:.2rem .6rem;background:#fff4e5;border:1px dashed #d4a76a;
  border-radius:.4rem;color:#8a5a00;font-size:.88rem;font-family:var(--sans);
  font-weight:500;font-style:normal;
}

.legal-callout{
  padding:1.4rem 1.6rem;
  background:var(--rose-mist);
  border-left:4px solid var(--rose-deep);
  border-radius:.8rem;
  margin:1.5rem 0 2rem;
  font-size:.95rem;line-height:1.75;color:var(--charcoal);
}

.legal-dl{display:grid;grid-template-columns:180px 1fr;gap:.6rem 1.2rem;margin-top:.5rem}
.legal-dl dt{
  font-weight:500;color:var(--rose-deep);font-size:.86rem;
  letter-spacing:.02em;padding-top:.15rem;
}
.legal-dl dd{color:var(--charcoal);font-size:.95rem;line-height:1.7}

@media(max-width:700px){
  .legal-dl{grid-template-columns:1fr;gap:.15rem 0}
  .legal-dl dt{margin-top:.8rem}
  .legal-dl dd{margin-bottom:.6rem}
}

/* FOOTER */
.legal-footer{
  background:var(--ink);color:var(--cream);padding:2.5rem var(--pad-x);
}
.legal-footer-inner{
  max-width:1100px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  font-size:.82rem;
}
.legal-footer-inner > div{color:rgba(255,255,255,.55)}
.legal-footer-nav{display:flex;gap:1.6rem;flex-wrap:wrap}
.legal-footer-nav a{
  color:rgba(255,255,255,.7);text-decoration:none;
  font-size:.82rem;letter-spacing:.04em;transition:color .2s;
}
.legal-footer-nav a:hover{color:var(--cream)}
.legal-footer-nav a[aria-current="page"]{color:var(--rose-soft)}

@media(max-width:600px){
  .legal-footer-inner{flex-direction:column;align-items:flex-start}
}

/* A11y */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--rose-deep);
  outline-offset:4px;
  border-radius:4px;
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}
