/* ================================================================
   LAUENBURG & KOLLEGEN — Complete Design System
   ================================================================ */

/* ── 1. Variables ─────────────────────────────────────────────── */
:root {
  --navy:    #0a1628;
  --navy-mid:#1a2d4a;
  --navy-bg: #0d1b2e;
  --gold:    #c9a84c;
  --gold-l:  #d4b870;
  --surface: #f8f8f6;
  --white:   #ffffff;
  --text:    #0a1628;
  --muted:   #000000;

  --font-display: 'Calibri', 'Gill Sans MT', 'Gill Sans', 'Trebuchet MS', Arial, sans-serif;
  --font-body:    'Calibri', 'Gill Sans MT', 'Gill Sans', 'Trebuchet MS', Arial, sans-serif;

  --container: 88rem;
  --px: clamp(1.5rem, 4vw, 4rem);
  --transition: 0.35s cubic-bezier(.22,1,.36,1);
}

/* ── 2. Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; font-size: 18px; }
img, video { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; border: none; background: none; font: inherit; }
ul, ol { list-style: none; }
address { font-style: normal; }
::selection { background: #c9a84c33; color: var(--navy); }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* ── 3. Base Typography ───────────────────────────────────────── */
body {
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--text);
  background: #fff;
  line-height: 1.65;
  letter-spacing: 0.01em;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 300;
  line-height: 1.08;
}

/* ── 4. Layout helpers ────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--px);
}

.section { padding-block: clamp(4rem, 8vw, 7rem); }

/* ── 5. Design Components ─────────────────────────────────────── */

/* Gold horizontal rule */
.gold-rule {
  display: block;
  height: 1px;
  width: 3rem;
  background: var(--gold);
}
.gold-rule--full { width: 100%; }
.gold-rule--med  { width: 6rem; }

/* Section label */
.section-label {
  display: block;
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  transition: all var(--transition);
  cursor: pointer;
  border-radius: 0;
}
.btn-primary {
  background: var(--navy);
  color: #fff;
  border: 1px solid var(--navy);
}
.btn-primary:hover {
  background: transparent;
  color: var(--navy);
  border-color: var(--gold);
}
.btn-secondary {
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--navy);
}
.btn-secondary:hover {
  background: var(--navy);
  color: #fff;
}
.btn-ghost {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
}
.btn-ghost:hover {
  border-color: var(--gold);
  background: rgba(201,168,76,.12);
}
.btn-gold {
  background: var(--gold);
  color: var(--navy);
  border: 1px solid var(--gold);
  font-weight: 500;
}
.btn-gold:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

/* Arrow link */
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .72rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-family: var(--font-body);
  color: var(--navy);
  transition: gap var(--transition), color var(--transition);
}
.arrow-link:hover { gap: .9rem; color: var(--gold); }
.arrow-link::after { content: '→'; }

/* Grain overlay */
.grain::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 256px;
  mix-blend-mode: overlay;
}

/* ── 6. HEADER ────────────────────────────────────────────────── */
#header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding-block: 1.5rem;
  transition: background var(--transition), padding var(--transition), box-shadow var(--transition);
}
#header.scrolled {
  background: #fff;
  padding-block: .85rem;
  border-bottom: 1px solid rgba(201,168,76,.3);
  box-shadow: 0 2px 24px rgba(10,22,40,.06);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

/* Logo */
.logo img {
  height: 3rem;
  width: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transition: filter var(--transition);
}
#header.scrolled .logo img { filter: brightness(0); }

/* Desktop nav */
.nav-desktop {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.6vw, 2rem);
}

.nav-item { position: relative; }

.nav-link {
  font-family: var(--font-body);
  font-size: .95rem;
  font-weight: 400;
  letter-spacing: .04em;
  color: #fff;
  display: flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem 0;
  position: relative;
  transition: color var(--transition);
  white-space: nowrap;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}
.nav-link:hover::after { width: 100%; }
#header.scrolled .nav-link { color: var(--navy); }

.nav-chevron {
  font-size: .6rem;
  transition: transform .2s;
  display: inline-block;
}
.nav-item:hover .nav-chevron,
.nav-item.open .nav-chevron { transform: rotate(180deg); }

/* Dropdown */
.dropdown {
  position: absolute;
  top: calc(100% + .75rem);
  left: 0;
  min-width: 17rem;
  background: #fff;
  border-top: 2px solid var(--gold);
  border-left: 2px solid rgba(201,168,76,.25);
  box-shadow: 0 16px 48px rgba(10,22,40,.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .22s, transform .22s, visibility .22s;
  z-index: 200;
}
.nav-item:hover .dropdown,
.nav-item.open .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.dropdown a {
  display: block;
  padding: .75rem 1.25rem;
  font-family: var(--font-body);
  font-size: .95rem;
  color: var(--navy);
  border-bottom: 1px solid rgba(0,0,0,.04);
  transition: background var(--transition), padding-left var(--transition);
}
.dropdown a:last-child { border-bottom: none; }
.dropdown a:hover { background: var(--surface); padding-left: 1.6rem; }

/* Header CTA */
.header-cta {
  font-size: .72rem !important;
  letter-spacing: .13em;
  padding: .58rem 1.15rem;
}

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 4px;
  z-index: 201;
}
.hamburger span {
  display: block;
  width: 22px; height: 1.5px;
  background: #fff;
  transition: all .3s;
}
#header.scrolled .hamburger span { background: var(--navy); }
.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* Mobile menu */
.mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--navy);
  z-index: 199;
  transform: translateX(100%);
  transition: transform .4s cubic-bezier(.22,1,.36,1);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.mobile-menu.open { transform: translateX(0); }
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem var(--px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.mobile-menu-header img {
  height: 2.2rem;
  width: auto;
  max-width: 120px;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}
.close-btn { font-size: 1.4rem; color: #fff; flex-shrink: 0; }
.mobile-nav { padding: 1.5rem var(--px); }
.mobile-nav-item { border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: .9rem 0;
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 4vw, 1.4rem);
  font-weight: 300;
  color: #fff;
}
.mobile-nav-link a {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 4vw, 1.4rem);
  font-weight: 300;
  color: #fff;
}
.mobile-chevron { color: var(--gold); font-size: .8rem; transition: transform .25s; }
.mobile-nav-item.open .mobile-chevron { transform: rotate(180deg); }
.mobile-sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height .28s ease;
  padding-left: 1rem;
  border-left: 2px solid var(--gold);
  margin: 0 0 .5rem 0;
}
.mobile-nav-item.open .mobile-sub { max-height: 40rem; }
.mobile-sub a {
  display: block;
  padding: .55rem 0;
  font-family: var(--font-body);
  font-size: .98rem;
  color: rgba(255,255,255,.65);
  transition: color .2s;
}
.mobile-sub a:hover { color: #fff; }
.mobile-contact {
  padding: 2rem var(--px);
  margin-top: auto;
}
.mobile-contact .btn { width: 100%; justify-content: center; margin-bottom: 1.5rem; }
.mobile-contact p { font-family: var(--font-body); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: .5rem; }
.mobile-contact a { display: block; font-family: var(--font-display); font-size: 1.4rem; color: #fff; }
.mobile-contact small { font-family: var(--font-body); font-size: .8rem; color: rgba(255,255,255,.5); }

/* ── 7. HERO ──────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,22,40,.62);
  z-index: 1;
}
.hero-grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: .03;
  background-image:
    linear-gradient(rgba(201,168,76,1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,1) 1px, transparent 1px);
  background-size: 80px 80px;
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 52rem;
  padding-top: 8rem;
  padding-bottom: 6rem;
}
.hero-label { margin-bottom: 1.5rem; }
.hero-rule  { margin-bottom: 2rem; }
.hero h1 {
  font-size: clamp(2.75rem, 6vw, 5rem);
  color: #fff;
  margin-bottom: 1.5rem;
  line-height: 1.04;
}
.hero-sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,.72);
  max-width: 36rem;
  line-height: 1.7;
  margin-bottom: 2.5rem;
  font-weight: 300;
}
.hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 3.5rem;
}
.hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
}
.hero-stat-value {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 300;
  color: #fff;
  line-height: 1;
}
.hero-stat-label {
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-top: .35rem;
}

/* Scroll indicator */
.scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  color: rgba(255,255,255,.35);
  animation: scrollBounce 2.5s ease-in-out infinite;
}
.scroll-indicator span { font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; font-family: var(--font-body); }
.scroll-indicator-arrow { font-size: .8rem; }
@keyframes scrollBounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(6px); }
}

/* ── 8. Page Hero (sub-pages) ─────────────────────────────────── */
.page-hero {
  position: relative;
  padding-top: clamp(7rem, 12vw, 9rem);
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
  overflow: hidden;
}
.page-hero--navy {
  background: var(--navy);
  position: relative;
}
.page-hero--surface { background: var(--surface); border-bottom: 1px solid rgba(0,0,0,.06); }

.page-hero__bg {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%; height: 100%;
  opacity: .2;
  filter: grayscale(100%);
}

.page-hero__content { position: relative; z-index: 1; }
.page-hero--navy .page-hero__content h1 { color: #fff; }
.page-hero--navy .section-label { color: var(--gold); }
.page-hero--navy p  { color: rgba(255,255,255,.65); }

/* ── 9. SECTIONS ──────────────────────────────────────────────── */

/* Über Uns split */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 6rem); align-items: start; }

