/* ============================================================
   Rechtsanwälte Modl & Coll. — Website (statisch)
   Composes the design-system tokens (assets/ds/styles.css).
   Part 1: design-system primitives (ported from ds-primitives.jsx)
   Part 2: site layout / chrome (ported & adapted from kit.css)
   Part 3: content / article + page-specific styles
   No build step, (almost) no JavaScript.
   ============================================================ */

/* ============================================================
   PART 1 — PRIMITIVES (faithful ports of the DS components)
   ============================================================ */

/* ---- Button ---- */
.btn{--_pad-y:0.75rem;--_pad-x:1.5rem;--_fs:1.0625rem;
  display:inline-flex;align-items:center;justify-content:center;gap:0.55em;
  font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--_fs);
  line-height:1.1;padding:var(--_pad-y) var(--_pad-x);border-radius:var(--radius-md);
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:background var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard),
    border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),
    transform var(--dur-fast) var(--ease-standard);
  -webkit-appearance:none;appearance:none;}
.btn:active{transform:translateY(1px);}
.btn--sm{--_pad-y:0.5rem;--_pad-x:1rem;--_fs:0.9375rem;}
.btn--lg{--_pad-y:0.95rem;--_pad-x:2rem;--_fs:1.1875rem;}
.btn--full{display:flex;width:100%;}
.btn--primary{background:var(--navy-900);color:var(--paper);box-shadow:var(--shadow-sm);}
.btn--primary:hover{background:var(--navy-700);color:var(--paper);box-shadow:var(--shadow-md);}
.btn--secondary{background:var(--surface-card);color:var(--navy-800);border-color:var(--border-strong);}
.btn--secondary:hover{border-color:var(--navy-700);background:var(--navy-050);color:var(--navy-800);}
.btn--ghost{background:transparent;color:var(--navy-800);padding-left:0.75rem;padding-right:0.75rem;}
.btn--ghost:hover{color:var(--brass-700);background:var(--brass-050);}
.btn--on-dark{background:var(--paper);color:var(--navy-900);}
.btn--on-dark:hover{background:var(--white);color:var(--navy-900);box-shadow:var(--shadow-lg);}
.btn svg{width:1.15em;height:1.15em;stroke-width:1.9;flex:none;}

/* ---- Card ---- */
.card{position:relative;background:var(--surface-card);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);
  transition:box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),
    transform var(--dur-base) var(--ease-standard);}
.card--roomy{padding:var(--space-8);}
.card--raised{box-shadow:var(--shadow-md);}
.card--tint{background:var(--surface-tint);border-color:var(--border-accent);}
.card--navy{background:var(--navy-900);border-color:var(--border-on-dark);color:var(--text-on-dark);}
.card--interactive:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-2px);}
.card__rule{display:block;width:40px;height:var(--rule-accent-width);background:var(--accent);border-radius:2px;margin-bottom:var(--space-4);}

/* ---- Badge ---- */
.badge{display:inline-flex;align-items:center;gap:0.4em;font-family:var(--font-body);
  font-weight:var(--fw-semibold);font-size:var(--text-xs);line-height:1;letter-spacing:0.01em;
  padding:0.4em 0.7em;border-radius:var(--radius-pill);border:1px solid transparent;white-space:nowrap;}
.badge--brass{background:var(--brass-100);color:var(--brass-800);border-color:var(--brass-200);}
.badge--navy{background:var(--navy-050);color:var(--navy-800);border-color:var(--navy-100);}

/* ---- Section heading lockup ---- */
.sh{display:flex;flex-direction:column;gap:var(--space-3);max-width:var(--container-prose);}
.sh--center{align-items:center;text-align:center;margin-left:auto;margin-right:auto;}
.sh__eyebrow{display:inline-flex;align-items:center;gap:0.6em;font-family:var(--font-body);
  font-weight:var(--fw-semibold);font-size:var(--text-xs);letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--text-accent);margin:0;}
