/* === Alle öffentlichen Seiten im Stil der Startseite === */
/* Begründungen und Prüfdaten zu den Regeln: interne Notiz css-begruendungen (nicht online). */
:root {
    --sx-grund: #f4f6f7;                  /* getönter Abschnitt, Tabellenkopf, Darüberfahren in Listen */
    --sx-block: #fff;                     /* Blöcke, Karten, Felder: immer weiss (mit Rand und --shadow-sm) */
    --sx-rand: #dfe4e8;                   /* Rahmen der Blöcke, Trennlinien */
    --sx-rand-stark: #c5ced4;             /* Rahmen beim Darüberfahren, Trennpunkte */
    --sx-feld-rand: #b4bfc6;              /* Rahmen der Formularfelder (1,9:1 auf Weiss, vorher #cdc2b3 1,8:1) */
    --sx-kopf: #f4f6f7;                   /* Kopfband der Unterseiten (Pfad, Titel, Einleitung) */
    --sx-karte-offen: #e6eaec;            /* Kantonskarte: noch nicht abgedeckt */
    --sx-blau-kopf: #dde9ee;              /* Angebotsblöcke wie die Kantonsblöcke der Startseite */
    --sx-blau-feld: #edf3f6;
    --sx-blau-rand: #d2dfe5;
    --color-bg-alt: #f4f6f7;
    --color-warm-bg: #f4f6f7;
    --color-border: #dfe4e8;
}

/* --- Schrift und Überschriften --- */
h1, h2, h3, h4 { color: var(--color-primary-dark); }
h1 { font-size: clamp(1.95rem, 3.6vw, 2.75rem); line-height: 1.12; letter-spacing: -.02em; }
.lead { font-size: 1.15rem; line-height: 1.6; color: var(--color-text-muted); }
.lead strong { color: var(--color-text); }
.section__title { font-size: clamp(1.55rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -.01em; margin-bottom: 12px; }
.section__title::after { display: none; }
.section__sub { font-size: 1.05rem; margin-bottom: 34px; }
.hero__eyebrow { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; color: var(--color-text-muted); }
.hero__eyebrow::before { display: none; }

/* --- Abschnitte --- */
.section { padding-block: 72px; }
.section--tight { padding-block: 48px; }
.section--alt { background: var(--sx-grund); border-top: 1px solid var(--sx-rand); border-bottom: 1px solid var(--sx-rand); }
.section--alt + .section--alt { border-top: 0; }

.section--linie { border-top: 1px solid var(--sx-rand); }

/* --- Kopfbereich der Unterseiten --- */
.seitenkopf-pfad { background: var(--sx-kopf); box-shadow: 0 0 0 100vmax var(--sx-kopf); clip-path: inset(0 -100vmax); }
.seitenkopf-pfad .breadcrumb { padding-top: 22px; }
.seitenkopf { background: var(--sx-kopf); border-bottom: 1px solid var(--sx-rand); padding-top: 22px; padding-bottom: 56px; }
.seitenkopf h1 { margin-bottom: 14px; max-width: 24em; }
.seitenkopf .container.narrow h1 { max-width: none; }
.seitenkopf .lead { max-width: 40em; margin-bottom: 0; } /* rund 80 Zeichen je Zeile (höchstens 88, CLAUDE.md 7b) */
.seitenkopf .hero__actions { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px; }
.seitenkopf .hero__eyebrow { display: none; } /* der Pfad darüber sagt schon, wo man ist */
.breadcrumb { font-size: .88rem; }
.breadcrumb a { display: inline-block; padding: 12px 0; margin: -12px 0; color: var(--color-text-muted); text-underline-offset: 3px; }
.breadcrumb li:not(:last-child)::after { color: var(--sx-rand-stark); }

/* --- Knöpfe wie auf der Startseite --- */
.btn { min-height: 46px; padding: 11px 20px; gap: 8px; justify-content: center; border: 2px solid var(--color-primary); border-radius: var(--radius-sm);
    background: #fff; color: var(--color-primary); font-weight: 600; line-height: 1.2; box-shadow: none; }
.btn:hover { background: var(--sx-grund); border-color: var(--color-primary-dark); color: var(--color-primary-dark); transform: none; box-shadow: none; }
.btn--primary { background: var(--color-primary); border-color: var(--color-primary); color: #fff; box-shadow: none; }
.btn--primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); color: #fff; transform: none; box-shadow: none; }
.btn--ghost { background: #fff; border-color: var(--color-primary); color: var(--color-primary); }
.btn--ghost:hover { background: var(--sx-grund); border-color: var(--color-primary-dark); color: var(--color-primary-dark); }
.btn--accent { box-shadow: none; }
.btn--accent:hover { transform: none; }
.btn--lg { min-height: 52px; padding: 13px 26px; font-size: 1.05rem; }
.btn--sm { min-height: 44px; padding: 8px 14px; font-size: .92rem; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--color-primary); }
.compare-table td a, address a { display: inline-block; min-width: 44px; padding: 12px 0; margin: -12px 0; }

/* --- Blöcke --- */
.feature, .audience, .service-card, .ratgeber-card, .canton-card, .offer-card, .infobox, .toc, .calc__card, .step, .compare-col {
    background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.feature::before, .audience::before { display: none; }
.feature:hover, .audience:hover, .step:hover { transform: none; box-shadow: var(--shadow-sm); } /* nicht anklickbar: keine Änderung */
.address-type-card:hover { transform: none; }
/* Symbol als hellgraue Kachel im weissen Block (wie die Ratgeber-Blöcke der Startseite) */
.feature > .icon:first-child, .audience > .icon:first-child, .service-card > .icon:first-child {
    box-sizing: content-box; width: 26px; height: 26px; padding: 11px; margin: 0 0 14px; border-radius: 12px;
    background: var(--sx-grund); color: var(--color-accent); box-shadow: none; }
.feature, .audience { text-align: left; padding: 24px; }
.feature .icon, .audience .icon { margin-inline: 0; }
.feature svg, .audience svg { color: var(--color-accent); }
.feature h3, .audience h3 { margin: 0 0 6px; font-size: 1.1rem; }
.feature p, .audience p { font-size: .95rem; line-height: 1.55; color: var(--color-text-muted); }

/* --- Häufige Fragen: weisse Blöcke mit Rand und leichtem Schatten --- */
.faq__item, .faq details { background: #fff; border: 1px solid var(--sx-rand); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.faq__q { padding: 16px 54px 16px 20px; font-weight: 600; color: var(--color-primary-dark); line-height: 1.4; }
.faq__q::after { right: 20px; top: 17px; color: var(--color-accent); } /* auf Höhe der ersten Zeile, auch bei mehrzeiligen Fragen */
.faq__q:hover { color: var(--color-primary); }
.faq__a { padding: 0 20px 18px; color: var(--color-text); line-height: 1.65; }
.faq h2 { text-align: center; font-size: clamp(1.55rem, 3vw, 2.1rem); margin-bottom: 24px; }

/* --- Schlussband und Zahlenband: ruhiges Navy ohne Verlauf --- */
.cta-band { background: var(--color-primary); padding-block: 52px; }
.cta-band h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
/* Hauptknopf im Schlussband rot wie «Suchen» auf der Startseite (Lars 14.10.2026); weisse Schrift auf #d23137 4,96:1 */
.cta-band .btn--primary, .cta-band .btn--accent { background: var(--color-accent); border-color: var(--color-accent); color: #fff; }
.cta-band .btn--primary:hover, .cta-band .btn--accent:hover { background: var(--color-accent-dark); border-color: var(--color-accent-dark); color: #fff; }
.cta-band .btn:not(.btn--primary):not(.btn--accent) { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.stats-band { background: var(--color-primary); }

/* --- Tabellen --- */
.table-scroll, .table-wrap { border: 1px solid var(--sx-rand); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); overflow-x: auto; }
.compare-table { border: 0; border-radius: 0; }
.compare-table thead th { background: var(--sx-grund); color: var(--color-primary-dark); font-weight: 600; font-size: .88rem; }
.compare-table th, .compare-table td { border-bottom: 1px solid var(--sx-rand); }
.compare-table tbody tr:hover { background: var(--sx-kopf); }
.compare-table__canton a { color: var(--color-primary-dark); font-weight: 600; text-decoration: none; }
.compare-table__canton a:hover { text-decoration: underline; text-underline-offset: 3px; }
.compare-table--liste th:first-child { width: 32%; }
.compare-table__preis, .compare-table__steuer { font-variant-numeric: tabular-nums; }
.compare-table__preis { font-weight: 600; color: var(--color-primary-dark); }
.compare-table__preis.muted { font-weight: 400; color: var(--color-text-muted); }
/* Kantonsvergleich (/domiziladresse/, Lars 14.10.2026): ganze Zeile bzw. ganzer Block führt auf die Kantonsseite. Roter
   Pfeil nach dem Namen als Hinweis (wie «Weiterlesen»), letztes Wort und Pfeil zusammen. Tabelle ab 1024 px: Pfeil erst
   beim Darüberfahren oder Fokus, Klick auf die Zeile per tabelle-sortieren.js (data-zeilen-link). Blöcke: Responsiv-Teil. */
.compare-table__ende { white-space: nowrap; }
.compare-table__pfeil { display: inline-block; width: 17px; height: 17px; margin-left: 6px; vertical-align: -3px; color: var(--color-accent); stroke-width: 2.2;
    transition: opacity .15s, transform .15s; }
.compare-table--liste .compare-table__link { padding-inline: 8px; margin-inline: -8px; } /* Fokusrahmen mit Luft links und rechts */
.compare-table--liste .compare-table__link:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -4px; border-radius: 8px; }
.compare-table + p.small, .table-scroll ~ p.small { margin-top: 14px; }
.tabellen-hinweis { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); align-items: start; margin: 16px 0 0; padding: 0 16px;
    font-size: .875rem; line-height: 1.55; color: var(--color-text-muted); }
.tabellen-hinweis__symbol { width: 20px; height: 20px; margin: 1px 12px 0 0; color: var(--color-primary-light); }
.tabellen-hinweis p { max-width: 38em; margin: 0; }
.tabellen-hinweis p + p { padding-left: 36px; }
.tabellen-hinweis a { color: var(--color-primary); text-decoration: underline; text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }
.tabellen-hinweis a:hover { text-decoration-color: currentColor; }

/* --- Sortierbare Tabellen --- */
th.tabelle-sortieren__kopf { padding-top: 4px; padding-bottom: 4px; white-space: normal; } /* Kopf darf umbrechen, Zellen nicht */
.tabelle-sortieren__knopf { display: inline-block; min-height: 44px; margin-left: -8px; padding: 12px 8px; border: 0; border-radius: var(--radius-sm);
    background: none; font: inherit; font-weight: 600; line-height: 20px; color: var(--color-primary-dark); text-align: left; cursor: pointer; }
.tabelle-sortieren__ende { white-space: nowrap; } /* letztes Wort mit dem Pfeil */
.tabelle-sortieren__knopf:hover { background: rgba(32, 62, 76, .07); }
.tabelle-sortieren__knopf:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -3px; }
.tabelle-sortieren__pfeil { display: inline-block; width: 16px; height: 16px; margin-left: 6px; vertical-align: -3px; color: var(--color-primary); opacity: .4; }
.tabelle-sortieren__knopf:hover .tabelle-sortieren__pfeil, .tabelle-sortieren__knopf.ist-aktiv .tabelle-sortieren__pfeil { opacity: 1; }
.tabelle-sortieren__status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Auswahlfeld «Sortieren» nur für gestapelte Listen auf dem Handy (Responsiv-Teil) */
.tabelle-sortieren__auswahl { display: none; }
.section__title + .tabelle-sortieren__auswahl + .table-scroll { margin-top: var(--space-5); } /* wie .section__title + .table-scroll in base.css */

/* --- Fliesstext (Ratgeber, Kantonsseiten) --- */
.prose { font-size: 1.04rem; line-height: 1.75; color: var(--color-text); }
.prose h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem); line-height: 1.25; margin: 2.2em 0 .6em; padding-top: 1.3em; border-top: 1px solid var(--sx-rand); }
.prose > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.prose h3 { font-size: 1.2rem; margin: 1.8em 0 .5em; }
.prose a:not(.btn) { color: var(--color-primary); text-underline-offset: 3px; }
.prose ul li::marker { color: var(--color-primary-light); }
.prose ol li::marker { color: var(--color-primary); font-weight: 700; }
.prose blockquote { margin: 1.5em 0; padding: 16px 20px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.prose table, .ratgeber-article__body table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--sx-rand); border-radius: 12px; overflow: hidden; background: #fff; font-size: .95rem; }
.prose th, .prose td, .ratgeber-article__body th, .ratgeber-article__body td { border: 0; border-bottom: 1px solid var(--sx-rand); padding: 11px 14px; }
.prose thead th, .ratgeber-article__body thead th, .prose th { background: var(--sx-grund); color: var(--color-primary-dark); font-weight: 600; }
.prose tr:last-child td, .ratgeber-article__body tr:last-child td { border-bottom: 0; }
.prose-photo img { border-radius: var(--radius); box-shadow: none; }
.prose .check-list:has(> li > .icon) { padding-left: 0; }
.prose .check-list li:has(> .icon:first-child) { padding-left: 28px; }
.prose .check-list li > .icon:first-child { position: absolute; left: 0; top: .33em; }

/* --- Infokästen in der Seitenleiste --- */
.infobox { padding: 22px; }
.infobox--accent { border-left: 1px solid var(--sx-rand); }
.infobox h3 { font-size: 1.05rem; gap: 10px; margin-bottom: 10px; }
.infobox h3 .icon { box-sizing: content-box; width: 18px; height: 18px; padding: 7px; border-radius: 9px; background: var(--sx-grund); color: var(--color-accent); flex: 0 0 auto; }
.infobox .check-list li::before, .check-list--haken li::before, .icon--check { color: var(--color-accent); } /* Häkchen in Inhaltslisten */
.infobox a:not(.btn) { color: var(--color-primary); }

/* --- Kantone als Kacheln mit Wappen statt Pillen --- */
.canton-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; justify-content: stretch; }
.canton-chip { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 10px 14px; border: 1px solid var(--sx-rand); border-radius: var(--radius-sm);
    background: var(--sx-block); color: var(--color-primary-dark); font-weight: 600; text-decoration: none; box-shadow: var(--shadow-sm);
    transition: background-color .2s, border-color .2s, box-shadow .2s; }