/* Image grid */
.img-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.img-grid-item { position: relative; overflow: hidden; }
.img-grid-item:nth-child(2) { margin-top: 2rem; }
.img-grid-item:nth-child(4) { margin-top: -2rem; }
.img-grid-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: top;
  filter: grayscale(0);
  transition: filter .8s, transform .8s;
}
.img-grid-item:hover img { filter: grayscale(100%); transform: scale(1.04); }
.img-grid-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10,22,40,.18);
}
.img-grid-item:nth-child(1) { aspect-ratio: 4/5; }
.img-grid-item:nth-child(2) { aspect-ratio: 1; }
.img-grid-item:nth-child(3) { aspect-ratio: 4/3; }
.img-grid-item:nth-child(4) { aspect-ratio: 1; }

/* Navy section */
.section--navy {
  background: var(--navy);
  color: #fff;
  position: relative;
}
.section--navy .section-label { color: var(--gold); }
.section--navy h2  { color: #fff; }
.section--navy p   { color: rgba(255,255,255,.6); }

/* Surface section */
.section--surface { background: var(--surface); }

/* Strafrecht list */
.strafrecht-list { list-style: none; }
.strafrecht-list li {
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.strafrecht-list li a {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  padding: 1.5rem 0;
  color: #fff;
  transition: padding-left var(--transition);
}
.strafrecht-list li a:hover { padding-left: .5rem; }
.strafrecht-list li a:hover .list-title { color: var(--gold); }
.list-bullet {
  flex-shrink: 0;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold);
  margin-top: .55rem;
  transition: transform .3s;
}
.strafrecht-list li a:hover .list-bullet { transform: scale(1.8); }
.list-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1.3;
  transition: color var(--transition);
}
.list-desc { font-size: .82rem; color: rgba(255,255,255,.45); margin-top: .2rem; }
.list-arrow { margin-left: auto; font-size: .7rem; color: rgba(255,255,255,.2); flex-shrink: 0; align-self: center; transition: color .3s, transform .3s; }
.strafrecht-list li a:hover .list-arrow { color: var(--gold); transform: translateX(4px); }

/* A–Z CTA bar */
.az-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(201,168,76,.3);
  padding: 1.5rem 2rem;
  margin-top: 2rem;
  transition: background var(--transition), border-color var(--transition);
  cursor: pointer;
}
.az-bar:hover { background: rgba(201,168,76,.08); border-color: var(--gold); }
.az-bar-label { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: .3rem; font-family: var(--font-body); }
.az-bar-title { font-family: var(--font-display); font-size: 1.2rem; color: #fff; }
.az-bar-arrow { color: var(--gold); font-size: 1.2rem; transition: transform .3s; }
.az-bar:hover .az-bar-arrow { transform: translateX(6px); }

/* Rechtsgebiet cards */
.rg-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.rg-card {
  display: block;
  background: var(--surface);
  border: 1px solid rgba(0,0,0,.06);
  padding: 2.5rem;
  transition: border-color var(--transition);
  position: relative;
}
.rg-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}
.rg-card:hover::after { width: 100%; }
.rg-card:hover { border-color: rgba(201,168,76,.5); }
.rg-card:hover .rg-title { color: var(--gold); }
.rg-icon {
  width: 5rem; height: 5rem;
  border: 1px solid rgba(201,168,76,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  margin-bottom: 2rem;
  transition: background .3s, border-color .3s;
}
.rg-icon svg { width: 2.5rem; height: 2.5rem; }
.rg-card:hover .rg-icon { background: rgba(201,168,76,.1); border-color: var(--gold); }
.rg-subtitle { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); font-family: var(--font-body); margin-bottom: .75rem; }
.rg-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--navy); margin-bottom: 1rem; transition: color var(--transition); }
.rg-desc { font-size: .98rem; color: var(--muted); line-height: 1.75; margin-bottom: 1.5rem; }
.rg-list { list-style: none; margin-bottom: 2rem; }
.rg-list li {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .82rem;
  color: rgba(10,22,40,.7);
  margin-bottom: .5rem;
}
.rg-list li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--gold); flex-shrink: 0; }

/* ── 10. LAWYER CARDS ─────────────────────────────────────────── */
.lawyers-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem 1.5rem;
}
.lawyer-card { display: block; }
.lawyer-portrait {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--navy-mid);
  margin-bottom: 1.25rem;
}
.lawyer-portrait img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: top;
  filter: grayscale(0);
  transition: filter .8s, transform .8s;
}
.lawyer-card:hover .lawyer-portrait img { filter: grayscale(0); transform: scale(1.05); }
.lawyer-portrait-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,22,40,.65) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .5s;
}
.lawyer-card:hover .lawyer-portrait-overlay { opacity: 1; }
.lawyer-tag {
  position: absolute;
  top: .75rem; right: .75rem;
  width: 2rem; height: 2rem;
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  color: #fff;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .3s, transform .3s;
}
.lawyer-card:hover .lawyer-tag { opacity: 1; transform: translateY(0); }
.lawyer-placeholder {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 300;
  color: rgba(255,255,255,.15);
}
.lawyer-info { position: relative; padding-bottom: 1rem; }
.lawyer-info::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}
.lawyer-card:hover .lawyer-info::after { width: 100%; }
.lawyer-name { font-family: var(--font-display); font-size: 1.1rem; color: var(--navy); line-height: 1.2; margin-bottom: .25rem; }
.lawyer-title { font-size: .75rem; color: var(--muted); letter-spacing: .04em; }

/* ── 11. BLOG CARDS ───────────────────────────────────────────── */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.blog-card { display: block; }
.blog-img {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--surface);
  margin-bottom: 1.5rem;
}
.blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.blog-card:hover .blog-img img { transform: scale(1.05); }
.blog-cat {
  position: absolute;
  top: 1rem; left: 1rem;
  background: var(--gold);
  padding: .3rem .75rem;
  font-family: var(--font-body);
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
}
.blog-body { position: relative; padding-bottom: 1rem; }
.blog-body::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}
.blog-card:hover .blog-body::after { width: 100%; }
.blog-date { font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: .75rem; }
.blog-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--navy);
  line-height: 1.35;
  margin-bottom: .75rem;
  transition: color var(--transition);
}
.blog-card:hover .blog-title { color: var(--gold); }
.blog-excerpt { font-size: .82rem; color: var(--muted); line-height: 1.7; margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.blog-more { font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--navy); display: flex; align-items: center; gap: .4rem; transition: gap .3s, color .3s; }
.blog-card:hover .blog-more { gap: .7rem; color: var(--gold); }
.blog-more::after { content: '→'; }

/* ── 12. MITGLIEDSCHAFTEN ─────────────────────────────────────── */
.members-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
.member-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba(0,0,0,.07);
  min-width: 9rem;
  transition: border-color var(--transition);
  text-align: center;
}
.member-badge:hover { border-color: rgba(201,168,76,.4); }
.member-abbr { font-family: var(--font-display); font-size: 1.5rem; color: rgba(10,22,40,.2); font-weight: 300; }
.member-name { font-size: .68rem; color: var(--muted); line-height: 1.3; max-width: 9rem; }