.sh__rule{width:44px;height:var(--rule-accent-width);background:var(--accent);border-radius:2px;flex:none;}
.sh__title{font-family:var(--font-display);font-weight:var(--fw-medium);line-height:var(--lh-snug);
  letter-spacing:var(--ls-snug);color:var(--text-strong);margin:0;
  font-size:clamp(1.9rem,3.6vw,2.875rem);text-wrap:balance;}
.sh__lead{font-family:var(--font-body);font-size:var(--text-md);line-height:var(--lh-relaxed);
  color:var(--text-body);margin:0;max-width:62ch;text-wrap:pretty;}
.sh--on-dark .sh__title{color:var(--text-on-dark);}
.sh--on-dark .sh__lead{color:var(--text-on-dark-muted);}
.sh--on-dark .sh__eyebrow{color:var(--brass-300);}

/* ---- Trust note ---- */
.trust{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 1.1rem;font-family:var(--font-body);
  font-size:var(--text-sm);color:var(--text-muted);margin:0;padding:0;list-style:none;}
.trust--stack{flex-direction:column;align-items:flex-start;gap:0.6rem;}
.trust__item{display:inline-flex;align-items:center;gap:0.5em;}
.trust__dot{width:5px;height:5px;border-radius:50%;background:var(--brass-500);flex:none;}
.trust__item svg{width:1.05em;height:1.05em;color:var(--brass-600);stroke-width:1.9;flex:none;}
.trust--on-dark{color:var(--navy-300);}
.trust--on-dark .trust__dot{background:var(--brass-300);}
.trust--on-dark .trust__item svg{color:var(--brass-300);}

/* ---- Notice (used on legal/info callouts) ---- */
.notice{display:flex;gap:0.85rem;align-items:flex-start;font-family:var(--font-body);
  border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-md);
  padding:var(--space-4) var(--space-5);background:var(--surface-card);color:var(--text-body);
  font-size:var(--text-base);line-height:1.5;}
.notice__ico{flex:none;margin-top:1px;color:var(--navy-600);}
.notice__ico svg{width:1.3rem;height:1.3rem;stroke-width:1.9;}
.notice__title{font-weight:var(--fw-semibold);color:var(--text-strong);margin-bottom:2px;}
.notice--info{border-left-color:var(--navy-600);}
.notice--notice{background:var(--warning-100);border-color:#ecdcb6;border-left-color:var(--warning-700);}
.notice--notice .notice__ico{color:var(--warning-700);}

/* ============================================================
   PART 2 — SITE LAYOUT / CHROME
   ============================================================ */
.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter);}

/* skip link */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy-900);color:var(--paper);
  padding:0.6rem 1rem;border-radius:0 0 var(--radius-md) 0;}
.skip-link:focus{left:0;}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:rgba(251,250,247,0.88);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.site-header__inner{max-width:var(--container-max);margin:0 auto;padding:0.7rem var(--gutter);
  display:flex;align-items:center;gap:var(--space-5);}
.site-header__brand{display:inline-flex;flex:none;}
.site-header__brand img{height:40px;width:auto;display:block;}
.site-nav{display:flex;gap:var(--space-6);margin-left:var(--space-5);}
.site-nav a{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-body);
  text-decoration:none;padding:0.4rem 0;border-bottom:2px solid transparent;
  transition:color var(--dur-fast),border-color var(--dur-fast);}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--text-strong);border-color:var(--accent);}
/* nav dropdown (CSS-only, keyboard via :focus-within) */
.site-nav__group{position:relative;display:inline-flex;align-items:center;}
.site-nav__group>a{display:inline-flex;align-items:center;gap:0.25em;}
.site-nav__chev{width:0.8em;height:0.8em;stroke-width:2.2;transition:transform var(--dur-fast);}
.site-nav__group:hover .site-nav__chev,.site-nav__group:focus-within .site-nav__chev{transform:rotate(180deg);}
.subnav{position:absolute;top:calc(100% + 0.6rem);left:0;z-index:60;min-width:250px;
  display:none;flex-direction:column;gap:2px;margin:0;padding:0.4rem;list-style:none;
  background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);}
