/* Off-Canvas-Drawer darf keinen horizontalen Scroll erzeugen (Wurzel-Scroller, sticky bleibt intakt) */
html{overflow-x:hidden;}

/* ============================================================
   HAFA 2026 — Chrome (schickes Megamenü-Header, CTA, toTop) — seitenübergreifend
   ============================================================ */

/* ---------- Header-Grundlayout ---------- */
.header .wrap{display:flex;align-items:center;gap:30px;height:var(--hd,76px);position:relative;}
.logo-link{flex:none;display:inline-flex;}
.header .logo{height:34px;}

/* ---------- Megamenü-Bar ---------- */
.mega{display:flex;align-items:stretch;height:100%;}
.mega__bar{list-style:none;display:flex;gap:2px;margin:0;padding:0;height:100%;}
.mega__item{position:relative;display:flex;align-items:center;}
.mega__item.is-wide{position:static;}
.mega__item > a{display:flex;align-items:center;gap:7px;height:100%;padding:0 15px;font-size:15px;font-weight:var(--fw-medium);color:var(--text-body);text-decoration:none;white-space:nowrap;border-bottom:3px solid transparent;transition:color var(--dur-fast),border-color var(--dur-fast);}
.mega__item:hover > a{color:var(--color-brand);border-bottom-color:var(--color-brand);}
.mega__caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.5;transition:transform var(--dur-fast);}
.mega__item:hover .mega__caret{transform:rotate(225deg) translateY(-1px);opacity:1;}

/* ---------- Dropdown-Panels (Basis) ---------- */
.mega__panel{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-top:3px solid var(--color-brand);border-radius:0 0 14px 14px;box-shadow:var(--shadow-lg);padding:16px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),visibility var(--dur-base);z-index:60;}
.mega__item:hover .mega__panel{opacity:1;visibility:visible;transform:none;}

/* ---------- Reiche Dropdowns (Icon + Titel + Untertitel) ---------- */
.mega__panel--rich{min-width:320px;display:flex;flex-direction:column;gap:2px;}
.mega__rich{display:flex;align-items:center;gap:14px;padding:11px 12px;border-radius:10px;text-decoration:none;transition:background var(--dur-fast);}
.mega__rich:hover{background:var(--surface-alt);}
.mega__ico{width:22px;height:22px;flex:none;color:var(--color-brand);}
.mega__rich span{display:flex;flex-direction:column;line-height:1.25;}
.mega__rich b{font-size:15px;color:var(--text-strong);font-weight:var(--fw-bold);}
.mega__rich em{font-size:12.5px;color:var(--text-subtle);font-style:normal;}
.mega__rich:hover b{color:var(--color-brand);}

/* ---------- Breites Panel (Treppenrenovierung): Spalten + Promo-Karte ---------- */
.mega__panel--wide{left:0;right:0;padding:0;border-radius:0 0 16px 16px;overflow:hidden;}
.mega__grid{display:grid;grid-template-columns:1fr 1fr 1fr minmax(260px,300px);gap:0;max-width:1240px;margin:0 auto;}
.mega__col{display:flex;flex-direction:column;gap:1px;padding:30px 26px;}
.mega__col + .mega__col{border-left:1px solid var(--border);}
.mega__h{font-family:var(--font-display);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-strong);margin:0 0 12px;}
.mega__col a{position:relative;display:block;padding:8px 10px 8px 20px;border-radius:7px;color:var(--text-body);font-size:14.5px;text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast);}
.mega__col a::before{content:"";position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:2px;background:var(--gray-300);transform:translateY(-50%);transition:background var(--dur-fast);}
.mega__col a:hover{background:var(--surface-alt);color:var(--color-brand);}
.mega__col a:hover::before{background:var(--color-brand);}

/* Promo-Karte */
.mega__promo{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:26px;min-height:280px;background-size:cover;background-position:center;color:#fff;text-decoration:none;overflow:hidden;}
.mega__promo::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,15,15,.86) 0%,rgba(15,15,15,.4) 55%,rgba(15,15,15,.15) 100%);}
.mega__promo > *{position:relative;}
.mega__promo-kicker{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--color-brand);align-self:flex-start;padding:5px 10px;border-radius:5px;}
.mega__promo-title{font-family:var(--font-display);font-weight:700;font-size:21px;line-height:1.1;letter-spacing:-.01em;margin-top:4px;}
.mega__promo-text{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.85);}
.mega__promo-cta{display:inline-flex;align-items:center;gap:7px;font-weight:var(--fw-bold);font-size:14px;margin-top:6px;}
.mega__promo-cta .mega__ico{width:18px;height:18px;color:#fff;}
.mega__promo:hover .mega__promo-cta{gap:11px;}

/* ---------- Header-Buttons ---------- */
.header__cta{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none;}
.btn--sm{font-size:14px;padding:11px 18px;}

/* ---------- Mobile-Burger ---------- */
.mega__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;padding:0;margin-left:auto;}
.mega__burger span{display:block;width:20px;height:2px;background:var(--text-strong);margin:0 auto;}

