.bsfs-root{
  --bsfs-paper:#F5F5F2;
  --bsfs-ink:#141414;
  --bsfs-black:#0E0E0E;
  --bsfs-red:#E10600;
  --bsfs-line:rgba(20,20,20,.14);
  --bsfs-line-inv:rgba(245,245,242,.16);
  --bsfs-display:"Archivo",sans-serif;
  --bsfs-mono:"Space Mono",monospace;
  --bsfs-ease:cubic-bezier(.22,1,.36,1);
  --bsfs-maxw:1440px;
  --bsfs-pad:24px;
  --bsfs-h:68px;
}
@media (max-width:1024px){.bsfs-root{--bsfs-pad:16px}}
@media (max-width:767px){.bsfs-root{--bsfs-pad:8px}}
.bsfs-root *,.bsfs-root *::before,.bsfs-root *::after{box-sizing:border-box}

/* ── Header ── */
.bsfs-header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  transition:transform .4s var(--bsfs-ease),background .4s var(--bsfs-ease);
}
body.admin-bar .bsfs-header{top:32px}
@media (max-width:782px){body.admin-bar .bsfs-header{top:46px}}
.bsfs-header.bsfs-solid{
  background:rgba(245,245,242,.85);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--bsfs-line);
}
/* Beim Runterscrollen ausblenden – die untere Linie (2px) mit Fortschritt bleibt sichtbar */
.bsfs-header.bsfs-hidden{transform:translateY(calc(-100% + 2px))}
/* Max. Breite = Inhaltsbreite; der Seitenabstand kommt außen dazu (wie bei den Seiten-Containern) */
.bsfs-header__inner{
  position:relative;
  max-width:calc(var(--bsfs-maxw) + 2 * var(--bsfs-pad));margin:0 auto;padding:0 var(--bsfs-pad);
  height:var(--bsfs-h);display:flex;align-items:center;
}
.bsfs-progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--bsfs-red);z-index:1}

/* Platzhalter, damit der Inhalt nicht unter dem fixierten Header verschwindet */
.bsfs-spacer{display:none;height:var(--bsfs-h)}
.bsfs-pos-fixed.bsfs-spacer-yes .bsfs-root .bsfs-spacer{display:block}
.elementor-editor-active .bsfs-root .bsfs-spacer{display:none !important}

/* Modus „Im Container“: klebt am Rand des Eltern-Containers */
.bsfs-pos-static .bsfs-root .bsfs-header{position:relative;top:auto;transform:none}
.bsfs-pos-static .bsfs-root .bsfs-header.bsfs-solid{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0}
.bsfs-pos-static .bsfs-root .bsfs-header__inner{max-width:none;padding:0}
.bsfs-pos-static .bsfs-root .bsfs-progress{display:none}

/* ── Logo ── */
.bsfs-root .bsfs-logo,
.bsfs-root .bsfs-logo:hover,
.bsfs-root .bsfs-logo:focus,
.bsfs-root .bsfs-logo:active,
.bsfs-root .bsfs-logo:visited{
  font-family:var(--bsfs-display);font-weight:800;font-size:20px;letter-spacing:-.02em;
  color:var(--bsfs-ink);text-decoration:none;line-height:1;flex-shrink:0;
}
.bsfs-logo__dot{
  display:inline-block;width:.2em;height:.2em;margin-left:.06em;
  background:var(--bsfs-red);
  transform-origin:50% 50%;
  transition:transform .35s var(--bsfs-ease);
}
.bsfs-root .bsfs-logo:hover .bsfs-logo__dot,.bsfs-root .bsfs-logo:focus-visible .bsfs-logo__dot{transform:rotate(45deg)}

/* Logo im Mobile-Menü: bleibt weiß, zoomt beim Hover nur leicht heran */
.bsfs-root .bsfs-logo.bsfs-logo--inv,
.bsfs-root .bsfs-logo.bsfs-logo--inv:hover,
.bsfs-root .bsfs-logo.bsfs-logo--inv:focus,
.bsfs-root .bsfs-logo.bsfs-logo--inv:active,
.bsfs-root .bsfs-logo.bsfs-logo--inv:visited{
  display:inline-block;color:var(--bsfs-paper);font-size:clamp(26px,4vw,34px);
  transform-origin:left center;transition:transform .35s var(--bsfs-ease);
}
.bsfs-root .bsfs-logo.bsfs-logo--inv:hover,.bsfs-root .bsfs-logo.bsfs-logo--inv:focus-visible{transform:scale(1.06)}
.bsfs-root .bsfs-logo--inv:hover .bsfs-logo__dot,.bsfs-root .bsfs-logo--inv:focus-visible .bsfs-logo__dot{transform:none}

