.modern-site { --ink:#0b164e; --muted:#5872a5; --green:#087509; background:#fff; color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
.modern-site .site-shell { width:calc(100% - 104px); max-width:1440px; margin-inline:auto; }
.modern-site .site-icon { width:32px; height:32px; flex-shrink:0; }
.modern-site a:is(.site-brand,.header-phone,.site-nav-link,.site-button,.hero-cancellation), .modern-site .site-footer a { font-family:inherit; font-size:inherit; }
.modern-site a:focus-visible,.modern-site button:focus-visible { outline:3px solid #087509; outline-offset:5px; }
.site-header { border-bottom:1px solid #e8edf3; background:#fff; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:86px; }
.modern-site .site-brand { display:flex; align-items:center; gap:12px; color:var(--green); text-decoration:none; flex-shrink:0; }
.site-brand-logo { display:block; height:50px; width:auto; flex-shrink:0; }
.site-brand-text { min-width:0; }
.site-brand strong { display:block; font-size:28px; letter-spacing:-.6px; }
.site-brand span { display:block; color:var(--muted); font-size:16px; }
.site-navigation { padding:0; }
.site-navigation .navbar-collapse { gap:30px; }
.modern-site .site-nav-link { color:var(--ink); text-decoration:none; padding:26px 0 10px; margin-bottom:12px; white-space:nowrap; border-bottom:2px solid transparent; }
.modern-site .site-nav-link:hover,.modern-site .site-nav-link.is-active { color:var(--green); border-bottom-color:var(--green); }
.modern-site .header-phone { display:flex; align-items:center; gap:17px; color:var(--ink); text-decoration:none; white-space:nowrap; }
.header-phone strong { display:block; font-size:21px; }
.header-phone small { display:block; font-size:16px; text-align:right; }
.menu-label { margin-left:8px; font-size:16px; }
.home-hero { position:relative; overflow:hidden; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.home-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 24%,rgba(255,255,255,.77) 38%,rgba(255,255,255,0) 65%); pointer-events:none; }
.hero-inner { position:relative; z-index:1; padding-top:40px; padding-bottom:20px; }
.hero-copy { max-width:690px; }
.hero-eyebrow { font-size:16px; color:var(--muted); margin:0 0 10px; }
.hero-copy h1 { font-size:clamp(32px,3.4vw,50px); font-weight:750; line-height:1.1; letter-spacing:-1px; margin:0 0 12px; }
.hero-subtitle { font-size:30px; line-height:1.3; margin-bottom:8px; }
.hero-description { color:var(--muted); font-size:21px; line-height:1.4; max-width:520px; margin-bottom:24px; }
.hero-actions { display:flex; gap:22px; }
.modern-site .site-button { display:inline-flex; gap:16px; align-items:center; justify-content:center; min-height:60px; padding:12px 20px; border-radius:5px; font-size:18px; font-weight:600; text-decoration:none; line-height:1.25; }
.modern-site .site-button.primary { background:linear-gradient(#20a00c,#066308); color:white; border:1px solid #128209; }
.modern-site .site-button.secondary { color:var(--ink); background:rgba(255,255,255,.9); border:1px solid #778cb5; }
.site-button .site-icon:last-child { width:24px; }
.modern-site .hero-cancellation { position:absolute; z-index:2; top:18px; right:24px; padding:5px 10px; background:rgba(255,239,241,.72); color:#905c64; border:1px solid rgba(181,132,142,.18); border-radius:4px; font-size:12px; text-decoration:underline; }
.trust-section { padding:15px 0; }
.trust-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.trust-item { display:flex; gap:16px; align-items:center; position:relative; }
.trust-item:not(:last-child):after { content:""; position:absolute; right:-10px; height:48px; width:1px; background:#c9ceda; }
.trust-icon { display:flex; align-items:center; justify-content:center; width:86px; height:86px; border-radius:50%; background:linear-gradient(135deg,#eafbdd,#f6fbf2); color:var(--green); flex-shrink:0; }
.trust-icon .site-icon { width:52px; height:52px; }
.trust-item p { margin:0; font-size:17px; line-height:1.5; }
.trust-item strong { display:block; font-size:19px; }
.trust-item p span { display:block; color:var(--muted); }
.home-services { background:#eff7f4; padding:35px 0; }
.home-services h2,.home-information h2 { font-size:36px; font-weight:700; letter-spacing:-.7px; margin:0 0 6px; }
.services-intro { color:var(--muted); font-size:19px; line-height:1.4; margin-bottom:24px; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.service-card { display:flex; gap:22px; background:#fff; border-radius:6px; padding:28px 24px; }
.service-card>.site-icon { width:52px; height:52px; color:var(--green); }
.service-card h3 { font-size:17px; font-weight:700; margin:4px 0 8px; line-height:1.3; }
.service-card p { font-size:16px; color:var(--muted); line-height:1.4; margin:0; }
/* Lower homepage and shared footer; the approved upper sections stay unchanged. */
.modern-site .hero-cancellation:hover { color:#76454d; background:rgba(255,231,235,.9); text-decoration:underline !important; }
.home-highlights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding-block:32px; }
.home-highlights article { min-width:0; border-radius:6px; padding:32px; }
.home-highlights h2 { font-size:28px; font-weight:700; line-height:1.25; letter-spacing:-.5px; margin:0 0 18px; }
.home-experience { background:#176328; color:#fff; }
.home-experience p { font-size:17px; line-height:1.6; margin-bottom:0; max-width:520px; }
.home-experience .experience-lead { font-size:20px; font-weight:600; margin-bottom:14px; }
.home-pricing { background:#f4f8f6; border:1px solid #e0e9e5; }
.home-pricing h2 { font-size:23px; }
.home-price { color:var(--green); font-size:clamp(28px,2.7vw,38px); line-height:1.15; font-weight:700; letter-spacing:-.5px; margin:0 0 6px; }
.home-price-period { color:var(--muted); font-size:18px; margin:0 0 16px; }
.home-price-note { color:var(--muted); font-size:15px; line-height:1.5; margin-bottom:20px; }
.home-price-actions { display:flex; flex-wrap:wrap; gap:12px; }
.home-price-actions .site-button { min-height:52px; font-size:16px; }
.home-faq { padding-block:8px 48px; }
.home-faq h2 { font-size:32px; font-weight:700; letter-spacing:-.5px; margin:0 0 6px; }
.home-faq-intro { color:var(--muted); font-size:19px; margin-bottom:12px; }
.home-faq-context { color:var(--muted); font-size:14px; line-height:1.5; max-width:900px; margin-bottom:24px; }
.home-faq-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; margin-bottom:24px; }
.home-faq-item { border:1px solid #e0e7ec; border-radius:6px; background:white; min-width:0; }
.home-faq-item summary { cursor:pointer; padding:20px 24px; font-size:17px; font-weight:600; line-height:1.45; }
.home-faq-item summary::marker { color:var(--green); }
.home-faq-item summary:hover { background:#f4f8f6; border-radius:6px; }
.home-faq-item summary:focus-visible { outline:3px solid var(--green); outline-offset:3px; border-radius:6px; }
.home-faq-answer { padding:0 24px 8px; color:var(--muted); font-size:16px; line-height:1.65; overflow-wrap:anywhere; }
.home-faq-answer p { margin-bottom:16px; }
.site-footer { border-top:1px solid #172140; background:#111b38; color:#e7ecf5; padding:32px 0 20px; }
.footer-main { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:32px; }
.modern-site .site-footer a { color:#dbe3f1; font-size:14px; font-family:inherit; text-decoration:none; }
.modern-site .site-footer a:hover { color:#fff; text-decoration:underline !important; }
.modern-site .site-footer .footer-brand { color:#fff; }
.footer-brand strong { display:block; font-size:23px; line-height:1.3; }
.footer-brand span { display:block; font-size:14px; margin-top:5px; color:#c4cede; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:12px 20px; }
.footer-navigation { justify-content:center; padding-top:8px; }
.footer-phone { text-align:right; }
.footer-phone strong { display:block; font-size:18px; white-space:nowrap; }
.footer-phone span { display:block; font-size:14px; color:#c4cede; margin-top:4px; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; margin-top:28px; padding-top:18px; border-top:1px solid #303a53; }
.footer-copyright { font-size:13px; color:#acb9cf; }
@media(max-width:1199px) {
    .footer-main { grid-template-columns:minmax(0,1fr) auto; gap:24px; }
    .footer-navigation { grid-column:1 / -1; grid-row:2; justify-content:flex-start; padding-top:0; }
}
@media(max-width:767px) {
    .home-highlights { grid-template-columns:1fr; padding-block:24px; }
    .home-highlights article { padding:24px; }
    .home-highlights h2 { font-size:26px; }
    .home-pricing h2 { font-size:23px; }
    .home-faq-list { grid-template-columns:1fr; }
    .home-faq h2 { font-size:29px; }
    .home-faq-item summary { padding:18px 20px; }
    .home-faq-answer { padding-inline:20px; }
    .footer-bottom { align-items:flex-start; flex-direction:column; }
    .footer-bottom nav { order:-1; }
}
@media(max-width:479px) {
    .home-price-actions { flex-direction:column; }
    .home-price-actions .site-button { width:100%; }
    .modern-site .home-faq-link { font-size:16px; width:100%; padding-inline:12px; gap:10px; }
    .footer-main { grid-template-columns:minmax(0,1fr); }
    .footer-navigation { grid-column:auto; grid-row:auto; }
    .footer-phone { text-align:left; }
}
.legacy-content { padding-block:32px; min-height:55vh; }
.legacy-content .h1-main,.legacy-content .h2-main { color:var(--ink); }
.skip-link { position:fixed; left:16px; top:-100px; z-index:10000; background:white; padding:12px; }
.skip-link:focus { top:8px; }
@media(min-width:1600px) { .hero-inner { padding-block:48px 30px; } }
@media(max-width:1399px) { .header-inner { gap:18px; } .site-brand strong { font-size:24px; } .site-navigation .navbar-collapse { gap:20px; } .header-phone strong { font-size:18px; } .header-phone small { font-size:14px; } .trust-icon { width:68px; height:68px; } .trust-item { gap:12px; } .trust-item strong { font-size:17px; } .trust-item p { font-size:15px; } .service-card { gap:16px; padding:24px 18px; } .service-card>.site-icon { width:44px; height:44px; } }
@media(max-width:1199px) { .header-inner { flex-wrap:wrap; padding-block:14px; } .header-inner>div { order:3; width:100%; } .site-navigation { display:block; } .site-navigation .navbar-collapse { padding-top:12px; } .modern-site .site-nav-link { display:block; padding:12px 8px; margin:0; } .hero-copy { max-width:620px; } .hero-copy h1 { font-size:42px; } .hero-subtitle { font-size:26px; } .hero-description { font-size:19px; } .hero-actions { gap:12px; } .modern-site .site-button { font-size:16px; gap:10px; } .trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } .trust-item:after { display:none; } .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .desktop-break { display:none; } }
@media(max-width:767px) { .modern-site .site-shell { width:calc(100% - 40px); } .header-inner { gap:12px; } .site-brand strong { font-size:23px; } .site-brand span { font-size:13px; } .header-phone .site-icon { width:24px; } .header-phone strong { font-size:16px; } .header-phone small { font-size:12px; } .modern-site .header-phone { gap:8px; } .hero-image { position:relative; height:220px; object-position:right center; display:block; } .home-hero:after { display:none; } .hero-inner { padding-block:28px; } .hero-copy h1 { font-size:clamp(30px,5.6vw,40px); } .hero-eyebrow { font-size:12px; } .hero-subtitle { font-size:23px; } .hero-description { font-size:18px; } .hero-actions { flex-wrap:wrap; } .modern-site .site-button { flex:1 1 240px; } .modern-site .hero-cancellation { top:14px; right:20px; } .trust-grid { gap:20px 12px; } .trust-item { align-items:flex-start; } .trust-icon { width:48px; height:48px; } .trust-icon .site-icon { width:32px; height:32px; } .trust-item strong { font-size:15px; } .trust-item p { font-size:14px; } .home-services h2 { font-size:29px; } .services-intro { font-size:17px; } .service-card { padding:20px; } }
@media(max-width:479px) { .header-phone { width:100%; } .header-phone small { text-align:left; } .header-phone span { display:flex; align-items:center; gap:10px; } .trust-grid,.service-grid { grid-template-columns:1fr; } .trust-item { align-items:center; } .trust-item strong { font-size:18px; } .trust-item p { font-size:16px; } .trust-icon { width:64px; height:64px; } .trust-icon .site-icon { width:42px; height:42px; } .hero-copy h1 { letter-spacing:-.7px; font-size:30px; } }

/* Keep the mobile price buttons compact when their container stacks vertically. */
@media (max-width:767px) {
    .modern-site .home-price-actions .site-button {
        flex:0 0 auto;
        min-height:60px;
        padding:12px 20px;
    }
}

/* Ihr Jugendschutzbeauftragter: page-scoped additions to the homepage design. */
.modern-site .jsb-profile { max-width:960px; margin-inline:auto; padding-block:12px 24px; overflow-wrap:break-word; }
.jsb-profile-heading { padding-bottom:32px; }
.jsb-profile h1 { font-size:clamp(28px,2.8vw,38px); font-weight:700; line-height:1.25; letter-spacing:-.7px; margin:0; }
.jsb-profile-section { padding-block:32px; }
.jsb-profile h2 { font-size:28px; font-weight:700; line-height:1.3; letter-spacing:-.5px; margin:0 0 20px; }
.jsb-profile p { max-width:76ch; font-size:18px; line-height:1.7; margin:0 0 16px; }
.jsb-profile-section p:last-child { margin-bottom:0; }
.jsb-profile-contact { margin-top:8px; padding:32px; border:1px solid #e0e9e5; border-radius:6px; background:#f4f8f6; }
.jsb-profile-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.modern-site .jsb-profile-actions .site-button { flex:0 1 auto; min-height:52px; font-size:16px; gap:10px; }
.jsb-profile .jsb-profile-signature { color:var(--green); font-size:16px; margin:24px 0 0; }
@media(max-width:767px) {
    .modern-site .jsb-profile { padding-block:0 8px; }
    .jsb-profile-heading { padding-bottom:24px; }
    .jsb-profile-section { padding-block:24px; }
    .jsb-profile h2 { font-size:24px; margin-bottom:16px; }
    .jsb-profile p { font-size:17px; line-height:1.65; }
    .jsb-profile-contact { padding:24px; }
}
@media(max-width:479px) {
    .jsb-profile-actions { flex-direction:column; }
    .modern-site .jsb-profile-actions .site-button { flex:0 0 auto; width:100%; padding-inline:12px; }
}

/* Distinct visual weights for the three existing profile sections. */
.jsb-profile .jsb-profile-practice { display:grid; grid-template-columns:64px minmax(0,1fr); gap:28px; padding:32px; background:#eff7f4; border-radius:6px; }
.jsb-profile-practice-icon { color:var(--green); padding-top:2px; }
.modern-site .jsb-profile-practice-icon .site-icon { width:64px; height:64px; }
.jsb-profile-practice-copy { min-width:0; }
.jsb-profile .jsb-profile-experience { padding-block:36px; }
.jsb-profile-metrics { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:24px; margin-bottom:24px; }
.jsb-profile-metric { border-left:3px solid var(--green); padding:8px 0 8px 16px; min-width:0; }
.jsb-profile-metric strong { display:block; color:var(--green); font-size:clamp(22px,2.2vw,28px); line-height:1.3; letter-spacing:-.5px; }
.jsb-profile .jsb-profile-principle { padding:4px 0; margin-bottom:32px; }
.jsb-profile .jsb-profile-principle h2 { color:var(--green); border-left:3px solid var(--green); padding:8px 0 8px 16px; }
@media(max-width:767px) {
    .jsb-profile .jsb-profile-practice { grid-template-columns:1fr; gap:16px; padding:24px; }
    .modern-site .jsb-profile-practice-icon .site-icon { width:40px; height:40px; }
    .jsb-profile-practice-icon { padding-top:0; }
    .jsb-profile .jsb-profile-experience { padding-block:28px; }
    .jsb-profile-metrics { gap:16px; }
    .jsb-profile-metric { padding-left:12px; }
    .jsb-profile .jsb-profile-principle { margin-bottom:28px; }
    .jsb-profile .jsb-profile-principle h2 { padding-left:12px; }
}
@media(max-width:479px) {
    .jsb-profile-metrics { grid-template-columns:1fr; gap:12px; margin-bottom:20px; }
    .jsb-profile-metric { padding-block:4px; }
    .jsb-profile .jsb-profile-principle h2 { padding-block:4px; }
}

/* Leistungen: scoped accordion cards using the existing Bootstrap collapse plugin. */
.modern-site .services-page { max-width:960px; margin-inline:auto; padding-block:12px 24px; overflow-wrap:break-word; }
.services-page-heading { margin-bottom:32px; }
.services-page h1 { font-size:clamp(28px,2.8vw,38px); font-weight:700; line-height:1.25; letter-spacing:-.7px; margin:0 0 16px; }
.services-page-heading p { max-width:76ch; color:var(--muted); font-size:18px; line-height:1.7; margin:0; }
.services-accordion { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.services-accordion-card { min-width:0; border:1px solid #e0e7ec; border-radius:6px; background:#fff; }
.services-accordion-heading { margin:0; font-size:18px; line-height:1.45; }
.modern-site .services-accordion-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:96px; padding:20px 24px; border:0; border-radius:6px; background:#f4f8f6; color:var(--ink); font:inherit; font-weight:600; text-align:left; cursor:pointer; white-space:normal; }
.services-accordion-toggle span { min-width:0; }
.services-accordion-toggle:hover { background:#eff7f4; }
.services-chevron { width:24px; height:24px; flex-shrink:0; color:var(--green); }
.services-accordion-toggle[aria-expanded="true"] .services-chevron { transform:rotate(180deg); }
.services-accordion .collapsing { transition:none; }
.services-accordion-answer { padding:20px 24px 24px; font-size:17px; line-height:1.65; }
.services-accordion-answer p { margin:0 0 16px; }
.services-accordion-answer p:last-child { margin-bottom:0; }
.services-accordion-answer .services-legal-note { padding:16px; border-left:3px solid #b8d9bc; background:#f4f8f6; border-radius:0 4px 4px 0; }
.services-contact { margin-top:32px; padding:32px; border:1px solid #e0e9e5; border-radius:6px; background:#f4f8f6; }
.services-contact h2 { font-size:28px; line-height:1.3; font-weight:700; letter-spacing:-.5px; margin:0 0 16px; }
.services-contact p { font-size:18px; line-height:1.7; margin:0 0 24px; }
.modern-site .services-contact .site-button { flex:0 0 auto; min-height:52px; font-size:16px; gap:10px; }
@media(max-width:767px) {
    .modern-site .services-page { padding-block:0 8px; }
    .services-page-heading { margin-bottom:24px; }
    .services-page-heading p,.services-contact p { font-size:17px; line-height:1.65; }
    .services-accordion { grid-template-columns:1fr; gap:16px; }
    .modern-site .services-accordion-toggle { min-height:64px; padding:18px 20px; }
    .services-accordion-answer { padding:16px 20px 20px; }
    .services-contact { margin-top:24px; padding:24px; }
    .services-contact h2 { font-size:24px; }
}
@media(max-width:479px) {
    .modern-site .services-contact .site-button { width:100%; padding-inline:12px; }
}

/* Leistungen: retain keyboard focus while suppressing the browser mouse-focus ring. */
.modern-site .services-accordion-toggle:focus { outline:2px solid var(--green); outline-offset:2px; }
.modern-site .services-accordion-toggle:focus:not(:focus-visible) { outline:none; }
.modern-site .services-accordion-toggle:focus-visible { outline:2px solid var(--green); outline-offset:2px; }

/* FAQ: reuse the services accordion in a compact, single-column layout. */
.faq-page .services-accordion { grid-template-columns:1fr; gap:16px; }
.faq-page .faq-topic + .faq-topic { margin-top:36px; }
.faq-page .faq-topic-title { font-size:28px; line-height:1.3; font-weight:700; letter-spacing:-.5px; margin:0 0 20px; }
.modern-site .faq-page .services-accordion-toggle { min-height:64px; }
.faq-page .services-accordion-answer ul { margin:0 0 16px; padding-left:24px; }
.faq-page .services-accordion-answer li + li { margin-top:8px; }
@media(max-width:767px) {
    .faq-page .faq-topic + .faq-topic { margin-top:28px; }
    .faq-page .faq-topic-title { font-size:24px; margin-bottom:16px; }
}

/* FAQ section heads and open-state accent, without changing card geometry. */
.faq-page .faq-topic-heading { display:flex; align-items:flex-start; gap:16px; margin-bottom:20px; }
.faq-page .faq-topic-heading-copy { min-width:0; }
.faq-page .faq-topic-heading .faq-topic-title { margin:0 0 6px; }
.faq-page .faq-topic-subtitle { color:var(--muted); font-size:17px; line-height:1.5; margin:0; }
.faq-page .faq-topic-icon { display:flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; height:48px; border-radius:6px; background:#eff7f4; color:var(--green); }
.modern-site .faq-page .faq-topic-icon .site-icon { width:28px; height:28px; }
.faq-page .services-accordion-card { position:relative; }
.faq-page .services-accordion-card:has(.services-accordion-toggle[aria-expanded="true"])::before { content:""; position:absolute; inset:-1px auto -1px -1px; width:3px; border-radius:6px 0 0 6px; background:var(--green); pointer-events:none; z-index:1; }
@media(max-width:767px) {
    .faq-page .faq-topic-heading { gap:12px; margin-bottom:16px; }
    .faq-page .faq-topic-icon { flex-basis:40px; width:40px; height:40px; }
    .modern-site .faq-page .faq-topic-icon .site-icon { width:24px; height:24px; }
    .faq-page .faq-topic-subtitle { font-size:16px; }
}

/* Privacy notice: document typography within the established subpage width. */
.privacy-page .privacy-date { font-size:15px; margin-bottom:20px; }
.privacy-page .privacy-section + .privacy-section { margin-top:36px; }
.privacy-page .privacy-section h2 { color:var(--ink); font-size:28px; font-weight:700; line-height:1.3; letter-spacing:-.5px; margin:0 0 20px; }
.privacy-page .privacy-section h3 { color:var(--ink); font-size:21px; font-weight:700; line-height:1.4; margin:24px 0 16px; }
.privacy-page .privacy-section p,.privacy-page .privacy-section ul,.privacy-page address { font-size:18px; line-height:1.7; margin:0 0 16px; text-align:left; }
.privacy-page .privacy-section > :last-child { margin-bottom:0; }
.privacy-page .privacy-section ul { padding-left:24px; }
.privacy-page .privacy-section li + li { margin-top:8px; }
.modern-site .privacy-page .privacy-section a { color:var(--green); font:inherit; text-decoration:underline; overflow-wrap:anywhere; }
.privacy-page code { color:var(--ink); font-size:.95em; }
.privacy-page .privacy-contact { display:flex; align-items:flex-start; gap:20px; padding:24px; margin-bottom:20px; background:#eff7f4; border-radius:6px; }
.privacy-page .privacy-contact-icon { color:var(--green); flex:0 0 32px; }
.privacy-page .privacy-contact address { min-width:0; font-style:normal; margin:0; }
@media(max-width:767px) {
    .privacy-page .privacy-section + .privacy-section { margin-top:28px; }
    .privacy-page .privacy-section h2 { font-size:24px; margin-bottom:16px; }
    .privacy-page .privacy-section h3 { font-size:20px; }
    .privacy-page .privacy-section p,.privacy-page .privacy-section ul,.privacy-page address { font-size:17px; line-height:1.65; }
    .privacy-page .privacy-contact { gap:12px; padding:20px; }
    .privacy-page .privacy-contact-icon { flex-basis:24px; }
    .modern-site .privacy-page .privacy-contact-icon .site-icon { width:24px; height:24px; }
}

/* Online cancellation: scoped form styles. */
.cancellation-page .kuendigung-form-group { margin-bottom:24px; min-width:0; }
.cancellation-page .kuendigung-label-row { display:flex; gap:6px; align-items:baseline; }
.cancellation-page label { display:block; color:var(--ink); font-size:18px; font-weight:700; line-height:1.5; margin-bottom:8px; }
.cancellation-page .kuendigung-required { color:var(--green); }
.cancellation-page input,.cancellation-page textarea { display:block; width:100%; min-width:0; box-sizing:border-box; padding:12px 14px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; color:var(--ink); font:inherit; font-size:18px; line-height:1.5; }
.cancellation-page textarea { resize:vertical; }
.cancellation-page input:focus,.cancellation-page textarea:focus { outline:2px solid var(--green); outline-offset:2px; border-color:var(--green); }
.cancellation-page .kuendigung-form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.cancellation-page .kuendigung-form-col { min-width:0; }
.cancellation-page .kuendigung-form-hint { color:var(--muted); font-size:16px; line-height:1.65; margin:0 0 24px; }
.modern-site .cancellation-page .kuendigung-form-hint a { color:var(--green); font:inherit; text-decoration:underline; white-space:nowrap; }
.cancellation-page .kuendigung-message { padding:16px 20px; margin:0 0 24px; border-radius:6px; font-size:18px; line-height:1.65; overflow-wrap:anywhere; }
.cancellation-page .kuendigung-success { color:var(--ink); background:#eff7f4; border-left:3px solid var(--green); }
.cancellation-page .kuendigung-error { color:#9c2222; background:#fff4f4; border-left:3px solid #9c2222; }
.cancellation-page .kuendigung-error ul { margin:0; padding-left:20px; }
.cancellation-page .field-validation-error { display:block; color:#9c2222; font-size:16px; line-height:1.5; margin-top:6px; }
.cancellation-page .input-validation-error { border-color:#9c2222; }
.cancellation-page .site-button { max-width:100%; white-space:normal; text-align:center; }
@media (max-width:767px) {
    .cancellation-page .kuendigung-form-row { grid-template-columns:minmax(0,1fr); gap:0; }
    .cancellation-page label,.cancellation-page input,.cancellation-page textarea,.cancellation-page .kuendigung-message { font-size:17px; }
    .cancellation-page .site-button { width:100%; min-height:52px; flex:0 0 auto; font-size:16px; }
}

/* Keep the brand compact within the existing mobile header rows. */
@media(max-width:767px) { .modern-site .site-brand { gap:8px; min-width:0; flex-shrink:1; } .site-brand-logo { height:36px; } }
@media(max-width:479px) { .site-brand-logo { height:32px; } }

@media(min-width:1200px) { .site-brand-logo { height:70px; } }