.subnav::before{content:"";position:absolute;left:0;right:0;top:-0.6rem;height:0.6rem;}
.site-nav__group:hover>.subnav,.site-nav__group:focus-within>.subnav{display:flex;}
.subnav a{display:block;padding:0.55rem 0.7rem;border-bottom:0;border-radius:var(--radius-sm);
  font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-body);white-space:nowrap;}
.subnav a:hover,.subnav a[aria-current="page"]{background:var(--brass-050);color:var(--text-strong);border-color:transparent;}
/* nav dropdown on mobile: group label + indented sub-items */
.nav-mobile__label{display:block;font-size:var(--text-xs);letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--text-accent);font-weight:var(--fw-semibold);padding:0.6rem 0 0.1rem;}
.nav-mobile__panel a.nav-mobile__suba{padding-left:0.9rem;}
.site-header__actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-4);}
.site-header__tel{display:inline-flex;align-items:center;gap:0.45em;font-size:var(--text-sm);
  font-weight:var(--fw-semibold);color:var(--navy-800);text-decoration:none;}
.site-header__tel:hover{color:var(--brass-700);}
.site-header__tel svg{width:1.05em;height:1.05em;stroke-width:1.9;color:var(--brass-600);}

/* language toggle (DE/EN) — links, no JS */
.langtoggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--radius-pill);
  border:1px solid var(--border);background:var(--surface-card);flex:none;}
.langtoggle__btn{font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--text-xs);
  letter-spacing:0.02em;color:var(--text-muted);padding:0.28rem 0.6rem;border-radius:var(--radius-pill);
  text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast);}
.langtoggle__btn:hover{color:var(--text-strong);}
.langtoggle__btn[aria-current="true"]{background:var(--navy-900);color:var(--paper);}

/* mobile disclosure menu (no JS — native <details>) */
.nav-mobile{display:none;margin-left:auto;}
.nav-mobile>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--border);border-radius:var(--radius-sm);
  color:var(--navy-800);cursor:pointer;background:var(--surface-card);}
.nav-mobile>summary::-webkit-details-marker{display:none;}
.nav-mobile>summary svg{width:22px;height:22px;stroke-width:1.9;}
.nav-mobile[open]>summary{border-color:var(--border-strong);}
.nav-mobile__panel{position:absolute;left:0;right:0;top:100%;background:var(--paper);
  border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);
  display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--gutter) var(--space-5);}
.nav-mobile__panel a{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-strong);
  text-decoration:none;padding:0.55rem 0;border-bottom:1px solid var(--warm-100);}
.nav-mobile__panel a:last-of-type{border-bottom:0;}
.nav-mobile__panel .btn{margin-top:var(--space-3);}
.nav-mobile__tel{display:inline-flex;align-items:center;gap:0.5em;color:var(--brass-700)!important;}
/* Mobile-Menü-CTA: Gold-Button mit Navy-Schrift – klarer Kontrast (vorher Navy-auf-Navy). */
.nav-mobile__panel a.nav-mobile__cta{background:var(--brass-400);color:var(--navy-900);border-bottom:0;box-shadow:var(--shadow-sm);}
.nav-mobile__panel a.nav-mobile__cta:hover{background:var(--brass-500);color:var(--navy-900);box-shadow:var(--shadow-md);}