.canton-chip:hover { transform: none; background: #fff; border-color: var(--sx-rand-stark); box-shadow: var(--shadow); text-decoration: none; }
.canton-chip img { width: 24px; height: 29px; filter: drop-shadow(0 0 .5px rgba(22, 48, 59, .55)) drop-shadow(0 1px 1.5px rgba(22, 48, 59, .22)); } /* feiner Umriss: weisse Wappen (Freiburg) */
.canton-chip > span { min-width: 0; hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: break-word; line-height: 1.25; }

/* --- Weitere Verweise im Ratgeber: Kacheln statt Pillen --- */
.related { border-top: 1px solid var(--sx-rand); }
.related__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.related__link { display: flex; align-items: center; min-height: 52px; padding: 10px 16px; border: 1px solid var(--sx-rand); border-radius: var(--radius-sm);
    background: var(--sx-block); color: var(--color-primary-dark); font-weight: 600; box-shadow: var(--shadow-sm); transition: border-color .2s, box-shadow .2s; }
.related__link:hover { background: #fff; border-color: var(--sx-rand-stark); box-shadow: var(--shadow); text-decoration: none; }

/* --- Ratgeber-Blöcke --- */
.ratgeber-grid { gap: 16px; }
.ratgeber-card { padding: 22px; gap: 10px; transition: background-color .2s, border-color .2s, box-shadow .2s, transform .2s; }
.ratgeber-card:hover { background: #fff; border-color: var(--sx-rand-stark); box-shadow: var(--shadow); transform: translateY(-3px); }
.ratgeber-card h3 { font-size: 1.12rem; line-height: 1.3; color: var(--color-primary-dark); }
.ratgeber-card__more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 4px; color: var(--color-accent-dark); }
.ratgeber-card__more .icon { width: 18px; height: 18px; transition: transform .2s; }
.ratgeber-card:hover .ratgeber-card__more .icon { transform: translateX(3px); }
.ratgeber-feature { background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius); padding: 28px 32px; box-shadow: var(--shadow-sm); }
.toc { padding: 20px 24px; }

/* --- Ratgeber, Darstellung (Prüfung 13.10.2026). Responsiv-Teil am Dateiende. --- */
.ratgeber-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ratgeber-card { padding: 24px 22px 20px; }
.ratgeber-card__symbol { display: grid; place-items: center; flex: none; width: 48px; height: 48px; margin-bottom: 4px; border-radius: 12px;
    background: var(--sx-grund); color: var(--color-accent); box-shadow: none; transition: background-color .2s, color .2s; }
.ratgeber-card:hover .ratgeber-card__symbol { background: var(--color-accent); color: #fff; }
.ratgeber-card__symbol .icon { width: 24px; height: 24px; }
.ratgeber-artikel, .ratgeber-artikel + .cta-band, .ratgeber-uebersicht { hyphens: none; -webkit-hyphens: none; }
.ratgeber-card h3 { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
.ratgeber-card__more { font-size: 1rem; font-weight: 600; }
.ratgeber-feature { flex-wrap: nowrap; gap: 32px; }
.ratgeber-feature > div { flex: 1 1 auto; min-width: 0; max-width: 46rem; }
.ratgeber-feature > .btn { flex: 0 0 auto; }
.ratgeber-feature h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem); line-height: 1.25; margin: 0 0 8px; }
.ratgeber-feature p { max-width: 40rem; line-height: 1.6; }

.toc { margin-bottom: 40px; }
.toc__titel { margin: 0 0 6px; font-weight: 700; color: var(--color-primary-dark); }
.toc ol { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 40px; }
.toc li { break-inside: avoid; margin: 0; }
.toc a:not(.btn) { display: block; margin: 0 -8px; padding: 5px 8px; border-radius: 8px; line-height: 1.4; text-decoration: none; }
.toc a:not(.btn):hover { background: var(--sx-grund); color: var(--color-primary-dark); }
.toc-klappe { display: none; }
.ratgeber-article > .infobox { margin: 0 0 28px; padding: 24px 26px; }
.ratgeber-article > .infobox h2 { font-size: clamp(1.2rem, 2vw, 1.4rem); line-height: 1.3; margin: 0 0 12px; }
.ratgeber-article > .infobox ol { margin: 0; padding-left: 1.4em; }
.ratgeber-article > .infobox li { line-height: 1.6; }
.ratgeber-artikel .seitenkopf .lead { max-width: 38em; }
.ratgeber-article > .infobox :is(p, li), .ratgeber-artikel :is(.prose p, .prose li, .faq__a p) { max-width: 35em; }
.ratgeber-article > .infobox li + li { margin-top: 6px; }
.ratgeber-article > .infobox ol li::marker { color: var(--color-primary); font-weight: 700; }
.ratgeber-article > .infobox .btn-row { margin: 18px 0 0; }
.ratgeber-article > .infobox p.small { margin-top: 14px; }
.prose .infobox .check-list { padding-left: 0; }
/* Fragengruppen im GwG-Leitfaden (article.php macht aus der Gruppe ein h3, aus den Fragen h4) */
.prose h4 { font-size: 1.05rem; line-height: 1.4; margin: 1.4em 0 .4em; }
.ratgeber-article__faq { margin-top: 0; }
.ratgeber-article__faq .faq h2, .ratgeber-artikel .related h2 { text-align: left; font-size: clamp(1.35rem, 2.4vw, 1.7rem); line-height: 1.25;
    margin: 2.2em 0 .7em; padding-top: 1.3em; border-top: 1px solid var(--sx-rand); }
.ratgeber-artikel .related { margin-top: 0; padding-top: 0; border-top: 0; }
.ratgeber-artikel + .cta-band .cta-band__inner { max-width: 820px; }
.ratgeber-artikel + .cta-band h2 { font-size: clamp(1.25rem, 1.9vw, 1.5rem); line-height: 1.3; text-wrap: pretty; }
.ratgeber-artikel + .cta-band .cta-band__inner > div { max-width: none; }
.seitenkopf-pfad:has(+ .ratgeber-artikel) { max-width: 820px; } /* Pfad bündig mit der Textspalte */
.ratgeber-artikel > .seitenkopf { padding-bottom: 44px; }
.ratgeber-article__head { margin: 0; }
.ratgeber-article__head .hero__eyebrow { display: none; }
.ratgeber-article__head .lead { margin-bottom: 14px; }
.byline { margin: 0; }
.byline a { color: var(--color-primary); font-weight: 600; }
.toc a:not(.btn) { color: var(--color-primary); }

/* --- Kantonskarten (Übersicht, Geschäftsadresse mieten) --- */
.canton-card { transition: background-color .2s, border-color .2s, box-shadow .2s, transform .2s; }
.canton-card:hover { background: #fff; border-color: var(--sx-rand-stark); box-shadow: var(--shadow); transform: translateY(-3px); }
.canton-card__name { color: var(--color-primary-dark); }
.canton-card__prices { border-top-color: var(--sx-rand); }
.canton-card__prices { container-type: inline-size; }
.canton-card__prices li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; align-items: baseline; }
.canton-card__art { white-space: nowrap; }
.canton-card__preis { color: var(--color-primary-dark); white-space: nowrap; text-align: right; }
.canton-card__einheit { font-size: .86em; font-weight: 400; color: var(--color-text-muted); }
.canton-card__preis.is-anfrage { font-weight: 400; color: var(--color-text-muted); }
@container (max-width: 15.5em) {
    .canton-card__prices li { grid-template-columns: minmax(0, 1fr); padding-block: 6px; }
    .canton-card__art { font-size: .9em; color: var(--color-text-muted); } /* Beschriftung klein darüber, wie die Tabelle auf dem Handy */
    .canton-card__preis { text-align: left; }
}

/* --- Leistungen --- */
.service-card { padding: 28px; }
.service-card--highlight { border: 2px solid var(--color-accent); box-shadow: var(--shadow-sm); }
.service-card h2 { color: var(--color-primary-dark); }

/* --- Formulare --- */
input, select, textarea { font-size: 1rem; border-color: var(--sx-feld-rand); border-radius: var(--radius-sm); }
input:focus, select:focus, textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(32, 62, 76, .12); }

