/* PSB Standorte: isolierte Darstellung, abgestimmt auf Weiß, Dunkelblau und Türkis. */
.psb-loc {
  --psb-navy: #073767;
  --psb-deep: #06264a;
  --psb-teal: #0b9eab;
  --psb-green: #38ab93;
  --psb-ink: #153453;
  --psb-muted: #65788a;
  --psb-line: #e2eaf0;
  position: relative;
  box-sizing: border-box;
  width: 100vw !important;
  max-width: none !important;
  margin: 0 0 0 calc(50% - 50vw) !important;
  padding: 0 !important;
  clear: both;
  overflow: hidden;
  background: #fff;
  color: var(--psb-ink);
  font-family: inherit;
  line-height: 1.6;
}
.psb-loc, .psb-loc * { box-sizing: border-box; }
.psb-loc a { text-decoration: none !important; }
.psb-loc__shell { width: min(100% - 76px, 1480px); margin-inline: auto; }
.psb-loc svg { width: 23px; height: 23px; display: inline-block; flex: 0 0 auto; }
.psb-loc__hero { position: relative; isolation: isolate; background: linear-gradient(118deg, #f9fcfe 0%, #f2f8fb 48%, #eaf4fa 100%); padding: clamp(58px, 7vw, 115px) 0 clamp(70px, 7vw, 116px); }
.psb-loc__hero::before { content:""; position: absolute; z-index: -1; width: 620px; height: 620px; left: -330px; top: -310px; border-radius: 50%; background: radial-gradient(circle, #d8f5f0 1%, transparent 67%); }
.psb-loc__hero::after { content:""; position: absolute; z-index: -1; right: -160px; bottom: -300px; width: 620px; height: 620px; border-radius: 50%; background: radial-gradient(circle, rgba(36,157,178,.15) 1%, transparent 64%); }
.psb-loc__hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: clamp(42px, 6vw, 104px); }
.psb-loc__hero-content { min-width: 0; }
.psb-loc__eyebrow { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; color: #137e92; font-size: 13px !important; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; margin: 0 0 22px !important; }
.psb-loc__eyebrow svg { color: var(--psb-teal); width: 20px; height: 20px; }
.psb-loc__eyebrow-dot { width: 4px; height: 4px; border-radius: 100%; background: #a4cdd3; }
.psb-loc .psb-loc__title { font-size: clamp(40px, 4.4vw, 72px) !important; font-weight: 800 !important; letter-spacing: -.035em; line-height: 1.1 !important; color: var(--psb-navy) !important; margin: 0 0 22px !important; text-transform: none !important; }
.psb-loc .psb-loc__intro { color: #526c7f; font-size: clamp(17px, 1.28vw, 20px) !important; max-width: 600px; line-height: 1.8; margin: 0 0 38px !important; }
.psb-loc__contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.psb-loc__contact { display: flex; align-items: flex-start; gap: 16px; padding: 20px 18px; border: 1px solid rgba(33,112,145,.12); border-radius: 16px; background: rgba(255,255,255,.93); box-shadow: 0 9px 34px rgba(16,73,119,.055); min-width: 0; }
.psb-loc__contact--email { grid-column: 1 / -1; }
.psb-loc__contact-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 47px; height: 47px; border-radius: 13px; color: #0d96a8; background: #eaf9f9; }
.psb-loc__contact-icon svg { width: 23px; height: 23px; }
.psb-loc__contact-label { display: block; color: #6d8598; font-size: 12px !important; letter-spacing: .045em; text-transform: uppercase; font-weight: 800; margin: 1px 0 4px; }
.psb-loc__contact address { margin: 0; font-style: normal; }
.psb-loc__contact address, .psb-loc__contact a { display: block; color: var(--psb-navy) !important; font-size: 16px !important; line-height: 1.6; font-weight: 700; overflow-wrap: anywhere; }
.psb-loc__contact a:hover { color: var(--psb-teal) !important; }
.psb-loc__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.psb-loc a.psb-loc__btn { display: inline-flex; gap: 18px; align-items: center; justify-content: center; padding: 14px 23px; border-radius: 11px; border: 1px solid transparent; min-height: 54px; font-size: 15px !important; font-weight: 800; line-height: 1.2; transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease; text-decoration: none !important; }
.psb-loc__btn svg { width: 18px; height: 18px; }
.psb-loc a.psb-loc__btn:hover { transform: translateY(-2px); }
.psb-loc a.psb-loc__btn--primary { color: #fff !important; background: var(--psb-navy); box-shadow: 0 12px 25px rgba(7,55,103,.18); }
.psb-loc a.psb-loc__btn--primary:hover { background: #0b558e; }
.psb-loc a.psb-loc__btn--secondary { color: var(--psb-navy) !important; background: #fff; border-color: #d6e5ed; }
.psb-loc a.psb-loc__btn--secondary:hover { border-color: #8dcbd2; background: #eefbfc; }
.psb-loc__hero-visual { height: clamp(440px, 40vw, 660px); position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(142deg, #0d89a9, #073767 68%, #05254d); border-radius: 34px 110px 34px 34px; box-shadow: 0 22px 78px rgba(2,43,87,.15); }
.psb-loc__hero-visual::before { content:""; position:absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(2,31,65,.48)); pointer-events: none; }
.psb-loc__hero-visual--photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.psb-loc__visual-label { position:absolute; z-index: 2; left: 28px; right: 28px; bottom: 28px; display:flex; align-items:center; gap: 10px; width: max-content; max-width: calc(100% - 56px); font-size: 13px; font-weight: 750; line-height: 1.4; padding: 12px 16px; color: #fff; border: 1px solid rgba(255,255,255,.34); background: rgba(1,36,68,.66); border-radius: 100px; backdrop-filter: blur(6px); }
.psb-loc__visual-dot { width: 9px; height: 9px; border-radius: 50%; background: #58d7bb; box-shadow: 0 0 0 4px rgba(88,215,187,.13); }
.psb-loc__abstract { height:100%; display:flex; flex-direction: column; justify-content:center; align-items:center; color: rgba(255,255,255,.96); text-align: center; font-size: clamp(24px, 3.3vw, 50px); font-weight: 800; line-height:1.25; }
.psb-loc__abstract::before,.psb-loc__abstract::after { content:""; position:absolute; width: 500px; height: 500px; border-radius: 50%; border: 42px solid rgba(255,255,255,.085); }
.psb-loc__abstract::before { top: -230px; left: -230px; }
.psb-loc__abstract::after { right: -250px; bottom: -240px; border-color:rgba(52,188,175,.24); }
.psb-loc__abstract-circle { width: 136px; height: 136px; display:flex; justify-content:center; align-items:center; margin-bottom: 30px; border-radius: 50%; border: 2px solid rgba(255,255,255,.42); }
.psb-loc__abstract-circle svg { width: 70px; height: 70px; }
.psb-loc__gallery-section { padding: clamp(62px, 7vw, 110px) 0 clamp(74px, 8vw, 130px); background: #fff; }
.psb-loc__section-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:34px; }
.psb-loc .psb-loc__section-kicker, .psb-loc .psb-loc__closing-kicker { font-size:12px !important; font-weight:850; letter-spacing: .16em; color: var(--psb-teal); margin:0 0 10px !important; }
.psb-loc .psb-loc__section-title { font-size:clamp(30px,3vw,47px) !important; line-height:1.18 !important; color: var(--psb-navy) !important; letter-spacing:-.026em; font-weight:800 !important; margin:0 0 10px !important; }
.psb-loc .psb-loc__section-desc { font-size:17px !important; color: var(--psb-muted); margin:0 !important; }
.psb-loc__section-counter { flex:0 0 auto; border:1px solid #e0edf0; border-radius:100px; background:#f5fafb; color:#236a81; font-weight:750; font-size:13px; padding:10px 18px; }
.psb-loc__gallery { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); grid-auto-rows:clamp(190px,18vw,280px); gap:17px; }
.psb-loc__tile { appearance:none; display:block; position:relative; width:100%; height:100%; padding:0; cursor:zoom-in; border:0 !important; outline-offset:4px; border-radius:16px; background:#e8f1f5; overflow:hidden; text-align:left; box-shadow: 0 10px 26px rgba(9,59,94,.065); }
.psb-loc__tile:first-child { grid-column: span 2; grid-row: span 2; }
.psb-loc__tile img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.psb-loc__tile:hover img, .psb-loc__tile:focus-visible img { transform:scale(1.055); }
.psb-loc__tile-shade { position:absolute; inset:25% 0 0; pointer-events:none; background:linear-gradient(180deg,transparent,rgba(4,37,70,.74)); }
.psb-loc__tile-caption { position:absolute; color:#fff; bottom:18px; left:18px; right:65px; font-size:15px; font-weight:750; line-height:1.35; text-shadow:0 1px 6px rgba(0,0,0,.3); }
.psb-loc__tile-expand { display:flex; align-items:center; justify-content:center; position:absolute; right:16px; bottom:16px; height:35px; width:35px; border-radius:10px; background:rgba(255,255,255,.22); color:#fff; backdrop-filter: blur(6px); }
.psb-loc__tile-expand svg { width:20px; height:20px; }
.psb-loc__closing { background:linear-gradient(120deg, #062b57, #0a4676 59%, #087e91); color:#fff; padding:clamp(42px,5.4vw,77px) 0; }
.psb-loc__closing-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.psb-loc .psb-loc__closing-kicker { color:#73dfdb; }
.psb-loc .psb-loc__closing h3 { color:#fff !important; font-size:clamp(27px,2.6vw,40px) !important; line-height:1.25 !important; font-weight:800 !important; margin:0 0 10px !important; }
.psb-loc .psb-loc__closing p:not(.psb-loc__closing-kicker) { color:#d4e8f2 !important; font-size:17px !important; margin:0 !important; }
.psb-loc a.psb-loc__btn--light { color:#073767 !important; background:#fff; }
.psb-loc a.psb-loc__btn--light:hover { background:#e7fafa; }
/* Lightbox wird in document.body eingesetzt, außerhalb der Theme-Container */
.psb-loc-lightbox { position:fixed; z-index:2147483640; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:62px 74px 48px; background:rgba(4,19,35,.94); color:#fff; font-family:Arial,sans-serif; box-sizing:border-box; }
.psb-loc-lightbox[hidden] { display:none!important; }
.psb-loc-lightbox__image { max-width:100%; max-height:calc(100vh - 160px); width:auto; height:auto; object-fit:contain; box-shadow:0 22px 70px rgba(0,0,0,.35); }
.psb-loc-lightbox__caption { text-align:center; margin-top:20px; font-size:15px; color:#e3eff5; }
.psb-loc-lightbox__button { position:absolute; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; width:48px; height:48px; color:#fff; background:rgba(255,255,255,.12); font-size:30px; cursor:pointer; transition:background .2s; }
.psb-loc-lightbox__button:hover { background:rgba(255,255,255,.28); }
.psb-loc-lightbox__close { right:20px; top:20px; }
.psb-loc-lightbox__prev { left:18px; top:50%; transform:translateY(-50%); }
.psb-loc-lightbox__next { right:18px; top:50%; transform:translateY(-50%); }
body.psb-loc-lightbox-open { overflow:hidden !important; }
@media (max-width:1100px) { .psb-loc__shell { width:min(100% - 52px,1480px); } .psb-loc__hero-grid { gap:36px; } .psb-loc__contacts { grid-template-columns:1fr; } .psb-loc__contact--email { grid-column:auto; } .psb-loc__hero-visual { height:570px; } .psb-loc__gallery { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:220px; } }
@media (max-width:760px) { .psb-loc__shell { width:min(100% - 36px,1480px); } .psb-loc__hero { padding:45px 0 64px; } .psb-loc__hero-grid { grid-template-columns:1fr; gap:32px; } .psb-loc__hero-visual { height:360px; border-radius:22px 70px 22px 22px; } .psb-loc__contacts { grid-template-columns:repeat(2,minmax(0,1fr)); } .psb-loc__contact--email { grid-column:1 / -1; } .psb-loc__gallery { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:195px; gap:12px; } .psb-loc__tile:first-child { grid-column:span 2; grid-row:span 2; } .psb-loc__section-header { align-items:start; } .psb-loc__closing-inner { flex-direction:column; align-items:flex-start; } .psb-loc-lightbox { padding:68px 44px 42px; } }
@media (max-width:520px) { .psb-loc__contacts { grid-template-columns:1fr; } .psb-loc__contact { padding:16px 14px; } .psb-loc__contact--email { grid-column:auto; } .psb-loc__actions { align-items:stretch; } .psb-loc__actions .psb-loc__btn { width:100%; } .psb-loc__section-counter { display:none; } .psb-loc__gallery { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:154px; gap:9px; } .psb-loc__tile { border-radius:10px; } .psb-loc__tile:first-child { grid-column:span 2; grid-row:span 2; } .psb-loc__tile-caption { font-size:12px; bottom:10px; left:10px; right:43px; } .psb-loc__tile-expand { width:27px; height:27px; right:9px; bottom:9px; } .psb-loc__tile-expand svg { width:16px; height:16px; } .psb-loc__closing-inner .psb-loc__btn { width:100%; } .psb-loc-lightbox { padding:75px 15px 55px; } .psb-loc-lightbox__prev { left:8px; top:auto; bottom:14px; transform:none; } .psb-loc-lightbox__next { right:8px; top:auto; bottom:14px; transform:none; } .psb-loc-lightbox__caption { margin-bottom:48px; } }
@media (prefers-reduced-motion:reduce) { .psb-loc *, .psb-loc a { transition:none!important; animation:none!important; } }
