/* Zahnarztpraxis Dr. Achim Geidl - zentrales Stylesheet
   Tokens aus dem Brandbook. Aenderungen bitte nur hier. */

/* ---------- Fonts (self-hosted, kein CDN) ---------- */
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-Variable.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat Static";src:url("../fonts/Montserrat-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat Static";src:url("../fonts/Montserrat-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat Static";src:url("../fonts/Montserrat-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat Static";src:url("../fonts/Montserrat-Bold.woff2") format("woff2");font-weight:700;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --c-white:#FFFFFF;
  /* Brandbook-Primaerfarben */
  --c-greige:#CFC8C0;          /* Mineral Greige */
  --c-grey:#575A5D;            /* Schefer Grau */
  --c-graphite:#2F3234;        /* Tiefes Graphit */
  --c-terra:#D4A18E;           /* Dezentes Terrakotta */
  /* Abgeleitete Toene: nur Aufhellungen/Abdunklungen der Brandfarben,
     noetig fuer Flaechen, Linien und lesbare Textkontraste */
  --c-greige-50:#F7F5F3;
  --c-greige-100:#EDEAE6;
  --c-greige-200:#DED9D3;
  --c-greige-300:var(--c-greige);
  --c-graphite-900:#232627;
  --c-terra-600:var(--c-terra);
  --c-terra-700:#A2664C;       /* Terrakotta abgedunkelt, nur fuer Text und Icons */
  --c-terra-800:#7F4E39;
  --c-wa:#25D366;

  --surface:var(--c-white);
  --surface-muted:#F5F2EF;
  --surface-dark:var(--c-graphite);
  --text:var(--c-graphite);
  --text-muted:var(--c-grey);
  --text-on-dark:rgba(255,255,255,.86);
  --border-subtle:var(--c-greige-100);
  --border-default:var(--c-greige-200);
  --border-on-dark:rgba(255,255,255,.18);

  --font:"Montserrat","Montserrat Static",system-ui,-apple-system,"Segoe UI",sans-serif;

  --fs-eyebrow:.8125rem;
  --fs-micro:.875rem;
  --fs-body:1.0625rem;
  --fs-body-lg:1.1875rem;
  --fs-lead:clamp(1.25rem,1.6vw + .6rem,1.625rem);
  --fs-h3:clamp(1.125rem,.6vw + .95rem,1.3125rem);
  --fs-h2:clamp(1.75rem,2.6vw + .8rem,3.25rem);
  --fs-h1:clamp(2rem,3.4vw + .8rem,3.75rem);
  --fs-display:clamp(2.25rem,4.6vw + .8rem,4.75rem);

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px; --sp-20:80px; --sp-24:96px; --sp-32:128px;

  --content:1400px;
  --content-narrow:880px;
  --gutter:24px;
  --band:128px;
  --touch:48px;

  --r-sm:4px; --r-md:8px; --r-pill:999px;

  --shadow-xs:0 1px 2px rgba(47,50,52,.05),0 2px 8px rgba(47,50,52,.05);
  --shadow-md:0 6px 18px rgba(47,50,52,.10),0 2px 6px rgba(47,50,52,.06);
  --shadow-lg:0 18px 48px rgba(47,50,52,.16);

  --scrim-left:linear-gradient(90deg,rgba(47,50,52,.82) 0%,rgba(47,50,52,.66) 38%,rgba(47,50,52,.18) 72%,rgba(47,50,52,.06) 100%);
  --scrim-left-strong:linear-gradient(90deg,rgba(47,50,52,.92) 0%,rgba(47,50,52,.89) 42%,rgba(47,50,52,.80) 64%,rgba(47,50,52,.58) 82%,rgba(47,50,52,.24) 95%,rgba(47,50,52,.10) 100%);
  --scrim-bottom:linear-gradient(180deg,rgba(47,50,52,0) 40%,rgba(47,50,52,.68) 100%);

  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-color:140ms;
  --dur-move:220ms;

  --glass-bg:rgba(255,255,255,.82);
  --header-h:84px;
}
@media (max-width:1020px){:root{--band:72px;--header-h:72px;--gutter:20px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--surface);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:1.62;font-weight:400;-webkit-font-smoothing:antialiased;text-wrap:pretty}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--c-terra-700);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-color) var(--ease)}
a:hover{color:var(--c-terra-800);text-decoration-thickness:2px}
:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(212,161,142,.45);border-radius:var(--r-sm)}
button{font:inherit;color:inherit}
strong,b{font-weight:700}
@media (prefers-reduced-motion:reduce){*{animation-duration:1ms!important;transition-duration:1ms!important}html{scroll-behavior:auto}}

