/* =========================================================
   Kanzlei Holtgrewe – Design v8
   Anthrazit + gedämpftes Gold/Messing. Warm, hochwertig,
   Kanzlei-Understatement statt Cookie-Banner-Blau.
   Mobile-first. Foto klein oben rechts neben Headline.

   Palette:  Anthrazit   #1A1A1D
             Kohle       #26262B
             Elfenbein   #F5F2EC
             Creme       #FBF9F4
             Gold        #A6842C
             Gold hell   #C4A24A
             Sepia       #6B6459
   Schrift:  Fraunces 600 (Display Serif) · IBM Plex Sans (Text)
             IBM Plex Mono (Labels)
   ========================================================= */

@font-face { font-family:'Fraunces'; src:url('../fonts/fraunces-v31-latin-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Fraunces'; src:url('../fonts/fraunces-v31-latin-600-italic.woff2') format('woff2'); font-weight:600; font-style:italic; font-display:swap; }
@font-face { font-family:'IBM Plex Sans'; src:url('../fonts/ibm-plex-sans-v19-latin-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'IBM Plex Sans'; src:url('../fonts/ibm-plex-sans-v19-latin-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'IBM Plex Mono'; src:url('../fonts/ibm-plex-mono-v19-latin-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }

:root {
  /* Dunkelgrün als Leitfarbe (#06402B) mit weißer Schrift auf dunklen Flächen.
     Gold bleibt als dezenter, hochwertiger Akzent erhalten. */
  --ink:#06402B; --coal:#0A4A31; --paper:#FFFFFF; --cream:#F1F6F2;
  --gold:#A6842C; --gold-bright:#C4A24A; --gold-wash:#EFE7D3; --gold-ink:#745A1D;
  --sepia:#586B60; --sepia-light:#CBD8CF;
  --line:#E1E8E3; --line-strong:#C7D2CB; --line-dark:#0F5C3D;
  --font-head:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'IBM Plex Sans',-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono','Courier New',monospace;
  --wrap:1280px;
}

* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:var(--font-body); font-size:1rem; line-height:1.65; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; overflow-wrap:break-word; }

.wrap { width:100%; max-width:var(--wrap); margin:0 auto; padding-left:1.35rem; padding-right:1.35rem; }
@media (min-width:700px){ .wrap{ padding-left:2rem; padding-right:2rem; } }

img { max-width:100%; height:auto; display:block; }
a { color:var(--gold); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--ink); }

.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:.6rem 1rem; z-index:10000; }
.skip-link:focus { left:0; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }

/* Typografie */
h1,h2,h3 { font-family:var(--font-head); font-weight:600; line-height:1.12; letter-spacing:-0.01em; }
h1 { font-size:clamp(2rem,7vw,4.4rem); }
h2 { font-size:clamp(1.7rem,4.5vw,3rem); }
h3 { font-size:1.25rem; line-height:1.25; }
.accent { color:var(--gold); font-style:italic; }
.eyebrow { font-family:var(--font-mono); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:.65rem; margin-bottom:1.1rem; }
.eyebrow::before { content:""; width:24px; height:1px; background:var(--gold); flex:none; }
.lead { font-size:1.1rem; line-height:1.6; }
.rule { width:44px; height:2px; background:var(--gold); border:none; margin:0 0 1.6rem; }

.rail { display:none; }

/* Header */
.site-header { background:var(--ink); border-bottom:1px solid var(--line-dark); position:sticky; top:0; z-index:50; }
.header-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.8rem; padding-bottom:.8rem; flex-wrap:nowrap; }
.brand { display:flex; align-items:center; gap:.75rem; text-decoration:none; color:var(--paper); min-width:0; flex:1 1 auto; }
.brand-mark { flex:none; width:44px; height:44px; object-fit:contain; }
.brand-text { min-width:0; }
.brand-name { font-family:var(--font-head); font-weight:600; font-size:1.05rem; display:block; line-height:1.15; color:var(--paper); }
.llm { font-size:.85em; color:var(--gold-bright); }
.brand-sub { font-family:var(--font-mono); font-size:clamp(.5rem,2.55vw,.66rem); letter-spacing:.01em; text-transform:uppercase; color:var(--sepia-light); display:block; line-height:1.35; white-space:nowrap; }

