/* ==========================================
   Header
========================================== */

.site-header {
  min-height: 72px;
  display: flex;
  align-items: center;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.08);
  position: sticky;
  top: 0;
  z-index: 100;
}

.header-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}

.header-logo {
  flex: 1 1 auto;
  min-width: 0;
}

.header-logo a {
  display: inline-block;
}

.header-logo img {
  max-height: 48px;
  width: auto;
  height: auto;
}

/* Default: Dark Logo versteckt */
.logo--light-link {
  display: none;
}

/* Default: Standard Logo sichtbar */
.custom-logo-link {
  opacity: 1;
}

/* IMMER nur eins sichtbar */
.header-logo .logo--light-link {
  display: none;
}

.header-logo .custom-logo-link {
  display: inline-block;
}

/* Dark Mode */
.site-header.header--dark .header-logo .custom-logo-link {
  display: none;
}

.site-header.header--dark .header-logo .logo--light-link {
  display: inline-block;
}

.site-header.header--dark .custom-logo-link {
  display: none;
}

.site-header.header--dark .logo--light-link {
  display: inline-block;
}

.header-nav {
  flex: 1 1 auto;
}

.nav-menu {
  display: flex;
  gap: 2rem;
  flex-wrap: nowrap;
}

.nav-menu li {
  white-space: nowrap;
}

.header-nav ul {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header-nav a {
  color: #111;
  text-decoration: none;
  font-weight: 500;
  color: var(--wp--preset--color--dark);
  transition: color .15s ease;
}

.header-nav a:hover {
  color: var(--wp--preset--color--primary);
}

.header-phone {
  font-weight: 700;
  text-decoration: none;
  color: var(--wp--preset--color--dark);
}

.header-badge {
  background: var(--wp--preset--color--primary);
  padding: 4px 8px;
  margin-left: 8px;
  border-radius: 4px;
  font-size: 12px;
}

/* Dark Header Variant */

.site-header.header--dark {
  background: #111;
  color: #fff;
}

.site-header.header--dark .header-nav a,
.site-header.header--dark .header-phone {
  color: #fff;
}

.site-header.header--dark .burger span {
  background: #fff;
}

/* Default (Light Header) */
.site-header .burger span {
  background: #111;
}

/* Dark Header */
.site-header.header--dark .site-header .burger span {
  background: #fff;
}

/* ==========================================
   Burger
========================================== */

.burger {
  display: none;
  background: transparent;
  border: 0;
  padding: 10px;
  cursor: pointer;
  line-height: 0;
  position: relative;
  z-index: 300;
  width: 46px;
  height: 46px;
  border-radius: 8px;
  transition: background .2s ease;
}

/* Hover & Active */

.burger:hover {
  background: rgba(0,0,0,.05);
}

.burger:active {
  background: rgba(0,0,0,.08);
}

/* Focus (Accessibility) */

.burger:focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 3px;
}

/* Linien */

.burger span {
  position: absolute;
  left: 10px;
  width: 26px;
  height: 2px;
  background: #000;
  border-radius: 2px;
  transition: transform .3s cubic-bezier(.4,0,.2,1),
              opacity .2s ease,
              background .2s ease;
}

/* Positionierung der 3 Linien */

.burger span:nth-child(1) {
  top: 14px;
}

.burger span:nth-child(2) {
  top: 22px;
}

.burger span:nth-child(3) {
  top: 30px;
}

/* Animation beim Öffnen */

.burger.is-open span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.burger.is-open span:nth-child(2) {
  opacity: 0;
}

.burger.is-open span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Dark Header Support */

.site-header.header--dark.burger span {
  background: #fff;
}

.site-header.header--dark .burger:hover {
  background: rgba(255,255,255,.08);
}

.site-header.header--dark .burger:active {
  background: rgba(255,255,255,.12);
}

/* ==========================================
   Accessibility
========================================== */

.skip-link {
  position: absolute;
  left: 0.75rem;
  top: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--wp--preset--color--white);
  color: #000;
  border: 2px solid currentColor;
  transform: translateY(-200%);
  z-index: 1000;
}

.skip-link:focus {
  transform: translateY(0);
}

:focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================
   Breadcrumbs
========================================== */

.breadcrumbs {
  font-size: 0.8rem;
  margin-bottom: var(--wp--preset--spacing--1);
  line-height: 1;
}