/* ---------- Generic section ---------- */
.section{max-width:var(--container-max);margin:0 auto;padding:var(--section-y) var(--gutter);}
.section--sunken{max-width:none;background:var(--bg-sunken);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section--sunken>*{max-width:var(--container-max);margin-left:auto;margin-right:auto;}
.section--tight{padding-top:var(--space-9);padding-bottom:var(--space-9);}

/* ---------- Hero (homepage) ---------- */
.hero{max-width:var(--container-max);margin:0 auto;padding:clamp(2.5rem,6vw,5rem) var(--gutter) 0;}
.hero__grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.hero__copy{display:flex;flex-direction:column;gap:var(--space-6);}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.hero__media{display:flex;justify-content:center;}
.portrait{position:relative;width:100%;max-width:420px;aspect-ratio:4/5;border-radius:var(--radius-xl);
  overflow:hidden;background:radial-gradient(120% 120% at 30% 15%, #36404e 0%, #232c38 45%, #161f2b 100%);
  box-shadow:var(--shadow-xl);display:flex;align-items:flex-end;border:1px solid rgba(255,255,255,0.06);}
.portrait__mark{position:absolute;top:50%;left:50%;width:84px;height:auto;transform:translate(-50%,-58%);opacity:0.16;}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(15,25,35,0) 55%, rgba(15,25,35,0.55));}
.portrait__cap{position:relative;z-index:1;display:inline-flex;align-items:center;gap:0.5em;
  margin:var(--space-5);color:var(--paper);font-size:var(--text-sm);opacity:0.9;}
.portrait__cap svg{color:var(--brass-300);width:1.05em;height:1.05em;stroke-width:1.9;}

/* ---------- Stats bar ---------- */
.stats{max-width:var(--container-max);margin:clamp(2.5rem,5vw,4rem) auto 0;padding:var(--space-6) var(--gutter);
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.stat{text-align:center;}
.stat__n{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.25rem);color:var(--brass-700);line-height:1;}
.stat__l{font-size:var(--text-sm);color:var(--text-muted);margin-top:0.4rem;}

/* ---------- Services / feature grid ---------- */
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-8);}
.cards-grid--2{grid-template-columns:repeat(2,1fr);}
.feature{display:flex;flex-direction:column;gap:var(--space-3);}
.feature__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:var(--radius-md);background:var(--brass-050);color:var(--brass-700);border:1px solid var(--brass-200);}
.feature__icon svg{width:24px;height:24px;stroke-width:1.8;}
.feature__t{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);margin:0;}
.feature__d{font-size:var(--text-sm);color:var(--text-body);line-height:1.6;margin:0;}
.feature__more{margin-top:auto;padding-top:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);
  color:var(--brass-700);text-decoration:none;display:inline-flex;align-items:center;gap:0.4em;}
.feature__more:hover{color:var(--brass-800);}
.feature__more svg{width:1em;height:1em;stroke-width:2;}

/* ---------- Process steps ---------- */
.process{list-style:none;margin:var(--space-8) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);}
.step{position:relative;padding-top:var(--space-5);border-top:2px solid var(--brass-300);}
.step__n{font-family:var(--font-display);font-size:var(--text-md);color:var(--brass-700);letter-spacing:0.04em;margin-bottom:var(--space-2);}
.step__t{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);margin:0 0 var(--space-2);}
.step__d{font-size:var(--text-sm);color:var(--text-body);line-height:1.6;margin:0;}

/* ---------- Quote band ---------- */
.quote-band{max-width:none;background:var(--navy-900);color:var(--text-on-dark);}
.quote{max-width:60rem;margin:0 auto;text-align:center;position:relative;}
.quote__mark{font-family:var(--font-display);font-size:4.5rem;line-height:0.6;color:var(--brass-400);display:block;margin-bottom:var(--space-4);}
.quote__text{font-family:var(--font-display);font-weight:var(--fw-light);font-size:clamp(1.5rem,3vw,2.1rem);
  line-height:1.4;color:var(--paper);margin:0 0 var(--space-6);letter-spacing:-0.01em;text-wrap:balance;}
.quote__who{font-weight:var(--fw-semibold);color:var(--paper);display:block;}
.quote__role{font-size:var(--text-sm);color:var(--navy-300);display:block;margin-top:2px;}