/* ---------- Typografie ---------- */
.h1,h1{font-size:var(--fs-h1);font-weight:700;line-height:1.1;letter-spacing:-.02em}
.h2,h2{font-size:var(--fs-h2);font-weight:700;line-height:1.18;letter-spacing:-.02em}
.h3,h3{font-size:var(--fs-h3);font-weight:700;line-height:1.32;overflow-wrap:break-word;hyphens:auto}
.display{font-size:var(--fs-display);font-weight:700;line-height:1.06;letter-spacing:-.025em}
.lead{font-size:var(--fs-lead);line-height:1.45;font-weight:400;color:var(--text-muted)}
.eyebrow{display:block;font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c-terra-700)}
.micro{font-size:var(--fs-micro);color:var(--text-muted)}
.nowrap{white-space:nowrap}
.prose p + p,.prose > * + *{margin-top:var(--sp-5)}
.prose{max-width:66ch}
.prose.wide{max-width:74ch}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--content);margin-inline:auto;padding-inline:var(--gutter)}
.container-narrow{max-width:calc(var(--content-narrow) + var(--gutter)*2)}
.band{padding-block:var(--band)}
.band-sm{padding-block:calc(var(--band)*.62)}
.band-muted{background:var(--surface-muted)}
.band-dark{background:var(--surface-dark);color:#fff}
.band-dark .lead,.band-dark .micro{color:var(--text-on-dark)}
.band-dark a{color:#fff}
.stack{display:grid;gap:var(--sp-6)}
.stack-lg{display:grid;gap:var(--sp-10)}
.section-head{display:grid;gap:var(--sp-4);max-width:72ch}
.section-head .eyebrow + h2{margin-top:calc(var(--sp-1)*-1)}
.grid{display:grid;gap:var(--sp-6)}
.grid-auto{display:grid;gap:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid-auto-lg{display:grid;gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.split{display:grid;gap:var(--sp-12);align-items:center;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.split-media{border-radius:var(--r-md);overflow:hidden}
.split-media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.split.reverse .split-media{order:2}
@media (max-width:820px){.split.reverse .split-media{order:0}}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:#fff;padding:12px 20px}
.skip-link:focus{left:8px;top:8px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--touch);padding:12px 26px;border-radius:var(--r-pill);border:1px solid transparent;font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background var(--dur-color) var(--ease),color var(--dur-color) var(--ease),border-color var(--dur-color) var(--ease),transform var(--dur-move) var(--ease)}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--c-terra);color:#fff}
.btn-primary:hover{background:#C79079;color:#fff}
.btn-secondary{background:transparent;color:var(--c-graphite);border-color:var(--c-greige-200)}
.btn-secondary:hover{background:var(--c-graphite);color:#fff;border-color:var(--c-graphite)}
.btn-on-dark{background:transparent;color:#fff;border-color:var(--border-on-dark)}
.btn-on-dark:hover{background:#fff;color:var(--c-graphite);border-color:#fff}
.btn-wa{background:var(--c-wa);color:#08331a}
.btn-wa:hover{background:#1FBF5B;color:#08331a}
.btn-lg{min-height:56px;padding:16px 32px;font-size:1.0625rem}
.btn-block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center}
.arrow{transition:transform var(--dur-move) var(--ease)}
.btn:hover .arrow,.textlink:hover .arrow{transform:translateX(4px)}
.textlink{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600;text-decoration:none;color:var(--c-terra-700)}
.textlink:hover{color:var(--c-terra-800)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;height:var(--header-h);background:var(--glass-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-subtle)}
.site-header .container{height:100%;display:flex;align-items:center;gap:var(--sp-6);justify-content:space-between}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand img{height:51px;width:auto}
.nav{display:flex;align-items:center;gap:var(--sp-1)}
.nav a{color:var(--c-graphite);text-decoration:none;font-size:.9375rem;font-weight:500;padding:10px 12px;border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:6px;min-height:var(--touch)}
.nav a:hover{color:var(--c-terra-700)}
.nav a[aria-current="page"]{color:var(--c-terra-700);font-weight:700}
.has-sub{position:relative;align-self:stretch;display:flex;align-items:center}
.has-sub > button{height:100%;display:inline-flex;align-items:center;gap:6px;min-height:var(--touch);padding:10px 12px;background:none;border:0;font-size:.9375rem;font-weight:500;cursor:pointer;border-radius:var(--r-sm)}
.has-sub > button:hover{color:var(--c-terra-700)}
.subnav{position:absolute;top:100%;left:0;min-width:320px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--sp-2);display:none;z-index:70}
.has-sub[data-open="true"] .subnav,.has-sub:hover .subnav,.has-sub:focus-within .subnav{display:grid}
.subnav a{padding:10px 14px;font-size:.9375rem}
.subnav a:hover{background:var(--surface-muted)}
.header-cta{display:flex;align-items:center;gap:var(--sp-3);flex:0 0 auto}
.header-tel{color:var(--c-graphite);text-decoration:none;font-weight:600;font-size:.9375rem;white-space:nowrap}
.burger{display:none;width:var(--touch);height:var(--touch);align-items:center;justify-content:center;background:none;border:1px solid var(--border-default);border-radius:var(--r-pill);cursor:pointer}
@media (max-width:1120px){.header-tel{display:none}}
@media (max-width:1020px){
  .nav{display:none}
  .burger{display:inline-flex}
  .header-cta .btn{padding:10px 18px;font-size:.9375rem}
  .mobile-panel{position:fixed;inset:var(--header-h) 0 0 0;background:#fff;z-index:55;overflow-y:auto;padding:var(--sp-6) 0 120px;display:none}
  .mobile-panel[data-open="true"]{display:block}
  .mobile-panel nav{display:grid;gap:var(--sp-1)}
  .mobile-panel a{display:flex;align-items:center;min-height:56px;padding:0 var(--sp-2);color:var(--c-graphite);text-decoration:none;font-size:1.125rem;font-weight:600;border-bottom:1px solid var(--border-subtle)}
  .mobile-panel .sub a{font-size:1rem;font-weight:400;padding-left:var(--sp-6);min-height:52px}
  body[data-lock="true"]{overflow:hidden}
}
@media (min-width:1021px){.mobile-panel{display:none!important}}

/* ---------- Hero ---------- */
.hero{position:relative;display:grid;align-items:end;min-height:clamp(583px,86vh,960px);background:var(--surface-muted);overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos,center);transform:scale(var(--hero-zoom,1));transform-origin:var(--hero-origin,center)}
.hero-scrim{position:absolute;inset:0;background:var(--hero-scrim,var(--scrim-left))}
.hero-inner{position:relative;padding-block:var(--sp-20) var(--sp-16);color:#fff}
.hero-inner .lead{color:rgba(255,255,255,.88)}
.hero-copy{max-width:min(760px,90%);display:grid;gap:var(--sp-6)}
.hero-tall{min-height:clamp(560px,86vh,880px)}
.hero-plain{background:var(--surface-muted);min-height:0;padding-block:calc(var(--band)*.72) calc(var(--band)*.62)}
.hero-plain .hero-inner{padding:0;color:var(--text)}
.hero-plain .lead{color:var(--text-muted)}

@media (max-width:1019px){
  .hero-scrim{background:rgba(47,50,52,.68)}
  .hero:not(.hero-plain) .hero-inner .lead{color:#fff}
  .hero-plain .hero-inner,.hero-plain .hero-inner .lead{color:var(--text)}
  .hero-plain .hero-inner .lead{color:var(--text-muted)}
  .hero-plain .hero-attrs li{color:var(--c-graphite)}
}

/* ---------- USP-Leiste ---------- */
.usp{display:grid;gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.usp-item{display:grid;gap:var(--sp-3);padding-top:var(--sp-6);border-top:2px solid var(--c-terra)}
.usp-item.card{padding:var(--sp-8);border-top:1px solid var(--border-subtle);gap:var(--sp-3)}
.usp-item h3{font-size:1.0625rem}
.usp-item p{color:var(--text-muted)}

/* ---------- Karten ---------- */
.card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-xs);padding:var(--sp-8);display:grid;gap:var(--sp-3);align-content:start;transition:transform var(--dur-move) var(--ease),box-shadow var(--dur-move) var(--ease)}
.band-muted .card{border-color:var(--c-greige-200)}
a.card{text-decoration:none;color:inherit}
a.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.card p{color:var(--text-muted)}
.card-media{margin:calc(var(--sp-8)*-1) calc(var(--sp-8)*-1) calc(var(--sp-8) - var(--sp-3));overflow:hidden;border-radius:var(--r-md) var(--r-md) 0 0}
.card-media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform var(--dur-move) var(--ease)}
a.card:hover .card-media img{transform:scale(1.04)}
.card-sand{background:var(--surface-muted);border-color:transparent;box-shadow:none}

/* ---------- Zahlen / Track Record ---------- */
.stats{display:grid;gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.stat{display:grid;gap:var(--sp-1)}
.stat b{font-size:clamp(2rem,2.6vw + .8rem,3rem);font-weight:700;letter-spacing:-.03em;line-height:1}
.stat > span{font-size:var(--fs-micro);color:var(--text-muted)}
.band-dark .stat > span{color:var(--text-on-dark)}

/* ---------- Listen ---------- */
.checklist{display:grid;gap:var(--sp-4)}
.checklist li{display:grid;grid-template-columns:22px 1fr;gap:var(--sp-3);align-items:start}
.checklist li:not(:has(svg)){display:list-item;grid-template-columns:none;margin-left:1.15em;list-style:disc}
.checklist li:not(:has(svg))::marker{color:var(--c-terra-700)}
.checklist svg{margin-top:5px;color:var(--c-terra-700);flex:0 0 auto}
.band-dark .checklist svg{color:var(--c-terra)}
.deflist{display:grid;gap:var(--sp-5)}
.deflist > div{display:grid;gap:var(--sp-1);padding-bottom:var(--sp-5);border-bottom:0;position:relative}
.deflist > div::after{content:"";position:absolute;left:0;bottom:0;width:49%;height:1px;background:var(--border-subtle)}
.deflist dt{font-weight:700}
.deflist dd{margin:0;color:var(--text-muted)}

/* ---------- Schritte ---------- */
.steps h3{font-size:1.0625rem}
.steps p{color:var(--text-muted)}

/* ---------- Zitat ---------- */
.quote{display:grid;gap:var(--sp-5);max-width:70ch}
.quote blockquote{font-size:var(--fs-lead);line-height:1.42;font-weight:500}
.quote cite{font-style:normal;font-size:var(--fs-micro);color:var(--text-muted)}
.band-dark .quote cite{color:var(--text-on-dark)}
.testimonials{display:grid;gap:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.testimonial{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-8);display:grid;gap:var(--sp-4);align-content:start;box-shadow:var(--shadow-xs)}
.testimonial p{font-size:1.0625rem}
.testimonial footer{font-size:var(--fs-micro);color:var(--text-muted)}

/* ---------- FAQ / Accordion ---------- */
.accordion{display:grid;border-top:1px solid var(--border-default)}
.accordion > div{border-bottom:1px solid var(--border-default)}
.accordion button{width:100%;display:flex;gap:var(--sp-4);align-items:center;justify-content:space-between;min-height:64px;padding:var(--sp-5) 0;background:none;border:0;text-align:left;font-size:var(--fs-h3);font-weight:700;line-height:1.3;cursor:pointer}
.accordion button:hover{color:var(--c-terra-700)}
.accordion .ico{flex:0 0 auto;color:var(--c-terra-700);transition:transform var(--dur-move) var(--ease)}
.accordion button[aria-expanded="true"] .ico{transform:rotate(180deg)}
.accordion .panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-move) var(--ease)}
.accordion .panel[data-open="true"]{grid-template-rows:1fr}
.accordion .panel > div{overflow:hidden}
.accordion .panel-inner{padding-bottom:var(--sp-6);max-width:74ch;display:grid;gap:var(--sp-4)}

/* ---------- CTA-Band ---------- */
.ctaband{position:relative;overflow:hidden;background:var(--c-graphite);color:#fff}
.ctaband::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,rgba(212,161,142,0) 0%,rgba(212,161,142,.55) 35%,rgba(212,161,142,.55) 65%,rgba(212,161,142,0) 100%)}
.ctaband > *{position:relative;z-index:1}
.ctaband .inner{display:grid;gap:var(--sp-8);align-items:center;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding-block:calc(var(--band)*.62)}
.ctaband h2{max-width:24ch}
.ctaband p{color:var(--text-on-dark)}

/* ---------- Kontakt ---------- */
.contact-grid{display:grid;gap:var(--sp-12);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.hours{display:grid;gap:0}
.hours > div{display:flex;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle)}
.hours dt{font-weight:500}
.hours dd{margin:0;white-space:nowrap;color:var(--text-muted)}
.map-consent{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--surface-muted);border:1px solid var(--border-default);min-height:340px;display:grid;place-items:center;padding:var(--sp-8)}
.map-consent .inner{display:grid;gap:var(--sp-4);justify-items:center;text-align:center;max-width:44ch}
.map-consent iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.map-note{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-micro)}
.notice{border-left:0;background:var(--surface-muted);border-radius:var(--r-md);padding:var(--sp-8);display:grid;gap:var(--sp-3)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r-pill);background:var(--surface-muted);font-size:var(--fs-micro);font-weight:600;color:var(--c-grey)}
.band-dark .badge{background:rgba(255,255,255,.1);color:#fff}

/* ---------- Formular ---------- */
.form{display:grid;gap:var(--sp-5);max-width:520px}
.field{display:grid;gap:var(--sp-2)}
.field label{font-size:var(--fs-micro);font-weight:600}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;min-height:var(--touch);padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--r-sm);background:#fff;color:var(--text);width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--c-terra);box-shadow:0 0 0 3px rgba(212,161,142,.45)}
.form-note{font-size:var(--fs-micro);color:var(--text-muted)}

/* ---------- Footer ---------- */
.site-footer{background:var(--c-graphite);color:var(--text-on-dark);padding-block:var(--sp-20) var(--sp-10);margin-top:0}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--c-terra);text-decoration:underline}
.footer-grid{display:grid;gap:var(--sp-12);grid-template-columns:1.25fr 1fr 1fr 1fr auto;align-items:stretch}
@media (max-width:1180px){.footer-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.footer-grid h2{font-size:.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c-terra);margin-bottom:var(--sp-5)}
.site-footer img{height:50px;width:auto;margin-bottom:var(--sp-5)}
.footer-list{display:grid;gap:var(--sp-3)}
.footer-hours > div{display:flex;justify-content:space-between;gap:var(--sp-5);padding:6px 0;border-bottom:1px solid var(--border-on-dark)}
.footer-hours dd{margin:0;white-space:nowrap}
.footer-bottom{margin-top:var(--sp-16);padding-top:var(--sp-6);border-top:1px solid var(--border-on-dark);display:flex;flex-wrap:wrap;gap:var(--sp-6);justify-content:space-between;font-size:var(--fs-micro)}
.footer-bottom nav{display:flex;flex-wrap:wrap;gap:var(--sp-6)}

