*,*::before,*::after{box-sizing:border-box;}
img,svg,video{max-width:100%;}
:root{
  --bvh-bg:#FFFFFF; --bvh-tint:#F2F6F6; --bvh-wash:#EDEFFF;
  --bvh-ink:#07262D;
  --bvh-brand:#003739; --bvh-brand-600:#0A4B4D; --bvh-brand-400:#2C6E70; --bvh-brand-050:#E4EDED;
  --bvh-deep:#002325; --bvh-darker:#001718;
  --bvh-accent:#0019FF; --bvh-accent-700:#0013C4; --bvh-accent-300:#5768FF; --bvh-accent-150:#9AA5FF; --bvh-accent-050:#E8EBFF;
  --bvh-green-tint:#DCEBE9; --bvh-muted:#5C7071; --bvh-line:#D8E2E2; --bvh-line-strong:#B9CACA;
  --bvh-link:#0019FF; --bvh-link-hover:#0013C4;
  --bvh-signal:#B3271E; --bvh-positive:#1C6E52; --bvh-warn:#8A5A00;
  --bvh-shadow:0 30px 64px rgba(0,25,255,.08);
  --bvh-shadow-sm:0 10px 26px rgba(0,35,37,.08);
  --bvh-shell:1320px;
  --bvh-gutter:clamp(20px,5vw,56px);
  --bvh-edge:clamp(18px,2.2vw,34px);
  --bvh-railw:44px;
  --bvh-pfeil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.4 12h15.1'/%3E%3Cpath d='M12.9 6.4 18.5 12l-5.6 5.6'/%3E%3C/svg%3E");
  --bvh-ease:cubic-bezier(.22,.61,.36,1);
  --bvh-headerh:160px;
}

html{scroll-behavior:smooth;scroll-padding-top:120px;}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;background:#fff;color:var(--bvh-ink);}
::selection{background:var(--bvh-brand);color:#fff;}
:focus-visible{outline:3px solid var(--bvh-brand);outline-offset:3px;}

/* ---------- Typografie ---------- */
h1,h2,h3,h4{letter-spacing:0;color:var(--bvh-brand);}
.bvh-eyebrow{font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--bvh-muted);margin:0 0 22px;}
.bvh-lead{font-size:clamp(19px,1.35vw,22px);line-height:1.6;color:var(--bvh-ink);max-width:34em;}
.bvh-mono{font-family:ui-monospace,'SFMono-Regular','Roboto Mono',Menlo,monospace;font-size:15px;letter-spacing:.02em;}
.bvh-note{font-size:15px;color:var(--bvh-muted);line-height:1.6;}
.bvh-kicker{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bvh-muted);margin:0 0 12px;}
.bvh-sample{display:inline-flex;align-items:center;gap:9px;width:fit-content;justify-self:start;font-size:13px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--bvh-muted);border:1px solid var(--bvh-line);padding:6px 12px;}
.bvh-sample::before{content:"";width:7px;height:7px;background:var(--bvh-accent);flex:none;}

