@charset "UTF-8";
/* ====================================================================
   Steuerkanzlei Fidelsberger – Stylesheet
   Aufbau:  1 Tokens · 2 Reset · 3 Basis · 4 Layout · 5 Komponenten
            6 Seiten · 7 Hilfsklassen
   Alle Werte kommen aus den Tokens. Keine Einzelwerte in Seitenregeln.
   ==================================================================== */

/* ============================ 1 · TOKENS ========================== */
:root {
  /* Marke */
  --c-navy-900:#002D53; --c-navy-800:#001B31; --c-navy-700:#002D53;
  --c-navy-600:#285F87; --c-navy-100:#E6EEF4; --c-navy-050:#F2F7FB;

  /* Gelbgold-Akzent */
  --c-accent-600:#667683; --c-accent-500:#74838F; --c-accent-100:#E4E9EC;
  --c-heading-gold:#002D53; --c-heading-gold-on-dark:#9FB2BF;
  --c-text-accent:#002D53;

  /* Neutral */
  --c-ink-900:#101418; --c-ink-700:#3A434D; --c-ink-500:#6B747E;
  --c-line:#DCE2E8; --c-surface:#FFFFFF; --c-surface-2:#F7F9FB; --c-surface-3:#FBF7F2;

  /* Status */
  --c-success:#1F6B4A; --c-error:#A32020; --c-warning:#8A6100;
  --c-focus:#002D53;

  /* Schrift */
  --f-serif:"Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --f-sans:"Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

  /* Globale Schriftverkleinerung: jeder Token -1,5px */
  --t-display:clamp(calc(2.1rem - 1.5px), 1.35rem + 3.2vw, calc(3.5rem - 1.5px));
  --t-h1:clamp(calc(1.8rem - 1.5px), 1.3rem + 2.1vw, calc(2.65rem - 1.5px));
  --t-h2:clamp(calc(1.45rem - 1.5px), 1.15rem + 1.45vw, calc(2rem - 1.5px));
  --t-h3:clamp(calc(1.25rem - 1.5px), 1.08rem + .7vw, calc(1.5rem - 1.5px));
  --t-lead:clamp(calc(1.06rem - 1.5px), 1rem + .4vw, calc(1.25rem - 1.5px));
  --t-body:calc(1.0625rem - 1.5px);
  --t-small:calc(.9375rem - 1.5px);
  --t-label:calc(.8125rem - 1.5px);

  --lh-tight:1.06; --lh-head:1.1; --lh-body:1.65;
  --ls-tight:-.02em; --ls-label:.08em;

  /* Raster */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.5rem;
  --sp-6:2rem; --sp-7:3rem; --sp-8:4rem; --sp-9:6rem; --sp-10:8rem;

  --container:1200px; --container-wide:1360px; --container-text:760px;
  --gutter:clamp(1rem, 4vw, 2.5rem);
  --section-y:clamp(2.75rem, 5vw, 4.5rem);
  --section-y-tight:clamp(2rem, 3.5vw, 3rem);

  /* Form */
  --r-sm:4px; --r-md:8px; --r-lg:14px; --r-full:999px;
  --sh-1:0 1px 2px rgba(11,31,51,.06), 0 2px 8px rgba(11,31,51,.05);
  --sh-2:0 8px 28px rgba(11,31,51,.10);
  --sh-focus:0 0 0 3px rgba(27,69,112,.35);

  /* Bewegung */
  --e-out:cubic-bezier(.16,.84,.44,1);
  --d-fast:140ms; --d-base:220ms; --d-slow:420ms;

  --header-h:76px;
}

/* Poppins wird vollständig lokal ausgeliefert. Dadurch entstehen beim
   Seitenaufruf keine Verbindungen zu externen Schriftanbietern. */
@font-face {
  font-family:"Poppins"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/poppins-400.ttf") format("truetype");
}
@font-face {
  font-family:"Poppins"; font-style:normal; font-weight:500; font-display:swap;
  src:url("../fonts/poppins-500.ttf") format("truetype");
}
@font-face {
  font-family:"Poppins"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/poppins-600.ttf") format("truetype");
}

/* Historische Font-Faces bleiben als inaktive Rückwärtskompatibilität erhalten.
   Selbst gehostete Schriften.
   Die unicode-range-Aufteilung sorgt dafür, dass Besucher deutscher Seiten
   das kyrillische Subset nicht laden – und russische Seiten trotzdem
   korrekt gesetzt werden. */
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/inter-latin-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2122,U+2191,U+2193,U+2212;
}
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/inter-latin-ext-400.woff2") format("woff2");
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+2113,U+A720-A7FF;
}
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/inter-cyrillic-400.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:500; font-display:swap;
  src:url("../fonts/inter-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0100-024F,U+2000-206F;
}
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/inter-latin-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0100-024F,U+2000-206F;
}
@font-face {
  font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/inter-cyrillic-600.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family:"Source Serif 4"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/source-serif-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0100-024F,U+2000-206F;
}
@font-face {
  font-family:"Source Serif 4"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/source-serif-cyrillic-600.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+2116;
}

/* ============================ 2 · RESET =========================== */
*,*::before,*::after{box-sizing:border-box;min-width:0}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;background:var(--c-surface);color:var(--c-ink-900);
  font:400 var(--t-body)/var(--lh-body) var(--f-sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img,picture,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
table{border-collapse:collapse;width:100%}
address{font-style:normal}
[hidden]{display:none !important}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ============================ 3 · BASIS =========================== */
h1,h2,h3{font-family:"Proxima Nova",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-weight:600;letter-spacing:.01em;
  color:var(--c-heading-gold);text-wrap:balance}
h1{font-size:var(--t-h1);line-height:var(--lh-tight)}
h2{font-size:var(--t-h2);line-height:var(--lh-head)}
h3{font-size:var(--t-h3);line-height:var(--lh-head)}

.heading-highlight{color:var(--c-navy-900);padding-inline:.035em;
  font-family:"Proxima Nova",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:1.02em;font-weight:700;line-height:.98;letter-spacing:-.025em}
.band .heading-highlight{color:#fff}

/* Hero-Schlagworte: sanftes Ein-/Ausblenden beim Wortwechsel.
   inline (nicht inline-block), damit der Text hinter "Berlin." in der
   Zeile weiterfließt statt als Block darunter zu rutschen. */
.hero__flip{display:inline;opacity:1}

a{color:var(--c-navy-700);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--c-navy-800)}

:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-sm)}

::selection{background:var(--c-navy-100)}

.skip-link{position:absolute;left:var(--sp-4);top:-4rem;z-index:100;padding:var(--sp-3) var(--sp-5);
  background:var(--c-navy-900);color:#fff;border-radius:var(--r-md);text-decoration:none;
  transition:top var(--d-fast) var(--e-out)}
.skip-link:focus{top:var(--sp-4);color:#fff}

.eyebrow{display:none}

.richtext{max-width:68ch}
.richtext > * + *{margin-top:var(--sp-4)}
.richtext h2{font-size:var(--t-h2);margin-top:var(--sp-7)}
.richtext h3{font-size:var(--t-h3);margin-top:var(--sp-6)}
.richtext ul{list-style:none;display:grid;gap:var(--sp-3)}
.richtext ul li{position:relative;padding-left:1.5rem}
.richtext ul li::before{content:"";position:absolute;left:.25rem;top:.7em;width:6px;height:6px;
  border-radius:50%;background:var(--c-accent-600)}
.richtext ol{list-style:decimal;padding-left:1.4rem;display:grid;gap:var(--sp-3)}
.richtext blockquote{border-left:3px solid var(--c-accent-600);padding-left:var(--sp-5);
  font-family:var(--f-serif);font-size:var(--t-lead)}
.richtext--legal{max-width:72ch;font-size:var(--t-small)}
.richtext--legal h2{font-size:var(--t-h3)}

.link-arrow{font-weight:600;text-decoration:none;
  box-shadow:inset 0 -1px 0 var(--c-accent-600);transition:box-shadow var(--d-fast)}
.link-arrow:hover{box-shadow:inset 0 -2px 0 var(--c-accent-600)}

/* ============================ 4 · LAYOUT ========================== */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container-wide{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--gutter)}
.container--narrow{max-width:calc(var(--container-text) + var(--gutter) * 2)}
.pagehead > .container--narrow,.section > .container--narrow{max-width:var(--container)}

.section{padding-block:var(--section-y)}
.section--alt{background:var(--c-surface-2)}
.section--warm{background:var(--c-surface-3)}
.section--blue{background:var(--c-navy-050)}
.section--top-tight{padding-top:var(--section-y-tight)}
.section__title{font-size:clamp(1.35rem,1.15rem + 1vw,1.75rem);margin-bottom:var(--sp-5);text-align:center}
.section__header{width:100%;max-width:52rem;margin:0 auto var(--sp-6);text-align:center}
.section__header .section__title{margin-bottom:0}
.section__lead{margin:0 auto var(--sp-6);max-width:52rem;text-align:center}
.section__action{margin-top:var(--sp-6)}
.section__link{margin-top:var(--sp-4)}

