/* =========================================================
   LAPUR HEADER – Textur | Petrol | Foto
   Alles hängt an der Logobreite --logo-w. Die Steinspalte (--t)
   wird daraus berechnet, sodass die linke Kante des "p"
   (30.31 % der Logobreite) exakt auf der Steinkante liegt.
   ========================================================= */
.lp-hd{
  --petrol:#004E60; --magenta:#BE1653; --ink:#12272E;
  --anchor:.3031;
  --logo-w:clamp(190px, 16.5vw, 290px);
  --t:calc(var(--logo-w) * .42);
  --b:clamp(320px, 27vw, 460px);
  --logo-left:calc(var(--t) - var(--logo-w) * var(--anchor));
  --logo-top:clamp(24px, 2.4vw, 40px);
  --h:clamp(300px, 24vw, 380px);
  --pad:clamp(24px, 2.4vw, 40px);
  --edge:10px 0 22px -10px rgba(0,0,0,.55);
  position:relative; isolation:isolate;
  font-family:"League Spartan",sans-serif;
}
.lp-hd--hero{
  --logo-w:clamp(240px, 24vw, 440px);
  --b:clamp(360px, 31vw, 600px);
  --h:clamp(600px, 100vh, 1100px);
  --logo-top:clamp(32px, 3.4vw, 64px);
}
@supports (height:100svh){ .lp-hd--hero{ --h:clamp(600px, 100svh, 1100px); } }
.lp-hd.lp-hd.lp-hd{
  display:grid !important;
  grid-template-columns:var(--t) var(--b) minmax(0,1fr);
  grid-template-rows:var(--h);
  grid-template-areas:"tex blue photo";
  padding:0 !important; gap:0 !important; min-height:0;
}
.lp-hd > .e-con, .lp-hd > .elementor-element{ margin:0 !important; }
/* Spalten überlagern sich: jede wirft einen dezenten Schatten auf die nächste */
.lp-hd .lp-hd__tex.lp-hd__tex{ grid-area:tex; position:relative; z-index:3; background:#c9c9c7 url(/wp-content/uploads/lapur-header/lapur-steintextur.webp) center/cover no-repeat; box-shadow:var(--edge); padding:0 !important; min-height:0; }
.lp-hd .lp-hd__blue.lp-hd__blue{ grid-area:blue; position:relative; z-index:2; background:var(--petrol); box-shadow:var(--edge); padding:0 !important; min-height:0; }
.lp-hd .lp-hd__photo.lp-hd__photo{ grid-area:photo; position:relative; z-index:1; background:var(--petrol) var(--lp-hd-img, none) var(--lp-hd-pos, center)/cover no-repeat; padding:0 !important; min-height:0; overflow:hidden; }
.lp-hd .lp-hd__photo::before{ content:""; position:absolute; inset:0 0 auto 0; height:150px; background:linear-gradient(rgba(0,20,26,.55), rgba(0,20,26,0)); pointer-events:none; }
.lp-hd .lp-hd__title.lp-hd__title{ grid-area:blue; align-self:end; z-index:4; padding:0 var(--pad) var(--pad) var(--pad) !important; min-height:0; background:transparent; }
.lp-hd .lp-hd__logo{ position:absolute !important; z-index:6; top:var(--logo-top); left:var(--logo-left); width:var(--logo-w) !important; max-width:none !important; margin:0 !important; line-height:0; }
.lp-hd .lp-hd__logo a{ display:block; line-height:0; }
.lp-hd .lp-hd__logo img{ display:block; width:100% !important; height:auto !important; max-width:none !important; }
.lp-hd .lp-hd__logo a:focus-visible{ outline:2px solid #fff; outline-offset:6px; }
.lp-hd .lp-hd__seal{ position:absolute !important; z-index:4; left:50%; bottom:clamp(16px, 1.6vw, 28px); transform:translateX(-50%); width:calc(var(--t) * .66) !important; max-width:none !important; margin:0 !important; line-height:0; }
.lp-hd .lp-hd__seal img{ display:block; width:100% !important; height:auto !important; }
.lp-hd .lp-hd__h1{ margin:0; color:#fff; font-family:inherit; font-weight:600; font-size:clamp(26px, 2.3vw, 38px); line-height:1.12; letter-spacing:-.005em; hyphens:auto; -webkit-hyphens:auto; overflow-wrap:break-word; text-wrap:balance; }
/* Zum-Inhalt-Pfeil (Startseite) */
.lp-hd .lp-hd__downwrap{ position:absolute !important; z-index:7; left:50%; bottom:clamp(24px, 3.2vh, 44px); transform:translateX(-50%); width:auto !important; margin:0 !important; }
.lp-down{ position:relative; display:flex; align-items:center; justify-content:center; width:56px; height:56px; background:var(--magenta); color:#fff !important; text-decoration:none !important; box-shadow:0 8px 24px rgba(0,0,0,.28); transition:background-color .2s ease; overflow:hidden; }
.lp-down:hover, .lp-down:focus-visible{ background:#9C1044; }
.lp-down:focus-visible{ outline:2px solid #fff; outline-offset:4px; }
.lp-down svg{ position:absolute; width:22px; height:22px; left:50%; top:50%; margin:-11px 0 0 -11px; animation:lp-down 2.4s cubic-bezier(.45,0,.2,1) infinite; }
.lp-down svg + svg{ animation-delay:1.2s; opacity:0; }
@keyframes lp-down{ 0%{ transform:translateY(-18px); opacity:0; } 30%{ opacity:1; } 60%{ transform:translateY(2px); opacity:1; } 100%{ transform:translateY(18px); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .lp-down svg{ animation:none; opacity:1; } .lp-down svg + svg{ display:none; } }
/* Desktop-Navigation */
.lp-hd .lp-hd__navwrap{ position:absolute !important; z-index:7; top:0; right:0; margin:0 !important; width:auto !important; }
.lp-nav{ display:flex; align-items:center; gap:clamp(24px, 2.6vw, 44px); margin:0; padding:clamp(22px, 2.2vw, 34px) clamp(88px, 7vw, 120px) 0 0; list-style:none; }
.lp-nav li{ position:relative; margin:0; padding:0; list-style:none; }
.lp-nav > li > a{ display:inline-flex; align-items:center; gap:7px; padding:6px 0; color:#fff !important; font:500 17px/1.2 "League Spartan",sans-serif !important; text-decoration:none !important; border-bottom:2px solid transparent; text-shadow:0 1px 8px rgba(0,0,0,.35); transition:border-color .2s ease; }
.lp-nav > li > a:hover, .lp-nav > li:focus-within > a, .lp-nav > li.current-menu-item > a, .lp-nav > li.current-menu-ancestor > a, .lp-nav > li.current-menu-parent > a{ border-bottom-color:var(--magenta); }
.lp-nav .lp-nav__caret{ width:10px; height:10px; transition:transform .2s ease; }
.lp-nav li:hover > a .lp-nav__caret, .lp-nav li:focus-within > a .lp-nav__caret{ transform:rotate(180deg); }
.lp-nav .sub-menu{ position:absolute; top:100%; left:-20px; min-width:240px; margin:0; padding:10px 0; list-style:none; background:#fff; box-shadow:0 18px 40px rgba(0,30,40,.18); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.lp-nav li:hover > .sub-menu, .lp-nav li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:none; transition:opacity .18s ease, transform .18s ease; }
.lp-nav .sub-menu::before{ content:""; position:absolute; left:0; right:0; top:-14px; height:14px; }
.lp-nav .sub-menu a{ display:block; padding:10px 20px; color:var(--ink) !important; font:400 16px/1.3 "League Spartan",sans-serif !important; text-decoration:none !important; border-left:3px solid transparent; transition:color .15s ease, border-color .15s ease, background-color .15s ease; }
.lp-nav .sub-menu a:hover, .lp-nav .sub-menu a:focus-visible, .lp-nav .sub-menu .current-menu-item > a{ color:var(--petrol) !important; background:#F2F5F6; border-left-color:var(--magenta); outline:none; }/* Burger (bis 1024) */
.lp-hd .lp-hd__burgerwrap{ position:absolute !important; z-index:8; margin:0 !important; width:auto !important; display:none; }
html body button.lp-burger.lp-burger{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; padding:0; border:0; border-radius:0; background:#BE1653; color:#fff; font-size:0; line-height:0; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.22); transition:background-color .2s ease; }
html body button.lp-burger.lp-burger:hover, html body button.lp-burger.lp-burger:focus{ background:#9C1044; color:#fff; }
.lp-burger:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.lp-burger svg{ width:26px; height:26px; display:block; }
@media (max-width:1024px){
  .lp-hd .lp-hd__navwrap{ display:none !important; }
  .lp-hd .lp-hd__burgerwrap{ display:block; top:clamp(20px, 3vw, 32px); right:clamp(20px, 3vw, 32px); }
}
/* Mobil: Zeile Stein → Petrol, darunter Bild über die volle Breite, Titel unten links auf Verlauf */
@media (max-width:767px){
  .lp-hd{ --logo-w:140px; --t:calc(140px * .42); --logo-top:11px; --bar:84px; --photo:clamp(240px, 64vw, 320px); }
  .lp-hd--hero{ --logo-w:140px; --photo:max(420px, calc(100vh - 84px)); }
  @supports (height:100svh){ .lp-hd--hero{ --photo:max(420px, calc(100svh - 84px)); } }
  .lp-hd.lp-hd.lp-hd{ grid-template-columns:var(--t) minmax(0,1fr); grid-template-rows:var(--bar) var(--photo); grid-template-areas:"tex blue" "photo photo"; }
  .lp-hd .lp-hd__tex.lp-hd__tex{ box-shadow:var(--edge); }
  .lp-hd .lp-hd__blue.lp-hd__blue{ box-shadow:0 10px 22px -12px rgba(0,0,0,.6); }
  .lp-hd .lp-hd__photo::before{ display:none; }
  .lp-hd .lp-hd__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(32deg, rgba(0,22,28,.86) 0%, rgba(0,22,28,.52) 34%, rgba(0,22,28,0) 68%); pointer-events:none; }
  .lp-hd .lp-hd__title.lp-hd__title{ grid-area:photo; align-self:end; z-index:4; padding:0 20px 24px !important; background:none; }
  .lp-hd .lp-hd__h1{ font-size:clamp(26px, 7.4vw, 32px); text-shadow:0 1px 14px rgba(0,0,0,.35); max-width:18ch; }
  .lp-hd .lp-hd__seal{ display:none !important; }
  .lp-hd .lp-hd__burgerwrap{ top:calc((var(--bar) - 52px) / 2); right:12px; }
  .lp-hd .lp-hd__downwrap{ bottom:22px; }
  .lp-down{ width:50px; height:50px; }
}
/* Mobile Navigation: vollflächig, Ebenen als Karten */
.lp-mnav{ position:fixed; inset:0; z-index:100000; display:flex; flex-direction:column; background:#004E60; color:#fff; font-family:"League Spartan",sans-serif; opacity:0; visibility:hidden; transition:opacity .25s ease, visibility 0s linear .25s; }
.lp-mnav.is-open{ opacity:1; visibility:visible; transition:opacity .25s ease; }
.lp-mnav[hidden]{ display:none; }
.lp-mnav__top{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px; height:76px; padding:0 12px 0 20px; border-bottom:1px solid rgba(255,255,255,.14); }
.lp-mnav__brand{ display:block; width:140px; line-height:0; }
.lp-mnav__brand img{ width:100%; height:auto; display:block; }
html body .lp-mnav button.lp-mnav__close{ width:52px; height:52px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:0; background:#BE1653; color:#fff; line-height:0; cursor:pointer; }
html body .lp-mnav button.lp-mnav__close:hover, html body .lp-mnav button.lp-mnav__close:focus{ background:#9C1044; color:#fff; }
.lp-mnav__close svg{ width:24px; height:24px; }
.lp-mnav button:focus-visible, .lp-mnav a:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.lp-mnav__stage{ position:relative; flex:1 1 auto; overflow:hidden; }
.lp-mnav__panel{ position:absolute; inset:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:8px 0 24px; background:#004E60; transform:translateX(100%); visibility:hidden; transition:transform .32s cubic-bezier(.2,.7,.2,1), visibility 0s linear .32s; }
.lp-mnav__panel.is-active{ transform:none; visibility:visible; transition:transform .32s cubic-bezier(.2,.7,.2,1); }
.lp-mnav__panel.is-left{ transform:translateX(-28%); visibility:visible; }
.lp-mnav__head{ display:flex; align-items:center; gap:10px; padding:8px 20px 16px; }
html body .lp-mnav button.lp-mnav__back{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px 10px 10px; border:1px solid rgba(255,255,255,.35); border-radius:0; background:transparent; color:#fff; font:500 15px/1 "League Spartan",sans-serif; cursor:pointer; }
html body .lp-mnav button.lp-mnav__back:hover, html body .lp-mnav button.lp-mnav__back:focus{ background:rgba(255,255,255,.08); color:#fff; }
.lp-mnav__back svg{ width:16px; height:16px; }
.lp-mnav__title{ margin:0; padding:4px 20px 14px; color:rgba(255,255,255,.65); font:600 13px/1.2 "League Spartan",sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.lp-mnav__list{ list-style:none; margin:0; padding:0; }
.lp-mnav__item{ display:flex; align-items:stretch; border-bottom:1px solid rgba(255,255,255,.12); }
.lp-mnav__item:first-child{ border-top:1px solid rgba(255,255,255,.12); }
.lp-mnav__link{ flex:1 1 auto; display:flex; align-items:center; min-height:62px; padding:14px 20px; color:#fff !important; font:500 22px/1.2 "League Spartan",sans-serif !important; text-decoration:none !important; }
.lp-mnav__link.is-current{ box-shadow:inset 4px 0 0 #BE1653; }
html body .lp-mnav button.lp-mnav__next{ flex:0 0 64px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-left:1px solid rgba(255,255,255,.12); border-radius:0; background:transparent; color:#fff; cursor:pointer; }
html body .lp-mnav button.lp-mnav__next:hover, html body .lp-mnav button.lp-mnav__next:focus{ background:rgba(255,255,255,.08); color:#fff; }
.lp-mnav__next svg{ width:20px; height:20px; }
.lp-mnav__foot{ flex:0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:16px 20px calc(16px + env(safe-area-inset-bottom)); border-top:1px solid rgba(255,255,255,.14); }
.lp-mnav__cta{ display:flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 12px; background:#BE1653; color:#fff !important; font:600 16px/1 "League Spartan",sans-serif !important; text-decoration:none !important; }
.lp-mnav__cta--ghost{ background:transparent; box-shadow:inset 0 0 0 1px rgba(255,255,255,.45); }
.lp-mnav__cta svg{ width:20px; height:20px; }
.lp-burger .screen-reader-text, .lp-mnav .screen-reader-text, .lp-down .screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
html.lp-mnav-lock, html.lp-mnav-lock body{ overflow:hidden !important; }
@media (prefers-reduced-motion:reduce){ .lp-mnav, .lp-mnav__panel{ transition:none !important; } }
@media (min-width:1025px){ .lp-mnav{ display:none !important; } }
.lp-mnav--instant, .lp-mnav--instant .lp-mnav__panel{ transition:none !important; }
.lp-mnav--pv1 .lp-mnav__panel[data-panel="root"]{ transform:none; visibility:visible; }
.lp-mnav--pv2 .lp-mnav__panel[data-panel="root"]{ transform:translateX(-28%); visibility:visible; }
.lp-mnav--pv2 .lp-mnav__panel:nth-child(2){ transform:none; visibility:visible; }
/* v3: Zum-Inhalt-Pfeil ohne Kasten, Form aus dem bisherigen Startseiten-Header */
.lp-hd .lp-down.lp-down{ width:72px; height:72px; background:none; box-shadow:none; overflow:visible; color:#BE1653 !important; }
.lp-hd .lp-down.lp-down:hover, .lp-hd .lp-down.lp-down:focus-visible{ background:none; color:#fff !important; }
.lp-hd .lp-down.lp-down svg{ position:static; width:58px; height:58px; margin:0; opacity:1; filter:drop-shadow(0 2px 10px rgba(0,0,0,.45)); animation:lp-float 2.6s cubic-bezier(.45,0,.25,1) infinite; transition:color .2s ease; }
@keyframes lp-float{ 0%,100%{ transform:translateY(-6px); opacity:.85; } 50%{ transform:translateY(8px); opacity:1; } }
@media (prefers-reduced-motion:reduce){ .lp-hd .lp-down.lp-down svg{ animation:none; } }
/* v3: Startseite mobil – Bild füllt den restlichen Bildschirm */
@media (max-width:767px){
  .lp-hd.lp-hd--hero.lp-hd.lp-hd{ grid-template-rows:var(--bar) minmax(420px, 1fr); min-height:100vh; }
  @supports (height:100svh){ .lp-hd.lp-hd--hero.lp-hd.lp-hd{ min-height:100svh; } }
  .lp-hd .lp-down.lp-down svg{ width:50px; height:50px; }
}
/* v3: Borlabs-Widget dezent unten rechts, kollidiert nicht mit dem Siegel */
.brlbs-cmpnt-container .brlbs-cmpnt-widget.brlbs-cmpnt-widget{ left:auto !important; right:0 !important; bottom:0 !important; padding:14px !important; opacity:.7; }
.brlbs-cmpnt-container .brlbs-cmpnt-widget.brlbs-cmpnt-widget:hover{ opacity:1; }
.brlbs-cmpnt-container .brlbs-cmpnt-widget.brlbs-cmpnt-widget svg{ width:26px !important; height:26px !important; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.eael-ext-scroll-to-top-wrap .eael-ext-scroll-to-top-button{ bottom:60px !important; }
/* v4: Pfeil weiß auf Magenta-Kasten, neue Form; Startseite mobil ca. halbe Bildschirmhöhe */
.lp-hd .lp-down.lp-down{ width:56px; height:56px; background:#BE1653; color:#fff !important; box-shadow:0 8px 24px rgba(0,0,0,.28); overflow:hidden; }
.lp-hd .lp-down.lp-down:hover, .lp-hd .lp-down.lp-down:focus-visible{ background:#9C1044; color:#fff !important; }
.lp-hd .lp-down.lp-down svg{ width:28px; height:28px; filter:none; animation:lp-float2 2.4s cubic-bezier(.45,0,.25,1) infinite; }
@keyframes lp-float2{ 0%,100%{ transform:translateY(-4px); opacity:.8; } 50%{ transform:translateY(5px); opacity:1; } }
@media (prefers-reduced-motion:reduce){ .lp-hd .lp-down.lp-down svg{ animation:none; } }
@media (max-width:767px){
  .lp-hd.lp-hd--hero.lp-hd.lp-hd{ min-height:0; grid-template-rows:var(--bar) max(300px, calc(55vh - 84px)); }
  @supports (height:100svh){ .lp-hd.lp-hd--hero.lp-hd.lp-hd{ min-height:0; grid-template-rows:var(--bar) max(300px, calc(55svh - 84px)); } }
  .lp-hd .lp-down.lp-down{ width:50px; height:50px; }
  .lp-hd .lp-down.lp-down svg{ width:24px; height:24px; }
}
/* v5: Menü-Kopf wie die Header-Leiste (Stein → Petrol, Logo auf der Kante) */
.lp-mnav .lp-mnav__top{ position:relative; height:84px; padding:0 12px 0 0; justify-content:flex-end; border-bottom:0; box-shadow:0 10px 22px -12px rgba(0,0,0,.6); z-index:2; }
.lp-mnav .lp-mnav__top::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:calc(140px * .42); background:#c9c9c7 url(/wp-content/uploads/lapur-header/lapur-steintextur.webp) center/cover no-repeat; box-shadow:10px 0 22px -10px rgba(0,0,0,.55); }
.lp-mnav .lp-mnav__brand{ position:absolute; z-index:1; top:11px; left:calc(140px * .42 - 140px * .3031); width:140px; }
/* Elternpunkte als Schalter (kein "#"-Link) */
html body .lp-mnav button.lp-mnav__link.lp-mnav__toggle{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:62px; padding:14px 20px; background:transparent; border:0; border-radius:0; color:#fff; text-align:left; font:500 22px/1.2 "League Spartan",sans-serif; cursor:pointer; }
html body .lp-mnav button.lp-mnav__link.lp-mnav__toggle:hover, html body .lp-mnav button.lp-mnav__link.lp-mnav__toggle:focus{ background:rgba(255,255,255,.06); color:#fff; }
.lp-mnav__toggle svg{ width:20px; height:20px; flex:0 0 auto; }
/* Warenkorb im Menü */
.lp-mnav__foot .lp-mnav-cart-slot{ grid-column:1 / -1; }
.lp-mnav__foot .lp-mnav-cart-slot[hidden]{ display:none; }
.lp-mnav__cart{ display:flex; align-items:center; gap:12px; min-height:54px; padding:0 18px; background:#fff; color:#004E60 !important; font:600 16px/1 "League Spartan",sans-serif !important; text-decoration:none !important; }
.lp-mnav__cart svg{ width:22px; height:22px; }
.lp-mnav__cart-count{ margin-left:auto; padding:5px 9px; background:#BE1653; color:#fff; font-size:13px; font-weight:600; }
/* Desktop: Elternpunkt ohne Ziel als Schalter */
html body .lp-nav button.lp-nav__toggle{ display:inline-flex; align-items:center; gap:7px; padding:6px 0; background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; color:#fff; font:500 17px/1.2 "League Spartan",sans-serif; text-shadow:0 1px 8px rgba(0,0,0,.35); cursor:pointer; transition:border-color .2s ease; }
html body .lp-nav button.lp-nav__toggle:hover, html body .lp-nav button.lp-nav__toggle:focus, html body .lp-nav li:focus-within > button.lp-nav__toggle, html body .lp-nav li.is-open > button.lp-nav__toggle, html body .lp-nav li.current-menu-ancestor > button.lp-nav__toggle{ background:transparent; color:#fff; border-bottom-color:#BE1653; }
html body .lp-nav button.lp-nav__toggle:focus-visible{ outline:2px solid #fff; outline-offset:4px; }
.lp-nav li.is-open > .sub-menu{ opacity:1; visibility:visible; transform:none; }
.lp-nav li.is-open > button .lp-nav__caret{ transform:rotate(180deg); }
.lp-mnav .lp-mnav__link, .lp-mnav .lp-mnav__cta, .lp-mnav .lp-mnav__cart{ box-sizing:border-box; }