/* ── Desktop-Nav ── */
.bsfs-nav{display:flex;gap:36px;align-items:center}
.bsfs-root .bsfs-nav a{
  font-family:var(--bsfs-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--bsfs-ink);text-decoration:none;position:relative;padding:4px 0;
  transition:color .3s var(--bsfs-ease);
}
.bsfs-root .bsfs-nav a:hover,.bsfs-root .bsfs-nav a:focus-visible{color:var(--bsfs-red)}
.bsfs-nav a::after{
  content:"";position:absolute;left:0;bottom:-1px;height:6px;width:100%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M2,5 C20,2 45,7 65,4 C80,2 92,5 98,3' fill='none' stroke='%23E10600' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat;
  background-size:100% 100%;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--bsfs-ease);
}
.bsfs-nav a:hover::after,.bsfs-nav a:focus-visible::after{transform:scaleX(1)}

.bsfs-header__right{display:flex;align-items:center;gap:28px;margin-left:auto}

/* Position der Links: rechts (Standard) / links / zentriert */
.bsfs-root .bsfs-nav{margin-left:auto;margin-right:36px}
.bsfs-root .bsfs-nav ~ .bsfs-header__right{margin-left:0}
.bsfs-nav-align-left .bsfs-root .bsfs-nav{margin-left:48px;margin-right:0}
.bsfs-nav-align-left .bsfs-root .bsfs-nav ~ .bsfs-header__right{margin-left:auto}
.bsfs-nav-align-center .bsfs-root .bsfs-nav{position:absolute;left:50%;transform:translateX(-50%);margin:0}
.bsfs-nav-align-center .bsfs-root .bsfs-nav ~ .bsfs-header__right{margin-left:auto}

.bsfs-root .bsfs-nav__cta{
  font-family:var(--bsfs-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--bsfs-ink);text-decoration:none;
  border:1px solid var(--bsfs-ink);padding:10px 20px;
  transition:background .25s,color .25s;
}
.bsfs-root .bsfs-nav__cta:hover,.bsfs-root .bsfs-nav__cta:focus-visible{background:var(--bsfs-ink);color:var(--bsfs-paper)}

/* ── Burger (Größe/Farbe über --bsfs-burger-*) ── */
.bsfs-root .bsfs-burger{
  --bsfs-bs:var(--bsfs-burger-size,34px);
  --bsfs-bl:var(--bsfs-burger-line,2px);
  --bsfs-bc:var(--bsfs-burger-color,var(--bsfs-ink));
  display:none;width:var(--bsfs-bs);height:calc(var(--bsfs-bs) * .765);position:relative;z-index:220;
  background:none;border:0;border-radius:0;cursor:pointer;padding:0;box-shadow:none;
  color:var(--bsfs-bc);transition:color .25s;
}
.bsfs-root .bsfs-burger:hover,.bsfs-root .bsfs-burger:focus-visible{
  background:none;--bsfs-bc:var(--bsfs-burger-hover,var(--bsfs-burger-color,var(--bsfs-ink)));
}
.bsfs-root .bsfs-burger:focus{background:none}
.bsfs-burger span{
  position:absolute;left:0;width:100%;height:var(--bsfs-bl);background:var(--bsfs-bc);
  transition:.35s var(--bsfs-ease);
}
.bsfs-burger span:nth-child(1){top:calc(var(--bsfs-bs) * .088)}
.bsfs-burger span:nth-child(2){top:calc(50% - var(--bsfs-bl) / 2)}
.bsfs-burger span:nth-child(3){top:calc(100% - var(--bsfs-bs) * .088 - var(--bsfs-bl));width:60%}
.bsfs-burger:hover span:nth-child(3){width:100%}
.bsfs-burger.bsfs-open span:nth-child(1){top:calc(50% - var(--bsfs-bl) / 2);transform:rotate(45deg);background:var(--bsfs-paper)}
.bsfs-burger.bsfs-open span:nth-child(2){opacity:0}
.bsfs-burger.bsfs-open span:nth-child(3){top:calc(50% - var(--bsfs-bl) / 2);width:100%;transform:rotate(-45deg);background:var(--bsfs-paper)}