.breadcrumbs{background:var(--c-surface);font-size:calc(.78rem - 1.5px);color:var(--c-ink-500)}
.breadcrumbs ol{display:flex;align-items:center;gap:.45rem;min-height:2.35rem;overflow-x:auto;white-space:nowrap}
.breadcrumbs li{display:flex;align-items:center;gap:.45rem}
.breadcrumbs li:not(:last-child)::after{content:"/";color:var(--c-line)}
.breadcrumbs a{color:var(--c-ink-700);text-decoration:none}
.breadcrumbs a:hover{text-decoration:underline}

.local-seo__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr);align-items:center;gap:clamp(2rem,5vw,5rem)}
.local-seo__media .picture,.local-seo__media img{border-radius:var(--r-lg)}
.local-seo__media video{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-lg)}
.local-seo__body>p{max-width:48ch}
.local-seo__address{margin-top:var(--sp-5);padding-left:var(--sp-5);border-left:3px solid var(--c-navy-900);line-height:1.6}
.local-seo__links{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-5);margin-top:var(--sp-6)}
.reviews__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}
.review{padding:var(--sp-6);border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface)}
.review blockquote{font-size:var(--t-lead)}
.review figcaption{margin-top:var(--sp-4);font-weight:600;color:var(--c-navy-900)}

/* ========================= 5 · KOMPONENTEN ======================== */

/* --- Buttons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:48px;padding:0 var(--sp-6);border:1px solid transparent;border-radius:var(--r-md);
  font-size:var(--t-body);font-weight:600;line-height:1;text-align:center;text-decoration:none;
  transition:background var(--d-base) var(--e-out), border-color var(--d-base), color var(--d-base)}
.btn--primary{background:var(--c-navy-700);color:#fff}
.btn--primary:hover{background:var(--c-navy-800);color:#fff}
.btn--callback{background:var(--c-success);border-color:var(--c-success);color:#fff}
.btn--callback:hover{background:#155139;border-color:#155139;color:#fff}
.btn--secondary{border-color:var(--c-navy-700);color:var(--c-navy-700);background:transparent}
.btn--secondary:hover{background:var(--c-navy-100);color:var(--c-navy-800)}
.btn--ghost{min-height:44px;padding:0 var(--sp-2);color:var(--c-navy-700);
  box-shadow:inset 0 -1px 0 var(--c-accent-600)}
.btn--onDark{background:#fff;color:var(--c-navy-900)}
.btn--onDark:hover{background:var(--c-navy-100);color:var(--c-navy-900)}
.btn--sm{min-height:42px;padding:0 var(--sp-4);font-size:var(--t-small)}
.btn--block{width:100%}

/* --- Header --- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--c-line)}
/* Bei offenem Mobilmenü Header deckend, sonst scheint Seiteninhalt durch. */
.menu-open .site-header{background:#fff;backdrop-filter:none}
.site-header__inner{display:flex;align-items:center;gap:clamp(var(--sp-3),1.5vw,var(--sp-5));
  min-height:var(--header-h)}

.brand{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none}
.brand__logo{display:block;width:clamp(12.5rem,17vw,15.5rem);height:auto}
.brand--footer{width:max-content;max-width:100%;margin-bottom:var(--sp-4);padding:.7rem .8rem;
  border-radius:var(--r-md);background:#fff}
.brand--footer .brand__logo{width:min(17rem,100%)}

.mainnav{margin-left:auto}
.mainnav__list{display:flex;align-items:center;gap:clamp(1.1rem,2vw,2rem)}
.mainnav__item > a,.mainnav__toggle{display:inline-flex;align-items:center;gap:var(--sp-2);
  padding:var(--sp-2) 0;font-size:calc(.94rem - 1.5px);font-weight:600;text-decoration:none;
  color:var(--c-ink-900);border-bottom:2px solid transparent;white-space:nowrap}
.mainnav__item > a:hover,.mainnav__toggle:hover{border-bottom-color:var(--c-accent-600)}
.mainnav__toggle[aria-expanded="true"]{border-bottom-color:var(--c-accent-600)}
.mainnav__toggle[aria-expanded="true"] .chevron{transform:rotate(180deg)}
.chevron{transition:transform var(--d-fast) var(--e-out)}

.mega{position:absolute;left:0;right:0;top:100%;background:var(--c-surface);
  border-bottom:1px solid var(--c-line);box-shadow:var(--sh-2)}
.mega__inner{display:grid;grid-template-columns:1fr 1fr .8fr;gap:var(--sp-7);
  padding-block:var(--sp-7)}
.mega__inner--single{grid-template-columns:minmax(0,2fr) minmax(16rem,.8fr)}
.mega__label{font-size:var(--t-label);font-weight:600;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-text-accent);margin-bottom:var(--sp-4)}
.mega__label a{color:inherit;text-decoration:none}
.mega__label a:hover{text-decoration:underline}
.mega__list{display:grid;gap:var(--sp-3)}
.mega__list--columns{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--sp-7)}
.mega__list a{text-decoration:none;color:var(--c-ink-900);font-weight:500}
.mega__list a:hover{color:var(--c-navy-700)}
.mega__all{margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--c-line)}
.mega__all--wide{grid-column:1/-1}
.mega__all a{color:var(--c-navy-700);font-weight:600}
.mega__aside{border-left:1px solid var(--c-line);padding-left:var(--sp-6)}
.mega__aside-title{font-weight:600;margin-bottom:var(--sp-3)}
.mega__aside > p:not(.mega__aside-title){font-size:var(--t-small);color:var(--c-ink-500);margin-bottom:var(--sp-2)}
.mega__contact{display:grid;gap:var(--sp-3);margin-bottom:var(--sp-5);
  color:var(--c-ink-700);font-size:var(--t-small);font-style:normal}
.mega__contact-row{display:flex;align-items:flex-start;gap:var(--sp-3);line-height:1.45}
.mega__contact-row svg{flex:0 0 auto;margin-top:2px;color:var(--c-accent-600)}
.mega__contact-phone{align-items:center;color:var(--c-navy-900);font-weight:600;text-decoration:none}
.mega__contact-phone:hover{color:var(--c-text-accent)}

.site-header__tools{display:flex;align-items:center;gap:var(--sp-3)}
.header-phone{display:none;align-items:center;gap:var(--sp-2);font-size:var(--t-small);
  font-weight:500;text-decoration:none;color:var(--c-ink-700);white-space:nowrap}
.header-phone:hover{color:var(--c-navy-700)}

.site-header__mobile{display:none;align-items:center;gap:var(--sp-2);margin-left:auto}
.site-header__mobile .langswitch__button{min-height:44px;padding:0 var(--sp-2)}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-md);color:var(--c-navy-900);
  border:1px solid var(--c-line);text-decoration:none}
.iconbtn:hover{background:var(--c-navy-100)}
.burger__bars{position:relative;display:block;width:18px;height:2px;background:currentColor}
.burger__bars::before,.burger__bars::after{content:"";position:absolute;left:0;width:18px;height:2px;
  background:currentColor;transition:transform var(--d-base) var(--e-out), top var(--d-base)}
.burger__bars::before{top:-6px}
.burger__bars::after{top:6px}
.burger[aria-expanded="true"] .burger__bars{background:transparent}
.burger[aria-expanded="true"] .burger__bars::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger__bars::after{top:0;transform:rotate(-45deg)}

/* --- Sprachumschalter --- */
.langswitch{position:relative}
.langswitch__button{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:40px;
  padding:0 var(--sp-3);border:1px solid var(--c-line);border-radius:var(--r-md);
  font-size:var(--t-small);font-weight:600}
.langswitch__list{position:absolute;right:0;top:calc(100% + 6px);min-width:12rem;z-index:60;
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);
  box-shadow:var(--sh-2);padding:var(--sp-2);display:grid;gap:2px}
.langswitch__list a,.langswitch__current,.langswitch__disabled{display:flex;align-items:center;
  gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);
  font-size:var(--t-small);text-decoration:none}
.langswitch__list a:hover{background:var(--c-navy-100)}
.langswitch__current{font-weight:600;background:var(--c-navy-100)}
.langswitch__disabled{color:var(--c-ink-500);cursor:not-allowed}
.langswitch__disabled .flag{opacity:.45}

.langlist{display:grid;gap:var(--sp-2)}
.langlist a,.langlist > li > span{display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-2) 0;text-decoration:none;font-weight:500}
.langlist__disabled{color:var(--c-ink-500)}
.langlist__disabled .flag{opacity:.45}

/* Rundes Flaggensymbol.
   Der eingesetzte Rand hält die weißen Anteile (Polen, Russland) auch auf
   hellem Untergrund sichtbar – ohne ihn verschwimmt der Kreis mit der Fläche. */
.flag{display:inline-block;flex:none;width:20px;height:20px;border-radius:50%;
  overflow:hidden;line-height:0;
  box-shadow:inset 0 0 0 1px rgba(16,20,24,.18)}
.flag svg{display:block;width:100%;height:100%}

