/* LUNA Core v2 – Eklipsen-Navigation und saisonale Startseite */
html.luna-core-v2-root {
  overflow-x: clip;
}

body.luna-core-v2 {
  --luna-core-v2-midnight: #061827;
  --luna-core-v2-navy: #102e45;
  --luna-core-v2-navy-soft: #193f59;
  --luna-core-v2-ivory: #fbf7ee;
  --luna-core-v2-gold: #c79b4d;
  --luna-core-v2-gold-light: #f2d99c;
  --luna-core-v2-panel-right: clamp(16px, 2.8vw, 42px);
  --luna-core-v2-panel-width: min(440px, calc(100vw - 32px));
  background: var(--luna-core-v2-ivory);
  overflow-x: clip;
}

body.luna-core-v2 main,
body.luna-core-v2 footer.footer {
  pointer-events: auto;
}

body.luna-core-v2 main .kicker,
body.luna-core-v2 main .hero h1,
body.luna-core-v2 main .hero-text,
body.luna-core-v2 main .hero-actions .button,
body.luna-core-v2 main .promise,
body.luna-core-v2 main .section-intro h2,
body.luna-core-v2 main .section-intro > p:last-child,
body.luna-core-v2 main .district,
body.luna-core-v2 main .house-card h3,
body.luna-core-v2 main .house-link,
body.luna-core-v2 main .image-note,
body.luna-core-v2 main .tool-card h3,
body.luna-core-v2 main .tool-card p,
body.luna-core-v2 main .soon,
body.luna-core-v2 main .about-copy h2,
body.luna-core-v2 main .about-copy > p:not(.kicker),
body.luna-core-v2 main .values article,
body.luna-core-v2 footer.footer .footer-main > div > p,
body.luna-core-v2 footer.footer .footer-links,
body.luna-core-v2 footer.footer .footer-bottom {
  filter: none;
  user-select: auto;
}

/* Kopfzeile und Logo */
.luna-core-v2 .luna-core-v2-header {
  position: sticky;
  top: 0;
  z-index: 160;
  background: rgb(251 248 242 / 94%);
  border-bottom: 1px solid rgb(198 166 105 / 18%);
  box-shadow: 0 10px 34px rgb(16 43 67 / 4%);
  backdrop-filter: blur(20px) saturate(1.1);
}

.luna-core-v2 .luna-core-v2-header-inner {
  width: min(1390px, calc(100% - 44px));
  height: 94px;
  gap: 28px;
}

.luna-core-v2-brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  flex: 0 0 auto;
}

.luna-core-v2-brand img {
  width: clamp(225px, 19vw, 292px);
  height: auto;
  max-height: 78px;
  object-fit: contain;
  object-position: left center;
}

.luna-core-v2-brand-mobile,
.luna-core-v2-label-mobile {
  display: none;
}

.luna-core-v2-quicknav {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(14px, 1.55vw, 27px);
  color: #243b4d;
  font-size: clamp(.73rem, .78vw, .86rem);
  white-space: nowrap;
}

.luna-core-v2-quicknav a,
.luna-core-v2-quicknav button {
  position: relative;
  padding: 12px 0;
}

.luna-core-v2-quicknav button {
  appearance: none;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.luna-core-v2-quicknav a::after,
.luna-core-v2-quicknav button::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 5px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--luna-core-v2-gold), transparent);
  transition: left 240ms ease, right 240ms ease;
}

.luna-core-v2-quicknav a:hover::after,
.luna-core-v2-quicknav a:focus-visible::after,
.luna-core-v2-quicknav button:hover::after,
.luna-core-v2-quicknav button:focus-visible::after {
  left: 0;
  right: 0;
}

/* Mond-Menüknopf – sichtbares Wort „Menü“ bleibt immer erhalten */
.luna-core-v2 .luna-core-v2-menu-toggle {
  appearance: none;
  width: auto;
  height: 60px;
  min-width: 116px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 11px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  color: var(--luna-core-v2-midnight);
  background: transparent;
  cursor: pointer;
}

.luna-core-v2 .menu-toggle .luna-core-v2-menu-label {
  width: auto;
  height: auto;
  margin: 0;
  display: inline;
  color: inherit;
  background: none;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
}

.luna-core-v2 .menu-toggle .luna-core-v2-menu-orb {
  position: relative;
  width: 58px;
  height: 58px;
  margin: 0;
  display: grid;
  place-items: center;
  flex: 0 0 58px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 25%, #244963 0, #102e45 51%, #061827 100%);
  box-shadow: 0 12px 28px rgb(6 24 39 / 20%), inset 0 0 0 1px rgb(232 199 127 / 42%);
  isolation: isolate;
}

.luna-core-v2-menu-orb::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -4px;
  padding: 2px;
  border-radius: inherit;
  opacity: .72;
  background: conic-gradient(from 0deg, transparent 0 272deg, #c89742 302deg, #fff1bd 329deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: luna-core-v2-ring-orbit 7s linear infinite;
}

.luna-core-v2-menu-orb::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 4px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff2c2;
  box-shadow: 0 0 6px #fff, 0 0 16px #f0c86e, 0 0 26px rgb(237 185 80 / 76%);
  animation: luna-core-v2-flare 2.8s ease-in-out infinite;
}

.luna-core-v2-menu-orb svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.luna-core-v2-menu-ring {
  fill: none;
  stroke: #cba45d;
  stroke-width: 1.25;
}

.luna-core-v2-menu-crescent {
  fill: #d9b46b;
}

.luna-core-v2-menu-star {
  fill: #fff0bd;
}

.luna-core-v2-menu-moon,
.luna-core-v2-menu-close {
  transform-box: fill-box;
  transform-origin: center;
  transition: opacity 220ms ease, transform 360ms cubic-bezier(.22, 1, .36, 1);
}

.luna-core-v2-menu-close {
  opacity: 0;
  transform: rotate(-25deg) scale(.7);
}

.luna-core-v2-menu-close path {
  fill: none;
  stroke: #fbf7ee;
  stroke-width: 2;
  stroke-linecap: round;
}

.luna-core-v2-menu-toggle[aria-expanded="true"] .luna-core-v2-menu-moon {
  opacity: 0;
  transform: rotate(24deg) scale(.72);
}

.luna-core-v2-menu-toggle[aria-expanded="true"] .luna-core-v2-menu-close {
  opacity: 1;
  transform: rotate(0) scale(1);
}

.luna-core-v2-menu-toggle:hover .luna-core-v2-menu-orb,
.luna-core-v2-menu-toggle:focus-visible .luna-core-v2-menu-orb {
  box-shadow: 0 15px 34px rgb(6 24 39 / 25%), inset 0 0 0 1px rgb(255 226 161 / 68%);
}

