/* ============================================================
   Standorte — page-specific styling
   Scoped to /standorte (overview) and /standorte/{slug} (detail).
   Matches the editorial redesign language:
   white base, forest bands, green left-border card signature,
   tight bold typography. No pills, no washed-out boxes.
   ============================================================ */

/* ---- Overview: intro band ------------------------------------ */
.std-overview{background:#fff}
.std-intro{
  position:relative;
  padding:1.6rem 0 2rem;
  border-bottom:1px solid var(--border-soft);
}
.std-intro-title{
  font-size:clamp(1.45rem,2.8vw,2rem);
  letter-spacing:-.045em;
  font-weight:800;
  line-height:1.12;
  color:var(--ink);
}

/* ---- Overview: type-group heads ------------------------------ */
.std-group-head h2{
  font-size:clamp(1.5rem,2.8vw,2rem);
  letter-spacing:-.05em;
  font-weight:800;
  line-height:1.1;
  color:var(--ink);
}
.std-group-head p{max-width:70ch}

/* ---- Overview: location cards (signature left-border) -------- */
.std-loc-card{
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border:1px solid var(--border-soft);
  border-left:3px solid var(--brand);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  box-shadow:0 2px 10px rgba(26,36,16,.05);
  padding:1.35rem 1.4rem 1.4rem 1.55rem;
  transition:transform .2s ease,box-shadow .2s ease,border-left-color .2s ease;
}
.std-loc-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(26,45,14,.12);
  border-left-color:var(--brand-dark);
}
/* Mobility filials get a distinct accent hue */
.std-loc-card--mobility{border-left-color:#7a9500}
.std-loc-card--mobility:hover{border-left-color:#5a7000}

.std-loc-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.std-loc-city{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--brand-ink);
}
.std-loc-city i{color:var(--brand-dark);font-size:.8rem}

/* Type marker — editorial, not a soft grey pill */
.std-loc-type{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.28rem .55rem;
  border-radius:6px;
  white-space:nowrap;
}
.std-loc-card--full .std-loc-type{
  background:var(--brand);
  color:var(--brand-ink);
}
.std-loc-card--mobility .std-loc-type{
  background:transparent;
  color:var(--brand-text);
  border:1.5px solid rgba(122,149,0,.45);
}

.std-loc-name{
  font-size:1.15rem;
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.2;
  color:var(--ink);
  margin-bottom:.5rem;
}
.std-loc-addr{
  color:var(--ink-soft);
  font-size:.92rem;
  line-height:1.5;
}
.std-loc-teaser{
  font-size:.9rem;
  line-height:1.55;
}
.std-loc-phone{
  font-size:.88rem;
  font-weight:700;
  color:var(--ink-soft);
  display:flex;
  align-items:center;
  gap:.5rem;
}
.std-loc-phone i{color:var(--brand-dark);font-size:.82rem}

.std-loc-link{
  margin-top:auto;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.9rem;
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--brand-text);
  text-decoration:none;
  padding-top:.4rem;
}
.std-loc-link i{transition:transform .18s ease}
.std-loc-link:hover{color:var(--brand-ink)}
.std-loc-card:hover .std-loc-link i,
.std-loc-link:hover i{transform:translateX(4px)}
.std-loc-link:focus-visible{outline:3px solid rgba(174,201,12,.55);outline-offset:3px;border-radius:3px}

