.city-hero{background:#f0f4f7;padding:2rem 0 3.5rem}.city-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center}.city-hero h1{font-size:clamp(2.5rem,4.5vw,4.3rem);line-height:1.08;max-width:20ch;margin:1rem 0 1.4rem}.city-eyebrow{font-size:.84rem;text-transform:uppercase;letter-spacing:.09em;color:#456078;font-weight:600}.city-lead{font-size:1.12rem;line-height:1.75}.city-cite,.city-availability{font-size:.88rem;color:#4a5d70;line-height:1.6}.city-availability{margin-top:1.2rem}.city-photo{margin:0}.city-photo img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;border-radius:3px}.city-photo figcaption{font-size:.73rem;line-height:1.6;margin-top:.7rem;color:#4a5d70;overflow-wrap:anywhere}.city-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}.city-content{display:grid;grid-template-columns:180px minmax(0,1fr);gap:3rem;align-items:start}.city-toc{position:sticky;top:1rem;padding:3rem 0;display:grid;gap:1rem}.city-toc a{font-size:.9rem}.city-article{max-width:880px;min-width:0;padding-bottom:4rem}.city-article section{padding:2.5rem 0;border-bottom:1px solid #d6dfe6;scroll-margin-top:2rem}.city-article h2{font-size:clamp(1.7rem,2.5vw,2.3rem);line-height:1.18;margin:0 0 1.2rem}.city-article h3{font-size:1.3rem}.city-article p{line-height:1.8}.city-article table{width:100%;border-collapse:collapse;font-size:.94rem}.city-article caption{text-align:left;margin-bottom:1rem;color:#526570}.city-article th,.city-article td{text-align:left;vertical-align:top;padding:1rem;border-bottom:1px solid #d6dfe6;min-width:0}.city-article thead{background:#eef3f6}.city-steps{padding-left:1.5rem}.city-steps li{padding:.8rem 0}.city-steps li p{margin:.35rem 0}.city-local{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.city-facts{display:grid;grid-template-columns:1fr 1.3fr;gap:.65rem;margin:0}.city-facts dt{font-size:.87rem;color:#526570}.city-facts dd{margin:0;font-weight:600}.city-authority{border-left:3px solid #0b2545;padding:1.5rem;background:#f0f4f7;align-self:start}.city-authority h3{margin-top:0}.city-authority address{font-style:normal;line-height:1.8}.city-authority small{display:block;line-height:1.5;color:#526570}.city-faq{padding:1rem 0;border-bottom:1px solid #d6dfe6}.city-faq summary{font-weight:600;cursor:pointer;line-height:1.5}.city-related li,.city-sources li{padding:.3rem 0;line-height:1.65}.city-sources{font-size:.9rem;color:#465c70}.city-sources h2{color:#0b2545}.city-article a,.city-photo a,.city-cite a{text-decoration:underline;text-underline-offset:3px}.city-content a:focus-visible,.city-hero a:focus-visible,.city-faq summary:focus-visible{outline:3px solid #c26b19;outline-offset:4px}@media(max-width:900px){.city-hero-grid{grid-template-columns:1fr;gap:2rem}.city-photo{max-width:680px}.city-content{grid-template-columns:1fr;gap:0}.city-toc{position:static;padding:1.5rem 0;display:flex;flex-wrap:wrap}.city-local{grid-template-columns:1fr}.city-hero{padding-bottom:2rem}.city-article section{padding:2rem 0}}@media(max-width:480px){.city-hero h1{font-size:2.5rem}.city-actions{display:grid}.city-actions a{text-align:center}.city-facts{grid-template-columns:1fr}.city-facts dd{margin-bottom:.55rem}}

.appointment-value{font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.25;margin:1rem 0;color:#0b2545}
/* Terminseiten haben keine seitliche Inhaltsnavigation. Der Artikel nutzt die volle Inhaltsbreite. */
.city-content>.city-article:only-child{grid-column:1/-1;width:100%}
.city-actions a.button,.city-article a.button{color:#fff}

/* Terminseite: amtliche Information links, eigener Online-Einstieg rechts. */
.appointment-hero-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:clamp(28px,4vw,60px);align-items:center}
.appointment-hero h1{font-size:clamp(40px,4.5vw,64px);line-height:1.04;overflow-wrap:anywhere}
.appointment-hero .city-lead{max-width:51ch;font-size:18px;line-height:1.6}
.appointment-official-actions{align-items:center;gap:18px}
.appointment-official-actions a.button-secondary{color:var(--ink);font-size:14px;min-height:48px}
.appointment-official-actions .appointment-wait-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}
.appointment-start{background:var(--brass-soft);border-radius:var(--radius-card);padding:clamp(24px,3vw,36px)}
.appointment-start h2{font:700 clamp(32px,3.2vw,46px)/1.06 var(--display);margin:0 0 18px;color:var(--ink)}
.appointment-start>p{font-size:16px;line-height:1.6;margin:0 0 22px;max-width:40ch}
.appointment-start-actions{display:grid;gap:10px}
.appointment-start .button{font-size:16px;min-height:50px}
.appointment-start .button-secondary{background:transparent;color:var(--ink)}
.appointment-start .button-secondary:hover{background:#fff}
.appointment-more{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--ink);text-underline-offset:4px;margin-top:6px}
.appointment-start .appointment-start-note{font-size:12px;line-height:1.5;margin:14px 0 0;max-width:44ch}
.appointment-online>p{max-width:65ch}
.appointment-online .appointment-preview-note{font-size:13px;color:var(--muted);margin:16px 0 22px}
.appointment-service-info{border-top:1px solid var(--line);padding-top:16px}
.appointment-service-info summary{cursor:pointer;font-size:14px;font-weight:600;padding-block:6px}
.appointment-service-info ul{padding-left:20px}
@media(max-width:850px){
 .appointment-hero-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .appointment-hero{padding-bottom:32px}
 .appointment-hero h1{max-width:18ch}
 .appointment-start{max-width:640px;width:100%}
 .appointment-start-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .appointment-start>p{max-width:54ch}
}
@media(max-width:480px){
 .appointment-hero h1{font-size:42px}
 .appointment-hero .city-lead{font-size:16px}
 .appointment-start h2{font-size:34px}
 .appointment-start-actions{grid-template-columns:minmax(0,1fr)}
 .appointment-official-actions{display:flex;flex-wrap:wrap;gap:8px 16px}
 .appointment-official-actions a.button-secondary{width:100%}
}

.appointment-start .appointment-start-note{font-size:13px;line-height:1.6;max-width:none}

/* Messwerte wie bei Zo24: Kalender füllt sich bis zum erfassten Termin, Balken wachsen einmal. */
.wait-meter{margin:24px 0;padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-top:3px solid var(--ink);border-radius:var(--radius-card);background:#fff}
.wait-meter--calendar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,44px);align-items:start}
.wait-readout{min-width:0}
.wait-meter .city-eyebrow{font:500 12px/1.6 var(--mono);letter-spacing:.07em;margin:0 0 18px;color:var(--muted)}
.wait-meter .appointment-value{font:700 clamp(30px,3.6vw,46px)/1.08 var(--display);margin:0 0 16px;max-width:14ch;text-wrap:balance}
.wait-meter .wait-measured-at{font:400 12px/1.7 var(--mono);color:var(--muted);margin:0 0 28px}
.wait-bars{display:grid;gap:24px;padding:0;margin:0;list-style:none}
.wait-bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;font-size:13px;line-height:1.45}
.wait-bars strong{font-family:var(--mono);font-size:13px;white-space:nowrap}
.wait-track{grid-column:1/-1;display:block;width:100%;height:9px;background:var(--surface);border-radius:3px;overflow:hidden}
.wait-bar{fill:var(--ink);transform-box:fill-box;transform-origin:left center}
.wait-bar--median{fill:var(--brass);--wait-delay:140ms}
.wait-calendar{min-width:0;border-left:1px solid var(--line);padding-left:24px}
.wait-calendar .wait-calendar-title{font:500 12px/1.5 var(--mono);margin:0 0 14px;color:var(--ink)}
.wait-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.wait-weekday,.wait-day{font:400 12px/1 var(--mono);display:flex;align-items:center;justify-content:center}
.wait-weekday{padding:0 0 6px;color:var(--muted)}
.wait-weekday::before,.wait-day::before{content:attr(data-day)}
.wait-day{aspect-ratio:1;border-radius:3px;background:var(--surface);color:var(--muted)}
.wait-day--outside{background:transparent;color:var(--muted)}
.wait-day--measured{background:var(--ink);color:#fff;font-weight:600}
.wait-day--waiting{background:var(--brass-soft);color:var(--ink)}
.wait-day--waiting.wait-day--weekend{background:repeating-linear-gradient(135deg,var(--brass-soft) 0 3px,#fff 3px 6px)}
.wait-day--appointment{background:var(--brass);color:#fff;box-shadow:0 0 0 2px var(--ink);font-weight:600;position:relative}
.wait-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:14px 0;font-size:11px;line-height:1.3;color:var(--muted)}
.wait-key{display:inline-flex;align-items:center;gap:6px}
.wait-key::before{content:"";width:9px;height:9px;border-radius:2px;flex-shrink:0;background:var(--ink)}
.wait-key--waiting::before{background:var(--brass-soft);border:1px solid var(--line)}
.wait-key--appointment::before{background:var(--brass)}
.wait-calendar .wait-calendar-note{font-size:12px;line-height:1.65;color:var(--muted);margin:14px 0 0}
.wait-calendar-note strong{color:var(--ink);font-weight:600}
.wait-empty-icon{display:block;color:var(--brass);margin-bottom:18px}
.wait-meter .wait-status-note{font-size:14px;line-height:1.6;margin:0;color:var(--muted)}
.wait-meter:not([data-wait-state="available"]) .appointment-value{max-width:26ch;font-size:clamp(28px,3vw,36px)}
@keyframes wait-fill{from{opacity:.25;transform:scale(.65)}to{opacity:1;transform:scale(1)}}
@keyframes wait-appointment{0%{transform:scale(.65) rotate(-6deg)}65%{transform:scale(1.1) rotate(2deg)}100%{transform:none}}
@keyframes wait-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:no-preference){
 .wait-motion.wait-visible .wait-day--waiting{animation:wait-fill .4s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--wait-delay,0ms)}
 .wait-motion.wait-visible .wait-day--appointment{animation:wait-appointment .6s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--wait-delay,0ms) + 140ms)}
 .wait-motion.wait-visible .wait-bar{animation:wait-grow 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--wait-delay,0ms)}
}
@media(max-width:620px){
 .wait-meter--calendar{grid-template-columns:minmax(0,1fr);gap:28px}
 .wait-calendar{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}
 .wait-meter .appointment-value{font-size:38px;max-width:15ch}
 .wait-calendar-grid{gap:6px}
}