/* --- Mobilmenü --- */
.mobilemenu{position:fixed;inset:0;z-index:55;background:var(--c-surface);
  display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.mobilemenu[hidden]{display:none}
.mobilemenu__bar{display:flex;justify-content:flex-end;align-items:center;
  min-height:var(--header-h);padding:var(--sp-2) var(--gutter);border-bottom:1px solid var(--c-line)}
.mobilemenu__close{width:44px;height:44px}
.mobilemenu__scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding:var(--sp-5) var(--gutter) var(--sp-6)}
.mobilemenu__group{border-bottom:1px solid var(--c-line)}
.mobilemenu__group summary{display:flex;justify-content:space-between;align-items:center;
  padding:var(--sp-4) 0;font-size:calc(1.2rem - 1.5px);font-weight:600;cursor:pointer;list-style:none}
.mobilemenu__group summary::-webkit-details-marker{display:none}
.mobilemenu__group summary::after{content:"";width:9px;height:9px;
  border-right:2px solid var(--c-accent-600);border-bottom:2px solid var(--c-accent-600);
  transform:rotate(45deg);transition:transform var(--d-base)}
.mobilemenu__group[open] summary::after{transform:rotate(225deg)}
.mobilemenu__group ul{padding:0 0 var(--sp-4);display:grid;gap:var(--sp-3)}
.mobilemenu__group a{text-decoration:none;color:var(--c-ink-700)}
.mobilemenu__group a:hover{color:var(--c-navy-700)}
.mobilemenu__overview{padding-top:var(--sp-2);border-top:1px solid var(--c-line)}
.mobilemenu__overview a{color:var(--c-navy-700);font-weight:600}
.mobilemenu__flat{margin-top:var(--sp-4);display:grid}
.mobilemenu__flat--top{margin-top:0}
.mobilemenu__cta{margin-top:var(--sp-5)}
.mobilemenu__flat a{display:block;padding:var(--sp-4) 0;border-bottom:1px solid var(--c-line);
  font-size:calc(1.2rem - 1.5px);font-weight:600;text-decoration:none;color:var(--c-ink-900)}
.mobilemenu__lang{margin-top:var(--sp-6)}
.mobilemenu__lang-title{font-size:var(--t-label);font-weight:600;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-ink-500);margin-bottom:var(--sp-2)}
.mobilemenu__foot{display:grid;gap:var(--sp-3);padding:var(--sp-4) var(--gutter);
  padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));
  border-top:1px solid var(--c-line);background:var(--c-surface-2)}

/* --- Bilder --- */
.figure{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--c-surface-2)}
.figure picture{width:100%;height:100%}
.figure img{width:100%;height:100%;object-fit:cover}
.figure--ratio-16-9{aspect-ratio:16/9}
.figure--ratio-3-2{aspect-ratio:3/2}
.figure--ratio-4-5{aspect-ratio:4/5}
.figure--ratio-1-1{aspect-ratio:1/1}
.figure--empty{display:grid;place-items:center;border:1px dashed var(--c-line);
  background:repeating-linear-gradient(135deg,transparent 0 11px,rgba(27,69,112,.05) 11px 22px),var(--c-surface-3)}
.figure__label{font-size:var(--t-label);font-weight:500;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-ink-500);text-align:center;padding:var(--sp-4)}
.figure__placeholder-note{position:absolute;left:var(--sp-3);bottom:var(--sp-3);
  padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);
  background:var(--c-accent-100);color:var(--c-ink-900);font-size:calc(.75rem - 1.5px);font-weight:600}
/* Halbtransparent: Der Hinweis muss lesbar bleiben, aber nicht auffallen.
   Er erscheint nur bei Bildern mit gesetzter KI-Kennzeichnung. */
.figure__ai-note{position:absolute;right:.42rem;bottom:.38rem;z-index:2;
  color:rgba(255,255,255,.5);font-size:clamp(.45rem,.43rem + .06vw,.525rem);font-weight:500;
  line-height:1;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,20,37,.38);pointer-events:none}

/* --- Kacheln --- */
.tilegrid{display:grid;gap:var(--sp-4)}
/* Alle Branchenkacheln gleich groß – auch über mehrere Reihen hinweg. */
.tilegrid--industries{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
  grid-auto-rows:1fr}
.tilegrid--services{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.tile{display:grid;gap:var(--sp-3);align-content:start;padding:var(--sp-6);
  border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface);
  text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(0,45,83,.05);
  transition:border-color var(--d-base), transform var(--d-base) var(--e-out), box-shadow var(--d-base)}
