/* ============================================================
 * Stoll Standort-Unterseite — D3 Tag 2 (Handoff Unterseiten.dc.html
 * "Standortseite Waldshut-Tiengen 1440").
 * ============================================================ */

/* Kopf: Breadcrumb + Eyebrow + H1, keine Foto-Hero (anders als Leistung) */
.pst-std-head__crumb { display: flex; align-items: center; gap: 8px; font-size: var(--fs-meta, 15px); color: var(--ink-600); margin: 0 0 24px; }
.pst-std-head__crumb a,
.pst-std-head .pst-std-head__crumb a { color: var(--ink-600); text-decoration: none; }
.pst-std-head .pst-std-head__crumb a:hover { color: var(--gold-800); }
.pst-std-head__crumb-active { color: var(--gold-800); font-weight: 500; }
.pst-std-head .stoll-eyebrow { margin: 0 0 16px; }
.pst-std-head__title { font: 800 var(--fs-display, 40px)/1.08 var(--font-brand); letter-spacing: -.01em; color: var(--ink-800); margin: 0 0 44px; max-width: 20em; }
/* C3 (26.07.): Original-Intro unter der H1 — Abstand: H1 behaelt seine 44px
 * nur ohne Beschreibung; mit Beschreibung ruecken H1 (18px) + Intro (44px
 * nach unten) zusammen (T2 < T3, Spacing-Tiers). */
.pst-std-head:has(.pst-std-head__desc) .pst-std-head__title { margin-bottom: 18px; }
/* 01.08.2026: 46em (~88 Zeichen bei 17px) war breiter als die projektweite
 * Zeilenlaengen-Vorgabe (45-65 Zeichen optimal, max. 80) -- auf das
 * gemeinsame Mess-Token angeglichen (design-system.css, global verfuegbar). */
.pst-std-head__desc { max-width: var(--pst-measure); margin: 0 0 44px; }
.pst-std-head__desc p { font-size: var(--fs-body, 17px); line-height: 1.65; color: var(--ink-600); margin: 0 0 10px; }
/* W4: Partner-Hinweis (externe Marke im Haus, z.B. smileclub) */
.pst-std-head__partner { margin: -30px 0 44px; }
.pst-std-head__partner a {
  font: 600 16px/1.5 var(--font-brand); color: var(--gold-800);
  text-decoration: underline; text-underline-offset: 3px;
}
.pst-std-head__partner a:hover { color: var(--gold-900); }
.pst-std-head__desc p:last-child { margin-bottom: 0; }

/* Kopf-Grid: NAP-Box (440px) + Karte (1fr). Spaltenbreite per CSS auf der
 * Element-ID (Elementor-Container hat kein "_column_size", Musterloesung
 * wie lsticol1/lsticol2 in leistung-sections.css). */
.elementor-element-stdnapcol1 { flex: 0 0 440px; min-width: 0; }
.elementor-element-stdmapcol1 { flex: 1 1 0; min-width: 0; }
@media (max-width: 1024px) {
  .elementor-element-stdnapcol1, .elementor-element-stdmapcol1 { flex: 1 1 auto; }
}