/* Stagger in the stylesheet keeps the strict style-src policy intact. */
.wait-calendar-grid>:nth-child(8){--wait-delay:0ms}
.wait-calendar-grid>:nth-child(9){--wait-delay:25ms}
.wait-calendar-grid>:nth-child(10){--wait-delay:50ms}
.wait-calendar-grid>:nth-child(11){--wait-delay:75ms}
.wait-calendar-grid>:nth-child(12){--wait-delay:100ms}
.wait-calendar-grid>:nth-child(13){--wait-delay:125ms}
.wait-calendar-grid>:nth-child(14){--wait-delay:150ms}
.wait-calendar-grid>:nth-child(15){--wait-delay:175ms}
.wait-calendar-grid>:nth-child(16){--wait-delay:200ms}
.wait-calendar-grid>:nth-child(17){--wait-delay:225ms}
.wait-calendar-grid>:nth-child(18){--wait-delay:250ms}
.wait-calendar-grid>:nth-child(19){--wait-delay:275ms}
.wait-calendar-grid>:nth-child(20){--wait-delay:300ms}
.wait-calendar-grid>:nth-child(21){--wait-delay:325ms}
.wait-calendar-grid>:nth-child(22){--wait-delay:350ms}
.wait-calendar-grid>:nth-child(23){--wait-delay:375ms}
.wait-calendar-grid>:nth-child(24){--wait-delay:400ms}
.wait-calendar-grid>:nth-child(25){--wait-delay:425ms}
.wait-calendar-grid>:nth-child(26){--wait-delay:450ms}
.wait-calendar-grid>:nth-child(27){--wait-delay:475ms}
.wait-calendar-grid>:nth-child(28){--wait-delay:500ms}
.wait-calendar-grid>:nth-child(29){--wait-delay:525ms}
.wait-calendar-grid>:nth-child(30){--wait-delay:550ms}
.wait-calendar-grid>:nth-child(31){--wait-delay:575ms}
.wait-calendar-grid>:nth-child(32){--wait-delay:600ms}
.wait-calendar-grid>:nth-child(33){--wait-delay:625ms}
.wait-calendar-grid>:nth-child(34){--wait-delay:650ms}
.wait-calendar-grid>:nth-child(35){--wait-delay:675ms}
.wait-calendar-grid>:nth-child(36){--wait-delay:700ms}
.wait-calendar-grid>:nth-child(37){--wait-delay:725ms}
.wait-calendar-grid>:nth-child(38){--wait-delay:750ms}
.wait-calendar-grid>:nth-child(39){--wait-delay:775ms}
.wait-calendar-grid>:nth-child(40){--wait-delay:800ms}
.wait-calendar-grid>:nth-child(41){--wait-delay:825ms}
.wait-calendar-grid>:nth-child(42){--wait-delay:850ms}
.wait-calendar-grid>:nth-child(43){--wait-delay:875ms}
.wait-calendar-grid>:nth-child(44){--wait-delay:900ms}
.wait-calendar-grid>:nth-child(45){--wait-delay:925ms}
.wait-calendar-grid>:nth-child(46){--wait-delay:950ms}
.wait-calendar-grid>:nth-child(47){--wait-delay:975ms}
.wait-calendar-grid>:nth-child(48){--wait-delay:1000ms}
.wait-calendar-grid>:nth-child(49){--wait-delay:1025ms}
