/*
Theme Name: corelaw
Theme URI: https://www.corelaw.de/
Author: ibx company
Author URI: https://ibx-company.de/
Description: Maßgeschneidertes Theme für corelaw Rechtsanwälte, Hannover. Editorial-Design (Allston-Stil), monochrom mit Navy-Akzent, SEO/GEO-optimierte Seiten-Templates. Inhalte über die Meta-Box „Inhalte bearbeiten" pflegbar.
Version: 1.3.0
Requires at least: 6.0
Requires PHP: 7.4
License: proprietary
Text Domain: corelaw
*/

/* ============================================================
   corelaw — Editorial / Architektur-Stil (nach Allston)
   Monochrom: Weiß · #090909 · Grau  ·  Navy #293C74 = Mini-Akzent
   Typo: Open Sans 300 UPPERCASE (Headlines) · Raleway (Text)
   ============================================================ */

:root {
  --ink: #0a0a0a;
  --grey: #585858;
  --grey-2: #8f8f8f;
  --line: #e7e7e7;
  --paper: #ffffff;
  --paper-2: #f6f5f3;
  --navy: #293c74;

  --f-head: "Open Sans", -apple-system, sans-serif;
  --f-body: "Raleway", -apple-system, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --maxw: 1320px;
  --pad: clamp(24px, 5vw, 90px);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* Kein horizontales Verschieben: das ausgeblendete Menü liegt rechts außerhalb und
   erlaubt sonst (v. a. auf iOS) seitliches Scrollen — dann sitzen alle Inhalte schief. */
html, body { overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body {
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .4px;
  color: var(--grey);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--navy); color: #fff; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.section { padding: clamp(80px, 11vw, 155px) 0; }
.section.tight { padding: clamp(60px, 8vw, 110px) 0; }
.bg-soft { background: var(--paper-2); }
.bg-faint { background: #fafaf9; }
.center { text-align: center; }

/* ---------- Typografie ---------- */
h1, h2, h3, h4 {
  font-family: var(--f-head);
  font-weight: 300;
  text-transform: uppercase;
  color: var(--ink);
  line-height: 1.32;
  letter-spacing: .12em;
}
.display { font-size: clamp(30px, 5vw, 62px); font-weight: 300; letter-spacing: .1em; line-height: 1.24; }
.h1 { font-size: clamp(28px, 3.6vw, 44px); letter-spacing: .12em; }
.h2 { font-size: clamp(24px, 2.8vw, 34px); }
.h3 { font-size: 19px; letter-spacing: .14em; }

/* Eyebrow / Mikro-Label */
.eyebrow {
  font-family: var(--f-head);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .28em;
  color: var(--navy);
  display: inline-block;
}
.eyebrow.grey { color: var(--grey-2); }

.lead { font-size: 16px; line-height: 2; color: var(--grey); max-width: 60ch; }
p { margin-bottom: 16px; }
p:last-child { margin-bottom: 0; }

/* gepunkteter Trenner (Allston-Signatur) */
.dotsep { width: 90px; height: 0; border-top: 2px dotted #cfcfcf; margin: 26px auto 0; }
.dotsep.left { margin-left: 0; }
.rule { height: 1px; background: var(--line); border: 0; }

/* ---------- Buttons / Links ---------- */
.btn {
  display: inline-block;
  font-family: var(--f-head);
  font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  padding: 13px 30px; border: 1px solid rgba(10,10,10,.16); color: var(--ink);
  background: transparent; cursor: pointer; position: relative; --btn-line: var(--navy);
  transition: color .45s var(--ease);
}
/* dezente Outline, die beim Hover einmal ringsum läuft – kein Füllen */
.btn::before, .btn::after { content: ""; position: absolute; box-sizing: content-box; width: 0; height: 0; pointer-events: none; }
.btn::before { top: -1px; left: -1px; border-top: 1px solid var(--btn-line); border-left: 1px solid var(--btn-line); transition: width .35s var(--ease) .35s, height .35s var(--ease); }
.btn::after  { right: -1px; bottom: -1px; border-bottom: 1px solid var(--btn-line); border-right: 1px solid var(--btn-line); transition: width .35s var(--ease) .35s, height .35s var(--ease); }
.btn:hover { color: var(--btn-line); }
.btn:hover::before, .btn:hover::after { width: calc(100% + 2px); height: calc(100% + 2px); }
.btn:hover::before { transition: width .35s var(--ease), height .35s var(--ease) .35s; }
.btn:hover::after  { transition: width .35s var(--ease), height .35s var(--ease) .35s; }
.btn.light { border-color: rgba(255,255,255,.3); color: #fff; --btn-line: #fff; }
.btn.light:hover { color: #fff; }
.btn.navy { border-color: rgba(41,60,116,.35); color: var(--navy); --btn-line: var(--navy); }
.btn.solid { background: var(--ink); color: #fff; border-color: var(--ink); --btn-line: #fff; }
.btn.solid:hover { color: #fff; }

.arrowlink {
  font-family: var(--f-head); font-weight: 600; font-size: 12px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--ink); display: inline-flex; align-items: center; gap: 12px;
  transition: color .4s var(--ease), gap .4s var(--ease);
}
.arrowlink .ln { width: 30px; height: 1px; background: var(--ink); transition: width .4s var(--ease), background .4s var(--ease); }
.arrowlink:hover { color: var(--navy); gap: 18px; }
.arrowlink:hover .ln { width: 44px; background: var(--navy); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  padding: 30px 0; border-bottom: 1px solid rgba(255,255,255,.18);
  transition: all .5s var(--ease);
}
.site-header.solid { background: rgba(255,255,255,.96); backdrop-filter: blur(10px); padding: 16px 0; border-bottom-color: var(--line); }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.logo {
  font-family: var(--f-head); font-weight: 300; font-size: 24px; letter-spacing: .22em; text-transform: uppercase; color: #fff;
  transition: color .5s var(--ease);
}
.logo b { font-weight: 700; }
.logo .dot { color: var(--navy); }
.site-header.solid .logo { color: var(--ink); }
/* Bild-Logo: immer in Originalfarbe, größer. Footer (dunkel) weiß. */
.logo-img { height: 48px; width: auto; display: block; filter: none; transition: height .5s var(--ease), filter .5s var(--ease); }
.site-header.solid .logo-img { height: 42px; }
/* Startseite + Unterseiten mit dunklem Bild-Header: Logo weiß über dem Foto, farbig sobald Header weiß (solid) */
body.home .site-header:not(.solid) .logo-img,
body:has(.page-head.img) .site-header:not(.solid) .logo-img { filter: brightness(0) invert(1); }
.footer .logo-img { filter: brightness(0) invert(1); height: 50px; }
/* DAV-Logo unter den Kontaktdaten – weiße Schrift, ohne Hintergrund, mit Label */
.footer .dav-block { margin-top: 26px; }
.footer .dav-label { display: block; font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.72); margin-bottom: 12px; }
.footer .dav-logo { height: 84px; width: auto; }
.nav-links { display: flex; gap: 38px; }
.nav-links a {
  font-family: var(--f-head); font-weight: 600; font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.85); padding: 8px 0; position: relative; transition: color .4s var(--ease);
}
.nav-links a::after { content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background: var(--navy); transition: width .4s var(--ease); }
.nav-links a:hover, .nav-links a.active { color: #fff; }
.nav-links a:hover::after, .nav-links a.active::after { width: 100%; }
.site-header.solid .nav-links a { color: var(--grey); }
.site-header.solid .nav-links a:hover, .site-header.solid .nav-links a.active { color: var(--ink); }
/* Rechte Seite: Termin-Button + Icons */
.nav-right { display: flex; align-items: center; gap: 26px; }
.nav-cta { font-family: var(--f-head); font-weight: 600; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; border: 1px solid rgba(255,255,255,.55); padding: 14px 26px; color: rgba(255,255,255,.9); transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.nav-cta:hover { background: rgba(255,255,255,.14); color: #fff; }
.site-header.solid .nav-cta { border-color: var(--ink); color: var(--ink); }
.site-header.solid .nav-cta:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.nav-ic { background: none; border: 0; padding: 0; cursor: pointer; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.85); transition: color .4s var(--ease); }
.nav-ic svg { width: 100%; height: 100%; }
.search-ic svg { stroke: currentColor; fill: none; stroke-width: 1.5; }
.menu-ic { width: 20px; height: 20px; transition: color .4s var(--ease), transform .55s var(--ease); }
.menu-ic svg { fill: currentColor; stroke: none; }
.menu-ic svg rect { transform-box: fill-box; transform-origin: center; transition: transform .45s var(--ease); }
.menu-ic:hover { transform: rotate(90deg); }
.menu-ic:hover svg rect { transform: scale(.55); }
.nav-ic:hover { color: #fff; }
.site-header.solid .nav-ic { color: var(--grey); }
.site-header.solid .nav-ic:hover { color: var(--navy); }

/* ---------- Hero (fullscreen) ---------- */
.hero { position: relative; height: 100vh; min-height: 620px; overflow: hidden; background: #0a0a0a; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 2.6s cubic-bezier(.4, 0, .2, 1); }
.hero-slide.on { opacity: 1; }
.hero-slide .img { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.09); transition: transform 12s cubic-bezier(.25,.1,.25,1); }
.hero-slide.on .img { transform: scale(1.0); }
.hero-slide::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.55) 100%); }
.hero-inner { position: relative; z-index: 3; height: 100%; display: flex; flex-direction: column; justify-content: center; padding-bottom: 84px; }
.hero-inner .wrap { display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero .eyebrow { color: #fff; opacity: .85; margin-bottom: 28px; }
.hero .eyebrow::before { content:""; display:inline-block; width: 46px; height:1px; background: var(--navy); vertical-align: middle; margin-right: 18px; }
.hero .display { color: #fff; max-width: none; font-size: clamp(28px, 5vw, 60px); font-weight: 300; letter-spacing: .09em; line-height: 1.24; }
.hero p { color: rgba(255,255,255,.85); max-width: 48ch; margin: 30px 0 44px; font-size: 16px; }
/* SEO-H1 nur für Suchmaschinen/KI (unsichtbar), dezente Subheadline + CTAs im Hero */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hero-cta { position: absolute; left: 0; right: 0; top: 58%; z-index: 5; padding: 0 var(--pad); display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero-cta .hero-sub { color: rgba(255,255,255,.85); font-size: 15px; line-height: 1.65; max-width: 620px; margin: 0; }

/* Pfeile + Zähler (Allston) */
.hero-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 6; width: 58px; height: 58px; border: 1px solid rgba(255,255,255,.5); background: none; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 20px; transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.hero-arrow:hover { background: #fff; color: #0a0a0a; border-color: #fff; }
.hero-arrow.prev { left: var(--pad); } .hero-arrow.next { right: var(--pad); }
.hero-count { position: absolute; z-index: 6; right: max(var(--pad), calc((100vw - var(--maxw)) / 2 + var(--pad))); top: auto; bottom: clamp(112px, 14vw, 236px); transform: none; display: flex; align-items: center; gap: 5px; font-family: var(--f-head); font-weight: 300; font-size: 15px; letter-spacing: .2em; color: rgba(255,255,255,.85); }
.hero-count b { font-weight: 600; color: #fff; }
.hero-count .hc-n { -webkit-appearance: none; appearance: none; background: none; border: 0; padding: 4px 3px; font-family: var(--f-head); font-weight: 400; font-size: 15px; letter-spacing: .2em; color: rgba(255,255,255,.72); cursor: pointer; transition: color .35s var(--ease); }
.hero-count .hc-n:hover { color: #fff; }
.hero-count .hc-n.on { color: #fff; font-weight: 600; }
.hero-count .sep { color: rgba(255,255,255,.4); }

/* Weiße Info-Cards, die ins Hero ragen (Signatur) */
/* Karten ragen bis zur Mitte ins Hero: obere Hälfte über dem echten Slider-Bild, untere Hälfte auf Weiß. Kein aufgesetztes Bild. */
.hero-cards-wrap { position: relative; z-index: 14; margin-top: clamp(-210px, -12.5vw, -80px);
  /* oben transparent (Hero scheint durch), unterhalb der Hero-Kante Beige wie die Sektion darunter */
  background: linear-gradient(to bottom, transparent 0, transparent clamp(80px, 12.5vw, 210px), var(--paper-2) clamp(80px, 12.5vw, 210px)); }
.hero-cards { background: #fff; display: grid; grid-template-columns: repeat(3, 1fr); box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.hero-cards .icard { border: 0; border-left: 1px solid var(--line); margin: 0; }
.hero-cards .icard:first-child { border-left: 0; }
/* Karten nacheinander einklappen, knackig „tack tack tack" (Fold-down von der Oberkante) */
.hero-cards .icard.rv {
  opacity: 0; transform: perspective(1400px) rotateX(-82deg); transform-origin: 50% 0;
  transition: opacity .26s var(--ease) var(--d, 0s), transform .42s cubic-bezier(.2, .85, .25, 1) var(--d, 0s), background .4s var(--ease);
}
.hero-cards .icard.rv.in { opacity: 1; transform: perspective(1400px) rotateX(0deg); }
.hero-cards .icard:nth-child(1) { --d: 0s; }
.hero-cards .icard:nth-child(2) { --d: .12s; }
.hero-cards .icard:nth-child(3) { --d: .24s; }
.hero-slide.on .fade-seq { animation: rise 1.1s var(--ease) both; }
.hero-slide.on .fade-seq:nth-child(2){animation-delay:.12s} .hero-slide.on .fade-seq:nth-child(3){animation-delay:.24s} .hero-slide.on .fade-seq:nth-child(4){animation-delay:.36s}
@keyframes rise { from { opacity:0; transform: translateY(30px);} to {opacity:1; transform:none;} }
.hero-ui { position: absolute; z-index: 5; bottom: 40px; left: 0; right: 0; }
.hero-ui .wrap { display: flex; justify-content: space-between; align-items: center; }
.hero-dots { display: flex; gap: 12px; }
.hero-dots button { width: 40px; height: 2px; border: 0; background: rgba(255,255,255,.35); cursor: pointer; transition: background .4s; }
.hero-dots button.on { background: #fff; }
.hero-scroll { color: rgba(255,255,255,.7); font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; }

/* ---------- Page-Header (Unterseiten) ---------- */
.page-head { position: relative; padding: 210px 0 90px; background: var(--paper); border-bottom: 1px solid var(--line); }
.page-head .eyebrow { margin-bottom: 22px; }
.page-head h1 { max-width: 22ch; }
.breadcrumb { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--grey-2); margin-top: 26px; }
.breadcrumb a:hover { color: var(--navy); }
.page-head.img { padding: 240px 0 96px; background: #0a0a0a; border: 0; overflow: hidden; }
.page-head.img .bg { position:absolute; inset:0; background-size:cover; background-position:center 62%; filter: none; opacity:.5; transform-origin: center; animation: headZoom 24s var(--ease) infinite alternate; }
@keyframes headZoom { 0% { transform: scale(1.0); } 100% { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .page-head.img .bg { animation: none; } }
.page-head.img::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.4), rgba(0,0,0,.6)); }
.page-head.img .wrap { position: relative; z-index: 2; }
.page-head.img h1, .page-head.img .eyebrow { color: #fff; }
.page-head.img .breadcrumb { color: rgba(255,255,255,.7); }

/* ---------- Intro / Statement ---------- */
/* Bild links bis zum Bildschirmrand (Full-Bleed), Text rechts an Content-Kante ausgerichtet, Bild so hoch wie der Text */
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.intro-grid .side { position: static; align-self: center; padding-left: clamp(28px, 4vw, 64px); padding-right: max(var(--pad), calc((100vw - 1320px) / 2 + var(--pad))); padding-bottom: clamp(40px, 4.5vw, 60px); }
.intro-photo { position: relative; align-self: stretch; min-height: 480px; overflow: hidden; }
.intro-photo .intro-photo-img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 1s var(--ease); }
.intro-photo:hover .intro-photo-img { transform: scale(1.05); }
/* innenliegender Frame im Bild (Allston-Signatur) */
.intro-photo::after { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(255,255,255,.65); pointer-events: none; z-index: 1; }
.statement { max-width: 30ch; }
.big-quote { font-family: var(--f-head); font-weight: 300; text-transform: none; font-size: clamp(22px, 2.6vw, 32px); line-height: 1.5; letter-spacing: .01em; color: var(--ink); }
.big-quote b { font-weight: 600; }
/* Linie fährt von der Bildschirmkante (ganz links) herein und endet bei „Strategie." */
/* block-level: Eyebrow bleibt darüber; fit-content: rechte Kante liegt bei „Strategie." */
.intro-sec { overflow-x: clip; padding-top: clamp(50px, 6vw, 92px); padding-bottom: 0; }
.strat-head { position: relative; display: block; width: -moz-fit-content; width: fit-content; padding-bottom: 46px; }
.strat-head .strat-line {
  position: absolute; right: 0; bottom: 0;      /* rechte Kante bei „Strategie." */
  width: 100vw; height: 2px; background: var(--navy);
  transform: translateX(-100%);                 /* startet komplett links außerhalb des Screens */
  transition: transform 1.15s var(--ease) .35s;
}
.side.rv.in .strat-head .strat-line { transform: translateX(0); }

/* ---------- Icon-Cards (Leistungen) ---------- */
.cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); }
.icard {
  position: relative; overflow: hidden;
  padding: clamp(36px, 4vw, 60px) clamp(24px, 3vw, 46px); text-align: center;
  border: 1px solid var(--line); margin: -1px 0 0 -1px; background: #fff;
  transition: background .4s var(--ease);
}
/* Hover: dezent hervorheben + Navy-Linie an der Unterkante (kein Glanz) */
.icard::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--navy); transform: scaleX(0); transition: transform .45s var(--ease); z-index: 4;
}
.icard:hover { background: #faf9f7; }
.icard:hover::after { transform: scaleX(1); }
@keyframes cardGlint { from { left: -60%; } to { left: 135%; } }
.icard .ico { width: 54px; height: 54px; margin: 0 auto 26px; color: var(--ink); }
.icard .ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.2; }
.icard h3 { margin-bottom: 16px; }
.icard p { font-size: 14px; }
.icard .dotsep { margin: 22px auto 0; }
.icard .more { display: inline-block; margin-top: 22px; font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--grey-2); }

/* Rechtsgebiete – große Liste (Index-Stil) */
.rg-index { border-top: 1px solid var(--line); }
.rg-row { display: grid; grid-template-columns: 90px 1fr auto; gap: 30px; align-items: center; padding: 40px 10px; border-bottom: 1px solid var(--line); position: relative; transition: padding .5s var(--ease); }
.rg-row .num { font-family: var(--f-head); font-weight: 300; font-size: 15px; letter-spacing: .12em; color: var(--grey-2); }
.rg-row h3 { font-size: clamp(20px, 2.4vw, 30px); transition: color .4s var(--ease), transform .5s var(--ease); }
.rg-row .desc { font-size: 14px; max-width: 40ch; color: var(--grey-2); }
.rg-row .go { font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--navy); opacity: 0; transform: translateX(-10px); transition: all .5s var(--ease); }
.rg-row:hover { padding-left: 26px; background: var(--paper-2); }
.rg-row:hover h3 { color: var(--navy); }
.rg-row:hover .go { opacity: 1; transform: none; }
.rg-row .cover { position: absolute; }

/* Rechtsgebiete – blaue Sektion mit 6 Kacheln im 3×2-Raster */
.rg-block { background: var(--navy); }
.rg-block .eyebrow { color: rgba(255,255,255,.9); }
/* Testimonial-Kopf: Badge links, Headline/Subline linksbündig daneben */
.stimmen-head { display: flex; align-items: center; gap: clamp(24px, 3vw, 48px); text-align: left; }
.stimmen-head .eyebrow, .stimmen-head h2 { text-align: left; }
.stimmen-badge { height: clamp(104px, 12vw, 150px); width: auto; flex-shrink: 0; display: block; }
@media (max-width: 640px) { .stimmen-head { flex-direction: column; align-items: flex-start; gap: 18px; } .stimmen-badge { height: 96px; } }
.rg-block .h1 { color: #fff; }
.rg-block .hairline { display: block; width: 70px; height: 1px; background: rgba(255,255,255,.4); margin: 30px auto 0; }
.rg-tiles {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr;
  border-top: 1px solid rgba(255,255,255,.18);
}
.rg-tile {
  position: relative; display: block; padding: clamp(24px, 2.2vw, 38px);
  border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18);
  transition: background .4s var(--ease);
}
.rg-tile::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: #fff; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease);
}
.rg-tile .num { font-family: var(--f-head); font-weight: 300; font-size: 23px; letter-spacing: .12em; color: rgba(255,255,255,.5); }
.rg-tile h3 { color: #fff; font-size: clamp(18px, 1.65vw, 22px); margin: 12px 0 14px; }
.rg-tile h3::after { content: ""; display: block; width: 46px; height: 1px; background: rgba(255,255,255,.35); margin-top: 15px; }
.rg-tile .desc { font-size: 14px; color: rgba(255,255,255,.6); line-height: 1.8; max-width: 40ch; }
.rg-tile .go { display: inline-block; margin-top: 16px; font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #fff; opacity: 0; transform: translateX(-8px); transition: all .45s var(--ease); }
.rg-tile:hover { background: rgba(255,255,255,.06); }
.rg-tile:hover::after { transform: scaleX(1); }
.rg-tile:hover .go { opacity: 1; transform: none; }
/* Kacheln nacheinander einklappen (Fold-down von der Oberkante); Hover-Hintergrund ohne Delay */
.rg-tiles .rg-tile.rv {
  opacity: 0; transform: perspective(1400px) rotateX(-82deg); transform-origin: 50% 0;
  transition: opacity .26s var(--ease) var(--d, 0s), transform .42s cubic-bezier(.2, .85, .25, 1) var(--d, 0s), background .4s var(--ease);
}
.rg-tiles .rg-tile.rv.in { opacity: 1; transform: perspective(1400px) rotateX(0deg); }
.rg-tiles .rg-tile:nth-child(1) { --d: 0s; }
.rg-tiles .rg-tile:nth-child(2) { --d: .12s; }
.rg-tiles .rg-tile:nth-child(3) { --d: .24s; }
.rg-tiles .rg-tile:nth-child(4) { --d: .36s; }
.rg-tiles .rg-tile:nth-child(5) { --d: .48s; }
.rg-tiles .rg-tile:nth-child(6) { --d: .60s; }
.rg-tiles .rg-tile:nth-child(7) { --d: .72s; }
/* Alle Kacheln gleich groß: linke Rasterlinie sitzt an der ersten Kachel jeder Reihe,
   die 7. Kachel bleibt eine normale Zelle und steht mittig (statt volle Breite). */
.rg-tiles .rg-tile:nth-child(3n+1) { border-left: 1px solid rgba(255,255,255,.18); }
.rg-tiles .rg-tile:nth-child(7) { grid-column: 2; }
@media (max-width: 1000px) {
  .rg-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rg-tiles .rg-tile:nth-child(3n+1) { border-left: 0; }
  .rg-tiles .rg-tile:nth-child(2n+1) { border-left: 1px solid rgba(255,255,255,.18); }
  .rg-tiles .rg-tile:nth-child(7) { grid-column: auto; }
}
@media (max-width: 620px) {
  .rg-tiles { grid-template-columns: 1fr; }
  .rg-tiles .rg-tile:nth-child(n) { border-left: 1px solid rgba(255,255,255,.18); }
}

/* ---------- Full-bleed Bildband ---------- */
.imgband { height: clamp(360px, 55vw, 620px); background-size: cover; background-position: center; filter: none; position: relative; overflow: hidden; }
.imgband.color { filter: none; }
/* Kennzahlen als kleine Leiste im unteren Drittel des Bildes */
.imgband-stats { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(60px, 9vw, 110px) 0 clamp(24px, 2.6vw, 38px); background: linear-gradient(to top, rgba(14,19,34,.80), rgba(14,19,34,.44) 52%, transparent); }
.stats-over .stat { padding: 4px 22px; border-left-color: rgba(255,255,255,.22); }
.stats-over .stat .n { color: #fff; font-size: clamp(24px, 2.7vw, 36px); }
.stats-over .stat .n em { color: #fff; }
.stats-over .stat .l { color: rgba(255,255,255,.72); margin-top: 9px; }

/* ---------- Ablauf – 5 Schritte als Kette ---------- */
/* Ablauf-Sektion im Dessau-Stil: Icon links, Überschrift daneben, Text darunter, linksbündig */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(36px, 3.5vw, 58px) clamp(30px, 3vw, 48px); list-style: none; }
.step { text-align: left; }
.step .s-head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.step .s-ic { width: 42px; height: 42px; flex-shrink: 0; }
.step .s-ic svg { width: 100%; height: 100%; stroke: var(--navy); fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.step h3 { font-size: 14px; letter-spacing: .05em; margin: 0; line-height: 1.4; }
.step p { font-size: 13.5px; line-height: 1.9; color: var(--grey); margin: 0; max-width: 34ch; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }
.imgband-wrap { position: relative; }

/* ---------- Zahlen ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { text-align: center; padding: 30px 20px; border-left: 1px solid var(--line); }
.stat:first-child { border-left: 0; }
.stat .n { font-family: var(--f-head); font-weight: 300; font-size: clamp(34px, 4vw, 52px); color: var(--ink); line-height: 1; letter-spacing: .04em; }
.stat .n em { font-style: normal; color: var(--navy); font-size: .4em; vertical-align: middle; margin-left: 3px; }
.stat .l { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--grey-2); margin-top: 16px; }

/* ---------- Anwälte ---------- */
.team { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 40px); }
.member .ph { aspect-ratio: 3/3.7; overflow: hidden; background: var(--paper-2); perspective: 1500px; position: relative; }
/* Innenliegender Rahmen – zeichnet sich beim Reinscrollen (.in) einmal umlaufend (0°→360°, flache .ph-Ebene) */
@property --frame-a { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
@keyframes frameDraw { from { --frame-a: 0deg; } to { --frame-a: 360deg; } }
.member .ph::after {
  content:""; position:absolute; inset:16px; z-index:3; pointer-events:none;
  padding:1px;
  background: conic-gradient(from -90deg, rgba(255,255,255,.62) var(--frame-a), transparent 0deg) border-box;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  --frame-a: 0deg;
}
.member.in .ph::after { animation: frameDraw 1.15s var(--ease) forwards; }
/* Flip-Karte: Foto vorn, Beschreibung hinten (dreht bei Hover) */
.flip-inner { position: relative; width: 100%; height: 100%; transition: transform .75s var(--ease); transform-style: preserve-3d; }
.member:hover .flip-inner { transform: rotateY(180deg); }
.flip-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; overflow: hidden; }
.flip-front img { width: 100%; height: 100%; object-fit: cover; filter: none; }
.flip-back { transform: rotateY(180deg); background: var(--navy); color: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; text-align: center; padding: clamp(24px, 3vw, 42px); }
.flip-back p { font-size: 14px; line-height: 1.95; margin: 0; }
/* Zoom-Angleichung der beiden Männer (Foto-Vorderseite) */
.member.rv-0 .flip-front img, .member.rv-2 .flip-front img { transform-origin: center 30%; }
.member.rv-2 .flip-front img { transform: scale(1.19); }
.member.rv-0 .flip-front img { transform: scale(1.28) translateY(-4%); }
/* Touch-Geräte ohne Hover: Flip-Karten gibt es nicht mehr, deshalb nur noch
   die Flip-Reste neutralisieren. Das Format von .member .ph bleibt IMMER 3/3.7,
   sonst wachsen die Porträts auf iPad ins Unendliche und überlappen einander. */
@media (hover: none) {
  .member .ph { perspective: none; }
  .flip-inner { transform: none !important; transform-style: flat; }
  .flip-face { position: static; backface-visibility: visible; }
  .flip-front { aspect-ratio: 3/3.7; overflow: hidden; position: relative; }
  .flip-front::after { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(255,255,255,.55); pointer-events: none; z-index: 3; }
  .flip-back { transform: none; background: transparent; color: var(--grey); text-align: center; padding: 16px 4px 0; display: block; }
  .member.rv-0 .flip-front img, .member.rv-2 .flip-front img { transform: none; }
}
.member .meta { padding-top: 28px; text-align: center; }
.member h3 { font-size: 20px; margin-bottom: 10px; }
.member .role { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--navy); }
.member .dotsep { margin-top: 20px; }
.member p { font-size: 14px; margin-top: 18px; }

/* ---------- Bewertungen ---------- */
.reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.review { padding: clamp(34px, 3.4vw, 52px); border-left: 1px solid var(--line); }
.review:first-child { border-left: 0; }
.review .stars { color: var(--navy); letter-spacing: 5px; font-size: 12px; }
.review p { font-family: var(--f-head); font-weight: 300; text-transform: none; font-size: 18px; line-height: 1.6; color: var(--ink); margin: 22px 0 26px; }
.review .who { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-2); }
/* Mandantenstimmen auf navy: helle Rahmen und Texte */
.rg-block .reviews { border-color: rgba(255,255,255,.22); }
.rg-block .review { border-left-color: rgba(255,255,255,.22); border-top-color: rgba(255,255,255,.22); }
.rg-block .review .stars { color: #fff; }
.rg-block .review p { color: #fff; }
.rg-block .review .who { color: rgba(255,255,255,.6); }

/* ---------- News ---------- */
.news { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 44px); }
.post .thumb { aspect-ratio: 1/1; overflow: hidden; }
.post .thumb div { width: 100%; height: 100%; background-size: cover; background-position: center; filter: none; transition: filter .8s var(--ease), transform 1s var(--ease); }
.post:hover .thumb div { filter: grayscale(0%); transform: scale(1.04); }
.post .cat { margin-top: 26px; font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--navy); }
.post h3, .post .post-h { font-size: 18px; letter-spacing: .06em; margin: 14px 0 12px; line-height: 1.5; }
.post .date { font-size: 12px; color: var(--grey-2); letter-spacing: .08em; }

/* ---------- CTA-Band ---------- */
.cta { position: relative; overflow: hidden; background: #0a0a0a; text-align: center; }
.cta .bg { position:absolute; inset:0; background-size:cover; background-position:center; filter: none; opacity: 1; }
.cta::after { content:""; position:absolute; inset:0; background: rgba(0,0,0,.28); }
.cta .wrap { position: relative; z-index: 2; }
.cta .eyebrow { color:#fff; opacity:.8; }
.cta h2 { color:#fff; margin: 22px 0 40px; }
/* Die beiden CTA-Buttons stehen im Markup nebeneinander (durch &nbsp; getrennt).
   Eigener Außenabstand, damit sie beim Umbruch nicht aneinanderkleben. */
.cta .btn { margin: 7px 8px; }
@media (max-width: 560px) {
  /* mobil untereinander, gleich breit und mittig */
  .cta .btn { display: block; width: min(300px, 100%); margin: 9px auto; }
}

/* ---------- Termin-Modi ---------- */
.modes { display: grid; grid-template-columns: repeat(3, 1fr); }
.mode { position: relative; overflow: hidden; text-align:center; padding: clamp(36px,4vw,58px) clamp(22px,3vw,40px); border:1px solid var(--line); margin:-1px 0 0 -1px; background:#fff; }
.mode::before { content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%; background: linear-gradient(115deg, transparent 38%, rgba(41,60,116,.13) 50%, transparent 62%); transform: skewX(-18deg); z-index:4; pointer-events:none; }
.mode:hover::before { animation: cardGlint .85s ease; }
.mode .ico { width: 46px; height: 46px; margin: 0 auto 24px; color: var(--navy); }
.mode .ico svg { width:100%; height:100%; stroke: currentColor; fill:none; stroke-width:1.2; }
.mode h3 { font-size: 17px; margin-bottom: 14px; }
.mode p { font-size: 14px; }

/* ---------- FAQ ---------- */
.faq-search { display:flex; align-items:center; gap: 14px; border:1px solid var(--line); padding: 16px 22px; max-width: 520px; margin-bottom: 50px; }
.faq-search input { border:0; outline:0; font-family: var(--f-body); font-size: 15px; width:100%; color: var(--ink); background: transparent; }
.faq-search .ic { color: var(--grey-2); }
.faq-list { max-width: 860px; border-top: 1px solid var(--line); }
.faq-nav { display:flex; flex-wrap:wrap; gap:10px; max-width:860px; margin: -14px 0 52px; }
.faq-nav a { font-family:var(--f-head); font-weight:300; text-transform:uppercase; letter-spacing:.08em; font-size:12px; color:var(--grey); border:1px solid var(--line); padding:9px 16px; transition: color .3s var(--ease), border-color .3s var(--ease); }
.faq-nav a:hover { color:var(--navy); border-color:var(--navy); }
.faq-group { max-width:860px; margin-bottom:58px; scroll-margin-top:130px; }
.faq-group.hide { display:none; }
.faq-cat { font-family:var(--f-head); font-weight:300; text-transform:uppercase; letter-spacing:.1em; font-size:21px; color:var(--ink); margin: 0 0 18px; display:flex; align-items:baseline; gap:12px; }
.faq-cnt { font-size:13px; color:var(--grey-2); letter-spacing:.05em; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q { width:100%; background:none; border:0; cursor:pointer; text-align:left; display:flex; justify-content:space-between; gap:24px; align-items:center; padding: 30px 6px; font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .08em; font-size: 16px; color: var(--ink); transition: color .4s var(--ease); }
.faq-q:hover { color: var(--navy); }
.faq-q .pm { position: relative; width: 16px; height: 16px; flex-shrink: 0; }
.faq-q .pm::before, .faq-q .pm::after { content:""; position:absolute; background: var(--navy); transition: transform .4s var(--ease); }
.faq-q .pm::before { top:50%; left:0; width:16px; height:1.5px; transform: translateY(-50%); }
.faq-q .pm::after { left:50%; top:0; width:1.5px; height:16px; transform: translateX(-50%); }
.faq-item.open .pm::after { transform: translateX(-50%) scaleY(0); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .55s var(--ease); }
.faq-a p { padding: 0 40px 30px 6px; font-size: 15px; color: var(--grey); max-width: 74ch; }

/* ---------- Downloads ---------- */
.dl-filter { display:flex; flex-wrap:wrap; gap: 10px; margin-bottom: 44px; }
.chip { font-family: var(--f-head); font-weight:400; font-size: 12px; letter-spacing:.14em; text-transform:uppercase; padding: 10px 22px; border:1px solid var(--line); background: transparent; color: var(--grey); cursor:pointer; transition: color .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease); }
.chip:hover { color: var(--navy); border-color: var(--navy); }
.chip.on { background: var(--navy); color:#fff; border-color: var(--navy); }
.dl-list { border-top: 1px solid var(--line); }
.dl-row { display:flex; align-items:center; gap: 24px; padding: 26px 6px; border-bottom:1px solid var(--line); transition: padding .4s var(--ease), background .4s var(--ease); }
.dl-row:hover { padding-left: 20px; background: var(--paper-2); }
.dl-row .ic { width: 26px; height: 26px; color: var(--navy); flex-shrink:0; }
.dl-row .ic svg { width:100%; height:100%; stroke: currentColor; fill:none; stroke-width:1.3; }
.dl-row .t { flex: 1; }
.dl-row .t h3 { font-size: 15px; letter-spacing: .06em; margin-bottom: 4px; }
.dl-row .t span { font-size: 12px; color: var(--grey-2); letter-spacing: .06em; }
.dl-row .get { font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.18em; text-transform:uppercase; color: var(--ink); white-space: nowrap; }
.dl-row:hover .get { color: var(--navy); }

/* ---------- Kontakt ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: start; }
.contact-info dl { border-top: 1px solid var(--line); margin-top: 34px; }
.contact-info .item { padding: 24px 0; border-bottom: 1px solid var(--line); }
.contact-info dt { font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.2em; text-transform:uppercase; color: var(--grey-2); margin-bottom: 8px; }
.contact-info dd { font-size: 16px; color: var(--ink); }
.contact-info dd a:hover { color: var(--navy); }
.map { width:100%; aspect-ratio: 3/2.6; border:0; filter: contrast(1.05); }
.cform { display: grid; gap: 22px; }
.cform .row2 { display:grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.cform label { font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.16em; text-transform:uppercase; color: var(--grey-2); display:block; margin-bottom: 8px; }
.cform input, .cform textarea { width:100%; border:0; border-bottom:1px solid var(--line); padding: 10px 0; font-family: var(--f-body); font-size: 15px; color: var(--ink); background: transparent; outline: none; transition: border-color .4s; }
.cform input:focus, .cform textarea:focus { border-color: var(--navy); }

/* ---------- Legal (Impressum/Datenschutz) ---------- */
.legal { max-width: 820px; }
.legal h1 { margin-bottom: 6px; }
.legal h2 { font-size: 20px; letter-spacing: .1em; margin: 44px 0 14px; }
.legal h3 { font-family: var(--f-head); font-weight: 600; text-transform: uppercase; font-size: 12px; letter-spacing: .16em; color: var(--navy); margin: 28px 0 8px; }
.legal p, .legal li { font-size: 14.5px; color: var(--grey); }
.legal ul, .legal ol { margin: 0 0 16px 20px; }
.legal ul { list-style: disc; } .legal ol { list-style: decimal; }
.legal li { margin-bottom: 6px; }
.legal a { color: var(--navy); border-bottom: 1px solid var(--line); }
.legal a:hover { border-color: var(--navy); }

/* ---------- Footer ---------- */
.footer { background: var(--navy); color: rgba(255,255,255,.62); padding: clamp(60px, 7vw, 100px) 0 40px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 48px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer .logo { color:#fff; font-size: 26px; }
.footer .fintro { margin-top: 22px; font-size: 14px; max-width: 34ch; line-height: 1.9; }
.footer .fnotfall { margin-top: 26px; }
.footer .fnotfall-label { display: block; font-family: var(--f-head); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; color: rgba(255,255,255,.55); margin-bottom: 6px; }
.footer .fnotfall a { font-family: var(--f-head); font-weight: 400; font-size: 21px; letter-spacing: .02em; color: #fff; transition: opacity .3s var(--ease); }
.footer .fnotfall a:hover { opacity: .7; }
.footer h4 { color:#fff; font-size: 12px; letter-spacing: .2em; margin-bottom: 22px; font-weight: 600; }
.footer li { margin-bottom: 12px; }
.footer li a { font-size: 13.5px; letter-spacing: .04em; transition: color .3s; }
.footer li a:hover { color: #fff; }
.footer .fcontact { font-size: 14px; line-height: 2; }
.footer .fcontact a:hover { color:#fff; }
.footer-note { display:flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 30px; font-family: var(--f-head); font-weight:600; font-size: 11px; letter-spacing:.14em; text-transform:uppercase; color: rgba(255,255,255,.4); }
.ibx-by { display: inline-flex; align-items: center; gap: 8px; }
.ibx-credit-logo { height: 16px; width: auto; display: block; opacity: .8; transition: opacity .3s var(--ease); }
.ibx-by a:hover .ibx-credit-logo { opacity: 1; }
.fn-rights { display: inline-block; margin-top: 8px; }
.footer-note a { color: inherit; transition: color .3s var(--ease); }
.footer-note a:hover { color: #fff; }
/* aktive Seite in den Footer-Spalten fett */
.footer-grid ul a[aria-current="page"] { color: #fff; font-weight: 700; }

/* Back to top */
/* Stapel unten rechts. Am Seitenanfang (bottom→oben): Barrierefreiheit · Kalender.
   Beim Scrollen erscheint Back-to-top im untersten Slot, die zwei anderen rücken je einen Slot nach oben. */
/* Ein-/Ausblenden über transform + kurze opacity, damit der Button nie halbtransparent
   wirkt (sonst scheint der Hintergrund durch und er sieht heller aus als die anderen). */
.to-top { position: fixed; right: clamp(20px, 3vw, 40px); bottom: clamp(20px, 3vw, 40px); width: 48px; height: 48px; border: 0; border-radius: 0; background: var(--navy); color: #fff; cursor: pointer; display: grid; place-items: center; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .12s linear, transform .4s var(--ease), visibility .4s, background .3s; z-index: 60; box-shadow: 0 8px 22px rgba(10,10,10,.20); }
/* Termin-Button (Kalender-Icon) — immer sichtbar; Slot 1, beim Scrollen Slot 2 */
.cal-btn { position: fixed; right: clamp(20px, 3vw, 40px); bottom: calc(clamp(20px, 3vw, 40px) + 58px); width: 48px; height: 48px; background: var(--navy); color: #fff; display: grid; place-items: center; opacity: 1; visibility: visible; transform: none; transition: bottom .4s var(--ease), background .3s, color .3s; z-index: 60; box-shadow: 0 8px 22px rgba(10,10,10,.20); }
html.fabs-scrolled .cal-btn { bottom: calc(clamp(20px, 3vw, 40px) + 116px); }
.cal-btn:hover { background: #1f2f5c; }
.cal-btn svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cal-btn.on-dark { background: #fff; color: var(--navy); box-shadow: 0 8px 22px rgba(0,0,0,.32); }
.cal-btn.on-dark:hover { background: #ece9e4; }
.to-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { background: #1f2f5c; }
.to-top svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
/* auf dunklem/blauem Hintergrund hell */
.to-top.on-dark { background: #fff; color: var(--navy); box-shadow: 0 8px 22px rgba(0,0,0,.32); }
.to-top.on-dark:hover { background: #ece9e4; }

/* ===================== Barrierefreiheit-Widget ===================== */
/* Schlank, cookielos, kein Drittanbieter. Immer sichtbar. Slot 0 (unten); beim Scrollen Slot 1. */
.a11y-fab { position: fixed; right: clamp(20px, 3vw, 40px); bottom: clamp(20px, 3vw, 40px); width: 48px; height: 48px; border: 0; background: var(--navy); color: #fff; cursor: pointer; display: grid; place-items: center; z-index: 62; box-shadow: 0 8px 22px rgba(10,10,10,.20); transition: bottom .4s var(--ease), background .3s, color .3s; }
html.fabs-scrolled .a11y-fab { bottom: calc(clamp(20px, 3vw, 40px) + 58px); }
.a11y-fab:hover { background: #1f2f5c; }
/* auf dunklem/blauem Hintergrund hell — wie Back-to-top und Kalender */
.a11y-fab.on-dark { background: #fff; color: var(--navy); box-shadow: 0 8px 22px rgba(0,0,0,.32); }
.a11y-fab.on-dark:hover { background: #ece9e4; }
.a11y-fab svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.a11y-fab .ico-close { display: none; }
.a11y-open .a11y-fab .ico-open { display: none; }
.a11y-open .a11y-fab .ico-close { display: block; }
.a11y-panel { position: fixed; right: clamp(20px, 3vw, 40px); bottom: calc(clamp(20px, 3vw, 40px) + 58px); z-index: 63; width: 320px; max-width: calc(100vw - 40px); max-height: min(72vh, 560px); overflow-y: auto; background: #fff; color: var(--ink); border: 1px solid var(--line); box-shadow: 0 20px 60px rgba(11,14,20,.28); padding: 24px 24px 18px; transition: bottom .4s var(--ease); }
html.fabs-scrolled .a11y-panel { bottom: calc(clamp(20px, 3vw, 40px) + 116px); }
.a11y-panel[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) { .a11y-panel:not([hidden]) { animation: a11yIn .22s var(--ease); } }
@keyframes a11yIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.a11y-panel h2 { font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .1em; font-size: 17px; color: var(--ink); margin: 0 0 6px; }
.a11y-sub { font-size: 12.5px; color: var(--grey); margin: 0 0 18px; line-height: 1.6; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt { appearance: none; border: 1px solid var(--line); background: #fff; color: var(--ink); padding: 13px 8px 11px; font-family: var(--f-body); font-size: 12px; cursor: pointer; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 7px; line-height: 1.3; transition: border-color .2s, background .2s, color .2s; }
.a11y-opt svg { width: 22px; height: 22px; color: var(--navy); }
.a11y-opt:hover { border-color: var(--navy); }
.a11y-opt[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.a11y-opt[aria-pressed="true"] svg { color: #fff; }
.a11y-opt .a11y-state { font-size: 10px; opacity: .7; letter-spacing: .06em; text-transform: uppercase; }
.a11y-reset { grid-column: 1 / -1; margin-top: 2px; border: 1px solid var(--line); background: var(--paper); color: var(--grey); padding: 12px; font-family: var(--f-body); font-size: 12px; cursor: pointer; transition: background .2s, color .2s; }
.a11y-reset:hover { color: var(--navy); }
.a11y-foot { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 11.5px; line-height: 1.6; color: var(--grey); }
.a11y-foot a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
.a11y-fab:focus-visible, .a11y-opt:focus-visible, .a11y-reset:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
@media (max-width: 560px) { .a11y-panel { width: calc(100vw - 40px); } }
/* Effekt-Klassen auf <html> */
html.a11y-fs1 { zoom: 1.09; } html.a11y-fs2 { zoom: 1.18; } html.a11y-fs3 { zoom: 1.28; }
html.a11y-underline a:not(.btn):not(.mnav-cta):not(.logo):not(.a11y-opt):not(.a11y-reset) { text-decoration: underline !important; text-underline-offset: 2px; }
html.a11y-readable p, html.a11y-readable li { line-height: 1.9 !important; letter-spacing: .012em !important; word-spacing: .05em !important; }
html.a11y-contrast { --grey: #33404f; --grey-2: #33404f; }
html.a11y-nomotion *, html.a11y-nomotion *::before, html.a11y-nomotion *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }

/* ---------- Reveal ---------- */
.rv { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.rv.in { opacity: 1; transform: none; }
.rv-1{transition-delay:.08s}.rv-2{transition-delay:.16s}.rv-3{transition-delay:.24s}.rv-4{transition-delay:.32s}.rv-5{transition-delay:.4s}

/* ---------- Menü-Drawer (¼ Breite, von rechts) ---------- */
.mnav-backdrop { position: fixed; inset: 0; background: rgba(10,10,10,.55); z-index: 199; opacity: 0; pointer-events: none; transition: opacity .5s var(--ease); }
.mnav-backdrop.open { opacity: 1; pointer-events: auto; }
.mnav { position: fixed; top: 0; right: 0; bottom: 0; width: 24vw; min-width: 320px; max-width: 420px; background: var(--navy); z-index: 200; display: flex; flex-direction: column; justify-content: center; padding: 0 clamp(36px, 3.5vw, 52px); transform: translateX(100%); transition: transform .55s var(--ease); }
.mnav.open { transform: translateX(0); }
.mnav-links { display: flex; flex-direction: column; gap: 0; }
.mnav a { font-family: var(--f-head); font-weight: 400; text-transform: uppercase; letter-spacing: .13em; font-size: 14px; color: rgba(255,255,255,.82); padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.13); transition: color .35s var(--ease), padding-left .35s var(--ease); }
.mnav a:hover { color: #fff; padding-left: 8px; }
/* aktuelle Seite hervorheben — nur fettere Schrift, kein Marker */
.mnav-links a[aria-current="page"] { color: #fff; font-weight: 600; }
.mnav a.mnav-cta { margin-top: 20px; border: 1px solid rgba(255,255,255,.45); text-align: center; padding: 13px; font-size: 12px; letter-spacing: .18em; color: #fff; }
.mnav a.mnav-cta:hover { background: rgba(255,255,255,.14); padding-left: 13px; }
.mnav .close { position: absolute; top: 26px; right: clamp(36px,3.5vw,52px); background:none; border:0; color:#fff; font-size: 26px; line-height: 1; cursor:pointer; transition: transform .4s var(--ease); }
.mnav .close:hover { transform: rotate(90deg); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .nav-links, .nav-cta, .search-ic { display: none; }
  .intro-grid, .contact-grid, .cform .row2 { grid-template-columns: 1fr; }
  .intro-grid .side { position: static; padding: clamp(28px,6vw,44px) var(--pad) clamp(40px,8vw,60px); }
  .intro-photo { min-height: 300px; }
  .cards-3, .team, .reviews, .news, .modes, .stats { grid-template-columns: 1fr 1fr; }
  .review { border-top: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1000px) {
  .hero-cards { grid-template-columns: 1fr; }
  .hero-cards .icard { border-left: 0; border-top: 1px solid var(--line); }
  .hero-cards .icard:first-child { border-top: 0; }
  .hero-cards-wrap { margin-top: -30px; background: linear-gradient(to bottom, transparent 0, transparent 30px, var(--paper-2) 30px); }
}
@media (max-width: 760px) {
  .hero-arrow { display: none; }
}
@media (max-width: 620px) {
  .cards-3, .team, .reviews, .news, .modes, .stats, .footer-grid { grid-template-columns: 1fr; }
  .stats-over { grid-template-columns: 1fr 1fr; }
  .stats-over .stat { padding: 6px 12px; }
  .stats-over .stat .n { font-size: 26px; }
  .stats-over .stat:nth-child(3) { border-left: 0; }
  .imgband-stats { padding: clamp(44px,12vw,70px) 0 20px; }
  .rg-row { grid-template-columns: 50px 1fr; }
  .rg-row .desc, .rg-row .go { display: none; }
  .hero p { font-size: 15px; }
  .mnav { width: 84%; min-width: 0; max-width: none; }
}

/* ============ SEO/GEO-Erweiterungen Startseite (2026-07-22) ============ */
/* Ablauf-Steps: 4 statt 5 Spalten + Icons im Kreis */
.steps { list-style: none; }
.steps.steps-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .steps.steps-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .steps.steps-4 { grid-template-columns: 1fr; } }
.step .s-num svg { width: 24px; height: 24px; stroke: var(--navy); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }

/* Rechtsberatung-Trio (Fließtext in drei Spalten) */
.txt-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3.4vw, 56px); max-width: 1080px; margin: 0 auto; }
.txt-block h3 { font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .08em; font-size: 16px; color: var(--ink); margin-bottom: 14px; line-height: 1.45; }
.txt-block p { font-size: 15px; line-height: 1.9; color: var(--grey); }
@media (max-width: 820px) { .txt-cols { grid-template-columns: 1fr; gap: 34px; max-width: 560px; } }

/* Vertrauens-Kennzahlen (bordered grid wie Reviews) */
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-item { padding: clamp(30px, 3vw, 46px) 22px; text-align: center; border-left: 1px solid var(--line); }
.trust-item:first-child { border-left: 0; }
.trust-item .tn { font-family: var(--f-head); font-weight: 300; font-size: clamp(26px, 3vw, 40px); color: var(--navy); letter-spacing: .02em; line-height: 1; }
.trust-item .tl { font-size: 13px; line-height: 1.7; color: var(--grey); margin: 14px auto 0; max-width: 22ch; }
@media (max-width: 720px) { .trust-grid { grid-template-columns: 1fr 1fr; row-gap: 34px; } .trust-item:nth-child(odd) { border-left: 0; } }

/* Textlinks in Fließtext-Bereichen */
.rich a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; text-decoration-color: rgba(41,60,116,.35); transition: text-decoration-color .3s var(--ease); }
.rich a:hover { text-decoration-color: var(--navy); }
.faq-a a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }

/* Beratung: links Accordion-Text, rechts Foto (2026-07-22) */
.beratung-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 5vw, 80px); align-items: center; }
.beratung-photo { position: relative; min-height: clamp(400px, 44vw, 600px); overflow: hidden; align-self: stretch; }
.beratung-photo > div { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 1.1s var(--ease); }
.beratung-photo:hover > div { transform: scale(1.05); }
.beratung-photo::after { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(255,255,255,.6); pointer-events: none; z-index: 1; }
.acc-list { margin-top: clamp(28px, 3vw, 40px); border-top: 1px solid var(--line); max-width: 560px; }
.acc-item { border-bottom: 1px solid var(--line); }
.acc-q { width: 100%; background: none; border: 0; cursor: pointer; text-align: left; display: flex; justify-content: space-between; gap: 22px; align-items: center; padding: 26px 4px; font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .08em; font-size: 15px; line-height: 1.45; color: var(--ink); transition: color .4s var(--ease); }
.acc-q:hover { color: var(--navy); }
.acc-q .pm { position: relative; width: 16px; height: 16px; flex-shrink: 0; }
.acc-q .pm::before, .acc-q .pm::after { content: ""; position: absolute; background: var(--navy); transition: transform .4s var(--ease); }
.acc-q .pm::before { top: 50%; left: 0; width: 16px; height: 1.5px; transform: translateY(-50%); }
.acc-q .pm::after { left: 50%; top: 0; width: 1.5px; height: 16px; transform: translateX(-50%); }
.acc-item.open .pm::after { transform: translateX(-50%) scaleY(0); }
.acc-a { max-height: 0; overflow: hidden; transition: max-height .55s var(--ease); }
.acc-a p { padding: 0 26px 26px 4px; font-size: 14.5px; line-height: 1.9; color: var(--grey); }
@media (max-width: 860px) {
  .beratung-grid { grid-template-columns: 1fr; gap: clamp(32px, 6vw, 48px); }
  .beratung-photo { min-height: 320px; order: -1; }
  .acc-list { max-width: none; }
}

/* Plus/Minus-Icon animiert beim Hovern (Beratung + FAQ) */
.acc-q .pm, .faq-q .pm { transition: transform .45s var(--ease); }
.acc-q:hover .pm, .faq-q:hover .pm { transform: rotate(180deg) scale(1.12); }

/* Mandantenstimmen als Slider (immer 3 sichtbar, Desktop) */
.rev-slider { overflow: hidden; border: 1px solid rgba(255,255,255,.22); }
.rev-track { display: flex; transition: transform .6s var(--ease); }
.rev-track .review { flex: 0 0 33.3333%; border-left: 1px solid rgba(255,255,255,.22); }
.rev-track .review:first-child { border-left: 0; }
.rev-nav { display: flex; justify-content: center; gap: 14px; margin-top: clamp(34px, 4vw, 52px); }
.rev-arrow { border: 0; background: transparent; color: rgba(255,255,255,.6); cursor: pointer; padding: 6px; display: grid; place-items: center; transition: color .4s var(--ease), transform .4s var(--ease); }
.rev-arrow:hover { color: #fff; }
.rev-arrow svg { width: 30px; height: 30px; stroke: currentColor; fill: none; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 900px) { .rev-track .review { flex-basis: 50%; } }
@media (max-width: 620px) { .rev-track .review { flex-basis: 100%; } }

/* Team-Karussell (Homepage) — heller Hintergrund, dunkle Pfeile */
.team-slider { overflow: hidden; }
.team-track { display: flex; transition: transform .6s var(--ease); }
.team-track .member { flex: 0 0 33.3333%; box-sizing: border-box; padding: 0 clamp(14px, 1.6vw, 20px); }
.team-carousel { position: relative; }
.team-arrow { position: absolute; top: 38%; transform: translateY(-50%); z-index: 5; border: 0; background: transparent; color: var(--grey); cursor: pointer; padding: 8px; display: grid; place-items: center; transition: color .3s var(--ease), transform .3s var(--ease); }
.team-prev { left: calc(-0.7 * var(--pad)); }
.team-next { right: calc(-0.7 * var(--pad)); }
.team-arrow:hover { color: var(--navy); }
.team-arrow svg { width: 34px; height: 34px; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 900px) { .team-track .member { flex-basis: 50%; } }
@media (max-width: 620px) { .team-track .member { flex-basis: 100%; } }
/* Lokale Kanzlei-Fotos zeigen die Person weiter entfernt — leicht heranzoomen, damit alle Köpfe gleich groß wirken */
/* Klickbare Team-Karte (Startseite): Klick öffnet Lightbox statt Flip */
.member[data-lb] { cursor: pointer; }
.member[data-lb]:focus-visible { outline: 2px solid var(--navy); outline-offset: 4px; }
.member .ph > img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.3s var(--ease); }
.member[data-lb]:hover .ph > img { transform: scale(1.045); }
/* ===== Porträts: Personen überall gleich groß abbilden =====
   Die Originalfotos sind aus unterschiedlicher Distanz aufgenommen. --pz gleicht die
   Kopfgröße an, --pty die Höhenlage. Gilt für Startseiten-Karussell, Anwälte-Seite und Lightbox. */
.member[data-lb="offenhausen"], #offenhausen, #bio-offenhausen { --pz: 1;    --pty: 0%; }
.member[data-lb="raedecke"],    #raedecke,    #bio-raedecke    { --pz: 1.2;  --pty: -2%; }
.member[data-lb="frankfurter"], #frankfurter, #bio-frankfurter { --pz: 1.2;  --pty: 0%; }
.member[data-lb="kirci"],       #kirci,       #bio-kirci       { --pz: 1.35; --pty: -2%; }
.member[data-lb="ewert"],       #ewert,       #bio-ewert       { --pz: 1.17; --pty: 0%; }
.member .ph > img { transform: scale(var(--pz, 1)) translateY(var(--pty, 0)); transform-origin: center 18%; }
.member[data-lb]:hover .ph > img { transform: scale(calc(var(--pz, 1) * 1.04)) translateY(var(--pty, 0)); }
.member[data-lb]:hover h3 { color: var(--navy); }
.member .m-view { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; font-family: var(--f-head); font-weight: 600; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--grey-2); transition: color .4s var(--ease), gap .4s var(--ease); }
.member .m-view::after { content: ""; width: 20px; height: 1px; background: currentColor; transition: width .4s var(--ease); }
.member[data-lb]:hover .m-view { color: var(--navy); gap: 13px; }
.member[data-lb]:hover .m-view::after { width: 30px; }

/* Monogramm-Platzhalter (Anwälte ohne Foto) — dezent im Kanzlei-Stil, Foto später eintauschbar */
.ph-mono { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(150deg, #1c2333 0%, #0a0a0a 100%); }
.ph-mono span { font-family: var(--f-head); font-weight: 300; font-size: clamp(46px, 6vw, 76px); letter-spacing: .16em; text-indent: .16em; color: rgba(255,255,255,.9); }
.profile-photo .ph-mono { position: absolute; }

/* Anwalts-Profile (Anwälte-Seite) — full-bleed, Bild bis zum Bildschirmrand, alternierend */
.profiles { display: flex; flex-direction: column; }
.profile { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.profile:nth-child(even) .profile-photo { order: 2; }
.profile-photo { position: relative; overflow: hidden; background: var(--paper-2); min-height: clamp(420px, 44vw, 640px); }
.profile-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.profile-photo .ph-mono { position: absolute; inset: 0; }
.profile-photo img { transition: transform 1s var(--ease); transform: scale(var(--pz, 1)) translateY(var(--pty, 0)); transform-origin: center 18%; }
.profile:hover .profile-photo img { transform: scale(calc(var(--pz, 1) * 1.05)) translateY(var(--pty, 0)); }
.skills { margin-top: clamp(30px, 3.2vw, 44px); display: flex; flex-direction: column; gap: 20px; }
.skill-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink); }
.skill-head span:last-child { color: var(--navy); letter-spacing: .08em; }
.skill-bar { height: 2px; background: var(--line); position: relative; overflow: hidden; }
.skill-bar i { position: absolute; inset: 0 auto 0 0; height: 100%; background: var(--navy); width: 0; transition: width 1.4s var(--ease); }
.skills.in .skill-bar i { width: var(--pct); }
.profile-photo::after {
  content: ""; position: absolute; inset: 26px; z-index: 2; pointer-events: none;
  padding: 1px;
  background: conic-gradient(from -90deg, rgba(255,255,255,.6) var(--frame-a), transparent 0deg) border-box;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  --frame-a: 0deg;
}
.profile.in .profile-photo::after { animation: frameDraw 1.25s var(--ease) forwards; }
.profile-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 5.5vw, 100px); background: var(--paper-2); }
.profile-body h2 { font-size: clamp(24px, 2.4vw, 34px); margin-bottom: 14px; }
.profile-role { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--navy); line-height: 1.9; }
.profile-body .dotsep { margin: 22px 0; }
.profile-body p { color: var(--grey); line-height: 1.9; }
.profile-body p + p { margin-top: 18px; }
.profile-btn { margin-top: clamp(26px, 3vw, 36px); }
@media (max-width: 860px) {
  .profile { grid-template-columns: 1fr; }
  .profile:nth-child(even) .profile-photo { order: 0; }
  .profile-photo { min-height: 340px; }
  .profile-body { padding: clamp(34px, 7vw, 56px) var(--pad); }
}

/* Footer-Kontaktadresse nicht kursiv */
.footer .fcontact { font-style: normal; }

/* Vertrauen: Text in zwei Spalten */
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 4vw, 64px); max-width: 1040px; margin: 0 auto; }
.two-cols .lead { max-width: none; }
@media (max-width: 780px) { .two-cols { grid-template-columns: 1fr; gap: 20px; max-width: 560px; } }

/* Mandantenstimmen-Kacheln in weiß (auf navy Sektion) */
.rg-block .rev-slider { border: 1px solid rgba(255,255,255,.4); }
.rg-block .rev-track .review { background: transparent; border-left: 1px solid rgba(255,255,255,.4); display: flex; flex-direction: column; }
.rg-block .rev-track .review:first-child { border-left: 0; }
.rg-block .rev-track .review .stars { color: #f0b429; }
.rg-block .rev-track .review p { color: #fff; }
.rg-block .rev-track .review .who { color: rgba(255,255,255,.65); margin-top: auto; }
.rg-block .rev-track .review:first-child { border-left: 0; }
.rg-block .rev-track .review p { color: #fff; }
.rg-block .rev-track .review .who { color: rgba(255,255,255,.65); }
.rg-block .rev-track .review .stars { color: #f0b429; }

/* ============================================================
   Anwälte-Seite (2026-07-23) — GEO/SEO-Ausbau, Wirtschaftsrecht
   Nutzt Systemvariablen, --ease, Reveal (.rv/.in), Counter
   ============================================================ */

/* Hero-Erweiterung: Subline, Lead & CTA über dem Headerbild */
.page-head.img.hero-lg { padding: clamp(210px, 24vw, 290px) 0 clamp(96px, 11vw, 132px); }
.ph-sub { font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.94); font-size: clamp(15px, 1.9vw, 24px); line-height: 1.4; margin-top: 18px; }
.page-head.img .ph-lead { color: rgba(255,255,255,.86); font-size: 16px; line-height: 1.9; max-width: 58ch; margin-top: 26px; }
.page-head.img .ph-cta { margin-top: 42px; display: flex; gap: 16px; flex-wrap: wrap; }

/* Anker unter dem fixierten Header auffangen */
:target { scroll-margin-top: 110px; }
[id] { scroll-margin-top: 100px; }

/* ---------- Sektion 2: Team-Karten (gleich groß, Hover-Lift) ---------- */
.team-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 2vw, 30px); }
.tcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.tcard:hover { transform: translateY(-8px); box-shadow: 0 20px 44px rgba(10,10,10,.13); }
.tcard-photo { position: relative; aspect-ratio: 3/3.5; overflow: hidden; background: var(--paper-2); }
.tcard-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.tcard:hover .tcard-photo img { transform: scale(1.06); }
.tcard-photo .ph-mono { position: absolute; inset: 0; }
.tcard-photo .ph-mono span { font-size: clamp(40px, 4vw, 58px); }
.tcard-photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); z-index: 3; }
.tcard:hover .tcard-photo::after { transform: scaleX(1); }
.tcard-body { display: flex; flex-direction: column; flex: 1; padding: clamp(22px, 2vw, 30px); }
.tcard h3 { font-size: 17px; letter-spacing: .08em; margin-bottom: 10px; }
.tcard .role { font-family: var(--f-head); font-weight: 600; font-size: 10.5px; letter-spacing: .15em; text-transform: uppercase; color: var(--navy); line-height: 1.7; margin-bottom: 16px; }
.tcard .focus { font-size: 12.5px; line-height: 1.7; color: var(--grey-2); margin-bottom: 14px; }
.tcard p { font-size: 13.5px; line-height: 1.85; margin-bottom: 22px; }
.tcard .more { margin-top: auto; align-self: flex-start; }
@media (max-width: 1000px) { .team-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .team-cards { grid-template-columns: 1fr; } }

/* Anwälte im Dessau-Stil: kleines Icon + Name + Titel + Text, sauberes Grid, keine Bilder */
.lawyers { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px, 5.5vw, 88px) clamp(48px, 6vw, 104px); }
.lawyer-head { display: flex; align-items: flex-start; gap: clamp(16px, 1.6vw, 22px); margin-bottom: clamp(18px, 2vw, 26px); }
.lawyer-ic { width: 46px; height: 46px; flex-shrink: 0; color: var(--navy); }
.lawyer-ic svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }
.lawyer h3 { font-size: clamp(19px, 2vw, 25px); letter-spacing: .05em; margin-bottom: 12px; line-height: 1.32; }
.lawyer-role { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--navy); line-height: 1.8; }
.lawyer-body p { font-size: 14.5px; line-height: 1.95; color: var(--grey); max-width: 54ch; }
.lawyer-body p + p { margin-top: 16px; }
@media (max-width: 820px) { .lawyers { grid-template-columns: 1fr; gap: clamp(44px, 9vw, 60px); } }

/* ---------- Sektion 3: Leistungskarten (versetzt, unterschiedlich hoch) ---------- */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 2.2vw, 32px); align-items: stretch; }
.svc-card { position: relative; overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); padding: clamp(30px, 3vw, 46px); transition: transform .6s var(--ease), opacity .6s var(--ease), box-shadow .5s var(--ease), background .4s var(--ease); }
.svc-card.rv-1 { transition-delay: .09s; }
.svc-card.rv-2 { transition-delay: .18s; }
.svc-card.rv-3 { transition-delay: .27s; }
.svc-card.rv-4 { transition-delay: .36s; }
.svc-card.rv-5 { transition-delay: .45s; }
.svc-card:hover { transition-delay: 0s; }
.svc-card:hover { transform: translateY(-7px); box-shadow: 0 18px 40px rgba(10,10,10,.11); background: #faf9f7; }
.svc-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.svc-card:hover::after { transform: scaleX(1); }
.svc-card .ico { display: block; width: clamp(40px, 4.4vw, 48px); height: clamp(40px, 4.4vw, 48px); color: var(--navy); margin-bottom: 24px; }
.svc-card .ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.svc-card .num { display: block; font-family: var(--f-head); font-weight: 300; font-size: clamp(28px, 3vw, 40px); letter-spacing: .08em; color: var(--navy); margin-bottom: 22px; }
.svc-card h3 { font-size: 19px; letter-spacing: .09em; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); line-height: 1.4; }
.svc-card p { font-size: 14px; line-height: 1.9; margin-bottom: 24px; }
.svc-card .more { margin-top: auto; align-self: flex-start; }
@media (max-width: 900px) { .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .svc-grid { grid-template-columns: 1fr; } }

/* ---------- Sektion 4: Warum corelaw (große Zahlen statt Icons) ---------- */
.why-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.why-item { position: relative; overflow: hidden; padding: clamp(30px, 3.6vw, 50px) clamp(26px, 3vw, 46px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .5s var(--ease); }
.why-item:hover { background: var(--paper-2); }
.why-item .wn { display: inline-block; font-family: var(--f-head); font-weight: 300; font-size: clamp(28px, 3vw, 46px); line-height: 1; letter-spacing: .04em; color: var(--grey-2); opacity: .5; transition: color .55s var(--ease), opacity .55s var(--ease); }
.why-item:hover .wn { color: var(--navy); opacity: 1; }
.why-item h3 { font-size: clamp(17px, 1.8vw, 22px); letter-spacing: .1em; margin: 16px 0 14px; }
.why-item p { font-size: 14.5px; line-height: 1.9; max-width: 46ch; }
@media (max-width: 720px) { .why-grid { grid-template-columns: 1fr; } }

/* ---------- Sektion 5: Timeline (horizontal, wachsende Linie) ---------- */
/* Ablauf: Kopf links (linksbündig) + Schritte rechts als Akkordeon */
.ablauf-split { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
.ablauf-head { text-align: left; }
.ablauf-head .lead { max-width: 50ch; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.acc-step { border-bottom: 1px solid var(--line); }
.acc-step:first-child { border-top: 1px solid var(--line); }
.acc-step-q { width: 100%; background: none; border: 0; cursor: pointer; display: flex; align-items: center; gap: clamp(18px, 2.4vw, 34px); padding: clamp(22px, 2.6vw, 30px) 0; font: inherit; text-align: left; color: var(--ink); }
.acc-num { font-family: var(--f-head); font-weight: 300; font-size: clamp(20px, 2vw, 26px); letter-spacing: .05em; color: var(--grey-2); transition: color .45s var(--ease); }
.acc-title { flex: 1; font-family: var(--f-head); font-weight: 300; font-size: 19px; letter-spacing: .09em; text-transform: uppercase; line-height: 1.4; transition: color .45s var(--ease); }
.acc-step-q:hover .acc-title, .acc-step.open .acc-title, .acc-step.open .acc-num { color: var(--navy); }
.acc-ic { position: relative; width: 14px; height: 14px; flex-shrink: 0; }
.acc-ic::before, .acc-ic::after { content: ""; position: absolute; background: var(--navy); transition: transform .4s var(--ease), opacity .4s var(--ease); }
.acc-ic::before { top: 6.25px; left: 0; width: 14px; height: 1.5px; }
.acc-ic::after { left: 6.25px; top: 0; width: 1.5px; height: 14px; }
.acc-step.open .acc-ic::after { transform: scaleY(0); opacity: 0; }
.acc-step-a { overflow: hidden; max-height: 0; transition: max-height .55s var(--ease); }
.acc-step-a p { font-size: 14px; line-height: 1.95; color: var(--grey); max-width: 58ch; padding: 0 0 clamp(24px, 2.6vw, 32px) clamp(38px, 4vw, 60px); }
@media (max-width: 860px) {
  .ablauf-split { grid-template-columns: 1fr; gap: clamp(30px, 6vw, 44px); }
  .acc-step-a p { padding-left: clamp(30px, 9vw, 44px); }
}

/* ---------- Sektion 6: Zahlen als schräges Navy-Band (Architektur-Look) ---------- */
.stat-band { position: relative; background: var(--navy); padding: clamp(80px, 9vw, 130px) 0; margin: 0; }
.stat-band .eyebrow { color: rgba(255,255,255,.9); }
.stat-band h2 { color: #fff; }
.stat-band .trust-grid { border-top: 0; }
.stat-band .trust-item { border-left-color: rgba(255,255,255,.22); }
.stat-band .trust-item .tn { color: #fff; }
.stat-band .trust-item .tl { color: rgba(255,255,255,.72); }
@media (max-width: 720px) { .stat-band .trust-item:nth-child(odd) { border-left: 0; } }

/* ---------- Sektion 8: Vertrauen als Wortwolke (Slug/Tag Cloud, ganze Breite) ---------- */
.cloud { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: clamp(12px,1.6vw,26px) clamp(22px,3.2vw,56px); margin: clamp(24px,4vw,60px) auto 0; text-align: center; }
.cloud span { font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .05em; line-height: 1.05; color: var(--grey-2); transition: color .4s var(--ease); cursor: default; }
.cloud span:hover { color: var(--navy); }
.cloud .s-xl { font-size: clamp(34px,6vw,78px); color: var(--ink); }
.cloud .s-l  { font-size: clamp(24px,4vw,52px); color: var(--navy); }
.cloud .s-m  { font-size: clamp(18px,2.6vw,34px); color: var(--ink); }
.cloud .s-s  { font-size: clamp(14px,1.7vw,22px); color: var(--grey); }
.cloud .s-xs { font-size: clamp(12px,1.2vw,16px); color: var(--grey-2); }

/* ---------- Menü: Instagram / Social ---------- */
.mnav-social { position: absolute; left: 0; right: 0; bottom: clamp(28px, 4vh, 46px); display: flex; align-items: center; padding: 0 clamp(36px, 3.5vw, 52px); }
.mnav-social a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.32); color: rgba(255,255,255,.82); transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.mnav-social a:hover { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.6); }
.mnav-social svg { width: 20px; height: 20px; }

/* ============================================================
   Anwälte-Seite — Premium-Redesign (2026-07-23)
   Editorial, ruhig, nur corelaw-Farben, keine Verläufe
   ============================================================ */

/* --- Anwälte: großzügige Karten, identische Portraits, Detail per Klick --- */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(22px, 2.6vw, 46px); }
.mcard { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.mcard-photo { position: relative; aspect-ratio: 4/5; overflow: hidden; background: var(--paper-2); margin-bottom: clamp(20px, 2vw, 28px); }
.mcard-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s var(--ease); }
.mcard:hover .mcard-photo img { transform: scale(1.045); }
.mcard-ph { position: absolute; inset: 0; display: grid; place-items: center; background: var(--paper-2); }
.mcard-ph span { font-family: var(--f-head); font-weight: 300; font-size: clamp(30px, 3.6vw, 50px); letter-spacing: .18em; text-indent: .18em; color: var(--navy); opacity: .85; }
.mcard-photo::after { content: ""; position: absolute; inset: 0; border: 1px solid transparent; pointer-events: none; transition: border-color .6s var(--ease); }
.mcard:hover .mcard-photo::after { border-color: rgba(41,60,116,.28); }
.mcard h3 { font-size: clamp(16px, 1.5vw, 19px); letter-spacing: .05em; margin-bottom: 9px; transition: color .4s var(--ease); }
.mcard:hover h3 { color: var(--navy); }
.mcard .m-role { font-family: var(--f-head); font-weight: 600; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--navy); line-height: 1.65; }
.mcard .m-view { display: inline-flex; align-items: center; gap: 9px; margin-top: 16px; font-family: var(--f-head); font-weight: 600; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--grey-2); transition: color .4s var(--ease), gap .4s var(--ease); }
.mcard .m-view::after { content: ""; width: 20px; height: 1px; background: currentColor; transition: width .4s var(--ease); }
.mcard:hover .m-view { color: var(--navy); gap: 13px; }
.mcard:hover .m-view::after { width: 30px; }
@media (max-width: 940px) { .team-grid { grid-template-columns: 1fr 1fr; gap: clamp(28px,4vw,44px); } }
@media (max-width: 520px) { .team-grid { grid-template-columns: 1fr; max-width: 340px; margin: 0 auto; } }

/* Lightbox / Profil-Overlay (Detail erst nach Klick) */
.lb { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: clamp(20px, 5vw, 64px); opacity: 0; visibility: hidden; transition: opacity .55s var(--ease), visibility .55s; }
.lb.open { opacity: 1; visibility: visible; }
.lb-back { position: absolute; inset: 0; background: rgba(10,10,10,.5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.lb-panel { position: relative; z-index: 2; background: #fff; width: 100%; max-width: 880px; max-height: 86vh; overflow: hidden; padding: 0; transform: translateY(24px); transition: transform .6s var(--ease); }
/* Lightbox mit Porträt: Bild links volle Höhe (1/3 Breite), Bio rechts */
.lb-content { display: flex; gap: 0; align-items: stretch; }
.lb-figure { flex: 0 0 41.5%; margin: 0; overflow: hidden; background: var(--paper-2); position: relative; min-height: 100%; }
.lb-figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(var(--pz, 1)) translateY(var(--pty, 0)); transform-origin: center 18%; }
.lb-figure .ph-mono { position: absolute; inset: 0; }
.lb-figure::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,.55); pointer-events: none; z-index: 2; }
.lb-text { flex: 1 1 auto; min-width: 0; padding: clamp(38px, 5vw, 72px) clamp(30px, 4vw, 64px); max-height: 86vh; overflow-y: auto; }
@media (max-width: 640px) { .lb-content { flex-direction: column; align-items: stretch; text-align: center; } .lb-figure { flex-basis: auto; width: 100%; min-height: 0; aspect-ratio: 16/10; } .lb-figure img { position: absolute; } .lb-text { max-height: none; } .lb-text .dotsep.left { margin-left: auto; margin-right: auto; } }
.lb.open .lb-panel { transform: none; }
.lb-close { position: absolute; top: 22px; right: 26px; background: none; border: 0; font-size: 26px; line-height: 1; color: var(--grey); cursor: pointer; transition: color .3s var(--ease), transform .45s var(--ease); }
.lb-close:hover { color: var(--navy); transform: rotate(90deg); }
.lb-panel h3 { font-size: clamp(24px, 2.8vw, 34px); letter-spacing: .05em; margin-bottom: 16px; }
.lb-role { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--navy); line-height: 1.85; }
.lb-panel .dotsep { margin: 24px 0; }
.lb-panel p { font-size: 15px; line-height: 1.95; color: var(--grey); }
.lb-panel p + p { margin-top: 16px; }

/* --- Leistungen: editoriale Index-Liste statt Kacheln --- */
.svc-index { border-top: 1px solid var(--line); }
.svc-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: clamp(20px, 3vw, 54px); align-items: center; padding: clamp(28px, 3.4vw, 48px) 0; border-bottom: 1px solid var(--line); transition: padding-left .55s var(--ease), background .4s var(--ease); }
.svc-row .num { font-family: var(--f-head); font-weight: 300; font-size: clamp(14px, 1.4vw, 17px); letter-spacing: .12em; color: var(--grey-2); transition: color .4s var(--ease); }
.svc-row h3 { font-size: clamp(21px, 2.7vw, 36px); letter-spacing: .03em; margin-bottom: 10px; transition: color .45s var(--ease); }
.svc-row .desc { font-size: 14px; line-height: 1.85; color: var(--grey-2); max-width: 62ch; }
.svc-row .go { font-family: var(--f-head); font-weight: 600; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--navy); white-space: nowrap; opacity: 0; transform: translateX(-12px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.svc-row:hover { padding-left: clamp(12px, 1.8vw, 28px); }
.svc-row:hover .num { color: var(--navy); }
.svc-row:hover h3 { color: var(--navy); }
.svc-row:hover .go { opacity: 1; transform: none; }
@media (max-width: 680px) { .svc-row { grid-template-columns: auto 1fr; } .svc-row .desc { display: none; } .svc-row .go { display: none; } }

/* --- Vertrauen: Bild + Typografie + feine Werteliste (keine Icons) --- */
.trust-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.trust-visual { position: relative; overflow: hidden; min-height: clamp(420px, 46vw, 640px); }
.trust-visual > div { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 1.4s var(--ease); }
.trust-split:hover .trust-visual > div { transform: scale(1.04); }
.trust-visual::after { content: ""; position: absolute; inset: 26px; border: 1px solid rgba(255,255,255,.55); pointer-events: none; z-index: 2; }
.trust-text { background: var(--navy); display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 5.5vw, 100px); }
.trust-text .eyebrow { color: rgba(255,255,255,.85); }
.trust-text h2 { color: #fff; }
.trust-text .lead { margin-top: 24px; color: rgba(255,255,255,.82); }
.trust-list { list-style: none; margin-top: clamp(30px, 3.6vw, 44px); border-top: 1px solid rgba(255,255,255,.22); }
.trust-list li { font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .09em; font-size: clamp(14px, 1.5vw, 17px); color: rgba(255,255,255,.92); padding: clamp(15px, 1.6vw, 19px) 0; border-bottom: 1px solid rgba(255,255,255,.22); transition: padding-left .45s var(--ease), color .45s var(--ease); }
.trust-list li:hover { padding-left: 14px; color: #fff; }
@media (max-width: 860px) { .trust-split { grid-template-columns: 1fr; } .trust-visual { order: -1; min-height: 300px; } .trust-text { padding: clamp(40px,8vw,64px) var(--pad); } }

.lb-data { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }

/* ============================================================
   KONTAKT — Creative Direction (v148)
   Bild-Hero · überlappender Direktkontakt · Formular-Panel · Karten-Band
   ============================================================ */

/* Direktkontakt-Streifen, überlappt den dunklen Hero */
.k-quick-wrap { position: relative; z-index: 5; margin-top: clamp(-92px, -7vw, -64px); }
.k-quick { display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; border: 1px solid var(--line); box-shadow: 0 26px 60px rgba(10,10,10,.16); }
.k-quick a { position: relative; display: flex; flex-direction: column; gap: 15px; padding: clamp(28px, 3vw, 46px); border-right: 1px solid var(--line); transition: background .45s var(--ease); }
.k-quick a:last-child { border-right: 0; }
.k-quick a:hover { background: var(--paper-2); }
.k-quick a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.k-quick a:hover::after { transform: scaleX(1); }
.k-quick .ic { width: 34px; height: 34px; color: var(--navy); }
.k-quick .ic svg { width:100%; height:100%; stroke: currentColor; fill:none; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.k-quick .kq-label { font-family: var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color: var(--grey-2); }
.k-quick .kq-val { font-family: var(--f-head); font-weight:300; font-size: clamp(18px, 1.7vw, 22px); letter-spacing:.02em; color: var(--ink); line-height:1.3; }
.k-quick .kq-more { margin-top: 4px; font-family: var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color: var(--grey-2); display:inline-flex; align-items:center; gap:10px; transition: color .4s var(--ease), gap .4s var(--ease); }
.k-quick .kq-more::after { content:""; width:22px; height:1px; background: currentColor; transition: width .4s var(--ease); }
.k-quick a:hover .kq-more { color: var(--navy); gap:14px; }
.k-quick a:hover .kq-more::after { width:34px; }
@media (max-width: 780px) {
  .k-quick-wrap { margin-top: clamp(-64px, -11vw, -48px); }
  .k-quick { grid-template-columns: 1fr; }
  .k-quick a { border-right:0; border-bottom:1px solid var(--line); display:grid; grid-template-columns: auto 1fr; column-gap: 22px; row-gap: 4px; align-items:center; padding: 24px clamp(24px,6vw,30px); }
  .k-quick a:last-child { border-bottom:0; }
  .k-quick .ic { grid-row: 1 / span 2; flex-shrink:0; }
  .k-quick .kq-more { display:none; }
}

/* Formular + Kanzlei-Split */
.k-split { display:grid; grid-template-columns: 1.12fr .88fr; gap: clamp(36px, 4.6vw, 76px); align-items: start; }
.k-split .k-head { margin-bottom: clamp(26px, 3vw, 38px); }
.k-split .k-head h2 { margin-top: 18px; }
@media (max-width: 900px) { .k-split { grid-template-columns: 1fr; gap: clamp(44px,7vw,60px); } }

/* Formular-Panel */
.k-form-card { background: transparent; border:0; padding:0; box-shadow:none; }

/* ============================================================
   BLOG — Featured-Post + Filter (v152)
   ============================================================ */
.blog-feat { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,3.8vw,60px); align-items:center; margin-bottom:clamp(48px,6vw,80px); }
.blog-feat .feat-img { position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--paper-2); }
.blog-feat .feat-img > div { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.1s var(--ease); }
.blog-feat:hover .feat-img > div { transform:scale(1.05); }
.blog-feat .feat-img::after { content:""; position:absolute; inset:22px; border:1px solid rgba(255,255,255,.55); pointer-events:none; }
.blog-feat .feat-flag { display:inline-block; font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey-2); margin-bottom:18px; }
.blog-feat .cat { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); }
.blog-feat h2 { font-size:clamp(23px,2.7vw,36px); letter-spacing:.02em; line-height:1.28; margin:14px 0 18px; }
.blog-feat p { color:var(--grey); line-height:1.9; margin-bottom:26px; max-width:54ch; }
.blog-feat .date { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey-2); margin-top:22px; }
@media (max-width:820px){ .blog-feat { grid-template-columns:1fr; } }
.blog-empty { padding:44px 6px; color:var(--grey-2); font-size:15px; }
.cform select { width:100%; border:0; border-bottom:1px solid var(--line); padding:10px 26px 10px 0; font-family:var(--f-body); font-size:15px; color:var(--ink); background:transparent; outline:none; cursor:pointer; transition:border-color .4s; -webkit-appearance:none; appearance:none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23293c74' stroke-width='1.4'><path d='M1 1.5 6 6.5 11 1.5'/></svg>"); background-repeat:no-repeat; background-position: right 1px center; background-size: 12px; }
.cform select:focus { border-color: var(--navy); }
.cform .full { grid-column: 1 / -1; }
.k-check { display:flex; gap:14px; align-items:flex-start; }
.k-check input { -webkit-appearance:none; appearance:none; width:20px; height:20px; border:1px solid var(--grey-2); flex-shrink:0; margin-top:2px; cursor:pointer; position:relative; transition:border-color .3s, background .3s; }
.k-check input:checked { background: var(--navy); border-color: var(--navy); }
.k-check input:checked::after { content:""; position:absolute; left:6px; top:2px; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.k-check input:focus-visible { outline:2px solid var(--navy); outline-offset:2px; }
.k-check label { font-size:12.5px; line-height:1.7; color: var(--grey); letter-spacing:.02em; margin:0; text-transform:none; font-family: var(--f-body); font-weight:400; }
.k-check a { color: var(--navy); text-decoration:underline; text-underline-offset:2px; }
.k-form-foot { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-top: 4px; }
.k-form-foot .note { font-size:12px; color: var(--grey-2); letter-spacing:.02em; max-width: 30ch; }

/* Kanzlei-Aside */
.k-aside dl { border-top: 1px solid var(--line); margin-top: 30px; }
.k-aside .item { padding: 22px 0; border-bottom: 1px solid var(--line); display:grid; grid-template-columns: 26px 1fr; gap: 20px; align-items:start; }
.k-aside .item .ic { width:22px; height:22px; color: var(--navy); margin-top:3px; }
.k-aside .item .ic svg { width:100%; height:100%; stroke:currentColor; fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.k-aside dt { font-family: var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color: var(--grey-2); margin-bottom:6px; }
.k-aside dd { font-size:15.5px; color: var(--ink); line-height:1.7; }
.k-aside dd a:hover { color: var(--navy); }
.k-aside .k-note { margin-top: 30px; padding: 24px 26px; background: var(--paper-2); border-left: 2px solid var(--navy); font-size:14px; line-height:1.8; color: var(--grey); }

/* Graustufen-Karten-Band mit Info-Karte */
.k-map { position: relative; background: var(--paper-2); overflow: hidden; }
.k-map .k-map-frame { width:100%; height: clamp(420px, 48vw, 580px); border:0; display:block; filter: grayscale(1) contrast(1.06); transition: filter .7s var(--ease); }
.k-map:hover .k-map-frame { filter: grayscale(0) contrast(1.02); }
.k-map .wrap { position:absolute; inset:0; display:flex; align-items:center; pointer-events:none; }
.k-map-card { pointer-events:auto; width: min(400px, 84vw); background:#fff; padding: clamp(32px, 3vw, 46px); box-shadow: 0 30px 70px rgba(10,10,10,.22); }
.k-map-card .eyebrow { margin-bottom:16px; }
.k-map-card h3 { font-size: clamp(20px, 2.1vw, 26px); letter-spacing:.06em; margin-bottom:18px; }
.k-map-card address { font-style:normal; font-size:15px; line-height:1.85; color: var(--grey); }
.k-map-card address strong { color: var(--ink); font-weight:600; }
.k-map-card .arrowlink { margin-top: 26px; font-family: var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
@media (max-width: 860px) {
  .k-map { overflow: visible; }
  .k-map .k-map-frame { filter:none; height: clamp(300px, 60vw, 420px); }
  .k-map .wrap { position: static; display:block; }
  .k-map-card { width:auto; box-shadow:none; border:1px solid var(--line); border-top:0; }
}

/* ============================================================
   LANDINGPAGES FACHGEBIETE — Premium-Komponenten (v153)
   Magazin-Look · große Bildflächen · Abwechslung · GEO-Bausteine
   ============================================================ */

/* Trust-Bar (4 Icons) */
.lp-trust { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); }
.lp-trust .it { padding:clamp(28px,3vw,44px) clamp(22px,2.4vw,32px); border-right:1px solid var(--line); transition:background .45s var(--ease); }
.lp-trust .it:last-child { border-right:0; }
.lp-trust .it:hover { background:var(--paper-2); }
.lp-trust .ic { display:block; width:40px; height:40px; color:var(--navy); margin-bottom:20px; }
.lp-trust .ic svg { display:block; width:40px; height:40px; stroke:currentColor; fill:none; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.lp-trust h3 { font-size:15px; letter-spacing:.09em; margin-bottom:10px; }
.lp-trust p { font-size:13.5px; line-height:1.75; color:var(--grey); }
@media(max-width:820px){ .lp-trust{ grid-template-columns:1fr 1fr; } .lp-trust .it:nth-child(2){border-right:0;} .lp-trust .it:nth-child(1),.lp-trust .it:nth-child(2){border-bottom:1px solid var(--line);} }
@media(max-width:480px){ .lp-trust{ grid-template-columns:1fr; } .lp-trust .it{ border-right:0; border-bottom:1px solid var(--line);} .lp-trust .it:last-child{border-bottom:0;} }

/* Fullscreen-Bildband (dezente Parallax) */
.lp-band { position:relative; min-height:clamp(340px,52vh,560px); display:flex; align-items:center; background:#0a0a0a; overflow:hidden; }
.lp-band .bg { position:absolute; inset:0; background-size:cover; background-position:center; background-attachment:fixed; opacity:.5; }
@media(hover:none){ .lp-band .bg{ background-attachment:scroll; } }
.lp-band::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,.25)); }
.lp-band .wrap { position:relative; z-index:2; }
.lp-band .eyebrow { color:rgba(255,255,255,.85); }
.lp-band-q { font-family:var(--f-head); font-weight:300; text-transform:none; font-size:clamp(22px,3vw,40px); line-height:1.35; color:#fff; max-width:20ch; margin-top:18px; letter-spacing:.01em; }
.lp-band-q b { font-weight:600; }

/* Bild/Text-Split, alternierend */
.lp-split { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.lp-split-img { position:relative; overflow:hidden; min-height:clamp(360px,42vw,600px); background:var(--paper-2); }
.lp-split-img > div { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.3s var(--ease); }
.lp-split:hover .lp-split-img > div { transform:scale(1.05); }
.lp-split-img::after { content:""; position:absolute; inset:24px; border:1px solid rgba(255,255,255,.5); pointer-events:none; }
.lp-split-body { display:flex; flex-direction:column; justify-content:center; padding:clamp(40px,5.5vw,96px); }
.lp-split.rev .lp-split-img { order:2; }
.lp-split-body h2 { font-size:clamp(24px,2.6vw,36px); margin:16px 0 20px; letter-spacing:.02em; }
.lp-split-body p { color:var(--grey); line-height:1.95; }
.lp-split-body p + p { margin-top:16px; }
.lp-split-body .btn { margin-top:32px; align-self:flex-start; }
.lp-split.dark { background:var(--navy); }
.lp-split.dark .lp-split-body .eyebrow { color:rgba(255,255,255,.85); }
.lp-split.dark .lp-split-body h2 { color:#fff; }
.lp-split.dark .lp-split-body p { color:rgba(255,255,255,.85); }
@media(max-width:860px){ .lp-split{ grid-template-columns:1fr; } .lp-split.rev .lp-split-img{ order:0; } .lp-split-img{ min-height:300px; } .lp-split-body{ padding:clamp(36px,7vw,56px) var(--pad); } }

/* Langtext / GEO-Fließtext */
.lp-rich { max-width:74ch; }
.lp-rich h2 { font-size:clamp(22px,2.4vw,30px); letter-spacing:.02em; margin:clamp(40px,4vw,60px) 0 18px; }
.lp-rich h2:first-child { margin-top:0; }
.lp-rich h3 { font-family:var(--f-head); font-weight:600; text-transform:none; font-size:clamp(18px,1.9vw,22px); letter-spacing:.01em; color:var(--ink); margin:34px 0 12px; }
.lp-rich p { color:var(--grey); line-height:1.95; margin-bottom:16px; }
.lp-rich ul { margin:8px 0 20px; padding:0; }
.lp-rich ul li { position:relative; padding-left:26px; margin-bottom:10px; color:var(--grey); line-height:1.75; }
.lp-rich ul li::before { content:""; position:absolute; left:0; top:11px; width:9px; height:9px; border:1px solid var(--navy); background:transparent; }
.lp-rich strong { color:var(--ink); font-weight:600; }
.lp-rich a { color:var(--navy); text-decoration:underline; text-underline-offset:2px; }

/* Callout-Box */
.lp-callout { background:var(--paper-2); border-left:3px solid var(--navy); padding:clamp(22px,2.6vw,32px); margin:28px 0; }
.lp-callout .k-label { display:block; font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--navy); margin-bottom:10px; }
.lp-callout p { margin:0; color:var(--ink); }

/* GEO-Tabelle */
.lp-table { width:100%; border-collapse:collapse; margin:24px 0; font-size:14.5px; }
.lp-table th, .lp-table td { text-align:left; padding:14px 16px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.6; }
.lp-table th { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--grey-2); }
.lp-table td:first-child { color:var(--ink); font-weight:500; white-space:nowrap; }
.lp-table tr:hover td { background:var(--paper-2); }

/* Vor/Nachteile zweispaltig */
.lp-pros { display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,26px); margin:24px 0; }
.lp-pros .col { border:1px solid var(--line); padding:clamp(22px,2.4vw,30px); }
.lp-pros .col h4 { font-size:13px; letter-spacing:.1em; margin-bottom:16px; }
.lp-pros .col.plus h4 { color:var(--navy); }
.lp-pros .col li { list-style:none; padding-left:24px; position:relative; margin-bottom:10px; font-size:14px; line-height:1.65; color:var(--grey); }
.lp-pros .col.plus li::before { content:"+"; position:absolute; left:0; color:var(--navy); font-weight:700; }
.lp-pros .col.minus li::before { content:"–"; position:absolute; left:0; color:var(--grey-2); font-weight:700; }
@media(max-width:640px){ .lp-pros{ grid-template-columns:1fr; } }

/* Typische Fälle — Cards */
.lp-cases { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2vw,28px); }
.lp-case { position:relative; overflow:hidden; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); padding:clamp(28px,3vw,44px); transition:transform .6s var(--ease), box-shadow .5s var(--ease); }
.lp-case::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--navy); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.lp-case:hover { transform:translateY(-6px); box-shadow:0 18px 44px rgba(10,10,10,.10); }
.lp-case:hover::after { transform:scaleX(1); }
.lp-case .tag { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--grey-2); margin-bottom:14px; }
.lp-case h3 { font-size:clamp(18px,1.9vw,22px); line-height:1.35; margin-bottom:14px; }
.lp-case p { font-size:14px; line-height:1.85; color:var(--grey); margin-bottom:22px; }
.lp-case .arrowlink { margin-top:auto; align-self:flex-start; font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
@media(max-width:640px){ .lp-cases{ grid-template-columns:1fr; } }

/* Leistungs-Kacheln (Checkliste) */
.lp-services { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.lp-svc { display:flex; align-items:center; gap:18px; padding:clamp(24px,2.6vw,34px); border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .45s var(--ease), padding-left .45s var(--ease); }
.lp-svc:hover { background:var(--paper-2); padding-left:calc(clamp(24px,2.6vw,34px) + 8px); }
.lp-svc .ck { flex-shrink:0; width:26px; height:26px; color:var(--navy); }
.lp-svc .ck svg { width:100%; height:100%; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.lp-svc h3 { font-size:15px; letter-spacing:.06em; }
.lp-svc p { font-size:13px; color:var(--grey-2); margin-top:4px; letter-spacing:.02em; }
@media(max-width:820px){ .lp-services{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .lp-services{ grid-template-columns:1fr; } }

/* Timeline (5 Schritte) */
.lp-timeline { display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(16px,2vw,28px); position:relative; }
.lp-timeline::before { content:""; position:absolute; top:20px; left:6%; right:6%; height:1px; background:var(--line); z-index:0; }
.lp-step { position:relative; z-index:1; text-align:center; }
.lp-step .n { width:42px; height:42px; margin:0 auto 20px; border:1px solid var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--paper); font-family:var(--f-head); font-weight:300; font-size:16px; color:var(--navy); transition:background .5s var(--ease), color .5s var(--ease); }
.lp-timeline.in .lp-step .n, .lp-step:hover .n { background:var(--navy); color:#fff; }
.lp-step h3 { font-size:14px; letter-spacing:.08em; margin-bottom:8px; }
.lp-step p { font-size:13px; line-height:1.7; color:var(--grey); max-width:22ch; margin:0 auto; }
@media(max-width:820px){ .lp-timeline{ grid-template-columns:1fr; gap:0; } .lp-timeline::before{ display:none; } .lp-step{ text-align:left; display:grid; grid-template-columns:42px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); align-items:start; } .lp-step .n{ margin:0; } .lp-step p{ margin:0; max-width:none; } }

/* Downloads */
.lp-dl { border-top:1px solid var(--line); max-width:860px; }
.lp-dl a { display:flex; align-items:center; gap:22px; padding:24px 6px; border-bottom:1px solid var(--line); transition:padding-left .4s var(--ease), background .4s var(--ease); }
.lp-dl a:hover { padding-left:18px; background:var(--paper-2); }
.lp-dl .ic { width:26px; height:26px; color:var(--navy); flex-shrink:0; }
.lp-dl .ic svg { width:100%; height:100%; stroke:currentColor; fill:none; stroke-width:1.3; }
.lp-dl .t { flex:1; }
.lp-dl .t h3 { font-size:15px; letter-spacing:.04em; margin-bottom:3px; }
.lp-dl .t span { font-size:12px; color:var(--grey-2); letter-spacing:.05em; }
.lp-dl .get { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey-2); white-space:nowrap; }
.lp-dl a:hover .get { color:var(--navy); }

/* Aktuelle Urteile (Beiträge) — kompakt */
.lp-posts { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,28px); }
.lp-post { border:1px solid var(--line); padding:clamp(24px,2.6vw,34px); transition:transform .5s var(--ease), box-shadow .5s var(--ease); display:flex; flex-direction:column; }
.lp-post:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(10,10,10,.09); }
.lp-post .cat { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); margin-bottom:14px; }
.lp-post h3 { font-size:16px; line-height:1.4; margin-bottom:14px; }
.lp-post .date { margin-top:auto; font-size:12px; color:var(--grey-2); letter-spacing:.04em; }
@media(max-width:820px){ .lp-posts{ grid-template-columns:1fr; } }

/* Kontaktband */
.lp-contact { background:var(--navy); }
.lp-contact .eyebrow { color:rgba(255,255,255,.85); }
.lp-contact h2 { color:#fff; }
.lp-contact p { color:rgba(255,255,255,.85); }
.lp-contact .lp-c-rows { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.18); margin-top:clamp(30px,3.5vw,46px); }
.lp-contact .lp-c-rows a { background:var(--navy); padding:clamp(24px,2.8vw,38px); display:flex; flex-direction:column; gap:10px; transition:background .4s var(--ease); }
.lp-contact .lp-c-rows a:hover { background:#22315f; }
.lp-contact .lp-c-rows .l { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.lp-contact .lp-c-rows .v { font-family:var(--f-head); font-weight:300; font-size:clamp(17px,1.6vw,20px); color:#fff; }
@media(max-width:720px){ .lp-contact .lp-c-rows{ grid-template-columns:1fr; } }

/* ============================================================
   RECHTSGEBIETE-HUB — zentrale Übersichtsseite (v154)
   ============================================================ */
/* Kennzahlen */
.rg-stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.rg-stats .st { padding:clamp(30px,3.4vw,48px) clamp(22px,2.4vw,34px); border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.rg-stats .n { font-family:var(--f-head); font-weight:300; font-size:clamp(30px,3.6vw,52px); line-height:1; letter-spacing:.03em; color:var(--ink); }
.rg-stats .n em { font-style:normal; color:var(--navy); }
.rg-stats .l { margin-top:14px; font-size:13.5px; line-height:1.6; color:var(--grey); }
@media(max-width:760px){ .rg-stats{ grid-template-columns:1fr 1fr; } }

/* Große Rechtsgebiets-Karten mit Bild */
.rg-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,32px); }
.rg-card { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); overflow:hidden; transition:transform .6s var(--ease), box-shadow .5s var(--ease); }
.rg-card:hover { transform:translateY(-7px); box-shadow:0 22px 50px rgba(10,10,10,.12); }
.rg-card .ph { position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--paper-2); }
.rg-card .ph > div { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.1s var(--ease); }
.rg-card:hover .ph > div { transform:scale(1.06); }
.rg-card .ph .ico { position:absolute; left:20px; bottom:20px; width:46px; height:46px; background:#fff; display:flex; align-items:center; justify-content:center; color:var(--navy); box-shadow:0 8px 20px rgba(10,10,10,.18); }
.rg-card .ph .ico svg { width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.rg-card .bd { display:flex; flex-direction:column; flex:1; padding:clamp(26px,2.8vw,38px); }
.rg-card .num { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.2em; color:var(--grey-2); margin-bottom:12px; }
.rg-card h3 { font-size:clamp(18px,1.9vw,22px); line-height:1.3; letter-spacing:.02em; margin-bottom:14px; }
.rg-card p { font-size:14px; line-height:1.85; color:var(--grey); margin-bottom:20px; }
.rg-card .rel { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); font-size:12px; color:var(--grey-2); line-height:1.7; }
.rg-card .rel b { display:block; font-family:var(--f-head); font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey-2); margin-bottom:6px; }
.rg-card .rel a { color:var(--navy); }
.rg-card .more { margin-top:16px; font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); display:inline-flex; align-items:center; gap:10px; }
.rg-card .more::after { content:""; width:22px; height:1px; background:currentColor; transition:width .4s var(--ease); }
.rg-card:hover .more::after { width:34px; }
@media(max-width:900px){ .rg-cards{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .rg-cards{ grid-template-columns:1fr; } }

/* Entscheidungshilfe */
.rg-decide { border-top:1px solid var(--line); }
.rg-drow { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:clamp(16px,3vw,40px); padding:clamp(22px,2.6vw,32px) 6px; border-bottom:1px solid var(--line); transition:padding-left .45s var(--ease), background .4s var(--ease); }
.rg-drow:hover { padding-left:16px; background:var(--paper-2); }
.rg-drow .sit { font-family:var(--f-head); font-weight:300; text-transform:none; font-size:clamp(16px,1.7vw,21px); color:var(--ink); }
.rg-drow .arw { color:var(--grey-2); font-size:18px; }
.rg-drow .area { font-family:var(--f-head); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); white-space:nowrap; display:inline-flex; align-items:center; gap:10px; }
.rg-drow:hover .area::after { content:"→"; }
@media(max-width:640px){ .rg-drow{ grid-template-columns:1fr; gap:8px; } .rg-drow .arw{ display:none; } .rg-drow .area{ font-size:11px; } }

/* Themen-Chips (Mandanten suchen häufig / verwandt) */
.rg-topics { display:flex; flex-wrap:wrap; gap:12px; }
.rg-topics a { font-family:var(--f-head); font-weight:600; font-size:12px; letter-spacing:.06em; color:var(--ink); border:1px solid var(--line); padding:12px 20px; transition:all .4s var(--ease); }
.rg-topics a:hover { border-color:var(--navy); color:var(--navy); background:var(--paper-2); }

/* Häufige Irrtümer */
.rg-myth { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2vw,26px); }
.rg-mcard { border:1px solid var(--line); padding:clamp(24px,2.6vw,34px); }
.rg-mcard .mi { font-family:var(--f-head); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey-2); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.rg-mcard .mi::before { content:"✕"; color:#b23; font-weight:700; }
.rg-mcard h3 { font-size:16px; line-height:1.4; margin-bottom:14px; color:var(--ink); }
.rg-mcard .fact { font-size:14px; line-height:1.85; color:var(--grey); padding-top:14px; border-top:1px solid var(--line); }
.rg-mcard .fact::before { content:"Richtig ist: "; font-weight:600; color:var(--navy); }
@media(max-width:640px){ .rg-myth{ grid-template-columns:1fr; } }

/* Wissen kompakt (Q&A-Blöcke) */
.rg-know { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3vw,44px) clamp(30px,4vw,64px); }
.rg-know .qa h3 { font-family:var(--f-head); font-weight:600; text-transform:none; font-size:18px; letter-spacing:.01em; color:var(--ink); margin-bottom:10px; }
.rg-know .qa p { font-size:14.5px; line-height:1.9; color:var(--grey); }
@media(max-width:760px){ .rg-know{ grid-template-columns:1fr; } }

/* Sticky Termin-Button */
.rg-sticky { position:fixed; right:clamp(16px,2.5vw,32px); bottom:clamp(16px,2.5vw,32px); z-index:60; background:var(--navy); color:#fff; font-family:var(--f-head); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; padding:16px 26px; box-shadow:0 14px 34px rgba(41,60,116,.4); opacity:0; transform:translateY(20px); pointer-events:none; transition:opacity .5s var(--ease), transform .5s var(--ease), background .3s; }
.rg-sticky.show { opacity:1; transform:none; pointer-events:auto; }
.rg-sticky:hover { background:#22315f; }
@media(max-width:520px){ .rg-sticky{ left:16px; right:16px; text-align:center; } }

/* ============================================================
   FACHTEXT 2-spaltig (v155) — Fix „halber leerer Bildschirm"
   Sticky-Titel links, Fließtext rechts füllt die Breite
   ============================================================ */
.section > .wrap:has(> .lp-rich){ display:grid; grid-template-columns:minmax(200px,290px) minmax(0,72ch); justify-content:center; gap:clamp(34px,5vw,86px); align-items:start; }
.section > .wrap:has(> .lp-rich) > .rv:first-child{ position:sticky; top:104px; margin-bottom:0 !important; max-width:none !important; }
.section > .wrap:has(> .lp-rich) > .lp-rich{ max-width:none; }
@media(max-width:900px){
  .section > .wrap:has(> .lp-rich){ display:block; }
  .section > .wrap:has(> .lp-rich) > .rv:first-child{ position:static; margin-bottom:clamp(28px,5vw,40px) !important; }
}

/* ============================================================
   LEISTUNGSÜBERSICHT (v156) — rechtsgebiete.html
   Alternierende Bild-Karten · Vertrauen · Prozess
   Nutzt Systemvariablen, .rv-Reveal (app.js), Innenrahmen-Signatur
   ============================================================ */

/* Einleitung, ruhig zentriert */
.lu-intro { max-width: 820px; margin: 0 auto; text-align: center; }
.lu-intro .lead { max-width: none; }
.lu-intro .dotsep { margin: 30px auto 0; }

/* Kartenfolge: großzügige vertikale Rhythmik */
.lu-list { display: flex; flex-direction: column; gap: clamp(72px, 8vw, 132px); padding: clamp(72px, 8vw, 124px) 0; }

/* Kopfzeile jeder Karte: Nummer + Label links, Icon rechts */
.lu-kicker { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: clamp(22px, 2.4vw, 30px); }
.lu-kicker .kn { display: inline-flex; align-items: baseline; gap: 14px; }
.lu-kicker .kn b { font-family: var(--f-head); font-weight: 300; font-size: clamp(24px, 2.4vw, 34px); letter-spacing: .08em; color: var(--navy); line-height: 1; }
.lu-kicker .kn span { font-family: var(--f-head); font-weight: 600; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--grey-2); }
.lu-ico { width: clamp(38px, 3.4vw, 46px); height: clamp(38px, 3.4vw, 46px); color: var(--navy); flex-shrink: 0; }
.lu-ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }

/* Split-Karten: Bild bis zum Bildschirmrand, Text daneben, alternierend */
.lu-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.lu-media { position: relative; overflow: hidden; min-height: clamp(420px, 42vw, 620px); background: var(--paper-2); }
.lu-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.lu-split:hover .lu-media img { transform: scale(1.05); }
.lu-media::after { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(255,255,255,.6); pointer-events: none; z-index: 2; }
.lu-split.rev .lu-media { order: 2; }
.lu-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(44px, 5.5vw, 104px); background: #fff; }
.lu-split.tint .lu-body { background: var(--paper-2); }
.lu-body h2 { font-size: clamp(22px, 2.3vw, 32px); line-height: 1.35; }
.lu-body .dotsep { margin: 22px 0 0; }
.lu-body p { margin: 24px 0 0; font-size: 14.5px; line-height: 2; color: var(--grey); max-width: 58ch; }
.lu-body .btn { margin-top: clamp(28px, 3vw, 38px); align-self: flex-start; }
.lu-rel { margin-top: 20px; font-size: 12.5px; letter-spacing: .04em; color: var(--grey-2); }
.lu-rel a { color: var(--navy); }
.lu-rel a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Doppel-Karten: zwei Rechtsgebiete nebeneinander */
.lu-duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 44px); }
.lu-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); overflow: hidden; transition: transform .55s var(--ease), box-shadow .55s var(--ease); }
.lu-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); z-index: 3; }
.lu-card:hover { transform: translateY(-8px); box-shadow: 0 24px 54px rgba(10,10,10,.12); }
.lu-card:hover::after { transform: scaleX(1); }
.lu-cmedia { position: relative; overflow: hidden; aspect-ratio: 16/10; background: var(--paper-2); }
.lu-cmedia img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.lu-card:hover .lu-cmedia img { transform: scale(1.06); }
.lu-cbody { display: flex; flex-direction: column; flex: 1; padding: clamp(30px, 3.4vw, 54px); }
.lu-cbody .lu-kicker { margin-bottom: 18px; }
.lu-cbody h2 { font-size: clamp(19px, 1.9vw, 25px); line-height: 1.4; }
.lu-cbody p { margin: 18px 0 28px; font-size: 14px; line-height: 1.95; color: var(--grey); }
.lu-cbody .btn { margin-top: auto; align-self: flex-start; }

/* Große Panorama-Karte: Bild volle Breite, weißes Panel ragt hinein */
.lu-wmedia { position: relative; overflow: hidden; height: clamp(400px, 48vw, 620px); }
.lu-wmedia img { width: 100%; height: 100%; object-fit: cover; }
/* Kein Innenrahmen bei der Panorama-Variante: das überlappende Panel würde ihn abschneiden */
.lu-wide-panel { position: relative; z-index: 5; background: #fff; max-width: 720px; padding: clamp(36px, 4.5vw, 68px); margin-top: clamp(-160px, -12vw, -96px); box-shadow: 0 26px 60px rgba(10,10,10,.13); }
.lu-wide-panel h2 { font-size: clamp(21px, 2.2vw, 30px); line-height: 1.35; }
.lu-wide-panel p { margin: 20px 0 0; font-size: 14.5px; line-height: 2; color: var(--grey); }
.lu-wide-panel .btn { margin-top: clamp(26px, 3vw, 36px); }

/* Vertrauen: großes Bild, Panel mit 6 Vorteilen ragt hinein */
.lu-trust-media { position: relative; overflow: hidden; height: clamp(380px, 46vw, 580px); }
.lu-trust-media img { width: 100%; height: 100%; object-fit: cover; }
.lu-trust-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.32)); }
.lu-trust-panel { position: relative; z-index: 5; background: #fff; margin-top: clamp(-130px, -10vw, -80px); padding: clamp(40px, 5vw, 76px) clamp(28px, 4vw, 68px); box-shadow: 0 26px 60px rgba(10,10,10,.14); }
.lu-trust-panel .lead { max-width: 62ch; margin-top: 22px; }
.lu-vals { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(32px, 3.6vw, 54px) clamp(28px, 3.4vw, 58px); margin-top: clamp(38px, 4.2vw, 56px); }
.lu-val { position: relative; border-top: 1px solid var(--line); padding-top: 22px; }
.lu-val::before { content: ""; position: absolute; top: -1px; left: 0; width: 46px; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .9s var(--ease) var(--d, 0s); }
.lu-val.in::before { transform: scaleX(1); }
.lu-val h3 { font-size: 14px; letter-spacing: .13em; line-height: 1.5; }
.lu-val p { margin-top: 12px; font-size: 13.5px; line-height: 1.9; color: var(--grey); }
.lu-val.rv-1 { transition-delay: .08s; } .lu-val.rv-2 { transition-delay: .16s; }
.lu-val.rv-3 { transition-delay: .24s; } .lu-val.rv-4 { transition-delay: .32s; } .lu-val.rv-5 { transition-delay: .4s; }

/* Ablauf: 4 Schritte, Linie füllt sich nacheinander */
.lu-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(28px, 3.2vw, 48px); }
.lu-step { position: relative; padding-top: 28px; }
.lu-step::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--line); }
.lu-step::after { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .9s var(--ease) var(--d, 0s); }
.lu-step.in::after { transform: scaleX(1); }
.lu-step:nth-child(1) { --d: 0s; } .lu-step:nth-child(2) { --d: .35s; }
.lu-step:nth-child(3) { --d: .7s; } .lu-step:nth-child(4) { --d: 1.05s; }
.lu-step .n { font-family: var(--f-head); font-weight: 300; font-size: clamp(30px, 3.4vw, 48px); letter-spacing: .06em; line-height: 1; color: var(--grey-2); transition: color .8s var(--ease) var(--d, 0s); }
.lu-step.in .n { color: var(--navy); }
.lu-step h3 { margin-top: 16px; font-size: 15px; letter-spacing: .14em; }
.lu-step p { margin-top: 12px; font-size: 13.5px; line-height: 1.9; color: var(--grey); max-width: 32ch; }

@media (max-width: 980px) {
  .lu-split { grid-template-columns: 1fr; }
  .lu-split.rev .lu-media { order: 0; }
  .lu-media { min-height: clamp(260px, 54vw, 420px); }
  .lu-body { padding: clamp(34px, 6vw, 56px) var(--pad); }
  .lu-duo { grid-template-columns: 1fr; }
  .lu-vals { grid-template-columns: 1fr 1fr; }
  .lu-process { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .lu-wide-panel { max-width: none; margin-top: clamp(-90px, -10vw, -60px); }
}
@media (max-width: 600px) {
  .lu-vals { grid-template-columns: 1fr; }
  .lu-process { grid-template-columns: 1fr; }
  .lu-list { gap: clamp(56px, 12vw, 80px); }
}

/* Weitere Leistungen — minimalistische Kacheln mit Icon (v159) */
.lu-others { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; border-top: 1px solid var(--line); }
.lu-others a { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; text-align: center; min-height: clamp(140px, 13vw, 180px); padding: clamp(28px, 3vw, 42px) clamp(14px, 1.5vw, 22px); background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-family: var(--f-head); font-weight: 300; text-transform: uppercase; letter-spacing: .1em; font-size: clamp(12.5px, 1.05vw, 15px); line-height: 1.55; color: var(--ink); transition: color .4s var(--ease), background .4s var(--ease); }
.lu-others a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.lu-others .ico { width: clamp(30px, 2.6vw, 38px); height: clamp(30px, 2.6vw, 38px); color: var(--navy); opacity: .8; transition: transform .5s var(--ease), opacity .4s var(--ease); }
.lu-others .ico svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.lu-others .go { font-family: var(--f-head); font-weight: 600; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--navy); opacity: 0; transform: translateY(6px); transition: opacity .45s var(--ease), transform .45s var(--ease); }
.lu-others a:hover { color: var(--navy); background: #faf9f7; }
.lu-others a:hover::after { transform: scaleX(1); }
.lu-others a:hover .ico { transform: translateY(-4px); opacity: 1; }
.lu-others a:hover .go { opacity: 1; transform: none; }
/* Alle Kacheln gleich groß: 7. Kachel = normale Zelle, mittig; linke Rasterlinie an der ersten Kachel je Reihe */
.lu-others a:nth-child(3n+1) { border-left: 1px solid var(--line); }
.lu-others a:nth-child(7) { grid-column: 2; }
@media (max-width: 620px) {
  .lu-others { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lu-others a { min-height: 120px; gap: 14px; }
  .lu-others .go { display: none; }
  .lu-others a:nth-child(3n+1) { border-left: 0; }
  .lu-others a:nth-child(2n+1) { border-left: 1px solid var(--line); }
  .lu-others a:nth-child(7) { grid-column: auto; }
}

/* ============ BERATUNGSSITUATIONEN (Rechtsgebiets-Seiten) ============ */
.lu-cases { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var(--line); max-width: 58ch; }
.lu-cases .lc-label { display: block; font-family: var(--f-head); font-weight: 600; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--navy); }
.lu-cases ul { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 13px; }
.lu-cases li { position: relative; padding-left: 24px; font-size: 14px; line-height: 1.85; color: var(--grey); }
.lu-cases li::before { content: ""; position: absolute; left: 0; top: .82em; width: 12px; height: 1px; background: var(--navy); opacity: .75; }
.lu-cases li b { font-weight: 600; color: var(--ink); }
.lu-body .lu-cases + .btn, .lu-cbody .lu-cases + .btn { margin-top: 28px; }
.lu-cbody .lu-cases { max-width: none; }
@media (max-width: 620px) { .lu-cases li { font-size: 13.5px; } }