/* NAP-Box (dunkel) */
.pst-std-nap { background: var(--ink-800); color: #F6F3EC; padding: 40px 42px; display: flex; flex-direction: column; height: 100%; }
.pst-std-nap__head { display: flex; align-items: flex-start; gap: 14px; margin: 0 0 22px; }
.pst-std-nap__pin { flex: none; width: 24px; height: 24px; margin-top: 3px; color: var(--gold-500); background: currentColor; }
.pst-std-nap__name { font: 700 var(--fs-h3, 22px)/1.3 var(--font-brand); }
.pst-std-nap__addr { color: rgba(246,243,236,.7); margin-top: 6px; }
.pst-std-nap a.pst-std-nap__link { display: flex; align-items: center; gap: 12px; color: #F6F3EC; font-weight: 500; padding: 6px 0; text-decoration: none; }
.pst-std-nap a.pst-std-nap__link:hover { color: var(--gold-400); }
.pst-std-nap__link--mail { margin: 0 0 24px; }
/* B-08: Standort-Begleiticons min 32px */
.pst-std-nap__licon { flex: none; width: 32px; height: 32px; color: var(--gold-500); background: currentColor; }
.pst-std-nap__hours-label { font: 500 var(--fs-meta, 15px)/1 var(--font-brand); letter-spacing: .12em; text-transform: uppercase; color: var(--gold-400); margin: 0 0 8px; }
.pst-std-nap__hours { display: flex; flex-direction: column; margin: 0 0 26px; }
.pst-std-nap__hours .stoll-hours__row { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 8px 0; font-size: var(--fs-meta, 15px); border-top: 1px solid rgba(246,243,236,.14); }
.pst-std-nap__hours .stoll-hours__row:first-child { border-top: 0; }
.pst-std-nap__hours .stoll-hours__row--today { background: none; }
.pst-std-nap__hours .stoll-hours__day { color: #F6F3EC; font-weight: 500; white-space: nowrap; }
.pst-std-nap__hours .stoll-hours__time { color: rgba(246,243,236,.7); text-align: right; white-space: nowrap; }
.pst-std-nap__hours .stoll-hours__row--today .stoll-hours__day { color: var(--gold-400); }
.pst-std-nap__actions { margin-top: auto; display: flex; gap: 12px; }
.pst-std-nap__actbtn { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 9px; text-align: center; }

/* Einzel-Karte + Route-Overlay */
.pst-std-map { position: relative; overflow: hidden; border: 1px solid var(--sand-200); background: var(--sand-100); height: 100%; min-height: 360px; }
.pst-std-map__el { position: absolute; inset: 0; }
.pst-std-map__route { position: absolute; right: 20px; bottom: 20px; z-index: 400; display: inline-flex; align-items: center; gap: 8px; background: var(--white); color: var(--ink-800); font: 700 var(--fs-meta, 15px)/1 var(--font-brand); padding: 12px 18px; box-shadow: 0 10px 24px rgba(38,33,22,.18); text-decoration: none; }
.pst-std-map__route:hover { color: var(--gold-800); }
.pst-std-map__routeicon { width: 12px; height: 12px; background: currentColor; }

/* Team vor Ort */
.pst-std-team__head { margin: 0 0 44px; }
.pst-std-team__head .stoll-eyebrow { margin: 0 0 16px; }
.pst-std-team__title { font: 800 var(--fs-h2, 32px)/1.2 var(--font-brand); color: var(--ink-800); margin: 0; }
.pst-std-team__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.pst-std-team__card { background: var(--white); box-shadow: var(--shadow-card); transition: box-shadow .25s ease; }
.pst-std-team__card:hover { box-shadow: var(--shadow-float); }
.pst-std-team__media { aspect-ratio: 4/5; overflow: hidden; background: var(--sand-100); }
/* HAERTUNG 25.07.2026 (A.2, .pst-cb__photo-img-Folge-Audit) — s. arzt-sections.css. */
.pst-std-team__card .pst-std-team__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pst-focal-x, 50%) var(--pst-focal-y, 0%); display: block; }
.pst-std-team__body { padding: 24px 28px 28px; }
.pst-std-team__name { font: 700 var(--fs-h3, 22px)/1.3 var(--font-brand); color: var(--ink-800); margin: 0 0 4px; }
.pst-std-team__role { font-size: var(--fs-meta, 15px); color: var(--gold-800); font-weight: 500; margin: 0 0 12px; }
.pst-std-team__quote { font-size: var(--fs-meta, 15px); line-height: 1.55; color: var(--ink-600); font-style: italic; margin: 0 0 14px; }
.pst-std-team__link { display: inline-flex; align-items: center; gap: 6px; color: var(--gold-800); font: 700 var(--fs-meta, 15px)/1 var(--font-brand); text-decoration: none; }
.pst-std-team__link:hover { color: var(--gold-900); }
.pst-std-team__linkicon { width: 11px; height: 11px; background: currentColor; transform: rotate(-90deg); }

/* Leistungen vor Ort */
.pst-std-leist__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin: 0 0 36px; }
.pst-std-leist__title { font: 800 var(--fs-h2, 32px)/1.2 var(--font-brand); color: var(--ink-800); margin: 0; }
.pst-std-leist__all { display: inline-flex; align-items: center; gap: 7px; color: var(--gold-800); font: 700 var(--fs-body, 17px)/1 var(--font-brand); white-space: nowrap; text-decoration: none; }
.pst-std-leist__all:hover { color: var(--gold-900); }
.pst-std-leist__allicon { width: 13px; height: 13px; background: currentColor; transform: rotate(-90deg); }
.pst-std-leist__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pst-std-leist__tile { display: flex; align-items: center; gap: 13px; border: 1px solid var(--sand-200); background: var(--white); color: var(--ink-800); font-weight: 500; padding: 18px 20px; text-decoration: none; }
.pst-std-leist__tile:hover { border-color: var(--gold-500); color: var(--gold-800); }
/* C3 (26.07.): Foto-Kacheln wie im Original (17 Leistungs-Fotos pro
 * Standortseite) — Bild oben (16:10-Crop), Label darunter. 2-Klassen-
 * Selektor auf dem img (Spezifitaets-Lehre: .elementor img hat (0,1,1)). */
