:root{
  --navy:#2F377F; --navy-deep:#1F285D; --orange:#ED691F; --orange-action:#A94310;
  --apricot:#FBC7A0; --ink:#24305C; --muted:#536183; --line:#DCE2EF;
  --paper:#FFFFFF; --wash:#F7F9FD; --warm:#FFF5EC;
  --space-1:.375rem; --space-2:.75rem; --space-3:1rem; --space-4:1.5rem;
  --space-5:2rem; --space-6:3rem; --space-7:4.5rem;
  --radius-sm:.5rem; --radius-md:1rem; --radius-lg:1.5rem;
  --shadow-card:0 12px 36px rgba(36,48,92,.08); --shadow-header:0 4px 22px rgba(36,48,92,.08);
  --container:80rem; --body-size:1rem; --small-size:.875rem;
  --section-title:clamp(2rem,3vw,2.9rem); --hero-title:clamp(2.35rem,4.4vw,4.55rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6.5rem}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--body-size)/1.6 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
body.modal-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:var(--navy)}
a:hover{text-decoration-thickness:2px}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--orange-action);outline-offset:4px}
[hidden]{display:none!important}
.container{width:min(calc(100% - 2.5rem),var(--container));margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:-5rem;left:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--navy);color:white;border-radius:var(--radius-sm)}
.skip-link:focus{top:var(--space-3)}
.site-header{position:sticky;top:0;z-index:30;background:var(--paper);box-shadow:var(--shadow-header)}
.header-inner{display:flex;align-items:center;gap:var(--space-3);min-height:5.6rem}
.brand{display:flex;align-items:center;flex:0 0 auto;width:clamp(10rem,18vw,15.2rem)}
.brand img{display:block;width:100%}
.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.5rem,1.35vw,1.25rem);flex:1}
.site-nav>a{font-size:var(--small-size);font-weight:600;text-decoration:none;white-space:nowrap;padding:.75rem .1rem;border-bottom:2px solid transparent}
.site-nav>a:hover,.site-nav>a[aria-current="location"]{border-color:var(--orange-action);color:var(--orange-action)}
.nav-service{display:inline-flex;align-items:center;gap:.6rem;border:0;border-radius:var(--radius-sm);padding:.75rem 1rem;color:white;background:var(--orange-action);font-weight:700;white-space:nowrap}
.nav-service:hover,.button--orange:hover{background:#883608}
.language-switch{display:flex;align-items:center;gap:.2rem;flex:0 0 auto;padding-left:var(--space-2);border-left:1px solid var(--line)}
.language-switch a{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .42rem;text-decoration:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:700}
.language-switch a[aria-current]{box-shadow:inset 0 -2px var(--orange-action)}
.language-switch img{display:block;width:1.5rem;height:1.5rem}
.menu-toggle{display:none;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:2.8rem;height:2.8rem;padding:.55rem;align-items:center;justify-content:center;flex-direction:column;gap:.25rem}
.menu-toggle span{display:block;width:1.2rem;height:2px;background:var(--navy)}
.hero{position:relative;overflow:hidden;min-height:34rem;background:#687086;border-bottom:1px solid var(--line)}
.hero-media{position:absolute;inset:0;background:linear-gradient(135deg,#687086,#3F485F)}
.hero-media img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%}
.hero-media--empty{background:linear-gradient(135deg,#667083 0%,#39445C 100%)}
.hero-backdrop{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(19,28,59,.88) 0%,rgba(25,36,72,.76) 52%,rgba(25,36,72,.42) 100%);pointer-events:none}
.hero-inner{position:relative;z-index:2;display:flex;align-items:center;min-height:34rem}
.hero-copy{width:min(100%,48rem);padding:var(--space-7) 0}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--orange-action);font-weight:800;font-size:.72rem;margin:0 0 var(--space-2)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:var(--navy-deep);line-height:1.16;letter-spacing:-.025em}
h1{font-size:var(--hero-title);margin-bottom:var(--space-2);max-width:13ch}
h2{font-size:var(--section-title);margin-bottom:var(--space-3)}
h3{font-size:1.23rem;margin-bottom:var(--space-2)}
.hero .eyebrow{color:#FFD5B6;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.hero h1,.hero h2{color:white;text-shadow:0 2px 14px rgba(0,0,0,.38)}
.hero-lead{font-size:clamp(1.25rem,2vw,1.65rem);font-weight:700;color:white;margin-bottom:var(--space-3);text-shadow:0 1px 8px rgba(0,0,0,.42)}
.hero-body{max-width:42rem;color:#F5F7FC;font-size:1.07rem;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero-actions,.modal__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-5)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:3.15rem;border-radius:var(--radius-sm);border:1px solid transparent;padding:.72rem 1.3rem;font-weight:750;text-decoration:none;line-height:1.25}
.button--orange{background:var(--orange-action);color:white}
.button--outline{background:white;color:var(--navy-deep);border-color:var(--navy)}
.button--outline:hover{background:var(--navy);color:white}
.button--quiet{background:white;color:var(--navy-deep);border-color:var(--line)}
.button--quiet:hover{border-color:var(--navy)}
.button:disabled{opacity:.6;cursor:not-allowed}
.button--disabled{background:var(--line);color:var(--navy-deep)}
.hero-controls{display:flex;align-items:center;gap:.6rem;margin-top:var(--space-4)}
.hero-controls button{border:1px solid var(--line);border-radius:var(--radius-sm);background:white;color:var(--navy);padding:.4rem .7rem;font-weight:700}
.hero-controls button:hover{border-color:var(--navy)}
.hero-controls span{font-weight:700;color:white;text-shadow:0 1px 5px rgba(0,0,0,.5)}
.section{padding:var(--space-7) 0;scroll-margin-top:6.5rem}
.section-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:var(--space-6)}
.section-lead{max-width:43rem;font-size:1.08rem;color:var(--muted)}
.practice-card{padding:var(--space-5);background:var(--warm);border-radius:var(--radius-lg);border:1px solid #F5D5BF;min-height:12rem}
.practice-card__mark{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--orange);color:var(--navy-deep);font-size:1.8rem;font-weight:700;margin-bottom:var(--space-3)}
.practice-card p{color:var(--muted);margin:0}
.services{background:var(--wash)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:var(--space-5);margin-bottom:var(--space-5)}
.section-heading p:last-child{max-width:31rem;color:var(--muted)}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.service-card{background:white;border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-height:17rem}
.service-card__icon{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;font-weight:800;font-size:1.18rem;margin-bottom:var(--space-4)}
.service-card__icon--1{background:var(--orange);color:var(--navy-deep)}
.service-card__icon--2{background:var(--apricot);color:var(--navy-deep)}
.service-card__icon--3{background:var(--navy);color:white}
.service-card h3{max-width:20ch}
.service-card p{color:var(--muted);flex:1}
.text-link{display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--orange-action);font-weight:700;text-decoration:none;padding:0 0 .12rem}
.text-link:hover{color:var(--navy)}
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}
.hours-grid>div:first-child p:last-child{color:var(--muted);max-width:35rem}
.hours-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-card)}
.hours-card__head,.hours-card__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);padding:.55rem 0}
.hours-card__head{font-size:var(--small-size);font-weight:800;color:var(--navy);border-bottom:2px solid var(--orange)}
.hours-card__row{border-bottom:1px solid var(--line)}
.hours-card__row:last-child{border-bottom:0}
.contact{background:var(--wash)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-5);margin-top:var(--space-5)}
.contact-stack{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.contact-info,.arrival-card,.contact-form-card{background:white;border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}
.contact-info h3,.arrival-card h3{font-size:1rem;margin-bottom:.35rem}
.contact-info p,.arrival-card p{color:var(--muted);margin-bottom:0}
.contact-info a{overflow-wrap:anywhere}
.arrival-card{grid-column:1/-1;min-height:11rem;background:linear-gradient(135deg,#F8FAFE,#ECF1FB)}
.arrival-card .muted{margin-top:var(--space-3);font-size:var(--small-size)}
.contact-form-card{box-shadow:var(--shadow-card)}
.preview-note{padding:var(--space-3);border-left:4px solid var(--orange-action);background:var(--warm);font-weight:650;color:var(--navy-deep)}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0}
.field{min-width:0}
.field:has(textarea){grid-column:1/-1}
.field label{display:block;font-weight:700;font-size:var(--small-size);margin-bottom:.3rem}
.field__hint{display:inline;margin-left:.35rem;font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{display:block;width:100%;max-width:100%;min-width:0;border:1px solid #7B87A5;border-radius:var(--radius-sm);padding:.65rem .75rem;background:white;color:var(--ink)}
.field textarea{resize:vertical;min-height:6rem}
.field__error{display:block;color:#9D281E;font-size:var(--small-size)}
.privacy-confirm{display:flex;align-items:flex-start;gap:.65rem;font-size:var(--small-size);font-weight:650}
.privacy-confirm input{margin-top:.25rem;width:1rem;height:1rem;flex:0 0 auto}
.form-note{font-size:var(--small-size);color:var(--muted);margin:.5rem 0}
.form-note--urgent{color:#7A2B21;font-weight:650}
.contact-form-card>.button{margin-top:var(--space-3)}
.emergency{background:var(--navy-deep);color:white}
.emergency-inner{display:flex;align-items:center;gap:var(--space-5);padding-block:var(--space-5)}
.emergency h2{font-size:1.5rem;color:white;margin:0;flex:0 0 12rem}
.emergency p{margin:0}
.site-footer{background:var(--navy-deep);color:#F4F5FB;padding:var(--space-6) 0 var(--space-3)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-5)}
.footer-brand img{display:block;width:min(100%,17rem);background:white;border-radius:var(--radius-sm);padding:.4rem;margin-bottom:var(--space-3)}
.footer-brand p{color:#DDE3F4}
.site-footer h2{color:white;font-size:1rem;margin-bottom:var(--space-3)}
.site-footer a,.footer-link{display:block;color:#F4F5FB;text-decoration:none;margin:.45rem 0}
.site-footer a:hover,.footer-link:hover{text-decoration:underline}
.footer-link{background:none;border:0;padding:0;text-align:left;font:inherit}
.footer-bottom{border-top:1px solid rgba(255,255,255,.22);padding-top:var(--space-3);margin-top:var(--space-5);color:#C9D1E8}
.legal-page{min-height:24rem}
.legal-card{max-width:60rem}
.modal{width:min(calc(100vw - 2rem),39rem);max-height:min(90dvh,52rem);overflow:auto;border:0;border-radius:var(--radius-lg);padding:0;color:var(--ink);background:white;box-shadow:0 28px 90px rgba(13,20,55,.35)}
.modal--form{width:min(calc(100vw - 2rem),47rem)}
.modal::backdrop{background:rgba(19,27,68,.67)}
.modal__inner{position:relative;padding:var(--space-5)}
.modal__inner>h2{padding-right:2rem}
.modal__close{position:absolute;right:1rem;top:1rem;display:grid;place-items:center;border:1px solid var(--line);background:white;color:var(--navy-deep);border-radius:50%;width:2.45rem;height:2.45rem;font-size:1.7rem;line-height:1}
.modal__close:hover{background:var(--wash)}
.modal .field-grid{margin-block:var(--space-5)}
.cookie-option{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3);margin:var(--space-3) 0}
.cookie-option p{color:var(--muted);margin:0}
.cookie-banner{position:fixed;z-index:50;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:min(calc(100% - 2rem),70rem);padding:var(--space-3) var(--space-4);background:white;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 16px 60px rgba(13,20,55,.22)}
.cookie-banner strong{color:var(--navy-deep)}
.cookie-banner p{font-size:var(--small-size);margin:0;color:var(--muted)}
.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:.5rem;flex:0 0 auto}
.cookie-banner__actions .button{min-height:2.6rem;font-size:var(--small-size);padding:.5rem .7rem}
.noscript-note{position:fixed;bottom:0;margin:0;padding:.7rem 1rem;background:var(--warm);color:var(--ink);width:100%;z-index:60}
.muted{color:var(--muted)}
@media(max-width:1120px){
 .header-inner{flex-wrap:wrap;padding-block:.45rem}
 .menu-toggle{display:flex;order:2;margin-left:auto}
 .language-switch{order:3}
 .site-nav{order:4;width:100%;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap;gap:.35rem .9rem}
 .js .site-nav{display:none}
 .js .site-nav.is-open{display:flex}
 .site-nav>a{white-space:normal}
 .nav-service{margin:.4rem 0}
}
@media(max-width:900px){
 .hero-backdrop{background:linear-gradient(90deg,rgba(19,28,59,.88),rgba(25,36,72,.62))}
 .hero-copy{padding:var(--space-6) 0}
 .section-grid,.hours-grid,.contact-grid{grid-template-columns:1fr}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid{grid-template-columns:1.5fr 1fr 1fr}
}
@media(max-width:640px){
 :root{--space-7:3.5rem;--space-6:2.4rem}
 .container{width:min(calc(100% - 2rem),var(--container))}
 .header-inner{min-height:4.7rem}
 .brand{width:clamp(9rem,41vw,12.2rem)}
 .hero,.hero-inner{min-height:32rem}
 h1{max-width:none}
 .hero-actions{align-items:stretch}
 .hero-actions .button{width:100%}
 .section-heading{display:block}
 .service-grid,.field-grid,.contact-stack,.footer-grid{grid-template-columns:1fr}
 .arrival-card{grid-column:auto}
 .emergency-inner{display:block}
 .emergency h2{margin-bottom:.5rem}
 .modal__inner{padding:var(--space-4)}
 .cookie-banner{display:block;bottom:.5rem;padding:var(--space-3)}
 .cookie-banner__actions{margin-top:var(--space-3)}
 .cookie-banner__actions .button{flex:1 1 auto}
}
@media(max-width:380px){
 .brand{width:8.7rem}
 .language-switch{gap:0;padding-left:.3rem}
 .language-switch a{padding:.2rem}
 .language-switch a span{display:none}
 .menu-toggle{width:2.5rem;height:2.5rem;padding:.4rem}
 .modal{width:calc(100vw - 1rem);max-height:95dvh}
 .modal__inner{padding:var(--space-3)}
 .cookie-banner{width:calc(100% - 1rem)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
.spam-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.receipt-reference{display:inline-block;padding:.6rem 1rem;border:2px solid var(--orange-action);border-radius:var(--radius-sm);font-size:1.3rem;font-weight:800;color:var(--navy-deep);overflow-wrap:anywhere}


.form-errors{padding:var(--space-3);border-left:4px solid #9D281E;background:#FFF5EC;color:#7A2B21;font-weight:700;margin:var(--space-3) 0}

.preview-watermark{position:sticky;top:0;z-index:1000;background:#ed691f;color:#1f285d;text-align:center;padding:.55rem;font-weight:700}
.service-card__image{display:block;width:100%;max-height:190px;object-fit:cover;border-radius:10px;margin-bottom:1rem}
.footer-extra{display:flex;gap:1rem;flex-wrap:wrap;padding-bottom:1rem}.footer-extra a{color:#fff;text-decoration:underline}
.legal-body{white-space:normal;max-width:72ch;line-height:1.7}
.footer-contact{font-style:normal;line-height:1.7;margin-top:.8rem}.footer-contact a{color:inherit;text-decoration:underline}

/* Phase 10 Korrektur: verschachtelte Datenschutz- und Cookie-Dialoge */
.privacy-confirm label{min-width:0}.privacy-confirm a{font-weight:800}.modal--privacy{width:min(calc(100vw - 2rem),52rem)}.modal__scroll{max-height:min(58dvh,34rem);overflow:auto;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--wash)}.cookie-option{min-inline-size:0}.cookie-option legend{font-weight:800;color:var(--navy-deep);padding:0 .25rem}.cookie-choice{display:flex;align-items:flex-start;gap:.65rem;margin-top:.65rem;font-weight:650}.cookie-choice input{flex:0 0 auto;width:1rem;height:1rem;margin-top:.25rem}.cookie-choice input:disabled+span{color:var(--muted)}

/* Phase 10: Praxisurlaub */
.vacation-banner-wrap{padding-top:1rem}.vacation-banner,.vacation-notice{border:2px solid var(--orange-action);border-radius:var(--radius-md);background:#fff5ec;color:var(--navy-deep);padding:1rem 1.25rem;box-shadow:var(--shadow-card)}.vacation-banner h2,.vacation-notice h2{font-size:clamp(1.2rem,3vw,1.6rem);margin:0 0 .45rem;color:var(--navy-deep)}.vacation-banner p,.vacation-notice p{margin:.35rem 0}.vacation-notice{margin:1rem 0;box-shadow:none}.vacation-representative{margin-top:.85rem;padding-top:.75rem;border-top:1px solid #e6b78f}.vacation-representative h3{font-size:1rem;margin:0 0 .35rem;color:var(--navy-deep)}@media(max-width:380px){.vacation-banner,.vacation-notice{padding:.85rem}}

/* Responsiver Zwei-Zeilen-Header und dynamischer Sticky-Abstand */
:root{--preview-bar-height:0px;--site-header-height:6.5rem;--sticky-offset:calc(var(--preview-bar-height) + var(--site-header-height))}
html{scroll-padding-top:calc(var(--sticky-offset) + 1rem)}
.site-header{position:sticky;top:var(--preview-bar-height);z-index:40;background:#fff;transition:box-shadow .18s ease}
.site-header.is-scrolled{box-shadow:0 7px 24px rgba(31,40,93,.16)}
.header-tools{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}
.mobile-service{position:relative}
.nav-service--mobile{display:none}
.mobile-service-menu{position:absolute;z-index:3;top:calc(100% + .45rem);left:0;width:max-content;min-width:13.5rem;padding:.35rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-header)}
.mobile-service-menu button{display:block;width:100%;min-height:2.75rem;padding:.65rem .8rem;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--navy-deep);font-weight:750;text-align:left}
.mobile-service-menu button:last-child{border-bottom:0}
.mobile-service-menu button:hover{background:var(--warm);color:var(--orange-action)}
.section,.hero{scroll-margin-top:calc(var(--sticky-offset) + 1rem)}
.preview-watermark{position:sticky;top:0;z-index:45}
.modal{z-index:2000}

@media(max-width:1120px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;row-gap:.35rem;min-height:0;padding-block:.4rem}
 .brand{grid-column:1;grid-row:1;width:clamp(8.8rem,36vw,11.5rem)}
 .menu-toggle{display:flex;grid-column:2;grid-row:1;margin:0;width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem}
 .header-tools{grid-column:1/-1;grid-row:2;display:flex;justify-content:space-between;width:100%;gap:.5rem;padding-top:.35rem;border-top:1px solid var(--line)}
 .nav-service--mobile{display:inline-flex;min-height:2.75rem;padding:.55rem .8rem}
 .language-switch{order:initial;margin-left:auto;padding:0;border:0;gap:.15rem}
 .language-switch a{min-width:2.75rem;min-height:2.75rem;justify-content:center;padding:.25rem .35rem;border:1px solid transparent}
 .language-switch a[aria-current]{color:var(--navy-deep);background:var(--warm);border-color:var(--orange-action);box-shadow:none}
 .language-switch a span{display:inline}
 .site-nav{grid-column:1/-1;grid-row:3;order:initial;width:100%;display:flex;align-items:stretch;justify-content:flex-start;flex-direction:column;flex-basis:auto;gap:0;margin:.2rem 0 0;padding:.15rem 0;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
 .js .site-nav{display:none}
 .js .site-nav.is-open{display:flex}
 .site-nav>a{display:flex;align-items:center;width:100%;min-height:2.75rem;padding:.7rem .25rem;border:0;border-bottom:1px solid var(--line);white-space:normal}
 .site-nav>a:last-of-type{border-bottom:0}
 .site-nav>a:hover,.site-nav>a[aria-current="location"]{padding-left:.65rem;border-color:var(--line);background:var(--wash);color:var(--orange-action)}
 .nav-service--desktop{display:none}
 .mobile-service-menu{max-width:calc(100vw - 2rem)}
}
@media(max-width:380px){
 .menu-toggle{width:2.75rem;height:2.75rem;padding:.45rem}
 .language-switch a{padding:.2rem .3rem}
}
