/* Base: tokens, reset, header, footer, shared components */
:root{
  --primary:#021E73;--secondary:#03258C;--text:#001528;--accent:#457ABF;
  --accent-light:#9DBDF2; /* accent on navy, contrast >= 4.5:1 */
  --grey:#F0F0F0;--line:#dbdbdb;
  --font:Nexa,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  /* ---- LAYOUT GRID: exactly three container widths + one shared side gutter.
     Every section sits in one of them, so inner left/right edges line up on all pages.
       .c-full   edge to edge (backgrounds, hero, photo bands, header/footer bands)
       .c-wide   --w-wide   1600px  content width (kontakt map); rarely used
       .c-narrow --w-narrow 1140px  content width for ALL text/content (old Elementor boxed width)
     --pad is the minimum gutter between viewport edge and a wide/narrow container (20px on phones, 50px on desktop).
     The container width tokens are content widths (gutter not included). Full bands keep their
     background edge to edge but put their content in .c-narrow. Component-level inner widths
     (form column, hours block, photos) are allowed only INSIDE one of these containers. */
  --w-narrow:1140px;--w-wide:1600px;--w-full:100%;--pad:clamp(20px,4vw,50px);

  /* ---- TYPE SCALE (central; values measured on the old Elementor site at 1920px and 375px,
     the old site does not scale text on mobile, so neither do we).
     Change a token here and it changes site-wide.
     Scale tokens:
       --fs-sm   14.4  small print (kontakt hints, form intro, team role, footer tag/nav)
       --fs-base 16    body text, team name, accordion, nav, footer, form labels/inputs, impressum/datenschutz text
       --fs-md   20    opening hours lines (home + kontakt), leistungen bullet rows (row-t)
       --fs-lg   24    lead text: buttons, icon lists, tiles, hero doctor line, booking line,
                       hours note, impressum h4, kontakt coop text
       --fs-xl   32    notice heading, h3, online-termin heading, section titles (sec-title), hero h1/sub, sub-title, sub-h1, hours h2
       --fs-display 40 big H1: kontakt "So erreichen Sie uns", impressum, home "Leistungen"
     Role tokens (alias a scale token, adjust individually if one role should differ):
       --fs-nav, --fs-btn, --fs-lead, --fs-title, --fs-hero, --fs-hours
     Icon sizes (inline SVG .fa/.ico scale with font-size via em): --fs-ico-sm 16, -md 20, -lg 37 (contact/kontakt lists),
     -xl 50 (notice + calendar icon), -circle 60 / -circle-w 54 (kontakt circles). */
  --fs-sm:14.4px;--fs-base:16px;--fs-md:20px;--fs-lg:24px;--fs-xl:32px;--fs-display:40px;
  --fs-ico-sm:16px;--fs-ico-md:20px;--fs-ico-lg:37px;--fs-ico-xl:50px;--fs-ico-circle-w:54px;--fs-ico-circle:60px;
  --fs-nav:var(--fs-base);--fs-btn:var(--fs-lg);--fs-lead:var(--fs-lg);--fs-title:var(--fs-xl);--fs-hero:var(--fs-xl);--fs-hours:var(--fs-md);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:12px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font-family:var(--font);font-weight:400;color:var(--text);background:#fff;font-size:var(--fs-base);line-height:1.5;overflow-x:hidden}
h1,h2,h3,h4,h5,p,ul{margin:0;padding:0}
ul{list-style:none}
img,picture,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--primary);text-decoration:none}
a{transition:color .3s}
a:hover{color:var(--secondary)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:12px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
.c-full{width:var(--w-full)}
.c-narrow{width:min(100% - 2*var(--pad),var(--w-narrow));margin-inline:auto}
.c-wide{width:min(100% - 2*var(--pad),var(--w-wide));margin-inline:auto}
.sec-title{font-size:var(--fs-title);line-height:1.2;font-weight:700;text-transform:uppercase;color:var(--primary)}

/* Header */
.site-header{background:#fff;position:relative;z-index:10}
.site-header .c-narrow{display:flex;flex-direction:column;align-items:center;padding-block:16px 16px}
.brand{display:block;width:284px;max-width:70vw;margin-bottom:44px}
.brand img{width:100%;height:auto}
.nav-toggle{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);opacity:0;appearance:none;-webkit-appearance:none;pointer-events:none}
.nav-btn{display:none}
.site-nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:0}
.site-nav a{display:block;padding:12px 31px;font-weight:400;font-size:var(--fs-nav);text-transform:uppercase;color:var(--primary)}
.site-nav a{transition:color .3s}
.site-nav a:hover{color:var(--accent)}
@media (max-width:767px){
  /* One centred column: logo, burger below it, then the collapsible nav. */
  .site-header .c-narrow{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;padding-block:10px}
  .brand{width:200px;margin:0}
  .site-nav{justify-self:stretch}
  .nav-btn{display:grid;place-items:center;width:48px;height:48px;cursor:pointer;border-radius:6px}
  .nav-btn span,.nav-btn span::before,.nav-btn span::after{display:block;width:20px;height:3px;background:#012BA8;border-radius:2px;content:"";transition:transform .2s,opacity .2s}
  .nav-btn span{position:relative}
  .nav-btn span::before{position:absolute;top:-5.5px}
  .nav-btn span::after{position:absolute;top:5.5px}
  .nav-toggle:checked + .nav-btn span{background:transparent}
  .nav-toggle:checked + .nav-btn span::before{transform:translateY(5.5px) rotate(45deg)}
  .nav-toggle:checked + .nav-btn span::after{transform:translateY(-5.5px) rotate(-45deg)}
  .nav-toggle:focus-visible + .nav-btn{outline:3px solid var(--accent)}
  .site-nav{display:grid;grid-template-rows:0fr;visibility:hidden;width:100%;order:3;transition:grid-template-rows .3s ease,visibility 0s .3s}
  .nav-toggle:checked ~ .site-nav{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .3s ease,visibility 0s}
  /* Desktop row rules (wrap + justify centre) would re-flow the items into columns
     and centre them vertically while the clipped list grows, so reset both. */
  .site-nav ul{flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;gap:0;overflow:hidden;min-height:0}
  .site-nav li:first-child{margin-top:8px;border-top:1px solid var(--line)}
  .site-nav a{padding:14px 4px;min-height:48px;border-bottom:1px solid var(--line)}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:7px;min-height:48px;padding:14px 18px;border-radius:34px;background:var(--primary);color:#fff;font-size:var(--fs-btn);line-height:1.2;transition:background .3s,color .3s}
.btn:hover{background:var(--accent);color:#fff}
.fa{display:block;width:1em;height:1em;fill:currentColor;flex:none}
.fa.w7{width:.875em}
.fa.w6{width:.75em}
.btn svg{width:1em;height:1em;fill:currentColor;flex:none}
.btn .fa.w7{width:.875em}

/* Footer */
.foot-band{background:#fff;padding-block:60px 30px}
.foot-grid{display:grid;grid-template-columns:28.5fr 21.5fr 21.5fr 21.5fr;gap:20px;align-items:start}
.foot-addr{font-style:normal;font-size:var(--fs-base);line-height:1.35;color:var(--primary)}
.foot-h{font-weight:700;margin-bottom:14px}
.foot-link{font-size:var(--fs-base);color:var(--secondary);display:inline-flex;align-items:center;min-height:44px;padding-inline:4px;justify-self:start}
.theme-foot{text-align:center;padding-block:10px 40px}
.foot-logo{display:block;width:120px}
.theme-foot .tag{color:var(--primary);font-size:var(--fs-sm)}
.theme-foot ul{display:flex;flex-wrap:wrap;justify-content:center}
.theme-foot nav a{display:block;padding:12px 10px;font-size:var(--fs-sm);text-transform:uppercase;font-weight:700}
.theme-foot .copy{font-size:var(--fs-base);color:var(--primary);margin-top:6px}
@media (max-width:1024px){
  .foot-grid{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:0 28px}
  .foot-addr{flex:0 0 100%;margin-bottom:10px}
  .foot-link{padding-inline:0}
}
@media (max-width:767px){
  .foot-band{padding-block:40px 10px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-nav,.nav-btn span,.nav-btn span::before,.nav-btn span::after{transition:none!important}}

/* Opening hours (home + kontakt): day left, each time range on its own row. */
.hrs{display:grid;grid-template-columns:max-content max-content;justify-content:center;column-gap:.6em;row-gap:12px;list-style:none;margin:0;padding:0;text-align:left;font-size:var(--fs-hours);line-height:1.35}
.hrs li{display:contents}
.hrs .ts{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}
.hrs .t{white-space:nowrap}

/* Homepage */
main{display:block}

/* Hero */
.hero{position:relative;min-height:500px;display:grid;place-items:center;overflow:hidden;isolation:isolate;text-align:center}
.hero-slides{position:absolute;inset:0;z-index:-1;background:#dfe4ea}
.slide{position:absolute;inset:0;opacity:0}
.slide picture,.slide img{width:100%;height:100%;object-fit:cover}
.hero-slides::after{content:"";position:absolute;inset:0;background:#fff;opacity:.26;z-index:5}
.slide.s0{opacity:1;animation:kb0 15s linear infinite}
.slide.s1{animation:kb 15s linear 5s infinite}
.slide.s2{animation:kb 15s linear 10s infinite}
@keyframes kb0{0%{opacity:1;transform:scale(1)}36.7%{opacity:1;transform:scale(1.12)}37%,95%{opacity:0;transform:scale(1.12)}96%{opacity:1;transform:scale(1)}100%{opacity:1;transform:scale(1)}}
@keyframes kb{0%{opacity:0;transform:scale(1)}3.3%{opacity:1}33.3%{opacity:1}36.7%{opacity:0;transform:scale(1.12)}100%{opacity:0;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.slide.s0,.slide.s1,.slide.s2{animation:none}.slide.s1,.slide.s2{display:none}}
.hero-text{padding-block:60px;color:var(--primary)}
.hero h1{font-size:var(--fs-hero);font-weight:400;line-height:1.2}
.hero-sub{font-size:var(--fs-hero);font-weight:700;line-height:1.2;margin-top:20px}
.hero-doc{font-size:var(--fs-lead);font-weight:400;margin-top:20px}
@media (max-width:1024px){
  .hero-slides::after{opacity:.55}
  .hero-text{text-shadow:0 0 14px rgba(255,255,255,.95),0 0 4px rgba(255,255,255,.8)}
  .hero-doc{font-weight:700}
}
@media (max-width:767px){
  .hero{min-height:420px}
  .hero-slides::after{opacity:.5}
  .hero-text{text-shadow:0 0 12px rgba(255,255,255,.9)}
}
@media (max-width:399px){
  .hero-slides::after{opacity:.62}
}

/* Notice */
.notice{padding-block:60px 10px;text-align:center}
.notice .fa{font-size:var(--fs-ico-xl);margin:0 auto 14px;fill:var(--primary)}
.notice h2{font-size:var(--fs-xl);line-height:1.2;font-weight:700;text-transform:uppercase;color:var(--primary);margin-bottom:34px}
.notice-body{font-size:var(--fs-base);line-height:1.55}
.notice-body p+p{margin-top:.2em}
.notice-body strong{text-decoration:underline}
.notice-body .closure{margin-top:2.4em}
.booking-line{padding-block:30px 60px;text-align:center;font-size:var(--fs-lead);line-height:1.3;color:var(--text)}
.booking-line a{display:inline-block;padding-block:6px}
.adr{display:block;min-height:0}
@media (max-width:767px){
  .notice{padding-block:40px 0}
  .booking-line{padding-block:24px 36px}
}

/* Opening hours */
.hours{background:var(--primary);color:#fff;text-align:center;padding-block:60px;min-height:400px;display:grid;place-items:center}
.hours-in{max-width:480px;margin-inline:auto}
.hours h2{font-size:var(--fs-title);line-height:1.2;font-weight:400;color:#fff;margin-bottom:26px}
.hours .day{white-space:nowrap}
.hours-note{font-size:var(--fs-lead);margin-top:30px}
@media (max-width:767px){.hours{padding-block:44px;min-height:0}.hours h2{margin-bottom:20px}}

/* Contact */
.contact{padding-block:70px}
.contact-grid{display:grid;grid-template-columns:35.6fr 64.4fr;gap:20px;align-items:center}
.contact-info .sec-title{margin-bottom:26px}
.ic-list li{display:flex;align-items:center;gap:6px;font-size:var(--fs-lead);line-height:1.3;color:var(--secondary);padding-block:8px;border-bottom:1px solid #ddd}
.ic-list li:last-child{border-bottom:0}
.ic-list .fa{font-size:var(--fs-ico-lg);width:1.25em;fill:var(--accent)}
.ic-list a{color:var(--secondary);display:block;padding-block:4px}
.map{justify-self:end;width:min(100%,530px)}
.map img{width:100%;height:auto}
@media (max-width:767px){
  .contact{padding-block:40px}
  .contact-grid{grid-template-columns:1fr;gap:26px}
  .map{justify-self:stretch;width:100%}
}

/* Terminservice */
.termin{position:relative;min-height:400px;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;isolation:isolate;padding-block:50px}
.termin-bg{position:absolute;inset:0;z-index:-1}
.termin-bg picture,.termin-bg img{width:100%;height:100%;object-fit:cover;object-position:bottom center}
.termin-in{text-align:left}
.termin .sec-title{margin-bottom:30px;max-width:330px}
.termin p+p{margin-top:12px}
@media (max-width:767px){
  .termin{min-height:0;padding-block:40px}
  .termin-bg::after{content:"";position:absolute;inset:0;background:#fff;opacity:.35}
}

/* Leistungen */
.leistungen{padding-block:50px}
.leistungen .sec-title{font-size:var(--fs-display);text-align:center;margin-bottom:30px}
.tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.tiles a{transition:background .3s,color .3s;display:grid;place-items:center;text-align:center;min-height:150px;padding:20px 10px;background:var(--grey);font-size:var(--fs-lead);line-height:1.2;color:var(--primary);height:100%;overflow-wrap:anywhere}
.tiles a:hover{background:#e4e4e4}
@media (max-width:1023px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles a{min-height:120px}}
@media (max-width:767px){
  .leistungen{padding-block:36px}
}
@media (max-width:599px){
  .tiles{grid-template-columns:1fr}
  .tiles a{min-height:72px}
}

/* Team */
.team{background:var(--primary);color:#fff;padding-block:50px 70px}
.team .sec-title{color:#fff;text-align:center;margin-bottom:40px}
.team-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px 14px}
/* subgrid: photo, name and role each share one row across all columns, so a
   two-line name never puts a neighbour's role on its second line. */
.member{text-align:center;display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
.member .name{align-self:start}
.member .role{align-self:start}
.photo{width:89%;max-width:169px;margin:0 auto 14px;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#0a2f8f}
.photo img{width:100%;height:100%;object-fit:cover}
.name{font-size:var(--fs-base);line-height:1.2;letter-spacing:.5px}
.role{overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:1.5;letter-spacing:.2px;text-transform:uppercase;color:var(--accent-light);margin-top:8px}
@media (max-width:767px){
  .team{padding-block:40px 50px}
  .team-grid{grid-template-columns:minmax(0,1fr);gap:28px 12px}
  .name{overflow-wrap:break-word}
  .photo{width:78%}
}

/* zoomIn entrance: pure CSS; without support content is simply visible */
@keyframes zoomIn{from{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}
.hero .zin{animation:zoomIn 1.25s both}
@supports (animation-timeline:view()){
  .member.zin{animation:zoomIn linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
}
@media (prefers-reduced-motion:reduce){.zin{animation:none!important}}

/* consent-gated embeds on home: widget slot stays zero-height, map keeps its box */
.map.cg{display:block;aspect-ratio:657/413}
.map.cg>a{display:block}
.adr.cg:empty{display:none}

/* ---- Subpages: leistung, leistungen, simple, termin, kontakt ---- */
.sub,.kt{--s-navy:var(--navy,#021E73);--s-sec:var(--secondary,#03258C);--s-acc:var(--accent,#457ABF);--s-txt:var(--text,#001528);--s-grey:#F0F0F0;--s-line:#D4D4D4;display:block;overflow-x:hidden}
.sub .ico,.kt .ico{flex:none;display:block}
.sub .btn,.kt .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 16px;background:var(--s-navy);color:#fff;border:0;border-radius:6px;font:inherit;text-decoration:none;cursor:pointer;line-height:1.3;transition:background .3s,color .3s}
.sub .btn:hover,.kt .btn:hover,.sub .btn:focus-visible,.kt .btn:focus-visible{background:var(--s-acc);color:#fff}
.sub .btn .ico{font-size:var(--fs-ico-sm)}

.sub-hero{height:401px;overflow:hidden;background:var(--s-grey)}
.sub-hero picture{display:block;height:100%}
.sub-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.sub-wrap{margin-top:10px;padding:0 0 40px}
.sub-title{display:flex;align-items:center;min-height:112px;margin:0;padding:40px 38px;background:var(--s-grey);color:var(--s-navy);font-size:var(--fs-title);line-height:1.2;font-weight:400;letter-spacing:0;scroll-margin-top:10px}
.sub-title--link{margin-bottom:20px;padding-block:36px}
.sub-title--link:first-child{padding-block:40px}
.sub-title--link a{display:block;flex:1;color:inherit;text-decoration:none;min-height:44px}
.sub-title--link a:hover,.sub-title--link a:focus-visible{color:var(--s-acc)}
.sub-intro{padding:20px 38px 0;color:var(--s-navy)}
.sub-intro p{margin:0;font-weight:700;font-size:var(--fs-base)}

.rows{margin:0}
.row{border-bottom:1px solid var(--s-line);color:var(--s-navy)}
.row-t{font-size:var(--fs-md);line-height:1;min-width:0;overflow-wrap:anywhere}
.row-t::before{content:"\2022\00a0"}
.row>.row-t,.row--acc>summary .row-t{display:block}
.row>.row-t{padding:20px 15px 15px 42px;font-weight:400}
.row--acc{margin-left:27px}
.row--acc>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:55px;padding:18px 15px 13px 15px;cursor:pointer;list-style:none;font-weight:700}
.row--acc>summary::-webkit-details-marker{display:none}
.row--acc>summary:focus-visible{outline:2px solid var(--s-acc);outline-offset:-2px}
.row--acc .row-t{padding:0}
.row-i{font-size:var(--fs-ico-md);line-height:0;color:var(--s-navy);flex:none}
.row--acc .i-open{display:none}
.row--acc[open]:not(.is-closing) .i-closed{display:none}
.row--acc[open]:not(.is-closing) .i-open{display:block}
.row--acc[open]:not(.is-closing) .row-i .i-open{animation:icoIn .4s}
.row--acc.is-closing .i-closed{animation:icoIn .4s}
.row-b{overflow-wrap:anywhere;padding:4px 15px 18px 27px;color:var(--s-txt);line-height:1.5}
.row-b ul{margin:0;padding-left:1.1em}
.row-b li{margin:0 0 .7em}
.row-b p{margin:0 0 .7em}
.sub-back{margin:20px 0 0 27px}
.sub-back .btn{font-size:var(--fs-base);gap:5px}

/* text pages */
.sub-wrap--text{padding:40px 0 60px;margin-top:0}
.sub-h1{margin:0 0 .6em;color:var(--s-navy);font-size:var(--fs-title);line-height:1.2;font-weight:400;text-align:center}
.sub-h1--lg{font-size:var(--fs-display);margin-bottom:.3em}
.prose{color:var(--s-txt);line-height:1.5;overflow-wrap:anywhere;text-align:center}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--s-navy);line-height:1.2;margin:.8em 0 .4em;font-weight:400}
.prose h2{font-size:var(--fs-lg)}.prose h3{font-size:var(--fs-xl)}.prose h4{font-size:var(--fs-lg)}
.prose p{margin:0}
.prose strong{font-weight:700;color:#000}
.prose ul,.prose ol{margin:0;padding:0;list-style-position:inside}
.prose li{padding:0}
.prose a{color:var(--s-navy);text-decoration:underline}
.prose--center{font-size:var(--fs-lead);margin-bottom:20px}
.sub-h1--cal{display:flex;flex-direction:column;align-items:center;gap:14px;font-weight:700;font-size:var(--fs-xl);text-transform:uppercase}
.cal-ico{font-size:var(--fs-ico-xl);color:var(--s-navy);display:block;width:50px;height:50px}
.booking{display:block;width:100%;height:700px;max-height:100vh;border:0;margin:90px 0 0}
.booking.cg{display:flex;align-items:center;justify-content:center}
.booking-alt{margin:14px 0 0;text-align:center;font-size:var(--fs-base)}
.booking-alt a{display:inline-block;padding:10px 4px;color:var(--s-navy);text-decoration:underline}

/* kontakt */
.kt-hours{background:var(--s-navy);color:#fff;text-align:center;padding:30px 0 40px;min-height:0}
.kt-hours h2{margin:0 0 24px;font-size:var(--fs-title);line-height:1.2;font-weight:400;color:#fff;text-decoration:underline;text-underline-offset:4px}
.kt-note{margin:26px 0 0;font-size:var(--fs-lead)}
.kt-reach{padding:50px 0 40px}
.kt-reach h1{margin:0 0 30px;text-align:center;text-transform:uppercase;color:var(--s-navy);font-weight:700;font-size:var(--fs-display);line-height:1.2}
.kt-cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
.kt-acc{padding:0 30px 0 0}
.kt-cols>.kt-list{padding-left:30px;border-left:3px dotted var(--s-navy)}
.acc{border:0}
.acc>summary{display:flex;align-items:center;gap:0;min-height:44px;padding:15px 0 14px;cursor:pointer;list-style:none;color:var(--s-navy);font-size:var(--fs-base);line-height:1}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary:focus-visible{outline:2px solid var(--s-acc);outline-offset:2px}
.acc>summary{transition:color .3s}
.acc[open]:not(.is-closing)>summary{color:var(--s-acc)}
/* Route rows mirror .kt-list: mode icon and title sized like the phone rows. */
.acc>summary{gap:10px;font-size:var(--fs-lead);line-height:1.25}
.acc-mode{width:1.25em;flex:none;color:var(--s-acc);font-size:var(--fs-ico-lg)}
.acc-t{flex:1;min-width:0}
.acc-i{display:block;flex:none;font-size:var(--fs-ico-sm);color:inherit;transition:transform .4s}
.acc[open]:not(.is-closing) .acc-i{transform:rotate(180deg)}
.acc-b{padding:6px 0 14px calc(var(--fs-ico-lg)*1.25 + 10px);font-size:var(--fs-base);line-height:1.5;color:var(--s-sec)}
.acc-b p{margin:0 0 .8em}
.kt-list{list-style:none;margin:0;padding:0}
.kt-list a,.kt-list .li{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 0;color:var(--s-sec);text-decoration:none;font-size:var(--fs-lead);line-height:1.25}
.kt-list .ico{width:1.25em;color:var(--s-acc);font-size:var(--fs-ico-lg)}
.kt-list a{transition:color .3s}
.kt-list a:hover,.kt-list a:focus-visible{color:var(--s-acc)}
.kt-list span:last-child{min-width:0;overflow-wrap:anywhere}
.kt-list--sm a{font-size:var(--fs-lead)}
.kt-map{display:block}
.map-link{display:block;aspect-ratio:4/1;background:#e5e3df;overflow:hidden}
.map-link picture,.map-link img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.kt-two{padding:60px 0 50px}
.kt-two-in{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;align-items:start}
.kt-col{text-align:center;display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:0 20px}
.kt-col--l{border-right:3px dotted var(--s-navy);padding-right:50px}
.kt-circle{display:flex;align-items:center;justify-content:center;width:110px;height:110px;border-radius:50%;background:var(--s-navy);color:#fff;font-size:var(--fs-ico-circle);margin:0 auto 20px}
.kt-circle .fa-pip{width:117px;height:83px}
.kt-circle:has(.fa-pip){width:117px;height:117px}
.kt-circle--w{background:#fff;color:var(--s-navy);width:126px;height:126px;font-size:var(--fs-ico-circle-w)}
.kt-col h2,.kt-cancel h2{margin:0 0 12px;font-size:var(--fs-xl);line-height:1.3;font-weight:400;color:var(--s-sec)}
.kt-cancel h2{font-size:var(--fs-title)}
.kt-small{font-size:var(--fs-base);line-height:1.5;margin-bottom:20px;color:var(--s-sec)}
.kt-small p{margin:0 0 .8em}
.kt-small a:not(.btn){color:inherit;text-decoration:underline}
.kt-col .kt-list{text-align:left;margin:0 auto 20px}
.kt-photo{margin:0 0 20px}
.kt-photo img{display:block;width:100%;height:auto;max-width:420px;margin:0 auto}
.kt-coop p{margin:0 0 1em;font-size:var(--fs-lead);line-height:1.4;color:var(--s-acc)}
.kt-placeholder .btn{font-size:var(--fs-base)}
.kt-cancel{background:var(--s-navy);color:#fff;text-align:center;padding:30px 0 50px}
.kt-cancel h2{color:#fff}
.kt-col--r .kt-small,.kt-cancel .kt-small{font-size:var(--fs-sm)}
.kt-cancel .kt-small{color:#fff}
.kt-cancel .btn--inv{background:#fff;color:var(--s-navy)}
.kt-cancel .btn--inv:hover{background:var(--s-acc);color:#fff}
.kt-mail{display:inline-block;min-height:44px;line-height:44px;color:#fff}

@media (max-width:1024px){
  .map-link{aspect-ratio:2/1}
}
@media (max-width:767px){
  .acc-i{width:19.2px}
  .sub-hero{height:200px}
  .sub-wrap{margin-top:0;padding-bottom:30px}
  .sub-intro{padding:16px 20px 0}
  .row--acc{margin-left:15px}
  .row-b{padding-left:20px}
  .sub-back{margin-left:15px}
  .kt-hours{padding:26px 0 30px}
  .kt-hours h2{margin-bottom:18px}
  .kt-reach{padding:36px 0 24px}
  .kt-cols{grid-template-columns:1fr;gap:20px}
  .kt-acc{padding:0}
  .kt-cols>.kt-list{padding:0;border-left:0}
  .map-link{aspect-ratio:3/2}
  .kt-two{padding:36px 0 30px}
  .kt-two-in{grid-template-columns:1fr;gap:40px}
  .kt-col{padding:0}
  .kt-col--l{border-right:0;padding-right:0}
  .kt-col--r{padding-top:30px;border-top:3px dotted var(--s-navy)}
  .kt-cancel{padding:30px 0 40px}
}
.kt-col--r .fm{width:100%}
.kt-cancel .fm,.kt-cancel .fm label{color:#fff}
.kt-cancel .fm-ok{color:#1b4d1e}.kt-cancel .fm-err{color:#7f1212}
.kt-cancel .fm-c a{color:#fff}
.kt-cancel .fm-btn{background:#3A6BAA}
@media (max-width:480px){.map-link{aspect-ratio:1/1}}

@keyframes icoIn{from{opacity:0;transform:rotate(-90deg)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.row--acc .row-i *,.acc-i *{animation:none!important}}
.nf-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px}

/* ---- Consent-gated embeds (.cg) ---- */
.cg{position:relative}
.cg-frame,.cg iframe{display:block;width:100%;height:100%;border:0}
.cg-box{max-width:560px;margin:0 auto;padding:30px 24px;text-align:center;background:var(--grey);border:1px solid var(--line);font-size:var(--fs-base);line-height:1.5;color:var(--text)}
.cg-box p+p{margin-top:12px}
.cg-load{position:absolute;right:10px;bottom:10px;z-index:1;padding:8px 14px;border:0;border-radius:3px;background:var(--primary);color:#fff;font:inherit;font-size:var(--fs-sm);cursor:pointer;min-height:36px}
.cg-load:hover,.cg-load:focus-visible{background:var(--secondary)}
.cg:has(iframe)>.cg-load{display:none}
.map-link>a{display:block;width:100%;height:100%}

/* Contact forms (kontakt, absage). No-JS result messages via :target. */
.fm{display:flex;flex-direction:column;gap:10px;max-width:700px;margin-inline:auto;text-align:left}
.fm-f{display:flex;flex-direction:column;gap:4px}
.fm label{font-weight:400}
.fm input[type=text],.fm input[type=tel],.fm input[type=email],.fm input[type=date],.fm input[type=time],.fm select{
  width:100%;font:inherit;color:var(--text);background:#fff;border:1px solid var(--text);border-radius:3px;padding:8px 12px;min-height:44px}
.fm input:focus-visible,.fm select:focus-visible,.fm .fm-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.fm-c{display:flex;gap:10px;align-items:flex-start;margin-top:6px}
.fm-c input{flex:none;width:20px;height:20px;margin:3px 0 0}
.fm-c a{text-decoration:underline}
.fm-btn{align-self:flex-start;margin-top:10px;font:inherit;font-size:var(--fs-base);font-weight:500;color:#fff;background:var(--primary);border:0;border-radius:34px;padding:16px 32px;cursor:pointer}
.fm-btn:hover{background:var(--accent)}
.fm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fm-msg{display:none;padding:14px 16px;border:1px solid;border-radius:3px;scroll-margin-top:20px}
.fm-msg:target{display:block}
.fm-ok{background:#eef6ee;border-color:#2e7d32;color:#1b4d1e}
.fm-err{background:#fdeeee;border-color:#b71c1c;color:#7f1212}
@media (max-width:480px){.fm-btn{width:100%;align-self:stretch}}
.fm-req{color:#d00;font-weight:400}
.kt-cancel .fm-req{color:#ff9d9d}

/* Consent banner, settings dialog, sticky button. Behaviour: static/js/consent.js */
.cg-frame{width:100%;height:100%;border:0;display:block}
.cb[hidden],.cf[hidden]{display:none}
.cb{position:fixed;z-index:900;left:0;right:0;bottom:0;background:#fff;color:var(--text);border-top:4px solid var(--primary);box-shadow:0 -4px 24px rgba(0,21,40,.2);padding:16px max(var(--pad),env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));max-height:90vh;overflow:auto;animation:cb-up .3s ease-out}
.cb-h,.cd-h{margin:0 0 6px;font-size:var(--fs-md);font-weight:700;color:var(--primary);line-height:1.2}
.cb-t,.cd-t,.cd-d{margin:0 0 14px;font-size:var(--fs-sm);line-height:1.5}
.cb a,.cd a{text-decoration:underline}
.cb-btns{display:flex;flex-wrap:wrap;gap:10px}
.cb-btn{flex:1 1 130px;min-height:48px;padding:10px 14px;border:2px solid var(--primary);border-radius:34px;background:var(--primary);color:#fff;font:inherit;font-size:var(--fs-base);line-height:1.2;cursor:pointer;transition:background .3s,color .3s}
.cb-btn:hover{background:var(--accent);border-color:var(--accent)}
@media (min-width:760px){
  .cb{left:auto;right:20px;bottom:20px;width:520px;border:1px solid var(--line);border-top:4px solid var(--primary);border-radius:12px;padding-inline:24px}
}
.cd{border:0;border-radius:12px;padding:0;width:min(560px,100% - 24px);max-height:calc(100% - 24px);color:var(--text);box-shadow:0 10px 40px rgba(0,21,40,.35)}
.cd::backdrop{background:rgba(0,21,40,.55)}
.cd-in{padding:20px}
.cd-h{font-size:var(--fs-lg)}
.cd-row{border-top:1px solid var(--line);padding-top:12px;margin-bottom:14px}
.cd-d{margin:6px 0 0 56px}
.cd-sw{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:700;color:var(--primary)}
.cd-in-sw{position:absolute;opacity:0;width:44px;height:44px;margin:0;cursor:pointer}
.cd-track{flex:none;position:relative;width:44px;height:24px;border-radius:12px;background:#8a93a3;transition:background .2s}
.cd-track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.cd-in-sw:checked + .cd-track{background:var(--primary)}
.cd-in-sw:checked + .cd-track::after{transform:translateX(20px)}
.cd-in-sw:focus-visible + .cd-track{outline:3px solid var(--accent);outline-offset:2px}
.cd .cb-btns{margin-top:18px}
.cf{position:fixed;z-index:800;left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--primary);box-shadow:0 2px 8px rgba(0,21,40,.25);cursor:pointer}
.cf:hover{background:var(--primary);color:#fff}
body{padding-bottom:calc(54px + env(safe-area-inset-bottom))}
@keyframes cb-up{from{transform:translateY(20px);opacity:0}}
@media (prefers-reduced-motion:reduce){.cb{animation:none}.cd-track,.cd-track::after,.cb-btn{transition:none}}
@media (max-width:480px){.cb-btn{flex-basis:100%}.cd-d{margin-left:0}}

