:root{
  --fj-bg:#fff1f4;
  --fj-surface:#ffffff;
  --fj-surface-soft:#faf7f8;
  --fj-text:#1f1a1c;
  --fj-muted:#6f6668;
  --fj-accent:#b83257;
  --fj-accent-strong:#ef5548;
  --fj-line:#e7d6d9;
  --fj-border:#eadfe2;
  --fj-nav-height:96px;
  --fj-container:1440px;
  --fj-radius:18px;
  --fj-shadow:0 10px 26px rgba(29,23,25,.08);
}

/* Basis */
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--fj-nav-height);
}
body{
  margin:0;
  font-family:"Source Sans 3", Arial, sans-serif;
  color:var(--fj-text);
  background:var(--fj-bg);
  overflow-x:hidden;
}
img{
  display:block;
  max-width:100%;
}
a{
  color:inherit;
}
section,
.page,
.banner,
[data-fj-anchor]{
  scroll-margin-top:var(--fj-nav-height);
}

/* Navbar */
.fj-nav{
  position:fixed !important;
  inset:0 0 auto 0;
  width:100%;
  z-index:10000;
  padding:10px 22px !important;
  background:transparent !important;
  box-shadow:none !important;
  border-bottom:1px solid transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  transition:
    background .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    padding .28s ease,
    backdrop-filter .28s ease !important;
}
.fj-nav::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,0));
  pointer-events:none;
  opacity:1;
  transition:opacity .28s ease;
}
.fj-nav-inner{
  max-width:var(--fj-container);
  margin:0 auto;
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  align-items:center !important;
  gap:18px !important;
  position:relative;
  z-index:1;
}

/* Logo */
.fj-logo,
.fj-footer-brand{
  display:inline-flex !important;
  align-items:center !important;
  gap:0 !important;
  text-decoration:none !important;
}
.fj-logo-mark{
  width:126px !important;
  height:126px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:none;
  background:transparent;
}
.fj-logo-mark img{
  width:114px !important;
  height:auto !important;
  display:block !important;
  object-fit:contain !important;
}
.fj-logo-text{
  font-family:"Alegreya", serif !important;
  font-weight:700;
  font-size:25px !important;
  line-height:1 !important;
  color:#fff !important;
  margin-left:-12px !important;
  white-space:nowrap;
  transition:color .25s ease, font-size .28s ease, margin-left .28s ease !important;
}

/* Hauptnavigation */
.fj-menu{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:24px !important;
}
.fj-menu > a,
.nav-link-trigger{
  color:rgba(255,255,255,.95) !important;
  font-size:16px !important;
  font-weight:700 !important;
  text-decoration:none !important;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
  transition:color .22s ease, opacity .22s ease, font-size .28s ease !important;
}
.fj-menu > a:hover,
.nav-link-trigger:hover{
  color:#fff !important;
  opacity:.82;
}