/* ── 13. KONTAKT SECTION ──────────────────────────────────────── */
.kontakt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 6rem); }
.kontakt-info-item { display: flex; align-items: flex-start; gap: 1.25rem; margin-bottom: 2rem; }
.kontakt-icon {
  width: 2.5rem; height: 2.5rem;
  border: 1px solid rgba(201,168,76,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  color: var(--gold);
  flex-shrink: 0;
}
.kontakt-label { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: .3rem; font-family: var(--font-body); }
.kontakt-value { font-size: 1rem; color: rgba(255,255,255,.8); line-height: 1.65; }
.kontakt-value a { color: rgba(255,255,255,.8); transition: color .2s; }
.kontakt-value a:hover { color: #fff; }

/* Kontakt on white background */
.kontakt--light .kontakt-label { color: var(--gold); }
.kontakt--light .kontakt-value { color: var(--navy); }
.kontakt--light .kontakt-value a { color: var(--navy); }
.kontakt--light .kontakt-value a:hover { color: var(--gold); }
.kontakt--light .kontakt-icon { border-color: rgba(201,168,76,.4); }
.kontakt--light h2 { color: var(--navy) !important; }
.kontakt--light p { color: var(--muted) !important; }
.kontakt--light .section-label { color: var(--gold); }

/* Form */
.form-group { margin-bottom: 1.25rem; }
.form-label {
  display: block;
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin-bottom: .5rem;
  font-family: var(--font-body);
}
.form-input, .form-textarea, .form-select {
  width: 100%;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.18);
  padding: 1rem 1.25rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: #fff;
  outline: none;
  transition: border-color var(--transition);
  border-radius: 0;
  appearance: none;
}
.form-input::placeholder, .form-textarea::placeholder { color: rgba(255,255,255,.2); }
.form-input:focus, .form-textarea:focus, .form-select:focus { border-color: var(--gold); }
.form-textarea { resize: none; height: 130px; }
.form-select option { background: var(--navy); }
.form-file { padding: .8rem 1rem; }
.form-file::file-selector-button {
  margin-right: 1rem;
  border: 1px solid var(--gold);
  background: transparent;
  color: var(--navy);
  padding: .55rem .85rem;
  font: inherit;
  cursor: pointer;
}
.form-help {
  margin-top: .45rem;
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.55;
}
.form-check { display: flex; align-items: flex-start; gap: .75rem; }
.form-check input { width: 1rem; height: 1rem; margin-top: .15rem; accent-color: var(--gold); flex-shrink: 0; }
.form-check label { font-size: .75rem; color: rgba(255,255,255,.35); line-height: 1.5; }
.form-check a { color: var(--gold); }

/* Form on light/white background */
.form--light .form-label { color: var(--muted); }
.form--light .form-input,
.form--light .form-textarea,
.form--light .form-select {
  background: var(--surface);
  border-color: rgba(0,0,0,.15);
  color: var(--navy);
}
.form--light .form-input::placeholder,
.form--light .form-textarea::placeholder { color: rgba(10,22,40,.3); }
.form--light .form-check label { color: var(--muted); }
.form--light .form-select option { background: #fff; }

/* ── 14. QUOTE BLOCK ──────────────────────────────────────────── */
.quote-block {
  border-left: 2px solid var(--gold);
  padding-left: 1.5rem;
  margin-top: 2.5rem;
}
.quote-text {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 300;
  font-style: italic;
  color: rgba(255,255,255,.7);
  line-height: 1.5;
}
.quote-author { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-top: .75rem; font-family: var(--font-body); }

/* ── 15. FOOTER ───────────────────────────────────────────────── */
footer {
  background: var(--navy);
  color: #fff;
  border-top: 2px solid rgba(201,168,76,.3);
}
.footer-main { padding-block: clamp(3.5rem, 7vw, 6rem); }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 3rem; }
.footer-logo { margin-bottom: 1.25rem; }
.footer-logo-wrap { display: flex; flex-direction: column; align-items: center; gap: .1rem; text-decoration: none; }
.footer-logo-wrap img { height: 3rem; width: auto; filter: brightness(0) invert(1); display: block; margin-bottom: .35rem; }
.footer-logo-wrap .logo-names,
.footer-logo-wrap .logo-community { color: rgba(255,255,255,.7); }
.footer-map-wrap { width: 100%; border-top: 1px solid rgba(255,255,255,.06); }
.footer-map { display: block; width: 100%; height: 200px; border: 0; filter: grayscale(70%) brightness(.8); }
.footer-tagline { font-size: .82rem; color: rgba(255,255,255,.45); line-height: 1.7; margin-bottom: 1.5rem; max-width: 18rem; }
.footer-col-title { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); font-family: var(--font-body); margin-bottom: 1.25rem; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: .65rem; }
.footer-links a { font-size: .82rem; color: rgba(255,255,255,.5); transition: color .2s, padding-left .2s; }
.footer-links a:hover { color: #fff; padding-left: .3rem; }
.footer-contact-line { font-size: .82rem; color: rgba(255,255,255,.5); margin-bottom: .4rem; }
.footer-contact-line a { color: rgba(255,255,255,.5); transition: color .2s; }
.footer-contact-line a:hover { color: #fff; }
.footer-bar {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-block: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-copy { font-size: .72rem; color: rgba(255,255,255,.25); }
.footer-legal { display: flex; gap: 1.5rem; }
.footer-legal a { font-size: .72rem; color: rgba(255,255,255,.35); transition: color .2s; }
.footer-legal a:hover { color: rgba(255,255,255,.7); }

/* ── 16. Utility sections ─────────────────────────────────────── */

/* Two column text+image */
.content-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 6rem); align-items: start; }

/* Values grid */
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.value-card { background: #fff; border: 1px solid rgba(0,0,0,.07); padding: 1.5rem; display: flex; align-items: flex-start; gap: .75rem; }
.value-icon { color: var(--gold); flex-shrink: 0; font-size: .9rem; margin-top: .1rem; }
.value-text { font-size: .82rem; color: rgba(10,22,40,.8); line-height: 1.6; }

/* Info box */
.info-box { background: var(--surface); border: 1px solid rgba(0,0,0,.07); padding: 2rem; }

/* Accordion */
.accordion { border: 1px solid rgba(0,0,0,.07); background: #fff; margin-bottom: .5rem; }
.accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--navy);
  user-select: none;
  list-style: none;
}
.accordion-header::-webkit-details-marker { display: none; }
details[open] .accordion-chevron { transform: rotate(180deg); }
.accordion-chevron { transition: transform .25s; font-size: .7rem; color: var(--gold); flex-shrink: 0; }
.accordion-body { padding: 0 1.5rem 1.25rem; border-top: 1px solid rgba(0,0,0,.05); }
.accordion-body p { font-size: .85rem; color: var(--muted); line-height: 1.7; padding-top: 1rem; }

/* Document cards */
.doc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.doc-card { background: #fff; border: 1px solid rgba(0,0,0,.07); padding: 2rem; transition: border-color var(--transition); position: relative; }
.doc-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: var(--gold); transition: width var(--transition); }
.doc-card:hover::after { width: 100%; }
.doc-card:hover { border-color: rgba(201,168,76,.4); }
.doc-icon { width: 3rem; height: 3rem; border: 1px solid rgba(201,168,76,.3); display: flex; align-items: center; justify-content: center; color: var(--gold); font-size: 1.1rem; margin-bottom: 1.5rem; }
.doc-meta { font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--gold); margin-bottom: .5rem; font-family: var(--font-body); }
.doc-title { font-family: var(--font-display); font-size: 1.25rem; color: var(--navy); margin-bottom: .75rem; }
.doc-desc { font-size: .82rem; color: var(--muted); line-height: 1.7; margin-bottom: 1.5rem; flex: 1; }

/* A-Z grid */
.az-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; }
.az-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  border: 1px solid rgba(255,255,255,.1);
  padding: .65rem 1rem;
  font-size: .75rem;
  color: rgba(255,255,255,.55);
  transition: border-color .3s, color .3s, background .3s;
  cursor: pointer;
}
.az-item:hover { border-color: rgba(201,168,76,.5); color: #fff; background: rgba(201,168,76,.06); }
.az-item::before { content: '›'; color: rgba(201,168,76,.4); font-size: .6rem; }

/* Map */
.map-frame { width: 100%; aspect-ratio: 16/10; border: 0; filter: grayscale(100%); }

/* Lawyer hero */
.lawyer-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 70vh; }
.lawyer-hero-img { position: relative; background: var(--navy-mid); overflow: hidden; }
.lawyer-hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: grayscale(0%); }
.lawyer-hero-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,22,40,.55) 0%, transparent 60%); }
.lawyer-hero-content { background: var(--surface); padding: clamp(2.5rem, 5vw, 5rem); display: flex; flex-direction: column; justify-content: center; }
.lawyer-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.lawyer-tag-pill { border: 1px solid rgba(201,168,76,.4); padding: .4rem .9rem; font-size: .68rem; letter-spacing: .1em; color: rgba(10,22,40,.65); font-family: var(--font-body); }
.lawyer-contact-links { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 2rem; }
.lawyer-contact-link { display: flex; align-items: center; gap: .75rem; font-size: .85rem; color: var(--navy); transition: color .2s; }
.lawyer-contact-link:hover { color: var(--gold); }
.lawyer-contact-link span { font-size: .75rem; color: var(--gold); }

/* Expertise list */
.expertise-list { list-style: none; }
.expertise-list li { display: flex; align-items: flex-start; gap: .75rem; font-size: .85rem; color: rgba(10,22,40,.8); margin-bottom: .6rem; }
.expertise-list li::before { content: '✓'; color: var(--gold); flex-shrink: 0; font-size: .75rem; margin-top: .05rem; }

/* Info prose */
.prose p { font-size: 1rem; color: var(--muted); line-height: 1.85; margin-bottom: 1.25rem; font-weight: 300; }
.prose p:last-child { margin-bottom: 0; }
.prose h3 { font-family: var(--font-display); font-size: 1.25rem; color: var(--navy); margin-bottom: .75rem; font-weight: 400; }

/* Blog featured */
.blog-featured { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(0,0,0,.07); margin-bottom: 3rem; transition: border-color .3s; }
.blog-featured:hover { border-color: rgba(201,168,76,.3); }
.blog-featured-img { position: relative; overflow: hidden; background: var(--navy); aspect-ratio: 4/3; }
.blog-featured-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s; filter: grayscale(100%); }
.blog-featured:hover .blog-featured-img img { transform: scale(1.04); filter: grayscale(0); }
.blog-featured-body { padding: clamp(2rem, 4vw, 3.5rem); display: flex; flex-direction: column; justify-content: center; }
.blog-featured-eyebrow { font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin-bottom: 1rem; font-family: var(--font-body); }
.blog-featured-title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); color: var(--navy); line-height: 1.2; margin-bottom: 1rem; transition: color .3s; }
.blog-featured:hover .blog-featured-title { color: var(--gold); }
.blog-featured-excerpt { font-size: .98rem; color: var(--muted); line-height: 1.75; margin-bottom: 1.5rem; }

/* Category filters */
.cat-filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cat-btn {
  font-family: var(--font-body);
  font-size: .68rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: .5rem 1.35rem;
  border: 1px solid rgba(0,0,0,.14);
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s;
  border-radius: 0;
}
.cat-btn:hover { background: var(--surface); color: var(--navy); border-color: rgba(0,0,0,.2); }
.cat-btn--active, .cat-btn.active { background: var(--navy); color: #fff; border-color: var(--navy); }

/* Alert banner */
.alert-bar { background: var(--gold); }
.alert-bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; flex-wrap: wrap; }
.alert-bar-text { font-size: .98rem; color: var(--navy); }
.alert-bar-text strong { font-weight: 500; }