/* ---------- CTA band (navy) + CTA card (tint) ---------- */
.cta-band{max-width:none;background:var(--navy-900);color:var(--text-on-dark);text-align:center;}
.cta-band .sh{margin-inline:auto;}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-6);}
.cta-card{background:var(--surface-tint);border:1px solid var(--border-accent);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,4vw,2.5rem);display:flex;flex-direction:column;gap:var(--space-4);align-items:flex-start;}
.cta-card h2,.cta-card h3{margin:0;}

/* ---------- Fee / Festpreis info box ---------- */
.feeinfo{display:flex;gap:var(--space-4);align-items:flex-start;background:var(--surface-tint);
  border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);}
.feeinfo__ico{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brass-100);
  color:var(--brass-700);display:flex;align-items:center;justify-content:center;border:1px solid var(--brass-200);}
.feeinfo__ico svg{width:22px;height:22px;stroke-width:1.8;}
.feeinfo__t{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);margin:0 0 0.25rem;}
.feeinfo p{margin:0;font-size:var(--text-sm);color:var(--text-body);line-height:1.6;}
.feeinfo strong{color:var(--text-strong);}

/* ---------- Contact / form teaser ---------- */
.contact-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.contact-intro{display:flex;flex-direction:column;gap:var(--space-6);}
.contact-card{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);}
.contact-line{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-base);color:var(--text-body);text-decoration:none;}
a.contact-line:hover{color:var(--brass-700);}
.contact-line__ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:50%;background:var(--navy-050);color:var(--navy-700);flex:none;}
.contact-line__ic svg{width:18px;height:18px;stroke-width:1.8;}

/* form placeholder (real form is a later build step) */
.form-placeholder{background:var(--surface-card);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,4vw,2.5rem);display:flex;flex-direction:column;gap:var(--space-4);text-align:center;}
.form-placeholder .badge{align-self:center;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950);color:var(--navy-300);margin-top:var(--section-y);}
.site-footer__inner{max-width:var(--container-max);margin:0 auto;padding:var(--space-9) var(--gutter) var(--space-7);
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:var(--space-6);}
.site-footer__brand img{height:42px;width:auto;margin-bottom:var(--space-4);}
.site-footer__brand p{font-size:var(--text-sm);line-height:1.6;max-width:30ch;margin:0 0 var(--space-4);}
.site-footer__col{display:flex;flex-direction:column;gap:var(--space-2);}
.site-footer__col h4{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase;color:var(--brass-300);margin:0 0 var(--space-2);font-weight:var(--fw-semibold);}
.site-footer__col a,.site-footer__col span{font-size:var(--text-sm);color:var(--navy-300);text-decoration:none;}
.site-footer__col a:hover{color:var(--paper);}
.site-footer__legal{max-width:var(--container-max);margin:0 auto;padding:var(--space-5) var(--gutter);
  border-top:1px solid var(--border-on-dark);display:flex;justify-content:space-between;align-items:center;
  gap:var(--space-4);font-size:var(--text-xs);color:var(--navy-300);flex-wrap:wrap;}
.site-footer__legal a{color:var(--navy-300);}
.site-footer__legal a:hover{color:var(--paper);}
.site-footer__sig{font-family:var(--font-display);font-size:1.4rem;color:var(--brass-400);}

/* ---------- Sticky mobile click-to-call ---------- */
.sticky-call{display:none;position:fixed;left:var(--space-4);right:var(--space-4);bottom:var(--space-4);z-index:50;
  align-items:center;justify-content:center;gap:0.5em;height:56px;background:var(--navy-900);color:var(--paper);
  border-radius:var(--radius-md);font-weight:var(--fw-semibold);text-decoration:none;box-shadow:var(--shadow-xl);}
.sticky-call svg{color:var(--brass-300);width:20px;height:20px;stroke-width:1.9;}
/* Sticky-CTA „Kostenlos anfragen“ – Gold-Button, ruft das Anfrageformular auf. */
.sticky-cta{background:var(--brass-400);color:var(--navy-900);}
.sticky-cta svg{color:var(--navy-900);}

