.mapbox{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:560px;border:1px solid var(--line);background:var(--zr-plan-bg)}
.mapbox .plan{position:absolute;inset:0 0 72px}
#map{position:absolute;inset:0}
.map-legend{position:absolute;left:16px;bottom:16px;z-index:2;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-radius:16px;padding:10px;display:flex;gap:6px;flex-wrap:wrap;box-shadow:var(--shadow-s);max-width:calc(100% - 32px)}
.map-legend button{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:8px 12px;border-radius:10px;font-size:.84rem;font-weight:500;transition:background .15s}
.map-legend button:hover,.map-legend button.on{background:var(--sand)}
.map-legend .sw{width:18px;height:4px;border-radius:3px}
.est{margin-top:12px;font-size:.78rem;color:var(--muted)}
.loc-side{display:grid;gap:14px;align-content:start}
.lcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.lcard h3{font-size:1.3rem;margin-bottom:6px}
.addr{color:var(--ink-2);margin-bottom:16px}
.way{display:grid;gap:4px}
.way button,.way a{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:10px;border-radius:12px;text-align:left;transition:background .15s;width:100%}
.way button:hover,.way a:hover,.way button.on{background:var(--sand)}
.way .wi{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--mint-soft);color:var(--teal)}
.way .wi svg{width:19px;height:19px}
.way b{display:block;font-size:.93rem}
.way span{font-size:.8rem;color:var(--muted);display:block;line-height:1.35}
.way .min{font-family:Fraunces,serif;font-size:1.05rem;color:var(--teal);white-space:nowrap}
.hours{width:100%;border-collapse:collapse;font-size:.93rem}
.hours td{padding:9px 0;border-bottom:1px solid var(--line)}
.hours tr:last-child td{border-bottom:0}
.hours td:last-child{text-align:right;color:var(--ink-2);font-variant-numeric:tabular-nums}
.hours tr.today td{color:var(--teal);font-weight:600}
.hours tr.today td:first-child::after{content:"heute";margin-left:.5rem;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;background:var(--mint-soft);padding:.12rem .4rem;border-radius:5px;vertical-align:1px}

