/* Scoped service-page refinement. Fixed white and charcoal surfaces keep their own contrast. */
[data-service-page] { --sr-ink:#1d1d1f; --sr-muted:#626269; --sr-accent:#4268be; --sr-border:rgba(20,20,24,.13); }
[data-theme="dark"] [data-service-page] { --sr-ink:#f5f5f7; --sr-muted:#b7b7bf; --sr-accent:#a6c4ff; --sr-border:rgba(255,255,255,.14); }
[data-service-page] .sr-wrap { width:min(1280px,calc(100% - 48px)); margin:0 auto 28px; }
[data-service-page] .sr-dark { --sr-card-ink:#f5f5f7; --sr-card-muted:#c0c0c6; --sr-card-link:#acc9ff; color:var(--sr-card-ink); background:linear-gradient(140deg,#303033,#1b1b1d 75%); border:1px solid rgba(255,255,255,.14); box-shadow:inset 0 1px 0 #ffffff0d,0 16px 40px #00000012; }
[data-service-page] .sr-light { --sr-card-ink:#1d1d1f; --sr-card-muted:#5d5d65; --sr-card-link:#385fac; color:var(--sr-card-ink); background:linear-gradient(140deg,#fff,#ededf0); border:1px solid #fff9; box-shadow:inset 0 1px 0 #fff,0 16px 40px #0000000a; }
[data-service-page] :is(.sr-dark,.sr-light) :is(h1,h2,h3,strong) { color:var(--sr-card-ink)!important; }
[data-service-page] :is(.sr-dark,.sr-light) p { color:var(--sr-card-muted)!important; }
[data-service-page] .sr-kicker { display:block; font-size:11px; line-height:1.6; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--sr-card-link,var(--sr-accent))!important; }
[data-service-page] :is(.sr-contact-hero,.sr-check-hero) { display:grid; grid-template-columns:1.15fr 1fr; gap:20px; }
[data-service-page] :is(.sr-lead,.sr-address,.sr-check-guide) { border-radius:38px; padding:clamp(26px,3.8vw,54px); min-width:0; }
[data-service-page] .sr-lead { display:flex; flex-direction:column; justify-content:center; }
[data-service-page] .sr-lead h1 { margin:28px 0 22px; font-size:clamp(38px,4.4vw,64px); line-height:1.06; letter-spacing:-.055em; font-weight:600; hyphens:none; overflow-wrap:normal; text-wrap:balance; }
[data-service-page] .sr-lead>p { font-size:17px; line-height:1.75; max-width:48ch; }
[data-service-page] .sr-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 20px; }
[data-service-page] .sr-button { display:inline-flex; gap:14px; justify-content:center; align-items:center; min-height:50px; padding:14px 24px; border-radius:999px; background:#4268be!important; color:#fff!important; font-size:15px; line-height:1.35; font-weight:650; text-align:center; text-decoration:none; border:1px solid #ffffff24; transition:transform .25s,background .25s,box-shadow .25s; }
[data-service-page] .sr-button.sr-secondary { background:#ffffff12!important; color:#f5f5f7!important; border-color:#ffffff30; backdrop-filter:blur(15px); }
[data-service-page] .sr-footnote { font-size:12px; line-height:1.7; color:var(--sr-card-muted); }
[data-service-page] .sr-address { position:relative; border-top-right-radius:96px; }
[data-service-page] .sr-address h2,[data-service-page] .sr-check-guide h2 { margin:26px 0 18px; font-size:clamp(28px,3vw,39px); line-height:1.15; font-weight:600; letter-spacing:-.04em; hyphens:none; }
[data-service-page] .sr-address>p { font-size:16px; line-height:1.7; }
[data-service-page] .sr-address-icon { position:absolute; right:44px; top:30px; width:50px; color:#4165a6; }
[data-service-page] .sr-address-icon svg { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }
[data-service-page] .sr-contact-line { display:block; padding:18px 0; border-bottom:1px solid #00000016; text-decoration:none; }
[data-service-page] .sr-contact-line span { display:block; font-size:12px; color:#626269; margin-bottom:5px; }
[data-service-page] .sr-contact-line strong { font-size:clamp(14px,1.5vw,19px); font-weight:600; overflow-wrap:anywhere; }
[data-service-page] .sr-small { margin-top:18px; font-size:13px!important; }
[data-service-page] .sr-call-banner { display:flex; gap:24px; justify-content:space-between; align-items:center; padding:32px 40px; border-radius:30px; }
[data-service-page] .sr-call-banner h2 { margin:10px 0; font-size:28px; line-height:1.2; letter-spacing:-.03em; }
[data-service-page] .sr-call-banner p { font-size:15px; }
[data-service-page] .sr-call-banner .sr-button { flex-shrink:0; }
[data-service-page] a:focus-visible,[data-service-page] button:focus-visible { outline:3px solid #6a96e8; outline-offset:5px; }
/* Existing forms retain names, validation and delivery handlers. */
[data-service-page="contact"] #anfrage h2 { font-size:clamp(30px,3.5vw,46px); line-height:1.1; hyphens:none; }
[data-service-page="contact"] #anfrage form { background:#fbfbfd!important; color:#242426!important; }
[data-service-page="contact"] #anfrage form :is(label,span) { color:#4d4d55!important; }
[data-service-page="contact"] #anfrage form :is(input,select,textarea) { background:#f0f0f3!important; color:#1d1d1f!important; border-color:#d0d0d7!important; }
[data-service-page="contact"] #anfrage form button[type="submit"] { color:#fff!important; }
[data-service-page="contact"] #anfrage form a,[data-service-page="appointment"] #callForm a { color:#385fac!important; }
[data-service-page="contact"] #anfrage>div>div>div { background:#1d1d1f!important; }
[data-service-page="contact"] #anfrage>div>div>div :is(h2,p,div) { color:#f0f0f3; }
[data-service-page="contact"] main>section:nth-child(2) h2 { font-size:clamp(30px,3.4vw,44px); line-height:1.15; }
[data-service-page="contact"] main>section:nth-child(2)>div { grid-template-columns:1fr 1fr; }
[data-service-page="contact"] main>section:nth-child(2) iframe+div { grid-template-columns:1fr 1fr; }
/* Compact booking: the first choice stays near the heading on phones. */
[data-service-page="appointment"] main>section:first-child aside h1 { font-size:clamp(36px,4.5vw,60px); line-height:1.05; letter-spacing:-.05em; hyphens:none; }
[data-service-page="appointment"] main>section:first-child aside { background:linear-gradient(145deg,#303033,#18181a)!important; color:#f5f5f7!important; }
[data-service-page="appointment"] main>section:first-child aside :is(h1,p) { color:#efeff2!important; }
[data-service-page="appointment"] main>section:first-child aside .mobile-tight { padding:36px; }
[data-service-page="appointment"] main>section:first-child>div>div>section { background:linear-gradient(135deg,#fff,#eeeef2)!important; color:#1d1d1f!important; }
[data-service-page="appointment"] #callForm :is(h2,label,span,p) { color:#29292f!important; }
[data-service-page="appointment"] #callForm h2 { font-size:clamp(28px,3vw,39px); line-height:1.15; letter-spacing:-.04em; hyphens:none; scroll-margin-top:120px; }
[data-service-page="appointment"] #callForm :is(p,span.mt-2) { color:#626269!important; }
[data-service-page="appointment"] #callForm :is(input,select) { background:#f5f5f7!important; color:#202024!important; border-color:#ccc!important; min-width:0; }
[data-service-page="appointment"] #callForm .choice-card { background:#fff9!important; border:1px solid #00000016!important; box-shadow:inset 0 1px 0 #fff; border-radius:20px; padding:18px; }
[data-service-page="appointment"] #callForm .choice-card.is-selected { background:#e6edfa!important; border-color:#4268be!important; box-shadow:0 0 0 1px #4268be; }
[data-service-page="appointment"] #callForm .choice-dot { display:none; }
[data-service-page="appointment"] #callForm .back-btn { color:#303035!important; border-color:#bbb!important; }
[data-service-page="appointment"] #callForm .choice-card span.mt-2 { font-size:13px; line-height:1.55; }
[data-service-page="appointment"] #callForm .next-btn,[data-service-page="appointment"] #callForm button[type="submit"] { background:#4268be!important; color:#fff!important; }
[data-service-page="appointment"] .step-dot { background:#dcdce3!important; color:#53535c!important; }
[data-service-page="appointment"] .step-dot.is-active { background:#4268be!important; color:#fff!important; }
[data-service-page="appointment"] .sr-planner-summary[hidden] { display:none; }
[data-service-page="appointment"] #finalSummary { background:#ededf2!important; color:#242426!important; border-radius:12px; padding:12px; }
[data-service-page="appointment"] #callForm :is(label:has(input[type="date"]),label:has(input[type="time"]),div:has(>#finalSummary)) { background:#ededf2!important; color:#29292f!important; }
/* Tool library: two distinct working destinations rather than stale duplicate calculators. */
[data-service-page] .sr-tools-intro { padding-top:32px; padding-bottom:18px; }
[data-service-page] .sr-tools-intro h1 { margin:20px 0; font-size:clamp(40px,5.5vw,76px); font-weight:600; line-height:1.03; letter-spacing:-.06em; color:var(--sr-ink)!important; hyphens:none; }
[data-service-page] .sr-tools-intro h1 span { color:var(--sr-muted); }
[data-service-page] .sr-tools-intro p { max-width:60ch; font-size:17px; color:var(--sr-muted)!important; }
[data-service-page] .sr-tools-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
[data-service-page] .sr-tool-card { display:flex; flex-direction:column; position:relative; overflow:hidden; min-height:490px; border-radius:36px; padding:36px; text-decoration:none; transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s; scroll-margin-top:110px; }
[data-service-page] .sr-tool-card.sr-light { border-top-right-radius:100px; }
[data-service-page] .sr-tool-card h2 { font-size:clamp(30px,3.8vw,48px); font-weight:600; line-height:1.06; letter-spacing:-.045em; margin:20px 0 16px; hyphens:none; }
[data-service-page] .sr-tool-card p { font-size:15px; line-height:1.7; max-width:37ch; }
[data-service-page] .sr-tool-bottom { margin-top:auto; padding-top:25px; display:flex; flex-direction:column; gap:12px; }
[data-service-page] .sr-tool-bottom>span { font-size:12px; color:var(--sr-card-muted); }
[data-service-page] .sr-tool-bottom>strong { color:var(--sr-card-link)!important; font-size:16px; }
[data-service-page] .sr-speed-art { width:128px; height:128px; border:1px solid #ffffff40; border-radius:50%; align-self:flex-end; display:grid; place-content:center; text-align:center; margin:-20px 0 0; box-shadow:inset 0 0 0 9px #ffffff05; position:relative; background:#ffffff07; }
[data-service-page] .sr-speed-art>span { font-size:11px; color:#b7b7bf; }
[data-service-page] .sr-speed-art>strong { font-size:44px; font-weight:500; letter-spacing:-.06em; line-height:1.1; }
[data-service-page] .sr-speed-art i { position:absolute; inset:8px; border-top:2px solid #acc9ff; border-radius:50%; transform:rotate(-40deg); transition:transform .7s cubic-bezier(.2,.8,.2,1); }
[data-service-page] .sr-cost-art { display:grid; gap:9px; width:80%; margin:26px 0 0; }
[data-service-page] .sr-cost-art>span { display:grid; grid-template-columns:1fr 145px; align-items:center; gap:15px; color:#626269; font-size:12px; }
[data-service-page] .sr-cost-art i { display:block; border-radius:8px; height:8px; background:#353538; transform-origin:left; transition:transform .45s; }
[data-service-page] .sr-cost-art>span:last-child i { width:48%; background:#6b82ac; }
[data-service-page] .sr-checks-heading { padding-top:32px; }
[data-service-page] .sr-checks-heading h2 { font-size:clamp(28px,3vw,40px); letter-spacing:-.04em; line-height:1.2; color:var(--sr-ink); margin:12px 0; }
[data-service-page] .sr-checks-heading p { color:var(--sr-muted); max-width:65ch; }
[data-service-page="tools"] main>.fc-tool-disclosure { width:min(1280px,calc(100% - 48px)); max-width:1280px; margin:12px auto; border:1px solid var(--sr-border); border-radius:24px; background:linear-gradient(135deg,#ffffff0b,#ffffff03); overflow:hidden; }
[data-service-page="tools"] main>.fc-tool-disclosure>summary { padding:25px 30px; font-size:20px; color:var(--sr-ink); }
@supports (interpolate-size:allow-keywords) {
 [data-service-page="tools"] .fc-tool-disclosure { interpolate-size:allow-keywords; }
 [data-service-page="tools"] .fc-tool-disclosure::details-content { block-size:0; overflow:clip; opacity:0; transition:block-size .38s ease,opacity .25s ease,content-visibility .38s allow-discrete; }
 [data-service-page="tools"] .fc-tool-disclosure[open]::details-content { block-size:auto; opacity:1; }
}
[data-service-page] .sr-check-guide ol { list-style:none; margin-top:28px; padding:0; display:grid; gap:24px; }
[data-service-page] .sr-check-guide li { display:flex; gap:18px; }
[data-service-page] .sr-check-guide li>span { display:grid; place-content:center; width:42px; height:42px; flex-shrink:0; border:1px solid #00000016; border-radius:50%; color:#4362a0; font-size:13px; }
[data-service-page] .sr-check-guide h3 { font-size:18px; font-weight:600; line-height:1.3; margin-bottom:6px; }
[data-service-page] .sr-check-guide p { font-size:14px; line-height:1.65; }
[data-service-page="check"] #warum-check h2 { font-size:clamp(30px,4vw,50px); line-height:1.13; hyphens:none; }
[data-service-page] .sr-check-link { padding:20px 0; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 [data-service-page] .sr-button:hover { transform:translateY(-2px); box-shadow:0 8px 24px #0002; }
 [data-service-page] .sr-tool-card:hover { transform:translateY(-6px); box-shadow:0 24px 55px #0003; }
 [data-service-page] .sr-tool-card:hover .sr-speed-art i { transform:rotate(90deg); }
 [data-service-page] .sr-tool-card:hover .sr-cost-art i { transform:scaleX(.85); }
 [data-service-page] .sr-contact-line:hover strong { color:#385fac!important; }
}
@media(max-width:900px) {
 [data-service-page] :is(.sr-contact-hero,.sr-check-hero) { grid-template-columns:1fr; }
 [data-service-page="contact"] main>section:nth-child(2)>div { grid-template-columns:1fr; }
 [data-service-page="appointment"] main>section:first-child aside .mobile-tight { padding:24px; }
 [data-service-page="appointment"] main>section:first-child aside h1 { margin-top:14px; }
 [data-service-page="appointment"] main>section:first-child aside p { margin-top:12px; font-size:14px; line-height:1.65; }
 [data-service-page="appointment"] .sr-planner-summary { display:none; }
 [data-service-page="appointment"] main>section:first-child>div>div { gap:16px; }
}
@media(max-width:600px) {
 [data-service-page] .sr-wrap,[data-service-page="tools"] main>.fc-tool-disclosure { width:calc(100% - 32px); }
 [data-service-page] :is(.sr-lead,.sr-address,.sr-check-guide) { padding:26px; border-radius:28px; }
 [data-service-page] .sr-lead h1 { font-size:38px; }
 [data-service-page] .sr-lead>p { font-size:15px; }
 [data-service-page] .sr-address-icon { right:26px; top:24px; width:38px; }
 [data-service-page] .sr-kicker { font-size:10px; letter-spacing:.1em; }
 [data-service-page] .sr-actions { flex-direction:column; }
 [data-service-page] .sr-call-banner { flex-direction:column; align-items:stretch; padding:26px; }
 [data-service-page="contact"] #anfrage>div>div>div { padding:26px; }
 [data-service-page="contact"] main>section:nth-child(2) iframe { height:300px; }
 [data-service-page="appointment"] #step1>div.grid { grid-template-columns:1fr 1fr; gap:10px; }
 [data-service-page="appointment"] #callForm { padding:24px 20px; }
 [data-service-page="appointment"] #callForm h2 { scroll-margin-top:160px!important; }
 [data-service-page="appointment"] #callForm .choice-card { padding:14px; border-radius:16px; }
 [data-service-page="appointment"] #callForm .choice-card span:first-of-type+span { font-size:16px; letter-spacing:-.02em; }
 [data-service-page="appointment"] #callForm .mb-7 { margin-bottom:18px; }
 [data-service-page="appointment"] #callForm .mt-8 { margin-top:22px; }
 [data-service-page] .sr-tools-intro { padding-top:10px; }
 [data-service-page] .sr-tools-grid { grid-template-columns:1fr; }
 [data-service-page] .sr-tool-card { min-height:420px; padding:28px; }
 [data-service-page] .sr-tool-card.sr-light { border-top-right-radius:70px; }
 [data-service-page] .sr-speed-art { width:105px; height:105px; margin-top:10px; }
 [data-service-page] .sr-cost-art { width:100%; }
 [data-service-page="tools"] main>.fc-tool-disclosure>summary { padding:22px; font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
 [data-service-page] :is(.sr-button,.sr-tool-card,.sr-speed-art i,.sr-cost-art i,.step-panel,.choice-card) { transition:none!important; animation:none!important; }
 [data-service-page="tools"] .fc-tool-disclosure::details-content { transition:none!important; }
}