/* ============================================================
   PART 3 — CONTENT / ARTICLE PAGES
   ============================================================ */
/* page hero (sub pages) */
.page-hero{max-width:var(--container-max);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--gutter) 0;}
.page-hero .sh{max-width:none;margin-inline:0;}
.page-hero .sh__lead{max-width:74ch;}
.page-hero .hero__cta{max-width:none;margin-inline:0;}

/* breadcrumb */
.breadcrumb{max-width:var(--container-max);margin:0 auto;padding:var(--space-5) var(--gutter) 0;
  font-size:var(--text-sm);color:var(--text-muted);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:0.5em;margin:0;padding:0;}
.breadcrumb li{display:inline-flex;align-items:center;gap:0.5em;}
.breadcrumb li+li::before{content:"›";color:var(--warm-400);}
.breadcrumb a{color:var(--text-muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--brass-700);}
.breadcrumb [aria-current="page"]{color:var(--text-body);}

/* prose (long-form article body) */
.prose{max-width:none;margin-inline:0;}
.prose>p,.prose>ul,.prose>ol,.prose>.lead,.prose>blockquote{max-width:82ch;}
.prose>*+*{margin-top:var(--space-4);}
.prose h2{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--text-2xl);color:var(--text-strong);
  line-height:var(--lh-snug);letter-spacing:var(--ls-snug);margin-top:var(--space-9);margin-bottom:var(--space-3);}
.prose h2:first-child{margin-top:0;}
.prose h2 .rule,.prose .h2-rule{display:block;width:44px;height:var(--rule-accent-width);background:var(--accent);border-radius:2px;margin-bottom:var(--space-4);}
.prose h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--fw-medium);
  color:var(--text-strong);margin-top:var(--space-7);margin-bottom:var(--space-2);}
.prose p,.prose li{font-size:var(--text-base);line-height:var(--lh-relaxed);color:var(--text-body);}
.prose .lead{font-size:var(--text-md);color:var(--text-body);}
.prose ul,.prose ol{padding-left:1.3em;margin-block:var(--space-4);}
.prose li+li{margin-top:0.5rem;}
.prose ul li::marker{color:var(--brass-500);}
.prose a{color:var(--link);font-weight:var(--fw-semibold);text-decoration:underline;text-underline-offset:0.15em;text-decoration-thickness:1px;}
.prose a:hover{color:var(--link-hover);}
.prose strong{color:var(--text-strong);font-weight:var(--fw-semibold);}

/* inline list of related topics (non-link or link) */
.topiclist{list-style:none;padding:0;margin:var(--space-4) 0;display:grid;gap:0.6rem;}
.topiclist li{display:flex;gap:0.6em;align-items:flex-start;font-size:var(--text-base);color:var(--text-body);line-height:1.55;}
.topiclist li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--brass-500);margin-top:0.6em;}
.topiclist a{color:var(--link);font-weight:var(--fw-semibold);text-decoration:none;}
.topiclist a:hover{text-decoration:underline;}
.topiclist .soon{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--fw-regular);}

/* arrow CTA link (in body) */
.arrow-link{display:inline-flex;align-items:center;gap:0.45em;font-weight:var(--fw-semibold);
  color:var(--brass-700);text-decoration:none;}
.arrow-link:hover{color:var(--brass-800);text-decoration:underline;}
.arrow-link svg{width:1em;height:1em;stroke-width:2;}

/* related / next-step cards row */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-7);}
.related a{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface-card);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);text-decoration:none;
  box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-base),border-color var(--dur-base),transform var(--dur-base);}
.related a:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-2px);}
.related__t{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);}
.related__d{font-size:var(--text-sm);color:var(--text-body);line-height:1.55;}

