/* SVB Habermann – Barrierefreiheit: Fenster, Bedienknöpfe und Anzeigemodi (nach Vorbild bi-verleih.de) */

/* ---------- Immer aktiv: deutlicher Tastaturfokus (WCAG 2.4.7 / 2.4.11) ---------- */
:focus-visible{outline:3px solid var(--orange,#f2621b);outline-offset:3px;border-radius:4px}
.footer :focus-visible,.process :focus-visible,.reviews :focus-visible,.contact :focus-visible,.assist :focus-visible,.mm-head :focus-visible{outline-color:#ffd166}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.marquee.is-paused .mq-inner{animation-play-state:paused!important}

/* ---------- Auslöser ---------- */
.a11y-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:1px solid var(--line,#d9e0ec);border-radius:8px;background:#fff;color:var(--ink,#0d1b36);cursor:pointer;margin-left:8px;transition:.2s}
.a11y-btn svg{width:22px;height:22px}
.a11y-btn:hover{border-color:var(--navy,#0c2b6e);color:var(--navy,#0c2b6e)}
.a11y-btn.is-active{background:var(--navy,#0c2b6e);border-color:var(--navy,#0c2b6e);color:#fff}
@media (max-width:600px){.header .a11y-btn{border:0;width:38px;margin-left:0}}
.svb-pause{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.45);border-radius:20px;background:transparent;color:#fff;font:600 12.5px/1 inherit;cursor:pointer}
.svb-pause:hover{background:#fff;color:var(--navy,#0c2b6e)}
.partners-head .svb-pause{margin-left:auto;margin-right:10px}
.rv-nav .svb-pause{width:auto;border-radius:22px;height:44px;padding:0 16px}

/* ---------- Fenster ---------- */
.svb-a11y-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto;margin:auto;padding:26px 26px 20px;border:1px solid #d9e0ec;border-radius:16px;background:#fff;color:#0d1b36;box-shadow:0 40px 90px -30px rgba(6,16,40,.6);font-size:15px;line-height:1.5}
.svb-a11y-dialog::backdrop{background:rgba(4,10,28,.55)}
.svb-a11y-dialog h2{font-size:24px;margin:0 0 6px;font-family:inherit}
.svb-a11y-dialog p{margin:0 0 12px;color:#3b4760}
.svb-a11y-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:#3b4760}
.svb-a11y-close:hover{background:#f4f7fc;color:#0d1b36}
.svb-a11y-dialog fieldset{border:1px solid #d9e0ec;border-radius:10px;padding:10px 12px 12px;margin:12px 0 0}
.svb-a11y-dialog legend{font-weight:700;padding:0 6px}
.svb-a11y-opt{display:flex;align-items:center;gap:10px;min-height:40px;padding:4px 6px;border-radius:8px;cursor:pointer}
.svb-a11y-opt:hover{background:#f4f7fc}
.svb-a11y-opt input{width:20px;height:20px;flex:none;accent-color:#0c2b6e}
.svb-a11y-master{margin-top:8px;padding:12px;border:2px solid #0c2b6e;font-weight:700;background:#eef3fb}
.svb-a11y-hint{font-size:13px}
.svb-a11y-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}
.svb-a11y-actions button{height:44px;padding:0 16px;border:1px solid #0c2b6e;border-radius:8px;background:#fff;color:#0c2b6e;font:600 14px/1 inherit;cursor:pointer}
.svb-a11y-actions a{color:#123e94;font-weight:700;text-decoration:underline}

/* ---------- Vorlese-Leiste ---------- */
.svb-read-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:180;display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:min(760px,calc(100vw - 24px));padding:10px 12px;border-radius:12px;background:#0b1d47;color:#fff;box-shadow:0 20px 40px -18px rgba(0,0,0,.7)}
.svb-read-bar[hidden]{display:none}
.svb-read-bar p{flex:1 1 220px;margin:0;font-size:13.5px}
.svb-read-bar button{height:40px;padding:0 12px;border:1px solid rgba(255,255,255,.5);border-radius:8px;background:transparent;color:#fff;font:600 13px/1 inherit;cursor:pointer}
.svb-read-bar button:hover{background:#fff;color:#0b1d47}
.svb-read-current{outline:3px solid #ffd166!important;outline-offset:4px;background:rgba(255,209,102,.18)!important}
@media (max-width:600px){.svb-read-bar{bottom:76px}}

/* ===================== Anzeigemodi ===================== */
/* Gut lesbare Schrift + Zeilenabstand */
html.svb-a11y-font body,html.svb-a11y-font body *:not(svg):not(svg *){font-family:Verdana,Tahoma,"Segoe UI",Arial,sans-serif!important;letter-spacing:.02em!important;word-spacing:.08em!important}
html.svb-a11y-font p,html.svb-a11y-font li,html.svb-a11y-font dd,html.svb-a11y-font .ans{line-height:1.8!important}
/* Links unterstreichen */
html.svb-a11y-links a:not(.btn):not(.brand):not(.foot-brand){text-decoration:underline!important;text-underline-offset:3px}
html.svb-a11y-links .btn{box-shadow:0 0 0 2px currentColor!important}

/* Animationen aus */
html.svb-a11y-motion *,html.svb-a11y-motion *::before,html.svb-a11y-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.svb-a11y-motion .crash,html.svb-a11y-motion .stars,html.svb-a11y-motion .planet,html.svb-a11y-motion canvas.net,html.svb-a11y-motion .lamp,html.svb-a11y-motion .hud,html.svb-a11y-motion .progress{display:none!important}
html.svb-a11y-motion .rv-in,html.svb-a11y-motion .faq.rv-in details{opacity:1!important;transform:none!important}
html.svb-a11y-motion .wi{transform:none!important}
html.svb-a11y-motion .card.rv-in .ph,html.svb-a11y-motion .about-photo.rv-in img{clip-path:none!important}
html.svb-a11y-motion .marquee{overflow-x:auto}
html.svb-a11y-motion .hero-img{translate:none!important;scale:none!important}

/* Ruhige Ansicht: keine Einblendungen */
html.svb-a11y-calm .helpme,html.svb-a11y-calm .aura .orb-label,html.svb-a11y-calm .dots,html.svb-a11y-calm .tcorner,html.svb-a11y-calm #center_frame,html.svb-a11y-calm #up_frame,html.svb-a11y-calm #down_frame{display:none!important}

/* ---------- Kontrast: gemeinsame Regeln ---------- */
html[class*="svb-a11y-c-"] .stars,html[class*="svb-a11y-c-"] .planet,html[class*="svb-a11y-c-"] canvas.net,html[class*="svb-a11y-c-"] .lamp,html[class*="svb-a11y-c-"] .hud,
html[class*="svb-a11y-c-"] .foot-car,html[class*="svb-a11y-c-"] .process-img,html[class*="svb-a11y-c-"] .hero-img,html[class*="svb-a11y-c-"] .hero::after,html[class*="svb-a11y-c-"] .stats::before,
html[class*="svb-a11y-c-"] .footer::before,html[class*="svb-a11y-c-"] .assist::before,html[class*="svb-a11y-c-"] .card .ph::after,html[class*="svb-a11y-c-"] .card .ph::before{display:none!important}
html[class*="svb-a11y-c-"] *:not(img):not(video):not(svg):not(svg *):not(.svb-a11y-dialog *){background-image:none!important;text-shadow:none!important;box-shadow:none!important;-webkit-text-fill-color:currentColor!important}
html[class*="svb-a11y-c-"] img{filter:none!important;opacity:1!important}
html[class*="svb-a11y-c-"] .card .ph img{filter:none!important}

/* Schwarz auf Weiß */
html.svb-a11y-c-light body,html.svb-a11y-c-light body *:not(img):not(video):not(svg):not(svg *):not(.svb-a11y-dialog):not(.svb-a11y-dialog *){background-color:#fff!important;color:#000!important;border-color:#000!important}
html.svb-a11y-c-light a{color:#00008b!important}
html.svb-a11y-c-light .btn,html.svb-a11y-c-light button{border:2px solid #000!important}
/* Weiß auf Schwarz */
html.svb-a11y-c-dark body,html.svb-a11y-c-dark body *:not(img):not(video):not(svg):not(svg *):not(.svb-a11y-dialog):not(.svb-a11y-dialog *){background-color:#000!important;color:#fff!important;border-color:#fff!important}
html.svb-a11y-c-dark a{color:#9fd3ff!important}
html.svb-a11y-c-dark .btn,html.svb-a11y-c-dark button{border:2px solid #fff!important}
/* Gelb auf Schwarz */
html.svb-a11y-c-yellow body,html.svb-a11y-c-yellow body *:not(img):not(video):not(svg):not(svg *):not(.svb-a11y-dialog):not(.svb-a11y-dialog *){background-color:#000!important;color:#ff0!important;border-color:#ff0!important}
html.svb-a11y-c-yellow a{color:#ff0!important;text-decoration:underline!important}
html.svb-a11y-c-yellow .btn,html.svb-a11y-c-yellow button{border:2px solid #ff0!important}
html.svb-a11y-c-dark :focus-visible,html.svb-a11y-c-yellow :focus-visible{outline-color:#fff!important}
html.svb-a11y-c-light :focus-visible{outline-color:#000!important}
/* Logos auf dunklem Grund lesbar halten */
html.svb-a11y-c-dark .brand img,html.svb-a11y-c-yellow .brand img,html.svb-a11y-c-dark .mq-track img,html.svb-a11y-c-yellow .mq-track img{background:#fff!important;border-radius:6px}

@media (prefers-reduced-motion:reduce){.svb-a11y-dialog{animation:none}}

/* Barrierefreiheit: Knöpfe im Footer und Handy-Menü */
.foot-a11y{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.foot-a11y svg{width:16px;height:16px}
.foot-a11y:hover{text-decoration:underline}
.mm-a11y{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:600 14px/1 var(--sans);cursor:pointer}
.mm-a11y svg{width:22px;height:22px;color:var(--blue)}

/* Barrierefreiheit-Symbol in Navigation, Handy-Menü-Kopf und AURA */
.nav .nav-a11y{margin-left:2px;width:38px;height:38px;border-radius:50%}
.mm-bar{gap:10px}
.mm-a11y-top{margin-left:auto;flex:none;width:46px;height:46px;border:2px solid rgba(255,255,255,.55);border-radius:50%;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.mm-a11y-top svg{width:24px;height:24px}
.mm-a11y-top:hover,.mm-a11y-top.is-active{background:#fff;color:var(--navy)}
.aura-a11y{margin-left:auto;width:34px;height:34px;border:1px solid rgba(140,190,255,.4);border-radius:50%;background:transparent;color:#7fe3ff;display:grid;place-items:center;cursor:pointer}
.aura-a11y svg{width:20px;height:20px}
.aura-a11y:hover{background:rgba(127,227,255,.15)}
.aura-head .aura-x{margin-left:6px}

/* ==========================================================
   Cookie-Einwilligung
   ========================================================== */
.cookie-box{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:250;width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto;
  padding:20px 22px 18px;border:1px solid var(--line,#d9e0ec);border-radius:14px;background:#fff;color:var(--ink,#0d1b36);box-shadow:0 30px 70px -24px rgba(6,16,40,.55);font-size:14px;line-height:1.55}
.cookie-box[hidden]{display:none}
.cookie-box h2{font-size:18px;margin:0 0 6px;font-family:var(--sans,inherit)}
.cookie-box p{margin:0;color:#3b4760}
.cookie-box a{color:#123e94;text-decoration:underline}
.consent-opts{display:grid;gap:8px;margin-top:14px}
.consent-opts[hidden]{display:none}
.c-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line,#d9e0ec);border-radius:10px;cursor:pointer;font-size:13px;color:#3b4760}
.c-opt input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:#0c2b6e}
.c-opt b{display:block;color:#0d1b36;font-size:14px}
.consent-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.c-btn{flex:1 1 170px;min-height:46px;padding:0 16px;border:2px solid #0c2b6e;border-radius:10px;background:#0c2b6e;color:#fff;font:700 14px/1.2 var(--sans,inherit);cursor:pointer}
.c-btn[data-c="none"]{background:#fff;color:#0c2b6e}
.c-btn.c-link{flex:0 1 auto;border-color:transparent;background:transparent;color:#123e94;text-decoration:underline}
.c-btn[hidden]{display:none}
.c-btn:hover{filter:brightness(1.1)}
@media (max-width:600px){.cookie-box{bottom:76px;padding:16px}.c-btn{flex:1 1 100%}}
.foot-consent{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.foot-consent svg{width:16px;height:16px}
.foot-consent:hover{text-decoration:underline}

/* ---------- Textgröße: nur Inhalt und Footer vergrößern ---------- */
html.svb-a11y-big main,html.svb-a11y-big .footer{zoom:var(--svb-zoom,1)}
html.svb-a11y-big main,html.svb-a11y-font main{overflow-x:clip}
/* lesbare Mindestgröße in Kopfzeile und Menüs ohne Breitenwachstum */
html.svb-a11y-big .nav{font-size:14.5px}
html.svb-a11y-big .mm-scroll,html.svb-a11y-big .mega-in{font-size:105%}

/* Vergrößerte Ansicht: weniger Platz -> Raster früher einspaltig, damit nichts abgeschnitten wird */
html:is(.svb-a11y-big,.svb-a11y-font) .services-head{grid-template-columns:1fr;gap:16px}
html:is(.svb-a11y-big,.svb-a11y-font) .services-head>*{min-width:0}
html:is(.svb-a11y-big,.svb-a11y-font) .services-head h2{font-size:clamp(26px,7.5vw,46px)}
html:is(.svb-a11y-big,.svb-a11y-font) .tags{display:flex;flex-wrap:wrap;gap:8px 18px;border-left:0;padding-left:0}
html:is(.svb-a11y-big,.svb-a11y-font) .tags::after{display:none}
@media (max-width:1500px){
  html.svb-a11y-big .foot-main{grid-template-columns:1fr 1fr;gap:28px 32px}
  html.svb-a11y-big .foot-cta,html.svb-a11y-big .foot-links,html.svb-a11y-big .foot-tuev{margin-top:0}
  html.svb-a11y-big .foot-cta{width:auto}
}
@media (max-width:1100px){
  html.svb-a11y-big .foot-main{grid-template-columns:1fr}
  html.svb-a11y-big .foot-links{border-left:0;padding-left:0}
  html.svb-a11y-big .foot-claim{white-space:normal}
}
html.svb-a11y-big .foot-bottom .wrap{flex-wrap:wrap}

/* Handy: Kopfzeile darf nicht über den Rand ragen (Firmenname bricht um, Abstände kleiner) */
@media (max-width:420px){
  .header .wrap{gap:6px}
  .header .brand{flex:1 1 auto;min-width:0;gap:8px}
  .header .brand span{min-width:0}
  .header .brand b{white-space:normal;font-size:14px;line-height:1.15}
  .header .brand small{display:none}
  .header .brand img{width:38px;height:38px;flex:none}
  .header .unfall-btn{margin-left:0;flex:none}
  .header .burger{margin-left:0;flex:none}
}
/* Kopfzeile passt sich an, wenn sie nicht in eine Zeile passt (Stufen setzt fitHeader() in a11y.js) */
.header.hdr-fit-1 .wrap{gap:12px}
.header.hdr-fit-1 .nav{gap:14px}
.header.hdr-fit-1 .wrap>.unfall-btn{margin-left:6px}
.header.hdr-fit-1 .wrap>.search-btn{margin-left:4px}
.header.hdr-fit-1 .wrap>.btn{padding:0 14px;margin-left:4px}
.header.hdr-fit-2 .unfall-btn{padding:0 6px}
.header.hdr-fit-2 .unfall-btn .ub-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.header.hdr-fit-2 .wrap>.btn svg{display:none}
.header.hdr-fit-3 .wrap>.nav,.header.hdr-fit-3 .wrap>.btn{display:none}
.header.hdr-fit-3 .wrap>.burger{display:block;margin-left:2px}
.header.hdr-fit-3 .wrap>.unfall-btn{margin-left:auto}
.header.hdr-fit-4 .brand{flex:0 1 auto;min-width:0;gap:8px}
.header.hdr-fit-4 .brand span{min-width:0}
.header.hdr-fit-4 .brand small{display:none}
.header.hdr-fit-4 .brand b{white-space:normal;font-size:15px;line-height:1.15}
.header.hdr-fit-5 .wrap>.search-btn{display:none}
/* Burger-Modus auf großen Bildschirmen: Menü öffnet als Seitenleiste rechts (style.css blendet .mm ab 1201 px sonst aus) */
@media (min-width:1201px){
  html.hdr-burger .mm:not([hidden]){display:flex!important;left:auto;width:min(480px,100vw);box-shadow:-30px 0 70px -20px rgba(6,16,40,.55)}
  html.hdr-burger.mm-lock body::after{content:"";position:fixed;inset:0;z-index:149;background:rgba(4,10,28,.5)}
}

/* Vergrößerte Ansicht am Handy: Leistungskarten untereinander, lange Wörter umbrechen */
@media (max-width:600px){
  html:is(.svb-a11y-big,.svb-a11y-font) .card{flex-direction:column}
  html:is(.svb-a11y-big,.svb-a11y-font) .card .ph{width:auto;aspect-ratio:16/9;min-height:0}
  html:is(.svb-a11y-big,.svb-a11y-font) .card .body{min-width:0}
}
html:is(.svb-a11y-big,.svb-a11y-font) main :is(h1,h2,h3,h4,p,li,a,small,strong,b,span){overflow-wrap:break-word;hyphens:auto}
/* Überschriften mit Wort-Animation: Wörter sind sonst feste Blöcke (.w) und brechen nicht um */
html:is(.svb-a11y-big,.svb-a11y-font) main .w,html:is(.svb-a11y-big,.svb-a11y-font) main .wi{display:inline;overflow:visible}
/* Vergrößert auf Tablet/kleinem Laptop: Kennzahlen zweispaltig, Zitatblock einspaltig, Knöpfe dürfen umbrechen */
@media (max-width:1100px){
  html.svb-a11y-big .stats .wrap{grid-template-columns:1fr 1fr;row-gap:18px}
  html.svb-a11y-big .trust .wrap{grid-template-columns:1fr}
}
html:is(.svb-a11y-big,.svb-a11y-font) main :is(.wrap,.process-head,.feats,.benefits)>*{min-width:0}
@media (max-width:1100px){html.svb-a11y-big .benefits{grid-template-columns:1fr}}
html.svb-a11y-big main .wrap:has(>.faq){grid-template-columns:1fr}
@media (max-width:760px){html.svb-a11y-big .feats{grid-template-columns:1fr;gap:12px}html.svb-a11y-big .feat{padding:0;border-left:0}}
html.svb-a11y-big main .btn{white-space:normal;height:auto;min-height:46px;max-width:100%;padding-top:8px;padding-bottom:8px}
@media (max-width:480px){
  html:is(.svb-a11y-big,.svb-a11y-font) .hero h1{font-size:7.4vw}
  html:is(.svb-a11y-big,.svb-a11y-font) .hero h1 .w{overflow-wrap:anywhere}
  html.svb-a11y-big .stats .wrap{grid-template-columns:1fr}
}
/* Auch ohne Barrierefreiheit: schmale Geräte und Footer zwischen Handy und Tablet */
.card .body{min-width:0}
.card h3{overflow-wrap:break-word;hyphens:auto}
@media (max-width:760px){
  .foot-main{grid-template-columns:1fr}
  .foot-tuev{justify-self:start}
}
@media (max-width:360px){.feats{grid-template-columns:1fr;gap:10px}.feat{padding:0;border-left:0}}
@media (max-width:600px){
  html:is(.svb-a11y-big,.svb-a11y-font) main .btn{white-space:normal;height:auto;min-height:48px;padding-top:10px;padding-bottom:10px;text-align:center;justify-content:center;max-width:100%}
  html:is(.svb-a11y-big,.svb-a11y-font) .feats{grid-template-columns:1fr;gap:12px}
  html:is(.svb-a11y-big,.svb-a11y-font) .feat{padding:0;border-left:0}
  html:is(.svb-a11y-big,.svb-a11y-font) .loc-acts{justify-items:stretch}}