.header-actions { display:flex; align-items:center; gap:.9rem; flex:none; }
.header-phone { display:none; }
.nav-toggle { display:inline-flex; flex-direction:column; justify-content:center; gap:5px; background:none; border:1px solid var(--sepia-light); padding:0 .7rem; cursor:pointer; min-height:46px; min-width:46px; }
.nav-toggle-bar { width:20px; height:2px; background:var(--paper); }

/* Menü-Zeile: mobil ausgeklappt, Desktop immer sichtbar */
.main-nav { }
.nav-list { display:none; list-style:none; }
.nav-list.is-open { display:flex; flex-direction:column; align-items:stretch; background:var(--ink); border-top:1px solid var(--line-dark); padding:.4rem 0 1rem; }
.nav-list a { display:block; color:var(--paper); text-decoration:none; font-family:var(--font-body); font-weight:600; font-size:1.02rem; letter-spacing:.01em; padding:.9rem .2rem; border-bottom:1px solid var(--line-dark); }
.nav-list a[aria-current="page"] { color:var(--gold-bright); }
.nav-cta { margin-top:1rem; text-align:center; background:var(--gold); color:var(--ink)!important; border-bottom:none!important; padding:.95rem 1rem!important; font-family:var(--font-body)!important; font-weight:600; }
.nav-cta:hover { background:var(--gold-bright); }

@media (min-width:900px){
  .header-top { padding-top:1rem; padding-bottom:1rem; }
  .brand-mark { width:54px; height:54px; }
  .brand-name { font-size:1.42rem; white-space:nowrap; }
  .brand-sub { font-size:.78rem; white-space:nowrap; }
  .nav-toggle { display:none; }
  .header-phone { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-mono); font-size:1.02rem; color:var(--paper); text-decoration:none; white-space:nowrap; }
  .header-phone:hover { color:var(--gold-bright); }
  /* Menüzeile unter dem Logo, volle Breite, dezent abgesetzt */
  .main-nav { border-top:1px solid var(--line-dark); background:var(--coal); }
  .nav-list { display:flex!important; flex-direction:row; align-items:center; gap:0; padding:.35rem 0; justify-content:space-between; }
  .nav-list a { font-family:var(--font-body); font-weight:600; font-size:1rem; letter-spacing:.015em; padding:.55rem 0; border:none; color:var(--paper); position:relative; }
  .nav-list a::after { content:""; position:absolute; left:0; right:0; bottom:.28rem; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:center; transition:transform .2s ease; }
  .nav-list a:hover::after, .nav-list a[aria-current="page"]::after { transform:scaleX(1); }
  .nav-list a[aria-current="page"] { color:var(--gold-bright); }
  /* Kontakt bleibt Gold-Button, rechts */
  .nav-cta { background:var(--gold); color:var(--ink)!important; padding:.5rem 1.4rem!important; font-family:var(--font-body)!important; font-weight:600; font-size:1rem; }
  .nav-cta::after { display:none; }
  .nav-cta:hover { background:var(--gold-bright); color:var(--ink)!important; }
}

/* Hero – Mobile-Basis: Kicker mittig, Headline, Bild, Note, Buttons, Lead */
.hero { background:var(--cream); color:var(--ink); padding:1.8rem 0 2.4rem; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,var(--gold) 0%,var(--gold-bright) 100%); }
.hero-kicker { font-family:var(--font-mono); font-size:.82rem; line-height:1.5; letter-spacing:.04em; color:var(--gold); margin-bottom:1.3rem; text-align:center; }
.hero h1 { color:var(--ink); margin-bottom:0; text-align:center; }
.hero-title .line { display:block; }

/* Foto mobil: mittig, ganze Person, ohne Abschnitt/Kasten */
.hero-portrait-mobile { margin:1.8rem auto 0; max-width:300px; }
.hero-portrait-mobile picture { display:block; }
.hero-portrait-mobile img { width:100%; display:block; filter:grayscale(100%) contrast(1.05); }
.hero-portrait-desktop { display:none; }

.hero-body { margin-top:1.8rem; }
.hero-note { font-family:var(--font-head); font-style:italic; font-size:1.2rem; line-height:1.4; color:var(--ink); padding-left:1rem; border-left:2px solid var(--gold); max-width:46ch; margin:0 auto; text-align:left; }
.hero-actions { margin-top:1.6rem; display:flex; flex-direction:column; gap:.7rem; align-items:stretch; }
.hero-lead { color:var(--sepia); max-width:54ch; margin-top:1.6rem; }
.hero-free { margin-top:.8rem; font-size:.9rem; color:var(--sepia); }
.hero-langs { margin-top:1.4rem; font-family:var(--font-mono); font-size:.86rem; color:var(--sepia); letter-spacing:.02em; }