/* CTA sections */
.cta-strip { padding-block: clamp(3rem, 6vw, 5rem); }
.cta-content { text-align: center; max-width: 52rem; margin: 0 auto; }
.cta-btns { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; margin-top: 2.5rem; }

/* Section headers */
.section-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); flex-wrap: wrap; }
.section-header-desc { font-size: .98rem; color: var(--muted); max-width: 20rem; line-height: 1.75; }

/* Practice area tiles */
.practice-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.practice-tile {
  background: #fff;
  padding: 2.25rem 2rem;
  border: 1px solid rgba(0,0,0,.07);
  position: relative;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.practice-tile::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s ease;
}
.practice-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(10,22,40,.09);
  border-color: rgba(201,168,76,.35);
}
.practice-tile:hover::after { transform: scaleX(1); }
.practice-tile .tile-num {
  display: block;
  font-size: .6rem;
  letter-spacing: .2em;
  color: var(--gold);
  font-family: var(--font-body);
  margin-bottom: 1.25rem;
}
.practice-tile h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: .75rem;
  line-height: 1.25;
}
.practice-tile p {
  font-size: .98rem;
  color: var(--muted);
  line-height: 1.75;
  margin-bottom: 1.25rem;
}
.practice-tile .arrow-link { transition: color .3s, gap .3s; }
.practice-tile:hover .arrow-link { color: var(--gold); gap: .9rem; }

/* Legal prose */
.legal-body h2 { font-family: var(--font-display); font-size: 1.35rem; color: var(--navy); margin-bottom: 1rem; margin-top: 2.5rem; font-weight: 400; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body h3 { font-family: var(--font-body); font-size: 1rem; font-weight: 500; color: var(--navy); margin-bottom: .5rem; margin-top: 1.5rem; }
.legal-body p { font-size: 1rem; color: var(--muted); line-height: 1.85; margin-bottom: .75rem; }
.legal-body ul { list-style: disc; padding-left: 1.25rem; margin-bottom: .75rem; }
.legal-body ul li { font-size: 1rem; color: var(--muted); margin-bottom: .25rem; }
.legal-body a { color: var(--navy); text-decoration: underline; }
.legal-body a:hover { color: var(--gold); }

/* ── 16b. HEADER LOGO TAGLINE ─────────────────────────────────── */
.logo-wrap,
.mobile-logo-wrap { display: flex; flex-direction: column; gap: .1rem; }
.logo-names,
.logo-community {
  font-family: var(--font-body);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
  transition: color var(--transition);
}
.logo-community { align-self: center; }
#header.scrolled .logo-names,
#header.scrolled .logo-community { color: rgba(10,22,40,.45); }

/* ── 16c. WHITE HEADER (pages without navy hero) ──────────────── */
body.white-header #header {
  background: #fff;
  border-bottom: 1px solid rgba(201,168,76,.25);
  box-shadow: 0 2px 24px rgba(10,22,40,.05);
}
body.white-header #header .nav-link { color: var(--navy); }
body.white-header #header .hamburger span { background: var(--navy); }
body.white-header #header .logo img { filter: brightness(0); }
body.white-header #header .logo-names,
body.white-header #header .logo-community { color: rgba(10,22,40,.45); }
.mobile-logo-wrap { min-width: 0; flex: 1; overflow: hidden; }
.mobile-logo-wrap .logo-names,
.mobile-logo-wrap .logo-community {
  color: rgba(255,255,255,.55);
  font-size: .54rem;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* ── 16d. PAGE HERO VIDEO ─────────────────────────────────────── */
.page-hero--navy .hero-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  opacity: .15;
}
/* Dark gradient overlay to ensure white text is readable */
.page-hero--navy::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(4,9,15,.45) 0%, rgba(4,9,15,.65) 100%);
  z-index: 1;
  pointer-events: none;
}
.page-hero--navy .page-hero__content { position: relative; z-index: 2; }
/* Large non-wrapping h1 for sub-page heroes */
.page-hero--navy .page-hero__content h1 {
  font-size: clamp(1.4rem, 2.8vw, 2.2rem);
  font-weight: 600;
  line-height: 1.2;
}

/* ── 16e. MEMBERSHIP LOGOS ────────────────────────────────────── */
.member-logo {
  height: 3.5rem;
  width: auto;
  max-width: 9rem;
  object-fit: contain;
  filter: grayscale(0) opacity(1);
  transition: filter var(--transition);
  margin-bottom: .5rem;
}
.member-badge:hover .member-logo { filter: grayscale(100%) opacity(.55); }
.member-abbr-text {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 300;
  color: rgba(10,22,40,.15);
  margin-bottom: .5rem;
  letter-spacing: .05em;
}

/* ── 17. ANIMATIONS ───────────────────────────────────────────── */
[data-animate] {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1);
}
[data-animate].visible { opacity: 1; transform: translateY(0); }
[data-delay="1"] { transition-delay: .1s; }
[data-delay="2"] { transition-delay: .2s; }
[data-delay="3"] { transition-delay: .3s; }
[data-delay="4"] { transition-delay: .4s; }
[data-delay="5"] { transition-delay: .5s; }
[data-delay="6"] { transition-delay: .6s; }

/* Hero animations */
.hero-label  { opacity: 0; transform: translateY(1rem); animation: fadeUp .7s .2s forwards; }
.hero-rule   { opacity: 0; transform: scaleX(0); transform-origin: left; animation: scaleIn .7s .35s forwards; }
.hero h1     { opacity: 0; transform: translateY(1.5rem); animation: fadeUp .9s .4s forwards; }
.hero-sub    { opacity: 0; transform: translateY(1rem); animation: fadeUp .8s .55s forwards; }
.hero-btns   { opacity: 0; transform: translateY(1rem); animation: fadeUp .7s .7s forwards; }
.hero-stats  { opacity: 0; transform: translateY(1rem); animation: fadeUp .7s .85s forwards; }
.scroll-indicator { opacity: 0; animation: fadeIn .8s 1.6s forwards; }

