/* KFZ Betriebsportal | anbieterunabhängige Unternehmenswebseite */
:root {
  --ink:#10283b;
  --teal:#174e7b;
  --muted:#566c7b;
  --lime:#f2bc52;
  --paper:#f5f8fb;
  --line:#d9e2eb;
  --bs-body-color:#10283b;
  --bs-body-bg:#f5f8fb;
  --bs-body-font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
body{font-size:15px;color:var(--ink);background:var(--paper)}
h1,h2,h3{letter-spacing:-.042em;color:var(--ink)}
.shell{width:min(1320px,calc(100% - 80px))}
a:hover{color:#16609b}
:focus-visible{outline-color:#e9aa33!important}
.topbar{background:#10283b;border:0;color:#d9e8f4;font-size:12px;letter-spacing:0}
.topbar .shell{padding:9px 0}
.topbar-inner,.topbar-actions{display:flex;align-items:center;gap:22px}
.topbar-inner{justify-content:space-between}
.topbar a{font-weight:500;color:#d9e8f4;transition:color .2s}
.topbar a:hover{color:#fff}
.topbar-actions{gap:25px;flex-wrap:wrap}
.topbar .admin-entry{border-left:1px solid #53718a;padding-left:20px;color:#fff}
.header{background:#fff;box-shadow:0 8px 24px #1332490c;border-bottom:1px solid #dce6ee}
.header-inner{min-height:100px}
.brand{letter-spacing:.12em;font-size:25px;color:#10283b}
.brand small{font-size:9px;letter-spacing:.13em;color:#45657e;margin-top:8px}
.brand-symbol{border-right:1px solid #cad8e2;font-size:44px;padding-right:23px;font-weight:800}
.brand-symbol span{color:#ebaa3a}
nav{font-size:13px;gap:27px}
nav>a:not(.button){transition:color .2s}
nav>a:not(.button):hover{color:#0c6dad}
.button{background:#11578d;border-color:#11578d;color:#fff;border-radius:7px;box-shadow:0 7px 17px #0b518a17;letter-spacing:0}
.button:hover{background:#0d426e;border-color:#0d426e;color:#fff}
.button.secondary{color:#13527f;border-color:#bdd3e5;background:#fff}
.button.secondary:hover{background:#eef6fc}
.button.danger{background:#fff0ec;color:#973d30;border-color:#efd1cc}
.button.small{padding:13px 21px;gap:18px}
.mobile-admin-entry{display:none}
.hero{padding-top:36px}
.hero-grid{grid-template-columns:1.03fr .97fr;gap:24px;min-height:570px}
.hero-copy{padding:70px 25px 42px 0}
.eyebrow{font-size:11px;letter-spacing:.15em;color:#176293}
.status-dot{background:#e2a02e;width:8px;height:8px}
.hero h1{font-size:clamp(3.4rem,5.7vw,5.9rem);margin:24px 0 27px;max-width:760px}
.hero h1 em{color:#1f78ac}
.hero-lead{font-size:16px;max-width:520px;line-height:1.85;color:#4e6577}
.hero-copy .actions{margin-top:30px}
.hero-facts{margin-top:47px;border-color:#d7e2eb;font-size:12px}
.hero-facts b{color:#b07817;font-weight:750}
.hero-art{border-radius:15px;min-height:565px;background:radial-gradient(circle at 66% 40%,#326a8c 0,#15354b 57%,#0a1f31 100%);box-shadow:0 20px 42px #15364e25}
.hero-art .art-grid{background-size:52px 52px;background-image:linear-gradient(#c7e8ff10 1px,transparent 1px),linear-gradient(90deg,#c7e8ff10 1px,transparent 1px)}
.hero-art:before{content:"";position:absolute;inset:20px;border:1px solid #ffffff21;border-radius:8px;pointer-events:none;z-index:0}
.hero-art img{width:126%;left:-12%;filter:drop-shadow(0 16px 20px #03122166)}
.art-label{color:#d1e4ee;font-weight:700;top:37px;left:39px;font-size:9px}
.art-caption{background:#092239e8;padding:27px 32px;border-color:#ffffff21}
.art-caption small{color:#b7d1de}
.art-caption .art-number{color:#ffffff27}
.crosshair{color:#ffc663}
.intro-strip{margin-top:48px;background:#fff;border-color:#dce5ed}
.intro-strip .shell{padding:35px 0}
.intro-strip strong{color:#11578d}
.intro-strip p{color:#536878}
.circle-link{border-color:#afc9db;color:#155d92}
.section{padding-top:94px;padding-bottom:94px}
.section-heading h2,.process-grid h2,.location-section h2{color:#112e44}
.areas{gap:24px}
.area-card{border-radius:12px;box-shadow:0 8px 24px #153b5809;padding:42px}
.area-card.dark{background:linear-gradient(145deg,#13354b,#0e273d);border-color:#12354d}
.area-card.dark h3,.area-card.dark .text-link{color:#fff}
.area-card .line-icon,.area-card .area-number,.service-mark{color:#337eac}
.area-card.dark .line-icon,.area-card.dark .area-number{color:#f2bc52}
.area-card li:before{color:#e4a32b}
.area-card.dark li:before{color:#f2bc52}
.tinted{background:#eaf1f7}
.process li{border-color:#cedee9}
.process li>span{color:#1773a4;font-weight:700}
.location-card,.panel{background:#fff;border:1px solid #dbe5ee;border-radius:11px;box-shadow:0 4px 20px #102c4110}
.location-card{padding:43px}
.big-phone{color:#12598c;font-weight:700}
footer{background:#0d2336;color:#d7e6f0}
footer .brand{color:#fff}
footer .brand small{color:#a9c7d9}
footer .footer-brand .brand-symbol span{color:#f2bc52}
footer .footer-brand .brand-symbol{border-color:#3d5d74}
footer .footer-grid p{color:#b7cbd9}
footer .footer-bottom{border-color:#2e4a61;color:#b1c6d5}
footer a:hover{color:#fff}
.page-head{padding-top:77px;padding-bottom:56px}
.page-head h1{font-size:clamp(3.2rem,5.3vw,5.5rem)}
.panel{padding:32px}
.panel h2{color:#12334a}
.notice{background:#eff6fb;color:#315a76;border-color:#4a93c3}
.notice.success{background:#e8f6ed;border-color:#44986a;color:#236543}
.side-panel{background:#e8f2f8;border:1px solid #d6e5ef;border-radius:10px}
.service-row{border-color:#e0e7ef}
.service-row .text-link{color:#145d90}
.hours-row{font-size:13px;gap:18px}
.hours-row strong{font-size:13px;text-align:right;font-weight:650}
.contact-location,.contact-grid>.panel{min-height:100%}
.contact-divider{border-top:1px solid #dbe5ed;margin:28px 0}
.hours-footnote{font-size:12px;margin-top:20px}
.contact-grid{padding-bottom:110px}
.booking-unavailable{background:linear-gradient(130deg,#eff7fd,#fff);padding:55px;max-width:850px;margin:0 auto 90px}
.booking-unavailable h2{max-width:650px}
.booking-unavailable p{max-width:650px}
.booking-head .stepper{margin-top:42px}
.admin-shell{padding-top:50px;padding-bottom:110px}
.admin-top h1{font-size:clamp(2.4rem,4vw,3.8rem)}
.admin-nav{background:#fff;border:1px solid #dbe5ee;border-radius:11px;overflow:hidden}
.admin-nav a{padding:14px 17px;border-bottom:1px solid #e6eef4}
.admin-nav a.selected{background:#e7f3fa;color:#105685;border-left:4px solid #187eaf}
.admin-content .panel{border-radius:10px}
.stats>div{background:#fff;border:1px solid #dce6ed;border-radius:10px}
.stats strong{color:#125e8f}
.setup-panel{border-color:#b8d8ea;background:linear-gradient(138deg,#fff,#f4faff)}
.setup-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.setup-title h2{font-size:clamp(1.35rem,2.6vw,2rem);margin:6px 0 10px}
.setup-title p:not(.eyebrow){margin-bottom:12px;font-size:13px}
.setup-count{display:grid;place-items:center;min-width:72px;height:54px;padding:8px 12px;border-radius:11px;background:#e4f1f9;color:#145a89;font-size:18px;font-weight:750;white-space:nowrap}
.setup-progress{height:9px;border-radius:8px;background:#dceaf2;overflow:hidden;margin:18px 0 23px}
.setup-progress span{display:block;height:100%;background:#197bad;border-radius:inherit;transition:width .2s}
.setup-list{display:grid;gap:9px}
.setup-item{display:flex;align-items:center;gap:14px;padding:14px 15px;background:#fff;border:1px solid #e0eaf2;border-radius:9px}
.setup-item:hover{background:#eef7fd;color:inherit}
.setup-item>span:nth-child(2){flex:1}
.setup-item strong{font-size:13px;display:block}
.setup-item small{color:#6a7f8d;font-size:11px;display:block;margin-top:3px}
.setup-mark{width:30px;height:30px;border-radius:50%;background:#f5ebd8;color:#a6751c;display:grid;place-items:center;font-size:20px;flex-shrink:0}
.setup-mark.ready{background:#d9f0e4;color:#21834c}
.setup-status{font-size:11px;font-weight:700;color:#13679c;white-space:nowrap}
.weekly-editor{background:#fff}
.weekly-table{margin-top:12px;min-width:620px}
.weekly-table th{white-space:nowrap;vertical-align:middle}
.weekly-table .form-control{min-width:95px;padding:9px 7px;font-size:12px}
.weekly-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}
.weekly-actions small{display:block;width:100%;font-size:11px;color:#6c7f89}
.manual-hours summary{cursor:pointer}
.admin-nav a:hover{background:#f0f6fa}
@media(max-width:1160px){nav{gap:17px;font-size:12px}.brand{font-size:21px}.brand small{font-size:8px}.hero h1{font-size:clamp(3.1rem,5.8vw,4.8rem)}}
@media(max-width:850px){.shell{width:min(100% - 42px,1280px)}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:40px 0 12px}.hero-art{min-height:370px}.hero-art img{width:110%;left:-5%;max-width:none}.intro-strip .shell{gap:24px}.topbar-inner{gap:12px}.topbar-location{font-size:10px}.topbar-actions{gap:13px}.topbar-actions a:first-child{display:none}.header-inner{min-height:82px}.nav-toggle{background:#edf4f9;border-color:#d4e5ed;border-radius:6px}.header nav{background:#fff;box-shadow:0 15px 25px #163e541c}.mobile-admin-entry{display:block!important}.contact-grid{grid-template-columns:1fr}.setup-title{flex-direction:column}.setup-count{min-width:65px}}
@media(max-width:620px){.shell{width:calc(100% - 32px)}.topbar-location{display:none}.topbar .shell{justify-content:center}.topbar-actions{justify-content:space-between;width:100%}.topbar .admin-entry{padding-left:12px}.brand{font-size:18px;gap:10px}.brand-symbol{font-size:35px;padding-right:17px}.brand small{font-size:7px;letter-spacing:.09em}.hero{padding-top:10px}.hero h1{font-size:clamp(2.7rem,12vw,4.1rem)}.hero-art{min-height:300px}.art-label{left:23px;top:23px}.art-caption{padding:15px}.hero-facts{gap:15px;flex-direction:column}.intro-strip .shell{flex-wrap:wrap}.intro-strip span{min-width:0}.intro-strip p{flex-basis:100%}.area-card{padding:27px}.section{padding:63px 0}.page-head h1{font-size:clamp(2.5rem,10vw,4rem)}.panel{padding:23px}.booking-unavailable{padding:29px}.footer-grid{gap:30px}.setup-item{flex-wrap:wrap}.setup-status{margin-left:44px}.stats strong{font-size:26px}}
/* Generisches Firmenlogo und variable Markenlänge */
.brand {min-width:0;max-width:100%;gap:13px}.brand > span:last-child{min-width:0;overflow-wrap:anywhere}.brand-logo{width:64px;height:56px;object-fit:contain;flex-shrink:0}.brand-neutral{font-size:45px!important;line-height:1!important;font-weight:400!important;color:#2d918c!important;display:flex;align-items:center;justify-content:center;letter-spacing:0!important;min-width:54px}.brand-neutral::before,.brand-neutral::after{display:none}.area-card:only-child{max-width:670px}.topbar-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}@media(max-width:760px){.brand-logo{width:42px;height:42px}.brand-neutral{font-size:36px!important;min-width:40px}.topbar-location{max-width:55%}}

/* v5.1: contextual, accessible service information without redesign */
.service-guidance{margin-top:1.7rem;padding-top:1.6rem;border-top:1px solid #dce4eb}.service-guidance h2{font-size:clamp(1.3rem,2.3vw,1.75rem);margin-bottom:.8rem}.service-guidance p{line-height:1.75}.service-guidance a{text-decoration:underline;text-underline-offset:3px}

/* v5.1: editorial help on local service pages, unobtrusive to existing design */
.service-guidance{margin-top:2rem;padding:1.4rem 1.6rem;border-left:3px solid #2d6b9d;background:rgba(31,83,126,.045);border-radius:0 12px 12px 0}
.service-guidance h2{font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.3;margin-top:0}
.service-guidance a{text-decoration:underline;text-underline-offset:3px}

/* v5.3 – private customer CSV transfer */
.transfer-hero{background:linear-gradient(125deg,#f0f8fd,#fff);border-color:#cfe3f0}
.transfer-hero h2{font-size:clamp(1.6rem,3.1vw,2.5rem);margin:7px 0 12px}
.transfer-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.transfer-pills span{border-radius:50px;background:#e6f2f9;color:#245d81;padding:5px 12px;font-weight:650;font-size:12px}
.transfer-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch;margin:18px 0}
.transfer-cols>.panel{min-width:0}.transfer-cols p{line-height:1.6}.transfer-cols .button{max-width:100%;white-space:normal;text-align:center}
.transfer-footnote{color:#677f8e;font-size:12px;margin-top:14px}
.transfer-alert{padding:18px 20px;margin:22px 0;border-left:4px solid #c79125;background:#fff8e6;border-radius:8px}.transfer-alert p{margin-top:7px;font-size:13px}
.transfer-preview{margin:18px 0}.transfer-title{display:flex;align-items:center;justify-content:space-between;gap:22px}.transfer-count{display:grid;place-items:center;background:#e4f4ed;color:#1e754a;border-radius:10px;min-width:64px;padding:15px;font-size:25px}
.transfer-preview table{min-width:650px}.transfer-errors{border-color:#d7988a;background:#fff3f0}.transfer-errors ul{padding-left:24px}.transfer-discard{margin-top:8px}.transfer-quicklink{border-left:4px solid #187ba8}
@media(max-width:900px){.transfer-cols{grid-template-columns:1fr}}
