/* Hero */
.hero{padding:1.25rem 0}
.grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:1.75rem;align-items:stretch}
.hero-media{display:grid}
.hero-image{margin:0;border-radius:1rem;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 .625rem 1.5rem rgba(0,0,0,.06);height:100%;display:grid}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-panel{display:grid;align-content:center;gap:.75rem}
.hero-title{font-size:1.35rem;font-weight:700;margin:0}
.hero-sub{margin:0;color:var(--muted)}
.hero-actions{
  display:grid;grid-template-columns:auto auto;
  grid-template-areas:"book ana" "phone phone";
  align-items:center;gap:.75rem .75rem
}
.hero-actions .cta-book{grid-area:book}
.hero-actions .btn-anamnese{grid-area:ana}
.hero-actions .phone-desktop{grid-area:phone}
.hero-note{
  grid-column:1 / -1;
  margin:.25rem 0 0;
  font-size:.95rem;
  color:var(--muted);
  line-height:1.5;
}
.times-head{margin:.75rem 0 .35rem;font-weight:600}
.times-list{list-style:none;margin:0;padding:0;display:grid;gap:.375rem;width:100%}
.times-list li{
  display:grid;grid-template-columns:3.5rem 1fr;align-items:center;
  border:1px solid var(--stroke);border-radius:.625rem;padding:.6rem .9rem;background:var(--surface)
}
.times-list li span:last-child{justify-self:end;font-variant-numeric:tabular-nums;letter-spacing:.01em}

/* Galerie */
.gallery-toolbar{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.5rem}
.gallery-strip{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(16.25rem,36vw);
  gap:var(--gap);overflow:auto;padding-bottom:.5rem;
  scroll-snap-type:x mandatory;scroll-padding:.75rem;
  border-bottom:1px dashed var(--stroke);margin-bottom:1rem
}
.gallery-strip::-webkit-scrollbar{height:.625rem}
.col{display:grid;gap:var(--gap);scroll-snap-align:start}
.col--h{grid-template-rows:1fr 1fr}
.thumb{border:1px solid rgba(0,0,0,.06);border-radius:.75rem;overflow:hidden;background:#f7f9fb;box-shadow:0 .375rem 1rem rgba(0,0,0,.05)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.col--h .thumb{height:var(--col-h)}

/* Karten */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(13.75rem,1fr));gap:clamp(1rem,2.4vw,1.75rem);padding:0;margin:0;list-style:none}
.card{background:transparent;border:0}
.card figure{margin:0;display:grid;gap:.5rem;border-radius:1rem;overflow:hidden;box-shadow:0 .625rem 1.5rem rgba(0,0,0,.06);background:var(--surface-strong);border:1px solid rgba(0,0,0,.06)}
.card.square img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center;display:block}
.card figcaption{padding:.6rem .8rem .8rem;text-align:center;font-weight:600;color:#111}
.card:hover{transform:translateY(-2px);transition:transform var(--dur-fast) var(--easing)}

/* Anfahrt */
.anfahrt-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch;grid-template-areas:"info map"}
.anfahrt-info{grid-area:info;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.5rem}
.anfahrt-info h2{margin:0 0 .25rem}
.map-wrap{grid-area:map;border-radius:1rem;overflow:hidden;border:1px solid rgba(0,0,0,.06);aspect-ratio:16/9;box-shadow:0 .625rem 1.5rem rgba(0,0,0,.06)}
.map-wrap iframe{width:100%;height:100%;border:0;display:block}

/* Container */
@container (max-width: 56.25rem){
  .grid-2{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
}
@container (max-width: 35rem){
  .cards{grid-template-columns:1fr}
}

/* Portrait Seite */
@media (orientation: portrait){
  .hero{padding:0}
  .grid-2{grid-template-columns:1fr}
  .hero-panel{justify-items:center;text-align:center}
  .hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}
  .phone-desktop{display:none}
  .phone-mobile{display:inline-flex}
  .cards{grid-template-columns:1fr}
  .anfahrt-grid{grid-template-columns:1fr;grid-template-areas:"map" "info"}
  .hero-image{margin-inline:auto;max-width:var(--portrait-block-w)}
  .map-wrap{width:100%;max-width:var(--portrait-block-w);margin-inline:auto}
  .times-list{max-width:var(--portrait-block-w);margin-inline:auto}
  .gallery-toolbar.only-wide{display:none}
  .gallery-strip{gap:var(--gap);margin-bottom:.75rem;border-bottom:1px dashed var(--stroke)}
  .col{gap:var(--gap)}
  .col--h .thumb{height:var(--col-h)}
  .gallery-strip{grid-auto-columns:minmax(15.625rem,85vw)}
}
