/* Zulasio · Designsystem. Unminifizierte Quelldatei, lokal und ohne Webfonts. */
:root {
    --color-primary: #013260;
    --color-secondary: #00736e;
    --color-accent: #00bfb5;
    --color-background: #ffffff;
    --color-surface: #f1f7fb;
    --color-soft: #e5f6f2;
    --color-text: #173348;
    --color-muted: #4d6476;
    --color-line: #d4e1e9;
    --color-yellow: #ffcf28;
    --color-error: #a31d32;
    --radius: 1rem;
    --wrap: 1192px;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.65; }
img, svg { max-width: 100%; }
img { height: auto; }
a { color: var(--color-secondary); text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
a, button, summary, input, textarea, select { -webkit-tap-highlight-color: #00bfb53b; }
:focus-visible { outline: 3px solid var(--color-secondary); outline-offset: 4px; }
.dark :focus-visible, .topbar :focus-visible, .mega-aside :focus-visible, .hero-card :focus-visible, .variant-2 .focus-card :focus-visible { outline-color: var(--color-yellow); }
[hidden] { display: none !important; }
main:focus { outline: none; }
h1, h2, h3, p { margin: 0 0 1rem; }
h1, h2, h3 { color: var(--color-primary); line-height: 1.15; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.25rem, 5vw, 4.45rem); letter-spacing: -.045em; font-weight: 750; overflow-wrap: anywhere; }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.85rem); letter-spacing: -.035em; }
h3 { font-size: 1.3rem; letter-spacing: -.018em; }
p:last-child { margin-bottom: 0; }
li + li { margin-top: .35rem; }
ul, ol { padding-left: 1.3rem; }
address { font-style: normal; }
.wrap { width: min(var(--wrap), calc(100% - 3rem)); margin-inline: auto; }
.hero-grid > *, .reading-grid > *, .contact-grid > *, .footer-top > * { min-width: 0; }
.section { padding-block: 5rem; }
.reading { max-width: 820px; }
.prose { max-width: 790px; }
.prose h2 { margin-top: 2.5rem; font-size: 1.8rem; }
.prose h3 { margin-top: 1.6rem; }
.prose p, .prose li { overflow-wrap: anywhere; }
.eyebrow { color: var(--color-secondary); text-transform: uppercase; font-size: .8rem; letter-spacing: .12em; font-weight: 700; line-height: 1.5; margin-bottom: 1.1rem; }
.muted, .small-copy { color: var(--color-muted); }
.small-copy { font-size: .875rem; line-height: 1.65; }
.lede { color: var(--color-muted); font-size: 1.13rem; line-height: 1.75; max-width: 650px; }
.icon { width: 22px; height: 22px; flex-shrink: 0; vertical-align: middle; }
.icon-box { display: inline-flex; align-items: center; justify-content: center; width: 51px; height: 51px; border-radius: .8rem; color: var(--color-primary); background: var(--color-soft); }
.icon-box.small { width: 40px; height: 40px; flex: 0 0 40px; border-radius: .5rem; }
.button { display: inline-flex; gap: .8rem; align-items: center; justify-content: center; min-height: 50px; padding: .8rem 1.25rem; border: 2px solid transparent; border-radius: .6rem; background: var(--color-primary); color: #fff; font-weight: 700; text-align: center; text-decoration: none; line-height: 1.4; }
.button:hover { background: #064b7c; text-decoration: none; }
.button-accent { background: var(--color-accent); color: var(--color-primary); }
.button-accent:hover { background: #6fe0d7; color: var(--color-primary); }
.button-light { background: #fff; color: var(--color-primary); }
.button-light:hover { background: #e8f4f7; color: var(--color-primary); }
.button-outline { background: transparent; color: var(--color-primary); border-color: var(--color-line); }
.button-outline:hover { background: var(--color-surface); color: var(--color-primary); }
.text-link { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding-block: .5rem; background: none; border: 0; color: var(--color-secondary); font-weight: 700; text-decoration: underline; text-underline-offset: .3em; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem 1.2rem; margin-top: 1.65rem; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 100; background: #fff; padding: .8rem 1rem; border: 2px solid var(--color-primary); }
.skip-link:focus { top: .5rem; }
.topbar { background: var(--color-primary); color: #e4eff7; font-size: .8rem; }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.3rem; min-height: 38px; }
.topbar a { display: flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; font-weight: 700; min-height: 38px; }
.topbar .icon { width: 15px; height: 15px; }
.site-header { background: #fff; border-bottom: 1px solid var(--color-line); position: relative; z-index: 20; }
.header-inner { display: flex; justify-content: space-between; align-items: center; gap: 1.75rem; min-height: 92px; position: relative; }
.brand { width: 205px; display: inline-flex; align-items: center; flex-shrink: 0; min-height: 48px; }
.brand img { display: block; width: 100%; }
.primary-nav { display: flex; align-items: center; gap: 1.2rem; }
.nav-group { margin: 0; }
.nav-group > summary { list-style: none; display: flex; align-items: center; gap: .5rem; padding: 1.2rem .2rem; min-height: 48px; color: var(--color-primary); font-size: .925rem; font-weight: 700; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary:hover, .nav-group[open] > summary { color: var(--color-secondary); }
.nav-group > summary span { font-size: 1.2rem; transition: transform .15s; }
.nav-group[open] > summary span { transform: rotate(180deg); }
.nav-contact { display: flex; gap: .5rem; align-items: center; background: var(--color-primary); color: #fff; padding: .65rem 1rem; border-radius: .5rem; text-decoration: none; font-size: .925rem; font-weight: 700; min-height: 46px; }
.mega-panel { position: absolute; top: calc(100% - 1px); left: 0; right: 0; display: grid; grid-template-columns: 1fr 290px; background: #fff; border: 1px solid var(--color-line); border-radius: 0 0 1rem 1rem; box-shadow: 0 22px 35px #0132601c; overflow: hidden; }
.mega-main { padding: 2rem; }
.mega-main h2 { font-size: 1.75rem; }
.mega-services { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1.5rem; margin-bottom: .75rem; }
.mega-services a { display: flex; align-items: flex-start; gap: .8rem; padding: .75rem .4rem; color: var(--color-primary); text-decoration: none; border-radius: .5rem; }
.mega-services a:hover { background: var(--color-surface); }
.mega-services strong { display: block; font-size: .95rem; }
.mega-services small { display: block; font-size: .825rem; color: var(--color-muted); line-height: 1.5; margin-top: .2rem; }
.mega-aside { background: var(--color-primary); padding: 2rem 1.7rem; color: #d9e8f3; }
.mega-aside h2 { color: #fff; font-size: 1.7rem; }
.mega-aside .eyebrow { color: #85ece2; }
.mega-aside .button { font-size: .9rem; margin-top: .8rem; }
.mega-cities { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1.5rem; list-style: none; padding: 0; margin: 1rem 0; }
.mega-cities li { margin: 0; }
.mega-cities a { min-height: 48px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--color-primary); font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--color-line); padding-block: .6rem; }
.mega-cities a:hover { color: var(--color-secondary); }
.mega-panel.compact { grid-template-columns: 1fr; left: auto; width: 620px; }
.menu-toggle { display: none; }
.breadcrumbs { padding-block: 1.1rem; font-size: .85rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; gap: .3rem .65rem; color: var(--color-muted); }
.breadcrumbs li { margin: 0; }
.breadcrumbs li + li::before { content: '/'; padding-right: .65rem; color: var(--color-muted); }
.breadcrumbs a { color: var(--color-muted); display: inline-block; padding-block: .25rem; }
.hero { background: var(--color-surface); }
.hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 5rem; padding-block: 4.8rem 5.3rem; }
.home-hero h1 { font-size: clamp(3rem, 5.9vw, 5rem); line-height: 1.03; margin-bottom: 1.6rem; }
.home-hero h1 span { color: var(--color-secondary); display: block; }
.hero .lede { max-width: 545px; }
.hero-card { color: #dceaf4; background: var(--color-primary); border-radius: 1.2rem 1.2rem 3.6rem 1.2rem; padding: 2.5rem; box-shadow: 13px 13px 0 var(--color-accent); margin-right: 13px; }
.hero-card h2, .hero-card h3 { color: #fff; }
.hero-card h2 { font-size: clamp(1.8rem, 3.1vw, 2.65rem); line-height: 1.2; margin-bottom: 1.7rem; }
.hero-card .eyebrow { color: #8bebdf; }
.hero-card .small-copy, .hero-card .muted { color: #dceaf4; }
.hero-card a:not(.button) { color: #fff; }
.hero-card .button-accent { color: var(--color-primary); }
.hero-mini-steps { padding: 0; margin: 0; list-style: none; }
.hero-mini-steps li { border-top: 1px solid #446b8b; padding: 1rem 0; display: flex; align-items: center; gap: 1rem; margin: 0; }
.hero-mini-steps li:last-child { padding-bottom: 0; }
.hero-mini-steps span { font-size: .8rem; color: var(--color-yellow); font-weight: 700; }
.hero-note { font-size: .85rem; color: var(--color-muted); margin-top: 1.2rem; }
.trust-strip { border-bottom: 1px solid var(--color-line); }
.trust-items { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 1.25rem; gap: 1.5rem; list-style: none; }
.trust-items li { display: flex; align-items: center; gap: .7rem; color: var(--color-primary); font-size: .925rem; font-weight: 700; margin: 0; }
.trust-items .icon { color: var(--color-secondary); }
.section-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 4rem; margin-bottom: 2.5rem; }
.section-heading p:last-child { color: var(--color-muted); max-width: 440px; }
.section-heading h2 { margin: 0; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.service-card { border: 1px solid var(--color-line); border-radius: var(--radius); padding: 1.7rem; background: #fff; position: relative; display: flex; flex-direction: column; }
.service-card:nth-child(2), .service-card:nth-child(6) { background: var(--color-surface); }
.service-card:hover { border-color: #6ea9b4; }
.card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.9rem; }
.number { font-size: .8rem; letter-spacing: .1em; font-weight: 700; color: var(--color-secondary); }
.service-card h3 a { color: var(--color-primary); text-decoration: none; }
.service-card h3 a::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius); }
.service-card h3 a:focus-visible::after { outline: 3px solid var(--color-secondary); outline-offset: 3px; }
.service-card p { color: var(--color-muted); font-size: .97rem; }
.card-link { margin-top: auto; padding-top: .85rem; font-weight: 700; color: var(--color-secondary); display: flex; gap: .5rem; align-items: center; font-size: .9rem; }
.dark { background: var(--color-primary); color: #dceaf4; }
.dark h2, .dark h3 { color: #fff; }
.dark .eyebrow { color: #88e8df; }
.dark .section-heading p { color: #dceaf4; }
.dark a:not(.button) { color: #fff; }
.steps { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.steps li { border-top: 1px solid var(--color-line); padding-top: 1.5rem; margin: 0; }
.dark .steps li { border-color: #527590; }
.step-number { display: block; color: var(--color-secondary); font-size: .85rem; font-weight: 700; margin-bottom: 1.5rem; }
.dark .step-number { color: var(--color-yellow); }
.steps p { color: var(--color-muted); }
.dark .steps p { color: #dceaf4; }
.surface { background: var(--color-surface); }
.city-links { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .85rem; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.city-links li { margin: 0; }
.city-links a { height: 100%; min-height: 68px; display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .8rem 1rem; background: #fff; border: 1px solid var(--color-line); border-radius: .6rem; color: var(--color-primary); font-size: .925rem; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.city-links a:hover { background: var(--color-soft); border-color: #8dc9c6; }
.city-links .icon { width: 18px; }
.affiliate-section { padding-block: 3.8rem; }
.affiliate-panel { display: grid; grid-template-columns: 1fr 370px; gap: 5rem; padding: 3rem; border-radius: 1.25rem; background: var(--color-soft); border: 1px solid #c3e8e1; align-items: center; }
.affiliate-copy h2 { font-size: clamp(1.85rem, 3.2vw, 2.7rem); }
.check-list { padding: 0; list-style: none; margin: 1.2rem 0; }
.check-list li { padding-left: 1.7rem; position: relative; }
.check-list li::before { content: '✓'; position: absolute; left: 0; font-weight: 700; color: var(--color-secondary); }
.notice-inline { border-left: 3px solid var(--color-secondary); padding-left: 1rem; font-size: .925rem; }
.page-hero { padding-block: 2.8rem 3.2rem; }
.page-hero h1 { max-width: 930px; }
.detail-hero h1 { font-size: clamp(2.25rem, 4.7vw, 3.9rem); }
.detail-hero .hero-grid { grid-template-columns: 1.5fr .8fr; gap: 3.5rem; padding-block: 3rem 3.8rem; }
.detail-hero .hero-card { padding: 2rem; border-bottom-right-radius: 2.8rem; }
.detail-hero .hero-card h2 { font-size: 1.75rem; }
.detail-hero .hero-card p { font-size: .95rem; }
.detail-hero .hero-card .button { margin-top: .8rem; width: 100%; }
.detail-hero .hero-card .small-copy { color: #dceaf4; font-size: .83rem; }
.price-display { color: #fff; font-size: 2rem; display: block; font-weight: 700; margin-bottom: .35rem; }
.anchor-links { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; padding-block: 1rem; border-bottom: 1px solid var(--color-line); }
.anchor-links a { min-height: 40px; display: inline-flex; align-items: center; font-size: .875rem; font-weight: 700; }
.reading-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: start; gap: 3.5rem; }
.checklist { padding: 2rem; border: 1px solid var(--color-line); background: var(--color-surface); border-radius: 1rem; }
.checklist h2 { font-size: 1.65rem; margin-bottom: 1.4rem; }
.checklist ul { padding-left: 1.1rem; margin-bottom: 0; }
.checklist li { margin-top: .7rem; }
.notice { padding: 1.8rem; background: var(--color-soft); border-left: 4px solid var(--color-secondary); border-radius: 0 .8rem .8rem 0; margin-top: 2rem; }
.notice h2 { font-size: 1.6rem; }
.focus-block h2 { margin-bottom: 1.3rem; }
.focus-block .tips { padding-left: 1.2rem; margin-top: 1.5rem; }
.focus-block .tips li { margin-top: .5rem; }
.focus-card { border-radius: 1rem; padding: 2rem; background: var(--color-soft); }
.variant-1 .focus-card { border-top: 4px solid var(--color-accent); }
.variant-2 .focus-card { background: var(--color-primary); color: #dceaf4; }
.variant-2 .focus-card h2, .variant-2 .focus-card h3 { color: #fff; }
.variant-2 .focus-card .eyebrow { color: #8bebdf; }
.variant-2 .focus-card a:not(.button) { color: #fff; }
.variant-2 .focus-card .check-list li::before { color: #8bebdf; }
.variant-2 .focus-card .small-copy, .variant-2 .focus-card .muted { color: #dceaf4; }
.benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 2rem; }
.benefits p { margin: 0; padding: 1.25rem; border: 1px solid var(--color-line); border-radius: .7rem; color: var(--color-primary); }
.benefits .icon { color: var(--color-secondary); margin-bottom: .65rem; display: block; }
.source-note { background: var(--color-surface); padding: 1.1rem 1.5rem; border-radius: .7rem; font-size: .85rem; margin-top: 2rem; overflow-wrap: anywhere; }
.related-links { display: flex; flex-wrap: wrap; gap: .65rem 1.5rem; padding: 0; list-style: none; }
.related-links li { margin: 0; }
.related-links a { display: inline-flex; align-items: center; min-height: 44px; }
.faq { margin-top: 2rem; border-top: 1px solid var(--color-line); }
.faq details { border-bottom: 1px solid var(--color-line); }
.faq summary { list-style: none; color: var(--color-primary); font-weight: 700; display: flex; justify-content: space-between; gap: 1.5rem; padding: 1.3rem .1rem; min-height: 60px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; flex: 0 0 24px; font-size: 1.5rem; font-weight: 400; line-height: 1; text-align: center; }
.faq details[open] summary::after { content: '−'; }
.faq-answer { padding: 0 2.5rem 1.4rem .1rem; color: var(--color-muted); }
.cta-section { padding-top: 2.5rem; }
.cta-panel { display: grid; grid-template-columns: 1fr 300px; gap: 4rem; align-items: center; padding: 3.2rem; border-radius: 1.2rem 1.2rem 3.2rem 1.2rem; }
.cta-panel h2 { max-width: 600px; }
.cta-panel p { max-width: 610px; }
.cta-actions { display: flex; flex-direction: column; align-items: center; gap: .8rem; }
.cta-actions span { font-size: .875rem; }
.phone-link { display: inline-flex; align-items: center; gap: .5rem; font-size: 1.12rem; font-weight: 700; min-height: 44px; text-decoration: none; }
.contact-grid { display: grid; grid-template-columns: 1.6fr 1fr; align-items: start; gap: 3rem; }
.contact-aside { padding: 2rem; border-radius: 1rem; background: var(--color-surface); }
.contact-aside h2 { font-size: 1.7rem; }
.contact-aside a { overflow-wrap: anywhere; }
.contact-aside dl { margin: 1.5rem 0; }
.contact-aside dt { font-weight: 700; margin-top: 1rem; color: var(--color-primary); }
.contact-aside dd { margin: .2rem 0 0; }
.contact-form { min-width: 0; }
.contact-form fieldset { border: 0; padding: 0; margin: 0 0 1.7rem; min-width: 0; }
.contact-form legend { font-weight: 700; color: var(--color-primary); font-size: 1.2rem; margin-bottom: 1rem; padding: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.2rem; }
.field-wide { grid-column: 1 / -1; }
label { display: block; font-weight: 700; color: var(--color-primary); font-size: .925rem; margin-bottom: .4rem; }
input:not([type=checkbox]), select, textarea { display: block; width: 100%; min-height: 50px; padding: .8rem; border: 1px solid #7794a5; border-radius: .45rem; background: #fff; color: var(--color-text); }
textarea { min-height: 155px; resize: vertical; }
input[aria-invalid=true], select[aria-invalid=true], textarea[aria-invalid=true] { border: 2px solid var(--color-error); }
.checkbox-field { display: flex; align-items: flex-start; gap: .7rem; font-weight: 400; margin-block: 1rem; }
.checkbox-field input { flex: 0 0 21px; width: 21px; height: 21px; margin: .2rem 0 0; accent-color: var(--color-primary); }
.field-hint { margin: .35rem 0 0; font-size: .8rem; color: var(--color-muted); }
.field-error { color: var(--color-error); font-size: .9rem; font-weight: 700; margin: .4rem 0 0; }
.error-summary { padding: 1.3rem; background: #fff2f3; color: #821328; border: 2px solid var(--color-error); border-radius: .6rem; margin-bottom: 2rem; }
.error-summary h2 { font-size: 1.4rem; color: #821328; }
.error-summary a { color: #821328; }
.hp-field { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-status { color: var(--color-muted); font-size: .875rem; margin-top: 1rem; }
.directory { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2rem; }
.directory-card { padding: 1.8rem; border: 1px solid var(--color-line); border-radius: 1rem; }
.directory-card h2 { font-size: 1.6rem; }
.directory-card h2 a { color: var(--color-primary); }
.directory-card ul { padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .3rem 1rem; margin-bottom: 0; }
.directory-card li { margin: 0; }
.directory-card li a { display: inline-block; padding-block: .55rem; min-height: 44px; font-size: .9rem; }
.filter-field { max-width: 460px; margin-top: 2rem; }
.filter-count { font-size: .875rem; color: var(--color-muted); margin-top: .75rem; }
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-block: 2rem; }
.price-card { border: 1px solid var(--color-line); padding: 1.7rem; border-radius: 1rem; display: flex; flex-direction: column; }
.price-card .amount { font-size: 2.2rem; color: var(--color-primary); font-weight: 700; line-height: 1.2; margin-block: 1rem .3rem; }
.price-card .text-link { margin-top: auto; }
.documents-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.documents-grid .checklist { background: #fff; }
.documents-grid h2 { font-size: 1.4rem; }
.legal-note { border: 1px solid #d1b94a; background: #fff7d6; color: #584600; padding: 1.2rem; border-radius: .6rem; }
.legal-note strong { color: #584600; }
.site-footer { border-top: 1px solid var(--color-line); background: var(--color-surface); padding-top: 3.5rem; font-size: .875rem; }
.footer-top { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 2.6rem; }
.footer-brand .brand { width: 182px; margin-bottom: 1.2rem; }
.footer-brand p { color: var(--color-muted); max-width: 280px; }
.site-footer h2 { font-size: .95rem; letter-spacing: 0; margin-bottom: .85rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin: 0; }
.site-footer a:not(.brand) { color: var(--color-primary); padding-block: .45rem; min-height: 36px; display: inline-block; text-decoration: none; overflow-wrap: anywhere; }
.site-footer a:hover { text-decoration: underline; }
.site-footer .icon { width: 15px; height: 15px; }
.footer-contact { display: block !important; overflow-wrap: anywhere; font-weight: 700; }
.site-footer address { color: var(--color-muted); margin-top: 1.2rem; }
.footer-cities { border-top: 1px solid var(--color-line); margin-top: 2.7rem; padding-top: 1.8rem; }
.footer-cities ul { display: flex; flex-wrap: wrap; gap: .1rem 1.7rem; }
.footer-bottom { border-top: 1px solid var(--color-line); margin-top: 1.6rem; padding-block: 1.1rem; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; color: var(--color-muted); }
.footer-bottom p { margin: 0; }
@media (max-width: 1199px) {
    .header-inner { flex-wrap: wrap; min-height: 84px; gap: 0; padding-block: .75rem; }
    .js .menu-toggle { display: flex; align-items: center; gap: .6rem; background: #fff; border: 1px solid var(--color-line); border-radius: .5rem; font-weight: 700; padding: .6rem .85rem; min-height: 48px; }
    .menu-lines { width: 18px; height: 12px; border-block: 2px solid var(--color-primary); position: relative; }
    .menu-lines::after { content: ''; position: absolute; top: 4px; width: 18px; border-top: 2px solid var(--color-primary); left: 0; }
    .primary-nav { width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding-top: .75rem; }
    .js .primary-nav[data-open=false] { display: none; }
    .nav-group { border-top: 1px solid var(--color-line); }
    .nav-group > summary { padding: .8rem .25rem; justify-content: space-between; font-size: 1rem; }
    .mega-panel, .mega-panel.compact { position: static; width: 100%; display: block; box-shadow: none; border: none; background: var(--color-surface); border-radius: .65rem; }
    .mega-main { padding: 1.25rem; }
    .mega-aside { display: none; }
    .mega-services small { font-size: .85rem; }
    .nav-contact { justify-content: center; margin-top: .7rem; }
    .hero-grid { gap: 2.6rem; }
    .affiliate-panel { gap: 2.5rem; padding: 2.2rem; grid-template-columns: 1fr 330px; }
    .service-card { padding: 1.4rem; }
    .city-links { grid-template-columns: repeat(3, 1fr); }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
    .cta-panel { gap: 2rem; padding: 2.5rem; }
    .detail-hero .hero-grid { grid-template-columns: 1.3fr 1fr; gap: 2rem; }
}
@media (max-width: 800px) {
    .wrap { width: calc(100% - 2.25rem); }
    .section { padding-block: 3.5rem; }
    .hero-grid, .detail-hero .hero-grid { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 3rem; }
    .hero-card { max-width: 570px; width: calc(100% - 13px); }
    .hero .lede { max-width: 670px; }
    .home-hero h1 { font-size: clamp(2.75rem, 8.5vw, 4rem); }
    .section-heading { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 2rem; }
    .section-heading p:last-child { max-width: none; }
    .service-grid { grid-template-columns: 1fr 1fr; }
    .trust-items { gap: .8rem; }
    .trust-items li { align-items: flex-start; font-size: .85rem; }
    .trust-items .icon { width: 18px; }
    .affiliate-panel { grid-template-columns: 1fr; gap: 2rem; }
    .desktop-break { display: none; }
    .reading-grid, .contact-grid { grid-template-columns: 1fr; gap: 2rem; }
    .steps { gap: 1.5rem; }
    .steps h3 { font-size: 1.13rem; }
    .cta-panel { grid-template-columns: 1fr; gap: 1.5rem; }
    .cta-actions { align-items: flex-start; }
    .price-grid { grid-template-columns: 1fr 1fr; }
    .directory, .documents-grid { grid-template-columns: 1fr; }
    .benefits { gap: .65rem; }
    .benefits p { padding: 1rem; font-size: .9rem; }
}
@media (max-width: 520px) {
    .wrap { width: calc(100% - 2rem); }
    .topbar-inner { padding-block: .45rem; min-height: 38px; }
    .topbar-inner > span { font-size: .72rem; max-width: 190px; }
    .topbar a { font-size: 0; min-width: 44px; min-height: 44px; justify-content: center; }
    .topbar .icon { width: 20px; height: 20px; }
    .brand { width: 174px; }
    .mega-services, .mega-cities { grid-template-columns: 1fr; }
    .mega-services small { display: none; }
    .mega-main { padding: 1rem; }
    .mega-main h2 { font-size: 1.35rem; }
    .hero-grid { padding-block: 2.5rem; gap: 2rem; }
    .home-hero h1 { font-size: clamp(2.4rem, 10.6vw, 3.8rem); }
    h1, .detail-hero h1 { font-size: clamp(2.1rem, 9.2vw, 3rem); }
    .lede { font-size: 1.05rem; }
    .hero-card, .detail-hero .hero-card { padding: 1.6rem; box-shadow: 8px 8px 0 var(--color-accent); margin-right: 8px; width: calc(100% - 8px); }
    .hero-card h2 { font-size: 1.8rem; }
    .actions { align-items: stretch; flex-direction: column; gap: .5rem; }
    .actions .text-link { justify-content: center; }
    .trust-items { grid-template-columns: 1fr; gap: .6rem; }
    .trust-items li { font-size: .925rem; }
    .service-grid, .steps, .benefits, .price-grid { grid-template-columns: 1fr; }
    .card-top { margin-bottom: 1.3rem; }
    .service-card { padding: 1.6rem; }
    .steps { gap: 1.5rem; }
    .steps h3 { font-size: 1.3rem; }
    .step-number { margin-bottom: 1rem; }
    .city-links { grid-template-columns: 1fr 1fr; gap: .6rem; }
    .city-links a { padding: .75rem; font-size: .85rem; }
    .affiliate-panel { padding: 1.4rem; gap: 1.5rem; }
    .checklist, .focus-card, .notice, .contact-aside { padding: 1.4rem; }
    .cta-panel { padding: 1.7rem; border-bottom-right-radius: 2rem; }
    .cta-actions { align-items: stretch; }
    .cta-actions .phone-link { justify-content: center; }
    .cta-actions span { text-align: center; }
    .form-grid { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 2rem 1.2rem; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-brand p { max-width: 100%; }
    .footer-top > div:last-child { grid-column: 1 / -1; }
    .site-footer a:not(.brand) { min-height: 44px; padding-block: .65rem; }
    .footer-cities ul { gap: 0 1.2rem; }
    .footer-bottom { display: block; }
    .directory-card { padding: 1.4rem; }
    .directory-card ul { grid-template-columns: 1fr; }
    .faq summary { padding-block: 1.15rem; }
    .faq-answer { padding-right: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
@media print {
    .topbar, .site-header, .site-footer, .affiliate-section, .cta-section, .actions, .anchor-links, .menu-toggle, .filter-field, .filter-count { display: none !important; }
    body { font-size: 11pt; }
    .wrap { width: 100%; }
    .section { padding-block: 1.5rem; }
    .hero-grid, .reading-grid, .documents-grid { display: block; }
    .hero-card { display: none; }
    .checklist { break-inside: avoid; margin-bottom: 1rem; }
    a { color: #000; }
}

/* Direkt sichtbare Partner-Frames: volle Kartenbreite, keine mobile Ausblendung. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.affiliate-panel > *, .reservation-widget-card, .order-widget-card { min-width: 0; }
.affiliate-copy > .eyebrow { font-size: .875rem; }
.reservation-widget-card, .order-widget-card { width: 100%; background: #fff; border: 1px solid var(--color-line); border-radius: 1rem; }
.reservation-widget-card > .eyebrow { margin: 0; padding: .8rem 1rem; font-size: .875rem; color: var(--color-secondary); }
.partner-frame { display: block; width: 100%; max-width: 100%; border: 0; background: var(--color-primary); }
.order-widget-card > .partner-frame { border-radius: .9rem .9rem 0 0; }
.reservation-widget-info, .order-widget-info { padding: 1.1rem; }
.reservation-widget-info .small-copy, .order-widget-info .small-copy { color: var(--color-muted); margin: .8rem 0 0; }
.reservation-widget-info a, .order-widget-info a:not(.button) { color: var(--color-secondary); overflow-wrap: anywhere; }
.reservation-widget-info .text-link { display: flex; align-items: center; gap: .5rem; min-height: 44px; }
.order-widget-info .button { width: 100%; }
#wunschkennzeichen-pruefen { scroll-margin-top: 7rem; }
@media (max-width: 520px) {
    .home-hero .hero-card { display: none; }
    .affiliate-section { padding-block: 2.5rem; }
    .affiliate-panel { padding: 1rem; }
    .affiliate-panel .order-widget-card { width: calc(100% + 2rem); margin-inline: -1rem; }
    .reservation-widget-info, .order-widget-info { padding: 1rem; }
}
@media print { .reservation-widget-card, .order-widget-card { display: none !important; } }

/* Digitaler Auftrag: klare Abschnitte, ruhiger Preisüberblick und große Upload-Ziele. */
.order-heading { padding-bottom: 1rem; }
.order-heading h1 { max-width: 21ch; }
.order-progress { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; padding: 1.2rem 0; margin: 0; border-bottom: 1px solid var(--color-line); color: var(--color-muted); }
.order-progress li[aria-current] { color: var(--color-primary); font-weight: 750; }
.order-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: 2rem; align-items: start; }
.order-grid > *, .order-panel, .form-field, .upload-field { min-width: 0; }
.order-content { padding-top: 1.5rem; }
.order-panel { border: 1px solid var(--color-line); border-radius: 1rem; padding: 1.5rem; margin: 0 0 1.5rem; background: #fff; }
.order-panel input:not([type="checkbox"]), .order-panel select, .order-panel textarea { min-width: 0; max-width: 100%; font-size: 1rem; }
.order-panel legend { padding: 0 .5rem; color: var(--color-primary); font-size: 1.15rem; font-weight: 750; }
.order-panel h2 { font-size: 1.5rem; }
.order-panel ul { padding-left: 1.3rem; }
.form-field { margin-bottom: 1rem; }
.form-field label, .upload-field > label { display: block; font-weight: 650; margin-bottom: .4rem; }
.check-field { display: flex; align-items: flex-start; gap: .75rem; margin: 1.2rem 0; padding-block: .25rem; font-weight: 400; }
.check-field input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: .25rem; accent-color: var(--color-primary); }
.check-field span { min-width: 0; }
.upload-field { padding: 1.1rem; border: 1px dashed #7794a5; border-radius: .7rem; background: var(--color-background); margin-bottom: 1rem; }
.upload-field input[type="file"] { max-width: 100%; overflow: hidden; padding: .4rem; min-height: 50px; font-size: .875rem; }
.upload-field input::file-selector-button { min-height: 44px; padding: .55rem .75rem; margin-right: .75rem; border: 0; border-radius: .35rem; color: #fff; background: var(--color-primary); font: inherit; cursor: pointer; }
.upload-field .small-copy { overflow-wrap: anywhere; margin-bottom: 0; }
.order-total { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; align-items: baseline; padding: 1.2rem; border-radius: .7rem; background: var(--color-soft); color: var(--color-primary); }
.order-total strong { font-size: 2rem; }
.order-final { border: 2px solid var(--color-primary); }
.order-summary { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr); gap: .6rem 1rem; }
.order-summary dt { font-weight: 650; }
.order-summary dd { margin: 0; overflow-wrap: anywhere; }
.document-receipts { padding: 0 !important; list-style: none; }
.document-receipts li { display: flex; align-items: flex-start; gap: .7rem; padding: .7rem 0; border-bottom: 1px solid var(--color-line); }
.document-receipts small { display: block; color: var(--color-muted); }
.order-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; padding: 2rem; background: var(--color-soft); border: 1px solid #c3e8e1; border-radius: 1rem; }
.order-entry h2 { font-size: 1.8rem; }
.receipt-number { font-weight: 750; font-size: 1.7rem; color: var(--color-primary); overflow-wrap: anywhere; }
.contract-receipt pre, .withdrawal-receipt { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.contract-receipt summary { min-height: 48px; padding: 1rem; font-weight: 700; cursor: pointer; }
.button:disabled { cursor: not-allowed; opacity: .65; }
.order-client-errors { margin-block: 1rem; overflow-wrap: anywhere; scroll-margin-block: 1rem; }
.order-client-errors[hidden], .field-error[hidden], #order-server-errors[hidden] { display: none; }
.order-client-errors h2 { font-size: 1.2rem; }
.order-client-errors a { display: block; min-height: 44px; padding-block: .4rem; }
.order-panel input, .order-panel select, .order-panel textarea, #order-feedback { scroll-margin-block: 1.5rem; }
.order-form button[type="submit"], .order-final button[type="submit"] { min-height: 48px; max-width: 100%; white-space: normal; touch-action: manipulation; }
.order-unavailable { padding: 1rem; border-left: .25rem solid var(--color-primary); background: var(--color-soft); color: var(--color-primary); }
.order-unavailable a { color: inherit; font-weight: 700; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.footer-contract { display: flex; flex-wrap: wrap; gap: .25rem 1.4rem; padding-block: 1rem; }
.footer-contract a { padding-block: .75rem; color: #fff; }
.footer-contract .withdrawal-link { font-weight: 750; text-decoration: underline; text-underline-offset: .2em; }
.print-button { display: none; }
.js .print-button { display: inline-flex; }
@media (max-width: 900px) { .order-grid { grid-template-columns: minmax(0, 1fr); } .order-entry { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .order-panel { padding: 1rem; } .order-panel legend { font-size: 1rem; } .order-summary { grid-template-columns: minmax(0, 1fr); gap: .2rem; } .order-summary dd { margin-bottom: .75rem; } .order-entry { padding: 1.2rem; } .order-progress { font-size: .9rem; } }
@media print { .order-progress, .print-button, .footer-contract, .order-aside { display: none !important; } .order-grid { display: block; } .order-panel, .contract-receipt { break-inside: auto; border: 0; padding: 0; } }

/* Amtliches Verzeichnis bleibt gestalterisch Teil von Zulasio, kein Behördenauftritt. */
.authority-directory-hero { padding-block: 3.5rem 2rem; }
.authority-directory-hero h1 { max-width: 20ch; }
.authority-search { max-width: 700px; margin-top: 1.8rem; }
.authority-search label { display: block; font-weight: 650; margin-bottom: .6rem; }
.authority-group { margin-top: 3rem; scroll-margin-top: 7rem; }
.authority-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.authority-card, .office-card { min-width: 0; padding: 1.5rem; border: 1px solid var(--color-line); border-radius: 1rem; background: #fff; }
.authority-card h3 { margin-top: 1rem; font-size: 1.25rem; }
.authority-card h3 a { text-decoration: none; }
.authority-card p { margin-bottom: .6rem; }
.district-code { display: inline-block; min-width: 3.2rem; padding: .45rem .7rem; border-radius: .4rem; background: var(--color-primary); color: #fff; font-size: 1.15rem; font-weight: 750; text-align: center; }
.authority-code-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.2rem 0; }
.authority-offices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.office-card address { font-style: normal; font-weight: 650; }
.office-card a { overflow-wrap: anywhere; }
.regional-code-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; margin-block: 1.5rem; }
.regional-code-form label { width: 100%; font-weight: 650; }
.regional-code-form select { width: 120px; }
@media (max-width: 900px) { .authority-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .authority-cards, .authority-offices { grid-template-columns: minmax(0, 1fr); } .authority-directory-hero { padding-top: 2rem; } }

/* Download bleibt auch bei pausierter Onlinebeauftragung erreichbar. */
.vollmacht-download { padding: 1.2rem; margin-bottom: 1.5rem; border: 1px solid var(--color-line); border-radius: .7rem; background: var(--color-soft); color: var(--color-text); }
.vollmacht-download h2 { font-size: 1.2rem; }
.vollmacht-download .button { max-width: 100%; white-space: normal; }
.vollmacht-download .small-copy { margin-top: .8rem; }

/* Verbindung zur NRW-Onlinezulassung. */
.nrw-online-link { display: block; margin: 1.1rem 0; }

/* Gemeinsame Kontaktleiste; nach dem jeweiligen Haupt-Stylesheet laden. */
.zulasio-contact-topbar .zulasio-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding-block: 4px;
}
.zulasio-contact-topbar .zulasio-topbar-inner > span {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.45;
}
.zulasio-contact-topbar .zulasio-header-contact {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 4px;
}
.zulasio-contact-topbar .zulasio-contact-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 44px;
    min-height: 44px;
    padding: 8px;
    border-radius: 8px;
    color: #fff;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
}
.zulasio-contact-topbar .zulasio-contact-link:hover {
    background: #ffffff1a;
    color: #fff;
}
.zulasio-contact-topbar .zulasio-contact-link:focus-visible {
    outline: 3px solid #ffdb51;
    outline-offset: 1px;
}
.zulasio-contact-topbar .zulasio-contact-icon {
    display: block;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
}
@media (max-width: 900px) {
    .zulasio-contact-topbar .zulasio-contact-label { display: none; }
}
@media (max-width: 430px) {
    .zulasio-contact-topbar .zulasio-topbar-inner { gap: 8px; }
    .zulasio-contact-topbar .zulasio-topbar-inner > span { font-size: .72rem; }
}

/* Zulasio NRW-Erweiterung: Online-Einstiege, Ortsverzeichnis und Wunschkennzeichen. */
:root { --nrw-primary: var(--color-primary, #013260); --nrw-teal: var(--color-secondary, #00736e); --nrw-muted: #4d6476; --nrw-line: #d4e1e9; --nrw-soft: #e5f6f2; }
.nav-online { display:flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; padding:.65rem .8rem; border-radius:.55rem; background:var(--nrw-soft); color:var(--nrw-primary); font-size:.875rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.nav-online:hover { background:#c7eee7; color:var(--nrw-primary); }
.nav-online .icon { width:17px; }
.mega-services .mega-online { grid-column:1/-1; background:var(--nrw-soft); padding:1rem; }
.nrw-mobile-online { display:none; }
.nrw-home-digital { padding-block:3.5rem; }
.nrw-digital-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.nrw-digital-card { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; padding:2rem; background:var(--nrw-soft); border:1px solid #bcddd6; border-radius:1.2rem; }
.nrw-digital-card h3 { font-size:1.8rem; margin:.5rem 0 0; }
.nrw-digital-card p { margin-bottom:.75rem; }
.nrw-digital-card .button { margin-top:auto; }
.nrw-digital-primary { background:var(--nrw-primary); color:#e6f0f7; border-color:var(--nrw-primary); }
.nrw-digital-primary h3 { color:#fff; }
.nrw-digital-sub { min-height:44px; display:inline-flex; align-items:center; padding-block:.5rem; font-size:.925rem; font-weight:700; color:var(--nrw-teal); }
.nrw-digital-primary .nrw-digital-sub { color:#fff; }
.nrw-digital-primary :focus-visible { outline-color:#ffcf28; }
.nrw-wish-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr); gap:3rem; align-items:start; }
.nrw-wish-grid > *, .nrw-reading-grid > * { min-width:0; }
.nrw-wish-hero { padding-block:3.5rem 4rem; }
.nrw-wish-hero h1 { font-size:clamp(2.2rem,4.4vw,3.85rem); line-height:1.12; }
.nrw-wish-hero h1 span { color:var(--nrw-teal); }
.nrw-city-search { max-width:740px; margin-block:1.75rem 1rem; }
.nrw-city-search label, .nrw-code-form label { display:block; margin-bottom:.5rem; font-weight:700; color:var(--nrw-primary); }
.nrw-city-search > div { display:flex; flex-wrap:wrap; gap:.6rem; }
.nrw-city-search input { flex:1 1 220px; min-width:0; width:100%; border:1px solid #79949f; padding:.8rem 1rem; border-radius:.55rem; background:#fff; color:var(--nrw-primary); font-size:1rem; min-height:50px; }
.nrw-wish-starter { padding:2rem; background:#fff; border:1px solid var(--nrw-line); border-radius:1.2rem; box-shadow:0 8px 30px #01326009; }
.nrw-wish-starter h2 { font-size:1.7rem; }
.nrw-featured-places { list-style:none; padding:0; margin:0; }
.nrw-featured-places li { margin:0; }
.nrw-featured-places a { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 0; min-height:52px; border-top:1px solid var(--nrw-line); text-decoration:none; color:var(--nrw-primary); }
.nrw-featured-places a:hover { color:var(--nrw-teal); }
.nrw-featured-places a span { display:inline-flex; gap:.65rem; align-items:center; font-weight:700; }
.nrw-widget { border:1px solid var(--nrw-line); border-top:5px solid var(--nrw-teal); background:#fff; padding:1.65rem; border-radius:1rem; box-shadow:0 14px 34px #0132600b; }
.nrw-widget h2 { font-size:1.35rem; margin-bottom:1.1rem; }
.nrw-widget .eyebrow { font-size:.75rem; margin-bottom:.75rem; }
.nrw-frame-wrap { display:flex; justify-content:center; width:100%; }
.nrw-frame-wrap iframe { display:block; border:0; width:300px; max-width:100%; background:#fff; }
.nrw-widget .text-link { font-size:.9rem; }
.nrw-widget .small-copy { font-size:.825rem; margin-top:.6rem; }
.nrw-code-form { margin-bottom:1rem; }
.nrw-code-form > div { display:flex; flex-wrap:wrap; gap:.6rem; }
.nrw-code-form select { min-height:48px; flex:1; min-width:80px; border:1px solid #79949f; border-radius:.5rem; background:#fff; color:var(--nrw-primary); padding:.6rem .8rem; font-size:1rem; }
.nrw-code-form .button { min-height:48px; padding:.6rem .8rem; font-size:.9rem; }
.nrw-place-facts { display:grid; grid-template-columns:1fr; border-left:3px solid var(--nrw-teal); padding-left:1.2rem; margin-block:1.75rem; gap:1rem; }
.nrw-place-facts span { display:block; font-size:.875rem; color:var(--nrw-muted); }
.nrw-place-facts strong { display:block; color:var(--nrw-primary); font-size:1.1rem; }
.nrw-section-links { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; margin-block:1.5rem; }
.nrw-section-links a { display:inline-flex; align-items:center; min-height:44px; font-weight:700; font-size:.9rem; }
.nrw-reading-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr); gap:3rem; align-items:start; }
.nrw-reading-grid article > h3 { margin-top:2rem; }
.nrw-reservation-fact, .nrw-order-notice { background:var(--nrw-soft); border-left:4px solid var(--nrw-teal); padding:1.4rem; margin-block:1.5rem; border-radius:0 .6rem .6rem 0; }
.nrw-reservation-fact > span { font-size:.875rem; color:var(--nrw-muted); display:block; }
.nrw-reservation-fact > strong { display:block; font-size:2rem; color:var(--nrw-primary); line-height:1.3; margin:.4rem 0 .7rem; }
.nrw-reservation-fact p { font-size:.925rem; }
.nrw-order-notice p { margin-top:.5rem; }
.nrw-local-note { padding-block:1rem; border-bottom:1px solid var(--nrw-line); }
.nrw-local-note h3 { font-size:1.2rem; }
.nrw-authority { background:#f1f7fb; padding:1.8rem; border:1px solid var(--nrw-line); border-radius:1rem; }
.nrw-authority h2 { font-size:1.55rem; }
.nrw-authority dl { margin-block:1.2rem; }
.nrw-authority dl > div { border-top:1px solid var(--nrw-line); padding-block:.6rem; }
.nrw-authority dt { font-size:.85rem; color:var(--nrw-muted); }
.nrw-authority dd { margin:0; font-weight:700; color:var(--nrw-primary); overflow-wrap:anywhere; }
.nrw-authority .button { width:100%; font-size:.9rem; }
.nrw-check-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3rem; margin-top:2rem; }
.nrw-check-cards article { background:#fff; border:1px solid var(--nrw-line); border-radius:1rem; padding:1.5rem; }
.nrw-next-step { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(220px,.7fr); gap:2rem; align-items:center; padding:2rem; background:var(--nrw-soft); border:1px solid #bdddd5; border-radius:1rem; }
.nrw-next-step h2 { font-size:clamp(1.6rem,3vw,2.2rem); }
.nrw-next-step .actions { margin:0; align-content:center; }
.nrw-local-service { margin-top:2.5rem; }
.nrw-local-service h2 { font-size:1.7rem; }
.nrw-directory { display:grid; gap:2rem; }
.nrw-district-group { border:1px solid var(--nrw-line); border-radius:1rem; overflow:hidden; }
.nrw-district-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem 1rem; padding:1.3rem 1.5rem; background:#f1f7fb; }
.nrw-district-heading h2 { margin:0; font-size:1.45rem; }
.nrw-district-heading > span { font-weight:700; color:var(--nrw-teal); }
.nrw-directory-cities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0; margin:0; list-style:none; }
.nrw-directory-cities li { margin:0; min-width:0; }
.nrw-directory-cities a { display:flex; align-items:center; justify-content:space-between; gap:1rem; height:100%; min-height:92px; padding:1.2rem; color:var(--nrw-primary); text-decoration:none; border-top:1px solid var(--nrw-line); }
.nrw-directory-cities a:hover { background:var(--nrw-soft); }
.nrw-directory-cities small { display:block; font-size:.85rem; color:var(--nrw-muted); margin-top:.2rem; }
.nrw-code-small { font-weight:700; font-size:.95rem; padding:.35rem .55rem; border-radius:.4rem; background:var(--nrw-soft); flex-shrink:0; }
.nrw-related-cities { display:flex; flex-wrap:wrap; list-style:none; gap:.6rem; padding:0; margin:1.5rem 0; }
.nrw-related-cities li { margin:0; }
.nrw-related-cities a { display:flex; min-height:44px; align-items:center; padding:.6rem .9rem; border:1px solid var(--nrw-line); background:#fff; color:var(--nrw-primary); border-radius:.5rem; font-size:.9rem; }
.nrw-no-results { font-weight:700; }
@media (min-width:1200px) { .primary-nav { gap:.65rem; } .header-inner { gap:1rem; } }
@media (max-width:1199px) {
    .nav-online { justify-content:space-between; margin-bottom:.4rem; }
    .nrw-mobile-online { display:flex; width:100%; min-height:44px; align-items:center; justify-content:space-between; gap:.75rem; padding:.6rem .8rem; margin-top:.6rem; color:var(--nrw-primary); background:var(--nrw-soft); border-radius:.5rem; font-size:.9rem; font-weight:700; text-decoration:none; }
    .nrw-wish-grid { gap:2rem; }
    .nrw-directory-cities { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
    .nrw-wish-grid, .nrw-reading-grid, .nrw-next-step { grid-template-columns:minmax(0,1fr); }
    .nrw-wish-hero { padding-block:2rem 2.5rem; }
    .nrw-widget { max-width:480px; margin-inline:auto; }
    .nrw-check-cards { grid-template-columns:minmax(0,1fr); }
    .nrw-next-step { padding:1.5rem; gap:1rem; }
    .nrw-digital-card { padding:1.5rem; }
}
@media (max-width:520px) {
    .nrw-digital-cards, .nrw-directory-cities { grid-template-columns:minmax(0,1fr); }
    .nrw-wish-starter { padding:1.3rem; }
    .nrw-digital-card h3 { font-size:1.55rem; }
    .nrw-city-search .button { width:100%; }
    .nrw-widget { padding:1rem .65rem; }
    .nrw-widget .small-copy { padding-inline:.15rem; }
    .nrw-directory-cities a { min-height:85px; }
    .nrw-authority, .nrw-order-notice, .nrw-reservation-fact { padding:1.1rem; }
    .nrw-next-step .button { width:100%; }
}
@media print { .nrw-widget, .nrw-mobile-online, .nrw-city-search { display:none; } .nrw-wish-grid, .nrw-reading-grid { display:block; } }

.hero-card .button-light, .authority-card .button.secondary { color:#013260; background:#fff; border-color:#79949f; }
.hero-card .button-light:hover, .authority-card .button.secondary:hover { color:#fff; background:#013260; border-color:#013260; }

@media (max-width:800px) { .nrw-wish-hero .nrw-place-facts { display:none; } .nrw-wish-hero .lede { font-size:1rem; line-height:1.65; } }
/* Der Partner benötigt etwa 265 px: auf sehr schmalen Geräten bekommt der Frame die ganze Kartenbreite. */
@media (max-width:380px) {
    .nrw-widget { padding:1rem 0; }
    .nrw-widget > h2, .nrw-widget > p, .nrw-widget > .text-link, .nrw-widget > form { margin-inline:.7rem; }
}

/* Zulasio Ratgeber: bestehende Markenfarben, lesbare Texte, keine Fremdfonts. */
.guide-hero,.guide-article-header { background:var(--color-surface,#f1f7fb); padding:3.5rem 0; }
.guide-hero h1 { max-width:850px; font-size:clamp(2.25rem,5vw,4rem); }
.guide-hero p { max-width:740px; }
.guide-featured { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:3rem; padding:2.5rem; border:1px solid var(--color-line,#d4e1e9); border-radius:1rem; }
.guide-featured h2 { font-size:clamp(1.6rem,3vw,2.3rem); }
.guide-featured h2 a { color:var(--color-primary,#013260); text-decoration:none; }
.guide-featured h2 a:hover { text-decoration:underline; }
.guide-featured-note { background:var(--color-primary,#013260); color:#fff; padding:2rem; border-radius:.75rem; align-self:stretch; }
.guide-featured-note .eyebrow { color:#8bebdf; }
.guide-featured-note ul { list-style:none; padding:0; }
.guide-featured-note li { padding:.85rem 0; border-top:1px solid #507290; }
.guide-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.guide-category { background:#fff; border:1px solid var(--color-line,#d4e1e9); border-radius:1rem; padding:1.8rem; }
.guide-category h3 { font-size:1.35rem; }
.guide-category ul { padding:0; list-style:none; }
.guide-category li + li { border-top:1px solid var(--color-line,#d4e1e9); padding-top:1rem; }
.guide-category a { font-weight:700; display:flex; align-items:center; justify-content:space-between; gap:.6rem; min-height:44px; }
.guide-category p { margin-top:.2rem; font-size:1rem; }
.guide-article-header h1 { max-width:920px; font-size:clamp(2rem,4.1vw,3.3rem); line-height:1.14; }
.guide-article-header .lede { max-width:800px; }
.guide-byline { display:flex; flex-wrap:wrap; gap:.45rem 1.2rem; font-size:.9rem; }
.guide-layout { display:grid; grid-template-columns:minmax(0,760px) minmax(230px,1fr); gap:4rem; align-items:start; padding-block:2.5rem 4rem; }
.guide-content { grid-column:1; min-width:0; font-size:1.0625rem; line-height:1.8; }
.guide-content > section { margin-block:0 3rem; }
.guide-content h2 { font-size:clamp(1.6rem,2.8vw,2rem); line-height:1.25; margin-block:2.7rem 1rem; }
.guide-content h3 { font-size:1.2rem; margin-top:1.8rem; }
.guide-answer { border-left:5px solid var(--color-secondary,#00736e); background:var(--color-soft,#e5f6f2); padding:1.5rem; border-radius:0 .75rem .75rem 0; }
.guide-answer h2 { margin-top:0; font-size:1.3rem; }
.guide-answer p { margin-bottom:.6rem; }
.guide-sidebar { grid-column:2; grid-row:1 / span 2; position:sticky; top:1.5rem; border:1px solid var(--color-line,#d4e1e9); padding:1.5rem; border-radius:.8rem; }
.guide-sidebar h2 { font-size:1.1rem; margin-bottom:.8rem; }
.guide-sidebar ol { padding-left:1.4rem; margin:0; }
.guide-sidebar li { margin:0; }
.guide-sidebar a { display:block; min-height:44px; padding:.6rem 0; font-size:.95rem; line-height:1.45; }
.guide-table-wrap { max-width:100%; margin:1.5rem 0; }
.guide-table-wrap table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:1rem; }
.guide-table-wrap caption { text-align:left; font-weight:700; margin-bottom:.6rem; }
.guide-table-wrap th,.guide-table-wrap td { border:1px solid var(--color-line,#d4e1e9); padding:.8rem; vertical-align:top; overflow-wrap:anywhere; }
.guide-table-wrap th { text-align:left; background:var(--color-surface,#f1f7fb); }
.guide-table-wrap th:first-child { width:32%; }
.guide-note { border:1px solid var(--color-line,#d4e1e9); background:var(--color-surface,#f1f7fb); padding:1.5rem; border-radius:.75rem; }
.guide-note h3 { margin-top:0; }
.guide-steps { padding-left:1.5rem; }
.guide-steps li { padding-left:.3rem; margin-bottom:1.1rem; }
.guide-related { border-top:1px solid var(--color-line,#d4e1e9); }
.guide-related ul { list-style:none; padding:0; }
.guide-related li a { display:flex; align-items:center; gap:1rem; min-height:44px; padding:.5rem 0; }
.guide-sources { font-size:.95rem; overflow-wrap:anywhere; }
.guide-teaser { background:#e5f6f2; color:#173348; border:1px solid #b6dcd6; border-radius:1rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:2rem; }
.guide-teaser h2 { color:#013260; font-size:1.65rem; line-height:1.25; margin-bottom:.7rem; }
.guide-teaser p { max-width:660px; margin-bottom:.5rem; }
.guide-teaser .eyebrow { color:#00736e; }
.guide-teaser .button { flex-shrink:0; }
.answer-panel { border-left:4px solid #00736e; padding:1rem 1.25rem; margin:1.5rem 0; background:#e5f6f2; color:#173348; }
.answer-panel h2,.answer-panel h3 { color:#013260; font-size:1.25rem; margin:0 0 .6rem; }
.answer-panel p:last-child { margin-bottom:0; }
@media(max-width:950px) { .guide-layout { grid-template-columns:minmax(0,1fr); gap:2rem; } .guide-sidebar { position:static; grid-column:1; grid-row:2; } .guide-content { grid-row:3; } .guide-sidebar ol { columns:2; } .guide-sidebar li { break-inside:avoid; } .guide-teaser { align-items:flex-start; flex-direction:column; } }
@media(max-width:650px) { .guide-categories,.guide-featured { grid-template-columns:minmax(0,1fr); } .guide-featured { padding:1.4rem; gap:1.5rem; } .guide-hero,.guide-article-header { padding-block:2.4rem; } .guide-sidebar ol { columns:1; } .guide-featured-note { padding:1.4rem; } .guide-byline { flex-direction:column; } .guide-table-wrap th,.guide-table-wrap td { padding:.6rem; } .guide-content { font-size:1rem; } .guide-teaser { padding:1.4rem; } .guide-teaser .button { white-space:normal; } }
@media print { .guide-sidebar,.guide-teaser { display:none; } .guide-layout { display:block; } .guide-content { max-width:none; } }

/* v10.3: Entscheidungshilfe und Download ohne zusätzliches JavaScript. */
.guide-featured + .guide-featured { margin-top:1.5rem; }
.guide-options { display:grid; gap:1rem; margin-block:1.5rem; }
.guide-option { padding:1.4rem; border:1px solid var(--color-line); border-radius:.8rem; background:#fff; }
.guide-option h3 { margin:0 0 .7rem; }
.guide-option p { margin-bottom:.7rem; }
.guide-download { padding:1.5rem; border:1px solid #b6dcd6; border-radius:.8rem; background:#e5f6f2; color:#173348; }
.guide-download h2 { margin-top:0; }
.guide-download .button { max-width:100%; white-space:normal; }
.guide-checklist { padding-left:1.3rem; }
.guide-checklist li { padding-left:.2rem; margin-bottom:.7rem; }
.guide-faq details { border-block-end:1px solid var(--color-line); padding:.9rem 0; }
.guide-faq summary { min-height:44px; padding:.5rem 0; font-weight:700; color:var(--color-primary); }
.guide-faq details > p { margin-top:.8rem; }
.guide-layout > *, .guide-featured > *, .guide-teaser > div { min-width:0; }
.guide-teaser .button { max-width:100%; white-space:normal; }
.guide-article-header h1 { overflow-wrap:normal; word-break:normal; hyphens:auto; }
.guide-content .guide-note p:last-child, .guide-option p:last-child { margin-bottom:0; }
@media(max-width:650px) { .guide-option,.guide-download { padding:1.1rem; } }

/* V10: zusätzliche Fallhilfen. Keine Änderung an Formular- oder Bannerfunktionen. */
.local-editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem)}
.local-editorial{min-width:0;max-width:66ch}
.local-editorial h2{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.23;overflow-wrap:anywhere;hyphens:auto}
.local-editorial p{line-height:1.8}
.local-selector summary{min-height:48px;display:flex;align-items:center;gap:1rem;cursor:pointer}
.local-selector .button{margin-block:.6rem}
.local-contact-strip{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;margin-top:1.4rem}
.local-contact-strip a{display:inline-flex;align-items:center;min-height:44px;gap:.5rem;font-weight:700}
.local-jump-links{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-block:1rem}
.local-jump-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.18em}
@media(max-width:700px){.local-editorial-grid{grid-template-columns:minmax(0,1fr)}.local-editorial{max-width:none}.local-contact-strip{align-items:flex-start}.local-selector summary{line-height:1.5}}
@media print{.local-selector details>*{display:block}.local-editorial-grid{display:block}}

/* v10.2: Startüberschrift ohne Buchstabenabriss, passend zur verfügbaren Spalte. */
.home-hero .hero-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
}
.home-hero h1 {
    font-size: clamp(2rem, 3.65vw, 3.2rem);
    line-height: 1.12;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.home-hero h1 .home-hero-title {
    display: block;
    color: var(--color-primary);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.home-hero h1 .home-hero-region {
    display: block;
    color: var(--color-secondary);
    margin-top: .12em;
}
@media (min-width: 801px) {
    .home-hero h1 .home-hero-title { white-space: nowrap; }
}
@media (max-width: 800px) {
    .home-hero .hero-grid { grid-template-columns: minmax(0, 1fr); }
    .home-hero h1 { font-size: clamp(1.65rem, 6.65vw, 3rem); }
}
@media print {
    .home-hero .hero-grid { display: block; }
    .home-hero h1 { font-size: 24pt; }
    .home-hero h1 .home-hero-title { white-space: normal; }
}

/* Lesbare Navigation und lokale Leistungsübersicht. Keine Änderung der Markenfarben. */
.mega-title { color:var(--color-primary); font-size:1.7rem; font-weight:700; line-height:1.15; letter-spacing:-.035em; margin:0 0 1rem; overflow-wrap:anywhere; }
.mega-aside .mega-title { color:#fff; }
.mega-subtitle { color:var(--color-primary); font-size:1.1rem; font-weight:700; line-height:1.3; margin:0 0 1rem; }
.local-service-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.local-service-entry { border:1px solid #d8e3eb; border-radius:1rem; padding:1.35rem; background:#fff; min-width:0; }
.local-service-entry h3 { font-size:1.3rem; margin-bottom:1rem; }
.local-service-entry h3 a { text-decoration:none; }
.local-service-entry ul { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem 1rem; }
.local-service-entry li { min-width:0; }
.local-service-entry li a { display:block; padding:.3rem 0; line-height:1.5; font-size:.94rem; overflow-wrap:anywhere; text-underline-offset:3px; }
.home-hero .hero-card .phone-link { overflow-wrap:anywhere; }
@media (max-width:700px) { .local-service-directory { grid-template-columns:1fr; } .local-service-entry { padding:1.1rem; } }
@media (max-width:360px) { .local-service-entry ul { grid-template-columns:1fr; } }


/* Shared additions preserve the existing Zulasio palette and type system. */
.brand img{aspect-ratio:60/11;height:auto}
@media(min-width:981px){.site-header:has(.main-nav) .menu-toggle{display:none}}
@media(max-width:980px){.js .main-nav:not([data-open="true"]){display:none}.main-nav[data-open="true"]{display:flex}html:not(.js) .menu-toggle{display:none}}
[hidden]{display:none!important}
iframe[data-consent-src]:not([src]){display:none}
.partner-permission{min-height:320px;padding:24px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:#f1f7fb;color:#183153;text-align:left;border:1px solid #cbd9e3;border-radius:16px;font-size:15px;line-height:1.6}
.partner-permission p{margin:0 0 16px}
.partner-permission button,.privacy-actions button,.privacy-dialog-heading button{font:inherit;font-weight:700;cursor:pointer;background:#fff;color:#19335f;border:2px solid #19335f;border-radius:9px;padding:11px 16px;min-height:44px}
.privacy-banner{position:fixed;inset:auto 16px 16px;z-index:1000;max-width:1100px;margin:auto;padding:20px;background:#fff;color:#183153;border:1px solid #b8c8d6;border-radius:16px;box-shadow:0 8px 36px #132c4940;max-height:70vh;overflow:auto;font-size:14px;line-height:1.5}
.privacy-banner p{margin:6px 0 14px}.privacy-banner a,.privacy-dialog a{color:#174f83;text-decoration:underline}
.privacy-actions{display:flex;flex-wrap:wrap;gap:10px}.privacy-actions button{flex:1 1 150px}
.privacy-actions button:hover,.privacy-dialog-heading button:hover,.partner-permission button:hover{background:#eef5f8}
.privacy-dialog{background:#fff;color:#183153;width:min(680px,calc(100% - 28px));max-height:85vh;overflow:auto;border:1px solid #b8c8d6;border-radius:16px;padding:24px;font-size:16px;line-height:1.6;margin:auto}
.privacy-dialog::backdrop{background:#0c254bc2}.privacy-dialog h2{font-size:1.45rem;margin:0}.privacy-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.privacy-option{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-top:1px solid #dae4eb}.privacy-option input{flex:0 0 auto;width:22px;height:22px;margin-top:3px;accent-color:#19335f}
.privacy-footer-button{font:inherit;color:inherit;background:none;border:1px solid currentColor;border-radius:8px;padding:8px 12px;cursor:pointer;min-height:44px}
.privacy-noscript{padding:16px;background:#f1f7fb;color:#183153}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #007e78;outline-offset:4px}
.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.decision-card{border:1px solid #d0dfe7;border-radius:18px;background:#fff;padding:24px;color:#183153}.decision-card h3{font-size:1.2rem;margin-top:0}.decision-card p{line-height:1.7}
.choice-links{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.choice-links a{display:inline-flex;padding:10px 14px;border:1px solid #b7cad8;border-radius:8px;min-height:44px;align-items:center}
.cost-table-wrap{overflow:auto}.cost-table{border-collapse:collapse;width:100%;font-size:1rem}.cost-table th,.cost-table td{text-align:left;vertical-align:top;padding:14px;border-bottom:1px solid #ccdbe5}.cost-table th{background:#eef5f8}
.checklist-assistant{border:1px solid #cbdce5;border-radius:16px;padding:24px;background:#f4f8fb}.checklist-assistant label{display:block;font-weight:700;margin-bottom:8px}.checklist-assistant select{max-width:100%;width:100%;padding:12px;border:1px solid #91aabc;border-radius:8px;background:#fff;color:#183153;font:inherit}.checklist-assistant .assistant-result{margin-top:20px}
@media(max-width:700px){.decision-grid{grid-template-columns:1fr}.privacy-banner{inset:auto 8px 8px;padding:16px;max-height:60vh}.privacy-banner p{font-size:13px}.privacy-actions{gap:8px}.privacy-actions button{padding:10px;flex-basis:130px}.privacy-dialog{padding:18px}.privacy-dialog-heading{align-items:flex-start}.privacy-dialog-heading button{padding:8px;font-size:14px}.checklist-assistant{padding:18px}.cost-table th,.cost-table td{padding:10px}}
@media print{.privacy-banner,.privacy-dialog,.privacy-footer-button,.partner-permission{display:none!important}}

.privacy-inline-button{border:0;background:none;color:#174f83;text-decoration:underline;font:inherit;cursor:pointer;padding:0;min-height:24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html:has(#privacy-banner:not([hidden])){scroll-padding-bottom:280px}
@media(max-width:700px){.privacy-banner{padding:12px}.privacy-banner p{font-size:12px;line-height:1.45;margin-bottom:10px}.privacy-banner .privacy-actions button{padding:8px;font-size:12px}}
@media(max-width:480px){.privacy-dialog-heading{flex-direction:column;align-items:flex-start;gap:10px}.privacy-dialog h2{font-size:1.25rem;overflow-wrap:normal;word-break:normal}.privacy-dialog-heading button{align-self:flex-end}.privacy-option span{font-weight:400}}


/* Nationale Verzeichnisse: bestehende Markenfarben, eigenständige lesbare Komponenten. */
.de-hero{background:#f1f7fa;padding:42px 0 36px;color:#19335f}
.de-hero h1{font-size:clamp(1.85rem,3.6vw,3.25rem);line-height:1.13;letter-spacing:-.035em;max-width:24ch;word-break:normal;overflow-wrap:normal;hyphens:manual;margin:12px 0 20px}
.de-hero .lede{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7;max-width:66ch}
.de-hero-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:48px;align-items:center}
.de-facts{background:#19335f;color:#fff;border-radius:20px;padding:28px;box-shadow:9px 9px 0 #63bbb5}
.de-facts p,.de-facts dd,.de-facts a{color:#fff}.de-facts a{text-decoration:underline;text-underline-offset:4px}
.de-facts .eyebrow{color:#9dece2}.de-facts dl{margin:0}.de-facts dl div{padding:12px 0;border-bottom:1px solid #647998}.de-facts dt{font-size:.85rem;color:#cde0ed}.de-facts dd{font-weight:700;margin:4px 0}.de-facts>p:last-child{font-size:.86rem;margin-bottom:0}
.de-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:28px;padding-bottom:24px}
.de-offer{border:1px solid #c7d9e3;border-radius:20px;overflow:hidden;box-shadow:0 8px 25px #19335f08;background:#fff;min-width:0}
.de-offer-head{padding:24px 26px 20px}.de-offer h2{font-size:1.45rem;line-height:1.25;margin:8px 0 12px;letter-spacing:-.015em;overflow-wrap:break-word}.de-offer-head p:not(.eyebrow){margin:0 0 18px}.de-offer .button{width:100%;justify-content:center;min-height:48px;white-space:normal;text-align:center}
.de-widget{padding:0 22px;max-width:100%;text-align:center}.de-widget iframe{border:0;max-width:100%;margin:0 auto;background:#f1f7fa;border-radius:12px}.de-widget .partner-permission{min-height:185px;padding:20px;margin:0}.de-widget .partner-permission[hidden]{display:none}
.de-offer-foot{font-size:.78rem;line-height:1.5;padding:16px 26px;margin:0;color:#4d6177}
.de-plate-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:20px}.de-plate-picker label{font-weight:700;width:auto;flex:0 0 auto;margin:0}.de-plate-picker select{min-height:44px;min-width:95px;width:110px;flex:0 0 110px;margin:0}.de-plate-picker p{margin:0}
.de-quick-links{display:flex;flex-wrap:wrap;gap:12px 24px}.de-quick-links a{padding:8px 0;font-weight:650;text-underline-offset:4px}.de-page-jumps{border-bottom:1px solid #d5e1e9;padding-bottom:16px}
.de-content-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:48px;align-items:start}.de-content-grid>article{min-width:0}.de-content-grid article,.de-reading{line-height:1.8}.de-reading{max-width:850px;margin:40px auto 0}.de-content-grid h2,.de-reading h2{font-size:clamp(1.5rem,2.7vw,2.1rem);line-height:1.2;margin:0 0 20px}.de-content-grid h3,.de-reading h3{font-size:1.2rem;line-height:1.3;margin:30px 0 12px}.de-content-grid p,.de-reading p{margin:0 0 20px}
.de-local-panel{padding:26px;border:1px solid #cedee6;border-radius:18px;background:#f8fbfc;min-width:0}.de-local-panel h2{font-size:1.5rem}.de-local-panel dl div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #d5e1e9}.de-local-panel dd{text-align:right;margin:0}.de-local-panel dt{font-weight:600}.de-local-panel .button{white-space:normal}.de-local-panel .de-office{border:0;padding:0;background:transparent}.de-local-panel .de-offices{display:block}
.de-office h3{font-size:1.12rem;margin:0 0 12px}.de-office address{font-style:normal;margin:0 0 14px}.de-office p{margin:8px 0}.de-office a{overflow-wrap:anywhere}.de-offices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:20px}.de-office{border:1px solid #d4e0e8;border-radius:14px;padding:24px;background:#f8fbfc}
.de-table-scroll{overflow:auto;max-width:100%;margin:24px 0}.de-table{width:100%;border-collapse:collapse;font-size:.94rem}.de-table caption{text-align:left;font-weight:700;padding:0 0 12px}.de-table th,.de-table td{padding:14px 12px;border:1px solid #d3e0e8;text-align:left;vertical-align:top;overflow-wrap:anywhere;hyphens:auto}.de-table thead{background:#19335f;color:#fff}.de-table tbody th{background:#f1f7fa;width:31%;color:#19335f}
.de-check{border:1px solid #b9d4df;border-radius:12px;margin:26px 0;background:#f1f7fa}.de-check summary{font-weight:700;padding:18px;cursor:pointer}.de-check>div{padding:0 18px 18px}.de-check label{display:flex;gap:12px;padding:10px 0;align-items:start;min-height:44px;font-weight:400}.de-check input{width:20px;height:20px;flex:0 0 20px;accent-color:#19335f;margin-top:5px}.de-check [role=status]{margin:15px 0 0;font-size:.9rem}
.de-steps{list-style:none;counter-reset:de-step;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;padding:0}.de-steps li{counter-increment:de-step;background:#f1f7fa;padding:22px;border-radius:15px}.de-steps li:before{content:'0' counter(de-step);font-size:1.5rem;font-weight:800;color:#267976}.de-steps h3{font-size:1.1rem;margin:14px 0}.de-steps p{font-size:.94rem;line-height:1.65;margin:0}
.de-crosslink{background:#19335f;color:#fff;border-radius:18px;padding:30px;margin:40px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:30px}.de-crosslink h2{color:#fff;font-size:1.5rem;margin:0 0 10px}.de-crosslink p{color:#d8e8f2;margin:0}.de-crosslink .button{background:#9dece2;color:#123445;flex-shrink:0}
.de-search{max-width:700px;margin:24px 0}.de-search label{font-weight:700;display:block;margin-bottom:9px}.de-search>div{display:flex;gap:12px}.de-search input{width:100%;min-width:0;padding:14px;border:1px solid #9ab4c3;border-radius:9px;font:inherit;background:#fff;color:#19335f}
.de-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.de-state-card{padding:22px;background:#f1f7fa;border:1px solid #d1e0e9;border-radius:14px;text-decoration:none}.de-state-card strong{font-size:1.1rem;display:block}.de-state-card span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.9rem;margin-top:10px}.de-state-card:hover{border-color:#267976;background:#e4f4f1}.de-state-card svg{width:20px;height:20px}
.de-city-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.de-city-card{padding:22px;border:1px solid #d1e0e9;border-radius:14px;background:#fff;min-width:0}.de-city-card h3{font-size:1.17rem;line-height:1.35;margin:0 0 14px}.de-city-card p{font-size:.9rem;margin:10px 0}.de-city-card>a{display:block;padding:6px 0;font-size:.95rem}.de-codes{color:#267976;font-weight:750;letter-spacing:.04em}.de-source{padding-top:24px;margin-top:36px;border-top:1px solid #cfdee7;font-size:.84rem;line-height:1.7;color:#4d6177;max-width:850px}.de-source p{margin:0 0 8px}.de-related{columns:3;padding-left:20px}.de-related li{break-inside:avoid;padding:6px 0}
@media(max-width:1024px){.de-hero-grid,.de-content-grid{gap:28px;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.de-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.de-city-list{grid-template-columns:repeat(2,minmax(0,1fr))}.de-crosslink{align-items:start;flex-direction:column}.de-related{columns:2}}
@media(max-width:767px){.de-hero{padding:28px 0}.de-hero-grid,.de-content-grid,.de-offers{grid-template-columns:1fr}.de-facts{box-shadow:5px 5px 0 #63bbb5;padding:22px}.de-facts dl{display:flex;flex-wrap:wrap;gap:10px 22px}.de-facts dl div{flex:1 1 0;min-width:0}.de-facts dt{font-size:.78rem}.de-facts dd{font-size:.95rem}.de-facts>p:last-child{font-size:.78rem;line-height:1.5}.de-offers{gap:18px;padding-top:22px}.de-state-grid,.de-city-list{grid-template-columns:repeat(2,minmax(0,1fr))}.de-content-grid{gap:28px}.de-offer-head{padding:22px}.de-offer h2{font-size:1.4rem}.de-local-panel{padding:22px}.de-hero h1{max-width:100%}.de-table th,.de-table td{padding:10px 8px}.de-reading{margin-top:20px}}
@media(max-width:430px){.de-hero h1{font-size:clamp(1.65rem,7.3vw,1.9rem)}.de-state-grid,.de-city-list,.de-steps{grid-template-columns:1fr}.de-related{columns:1}.de-search>div{flex-direction:column}.de-quick-links{gap:6px 18px}.de-offer-head{padding:20px}.de-offer-head .button{font-size:.92rem}.de-offers.wrap{width:calc(100% - 16px)}.de-widget{padding:0}.de-offer-foot{padding:16px 20px}.de-crosslink{padding:22px}.de-crosslink .button{white-space:normal}.de-plate-picker .small-copy{flex-basis:100%}.de-local-panel dl div{display:block}.de-local-panel dd{text-align:left;margin:3px 0}.de-table{font-size:.88rem}}