/* Eigenes Icon */
.bsfs-root .bsfs-burger--custom{
  width:auto;height:auto;font-size:var(--bsfs-bs);line-height:1;
  align-items:center;justify-content:center;
}
.bsfs-root .bsfs-burger--custom i{color:var(--bsfs-bc);font-size:1em;line-height:1}
.bsfs-root .bsfs-burger--custom svg{width:1em;height:1em;fill:var(--bsfs-bc);display:block;transition:fill .25s}

@media (max-width:1024px){
  .bsfs-root .bsfs-nav,.bsfs-root .bsfs-nav__cta{display:none}
  .bsfs-root .bsfs-nav ~ .bsfs-header__right{margin-left:auto}
  .bsfs-root .bsfs-burger{display:block}
  .bsfs-root .bsfs-burger--custom{display:inline-flex}
}

/* ── Overlay ── */
.bsfs-overlay{
  position:fixed;inset:0;z-index:210;
  background:var(--bsfs-black);
  display:flex;flex-direction:column;
  clip-path:circle(0% at var(--bsfs-ox,calc(100% - 40px)) var(--bsfs-oy,34px));
  transition:clip-path .65s var(--bsfs-ease),visibility 0s linear .65s;
  visibility:hidden;overflow:hidden;
}
body.admin-bar .bsfs-overlay{top:32px}
@media (max-width:782px){body.admin-bar .bsfs-overlay{top:46px}}
.bsfs-overlay.bsfs-open{
  clip-path:circle(150% at var(--bsfs-ox,calc(100% - 40px)) var(--bsfs-oy,34px));
  visibility:visible;
  transition:clip-path .65s var(--bsfs-ease),visibility 0s;
}

.bsfs-overlay__bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.bsfs-overlay__bg::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle, rgba(245,245,242,.07) 1px, transparent 1.5px);
  background-size:28px 28px;opacity:.5;
}
.bsfs-orb{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle, rgba(225,6,0,.35), rgba(225,6,0,0) 70%);
  filter:blur(2px);will-change:transform;
}
.bsfs-orb--a{width:520px;height:520px;top:-140px;right:-120px;animation:bsfsDriftA 22s ease-in-out infinite}
.bsfs-orb--b{width:380px;height:380px;bottom:-100px;left:-80px;animation:bsfsDriftB 26s ease-in-out infinite}
@keyframes bsfsDriftA{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(-40px,60px) scale(1.12)}
}
@keyframes bsfsDriftB{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(50px,-40px) scale(1.08)}
}
.bsfs-overlay__grain{
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.04;
}

