/* LAVUQ public website header – approved horizontal arrangement.
   Public website only. Mein Q / protected PWA views are intentionally excluded. */

.site-header{
  background:#041529!important;
  color:#fff!important;
  border-bottom:1px solid rgba(216,180,106,.72)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.site-header .nav a{color:#fff!important}
.site-header .nav a:hover,.site-header .nav a:focus{color:#d8b46a!important}
.public-brand{color:#fff!important}
.public-brand img:not(.public-brand-q),.public-brand .mobile-brand-q{display:none!important}
.public-menu-toggle{cursor:pointer}

/* Source contains two stacked motifs; deliberately crop to the lower, complete Q. */
.public-brand-q-crop{
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.public-brand-q{
  display:block!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

@media(min-width:521px){
  .site-header{position:sticky!important;top:0!important}
  .site-header .nav-wrap{height:92px!important;min-height:92px!important}
  .public-brand{display:flex!important;align-items:center!important;gap:12px!important}
  .public-brand-copy{display:flex!important;flex-direction:column!important;order:2!important}
  .public-brand-q-crop{order:1!important;width:54px!important;height:54px!important}
  .public-brand-q{position:absolute!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;left:50%!important;bottom:0!important;top:auto!important;transform:translateX(-50%)!important;object-fit:fill!important}
  .public-brand-line{display:none!important}
  .public-brand-name{font-family:Georgia,'Times New Roman',serif!important;font-size:1.2rem!important;font-weight:500!important;letter-spacing:.14em!important;line-height:1!important}
  .public-brand-city{font-family:Georgia,'Times New Roman',serif!important;font-size:.78rem!important;line-height:1!important;margin-top:5px!important;color:#d8b46a!important}
  .public-menu-label{display:none!important}
}

@media(max-width:520px){
  html,body{max-width:100%;overflow-x:hidden}
  .topbar{display:none!important}
  html body .site-header{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    height:126px!important;
    min-height:126px!important;
    background:#041529!important;
    overflow:visible!important;
    border-bottom:1px solid rgba(216,180,106,.72)!important;
  }
  html body .site-header .nav-wrap{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    height:126px!important;
    min-height:126px!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
  }
  html body .site-header .nav-wrap a.public-brand{
    position:static!important;
    display:block!important;
    width:100%!important;
    height:126px!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  html body .site-header .nav-wrap a.public-brand > span.public-brand-copy{
    position:absolute!important;
    left:18px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:155px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    z-index:55!important;
    color:#fff!important;
  }
  html body .site-header .nav-wrap a.public-brand > span.public-brand-copy:before,
  html body .site-header .nav-wrap a.public-brand > span.public-brand-copy:after{content:none!important;display:none!important}
  html body .site-header .nav-wrap .public-brand-name{
    display:block!important;
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-family:Georgia,'Times New Roman',serif!important;
    font-size:1.58rem!important;
    font-weight:400!important;
    letter-spacing:.16em!important;
    line-height:.96!important;
    white-space:nowrap!important;
  }
  html body .site-header .nav-wrap .public-brand-city{
    display:block!important;
    margin:7px 0 0!important;
    padding:0!important;
    color:#d8b46a!important;
    font-family:Georgia,'Times New Roman',serif!important;
    font-size:.98rem!important;
    font-weight:400!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  html body .site-header .nav-wrap a.public-brand > span.public-brand-q-crop{
    position:absolute!important;
    left:50%!important;
    bottom:0!important;
    top:auto!important;
    transform:translateX(-50%)!important;
    width:98px!important;
    height:98px!important;
    overflow:hidden!important;
    z-index:56!important;
  }
  html body .site-header .nav-wrap a.public-brand > span.public-brand-q-crop > img.brand-mark.public-brand-q{
    position:absolute!important;
    left:50%!important;
    bottom:-54px!important;
    top:auto!important;
    transform:translateX(-50%)!important;
    width:196px!important;
    height:196px!important;
    min-width:196px!important;
    min-height:196px!important;
    object-fit:fill!important;
    object-position:center!important;
    visibility:visible!important;
    opacity:1!important;
  }

  html body .site-header .nav-wrap a.public-brand > span.public-brand-line{
    position:absolute!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    display:block!important;
    height:1px!important;
    background:#d8b46a!important;
    opacity:.95!important;
    z-index:54!important;
  }
  html body .site-header .nav-wrap a.public-brand > span.public-brand-line-left{left:146px!important;right:calc(50% + 43px)!important;margin:0!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-line-right{left:calc(50% + 43px)!important;right:142px!important;margin:0!important}

  html body .site-header .nav-wrap button.nav-toggle.public-menu-toggle{
    position:absolute!important;
    right:14px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:134px!important;
    height:58px!important;
    min-width:134px!important;
    min-height:58px!important;
    margin:0!important;
    padding:0 18px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:13px!important;
    border:1.5px solid #d8b46a!important;
    border-radius:999px!important;
    background:#041529!important;
    color:#fff!important;
    box-shadow:none!important;
    font-size:initial!important;
    text-indent:0!important;
    z-index:60!important;
  }
  html body .site-header .nav-wrap button.nav-toggle.public-menu-toggle:before,
  html body .site-header .nav-wrap button.nav-toggle.public-menu-toggle:after{content:none!important;display:none!important}
  html body .site-header .nav-wrap .public-menu-icon{display:inline-block!important;color:#d8b46a!important;font-family:Arial,sans-serif!important;font-size:1.45rem!important;font-weight:700!important;line-height:1!important}
  html body .site-header .nav-wrap .public-menu-label{display:inline-block!important;color:#fff!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;font-size:1.06rem!important;font-weight:650!important;line-height:1!important;white-space:nowrap!important}

  html body .site-header .nav-wrap .nav{
    position:absolute!important;
    top:116px!important;
    left:12px!important;
    right:12px!important;
    padding:16px!important;
    background:#041529!important;
    border:1px solid rgba(216,180,106,.5)!important;
    border-radius:22px!important;
    box-shadow:0 24px 60px rgba(0,0,0,.38)!important;
    z-index:70!important;
  }
  html body .site-header .nav-wrap .nav a{color:#fff!important;border-bottom:1px solid rgba(216,180,106,.18)!important}
  html body .site-header .nav-wrap .nav .btn-primary{background:#d8b46a!important;color:#041529!important;border-color:#d8b46a!important}
}

@media(max-width:390px){
  html body .site-header{height:122px!important;min-height:122px!important}
  html body .site-header .nav-wrap,html body .site-header .nav-wrap a.public-brand{height:122px!important;min-height:122px!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-copy{left:13px!important;width:138px!important}
  html body .site-header .nav-wrap .public-brand-name{font-size:1.44rem!important}
  html body .site-header .nav-wrap .public-brand-city{font-size:.90rem!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-q-crop{width:92px!important;height:92px!important;bottom:0!important;top:auto!important;transform:translateX(-50%)!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-q-crop > img.brand-mark.public-brand-q{width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;bottom:-51px!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-line-left{left:124px!important;right:calc(50% + 40px)!important}
  html body .site-header .nav-wrap a.public-brand > span.public-brand-line-right{left:calc(50% + 40px)!important;right:142px!important}
  html body .site-header .nav-wrap button.nav-toggle.public-menu-toggle{right:7px!important;width:126px!important;min-width:126px!important;height:54px!important;min-height:54px!important;padding:0 15px!important;gap:11px!important}
  html body .site-header .nav-wrap .public-menu-icon{font-size:1.35rem!important}
  html body .site-header .nav-wrap .public-menu-label{font-size:1rem!important}
}

/* Final authoritative mobile header match. These selectors intentionally outrank all older mobile overrides. */
@media(max-width:520px){
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-copy.public-brand-copy{
    left:20px!important;
    width:104px!important;
  }
  html body header.site-header.site-header .nav-wrap .public-brand-name.public-brand-name{
    font-size:2.3rem!important;
    letter-spacing:.12em!important;
    line-height:.92!important;
  }
  html body header.site-header.site-header .nav-wrap .public-brand-city.public-brand-city{
    margin-top:5px!important;
    font-size:1.6rem!important;
    line-height:1!important;
  }
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-q-crop.public-brand-q-crop{
    top:31px!important;
    bottom:auto!important;
    width:100px!important;
    height:100px!important;
    min-width:100px!important;
    min-height:100px!important;
    max-width:100px!important;
    max-height:100px!important;
    transform:translateX(-50%)!important;
    background-size:contain!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    overflow:visible!important;
  }
}
@media(max-width:390px){
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-copy.public-brand-copy{
    left:14px!important;
    width:96px!important;
  }
  html body header.site-header.site-header .nav-wrap .public-brand-name.public-brand-name{
    font-size:2.3rem!important;
  }
  html body header.site-header.site-header .nav-wrap .public-brand-city.public-brand-city{
    font-size:1.6rem!important;
  }
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-q-crop.public-brand-q-crop{
    top:30px!important;
    bottom:auto!important;
    width:94px!important;
    height:94px!important;
    min-width:94px!important;
    min-height:94px!important;
    max-width:94px!important;
    max-height:94px!important;
    transform:translateX(-50%)!important;
    background-size:contain!important;
    background-position:center center!important;
    background-repeat:no-repeat!important;
    overflow:visible!important;
  }
}

/* Mobile: keep exactly ONE center Q. The CSS background is the only renderer; remove the rear/duplicate image layer. */
@media(max-width:520px){
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-q-crop.public-brand-q-crop > img,
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-q-crop.public-brand-q-crop > object,
  html body header.site-header.site-header .nav-wrap a.public-brand.public-brand > span.public-brand-q-crop.public-brand-q-crop > embed{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    width:0!important;
    height:0!important;
    pointer-events:none!important;
  }
}
