/* Farben aus dem Original-Logo. Das Bild wird vollständig und unverändert gezeigt. */
:root{--navy:#092744;--blue:#086bb0;--ink:#142c42;--muted:#526271;--pale:#edf3f7;--line:#d5dfe6}
.brand{flex-direction:row;gap:13px;align-items:center}
.brand-logo-frame{display:block;width:64px;height:64px;object-fit:contain;border-radius:0;flex-shrink:0;background:none;overflow:visible}
.brand-text{display:flex;flex-direction:column}
.brand-name{font-size:32px;letter-spacing:-1.7px}
.brand-sub{font-size:7px;letter-spacing:.8px}
.hero-logo-panel{width:100%;max-width:560px;justify-self:center;border-radius:0;overflow:visible;background:none;box-shadow:none}
.hero-logo-panel img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.hero{gap:52px}
.topline .status-dot{background:#36a7dd}
footer .brand-logo-frame{width:70px;height:70px}
@media(max-width:1050px){.hero{gap:30px}.brand{gap:10px}.brand-name{font-size:29px}.brand-sub{font-size:6.5px;letter-spacing:.6px}nav{gap:20px}}
@media(max-width:760px){.brand-logo-frame{width:52px;height:52px}.brand-name{font-size:27px}.brand-sub{font-size:6px;letter-spacing:.5px}.hero{gap:32px}.hero-logo-panel{max-width:460px}.header-inner{height:80px}footer .brand-logo-frame{width:60px;height:60px}}
@media(max-width:360px){.brand{gap:8px}.brand-logo-frame{width:46px;height:46px}.brand-name{font-size:25px}.brand-sub{font-size:5.5px}}

/* Helle Restflächen in Buchstaben übernehmen den Farbton ihrer Unterlage. */
.brand-logo{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:darken}
.hero-logo-panel img{mix-blend-mode:darken}

/* Integrierte Karte und lokale 100-km-Ortsprüfung. */
.area-widget{width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.map-stage{height:300px;background:var(--pale)}
.map-stage iframe{display:block;border:0;width:100%;height:100%}
.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;padding:28px}
.map-location{font-size:52px;color:var(--blue);line-height:1;margin-bottom:18px}
.map-placeholder strong{font-size:20px;letter-spacing:-.02em}
.map-placeholder p{font-size:13px;margin:10px 0 0}
.map-controls{padding:14px 22px;border-bottom:1px solid var(--line)}
.map-consent{background:transparent;border:0;padding:0;color:var(--blue);font-weight:700;cursor:pointer;text-align:left}
.map-privacy{font-size:11px;line-height:1.5;margin:7px 0 0}
.map-privacy a,.map-method a{text-decoration:underline}
.radius-form{padding:22px 22px 0}
.radius-form label{font-size:14px;line-height:1.5}
.radius-input{display:flex;gap:8px}
.radius-input input{min-width:0;width:100%;border:1px solid #9bb3c7;border-radius:6px;padding:12px;font-size:14px;background:#fff;color:var(--ink)}
.radius-input .button{white-space:nowrap;font-size:12px;padding:12px 15px;gap:12px}
.area-result{font-size:13px;margin:15px 22px;padding:12px 0;line-height:1.65}
.area-inside{border-left:3px solid var(--blue);padding-left:12px;color:var(--ink);background:var(--pale)}
.area-outside{border-left:3px solid #738798;padding-left:12px}
.area-choices{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px}
.area-choice{border:1px solid var(--line);background:var(--pale);padding:8px 12px;border-radius:5px;color:var(--ink);font-size:12px;text-align:left}
.area-choice:hover{border-color:var(--blue)}
.map-method{font-size:10px;line-height:1.65;margin:14px 22px 22px}
.region-radius{font-size:14px;margin-top:25px}
.contact-region .area-widget{max-width:850px;margin-top:30px}
.contact-region .map-stage{height:360px}
@media(max-width:1050px){.radius-input{flex-direction:column}.radius-input .button{justify-content:center}}
@media(max-width:760px){.map-stage,.contact-region .map-stage{height:280px}.map-controls{padding:14px 18px}.radius-form{padding:20px 18px 0}.area-result{margin-inline:18px}.area-choices{padding-inline:18px}.map-method{margin-inline:18px}.region-grid{align-items:start}}

.outside-dialog{border:1px solid var(--line);padding:0;border-radius:16px;color:var(--ink);background:#fff;width:min(560px,calc(100% - 36px));max-height:calc(100dvh - 40px);box-shadow:0 24px 90px #09274440;overflow:auto}
.outside-dialog::backdrop{background:#09274499;backdrop-filter:blur(4px)}
.outside-dialog-inner{padding:48px 38px 38px;position:relative}
.outside-dialog h2{font-size:clamp(27px,4vw,36px);line-height:1.15;letter-spacing:-.035em}
.outside-dialog p{font-size:15px;margin-block:20px 27px}
.outside-dialog .eyebrow{margin-bottom:20px}
.outside-dialog-close{position:absolute;right:14px;top:12px;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:25px;line-height:1;cursor:pointer}
.outside-dialog-close:hover{background:var(--pale)}
html:has(.outside-dialog[open]){overflow:hidden}
@media(max-width:480px){.outside-dialog-inner{padding:50px 24px 28px}.outside-dialog .button{width:100%;gap:12px;padding-inline:16px;font-size:13px}}

/* Einheitliche Kontaktbuttons mit einer Füllung von unten nach oben. */
body[data-page="contact"] .contact-methods{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch}
body[data-page="contact"] .contact-methods .button,.contact-band .contact-actions .button{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;margin:0;padding:15px 23px;gap:18px;background:#fff;border:1px solid #adc3d4;border-radius:6px;color:var(--navy);font-size:14px;font-weight:700;line-height:1.5;transform:none;transition:color .28s ease,border-color .35s ease}
body[data-page="contact"] .contact-methods .button::before,.contact-band .contact-actions .button::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--blue);transform:translateY(101%);transition:transform .4s cubic-bezier(.22,.61,.36,1);pointer-events:none}
body[data-page="contact"] .contact-methods .button:is(:hover,:focus-visible),.contact-band .contact-actions .button:is(:hover,:focus-visible){color:#fff;border-color:var(--blue);background:#fff;transform:none}
body[data-page="contact"] .contact-methods .button:is(:hover,:focus-visible)::before,.contact-band .contact-actions .button:is(:hover,:focus-visible)::before{transform:translateY(0)}
body[data-page="contact"] .contact-methods .button>span,.contact-band .contact-actions .button>span{flex-shrink:0}
@media(max-width:360px){body[data-page="contact"] .contact-methods .button,.contact-band .contact-actions .button{padding-inline:17px;font-size:13px}}

/* Lesbare lokale Hauptüberschrift ohne Überlauf auf kleinen Displays. */
.hero h1{font-size:clamp(40px,5vw,65px)}
@media(max-width:760px){.hero h1{font-size:clamp(36px,7.8vw,58px)}}

.map-consent-button{margin-top:14px;max-width:100%;white-space:normal;text-align:left}
