/* ============================================================
   AnwaltKuendigung – Shared Stylesheet
   Playfair Display + Source Sans 3 – Navy/Gold Design System
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');

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

:root {
  --navy:        hsl(220,55%,18%);
  --navy-light:  hsl(220,45%,28%);
  --navy-dark:   hsl(220,60%,10%);
  --gold:        hsl(38,92%,50%);
  --gold-light:  hsl(38,85%,62%);
  --gold-dark:   hsl(38,95%,42%);
  --bg:          hsl(210,20%,98%);
  --card:        hsl(0,0%,100%);
  --border:      hsl(215,25%,88%);
  --muted:       hsl(215,20%,95%);
  --muted-fg:    hsl(220,15%,46%);
  --fg:          hsl(220,50%,12%);
  --radius:      0.5rem;
  --shadow-navy: 0 8px 32px -8px hsl(220 55% 18% / 0.25);
  --shadow-gold: 0 4px 16px -4px hsl(38 92% 50% / 0.35);
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Source Sans 3', sans-serif;
  background: var(--bg);
  color: var(--fg);
  overflow-x: hidden;
  line-height: 1.6;
}
h1,h2,h3,h4,h5,h6 { font-family: 'Playfair Display', serif; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
input,select,textarea,button { font-family: inherit; }

/* ── Layout ── */
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
@media(min-width:1024px){ .container{ padding:0 2rem; } }

/* ── Utilities ── */
.text-gold { color: var(--gold); }
.text-navy { color: var(--navy); }
.text-muted { color: var(--muted-fg); }
.font-display { font-family: 'Playfair Display', serif; }
.bg-navy { background: var(--navy); }
.bg-navy-dark { background: var(--navy-dark); }
.bg-muted-section { background: var(--muted); }
.bg-gold { background: var(--gold); }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0; }