/* --- Kantonskarte überall wie auf der Startseite --- */
.section--alt { --karte-grund: var(--sx-grund); }
.seitenkopf { --karte-grund: var(--sx-kopf); }
.cantonmap__svg { filter: drop-shadow(0 3px 7px rgba(28, 43, 51, .12)); }
.cantonmap__others .cantonmap__canton { fill: var(--sx-karte-offen); }
.cantonmap__canton--avail { fill: #c9d6dc; transition: fill .2s; }
.cantonmap__avail.hat-angebot .cantonmap__canton--avail { fill: var(--color-primary-light); }
.cantonmap__avail.ist-hover .cantonmap__canton--avail,
.cantonmap__avail:focus-visible .cantonmap__canton--avail { fill: var(--color-primary); }
@media (hover: hover) {
    .cantonmap__avail:hover .cantonmap__canton--avail { fill: var(--color-primary); }
}
.cantonmap__avail.is-active .cantonmap__canton--avail { fill: var(--color-accent); stroke: #fff; stroke-width: 2.5; }
.cantonmap__avail.is-picked:not(.is-active) .cantonmap__canton--avail { fill: #fff; stroke: var(--color-primary-dark); stroke-width: 3; }
.cantonmap__abbr { fill: var(--color-primary-dark); stroke: #c9d6dc; stroke-width: 3px; paint-order: stroke fill; stroke-linejoin: round; letter-spacing: .02em; }
.cantonmap__avail.hat-angebot .cantonmap__abbr { fill: #fff; stroke: var(--color-primary-light); }
.cantonmap__avail:focus-visible .cantonmap__abbr { fill: #fff; stroke: var(--color-primary); }
@media (hover: hover) {
    .cantonmap__avail:hover .cantonmap__abbr { fill: #fff; stroke: var(--color-primary); }
}
.cantonmap__avail.is-picked:not(.is-active) .cantonmap__abbr { fill: var(--color-primary-dark); stroke: #fff; }
.cantonmap__avail.is-active .cantonmap__abbr { fill: #fff; stroke: var(--color-accent); }
.cantonmap--gross .cantonmap__abbr { font-size: 23px; stroke-width: 4px; }
.cantonmap--gross .cantonmap__abbr--klein { font-size: 19px; stroke-width: 3px; }
/* Kleine Kantone mit Kürzel ausserhalb und Hinweislinie */
.cantonmap__linie { stroke: var(--color-primary-dark); stroke-width: 1.6; }
.cantonmap__punkt { fill: #fff; stroke: var(--color-primary-dark); stroke-width: 2; }
.cantonmap__flaeche { fill: transparent; pointer-events: all; }
.cantonmap__avail.cantonmap__aussen .cantonmap__abbr.cantonmap__abbr--aussen { fill: var(--color-primary-dark); stroke: var(--karte-grund, #fff); stroke-width: 6px; }
@media (hover: hover) {
    .cantonmap__avail.cantonmap__aussen:hover .cantonmap__abbr.cantonmap__abbr--aussen { fill: var(--color-primary-light); }
}
.cantonmap__avail.cantonmap__aussen.is-active .cantonmap__abbr.cantonmap__abbr--aussen { fill: var(--color-accent); }
.cantonmap__avail.cantonmap__aussen.is-active .cantonmap__linie, .cantonmap__avail.cantonmap__aussen.is-active .cantonmap__punkt { stroke: var(--color-accent); }
.sx-legende { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 12px 0 0; padding: 0; font-size: .88rem; color: var(--color-text-muted); }
.sx-legende li { display: inline-flex; align-items: center; gap: 7px; }
.sx-legende i { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.sx-legende__a { background: var(--color-primary-light); }
.sx-legende__b { background: #c9d6dc; }
.sx-legende__c { background: var(--sx-karte-offen); box-shadow: inset 0 0 0 1px var(--sx-rand-stark); }

/* --- Kantonsseite: Kopf, Angebotsblöcke, Text mit Inhaltsverzeichnis --- */
.canton-hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; }
.canton-hero > * { min-width: 0; }
.canton-hero__map .cantonmap { max-width: 100%; }
.canton-hero__map .cantonmap__hint { display: none; }
.kanton-titel { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; }
.kanton-titel h1 { margin: 0; }
.kanton-titel__wappen { flex: 0 0 auto; width: 52px; height: 62px; object-fit: contain;
    filter: drop-shadow(0 0 .6px rgba(22, 48, 59, .55)) drop-shadow(0 1px 2px rgba(22, 48, 59, .25)); }
.canton-banner img { height: clamp(150px, 22vw, 320px); object-position: center 55%; }
.address-types { gap: 22px; }
.address-type-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--sx-blau-rand);
    border-radius: var(--radius); box-shadow: var(--shadow); }
.address-type-card:hover { box-shadow: var(--shadow); }
.address-type-card__kopf { padding: 18px 22px; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand); }
.address-type-card__kopf h2 { margin: 0 0 4px; font-size: 1.3rem; }
.address-type-card__price { margin: 0; font-family: inherit; font-size: 1rem; line-height: 32px; color: var(--color-text-muted); } /* «Preis auf Anfrage» gleich hoch wie «ab CHF 150» */
.address-type-card__price strong { color: var(--color-primary-dark); font-size: 1.35rem; }
.address-type-card__inhalt { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 22px; }
.address-type-card__inhalt > p { margin: 0 0 10px; }
.address-type-card__avail { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 8px; padding: 0; background: none; border-radius: 0;
    color: var(--color-success); font-weight: 600; font-size: .95rem; }
.address-type-card__avail .icon { width: 18px; height: 18px; }
.address-type-card__avail--leer { color: var(--color-text-muted); font-weight: 500; } /* ohne Angebot: neutral an gleicher Stelle */
.address-type-card { container-type: inline-size; }
.address-type-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 12px; }
.address-type-card__actions .btn { flex: 1 1 0; min-height: 48px; white-space: nowrap; }
@container (max-width: 400px) {
    .address-type-card__actions .btn { flex-basis: 100%; }
}
.split { grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; }
.split__aside { display: flex; flex-direction: column; gap: 16px; align-self: stretch; }
.split__aside .infobox { margin: 0; }
.prose h2[id] { scroll-margin-top: 96px; }
.kanton-inhalt { position: sticky; top: 96px; display: flex; flex-direction: column; max-height: calc(100vh - 120px); max-height: calc(100dvh - 120px);
    overflow: hidden; padding: 20px 22px; background: #fff; border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.kanton-inhalt__titel { flex: none; margin: 0 0 8px; font-weight: 700; color: var(--color-primary-dark); }
.kanton-inhalt ol { flex: 0 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; list-style: none;
    margin: 0 -8px; padding: 0 8px 8px; border-bottom: 1px solid var(--sx-rand); }
.kanton-inhalt ol a { display: block; margin: 0 -8px; padding: 5px 8px; border-radius: 8px; color: var(--color-text-muted); font-size: .9rem; line-height: 1.35; text-decoration: none; }
.kanton-inhalt ol a:hover { background: var(--sx-grund); color: var(--color-primary-dark); }
.kanton-inhalt__knopf { flex: none; width: 100%; margin-top: 14px; }
.kanton-inhalt-mobil { display: none; }
.kanton-vorteile { margin-top: 48px; }
.kanton-vorteile .infobox { margin: 0; }
.kanton-vorteile .check-list { margin-bottom: 0; }
.kantonstext p strong { font-weight: 500; }
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* --- Unterseiten c/o und ohne c/o --- */
.angebote .section__title, .angebote .section__sub { text-align: left; margin-inline: 0; }
.angebote .section__sub { max-width: 60ch; margin-bottom: 26px; }
.offer-list { grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); gap: 22px; align-items: stretch; }
.offer-list:has(> .offer-card:only-child) { grid-template-columns: minmax(0, 760px); } /* eine Karte: nicht über 1140 px */
.offer-list:has(> .offer-card:nth-child(2):last-child) { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); }
@supports (grid-template-rows: subgrid) {
    .offer-list:not(:has(.offer-card__bild)) { row-gap: 0; }
    .offer-list:not(:has(.offer-card__bild)) > .offer-card { display: grid; grid-row: span 2; grid-template-rows: subgrid; margin-bottom: 22px; }
}
.offer-card, .section--alt .offer-card { padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--sx-blau-rand); border-radius: var(--radius);
    box-shadow: var(--shadow); }
.offer-card__bild { margin: 0; border-radius: 0; }
.offer-card__head { margin: 0; padding: 18px 22px; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand); }
.offer-card__title { margin: 0 0 4px; font-size: 1.2rem; line-height: 1.3; color: var(--color-primary-dark); }
.offer-card__from { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--color-text-muted); }
.offer-card__from strong { font-size: 1.35rem; color: var(--color-primary-dark); }
.offer-card__inhalt { display: flex; flex-direction: column; flex: 1 1 auto; padding: 18px 22px 22px; }
.offer-card__inhalt :is(p, li) { max-width: 60ch; } /* Zeilenlänge höchstens rund 85 Zeichen */
.offer-card .icon--inline { color: var(--color-primary-light); }
.offer-card__highlight { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 10px; font-weight: 600; line-height: 1.45; color: var(--color-primary-dark); }
.offer-card__highlight .icon--inline { flex: none; margin-top: 2px; color: var(--color-accent); }
.offer-card__provider { display: flex; align-items: flex-start; gap: 6px; margin: 0; line-height: 1.45; }
.offer-card__addr { align-items: flex-start; gap: 6px; margin: 4px 0 0; line-height: 1.45; }
:is(.offer-card__provider, .offer-card__addr) .icon--inline { flex: none; margin-top: 1px; }
.offer-card__desc { margin: 14px 0 0; line-height: 1.6; }
.offer-card h4 { margin: 20px 0 8px; font-size: 1rem; color: var(--color-primary-dark); }
.offer-card__leist .check-list li { margin-bottom: 6px; line-height: 1.5; }
:is(.offer-card__leist, .onrequest__leist) .check-list li::before { content: none; } /* leeres ::before rückte den Haken um den Abstand ein */
.offer-card__leist .check-list .icon { flex: none; margin-top: 3px; }
.offer-card__beson li { padding-left: 1.1rem; margin-bottom: 6px; line-height: 1.5; }
.offer-card__beson li::before { color: var(--color-primary-light); }
.post-opts li { align-items: flex-start; flex-wrap: wrap; gap: 4px 6px; line-height: 1.45; }
.post-opts__fee { color: var(--color-primary-dark); }
.offer-card__terms { margin-top: auto; padding-top: 4px; }
.term-grid { display: block; margin: 0 0 6px; border-top: 1px solid var(--sx-rand); }
.term-chip { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 12px; min-width: 0; padding: 10px 0;
    border: 0; border-bottom: 1px solid var(--sx-rand); border-radius: 0; box-shadow: none; color: var(--color-text); text-decoration: none; }
.term-chip__label { font-size: .95rem; font-weight: 600; color: var(--color-primary-dark); }
.term-chip__price { font-size: 1.15rem; color: var(--color-primary-dark); white-space: nowrap; }
.term-chip__total { grid-column: 1 / -1; font-size: .85rem; }
.term-chip__badge { position: static; display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 6px; background: var(--color-success-bg, #e7f4ec);
    color: var(--color-success); font-size: .8rem; vertical-align: 1px; }
.term-chip--link { margin: 0 -10px; padding-inline: 10px; grid-template-columns: minmax(0, 1fr) auto 18px; border-radius: 8px; transition: background-color .15s; }
.term-chip--link::after { content: ""; grid-column: 3; grid-row: 1; align-self: center; width: 18px; height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.term-chip--link:hover { background: var(--sx-blau-feld); border-color: var(--sx-rand); box-shadow: none; }
.term-chip:not(.term-chip--link):hover { border-color: var(--sx-rand); box-shadow: none; }
.offer-card__cta { align-self: stretch; margin-top: 16px; }
@media (min-width: 961px) and (max-width: 1100px) {
    .offer-list:has(> .offer-card:nth-child(3)) :is(.offer-card__head, .offer-card__inhalt) { padding-left: 16px; padding-right: 16px; }
    .offer-list:has(> .offer-card:nth-child(3)) .offer-card__cta { padding-inline: 10px; font-size: .95rem; }
}
@media (max-width: 362px) {
    .offer-card__cta { padding-inline: 10px; font-size: .95rem; } /* Karte unter 330 px (320: 288 px), Knopf einzeilig */
}
.onrequest { display: block; max-width: 760px; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--sx-blau-rand); border-radius: var(--radius);
    box-shadow: var(--shadow); }
.onrequest--leist { max-width: none; }
.onrequest__kopf { padding: 18px 22px; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand); }
.onrequest__kopf h2 { margin: 0; font-size: 1.3rem; line-height: 1.3; }
.onrequest__inhalt { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 18px 22px 24px; }
.onrequest--leist .onrequest__inhalt { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.onrequest__main p { max-width: 60ch; margin: 0 0 18px; line-height: 1.6; }
.onrequest__main > :last-child { margin-bottom: 0; } /* ohne Knopf endet der Block mit dem Text */
.adresstyp-inhalt .onrequest { margin-bottom: 48px; }
.adresstyp-leiste__knopf { width: 100%; }
/* Fragen an der Textkante (gleiche Spalte wie der Text) statt im schmalen, mittigen Container */
.adresstyp-faq .faq { max-width: 760px; } /* so breit wie der Block «Preis auf Anfrage» (ab 1600 px ist die Spalte breiter) */
.adresstyp-faq .faq h2 { text-align: left; }
.prose > .kanton-inhalt-mobil:first-child + h2 { margin-top: 0; padding-top: 0; border-top: 0; }

/* --- Kontakt: Formular als Block, daneben der Ansprechpartner --- */
.kontakt__formular { padding: 30px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.kontakt__titel { margin: 0 0 18px; font-size: 1.35rem; }
.kontakt .form { max-width: none; }
.kontakt .form input, .kontakt .form textarea { background: #fff; }
.kontakt-person { padding: 22px; background: #fff; border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.kontakt-person__kopf { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.kontakt-person__kopf img { width: 72px; height: 90px; object-fit: cover; border-radius: 12px; }
.kontakt-person__kopf b { display: block; font-size: 1.15rem; color: var(--color-primary-dark); }
.kontakt-person__kopf span { color: var(--color-text-muted); }
.kontakt-person__knoepfe { display: grid; gap: 10px; margin-bottom: 10px; }
.kontakt-person__knoepfe .icon { width: 18px; height: 18px; }
.kontakt-person p { margin: 0; }
.split__aside .infobox h2 { font-size: 1.1rem; margin: 0 0 10px; }

/* --- Steuervergleich --- */
.steuerkarte { --steuer-1: #d3e0e6; --steuer-2: #a1bac6; --steuer-3: #668a9b; --steuer-4: #2b4e5f; }
.steuerkarte .cantonmap__avail.stufe-1 .cantonmap__canton--avail { fill: var(--steuer-1); }
.steuerkarte .cantonmap__avail.stufe-2 .cantonmap__canton--avail { fill: var(--steuer-2); }
.steuerkarte .cantonmap__avail.stufe-3 .cantonmap__canton--avail { fill: var(--steuer-3); }
.steuerkarte .cantonmap__avail.stufe-4 .cantonmap__canton--avail { fill: var(--steuer-4); }
.steuerkarte .cantonmap__avail.stufe-1:not(.cantonmap__aussen) .cantonmap__abbr { fill: var(--color-primary-dark); stroke: var(--steuer-1); }
.steuerkarte .cantonmap__avail.stufe-2:not(.cantonmap__aussen) .cantonmap__abbr { fill: var(--color-primary-dark); stroke: var(--steuer-2); }
.steuerkarte .cantonmap__avail.stufe-3:not(.cantonmap__aussen) .cantonmap__abbr { fill: #fff; stroke: var(--steuer-3); }
.steuerkarte .cantonmap__avail.stufe-4:not(.cantonmap__aussen) .cantonmap__abbr { fill: #fff; stroke: var(--steuer-4); }
.steuerkarte .cantonmap__avail:is(:hover, :focus-visible, .ist-hover) .cantonmap__canton--avail { fill: var(--color-accent); }
.steuerkarte .cantonmap__avail:is(:hover, :focus-visible, .ist-hover):not(.cantonmap__aussen) .cantonmap__abbr { fill: #fff; stroke: var(--color-accent); }
.steuerkarte .cantonmap__avail.cantonmap__aussen:is(:hover, .ist-hover) .cantonmap__abbr.cantonmap__abbr--aussen { fill: var(--color-accent); }
.steuerkarte__legende i { box-shadow: inset 0 0 0 1px rgba(22, 48, 59, .08); }
.steuerkarte__stufe-1 { background: var(--steuer-1); }
.steuerkarte__stufe-2 { background: var(--steuer-2); }
.steuerkarte__stufe-3 { background: var(--steuer-3); }
.steuerkarte__stufe-4 { background: var(--steuer-4); }
.steuerkarte__anzeige { min-height: 1.6em; margin: 10px 0 0; text-align: center; font-size: .95rem; color: var(--color-text-muted); }
.steuerkarte__anzeige strong { color: var(--color-primary-dark); white-space: nowrap; }
.steuerkarte__anzeige.ist-kanton { color: var(--color-text); }

/* Hinweis zum Sitz: weisser Block mit Symbol-Kachel, so breit wie die Tabelle darunter */
.steuer-hinweis { display: flex; align-items: flex-start; gap: 18px; margin-top: 26px; padding: 22px 24px; background: var(--sx-block);
    border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.steuer-hinweis__symbol { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--sx-grund);
    color: var(--color-accent); }
.steuer-hinweis__symbol .icon { width: 26px; height: 26px; }
.steuer-hinweis h3 { margin: 2px 0 6px; font-size: 1.12rem; line-height: 1.35; }
.steuer-hinweis p { max-width: 60ch; margin: 0; line-height: 1.6; color: var(--color-text); }

.steuer-tabelle__rahmen { margin-top: 24px; }
.steuer-tabelle th.steuer-tabelle__rang, .steuer-tabelle td.steuer-tabelle__rang { width: 4.5rem; padding-left: 20px; }
.steuer-tabelle td.steuer-tabelle__rang { color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.steuer-tabelle td.steuer-tabelle__kanton img { max-width: none; }
.steuer-tabelle td.steuer-tabelle__kanton a { min-width: 0; color: var(--color-primary-dark); font-weight: 600; text-decoration: none; }
.steuer-tabelle td.steuer-tabelle__kanton a:hover .steuer-tabelle__name { text-decoration: underline; text-underline-offset: 3px; }
.steuer-tabelle__ohne-link { font-weight: 600; color: var(--color-primary-dark); }
.steuer-tabelle__kuerzel { margin-left: 4px; font-size: .8rem; font-weight: 500; color: var(--color-text-muted); }
.steuer-tabelle td.steuer-tabelle__satz { white-space: nowrap; }
.steuer-tabelle__zahl { display: inline-block; min-width: 4.8em; font-weight: 700; color: var(--color-primary-dark); font-variant-numeric: tabular-nums; }
.steuer-tabelle__balken { display: inline-block; width: clamp(90px, 13vw, 210px); height: 8px; margin-left: 10px; vertical-align: middle;
    border-radius: 4px; background: var(--sx-karte-offen); overflow: hidden; }
.steuer-tabelle__balken > span { display: block; height: 100%; border-radius: 4px; background: var(--color-primary-light); }
.steuer-tabelle td.steuer-tabelle__notiz { min-width: 15rem; white-space: normal; font-size: .9rem; line-height: 1.45; color: var(--color-text-muted); }

.rechner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); max-width: 980px; margin-inline: auto; background: #fff;
    border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.rechner__felder { display: grid; align-content: start; gap: 18px; padding: 28px; border-right: 1px solid var(--sx-rand); }
.rechner__feld { display: flex; flex-direction: column; gap: 6px; font-weight: 600; color: var(--color-primary-dark); }
.rechner__beschriftung { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.rechner__einheit { flex: none; font-size: .88rem; font-weight: 400; color: var(--color-text-muted); }
.rechner__feld input { width: 100%; min-height: 48px; padding: 10px 14px; border: 2px solid var(--sx-feld-rand); background: #fff;
    font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--color-text); }
.rechner__ergebnis { display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 12px 28px; }
.rechner__zeile { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--sx-rand); }
.rechner__zeile:last-child { border-bottom: 0; }
.rechner__zeile dt { font-weight: 600; color: var(--color-primary-dark); }
.rechner__zeile dd { margin: 0; text-align: right; }
.rechner__betrag { display: block; font-size: 1.35rem; font-weight: 700; line-height: 1.25; color: var(--color-primary-dark); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rechner__spart { display: block; margin-top: 2px; font-size: .9rem; font-weight: 600; color: var(--color-success); white-space: nowrap; }
.rechner__spart:empty { display: none; }
.rechner__zeile--buero dt, .rechner__zeile--buero .rechner__betrag { color: var(--color-text-muted); }
/* Hinweis unter dem Block: linksbündig mit ihm, Zeile höchstens rund 85 Zeichen */
.rechner__hinweis { max-width: 60ch; margin: 16px 0 0 max(0px, calc((100% - 980px) / 2)); }
.rechner__hinweis a { color: var(--color-primary); text-decoration: underline; text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }

/* --- Gemeinsame Korrekturen für alle Seiten (Prüfung 13.10.2026) --- */
.prose p, .prose li, .prose blockquote, .faq__a p, .split__main > p, .split__main > .check-list > li { max-width: 60ch; }
.table-scroll ~ p.small, .table-wrap ~ p.small, .ratgeber-card p { max-width: 60ch; } /* Kachel allein in einer Reihe: volle Breite */
.cantonmap__hint { max-width: 60ch; margin-inline: auto; }
.byline { max-width: 60ch; text-wrap: balance; } /* Autor und Daten: zwei ruhige Zeilen statt 93 Zeichen */
.byline span { white-space: nowrap; } /* Umbruch nur bei «·», nie in «Veröffentlicht am …» */
/* Titel ohne einzelnes Wort auf der letzten Zeile («… im Kanton / Zug») */
h1, h2, .section__title { text-wrap: balance; }
.prose a:not([class]), .faq__a a:not([class]), .infobox a:not([class]) {
    text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }
.prose a:not([class]):hover, .faq__a a:not([class]):hover, .infobox a:not([class]):hover { text-decoration-color: currentColor; }
.nav a { white-space: nowrap; }
/* Knopf im Infokasten: Abstand zum Text, volle Breite wie im Kontaktblock */
.infobox > .btn { width: 100%; margin-top: 14px; padding-inline: 12px; font-size: .95rem; }
.cta-band__inner { flex-wrap: nowrap; }
.cta-band__inner > div { flex: 1 1 auto; min-width: 0; max-width: 40rem; }
.cta-band__inner > .btn { flex: 0 0 auto; }
/* Fusszeile: Copyright und Rechtliches auf einer Linie, Trennlinie so breit wie der Text darüber */
.site-footer__bar { position: relative; border-top: 0; }
.site-footer__bar::before { content: ""; position: absolute; top: 0; left: var(--space-4); right: var(--space-4); border-top: 1px solid rgba(255, 255, 255, .12); }
.site-footer__bar p { margin: 0; }

/* --- Anfrage --- */
.configurator { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; }
.configurator__main { gap: 20px; min-width: 0; }
.configurator .cstep { min-width: 0; padding: 22px 26px 26px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); }
/* Legende als Überschrift im Block statt auf der Rahmenlinie (float löst sie vom Rahmen) */
.configurator .cstep > legend { float: left; width: 100%; display: flex; align-items: flex-start; gap: 12px; margin: 0 0 18px; padding: 0;
    font-size: 1.15rem; line-height: 1.35; font-weight: 700; color: var(--color-primary-dark); }
.configurator .cstep__num { flex: 0 0 auto; width: 30px; height: 30px; margin-top: -3px; background: var(--color-primary); font-size: .95rem; font-weight: 700; }
.cstep__ort { white-space: nowrap; } /* «Wangen (SZ)» bricht nicht auseinander */
.configurator .cstep > :not(legend) { clear: both; margin: 16px 0 0; }
.configurator .cstep > :first-child:not(legend) { margin-top: 0; }
.configurator .cstep > .field-error { display: block; }
.configurator .field-grid { gap: 16px; }
.configurator .field { gap: 6px; color: var(--color-primary-dark); }
.configurator .field select, .configurator .field input, .configurator .field textarea { font-weight: 400; }
.configurator .field select, .configurator .field input { min-height: 50px; } /* Auswahl und Textfeld gleich hoch (vorher 43 und 50 px) */
.configurator .typ-choice:not(:has(.typ-choice__item:not([hidden]))) { display: none; } /* ohne Kanton: nur der Hinweis */
.configurator .cstep__hint, .configurator .cstep > .muted, .onrequest-note { max-width: 62ch; line-height: 1.55; } /* höchstens rund 78 Zeichen */
.configurator .cstep__hint { font-size: .92rem; color: var(--color-text-muted); text-wrap: pretty; } /* kein «(SZ).» allein auf der letzten Zeile */
.configurator .cstep--note { background: var(--sx-blau-feld); border-color: var(--sx-blau-rand); } /* «Preis auf Anfrage», vorher gestrichelt */
.configurator .cstep--note .onrequest-note { color: var(--color-text); }
.configurator a:not(.btn) { color: var(--color-primary); text-decoration: underline; text-decoration-thickness: 1px;
    text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }
.configurator a:not(.btn):hover { text-decoration-color: currentColor; }
.configurator .cstep__hint > a, .angebot-details__link > a, .configurator .checkbox a { display: inline-block; padding-block: 12px; margin-block: -12px; }
.configurator .checkbox a { padding-inline: 5px; margin-inline: -5px; } /* «AGB» sonst nur 35 px breit */

.canton-pick, .typ-choice__item, .offer-pick__item, .package-choice__item { background: #fff; border: 1px solid var(--sx-rand); box-shadow: none;
    transition: border-color .15s, box-shadow .15s, background-color .15s; }
.canton-pick:hover, .typ-choice__item:hover, .offer-pick__item:hover, .package-choice__item:hover { border-color: var(--sx-rand-stark); box-shadow: var(--shadow-sm); }
.canton-pick::before, .typ-choice__item::before, .offer-pick__item::before, .package-choice__item::before {
    content: ""; position: absolute; inset: -1px; border: 2px solid var(--color-primary); border-radius: inherit; opacity: 0; pointer-events: none; }
.canton-pick::after, .typ-choice__item::after, .offer-pick__item::after, .package-choice__item::after {
    content: ""; position: absolute; top: -8px; right: -8px; z-index: 1; width: 22px; height: 22px; border-radius: 50%; pointer-events: none;
    background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4.2 4.2L18.5 7.8'/%3E%3C/svg%3E") center / 14px no-repeat;
    box-shadow: 0 0 0 2px #fff; opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; }
.canton-pick:has(input:checked), .typ-choice__item:has(input:checked), .offer-pick__item:has(input:checked), .package-choice__item:has(input:checked) {
    border-color: var(--color-primary); background: var(--sx-blau-feld); box-shadow: none; }
.canton-pick:has(input:checked)::before, .typ-choice__item:has(input:checked)::before, .offer-pick__item:has(input:checked)::before,
.package-choice__item:has(input:checked)::before, .canton-pick:has(input:checked)::after, .typ-choice__item:has(input:checked)::after,
.offer-pick__item:has(input:checked)::after, .package-choice__item:has(input:checked)::after { opacity: 1; transform: none; }
.canton-pick:has(input:focus-visible), .typ-choice__item:has(input:focus-visible), .offer-pick__item:has(input:focus-visible),
.package-choice__item:has(input:focus-visible), .canton-picker__more:focus-visible { outline: 3px solid rgba(32, 62, 76, .35); outline-offset: 3px; }

.canton-picker { grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 10px; } /* «Angebot mit Preis» auf einer Zeile */
.canton-pick { flex-direction: row; align-items: center; gap: 10px; min-height: 58px; padding: 9px 12px; text-align: left; border-radius: var(--radius-sm); }
.canton-pick__wappen { flex: 0 0 auto; width: 24px; height: 29px; filter: drop-shadow(0 1px 1.5px rgba(22, 48, 59, .28)); }
.canton-pick__abbr { flex: 0 0 auto; width: 28px; height: 28px; font-size: .78rem; }
.canton-pick__text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.canton-pick__name { font-weight: 600; font-size: .95rem; line-height: 1.25; color: var(--color-primary-dark); hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: break-word; }
.canton-pick__info { font-size: .8rem; line-height: 1.3; color: var(--color-text-muted); white-space: nowrap; }
.canton-pick__info--angebot { font-weight: 500; color: var(--color-primary); }
.canton-pick--extra:has(input:checked) { display: flex; } /* gewählter Kanton bleibt beim Zuklappen sichtbar */
.canton-picker__more { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 58px; margin: 0; padding: 9px 12px;
    border: 1px solid var(--color-primary); border-radius: var(--radius-sm); background: transparent; font: inherit; font-size: .92rem; font-weight: 600;
    line-height: 1.25; color: var(--color-primary); text-align: center; cursor: pointer; }
.canton-picker__more:hover { background: var(--sx-grund); }
.canton-picker__more::before { content: ""; flex: 0 0 auto; width: 16px; height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; }
.canton-picker__more[aria-expanded="true"]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }

/* Adresstyp und Wunschort */
.typ-choice { gap: 10px; }
.typ-choice__item { gap: 4px; padding: 16px 18px; border-radius: var(--radius-sm); }
.typ-choice__title { color: var(--color-primary-dark); line-height: 1.35; }
.typ-choice__desc { font-size: .9rem; line-height: 1.5; }
.typ-choice__price { margin-top: auto; padding-top: 6px; font-size: .95rem; color: var(--color-primary-dark); }

.offer-pick { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.offer-pick__item { gap: 0; padding: 0; border-radius: var(--radius); }
.offer-pick__kopf { display: flex; flex-direction: column; gap: 3px; padding: 14px 18px 12px; background: var(--sx-blau-kopf);
    border-bottom: 1px solid var(--sx-blau-rand); border-radius: calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.offer-pick__title { margin: 0; font-size: 1rem; line-height: 1.35; color: var(--color-primary-dark); }
.offer-pick__from { margin: 2px 0 0; font-size: .92rem; font-weight: 400; line-height: 1.4; color: var(--color-text-muted); }
.offer-pick__from strong { font-size: 1.12rem; font-weight: 700; color: var(--color-primary-dark); }
.offer-pick__mwst { white-space: nowrap; } /* «exkl. MWST» bricht nur als Ganzes um */
.offer-pick__inhalt { display: flex; flex-direction: column; gap: 4px; padding: 12px 18px 16px; }
.offer-pick__highlight { font-size: .92rem; font-weight: 600; color: var(--color-primary); }
.offer-pick__provider, .offer-pick__req { margin: 0; font-size: .85rem; line-height: 1.45; color: var(--color-text-muted); }
.offer-pick__item--suche { border-style: solid; } /* «Domizilgeber in <Ort> suchen»: Kopf hellgrau statt blau, kein aufgeschaltetes Angebot */
.offer-pick__item--suche .offer-pick__kopf { background: var(--sx-grund); border-bottom-color: var(--sx-rand); }

/* Laufzeiten: Kopf mit der Laufzeit, darunter Preis pro Monat, Gesamt und MWST */
.package-choice { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.package-choice__item { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; padding: 0 0 14px; border-radius: var(--radius-sm); }
.package-choice__term { margin-bottom: 10px; padding: 10px 16px; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand);
    border-radius: calc(var(--radius-sm) - 1px) calc(var(--radius-sm) - 1px) 0 0; line-height: 1.35; color: var(--color-primary-dark); }
.package-choice__item:has(.package-choice__badge) .package-choice__term { padding-right: 70px; }
.package-choice__price { padding: 0 16px; font-size: 1.3rem; font-weight: 700; line-height: 1.25; color: var(--color-primary-dark); }
.package-choice__total, .package-choice__vat { padding: 0 16px; font-size: .88rem; color: var(--color-text-muted); }
.package-choice__badge { position: absolute; top: 9px; right: 14px; margin: 0; padding: 2px 8px; border-radius: 6px; box-shadow: none; letter-spacing: 0; }

.configurator .cstep > .checkbox { display: flex; align-items: flex-start; gap: 12px; margin-top: 20px; font-weight: 400; line-height: 1.5; color: var(--color-text); cursor: pointer; }
.configurator .checkbox input { margin: 2px 0 0; }
.configurator .cstep > .btn[type="submit"] { width: 100%; margin-top: 22px; }
.configurator .cstep > .btn[type="submit"] + .muted { margin-top: 10px; }

/* Zusammenfassung rechts: weiss und ruhig wie der Ansprechpartner der Kontaktseite */
.configurator__summary { top: 96px; padding: 22px 24px; background: #fff; border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.configurator__summary h2 { margin: 0 0 12px; font-size: 1.15rem; }
.summary-list__row { padding: 10px 0; border-bottom-color: var(--sx-rand); }
.summary-list dt { font-size: .85rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--color-text-muted); }
.summary-price { padding: 14px 16px; background: var(--sx-blau-kopf); border: 1px solid var(--sx-blau-rand); border-radius: var(--radius-sm); }
.summary-price__main strong { color: var(--color-primary-dark); }
.summary-highlight { font-weight: 600; color: var(--color-primary); }
.configurator__summary > .muted.small { margin: 0; line-height: 1.5; }

/* Angebotsseite: was das Angebot enthält, als Block mit blauem Kopf vor Schritt 1 */
.angebot-details { background: #fff; border: 1px solid var(--sx-blau-rand); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.angebot-details__kopf { margin: 0; padding: 16px 24px; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand);
    font-size: 1.12rem; font-weight: 700; line-height: 1.35; color: var(--color-primary-dark); }
.angebot-details__inhalt { padding: 18px 24px 22px; }
.angebot-details__inhalt > * { max-width: 62ch; margin: 0 0 12px; }
.angebot-details__inhalt > :last-child { margin-bottom: 0; }
.angebot-details__inhalt p { line-height: 1.6; }
.angebot-details__titel { margin: 20px 0 8px; font-size: 1.02rem; }
.angebot-details .check-list li { margin-bottom: 6px; line-height: 1.5; }
.angebot-details .check-list .icon { margin-top: 3px; }
.angebot-details__liste { padding-left: 1.2em; line-height: 1.55; }
.angebot-details__liste li { margin: 0 0 6px; }
.angebot-details__liste li::marker { color: var(--color-primary-light); }
.angebot-details__link { margin-top: 16px; }

.alert--success.alert--lg { padding: 32px 36px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); color: var(--color-text); text-align: left; }
.alert--success.alert--lg h2 { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; font-size: clamp(1.4rem, 2.6vw, 1.8rem); color: var(--color-primary-dark); }
.alert--success.alert--lg h2::before { content: ""; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%;
    background: var(--color-success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4.2 4.2L18.5 7.8'/%3E%3C/svg%3E") center / 22px no-repeat; }
.alert--success.alert--lg p { max-width: 62ch; line-height: 1.6; }
.alert--success.alert--lg p.muted:not(.small) { margin: 22px 0 10px; font-weight: 600; color: var(--color-primary-dark); } /* «So geht es weiter:» */
.alert--success.alert--lg a:not(.btn) { color: var(--color-primary); text-decoration: underline; text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }
.next-steps { counter-reset: schritt; list-style: none; max-width: 62ch; margin: 0 0 22px; padding: 0; gap: 12px; }
.next-steps li { counter-increment: schritt; position: relative; min-height: 28px; padding-left: 42px; line-height: 1.55; }
.next-steps li::before { content: counter(schritt); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 28px; height: 28px;
    border-radius: 50%; background: var(--color-primary); color: #fff; font-size: .9rem; font-weight: 700; }
.success-actions { justify-content: flex-start; }

/* --- Firmenseiten und GwG-Seiten --- */
.eyebrow { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; color: var(--color-text-muted); }
.seitenkopf .eyebrow { display: none; }
.abschnitt-titel { margin: 0 0 16px; font-size: clamp(1.55rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -.01em; }
* + .abschnitt-titel { margin-top: 44px; }
.prose .check-list--haken { padding-left: 0; }
/* Kopfband: Text und Knöpfe unter der Einleitung (GwG-Check, GwG-Dossier) */
.seitenkopf .lead + p { margin-top: 14px; }
.seitenkopf .btn-row { margin: 24px 0 14px; gap: 12px; }
.seitenkopf .btn-row + p { margin-bottom: 0; }
.nowrap { white-space: nowrap; } /* UID und Handelsregisternummer im Impressum brechen nicht am Bindestrich */

.partner-modell { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-width: none; margin: 0 0 18px; }
.partner-modell li { margin: 0; padding: 18px 20px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm); line-height: 1.6; }
.partner-modell li:last-child { grid-column: 1 / -1; }
.partner-modell li > span { max-width: 41rem; } /* «Ihr Teil» über die ganze Breite: höchstens rund 82 Zeichen */
.partner-modell li > span > strong:first-child { display: block; margin-bottom: 2px; color: var(--color-primary-dark); }
.partner-links { list-style: none; display: grid; gap: 10px; max-width: none; margin: 0; padding: 0; }
.partner-links li { margin: 0; }
.partner-links a { display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 14px 16px; background: #fff; border: 1px solid var(--sx-rand);
    border-radius: var(--radius-sm); color: var(--color-primary-dark); font-weight: 600; line-height: 1.4; text-decoration: none;
    box-shadow: var(--shadow-sm); transition: border-color .2s, box-shadow .2s; }
.partner-links a::after { content: ""; flex: none; width: 18px; height: 18px; margin-left: auto;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d23137' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; } /* Pfeil rot wie «Weiterlesen» */
.partner-links a:hover { border-color: var(--sx-rand-stark); box-shadow: var(--shadow); text-decoration: none; }
.partner-intro .hero__actions { margin-bottom: 0; }
#anmelden-titel { scroll-margin-top: 120px; }

.service-card h2 { margin-top: 0; }
.service-card p { max-width: 60ch; }
.service-card .service-card__mehr { flex: none; margin: 12px 0 0; }
.service-card__mehr a { display: inline-block; color: var(--color-accent-dark); font-weight: 600; }
.service-card__mehr .icon { display: inline-block; width: 18px; height: 18px; margin-left: 4px; vertical-align: -4px; color: var(--color-accent); transition: transform .2s; }
.service-card__mehr a:hover .icon { transform: translateX(3px); }

.split__aside .about-photo { max-width: 340px; }
.autor-kontakt .icon { width: 18px; height: 18px; }
.ueber-wer { display: grid; grid-template-columns: minmax(0, 1fr) 340px; grid-template-areas: "text foto" "kontakt kontakt"; gap: 44px 56px; align-items: start; }
.ueber-wer > * { min-width: 0; }
.ueber-wer__text { grid-area: text; }
.ueber-wer__text > :last-child { margin-bottom: 0; }
.ueber-wer .about-photo { grid-area: foto; max-width: 340px; margin: 0; }
.ueber-kontakt { grid-area: kontakt; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "titel knopf" "adresse knopf";
    align-items: center; gap: 10px 40px; margin: 0; padding: 24px 28px; }
.ueber-kontakt h3 { grid-area: titel; margin: 0; }
.ueber-kontakt__adresse { grid-area: adresse; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; line-height: 1.75; }
.ueber-kontakt__adresse > span { min-width: 0; }
.ueber-kontakt__zeit { display: block; margin-top: 2px; line-height: 1.5; }
.infobox.ueber-kontakt > .btn { grid-area: knopf; width: auto; margin: 0; padding-inline: 22px; font-size: 1rem; }

/* 404: Knöpfe im Kopfband */
.fehlerseite .hero__actions { margin-bottom: 0; }

/* GwG-Check */
#anfrage .form { margin-top: 16px; } /* erstes Feld klebte an der Einleitung */
.prose .steps--drei { display: block; list-style: decimal; margin: 0 0 1.4em; padding-left: 1.4em; }
.prose .steps--drei li { margin: 0 0 .7em; padding-left: .2em; }

.os-karte, .dossier-start__teil, .dossier-kasten { background: var(--sx-block); border-color: var(--sx-rand); box-shadow: var(--shadow-sm); }
.os-karte__bild { box-sizing: content-box; width: 30px; height: 30px; padding: 11px; border-radius: 12px; background: var(--sx-grund); box-shadow: none; }
.os-karte h3 { font-size: 1.2rem; }
.dossier-start .muted.small, .dossier-start > p { max-width: 44rem; }
.prose .dossier-kasten h2 { margin: 0 0 8px; padding-top: 0; border-top: 0; font-size: 1.2rem; }
.dossier-bild__gross { position: relative; }
.dossier-bild__gross::after { content: ""; position: absolute; right: 10px; bottom: 10px; width: 38px; height: 38px; border-radius: 10px;
    box-shadow: var(--shadow-sm); pointer-events: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center / 20px no-repeat; }

.support-hinweise { margin-bottom: 24px; }
.support-hinweise__titel { margin: 0; font-size: 1.05rem; line-height: 1.4; color: inherit; }
.support-hinweise .faq__a ul { margin: 0; padding-left: 1.2em; }
.support-hinweise .faq__a li { margin-bottom: 6px; }
.support-art .radio { border-color: var(--sx-feld-rand); background: #fff; }
.support-art .radio:has(input:checked) { border-color: var(--color-primary); background: var(--sx-blau-feld); }
.support-form { max-width: none; padding: 30px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.support-form :is(input, textarea, select) { background: #fff; }
/* Warnung «Bevor Sie schreiben» als weisser Block wie die übrigen (base.css: getönt) */
.support-warnung { background: var(--sx-block); border-color: var(--sx-rand); box-shadow: var(--shadow-sm); }
.support-danke { padding: 32px 36px; background: var(--sx-block); border-color: var(--sx-rand); box-shadow: var(--shadow-sm); }
.support-danke h2 { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; font-size: clamp(1.4rem, 2.6vw, 1.8rem); line-height: 1.25;
    color: var(--color-primary-dark); }
.support-danke h2::before { content: ""; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%;
    background: var(--color-success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4.2 4.2L18.5 7.8'/%3E%3C/svg%3E") center / 22px no-repeat; }
.support-danke h3 { margin: 22px 0 10px; font-size: inherit; font-weight: 600; line-height: 1.4; } /* «So geht es weiter» wie in der Anfrage */
.support-danke p { max-width: 62ch; line-height: 1.6; }
.support-schritte { counter-reset: schritt; list-style: none; display: grid; gap: 12px; max-width: 62ch; margin: 0 0 22px; padding: 0; }
.support-schritte li { counter-increment: schritt; position: relative; min-height: 28px; margin: 0; padding-left: 42px; line-height: 1.55; }
.support-schritte li::before { content: counter(schritt); position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 28px; height: 28px;
    border-radius: 50%; background: var(--color-primary); color: #fff; font-size: .9rem; font-weight: 700; }
.support-danke .btn-row { gap: 12px; margin-bottom: 0; }

:is(.seitenkopf, .os-karte, .dossier-start, .support-inhalt, .partner-abschnitt) :is(p, dd) a:not([class]) {
    text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; }
/* Zeilenlänge höchstens 88 Zeichen (kleine graue Zeilen und Listen ohne eigene Grenze) */
.gwgc-kopf .container > p.muted.small:not(.lead), .dossier-start p.muted.small, .dossier-hero__text p.small { max-width: 36rem; } /* base.css: 44rem mit höherer Spezifität */
.support-warnung p, .support-faq :is(dt, dd), .support-hinweise .faq__a li { max-width: 40rem; }
.dossier-summen :is(p, li) { max-width: 36rem; } /* .875rem: rund 84 Zeichen */
.dossier-hero__text > p:not(.lead):not(.small), #dossier-bilder-titel + p.muted { max-width: 44rem; text-wrap: balance; }
.dossier-hero__text .lead { text-wrap: pretty; } /* «GwG).» stand bei 1440 px allein auf der letzten Zeile */
.gwgc-kopf .container > p:not(.lead) { text-wrap: pretty; } /* GwG-Check: «unten.» stand bei 1440 px allein auf der Zeile */

/* --- Responsiv (am Ende, CLAUDE.md 2f) --- */
@media (max-width: 1100px) {
    .split { grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; }
}
@media (min-width: 761px) and (max-width: 1179px) {
    .canton-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* base.css: erst unter 1100; Preiszeile siehe oben */
}
@media (max-width: 980px) {
    /* base.css stapelt hier; die Spalten oben stehen später in der Datei, darum hier nochmals */
    .split, .canton-hero { grid-template-columns: minmax(0, 1fr); }
    .canton-hero__map { max-width: 560px; }
    .kanton-inhalt { display: none; }
    .kanton-inhalt-mobil { display: block; margin: 0 0 28px; padding: 0 16px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius-sm);
        box-shadow: var(--shadow-sm); }
    .kanton-inhalt-mobil summary { padding: 14px 0; min-height: 48px; font-weight: 600; color: var(--color-primary-dark); cursor: pointer; }
    .kanton-inhalt-mobil ol { margin: 0 0 14px; padding-left: 1.3em; }
    .kanton-inhalt-mobil li { margin: 0; }
    .kanton-inhalt-mobil a { display: block; padding: 7px 0; text-decoration: none; }
}
@media (max-width: 640px) {
    .cantonmap--gross .cantonmap__abbr { font-size: 36px; stroke-width: 6px; }
    .cantonmap--gross .cantonmap__abbr--klein { display: none; }
    .cantonmap__avail.cantonmap__aussen .cantonmap__abbr.cantonmap__abbr--aussen { font-size: 34px; stroke-width: 8px; }
}
@media (max-width: 400px) {
    .canton-chip { padding: 8px 10px; gap: 8px; font-size: .92rem; }
    .canton-chip img { width: 20px; height: 24px; }
    .cantonmap--gross .cantonmap__abbr { font-size: 40px; }
    .cantonmap__avail.cantonmap__aussen .cantonmap__abbr.cantonmap__abbr--aussen { font-size: 38px; }
}
@media (max-width: 760px) {
    .section { padding-block: 52px; }
    .section--tight { padding-block: 36px; }
    .seitenkopf { padding-bottom: 40px; }
    .canton-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .canton-chip { padding: 10px 12px; gap: 10px; }
    .canton-chip__vor { display: none; } /* «Weitere Kantone» steht darüber */
    .ratgeber-feature { padding: 22px; }
    .kanton-titel { gap: 12px; }
    .kanton-titel__wappen { width: 40px; height: 48px; }
    .address-type-card__actions .btn { flex-basis: 100%; }
    .kontakt__formular { padding: 20px 16px; }
}

/* --- Gemeinsame Korrekturen, responsiv (Prüfung 13.10.2026) --- */
@media (max-width: 980px) {
    .split__aside .infobox p, .split__aside .infobox li { max-width: 60ch; } /* gestapelt volle Breite */
}
@media (max-width: 620px) {
    .prose table { overflow-x: auto; }
    .prose th, .prose td { min-width: 8.5rem; font-size: .9rem; hyphenate-limit-chars: 12 5 5;
        -webkit-hyphenate-limit-before: 5; -webkit-hyphenate-limit-after: 5; }
    .prose tr > :first-child { position: sticky; left: 0; z-index: 1; background: #fff; }
    .prose tr > th:first-child { background: var(--sx-grund); }
    .prose table:not(.tabelle-stapeln) { display: table; width: 100%; overflow: hidden; }
    .prose table:not(.tabelle-stapeln) tr > :first-child { position: static; }
}
/* --- Kantonsvergleich /domiziladresse/ als Blöcke unter 1024 px (Lars 14.10.2026, iPhone: die Zeilen wirkten überfüllt).
   Je Kanton ein Block wie die Kantonsblöcke der Startseite: hellblaues Band mit Wappen, Name und Gewinnsteuer, darunter auf
   Weiss die beiden Adressarten untereinander (Bezeichnung links, Preis rechts). Der Namenslink ist per ::after über den
   ganzen Block gestreckt; <tr> ist hier grid statt table-row und damit auch in Safari Bezug für position: absolute.
   Ab 640 px zwei Blöcke nebeneinander, Band und Zeilen per subgrid auf gleicher Höhe. Bis 1023 px Blöcke, weil die
   Tabelle bei 768 px eng wurde (Name und Preis stiessen fast aneinander). Ab 1024 px die Tabelle (Regeln danach). --- */
@media (max-width: 1023px) {
    .kantonsvergleich .table-scroll { overflow: visible; border: 0; border-radius: 0; background: none; box-shadow: none; }
    .kantonsvergleich .compare-table--liste { display: block; overflow: visible; background: none; }
    .kantonsvergleich .compare-table--liste thead { display: none; }
    .kantonsvergleich .compare-table--liste tbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .kantonsvergleich .compare-table--liste tr { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start;
        background: #fff; border: 1px solid var(--sx-blau-rand); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden;
        transition: border-color .2s, box-shadow .2s; }
    .kantonsvergleich .compare-table--liste tbody tr:hover { background: #fff; border-color: var(--sx-rand-stark); box-shadow: var(--shadow); }
    .kantonsvergleich .compare-table--liste td { display: block; min-width: 0; padding: 0; border: 0; white-space: normal; line-height: 1.35; }
    /* Band: Wappen und Name links, Gewinnsteuer rechts (Bezeichnung klein darüber) */
    .kantonsvergleich .compare-table--liste .compare-table__canton,
    .kantonsvergleich .compare-table--liste .compare-table__steuer { grid-row: 1; background: var(--sx-blau-kopf); border-bottom: 1px solid var(--sx-blau-rand); }
    .kantonsvergleich .compare-table--liste .compare-table__canton { grid-column: 1; display: flex; align-items: center; gap: 12px; padding: 12px 8px 12px 16px;
        font-size: 1.08rem; }
    .kantonsvergleich .compare-table--liste .compare-table__canton img { width: 30px; height: 36px; margin: 0; flex: none;
        filter: drop-shadow(0 1px 2px rgba(22, 48, 59, .28)); } /* weisse Felder (Zug, Basel) gehen sonst im Blau unter */
    .kantonsvergleich .compare-table--liste .compare-table__steuer { grid-column: 2; display: flex; flex-direction: column; justify-content: center; align-items: flex-end;
        gap: 1px; padding: 10px 16px 10px 4px; text-align: right; font-weight: 600; color: var(--color-primary-dark); }
    .kantonsvergleich .compare-table--liste .compare-table__steuer::before { content: attr(data-label); font-size: .8rem; font-weight: 600; color: var(--color-text-muted); }
    /* Adressarten auf Weiss, durch eine Linie getrennt */
    .kantonsvergleich .compare-table--liste .compare-table__preis { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end;
        gap: 2px 14px; margin: 0 16px; padding: 12px 0; text-align: right; }
    /* Bezeichnung füllt links auf; bricht der Preis doch um, bleibt er rechtsbündig */
    .kantonsvergleich .compare-table--liste .compare-table__preis::before { content: attr(data-label); flex: 1 0 auto; font-weight: 500; color: var(--color-text); text-align: left; }
    .kantonsvergleich .compare-table--liste .compare-table__preis + .compare-table__preis { border-top: 1px solid var(--sx-blau-rand); }
    /* Ganzer Block als Link: Fokus als Rahmen um den Block */
    .kantonsvergleich .compare-table--liste .compare-table__link { display: inline; min-width: 0; margin: 0; padding: 0; }
    .kantonsvergleich .compare-table--liste .compare-table__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
    .kantonsvergleich .compare-table--liste .compare-table__link:focus-visible { outline: 0; }
    .kantonsvergleich .compare-table--liste .compare-table__link:focus-visible::after { outline: 3px solid var(--color-primary); outline-offset: -3px; }
    .kantonsvergleich .compare-table--liste tbody tr:hover .compare-table__pfeil { transform: translateX(2px); }
    /* Auswahl «Sortieren» wie bei den gestapelten Tabellen unter 768 px, hier bis 1023 px */
    .kantonsvergleich .tabelle-sortieren__auswahl { display: flex; flex-wrap: wrap; gap: 4px; margin: var(--space-4) 0 14px; }
    .kantonsvergleich .tabelle-sortieren__auswahl label { flex: 0 0 100%; font-size: .88rem; font-weight: 600; color: var(--color-text-muted); }
    .kantonsvergleich .tabelle-sortieren__auswahl select { flex: 0 1 100%; min-width: 0; min-height: 48px; padding: 8px 12px; border: 2px solid var(--sx-feld-rand);
        border-radius: var(--radius-sm); background-color: #fff; font-size: 1rem; color: var(--color-text); }
    .kantonsvergleich .section__title + .tabelle-sortieren__auswahl + .table-scroll { margin-top: 0; }
}
@media (min-width: 640px) and (max-width: 1023px) {
    .kantonsvergleich .compare-table--liste tbody { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .kantonsvergleich .compare-table--liste tr { grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; }
    .kantonsvergleich .tabelle-sortieren__auswahl select { flex-basis: 22rem; }
}
@media (max-width: 400px) {
    /* 320 px: «c/o-Adresse» und «ab CHF 150/Monat» auf einer Zeile, Name neben Wappen und Gewinnsteuer nicht abgeschnitten */
    .kantonsvergleich .compare-table--liste .compare-table__canton { gap: 10px; padding-left: 14px; }
    .kantonsvergleich .compare-table--liste .compare-table__steuer { padding-right: 14px; }
    .kantonsvergleich .compare-table--liste .compare-table__preis { gap: 2px 10px; margin: 0 14px; }
}
@media (max-width: 359px) {
    /* 320 px: «Ausserrhoden →» und «Schaffhausen →» passen sonst nicht neben die Gewinnsteuer */
    .kantonsvergleich .compare-table--liste .compare-table__canton { gap: 8px; font-size: 1rem; }
    .kantonsvergleich .compare-table--liste .compare-table__canton img { width: 26px; height: 31px; }
    .kantonsvergleich .compare-table--liste .compare-table__steuer::before { font-size: .75rem; }
    .kantonsvergleich .compare-table--liste .compare-table__pfeil { width: 15px; height: 15px; margin-left: 4px; }
    .kantonsvergleich .compare-table--liste .compare-table__preis { font-size: .95rem; }
}
@media (min-width: 1024px) {
    /* Tabelle: ganze Zeile anklickbar (tabelle-sortieren.js setzt .ist-zeilenlink), Pfeil beim Darüberfahren oder Fokus */
    .kantonsvergleich .compare-table--liste.ist-zeilenlink tbody tr { cursor: pointer; }
    .kantonsvergleich .compare-table--liste tbody tr:hover,
    .kantonsvergleich .compare-table--liste tbody tr:focus-within { background: var(--sx-blau-feld); }
    .kantonsvergleich .compare-table--liste tbody tr:hover .compare-table__link { text-decoration: underline; text-underline-offset: 3px; }
    .kantonsvergleich .compare-table--liste .compare-table__pfeil { opacity: 0; }
    .kantonsvergleich .compare-table--liste tbody tr:hover .compare-table__pfeil,
    .kantonsvergleich .compare-table--liste tbody tr:focus-within .compare-table__pfeil { opacity: 1; transform: translateX(2px); }
}
@media (min-width: 1024px) and (hover: none) {
    .kantonsvergleich .compare-table--liste .compare-table__pfeil { opacity: 1; transform: none; } /* Tablet quer: kein Darüberfahren */
}
@media (max-width: 767px) {
    .tabelle-sortieren__auswahl { display: flex; flex-wrap: wrap; gap: 4px; margin: var(--space-4) 0 12px; }
    .tabelle-sortieren__auswahl label { flex: 0 0 100%; font-size: .88rem; font-weight: 600; color: var(--color-text-muted); }
    .tabelle-sortieren__auswahl select { flex: 0 0 100%; min-width: 0; min-height: 48px; padding: 8px 12px; border: 2px solid var(--sx-feld-rand);
        border-radius: var(--radius-sm); background-color: #fff; font-size: 1rem; color: var(--color-text); }
    .section__title + .tabelle-sortieren__auswahl + .table-scroll { margin-top: 0; }
    /* Hinweis unter der Tabelle: Absätze untereinander neben dem Symbol */
    .tabellen-hinweis { grid-template-columns: auto minmax(0, 1fr); padding: 0 2px; }
    .tabellen-hinweis p + p { grid-column: 2; padding-left: 0; margin-top: 8px; }
}
@media (max-width: 560px) {
    .site-footer__bar::before { left: var(--space-3); right: var(--space-3); } /* .container hat hier 16 px Rand */
}
@media (prefers-reduced-motion: reduce) {
    /* Kein Hüpfen und Zoomen beim Darüberfahren, wie bei den Kacheln der Startseite */
    .canton-card, .ratgeber-card, .canton-card__banner img, .ratgeber-card__more .icon { transition: none; }
    .canton-card:hover, .ratgeber-card:hover, .canton-card:hover .canton-card__banner img,
    .ratgeber-card:hover .ratgeber-card__more .icon { transform: none; }
    .compare-table__pfeil, .kantonsvergleich .compare-table--liste tr { transition: none; }
    .kantonsvergleich .compare-table--liste tbody tr:hover .compare-table__pfeil,
    .kantonsvergleich .compare-table--liste tbody tr:focus-within .compare-table__pfeil { transform: none; }
}

/* --- Steuervergleich, responsiv (13.10.2026, Abschnitt «Steuervergleich» oben) --- */
@media (min-width: 768px) {
    .steuer-tabelle__rahmen { overflow: visible; overflow: clip; }
    .steuer-tabelle { overflow: visible; }
    .steuer-tabelle thead th { position: sticky; top: 68px; z-index: 2; }
    .steuer-tabelle td { padding-top: 12px; padding-bottom: 12px; } /* 26 Zeilen: etwas dichter als die Kantonstabelle */
}
@media (min-width: 768px) and (max-width: 1023px) {
    .steuer-tabelle { font-size: .95rem; }
    .steuer-tabelle th, .steuer-tabelle td { padding-left: 10px; padding-right: 10px; }
    .steuer-tabelle th.steuer-tabelle__rang, .steuer-tabelle td.steuer-tabelle__rang { width: 3.6rem; padding-left: 14px; }
    .steuer-tabelle__balken { width: 56px; }
    .steuer-tabelle td.steuer-tabelle__notiz { min-width: 10rem; }
}
@media (max-width: 767px) {
    .steuer-tabelle, .steuer-tabelle tbody { display: block; }
    .steuer-tabelle thead { display: none; }
    .steuer-tabelle tr { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr) auto; grid-template-areas: "rang kanton satz" ". notiz notiz";
        align-items: center; gap: 4px 10px; padding: 12px 14px; border-bottom: 1px solid var(--sx-rand); }
    .steuer-tabelle tbody tr:last-child { border-bottom: 0; }
    .steuer-tabelle td { display: block; min-width: 0; padding: 0; border: 0; white-space: normal; }
    .steuer-tabelle td.steuer-tabelle__rang { grid-area: rang; width: auto; padding: 0; font-size: .88rem; }
    .steuer-tabelle td.steuer-tabelle__kanton { grid-area: kanton; display: flex; align-items: center; gap: 10px; line-height: 1.3; }
    .steuer-tabelle td.steuer-tabelle__kanton img { flex: none; margin: 0; }
    .steuer-tabelle td.steuer-tabelle__kanton a { flex: 1 1 auto; } /* ganze Breite antippbar, 44 px hoch (padding oben) */
    .steuer-tabelle__kuerzel { display: none; } /* Wappen und Name genügen; sonst steht «BL» allein auf einer Zeile */
    .steuer-tabelle td.steuer-tabelle__satz { grid-area: satz; text-align: right; }
    .steuer-tabelle__zahl { min-width: 0; font-size: 1.05rem; }
    .steuer-tabelle__balken { display: block; width: 76px; height: 6px; margin: 5px 0 0 auto; }
    .steuer-tabelle td.steuer-tabelle__notiz { grid-area: notiz; min-width: 0; font-size: .88rem; }
    .steuer-tabelle td.steuer-tabelle__notiz:empty { display: none; }
    .steuer-tabelle__rahmen { margin-top: 0; } /* darüber steht das Auswahlfeld «Sortieren» */
}
@media (max-width: 900px) {
    .rechner { grid-template-columns: minmax(0, 1fr); }
    .rechner__felder { border-right: 0; border-bottom: 1px solid var(--sx-rand); }
    .rechner__hinweis { margin-left: 0; }
}
@media (max-width: 560px) {
    .rechner__felder { padding: 20px 16px; }
    .rechner__ergebnis { padding: 4px 16px; }
    .rechner__zeile { display: block; padding: 14px 0; } /* Beschriftung oben, Betrag darunter */
    .rechner__zeile dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin-top: 2px; text-align: left; }
    .rechner__spart { margin-top: 0; }
    .rechner__beschriftung { display: block; }
    .rechner__einheit { display: block; } /* «CHF/Monat» als Zeile unter jeder Beschriftung, bei allen drei Feldern gleich */
}
@media (max-width: 760px) {
    /* Hinweis: Symbol neben dem Titel, der Text darunter in voller Breite (sonst 10 schmale Zeilen) */
    .steuer-hinweis { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px 14px; padding: 18px 16px; }
    .steuer-hinweis > div { display: contents; }
    .steuer-hinweis h3 { margin: 0; }
    .steuer-hinweis p { grid-column: 1 / -1; }
    .steuer-hinweis__symbol { width: 42px; height: 42px; }
    .steuer-hinweis__symbol .icon { width: 22px; height: 22px; }
}
@media (max-width: 400px) {
    .steuer-tabelle__name { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: break-word; }
}

/* --- Anfrage, responsiv (13.10.2026, Abschnitt «Anfrage» oben) --- */
@media (max-width: 1100px) {
    .configurator { grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; }
}
@media (max-width: 980px) {
    .configurator { display: flex; flex-direction: column; align-items: stretch; gap: 20px; } /* base.css: start (Raster) */
    .configurator__main { display: contents; }
    .configurator__main > fieldset.cstep:last-of-type { order: 2; }
    .configurator__summary { order: 1; position: static; }
    .configurator[data-configurator]:not(.hat-auswahl) .configurator__summary { display: none; }
}
@media (max-width: 560px) {
    .configurator .cstep { padding: 18px 16px 20px; }
    .configurator .cstep > legend { gap: 10px; margin-bottom: 16px; font-size: 1.06rem; }
    .configurator .cstep__num { width: 28px; height: 28px; margin-top: -2px; font-size: .9rem; }
    /* Zwei Kantone nebeneinander, lange Namen werden getrennt («Ausser-rhoden») */
    .canton-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .canton-pick { gap: 7px; min-height: 56px; padding: 8px 6px 8px 10px; } /* 375 px: «Angebot mit Preis» passt auf eine Zeile */
    .canton-pick__wappen { width: 20px; height: 24px; }
    .canton-pick__name { font-size: .9rem; }
    .canton-pick__info { font-size: .76rem; white-space: normal; } /* 12 px; bei 320 px darf «Angebot mit Preis» umbrechen */
    .canton-picker__more { min-height: 56px; padding: 8px 10px; }
    .typ-choice__item { padding: 14px 16px; }
    .offer-pick__kopf { padding: 12px 14px 10px; }
    .offer-pick__inhalt { padding: 10px 14px 14px; }
    .angebot-details__kopf { padding: 14px 16px; font-size: 1.05rem; }
    .angebot-details__inhalt { padding: 14px 16px 18px; }
    .configurator__summary { padding: 18px 16px; }
    .alert--success.alert--lg { padding: 22px 16px; }
    .alert--success.alert--lg h2 { gap: 12px; }
    .alert--success.alert--lg h2::before { width: 34px; height: 34px; background-size: 19px; }
    .success-actions .btn { flex: 1 1 100%; } /* gestapelt gleich breit */
}
@media (max-width: 360px) {
    .configurator .cstep { padding-left: 12px; padding-right: 12px; }
    .canton-picker { gap: 6px; }
    .canton-pick { gap: 6px; padding: 8px 6px 8px 8px; }
    .canton-pick__wappen { width: 18px; height: 22px; }
    .canton-pick__name { font-size: .86rem; hyphenate-limit-chars: 8 4 4; }
}

/* --- Ratgeber, responsiv (Prüfung 13.10.2026, Abschnitt «Ratgeber, Darstellung» oben) --- */
@media (max-width: 1023px) {
    .ratgeber-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ratgeber-grid > .ratgeber-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
    .prose table.tabelle-stapeln--breit { display: block; overflow: hidden; }
    .prose .tabelle-stapeln--breit :is(tbody, tr, td, th) { display: block; }
    .prose .tabelle-stapeln--breit thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .prose .tabelle-stapeln--breit tr { padding: 12px 16px 14px; border-bottom: 1px solid var(--sx-rand); }
    .prose .tabelle-stapeln--breit tbody tr:last-child { border-bottom: 0; }
    .prose table.tabelle-stapeln--breit :is(td, th) { position: static; min-width: 0; max-width: 38em; padding: 0; border: 0; background: none; font-size: .95rem;
        line-height: 1.55; hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
    .prose table.tabelle-stapeln--breit tr > :first-child { font-weight: 600; color: var(--color-primary-dark); }
    .prose table.tabelle-stapeln--breit tr > * + * { margin-top: 8px; }
    .prose .tabelle-stapeln--breit td[data-label]::before { content: attr(data-label); display: block; font-size: .82rem; font-weight: 600; line-height: 1.4; color: var(--color-text-muted); }
}
@media (min-width: 901px) {
    .prose table.tabelle-stapeln--immer { display: block; overflow: hidden; }
    .prose .tabelle-stapeln--immer tbody { display: block; }
    .prose .tabelle-stapeln--immer thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .prose .tabelle-stapeln--immer tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 8px 28px; padding: 16px 20px 18px;
        border-bottom: 1px solid var(--sx-rand); }
    .prose .tabelle-stapeln--immer tbody tr:last-child { border-bottom: 0; }
    .prose table.tabelle-stapeln--immer :is(td, th) { display: block; min-width: 0; padding: 0; border: 0; background: none; font-size: .95rem; line-height: 1.55; }
    .prose table.tabelle-stapeln--immer tr > :first-child { grid-column: 1 / -1; font-weight: 600; color: var(--color-primary-dark); }
    .prose .tabelle-stapeln--immer td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: .82rem; font-weight: 600; line-height: 1.4; color: var(--color-text-muted); }
}
@media (max-width: 760px) {
    .ratgeber-article > .toc { display: none; }
    .toc-klappe { display: block; margin: 0 0 28px; padding: 0 16px; background: var(--sx-block); border: 1px solid var(--sx-rand); border-radius: var(--radius-sm);
        box-shadow: var(--shadow-sm); }
    .toc-klappe summary { min-height: 48px; padding: 14px 0; font-weight: 600; color: var(--color-primary-dark); cursor: pointer; }
    .toc-klappe ol { margin: 0 0 12px; padding-left: 1.4em; }
    .toc-klappe li { margin: 0; }
    .toc-klappe li::marker { color: var(--color-primary); font-weight: 700; }
    .toc-klappe a { display: block; padding: 11px 0; line-height: 1.35; color: var(--color-primary); text-decoration: none; }
    .ratgeber-article > .infobox { padding: 20px 16px; }
    .ratgeber-feature { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 640px) {
    .ratgeber-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .ratgeber-card { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 18px; }
    .ratgeber-card__symbol { width: 44px; height: 44px; margin: 0; }
    .ratgeber-card h3 { flex: 1 1 0; min-width: 0; }
    .ratgeber-card p, .ratgeber-card__more { flex: 1 1 100%; }
}
@media (max-width: 620px) {
    .prose table.tabelle-stapeln { display: block; overflow: hidden; }
    .prose .tabelle-stapeln :is(tbody, tr, td, th) { display: block; }
    .prose .tabelle-stapeln thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .prose .tabelle-stapeln tr { padding: 12px 16px 14px; border-bottom: 1px solid var(--sx-rand); }
    .prose .tabelle-stapeln tbody tr:last-child, .prose .tabelle-stapeln > tr:last-child { border-bottom: 0; }
    .prose table.tabelle-stapeln :is(td, th) { position: static; min-width: 0; max-width: 38em; padding: 0; border: 0; background: none; font-size: .95rem;
        line-height: 1.55; hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
    .prose table.tabelle-stapeln tr > :first-child { font-weight: 600; color: var(--color-primary-dark); }
    .prose table.tabelle-stapeln tr > * + * { margin-top: 8px; }
    .prose .tabelle-stapeln td[data-label]::before { content: attr(data-label); display: block; font-size: .82rem; font-weight: 600; line-height: 1.4; color: var(--color-text-muted); }
    .prose .tabelle-stapeln td.zelle-nr::before { content: attr(data-label) "\00a0"; display: inline; font: inherit; color: inherit; } /* «Stufe 1» */
}
@media (max-width: 480px) {
    /* Einleitung im Kopf: etwas kleiner, damit der erste Bildschirm nicht nur aus Kopf besteht */
    .ratgeber-artikel .seitenkopf .lead { font-size: 1.03rem; line-height: 1.55; }
    .ratgeber-artikel, .ratgeber-artikel + .cta-band, .ratgeber-uebersicht { hyphens: manual; -webkit-hyphens: manual; }
    .ratgeber-artikel > .section :is(p, li) { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
}
@media (max-width: 620px) {
    .ratgeber-artikel .prose :is(th, td) { hyphens: manual; -webkit-hyphens: manual; }
}
@media (max-width: 600px) {
    .ratgeber-artikel :is(h1, h2, h3, h4), .ratgeber-artikel + .cta-band h2,
    .ratgeber-uebersicht :is(h1, h2, h3) { hyphens: manual; -webkit-hyphens: manual; }
}

/* --- Firmenseiten und GwG-Seiten, responsiv (Prüfung 13.10.2026, Abschnitt oben) --- */
@media (min-width: 561px) {
    .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (hover: none) {
    /* Leistungen, Ratgeber-Link in der Karte: Tippziel 44 px (14.10.2026) */
    .service-card .service-card__mehr { margin-top: 2px; }
    .service-card__mehr a { padding-block: 10px; }
}
@media (max-width: 1023px) {
    .dossier-hero { gap: 32px; }
    .dossier-hero__bild img { width: 140px; }
}
@media (max-width: 899px) {
    .partner-modell { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 600px) and (max-width: 980px) {
    .split__aside:has(> .about-photo) { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); align-items: start; gap: 24px; }
    .split__aside:has(> .about-photo) .about-photo { margin: 0; }
}
/* Über uns, «Wer hinter DomizilCenter.ch steht» (Abschnitt «Porträt» oben) */
@media (max-width: 1100px) {
    .ueber-wer { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 40px; }
}
@media (max-width: 980px) {
    .ueber-wer { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); grid-template-areas: "text text" "foto kontakt"; gap: 40px 24px; }
    .ueber-kontakt { display: block; padding: 22px; }
    .ueber-kontakt h3 { margin-bottom: 10px; }
    .ueber-kontakt__adresse { display: block; }
    .ueber-kontakt__adresse > span { display: block; }
    .ueber-kontakt__zeit { margin-top: 8px; }
    .infobox.ueber-kontakt > .btn { width: 100%; margin-top: 16px; }
}
@media (max-width: 599px) {
    .ueber-wer { grid-template-columns: minmax(0, 1fr); grid-template-areas: "text" "foto" "kontakt"; row-gap: 32px; }
}
@media (max-width: 980px) {
    .support-inhalt .split { display: flex; flex-direction: column; align-items: stretch; gap: 28px; } /* alle Blöcke gleich breit wie das Formular */
    .support-inhalt .split__aside { display: contents; }
    .support-inhalt .support-vorab { order: -1; }
}
@media (max-width: 760px) {
    .partner-modell li { padding: 16px; }
    .abschnitt-titel { margin-bottom: 14px; }
    * + .abschnitt-titel { margin-top: 36px; }
}
@media (max-width: 600px) {
    .support-art .radio-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .support-art .radio { justify-content: flex-start; padding: 8px 12px; }
    .support-warnung { padding: 16px; gap: 12px; }
}
@media (max-width: 760px) {
    .support-form { padding: 20px 16px; }
    .support-danke { padding: 22px 16px; }
    .support-danke h2 { gap: 12px; }
    .support-danke h2::before { width: 34px; height: 34px; background-size: 19px; }
}
@media (max-width: 360px) {
    .support-danke h2 { font-size: 1.25rem; }
    .support-schritte li { padding-left: 38px; }
    .support-danke .btn-row .btn { padding-inline: 12px; }
}

/* --- Kantonsseiten und Unterseiten c/o und ohne c/o, responsiv --- */
@media (max-width: 980px) {
    .kanton-inhalt-mobil a { display: flex; align-items: center; min-height: 44px; padding: 9px 0; line-height: 1.35; }
}
@media (max-width: 760px) {
    .offer-list { gap: 16px; }
    .offer-card__head, .onrequest__kopf { padding: 16px; }
    .offer-card__inhalt { padding: 16px 16px 20px; }
    .onrequest__inhalt { padding: 16px 16px 20px; }
    .onrequest--leist .onrequest__inhalt { grid-template-columns: minmax(0, 1fr); }
    .onrequest__main .btn { width: 100%; }
}
@media (max-width: 620px) {
    /* Links in gestapelten Tabellen (Kantonstext): 44 px Tippfläche ohne Einfluss auf die Zeilenhöhe */
    .kantonstext :is(td, th) a:not([class]) { padding-block: 13px; }
}
@media (max-width: 520px) {
    .adresstyp-kopf .hero__actions .btn, .canton-hero__text .hero__actions .btn { flex: 1 1 100%; padding-inline: 14px; } /* 320: «Alternative: Adresse ohne c/o» einzeilig */
}
@media (max-width: 480px) {
    .kanton-titel--lang { flex-direction: column; align-items: flex-start; gap: 12px; }
    .kanton-titel--lang h1 { font-size: 1.75rem; hyphens: manual; -webkit-hyphens: manual; }
    .kanton-titel--lang .kanton-titel__wappen { width: 36px; height: 43px; }
}
/* Gegenprüfung 13.10.2026, Kantonsseiten und Unterseiten (Abschnitte oben) */
@media (min-width: 761px) {
    /* «Ihre Vorteile» über die ganze Breite: Liste in zwei Spalten, Punkt für Punkt nicht getrennt */
    .kanton-vorteile .check-list { columns: 2; column-gap: 40px; }
    .kanton-vorteile .check-list li { break-inside: avoid; }
}
@media (max-width: 980px) {
    .adresstyp-leiste__knopf { display: none; }
}
@media (max-width: 960px) {
    .offer-list, .offer-list:has(> .offer-card:nth-child(2):last-child) { grid-template-columns: minmax(0, 760px); }
}
@media (max-width: 760px) {
    .adresstyp-inhalt .onrequest { margin-bottom: 36px; }
    .kanton-vorteile { margin-top: 36px; }
}
.prose .tabelle-mehr { display: none; }
.tabelle-mehr__knopf { width: 100%; min-height: 46px; list-style: none; cursor: pointer; }
.tabelle-mehr__knopf::-webkit-details-marker { display: none; }
.tabelle-mehr__knopf::before { content: ""; flex: 0 0 auto; width: 16px; height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; }
.tabelle-mehr[open] .tabelle-mehr__knopf::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23203e4c' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
.tabelle-mehr__auf, .tabelle-mehr[open] .tabelle-mehr__zu { display: none; }
.tabelle-mehr[open] .tabelle-mehr__auf { display: inline; }
@media (max-width: 620px) {
    .prose table.tabelle-stapeln--kompakt tr { padding: 10px 14px 11px; }
    .prose table.tabelle-stapeln--kompakt tr > * + * { margin-top: 3px; }
    .prose .tabelle-stapeln--kompakt td[data-label]::before { content: attr(data-label) "\00a0\00a0"; display: inline; }
    @supports selector(:has(+ *)) {
        .prose table.tabelle-stapeln--lang:has(+ .tabelle-mehr:not([open])) tbody tr:nth-child(n + 9) { display: none; }
        .prose table.tabelle-stapeln--lang:has(+ .tabelle-mehr:not([open])) tbody tr:nth-child(8) { border-bottom: 0; }
        .prose table.tabelle-stapeln--lang { margin-bottom: 12px; }
        .prose .tabelle-mehr { display: block; margin: 0 0 24px; } /* wie der Abstand unter einer Tabelle */
    }
}

@media (hover: none) {
    .site-footer__bar .footer-nav a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding-block: 0; } /* Text links bündig, gleiche Abstände */
}

/* === Handy-Prüfung 14.10.2026 === */

/* --- Cookie-Hinweis --- */
.cookie-consent { padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px)); }
.cookie-consent .btn { min-height: 44px; }
.cookie-consent .btn--primary { background: #fff; border-color: #fff; color: var(--color-primary-dark); }
.cookie-consent .btn--primary:hover { background: #e6edf0; border-color: #e6edf0; color: var(--color-primary-dark); }
.cookie-consent .btn:not(.btn--primary) { background: transparent; border-color: rgba(255, 255, 255, .85); color: #fff; }
.cookie-consent .btn:not(.btn--primary):hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }
.cookie-consent .btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (min-width: 601px) { .cookie-consent > span { flex: 0 1 43rem; } }
@media (max-width: 600px) {
    .cookie-consent { gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); font-size: .9rem; line-height: 1.45; }
    .cookie-consent > span { flex: 1 1 100%; }
    .cookie-consent .btn { flex: 1 1 0; padding-inline: 12px; }
    .cookie-consent a { display: inline-block; padding-block: 12px; margin-block: -12px; }
}

/* --- Einwilligung in Formularen --- */
.form .checkbox a { color: var(--color-primary); text-decoration: underline; text-decoration-thickness: 1px;
    text-decoration-color: rgba(32, 62, 76, .45); text-underline-offset: 3px; display: inline-block; padding-block: 12px; margin-block: -12px; }
.form .checkbox a:hover { text-decoration-color: currentColor; }
@media (hover: none) {
    .form .checkbox { min-height: 44px; padding-block: 9px; }
    .form .checkbox input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 1px; }
}

/* --- Fusszeile auf dem Handy --- */
@media (max-width: 560px) {
    .site-footer__grid .footer-nav--col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; align-items: start; }
    .site-footer__grid .footer-nav--col a { min-width: 0; overflow-wrap: break-word; hyphens: manual; -webkit-hyphens: manual; line-height: 1.3; padding-block: 11px; } /* einzeilig 44 px, zweizeilig 66 px */
    .site-footer__grid .footer-nav--col { row-gap: 0; }
    .site-footer__grid { row-gap: 30px; }
    .site-footer__grid h3 { margin-bottom: 6px; }
    .fuss-nur-breit { display: none; }
}

/* --- Autorenseite Lars Donner --- */
.autor-kopf__bild { display: none; }
@media (max-width: 980px) {
    .autor-kopf { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; align-items: center; }
    .autor-kopf__text { display: contents; } /* Titel neben dem Bild, Einleitung darunter über die ganze Breite */
    .autor-kopf__bild { display: block; position: relative; grid-row: 1; width: 72px; height: 90px; overflow: hidden;
        border-radius: 12px; background: #2a3138; box-shadow: var(--shadow-sm); }
    .autor-kopf__bild img { position: absolute; left: -30px; top: -20px; width: 120px; max-width: none; height: 180px; }
    .autor-kopf h1 { grid-row: 1; margin: 0; }
    .autor-kopf .lead { grid-column: 1 / -1; margin-top: 18px; }
    .autor-inhalt .split__aside:has(> .about-photo) { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); }
    .autor-inhalt .about-photo img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%; }
}
@media (max-width: 599px) {
    .autor-inhalt .split__aside .about-photo { width: 100%; max-width: 260px; margin-inline: auto; }
}

/* --- GwG-Check --- */
.gwgc .frage__hilfe-kurz { margin: 0; }
.gwgc .frage__mehr { margin-top: 2px; }
.gwgc .frage__mehr summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none;
    color: var(--color-accent-dark); font-weight: 600; }
.gwgc .frage__mehr summary::-webkit-details-marker { display: none; }
.gwgc .frage__mehr summary::before { content: ""; flex: 0 0 auto; width: 14px; height: 14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d23137' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; }
.gwgc .frage__mehr[open] summary::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d23137' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
.gwgc .frage__mehr summary:hover { text-decoration: underline; text-underline-offset: 3px; }
.gwgc .frage__mehr p { margin: 4px 0 0; }
.gwgc .frage__mehr-auf, .gwgc .frage__mehr[open] .frage__mehr-zu { display: none; }
.gwgc .frage__mehr[open] .frage__mehr-auf { display: inline; }

/* --- Inhaltsverzeichnis der Artikel auf dem iPad --- */
@media (hover: none) and (min-width: 761px) {
    .toc a:not(.btn) { display: flex; align-items: center; min-height: 44px; padding-block: 8px; }
    .toc li + li { margin-top: 0; }
}

/* --- Kantonsseiten und Unterseiten c/o und ohne c/o --- */
@media (max-width: 600px) {
    :is(.kanton-seite, .steuer-seite) .main { hyphens: manual; -webkit-hyphens: manual; }
    :is(.kanton-seite, .steuer-seite) .main :is(h1, h2, h3, h4, .faq__q, .lead) { hyphens: manual; -webkit-hyphens: manual; }
    .kanton-seite .kantonstext :is(p, li, td, th, dd) { hyphens: manual; -webkit-hyphens: manual; }
    .kanton-seite .main .faq > h2 { hyphens: none; -webkit-hyphens: none; } /* stärker als die :is()-Regel darüber (0,3,0) */
}
@media (min-width: 601px) {
    :is(.kanton-seite, .steuer-seite) .main { hyphens: none; -webkit-hyphens: none; }
}
.kantonstext :is(p, li, td, dd) { overflow-wrap: break-word; }

.canton-chip > span { hyphens: manual; -webkit-hyphens: manual; }
@media (max-width: 400px) {
    .canton-chip { padding: 8px; gap: 6px; }
    .canton-chip img { width: 18px; height: 22px; }
    .canton-chip > span { font-size: .88rem; }
}

@media (max-width: 400px) {
    .address-type-card__price { line-height: 1.35; }
}

.weiter-links__titel { margin-bottom: 0; }
.weiter-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 22px; }
.weiter-links li { margin: 0; }
.weiter-links a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 600px) {
    .weiter-links { display: block; }
}

/* --- Steuervergleich, Karte im Kopf --- */
.steuerkarte .cantonmap__avail:is([data-slug="schaffhausen"], [data-slug="genf"]):not(.cantonmap__aussen) .cantonmap__abbr {
    fill: var(--color-primary-dark); stroke: var(--karte-grund, #f4f6f7); stroke-width: 6px; }
.steuerkarte .cantonmap__avail:is([data-slug="schaffhausen"], [data-slug="genf"]):is(:hover, :focus-visible, .ist-hover):not(.cantonmap__aussen) .cantonmap__abbr {
    fill: var(--color-accent); }

/* --- Ratgeber --- */
.ratgeber-intro { max-width: 35em; margin: 0 0 32px; font-size: 1.1rem; line-height: 1.7; color: var(--color-text); }
@media (max-width: 760px) {
    .ratgeber-intro { font-size: 1.04rem; margin-bottom: 26px; }
}

/* --- Links in gestapelten Tabellen der Artikel --- */
@media (max-width: 620px) {
    .ratgeber-artikel .prose :is(td, th) a:not([class]) { padding-block: 13px; }
}

/* --- Kantons-Illustration, Schlussprüfung 14.10.2026 --- */
@media (min-width: 1024px) {
    .canton-banner { max-width: var(--container-max); margin-inline: auto; margin-top: -28px; padding-inline: var(--space-4); position: relative; }
    .canton-banner img { height: auto; aspect-ratio: 39 / 10; border-radius: var(--radius); box-shadow: var(--shadow-sm); object-position: center 23%; }
}

/* --- Über uns, «Wofür wir stehen» --- */
@media (min-width: 561px) {
    .features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Hauptlogo im Kopf, schmale Fenster (Logo-Paket 14.10.2026): rechts stehen nur Telefon und Menü-Knopf. */
@media (max-width: 900px) {
    .brand__logo { height: 38px; } /* rund 165 px breit */
}
@media (max-width: 359px) {
    .brand__logo { height: 31px; } /* rund 135 px breit, bei 320 px genug Luft für die zwei Symbole */
}

/* Grosse Bildschirme (nur öffentliche Seiten, aus theme.css hierher verschoben 14.10.2026, weil das Backend theme.css
   mitlädt): Schrift und Inhaltsbreite wachsen leicht mit. 1560 px auf 2560 war Lars zu weit auseinander, darum höchstens
   1360 px Inhalt. :root statt html, weil base.css html auf 100 % setzt; seiten.css lädt nach base.css. */
@media (min-width: 1600px) { :root { font-size: 103.125%; --container-max: 1240px; } }
@media (min-width: 2000px) { :root { font-size: 106.25%;  --container-max: 1300px; } }
@media (min-width: 2400px) { :root { font-size: 112.5%;   --container-max: 1360px; } }

/* BMO Schaffhausen 14.10.2026 (Gegenprüfung): «Preis auf Anfrage» mit vorhandenem Domizilgeber.
   Anfrage: Der Hinweiskasten hat zwei Fassungen, sichtbar ist je nach Auswahl die zweite. Ohne diese Regel bekam sie den
   Abstand von 16 px nach oben (Regel «.cstep > :not(legend)»), der Kasten war oben leerer als unten. Kein einzelnes Wort
   allein auf der letzten Zeile, wie bei .cstep__hint. */
.configurator .cstep--note > .onrequest-note { margin-top: 0; }
.onrequest-note { text-wrap: pretty; }
/* Adressartseite: Leistungen und Besonderheiten des Angebots ohne Preis im Kasten, Listen wie in den Angebotskarten */
.onrequest__angebot > h3, .onrequest__unter { margin: 18px 0 8px; font-size: 1rem; color: var(--color-primary-dark); }
.onrequest__angebot .check-list, .onrequest__angebot .offer-card__beson ul { margin: 0; }
/* Kantonsseiten bei 1024 px: «Holdinggesellschaften» brach mitten im Wort («Holdinggesellschaft / en»), weil ab 601 px
   die Silbentrennung aus ist. Hier gilt der weiche Trennstrich aus der Vorlage («Holding- / gesellschaften»). */
.kanton-seite .audience h3 { hyphens: manual; -webkit-hyphens: manual; }