/* Dropdowns in Hauptnavigation */
.nav-dropdown{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  padding-bottom:18px !important;
  margin-bottom:-18px !important;
}
.nav-dropdown::after{
  content:"";
  position:absolute;
  left:0;
  top:100%;
  width:100%;
  height:18px;
}
.nav-link{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
}
.dropdown-arrow{
  display:inline-block !important;
  width:7px !important;
  height:7px !important;
  border-right:2px solid currentColor !important;
  border-bottom:2px solid currentColor !important;
  transform:rotate(45deg) !important;
  transition:transform .25s ease !important;
  position:relative !important;
  top:-1px !important;
}
.nav-dropdown:hover .dropdown-arrow,
.nav-dropdown.is-open .dropdown-arrow{
  transform:rotate(225deg) !important;
}
.dropdown-menu{
  position:absolute !important;
  top:calc(100% + 6px) !important;
  left:0 !important;
  min-width:255px !important;
  background:#fff !important;
  border:1px solid #eee3e6 !important;
  border-radius:16px !important;
  overflow:hidden !important;
  box-shadow:0 22px 46px rgba(29,23,25,.14) !important;
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(10px) !important;
  transition:opacity .24s ease, transform .24s ease, visibility .24s ease !important;
  z-index:10030 !important;
  pointer-events:none !important;
}
.nav-dropdown:hover .dropdown-menu,
.nav-dropdown.is-open .dropdown-menu{
  opacity:1 !important;
  visibility:visible !important;
  transform:translateY(0) !important;
  pointer-events:auto !important;
}
.dropdown-menu a{
  display:block !important;
  padding:18px 22px !important;
  background:#fff !important;
  color:#1f1a1c !important;
  text-decoration:none !important;
  font-size:18px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
  border-bottom:1px solid #f0e6e8 !important;
  white-space:nowrap !important;
  transition:background .2s ease, color .2s ease, padding-left .2s ease !important;
}
.dropdown-menu a:last-child{border-bottom:none !important;}
.dropdown-menu a:hover{
  background:#fbf7f8 !important;
  color:var(--fj-accent) !important;
  padding-left:26px !important;
}
.dropdown-all{
  color:var(--fj-accent) !important;
  font-weight:700 !important;
}

/* Socials + Utility */
.fj-nav-right{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
}
.fj-socials{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
}
.fj-socials a{
  color:#fff !important;
  width:38px !important;
  height:38px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:24px !important;
  text-decoration:none !important;
  opacity:.95;
  transition:color .2s ease, opacity .2s ease, transform .2s ease !important;
}
.fj-socials a:hover{
  color:var(--fj-accent) !important;
  opacity:1;
  transform:translateY(-1px);
}
.fj-dropdown{
  position:relative !important;
}
.fj-dots{
  width:40px !important;
  height:40px !important;
  border:none !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.18) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  cursor:pointer !important;
  transition:background .22s ease, transform .22s ease, width .28s ease, height .28s ease !important;
}
.fj-dots span{
  width:4px;
  height:4px;
  border-radius:999px;
  background:#fff;
  display:block;
  transition:background .22s ease !important;
}
.fj-dots:hover{transform:translateY(-1px);}
.fj-dropdown-content{
  position:absolute !important;
  right:0 !important;
  top:56px !important;
  min-width:190px !important;
  padding:10px !important;
  background:#fff !important;
  border-radius:16px !important;
  box-shadow:0 18px 40px rgba(0,0,0,.14) !important;
  display:none !important;
  flex-direction:column !important;
  gap:4px !important;
  z-index:10040 !important;
}
.fj-dropdown.open .fj-dropdown-content{
  display:flex !important;
}
.fj-dropdown-content a{
  display:block !important;
  padding:12px 14px !important;
  border-radius:10px !important;
  color:#1f1a1c !important;
  font-size:14px !important;
  font-weight:600 !important;
  text-decoration:none !important;
}
.fj-dropdown-content a:hover{
  background:#f8eef1 !important;
  color:var(--fj-accent) !important;
}