.tile:hover{border-color:var(--c-navy-600);transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(0,45,83,.14);color:inherit}
.tile:hover .tile__more{transform:translateX(4px)}
.tile__more{transition:transform var(--d-base) var(--e-out)}
.tile__title{font-size:calc(1.15rem - 1.5px);color:var(--c-navy-900)}
.tile__text{font-size:var(--t-small);color:var(--c-ink-700)}
.tile__more{color:var(--c-text-accent);font-weight:600}
.tile--compact{padding:var(--sp-5)}
.tile--call{background:var(--c-navy-100);border-color:rgba(0,45,83,.18);color:var(--c-navy-900)}
.tile--call .tile__title{color:var(--c-navy-900)}
.tile--call .tile__text{color:var(--c-ink-700)}
.tile--call:hover{background:#D8E5EF;border-color:var(--c-navy-600);color:var(--c-navy-900)}
.tile__phone{display:flex;align-items:center;gap:var(--sp-2);margin-top:auto;
  color:var(--c-navy-900);font-size:calc(1.15rem - 1.5px);font-weight:600}
.tile__phone svg{flex:0 0 auto}

/* Branchen – dunkle Kacheln, Flatdesign (nur diese Section) */
.tilegrid--industries .tile{
  background:var(--c-navy-900);
  border:1px solid var(--c-navy-900);
  box-shadow:none;
  color:#fff}
.tilegrid--industries .tile__title{color:#fff}
.tilegrid--industries .tile__text{color:rgba(255,255,255,.72)}
.tilegrid--industries .tile__more{color:var(--c-heading-gold-on-dark);
  transition:transform var(--d-base) var(--e-out)}
.tilegrid--industries .tile:hover{
  background:var(--c-navy-800);border-color:var(--c-heading-gold-on-dark);
  transform:none;box-shadow:none;color:#fff}
.tilegrid--industries .tile:hover .tile__more{transform:translateX(5px)}

/* Anruf-Kachel als goldener Akzent, flach */
.tilegrid--industries .tile--call{
  background:#667683;border-color:#667683}
.tilegrid--industries .tile--call .tile__title,
.tilegrid--industries .tile--call .tile__phone{color:#fff}
.tilegrid--industries .tile--call .tile__text{color:rgba(255,255,255,.85)}
.tilegrid--industries .tile--call:hover{
  background:#74838f;border-color:#74838f}

/* --- Karten --- */
.cardgrid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.card{padding:var(--sp-6);border:1px solid var(--c-line);border-radius:var(--r-lg);
  background:var(--c-surface)}
.card__title{font-size:var(--t-h3);margin-bottom:var(--sp-3);color:var(--c-navy-900)}
.card__text{color:var(--c-ink-700)}

/* --- Häkchenliste --- */
.ticks{display:grid;gap:var(--sp-3)}
.ticks li{position:relative;padding-left:1.9rem;color:var(--c-ink-700)}
.ticks li::before{content:"";position:absolute;left:.15rem;top:.55em;width:11px;height:6px;
  border-left:2px solid var(--c-accent-600);border-bottom:2px solid var(--c-accent-600);
  transform:rotate(-45deg)}
.ticks strong{color:var(--c-navy-900)}
.ticks span{display:block;font-size:var(--t-small)}
.ticks--head{margin-top:var(--sp-5);gap:0}
.ticks--head li{padding:var(--sp-4) 0 var(--sp-4) 2rem;border-top:1px solid var(--c-line)}
.ticks--head li:first-child{border-top:0}
.ticks--head li::before{top:calc(var(--sp-4) + .5em)}
.ticks--head strong{display:block;margin-bottom:.2rem;font-size:calc(1.05rem - 1.5px)}
.ticks--head span{color:var(--c-ink-500);line-height:1.55}
/* Dunkle Section (Navy) mit weißem Text */
.section--navy{background:#002D53}
.section--navy .section__title{color:#fff}
.section--navy .heading-highlight{color:var(--c-heading-gold-on-dark)}
.section--navy .prose-block{color:rgba(255,255,255,.85)}
.section--navy .eyebrow{color:rgba(255,255,255,.7)}
.section--navy .mapblock{border-color:rgba(255,255,255,.28)}
.section--navy .mapblock__notice,.section--navy .mapblock__alt{color:rgba(255,255,255,.85)}

/* Fließtext-Block (eigene Section, z. B. Landingpage-Vorteile) */
.prose-block{margin:var(--sp-5) auto 0;display:grid;gap:var(--sp-4);
  max-width:62ch;color:var(--c-ink-700);line-height:1.7;text-align:center}
.prose-block p{margin:0}
.section--bullets{background:var(--c-navy-050);
  border-block:1px solid rgba(102,118,131,.12)}
.section--bullets .section__title{margin-bottom:var(--sp-6)}
.ticks--section{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}
.ticks--section li{display:grid;align-content:center;min-height:6.25rem;
  padding:var(--sp-5) var(--sp-5) var(--sp-5) 4.25rem;border:1px solid rgba(0,45,83,.12);
  border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--sh-1)}
.ticks--section li::before{left:1.25rem;top:50%;width:2rem;height:2rem;border:1px solid rgba(102,118,131,.2);
  border-radius:50%;background:var(--c-accent-100);transform:translateY(-50%)}
.ticks--section li::after{content:"";position:absolute;left:1.84rem;top:50%;width:10px;height:6px;
  border-left:2px solid var(--c-accent-600);border-bottom:2px solid var(--c-accent-600);
  transform:translateY(-65%) rotate(-45deg)}
.ticks--section > li:last-child:nth-child(odd):not(.phone-cta--tile){grid-column:1/-1}
.phone-cta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}
.phone-cta__text{font-size:var(--t-small);font-weight:600;color:var(--c-ink-700)}
.phone-cta__link{gap:var(--sp-2);white-space:nowrap}
.phone-cta__link svg{flex:0 0 auto}
.ticks--section .phone-cta--tile{display:flex;grid-column:auto;flex-direction:row;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:var(--sp-3);min-height:6.25rem;margin-top:0;
  padding:var(--sp-4) var(--sp-5);overflow:hidden;background:linear-gradient(150deg,var(--c-navy-900),#0B466F);
  border-color:rgba(0,45,83,.28);box-shadow:var(--sh-2);text-align:center}
.ticks--section .phone-cta--tile::before,.ticks--section .phone-cta--tile::after{display:none}
.ticks .phone-cta__intro{display:flex;align-items:center;flex:none}
.ticks .phone-cta--tile .phone-cta__text{display:inline;color:#fff;font-size:calc(1.05rem - 1.5px)}
.phone-cta--tile .phone-cta__link{background:#fff;border-color:#fff;color:var(--c-navy-900)}
.phone-cta--tile .phone-cta__link span{font-size:calc(1rem - 1.5px)}
.phone-cta--tile .phone-cta__link:hover{background:var(--c-accent-100);border-color:var(--c-accent-100);
  color:var(--c-navy-800)}

/* Zentrierte Telefonleiste unter den Vorteile-Kacheln */
.phone-cta--bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:var(--sp-4);max-width:36rem;margin:var(--sp-6) auto 0;padding:var(--sp-4) var(--sp-5);
  border-radius:var(--r-lg);box-shadow:var(--sh-2);text-align:center;
  background:linear-gradient(150deg,var(--c-navy-900),#0B466F)}
.phone-cta--bar .phone-cta__text{color:#fff;font-size:calc(1.1rem - 1.5px);font-weight:700}
.phone-cta__avatar{flex:0 0 auto;width:3.25rem;height:3.25rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:#fff;color:var(--c-navy-900);box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.phone-cta__avatar svg{width:32px;height:32px}
.phone-cta__avatar--photo{background:none}
.phone-cta__avatar .figure{margin:0;width:100%;height:100%;border-radius:50%}
.phone-cta__avatar .figure img,.phone-cta__avatar>img{width:100%;height:100%;object-fit:cover;display:block}
.phone-cta__avatar .figure__ai-note,.phone-cta__avatar .figure__placeholder-note{display:none}
.phone-cta--bar .phone-cta__link{background:#fff;border-color:#fff;color:var(--c-navy-900)}
.phone-cta--bar .phone-cta__link span{font-size:calc(1rem - 1.5px)}
.phone-cta--bar .phone-cta__link:hover{background:var(--c-accent-100);border-color:var(--c-accent-100);
  color:var(--c-navy-800)}
/* Sprachen: boxenlose, strukturierte Liste (bewusst anders als Vorteile-Kacheln) */
.langlist{margin-top:var(--sp-5);border-top:2px solid var(--c-navy-900)}
.langlist__row{display:grid;grid-template-columns:14rem 1fr;gap:clamp(1rem,3vw,3rem);
  align-items:baseline;padding-block:var(--sp-4);border-bottom:1px solid var(--c-line);
  text-align:left;margin:0}
.langlist__lang{font-weight:600;color:var(--c-navy-900);font-size:calc(1.15rem - 1.5px)}
.langlist__desc{margin:0;color:var(--c-ink-700);font-size:calc(1.02rem - 1.5px);line-height:1.5}
@media (max-width:640px){
  .langlist__row{grid-template-columns:1fr;gap:var(--sp-1);padding-block:var(--sp-3)}
}

/* --- Schritte --- */
.steps{display:grid;gap:1px;background:var(--c-line);border:1px solid var(--c-line);
  border-radius:var(--r-lg);overflow:hidden;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.step{background:var(--c-surface);padding:var(--sp-6)}
.step__head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.step__num{display:grid;place-items:center;flex:0 0 2rem;width:2rem;height:2rem;
  border:1.5px solid var(--c-accent-500);border-radius:50%;background:var(--c-accent-100);
  font-size:var(--t-label);font-weight:600;line-height:1;font-variant-numeric:tabular-nums;
  color:var(--c-text-accent)}
.step__title{font-size:calc(1.05rem - 1.5px);line-height:1.2;color:var(--c-navy-900)}
.step__text{font-size:var(--t-small);color:var(--c-ink-700)}

/* --- Kanzlei-App --- */
.section--app{padding-block:var(--section-y) 0;background:var(--c-surface-3);overflow:hidden}
/* Direkt unter dem Abschnitt "Digitale Zusammenarbeit": gleicher Grund,
   kein zusätzlicher Abstand – beide Blöcke lesen sich als ein Bereich. */
.section--app-attached{padding-top:0}
.apppromo{display:grid;grid-template-columns:minmax(17rem,.82fr) 1.18fr;
  align-items:center;gap:clamp(2rem,7vw,6rem)}
.apppromo__visual{display:flex;align-items:flex-start;align-self:end;width:min(100%,29rem);height:clamp(30rem,38vw,34rem);
  justify-self:center;overflow:hidden}
.apppromo__phone{display:block;width:100%;max-width:none;height:auto;transform:translateY(.75rem)}
.apppromo__content{max-width:36rem}
.apppromo__title{max-width:none;margin-bottom:var(--sp-4)}
.apppromo__text{max-width:52ch;color:var(--c-ink-700)}
.apppromo__benefits{display:grid;gap:var(--sp-2);margin-top:var(--sp-5);color:var(--c-ink-700)}
.apppromo__benefits li{position:relative;padding-left:1.75rem}
.apppromo__benefits li::before{content:"✓";position:absolute;left:0;top:.05em;
  display:grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;
  background:var(--c-accent-100);color:var(--c-accent-600);font-size:calc(.72rem - 1.5px);font-weight:600}
.storebuttons{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6)}
.storebutton{display:inline-flex;align-items:center;gap:.9rem;min-width:14.5rem;
  min-height:4.75rem;padding:.65rem 1.4rem;border:1px solid rgba(0,45,83,.08);
  border-radius:var(--r-full);background:linear-gradient(180deg,#fff 0%,#f8fafb 100%);
  color:#26343e;text-decoration:none;box-shadow:0 10px 20px rgba(0,45,83,.15),
  inset 0 1px 0 rgba(255,255,255,.95);
  transition:transform var(--d-fast) var(--e-out),box-shadow var(--d-fast),background var(--d-fast)}
.storebutton:hover{background:#fff;color:#172731;transform:translateY(-2px);
  box-shadow:0 13px 24px rgba(0,45,83,.18),inset 0 1px 0 #fff}
.storebutton__icon{display:grid;place-items:center;width:2.65rem;height:2.65rem;flex:none}
.storebutton__icon svg{width:100%;height:100%;fill:currentColor}
.storebutton__label{display:grid;line-height:1.05;text-align:left}
.storebutton__label span{font-size:calc(.7rem - 1.5px);letter-spacing:.04em;text-transform:uppercase;color:#53616b}
.storebutton__label strong{font-size:calc(1.35rem - 1.5px);font-weight:500;letter-spacing:-.025em;color:#26343e}
.storebutton.is-disabled{opacity:1;cursor:not-allowed}
.storebutton.is-disabled:hover{background:linear-gradient(180deg,#fff 0%,#f8fafb 100%);
  color:#26343e;transform:none;box-shadow:0 10px 20px rgba(0,45,83,.15),inset 0 1px 0 rgba(255,255,255,.95)}
.apppromo__note{margin-top:var(--sp-3);font-size:clamp(.7rem,.68rem + .06vw,.76rem);
  line-height:1.45;color:var(--c-ink-500)}

/* --- Mandanten-App-Login (Anmeldemaske ohne Funktion) --- */
.clientlogin{background:var(--c-surface-2)}
.clientlogin__card{max-width:26rem;margin-inline:auto;padding:var(--sp-7) var(--sp-6);
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);
  box-shadow:0 12px 30px rgba(0,45,83,.08);text-align:center}
.clientlogin__icon{display:inline-grid;place-items:center;width:4rem;height:4rem;margin-bottom:var(--sp-4);
  color:var(--c-navy-900);background:var(--c-surface-2);border-radius:var(--r-full)}
.clientlogin__title{font-size:var(--t-h2);margin:0 0 var(--sp-2)}
.clientlogin__intro{color:var(--c-ink-700);margin:0 0 var(--sp-6)}
.clientlogin__form{display:grid;gap:var(--sp-4);text-align:left}
.clientlogin__submit{width:100%;justify-content:center;margin-top:var(--sp-2)}
.clientlogin__hint{margin-top:var(--sp-5);font-size:var(--t-small);color:var(--c-ink-500)}
.clientlogin__back{margin-top:var(--sp-4)}

/* --- Kennzahlen --- */
.stats{display:grid;gap:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
.stat__value{font-family:var(--f-serif);font-size:calc(2.2rem - 1.5px);font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--c-navy-700)}
.stat__label{font-size:var(--t-small);color:var(--c-ink-700)}

/* Einordnung der Kanzlei mit vier Eckdaten (Startseite) */
.facts__intro{max-width:46rem;margin:0 auto var(--sp-7)}
.facts__intro .section__title{margin-bottom:var(--sp-4)}
.facts__text{max-width:none;color:var(--c-ink-700);text-align:center}
.facts__text p:last-child:not(:only-child){color:var(--c-ink-500);font-size:var(--t-small)}
.section--facts .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-5) var(--sp-6)}
.section--facts .stat{padding-top:var(--sp-4);border-top:2px solid var(--c-navy-900)}
.section--facts .stat__value{font-size:calc(1.85rem - 1.5px);line-height:1.15;color:var(--c-navy-900)}
.section--facts .stat__label{margin-top:var(--sp-2)}

/* --- Zitat --- */
.pullquote{border-left:3px solid var(--c-accent-600);padding-left:var(--sp-6)}
.pullquote p{font-family:var(--f-serif);font-size:var(--t-h3);line-height:1.4}
.pullquote cite{display:block;margin-top:var(--sp-4);font-style:normal;font-size:var(--t-small);
  color:var(--c-ink-500)}

/* --- Hinweis zu Rechtsform und Struktur (Branchenseiten) --- */
.notebox{max-width:62rem;margin-inline:auto;padding:var(--sp-6);
  border:1px solid var(--c-line);border-left:3px solid var(--c-navy-900);
  border-radius:var(--r-lg);background:var(--c-surface-2)}
.notebox__label{margin-bottom:var(--sp-2);font-size:var(--t-label);font-weight:600;
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--c-ink-500)}
.notebox__text{max-width:none;font-size:var(--t-lead);line-height:1.6;color:var(--c-ink-900)}

/* --- Unterbranchen: ruhige Kästchen, alle gleich hoch --- */
.subsectors{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));
  grid-auto-rows:1fr;gap:var(--sp-3);margin-top:var(--sp-5);text-align:left}
.subsectors__item{display:grid;align-content:center;padding:var(--sp-4) var(--sp-5);
  border:1px solid rgba(0,45,83,.12);border-radius:var(--r-lg);background:var(--c-surface);
  box-shadow:var(--sh-1);line-height:1.4;color:var(--c-ink-900)}
.subsectors__name{display:block;font-weight:500;color:var(--c-navy-900)}
.subsectors__note{display:block;margin-top:var(--sp-1);font-size:var(--t-small);
  color:var(--c-ink-500);line-height:1.45}

/* --- Mandantenstimmen: zurückhaltende Karten, keine Sternegrafik --- */
.testimonials__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}
.testimonial{display:flex;flex-direction:column;gap:var(--sp-3);height:100%;padding:var(--sp-6);
  border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface)}
.testimonial__topic{font-size:var(--t-label);font-weight:600;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-ink-500)}
.testimonial__quote{margin:0;line-height:1.6;color:var(--c-ink-900)}
.testimonial__quote{quotes:auto}
.testimonial__quote::before{content:open-quote}
.testimonial__quote::after{content:close-quote}
.testimonial__source{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--c-line);
  font-size:var(--t-small);color:var(--c-ink-700)}

/* --- Dunkelband --- */
.band{background:var(--c-navy-900);color:#EEF3F8;padding-block:var(--section-y)}
.band__title{color:var(--c-heading-gold-on-dark);margin-bottom:var(--sp-3)}
.band__text{color:#B9C9D8;max-width:52ch}
.band__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--sp-6)}
.band__split{display:grid;grid-template-columns:1fr minmax(0,26rem);gap:var(--sp-8);align-items:start}
.band__contact{margin-top:var(--sp-4);font-family:var(--f-serif);font-size:calc(1.35rem - 1.5px)}
.band__contact a{color:#fff;text-decoration:none;box-shadow:inset 0 -1px 0 var(--c-accent-500)}
.band .richtext a{color:#fff}
/* Abschließender Kontaktweg als Textlink statt als zweiter großer Schalter */
.band__link{color:#fff;white-space:nowrap;box-shadow:inset 0 -1px 0 var(--c-accent-500)}
.band__link:hover,.band__link:focus-visible{color:#fff;box-shadow:inset 0 -2px 0 #fff}

/* --- Accordion --- */
.accordion{margin-top:var(--sp-6);border-top:1px solid var(--c-line)}
.accordion__item{border-bottom:1px solid var(--c-line)}
.accordion__item summary{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);
  padding:var(--sp-5) 0;font-weight:600;cursor:pointer;list-style:none}
.accordion__item summary span{color:var(--c-navy-900)}
.accordion__item summary::-webkit-details-marker{display:none}
.accordion__icon{flex:none;color:var(--c-accent-600);transition:transform var(--d-base) var(--e-out)}
.accordion__item[open] .accordion__icon{transform:rotate(180deg)}
.accordion__body{padding-bottom:var(--sp-5);color:var(--c-ink-700)}

/* --- Formulare --- */
.field{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}
.field label{font-size:var(--t-small);font-weight:500}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:var(--sp-3) var(--sp-4);
  border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface);
  font-size:calc(1rem - 1.5px)}
.field textarea{min-height:9rem;resize:vertical;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--c-navy-700);
  box-shadow:var(--sh-focus)}
.field--error input,.field--error select,.field--error textarea{border-color:var(--c-error)}
.field__error{color:var(--c-error);font-size:var(--t-small)}
.req{color:var(--c-error)}
.field--check{gap:var(--sp-2)}
.check{display:flex;gap:var(--sp-3);align-items:flex-start;font-size:var(--t-small);
  line-height:1.5;font-weight:400;color:var(--c-ink-700)}
.check input{width:20px;height:20px;min-height:0;margin-top:.15rem;flex:none}
.formgrid{display:grid;gap:0 var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.formnote{margin-top:var(--sp-4);font-size:var(--t-small);color:var(--c-ink-500);max-width:60ch}
.formmsg{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--t-small);
  margin-bottom:var(--sp-4)}
.formmsg--error{background:#FBEBEB;color:var(--c-error)}
.formmsg--success{background:#E8F3EE;color:var(--c-success)}

/* Honeypot: aus dem Sichtfeld geschoben statt display:none.
   Bots, die auf display:none prüfen, füllen es trotzdem aus. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.callbackform{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);
  padding:clamp(1.25rem,3vw,1.75rem);box-shadow:var(--sh-2);color:var(--c-ink-900)}
.callbackform__heading{font-family:var(--f-sans);font-size:calc(1.3rem - 1.5px);font-weight:600;
  letter-spacing:.01em;color:var(--c-navy-900);margin-bottom:var(--sp-2)}
.callbackform__sub{font-size:var(--t-small);color:var(--c-ink-500);margin-bottom:var(--sp-5)}
.callbackform__alt{margin-top:var(--sp-4);font-size:var(--t-small);color:var(--c-ink-500);
  text-align:center}
.callbackform--hero .callbackform__sub{margin-bottom:var(--sp-4)}
.callbackform--hero .field{margin-bottom:var(--sp-3)}
.callbackform--hero .field input,.callbackform--hero .field select{min-height:48px}
.callbackform--hero .check{font-size:calc(.875rem - 1.5px)}
.callbackform--hero .callbackform__alt{margin-top:var(--sp-3)}

/* --- Team --- */
.teamgrid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.teamgrid--full{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:var(--sp-6)}
.teamcard__photo{margin-bottom:var(--sp-4)}
.teamcard__name{font-size:calc(1.1rem - 1.5px);color:var(--c-navy-900)}
.teamcard__position{font-size:var(--t-small);color:var(--c-ink-500)}
.teamcard__row{margin-top:var(--sp-3);font-size:var(--t-small);color:var(--c-ink-700)}
.teamcard__label{display:block;font-size:var(--t-label);font-weight:600;
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--c-ink-500)}
.teamcard__bio{margin-top:var(--sp-3);font-size:var(--t-small);color:var(--c-ink-700)}
.teamcard__contact{margin-top:var(--sp-3);display:grid;gap:var(--sp-1);font-size:var(--t-small)}

/* --- Blog --- */
.section--blog{background:var(--c-navy-050)}
.section--blog .section__title{margin-bottom:var(--sp-6)}
.postgrid{display:grid;gap:clamp(1.5rem,3vw,2.25rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));align-items:stretch}
/* Wenige verwandte Beitraege nicht auf volle Breite aufblasen */
.postgrid--single{grid-template-columns:minmax(0,24rem);justify-content:center}
.postgrid--duo{grid-template-columns:repeat(2,minmax(0,24rem));justify-content:center}
@media (max-width:720px){
  .postgrid--duo{grid-template-columns:minmax(0,24rem)}
}
.postcard{height:100%}
.postcard__link{display:flex;flex-direction:column;height:100%;overflow:hidden;
  border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface);
  color:inherit;text-decoration:none;box-shadow:var(--sh-1);
  transition:transform var(--d-base) var(--e-out),box-shadow var(--d-base),border-color var(--d-base)}
.postcard__link:hover{color:inherit;border-color:#C8D4DE;box-shadow:var(--sh-2);transform:translateY(-3px)}
.postcard__image{flex:none;border-radius:0}
.postcard__body{display:flex;flex:1;flex-direction:column;padding:clamp(1.25rem,2.5vw,1.65rem)}
.postcard__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);
  margin-bottom:var(--sp-4);font-size:var(--t-small);color:var(--c-ink-500)}
.postcard__title{font-size:calc(1.2rem - 1.5px);line-height:1.3;color:var(--c-navy-900)}
.postcard__excerpt{margin-top:var(--sp-3);font-size:var(--t-small);line-height:1.7;color:var(--c-ink-700)}
.postcard__more{display:inline-block;margin-top:auto;padding-top:var(--sp-5);font-size:var(--t-small);
  font-weight:600;color:var(--c-navy-700)}
.tag{display:inline-block;padding:.15rem var(--sp-3);border-radius:var(--r-full);
  background:var(--c-accent-100);color:var(--c-text-accent);font-size:calc(.75rem - 1.5px);font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;text-decoration:none}

.chips{border-bottom:1px solid var(--c-line)}
.chips ul{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-block:var(--sp-4)}
/* Blog-Kopf als durchgehendes hellblaues Band */
.is-blog .breadcrumbs{background:var(--c-navy-050)}
.is-blog .chips{background:var(--c-navy-050);border-bottom:0}
.chip{display:inline-block;padding:var(--sp-2) var(--sp-4);border:1px solid var(--c-line);
  border-radius:var(--r-full);font-size:var(--t-small);text-decoration:none;color:var(--c-ink-700)}
.chip:hover{border-color:var(--c-navy-600);color:var(--c-navy-700)}
.chip--active{background:var(--c-navy-700);border-color:var(--c-navy-700);color:#fff}
.chip--active:hover{color:#fff}

.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--sp-4);margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:1px solid var(--c-line)}
.pagination__link{font-weight:600;text-decoration:none}
.pagination__status{font-size:var(--t-small);color:var(--c-ink-500);font-variant-numeric:tabular-nums}

.post__head{padding-block:var(--section-y-tight) var(--sp-7)}
.post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);
  font-size:var(--t-small);color:var(--c-ink-500);margin-bottom:var(--sp-4)}
.post__title{font-size:var(--t-h1)}
.post__lead{margin-top:var(--sp-4);font-size:var(--t-lead);color:var(--c-ink-700);max-width:60ch}
.post__body{max-width:calc(var(--container-text) + var(--gutter)*2);margin-bottom:var(--sp-7)}

.authorbox{display:flex;gap:var(--sp-4);align-items:center;padding:var(--sp-5) 0;
  border-top:1px solid var(--c-line);background:transparent;margin-bottom:var(--sp-6)}
.authorbox__photo{width:64px;flex:none;border-radius:var(--r-full)}
.authorbox__label{font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  color:var(--c-ink-500)}
.authorbox__name{font-weight:600}
.authorbox__position{font-size:var(--t-small);color:var(--c-ink-500)}

/* --- Karriere --- */
.joblist{display:grid;gap:var(--sp-4);margin-top:var(--sp-6)}
.jobitem{display:grid;grid-template-columns:1fr auto auto;gap:var(--sp-5);align-items:center;
  padding:var(--sp-5) var(--sp-6);border:1px solid var(--c-line);border-radius:var(--r-lg)}
.jobitem__title{font-size:calc(1.15rem - 1.5px);color:var(--c-navy-900)}
.jobitem__title a{text-decoration:none;color:inherit}
.jobitem__title a:hover{color:var(--c-navy-700)}
.jobitem__summary{margin-top:var(--sp-2);font-size:var(--t-small);color:var(--c-ink-700)}
.jobitem__facts{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:var(--t-small);
  color:var(--c-ink-500)}
.jobfacts{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--sp-3);
  margin-top:var(--sp-5);font-size:var(--t-small)}
.jobfacts li{display:flex;flex-direction:column;gap:.2rem;min-width:9rem;
  padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-line);border-radius:var(--r-md);
  background:var(--c-surface);box-shadow:var(--sh-1)}
.jobfacts__label{display:block;font-size:var(--t-label);letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-ink-500)}
.jobfacts__value{margin-top:auto;font-weight:600;color:var(--c-navy-900)}
.job__body{padding-block:var(--section-y-tight)}
.job__section{margin-top:var(--sp-7)}
.job__subtitle{font-size:var(--t-h3);margin-bottom:var(--sp-4)}
.job__apply{margin-top:var(--sp-7)}

/* --- Kontakt --- */
.contact{display:grid;grid-template-columns:1fr minmax(0,22rem);gap:var(--sp-8)}
.contact__title{font-size:var(--t-h3);margin-bottom:var(--sp-5);color:var(--c-navy-900)}
.contact__person{font-size:calc(1.1rem - 1.5px);font-weight:600;color:var(--c-navy-900)}
.contact__position{font-size:var(--t-small);color:var(--c-ink-500);margin-bottom:var(--sp-5)}
.contact__block{padding-block:var(--sp-4);border-top:1px solid var(--c-line)}
.contact__label{font-size:var(--t-label);font-weight:600;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--c-ink-500);margin-bottom:var(--sp-2)}
/* einheitliche Schriftgröße für alle Kontaktangaben */
.contact__data address,.contact__data .contact__big,.contact__data .hours__row{
  font-size:calc(1.02rem - 1.5px);line-height:1.55;font-style:normal;font-weight:400}
.contact__data .contact__big{font-weight:600}
.contact__big{font-family:inherit;font-weight:600}
.contact__big a{text-decoration:none}
.hours__row{display:flex;justify-content:space-between;gap:var(--sp-4);padding-block:var(--sp-1)}
.hours dt{color:var(--c-ink-700)}
.hours dd{font-variant-numeric:tabular-nums}
.hours__note{margin-top:var(--sp-2);color:var(--c-ink-500);font-size:calc(.95rem - 1.5px);font-style:italic}

.mapframe{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--c-line)}
.mapframe iframe{width:100%;height:clamp(24rem,55vh,40rem);border:0;display:block}
.mapblock{padding:var(--sp-7);border:1px dashed var(--c-line);border-radius:var(--r-lg);
  background:var(--c-surface-3);text-align:center;display:grid;gap:var(--sp-4);justify-items:center}
.mapblock__notice{max-width:44ch;color:var(--c-ink-700);font-size:var(--t-small)}
.mapblock__alt{font-size:var(--t-small)}

/* --- Consent --- */
.consent{position:fixed;inset:0;z-index:80;display:grid;place-items:center;
  padding:max(var(--sp-4),env(safe-area-inset-top)) var(--sp-4)
    max(var(--sp-4),env(safe-area-inset-bottom));
  background:rgba(0,45,83,.25);backdrop-filter:blur(5px)}
body:has(.consent){overflow:hidden}
.consent__inner{width:min(100%,62rem);max-height:calc(100dvh - 2rem);overflow:auto;
  padding:clamp(var(--sp-5),3vw,var(--sp-7));background:var(--c-surface);
  border:1px solid rgba(0,45,83,.16);border-radius:1.25rem;
  box-shadow:0 1.5rem 4rem rgba(0,27,49,.22)}
.consent__title{font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);line-height:1.2;
  margin-bottom:var(--sp-2);color:var(--c-navy-900)}