@media (min-width:560px){
  .hero-portrait-mobile { max-width:330px; }
  .hero-actions { flex-direction:row; flex-wrap:wrap; align-items:center; gap:.8rem 1rem; }
}

@media (min-width:900px){
  .hero { padding:0; overflow:visible; }
  .hero .wrap { display:grid; grid-template-columns:1.2fr .8fr; gap:3rem; align-items:end; }
  .hero-main { padding:3.8rem 0 4.2rem; align-self:center; }
  .hero-kicker { text-align:left; font-size:.88rem; margin-bottom:1.6rem; white-space:nowrap; }
  .hero h1 { text-align:left; }
  .hero-portrait-mobile { display:none; }
  /* Desktop-Foto: groß, sitzt auf dem unteren Rand des Hero auf – KEIN Goldkasten */
  .hero-portrait-desktop { display:flex; align-self:end; justify-content:center; align-items:flex-end; height:100%; }
  .hero-portrait-desktop img { max-width:100%; width:auto; max-height:560px; filter:grayscale(100%) contrast(1.05); align-self:flex-end; }
  .hero-body { margin-top:2rem; }
  .hero-note { margin:0; }
  .hero-actions { align-items:center; }
  .hero-lead { margin-top:1.8rem; }
}

/* Buttons */
.btn { display:inline-block; text-align:center; text-decoration:none; font-family:var(--font-body); font-size:.95rem; font-weight:600; padding:.9rem 1.6rem; border:1px solid transparent; cursor:pointer; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.btn-primary { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn-primary:hover { background:var(--gold-bright); border-color:var(--gold-bright); color:var(--ink); }
/* Sekundär = Textlink */
.btn-ghost { background:none; border:none; padding:.9rem .3rem; color:inherit; text-decoration:underline; text-decoration-color:var(--gold); text-decoration-thickness:1.5px; text-underline-offset:5px; }
.btn-ghost:hover { color:var(--gold); }
.hero .btn-ghost { color:var(--ink); }
.hero .btn-ghost:hover { color:var(--gold); }
/* Sekundär-Button auf hellem Hero gut lesbar (dunkelgrün umrandet) */
.hero .btn-outline { border-color:var(--ink); color:var(--ink); }
.hero .btn-outline:hover { background:var(--ink); border-color:var(--ink); color:var(--paper); }
/* Outline = sichtbarer sekundärer Button (gold umrandet) */
.btn-outline { background:none; border:1px solid var(--gold); color:var(--gold-bright); }
.btn-outline:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn-dark { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.btn-dark:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }

/* §-Band */
.ticker { background:var(--coal); color:var(--sepia-light); overflow:hidden; padding:.7rem 0; border-bottom:1px solid var(--line-dark); }
.ticker-track { display:flex; gap:3rem; width:max-content; font-family:var(--font-mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; animation:ticker 50s linear infinite; }
.ticker-track span { display:inline-flex; align-items:center; gap:3rem; }
.ticker-track span::after { content:"§"; color:var(--gold-bright); }
@keyframes ticker { to { transform:translateX(-50%); } }

/* Sektionen */
.section { padding:clamp(3rem,7vw,5.5rem) 0; position:relative; }
.section-cream { background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-dark { background:var(--ink); color:var(--paper); }
.section-dark h2, .section-dark h3 { color:var(--paper); }
.section-head { margin-bottom:2rem; }
.section-kicker { font-family:var(--font-mono); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:.9rem; }
.section-head h2 { max-width:20ch; }
.section-head .lead { color:var(--sepia); margin-top:1rem; max-width:58ch; }
.section-dark .section-head .lead { color:var(--sepia-light); }
@media (min-width:900px){ .section-head { margin-bottom:3rem; } }

/* Schwerpunkte */
.dossiers { display:grid; grid-template-columns:1fr; gap:1.2rem; }
.dossier { background:var(--cream); border:1px solid var(--line-strong); padding:1.7rem 1.5rem; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:.7rem; transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.dossier:hover { border-color:var(--gold); transform:translateY(-3px); box-shadow:0 12px 28px rgba(26,26,29,.09); }
.dossier-tab { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.dossier h3 { font-size:clamp(1.4rem,3.5vw,1.85rem); }
.dossier p { color:var(--sepia); }
.dossier-more { margin-top:.4rem; font-family:var(--font-body); font-weight:600; font-size:.92rem; color:var(--gold); display:inline-flex; align-items:center; gap:.5rem; }
.dossier-more::after { content:"→"; transition:transform .2s ease; }
.dossier:hover .dossier-more::after { transform:translateX(5px); }
@media (min-width:760px){ .dossiers{ grid-template-columns:1fr 1fr; gap:1.4rem; } .dossier{ padding:2.4rem 2.2rem; gap:.9rem; } .dossier-more{ margin-top:auto; padding-top:.8rem; } }

/* Soforthilfe / Protokoll – KEINE Auto-Nummern */
.protocol-block { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
.protocol-intro h2 { margin-bottom:1rem; }
.protocol-intro .lead { color:var(--sepia-light); margin-bottom:1.6rem; }
.protocol-cta { width:100%; }
.protocol-steps { list-style:none; }
.protocol-steps li { display:grid; grid-template-columns:2.8rem 1fr; gap:1.1rem; padding:1.2rem 0; border-top:1px solid var(--line-dark); }
.protocol-steps li:first-child { border-top:2px solid var(--gold); }
.protocol-step-no { font-family:var(--font-head); font-size:1.5rem; color:var(--gold-bright); line-height:1; }
.protocol-steps b { display:block; font-family:var(--font-body); font-weight:600; font-size:1.05rem; margin-bottom:.2rem; color:var(--paper); }
.protocol-steps .txt { color:var(--sepia-light); font-size:.96rem; }
.protocol-steps .paragraph-ref { font-family:var(--font-mono); font-size:.78rem; color:var(--gold-bright); }
@media (min-width:860px){ .protocol-block{ grid-template-columns:.85fr 1.15fr; gap:4rem; } .protocol-cta{ width:auto; } }

/* Verfahrensphasen */
.phases { list-style:none; border-top:2px solid var(--gold); }
.phase { display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.4rem 0; border-bottom:1px solid var(--line); }
.phase-num { font-family:var(--font-head); font-size:1.7rem; color:var(--gold); line-height:1.1; }
.phase h3 { margin-bottom:.45rem; }
.phase p { color:var(--sepia); }
.phase-ref { grid-column:2; font-family:var(--font-mono); font-size:.74rem; color:var(--sepia); padding-top:.4rem; }
@media (min-width:900px){
  .phase { grid-template-columns:minmax(4rem,6rem) 1fr minmax(0,13rem); gap:2.2rem; padding:1.9rem 0; }
  .phase-num { font-size:2.4rem; }
  .phase-ref { grid-column:auto; text-align:right; align-self:start; }
}

/* Kanzlei / Split */
.split { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
@media (min-width:860px){ .split{ grid-template-columns:1.05fr .95fr; gap:3.5rem; } }
.fact-sheet { background:var(--paper); border:1px solid var(--line-strong); }
.fact-sheet-head { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.16em; color:var(--gold-ink); padding:.8rem 1.3rem; border-bottom:1px solid var(--line-strong); background:var(--gold-wash); text-transform:uppercase; }
.fact-list { list-style:none; }
.fact-list li { padding:.85rem 1.3rem; border-bottom:1px solid var(--line); font-size:.93rem; }
.fact-list li:last-child { border-bottom:none; }
.fact-label { display:block; font-family:var(--font-mono); font-size:.64rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-ink); margin-bottom:.15rem; }
@media (min-width:640px){ .fact-list li{ display:grid; grid-template-columns:9.5rem 1fr; gap:1rem; } .fact-label{ padding-top:.25rem; margin-bottom:0; } }

/* Kontakt-Band */
.contact-band { background:var(--ink); color:var(--paper); }
.contact-band .section-kicker { color:var(--gold-bright); }
.contact-band h2 { color:var(--paper); max-width:15ch; margin-bottom:1rem; }
.contact-band p { max-width:50ch; color:var(--sepia-light); margin-bottom:1.8rem; }
.phone-big { font-family:var(--font-head); font-size:clamp(1.6rem,6vw,3rem); color:var(--gold-bright); text-decoration:none; display:inline-block; margin-bottom:1.8rem; border-bottom:2px solid var(--gold); padding-bottom:.25rem; }
.phone-big:hover { color:var(--paper); border-color:var(--paper); }

/* Inhaltsseiten */
.page-hero { background:var(--ink); color:var(--paper); padding:2.6rem 0; position:relative; }
.page-hero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,var(--gold) 0%,var(--gold-bright) 100%); }
.page-hero h1 { color:var(--paper); max-width:none; font-size:clamp(1.5rem,3vw,2.2rem); line-height:1.15; }
.page-hero .lead { color:var(--sepia-light); margin-top:1.1rem; max-width:620px; }
@media (min-width:900px){ .page-hero{ padding:3.8rem 0; } }
.prose { max-width:900px; margin-left:0; margin-right:0; }
.prose p { font-size:1.05rem; line-height:1.7; }
.prose h2 { margin:2.6rem 0 1rem; }
.prose h3 { margin:2rem 0 .6rem; }
.prose p { margin-bottom:1.05rem; }
.prose ul, .prose ol { margin:0 0 1.05rem 1.25rem; }
.prose li { margin-bottom:.4rem; }
.prose .paragraph-ref { font-family:var(--font-mono); font-size:.78rem; color:var(--gold); }
.notice { border:1px solid var(--line-strong); border-left:4px solid var(--gold); background:var(--cream); padding:1.1rem 1.3rem; margin:1.6rem 0; font-size:.95rem; }

/* Foto auf Zur-Person */
.person-photo { background:var(--ink); border:1px solid var(--line-strong); }
.person-photo img { width:100%; display:block; filter:grayscale(100%) contrast(1.05); }

/* Mobile: Foto zuerst (unter dem Namen), dann Werdegang, dann Lebenslauf */
.person-split { display:grid; grid-template-columns:1fr; gap:1.6rem; }
.person-photo-mobile { max-width:320px; margin:0 auto; order:1; }
.person-photo-desktop { display:none; }
.person-cv { order:2; }
.person-side { order:3; }

@media (min-width:860px){
  .person-split { grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:start; }
  .person-photo-mobile { display:none; }
  .person-photo-desktop { display:block; margin-bottom:1.4rem; }
  .person-cv { order:1; grid-column:1; grid-row:1 / span 2; }
  .person-side { order:2; grid-column:2; grid-row:1; }
}

/* Kontaktseite / Formular */
.contact-grid { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
@media (min-width:860px){ .contact-grid{ grid-template-columns:.9fr 1.1fr; gap:3.5rem; } }
.contact-details p { margin-bottom:1rem; }
.contact-details .detail-label { font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); display:block; margin-bottom:.1rem; }
.contact-details a { font-size:1.1rem; }
.contact-photo { margin:1.8rem 0 0; max-width:340px; }
.contact-photo img { width:100%; height:auto; display:block; border:1px solid var(--line-strong); }
.contact-photo figcaption { margin-top:.6rem; font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--sepia); }
@media (min-width:860px){ .contact-photo { max-width:none; } }
.form { background:var(--cream); border:1px solid var(--line-strong); }
.form-head { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em; color:var(--gold-ink); padding:.8rem 1.3rem; border-bottom:1px solid var(--line-strong); background:var(--gold-wash); text-transform:uppercase; }
.form-inner { padding:1.4rem 1.25rem; }
@media (min-width:640px){ .form-inner{ padding:2rem 1.9rem; } }
.form-row { margin-bottom:1.2rem; }
.form label { display:block; font-family:var(--font-body); font-size:.9rem; font-weight:600; margin-bottom:.4rem; }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form textarea { width:100%; font:inherit; font-size:1rem; padding:.85rem .9rem; border:1px solid var(--line-strong); background:var(--paper); border-radius:0; -webkit-appearance:none; appearance:none; }
.form input:focus, .form textarea:focus { outline:2px solid var(--gold); outline-offset:0; border-color:var(--gold); }
.form textarea { min-height:160px; resize:vertical; }
.form .hint { font-size:.8rem; color:var(--sepia); margin-top:.35rem; }
.form .checkbox-row { display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; }
.form .checkbox-row input { margin-top:.3rem; accent-color:var(--gold); width:18px; height:18px; flex:none; }
.form .checkbox-row label { font-weight:400; }
.form button { width:100%; }
@media (min-width:640px){ .form button{ width:auto; } }
.hp-field { position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }
.alert { padding:1rem 1.1rem; margin-bottom:1.4rem; font-size:.94rem; border:1px solid; }
.alert-success { background:#E9EEE2; border-color:#4C6B3C; color:#3A5A2C; }
.alert-error { background:#F4E6E2; border-color:#A6482C; color:#8A3A22; }

/* Footer */
.site-footer { background:var(--ink); color:var(--sepia-light); border-top:2px solid var(--gold); }
.footer-grid { display:grid; grid-template-columns:1fr; gap:1.8rem; padding-top:2.8rem; padding-bottom:2rem; }
@media (min-width:560px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:900px){ .footer-grid{ grid-template-columns:repeat(4,1fr); gap:2rem; padding-top:3.4rem; } }
.footer-brand { font-family:var(--font-head); font-weight:600; font-size:1.2rem; color:var(--paper); }
.footer-sub { font-family:var(--font-mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-bright); margin-bottom:1rem; }
.footer-heading { font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-bright); margin-bottom:.8rem; }
.site-footer a { color:var(--paper); }
.site-footer a:hover { color:var(--gold-bright); }
.footer-nav { list-style:none; }
.footer-nav li { margin-bottom:.55rem; }
.footer-nav a { display:inline-block; padding:.15rem 0; }
.footer-note { font-size:.84rem; color:var(--sepia-light); margin-top:.8rem; }
address { font-style:normal; }
.footer-bottom { border-top:1px solid var(--line-dark); padding-top:1.1rem; padding-bottom:1.3rem; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.04em; color:#948B7C; display:flex; justify-content:space-between; gap:.8rem; flex-wrap:wrap; }

/* =========================================================
   Dropdown-Navigation – „Tätigkeitsbereiche"
   Mobil: aufklappbares Untermenü (Akkordeon).
   Desktop: Hover-/Fokus-Dropdown.
   ========================================================= */
.nav-item { position:relative; }
.nav-drop-head { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line-dark); }
.nav-drop-head > a { flex:1 1 auto; border-bottom:none!important; }
.nav-drop-toggle { flex:none; background:none; border:none; color:var(--paper); padding:.9rem .8rem; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; }
.nav-drop-caret { width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s ease; margin-top:-3px; }
.has-dropdown.is-open .nav-drop-caret { transform:rotate(-135deg); margin-top:3px; }

.nav-dropdown { list-style:none; display:none; }
.has-dropdown.is-open .nav-dropdown { display:block; }
.nav-dropdown a { display:block; color:var(--sepia-light); text-decoration:none; font-family:var(--font-body); font-weight:600; font-size:.98rem; letter-spacing:.01em; padding:.7rem .2rem .7rem 1.2rem; border-bottom:1px solid var(--line-dark); }
.nav-dropdown a:last-child { border-bottom:none; }
.nav-dropdown a:hover, .nav-dropdown a[aria-current="page"] { color:var(--gold-bright); }

@media (min-width:900px){
  .nav-drop-head { border-bottom:none; }
  .nav-drop-toggle { padding:.5rem .1rem .5rem .35rem; min-height:auto; min-width:auto; }
  .nav-dropdown {
    display:block; position:absolute; top:100%; left:0; min-width:290px;
    background:var(--ink); border:1px solid var(--line-dark); border-top:2px solid var(--gold);
    padding:.4rem 0; box-shadow:0 18px 42px rgba(0,0,0,.30);
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s;
    z-index:60;
  }
  .has-dropdown:hover .nav-dropdown,
  .has-dropdown:focus-within .nav-dropdown,
  .has-dropdown.is-open .nav-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
  .nav-dropdown a { color:var(--paper); padding:.62rem 1.3rem; border-bottom:none; white-space:nowrap; position:static; }
  .nav-dropdown a::after { display:none; }
  .nav-dropdown a:hover { color:var(--gold-bright); background:var(--coal); }
}

/* Anker-Navigation auf der Tätigkeitsbereiche-Seite */
.area-chips { list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 .4rem; padding:0; }
.area-chips li { margin:0; }
.area-chips a { display:inline-block; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.02em; text-decoration:none; color:var(--sepia); border:1px solid var(--line-strong); background:var(--paper); padding:.5rem .85rem; transition:border-color .2s ease,color .2s ease,background .2s ease; }
.area-chips a:hover { border-color:var(--gold); color:var(--ink); }
.area-block { scroll-margin-top:120px; padding-top:1rem; }
.area-block + .area-block { margin-top:.5rem; border-top:1px solid var(--line); }
.area-block h2 { display:flex; align-items:baseline; gap:.7rem; }
.area-block .area-tag { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }

/* Reveal */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .6s ease,transform .6s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation:none!important; transition:none!important; } .reveal{ opacity:1; transform:none; } }