/* legal pages */
.legal{max-width:none;margin-inline:0;}
.legal p,.legal li,.legal dl{max-width:82ch;}
.legal h2{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--text-xl);margin-top:var(--space-8);margin-bottom:var(--space-3);}
.legal h3{font-size:var(--text-lg);font-family:var(--font-display);margin-top:var(--space-6);margin-bottom:var(--space-2);}
.legal p,.legal li{font-size:var(--text-base);line-height:var(--lh-relaxed);color:var(--text-body);}
.legal ul{padding-left:1.3em;}
.legal .placeholder{background:var(--warning-100);color:var(--warning-700);padding:0.05em 0.4em;border-radius:var(--radius-xs);font-weight:var(--fw-semibold);}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:0.4rem 1.5rem;margin:var(--space-4) 0;}
.legal dt{font-weight:var(--fw-semibold);color:var(--text-strong);}
.legal dd{margin:0;}

/* small utilities */
.muted{color:var(--text-muted);}
.fineprint{font-size:var(--text-sm);color:var(--text-muted);line-height:1.55;}
.center{text-align:center;}
.mt-0{margin-top:0;}
hr.rule{border:0;height:1px;background:var(--border);margin:var(--space-8) 0;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:920px){
  .hero__grid{grid-template-columns:1fr;}
  .hero__media{order:-1;}
  .portrait{max-width:340px;}
  .cards-grid{grid-template-columns:1fr 1fr;}
  .process{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .related{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .site-nav,.site-header__tel,.hide-sm,.nav-rating{display:none;}
  .nav-mobile{display:block;}
  .cards-grid,.cards-grid--2,.process{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr;gap:var(--space-4);}
  .site-footer__inner{grid-template-columns:1fr 1fr;}
  .feeinfo{flex-direction:column;}
  .sticky-call{display:flex;}
  body{padding-bottom:84px;}
  .legal dl{grid-template-columns:1fr;gap:0.1rem 0;}
  .legal dt{margin-top:0.5rem;}
}

/* ============================================================
   PART 4 — Sprungnavigation (TOC) + FAQ-Accordion (ausgebaut-Content)
   ============================================================ */
html{scroll-behavior:smooth;}
.prose h2[id],.prose h3[id],.faq h2[id]{scroll-margin-top:96px;}
#anfrage{scroll-margin-top:90px;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

/* "Auf dieser Seite" */
.toc{max-width:var(--container-max);margin:var(--space-6) auto 0;padding:var(--space-5) var(--gutter);}
.toc__inner,.toc>*{}
.toc{background:none;}
.toc .toc__title{font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--text-xs);
  letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent);margin:0 0 var(--space-3);}
.toc ul{list-style:none;margin:0;max-width:82ch;padding:var(--space-4) var(--space-5);display:grid;grid-template-columns:1fr 1fr;
  gap:0.5rem 1.5rem;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);}
.toc li{display:flex;gap:0.5em;align-items:baseline;}
.toc li::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--brass-500);transform:translateY(-2px);}
.toc a{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-body);text-decoration:none;}
.toc a:hover{color:var(--brass-700);text-decoration:underline;}

/* FAQ-Accordion */
.faq{max-width:var(--container-max);margin-inline:auto;}
.faq>h2,.faq__item{max-width:82ch;}
.faq>h2{margin-bottom:var(--space-5);}
.faq__item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);
  margin-bottom:var(--space-3);box-shadow:var(--shadow-sm);}
.faq__item>summary{list-style:none;cursor:pointer;padding:var(--space-4) var(--space-5);
  font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);
  display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);}
.faq__item>summary::-webkit-details-marker{display:none;}
.faq__item>summary::after{content:"";flex:none;width:0.62rem;height:0.62rem;margin-top:-0.25rem;
  border-right:2px solid var(--brass-600);border-bottom:2px solid var(--brass-600);
  transform:rotate(45deg);transition:transform var(--dur-base) var(--ease-standard);}