.consent__text{max-width:70ch;font-size:var(--t-small);color:var(--c-ink-700);line-height:1.6}
.consent__form{margin-top:var(--sp-5)}
.consent__options{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);
  margin-bottom:var(--sp-5)}
.consent__options--page{margin-top:var(--sp-6)}
.consent__option{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3);
  border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-navy-050)}
.consent__option input{width:20px;height:20px;flex:none;margin-top:.15rem}
.consent__option strong{display:block;font-size:var(--t-small);color:var(--c-navy-900)}
.consent__option small{display:block;font-size:calc(.8125rem - 1.5px);color:var(--c-ink-500);line-height:1.5}
.consent__actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}
.consent__action{width:100%;min-height:3rem;padding:.7rem .8rem;white-space:nowrap}
.consent__action--choice{background:var(--c-navy-900);border:1px solid var(--c-navy-900);color:#fff}
.consent__action--choice:hover{background:var(--c-navy-800);border-color:var(--c-navy-800)}
.consent__action--secondary{background:var(--c-surface);border:1px solid var(--c-navy-900);
  color:var(--c-navy-900)}
.consent__action--secondary:hover{background:var(--c-navy-050)}
.consent__legal{display:flex;flex-wrap:wrap;gap:.35rem var(--sp-3);margin-top:var(--sp-4);
  color:var(--c-ink-500);font-size:calc(.78rem - 1.5px);line-height:1.55}
.consent__legal span{flex-basis:100%}
.consent__legal a{color:var(--c-navy-900);text-underline-offset:.2em}
.consentpage__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6)}