.breadcrumbs a {
  color: var(--c-muted);
  text-decoration: none;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs [aria-current="page"] {
  color: var(--c-text);
  font-weight: 600;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumbs li[aria-current="page"] {
  color: #6E6E6E;
  font-weight: 400;
}

/* Separator */
.breadcrumbs li:not(:last-child)::after {
  content: "›";
  margin-left: .5rem;
  color: var(--c-muted);
}

.breadcrumbs li:last-child::after {
  content: "";
}

/* Desktop Default: nur Overlay-Header/Footer ausblenden,
   aber Menü-Body sichtbar lassen */
.nav-overlay-header,
.nav-overlay-footer {
  display: none;
}

.nav-overlay-body {
  display: block;
}

/* =========================================================
   Overlay Theme Tokens (neutral, nicht WP-Token hacken)
   ========================================================= */

.header-nav {
  --overlay-bg: #ffffff;
  --overlay-text: #111111;
  --overlay-muted: rgba(0,0,0,.6);
  --overlay-border: rgba(0,0,0,.1);
  --overlay-burger: #111111;
}

/* Dark Header → Overlay wird dunkel */
.site-header.header--dark .header-nav {
  --overlay-bg: #111111;
  --overlay-text: #ffffff;
  --overlay-muted: rgba(255,255,255,.7);
  --overlay-border: rgba(255,255,255,.15);
  --overlay-burger: #ffffff;
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 992px) {

  /* Header-Elemente immer über dem Overlay */
  .header-logo,
  .header-cta,
  .burger {
    position: relative;
    z-index: 450;
  }

  /* Overlay Bereiche */
  .nav-overlay-header,
  .nav-overlay-body,
  .nav-overlay-footer {
    display: block;
  }

  .burger {
    display: inline-block;
  }

  /* Offcanvas Basis */
  .header-nav {
    position: fixed;
    inset: 0;

    background: var(--overlay-bg);
    color: var(--overlay-text);

    padding: 120px 40px 60px;

    transform: translateX(100%);
    transition: transform .35s cubic-bezier(.4,0,.2,1);

    z-index: 200;

    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }

  /* Offen */
  .header-nav.open,
  .header-nav.is-open {
    transform: translateX(0);
  }

  /* Typografie */
  .header-nav a {
    color: var(--overlay-text);
    text-decoration: none;
  }

  .header-nav a:hover {
    color: var(--wp--preset--color--primary);
  }

  /* Header */
  .nav-overlay-header {
    margin-bottom: 40px;
  }

  .nav-overlay-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--overlay-text);
  }

  /* Menü */
  .header-nav .nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;

    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .header-nav .nav-menu > li > a {
    font-size: 24px;
    font-weight: 500;
  }

  .header-nav .nav-menu > li > a:focus-visible {
    outline: 2px solid var(--overlay-text);
    outline-offset: 4px;
  }

  .header-nav .current-menu-item > a,
  .header-nav .current-menu-ancestor > a {
    opacity: .7;
  }

  /* CTA */
  .nav-overlay-cta {
    margin-top: 40px;
  }

  .nav-overlay-cta .btn {
    width: 100%;
    text-align: center;
    background: var(--wp--preset--color--primary);
    color: #fff;
    padding: 14px 18px;
    border-radius: 8px;
    font-weight: 600;
  }

  /* Footer */
  .nav-overlay-footer {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid var(--overlay-border);
  }

  .nav-social {
    display: flex;
    gap: 18px;
  }

  .nav-social a {
    color: var(--overlay-muted);
    font-size: 16px;
  }

  .nav-social a:hover {
    color: var(--overlay-text);
  }

  .nav-social a:focus-visible {
    outline: 2px solid var(--overlay-text);
    outline-offset: 4px;
  }

  .header-nav ul {
    list-style: none;
  }
  
  .nav-overlay-legal {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--overlay-border);
  }

  .nav-overlay-legal a {
    font-size: 16px;
    color: var(--overlay-muted);
    text-decoration: none;
  }

  .nav-overlay-legal a:hover {
    color: var(--overlay-text);
  }

}

/* Desktop komplett ausblenden */
@media (min-width: 993px) {
  .nav-overlay-legal {
    display: none;
  }
}