@keyframes fadeUp  { to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn  { to { opacity: 1; } }
@keyframes scaleIn { to { opacity: 1; transform: scaleX(1); } }

/* ── 18. RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 1100px) {
  .lawyers-grid      { grid-template-columns: repeat(3, 1fr); }
  .footer-grid       { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .nav-desktop, .header-cta { display: none; }
  .hamburger { display: flex; }
  .split            { grid-template-columns: 1fr; }
  .content-split    { grid-template-columns: 1fr; }
  .rg-cards         { grid-template-columns: 1fr; }
  .kontakt-grid     { grid-template-columns: 1fr; }
  .blog-featured    { grid-template-columns: 1fr; }
  .lawyer-hero      { grid-template-columns: 1fr; }
  .practice-tiles   { grid-template-columns: 1fr 1fr; }
  .az-grid          { grid-template-columns: repeat(3, 1fr); }
  .img-grid-item:nth-child(2),
  .img-grid-item:nth-child(4) { margin-top: 0; }
}

@media (max-width: 900px) {
  .practice-tiles[style*="repeat(4"] { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 700px) {
  .lawyers-grid     { grid-template-columns: 1fr 1fr; }
  .blog-grid        { grid-template-columns: 1fr; }
  .footer-grid      { grid-template-columns: 1fr; }
  .values-grid      { grid-template-columns: 1fr; }
  .doc-cards        { grid-template-columns: 1fr; }
  .practice-tiles   { grid-template-columns: 1fr !important; }
  .az-grid          { grid-template-columns: repeat(2, 1fr); }
  .cta-content      { flex-direction: column; }
  .hero-stats       { gap: 1.5rem; }
}

@media (max-width: 480px) {
  html { font-size: 17px; }
  .lawyers-grid { grid-template-columns: 1fr; }
  .hero-btns    { flex-direction: column; }
  .az-grid      { grid-template-columns: 1fr 1fr; }
  .logo-names,
  .logo-community { font-size: .52rem; }
  .footer-logo-names,
  .footer-logo-community { font-size: .56rem; }
}

/* Utility */
.text-gold   { color: var(--gold); }
.text-muted  { color: var(--muted); }
.text-white  { color: #fff; }
.text-navy   { color: var(--navy); }
.text-center { text-align: center; }
.mt-2  { margin-top: .5rem;  }
.mt-4  { margin-top: 1rem;   }
.mt-6  { margin-top: 1.5rem; }
.mt-8  { margin-top: 2rem;   }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem;   }
.mb-2  { margin-bottom: .5rem;  }
.mb-4  { margin-bottom: 1rem;   }
.mb-6  { margin-bottom: 1.5rem; }
.mb-8  { margin-bottom: 2rem;   }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem;   }
.flex      { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.gap-4     { gap: 1rem; }
.gap-6     { gap: 1.5rem; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }

/* ═══════════════════════════════════════════════════════════════
   CRITICAL OVERRIDES — highest cascade priority
═══════════════════════════════════════════════════════════════ */

/* Quote text on light backgrounds */
.section:not(.section--navy) .quote-text { color: var(--navy) !important; opacity: .8; font-style: italic; }
.section:not(.section--navy) .quote-block { border-left-color: var(--gold); }

/* Images: color by default, grayscale on hover */
.img-grid-item img                         { filter: grayscale(0) !important; }
.img-grid-item:hover img                   { filter: grayscale(100%) !important; }
.lawyer-portrait img                       { filter: grayscale(0) !important; }
.lawyer-card:hover .lawyer-portrait img    { filter: grayscale(0) !important; }

/* Kontakt white background */
.kontakt--light .kontakt-value             { color: var(--navy) !important; }
.kontakt--light .kontakt-value a           { color: var(--navy) !important; }
.kontakt--light .kontakt-value a:hover     { color: var(--gold) !important; }

/* Form white background */
.form--light .form-label                   { color: var(--muted) !important; }
.form--light .form-input,
.form--light .form-textarea,
.form--light .form-select                  { background: var(--surface) !important; border-color: rgba(0,0,0,.15) !important; color: var(--navy) !important; }
.form--light .form-input::placeholder,
.form--light .form-textarea::placeholder   { color: rgba(10,22,40,.28) !important; }
.form--light .form-check label             { color: var(--muted) !important; }

/* Membership: grid layout + logo size fix */
.members-row {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 1.5rem !important;
}
.member-badge { min-width: 0 !important; }
.member-logo-wrap {
  width: 100%;
  height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: .75rem;
  overflow: hidden;
}
.member-logo {
  max-width: 100% !important;
  max-height: 3.5rem !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  filter: grayscale(0) opacity(1) !important;
  transition: filter .4s ease !important;
}
.member-badge:hover .member-logo { filter: grayscale(100%) opacity(.55) !important; }
@media (max-width: 960px)  { .members-row { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 560px)  { .members-row { grid-template-columns: repeat(2, 1fr) !important; } }

/* ueber-uns responsive fixes */
@media (max-width: 900px) {
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr !important; height: auto !important; }
}

/* Readability pass: dark backgrounds use solid white text. */
/* Text size pass: make running copy and menus easier to read. */
main :where(input, textarea, select) {
  font-size: 1rem !important;
  line-height: 1.85;
}

main :where(p, li, address),
.split :where(p, li),
.content-split :where(p, li),
.section :where(p, li),
.lawyer-detail :where(p, li) {
  line-height: 1.85;
}

main :where(label),
main :where(.section-label) {
  font-size: .86rem !important;
}

footer :where(p, li, a, address) {
  font-size: .82rem !important;
  line-height: 1.72;
}

footer :where(.footer-tagline, .footer-links a, .footer-contact-line, .footer-contact-line a) {
  font-size: .78rem !important;
}

footer :where(.footer-logo-names, .footer-logo-community) {
  font-size: .6rem !important;
}
.footer-logo-wrap :where(.logo-names, .logo-community) {
  font-size: .62rem !important;
}

footer :where(.footer-col-title) {
  font-size: .68rem !important;
}

footer :where(.footer-copy, .footer-legal a) {
  font-size: .68rem !important;
}

main :where([style*="font-size:.85rem"]),
main :where([style*="font-size:.88rem"]),
main :where([style*="font-size:.9rem"]),
main :where([style*="font-size:.95rem"]),
main :where([style*="font-size: .85rem"]),
main :where([style*="font-size: .88rem"]),
main :where([style*="font-size: .9rem"]),
main :where([style*="font-size: .95rem"]) {
  font-size: 1rem !important;
  line-height: 1.85;
}

/* ── CLS Prevention: placeholders are invisible (header is fixed, footer inserts before placeholder) ── */
#nav-placeholder { display: none; }
#footer-placeholder { display: none; }

/* ── Image aspect-ratio containment to prevent layout shifts ─── */
.hero-video,
img[class*="hero"] {
  aspect-ratio: 16 / 9;
}

.blog-img img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}