/* --- Sprachhinweis --- */
.langhint{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:70;display:flex;
  align-items:center;gap:var(--sp-3);max-width:min(24rem,calc(100vw - 2rem));
  padding:var(--sp-3) var(--sp-4);background:var(--c-navy-900);color:#EEF3F8;
  border-radius:var(--r-md);box-shadow:var(--sh-2);font-size:var(--t-small)}
.langhint .btn--secondary{border-color:#7FA8CC;color:#fff}
.langhint__close{color:#8FA5B8;font-size:calc(1.25rem - 1.5px);line-height:1;padding:var(--sp-1)}

/* --- Sticky-Leiste mobil --- */
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;gap:var(--sp-3);
  padding:var(--sp-3) var(--gutter);
  padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--c-line)}
.stickybar .btn{flex:1;min-height:50px}

/* --- Schwebender Kontakt auf Desktop --- */
.floating-contact{position:fixed;right:clamp(1.25rem,2.5vw,2.5rem);bottom:clamp(1.25rem,2.5vw,2.5rem);
  z-index:38;display:flex;align-items:center;gap:var(--sp-3);text-decoration:none;
  filter:drop-shadow(0 10px 24px rgba(0,29,53,.2));transition:transform var(--d-base) var(--e-out)}
.floating-contact__bubble{position:relative;padding:.72rem 1rem;border-radius:var(--r-md);
  background:var(--c-accent-600);color:#fff;font-size:calc(.82rem - 1.5px);font-weight:600;line-height:1.2;
  white-space:nowrap}