/* Navbar beim Scrollen */
body.navbar-bg-visible .fj-nav,
.fj-nav.scrolled{
  padding:4px 18px !important;
  background:rgba(255,255,255,.97) !important;
  border-bottom:1px solid rgba(255,255,255,.58) !important;
  box-shadow:var(--fj-shadow) !important;
  backdrop-filter:blur(18px) saturate(175%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(175%) !important;
}
body.navbar-bg-visible .fj-nav::before,
.fj-nav.scrolled::before{
  opacity:0 !important;
}
body.navbar-bg-visible .fj-logo-text,
body.navbar-bg-visible .fj-menu > a,
body.navbar-bg-visible .nav-link-trigger,
body.navbar-bg-visible .fj-socials a,
.fj-nav.scrolled .fj-logo-text,
.fj-nav.scrolled .fj-menu > a,
.fj-nav.scrolled .nav-link-trigger,
.fj-nav.scrolled .fj-socials a{
  color:#2a2325 !important;
}
body.navbar-bg-visible .fj-dots,
.fj-nav.scrolled .fj-dots{
  background:#f3e8ea !important;
}
body.navbar-bg-visible .fj-dots span,
.fj-nav.scrolled .fj-dots span{
  background:#2a2325 !important;
}
body.navbar-bg-visible .fj-logo-mark,
.fj-nav.scrolled .fj-logo-mark{
  width:98px !important;
  height:98px !important;
}
body.navbar-bg-visible .fj-logo-mark img,
.fj-nav.scrolled .fj-logo-mark img{
  width:88px !important;
}
body.navbar-bg-visible .fj-logo-text,
.fj-nav.scrolled .fj-logo-text{
  font-size:21px !important;
  margin-left:-10px !important;
}
body.navbar-bg-visible .fj-menu > a,
body.navbar-bg-visible .nav-link-trigger,
.fj-nav.scrolled .fj-menu > a,
.fj-nav.scrolled .nav-link-trigger{
  font-size:15px !important;
}
body.navbar-bg-visible .fj-socials a,
.fj-nav.scrolled .fj-socials a{
  width:34px !important;
  height:34px !important;
  font-size:21px !important;
}
body.navbar-bg-visible .fj-dots,
.fj-nav.scrolled .fj-dots{
  width:36px !important;
  height:36px !important;
}

/* Footer */
.fj-footer{
  background:#0f0f13;
  color:#f6edf0;
  padding:64px 24px 34px;
}
.fj-footer-inner{
  max-width:1280px;
  margin:0 auto;
  text-align:center;
}
.fj-footer-brand{
  margin-bottom:24px;
}
.fj-footer-brand .fj-logo-mark{
  width:108px !important;
  height:108px !important;
}
.fj-footer-brand .fj-logo-mark img{
  width:96px !important;
}
.fj-footer-brand .fj-logo-text{
  color:#fff !important;
  font-size:36px !important;
  margin-left:-8px !important;
}
.fj-footer-nav,
.fj-footer-meta{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:18px 28px;
  margin:0;
  padding:0;
  list-style:none;
}
.fj-footer-nav{margin-bottom:24px;}
.fj-footer-nav a,
.fj-footer-meta a{
  color:#f6edf0;
  text-decoration:none;
  font-size:16px;
  font-weight:600;
  opacity:.9;
}
.fj-footer-nav a:hover,
.fj-footer-meta a:hover{
  color:#ffcad5;
}
.fj-footer-line{
  width:320px;
  max-width:90%;
  height:1px;
  background:rgba(255,255,255,.14);
  margin:0 auto 22px;
}
.fj-footer-copy{
  margin-top:18px;
  font-size:14px;
  color:rgba(255,255,255,.68);
}

/* Reveal / Scroll Animation */
.fj-scroll-section{
  opacity:0;
  transform:translateY(54px);
  transition:opacity .92s cubic-bezier(.22,1,.36,1), transform .92s cubic-bezier(.22,1,.36,1);
  will-change:opacity, transform;
}
.fj-scroll-section.from-left{transform:translateX(-64px);}
.fj-scroll-section.from-right{transform:translateX(64px);}
.fj-scroll-section.from-bottom{transform:translateY(54px);}
.fj-scroll-section.is-visible{
  opacity:1;
  transform:none;
}
.fj-stagger-item{
  opacity:0;
  transform:translateY(28px) scale(.985);
  transition:opacity .68s cubic-bezier(.22,1,.36,1), transform .68s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--fj-delay, 0ms);
  will-change:opacity, transform;
}
.fj-stagger-item.is-visible{
  opacity:1;
  transform:none;
}

