/* ZEISMAN · Temporary Brockumer Großmarkt parking modal */
.parking-nav-trigger{display:inline-grid;place-items:center;flex:0 0 38px;width:38px;height:38px;margin:0;padding:0;border:1px solid #647e8380;border-radius:3px 14px 3px 14px;background:#65bec30b;color:var(--accent,#65bec3);vertical-align:middle;transition:color .2s,border-color .2s,background .2s,transform .2s;cursor:pointer}
.parking-nav-trigger svg{display:block;width:24px;height:24px}

.parking-nav-trigger:hover{color:var(--ink,#eff5f4);border-color:var(--accent,#65bec3);background:#65bec318;transform:translateY(-1px)}
.parking-nav-trigger:focus-visible{outline:2px solid var(--accent,#65bec3);outline-offset:4px}
.parking-modal{position:fixed;inset:0;margin:auto;width:min(760px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;color:var(--ink,#eff5f4);background:radial-gradient(ellipse at 94% 0%,#65bec31a,transparent 38%),linear-gradient(145deg,#142d33 0%,#101e22 75%);border:1px solid #3f8790;border-radius:4px 30px 4px 30px;box-shadow:0 32px 120px #000b;scrollbar-color:#365c63 #0b171a;scrollbar-width:thin}
.parking-modal::backdrop{background:#040809dc;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.parking-modal[open]{display:block;animation:parking-modal-in .22s cubic-bezier(.2,.8,.2,1) both}
@keyframes parking-modal-in{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}
.parking-modal-inner{padding:clamp(24px,4vw,40px)}
.parking-modal-head{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:16px;align-items:start}
.parking-modal-heading{min-width:0;padding:0}
.parking-modal-eyebrow{display:block;margin:0 0 14px;color:var(--accent,#65bec3);font-size:11px;font-weight:500;line-height:1.6;letter-spacing:.12em;text-wrap:pretty}
.parking-live-dot{display:inline-block;width:6px;height:6px;margin:0 9px 0 0;border-radius:50%;background:currentColor;vertical-align:calc(.35em - 3px);vertical-align:calc(.5cap - 3px)}
.parking-modal-heading h2{margin:0;color:var(--ink,#eff5f4);font-size:clamp(27px,4vw,36px);font-weight:500;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}

.parking-modal-intro{max-width:60ch;margin:16px 0 0;color:var(--muted,#a7bfc2);font-size:14px;line-height:1.7}
.parking-modal-close{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;min-width:36px;min-height:36px;margin:0;padding:0;color:var(--ink,#eff5f4);background:transparent;border:1px solid #6d8084;border-radius:50%;cursor:pointer;transition:none}
.parking-modal-close svg{display:block;width:16px;height:16px}
.parking-modal-close:hover,.parking-modal-close:focus-visible{color:var(--accent,#65bec3);border-color:var(--accent,#65bec3);background:#65bec314}
.parking-summary{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:16px;align-items:center;margin-top:24px;padding:18px;border:1px solid var(--line,#2b4850);border-radius:3px 18px;background:#65bec308}
.parking-summary-copy{min-width:0}
.parking-summary-kicker{display:block;margin-bottom:6px;color:var(--muted,#a7bfc2);font-size:11px;font-weight:500;letter-spacing:.12em;line-height:1.5}
.parking-overall-status{margin:0;color:var(--ink,#eff5f4);font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.015em}
.parking-updated-at{margin:6px 0 0;color:var(--muted,#a7bfc2);font-size:12px;line-height:1.5}
.parking-total-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid #91a9ad61;border-radius:50%;color:#aabfc2;font:500 22px/1 Arial,sans-serif}
.parking-summary[data-status="free"] .parking-total-mark{color:#9be2c0;border-color:#9be2c0;background:#9be2c012}
.parking-summary[data-status="partial"] .parking-total-mark{color:#e4c68c;border-color:#e4c68c;background:#e4c68c12}
.parking-summary[data-status="full"] .parking-total-mark{color:#f0a29a;border-color:#f0a29a;background:#f0a29a12}
.parking-bays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.parking-space-card{min-width:0;padding:14px;border:1px solid #42616a80;border-radius:3px 20px 3px 20px;background:linear-gradient(160deg,#ffffff05,#0000000d);transition:border-color .2s,background .2s}
.parking-space-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 12px;min-height:22px}
.parking-space-name{color:var(--muted,#a7bfc2);font-family:inherit;font-size:11px;line-height:1.5;letter-spacing:.1em;white-space:nowrap}
.parking-space-status{display:inline-block;color:#aebfc1;font-size:11px;line-height:1.5;font-weight:600;letter-spacing:.06em;white-space:nowrap}
.parking-space-status::before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:currentColor;vertical-align:calc(.35em - 3px);vertical-align:calc(.5cap - 3px)}
.parking-bay-visual{position:relative;display:grid;place-items:center;min-height:126px;margin-top:10px;overflow:hidden;border-radius:3px 15px 3px 15px;background:repeating-linear-gradient(135deg,#65bec305 0 13px,#65bec30b 13px 14px),#0a171a77}
.parking-bay-visual::before{content:"";position:absolute;inset:9px 29%;border-inline:2px solid #7d9fa64d;transform:skewY(-5deg)}
.parking-bay-line{position:absolute;top:11px;bottom:11px;width:1px;background:#65bec329;transform:skewY(-5deg)}
.parking-bay-line-left{left:18px}.parking-bay-line-right{right:18px}
.parking-bay-number{position:absolute;top:9px;left:11px;color:#66868d;font:9px/1.2 monospace;letter-spacing:.09em}
.parking-bay-free,.parking-bay-car{position:relative;z-index:1;width:78px;height:78px;color:#8da6a9;opacity:.8}
.parking-bay-car{display:none;width:min(132px,94%);height:auto;color:#e7b9a2;filter:drop-shadow(0 4px 10px #0004)}
.parking-bay-unknown{display:none;position:relative;z-index:2;place-items:center;width:54px;height:54px;border:1px dashed #8fa8ac8a;border-radius:50%;color:#b1c5c7;background:#101e22e8;font:400 28px/1 Arial,sans-serif}
.parking-space-caption{margin:12px 0 0;color:var(--muted,#a7bfc2);font-size:12px;line-height:1.5}
.parking-space-card[data-status="free"]{border-color:#76cda47a;background:linear-gradient(145deg,#6ec99d0c,#0000000d)}
.parking-space-card[data-status="free"] .parking-space-status,.parking-space-card[data-status="free"] .parking-space-caption{color:#9be2c0}
.parking-space-card[data-status="free"] .parking-bay-free{color:#9be2c0;opacity:1}
.parking-space-card[data-status="occupied"]{border-color:#d68e7d7a;background:linear-gradient(145deg,#d68e7d0c,#0000000d)}
.parking-space-card[data-status="occupied"] .parking-space-status,.parking-space-card[data-status="occupied"] .parking-space-caption{color:#efb0a1}
.parking-space-card[data-status="occupied"] .parking-bay-free{display:none}
.parking-space-card[data-status="occupied"] .parking-bay-car{display:block}
.parking-space-card[data-status="unknown"] .parking-bay-free{display:none}
.parking-space-card[data-status="unknown"] .parking-bay-unknown{display:grid}
.parking-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:19px;padding-top:17px;border-top:1px solid #42616a80}
.parking-modal-note{max-width:450px;margin:0;color:var(--muted,#a7bfc2);font-size:12px;line-height:1.6}
.parking-refresh{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:8px;min-height:44px;padding:10px 14px;border:1px solid #6b8a906b;border-radius:3px 13px 3px 13px;background:transparent;color:var(--ink,#eff5f4);font-family:inherit;font-size:13px;line-height:1.4;cursor:pointer;transition:none}
.parking-refresh svg{display:block;width:15px;height:15px;color:var(--accent,#65bec3)}
.parking-refresh:hover{border-color:var(--accent,#65bec3);background:#65bec310}
.parking-refresh:disabled{opacity:.55;cursor:wait}
.parking-status-live-region{min-height:0;margin:0;color:var(--muted,#a7bfc2);font-size:12px;line-height:1.5}
.parking-status-live-region:not(:empty){margin-top:10px}

/* Align dots to the actual capital-letter height rather than the line box.
   The em declaration provides a fallback for browsers without cap units. */
.parking-modal,.parking-modal button{font-family:inherit}
.parking-modal-close:focus-visible,.parking-refresh:focus-visible{outline:2px solid var(--accent,#65bec3);outline-offset:4px}
@media(max-width:640px){
 .parking-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:3px 24px}
 .parking-modal-inner{padding:22px}
 .parking-modal-head{position:relative;display:block}
 .parking-modal-eyebrow{padding-right:48px;min-height:36px;margin-bottom:12px;font-size:11px;letter-spacing:.1em}
 .parking-modal-close{position:absolute;top:0;right:0}
 .parking-modal-intro{margin-top:14px}
 .parking-summary{margin-top:22px;padding:16px;gap:12px;grid-template-columns:minmax(0,1fr) 36px}
 .parking-overall-status{font-size:16px;line-height:1.4}
 .parking-total-mark{width:36px;height:36px;font-size:20px}
 .parking-bays{gap:12px;margin-top:12px}
 .parking-space-card{padding:12px;border-radius:3px 16px}
 .parking-space-top{flex-direction:column;align-items:flex-start;gap:5px}
 .parking-bay-visual{min-height:108px}
 .parking-bay-visual::before{inset-inline:27%}
 .parking-bay-line-left{left:9px}.parking-bay-line-right{right:9px}
 .parking-bay-free{width:64px;height:64px}
 .parking-bay-unknown{width:44px;height:44px;font-size:24px}
 .parking-modal-footer{align-items:stretch;flex-direction:column;gap:16px;margin-top:20px;padding-top:18px}
 .parking-refresh{align-self:flex-start}
}
@media(max-width:380px){
 .parking-modal-inner{padding:18px}
 .parking-nav-trigger{flex-basis:32px;width:32px;height:32px}
 
 .parking-bays{gap:10px}
 .parking-space-card{padding:10px}
 .parking-space-name,.parking-space-status{letter-spacing:.04em}
 .parking-bay-car{width:min(116px,100%)}
 .parking-bay-visual{min-height:96px}
}
@media(prefers-reduced-motion:reduce){.parking-modal[open],.parking-nav-trigger,.parking-modal-close,.parking-space-card,.parking-refresh{animation:none;transition:none}}

/* v1.0.4: restrained plan-view parking illustrations and launch state. */
.parking-audience{text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-skip-ink:auto}
.parking-bay-visual{height:150px;min-height:150px;background:#0b171a66;border-radius:3px 14px}
.parking-bay-visual::before{content:none}
.parking-bay-outline{position:absolute;inset:0;width:100%;height:100%;color:#76979e;opacity:.55}
.parking-bay-free{width:66px;height:66px}
.parking-bay-car{width:58px;height:104px;filter:none;color:#efb0a1;opacity:1}
.parking-bay-unknown{width:38px;height:38px;font-size:22px;border:1px solid #8fa8ac66;background:#142c33}
.parking-modal[data-scheduled="true"] .parking-bay-unknown{display:none}
.parking-modal[data-scheduled="true"] .parking-bay-free{display:block;color:var(--muted);opacity:.65}
.parking-modal[data-scheduled="true"] .parking-total-mark,.parking-modal[data-scheduled="true"] .parking-refresh{display:none}
.parking-modal[data-scheduled="true"] .parking-summary{grid-template-columns:minmax(0,1fr)}
.parking-modal[data-scheduled="true"] .parking-space-status::before{content:none}
@media(max-width:640px){.parking-bay-visual{height:136px;min-height:136px}.parking-bay-car{width:52px;height:94px}}
@media(max-width:380px){.parking-bay-car{width:48px;height:87px}}

/* Shared navigation control geometry: desktop 44px, mobile 36px. */
.site-header .header-controls>nav>.nav-booking,.site-header .language-switch,.site-header .parking-nav-trigger{box-sizing:border-box;height:44px;min-height:44px;max-height:44px;border-radius:3px 12px;padding-block:0}
.site-header .parking-nav-trigger{flex:0 0 44px;width:44px;background:transparent}
.site-header .parking-nav-trigger svg{width:20px;height:20px}
@media(max-width:760px){.site-header .header-controls>nav>.nav-booking,.site-header .language-switch,.site-header .parking-nav-trigger{height:36px;min-height:36px;max-height:36px}.site-header .parking-nav-trigger{flex-basis:36px;width:36px}.site-header .parking-nav-trigger svg{width:18px;height:18px}}