/* Oberste Zeile im Overlay ist genauso hoch wie der Header → X sitzt exakt auf dem Burger */
.bsfs-overlay__top{
  position:relative;z-index:2;
  height:var(--bsfs-h);padding:0 var(--bsfs-pad);flex-shrink:0;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.bsfs-root .bsfs-overlay__close{
  width:44px;height:44px;flex-shrink:0;position:relative;margin-left:auto;
  background:none;border:1px solid var(--bsfs-line-inv);border-radius:50%;
  cursor:pointer;padding:0;box-shadow:none;
  transition:border-color .25s,transform .35s var(--bsfs-ease),background .25s;
}
.bsfs-overlay__close span{
  position:absolute;top:50%;left:50%;width:18px;height:2px;background:var(--bsfs-paper);
  transform-origin:center;transition:background .25s;
}
.bsfs-overlay__close span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.bsfs-overlay__close span:nth-child(2){transform:translate(-50%,-50%) rotate(-45deg)}
.bsfs-root .bsfs-overlay__close:hover,.bsfs-root .bsfs-overlay__close:focus-visible{border-color:var(--bsfs-red);background:rgba(225,6,0,.12);transform:rotate(90deg)}
.bsfs-overlay__close:hover span,.bsfs-overlay__close:focus-visible span{background:var(--bsfs-red)}

.bsfs-overlay__nav{
  position:relative;z-index:2;
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:0 max(var(--bsfs-pad),16px);gap:4px;
  overflow-y:auto;
}
.bsfs-root .bsfs-overlay__nav a{
  display:flex;align-items:baseline;gap:18px;
  padding:14px 0;text-decoration:none;
  color:var(--bsfs-paper);
  opacity:0;transform:translateY(26px);
  transition:opacity .45s var(--bsfs-ease),transform .45s var(--bsfs-ease),color .3s var(--bsfs-ease);
}
.bsfs-overlay.bsfs-open .bsfs-overlay__nav a{
  opacity:1;transform:none;
  transition-delay:calc(.12s + var(--bsfs-i,0) * .06s),calc(.12s + var(--bsfs-i,0) * .06s),0s;
}
.bsfs-root .bsfs-overlay__nav a:hover,.bsfs-root .bsfs-overlay__nav a:focus-visible{color:var(--bsfs-red)}
.bsfs-overlay__num{
  font-family:var(--bsfs-mono);font-size:13px;letter-spacing:.1em;
  color:var(--bsfs-red);flex-shrink:0;
}
.bsfs-overlay__label{
  font-family:var(--bsfs-display);font-weight:850;font-stretch:112%;
  font-size:clamp(34px,8.5vw,56px);line-height:1.1;letter-spacing:-.02em;
}

.bsfs-overlay__bottom{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:stretch;gap:18px;
  border-top:1px solid var(--bsfs-line-inv);
  margin:0 max(var(--bsfs-pad),16px);
  padding:24px 0 clamp(28px,5vh,48px);
}
.bsfs-root .bsfs-overlay__cta{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  font-family:var(--bsfs-mono);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:18px 32px;border:1px solid var(--bsfs-red);background:var(--bsfs-red);color:#fff;
  text-decoration:none;position:relative;overflow:hidden;isolation:isolate;
  opacity:0;transform:translateY(20px);
  transition:opacity .45s var(--bsfs-ease) .36s,transform .45s var(--bsfs-ease) .36s,background .25s,color .25s,border-color .25s;
}
.bsfs-overlay.bsfs-open .bsfs-overlay__cta{opacity:1;transform:none}
.bsfs-root .bsfs-overlay__cta:hover,.bsfs-root .bsfs-overlay__cta:focus-visible{background:var(--bsfs-paper);color:var(--bsfs-ink);border-color:var(--bsfs-paper)}
.bsfs-arrow{transition:transform .3s var(--bsfs-ease)}
.bsfs-overlay__cta:hover .bsfs-arrow{transform:translateX(5px)}
.bsfs-root .bsfs-overlay__hint{
  align-self:flex-start;
  font-family:var(--bsfs-mono);font-size:11px;letter-spacing:.08em;color:rgba(245,245,242,.4);
  text-decoration:none;
  opacity:0;transition:opacity .45s var(--bsfs-ease) .44s,color .25s;
}
.bsfs-overlay.bsfs-open .bsfs-overlay__hint{opacity:1}
.bsfs-root a.bsfs-overlay__hint:hover,.bsfs-root a.bsfs-overlay__hint:focus-visible{color:var(--bsfs-red)}

@media (prefers-reduced-motion: reduce){
  .bsfs-header,.bsfs-overlay,.bsfs-root .bsfs-overlay__nav a,.bsfs-root .bsfs-overlay__cta,.bsfs-root .bsfs-overlay__hint,.bsfs-logo__dot,.bsfs-root .bsfs-logo.bsfs-logo--inv{transition:none !important}
  .bsfs-overlay{clip-path:none !important;display:none}
  .bsfs-overlay.bsfs-open{display:flex}
  .bsfs-orb{animation:none}
  .bsfs-root .bsfs-overlay__nav a,.bsfs-root .bsfs-overlay__cta,.bsfs-root .bsfs-overlay__hint{opacity:1;transform:none}
}

body.bsfs-noscroll{overflow:hidden}

/* Im Elementor-Editor nicht fixed, damit der Header bearbeitbar bleibt */
.elementor-editor-active .bsfs-header{position:relative;top:0}