/* ---------- Karriere (Du-Ansprache, gleiche Tokens) ---------- */
.lounge{display:grid;gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.lounge article{display:grid;gap:var(--sp-4);align-content:start}
.lounge img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-md)}
.two-ways{display:grid;gap:var(--sp-10);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}

.pageend{height:0}
/* Platzhalter fuer noch fehlende Fotos */
.photo-todo{display:grid;place-items:center;aspect-ratio:3/2;border-radius:var(--r-md);background:var(--c-greige-100);border:1px dashed var(--c-greige-200);color:var(--text-muted);font-size:var(--fs-micro);text-align:center;padding:var(--sp-6)}
.photo-todo.portrait{aspect-ratio:4/5}

/* ---------- Leitmotiv: Bogenform des Logo-Symbols ---------- */
/* Sehr sparsam einsetzen: ein bis zwei Vorkommen pro Seite. */
.divider-mark{display:grid;place-items:center;padding-block:var(--sp-4)}
.divider-mark::before,.divider-mark::after{content:"";height:1px;background:var(--border-default)}
.divider-mark{grid-template-columns:1fr auto 1fr;gap:var(--sp-6);align-items:center}
.divider-mark img{height:22px;width:auto;opacity:.9}

.arch{border-radius:clamp(120px,26vw,260px) clamp(120px,26vw,260px) var(--r-md) var(--r-md);overflow:hidden}
.arch img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
@media (max-width:820px){.arch img{aspect-ratio:4/4.4}}

/* ---------- Mehr Luft um Sektions-Headlines ---------- */
.band-air{padding-block:calc(var(--band)*1.25)}
.section-head.air{gap:var(--sp-6);margin-bottom:var(--sp-8)}
.section-head.center{margin-inline:auto;text-align:center;justify-items:center}

/* ---------- Leistungs-Grid: strikt drei Spalten ---------- */
.grid-3{display:grid;gap:var(--sp-6);grid-template-columns:1fr}
@media (min-width:640px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.grid-3{gap:var(--sp-8);grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Track-Record-Leiste ---------- */
.statband{background:var(--surface-muted)}
.statband .inner{display:grid;gap:var(--sp-12);padding-block:calc(var(--band)*.78)}
.statband .figures{display:grid;gap:var(--sp-10) var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.statband .figure{display:grid;gap:var(--sp-2);padding-top:var(--sp-6);border-top:2px solid var(--c-terra)}
.statband .figure b{font-size:clamp(2.75rem,5vw + .8rem,5rem);font-weight:700;letter-spacing:-.035em;line-height:.95;color:var(--c-graphite);font-variant-numeric:tabular-nums}
.statband .figure > span{font-size:var(--fs-body);color:var(--text-muted)}

/* Leistungs-Hero mit durchscheinendem Bild */
.hero-soft{position:relative;overflow:hidden}
.hero-soft::before{content:"";position:absolute;inset:0;background-image:var(--hero-img);background-size:var(--hero-size,cover);background-repeat:no-repeat;background-position:var(--hero-focus,right bottom);opacity:.34}
.hero-soft::after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.92) 26%,rgba(255,255,255,.72) 52%,rgba(255,255,255,.34) 78%,rgba(255,255,255,.16) 100%)}
.hero-soft > *{position:relative;z-index:2}
@media (max-width:720px){.hero-soft::after{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.88) 100%)}}

/* Hero-Attribute als Punktliste */
.hero-attrs{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin-top:var(--sp-4);list-style:none;padding:0}
.hero-attrs li{display:inline-flex;align-items:center;gap:10px;padding:0;font-size:clamp(1.0625rem,1.5vw,1.375rem);font-weight:600;letter-spacing:.005em;color:#fff}
.hero-attrs li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c-terra);box-shadow:0 0 0 4px rgba(212,161,142,.22);flex:0 0 auto}
.hero-attrs.on-light li{color:var(--c-graphite)}

/* SEO-Textblock */
.seo-text{position:relative;overflow:hidden;border-top:1px solid var(--border-subtle);padding-block:calc(var(--band)*1.15)}
.seo-text::before{content:"";position:absolute;left:-6%;right:auto;top:-28%;width:min(760px,68%);height:520px;pointer-events:none;background:radial-gradient(ellipse at center,rgba(212,161,142,.16) 0%,rgba(212,161,142,0) 72%)}
.seo-text::after{content:"";position:absolute;right:-8%;left:auto;bottom:-32%;width:min(620px,56%);height:460px;pointer-events:none;background:radial-gradient(ellipse at center,rgba(207,200,192,.24) 0%,rgba(207,200,192,0) 74%)}
.seo-text > *{position:relative;z-index:1}
.seo-text h2{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:var(--sp-8)}
.seo-body{columns:2;column-gap:var(--sp-10)}
@media (max-width:820px){.seo-body{columns:1}}
.seo-text p{max-width:none;color:var(--text-muted);break-inside:avoid;-webkit-column-break-inside:avoid}
.seo-text p + p{margin-top:var(--sp-4)}

/* Rechtsseiten: Textbreite an Seitenraster angleichen */
.legal-prose{max-width:none}
.legal-prose > * + *{margin-top:var(--sp-5)}
.legal-prose p,.legal-prose li{max-width:88ch}

/* Footer mit weichem Verlauf statt Flaechengrau */
.site-footer{position:relative;background:linear-gradient(168deg,#3D4143 0%,var(--surface-dark) 46%,var(--c-graphite-900) 100%)}
.site-footer::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,rgba(212,161,142,0) 0%,rgba(212,161,142,.55) 35%,rgba(212,161,142,.55) 65%,rgba(212,161,142,0) 100%)}
.site-footer::after{content:"";position:absolute;left:50%;top:-14%;width:min(900px,90%);height:420px;transform:translateX(-50%);pointer-events:none;background:radial-gradient(ellipse at center,rgba(212,161,142,.13) 0%,rgba(212,161,142,0) 68%)}
.site-footer > *{position:relative;z-index:1}