/* cta */
.cta{position:relative;border-radius:48px;overflow:hidden;background:var(--teal);color:#fff;padding:96px 72px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;isolation:isolate}
.cta::before{content:"";position:absolute;right:-120px;top:-160px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(134,211,192,.55),transparent 65%);z-index:-1}
.cta::after{content:"";position:absolute;left:-80px;bottom:-200px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(12,39,36,.6),transparent 65%);z-index:-1}
.cta h2{color:#fff;font-size:clamp(2.4rem,4.6vw,3.8rem)}
.cta p{color:#cfe8e1;margin-top:18px;font-size:1.1rem;max-width:44ch}
.cta-actions{display:grid;gap:12px;justify-items:stretch}
.cta-actions .btn{padding:1.15rem 1.5rem;font-size:1rem}
.cta small{color:#a9d2c8;text-align:center;font-size:.82rem}

/* footer */
footer.site{padding:88px 0 40px;font-size:.92rem;color:var(--ink-2)}
.foot{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:48px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.foot h4{font:600 .74rem Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:16px}
.foot ul{list-style:none;display:grid;gap:10px}
.foot a:hover{color:var(--teal)}
.foot .about p{margin:18px 0;max-width:34ch}
.legal{display:flex;justify-content:space-between;padding-top:28px;flex-wrap:wrap;gap:12px;font-size:.84rem;color:var(--muted)}
.legal a:hover{color:var(--teal)}

/* mobile bar */
.mbar{display:none}

/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .fcard,.dot.open::after{animation:none}
}

:focus-visible{outline:2.5px solid var(--teal);outline-offset:3px;border-radius:6px}

/* responsive */
@media (max-width:1180px){
  .tech-stage{grid-template-columns:1fr}
  .tech-stage .img{min-height:0;aspect-ratio:16/9}
  .menu,.topbar-l .hide-md{display:none}
  .burger{display:block}
  .nav-cta .phone-btn{display:none}
  .fc-1{left:-16px}
  .fc-2{right:-12px}
  .services{grid-template-columns:repeat(3,1fr)}
  .team{grid-template-columns:repeat(2,1fr)}
  .news{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:960px){
  section{padding:96px 0}
  .hero-grid,.welcome-grid,.comfort-grid,.kids,.doc,.visit,.sos,.loc,.cta,.sec-head,.tech-stage{grid-template-columns:1fr}
  .hero-grid{gap:48px}
  .hero-media{max-width:560px}
  .welcome-media,.sos-card{position:static}
  .featured{grid-template-columns:1fr 1fr}
  .featured .fsvc:first-child{grid-column:span 2}
  .fsvc{min-height:360px}
  .services{grid-template-columns:1fr 1fr}
  .comfort .img{min-height:420px}
  .comfort-text{padding:64px 36px}
  .tech-wrap{grid-template-columns:1fr}
  .tech-list{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
  .tech-list::-webkit-scrollbar{display:none}
  .tech-stage .img{min-height:280px}
  .quick-grid{grid-template-columns:1fr 1fr}
  .quick a:nth-child(2){border-right:0}
  .quick a:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .doc .img{max-width:420px}
  .cta{padding:64px 40px}
  .foot{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .topbar{display:none}
  .nav{height:68px}
  .nav-cta .btn-primary{display:none}
  .zr-word{font-size:1.2rem}
  .zr-mark{width:36px;height:36px}
  .hero{padding-top:28px}
  .hero h1{font-size:2.6rem}
  .hero .lead{font-size:1.05rem}
  .hero-actions .btn{flex:1}
  .creds{grid-template-columns:1fr 1fr;gap:18px}
  .fc-1{left:12px;bottom:12px}
  .fc-2{display:none}
  .hero-media .img{border-radius:24px 24px 24px 72px}
  .quick{margin-top:40px}
  .quick-grid{grid-template-columns:1fr}
  .quick a{border-right:0!important;border-bottom:1px solid var(--line)}
  .quick a:last-child{border-bottom:0}
  section{padding:72px 0}
  .services-sec,.team-sec,.comfort{margin-left:0;margin-right:0;border-radius:28px}
  .comfort{margin-top:72px}
  .featured{grid-template-columns:1fr}
  .featured .fsvc:first-child{grid-column:auto}
  .services{grid-template-columns:1fr}
  .svc{min-height:0}
  .gas{grid-template-columns:1fr}
  .comfort-text{padding:52px 22px}
  .tech-info{padding:28px}
  .kids .img{min-height:300px}
  .reason .body p{padding-left:0;padding-right:0}
  .reason button{grid-template-columns:40px 1fr 28px}
  .timeline::before{left:78px}
  .timeline li{grid-template-columns:78px 1fr;gap:22px}
  .timeline li::before{left:73px}
  .team{grid-template-columns:1fr 1fr;gap:12px}
  .join{grid-column:span 2}
  .checklist{padding:28px 22px}
  .news{grid-template-columns:1fr}
  .mapbox{min-height:420px}
  .mapbox .plan{bottom:60px}
  .map-legend{left:10px;right:10px;bottom:10px;max-width:none;flex-wrap:nowrap;padding:6px;gap:2px}
  .map-legend button{flex:1;justify-content:center;padding:8px 6px;font-size:.76rem;gap:6px}
  .map-legend .sw{width:12px}
  .cta{padding:52px 22px;border-radius:28px}
  .foot{grid-template-columns:1fr}
  .panel-content{padding:24px 20px 32px}
  .panel-content h2{font-size:1.9rem}
  .mbar{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;position:fixed;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(250,248,243,.95);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:70;transform:translateY(110%);transition:transform .35s var(--ease)}
  .mbar{visibility:hidden}.mbar.show{transform:none;visibility:visible}
  body{padding-bottom:84px}
}