.pst-std-leist__grid--photos .pst-std-leist__tile { flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden; }
.pst-std-leist__timg { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.pst-std-leist__timg img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ease, ease); }
.pst-std-leist__grid--photos .pst-std-leist__tile:hover .pst-std-leist__timg img { transform: scale(1.04); }
.pst-std-leist__tlabel { display: block; padding: 14px 18px 16px; font-weight: 600; }
.pst-std-leist__ticon { flex: none; width: 26px; height: 26px; color: var(--gold-700); background: currentColor; }
.pst-std-leist__note { margin: 20px 0 0; font-size: var(--fs-meta, 15px); color: var(--text-muted); }

/* Anfahrt-Text */
.pst-std-anfahrt p { margin: 0 0 14px; color: var(--ink-600); }
.pst-std-anfahrt__link { display: inline-flex; align-items: center; gap: 7px; color: var(--gold-800); font: 700 var(--fs-body, 17px)/1 var(--font-brand); text-decoration: none; }
.pst-std-anfahrt__link:hover { color: var(--gold-900); }
.pst-std-anfahrt__linkicon { width: 13px; height: 13px; background: currentColor; transform: rotate(-90deg); }

/* CTA-Band. Spezifitaet (0,2,0) noetig: Kit-Theme-Style ".elementor-kit-934
 * h2" liegt bei (0,1,1) und schlaegt ein einfaches ".pst-std-cta__title"
 * (0,1,0) sonst — identischer Fund wie beim Hero-H1 (page-hero.css). */
.pst-std-cta { text-align: center; }
.pst-std-cta .pst-std-cta__title { font: 800 var(--fs-h2, 32px)/1.15 var(--font-brand); color: #fff; margin: 0 0 14px; }
.pst-std-cta__text { margin: 0 auto 32px; max-width: 36em; color: rgba(246,243,236,.75); }
.pst-std-cta__btn { display: inline-flex; align-items: center; gap: 10px; }

@media (max-width: 1024px) {
  .pst-std-headgrid { grid-template-columns: 1fr; }
  .pst-std-map { min-height: 320px; }
  .pst-std-team__grid { grid-template-columns: repeat(2, 1fr); }
  .pst-std-leist__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .pst-std-head__title { font-size: clamp(28px, 7vw, 34px); }
  .pst-std-nap { padding: 28px 24px; }
  .pst-std-nap__actions { flex-direction: column; }
  .pst-std-team__grid { grid-template-columns: 1fr; }
  .pst-std-leist__grid { grid-template-columns: 1fr; }
  .pst-std-leist__head { flex-direction: column; align-items: flex-start; gap: 12px; }
}