/* ---------- CTA-Band ---------- */
.cta-band{padding-block:var(--space-8);}
.cta-band + .footer{margin-top:0;}

/* ---------- Nach-oben-Button ---------- */
.totop{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;background:var(--color-brand);color:#fff;border:0;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard),visibility var(--dur-base),background var(--dur-fast);z-index:80;}
.totop.is-visible{opacity:1;visibility:visible;transform:none;}
.totop::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(255,255,255,.6);opacity:0;}
.totop:hover{background:var(--color-brand-hover);}
.totop:active{transform:translateY(1px);}
.totop svg{width:22px;height:22px;}

/* ---------- Mobile-only Elemente auf Desktop ausblenden ---------- */
.mega__overlay,.mega__mhead,.mega__mcta,.mega__burger{display:none;}

/* ============================================================
   MOBILE NAVIGATION (Off-Canvas + Akkordeon)
   ============================================================ */
@media (max-width:1100px){
  .header__cta{display:none;}
  .mega__burger{display:flex;}

  /* Header darf keinen Containing-Block fuer das fixed Drawer bilden */
  .header{backdrop-filter:none;-webkit-backdrop-filter:none;}

  /* Off-Canvas-Panel */
  .mega{position:fixed;top:0;right:0;bottom:0;height:100%;width:min(420px,92vw);display:block;background:#fff;box-shadow:-14px 0 44px rgba(15,15,15,.20);transform:translateX(105%);transition:transform .34s var(--ease-standard);z-index:200;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  body.mega-open .mega{transform:none;}
  .mega__overlay{display:block;position:fixed;inset:0;background:rgba(15,15,15,.5);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:190;}
  body.mega-open .mega__overlay{opacity:1;visibility:visible;}
  body.mega-open{overflow:hidden;}

  /* Kopf im Panel */
  .mega__mhead{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:3;}
  .mega__mhead .logo{height:30px;}
  .mega__close{width:42px;height:42px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:26px;line-height:1;cursor:pointer;color:var(--text-strong);display:flex;align-items:center;justify-content:center;}
  .mega__close:hover{color:var(--color-brand);border-color:var(--color-brand);}

  /* Bar vertikal */
  .mega__bar{flex-direction:column;gap:0;height:auto;padding:6px 0;}
  .mega__item{display:block;position:static;}
  .mega__item > a{height:auto;padding:17px 20px;font-size:16px;border-bottom:1px solid var(--border);justify-content:space-between;}
  .mega__item:hover > a{color:var(--text-body);border-bottom-color:var(--border);}
  .mega__caret{transform:rotate(45deg);opacity:.5;}
  .mega__item.is-open > a{color:var(--color-brand);}
  .mega__item.is-open > a .mega__caret{transform:rotate(225deg);opacity:1;}

  /* Panels als Akkordeon */
  .mega__panel{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;border-top:0;padding:0;display:none;background:var(--surface-alt);}
  .mega__item.is-open .mega__panel{display:block;}
  .mega__panel--rich{padding:8px 10px;}
  .mega__rich{padding:13px 14px;}

  /* breites Panel: alles untereinander */
  .mega__panel--wide .mega__grid{display:block;max-width:none;}
  .mega__col{padding:14px 22px;}
  .mega__col + .mega__col{border-left:0;border-top:1px solid var(--border);}
  .mega__col a{padding:11px 10px 11px 22px;font-size:15px;}
  .mega__promo{min-height:150px;margin:14px 22px 20px;border-radius:12px;}

  /* CTA am Ende */
  .mega__mcta{display:flex;flex-direction:column;gap:11px;padding:20px 22px 32px;border-top:1px solid var(--border);}
  .mega__mcall{text-align:center;font-size:15px;color:var(--text-muted);text-decoration:none;padding-top:6px;}
  .mega__mcall b{color:var(--text-strong);}
}

@media (max-width:720px){
  .totop{right:16px;bottom:16px;width:44px;height:44px;}
  .header .wrap{gap:16px;}
}

/* ---------- Hero: kleiner Sekundär-Link (3D-Konfigurator) ---------- */
.hero__link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:#fff;font-weight:var(--fw-bold);font-size:15px;text-decoration:none;opacity:.92;}
.hero__link svg{width:18px;height:18px;transition:transform var(--dur-fast);}
.hero__link:hover{opacity:1;text-decoration:underline;}
.hero__link:hover svg{transform:translateX(4px);}

/* ---------- Mobiler Sticky-CTA (nur Handy) ---------- */
.stickycta{display:none;}
@media (max-width:1100px){
  .stickycta{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:150;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 20px rgba(15,15,15,.10);padding-bottom:env(safe-area-inset-bottom,0);}
  .stickycta__a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px;font-size:11.5px;font-weight:var(--fw-bold);color:var(--text-body);text-decoration:none;border-right:1px solid var(--border);min-height:56px;}
  .stickycta__a:last-child{border-right:0;}
  .stickycta__a svg{width:22px;height:22px;color:var(--color-brand);}
  .stickycta__a--call{background:var(--color-brand);color:#fff;}
  .stickycta__a--call svg{color:#fff;}
  body{padding-bottom:58px;}
  .totop{bottom:72px;}              /* über der Sticky-Bar */
  body.mega-open .stickycta{display:none;} /* bei offenem Menü ausblenden */
}

/* ---------- Sprachumschalter (Util-Bar) ---------- */
.langsw{position:relative;}
.langsw__btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--gray-300);font:inherit;font-size:13px;line-height:1;cursor:pointer;padding:0;}
.langsw__btn svg{width:15px;height:15px;}
.langsw__btn:hover{color:#fff;}
.langsw__btn span:first-of-type{font-weight:var(--fw-bold);letter-spacing:.03em;}
.langsw__caret{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.7;}
.langsw__menu{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border:1px solid var(--border);border-top:3px solid var(--color-brand);border-radius:0 0 10px 10px;box-shadow:var(--shadow-lg);padding:6px;min-width:184px;display:none;z-index:120;}
.langsw.is-open .langsw__menu{display:block;}
.langsw__item{display:block;padding:9px 12px;border-radius:7px;color:var(--text-body);font-size:14px;text-decoration:none;white-space:nowrap;}
.langsw__item b{display:inline-block;width:30px;color:var(--text-strong);}
.langsw__item:hover{background:var(--surface-alt);color:var(--color-brand);}
.langsw__item.is-active{color:var(--color-brand);}
.langsw__item.is-active b{color:var(--color-brand);}
.langsw__item[aria-disabled]{opacity:.45;pointer-events:none;}

/* ---------- Button-Textfarbe gegen generisches a:hover absichern ---------- */
/* base.css setzt a:hover{color:rot} (Spezifität 0,1,1) und überstimmt sonst
   .btn--primary{color:#fff} (0,1,0) -> Schrift würde beim Hover rot/unlesbar. */
.btn,.btn:hover,.btn:focus,.btn:visited,.btn:active{text-decoration:none;}
.btn--primary,.btn--primary:hover,.btn--primary:focus,.btn--primary:visited{color:#fff;}
.btn--white,.btn--white:hover,.btn--white:focus,.btn--white:visited{color:var(--color-brand);}
.btn--ondark,.btn--ondark:hover,.btn--ondark:focus,.btn--ondark:visited{color:#fff;}
.btn--ghost,.btn--ghost:hover,.btn--ghost:focus,.btn--ghost:visited{color:var(--text-strong);}

/* ---- Lightbox (Klick vergrößert Inhaltsbilder) ---- */
.hafa-lb{position:fixed;inset:0;z-index:9999;background:rgba(12,12,12,.9);display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:3vh 3vw;cursor:zoom-out;}
.hafa-lb.is-open{display:flex;}
.hafa-lb img{max-width:96vw;max-height:88vh;width:auto;height:auto;background:#fff;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.5);}
.hafa-lb__cap{color:rgba(255,255,255,.85);font-size:14px;text-align:center;max-width:80ch;}
.hafa-lb__close{position:absolute;top:16px;right:20px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer;}
.hafa-lb__close:hover{background:rgba(255,255,255,.28);}