.faq__item[open]>summary::after{transform:rotate(-135deg);margin-top:0.2rem;}
.faq__item>summary:hover{color:var(--brass-700);}
.faq__item>summary:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px;}
.faq__a{padding:0 var(--space-5) var(--space-5);}
.faq__a p{margin:0;color:var(--text-body);line-height:var(--lh-relaxed);}
.faq__a a{color:var(--link);font-weight:var(--fw-semibold);}

/* ============================================================
   anwalt.de-Bewertung (global; Ausgabe via mc_rating() in config.php)
   ============================================================ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Sterne (5er-Reihe, Vordergrund auf 92% = 4,6/5 geclippt) */
.stars{position:relative;display:inline-block;line-height:1;letter-spacing:.06em;font-family:"Arial",sans-serif;white-space:nowrap;font-size:1.05rem;}
.stars__bg{color:#d8d2c4;}
.stars__fg{position:absolute;left:0;top:0;color:var(--brass-400);overflow:hidden;white-space:nowrap;}

/* Volle Badge-Box – NUR der Link „anwalt.de" ist klickbar (nicht die Box) */
.rating-badge{display:inline-flex;align-items:center;gap:.8rem;align-self:flex-start;
  padding:.55rem .9rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-sm);}
.rating-badge__num{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--text-2xl);color:var(--text-strong);line-height:1;}
.rating-badge__col{display:flex;flex-direction:column;gap:.28rem;}
.rating-badge__cap{font-size:var(--text-xs);color:var(--text-muted);}
.rating-badge__cap a{color:var(--brass-700);text-decoration:underline;text-underline-offset:2px;}
.rating-badge__cap a:hover{color:var(--brass-800,#6b4f25);}

/* Kompakt für Header/Topbar (neben der Sprachauswahl) */
.nav-rating{display:inline-flex;align-items:center;gap:.4em;text-decoration:none;white-space:nowrap;}
.nav-rating .stars{font-size:.9rem;}
.nav-rating__num{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--navy-800);}
.nav-rating:hover .nav-rating__num{color:var(--brass-700);}
.nav-rating:focus-visible{outline:2px solid var(--brass-500);outline-offset:2px;border-radius:4px;}

/* Hero-Variante (Startseite; interner Link auf Über uns) */
.hero-rating{display:inline-flex;align-items:center;gap:.4em;text-decoration:none;white-space:nowrap;}
.hero-rating .stars{font-size:.95rem;}
.hero-rating__num{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--navy-800);}
.hero-rating:hover .hero-rating__num{color:var(--brass-700);}

/* Zentriertes Zitat unter den Trust-Signalen im Startseite-Hero */
.hero__quote{margin:1.15rem auto 0;font-family:var(--font-display);font-style:italic;font-size:var(--text-base);
  line-height:1.5;color:var(--text-muted);text-align:center;max-width:52ch;}

/* Badge im Über-uns-Hero-Slider: rechts oben, an Container-Kante ausgerichtet */
.mc-heroslider__rating{position:absolute;top:clamp(1rem,4vw,1.75rem);z-index:5;
  right:max(var(--gutter),calc(50% - var(--container-max) / 2 + var(--gutter)));}
@media (max-width:860px){.mc-heroslider__rating{display:none;}}

/* Terminbuchung (eingebetteter Kalender) auf der Erfolgsseite */
.booking-embed{max-width:860px;margin:var(--space-6) auto 0;padding:0 var(--gutter);}
.booking-embed iframe{display:block;width:100%;height:660px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--paper);}
@media (max-width:600px){.booking-embed iframe{height:780px;}}

/* Bewertung im Footer (unter dem Logo) – hell auf dunklem Grund; auch mobil sichtbar
   (hebt die .nav-rating-Ausblendung im 720px-Block per höherer Spezifität auf) */
.site-footer__rating{margin-top:var(--space-4);}
.site-footer__rating .nav-rating{display:inline-flex;}
.site-footer__rating .nav-rating__num{color:var(--navy-300);}
.site-footer__rating .nav-rating:hover .nav-rating__num{color:var(--brass-300);}
