/* Global Components - Nav, Section-CTA, Footer, FABs */

/* --- Scroll-Progress-Bar --- */
/* SCROLL-PROGRESS-BAR (oben, premium) */
.scroll-progress{
  position:fixed;
  top:0;left:0;
  height:3px;
  width:0%;
  background:linear-gradient(90deg,#f4d765,#d4af37,#b98519);
  z-index:101;
  pointer-events:none;
  box-shadow:0 0 12px rgba(243,211,106,.55),0 0 2px rgba(243,211,106,.9);
  transition:width .12s cubic-bezier(.16,1,.3,1);
  will-change:width;
}

/* --- Sticky Navigation --- */
/* STICKY NAVIGATION */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:flex-start;gap:36px;
  padding-block:18px;
  padding-inline:clamp(5vw, calc((100vw - 1500px) / 2), 50vw);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(10,10,10,.06);
  transition:background .4s ease,border-color .4s ease,padding .4s ease,box-shadow .4s ease,color .4s ease;
}
.site-nav.scrolled{
  background:rgba(14,12,8,.55);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(212,175,55,.14);
  padding-block:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.20);
}
.nav-logo{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.nav-logo img{height:54px;width:auto;display:block;transition:height .4s ease,filter .4s ease;filter:brightness(1) drop-shadow(0 2px 6px rgba(0,0,0,.10))}
.site-nav.scrolled .nav-logo img{height:42px;filter:brightness(1.05) drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.nav-logo-text{display:inline-flex;align-items:center;color:#0a0a0a;font-size:16px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;line-height:1;white-space:nowrap;transition:color .4s ease}
.site-nav.scrolled .nav-logo-text{color:#fff}
.nav-logo-text-inner{display:inline-block}
.nav-logo-caret{display:inline-block;width:2px;height:1em;margin-left:4px;background:linear-gradient(180deg,#f4d765,#b98519);animation:navCaret .65s step-end infinite;border-radius:1px}
.nav-logo-text.is-done .nav-logo-caret{animation:none;opacity:0;transition:opacity .6s ease 1s}
@keyframes navCaret{0%,50%{opacity:1}50.01%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .nav-logo-caret{display:none}
}
.nav-menu{display:flex;align-items:center;gap:24px;flex-shrink:0}
.nav-menu > a,
.nav-menu .nav-item-toggle{position:relative;color:#1a1a1a;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.01em;white-space:nowrap;transition:color .3s ease;padding:6px 0;display:inline-flex;align-items:center;gap:5px;cursor:pointer;background:none;border:none;font-family:inherit}
.nav-menu > a::after,
.nav-menu .nav-item-toggle::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:linear-gradient(90deg,#f4d765,#b98519);transform:scaleX(0);transform-origin:center;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.nav-menu > a:hover,
.nav-menu .nav-item-toggle:hover,
.nav-menu .nav-item:hover .nav-item-toggle{color:#b98519}
.nav-menu > a:hover::after,
.nav-menu .nav-item-toggle:hover::after,
.nav-menu .nav-item:hover .nav-item-toggle::after{transform:scaleX(1)}
.site-nav.scrolled .nav-menu > a,
.site-nav.scrolled .nav-menu .nav-item-toggle{color:var(--gold)}
.site-nav.scrolled .nav-menu > a:hover,
.site-nav.scrolled .nav-menu .nav-item-toggle:hover,
.site-nav.scrolled .nav-menu .nav-item:hover .nav-item-toggle{color:#f4d765}

/* Dropdown */
.nav-item{position:relative}
.nav-caret{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease}
.nav-item:hover .nav-caret,
.nav-item:focus-within .nav-caret{transform:rotate(180deg)}
.nav-dropdown{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:220px;
  margin-top:0;
  padding:8px;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(10,10,10,.08);
  border-radius:14px;
  box-shadow:0 24px 48px rgba(0,0,0,.12),0 4px 12px rgba(0,0,0,.06);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,transform .28s ease,visibility 0s linear .28s;
  z-index:10;
}
/* Unsichtbare Hover-Bridge: hält den Hover auch bei kurzem Mausüberflug
   zwischen Toggle und Dropdown-Panel. */
.nav-item::before{
  content:"";
  position:absolute;
  top:100%; left:-20px; right:-20px;
  height:16px;
  pointer-events:none;
}
.nav-item:hover::before,
.nav-item:focus-within::before{
  pointer-events:auto;
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
  transition:opacity .28s ease,transform .28s ease,visibility 0s linear;
}
.nav-dropdown a{
  display:block;padding:10px 14px;
  color:#1a1a1a;text-decoration:none;
  font-size:13px;font-weight:600;letter-spacing:.005em;
  border-radius:9px;
  transition:background .2s ease,color .2s ease;
  white-space:nowrap;
}
.nav-dropdown a:hover{background:rgba(212,175,55,.10);color:#b98519}
.site-nav.scrolled .nav-dropdown{background:rgba(20,17,12,.92);border-color:rgba(212,175,55,.18)}
.site-nav.scrolled .nav-dropdown a{color:rgba(255,255,255,.85)}
.site-nav.scrolled .nav-dropdown a:hover{background:rgba(212,175,55,.12);color:#f4d765}
.nav-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.nav-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;background:linear-gradient(135deg,#f4d765,#b98519);color:#111;text-decoration:none;font-weight:900;font-size:13px;letter-spacing:.005em;box-shadow:0 14px 32px rgba(212,175,55,.30);transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease;flex-shrink:0}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 22px 50px rgba(212,175,55,.45)}
.nav-cta svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.nav-cta-outline{display:inline-flex;align-items:center;gap:8px;padding:10.5px 20px;border-radius:999px;background:transparent;border:1.5px solid rgba(185,133,25,.55);color:#8a6d1a;text-decoration:none;font-weight:800;font-size:13px;letter-spacing:.005em;transition:transform .35s cubic-bezier(.16,1,.3,1),background .35s ease,border-color .35s ease,color .35s ease,box-shadow .35s ease;flex-shrink:0}
.nav-cta-outline .short{display:none}
.nav-cta-outline:hover{background:rgba(212,175,55,.06);border-color:rgba(185,133,25,.85);color:#5f4a10;transform:translateY(-2px);box-shadow:0 10px 26px rgba(212,175,55,.14)}
.site-nav.scrolled .nav-cta-outline{border-color:rgba(212,175,55,.70);color:#f4d765}
.site-nav.scrolled .nav-cta-outline:hover{background:linear-gradient(135deg,rgba(244,215,101,.14),rgba(185,133,25,.06));border-color:rgba(244,215,101,.95);color:#fff;box-shadow:0 10px 26px rgba(212,175,55,.20)}
.nav-cta-outline svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav-toggle{display:none;width:42px;height:42px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);cursor:pointer;align-items:center;justify-content:center;padding:0;flex-direction:column;gap:5px;backdrop-filter:blur(10px)}
.nav-toggle span{display:block;width:18px;height:1.5px;background:#fff;border-radius:2px;transition:transform .35s ease,opacity .35s ease}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(max-width:900px){
  .site-nav{padding:14px 5vw}
  .nav-menu{position:fixed;top:80px;left:18px;right:18px;flex-direction:column;align-items:stretch;gap:0;padding:18px;border-radius:20px;background:rgba(14,12,8,.95);backdrop-filter:blur(22px);border:1px solid rgba(212,175,55,.18);box-shadow:0 30px 80px rgba(0,0,0,.5);transform:translateY(-20px);opacity:0;pointer-events:none;transition:transform .35s ease,opacity .35s ease}
  .nav-menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-menu > a,
  .nav-menu .nav-item-toggle{padding:14px 12px;border-bottom:1px solid rgba(212,175,55,.10);font-size:15px}
  .nav-menu > a:last-child{border-bottom:none}
  .nav-item{display:block}
  .nav-item .nav-caret{display:none}
  .nav-dropdown{
    position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    background:transparent;border:none;box-shadow:none;padding:4px 0 8px 24px;margin:0;min-width:0;
  }
  .nav-dropdown a{padding:10px 8px;color:rgba(255,255,255,.7);font-size:14px}
  .site-nav .nav-dropdown a{color:rgba(255,255,255,.7)}
  .site-nav .nav-dropdown a:hover{color:#f4d765;background:transparent}
  .nav-toggle{display:inline-flex}
  .nav-cta{padding:10px 18px;font-size:12px}
  .nav-logo{gap:10px}
  .nav-logo img{height:40px}
  .nav-logo-text{font-size:13px;letter-spacing:.18em}
  .nav-cta-outline{padding:8px 14px;font-size:11.5px}
  .nav-cta-outline .long{display:none}
  .nav-cta-outline .short{display:inline}
  .nav-actions{gap:6px}
}
@media(max-width:560px){
  .nav-logo-text{display:none}
}

/* --- Global Section-CTA --- */
/* GLOBAL SECTION-CTA */
.section-cta{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;margin-top:56px;text-align:center;opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.section-cta.vis{opacity:1;transform:translateY(0)}
.section-cta-text{color:#0a0a0a;font-size:clamp(18px,1.8vw,24px);font-weight:900;letter-spacing:-.02em;line-height:1.2}
.section-cta.on-dark .section-cta-text{color:#fff}
.section-cta-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;background:linear-gradient(135deg,#f4d765,#b98519);color:#111;text-decoration:none;font-weight:900;font-size:14px;box-shadow:0 18px 44px rgba(212,175,55,.32);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease}
.section-cta-btn:hover{transform:translateY(-2px);box-shadow:0 26px 60px rgba(212,175,55,.45)}
.section-cta-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}


/* --- Footer --- */
/* FOOTER */
.footer-fade{
  position:relative;
  height:160px;
  background:linear-gradient(180deg,
    #fbfaf6 0%,
    #e6dec8 28%,
    #8b8270 55%,
    #2a261b 80%,
    #0a0a0a 100%);
  z-index:1;
}
.footer-fade::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(243,211,106,.30) 30%,rgba(243,211,106,.30) 70%,transparent);
}
.site-footer{position:relative;background:linear-gradient(180deg,#0a0a0a 0%,#050505 100%);color:rgba(255,255,255,.7);padding:50px 5vw 30px;overflow:hidden}
.site-footer::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 35% at 15% 0%,rgba(243,211,106,.08),transparent 70%),radial-gradient(ellipse 50% 35% at 85% 0%,rgba(212,175,55,.06),transparent 70%);pointer-events:none}
.footer-inner{position:relative;z-index:2;max-width:1340px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px;padding-bottom:50px;border-bottom:1px solid rgba(212,175,55,.14)}
.footer-brand{display:flex;flex-direction:column;gap:18px}
.footer-logo img{height:78px;width:auto;display:block;filter:brightness(1.1) drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.footer-brand p{color:rgba(255,255,255,.55);font-size:14px;line-height:1.65;max-width:330px}
.footer-contact-address{display:flex;align-items:flex-start;gap:8px}
.footer-contact-address>svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.6;flex-shrink:0;margin-top:4px}
.footer-address{font-style:normal;color:rgba(255,255,255,.62);font-size:13.5px;font-weight:500;line-height:1.5;display:flex;flex-direction:column;gap:1px}
.footer-address strong{color:#fff;font-weight:800;letter-spacing:.01em}
.footer-trust{display:inline-flex;align-items:center;gap:14px;margin-top:6px}
.footer-trust .stars{display:inline-flex;gap:2px;color:#f4d765}
.footer-trust .stars svg{width:13px;height:13px;fill:currentColor;stroke:none}
.footer-trust span{color:rgba(255,255,255,.62);font-size:12.5px;font-weight:600}
.footer-trust strong{color:#fff;font-weight:900}
.footer-col h5{color:#fff;font-size:11px;font-weight:950;letter-spacing:.22em;text-transform:uppercase;margin-bottom:20px}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.footer-col a{color:rgba(255,255,255,.62);text-decoration:none;font-size:13.5px;font-weight:500;transition:color .3s ease;display:inline-flex;align-items:center;gap:8px}
.footer-col a:hover{color:#f4d765}
.footer-col a svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.footer-bottom{position:relative;z-index:2;max-width:1340px;margin:0 auto;padding-top:26px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer-copyright{color:rgba(255,255,255,.42);font-size:12.5px;font-weight:500}
.footer-credits{color:rgba(255,255,255,.55);font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:5px;text-align:center;flex:1;justify-content:center}
.footer-credits .heart{color:#f4d765;font-size:14px;line-height:1;transform:translateY(-1px)}
.footer-credits a{color:rgba(255,255,255,.85);text-decoration:none;font-weight:800;letter-spacing:.02em;transition:color .3s ease}
.footer-credits a:hover{color:#f4d765}
.footer-legal{display:flex;gap:22px;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.55);text-decoration:none;font-size:12.5px;font-weight:500;transition:color .3s ease}
.footer-legal a:hover{color:#f4d765}

/* --- Floating Chat FAB --- */
/* ============================================================
   FLOATING CHAT FAB
   ============================================================ */
.floating-chat{
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:200;
  display:flex;
  flex-direction:column-reverse;
  align-items:center;
  gap:12px;
  pointer-events:none;
}
.floating-chat-toggle{
  pointer-events:auto;
  width:60px;height:60px;
  border-radius:50%;
  background:linear-gradient(135deg,#f4d765,#b98519);
  border:none;
  cursor:pointer;
  padding:0;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#111;
  box-shadow:0 16px 36px rgba(212,175,55,.42),0 4px 10px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.55);
  transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease;
}
.floating-chat-toggle:hover{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 22px 48px rgba(212,175,55,.55),0 6px 14px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.55);
}
.floating-chat-toggle svg{
  position:absolute;
  inset:0;
  margin:auto;
  width:26px;height:26px;
  transition:opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
.fc-icon-close{opacity:0;transform:rotate(-90deg) scale(.7)}
.floating-chat[data-open="true"] .fc-icon-bubble{opacity:0;transform:rotate(90deg) scale(.7)}
.floating-chat[data-open="true"] .fc-icon-close{opacity:1;transform:rotate(0) scale(1)}

.floating-chat-item{
  width:54px;height:54px;
  border-radius:50%;
  background:linear-gradient(135deg,#f4d765,#b98519);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:#111;
  box-shadow:0 14px 30px rgba(212,175,55,.38),0 4px 9px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.55);
  opacity:0;
  transform:translateY(12px) scale(.6);
  pointer-events:none;
  transition:opacity .35s ease, transform .5s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}
.floating-chat-item svg{
  width:24px;height:24px;
  fill:#111;
}
.floating-chat-item:hover{
  transform:translateY(-2px) scale(1.05);
  box-shadow:0 20px 40px rgba(212,175,55,.50),0 6px 12px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.55);
}
.floating-chat[data-open="true"] .floating-chat-item{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.floating-chat[data-open="true"] .floating-chat-wa{transition-delay:.08s}
.floating-chat[data-open="true"] .floating-chat-mail{transition-delay:.02s}

@media(max-width:560px){
  .floating-chat{bottom:18px;right:18px;gap:10px}
  .floating-chat-toggle{width:54px;height:54px}
  .floating-chat-item{width:48px;height:48px}
}

/* --- Scroll-to-Top FAB --- */
/* SCROLL-TO-TOP FAB (Liquid Glass) */
.scroll-top-fab{
  position:fixed;
  bottom:230px;
  right:24px;
  z-index:200;
  width:60px;height:60px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  background:linear-gradient(160deg,rgba(255,255,255,.22),rgba(255,255,255,.08));
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  color:#fff;
  cursor:pointer;
  padding:0;
  display:flex;align-items:center;justify-content:center;
  box-shadow:
    0 14px 40px rgba(0,0,0,.30),
    0 4px 12px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -1px 0 rgba(0,0,0,.12);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(.9);
  transition:opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1), box-shadow .4s ease, background .3s ease, border-color .3s ease, visibility 0s linear .4s;
}
.scroll-top-fab.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
  transition:opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1), box-shadow .4s ease, background .3s ease, border-color .3s ease, visibility 0s;
}
.scroll-top-fab::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(ellipse 90% 60% at 50% 0%,rgba(255,255,255,.35),transparent 70%);
  opacity:.9;
}
.scroll-top-fab:hover{
  transform:translateY(-3px) scale(1.04);
  background:linear-gradient(160deg,rgba(255,255,255,.32),rgba(255,255,255,.14));
  border-color:rgba(255,255,255,.42);
  box-shadow:
    0 22px 55px rgba(0,0,0,.36),
    0 6px 16px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.70),
    inset 0 -1px 0 rgba(0,0,0,.15),
    0 0 0 4px rgba(255,255,255,.04);
}
.scroll-top-fab:active{transform:translateY(-1px) scale(1.01)}
.scroll-top-fab:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:3px}
.scroll-top-fab svg{
  width:22px;height:22px;
  stroke:#fff;fill:none;
  stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;
  position:relative;z-index:1;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}
@media(max-width:560px){
  .scroll-top-fab{width:52px;height:52px;bottom:200px;right:18px}
  .scroll-top-fab svg{width:20px;height:20px}
}