.lawyer-hero-img img {
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

/* ── Print: hide non-essential elements ─────────────────────── */
@media print {
  #header, footer, .cta-strip, .scroll-indicator { display: none !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

.btn,
.arrow-link,
.blog-more,
.cat-btn {
  font-size: .86rem !important;
}

.hero .section-label {
  font-size: .62rem !important;
  color: #fff !important;
}

.hero h1 {
  font-size: clamp(2.4rem, 5.1vw, 4.25rem) !important;
  color: #fff !important;
}

.hero h1 em {
  color: #fff !important;
}

.hero .hero-sub {
  font-size: .98rem !important;
  line-height: 1.72;
  color: #fff !important;
}

.hero .btn {
  font-size: .67rem !important;
  padding: .9rem 1.65rem;
}

.hero .btn-ghost {
  color: #fff !important;
}

.hero .hero-stat-value {
  font-size: 1.88rem !important;
  color: #fff !important;
}

.hero .hero-stat-label {
  font-size: .64rem !important;
  color: #fff !important;
}

.hero .scroll-indicator span {
  font-size: .56rem !important;
  color: #fff !important;
}

:where(
  .hero,
  .page-hero--navy,
  .section--navy,
  .mobile-menu,
  footer,
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:var(--navy-mid)"],
  [style*="background: var(--navy-mid)"],
  [style*="background:#000"],
  [style*="background: #000"],
  [style*="background:black"],
  [style*="background: black"]
) {
  color: #fff !important;
  opacity: 1 !important;
}

:where(
  .hero,
  .page-hero--navy,
  .section--navy,
  .mobile-menu,
  footer,
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:var(--navy-mid)"],
  [style*="background: var(--navy-mid)"],
  [style*="background:#000"],
  [style*="background: #000"],
  [style*="background:black"],
  [style*="background: black"]
) :where(
  h1, h2, h3, h4, h5, h6,
  p, span, li, a, label, small, address,
  blockquote, figcaption, button,
  .section-label, .quote-text, .quote-author,
  .footer-logo-names, .footer-logo-community, .footer-tagline,
  .footer-links a, .footer-contact-line, .footer-contact-line a,
  .footer-copy, .footer-legal a,
  .form-label, .form-check label,
  .hero-sub, .hero-stat-label, .logo-names, .logo-community
) {
  color: #fff !important;
  opacity: 1 !important;
}

:where(
  .hero,
  .page-hero--navy,
  .section--navy,
  .mobile-menu,
  footer,
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"]
) :where(input, textarea, select)::placeholder {
  color: #fff !important;
  opacity: 1 !important;
}

:where(
  .hero,
  .page-hero--navy,
  .section--navy,
  .mobile-menu,
  footer,
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"]
) :where(.btn-gold, .btn-gold *) {
  color: var(--navy) !important;
}

:where(
  .hero,
  .page-hero--navy,
  .section--navy,
  .mobile-menu,
  footer,
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"]
) :where(.btn-gold:hover, .btn-gold:hover *) {
  color: #fff !important;
}

/* Light sections: running copy should read as true black, not muted grey. */
:where(.section:not(.section--navy), .page-hero--surface, .lawyer-hero-content) :where(
  p.prose,
  .prose p,
  .section-header-desc,
  .rg-desc,
  .rg-list li,
  .blog-excerpt,
  .blog-featured-excerpt,
  .practice-tile p,
  .accordion-body p,
  .doc-desc,
  .legal-body p,
  .legal-body li,
  .value-text,
  .expertise-list li,
  .lawyer-title,
  .member-name,
  .kontakt-value,
  .form-check label,
  [style*="color:var(--muted)"],
  [style*="color: var(--muted)"],
  [style*="color:#555"],
  [style*="color: #555"],
  [style*="color:#666"],
  [style*="color: #666"],
  [style*="color:rgba(10,22,40,.7)"],
  [style*="color: rgba(10,22,40,.7)"],
  [style*="color:rgba(10,22,40,.8)"],
  [style*="color: rgba(10,22,40,.8)"]
) {
  color: #000 !important;
}

:where(.section:not(.section--navy), .page-hero--surface, .lawyer-hero-content) :where(
  .section-label,
  .rg-subtitle,
  .blog-date,
  .blog-featured-eyebrow,
  .doc-meta,
  .kontakt-label,
  .form-label,
  .quote-author,
  .text-gold
) {
  color: var(--gold) !important;
}

:where(
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"],
  [style*="background:black"],
  [style*="background: black"]
) :where(p, span, li, a, label, small, address, h1, h2, h3, h4, h5, h6) {
  color: #fff !important;
}

:where(
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"],
  [style*="background:black"],
  [style*="background: black"]
) :where(.btn-gold, .btn-gold *) {
  color: var(--navy) !important;
}

:where(
  [style*="background:var(--navy)"],
  [style*="background: var(--navy)"],
  [style*="background:#0a1628"],
  [style*="background: #0a1628"],
  [style*="background:#0d1b2e"],
  [style*="background: #0d1b2e"],
  [style*="background:#000"],
  [style*="background: #000"],
  [style*="background:black"],
  [style*="background: black"]
) :where(.btn-gold:hover, .btn-gold:hover *) {
  color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════════
   KOSTEN PAGE
═══════════════════════════════════════════════════════════════ */
.costs-page .costs-hero {
  min-height: clamp(34rem, 64vh, 44rem);
  align-items: center;
}

.costs-page .costs-hero .hero-overlay {
  background: rgba(10, 22, 40, .74);
}

.costs-page .costs-hero-content {
  max-width: 76rem;
  padding-top: clamp(9rem, 13vw, 12rem);
  padding-bottom: clamp(4rem, 7vw, 6rem);
}

.costs-page .costs-hero h1 {
  max-width: 78rem;
  font-size: clamp(2.55rem, 5.2vw, 5.15rem);
  line-height: 1.03;
  white-space: normal;
}

.costs-page .costs-hero .hero-sub {
  max-width: 68rem;
  font-size: 1rem !important;
  color: rgba(255,255,255,.78) !important;
}

.costs-overview {
  border-top: 1px solid rgba(201,168,76,.2);
}

.costs-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 25rem);
  gap: clamp(2.5rem, 5vw, 4.75rem);
  align-items: start;
}

.costs-section-title {
  max-width: 46rem;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  color: var(--navy);
  margin-bottom: 1rem;
}

.costs-section-intro {
  max-width: 42rem;
  font-size: 1rem;
  line-height: 1.85;
  color: var(--muted);
  margin-bottom: 0;
}

.costs-faq {
  margin-top: 2.25rem;
}

.costs-faq .accordion {
  margin-bottom: .75rem;
  border-color: rgba(10,22,40,.08);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.costs-faq .accordion:hover,
.costs-faq .accordion[open] {
  border-color: rgba(201,168,76,.42);
  box-shadow: 0 18px 45px rgba(10,22,40,.06);
}

.costs-faq .accordion-header {
  min-height: 4.75rem;
  padding: 1.35rem 1.6rem;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.35;
}

.costs-faq .accordion-chevron {
  width: 1.75rem;
  height: 1.75rem;
  border: 1px solid rgba(201,168,76,.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
}

.costs-faq .accordion-body {
  padding: 0 1.6rem 1.45rem;
}

.costs-faq .accordion-body p {
  max-width: 58rem;
  font-size: .96rem;
  line-height: 1.85;
  color: var(--muted);
}

.costs-prose {
  margin-top: 3rem;
  border-top: 1px solid rgba(10,22,40,.1);
}

.costs-prose-item {
  padding: 1.55rem 0;
  border-bottom: 1px solid rgba(10,22,40,.08);
}

.costs-prose-item h3 {
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  color: var(--navy);
  margin-bottom: .65rem;
}

.costs-prose-item p {
  max-width: 58rem;
  font-size: .98rem;
  line-height: 1.85;
  color: var(--muted);
}

.costs-promise {
  position: sticky;
  top: 6.5rem;
  background: var(--navy);
  color: #fff;
  padding: clamp(2rem, 3vw, 2.75rem);
  border: 1px solid rgba(201,168,76,.18);
  border-top: 3px solid var(--gold);
  box-shadow: 0 26px 70px rgba(10,22,40,.18);
}

.costs-promise .gold-rule {
  margin-bottom: 1.55rem;
}

.costs-promise .section-label {
  color: var(--gold) !important;
  margin-bottom: .85rem;
}

.costs-promise h3 {
  font-size: clamp(1.5rem, 2vw, 1.85rem);
  color: #fff;
  line-height: 1.12;
  margin-bottom: 1.75rem;
}

.costs-promise-list {
  display: grid;
  gap: 0;
}

.costs-promise-list li {
  display: grid;
  grid-template-columns: 1.65rem 1fr;
  gap: .8rem;
  align-items: start;
  padding: 1rem 0;
  border-top: 1px solid rgba(255,255,255,.08);
}

.costs-promise-list li:first-child {
  border-top: 0;
  padding-top: 0;
}

.costs-promise-check {
  width: 1.65rem;
  height: 1.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(201,168,76,.42);
  color: var(--gold);
  font-size: .82rem;
  line-height: 1;
}

.costs-promise-list p {
  color: rgba(255,255,255,.78);
  font-size: .93rem;
  line-height: 1.65;
}

.costs-promise-button {
  width: 100%;
  justify-content: center;
  margin-top: 1.8rem;
  padding: .92rem 1rem !important;
  font-size: .68rem !important;
  letter-spacing: .16em;
  color: var(--navy) !important;
}

.costs-promise-button:hover {
  color: #fff !important;
}

.costs-promise-note {
  margin-top: 1rem;
  text-align: center;
  color: rgba(255,255,255,.55);
  font-size: .76rem;
  letter-spacing: .04em;
}

.costs-fees {
  background: #fff;
}

.costs-fee-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.costs-fee-card {
  position: relative;
  min-height: 20rem;
  background: #fff;
  border: 1px solid rgba(10,22,40,.08);
  padding: clamp(1.75rem, 2.7vw, 2.4rem);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.costs-fee-card::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}

.costs-fee-card:hover {
  border-color: rgba(201,168,76,.42);
  box-shadow: 0 22px 55px rgba(10,22,40,.06);
  transform: translateY(-2px);
}

.costs-fee-card:hover::after {
  width: 100%;
}

.costs-card-kicker {
  font-family: var(--font-body);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.1rem;
}

.costs-fee-card h3 {
  max-width: 14rem;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  color: var(--navy);
  line-height: 1.15;
  margin-bottom: 1.15rem;
}

.costs-fee-card p:not(.costs-card-kicker) {
  font-size: .96rem;
  line-height: 1.85;
  color: var(--muted);
}

.costs-cta {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(201,168,76,.3);
}

.costs-cta .cta-strip {
  max-width: 48rem;
  margin-inline: auto;
  text-align: center;
}

.costs-cta h2 {
  font-size: clamp(2rem, 3.4vw, 2.9rem);
  margin: .85rem 0 1rem;
}

.costs-cta p:not(.section-label) {
  color: rgba(255,255,255,.74) !important;
  font-size: 1rem;
  line-height: 1.75;
}

.costs-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 1.75rem;
}

@media (max-width: 1100px) {
  .costs-layout {
    grid-template-columns: 1fr;
  }

  .costs-promise {
    position: relative;
    top: auto;
  }

  .costs-fee-grid {
    grid-template-columns: 1fr;
  }

  .costs-fee-card {
    min-height: 0;
  }
}

@media (max-width: 700px) {
  .costs-page {
    overflow-x: hidden;
  }

  .costs-page .costs-hero {
    min-height: 38rem;
  }

  .costs-page .costs-hero h1 {
    max-width: 19rem;
    font-size: clamp(2.25rem, 10.5vw, 3rem);
  }

  .costs-page .costs-hero .hero-sub {
    max-width: 19rem;
    font-size: .92rem !important;
  }

  .costs-section-title {
    max-width: 19rem;
    font-size: clamp(1.9rem, 8.8vw, 2.35rem);
  }

  .costs-section-intro {
    max-width: 19rem;
  }

  .costs-faq .accordion-header {
    padding: 1.1rem 1.15rem;
    font-size: .95rem;
  }

  .costs-faq .accordion-body {
    padding-inline: 1.15rem;
  }

  .costs-promise {
    padding: 1.6rem;
  }

  .costs-actions {
    flex-direction: column;
  }

  .costs-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   RECHTSPRECHUNG PAGE
═══════════════════════════════════════════════════════════════ */
.jurisprudence-page {
  background: #fff;
}

.jurisprudence-hero {
  min-height: clamp(36rem, 68vh, 48rem);
}

.jurisprudence-hero .hero-overlay {
  background: rgba(10,22,40,.76);
}

.jurisprudence-hero-content {
  max-width: 70rem;
  padding-top: clamp(9rem, 14vw, 12rem);
  padding-bottom: clamp(4rem, 7vw, 6rem);
}

.jurisprudence-hero h1 {
  max-width: 64rem;
  font-size: clamp(2.7rem, 5.4vw, 5.2rem);
  white-space: normal;
}

.jurisprudence-hero .hero-sub {
  max-width: 58rem;
  font-size: 1rem !important;
  color: rgba(255,255,255,.76) !important;
}

.jurisprudence-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-top: 2.5rem;
}

.jurisprudence-hero-stats div {
  min-width: 7rem;
  border-left: 1px solid rgba(201,168,76,.55);
  padding-left: 1rem;
}

.jurisprudence-hero-stats span {
  display: block;
  font-family: var(--font-display);
  font-size: 1.8rem;
  line-height: 1;
  color: #fff;
}

.jurisprudence-hero-stats p {
  margin-top: .45rem;
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.54) !important;
}

.jurisprudence-section-title {
  max-width: 48rem;
  font-size: clamp(2rem, 3.4vw, 2.85rem);
  color: var(--navy);
}

.jurisprudence-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: rgba(10,22,40,.08);
  border: 1px solid rgba(10,22,40,.08);
}

.jurisprudence-feature-card {
  position: relative;
  min-height: 21rem;
  background: #fff;
  padding: clamp(1.75rem, 2.7vw, 2.4rem);
  transition: background var(--transition), transform var(--transition);
}

.jurisprudence-feature-card::after,
.jurisprudence-index-card::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width var(--transition);
}

.jurisprudence-feature-card:hover,
.jurisprudence-index-card:hover {
  background: var(--navy);
  transform: translateY(-2px);
}

.jurisprudence-feature-card:hover::after,
.jurisprudence-index-card:hover::after {
  width: 100%;
}

.jurisprudence-card-kicker {
  display: block;
  font-family: var(--font-body);
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.15rem;
}

.jurisprudence-feature-card h3,
.jurisprudence-index-card h3 {
  color: var(--navy);
  line-height: 1.16;
  transition: color var(--transition);
}