/* ---------- Sektionsgeruest ---------- */
.bvh-shell{width:min(var(--bvh-shell),100%);margin-inline:auto;}
.bvh-section{padding-block:clamp(88px,10vw,152px);padding-inline:var(--bvh-gutter);position:relative;}
.bvh-section--tight{padding-block:clamp(56px,6vw,88px);}
.bvh-tint{background:var(--bvh-tint);}
.bvh-wash{background:var(--bvh-wash);}
.bvh-dark{background:var(--bvh-deep);color:#fff;}
.bvh-dark h1,.bvh-dark h2,.bvh-dark h3,.bvh-dark h4{color:#fff;}

.bvh-sechead{max-width:820px;margin-bottom:clamp(52px,6vw,84px);}
.bvh-sechead h2{margin:0 0 22px;}
.bvh-sechead p{margin:0;}
.bvh-sechead--wide{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end;}
.bvh-sechead--wide h2{max-width:20ch;}
@media(max-width:860px){.bvh-sechead--wide{grid-template-columns:1fr;align-items:start;gap:24px;}}

/* ---------- Markenzeichen ---------- */
.bvh-marke{display:block;width:56px;height:56px;flex:none;}
.bvh-marke path{fill:none;stroke:var(--bvh-brand);stroke-width:8;stroke-linecap:round;}
.bvh-marke--accent path{stroke:var(--bvh-accent);}
.bvh-marke--light path{stroke:#fff;}
.bvh-js .bvh-marke--draw path{stroke-dasharray:var(--len,120);stroke-dashoffset:var(--len,120);animation:bvh-draw .85s var(--bvh-ease) .3s forwards;}
.bvh-js .bvh-marke--draw path:nth-child(2){animation-delay:.42s;}
.bvh-js .bvh-marke--draw path:nth-child(3){animation-delay:.54s;}
@keyframes bvh-draw{to{stroke-dashoffset:0;}}

/* ---------- Buttons ---------- */
.bvh-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:'Fira Sans','Helvetica Neue',Arial,sans-serif;font-size:17px;font-weight:500;line-height:1.2;padding:16px 30px;border:1px solid transparent;text-decoration:none;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;transition:background .25s var(--bvh-ease),color .25s var(--bvh-ease),border-color .25s var(--bvh-ease);}
.bvh-btn--primary{background:var(--bvh-brand);color:#fff;}
.bvh-btn--primary:hover{background:#00504F;}
.bvh-btn--accent{background:var(--bvh-accent);color:#fff;font-weight:600;}
.bvh-btn--accent:hover{background:var(--bvh-accent-700);}
.bvh-btn--ghost{background:transparent;color:var(--bvh-brand);border-color:var(--bvh-brand);}
.bvh-btn--ghost:hover{background:var(--bvh-brand);color:#fff;}
.bvh-dark .bvh-btn--ghost{color:#fff;border-color:rgba(255,255,255,.45);}
.bvh-dark .bvh-btn--ghost:hover{background:#fff;color:var(--bvh-brand);border-color:#fff;}
.bvh-btn--sm{padding:11px 20px;font-size:15px;}

.bvh-link{display:inline-flex;align-items:center;gap:10px;position:relative;color:var(--bvh-brand);text-decoration:none;font-weight:500;padding-bottom:7px;}
.bvh-link::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--bvh-accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--bvh-ease);}
.bvh-link:hover::after,.bvh-link:focus-visible::after{transform:scaleX(1);}
.bvh-link .bvh-arrow{transition:transform .4s var(--bvh-ease);}
.bvh-link:hover .bvh-arrow{transform:translateX(6px);}
.bvh-dark .bvh-link{color:#fff;}

/* ---------- Kopfbereich ---------- */
.bvh-header{position:sticky;top:0;z-index:130;background:#fff;}
.bvh-header a{text-decoration:none;color:var(--bvh-ink);}
.bvh-header__top,.bvh-header__nav{padding-inline:var(--bvh-gutter);background:#fff;}
.bvh-header__top{border-bottom:1px solid var(--bvh-line);}
.bvh-header__top .bvh-shell{display:flex;align-items:center;gap:32px;height:96px;}
.bvh-logo img{display:block;height:60px;width:auto;transition:height .3s var(--bvh-ease);}
.bvh-claim{font-size:16px;color:var(--bvh-muted);border-left:1px solid var(--bvh-line);padding-left:28px;}
@media(max-width:1240px){.bvh-claim{display:none;}}
.bvh-header__util{margin-left:auto;display:flex;align-items:stretch;gap:28px;font-size:14px;line-height:1.4;color:var(--bvh-muted);}
.bvh-header__util>*{display:flex;align-items:center;}
.bvh-header__util .sep{border-left:1px solid var(--bvh-line);padding-left:28px;}
.bvh-header__util strong{display:block;font-weight:400;}
.bvh-header__util a{color:var(--bvh-link);font-weight:600;}
.bvh-header__util a:hover{text-decoration:underline;}

.bvh-header__nav .bvh-shell{display:flex;align-items:center;gap:12px;height:72px;}
.bvh-nav{display:flex;align-items:center;gap:6px;}
.bvh-nav__item{position:relative;}
.bvh-nav__link{display:flex;align-items:center;gap:9px;padding:24px 20px;font-size:17px;font-weight:400;background:none;border:0;color:var(--bvh-ink);font-family:inherit;cursor:pointer;position:relative;line-height:1;}
.bvh-nav__link::after{content:"";position:absolute;left:20px;right:20px;bottom:16px;height:3px;background:var(--bvh-brand);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--bvh-ease);}
.bvh-nav__link:hover::after,.bvh-nav__item.is-open .bvh-nav__link::after{transform:scaleX(1);}
.bvh-header__actions{margin-left:auto;display:flex;align-items:center;gap:16px;}
.bvh-iconbtn{display:grid;place-items:center;width:48px;height:48px;background:none;border:0;color:var(--bvh-brand);cursor:pointer;transition:background .2s var(--bvh-ease);}
.bvh-iconbtn:hover{background:var(--bvh-tint);}

/* Kompaktleiste beim Scrollen */
.bvh-compact{position:fixed;top:0;left:0;right:0;z-index:135;background:#fff;border-bottom:1px solid var(--bvh-line);transform:translateY(-100%);transition:transform .35s var(--bvh-ease);padding-inline:var(--bvh-gutter);}
.bvh-compact.is-on{transform:translateY(0);}
.bvh-compact .bvh-shell{display:flex;align-items:center;gap:14px;height:68px;}
.bvh-compact__mark img{display:block;height:44px;width:auto;}
.bvh-compact .bvh-nav__link{padding:22px 16px;font-size:16px;}
.bvh-compact .bvh-nav__link::after{left:16px;right:16px;bottom:14px;}
@media(max-width:1240px){.bvh-compact .bvh-nav{display:none;}}

/* Ausfahrende Suche */
.bvh-searchbar{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--bvh-line);box-shadow:var(--bvh-shadow);padding:0 var(--bvh-gutter);max-height:0;overflow:hidden;opacity:0;transition:max-height .4s var(--bvh-ease),opacity .3s var(--bvh-ease),padding .4s var(--bvh-ease);z-index:140;}
.bvh-searchbar.is-open{max-height:460px;opacity:1;padding-block:28px 32px;}
.bvh-searchbar form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;border-bottom:3px solid var(--bvh-brand);}
.bvh-searchbar input{border:0;background:transparent;font-family:inherit;font-size:clamp(20px,2vw,28px);padding:14px 4px;width:100%;color:var(--bvh-brand);}
.bvh-searchbar input:focus{outline:none;}
.bvh-searchbar input::placeholder{color:#9DB0B0;}
.bvh-searchbar__hint{margin:16px 0 0;font-size:15px;color:var(--bvh-muted);}
.bvh-searchbar__quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.bvh-searchbar__results{margin-top:22px;display:grid;gap:2px;max-height:260px;overflow-y:auto;}
.bvh-searchbar__results a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:13px 0;border-top:1px solid var(--bvh-line);font-size:16px;color:var(--bvh-ink);}
.bvh-searchbar__results a:hover{color:var(--bvh-brand);}
.bvh-searchbar__results span.r{font-size:13px;color:var(--bvh-muted);text-transform:uppercase;letter-spacing:.06em;}

/* Mega-Panel */
.bvh-mega{position:absolute;left:0;right:0;top:100%;background:var(--bvh-tint);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s var(--bvh-ease),transform .3s var(--bvh-ease),visibility .3s;z-index:120;overflow:hidden;}
.bvh-header.is-megaopen .bvh-mega.is-active{opacity:1;visibility:visible;transform:translateY(0);}
.bvh-mega__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px;padding:64px var(--bvh-gutter) 72px;position:relative;z-index:2;}
.bvh-mega h3{font-size:16px;font-weight:700;color:var(--bvh-brand);margin:0 0 26px;letter-spacing:.02em;}
.bvh-mega ul{list-style:none;margin:0;padding:0;display:grid;gap:16px;}
.bvh-mega li a{position:relative;display:flex;align-items:center;gap:10px;font-size:17px;line-height:1.35;color:var(--bvh-ink);padding-block:2px;transition:padding-left .4s var(--bvh-ease),color .3s var(--bvh-ease);}
.bvh-mega li a::before{content:"";position:absolute;left:0;top:50%;width:3px;height:72%;background:var(--bvh-accent);transform:translateY(-50%) scaleY(0);transition:transform .4s var(--bvh-ease);}
.bvh-mega li a::after{content:"";width:18px;height:18px;flex:none;opacity:0;transform:translateX(-7px);transition:opacity .35s var(--bvh-ease),transform .35s var(--bvh-ease);-webkit-mask:var(--bvh-pfeil) no-repeat center/contain;mask:var(--bvh-pfeil) no-repeat center/contain;}
.bvh-mega li a:hover,.bvh-mega li a:focus-visible{color:var(--bvh-link);padding-left:16px;text-decoration:none;}
.bvh-mega li a:hover::before,.bvh-mega li a:focus-visible::before{transform:translateY(-50%) scaleY(1);}
.bvh-mega li a:hover::after,.bvh-mega li a:focus-visible::after{opacity:1;transform:translateX(0);}
.bvh-mega__all{position:relative;margin-top:28px;display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--bvh-link);padding-bottom:7px;}
.bvh-mega__all::before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--bvh-accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--bvh-ease);}
.bvh-mega__all::after{content:"";width:17px;height:17px;flex:none;transition:transform .35s var(--bvh-ease);-webkit-mask:var(--bvh-pfeil) no-repeat center/contain;mask:var(--bvh-pfeil) no-repeat center/contain;}
.bvh-mega__all:hover{text-decoration:none;}
.bvh-mega__all:hover::before{transform:scaleX(1);}
.bvh-mega__all:hover::after{transform:translateX(6px);}
@supports((-webkit-mask-image:url("")) or (mask-image:url(""))){
  .bvh-mega li a::after,.bvh-mega__all::after{background:currentColor;}
}
.bvh-mega__diag{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;}
.bvh-mega__diag line{stroke:var(--bvh-accent-300);stroke-width:2;stroke-dasharray:1600;stroke-dashoffset:1600;}
.bvh-header.is-megaopen .bvh-mega.is-active .bvh-mega__diag line{transition:stroke-dashoffset 1.1s var(--bvh-ease) .1s;stroke-dashoffset:0;}
.bvh-mega__service{background:var(--bvh-brand);padding:30px var(--bvh-gutter);position:relative;z-index:2;}
.bvh-mega__service .bvh-shell{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,5vw,80px);}
.bvh-mega__service a{display:grid;justify-items:center;gap:14px;color:#fff;font-size:15px;font-weight:500;text-align:center;max-width:160px;}
.bvh-mega__service span.ic{display:grid;place-items:center;width:60px;height:60px;border:1px solid rgba(255,255,255,.35);transition:background .25s var(--bvh-ease),border-color .25s var(--bvh-ease),color .25s var(--bvh-ease);}
.bvh-mega__service a:hover span.ic{background:var(--bvh-green-tint);border-color:var(--bvh-green-tint);color:var(--bvh-brand);}

.bvh-burger{display:none;}
@media(max-width:1240px){
  .bvh-nav,.bvh-header__util{display:none;}
  .bvh-burger{display:grid;}
  .bvh-header__nav{display:none;}
  .bvh-header__top .bvh-shell{height:84px;}
  .bvh-logo img{height:52px;}
  .bvh-mega{display:none;}
}

/* ---------- Fussbereich ---------- */
.bvh-footer{background:var(--bvh-deep);color:rgba(255,255,255,.72);padding:clamp(72px,7vw,104px) var(--bvh-gutter) 44px;}
.bvh-footer a{color:rgba(255,255,255,.72);text-decoration:none;}
.bvh-footer a:hover{color:var(--bvh-green-tint);}
.bvh-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:56px;padding-bottom:64px;}
.bvh-footer h4{color:#fff;font-size:14px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin:0 0 24px;}
.bvh-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:16px;}
.bvh-footer__brand img{height:64px;width:auto;margin-bottom:28px;}
.bvh-footer__brand p{font-size:16px;line-height:1.7;max-width:36ch;margin:0 0 20px;}
.bvh-footer__adr{font-size:15px;line-height:1.8;color:rgba(255,255,255,.6);}
.bvh-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;padding-top:36px;border-top:1px solid rgba(255,255,255,.16);font-size:15px;}
.bvh-footer__legal nav{display:flex;flex-wrap:wrap;gap:28px;}
@media(max-width:960px){.bvh-footer__grid{grid-template-columns:1fr 1fr;gap:44px;}}
@media(max-width:620px){.bvh-footer__grid{grid-template-columns:1fr;}}

/* ---------- Bewegung ---------- */
.bvh-reveal{transition:opacity .9s var(--bvh-ease),transform .9s var(--bvh-ease);}
.bvh-js .bvh-reveal{opacity:0;transform:translateY(30px);}
.bvh-js .bvh-reveal.is-in{opacity:1;transform:none;}
.bvh-reveal[data-delay="1"]{transition-delay:.09s;}
.bvh-reveal[data-delay="2"]{transition-delay:.18s;}
.bvh-reveal[data-delay="3"]{transition-delay:.27s;}
.bvh-reveal[data-delay="4"]{transition-delay:.36s;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .bvh-js .bvh-reveal{opacity:1;transform:none;}
  .bvh-js .bvh-marke--draw path{stroke-dashoffset:0;animation:none;}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.1s !important;}
}