/* ── Buttons ── */
.btn { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 2rem;border-radius:var(--radius);font-weight:700;font-size:1rem;border:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s; }
.btn-gold { background:var(--gold);color:var(--navy-dark);box-shadow:var(--shadow-gold); }
.btn-gold:hover { background:var(--gold-dark); }
.btn-outline-white { background:transparent;border:2px solid rgba(255,255,255,.35);color:#fff; }
.btn-outline-white:hover { border-color:var(--gold);color:var(--gold); }
.btn-navy { background:var(--navy);color:#fff; }
.btn-navy:hover { background:var(--navy-light); }
.btn-sm { padding:.625rem 1.25rem;font-size:.875rem; }
.btn-full { width:100%; }

/* ── Navbar ── */
.navbar {
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:.875rem 0;
  transition:background .3s,box-shadow .3s;
}
.navbar.scrolled, .navbar.darkNavBg {
  background: rgba(11,20,46,.96);
  backdrop-filter:blur(12px);
  box-shadow: 0 2px 20px rgba(0,0,0,.25);
}
.navbar-inner { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
.navbar-brand { display:flex;align-items:center;gap:.5rem;color:#fff; }
.navbar-brand .brand-icon { color:var(--gold);flex-shrink:0;width:1.25rem;height:1.25rem; }
.navbar-brand .brand-name { font-family:'Playfair Display',serif;font-size:.875rem;font-weight:700;line-height:1.3; }
.navbar-brand .brand-sub { font-size:.7rem;opacity:.65;font-weight:400; }
.navbar-links { display:flex;align-items:center;gap:1.5rem; }
.navbar-links a { color:rgba(255,255,255,.8);font-size:.875rem;font-weight:500;transition:color .2s; }
.navbar-links a:hover { color:var(--gold); }
.navbar-actions { display:flex;align-items:center;gap:.75rem; }
.navbar-phone { color:rgba(255,255,255,.7);font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.4rem;transition:color .2s; }
.navbar-phone:hover { color:var(--gold); }
.lang-toggle { display:flex;align-items:center;gap:.25rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.25rem .5rem; }
.lang-toggle button { background:none;border:none;cursor:pointer;color:rgba(255,255,255,.6);font-size:.75rem;font-weight:600;padding:.125rem .375rem;border-radius:999px;transition:all .2s; }
.lang-toggle button.active { background:var(--gold);color:var(--navy-dark); }
.mobile-menu-btn { display:none;background:none;border:none;cursor:pointer;color:#fff;padding:.25rem; }

.navbar-mobile {
  display: none;
}

@media (max-width:1023px) {
  .navbar-links,.navbar-actions { display:none; }
  .mobile-menu-btn { display:block; }
  .navbar-mobile { display:none;position:absolute;top:100%;left:0;right:0;background:rgba(11,20,46,.97);padding:1rem 1.5rem 1.5rem; }
  .navbar-mobile.open { display:block; }
  .navbar-mobile a,.navbar-mobile button { display:block;color:rgba(255,255,255,.8);padding:.75rem 0;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08); }
  .navbar-mobile a:hover { color:var(--gold); }
  .navbar-mobile .btn-gold { display:flex;margin-top:1rem;text-align:center; }
}

/* ── Hero ── */
.hero {
  min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;
  background:linear-gradient(135deg,hsl(220,60%,10%) 0%,hsl(220,55%,20%) 50%,hsl(215,45%,28%) 100%);
}
.hero-bg { position:absolute;inset:0;background-image:url('../images/hero-bg.jpg');background-size:cover;background-position:center;opacity:.25; }
.hero-overlay { position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,20,46,.85) 0%,rgba(11,20,46,.6) 100%); }
.hero-content { position:relative;z-index:1;padding:7rem 0 4rem; }
.hero-badge { display:inline-flex;align-items:center;gap:.5rem;background:rgba(244,162,49,.18);border:1px solid rgba(244,162,49,.35);color:var(--gold);padding:.5rem 1rem;border-radius:999px;font-size:.875rem;font-weight:600;margin-bottom:1.5rem; }
.hero h1 { font-size:clamp(2.5rem,6vw,4rem);font-weight:700;color:#fff;line-height:1.15;margin-bottom:1.25rem; }
.hero h1 .text-gradient { background:linear-gradient(135deg,var(--gold) 0%,var(--gold-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.hero-sub { font-size:1.125rem;color:rgba(255,255,255,.75);max-width:600px;margin-bottom:2rem;line-height:1.7;font-weight:300; }
.hero-ctas { display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem; }
.hero-features { display:flex;flex-wrap:wrap;gap:1.5rem; }
.hero-feature { display:flex;align-items:center;gap:.5rem;color:rgba(255,255,255,.7);font-size:.875rem; }
.hero-feature svg { color:var(--gold);flex-shrink:0; }

/* ── Section commons ── */
section { padding:5rem 0; }
@media(min-width:1024px){ section { padding:7rem 0; } }
.section-header { text-align:center;margin-bottom:3.5rem; }
.section-header h2 { font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;color:var(--fg);margin-bottom:1rem; }
.section-header p { color:var(--muted-fg);font-size:1.125rem;max-width:600px;margin:0 auto; }

/* ── Services ── */
#leistungen { background:var(--bg); }
.services-grid { display:grid;gap:1.5rem; }
@media(min-width:768px){ .services-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .services-grid { grid-template-columns:repeat(4,1fr); } }
.service-card { background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;transition:all .3s; }
.service-card:hover { box-shadow:var(--shadow-navy);border-color:rgba(244,162,49,.3); }
.service-icon { width:3rem;height:3rem;border-radius:.5rem;background:rgba(26,46,97,.1);display:flex;align-items:center;justify-content:center;margin-bottom:1rem; }
.service-icon svg { width:1.5rem;height:1.5rem;color:var(--navy); }
.service-card:hover .service-icon { background:rgba(244,162,49,.2); }
.service-card:hover .service-icon svg { color:var(--gold); }
.service-card h3 { font-size:1.25rem;font-weight:600;color:var(--fg);margin-bottom:.5rem;hyphens:auto; }
.service-card p { color:var(--muted-fg);font-size:.875rem;line-height:1.6;margin-bottom:1rem; }
.service-link { color:var(--gold);font-size:.875rem;font-weight:700; }
.service-link:hover { text-decoration:underline; }

/* ── Calculators ── */
#abfindungsrechner { background:var(--muted); }
#kostenrechner { background:var(--bg); }
.calc-card { max-width:600px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-navy); }
@media(min-width:1024px){ .calc-card { padding:2rem; } }
.form-field { margin-bottom:1.25rem; }
.form-label { display:block;font-size:.875rem;font-weight:600;color:var(--fg);margin-bottom:.5rem; }
.form-input,.form-select { width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s; }
.form-input:focus,.form-select:focus { border-color:var(--gold);box-shadow:0 0 0 3px rgba(244,162,49,.15); }
.form-hint { font-size:.75rem;color:var(--muted-fg);margin-top:.375rem; }
.calc-result { margin-top:2rem;padding:1.5rem;border-radius:.75rem;background:rgba(26,46,97,.05);border:1px solid rgba(26,46,97,.15); }
.calc-result h3 { font-size:1.25rem;font-weight:700;color:var(--fg);margin-bottom:1rem; }
.result-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem; }
.result-item { text-align:center; }
.result-item.highlight { background:rgba(244,162,49,.1);border-radius:.5rem;padding:.5rem; }
.result-label { font-size:.7rem;color:var(--muted-fg);margin-bottom:.25rem; }
.result-value { font-size:1.125rem;font-weight:700;color:var(--fg); }
.result-value.large { font-size:1.5rem; }
.result-hint { display:flex;align-items:flex-start;gap:.5rem;font-size:.75rem;color:var(--muted-fg);line-height:1.5; }
.result-hint svg { flex-shrink:0;width:1rem;height:1rem;margin-top:.125rem; }
.cost-row { display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border); }
.cost-row:last-child { border-bottom:none; }
.cost-label { font-size:.875rem;color:var(--muted-fg); }
.cost-value { font-size:.875rem;font-weight:600;color:var(--fg); }
.cost-total { display:flex;justify-content:space-between;padding:.75rem;background:rgba(26,46,97,.05);border-radius:.5rem;margin-top:.5rem; }
.cost-total-label { font-weight:700;color:var(--fg); }
.cost-total-value { font-weight:700;font-size:1.125rem;color:var(--fg); }
.streitwert-box { padding:1.25rem;border-radius:.5rem;background:rgba(26,46,97,.05);border:1px solid rgba(26,46,97,.15);margin-bottom:1rem; }
.streitwert-box p:first-child { font-size:.875rem;color:var(--muted-fg);margin-bottom:.25rem; }
.streitwert-box .big { font-size:1.75rem;font-weight:700;color:var(--fg); }
 
/* ── Trust ── */
#vertrauen { background:var(--navy); }
#vertrauen .section-header h2 { color:#fff; }
.trust-stars { display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem; }
.trust-stars svg { width:1.25rem;height:1.25rem;fill:var(--gold);color:var(--gold); }
.trust-stars span { color:rgba(255,255,255,.7);font-size:.875rem;font-weight:500; }
.reviews-grid { display:grid;gap:1.5rem; }
@media(min-width:768px){ .reviews-grid { grid-template-columns:repeat(3,1fr); } }
.review-card { background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:.75rem;padding:1.5rem; }
.review-stars { display:flex;gap:.25rem;margin-bottom:.75rem; }
.review-stars svg { width:1rem;height:1rem;fill:var(--gold);color:var(--gold); }
.review-text { color:rgba(255,255,255,.75);font-size:.875rem;line-height:1.7;margin-bottom:1rem;font-style:italic; }
.review-author { color:var(--gold);font-weight:600;font-size:.875rem; }

/* ── Glossar ── */
#glossar { background:var(--muted); }
.glossar-header { display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem; }
.glossar-header svg { color:var(--gold);width:1.75rem;height:1.75rem; }
.glossar-list { max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem; }
.glossar-item { background:var(--card);border:1px solid var(--border);border-radius:.75rem;overflow:hidden; }
.glossar-btn { width:100%;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .2s; }
.glossar-btn:hover { background:var(--muted); }
.glossar-btn span { font-weight:600;color:var(--fg); }
.glossar-btn svg { width:1.25rem;height:1.25rem;color:var(--muted-fg);transition:transform .25s;flex-shrink:0; }
.glossar-btn.open svg { transform:rotate(180deg); }
.glossar-def { display:none;padding:0 1.25rem 1rem;font-size:.875rem;color:var(--muted-fg);line-height:1.7; }
.glossar-def.visible { display:block; }

/* ── Contact ── */
#kontakt { background:var(--bg); }
.contact-grid { display:grid;gap:2.5rem;max-width:1000px;margin:0 auto; }
@media(min-width:1024px){ .contact-grid { grid-template-columns:2fr 3fr; } }
.contact-info { background:var(--navy);border-radius:1rem;padding:1.5rem; }
.contact-info h3 { font-size:1.25rem;font-weight:700;color:#fff;margin-bottom:1.5rem; }
.contact-row { display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem; }
.contact-row svg { width:1.25rem;height:1.25rem;color:var(--gold);flex-shrink:0;margin-top:.125rem; }
.contact-row .cr-label { color:#fff;font-size:.875rem;font-weight:600;margin-bottom:.125rem; }
.contact-row a,.contact-row .cr-val { color:rgba(255,255,255,.65);font-size:.875rem;transition:color .2s; }
.contact-row a:hover { color:var(--gold); }
.frist-box { background:rgba(244,162,49,.12);border:1px solid rgba(244,162,49,.25);border-radius:.75rem;padding:1.25rem;margin-top:1.25rem; }
.frist-box p:first-child { font-size:.875rem;font-weight:600;color:#172746;margin-bottom:.25rem; }
.frist-box p:last-child { font-size:.75rem;color:#172746;line-height:1.6; }
.contact-form { background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem; }
@media(min-width:1024px){ .contact-form { padding:2rem; } }
.form-row { display:grid;gap:1rem; }
@media(min-width:640px){ .form-row { grid-template-columns:1fr 1fr; } }
.form-textarea { resize:vertical;min-height:120px; }
.contact-success { text-align:center;padding:3rem; }
.contact-success svg { color:var(--gold);width:4rem;height:4rem;margin:0 auto 1rem; }
.contact-success h3 { font-size:1.5rem;font-weight:700;color:var(--fg);margin-bottom:.5rem; }
.contact-success p { color:var(--muted-fg); }
button#contact-submit[disabled] {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}

/* ── Erstberatung ── */
.eb-page-hero { background:linear-gradient(135deg,hsl(220,60%,10%) 0%,hsl(220,55%,20%) 100%);padding:8rem 0 5rem;text-align:center; }
.eb-badge { display:inline-flex;align-items:center;background:rgba(244,162,49,.18);border:1px solid rgba(244,162,49,.3);color:var(--gold);padding:.375rem .875rem;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:1.25rem; }
.eb-page-hero h1 { font-size:clamp(2rem,5vw,3rem);color:#fff;font-weight:700;margin-bottom:1rem;line-height:1.2; }
.eb-page-hero p { color:rgba(255,255,255,.7);font-size:1.125rem;max-width:600px;margin:0 auto; }

/* Multi-step form */
.eb-wrapper { max-width:800px;margin:0 auto; }
.eb-progress-bar { display:flex;align-items:center;gap:0;margin-bottom:2rem;overflow-x:auto;padding:.5rem 0; }
.eb-step-indicator { display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:4rem;flex:1;cursor:pointer; }
.eb-step-dot { width:2rem;height:2rem;border-radius:50%;background:var(--muted);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--muted-fg);transition:all .2s; }
.eb-step-indicator.active .eb-step-dot,.eb-step-indicator.done .eb-step-dot { background:var(--navy);border-color:var(--navy);color:#fff; }
.eb-step-label { font-size:.65rem;color:var(--muted-fg);white-space:nowrap; }
.eb-step-indicator.active .eb-step-label { color:var(--navy);font-weight:700; }
.eb-step-connector { flex:1;height:2px;background:var(--border);min-width:1rem;max-width:2rem; }
.eb-step-connector.done { background:var(--navy); }
.eb-progress-pct { text-align:right;font-size:.8rem;color:var(--muted-fg);margin-bottom:1rem; }
.eb-card { background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-navy); }
@media(min-width:640px){ .eb-card { padding:2rem; } }
.eb-step-content { min-height:300px; }
.eb-step-badge { display:inline-flex;align-items:center;gap:.5rem;background:rgba(26,46,97,.08);color:var(--navy);padding:.375rem .875rem;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:1rem; }
.eb-step-title { font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:.5rem; }
.eb-step-desc { font-size:.875rem;color:var(--muted-fg);margin-bottom:1.5rem; }
/* KSchG checks */
.kschg-item { width:100%;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;text-align:left;transition:all .2s;margin-bottom:.5rem; }
.kschg-item:hover { border-color:rgba(26,46,97,.3);background:var(--muted); }
.kschg-item.checked-required { border-color:#22c55e;background:#f0fdf4; }
.kschg-item.checked-optional { border-color:rgba(244,162,49,.6);background:rgba(244,162,49,.08); }
.kschg-dot { width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid #ccc;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s; }
.kschg-item.checked-required .kschg-dot { background:#22c55e;border-color:#22c55e; }
.kschg-item.checked-optional .kschg-dot { background:var(--gold);border-color:var(--gold); }
.kschg-dot svg { width:.875rem;height:.875rem;color:#fff; }
.kschg-text { font-size:.875rem;font-weight:500;color:var(--muted-fg);flex:1; }
.kschg-item.checked-required .kschg-text,.kschg-item.checked-optional .kschg-text { color:var(--fg); }
.pflicht-badge { font-size:.65rem;font-weight:700;color:#16a34a;background:#dcfce7;padding:.125rem .5rem;border-radius:999px;margin-left:.5rem;white-space:nowrap; }
.kschg-status { border-radius:.75rem;padding:1rem;display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem; }
.kschg-status.ok { background:#f0fdf4;border:1px solid #bbf7d0; }
.kschg-status.warn { background:#fffbeb;border:1px solid #fde68a; }
.kschg-status svg { flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.125rem; }
.kschg-status.ok svg { color:#16a34a; }
.kschg-status.warn svg { color:#d97706; }
.kschg-status-title { font-size:.875rem;font-weight:700; }
.kschg-status.ok .kschg-status-title { color:#166534; }
.kschg-status.warn .kschg-status-title { color:#92400e; }
.kschg-status-desc { font-size:.8rem; }
.kschg-status.ok .kschg-status-desc { color:#15803d; }
.kschg-status.warn .kschg-status-desc { color:#b45309; }
/* Salutations */
.salutation-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem; }
.salutation-btn { padding:.75rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;font-size:.875rem;font-weight:600;color:var(--muted-fg);transition:all .2s; }
.salutation-btn.selected { border-color:var(--navy);background:var(--navy);color:#fff; }
/* Form with icons */
.input-icon-wrap { position:relative; }
.input-icon-wrap svg { position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--muted-fg);pointer-events:none; }
.input-icon-wrap .form-input { padding-left:2.5rem; }
.field-error { font-size:.75rem;color:#dc2626;display:flex;align-items:center;gap:.25rem;margin-top:.25rem; }
/* Dismissal types */
.dismissal-grid { display:grid;gap:.75rem; }
@media(min-width:640px){ .dismissal-grid { grid-template-columns:repeat(3,1fr); } }
.dismissal-btn { padding:.875rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;text-align:left;transition:all .2s; }
.dismissal-btn.selected { border-color:var(--navy);background:rgba(26,46,97,.06); }
.dismissal-btn .d-title { font-size:.875rem;font-weight:700;color:var(--fg); }
.dismissal-btn.selected .d-title { color:var(--navy); }
.dismissal-btn .d-sub { font-size:.75rem;color:var(--muted-fg);margin-top:.25rem; }
/* Frist box */
.frist-status { border-radius:.75rem;padding:1rem;border:2px solid;display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem;display:none; }
.frist-status.visible { display:flex; }
.frist-status.ok { background:#f0fdf4;border-color:#bbf7d0; }
.frist-status.warning { background:#fffbeb;border-color:#fcd34d; }
.frist-status.expired { background:#fef2f2;border-color:#fca5a5; }
.frist-status svg { flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.125rem; }
.frist-status.ok svg { color:#16a34a; }
.frist-status.warning svg { color:#d97706; }
.frist-status.expired svg { color:#dc2626; }
/* Sonderschutz */
.schutz-grid { display:grid;gap:.5rem; }
@media(min-width:640px){ .schutz-grid { grid-template-columns:1fr 1fr; } }
.schutz-btn { display:flex;align-items:center;gap:.75rem;padding:.875rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;text-align:left;transition:all .2s; }
.schutz-btn.selected { border-color:var(--gold);background:rgba(244,162,49,.08); }
.schutz-icon { font-size:1.125rem;line-height:1;flex-shrink:0; }
.schutz-text { font-size:.875rem;font-weight:500;color:var(--muted-fg);flex:1; }
.schutz-btn.selected .schutz-text { color:var(--fg); }
/* Abmahnung */
.abmahn-grid { display:grid;gap:.75rem; }
@media(min-width:640px){ .abmahn-grid { grid-template-columns:repeat(3,1fr); } }
.abmahn-btn { padding:.75rem 1rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s; }
.abmahn-btn.sel-green { border-color:#22c55e;background:#f0fdf4;color:#166534; }
.abmahn-btn.sel-amber { border-color:#f59e0b;background:#fffbeb;color:#92400e; }
.abmahn-btn.sel-red { border-color:#ef4444;background:#fef2f2;color:#991b1b; }
/* Upload */
.upload-cat { border-radius:.75rem;border:2px solid var(--border);overflow:hidden;margin-bottom:.75rem; }
.upload-cat.required { border-color:rgba(26,46,97,.3); }
.upload-cat.dragover { border-color:var(--gold);background:rgba(244,162,49,.05); }
.upload-cat-header { display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--muted); }
.upload-cat-title { font-size:.875rem;font-weight:700;color:var(--fg); }
.upload-cat-hint { font-size:.75rem;color:var(--muted-fg);margin-top:.125rem; }
.upload-btn { display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;padding:.5rem 1rem;border-radius:.5rem;background:var(--navy);color:#fff;border:none;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .2s; }
.upload-btn:hover { background:var(--navy-light); }
.upload-drop-zone { padding:.75rem 1rem;min-height:2.5rem;display:flex;align-items:center; }
.upload-drop-text { font-size:.75rem;color:rgba(0,0,0,.35);font-style:italic; }
.uploaded-files { display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 1rem; }
.uploaded-file { display:flex;align-items:center;gap:.5rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;padding:.375rem .75rem;font-size:.75rem; }
.uploaded-file svg { color:var(--navy);width:.875rem;height:.875rem; }
.uploaded-file .fname { color:var(--fg);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.uploaded-file .fsize { color:var(--muted-fg); }
.uploaded-file .remove-btn { background:none;border:none;cursor:pointer;color:var(--muted-fg);padding:0;line-height:1;transition:color .2s; }
.uploaded-file .remove-btn:hover { color:#dc2626; }
/* Summary table */
.summary-table { border:1px solid var(--border);border-radius:.75rem;overflow:hidden; }
.summary-head { background:var(--navy);padding:.75rem 1rem; }
.summary-head p { font-size:.875rem;font-weight:600;color:#fff; }
.summary-row { display:flex;align-items:flex-start;gap:1rem;padding:.625rem 1rem;border-bottom:1px solid var(--border); }
.summary-row:last-child { border-bottom:none; }
.summary-label { font-size:.75rem;font-weight:600;color:var(--muted-fg);width:8rem;flex-shrink:0;margin-top:.125rem; }
.summary-value { font-size:.875rem;color:var(--fg); }
/* DSGVO toggle */
.dsgvo-btn { width:100%;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;border:2px solid var(--border);background:var(--card);cursor:pointer;text-align:left;transition:all .2s; }
.dsgvo-btn.checked { border-color:var(--navy);background:rgba(26,46,97,.04); }
.dsgvo-checkbox { width:1.25rem;height:1.25rem;border-radius:.25rem;border:2px solid #ccc;flex-shrink:0;margin-top:.125rem;display:flex;align-items:center;justify-content:center;transition:all .2s; }
.dsgvo-btn.checked .dsgvo-checkbox { background:var(--navy);border-color:var(--navy); }
.dsgvo-checkbox svg { width:.875rem;height:.875rem;color:#fff; }
.dsgvo-text { font-size:.875rem;color:var(--muted-fg); }
.dsgvo-text a { color:var(--navy);text-decoration:underline; }
/* Nav buttons */
.eb-nav { display:flex;align-items:center;justify-content:space-between;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border); }
/* Trust bar */
.trust-bar { display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1.25rem; }
.trust-item { display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--muted-fg); }
.trust-item svg { color:var(--gold);width:1rem;height:1rem; }
/* Success screen */
.success-screen { text-align:center;padding:2rem 0; }
.success-icon { width:5rem;height:5rem;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem; }
.success-icon svg { width:2.5rem;height:2.5rem;color:#16a34a; }
.success-steps { display:grid;gap:1rem;margin:1.5rem 0;text-align:left; }
@media(min-width:640px){ .success-steps { grid-template-columns:1fr 1fr; } }
.success-step { display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;border:1px solid; }
.ss-blue { background:#eff6ff;border-color:#bfdbfe; color:#1e40af; }
.ss-amber { background:#fffbeb;border-color:#fde68a; color:#92400e; }
.ss-green { background:#f0fdf4;border-color:#bbf7d0; color:#166534; }
.ss-purple { background:#f5f3ff;border-color:#ddd6fe; color:#5b21b6; }
.success-step-num { width:1.5rem;height:1.5rem;border-radius:50%;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.1);flex-shrink:0; }
.success-step-title { font-size:.875rem;font-weight:700; }
.success-step-desc { font-size:.75rem;margin-top:.25rem;opacity:.8; }
.urgent-box { background:var(--muted);border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:1rem; }
@media(min-width:640px){ .urgent-box { flex-direction:row; } }
.urgent-text strong { display:block;font-weight:700;color:var(--fg);margin-bottom:.25rem; }
.urgent-text span { font-size:.875rem;color:var(--muted-fg); }

/* ── City page ── */
.city-hero { min-height:60vh;display:flex;align-items:center;position:relative;overflow:hidden;
  background:linear-gradient(135deg,hsl(220,60%,10%) 0%,hsl(220,55%,20%) 100%); }
.city-hero-bg { position:absolute;inset:0;background-image:url('../images/hero-bg.jpg');background-size:cover;background-position:center;opacity:.2; }
.city-hero-overlay { position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,20,46,.8) 0%,rgba(11,20,46,.55) 100%); }
.city-hero-content { position:relative;z-index:1;padding:7rem 0 3rem; }
.breadcrumb { display:flex;align-items:center;gap:.5rem;color:rgba(255,255,255,.5);font-size:.875rem;margin-bottom:1.5rem; }
.breadcrumb a { color:rgba(255,255,255,.5);transition:color .2s; }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb svg { width:.75rem;height:.75rem; }
.breadcrumb .current { color:var(--gold); }
.city-region-badge { display:flex;align-items:center;gap:.5rem;color:var(--gold);font-weight:600;margin-bottom:1rem; }
.city-region-badge svg { width:1.25rem;height:1.25rem; }
.city-hero h1 { font-size:clamp(2rem,5vw,3.5rem);font-weight:700;color:#fff;line-height:1.2;margin-bottom:1.5rem; }
.city-hero-sub { font-size:1.125rem;color:rgba(255,255,255,.7);max-width:700px;margin-bottom:2rem;line-height:1.7;font-weight:300; }
.city-intro { background:var(--bg);padding:4rem 0 5rem; }
.city-meta-badges { display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem; }
.city-meta-badge { display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--muted-fg); }
.city-meta-badge svg { color:var(--gold);width:1rem;height:1rem; }
.city-facts { background:var(--muted);padding:4rem 0 5rem; }
.facts-list { display:flex;flex-direction:column;gap:1rem;max-width:800px; }
.fact-item { display:flex;align-items:flex-start;gap:.75rem;background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1rem; }
.fact-num { width:2rem;height:2rem;border-radius:50%;background:rgba(244,162,49,.15);color:var(--gold);font-weight:700;font-size:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.125rem; }
.fact-text { font-size:.9rem;color:var(--fg);line-height:1.6; }
.city-whyus { background:var(--bg);padding:4rem 0 5rem; }
.whyus-grid { display:grid;gap:1rem;max-width:800px; }
@media(min-width:640px){ .whyus-grid { grid-template-columns:1fr 1fr; } }
.whyus-item { display:flex;align-items:flex-start;gap:.75rem;padding:1rem; }
.whyus-item svg { color:var(--gold);width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem; }
.whyus-item p { font-size:.9rem;color:var(--fg); }
.city-cta { background:var(--navy);padding:4rem 0 5rem;text-align:center; }
.city-cta h2 { font-size:clamp(1.5rem,3vw,2rem);color:#fff;margin-bottom:1rem; }
.city-cta p { color:rgba(255,255,255,.65);max-width:700px;margin:0 auto 2rem;line-height:1.7; }
.city-cta-btns { display:flex;flex-wrap:wrap;gap:1rem;justify-content:center; }

/* ── Footer ── */
footer { background:var(--navy-dark);padding:3rem 0; }
.footer-grid { display:grid;gap:2rem;margin-bottom:2rem; }
@media(min-width:768px){ .footer-grid { grid-template-columns:repeat(4,1fr); } }
.footer-brand-icon { display:flex;align-items:flex-start;gap:.5rem;margin-bottom:1rem; }
.footer-brand-icon svg { color:var(--gold);flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.25rem; }
.footer-brand-name { font-family:'Playfair Display',serif;font-size:.875rem;font-weight:700;color:#fff;line-height:1.3; }
.footer-brand-sub { font-size:.7rem;color:rgba(255,255,255,.5);font-weight:400; }
.footer-brand-desc { font-size:.875rem;color:rgba(255,255,255,.4);line-height:1.6; }
.footer-col h4 { font-size:.875rem;font-weight:600;color:#fff;margin-bottom:.875rem; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:.5rem; }
.footer-col ul li a { font-size:.875rem;color:rgba(255,255,255,.4);transition:color .2s; }
.footer-col ul li a:hover { color:var(--gold); }
.footer-disclaimer { border-top:1px solid rgba(255,255,255,.08);padding:1rem 0; }
.footer-disclaimer p { font-size:.75rem;color:rgba(255,255,255,.3);line-height:1.6; }
.footer-disclaimer strong { color:rgba(255,255,255,.45); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08);padding-top:1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center; }
@media(min-width:640px){ .footer-bottom { flex-direction:row;justify-content:space-between;text-align:left; } }
.footer-copy { font-size:.75rem;color:rgba(255,255,255,.3); }
.footer-links { display:flex;gap:1rem; }
.footer-links a,.footer-links button { font-size:.75rem;color:rgba(255,255,255,.3);transition:color .2s;background:none;border:none;cursor:pointer; }
.footer-links a:hover,.footer-links button:hover { color:var(--gold); }

/* ── Cookie Banner ── */
.cookie-banner { position:fixed;bottom:1.5rem;left:1rem;right:1rem;max-width:600px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:0 8px 40px rgba(0,0,0,.15);z-index:999;display:none; }
.cookie-banner.visible { display:block; }
.cookie-banner h3 { font-size:1rem;font-weight:700;color:var(--fg);margin-bottom:.5rem; }
.cookie-banner p { font-size:.8rem;color:var(--muted-fg);margin-bottom:1rem;line-height:1.5; }
.cookie-buttons { display:flex;flex-wrap:wrap;gap:.75rem; }

/* ── Impressum / Datenschutz ── */
.legal-page { padding:6rem 0 4rem;min-height:100vh; }
.legal-page h1 { font-size:2rem;font-weight:700;color:var(--fg);margin-bottom:2rem; }
.legal-content { max-width:760px; }
/* .legal-content section + section { margin-top:2.5rem; } */
.legal-content section {
    padding: 0 0;
}
.legal-content h2 { font-size:1.125rem;font-weight:700;color:var(--fg);margin-bottom:.75rem; }
.legal-content h3 { font-size:1rem;font-weight:700;color:var(--fg);margin-bottom:.5rem; }
.legal-content p { font-size:.875rem;color:rgba(26,46,97,.75);line-height:1.7;margin-bottom:.75rem; }
.legal-content ul { font-size:.875rem;color:rgba(26,46,97,.75);line-height:1.7;padding-left:1.5rem;margin-bottom:.75rem; }
.legal-content ul li { margin-bottom:.375rem; }
.legal-content a { color:var(--gold); }
.legal-content a:hover { text-decoration:underline; }
.legal-note { font-size:.75rem;color:rgba(26,46,97,.4);line-height:1.6;border-top:1px solid var(--border);padding-top:1.5rem;margin-top:2rem; }
.legal-note strong { color:rgba(26,46,97,.55); }

/* ── 404 ── */
.not-found { display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:2rem; }
.not-found h1 { font-size:6rem;font-weight:700;color:var(--navy);line-height:1; }
.not-found h2 { font-size:1.5rem;color:var(--fg);margin:.5rem 0 1rem; }
.not-found p { color:var(--muted-fg);margin-bottom:2rem; }

/* ── Animations ── */
.fade-up { opacity:0;transform:translateY(1.25rem);transition:opacity .6s ease,transform .6s ease; }
.fade-up.visible { opacity:1;transform:none; }
.fade-delay-1 { transition-delay:.1s; }
.fade-delay-2 { transition-delay:.2s; }
.fade-delay-3 { transition-delay:.3s; }