/* Kleine Hilfsklassen */
.fj-container{
  width:min(100% - 32px, 1280px);
  margin-inline:auto;
}
.fj-section{
  padding:92px 0;
}
.fj-section-head{
  text-align:center;
  margin-bottom:34px;
}
.fj-section-kicker{
  display:block;
  font-family:"Alegreya", serif;
  font-size:20px;
  font-weight:700;
  color:var(--fj-accent);
  margin-bottom:10px;
}
.fj-section-title{
  margin:0 0 18px;
  font-family:"Alegreya", serif;
  font-size:clamp(38px, 4.8vw, 56px);
  line-height:1.08;
  font-weight:800;
  letter-spacing:-0.5px;
  color:var(--fj-accent);
}
.fj-section-line{
  width:315px;
  max-width:7cm;
  height:2px;
  background:var(--fj-line);
  margin:0 auto 22px;
  border-radius:999px;
}
.fj-section-desc{
  max-width:760px;
  margin:0 auto;
  font-size:18px;
  line-height:1.55;
  color:var(--fj-muted);
  text-align:center;
}

@media (max-width:1180px){
  .fj-nav-inner{
    grid-template-columns:1fr !important;
    justify-items:center !important;
    gap:14px !important;
  }
  .fj-menu{gap:18px !important;}
}
@media (max-width:780px){
  :root{--fj-nav-height:132px;}
  .fj-nav,
  body.navbar-bg-visible .fj-nav,
  .fj-nav.scrolled{
    padding:8px 10px !important;
  }
  .fj-nav-inner{
    grid-template-columns:1fr !important;
    justify-items:center !important;
    gap:8px !important;
  }
  .fj-logo-mark{
    width:104px !important;
    height:104px !important;
  }
  .fj-logo-mark img{
    width:94px !important;
  }
  .fj-logo-text{
    font-size:22px !important;
    margin-left:-10px !important;
  }
  body.navbar-bg-visible .fj-logo-mark,
  .fj-nav.scrolled .fj-logo-mark{
    width:84px !important;
    height:84px !important;
  }
  body.navbar-bg-visible .fj-logo-mark img,
  .fj-nav.scrolled .fj-logo-mark img{
    width:76px !important;
  }
  body.navbar-bg-visible .fj-logo-text,
  .fj-nav.scrolled .fj-logo-text{
    font-size:18px !important;
  }
  .fj-menu,
  .fj-nav.scrolled .fj-menu{
    width:100% !important;
    gap:8px 12px !important;
    justify-content:center !important;
  }
  .fj-menu > a,
  .nav-link-trigger,
  body.navbar-bg-visible .fj-menu > a,
  body.navbar-bg-visible .nav-link-trigger,
  .fj-nav.scrolled .fj-menu > a,
  .fj-nav.scrolled .nav-link-trigger{
    font-size:14px !important;
    line-height:1.25 !important;
  }
  .fj-nav-right{
    gap:10px !important;
    flex-wrap:wrap !important;
    justify-content:center !important;
  }
  .fj-socials a,
  body.navbar-bg-visible .fj-socials a,
  .fj-nav.scrolled .fj-socials a{
    width:32px !important;
    height:32px !important;
    font-size:18px !important;
  }
  .fj-dots,
  body.navbar-bg-visible .fj-dots,
  .fj-nav.scrolled .fj-dots{
    width:34px !important;
    height:34px !important;
  }
  .fj-dropdown-content{
    right:50% !important;
    transform:translateX(50%) !important;
    top:44px !important;
    min-width:170px !important;
  }
  .fj-footer{
    padding:44px 16px 24px !important;
  }
  .fj-footer-brand{
    flex-direction:column !important;
    gap:10px !important;
  }
  .fj-footer-brand .fj-logo-mark{
    width:78px !important;
    height:78px !important;
  }
  .fj-footer-brand .fj-logo-mark img{
    width:68px !important;
  }
  .fj-footer-brand .fj-logo-text{
    font-size:22px !important;
  }
  .fj-scroll-section.from-left,
  .fj-scroll-section.from-right{
    transform:translateY(38px);
  }
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .fj-nav,
  .fj-nav::before,
  .fj-scroll-section,
  .fj-stagger-item{
    transition:none !important;
  }
  .fj-scroll-section,
  .fj-stagger-item{
    opacity:1 !important;
    transform:none !important;
  }
}