/* ---------- Bildlaufleisten ---------- */
html{scrollbar-width:thin;scrollbar-color:var(--bvh-brand) var(--bvh-brand-050);}
::-webkit-scrollbar{width:12px;height:12px;}
::-webkit-scrollbar-track{background:var(--bvh-brand-050);}
::-webkit-scrollbar-thumb{background:var(--bvh-brand);background-clip:padding-box;border:2px solid transparent;}
::-webkit-scrollbar-thumb:hover{background:var(--bvh-deep);background-clip:padding-box;}
::-webkit-scrollbar-corner{background:var(--bvh-brand-050);}

/* ---------- Abschnittsnavigation ---------- */
.bvh-secnav{position:fixed;right:var(--bvh-edge);top:50%;transform:translateY(-50%);z-index:110;pointer-events:none;}
/* Fortschrittsrahmen der Abschnittsleiste */
.bvh-secnav__ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;}
.bvh-secnav__ring rect{fill:none;stroke:var(--bvh-brand);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1;}

.bvh-secnav__list{list-style:none;margin:0;padding:7px 0;display:grid;width:var(--bvh-railw);background:#fff;border:1px solid var(--bvh-line);box-shadow:var(--bvh-shadow-sm);pointer-events:auto;}
.bvh-secnav__dot{position:relative;display:grid;place-items:center;width:var(--bvh-railw);height:28px;padding:0;background:none;border:0;cursor:pointer;font-family:inherit;}
.bvh-secnav__dot .pt{width:10px;height:10px;background:#fff;border:1px solid var(--bvh-line-strong);transition:background .25s var(--bvh-ease),border-color .25s var(--bvh-ease);}
.bvh-secnav__dot:hover .pt,.bvh-secnav__dot:focus-visible .pt{background:var(--bvh-green-tint);border-color:var(--bvh-brand);}
.bvh-secnav__dot.is-on .pt{background:var(--bvh-brand);border-color:var(--bvh-brand);}
.bvh-secnav__dot .lb{position:absolute;right:calc(100% + 8px);top:50%;transform:translate(8px,-50%);white-space:nowrap;background:var(--bvh-green-tint);border:1px solid var(--bvh-brand);color:var(--bvh-brand);font-size:14px;font-weight:500;line-height:1.2;padding:8px 13px;opacity:0;pointer-events:none;transition:opacity .25s var(--bvh-ease),transform .25s var(--bvh-ease);}
.bvh-secnav__dot:hover .lb,.bvh-secnav__dot:focus-visible .lb{opacity:1;transform:translate(0,-50%);}
@media(max-width:1240px),(max-height:560px){.bvh-secnav{display:none;}}

/* ---------- Zum Seitenanfang ---------- */
.bvh-totop{position:fixed;right:var(--bvh-edge);bottom:var(--bvh-edge);z-index:112;display:grid;place-items:center;width:var(--bvh-railw);height:var(--bvh-railw);padding:0;background:var(--bvh-brand);border:1px solid var(--bvh-brand);color:#fff;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s var(--bvh-ease),transform .3s var(--bvh-ease),visibility .3s,background .25s var(--bvh-ease),border-color .25s var(--bvh-ease);}
.bvh-totop.is-on{opacity:1;visibility:visible;transform:none;}
.bvh-totop:hover{background:var(--bvh-deep);border-color:var(--bvh-deep);}
body.bvh-navopen .bvh-secnav,body.bvh-navopen .bvh-totop{display:none;}

/* ---------- Formularvokabular ---------- */
.bvh-field{display:grid;gap:9px;}
.bvh-field label{font-size:14px;font-weight:600;color:var(--bvh-brand);letter-spacing:.01em;}
.bvh-field input,.bvh-field select,.bvh-field textarea{
  font-family:'Fira Sans',sans-serif;font-size:16px;color:var(--bvh-ink);background:#fff;
  border:1px solid var(--bvh-line);border-radius:0;padding:14px 16px;width:100%;
  transition:border-color .2s var(--bvh-ease),box-shadow .2s var(--bvh-ease);
}
.bvh-field input:focus,.bvh-field select:focus,.bvh-field textarea:focus{outline:none;border-color:var(--bvh-brand);box-shadow:0 0 0 2px rgba(0,55,57,.2);}
.bvh-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23003739' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;}
.bvh-field small{font-size:13px;color:var(--bvh-muted);}
