/* Strukturvarianten: cityPage.layout, guidePage, home.citiesStyle. Wird nur ausgeliefert, wenn eines dieser Felder gesetzt ist (CONFIG-SCHEMA Abschnitt 8). */

/* ---------- Stadtseite: Layout list-first ---------- */
.cp-list-first .city-head{padding-bottom:0}
.cp-list-first .city-head h1{font-size:clamp(1.55rem,3vw,2.1rem)}
.cp-list-first .city-head .lead{font-size:1rem;max-width:72ch}
.cp-list-first .section{margin:40px 0}
.cp-list-first .chips-title{margin-top:12px}
.cp-list-first #liste{margin-top:20px}

/* ---------- Stadtseite: Layout tool-head ---------- */
.cp-toolhead{margin:18px 0 8px}
.cp-toolhead .mod-tool{margin:0;border:1px solid var(--line);align-items:flex-start}
.cp-toolhead .mod-tool>.mod-copy{flex:1 1 280px}
.cp-toolhead .mod-tool-inline{flex:1 1 360px;min-width:0}
.cp-tool-head .city-head{padding-bottom:0}
.cp-tool-head .city-head h1{font-size:clamp(1.55rem,3vw,2.1rem)}
.cp-tool-head .section{margin:40px 0}
.cp-tool-head #liste{margin-top:24px}
@media (min-width:900px){
  .cp-toolhead .mod-tool{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,40px)}
  .cp-toolhead .mod-tool-inline{flex:none}
}

/* ---------- Stadtseite: Layout sidebar ---------- */
.cp-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 36px;align-items:start}
.cp-main,.cp-side{min-width:0}
.cp-main>.section:first-child,.cp-side>.section:first-child{margin-top:0}
.cp-side{display:grid;gap:20px;align-content:start}
.cp-side>*{margin:0}
.cp-side .section{margin:0}
.cp-side .factbar{flex-direction:column;flex-wrap:nowrap;margin:0}
.cp-side .factbar>div{flex:none}
.cp-side .keyfacts-local{grid-template-columns:1fr}
.cp-side h2{font-size:1.15rem;margin:0 0 10px}
.cp-side .official-list li{padding:10px 12px}
.cp-side .mod{flex-direction:column;align-items:stretch;gap:12px;padding:16px;margin:0}
.cp-side .mod-copy{flex:none}
.cp-side .mod-tool-inline{flex:none;min-width:0}
.cp-side .mod-tool .btn{width:100%}
.cp-side .tool-box{padding:14px}
@media (min-width:1024px){
  .cp-grid.cp-has-side{grid-template-columns:minmax(0,1fr) 320px}
  .cp-main .search{max-width:none}
}

/* ---------- Ratgeber-Artikel (config.guidePage) ---------- */
.gp-head{padding-bottom:0}
.gp-kf{margin:18px 0 6px;max-width:860px}
.kf-table{border-collapse:collapse;width:100%;max-width:860px;font-size:1rem}
.kf-table caption{caption-side:top;text-align:left;margin:0 0 8px;font-size:.8rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}
.kf-table th,.kf-table td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.kf-table tr:first-child th,.kf-table tr:first-child td{border-top:2px solid var(--brand)}
.kf-table th{width:42%;font-weight:600;color:var(--muted)}
.kf-table td{font-weight:700;color:var(--brand);overflow-wrap:anywhere}
.gp-toc{margin:18px 0 6px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r,var(--radius));background:var(--surface,#fff);max-width:860px;font-size:.95rem}
.gp-toc strong{display:block;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--brand);margin-bottom:4px}
.gp-toc ol{list-style:none;counter-reset:gp-toc;margin:0;padding:0;columns:2 260px;column-gap:28px}
.gp-toc li{break-inside:avoid;margin:0;counter-increment:gp-toc;display:flex;align-items:center;gap:8px}
.gp-toc li::before{content:counter(gp-toc) ".";flex:none;min-width:1.5em;color:var(--muted);font-variant-numeric:tabular-nums}
.gp-toc a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}
.gp-toc a:hover{color:var(--brand);text-decoration:underline}
.gp-content,.gp-sources{margin-top:28px}
.gp-extra{margin:28px 0}
.gp-extra .section{margin:0 0 20px}
.gp-extra .mod{max-width:72ch}
.gp-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 40px;align-items:start;margin-top:8px}
.gp-main,.gp-side{min-width:0}
.gp-side .gp-kf,.gp-side .gp-toc{margin:18px 0 0;max-width:none}
.gp-side .keyfacts{grid-template-columns:1fr}
.gp-side .gp-toc ol{columns:1}
@media (min-width:900px){
  .gp-grid{grid-template-columns:minmax(0,1fr) 300px}
  .gp-side{grid-column:2;grid-row:1;position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}
  .gp-main{grid-column:1;grid-row:1}
  .gp-main .gp-content,.gp-main .gp-sources{margin-top:0}
}
@media (max-width:520px){
  .kf-table th,.kf-table td{display:block;width:auto;border-bottom:0;padding:6px 12px}
  .kf-table td{padding-bottom:10px;border-bottom:1px solid var(--line)}
  .kf-table tr:first-child th{border-top:2px solid var(--brand)}
  .kf-table tr:first-child td{border-top:0}
  .gp-toc ol{columns:1}
}