.floating-contact__bubble::after{content:"";position:absolute;right:-.42rem;top:50%;width:.9rem;height:.9rem;
  background:var(--c-accent-600);transform:translateY(-50%) rotate(45deg);border-radius:0 .16rem 0 0}
.floating-contact__avatar{flex:0 0 4.75rem;width:4.75rem;height:4.75rem;border:2px solid #fff;
  overflow:hidden;border-radius:50%;background:var(--c-navy-800);box-shadow:0 5px 18px rgba(0,29,53,.24)}
.floating-contact__avatar picture{display:block;width:100%;height:100%}
.floating-contact__avatar img{object-position:50% 24%}
.floating-contact__avatar img{width:100%;height:100%;object-fit:cover}
.floating-contact:hover,.floating-contact:focus-visible{color:#fff;transform:translateY(-3px)}

/* --- Hinweiskästen --- */
.notice{padding:var(--sp-5);border:1px solid var(--c-line);border-left:3px solid var(--c-ink-500);
  border-radius:0 var(--r-md) var(--r-md) 0;background:var(--c-surface-2);color:var(--c-ink-700)}
.notice--warning{border-left-color:var(--c-accent-600);background:var(--c-surface-3)}
.notice p + p{margin-top:var(--sp-3)}

/* --- Footer --- */
.site-footer{background:var(--c-navy-900);color:#B9C9D8;padding-block:var(--section-y-tight)}
.site-footer__grid{display:grid;gap:var(--sp-7);
  grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
.site-footer__title{font-size:var(--t-label);font-weight:600;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:#8FA5B8;margin-bottom:var(--sp-4)}
.site-footer__col ul{display:grid;gap:var(--sp-3)}
.site-footer a{color:#D6E2ED;text-decoration:none;font-size:var(--t-small)}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer__address{font-size:var(--t-small);line-height:1.8}
.site-footer__company{color:#fff;font-style:normal;font-weight:600}
.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);
  justify-content:space-between;margin-top:var(--sp-7);padding-top:var(--sp-5);
  border-top:1px solid #23384F}
.site-footer__copy{font-size:var(--t-small)}
.site-footer__legal ul{display:flex;flex-wrap:wrap;gap:var(--sp-4)}
.socials{display:flex;gap:var(--sp-2)}
.socials a,.socials__placeholder{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);
  border:1px solid #23384F;color:#D6E2ED}
.socials a:hover{background:var(--c-navy-800);color:#fff}
.socials__placeholder{opacity:.58;cursor:default}

/* ============================ 6 · SEITEN ========================== */

/* --- Hero Startseite --- */
.hero{position:relative;padding-block:clamp(2.25rem,4vw,3.5rem);
  background:linear-gradient(rgba(240,245,250,.80),rgba(240,245,250,.88)),
    url("../img/hero-bg.jpg") center/cover no-repeat;
  background-color:var(--c-navy-050)}
.hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,5vw,4rem);
  align-items:center}
.hero__title{font-size:var(--t-display);margin-bottom:var(--sp-5);max-width:16ch}
.hero__lead{font-size:var(--t-lead);color:var(--c-ink-700);max-width:46ch}
.hero__phone{margin-top:var(--sp-4);font-size:var(--t-small);color:var(--c-ink-500)}
.hero__form{width:100%;max-width:31rem;justify-self:end;align-self:start}

/* --- Vorstellung der Inhaberin (Startseite und Landingpages) ---
   Das Foto füllt die linke Seite randlos aus – deshalb liegt der
   Innenabstand am Textblock, nicht an der Karte. */
.personcard{max-width:31rem;border-radius:var(--r-lg);overflow:hidden;text-align:left;
  background:#ECF2F8;color:var(--c-navy-900);box-shadow:var(--sh-1)}
.personcard__inner{display:flex;align-items:stretch;gap:0}
/* Flex-Element ist das <picture>, nicht das Bild darin. */
.personcard__inner > picture{flex:0 0 150px;align-self:stretch;display:block;
  background:var(--c-navy-100)}
.personcard__photo{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.personcard__text{display:grid;gap:.15rem;align-content:center;
  padding:var(--sp-5) var(--sp-5) var(--sp-5) var(--sp-4);min-width:0}
.personcard__name{font-weight:600;color:var(--c-navy-900);font-size:calc(1.2rem - 1.5px);
  line-height:1.25}
.personcard__role{font-size:var(--t-small);color:var(--c-navy-900);opacity:.72;line-height:1.35}

/* Kontaktwege in der Karte: schlichte Links neben dem Foto, kein Rahmen.
   Sie stehen nebeneinander, solange beide in die Zeile passen. */
.personcard__contact{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-5);margin-top:var(--sp-3)}
/* Ohne Unterstreichung im Ruhezustand – Symbol und eigene Zeile weisen sie
   als Kontaktweg aus. Beim Überfahren erscheint die Linie als Rückmeldung. */
.personcard__link{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:32px;
  color:var(--c-navy-900);font-size:var(--t-small);text-decoration:none;
  box-shadow:inset 0 0 0 var(--c-navy-900);transition:box-shadow var(--d-fast)}
.personcard__link:hover,.personcard__link:focus-visible{color:var(--c-navy-900);
  box-shadow:inset 0 -1px 0 var(--c-navy-900)}
.personcard__link svg{flex:0 0 auto;opacity:.72}
/* Platzierung je Seitentyp */
.hero__person{margin-top:var(--sp-6)}
.lphead__benefits{margin-top:var(--sp-6)}

/* --- Laufende Leistungsleiste unter dem Startseiten-Hero --- */
.services-ticker{background:#fff}
.services-ticker__viewport{position:relative;overflow:hidden}
.services-ticker__viewport::before,.services-ticker__viewport::after{content:"";position:absolute;z-index:2;
  top:0;bottom:0;width:clamp(2rem,8vw,8rem);pointer-events:none}
.services-ticker__viewport::before{left:0;background:linear-gradient(90deg,#fff,transparent)}
.services-ticker__viewport::after{right:0;background:linear-gradient(270deg,#fff,transparent)}
.services-ticker__track{display:flex;width:max-content;padding-block:1.05rem;
  animation:services-ticker-scroll 42s linear infinite;will-change:transform}
.services-ticker__group{display:flex;flex:none;align-items:center;padding-right:clamp(2rem,4vw,4.5rem)}
.services-ticker__item{display:flex;flex:none;align-items:center;white-space:nowrap;
  color:#667B8E;font-size:clamp(.9rem,.84rem + .18vw,1.02rem);font-weight:500}
.services-ticker__item::after{content:"—";margin-inline:clamp(2rem,4vw,4.5rem);
  color:#B6C5D2;font-weight:400}
.services-ticker__item a{color:inherit;text-decoration:none;transition:color var(--d-fast) var(--e-out)}
.services-ticker__item a:hover,.services-ticker__item a:focus-visible{color:var(--c-navy-900)}
.services-ticker:hover .services-ticker__track,.services-ticker:focus-within .services-ticker__track{
  animation-play-state:paused}
@keyframes services-ticker-scroll{to{transform:translateX(-50%)}}

@media (prefers-reduced-motion:reduce){
  .services-ticker__viewport{overflow-x:auto;scrollbar-width:thin}
  .services-ticker__track{animation:none;will-change:auto}
  .services-ticker__group[aria-hidden="true"]{display:none}
}

/* --- Kopf Landingpage --- */
.lphead{padding-block:var(--section-y-tight);background:var(--c-navy-050)}
.lphead__inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,28rem);gap:clamp(1.25rem,2.5vw,2.5rem);
  align-items:center}
.lphead__title{font-size:clamp(1.75rem,1.3rem + 1.9vw,2.8125rem);font-weight:700;margin-bottom:var(--sp-4);
  max-width:none;overflow-wrap:break-word;hyphens:manual}
/* Überschriften mit sehr langen Wörtern etwas kleiner (weniger Trennstriche) */
.lphead__title--long{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.45rem)}
.lphead__lead{font-size:var(--t-lead);color:var(--c-ink-700);max-width:48ch}
.lphead__form{position:sticky;top:calc(var(--header-h) + var(--sp-4))}

/* --- Kopf Standardseite --- */
.pagehead{padding-block:var(--section-y-tight) var(--sp-6);background:var(--c-navy-050)}
.pagehead--tight{padding-bottom:var(--sp-4)}
.pagehead__title{font-size:var(--t-h1)}
.pagehead__lead{margin-top:var(--sp-4);font-size:var(--t-lead);color:var(--c-ink-700);max-width:58ch}
.pagehead__media{margin-bottom:var(--sp-7)}
/* Kanzleiseite: dunkler Kopfbereich mit Bild auf derselben Fläche. */
.pagehead--plain{background:var(--c-navy-900);color:#fff;padding-bottom:var(--sp-7)}
.pagehead--plain .container--narrow{text-align:center}
.pagehead--plain .pagehead__title{color:#fff}
/* Ganze Überschrift weiß; die Betonung trägt ohnehin die Fettschrift.
   Wie im dunklen Abschlussband, nicht wie in den navyfarbenen
   Zwischenabschnitten. */
.pagehead--plain .heading-highlight{color:#fff}
.pagehead--plain .pagehead__lead{margin-inline:auto;color:rgba(255,255,255,.85)}
.pagehead--plain .eyebrow{color:rgba(255,255,255,.7)}
.pagehead--plain .pagehead__media{max-width:48rem;margin-top:var(--sp-6);margin-bottom:0}
.pagehead--plain .figure__ai-note{background:rgba(0,0,0,.28);color:rgba(255,255,255,.42)}

.imagetext{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.imagetext__body{max-width:36rem}
.imagetext__media .picture,.imagetext__media img{border-radius:var(--r-lg)}
.imagetext .section__title,.local-seo .section__title{text-align:left;margin-bottom:var(--sp-4)}
.imagetext--reverse .imagetext__media{order:2}

.errorpage__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6)}
.thanks__phone{margin-top:var(--sp-6);color:var(--c-ink-500);font-size:var(--t-small)}

/* ========================= 7 · HILFSKLASSEN ======================= */
.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Einblenden beim Scrollen. Startzustand ist sichtbar – die Klasse wird
   erst per JavaScript gesetzt. Ohne JS bleibt also alles lesbar. */
.js .reveal{opacity:0;transform:translateY(12px)}
.js .reveal.is-visible{opacity:1;transform:none;
  transition:opacity var(--d-slow) var(--e-out), transform var(--d-slow) var(--e-out)}

/* ========================= 8 · BREAKPOINTS ======================== */
@media (max-width:1023px){
  :root{--header-h:60px}
  .floating-contact{display:none}
  .brand__logo{width:clamp(10.5rem,38vw,12.5rem)}
  .mainnav,.site-header__tools{display:none}
  .site-header__mobile{display:flex}

  .hero__inner{grid-template-columns:1fr}
  .hero__text{display:contents}
  .hero__intro{order:1}
  /* Auf schmalen Geräten zuerst das Formular, die Vorstellung darunter. */
  .hero__form{order:2}
  .hero__person{order:3;margin-top:0}
  .personcard{max-width:none}
  /* Die Karte läuft hier über die volle Breite – das Foto wächst mit,
     bleibt aber schmal genug für den Text daneben. */
  .personcard__inner > picture{flex-basis:clamp(104px,22%,170px)}
  /* Ausreichend große Tippflächen auf Touchgeräten. */
  .personcard__link{min-height:44px}
  .hero__title{max-width:none}
  .hero__form{max-width:none;justify-self:stretch}

  .lphead__inner{grid-template-columns:1fr}
  .lphead__text{display:contents}
  .lphead__intro{order:1}
  .lphead__form{position:static;order:2}
  .lphead__benefits{order:3}
  .lphead .ticks--head{margin-top:var(--sp-5)}

  /* Kopftexte auf Mobil zentrieren */
  .hero__intro,.lphead__intro{text-align:center}
  .hero__lead,.lphead__lead,.lphead__title{margin-inline:auto}
  .lphead__benefits{text-align:center}

  .band__split{grid-template-columns:1fr}
  .imagetext{grid-template-columns:1fr}
  .imagetext__body{max-width:none}
  .imagetext--reverse .imagetext__media{order:-1}
  .local-seo__grid{grid-template-columns:1fr}
  .reviews__grid{grid-template-columns:1fr}
  .testimonials__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section--facts .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts__intro{margin-bottom:var(--sp-6)}
  .apppromo{grid-template-columns:1fr}
  .apppromo__content{order:1;max-width:none;padding-bottom:var(--sp-6)}
  .apppromo__visual{order:2;width:min(82vw,25rem);height:min(96vw,29rem)}
  .contact{grid-template-columns:1fr}

  .site-footer__grid{grid-template-columns:1fr 1fr}

  .jobitem{grid-template-columns:1fr;gap:var(--sp-3)}

  .stickybar{display:flex}
  body:has(.stickybar) .site-footer{padding-bottom:5.5rem}
}

@media (max-width:600px){
  .storebuttons{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
  .storebutton{width:100%;min-width:0;gap:.5rem;padding:.6rem .7rem;min-height:4rem}
  .storebutton__icon{width:2rem;height:2rem}
  .storebutton__label strong{font-size:calc(1rem - 1.5px)}
  .storebutton__label span{font-size:calc(.58rem - 1.5px)}
  .apppromo__note{text-align:center}
  .phone-cta{align-items:stretch}
  .phone-cta__text{flex-basis:100%}
  /* Telefon-Box mobil: Avatar links, Text daneben, Button in voller Breite darunter */
  .phone-cta--bar,.ticks--section .phone-cta--tile{
    flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;
    text-align:left;padding-inline:var(--sp-4)}
  .phone-cta--bar .phone-cta__text,.ticks--section .phone-cta--tile .phone-cta__text{
    flex:1 1 auto;flex-basis:auto;text-align:left}
  .phone-cta--bar .phone-cta__link,.ticks--section .phone-cta--tile .phone-cta__link{
    flex-basis:100%;width:100%;justify-content:center;margin-top:var(--sp-1)}
  .site-footer__grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .testimonials__grid{grid-template-columns:1fr}
  /* Einspaltig ist die einheitliche Höhe nur Leerraum. */
  .subsectors{grid-auto-rows:auto}
  .section--facts .stats{grid-template-columns:1fr}
  .personcard__text{padding:var(--sp-4)}
  .consent{padding:var(--sp-3)}
  .consent__inner{max-height:calc(100dvh - 1.5rem);padding:var(--sp-5);border-radius:var(--r-lg)}
  .consent__options{grid-template-columns:1fr}
  .consent__actions{grid-template-columns:1fr 1fr}
  .consent__action{white-space:normal;line-height:1.25}
  .langhint{left:var(--sp-3);right:var(--sp-3);flex-wrap:wrap}
  .teamgrid{grid-template-columns:1fr 1fr}
  .ticks--section{grid-template-columns:1fr}
  .ticks--section > li:last-child:nth-child(odd){grid-column:auto}
  .phone-cta--tile .phone-cta__link{width:100%}
}

@media (max-width:380px){
  .teamgrid{grid-template-columns:1fr}
}

/* --------------------------- Druck ------------------------------- */
@media print{
  .site-header,.site-footer,.consent,.stickybar,.floating-contact,.langhint,.callbackform,.band{display:none !important}
  body{color:#000;background:#fff}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em}
}