.jurisprudence-feature-card h3 {
  font-size: clamp(1.45rem, 2vw, 1.85rem);
  margin-bottom: 1rem;
}

.jurisprudence-feature-card p,
.jurisprudence-index-card p {
  color: var(--muted);
  transition: color var(--transition);
}

.jurisprudence-feature-card p {
  font-size: .95rem;
  line-height: 1.8;
}

.jurisprudence-feature-card:hover h3,
.jurisprudence-index-card:hover h3 {
  color: #fff;
}

.jurisprudence-feature-card:hover p,
.jurisprudence-index-card:hover p {
  color: rgba(255,255,255,.66);
}

.jurisprudence-index {
  border-top: 1px solid rgba(10,22,40,.06);
}

.jurisprudence-index-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.jurisprudence-index-card {
  position: relative;
  min-height: 16.5rem;
  background: #fff;
  border: 1px solid rgba(10,22,40,.08);
  padding: 1.6rem;
  transition: background var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}

.jurisprudence-index-card:hover {
  border-color: var(--navy);
  box-shadow: 0 22px 55px rgba(10,22,40,.08);
}

.jurisprudence-index-card > span {
  display: inline-flex;
  min-width: 2.35rem;
  height: 2.35rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(201,168,76,.42);
  color: var(--gold);
  font-family: var(--font-body);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}

.jurisprudence-index-card h3 {
  font-size: 1.3rem;
  margin-bottom: .85rem;
}

.jurisprudence-index-card p {
  font-size: .9rem;
  line-height: 1.75;
}

.jurisprudence-index-card--accent {
  border-top: 3px solid var(--gold);
}

.jurisprudence-register {
  background: #fff;
}

.jurisprudence-register-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 28rem);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: end;
  border-top: 1px solid rgba(10,22,40,.1);
  border-bottom: 1px solid rgba(10,22,40,.1);
  padding-block: clamp(2.5rem, 5vw, 4rem);
}

.jurisprudence-letter-links {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .7rem;
}

.jurisprudence-letter-links a {
  height: 4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(10,22,40,.12);
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.3rem;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}

.jurisprudence-letter-links a:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

.jurisprudence-cta {
  text-align: center;
  border-top: 1px solid rgba(201,168,76,.3);
}

.jurisprudence-cta .gold-rule {
  margin: 1.25rem auto 2rem;
  display: block;
}

.jurisprudence-cta h2 {
  max-width: 44rem;
  margin: 0 auto 1.25rem;
  font-size: clamp(2rem, 3.5vw, 3rem);
}

.jurisprudence-cta p:not(.section-label) {
  max-width: 38rem;
  margin-inline: auto;
  color: rgba(255,255,255,.72) !important;
  font-size: 1rem;
  line-height: 1.8;
}

.jurisprudence-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-top: 2rem;
}