/* Formular mit Ansprechpartner-Karte */
.form-split{display:grid;gap:var(--sp-8);grid-template-columns:minmax(300px,.85fr) minmax(320px,1.15fr);align-items:stretch}
@media (max-width:900px){.form-split{grid-template-columns:1fr}}
.form-aside{position:relative;overflow:hidden;border-radius:var(--r-md);padding:var(--sp-8);color:#fff;background:linear-gradient(158deg,#3D4143 0%,var(--c-graphite) 55%,var(--c-graphite-900) 100%);display:flex;flex-direction:column;gap:var(--sp-4)}
.form-aside::after{content:"";position:absolute;right:-18%;top:-12%;width:340px;height:340px;pointer-events:none;background:radial-gradient(circle,rgba(212,161,142,.22) 0%,rgba(212,161,142,0) 70%)}
.form-aside > *{position:relative;z-index:1}
.form-aside h2,.form-aside h3{color:#fff;margin:0}
.form-aside p{color:rgba(255,255,255,.86)}
.form-aside .form-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff}
.form-person{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:var(--sp-5);border-top:1px solid rgba(255,255,255,.16)}
.form-person img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.form-person .who{font-weight:700}
.form-person .role{font-size:.875rem;color:rgba(255,255,255,.72)}
.form-aside .btn-whatsapp{align-self:flex-start}
.btn-whatsapp{background:#25D366;color:#fff;border-color:#25D366;display:inline-flex;align-items:center;gap:10px}
.btn-whatsapp:hover{background:#1fbb5a;border-color:#1fbb5a;color:#fff}
.btn-whatsapp svg{flex:0 0 auto}
.form-card{background:#fff;border:1px solid var(--c-greige-200);border-radius:var(--r-md);padding:var(--sp-8);box-shadow:0 1px 2px rgba(47,50,52,.04),0 10px 30px rgba(47,50,52,.06)}
.form-row{display:grid;gap:var(--sp-4);grid-template-columns:1fr 1fr}
@media (max-width:620px){.form-row{grid-template-columns:1fr}}

/* Karriere: zentrierte, ruhigere Spaltenbreite */
.wrap-70{width:min(100%,72%);margin-inline:auto}
@media (max-width:1020px){.wrap-70{width:100%}}
.form-split.is-centered{width:min(100%,86%);margin-inline:auto}
.hero-plain.hero-soft::before{opacity:.40}
.section-head.is-centered{text-align:center;margin-inline:auto;max-width:62ch}
.list-plain{display:grid;gap:10px;margin-left:1.15em;list-style:disc}
.list-plain li{padding-left:4px}
.list-plain li::marker{color:var(--c-terra-700)}
.band-roomy{padding-block:calc(var(--band)*1.35) var(--band)}
.band-roomy .section-head{margin-bottom:var(--sp-10)}
.band-roomy .section-head + .accordion{margin-top:var(--sp-6)}

/* ============ MOBILE-FEINSCHLIFF ============ */
/* Kein horizontales Scrollen, egal was ueberlaeuft */
body{max-width:100%;overflow-x:clip}
img,svg,video{max-width:100%}

@media (max-width:640px){
  /* Header: Logo, CTA und Burger muessen in eine Zeile passen */
  .site-header .container{gap:var(--sp-3)}
  .brand{min-width:0;flex:0 1 auto}
  .brand img{height:39px}
  .header-cta{gap:var(--sp-2);min-width:0}
  .header-cta .btn{padding:9px 14px;font-size:.8125rem;white-space:nowrap}
  .burger{width:44px;height:44px;flex:0 0 auto}

  /* Hero: Bildhelden fuellen den sichtbaren Bereich, Textheroes bleiben kompakt */
  .hero:not(.hero-plain){min-height:calc(90vh - var(--header-h));min-height:calc(90svh - var(--header-h))}
  .hero.hero-plain{min-height:0}
  /* Mobil gleichmaessig abdunkeln statt Verlauf, damit Gesichter nicht mit dem Text konkurrieren */
  /* Deckkraft je Seite ueberschreibbar via --hero-scrim-mobile am .hero */
  .hero:not(.hero-plain) .hero-scrim,.hero-tall .hero-scrim{background:rgba(47,50,52,var(--hero-scrim-mobile,.62))}
  .hero-inner{padding-block:var(--sp-10) var(--sp-10)}
  .hero-copy{max-width:100%;gap:var(--sp-4)}
  .hero .display{font-size:clamp(2rem,8.5vw,2.6rem);line-height:1.12}
  .hero .lead{font-size:1rem}
  .hero-attrs{gap:6px 14px;flex-wrap:nowrap;justify-content:flex-start}
  .hero-attrs li{font-size:clamp(.8125rem,3.4vw,1rem);gap:6px;white-space:nowrap}
  .hero-attrs li::before{width:7px;height:7px;box-shadow:0 0 0 3px rgba(212,161,142,.22)}
  .btn-row{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .btn-row .btn{width:100%;justify-content:center}
  .hero-tall{min-height:calc(90vh - var(--header-h));min-height:calc(90svh - var(--header-h))}

  /* Abschnitte etwas kompakter, Text ruhiger */
  .band-roomy{padding-block:calc(var(--band)*1.05) var(--band)}
  .seo-text{padding-block:calc(var(--band)*.9)}
  .seo-text h2{margin-bottom:var(--sp-6)}

  /* Karten und Raster */
  .card{padding:var(--sp-6)}
  .form-aside,.form-card{padding:var(--sp-6)}
  .form-split.is-centered{width:100%}
  .wrap-70{width:100%}

  /* Tabellenartige Zeilen nicht quetschen */
  .hours dd,.hours dt{font-size:.9375rem}
}

/* WhatsApp-Widget darf CTAs nicht verdecken */
@media (max-width:640px){
  .wa-toggle{bottom:16px;right:16px}
}

/* ============ MARKENZEICHEN ALS HINTERGRUND-WASSERZEICHEN ============ */
.has-mark{position:relative;overflow:hidden}
.has-mark > *{position:relative;z-index:1}
.brandmark{position:absolute;z-index:0;pointer-events:none;user-select:none;
  width:var(--mark-w,min(680px,52vw));height:auto;opacity:.30;
  top:calc(var(--mark-top,6%) + 20px);right:var(--mark-right,-9%);left:auto;
  filter:saturate(.9)}
.brandmark--left{right:auto;left:var(--mark-left,-10%)}
.brandmark--bottom{top:auto;bottom:var(--mark-bottom,-6%)}
@media (max-width:1020px){.brandmark{width:min(400px,60vw);opacity:.20;right:-8%;top:1%}}
@media (max-width:640px){.brandmark{width:min(300px,66vw);opacity:.14;right:-6%;top:0}
  .brandmark--left{left:-6%;right:auto}}
@media (prefers-reduced-motion:no-preference){
  .brandmark{transition:opacity .6s var(--ease,ease)}
}
.brandmark--light{filter:brightness(0) invert(1);opacity:.55}
.seo-text .brandmark{opacity:.13;transform:scaleX(-1);top:calc(var(--band)*1.15 + 10px);bottom:auto;right:-9%;left:auto}
@media (max-width:640px){.seo-text .brandmark{top:calc(var(--band)*.9 + 6px);opacity:.12}}

/* Fuenf Kacheln: drei oben, zwei unten */
.grid-3-2{display:grid;gap:var(--sp-6);grid-template-columns:repeat(3,1fr)}
.grid-3-2 > :nth-child(4){grid-column:1/2}
.grid-3-2 > :nth-child(5){grid-column:2/3}
@media (max-width:900px){.grid-3-2{grid-template-columns:repeat(2,1fr)}.grid-3-2 > :nth-child(n){grid-column:auto}}
@media (max-width:600px){.grid-3-2{grid-template-columns:1fr}}
.band-air{padding-block:var(--band)}

/* ============ ZAHN-MUSTER FUER CREMEFARBENE BAENDER ============ */
.pattern-teeth{position:relative;overflow:hidden;padding-block-start:0}
.pattern-teeth > *{position:relative;z-index:1}
.pattern-teeth::before{content:"";position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;background-image:url('/assets/img/pattern-zahn.png');background-repeat:repeat;background-size:440px auto;filter:brightness(0) invert(1);opacity:.34;transform:rotate(-8deg)}
@media (max-width:640px){.pattern-teeth::before{background-size:260px auto;opacity:.3}}

/* Adresse mit Pin */
.addr-h1{display:block}
.addr-h1 .pin{display:inline-flex;align-items:center;justify-content:center;width:.86em;height:.86em;border-radius:50%;background:rgba(212,161,142,.16);border:1px solid var(--c-terra);color:var(--c-terra-700);vertical-align:middle;position:relative;top:-.06em;margin-right:.24em}
.addr-h1 .pin svg{width:.44em;height:.44em}

/* Karte randlos im Rahmen */
.map-frame{padding:0;overflow:hidden}
.map-frame iframe,.map-frame > div{display:block;width:100%;border:0}

/* Notfall-Block auffaellig */
.notice.notfall{border:3px dashed #B3402F;border-radius:var(--r-md);background:rgba(179,64,47,.05);padding:var(--sp-8)}
.notfall h2,.notfall h3{color:#8F2E20}
.notfall .eyebrow{color:#B3402F}
.form-card .form{max-width:none}

/* ============ KARTEN MIT ZAHN-AKZENT (Experiment) ============ */
.cards-mark .card{position:relative;overflow:hidden;isolation:isolate}
.cards-mark .card::before{content:"";position:absolute;z-index:0;pointer-events:none;top:12px;right:12px;width:108px;height:36px;background-image:url('/assets/img/symbol-terrakotta.png');background-repeat:no-repeat;background-size:contain;background-position:top right;opacity:.13;transition:opacity var(--dur-move,.22s) var(--ease,ease)}
.cards-mark .card > *{position:relative;z-index:1}
.cards-mark .card > h3:first-child,.cards-mark .card > h2:first-child,.cards-mark .card > .eyebrow:first-child{padding-top:34px}
@media (max-width:640px){.cards-mark .card > h3:first-child,.cards-mark .card > h2:first-child,.cards-mark .card > .eyebrow:first-child{padding-top:26px}}
.cards-mark .card:hover::before{opacity:.2}
@media (max-width:640px){.cards-mark .card::before{width:84px;height:28px;top:10px;right:10px;opacity:.11}}

/* ============ TIMELINE-SCHRITTE ============ */
.steps{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-6);
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));counter-reset:step;width:min(100%,none)}
.steps > li{position:relative;counter-increment:step;padding-top:64px}
.steps > li::before{content:counter(step);position:absolute;top:0;left:0;z-index:2;
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--c-terra);color:var(--c-graphite);font-weight:700;font-size:1.0625rem;
  box-shadow:0 0 0 6px rgba(212,161,142,.16)}
.steps > li::after{content:"";position:absolute;top:23px;left:46px;right:calc(-1 * var(--sp-6));
  height:0;border-top:2px dashed rgba(212,161,142,.75);z-index:1}
.steps > li:last-child::after{display:none}
.steps h3{margin-bottom:var(--sp-2)}

@media (max-width:760px){
  .steps{grid-template-columns:1fr;gap:var(--sp-7,32px)}
  .steps > li{padding-top:0;padding-left:70px;min-height:56px}
  .steps > li::before{top:0;left:0}
  .steps > li::after{top:52px;left:23px;right:auto;bottom:calc(-1 * var(--sp-7,32px));
    width:0;height:auto;border-top:0;border-left:2px dashed rgba(212,161,142,.75)}
  .steps > li:last-child::after{display:none}
}
.brandmark--cerec{width:var(--mark-w,min(420px,30vw));opacity:.16;filter:none}
@media (max-width:1020px){.brandmark--cerec{width:min(260px,42vw);opacity:.13}}
@media (max-width:640px){.brandmark--cerec{width:min(200px,52vw);opacity:.11;right:4%;top:10px}}

/* ============ BEWERTUNGS-BLOCK ============ */
.rating{display:inline-flex;align-items:center;gap:12px;margin-top:var(--sp-5);padding:0;background:none;border:0;color:inherit;flex-wrap:wrap}

.rating__score{font-size:1.75rem;font-weight:700;line-height:1;letter-spacing:-.01em}
.rating__stars{display:inline-flex;gap:3px;color:var(--c-terra)}
.rating__stars svg{width:20px;height:20px;flex:0 0 auto}
.rating__meta{font-size:.9375rem;line-height:1.3;color:inherit;white-space:nowrap}
.rating__meta b{font-weight:700;opacity:1}
@media (max-width:640px){
  .rating{gap:10px;margin-top:var(--sp-4)}
  .rating__score{font-size:1.5rem}
  .rating__stars svg{width:17px;height:17px}
  .rating__meta{font-size:.8125rem;white-space:normal}
}

/* Bewertungs-Tooltip */
.rating__meta{position:relative;cursor:help}
.rating__sources{position:absolute;left:0;bottom:calc(100% + 10px);z-index:20;
  min-width:210px;padding:10px 14px;border-radius:var(--r-sm);
  background:#575A5D;color:#fff;font-size:.8125rem;line-height:1.45;font-weight:400;
  white-space:normal;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
.rating__sources::after{content:"";position:absolute;top:100%;left:22px;border:6px solid transparent;border-top-color:#575A5D}
.rating__meta:hover .rating__sources,.rating__meta:focus-visible .rating__sources{opacity:1;visibility:visible;transform:translateY(0)}

/* Fokus-Siegel */
.split-media{position:relative}
.split-media img.seal,.seal{position:absolute;right:2px;bottom:16px;left:auto;top:auto;z-index:2;width:clamp(131px,15.6vw,174px)!important;height:auto!important;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(47,50,52,.3))}
@media (max-width:640px){.split-media img.seal,.seal{right:0;bottom:10px;width:112px!important}}
.footer-sealcol{display:flex;align-items:center;justify-content:flex-end;align-self:stretch}
.site-footer img.footer-seal,.footer-seal{width:clamp(94px,9.4vw,128px);height:auto;display:block}
@media (max-width:1020px){.footer-sealcol{justify-content:flex-start}}
/* Counter: Zahl in Terrakotta, Zusatz in Textfarbe */
b .cnt,.cnt{color:var(--c-terra-700);font-size:inherit;letter-spacing:inherit}
b .sfx,.sfx{color:var(--c-graphite);margin-left:5px;font-size:inherit}
.band-dark .sfx,.ctaband .sfx,.statband.band-dark .sfx{color:#fff}

/* ============ NACH-OBEN-BUTTON ============ */
.to-top{position:fixed;left:20px;bottom:20px;z-index:80;width:56px;height:56px;border-radius:999px;
  border:1px solid var(--c-greige-300);background:rgba(255,255,255,.82);color:var(--c-graphite);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  display:grid;place-items:center;cursor:pointer;
  box-shadow:0 6px 18px rgba(47,50,52,.18),0 2px 6px rgba(47,50,52,.10);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s,background .14s}
.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{background:#fff;color:var(--c-terra-700)}
.to-top:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(212,161,142,.5)}
@media (max-width:640px){.to-top{left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.to-top{transition-duration:1ms}}

/* ============ SMART-STICKY HEADER ============ */
.site-header{transition:transform .28s var(--ease,cubic-bezier(.22,.61,.36,1)),
  background .2s ease,box-shadow .2s ease,border-color .2s ease}
.site-header.is-stuck{background:rgba(255,255,255,.72);
  backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 6px 24px rgba(47,50,52,.08);border-bottom-color:rgba(207,200,192,.7)}
.site-header.is-hidden{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){.site-header{transition-duration:1ms}.site-header.is-hidden{transform:none}}

/* ============ BURGER MIT X-ANIMATION ============ */
.burger-box{position:relative;display:block;width:22px;height:16px}
.burger-bar{position:absolute;left:0;width:22px;height:2px;border-radius:2px;background:currentColor;
  transition:transform .28s cubic-bezier(.22,.61,.36,1),opacity .18s ease,top .28s cubic-bezier(.22,.61,.36,1)}
.burger-bar:nth-child(1){top:0}
.burger-bar:nth-child(2){top:7px}
.burger-bar:nth-child(3){top:14px}
.burger[aria-expanded="true"] .burger-bar:nth-child(1){top:7px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger-bar:nth-child(2){opacity:0;transform:scaleX(.4)}
.burger[aria-expanded="true"] .burger-bar:nth-child(3){top:7px;transform:rotate(-45deg)}
@media (prefers-reduced-motion:reduce){.burger-bar{transition-duration:1ms}}

/* Header-Glas dauerhaft, staerker im gescrollten Zustand */
.site-header{background:rgba(255,255,255,.62);backdrop-filter:blur(14px) saturate(135%);-webkit-backdrop-filter:blur(14px) saturate(135%)}

@media (max-width:900px){.hero .hero-media img{object-position:72% 34%}}

/* Handschriftliche Signatur */
@font-face{font-family:"Mrs Saint Delafield";src:url("../fonts/MrsSaintDelafield-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
.quote cite.signature,.signature{font-family:"Mrs Saint Delafield","Snell Roundhand","Apple Chancery","Segoe Script",cursive;
  font-size:clamp(1.9rem,3.8vw,2.95rem);line-height:1;font-style:normal;color:#1F3A93;
  display:block;margin-top:var(--sp-3)}
.hero:not(.hero-plain) .eyebrow{color:#fff}
.split .split-media.arch img.seal{left:16px;right:auto}
@media (max-width:640px){.split .split-media.arch img.seal{left:10px;right:auto}}

/* Telefon-Icon */
a[href^="tel:"]{display:inline-flex;align-items:center;gap:8px}
.ico-phone{flex:0 0 auto;color:var(--c-terra-700)}
.btn .ico-phone,.btn-primary .ico-phone{color:currentColor}
.btn-on-dark .ico-phone,.band-dark .ico-phone,.ctaband .ico-phone,.site-footer .ico-phone,.form-aside .ico-phone{color:#fff}
.header-tel .ico-phone{color:var(--c-terra-700)}
.brandmark--mid{top:50%;bottom:auto;transform:translateY(-50%)}
/* Fuenfer-Raster zentriert: 3 oben, 2 mittig darunter */
.grid-3-2.is-centered{justify-content:center}
.grid-3-2.is-centered > :nth-child(4){grid-column:1/2;justify-self:end;width:100%;max-width:none}
.grid-3-2.is-centered > :nth-child(5){grid-column:2/3}
@media (min-width:901px){
  .grid-3-2.is-centered{grid-template-columns:repeat(6,1fr)}
  .grid-3-2.is-centered > *{grid-column:span 2}
  .grid-3-2.is-centered > :nth-child(4){grid-column:2/4;justify-self:auto}
  .grid-3-2.is-centered > :nth-child(5){grid-column:4/6}
}
.head-logo{display:block;height:46px;width:auto;margin:0 auto var(--sp-4);opacity:.9}
.section-head:not(.is-centered) .head-logo{margin-inline:0}
@media (max-width:640px){.head-logo{height:38px}}
/* Zitat mit Portraet */
.quote-split{display:grid;gap:var(--sp-12);grid-template-columns:1.25fr .75fr;align-items:center}
@media (max-width:900px){.quote-split{grid-template-columns:1fr;gap:var(--sp-8)}}
.quote-media img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 18%;border-radius:var(--r-md)}

/* ============ MOBILER HEADER: sichere Aufteilung ============ */
@media (max-width:640px){
  .site-header .container{gap:10px;flex-wrap:nowrap}
  .brand{flex:0 1 auto;min-width:0}
  .brand img{height:34px;max-width:150px;object-fit:contain}
  .header-tel{display:none}
  .header-cta{flex:0 0 auto;gap:8px;min-width:0}
  .header-cta .btn{padding:9px 12px;font-size:.75rem;white-space:nowrap;letter-spacing:0}
  .burger{width:42px;height:42px;flex:0 0 auto}
}
@media (max-width:380px){
  .brand img{height:30px;max-width:118px}
  .header-cta .btn{padding:8px 10px;font-size:.6875rem}
}

/* Header-Telefonnummer auf schmalen Bildschirmen ausblenden
   (muss nach der allgemeinen tel:-Regel stehen) */
@media (max-width:1120px){.site-header .header-tel{display:none}}
[data-countup] .cnt,[data-countup] .sfx{font-size:inherit;line-height:inherit;letter-spacing:inherit}
[data-countup] .cnt{color:var(--c-terra-700)}
[data-countup] .sfx{color:var(--c-graphite)}
.band-dark [data-countup] .sfx,.ctaband [data-countup] .sfx,.statband.band-dark [data-countup] .sfx{color:#fff}
.contact-extra{margin-top:var(--sp-8)}
.contact-extra img{display:block;width:100%;aspect-ratio:16/11;object-fit:cover;object-position:center 35%;border-radius:var(--r-md)}

/* E-Mail-Icon */
a[href^="mailto:"]{display:inline-flex;align-items:center;gap:8px}
.ico-mail{flex:0 0 auto;color:var(--c-terra-700)}
.btn .ico-mail{color:currentColor}
.band-dark .ico-mail,.ctaband .ico-mail,.site-footer .ico-mail,.form-aside .ico-mail{color:#fff}

/* Texthervorhebung */
mark{background:var(--c-terra);color:#fff;font-weight:700;
  padding:.12em .3em;border-radius:0;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;
  box-shadow:.16em 0 0 var(--c-terra),-.16em 0 0 var(--c-terra)}
.band-dark mark,.ctaband mark{background:var(--c-terra);color:var(--c-graphite)}
.subhead{font-size:var(--fs-lead);font-weight:500;color:var(--text-muted);margin-top:calc(var(--sp-2)*-1)}

/* Siegel-Tooltip */
.seal-wrap{position:absolute;right:2px;bottom:16px;z-index:3;display:inline-block;line-height:0;cursor:help}
.seal-wrap img.seal{position:static!important;right:auto;bottom:auto}
.seal-wrap--footer{position:relative;right:auto;bottom:auto;display:inline-block}
.seal-tip{position:absolute;right:0;bottom:calc(100% + 10px);z-index:30;
  width:max-content;max-width:min(300px,72vw);padding:10px 14px;border-radius:var(--r-sm);
  background:#575A5D;color:#fff;font-size:.8125rem;line-height:1.45;font-weight:400;
  text-align:left;white-space:normal;box-shadow:var(--shadow-md);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
.seal-tip::after{content:"";position:absolute;top:100%;right:26px;border:6px solid transparent;border-top-color:#575A5D}
.seal-wrap:hover .seal-tip,.seal-wrap:focus .seal-tip,.seal-wrap:focus-within .seal-tip{opacity:1;visibility:visible;transform:translateY(0)}
.seal-wrap--footer .seal-tip{right:auto;left:0}
.seal-wrap--footer .seal-tip::after{right:auto;left:26px}
@media (max-width:640px){.seal-wrap{right:0;bottom:10px}}
.hero-scrim{background:var(--hero-scrim,linear-gradient(100deg,rgba(47,50,52,.9) 0%,rgba(47,50,52,.72) 40%,rgba(47,50,52,.28) 78%,rgba(47,50,52,.1) 100%))}

/* Header-Logo: Terrakotta, beim Hover Graphit */
.brand{position:relative;display:inline-flex;align-items:center}
.brand img{transition:opacity .18s ease}
.brand .brand-dark{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0}
.brand:hover .brand-terra,.brand:focus-visible .brand-terra{opacity:0}
.brand:hover .brand-dark,.brand:focus-visible .brand-dark{opacity:1}
@media (prefers-reduced-motion:reduce){.brand img{transition-duration:1ms}}

/* Breitbild-Variante des Hero-Bildes (nur Desktop) */
@media (min-width:1021px){
  .hero-wide-img::before{background-image:var(--hero-img-wide,var(--hero-img));
    background-position:right center;background-size:cover;opacity:1}
  .hero-wide-img::after{background:linear-gradient(95deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.66) 34%,rgba(255,255,255,.3) 62%,rgba(255,255,255,0) 100%)}
}
/* Made-by-Credit */
.made-by{display:inline-flex;align-items:center;gap:6px;color:var(--text-on-dark)}
.made-by a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.made-by a:hover{color:var(--c-terra)}
.ico-heart{color:var(--c-terra);flex:0 0 auto}
.footer-bottom{align-items:center}
.usp-item.card h3{font-size:clamp(1.25rem,1.1vw + 1rem,1.5rem);line-height:1.25}
/* Icons folgen dem Button-Hover */
.btn:hover .ico-phone,.btn:hover .ico-mail{color:var(--c-terra-700)}
.btn-primary:hover .ico-phone,.btn-primary:hover .ico-mail{color:#fff}

/* ============ PAPIER-KORN ============ */
body::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  background-image:url("/assets/img/grain.png");background-size:256px 256px;background-repeat:repeat;
  opacity:.2;mix-blend-mode:multiply}
@media (max-width:640px){body::after{opacity:.16}}
@media print{body::after{display:none}}
/* Hinweisbox Beispielinhalte */
.note-demo{display:block;border-left:3px solid var(--c-terra);background:rgba(212,161,142,.09);
  padding:var(--sp-5) var(--sp-6);border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:var(--fs-micro);color:var(--text-muted);margin-bottom:var(--sp-8)}
.note-demo strong{color:var(--c-graphite)}

/* Karriere: Wasserzeichen fuellt den Whitespace der unvollstaendigen Lounge-Zeile */
.brandmark--lounge{width:var(--mark-w,min(560px,38vw));opacity:.24;
  right:var(--mark-right,5%);left:auto;
  top:auto;bottom:var(--mark-bottom,2%);transform:none}
@media (max-width:1020px){.brandmark--lounge{display:none}}

/* ============ WEITERLEITUNGS-HINWEIS VOR DER EXTERNEN TERMINBUCHUNG ============ */
.rdx-open{overflow:hidden}
/* Muss VOR .redirect-overlay stehen bzw. spezifischer sein: die display:grid-Regel
   ueberschreibt sonst das UA-Stylesheet fuer [hidden] und der unsichtbare Overlay
   faengt saemtliche Klicks der Seite ab. */
.redirect-overlay[hidden]{display:none!important}
.redirect-overlay{position:fixed;inset:0;display:grid;place-items:center;
  /* ueber dem Papierkorn-Overlay (body::after, z-index 9999, mix-blend-mode:multiply),
     sonst blendet das Korn den Dialog durchscheinend */
  z-index:10000;isolation:isolate;
  padding:var(--sp-6);background:rgba(47,50,52,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  opacity:0;transition:opacity .2s var(--ease,ease)}
.redirect-overlay.is-open{opacity:1}
.redirect-card{position:relative;width:min(520px,100%);max-height:calc(100dvh - var(--sp-10));overflow-y:auto;
  background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);
  padding:var(--sp-10) var(--sp-8) var(--sp-8);display:grid;gap:var(--sp-4);justify-items:start;
  transform:translateY(10px) scale(.985);transition:transform .22s var(--ease,cubic-bezier(.22,.61,.36,1))}
.redirect-overlay.is-open .redirect-card{transform:none}
.redirect-card h2{font-size:clamp(1.375rem,2.4vw,1.75rem);line-height:1.2;margin:0}
.redirect-card p{margin:0;color:var(--text-muted);font-size:.9375rem;line-height:1.6}
.redirect-close{position:absolute;top:10px;right:10px;width:40px;height:40px;display:grid;place-items:center;
  border:0;background:transparent;color:var(--c-grey);cursor:pointer;border-radius:var(--r-pill)}
.redirect-close:hover{background:var(--c-greige-100);color:var(--c-graphite)}
.redirect-timer{position:relative;width:60px;height:60px;display:grid;place-items:center;margin-top:var(--sp-2);justify-self:center}
.redirect-timer svg{position:absolute;inset:0}
.rdx-track{stroke:var(--c-greige)}
.rdx-ring{stroke:var(--c-terra);transition:stroke-dashoffset .95s linear}
.redirect-count{font-weight:700;font-size:1.125rem;color:var(--c-graphite);font-variant-numeric:tabular-nums}
.redirect-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);width:100%;margin-top:var(--sp-2)}
.redirect-actions .btn{flex:1 1 auto;justify-content:center}
@media (max-width:640px){
  .redirect-card{padding:var(--sp-8) var(--sp-6) var(--sp-6);gap:var(--sp-3)}
  .redirect-actions{flex-direction:column}
  .redirect-actions .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .redirect-overlay,.redirect-card,.rdx-ring{transition-duration:1ms}
}

/* Aktiver Menuepunkt im Dropdown: Elternknopf mitmarkieren (setzt _partials/build.py) */
.nav .has-sub.is-active > button{color:var(--c-terra-700);font-weight:700}

/* ============ LANGE DEUTSCHE KOMPOSITA ============ */
/* Ein Wort wie "Berufshaftpflichtversicherung" hat eine min-content-Breite von 427px.
   In einem Grid zieht das die Spalte auf und schiebt die ganze Seite ueber den Viewport.
   min-width:0 loest die Spalte vom Wort, die Umbruchregeln brechen das Wort selbst. */
.container > *{min-width:0}
h1,h2,h3,h4,.prose,.prose p,.prose li{overflow-wrap:break-word}
@media (max-width:640px){
  .prose h2,.prose h3,.legal-prose h2,.legal-prose h3{hyphens:auto;-webkit-hyphens:auto}
}

/* Fuenfer-Raster: die Spaltenzuweisung fuer Kachel 4 und 5 gilt nur im Dreispalter.
   Ohne diesen Reset erzwingen sie unter 900px eine zweite, implizite Spalte
   und schieben den Inhalt ueber den Viewport. */
@media (max-width:900px){
  .grid-3-2.is-centered > :nth-child(4),
  .grid-3-2.is-centered > :nth-child(5){grid-column:auto;justify-self:auto}
}

/* Oeffnungszeiten: Dienstag und Donnerstag haben zwei Bloecke, der dd wird zweizeilig */
.footer-hours > div,.hours > div{align-items:flex-start}
.footer-hours dd,.hours dd{text-align:right;line-height:1.35}

/* Philosophie: Wasserzeichen an der Textstelle 15 Prozent zurueckgenommen */
.brandmark--soft15{opacity:.255}
@media (max-width:1020px){.brandmark--soft15{opacity:.17}}
@media (max-width:640px){.brandmark--soft15{opacity:.119}}

/* ============ VIDEO: TRIGGER UND LIGHTBOX ============ */
.video-trigger{display:block;position:relative;width:100%;padding:0;border:0;background:none;
  cursor:pointer;border-radius:var(--r-md);overflow:hidden;line-height:0}
.video-trigger img{display:block;width:100%;height:auto;transition:transform .4s var(--ease,ease)}
.video-trigger:hover img{transform:scale(1.02)}
.video-trigger::after{content:"";position:absolute;inset:0;background:rgba(47,50,52,.18);
  transition:background .2s ease}
.video-trigger:hover::after{background:rgba(47,50,52,.06)}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:76px;height:76px;border-radius:var(--r-pill);background:var(--c-terra);color:#fff;
  display:grid;place-items:center;box-shadow:0 10px 30px rgba(47,50,52,.28);
  transition:transform .22s var(--ease,ease),background .18s ease}
.video-trigger:hover .video-play{transform:translate(-50%,-50%) scale(1.06);background:var(--c-terra-700)}
.video-trigger:focus-visible{outline:3px solid var(--c-terra-700);outline-offset:3px}
.video-label{position:absolute;left:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:var(--r-pill);background:rgba(47,50,52,.82);color:#fff;
  font-size:.8125rem;font-weight:600;line-height:1.2;letter-spacing:.01em}
.media-credit{margin:var(--sp-2) 0 0;font-size:var(--fs-micro);color:var(--text-muted);line-height:1.4}
@media (max-width:640px){
  .video-play{width:60px;height:60px}
  .video-label{left:10px;bottom:10px;font-size:.75rem;padding:7px 12px}
}

.vbox[hidden]{display:none!important}
.vbox{position:fixed;inset:0;z-index:10000;isolation:isolate;display:grid;place-items:center;
  padding:var(--sp-6);background:rgba(47,50,52,.86);
  opacity:0;transition:opacity .2s var(--ease,ease)}
.vbox.is-open{opacity:1}
.vbox-inner{width:min(1100px,100%);display:grid;gap:var(--sp-3)}
.vbox-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);color:#fff}
.vbox-title{font-weight:700;font-size:1rem}
.vbox-close{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:var(--r-pill);
  background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.vbox-close:hover{background:rgba(255,255,255,.22)}
.vbox-frame{position:relative;background:#000;border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/9}
.vbox-frame video{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.vbox-credit{margin:0;color:rgba(255,255,255,.72);font-size:var(--fs-micro)}
.vbox-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.vbox{transition-duration:1ms}}

/* Produktabbildungen: vollstaendig sichtbar, kein Beschnitt (Lizenzauflage Dentsply Sirona) */
.mediagrid{display:grid;gap:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.mediagrid article{display:grid;gap:var(--sp-4);align-content:start}
.mediagrid figure{margin:0;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--r-md);padding:var(--sp-5);display:grid;gap:var(--sp-3);box-shadow:var(--shadow-xs)}
.mediagrid figure img{width:100%;height:auto;display:block;border-radius:var(--r-sm)}
.mediagrid figcaption{font-size:var(--fs-micro);color:var(--text-muted);line-height:1.45}

/* Zwei gleichfarbige Baender hintereinander addieren ihre Innenabstaende zu einer
   doppelt so grossen Leerflaeche. Der obere Abstand des zweiten entfaellt. */
.band-muted + .band-muted{padding-top:0}

/* Wasserzeichen: auf Mobil kleiner und hoeher, damit es die Ueberschrift nicht beruehrt
   (Kundenkommentare 773, 782, 787, 768) */
@media (max-width:640px){
  .brandmark{width:min(210px,56vw);opacity:.12;right:-4%;top:-18px}
  .brandmark--mid{top:50%;transform:translateY(-50%)}
}

/* Zwei Mitarbeiterstimmen untereinander im Zitatblock */
.quote .voice{margin:0;display:grid;gap:var(--sp-3)}
.quote .voice + .voice{padding-top:var(--sp-6);border-top:1px solid var(--border-subtle)}
.quote .voice blockquote{margin:0;font-size:var(--fs-lead);line-height:1.42;font-weight:500}
.quote .voice figcaption{font-size:var(--fs-micro);color:var(--text-muted);font-weight:600}
.band-muted .quote .voice + .voice{border-top-color:rgba(47,50,52,.12)}

/* Eingescannte Unterschrift statt Schreibschrift-Font */
.signature--img{display:block;line-height:0;margin-top:var(--sp-4)}
.signature--img img{display:block;width:clamp(200px,32vw,300px);height:auto}

/* ============ ZITAT-SLIDER IN DER SPRECHBLASE ============ */
.voices{display:grid;gap:var(--sp-5);margin-top:var(--sp-5)}
.voices-bubble{position:relative;background:#fff;border:1px solid var(--border-subtle);
  border-radius:var(--r-md);box-shadow:var(--shadow-xs);padding:var(--sp-8)}
/* Sprechblasen-Zipfel nach links, zum Foto hin */
.voices-bubble::before,.voices-bubble::after{content:"";position:absolute;left:-14px;top:54px;
  width:0;height:0;border:14px solid transparent;border-right-color:var(--border-subtle);border-left:0}
.voices-bubble::after{left:-13px;border-right-color:#fff}
.voices-viewport{overflow:hidden}
.voices-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;align-items:start;
  transition:transform .45s var(--ease,cubic-bezier(.22,.61,.36,1))}
.voices-track .voice{margin:0;display:grid;gap:var(--sp-3);padding:0;border:0}
.voices-track .voice blockquote{margin:0;font-size:var(--fs-lead);line-height:1.42;font-weight:500}
.voices-track .voice figcaption{font-size:var(--fs-micro);color:var(--text-muted);font-weight:600}
.voices-nav{display:flex;align-items:center;gap:var(--sp-4)}
.voices-arrow{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--border-subtle);border-radius:var(--r-pill);background:#fff;color:var(--c-graphite);
  transition:background .18s ease,color .18s ease,border-color .18s ease}
.voices-arrow:hover{background:var(--c-terra);border-color:var(--c-terra);color:#fff}
.voices-arrow:focus-visible{outline:3px solid var(--c-terra-700);outline-offset:2px}
.voices-dots{display:flex;gap:8px;align-items:center}
.voices-dots button{width:9px;height:9px;padding:0;border:0;border-radius:var(--r-pill);cursor:pointer;
  background:var(--c-greige);transition:background .18s ease,transform .18s ease}
.voices-dots button[aria-selected="true"]{background:var(--c-terra-700);transform:scale(1.25)}
.voices-dots button:focus-visible{outline:2px solid var(--c-terra-700);outline-offset:3px}
@media (max-width:820px){
  .voices-bubble::before,.voices-bubble::after{left:auto;right:auto;top:-14px;left:44px;
    border:14px solid transparent;border-bottom-color:var(--border-subtle);border-top:0}
  .voices-bubble::after{top:-13px;border-bottom-color:#fff}
}
@media (max-width:640px){.voices-bubble{padding:var(--sp-6)}}
@media (prefers-reduced-motion:reduce){.voices-track{transition-duration:1ms}}

/* Trustindex-Zertifikat liegt mit z-index 2147483647 ueber allem.
   Waehrend ein Dialog offen ist, muss es weichen. */
.rdx-open .ti-sticky-button,.vbox-open .ti-sticky-button{display:none!important}

/* Slider-Zitate: kein Trenner zwischen den Folien, Inhalt mittig */
.voices-track .voice + .voice{padding-top:0;border-top:0}
.voices-bubble{text-align:center}
.voices-track .voice{justify-items:center}
.voices-track .voice blockquote{text-align:center}
.voices-track .voice figcaption{text-align:center}
.voices-nav{justify-content:center}

/* YouTube im Lightbox-Rahmen */
.vbox-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.vbox-frame video[hidden]{display:none!important}

/* Video-Block in voller Spaltenbreite */
.video-wrap{max-width:900px}

/* Video-Trigger innerhalb der Mediagrid */
.mediagrid figure .video-trigger{border-radius:var(--r-sm)}
.mediagrid figure .video-trigger img{border-radius:0}
.mediagrid figure .video-play{width:64px;height:64px}

/* Social-Links im Footer */
.footer-social{display:flex;flex-wrap:wrap;gap:var(--sp-5);margin-top:var(--sp-4)}
.footer-social a{display:inline-flex;align-items:center;gap:.5rem}

/* Nur fuer Screenreader sichtbar */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* CEREC-Logo auf Mobil: lag halb ausserhalb des Bandes und wurde oben abgeschnitten.
   Hoehere Spezifitaet, weil die allgemeine .brandmark-Mobilregel weiter oben
   im Stylesheet steht und sonst top:-18px gewinnt. */
@media (max-width:640px){
  .brandmark.brandmark--cerec{
    width:min(190px,48vw);
    opacity:.13;
    right:3%;
    top:12px;
  }
}

/* Bewertungsabschnitt ausblenden, solange das Widget nichts liefert */
section[hidden]{display:none!important}

/* Einwilligungsbanner */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:9500;
  background:var(--c-graphite,#2F3234);color:#fff;
  box-shadow:0 -8px 32px rgba(0,0,0,.22);
  transform:translateY(110%);transition:transform .32s var(--ease,cubic-bezier(.22,.61,.36,1))}
.cc.is-open{transform:translateY(0)}
.cc-inner{max-width:1180px;margin:0 auto;padding:var(--sp-6) var(--sp-6);
  display:grid;gap:var(--sp-5);grid-template-columns:1fr auto;align-items:center}
.cc-text h2{font-size:1.05rem;margin:0 0 .35rem;color:#fff}
.cc-text p{margin:0;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.86);max-width:72ch}
.cc-text a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.cc-aktionen{display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:flex-end}
.cc-aktionen .btn{white-space:nowrap}
.cc-aktionen .btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.cc-aktionen .btn-secondary:hover{background:rgba(255,255,255,.1);border-color:#fff}
@media (max-width:860px){
  .cc-inner{grid-template-columns:1fr;padding:var(--sp-5) var(--sp-5)}
  .cc-aktionen{justify-content:stretch}
  .cc-aktionen .btn{flex:1 1 auto;text-align:center;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.cc{transition:none}}

/* Bewertungsabschnitt ausblenden, solange das Widget nichts liefert */
section[hidden]{display:none!important}

/* Keks im Einwilligungsbanner */
.cc-text h2 span{font-size:1.15em;line-height:1;margin-left:.15em}

/* Zustimmen-Button im Einwilligungsbanner: gruen */
.cc .cc-ja{background:#1E9E5A;color:#fff;border:1px solid #1E9E5A}
.cc .cc-ja:hover,.cc .cc-ja:focus-visible{background:#17804A;border-color:#17804A;color:#fff}
.cc .cc-ja:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Honigtopf im Formular: fuer Menschen unsichtbar, fuer Bots sichtbar */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Seitenwechsel: kurzes Überblenden.
   Cross-Document View Transitions, wo der Browser sie kann. Sonst blendet
   nur der Inhaltsbereich ein, nicht der Body, damit Kopfzeile, WhatsApp-Knopf
   und Einwilligungsbanner nicht mitwandern. */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root){animation-duration:.18s;animation-timing-function:ease}
::view-transition-old(root){animation-name:ab-raus}
::view-transition-new(root){animation-name:ab-rein}
@keyframes ab-raus{to{opacity:0}}
@keyframes ab-rein{from{opacity:0}}

@supports not (view-transition-name: none){
  @keyframes ab-seite-rein{from{opacity:0}to{opacity:1}}
  main{animation:ab-seite-rein .2s ease-out both}
}

@media (prefers-reduced-motion:reduce){
  @view-transition { navigation: none; }
  main{animation:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* Logo im Fußbereich führt zur Startseite */
.footer-logo{display:inline-block;line-height:0;border-radius:var(--r-sm)}
.footer-logo:hover img,.footer-logo:focus-visible img{opacity:.8;transition:opacity .2s var(--ease,ease)}
.footer-logo:focus-visible{outline:2px solid #fff;outline-offset:4px}