/* ---- Detail: content + hierarchy ----------------------------- */
.std-detail{background:#fff}
.std-content-card h2{
  font-size:clamp(1.35rem,2.4vw,1.7rem);
  letter-spacing:-.045em;
  font-weight:800;
  line-height:1.15;
  color:var(--ink);
}

/* Sidebar cards — signature left-border, squared right */
.std-side-card{
  border:1px solid var(--border-soft);
  border-left:3px solid var(--brand);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  box-shadow:0 2px 10px rgba(26,36,16,.05);
}
.std-side-card h3{
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:-.025em;
  color:var(--ink);
  margin-bottom:.9rem;
  padding-bottom:.65rem;
  border-bottom:1px solid var(--border-soft);
}
.std-side-card .opening-hours{color:var(--ink-soft)}

/* Keep the sidebar column visually cohesive on wide screens */
@media(min-width:1200px){
  .std-detail .col-xl-4{position:relative}
}

/* ---- Responsive ---------------------------------------------- */
@media(max-width:575.98px){
  .std-loc-card{padding:1.15rem 1.2rem 1.25rem 1.3rem}
  .std-loc-card-top{margin-bottom:.85rem}
  .std-loc-name{font-size:1.08rem}
  .std-intro{padding:1.2rem 0 1.5rem}
}

/* ── Filial-Video: klickbar + Expand-Overlay ─────────────── */
.std-detail .branch-video__frame--play{
  display:block;width:100%;padding:0;border:0;margin-top:.75rem;
  cursor:pointer;background:#0f1a06;
}
.std-detail .branch-video__frame--play .branch-video__media{pointer-events:none}
.std-detail .branch-video__expand{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.15rem;
  background:radial-gradient(circle at center,rgba(15,26,6,.15),rgba(15,26,6,.45));
  opacity:0;transition:opacity .2s ease;
}
.std-detail .branch-video__expand i{
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(174,201,12,.92);color:#1f2d00;
  box-shadow:0 10px 28px rgba(15,26,6,.35);transform:scale(.9);transition:transform .2s ease;
}
.std-detail .branch-video__frame--play:hover .branch-video__expand,
.std-detail .branch-video__frame--play:focus-visible .branch-video__expand{opacity:1}
.std-detail .branch-video__frame--play:hover .branch-video__expand i{transform:scale(1)}
.std-detail .branch-video__frame--play:focus-visible{outline:3px solid rgba(174,201,12,.8);outline-offset:3px}

/* ── Video-Lightbox ──────────────────────────────────────── */
.std-video-lightbox{
  position:fixed;inset:0;z-index:2000;display:none;
  align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);
  background:rgba(9,15,4,.9);backdrop-filter:blur(6px);
}
.std-video-lightbox.is-open{display:flex}
.std-video-lightbox__stage{width:min(1100px,100%);max-height:88vh}
.std-video-lightbox__media{
  width:100%;max-height:88vh;border-radius:16px;background:#000;
  box-shadow:0 30px 80px rgba(0,0,0,.5);display:block;
}
.std-video-lightbox__close{
  position:fixed;top:20px;right:24px;z-index:2001;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;
  font-size:1.15rem;cursor:pointer;transition:background .18s ease,transform .12s ease;
  display:grid;place-items:center;backdrop-filter:blur(4px);
}
.std-video-lightbox__close:hover{background:rgba(255,255,255,.2)}
.std-video-lightbox__close:active{transform:scale(.94)}

/* ── Anfahrt: Karte on-demand ────────────────────────────── */
.std-map{margin-top:1rem;border-radius:14px;overflow:hidden;border:1px solid var(--border-soft)}
.std-map__load{
  width:100%;border:0;cursor:pointer;padding:1.1rem 1rem;
  display:flex;align-items:center;gap:.85rem;text-align:left;
  background:linear-gradient(135deg,#eef4df 0%,#f7faf2 100%);
  transition:background .18s ease;
}
.std-map__load:hover{background:linear-gradient(135deg,#e6efcf 0%,#eef4df 100%)}
.std-map__pin{
  flex:0 0 auto;width:42px;height:42px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--brand);color:var(--brand-ink);font-size:1.05rem;
}
.std-map__text{display:flex;flex-direction:column;line-height:1.3}
.std-map__text strong{color:var(--ink);font-weight:800;letter-spacing:-.01em}
.std-map__text small{color:var(--muted);font-size:.78rem}
.std-map.is-loaded{aspect-ratio:16/11;border-color:var(--border)}
.std-map iframe{display:block;width:100%;height:100%;border:0}

/* Startbild der Filiale oben in der Karte (randlos, gleiche Datei wie Filialseite, kleine Fassung) */
.std-loc-photo{display:block;margin:-1.35rem -1.4rem 1.1rem -1.55rem;aspect-ratio:16/10;overflow:hidden;border-radius:0 var(--radius-sm) 0 0;background:#eef3e2}
.std-loc-photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block;transition:transform .4s ease}
.std-loc-card:hover .std-loc-photo img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.std-loc-photo img,.std-loc-card:hover .std-loc-photo img{transition:none;transform:none}}