@media (max-width: 1100px) {
  .jurisprudence-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jurisprudence-index-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .jurisprudence-page {
    overflow-x: hidden;
  }

  .jurisprudence-hero {
    min-height: 40rem;
  }

  .jurisprudence-hero h1 {
    max-width: 19rem;
    font-size: clamp(2.4rem, 11vw, 3.35rem);
  }

  .jurisprudence-hero .hero-sub {
    max-width: 19rem;
    font-size: .92rem !important;
  }

  .jurisprudence-hero-stats {
    gap: 1rem;
  }

  .jurisprudence-hero-stats div {
    min-width: calc(50% - .5rem);
  }

  .jurisprudence-section-title {
    max-width: 19rem;
    font-size: clamp(1.9rem, 8.8vw, 2.35rem);
  }

  .jurisprudence-feature-grid,
  .jurisprudence-index-grid,
  .jurisprudence-register-inner {
    grid-template-columns: 1fr;
  }

  .jurisprudence-feature-card,
  .jurisprudence-index-card {
    min-height: 0;
  }

  .jurisprudence-letter-links {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .jurisprudence-letter-links a {
    height: 3.4rem;
  }

  .jurisprudence-actions {
    flex-direction: column;
  }

  .jurisprudence-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   KOSTEN PAGE — NEUES LAYOUT
═══════════════════════════════════════════════════════════════ */

.kosten-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26rem;
  gap: clamp(3rem, 5vw, 5.5rem);
  align-items: start;
}

/* FAQ Accordions */
.kosten-accordion {
  margin-bottom: .6rem;
  border-color: rgba(10,22,40,.08);
  transition: border-color var(--transition), box-shadow var(--transition);
}
.kosten-accordion:hover,
.kosten-accordion[open] {
  border-color: rgba(201,168,76,.4);
  box-shadow: 0 12px 36px rgba(10,22,40,.06);
}
.kosten-accordion .accordion-header {
  min-height: 4.5rem;
  padding: 1.25rem 1.5rem;
  font-family: var(--font-body);
  font-size: .98rem;
  font-weight: 500;
  color: var(--navy);
  letter-spacing: .01em;
}
.kosten-accordion .accordion-chevron {
  width: 1.65rem;
  height: 1.65rem;
  border: 1px solid rgba(201,168,76,.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: .85rem;
  flex-shrink: 0;
}
.kosten-accordion .accordion-body {
  padding: 0 1.5rem 1.35rem;
}
.kosten-accordion .accordion-body p {
  font-size: .93rem;
  line-height: 1.85;
  color: var(--muted);
  padding-top: .75rem;
  border-top: 1px solid rgba(0,0,0,.05);
}

/* Prose items */
.kosten-prose-item {
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(10,22,40,.08);
}
.kosten-prose-item:first-child {
  border-top: 1px solid rgba(10,22,40,.08);
}

/* Navy sidebar */
.kosten-sidebar {
  position: sticky;
  top: 7rem;
  background: var(--navy);
  color: #fff;
  border-top: 3px solid var(--gold);
  border: 1px solid rgba(201,168,76,.18);
  border-top: 3px solid var(--gold);
  box-shadow: 0 28px 72px rgba(10,22,40,.2);
}

.kosten-sidebar-block {
  padding: 2rem 2rem 0;
}

/* last block gets bottom padding via the CTA div below it */

/* Promise list */
.kosten-promise-list {
  display: grid;
  gap: 0;
}
.kosten-promise-list li {
  display: grid;
  grid-template-columns: 1.5rem 1fr;
  gap: .75rem;
  align-items: start;
  padding: .9rem 0;
  border-top: 1px solid rgba(255,255,255,.07);
  font-size: .9rem;
  color: rgba(255,255,255,.78);
  line-height: 1.6;
}
.kosten-promise-list li:first-child {
  border-top: 0;
  padding-top: 0;
}
.kosten-check {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(201,168,76,.4);
  color: var(--gold);
  font-size: .78rem;
  flex-shrink: 0;
}

/* Contact items in sidebar */
.kosten-contact-item {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: .85rem;
  align-items: start;
  padding: .85rem 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.kosten-contact-item:first-child {
  padding-top: 0;
}

/* Responsive */
@media (max-width: 1100px) {
  .kosten-layout {
    grid-template-columns: 1fr;
  }
  .kosten-sidebar {
    position: relative;
    top: auto;
  }
}

@media (max-width: 900px) {
  .rg-cards--3 {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 540px) {
  .rg-cards--3 {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  .kosten-sidebar-block {
    padding: 1.5rem 1.5rem 0;
  }
}

/* ── Tipps page sections ──────────────────────────────────── */
.tipps-section {
  padding: 3rem 0;
  border-bottom: 1px solid rgba(10,22,40,.08);
}
.tipps-section:first-of-type {
  padding-top: 0;
}
.tipps-section-header {
  margin-bottom: .25rem;
}

/* ── Mitgliedschaften page ───────────────────────────────── */
.mitgl-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .65rem;
  padding: 1.5rem 1rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.07);
  text-align: center;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.mitgl-badge:hover {
  border-color: rgba(201,168,76,.4);
  box-shadow: 0 8px 24px rgba(10,22,40,.06);
}
.mitgl-abbr {
  width: 56px;
  height: 56px;
  background: var(--navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'DM Sans', sans-serif;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .04em;
  flex-shrink: 0;
}
.mitgl-name {
  font-size: .8rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--navy);
}
.mitgl-card {
  padding: 1.75rem;
  background: var(--surface);
  border: 1px solid rgba(0,0,0,.06);
  border-top: 3px solid var(--gold);
  transition: box-shadow var(--transition);
}
.mitgl-card:hover {
  box-shadow: 0 12px 36px rgba(10,22,40,.07);
}
.mitgl-card-kicker {
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .15em;
  color: var(--gold);
  margin-bottom: .5rem;
  font-family: var(--font-body);
}
.mitgl-card-title {
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  color: var(--navy);
  margin-bottom: .75rem;
  font-weight: 500;
  line-height: 1.3;
}
.mitgl-card-text {
  font-size: .88rem;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: .75rem;
}
.mitgl-card-relevanz {
  font-size: .82rem;
  font-weight: 500;
  color: var(--gold);
}
@media (max-width: 700px) {
  .mitgl-abbr { width: 44px; height: 44px; font-size: .8rem; }
  .mitgl-card { padding: 1.25rem; }
}
@media (max-width: 680px) {
  .mitgl-card-grid { grid-template-columns: 1fr !important; }
}

/* Badge logo images */
.mitgl-logo-wrap {
  width: 80px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mitgl-logo {
  max-width: 100%;
  max-height: 52px;
  object-fit: contain;
  filter: grayscale(1) contrast(1.1);
  transition: filter var(--transition);
}
.mitgl-badge:hover .mitgl-logo {
  filter: grayscale(0);
}

/* ═══════════════════════════════════════════════════════════════
   CONTENT + SIDEBAR LAYOUT
═══════════════════════════════════════════════════════════════ */

.content-with-sidebar {
  display: grid;
  grid-template-columns: 1fr 21rem;
  gap: 3.5rem;
  align-items: start;
}

/* ── Sticky Sidebar ───────────────────────────────────────────── */
.sticky-sidebar {
  position: sticky;
  top: 7rem;
  background: var(--navy);
  overflow: hidden;
}

.sidebar-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) brightness(.92);
  transition: filter .6s;
}
.sticky-sidebar:hover .sidebar-img { filter: grayscale(0) brightness(1); }

.sidebar-inner {
  padding: 1.75rem;
}

.sidebar-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .5rem;
}

.sidebar-phone {
  display: block;
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 300;
  color: #fff;
  margin-bottom: .35rem;
  transition: color .2s;
  letter-spacing: .02em;
}
.sidebar-phone:hover { color: var(--gold); }

.sidebar-emergency {
  font-size: .82rem;
  color: rgba(255,255,255,.5);
  margin-bottom: 1.35rem;
}
.sidebar-emergency a { color: rgba(255,255,255,.5); transition: color .2s; }
.sidebar-emergency a:hover { color: var(--gold); }

.sidebar-rule {
  border: none;
  border-top: 1px solid rgba(255,255,255,.1);
  margin: 1.35rem 0;
}

.sidebar-address {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  margin-bottom: 1.35rem;
  line-height: 1.55;
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.sidebar-address::before {
  content: '⊙';
  color: var(--gold);
  font-size: .75rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

.sidebar-btn {
  width: 100%;
  justify-content: center;
  font-size: .7rem !important;
  letter-spacing: .14em;
}

.sidebar-lawyers {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sidebar-lawyers li {
  font-size: .82rem;
  color: rgba(255,255,255,.65);
  padding: .35rem 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  display: flex;
  align-items: center;
  gap: .55rem;
}
.sidebar-lawyers li:last-child { border-bottom: none; }
.sidebar-lawyers li::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
}

.sidebar-badge {
  margin-top: 1.25rem;
  background: rgba(201,168,76,.1);
  border: 1px solid rgba(201,168,76,.25);
  padding: .7rem 1rem;
  font-family: var(--font-body);
  font-size: .68rem;
  letter-spacing: .1em;
  color: var(--gold);
  text-align: center;
  text-transform: uppercase;
}

/* ── Improved legal-body h2 with accent rule ──────────────────── */
.legal-body h2 {
  position: relative;
  padding-left: 1rem;
  margin-top: 2.75rem;
  margin-bottom: 1rem;
  border-left: 3px solid var(--gold);
}
.legal-body h2:first-child { margin-top: 0; }
.legal-body h3 {
  margin-top: 1.75rem;
  margin-bottom: .6rem;
  font-size: 1.05rem;
}

/* ── Tip callout card ─────────────────────────────────────────── */
.tip-card {
  background: var(--surface);
  border-left: 3px solid var(--gold);
  padding: 1.1rem 1.4rem;
  margin: 1.4rem 0;
}
.tip-card-label {
  display: block;
  font-family: var(--font-body);
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .4rem;
}
.tip-card p { margin: 0 !important; font-size: .98rem !important; }
.tip-card strong { color: var(--navy); }

/* ── Law highlight alert (Schweigen!) ─────────────────────────── */
.law-highlight {
  background: var(--navy);
  border-left: 3px solid var(--gold);
  padding: 1.1rem 1.5rem;
  margin: 1.75rem 0;
}
.law-highlight p {
  margin: 0 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  letter-spacing: .015em;
}
.law-highlight strong { color: var(--gold) !important; }

/* ── Intro paragraph box ──────────────────────────────────────── */
.legal-intro {
  background: var(--surface);
  border: 1px solid rgba(201,168,76,.2);
  border-top: 3px solid var(--gold);
  padding: 1.5rem 1.75rem;
  margin-bottom: 2.25rem;
  font-size: 1.02rem !important;
  line-height: 1.85 !important;
  color: var(--navy) !important;
}

/* ── Inline kanzlei photo ─────────────────────────────────────── */
.kanzlei-photo {
  width: 100%;
  aspect-ratio: 16/7;
  object-fit: cover;
  display: block;
  margin: 2.5rem 0;
  filter: grayscale(10%);
  transition: filter .6s;
}
.kanzlei-photo:hover { filter: grayscale(0); }

/* ── Content-with-sidebar responsive ─────────────────────────── */
@media (max-width: 1050px) {
  .content-with-sidebar {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .sticky-sidebar {
    position: static;
    display: grid;
    grid-template-columns: auto 1fr;
  }
  .sidebar-img {
    width: 14rem;
    aspect-ratio: 3/4;
  }
}

@media (max-width: 640px) {
  .sticky-sidebar {
    grid-template-columns: 1fr;
  }
  .sidebar-img { width: 100%; aspect-ratio: 16/9; }
}

/* Sidebar color overrides (prevent global readability rules from bleeding in) */
.sticky-sidebar .sidebar-eyebrow { color: var(--gold) !important; }
.sticky-sidebar .sidebar-phone { color: #fff !important; }
.sticky-sidebar .sidebar-emergency,
.sticky-sidebar .sidebar-emergency a { color: rgba(255,255,255,.5) !important; }
.sticky-sidebar .sidebar-address { color: rgba(255,255,255,.55) !important; }
.sticky-sidebar .sidebar-lawyers li { color: rgba(255,255,255,.65) !important; }
.sticky-sidebar .sidebar-badge { color: var(--gold) !important; }
.sticky-sidebar .btn-gold { color: var(--navy) !important; }
.sticky-sidebar .btn-gold:hover { color: #fff !important; }

/* Legal catalog list */
.legal-catalog-list {
  list-style: none;
  padding: 0;
  margin: 0;
  break-inside: avoid-column;
}
.legal-catalog-list li {
  font-size: .9rem;
  color: var(--navy);
  padding: .3rem 0;
  border-bottom: 1px solid rgba(0,0,0,.05);
  display: flex;
  align-items: center;
  gap: .5rem;
  break-inside: avoid;
}
.legal-catalog-list li::before {
  content: '';
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
}

/* ── Hero title compact variant (for very long titles) ───────── */
.page-hero--navy .page-hero__content h1.hero-title--sm {
  font-size: clamp(1.6rem, 3.1vw, 2.75rem) !important;
}

/* ── Hero subtitle & contact line ─────────────────────────────── */
.page-hero__subtitle {
  color: rgba(255,255,255,.72);
  font-size: 1rem;
  max-width: 40rem;
  line-height: 1.75;
  margin-top: .85rem;
  margin-bottom: 0;
  font-family: var(--font-body);
  font-weight: 300;
}
.page-hero__contact {
  margin-top: 1.4rem;
  font-size: .875rem;
  color: rgba(255,255,255,.45);
  font-family: var(--font-body);
  letter-spacing: .02em;
}
.page-hero__contact a {
  color: var(--gold);
  text-decoration: none;
  font-weight: 500;
}
.page-hero__contact a:hover { text-decoration: underline; }

/* ── Procedure grid (strafrecht.html section 4) ───────────────── */
.proc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  margin: 1.5rem 0 2rem;
}
.proc-grid__item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .7rem 1rem;
  background: var(--surface);
  border-left: 2px solid rgba(201,168,76,.35);
  font-size: .875rem;
  color: var(--navy);
  text-decoration: none;
  transition: border-color .2s, background .2s;
  line-height: 1.4;
}
.proc-grid__item:hover {
  border-left-color: var(--gold);
  background: rgba(201,168,76,.06);
  color: var(--navy);
  text-decoration: none;
}
.proc-grid__num {
  color: var(--gold);
  font-size: .72rem;
  font-weight: 600;
  flex-shrink: 0;
  padding-top: .05rem;
  min-width: 1.8rem;
}
@media (max-width: 600px) {
  .proc-grid { grid-template-columns: 1fr; }
}

/* ── Breadcrumb strip ───────────────────────────────────────────── */
.breadcrumb-strip {
  background: #f5f4f0;
  border-bottom: 1px solid rgba(10,22,40,.08);
  padding: .55rem 0;
  font-size: .78rem;
  font-family: var(--font-sans);
}
.breadcrumb-strip ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  color: #666;
}
.breadcrumb-strip li { display: flex; align-items: center; gap: .25rem; }
.breadcrumb-strip li + li::before { content: "›"; color: var(--gold); font-size: .85em; }
.breadcrumb-strip a { color: var(--navy); text-decoration: none; }
.breadcrumb-strip a:hover { color: var(--gold); }
.breadcrumb-strip [aria-current="page"] { color: #888; }

/* Remove gap above breadcrumb (hero padding-bottom) and below (section padding-top) */
.page-hero:has(+ .breadcrumb-strip) { padding-bottom: 0; }
.breadcrumb-strip + .section { padding-top: 0; }