/* ---------- Städteliste (home.citiesStyle) ---------- */
/* table */
.city-table-wrap{overflow-x:auto}
.city-table{width:100%;border-collapse:collapse;font-size:1rem;background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--r,var(--radius))}
.city-table th,.city-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
.city-table thead th{font-size:.8rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--tint)}
.city-table .num{text-align:right;font-variant-numeric:tabular-nums}
.city-table tbody tr{position:relative}
.city-table tbody tr:hover{background:var(--tint)}
.city-table tbody th{font-weight:650}
.city-table tbody th a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.city-table tbody th a::after{content:"";position:absolute;inset:0}
.city-table tbody th a:hover{color:var(--brand)}
.city-table .col-state{color:var(--muted)}
@media (max-width:640px){
  .city-table th,.city-table td{padding:10px 10px}
  .city-table .col-state{display:none}
}
/* bars */
.city-bars{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.city-bar{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr) minmax(100px,150px);align-items:center;gap:6px 18px;min-height:48px;padding:6px 14px;border-radius:var(--r-sm,10px);color:var(--ink);text-decoration:none}
.city-bar:hover{background:var(--tint)}
.cb-name{display:flex;flex-direction:column;font-weight:650;line-height:1.25}
.cb-name small{font-weight:400;font-size:.8rem}
.cb-track{display:block;height:12px;border-radius:999px;background:var(--tint);overflow:hidden}
.cb-track i{display:block;height:100%;border-radius:999px;background:var(--brand)}
.cb-n{text-align:right;font-size:.92rem;color:var(--muted);font-variant-numeric:tabular-nums}
.cb-n strong{color:var(--ink);font-size:1.05rem}
@media (max-width:640px){
  .city-bar{grid-template-columns:minmax(0,1fr) auto;padding:8px 10px}
  .cb-track{grid-column:1 / -1;grid-row:2;height:8px}
}
/* register */
.city-register{columns:3 260px;column-gap:44px}
.cr-group{break-inside:avoid;margin:0 0 22px}
.cr-letter{margin:0 0 6px;padding-bottom:4px;border-bottom:2px solid var(--brand);font-size:1.5rem;line-height:1.2;color:var(--brand)}
.cr-group ul{list-style:none;margin:0;padding:0}
.cr-group li{margin:0}
.cr-group a{display:flex;align-items:baseline;gap:8px;min-height:44px;padding:8px 0;color:var(--ink);text-decoration:none}
.cr-group a:hover .cr-name{color:var(--brand);text-decoration:underline}
.cr-name{font-weight:650}
.cr-dots{flex:1 1 auto;min-width:16px;border-bottom:2px dotted color-mix(in srgb,var(--muted,#5b6169) 45%,transparent);transform:translateY(-4px)}
.cr-n{font-size:.9rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