.luna-core-v2-menu-toggle:focus-visible {
  outline: 3px solid rgb(199 155 77 / 34%);
  outline-offset: 5px;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-label {
  display: none;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-moon {
  opacity: 0 !important;
  visibility: hidden;
  transform: rotate(24deg) scale(.72);
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-close {
  opacity: 1 !important;
  visibility: visible;
  transform: rotate(0) scale(1);
}

/* Dunkles Eklipsen-Menü */
.luna-core-v2 .luna-core-v2-nav {
  position: fixed;
  z-index: 151;
  top: 108px;
  right: var(--luna-core-v2-panel-right);
  left: auto;
  width: var(--luna-core-v2-panel-width);
  height: min(860px, calc(100dvh - 124px));
  display: block;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  color: #f9f5eb;
  border: 1px solid rgb(230 190 111 / 23%);
  border-radius: 30px;
  background:
    radial-gradient(circle at 11% 16%, rgb(51 92 119 / 44%), transparent 31%),
    radial-gradient(circle at 86% 42%, rgb(198 147 67 / 11%), transparent 29%),
    linear-gradient(145deg, #12344c 0, #0a263b 42%, #061827 100%);
  box-shadow: 0 30px 80px rgb(4 17 28 / 36%);
  transform: translate3d(34px, -8px, 0) scale(.975);
  transform-origin: top right;
  transition: opacity 280ms ease, transform 430ms cubic-bezier(.22, 1, .36, 1), visibility 0s linear 430ms;
}

.luna-core-v2 .luna-core-v2-nav.open {
  display: block;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  transition-delay: 0s;
}

.luna-core-v2-nav::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: 610px;
  height: 610px;
  right: -318px;
  top: 76px;
  border: 1px solid rgb(236 190 99 / 46%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgb(246 211 143 / 34%), 0 0 32px rgb(226 171 69 / 18%);
  pointer-events: none;
  animation: luna-core-v2-eclipse-breathe 5.8s ease-in-out infinite;
}

.luna-core-v2-nav::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: .58;
  background-image:
    radial-gradient(circle at 83% 12%, #f5d88f 0 1px, transparent 1.6px),
    radial-gradient(circle at 65% 22%, #fff0ba 0 1px, transparent 1.5px),
    radial-gradient(circle at 78% 36%, #cba65c 0 1px, transparent 1.4px),
    radial-gradient(circle at 51% 62%, #e4c479 0 .8px, transparent 1.4px),
    radial-gradient(circle at 88% 72%, #fff1bd 0 .9px, transparent 1.5px),
    linear-gradient(180deg, transparent 68%, rgb(2 15 25 / 34%));
}

.luna-core-v2-nav-glow {
  position: absolute;
  z-index: 1;
  width: 15px;
  height: 15px;
  top: 242px;
  right: 119px;
  border-radius: 50%;
  background: #fff0bb;
  box-shadow: 0 0 7px #fff, 0 0 19px #efc064, 0 0 42px #d89334;
  pointer-events: none;
  animation: luna-core-v2-flare 3.4s ease-in-out infinite;
}

.luna-core-v2-nav-forest {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 112px;
  background: url("luna-menu-forest.svg") bottom center / 100% 100% no-repeat;
  pointer-events: none;
}

.luna-core-v2-nav-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgb(208 168 93 / 46%) transparent;
  padding: 24px 32px 96px;
  -webkit-mask-image: linear-gradient(#000 0, #000 calc(100% - 96px), transparent calc(100% - 42px));
  mask-image: linear-gradient(#000 0, #000 calc(100% - 96px), transparent calc(100% - 42px));
}

.luna-core-v2-nav-heading {
  padding: 0 10px 16px;
  border-bottom: 1px solid rgb(238 221 186 / 14%);
}

.luna-core-v2-nav-heading p {
  margin: 0 0 5px;
  color: #d9b975;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.luna-core-v2-nav-heading strong {
  font-family: var(--serif);
  font-size: 1.26rem;
  font-weight: 400;
}

.luna-core-v2-menu-group {
  padding: 8px 0;
  border-bottom: 1px solid rgb(238 221 186 / 14%);
}

.luna-core-v2-menu-group-toggle,
.luna-core-v2-menu-list > a {
  width: 100%;
  min-height: 52px;
  display: grid;
  grid-template-columns: 50px 1fr 24px;
  align-items: center;
  gap: 14px;
  padding: 5px 8px;
  border: 0;
  color: #f9f5eb;
  background: transparent;
  font-family: var(--serif);
  font-size: 1.26rem;
  text-align: left;
  cursor: pointer;
}

.luna-core-v2-menu-group-toggle:hover,
.luna-core-v2-menu-group-toggle:focus-visible,
.luna-core-v2-menu-list > a:hover,
.luna-core-v2-menu-list > a:focus-visible {
  color: #ffe3a5;
  outline: none;
}

.luna-core-v2-menu-icon {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(221 184 111 / 38%);
  border-radius: 50%;
  color: #e9c675;
  background: rgb(255 255 255 / 2%);
  transition: background 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.luna-core-v2-menu-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.luna-core-v2-menu-group-toggle:hover .luna-core-v2-menu-icon,
.luna-core-v2-menu-list > a:hover .luna-core-v2-menu-icon {
  border-color: rgb(255 221 151 / 68%);
  background: rgb(240 201 121 / 7%);
  transform: translateY(-1px);
}

.luna-core-v2-menu-chevron,
.luna-core-v2-menu-list b {
  width: 22px;
  height: 22px;
  color: #e3bd6b;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  font-family: Arial, sans-serif;
  font-size: 1.7rem;
  font-weight: 300;
  line-height: .7;
  text-align: center;
  transition: transform 260ms ease;
}

.luna-core-v2-menu-group-toggle[aria-expanded="false"] .luna-core-v2-menu-chevron {
  transform: rotate(180deg);
}

.luna-core-v2-submenu {
  max-height: 300px;
  margin: 1px 6px 7px 66px;
  padding: 2px 0 4px 20px;
  display: grid;
  overflow: hidden;
  border-left: 1px solid rgb(222 182 106 / 26%);
  opacity: 1;
  transition: max-height 380ms cubic-bezier(.22, 1, .36, 1), opacity 220ms ease, margin 380ms ease;
}

.luna-core-v2-menu-group-toggle[aria-expanded="false"] + .luna-core-v2-submenu {
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  opacity: 0;
  pointer-events: none;
}

.luna-core-v2 .luna-core-v2-submenu a {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 4px 7px;
  color: rgb(249 245 235 / 79%);
  font-family: var(--serif);
  font-size: 1.08rem;
}

.luna-core-v2 .luna-core-v2-submenu a::after,
.luna-core-v2 .luna-core-v2-menu-list a::after {
  display: none;
}

.luna-core-v2-submenu a:hover,
.luna-core-v2-submenu a:focus-visible {
  color: #ffe3a5;
  outline: none;
}

.luna-core-v2-submenu b {
  color: #e3bd6b;
  font-family: Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 300;
}

.luna-core-v2-menu-list {
  display: grid;
}

.luna-core-v2-menu-list > a {
  border-bottom: 1px solid rgb(238 221 186 / 14%);
}

.luna-core-v2-menu-list > .luna-core-v2-connect-item,
.luna-core-v2-menu-list > .luna-core-v2-remember-item {
  display: none;
}

.luna-core-v2-menu-promise {
  margin: 16px 0 0;
  display: block;
  color: #e6c477;
  font-family: var(--serif);
  font-size: .96rem;
}

.luna-core-v2-menu-promise-mobile {
  display: none;
}

.luna-core-v2-menu-promise-desktop {
  display: block;
}

.luna-core-v2-menu-promise i {
  position: relative;
  width: 44px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #cda552);
}

.luna-core-v2-menu-promise i:last-child {
  transform: scaleX(-1);
}

.luna-core-v2-menu-promise i::after {
  content: "";
  position: absolute;
  right: 0;
  top: -2px;
  width: 5px;
  height: 5px;
  background: #e6c477;
  transform: rotate(45deg);
}

.luna-core-v2-backdrop {
  position: fixed;
  z-index: 145;
  inset: 94px 0 0;
  display: block;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  border: 0;
  background: rgb(249 245 237 / 46%);
  backdrop-filter: blur(10px) saturate(.82);
  transition: opacity 300ms ease, visibility 0s linear 350ms;
}

body.luna-menu-open .luna-core-v2-backdrop {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

body.luna-menu-open {
  overflow: hidden;
}

/* Saisonaler Hero */
.luna-core-v2 .luna-core-v2-hero {
  min-height: clamp(690px, calc(100svh - 94px), 860px);
  padding: 0;
  display: grid;
  align-items: stretch;
  overflow: hidden;
  background: #f7efe3;
  isolation: isolate;
}

.luna-core-v2 .luna-core-v2-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(251 247 238 / 98%) 0, rgb(251 247 238 / 94%) 25%, rgb(251 247 238 / 48%) 48%, transparent 68%),
    linear-gradient(180deg, transparent 65%, rgb(247 239 227 / 88%) 100%);
  pointer-events: none;
}

.luna-core-v2 .luna-core-v2-hero::before {
  content: "";
  position: absolute;
  z-index: 2;
  width: 540px;
  height: 540px;
  right: -280px;
  top: 50%;
  border: 1px solid rgb(212 163 72 / 28%);
  border-radius: 50%;
  box-shadow: 0 0 38px rgb(228 181 91 / 14%);
  transform: translateY(-50%);
  pointer-events: none;
}

.luna-core-v2-hero-media {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
}

.luna-core-v2-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 58%, rgb(255 236 187 / 13%) 85%);
  pointer-events: none;
}

.luna-core-v2-season-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  opacity: 0;
  transform: scale(1.008);
  transition: opacity 700ms ease, transform 9s ease-out;
}

.luna-core-v2-season-image.is-season-ready {
  opacity: 1;
  transform: scale(1);
}

.luna-core-v2 .luna-core-v2-hero-inner {
  position: relative;
  z-index: 3;
  width: min(1280px, calc(100% - 44px));
  min-height: 100%;
  margin: 0 auto;
  padding: clamp(76px, 9vh, 116px) 0 162px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.luna-core-v2 .luna-core-v2-hero-copy {
  max-width: 620px;
}

.luna-core-v2 .luna-core-v2-hero-copy .kicker {
  margin-bottom: 20px;
  color: #a27635;
}

.luna-core-v2 .luna-core-v2-hero-copy h1 {
  font-size: clamp(4rem, 6.1vw, 7rem);
  line-height: .91;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.luna-core-v2 .luna-core-v2-hero-copy h1 em {
  color: var(--luna-core-v2-midnight);
}

.luna-core-v2 .luna-core-v2-hero-copy .hero-text {
  max-width: 505px;
  margin-top: 27px;
  color: #405464;
  font-family: var(--serif);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.65;
}

.luna-core-v2 .luna-core-v2-hero-copy .button {
  min-height: 52px;
  min-width: 168px;
}

.luna-core-v2 .luna-core-v2-hero-copy .button-primary {
  background: var(--luna-core-v2-midnight);
}

.luna-core-v2-hero-features {
  position: absolute;
  right: 0;
  bottom: 26px;
  left: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  border: 1px solid rgb(181 143 80 / 18%);
  border-radius: 25px;
  background: rgb(251 247 238 / 73%);
  box-shadow: 0 16px 44px rgb(75 56 29 / 8%);
  backdrop-filter: blur(16px) saturate(.95);
}

.luna-core-v2-hero-features article {
  min-height: 112px;
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 15px;
  padding: 20px 24px;
}

.luna-core-v2-hero-features article + article {
  border-left: 1px solid rgb(181 143 80 / 18%);
}

.luna-core-v2-hero-features svg {
  width: 42px;
  height: 42px;
  fill: none;
  stroke: #9a743d;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.luna-core-v2-hero-features div {
  display: grid;
  gap: 4px;
}

.luna-core-v2-hero-features strong {
  font-family: var(--serif);
  font-size: .98rem;
  font-weight: 600;
}

.luna-core-v2-hero-features span {
  color: #5c6872;
  font-size: .73rem;
  line-height: 1.5;
}

/* Kleine saisonale Details – bewusst sparsam */
.luna-core-v2-seasonal-detail {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.luna-core-v2-snowflake {
  position: absolute;
  top: -18px;
  left: var(--luna-season-x);
  width: var(--luna-season-size);
  height: var(--luna-season-size);
  border-radius: 50%;
  opacity: var(--luna-season-opacity);
  background: #fff;
  box-shadow: 0 0 6px rgb(255 255 255 / 70%);
  animation: luna-core-v2-snowfall var(--luna-season-duration) linear var(--luna-season-delay) infinite;
}

.luna-core-v2-petal,
.luna-core-v2-autumn-leaf {
  position: absolute;
  top: -24px;
  left: var(--luna-season-x);
  width: 11px;
  height: 7px;
  border-radius: 70% 20% 70% 25%;
  opacity: .58;
  background: linear-gradient(135deg, #fff5df, #dfbfa1);
  animation: luna-core-v2-petal-drift var(--luna-season-duration) ease-in-out var(--luna-season-delay) infinite;
}

.luna-core-v2-autumn-leaf {
  width: 13px;
  height: 8px;
  opacity: .48;
  background: linear-gradient(135deg, #d8a24a, #8f5d27);
}

.luna-core-v2-butterfly {
  position: absolute;
  z-index: 3;
  top: 36%;
  left: 69%;
  width: 23px;
  height: 18px;
  animation: luna-core-v2-butterfly-path 14s ease-in-out infinite;
}

.luna-core-v2-butterfly::before,
.luna-core-v2-butterfly::after {
  content: "";
  position: absolute;
  top: 1px;
  width: 12px;
  height: 15px;
  border: 1px solid rgb(116 76 28 / 50%);
  background: linear-gradient(135deg, rgb(248 210 113 / 86%), rgb(181 113 46 / 72%));
  box-shadow: 0 3px 8px rgb(74 47 17 / 16%);
}

.luna-core-v2-butterfly::before {
  right: 50%;
  border-radius: 85% 24% 68% 34%;
  transform-origin: right center;
  animation: luna-core-v2-butterfly-left 780ms ease-in-out infinite alternate;
}

.luna-core-v2-butterfly::after {
  left: 50%;
  border-radius: 24% 85% 34% 68%;
  transform-origin: left center;
  animation: luna-core-v2-butterfly-right 780ms ease-in-out infinite alternate;
}

/* Spektakulärer, aber ruhiger schwebender Terminbutton */
.luna-core-v2 .luna-core-v2-booking-button {
  position: fixed;
  z-index: 132;
  top: auto;
  right: 24px;
  bottom: 150px;
  width: 208px;
  height: 76px;
  transform: none;
  display: grid;
  grid-template-columns: 46px 1fr;
  place-content: center;
  align-items: center;
  justify-items: start;
  gap: 12px;
  padding: 9px 19px 9px 13px;
  border: 1px solid rgb(190 143 64 / 76%);
  border-radius: 999px;
  color: var(--luna-core-v2-midnight);
  background: linear-gradient(115deg, #fffaf0 0, #f7e9cc 62%, #ead09b 100%);
  box-shadow: 0 19px 46px rgb(56 38 17 / 22%), inset 0 0 0 1px rgb(255 255 255 / 72%);
  isolation: isolate;
  transition: width 420ms cubic-bezier(.22, 1, .36, 1), right 420ms cubic-bezier(.22, 1, .36, 1), bottom 420ms cubic-bezier(.22, 1, .36, 1), transform 240ms ease, box-shadow 240ms ease, z-index 0s;
}

.luna-core-v2 .luna-core-v2-booking-button::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -4px;
  padding: 2px;
  border-radius: inherit;
  background: linear-gradient(100deg, transparent 0 18%, #bd8537 35%, #fff0bd 48%, #bd8537 61%, transparent 78% 100%);
  background-size: 220% 100%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: luna-core-v2-booking-shimmer 5.5s ease-in-out infinite;
}

.luna-core-v2 .luna-core-v2-booking-button::after {
  content: "";
  position: absolute;
  top: -5px;
  right: 27px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #fff2c4;
  box-shadow: 0 0 7px #fff, 0 0 17px #e8b854;
  animation: luna-core-v2-flare 3.1s ease-in-out infinite;
}

.luna-core-v2 .luna-core-v2-booking-button:hover,
.luna-core-v2 .luna-core-v2-booking-button:focus-visible {
  transform: translateY(-4px) scale(1.018);
  border-color: #a8742d;
  box-shadow: 0 25px 55px rgb(56 38 17 / 28%), inset 0 0 0 1px rgb(255 255 255 / 82%);
  outline: none;
}

.luna-core-v2 .luna-core-v2-booking-button .luna-booking-button-icon {
  width: 44px;
  height: 44px;
  border: 1px solid rgb(134 93 34 / 24%);
  border-radius: 50%;
  background: rgb(255 255 255 / 42%);
}

.luna-core-v2 .luna-core-v2-booking-button .luna-booking-button-copy {
  gap: 5px;
  text-align: left;
}

.luna-core-v2 .luna-core-v2-booking-button .luna-booking-button-copy strong {
  color: var(--luna-core-v2-midnight);
  font-size: .73rem;
  letter-spacing: .095em;
  white-space: nowrap;
}

.luna-core-v2 .luna-core-v2-booking-button .luna-booking-button-copy small {
  color: #76582c;
  font-size: .59rem;
  letter-spacing: .08em;
  white-space: nowrap;
}

body.luna-menu-open .luna-core-v2-booking-button {
  z-index: 153;
  right: calc(var(--luna-core-v2-panel-right) + 32px);
  bottom: max(34px, calc(100dvh - 950px));
  width: calc(var(--luna-core-v2-panel-width) - 64px);
  max-width: 376px;
  height: 69px;
  grid-template-columns: 42px 1fr;
  padding-inline: 14px 22px;
}

/* Footer-Logo bleibt auf dem dunklen Footer klar lesbar */
.luna-core-v2-footer-brand {
  width: fit-content;
  max-width: 100%;
  padding: 8px 14px 8px 8px;
  border-radius: 18px;
  background: rgb(251 247 238 / 95%);
}

.luna-core-v2-footer-brand img {
  width: min(290px, 74vw);
}

.luna-core-v2 .tool-grid,
.luna-core-v2 .tool-card,
.luna-core-v2 .tool-card > div {
  min-width: 0;
}

.luna-core-v2 .tool-card {
  width: 100%;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.luna-core-v2 .tool-card h3,
.luna-core-v2 .tool-card p {
  overflow-wrap: anywhere;
}

.luna-core-v2 .section-intro,
.luna-core-v2 .section-intro > * {
  min-width: 0;
}

.luna-core-v2 .section-intro h2,
.luna-core-v2 .about-copy h2 {
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Animationen */
@keyframes luna-core-v2-ring-orbit {
  to { transform: rotate(360deg); }
}

@keyframes luna-core-v2-flare {
  0%, 100% { opacity: .52; transform: scale(.76); }
  50% { opacity: 1; transform: scale(1.16); }
}

@keyframes luna-core-v2-eclipse-breathe {
  0%, 100% { opacity: .72; filter: drop-shadow(0 0 3px rgb(239 193 100 / 28%)); }
  50% { opacity: 1; filter: drop-shadow(0 0 10px rgb(255 221 151 / 48%)); }
}

@keyframes luna-core-v2-booking-shimmer {
  0%, 55% { background-position: 140% 0; opacity: .48; }
  82%, 100% { background-position: -110% 0; opacity: .9; }
}

@keyframes luna-core-v2-snowfall {
  0% { transform: translate3d(0, -24px, 0); }
  45% { transform: translate3d(18px, 46vh, 0); }
  100% { transform: translate3d(-9px, 104vh, 0); }
}

@keyframes luna-core-v2-petal-drift {
  0% { transform: translate3d(0, -25px, 0) rotate(0); }
  45% { transform: translate3d(42px, 44vh, 0) rotate(160deg); }
  100% { transform: translate3d(-18px, 103vh, 0) rotate(340deg); }
}

@keyframes luna-core-v2-butterfly-path {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-5deg); }
  28% { transform: translate3d(28px, -22px, 0) rotate(8deg); }
  58% { transform: translate3d(-21px, 18px, 0) rotate(-9deg); }
  78% { transform: translate3d(14px, 31px, 0) rotate(5deg); }
}

@keyframes luna-core-v2-butterfly-left {
  from { transform: rotateY(8deg) rotate(-8deg); }
  to { transform: rotateY(58deg) rotate(6deg); }
}

@keyframes luna-core-v2-butterfly-right {
  from { transform: rotateY(-8deg) rotate(8deg); }
  to { transform: rotateY(-58deg) rotate(-6deg); }
}

@media (max-width: 1220px) {
  .luna-core-v2-quicknav {
    display: none;
  }

  .luna-core-v2 .luna-core-v2-menu-toggle {
    margin-left: auto;
  }
}

@media (max-width: 780px) {
  body.luna-core-v2 {
    --luna-core-v2-panel-right: 10px;
    --luna-core-v2-panel-width: calc(100vw - 20px);
  }

  .luna-core-v2 .luna-core-v2-header-inner {
    width: calc(100% - 24px);
    height: 80px;
    gap: 10px;
  }

  .luna-core-v2-brand img {
    width: clamp(186px, 54vw, 238px);
    max-height: 65px;
  }

  .luna-core-v2 .luna-core-v2-menu-toggle {
    min-width: 99px;
    height: 54px;
    gap: 8px;
  }

  .luna-core-v2 .menu-toggle .luna-core-v2-menu-label {
    font-size: .67rem;
  }

  .luna-core-v2 .menu-toggle .luna-core-v2-menu-orb {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
  }

  .luna-core-v2 .luna-core-v2-nav {
    top: 88px;
    height: calc(100dvh - 98px);
    border-radius: 26px;
    transform: translate3d(0, 25px, 0) scale(.985);
  }

  .luna-core-v2 .luna-core-v2-nav.open {
    transform: none;
  }

  .luna-core-v2-nav-inner {
    padding: 24px 26px 132px;
    -webkit-mask-image: linear-gradient(#000 0, #000 calc(100% - 116px), transparent calc(100% - 51px));
    mask-image: linear-gradient(#000 0, #000 calc(100% - 116px), transparent calc(100% - 51px));
  }

  .luna-core-v2-backdrop {
    inset: 80px 0 0;
  }

  .luna-core-v2 .luna-core-v2-hero {
    min-height: 920px;
  }

  .luna-core-v2 .luna-core-v2-hero::after {
    background:
      linear-gradient(180deg, rgb(251 247 238 / 98%) 0, rgb(251 247 238 / 90%) 35%, rgb(251 247 238 / 30%) 60%, rgb(247 239 227 / 91%) 100%),
      linear-gradient(90deg, rgb(251 247 238 / 66%), transparent 78%);
  }

  .luna-core-v2-season-image {
    object-position: 66% center;
  }

  .luna-core-v2 .luna-core-v2-hero-inner {
    width: calc(100% - 28px);
    padding: 56px 0 284px;
    justify-content: flex-start;
  }

  .luna-core-v2 .luna-core-v2-hero-copy {
    max-width: 530px;
  }

  .luna-core-v2 .luna-core-v2-hero-copy h1 {
    font-size: clamp(3.55rem, 14vw, 5.8rem);
  }

  .luna-core-v2 .luna-core-v2-hero-copy .hero-text {
    max-width: 390px;
  }

  .luna-core-v2-hero-features {
    bottom: 16px;
    grid-template-columns: 1fr;
    border-radius: 22px;
  }

  .luna-core-v2-hero-features article {
    min-height: 78px;
    grid-template-columns: 40px 1fr;
    gap: 12px;
    padding: 12px 17px;
  }

  .luna-core-v2-hero-features article + article {
    border-left: 0;
    border-top: 1px solid rgb(181 143 80 / 18%);
  }

  .luna-core-v2-hero-features svg {
    width: 34px;
    height: 34px;
  }

  .luna-core-v2-butterfly {
    left: 74%;
    top: 48%;
  }

  .luna-core-v2 .luna-core-v2-booking-button {
    right: 14px;
    bottom: 14px;
    width: 190px;
    height: 67px;
    grid-template-columns: 40px 1fr;
    padding: 8px 15px 8px 11px;
  }

  .luna-core-v2 .luna-core-v2-booking-button .luna-booking-button-icon {
    width: 39px;
    height: 39px;
  }

  body.luna-menu-open .luna-core-v2-booking-button {
    right: 28px;
    bottom: 29px;
    width: calc(100vw - 56px);
    max-width: none;
    height: 66px;
  }
}

@media (max-width: 520px) {
  .luna-core-v2 .luna-core-v2-header-inner {
    width: calc(100% - 18px);
  }

  .luna-core-v2-brand img {
    width: clamp(168px, 49vw, 198px);
  }

  .luna-core-v2 .luna-core-v2-menu-toggle {
    min-width: 94px;
  }

  .luna-core-v2-nav-inner {
    padding: 20px 18px 130px;
  }

  .luna-core-v2-nav-heading {
    padding-inline: 8px;
  }

  .luna-core-v2-menu-group-toggle,
  .luna-core-v2-menu-list > a {
    grid-template-columns: 44px 1fr 20px;
    min-height: 56px;
    gap: 10px;
    padding-inline: 4px;
    font-size: 1.12rem;
  }

  .luna-core-v2-menu-icon {
    width: 40px;
    height: 40px;
  }

  .luna-core-v2-menu-icon svg {
    width: 22px;
    height: 22px;
  }

  .luna-core-v2-submenu {
    margin-left: 54px;
    padding-left: 14px;
  }

  .luna-core-v2 .luna-core-v2-submenu a {
    font-size: .94rem;
  }

  .luna-core-v2 .luna-core-v2-hero {
    min-height: 900px;
  }

  .luna-core-v2 .luna-core-v2-hero-inner {
    padding-top: 48px;
  }

  .luna-core-v2 .luna-core-v2-hero-copy h1 {
    font-size: clamp(3.25rem, 16.4vw, 5rem);
  }

  .luna-core-v2 .luna-core-v2-hero-copy .hero-text {
    font-size: 1rem;
  }

  .luna-core-v2 .luna-core-v2-hero-copy .hero-actions {
    gap: 10px;
  }

  .luna-core-v2 .luna-core-v2-hero-copy .button {
    width: auto;
    min-width: 0;
    min-height: 48px;
    padding-inline: 17px;
    font-size: .78rem;
  }

  .luna-core-v2 .tool-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .luna-core-v2 .section-intro h2,
  .luna-core-v2 .about-copy h2 {
    font-size: clamp(2.25rem, 11.4vw, 3rem);
  }
}

/* Desktop: schmale Mond-Navigation rechts, wie in der freigegebenen Ansicht. */
@media (min-width: 781px) {
  .luna-core-v2 .luna-core-v2-nav {
    top: 108px;
    right: var(--luna-core-v2-panel-right);
    bottom: 16px;
    width: min(420px, calc(100vw - 32px));
    height: auto;
    border-radius: 24px;
  }

  .luna-core-v2-nav::before {
    width: 640px;
    height: 640px;
    top: -90px;
    right: -300px;
  }

  .luna-core-v2-nav-glow {
    top: 45%;
    right: auto;
    left: 12%;
    width: 8px;
    height: 8px;
  }

  .luna-core-v2-nav-inner {
    padding: 68px 34px 154px;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .luna-core-v2-nav-heading {
    display: none;
  }

  .luna-core-v2-menu-group {
    padding: 0;
    border-bottom: 1px solid rgb(238 221 186 / 16%);
  }

  .luna-core-v2-menu-group-toggle,
  .luna-core-v2-menu-list > a {
    grid-template-columns: 34px 1fr 20px;
    min-height: 49px;
    gap: 13px;
    padding: 4px 3px;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: .98rem;
    font-weight: 400;
  }

  .luna-core-v2-menu-icon {
    width: 31px;
    height: 31px;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .luna-core-v2-menu-icon svg {
    width: 24px;
    height: 24px;
    stroke-width: 1.55;
  }

  .luna-core-v2-submenu {
    margin-left: 46px;
  }

  .luna-core-v2-menu-list > .luna-core-v2-connect-item,
  .luna-core-v2-menu-list > .luna-core-v2-remember-item {
    display: none;
  }

  .luna-core-v2-menu-list > .luna-core-v2-die-eiche-item {
    display: grid;
  }

  .luna-core-v2-menu-promise {
    position: absolute;
    z-index: 3;
    right: 34px;
    bottom: 28px;
    left: 34px;
    margin: 0;
    color: rgb(249 245 235 / 80%);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: .76rem;
    line-height: 1.55;
    text-align: left;
    pointer-events: none;
  }

  .luna-core-v2-menu-promise-mobile {
    display: none;
  }

  .luna-core-v2-menu-promise-desktop {
    display: block;
  }

  body.luna-menu-open .luna-core-v2-menu-label {
    display: none;
  }

  body.luna-menu-open .luna-core-v2-menu-toggle {
    position: fixed;
    z-index: 155;
    top: 126px;
    right: calc(var(--luna-core-v2-panel-right) + 18px);
    min-width: 48px;
    width: 48px;
    height: 48px;
    gap: 0;
  }

  body.luna-menu-open .luna-core-v2-menu-orb {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  body.luna-menu-open .luna-core-v2-menu-orb::after {
    display: none;
  }

  .luna-core-v2-backdrop {
    background: transparent;
    backdrop-filter: none;
  }

  body.luna-menu-open .luna-core-v2-booking-button {
    z-index: 154;
    right: calc(var(--luna-core-v2-panel-right) + 32px);
    bottom: 112px;
    width: min(356px, calc(100vw - 64px));
    max-width: calc(420px - 64px);
    height: 50px;
    grid-template-columns: 30px auto;
    justify-content: center;
    justify-items: center;
    gap: 12px;
    padding: 6px 18px;
    border-color: #c89a46;
    color: #e4bb68;
    background: rgb(5 24 39 / 48%);
    box-shadow: none;
  }

  body.luna-menu-open .luna-core-v2-booking-button::before,
  body.luna-menu-open .luna-core-v2-booking-button::after {
    display: none;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-icon {
    width: 29px;
    height: 29px;
    border: 0;
    background: transparent;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy {
    text-align: center;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy strong {
    color: #e4bb68;
    font-size: .73rem;
    letter-spacing: .08em;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy small {
    display: none;
  }
}

/* Handy-Menü nach der freigegebenen Referenz: eigenständig, ruhig und ohne Saison-Elemente. */
@media (max-width: 780px) {
  .luna-core-v2 .luna-core-v2-header-inner {
    height: 94px;
  }

  .luna-core-v2-brand-desktop,
  .luna-core-v2-label-desktop {
    display: none;
  }

  .luna-core-v2-brand-mobile,
  .luna-core-v2-label-mobile {
    display: block;
  }

  .luna-core-v2-brand .luna-core-v2-brand-mobile {
    width: clamp(174px, 49vw, 208px);
    max-height: 68px;
  }

  body.luna-menu-open .luna-core-v2-menu-label {
    display: none;
  }

  body.luna-menu-open .luna-core-v2-menu-toggle {
    min-width: 50px;
    gap: 0;
  }

  body.luna-menu-open .luna-core-v2-menu-orb::before,
  body.luna-menu-open .luna-core-v2-menu-orb::after {
    display: none;
  }

  body.luna-menu-open .luna-core-v2-menu-ring {
    opacity: 0;
  }

  body.luna-menu-open .luna-core-v2-seasonal-detail {
    display: none !important;
  }

  .luna-core-v2 .luna-core-v2-nav {
    top: 94px;
    right: 10px;
    bottom: 8px;
    left: 10px;
    width: auto;
    height: auto;
    border-radius: 29px;
  }

  .luna-core-v2-backdrop {
    inset: 94px 0 0;
  }

  .luna-core-v2-nav::before {
    width: 520px;
    height: 520px;
    top: 75px;
    right: auto;
    left: -110px;
    clip-path: inset(0 0 0 50%);
  }

  .luna-core-v2-nav-glow {
    top: 205px;
    right: 38px;
    left: auto;
    width: 7px;
    height: 7px;
  }

  .luna-core-v2-nav-forest {
    display: none;
  }

  .luna-core-v2-nav-inner {
    padding: 31px 24px 158px;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .luna-core-v2-nav-inner::before {
    content: "";
    display: block;
    height: 1px;
    margin: 1px 12px 12px;
    background: linear-gradient(90deg, transparent, rgb(238 221 186 / 21%) 14%, rgb(238 221 186 / 21%) 86%, transparent);
  }

  .luna-core-v2-nav-heading {
    display: none;
  }

  .luna-core-v2-menu-group {
    margin: 0 0 4px;
    padding: 7px 10px 10px;
    border: 1px solid rgb(232 199 132 / 18%);
    border-radius: 29px;
  }

  .luna-core-v2-menu-group-toggle,
  .luna-core-v2-menu-list > a {
    grid-template-columns: 52px 1fr 22px;
    min-height: 58px;
    gap: 12px;
    padding: 4px 5px;
    font-size: 1.34rem;
  }

  .luna-core-v2-menu-icon {
    width: 48px;
    height: 48px;
  }

  .luna-core-v2-menu-icon svg {
    width: 26px;
    height: 26px;
  }

  .luna-core-v2-submenu {
    max-height: 224px;
    margin: 0 2px 2px 62px;
    padding: 0 2px 2px 10px;
    border-left: 0;
  }

  .luna-core-v2 .luna-core-v2-submenu a {
    min-height: 40px;
    padding: 3px 5px;
    font-size: 1.05rem;
  }

  .luna-core-v2-menu-list > a {
    position: relative;
    border-bottom: 0;
  }

  .luna-core-v2-menu-list > a::before {
    content: "";
    position: absolute;
    right: 4px;
    bottom: 0;
    left: 64px;
    height: 1px;
    background: rgb(238 221 186 / 16%);
  }

  .luna-core-v2-menu-list > .luna-core-v2-connect-item,
  .luna-core-v2-menu-list > .luna-core-v2-die-eiche-item {
    display: none;
  }

  .luna-core-v2-menu-list > .luna-core-v2-remember-item {
    display: grid;
  }

  .luna-core-v2-menu-promise {
    position: fixed;
    z-index: 154;
    right: 35px;
    bottom: 22px;
    left: 35px;
    margin: 0;
    font-size: .94rem;
    pointer-events: none;
  }

  .luna-core-v2-menu-promise-mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  .luna-core-v2-menu-promise-desktop {
    display: none;
  }

  body.luna-menu-open .luna-core-v2-booking-button {
    z-index: 154;
    right: 28px;
    bottom: 70px;
    width: calc(100vw - 56px);
    max-width: none;
    height: 68px;
    grid-template-columns: 42px auto;
    justify-content: center;
    justify-items: center;
    gap: 14px;
    padding: 8px 25px;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy {
    text-align: center;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-icon {
    border: 0;
    color: #0b2c48;
    background: transparent;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy strong {
    font-size: .8rem;
    letter-spacing: .17em;
    text-transform: uppercase;
  }

  body.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy small {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .luna-core-v2-nav::before,
  .luna-core-v2-menu-orb::before,
  .luna-core-v2-menu-orb::after,
  .luna-core-v2-nav-glow,
  .luna-core-v2-booking-button::before,
  .luna-core-v2-booking-button::after,
  .luna-core-v2-seasonal-detail > * {
    animation: none !important;
  }

  .luna-core-v2-seasonal-detail {
    display: none;
  }

  .luna-core-v2-season-image {
    transition: none;
    transform: none;
  }
}

/* LUNA Mondmenü v3: vollständig geschichtete HTML/CSS/SVG-Komponente. */
body.luna-core-v2 {
  --luna-menu-v3-top: 108px;
  --luna-menu-v3-right: var(--luna-core-v2-panel-right);
  --luna-menu-v3-width: min(420px, calc(100vw - 32px));
  --luna-menu-v3-closed-height: min(760px, calc(100dvh - 124px));
  --luna-menu-v3-open-height: min(940px, calc(100dvh - 124px));
  --luna-menu-v3-height: var(--luna-menu-v3-closed-height);
}

body.luna-core-v2.luna-submenu-expanded {
  --luna-menu-v3-height: var(--luna-menu-v3-open-height);
}

.luna-core-v2 .luna-core-v2-nav {
  top: var(--luna-menu-v3-top);
  right: var(--luna-menu-v3-right);
  bottom: auto;
  left: auto;
  width: var(--luna-menu-v3-width);
  height: var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height));
  max-height: calc(100dvh - var(--luna-menu-v3-top) - 16px);
  overflow: hidden;
  border: 1px solid rgb(231 194 119 / 18%);
  border-radius: 24px;
  background:
    radial-gradient(circle at 2% 48%, rgb(38 65 86 / 88%) 0, rgb(13 43 69 / 76%) 23%, transparent 49%),
    linear-gradient(145deg, #0b2a47 0, #031a33 43%, #001227 76%, #000d20 100%);
  box-shadow: 0 22px 52px rgb(0 12 27 / 28%);
  transform: translate3d(18px, -4px, 0) scale(.986);
  transform-origin: top right;
  transition:
    height 460ms cubic-bezier(.22, 1, .36, 1),
    opacity 280ms ease,
    transform 430ms cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear 430ms;
}

.luna-core-v2 .luna-core-v2-nav.open {
  transform: none;
  transition-delay: 0s;
}

.luna-core-v2 .luna-core-v2-nav::before,
.luna-core-v2 .luna-core-v2-nav::after {
  display: none;
}

.luna-core-v2-nav-stars,
.luna-core-v2-nav-eclipse {
  position: absolute;
  display: block;
  pointer-events: none;
  user-select: none;
}

.luna-core-v2-nav-stars {
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: auto;
  opacity: .78;
  object-fit: fill;
  animation: luna-menu-v3-stars 7.5s ease-in-out infinite alternate;
}

.luna-core-v2-nav-eclipse {
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: 50% 48%;
  transition: transform 460ms cubic-bezier(.22, 1, .36, 1), opacity 300ms ease;
}

.luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-eclipse {
  transform: translate3d(40px, 2px, 0) scale(1);
}

.luna-core-v2 .luna-core-v2-nav-glow {
  display: none;
}

.luna-core-v2 .luna-core-v2-nav-forest {
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  height: 140px;
  background: url("luna-menu-forest.svg") bottom center / 100% 100% no-repeat;
  pointer-events: none;
}

.luna-core-v2 .luna-core-v2-nav-inner {
  position: relative;
  z-index: 3;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 128px 28px 205px 132px;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgb(219 177 98 / 42%) transparent;
  -webkit-mask-image: none;
  mask-image: none;
}

.luna-core-v2 .luna-core-v2-nav-inner::before,
.luna-core-v2 .luna-core-v2-nav-heading {
  display: none;
}

.luna-core-v2 .luna-core-v2-menu-group {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.luna-core-v2 .luna-core-v2-menu-group-toggle,
.luna-core-v2 .luna-core-v2-menu-list > a {
  position: relative;
  width: 100%;
  min-height: 61px;
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 17px;
  padding: 5px 0;
  border: 0;
  border-bottom: 1px solid rgb(157 177 198 / 24%);
  color: #faf8f2;
  background: transparent;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
}

.luna-core-v2 .luna-core-v2-menu-group-toggle {
  cursor: pointer;
}

.luna-core-v2 .luna-core-v2-menu-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0;
  color: #e9b965;
  background: transparent;
  transform: none;
}

.luna-core-v2 .luna-core-v2-menu-icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.luna-core-v2 .luna-core-v2-menu-group-toggle:hover,
.luna-core-v2 .luna-core-v2-menu-group-toggle:focus-visible,
.luna-core-v2 .luna-core-v2-menu-list > a:hover,
.luna-core-v2 .luna-core-v2-menu-list > a:focus-visible {
  color: #f4d18a;
  outline: none;
}

.luna-core-v2 .luna-core-v2-menu-group-toggle:hover .luna-core-v2-menu-icon,
.luna-core-v2 .luna-core-v2-menu-list > a:hover .luna-core-v2-menu-icon {
  border: 0;
  background: transparent;
  transform: none;
}

.luna-core-v2 .luna-core-v2-menu-chevron {
  width: 18px;
  height: 18px;
  color: #fffdf7;
  stroke: currentColor;
  stroke-width: 1.8;
  transition: transform 360ms cubic-bezier(.22, 1, .36, 1);
}

.luna-core-v2 .luna-core-v2-menu-group-toggle[aria-expanded="false"] .luna-core-v2-menu-chevron {
  transform: rotate(180deg);
}

.luna-core-v2 .luna-core-v2-menu-list b {
  display: none;
}

.luna-core-v2 .luna-core-v2-submenu {
  max-height: 0;
  margin: 0 0 0 62px;
  padding: 0;
  display: grid;
  overflow: hidden;
  border: 0;
  opacity: 0;
  transition:
    max-height 460ms cubic-bezier(.22, 1, .36, 1),
    opacity 260ms ease,
    padding 460ms cubic-bezier(.22, 1, .36, 1);
}

.luna-core-v2 .luna-core-v2-menu-group-toggle[aria-expanded="true"] + .luna-core-v2-submenu {
  max-height: var(--luna-menu-v3-submenu-height, 224px);
  padding: 7px 0 10px;
  opacity: 1;
}

.luna-core-v2 .luna-core-v2-submenu a {
  min-height: 39px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid rgb(157 177 198 / 16%);
  color: rgb(250 248 242 / 88%);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: .83rem;
  line-height: 1.25;
}

.luna-core-v2 .luna-core-v2-submenu b {
  color: #e9b965;
  font-family: Arial, sans-serif;
  font-size: 1.15rem;
  font-weight: 300;
}

.luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-connect-item,
.luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-remember-item {
  display: none;
}

.luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-die-eiche-item {
  display: grid;
}

.luna-core-v2 .luna-core-v2-menu-promise {
  position: absolute;
  z-index: 4;
  right: 150px;
  bottom: 42px;
  left: 30px;
  margin: 0;
  color: rgb(250 248 242 / 92%);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.55;
  text-align: left;
  pointer-events: none;
}

.luna-core-v2 .luna-core-v2-menu-promise-mobile {
  display: none;
}

.luna-core-v2 .luna-core-v2-menu-promise-desktop {
  display: block;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-menu-toggle {
  position: fixed;
  z-index: 155;
  top: calc(var(--luna-menu-v3-top) + 20px);
  right: calc(var(--luna-menu-v3-right) + 18px);
  width: 50px;
  min-width: 50px;
  height: 50px;
  gap: 0;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-label {
  display: none;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-orb {
  width: 48px;
  height: 48px;
  flex-basis: 48px;
  background: #03182e;
  box-shadow: 0 9px 24px rgb(0 10 23 / 22%), inset 0 0 0 1px rgb(238 188 93 / 82%);
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-orb::before {
  inset: -5px;
  display: block;
  padding: 1px;
  opacity: .9;
  background: #dca64e;
  animation: luna-menu-v3-ring 4.8s ease-in-out infinite;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-orb::after {
  display: none;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-ring {
  opacity: 1;
  stroke: #efbd61;
  stroke-width: 1.2;
}

body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-close path {
  stroke: #fffdf7;
  stroke-width: 2.15;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button {
  z-index: 154;
  top: calc(var(--luna-menu-v3-top) + var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height)) - 238px);
  right: calc(var(--luna-menu-v3-right) + 44px);
  bottom: auto;
  width: 220px;
  max-width: calc(var(--luna-menu-v3-width) - 72px);
  height: 61px;
  grid-template-columns: 34px auto;
  justify-content: center;
  justify-items: center;
  gap: 12px;
  padding: 7px 18px;
  border: 1.5px solid #e4af55;
  border-radius: 999px;
  color: #e9b965;
  background: rgb(0 18 39 / 78%);
  box-shadow: none;
  transition:
    top 460ms cubic-bezier(.22, 1, .36, 1),
    transform 220ms ease,
    border-color 220ms ease;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button::before,
body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button::after {
  display: none;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-icon {
  width: 32px;
  height: 32px;
  border: 0;
  color: #e9b965;
  background: transparent;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy {
  text-align: center;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy strong {
  color: #e9b965;
  font-size: .94rem;
  font-weight: 400;
  letter-spacing: .01em;
  text-transform: none;
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-copy small {
  display: none;
}

.luna-core-v2 .luna-core-v2-backdrop {
  background: transparent;
  backdrop-filter: none;
}

@keyframes luna-menu-v3-stars {
  from { opacity: .66; }
  to { opacity: .82; }
}

@keyframes luna-menu-v3-ring {
  0%, 100% { opacity: .72; filter: drop-shadow(0 0 2px rgb(235 181 82 / 24%)); }
  50% { opacity: .98; filter: drop-shadow(0 0 7px rgb(245 201 115 / 48%)); }
}

@media (min-width: 781px) and (max-height: 920px) {
  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-inner {
    padding-top: 46px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-list > a {
    min-height: 48px;
    font-size: .91rem;
  }

  .luna-core-v2 .luna-core-v2-menu-group-toggle[aria-expanded="true"] + .luna-core-v2-submenu {
    max-height: var(--luna-menu-v3-submenu-height, 190px);
    padding-block: 4px 7px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-submenu a {
    min-height: 35px;
    font-size: .77rem;
  }

  body.luna-core-v2.luna-menu-open.luna-submenu-expanded .luna-core-v2-booking-button {
    top: calc(var(--luna-menu-v3-top) + var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height)) - 205px);
    height: 52px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-forest {
    height: 120px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-promise {
    font-size: .76rem;
  }
}

@media (min-width: 781px) and (max-height: 800px) {
  .luna-core-v2 .luna-core-v2-nav-inner {
    padding-top: 48px;
  }

  .luna-core-v2 .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-menu-list > a {
    min-height: 48px;
    font-size: .9rem;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-inner {
    padding-top: 8px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-list > a {
    min-height: 40px;
    font-size: .8rem;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-submenu a {
    min-height: 28px;
    font-size: .7rem;
  }

  body.luna-core-v2.luna-menu-open.luna-submenu-expanded .luna-core-v2-booking-button {
    top: calc(var(--luna-menu-v3-top) + var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height)) - 178px);
  }
}

@media (max-width: 780px) {
  body.luna-core-v2 {
    --luna-menu-v3-top: 94px;
    --luna-menu-v3-right: 10px;
    --luna-menu-v3-width: min(420px, calc(100vw - 20px));
    --luna-menu-v3-closed-height: min(680px, calc(100dvh - 118px));
    --luna-menu-v3-open-height: calc(100dvh - 102px);
  }

  .luna-core-v2 .luna-core-v2-nav {
    right: 10px;
    bottom: auto;
    left: auto;
    width: var(--luna-menu-v3-width);
    max-height: calc(100dvh - 102px);
    border-radius: 24px;
  }

  .luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-eclipse {
    transform: translate3d(40px, 2px, 0) scale(1);
  }

  .luna-core-v2 .luna-core-v2-nav-forest {
    display: block;
    height: clamp(122px, 31.9vw, 137px);
  }

  .luna-core-v2 .luna-core-v2-nav-inner {
    padding: clamp(113px, calc(31.2vw - 6px), 128px) 22px 188px clamp(92px, 31vw, 128px);
    transition: padding-top 460ms cubic-bezier(.22, 1, .36, 1);
  }

  .luna-core-v2 .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-menu-list > a {
    min-height: clamp(53px, calc(14.5vw - 3px), 59px);
    grid-template-columns: 38px minmax(0, 1fr) 16px;
    gap: 12px;
    padding-block: 3px;
    font-size: clamp(.95rem, 4.2vw, 1.1rem);
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-nav-inner {
    padding-top: 46px;
  }

  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-nav.luna-submenu-open .luna-core-v2-menu-list > a {
    min-height: 48px;
    font-size: clamp(.88rem, 3.85vw, 1rem);
  }

  .luna-core-v2 .luna-core-v2-menu-icon {
    width: 32px;
    height: 32px;
  }

  .luna-core-v2 .luna-core-v2-menu-icon svg {
    width: 28px;
    height: 28px;
  }

  .luna-core-v2 .luna-core-v2-submenu {
    margin-left: 50px;
  }

  .luna-core-v2 .luna-core-v2-menu-group-toggle[aria-expanded="true"] + .luna-core-v2-submenu {
    max-height: var(--luna-menu-v3-submenu-height, 218px);
    padding-block: 6px 8px;
  }

  .luna-core-v2 .luna-core-v2-submenu a {
    min-height: 40px;
    font-size: .78rem;
  }

  .luna-core-v2 .luna-core-v2-label-desktop {
    display: none;
  }

  .luna-core-v2 .luna-core-v2-label-mobile {
    display: block;
  }

  .luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-connect-item,
  .luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-remember-item {
    display: none;
  }

  .luna-core-v2 .luna-core-v2-menu-list > .luna-core-v2-die-eiche-item {
    display: grid;
  }

  .luna-core-v2 .luna-core-v2-menu-promise {
    right: 118px;
    bottom: 42px;
    left: 29px;
    font-size: .85rem;
    line-height: 1.4;
  }

  .luna-core-v2 .luna-core-v2-menu-promise-mobile {
    display: none;
  }

  .luna-core-v2 .luna-core-v2-menu-promise-desktop {
    display: block;
  }

  body.luna-core-v2.luna-menu-open .luna-core-v2-menu-toggle {
    top: calc(var(--luna-menu-v3-top) + 17px);
    right: 27px;
  }

  body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-orb::before {
    display: block;
  }

  body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-ring {
    opacity: 1;
  }

  body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button {
    top: calc(var(--luna-menu-v3-top) + var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height)) - clamp(208px, calc(56.2vw - 11px), 231px));
    right: clamp(49px, 12.5vw, 54px);
    bottom: auto;
    width: min(220px, 49.5vw);
    max-width: none;
    height: min(61px, 14.2vw);
  }

  body.luna-core-v2.luna-menu-open.luna-submenu-expanded .luna-core-v2-booking-button {
    top: calc(var(--luna-menu-v3-top) + var(--luna-menu-v3-measured-height, var(--luna-menu-v3-height)) - 184px);
  }
}

@media (max-width: 360px) {
  .luna-core-v2 .luna-core-v2-nav-inner {
    padding-right: 16px;
    padding-left: 78px;
  }

  .luna-core-v2 .luna-core-v2-menu-group-toggle,
  .luna-core-v2 .luna-core-v2-menu-list > a {
    grid-template-columns: 34px minmax(0, 1fr) 14px;
    gap: 9px;
    font-size: .84rem;
  }

  .luna-core-v2 .luna-core-v2-submenu {
    margin-left: 43px;
  }
}

body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button .luna-booking-button-icon svg {
  width: 28px;
  height: 28px;
}

@media (prefers-reduced-motion: reduce) {
  .luna-core-v2 .luna-core-v2-nav,
  .luna-core-v2 .luna-core-v2-nav-eclipse,
  body.luna-core-v2.luna-menu-open .luna-core-v2-booking-button,
  .luna-core-v2 .luna-core-v2-submenu,
  .luna-core-v2 .luna-core-v2-menu-chevron {
    transition-duration: .01ms !important;
  }

  .luna-core-v2 .luna-core-v2-nav-stars,
  body.luna-core-v2.luna-menu-open .menu-toggle .luna-core-v2-menu-orb::before {
    animation: none !important;
  }
}
