:root {
  --bg: #fffbf0;
  --card: rgba(255,255,255,0.92);
  --card-strong: rgba(255,255,255,0.98);
  --text: #1a1a2e;
  --muted: #6b6b8a;
  --primary: #ff5c00;
  --yellow: #ffd000;
  --pink: #ff3d8a;
  --blue: #0099e6;
  --green: #00c472;
  --purple: #7c3aed;
  --teal: #00bfa5;
  --danger: #ef4444;
  --line: rgba(255, 92, 0, 0.12);
  --shadow: 0 8px 32px rgba(255, 92, 0, 0.12);
  --shadow-card: 0 6px 0 rgba(0,0,0,0.10);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --max: 1240px;
}

.wizard-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(-1deg); }
  50% { transform: translateY(-12px) rotate(1deg); }
}
@keyframes wiggle {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}
@keyframes bounce-in {
  0% { transform: scale(0.85) translateY(20px); opacity: 0; }
  60% { transform: scale(1.04) translateY(-4px); }
  100% { transform: scale(1) translateY(0); opacity: 1; }
}
@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes star-pop {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.3); }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: 'Nunito', system-ui, sans-serif;
  color: var(--text);
  background-color: #fffbf0;
  background-image:
    radial-gradient(circle at 8% 12%, rgba(255,208,0,0.22) 0%, transparent 28%),
    radial-gradient(circle at 92% 8%, rgba(255,61,138,0.16) 0%, transparent 26%),
    radial-gradient(circle at 50% 95%, rgba(0,153,230,0.14) 0%, transparent 30%),
    radial-gradient(circle at 15% 80%, rgba(0,196,114,0.12) 0%, transparent 24%),
    radial-gradient(circle at 85% 60%, rgba(124,58,237,0.10) 0%, transparent 22%);
}

/* Decorative floating shapes in background */
body::before {
  content: "🌟 🎈 ⭐ 🎉 🌈 🎊 ✨ 🎁";
  position: fixed;
  top: 0; left: 0; right: 0;
  font-size: 1.4rem;
  letter-spacing: 8vw;
  opacity: 0.06;
  pointer-events: none;
  z-index: 0;
  white-space: nowrap;
  overflow: hidden;
  line-height: 3;
  padding: 20px;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

.container {
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.section { padding: 40px 0; }

.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

/* Eyebrow pill */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--yellow);
  color: #1a1a2e;
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 3px 0 rgba(0,0,0,0.12);
}

/* Typography */
h1, h2, h3, h4, p { margin: 0; }
h1 {
  font-family: 'Baloo 2', sans-serif;
  font-size: clamp(2.4rem, 4.5vw, 5rem);
  line-height: 1.0;
  font-weight: 900;
  letter-spacing: -0.02em;
}
h2 {
  font-family: 'Baloo 2', sans-serif;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.02em;
}
h3 {
  font-family: 'Baloo 2', sans-serif;
  font-size: 1.2rem;
  line-height: 1.2;
  font-weight: 800;
}
p {
  line-height: 1.65;
  color: var(--muted);
  font-weight: 500;
}

/* ── HEADER ── */
.header-wrap {
  position: sticky;
  top: 0;
  z-index: 80;
  backdrop-filter: blur(20px);
  background: rgba(255, 251, 240, 0.88);
  border-bottom: 3px solid var(--yellow);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0;
}

.brand {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.brand-badge {
  width: 100px;
  height: 100px;
  border-radius: 20px;
  background: #0e986b;
  border: 3px solid var(--yellow);
  display: grid;
  place-items: center;
  box-shadow: 0 4px 0 rgba(0,0,0,0.10);
  flex: 0 0 auto;
  overflow: hidden;
  padding: 0px;
  transition: transform 0.2s ease;
}
  
.brand-badge:hover {
  transform: scale(1.05);
}

.brand-badge img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.brand-text strong {
  display: block;
  font-family: 'Baloo 2', sans-serif;
  font-size: 1.1rem;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.brand-text span {
  display: block;
  color: var(--muted);
  opacity: 0.8;
  font-size: 0.9rem;
  font-weight: 600;
}

.nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.nav a,
.btn,
.btn-secondary,
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 0 18px;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  font-weight: 800;
  font-size: 0.95rem;
}

.nav a { color: var(--muted); border-color: transparent; }
.nav a:hover { color: var(--text); background: rgba(255,208,0,0.2); transform: translateY(-1px); }

.mobile-menu-toggle {
  display: none;
}

.mobile-menu-bars {
  display: inline-grid;
  gap: 3px;
}

.mobile-menu-bars span {
  display: block;
  width: 16px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.btn {
  background: var(--primary);
  color: white !important;
  border-color: rgba(0,0,0,0.08);
  box-shadow: 0 5px 0 #c44000;
  font-family: 'Baloo 2', sans-serif;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 7px 0 #c44000; }
.btn:active { transform: translateY(2px); box-shadow: 0 2px 0 #c44000; }

.btn-secondary {
  background: white;
  border-color: var(--primary);
  color: var(--primary);
  box-shadow: 0 4px 0 rgba(255,92,0,0.25);
}
.btn-secondary:hover { transform: translateY(-2px); box-shadow: 0 6px 0 rgba(255,92,0,0.25); }
.btn-secondary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn-ghost {
  background: transparent;
  color: var(--text);
  border-color: rgba(0,0,0,0.15);
}
.btn-ghost:hover { background: rgba(255,208,0,0.15); transform: translateY(-1px); }

/* ── CARDS (shared) ── */
.hero-copy,
.hero-media,
.trust-card,
.calc-card,
.legal-card,
.booking-card,
.faq-item,
.guestbook-card,
.contact-card,
.calendar-card,
.card {
  background: var(--card);
  border: 2.5px solid rgba(0,0,0,0.07);
  box-shadow: var(--shadow-card);
}

/* ── HERO ── */
.hero { padding: 40px 0 20px; }

.hero-grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 24px;
  align-items: stretch;
}

.hero-copy {
  padding: 36px;
  border-radius: var(--radius-xl);
  position: relative;
  overflow: hidden;
}

/* Confetti dots decoration */
.hero-copy::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, var(--yellow) 2px, transparent 2px),
    radial-gradient(circle, var(--pink) 2px, transparent 2px),
    radial-gradient(circle, var(--blue) 2px, transparent 2px);
  background-size: 40px 40px, 60px 60px, 50px 50px;
  background-position: 0 0, 20px 20px, 35px 10px;
  opacity: 0.07;
  pointer-events: none;
}

.hero-copy h1 span { color: var(--primary); }

.hero-copy .lead {
  margin-top: 16px;
  font-size: 1.12rem;
  max-width: 58ch;
  font-weight: 600;
}

.hero-actions {
  margin-top: 24px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.hero-points {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.hero-point {
  background: white;
  border: 2px solid rgba(0,0,0,0.07);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 3px 0 rgba(0,0,0,0.07);
  transition: transform 0.2s;
}
.hero-point:hover { transform: translateY(-3px); }
.hero-point:nth-child(1) { border-top: 3px solid var(--yellow); }
.hero-point:nth-child(2) { border-top: 3px solid var(--pink); }
.hero-point:nth-child(3) { border-top: 3px solid var(--blue); }

.hero-point strong {
  display: block;
  font-weight: 800;
  font-size: 0.95rem;
  margin-bottom: 3px;
  font-family: 'Baloo 2', sans-serif;
}

.hero-point span { color: var(--muted); font-size: 0.88rem; font-weight: 600; }

.hero-media {
  border-radius: var(--radius-xl);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.hero-featured {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  min-height: 400px;
  background: linear-gradient(145deg, #fff4e0 0%, #ffe8f0 100%);
  border: 2.5px solid rgba(0,0,0,0.07);
}

.hero-featured img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-badge {
  position: absolute;
  left: 14px;
  bottom: 14px;
  background: white;
  padding: 12px 16px;
  border-radius: 18px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  max-width: 78%;
  border: 2px solid var(--yellow);
}

.hero-badge strong { display: block; font-family: 'Baloo 2', sans-serif; font-size: 1rem; }
.hero-badge span { color: var(--muted); font-size: 0.9rem; font-weight: 600; }

.thumb-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.thumb {
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 1 / 0.78;
  background: linear-gradient(145deg, #fff4e0, #ffe8f0);
  border: 2px solid rgba(0,0,0,0.07);
  position: relative;
  box-shadow: 0 3px 0 rgba(0,0,0,0.08);
  transition: transform 0.2s;
}
.thumb:hover { transform: scale(1.04) rotate(1deg); }
.thumb span {
  position: absolute;
  left: 8px; bottom: 8px;
  padding: 5px 10px;
  background: white;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 800;
  border: 1.5px solid rgba(0,0,0,0.07);
}

/* ── TRUST STRIP ── */
.trust-strip {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr 0.9fr;
  gap: 16px;
  margin-top: 20px;
}

.trust-card {
  border-radius: 22px;
  padding: 22px;
  position: relative;
  overflow: hidden;
}

.trust-card:nth-child(1) { border-top: 4px solid var(--green); }
.trust-card:nth-child(2) { border-top: 4px solid var(--yellow); }
.trust-card:nth-child(3) { border-top: 4px solid var(--blue); }

.stars {
  display: inline-flex;
  gap: 2px;
  font-size: 1.2rem;
  margin-bottom: 8px;
  animation: star-pop 2s ease-in-out infinite;
}

.rating-inline {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.rating-chip, .pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: white;
  border: 2px solid rgba(0,0,0,0.08);
  color: var(--text);
  font-weight: 800;
  font-size: 0.88rem;
  box-shadow: 0 2px 0 rgba(0,0,0,0.07);
}

.highlight-box {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  padding: 14px;
  background: rgba(255,208,0,0.12);
  border-radius: 16px;
  border: 2px dashed rgba(255,208,0,0.5);
}

.highlight-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--yellow);
  color: #1a1a2e;
  font-weight: 900;
  font-size: 1.1rem;
  flex: 0 0 auto;
  box-shadow: 0 3px 0 rgba(0,0,0,0.12);
}

/* ── PRODUCT CARDS ── */
.products-grid, .extras-grid, .legal-grid, .contact-grid, .footer-grid {
  display: grid;
  gap: 20px;
}

.steps-grid {

display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 18px;}

.step-card {background: var(--card-strong);border: 2.5px solid rgba(0,0,0,0.08);box-shadow: 0 6px 0 rgba(0,0,0,0.09);border-radius: var(--radius-lg);padding: 22px 20px;position: relative;transition: transform 0.2s ease, box-shadow 0.2s ease;}

.step-card:hover {transform: translateY(-4px);box-shadow: 0 10px 0 rgba(0,0,0,0.09);}

.step-card:nth-child(1) { border-top: 4px solid var(--yellow); }.step-card:nth-child(2) { border-top: 4px solid var(--primary); }.step-card:nth-child(3) { border-top: 4px solid var(--blue); }.step-card:nth-child(4) { border-top: 4px solid var(--green); }

.step-number {width: 48px;height: 48px;border-radius: 14px;display: grid;place-items: center;background: var(--yellow);color: #1a1a2e;font-family: 'Baloo 2', sans-serif;font-size: 1.25rem;font-weight: 900;box-shadow: 0 3px 0 rgba(0,0,0,0.12);margin-bottom: 14px;}

.step-card h3 {margin-bottom: 8px;}

.products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.extras-grid   { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.product-card, .extra-card {
  position: relative;
  overflow: hidden;
  background: var(--card-strong);
  border: 2.5px solid rgba(0,0,0,0.08);
  box-shadow: 0 6px 0 rgba(0,0,0,0.09);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-card:hover, .extra-card:hover {
  transform: translateY(-5px) rotate(0.5deg);
  box-shadow: 0 12px 0 rgba(0,0,0,0.09);
}

/* Coloured top border per card, cycling */
.product-card:nth-child(3n+1) { border-top: 4px solid var(--primary); }
.product-card:nth-child(3n+2) { border-top: 4px solid var(--pink); }
.product-card:nth-child(3n)   { border-top: 4px solid var(--blue); }
.extra-card:nth-child(3n+1)   { border-top: 4px solid var(--green); }
.extra-card:nth-child(3n+2)   { border-top: 4px solid var(--purple); }
.extra-card:nth-child(3n)     { border-top: 4px solid var(--teal); }

.product-image, .extra-image {
  aspect-ratio: 1 / 0.72;
  background: linear-gradient(145deg, #fff4e0 0%, #ffe8f0 100%);
  overflow: hidden;
  position: relative;
}

.product-image img, .extra-image img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.3s ease;
}
.extra-image img[src$="skydancer4m.jpg"],
.product-image img[src$="riesenrutsche-clown.jpg"],
.product-image img[src$="elefant.jpg"] {
  object-position: center 15%;
}
.product-card:hover .product-image img,
.extra-card:hover .extra-image img { transform: scale(1.05); }

.image-edit-note {
  position: absolute;
  right: 10px; top: 10px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(26,26,46,0.75);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
}

.product-body, .extra-body {
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.product-topline, .extra-topline {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.product-topline span, .extra-topline span { color: var(--muted); font-size: 0.88rem; font-weight: 600; }

.price-box { display: flex; flex-wrap: wrap; gap: 8px; }

.price-tag {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 8px 12px;
  background: rgba(255,208,0,0.15);
  border: 2px solid rgba(255,208,0,0.4);
  border-radius: 12px;
  min-width: 100px;
}
.price-tag small { color: var(--muted); font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.price-tag strong { font-size: 1.05rem; color: var(--primary); font-family: 'Baloo 2', sans-serif; font-weight: 900; }

.product-meta, .extra-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.product-gallery-action { align-self: flex-start; margin-top: 4px; }

.spec-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.spec-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.88);
  border: 2px solid rgba(0,0,0,0.08);
  color: var(--text);
  font-weight: 800;
  font-size: 0.84rem;
  box-shadow: 0 2px 0 rgba(0,0,0,0.07);
}

.spec-pill.highlight {

background: linear-gradient(135deg, var(--primary), var(--pink));color: white;border-color: transparent;box-shadow: 0 3px 0 rgba(0,0,0,0.10);}

.spec-pill.dim {
  color: var(--muted);
}
  
/* ── SECTION SOFT ── */
.section-soft { padding: 44px 0; }

.booking-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px;
  border-radius: var(--radius-xl);
  background: var(--card-strong);
  border: 2.5px solid rgba(0,0,0,0.08);
  box-shadow: 0 8px 0 rgba(0,0,0,0.08);
}

.booking-cta p {
  max-width: 680px;
}

.booking-page {
  background: var(--bg);
}

.booking-page-hero {
  padding-bottom: 18px;
}

.booking-page-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.booking-page-intro > div {
  max-width: 780px;
}

.booking-wizard-section {
  padding-top: 18px;
}

/* ── FORMS & CALC ── */
.calc-layout, .booking-layout {
  display: grid;
  grid-template-columns: 0.94fr 1.06fr;
  gap: 22px;
  align-items: start;
}

.calc-card, .booking-card, .calendar-card, .contact-card, .legal-card, .guestbook-card {
  border-radius: var(--radius-xl);
  padding: 24px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.field, .field-full {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.field-full { grid-column: 1 / -1; }

label {
  font-weight: 800;
  color: var(--text);
  font-size: 0.9rem;
  font-family: 'Baloo 2', sans-serif;
}

input, select, textarea {
  width: 100%;
  border: 2.5px solid rgba(0,0,0,0.10);
  background: white;
  min-height: 50px;
  border-radius: 14px;
  padding: 0 14px;
  color: var(--text);
  outline: none;
  transition: 0.15s ease;
  font-weight: 600;
}

textarea { min-height: 130px; padding: 12px 14px; resize: vertical; }

input:focus, select:focus, textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(255,92,0,0.12);
}

.helper { font-size: 0.84rem; color: var(--muted); font-weight: 600; }

.calc-result {
  margin-top: 16px;
  padding: 18px;
  border-radius: 20px;
  background: linear-gradient(145deg, #fffbf0, #fff4d6);
  border: 2.5px solid rgba(255,208,0,0.35);
}

.calc-total {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.calc-total strong {
  font-size: clamp(1.8rem, 2.4vw, 2.6rem);
  color: var(--primary);
  line-height: 1;
  font-family: 'Baloo 2', sans-serif;
  font-weight: 900;
}

.calc-breakdown { display: grid; gap: 8px; margin-top: 12px; }

.calc-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 2px dashed rgba(0,0,0,0.08);
  font-weight: 700;
}
.calc-row:last-child { border-bottom: 0; }

/* ── CALENDAR ── */
.calendar-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.weekday, .day {
  border-radius: 12px;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 6px;
  font-size: 0.88rem;
}

.weekday {
  background: var(--yellow);
  border: none;
  font-weight: 900;
  color: #1a1a2e;
  min-height: 42px;
  font-family: 'Baloo 2', sans-serif;
  box-shadow: 0 3px 0 rgba(0,0,0,0.10);
}

.day {
  background: white;
  border: 2px solid rgba(0,0,0,0.07);
  flex-direction: column;
  gap: 4px;
  font-weight: 700;
  box-shadow: 0 2px 0 rgba(0,0,0,0.06);
  transition: transform 0.15s;
}
.day:not(.muted):hover { transform: scale(1.08); }

.day small { font-size: 0.68rem; color: var(--muted); font-weight: 700; text-transform: uppercase; }
.day.muted { opacity: 0.3; }
.day.available { border-color: rgba(0,196,114,0.35); background: rgba(0,196,114,0.07); }
.day.busy { background: rgba(255,61,138,0.08); border-color: rgba(255,61,138,0.3); }
.day.busy small { color: var(--pink); }

.legend {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.88rem;
  color: var(--muted);
  font-weight: 700;
}

.dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.dot-green { background: var(--green); }
.dot-red   { background: var(--pink); }
.dot-orange{ background: var(--primary); }

/* ── COMBINED BLOCK ── */
.combined-block {
  background: var(--card-strong);
  border: 2.5px solid rgba(0,0,0,0.08);
  box-shadow: 0 8px 0 rgba(0,0,0,0.08);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.combined-tabs {
  display: flex;
  border-bottom: 3px solid var(--yellow);
  background: rgba(255,251,240,0.8);
}

.combined-tab {
  flex: 1;
  min-height: 58px;
  padding: 0 18px;
  border: none;
  border-bottom: 4px solid transparent;
  margin-bottom: -3px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-weight: 800;
  font-size: 0.95rem;
  transition: 0.15s ease;
  font-family: 'Baloo 2', sans-serif;
}

.combined-tab:hover { background: rgba(255,208,0,0.15); color: var(--text); }

.combined-tab.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
  background: white;
}

.combined-panel { display: none; }
.combined-panel.active { display: block; padding: 28px; }

/* ── TABS (old) ── */
.booking-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }

.tab-btn {
  min-height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  border: 2px solid rgba(0,0,0,0.10);
  background: white;
  color: var(--text);
  cursor: pointer;
  font-weight: 800;
  font-family: 'Baloo 2', sans-serif;
  box-shadow: 0 3px 0 rgba(0,0,0,0.08);
}

.tab-btn.active {
  background: var(--primary);
  color: white;
  border-color: transparent;
  box-shadow: 0 3px 0 #c44000;
}

.tab-panel { display: none; }
.tab-panel.active { display: block; }

/* ── FAQ ── */
.faq-list { display: grid; gap: 12px; }

.faq-item {
  border-radius: 18px;
  padding: 18px 20px;
  border-left: 4px solid var(--yellow);
  transition: transform 0.15s;
}
.faq-item:hover { transform: translateX(4px); }
.faq-item:nth-child(2) { border-left-color: var(--pink); }
.faq-item:nth-child(3) { border-left-color: var(--blue); }
.faq-item:nth-child(4) { border-left-color: var(--green); }

.faq-item strong {
  display: block;
  margin-bottom: 7px;
  font-family: 'Baloo 2', sans-serif;
  font-size: 1.05rem;
}

/* ── GUESTBOOK ── */
.guestbook-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.guestbook-card {
  border-radius: 20px;
  padding: 20px;
  transition: transform 0.2s;
}
.guestbook-card:hover { transform: translateY(-4px) rotate(-0.5deg); }
.guestbook-card:nth-child(1) { border-top: 4px solid var(--yellow); }
.guestbook-card:nth-child(2) { border-top: 4px solid var(--pink); }
.guestbook-card:nth-child(3) { border-top: 4px solid var(--blue); }

.guestbook-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  align-items: center;
}
.guestbook-card strong { display: block; margin-bottom: 2px; font-family: 'Baloo 2', sans-serif; }
.guestbook-date { font-size: 0.82rem; color: var(--muted); white-space: nowrap; font-weight: 700; }

/* ── LEGAL ── */
.legal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.legal-card h3 { margin-bottom: 10px; }

.legal-list { display: grid; gap: 8px; margin-top: 12px; }

.legal-list a {
  padding: 13px 16px;
  border-radius: 14px;
  background: white;
  border: 2px solid rgba(0,0,0,0.08);
  font-weight: 800;
  color: var(--primary);
  box-shadow: 0 3px 0 rgba(0,0,0,0.07);
  transition: transform 0.15s;
}
.legal-list a:hover { transform: translateX(4px); }

/* ── CONTACT ── */
.contact-grid { grid-template-columns: 0.95fr 1.05fr; }

.contact-list { display: grid; gap: 10px; margin-top: 16px; }

.contact-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 13px;
  border-radius: 16px;
  background: white;
  border: 2px solid rgba(0,0,0,0.07);
  box-shadow: 0 3px 0 rgba(0,0,0,0.06);
  transition: transform 0.15s;
}
.contact-item:hover { transform: translateY(-2px); }

.contact-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--yellow);
  color: #1a1a2e;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 1.1rem;
  flex: 0 0 auto;
  box-shadow: 0 3px 0 rgba(0,0,0,0.10);
}

/* ── FOOTER ── */
footer { padding: 28px 0 48px; }

.footer-box {
  background: #1a1a2e;
  color: rgba(255,255,255,0.92);
  border-radius: 28px;
  padding: 30px;
  box-shadow: 0 10px 0 rgba(0,0,0,0.15);
  border: 3px solid rgba(255,208,0,0.3);
  position: relative;
  overflow: hidden;
}

.footer-box::before {
  content: "🎈 🌟 🎉 🎊";
  position: absolute;
  bottom: -5px; right: 20px;
  font-size: 2.5rem;
  opacity: 0.12;
  letter-spacing: 8px;
}

.footer-grid { grid-template-columns: 1.1fr 0.9fr 0.9fr; }

.footer-box p, .footer-box a, .footer-box span { color: rgba(255,255,255,0.7); font-weight: 600; }

.footer-links { display: grid; gap: 8px; margin-top: 10px; }

.mini-note { margin-top: 18px; font-size: 0.86rem; color: rgba(255,255,255,0.45); font-weight: 600; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  gap: 12px;
  flex-wrap: wrap; /* wichtig für mobile */
}

/* ── SECTION DECORATION ── */
.section-deco {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.4rem;
  animation: wiggle 3s ease-in-out infinite;
}

/* ── ANCHOR ── */
.anchor-offset { scroll-margin-top: 96px; }

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .hero-grid, .trust-strip, .calc-layout, .booking-layout,
  .legal-grid, .contact-grid, .footer-grid, .products-grid,
  .extras-grid, .guestbook-list, .steps-grid{
    grid-template-columns: 1fr;
  }
  .thumb-grid, .hero-points, .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .header-wrap.is-hidden {
    transform: translateY(-110%);
  }
  .header {
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    padding: 7px 0;
  }
  .brand {
    gap: 10px;
    flex: 1 1 0;
    min-width: 0;
    max-width: calc(100% - 96px);
  }
  .brand-badge {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    border-width: 2px;
  }
  .brand-text strong {
    font-size: 0.9rem;
    line-height: 1;
    max-width: 100%;
  }
  .brand-text span {
    display: none;
  }
  .mobile-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 999px;
    border: 2px solid rgba(0,0,0,0.12);
    background: white;
    color: var(--text);
    box-shadow: 0 3px 0 rgba(0,0,0,0.08);
    font-family: 'Baloo 2', sans-serif;
    font-weight: 900;
    font-size: 0.88rem;
    cursor: pointer;
    flex: 0 0 auto;
  }
  .nav {
    display: none;
    order: 3;
    width: 100%;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 8px 0 4px;
    flex: 0 0 100%;
  }
  .header-wrap.is-menu-open .nav {
    display: grid;
  }
  .nav a,
  .nav .btn {
    width: 100%;
    min-height: 40px;
    justify-content: flex-start;
    padding: 0 14px;
    border-radius: 14px;
    background: rgba(255,255,255,0.82);
    border-color: rgba(0,0,0,0.08);
    box-shadow: none;
  }
  .nav .btn {
    justify-content: center;
    border-radius: 999px;
    background: var(--primary);
    box-shadow: 0 3px 0 #c44000;
  }
  .hero-copy, .hero-media, .calc-card, .booking-card, .calendar-card,
  .contact-card, .legal-card, .guestbook-card, .trust-card { padding: 18px; }
  .hero-featured { min-height: 260px; }
  .thumb-grid, .hero-points, .form-grid, .calendar-grid {
    grid-template-columns: 1fr;
  }
  .calendar-grid { overflow-x: auto; }
  .weekday, .day { min-width: 80px; }
  .product-topline, .extra-topline, .calc-total, .section-title {
    flex-direction: column;
    align-items: flex-start;
  }
  .booking-cta, .booking-page-intro {
    flex-direction: column;
    align-items: flex-start;
  }
  .booking-cta .btn,
  .booking-page-intro .btn-ghost {
    width: 100%;
    justify-content: center;
  }
  h1 { font-size: clamp(2rem, 11vw, 3rem); }
  h2 { font-size: clamp(1.6rem, 8vw, 2.2rem); }
  .combined-tab { font-size: 0.78rem; padding: 0 8px; min-height: 50px; }
}

/* Modular ausgelagerter Rechner */#rechnerMount {width: 100%;}

/* ── PRETTY 4-STEP RECHNER ─────────────────────────────────────────────── */.booking-wizard {display: grid;grid-template-columns: 320px minmax(0, 1fr);gap: 24px;align-items: start;}

.wizard-sidebar {position: relative;}

.wizard-sticky {position: sticky;top: 118px;background: var(--card);border: 2.5px solid rgba(0,0,0,0.07);box-shadow: var(--shadow-card);border-radius: var(--radius-xl);padding: 24px;}

.wizard-title {margin-top: 12px;}

.wizard-lead {margin-top: 10px;}

.wizard-steps {display: grid;gap: 12px;margin-top: 20px;}

.wizard-step {width: 100%;display: flex;align-items: center;gap: 14px;text-align: left;background: white;border: 2px solid rgba(0,0,0,0.08);border-radius: 18px;padding: 14px;box-shadow: 0 3px 0 rgba(0,0,0,0.06);cursor: pointer;transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;}

.wizard-step:hover {transform: translateY(-2px);}

.wizard-step.is-active {border-color: rgba(255,92,0,0.35);box-shadow: 0 6px 0 rgba(255,92,0,0.16);background: linear-gradient(145deg, #fffaf0, white);}

.wizard-step-number {width: 42px;height: 42px;border-radius: 14px;display: grid;place-items: center;background: var(--yellow);color: #1a1a2e;font-family: 'Baloo 2', sans-serif;font-size: 1.2rem;font-weight: 900;box-shadow: 0 3px 0 rgba(0,0,0,0.10);flex: 0 0 auto;}

.wizard-step-copy {display: grid;gap: 2px;}

.wizard-step-copy strong {font-size: 0.98rem;font-family: 'Baloo 2', sans-serif;line-height: 1.05;}

.wizard-step-copy small {color: var(--muted);font-size: 0.82rem;font-weight: 700;}

.wizard-main {display: grid;gap: 18px;}

.wizard-panel {display: none;}

.wizard-panel.is-active {display: block;animation: bounce-in 0.28s ease;}

.wizard-card {padding: 28px;}

.wizard-actions {display: flex;gap: 12px;flex-wrap: wrap;margin-top: 22px;}

body.is-wizard-navigating .map-wrapper iframe {
  pointer-events: none;
}

.wizard-inline-note {padding: 12px 14px;border-radius: 16px;background: rgba(255,208,0,0.14);border: 2px dashed rgba(255,208,0,0.4);color: var(--text);font-weight: 700;}

.wizard-section-header {display: flex;align-items: center;justify-content: space-between;gap: 12px;margin-bottom: 12px;}

.wizard-card-grid {display: grid;gap: 16px;}

.wizard-bounce-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}

.wizard-extra-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}

.wizard-select-card {display: flex;flex-direction: column;border: 2.5px solid rgba(0,0,0,0.08);border-radius: var(--radius-lg);overflow: hidden;background: var(--card-strong);box-shadow: 0 6px 0 rgba(0,0,0,0.08);padding: 0;cursor: pointer;transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;text-align: left;}

.wizard-select-card:hover {transform: translateY(-4px);box-shadow: 0 10px 0 rgba(0,0,0,0.08);}

.wizard-select-card.is-selected {border-color: rgba(255,92,0,0.5);box-shadow: 0 10px 0 rgba(255,92,0,0.18);}

.wizard-select-card.is-unavailable {opacity: 0.45;cursor: not-allowed;filter: grayscale(0.2);}

.wizard-select-media {position: relative;aspect-ratio: 1 / 0.68;background: linear-gradient(145deg, #fff4e0 0%, #ffe8f0 100%);}

.wizard-select-media img {width: 100%;height: 100%;object-fit: cover;}

.wizard-select-badge {position: absolute;top: 12px;right: 12px;min-height: 34px;padding: 0 12px;display: inline-flex;align-items: center;border-radius: 999px;background: white;border: 2px solid rgba(0,0,0,0.08);font-size: 0.82rem;font-weight: 900;box-shadow: 0 2px 0 rgba(0,0,0,0.06);}

.wizard-select-body {padding: 16px;display: grid;gap: 8px;}

.wizard-select-topline {display: flex;align-items: start;justify-content: space-between;gap: 10px;}

.wizard-select-topline strong {font-family: 'Baloo 2', sans-serif;font-size: 1.05rem;line-height: 1.1;}

.wizard-select-topline span {color: var(--primary);font-weight: 900;}

.wizard-select-body p {margin: 0;font-size: 0.92rem;}

.wizard-toggle {display: inline-flex;align-items: center;gap: 12px;min-height: 54px;padding: 0 18px;border-radius: 999px;background: white;border: 2px solid rgba(0,0,0,0.08);box-shadow: 0 3px 0 rgba(0,0,0,0.06);cursor: pointer;font-weight: 800;}

.wizard-toggle input {width: 20px;min-height: 20px;height: 20px;margin: 0;padding: 0;}

.wizard-coupon-row {display: grid;grid-template-columns: 1fr auto;gap: 10px;}

.wizard-total-box {display: flex;align-items: end;justify-content: space-between;gap: 16px;padding: 20px 22px;border-radius: 22px;background: linear-gradient(145deg, #fffaf0, #fff4d6);border: 2px solid rgba(255,208,0,0.35);box-shadow: 0 4px 0 rgba(255,208,0,0.14);}

.wizard-total-box strong {font-family: 'Baloo 2', sans-serif;font-size: clamp(2rem, 3vw, 3rem);color: var(--primary);line-height: 1;font-weight: 900;}

.wizard-summary-grid {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 16px;margin-top: 18px;}

.wizard-summary-card {padding: 18px;border-radius: 20px;background: white;border: 2px solid rgba(0,0,0,0.07);box-shadow: 0 3px 0 rgba(0,0,0,0.06);}

.wizard-summary-card h3 {margin-bottom: 6px;}

.wizard-preview-wrap {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 16px;margin-top: 18px;}

.wizard-preview-block {padding: 18px;border-radius: 20px;background: rgba(255,255,255,0.84);border: 2px solid rgba(0,0,0,0.07);box-shadow: 0 3px 0 rgba(0,0,0,0.06);}

.wizard-selection-preview {display: grid;gap: 10px;}

.wizard-mini-card {display: grid;grid-template-columns: 84px 1fr;gap: 12px;align-items: center;padding: 10px;border-radius: 16px;background: white;border: 2px solid rgba(0,0,0,0.06);}

.wizard-mini-card img {width: 84px;height: 62px;object-fit: cover;border-radius: 12px;}

.wizard-mini-card strong {display: block;font-family: 'Baloo 2', sans-serif;line-height: 1.05;}

.wizard-mini-card span {display: block;margin-top: 4px;color: var(--muted);font-size: 0.86rem;font-weight: 700;}

.wizard-empty {padding: 14px;border-radius: 14px;background: rgba(0,0,0,0.03);color: var(--muted);font-weight: 700;}/* ── LEGAL DOC WRAPPER ───────────────────────────────────── */
.wizard-date-modes {display:flex;gap:10px;flex-wrap:wrap;}
.wizard-date-mode {min-height:46px;padding:0 16px;border-radius:999px;border:2px solid rgba(0,0,0,.08);background:#fff;font-weight:900;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.06);}
.wizard-date-mode.is-active {border-color:rgba(255,92,0,.45);background:#fff4d6;color:var(--primary);}
.wizard-calendar {border:2px solid rgba(0,0,0,.07);border-radius:22px;background:#fff;padding:16px;box-shadow:0 4px 0 rgba(0,0,0,.05);}
.wizard-calendar-head {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.wizard-calendar-head strong {font-family:'Baloo 2',sans-serif;font-size:1.25rem;text-transform:capitalize;}
.wizard-calendar-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
.wizard-calendar-weekday {text-align:center;color:var(--muted);font-weight:900;font-size:.82rem;}
.wizard-calendar-day {aspect-ratio:1;border-radius:14px;border:2px solid rgba(0,0,0,.07);background:#fff;display:grid;place-items:center;font-weight:900;cursor:pointer;box-shadow:0 2px 0 rgba(0,0,0,.05);}
.wizard-calendar-day:hover {border-color:rgba(255,92,0,.35);transform:translateY(-1px);}
.wizard-calendar-day.is-muted {opacity:.45;}
.wizard-calendar-day.is-selected {background:#ffd000;border-color:rgba(255,92,0,.55);color:#1a1a2e;}
.wizard-calendar-day.is-disabled {background:repeating-linear-gradient(135deg,#f1f5f9,#f1f5f9 6px,#fee2e2 6px,#fee2e2 12px);color:#9f1239;cursor:not-allowed;opacity:.72;text-decoration:line-through;}
/* ── LEGAL DOC WRAPPER ───────────────────────────────────── */

#legalView {padding: 36px 0 20px;animation: bounce-in 0.28s ease;}

#legalView .container {width: min(calc(100% - 32px), 1100px);}

#legalBackButton {margin-bottom: 20px;}

#legalViewTitle {margin: 0 0 18px;}

#legalViewContent {display: block;}

#legalViewContent .legal-doc {background: var(--card);border: 2.5px solid rgba(0,0,0,0.07);box-shadow: var(--shadow-card);border-radius: var(--radius-xl);padding: 26px;}

/* Fremde Wrapper neutralisieren */#legalViewContent .legal-doc main,#legalViewContent .legal-doc .wrap,#legalViewContent .legal-doc .container {width: 100% !important;max-width: 100% !important;margin: 0 !important;padding: 0 !important;background: transparent !important;border: 0 !important;box-shadow: none !important;}

/* Wichtige Typografie */#legalViewContent .legal-doc h1,#legalViewContent .legal-doc h2,#legalViewContent .legal-doc h3,#legalViewContent .legal-doc h4 {color: var(--text);}

#legalViewContent .legal-doc h1 {font-family: 'Baloo 2', sans-serif;font-size: clamp(2rem, 3.8vw, 3rem);line-height: 1.02;font-weight: 900;margin: 0 0 14px;}

#legalViewContent .legal-doc h2 {font-family: 'Baloo 2', sans-serif;font-size: clamp(1.35rem, 2.4vw, 2rem);line-height: 1.08;font-weight: 800;margin: 22px 0 10px;}

#legalViewContent .legal-doc h3 {font-family: 'Baloo 2', sans-serif;font-size: 1.08rem;line-height: 1.15;font-weight: 800;margin: 16px 0 8px;}

#legalViewContent .legal-doc p,#legalViewContent .legal-doc li {color: var(--muted);line-height: 1.75;font-weight: 600;font-size: 1rem;}

#legalViewContent .legal-doc ul,#legalViewContent .legal-doc ol {margin: 10px 0 0;padding-left: 22px;}

#legalViewContent .legal-doc li + li {margin-top: 6px;}

#legalViewContent .legal-doc a {color: var(--primary);font-weight: 800;text-decoration: none;}

#legalViewContent .legal-doc a:hover {text-decoration: underline;}

/* Nur die Boxen innerhalb der Rechtsdokumente */#legalViewContent .legal-doc .card,#legalViewContent .legal-doc .toc,#legalViewContent .legal-doc .content,#legalViewContent .legal-doc .box,#legalViewContent .legal-doc .warn,#legalViewContent .legal-doc .notice {margin-top: 16px;padding: 18px;background: rgba(255,255,255,0.78);border: 2px solid rgba(0,0,0,0.07);box-shadow: 0 3px 0 rgba(0,0,0,0.06);border-radius: 20px;}

#legalViewContent .legal-doc .warn {background: rgba(255,208,0,0.12);border-color: rgba(255,208,0,0.42);}

#legalViewContent .legal-doc .notice {background: rgba(0,196,114,0.10);border-color: rgba(0,196,114,0.28);}

#legalViewContent .legal-doc .box {background: rgba(255,92,0,0.06);border-color: rgba(255,92,0,0.16);}

/* AGB Inhaltsübersicht */#legalViewContent .legal-doc .toc-grid {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 10px;margin-top: 12px;}

#legalViewContent .legal-doc .toc-grid a {display: block;padding: 12px 14px;border-radius: 14px;background: white;border: 2px solid rgba(0,0,0,0.08);box-shadow: 0 2px 0 rgba(0,0,0,0.06);color: var(--text);}

/* WICHTIG: überschreibt dein bestehendes .section-title */#legalViewContent .legal-doc .section-title {display: flex !important;justify-content: flex-start !important;align-items: center !important;gap: 10px !important;margin: 22px 0 10px !important;}

#legalViewContent .legal-doc .section-title .number {width: 38px;height: 38px;border-radius: 12px;display: inline-grid;place-items: center;background: var(--yellow);color: #1a1a2e;font-family: 'Baloo 2', sans-serif;font-size: 1.15rem;font-weight: 900;box-shadow: 0 3px 0 rgba(0,0,0,0.10);flex: 0 0 auto;}

#legalViewContent .legal-doc .subpoint {margin-top: 12px;}

#legalViewContent .legal-doc .back-top {display: inline-flex;align-items: center;gap: 8px;margin-top: 18px;min-height: 42px;padding: 0 14px;border-radius: 999px;background: white;border: 2px solid rgba(0,0,0,0.10);box-shadow: 0 3px 0 rgba(0,0,0,0.07);}

.map-wrapper {margin-top: 16px;border-radius: 20px;overflow: hidden;border: 2px solid rgba(0,0,0,0.08);box-shadow: 0 4px 0 rgba(0,0,0,0.08);background: white;}

.map-wrapper iframe {display: block;width: 100%;height: 320px;}

.map-note {margin-top: 14px;padding: 14px;border-radius: 16px;background: rgba(0,153,230,0.08);border: 2px dashed rgba(0,153,230,0.3);font-weight: 700;}

/* ── LEGAL VIEW FINAL FIX ───────────────────────────────── */#legalView {padding: 36px 0 20px;animation: bounce-in 0.28s ease;}

#legalView .container {width: min(calc(100% - 32px), 1100px);}

#legalViewTitle {margin: 0 0 18px;}

#legalViewContent {display: block;}

#legalViewContent .legal-doc {background: linear-gradient(145deg, rgba(255,251,240,0.96), rgba(255,244,214,0.92)) !important;border: 2.5px solid rgba(0,0,0,0.07) !important;box-shadow: var(--shadow-card) !important;border-radius: var(--radius-xl) !important;padding: 26px !important;}

#legalViewContent .legal-doc,#legalViewContent .legal-doc * {box-sizing: border-box;}

#legalViewContent .legal-doc > .wrap,#legalViewContent .legal-doc > .container,#legalViewContent .legal-doc > main {width: 100% !important;max-width: 100% !important;margin: 0 !important;padding: 0 !important;background: transparent !important;border: 0 !important;box-shadow: none !important;}

#legalViewContent .legal-doc h1,#legalViewContent .legal-doc h2,#legalViewContent .legal-doc h3,#legalViewContent .legal-doc h4 {color: var(--text) !important;}

#legalViewContent .legal-doc h1 {font-family: 'Baloo 2', sans-serif !important;font-size: clamp(2rem, 3.8vw, 3rem) !important;line-height: 1.02 !important;font-weight: 900 !important;margin: 0 0 14px !important;}

#legalViewContent .legal-doc h2 {font-family: 'Baloo 2', sans-serif !important;font-size: clamp(1.35rem, 2.4vw, 2rem) !important;line-height: 1.08 !important;font-weight: 800 !important;margin: 22px 0 10px !important;}

#legalViewContent .legal-doc h3 {font-family: 'Baloo 2', sans-serif !important;font-size: 1.08rem !important;line-height: 1.15 !important;font-weight: 800 !important;margin: 16px 0 8px !important;}

#legalViewContent .legal-doc p,#legalViewContent .legal-doc li {color: var(--muted) !important;line-height: 1.75 !important;font-weight: 600 !important;font-size: 1rem !important;}

#legalViewContent .legal-doc ul,#legalViewContent .legal-doc ol {margin: 10px 0 0 !important;padding-left: 22px !important;}

#legalViewContent .legal-doc a {color: var(--primary) !important;font-weight: 800 !important;text-decoration: none !important;}#legalViewContent .legal-doc a:hover { text-decoration: underline !important; }

#legalViewContent .legal-doc .card,#legalViewContent .legal-doc .toc,#legalViewContent .legal-doc .content,#legalViewContent .legal-doc .box,#legalViewContent .legal-doc .warn,#legalViewContent .legal-doc .notice,#legalViewContent .legal-doc section {margin-top: 16px !important;padding: 18px !important;background: rgba(255,255,255,0.82) !important;border: 2px solid rgba(0,0,0,0.07) !important;box-shadow: 0 3px 0 rgba(0,0,0,0.06) !important;border-radius: 20px !important;}#legalViewContent .legal-doc > section:first-child,#legalViewContent .legal-doc > .card:first-child,#legalViewContent .legal-doc > .toc:first-child,#legalViewContent .legal-doc > .content:first-child {margin-top: 0 !important;}

#legalViewContent .legal-doc .warn {background: rgba(255,208,0,0.12) !important;border-color: rgba(255,208,0,0.42) !important;}#legalViewContent .legal-doc .notice {background: rgba(0,196,114,0.10) !important;border-color: rgba(0,196,114,0.28) !important;}#legalViewContent .legal-doc .box {background: rgba(255,92,0,0.06) !important;border-color: rgba(255,92,0,0.16) !important;}

#legalViewContent .legal-doc .toc-grid {display: grid !important;grid-template-columns: repeat(2, minmax(0, 1fr)) !important;gap: 10px !important;margin-top: 12px !important;}#legalViewContent .legal-doc .toc-grid a {display: block !important;padding: 12px 14px !important;border-radius: 14px !important;background: white !important;border: 2px solid rgba(0,0,0,0.08) !important;box-shadow: 0 2px 0 rgba(0,0,0,0.06) !important;color: var(--text) !important;}

#legalViewContent .legal-doc .section-title {display: flex !important;justify-content: flex-start !important;align-items: center !important;gap: 10px !important;margin: 22px 0 10px !important;}#legalViewContent .legal-doc .section-title .number {width: 38px !important;height: 38px !important;border-radius: 12px !important;display: inline-grid !important;place-items: center !important;background: var(--yellow) !important;color: #1a1a2e !important;font-family: 'Baloo 2', sans-serif !important;font-size: 1.15rem !important;font-weight: 900 !important;box-shadow: 0 3px 0 rgba(0,0,0,0.10) !important;flex: 0 0 auto !important;}

#legalViewContent .legal-doc .back-top {display: inline-flex !important;align-items: center !important;gap: 8px !important;margin-top: 18px !important;min-height: 42px !important;padding: 0 14px !important;border-radius: 999px !important;background: white !important;border: 2px solid rgba(0,0,0,0.10) !important;box-shadow: 0 3px 0 rgba(0,0,0,0.07) !important;}

@media (max-width: 780px) {

}@media (max-width: 1100px) {.booking-wizard {grid-template-columns: 1fr;}

.wizard-sticky {position: static;}}

@media (max-width: 780px) {.wizard-bounce-grid,.wizard-extra-grid,.wizard-summary-grid,.wizard-preview-wrap {grid-template-columns: 1fr;}

.wizard-total-box,.wizard-section-header,.wizard-select-topline {flex-direction: column;align-items: flex-start;}

.wizard-coupon-row {grid-template-columns: 1fr;}#legalView { padding: 24px 0 12px; }#legalViewContent .legal-doc .toc-grid { grid-template-columns: 1fr !important; padding: 18px !important; }}

/* ── BILDERGALERIE: Albumübersicht, Galerieansicht & Vollbild ───────────── */

/* Galerie-Seite */
.gallery-page {
  padding: 40px 0;
}

.gallery-back-button {
  margin-bottom: 20px;
}

.gallery-hero {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
  padding: 28px;
  border-radius: var(--radius-xl);
  background: var(--card);
  border: 2.5px solid rgba(0,0,0,0.07);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  position: relative;
}

.gallery-hero::before {
  content: "📸 🎈 🌟";
  position: absolute;
  right: 24px;
  bottom: -10px;
  font-size: 3rem;
  opacity: 0.10;
  pointer-events: none;
}

.gallery-hero h2 {
  margin-top: 12px;
}

.gallery-hero p {
  margin-top: 10px;
  max-width: 62ch;
}

.gallery-hint {
  min-width: 250px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 18px;
  border-radius: 20px;
  background: rgba(255,208,0,0.14);
  border: 2px dashed rgba(255,208,0,0.45);
}

.gallery-hint strong {
  font-family: 'Baloo 2', sans-serif;
  font-size: 1.05rem;
}

.gallery-hint span {
  color: var(--muted);
  font-weight: 800;
  font-size: 0.92rem;
}

.gallery-status {
  padding: 18px 20px;
  border-radius: 20px;
  background: white;
  border: 2px solid rgba(0,0,0,0.08);
  box-shadow: 0 3px 0 rgba(0,0,0,0.06);
  color: var(--muted);
  font-weight: 800;
}

/* Album-Übersicht */
#galleryAlbums.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.gallery-album-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0;
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  border-radius: var(--radius-lg);
  background: var(--card-strong);
  border: 2.5px solid rgba(0,0,0,0.08);
  border-top: 4px solid var(--primary);
  box-shadow: 0 6px 0 rgba(0,0,0,0.09);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.gallery-album-card:nth-child(3n+2) {
  border-top-color: var(--pink);
}

.gallery-album-card:nth-child(3n) {
  border-top-color: var(--blue);
}

.gallery-album-card:hover {
  transform: translateY(-5px) rotate(0.35deg);
  box-shadow: 0 12px 0 rgba(0,0,0,0.09);
}

.gallery-album-media {
  position: relative;
  width: 100%;
  height: 165px;
  overflow: hidden;
  background: linear-gradient(145deg, #fff4e0 0%, #ffe8f0 100%);
}

.gallery-album-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  padding: 0;
  transition: transform 0.3s ease;
}

.gallery-album-card:hover .gallery-album-media img {
  transform: scale(1.04);
}

.gallery-album-media span,
.gallery-album-count {
  position: absolute;
  top: 10px;
  right: 10px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: white;
  color: var(--text);
  border: 2px solid rgba(0,0,0,0.08);
  font-size: 0.78rem;
  font-weight: 900;
  box-shadow: 0 2px 0 rgba(0,0,0,0.07);
}

.gallery-album-body {
  padding: 14px;
  display: grid;
  gap: 6px;
}

.gallery-album-body h3 {
  font-size: 1.05rem;
  line-height: 1.1;
}

.gallery-album-body p {
  font-size: 0.88rem;
  line-height: 1.4;
  font-weight: 800;
}

.gallery-album-chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

/* Galerie-Zwischenansicht */
.gallery-slider {
  margin-top: 22px;
}

.gallery-slider-head {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}

.gallery-viewer-card {
  padding: 18px;
  border-radius: var(--radius-xl);
  background: var(--card-strong);
  border: 2.5px solid rgba(0,0,0,0.08);
  box-shadow: 0 6px 0 rgba(0,0,0,0.09);
}

.gallery-stage {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 56px;
  align-items: center;
  gap: 14px;
}

.gallery-stage-image-button {
  position: relative;
  width: 100%;
  height: 520px;
  padding: 0;
  overflow: hidden;
  border-radius: 24px;
  border: 2px solid rgba(0,0,0,0.08);
  background: linear-gradient(145deg, #fff4e0 0%, #ffe8f0 100%);
  box-shadow: inset 0 0 0 4px rgba(255,255,255,0.35), 0 4px 0 rgba(0,0,0,0.08);
  cursor: zoom-in;
}

.gallery-stage-image-button img,
#galleryMainImage {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14px;
}

.gallery-open-hint {
  position: absolute;
  right: 14px;
  bottom: 14px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: white;
  color: var(--text);
  border: 2px solid rgba(0,0,0,0.08);
  font-weight: 900;
  box-shadow: 0 2px 0 rgba(0,0,0,0.08);
}

.gallery-stage-nav {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 2px;
  border-radius: 18px;
  border: 2px solid rgba(0,0,0,0.10);
  background: white;
  color: var(--text);
  font-family: 'Baloo 2', sans-serif;
  font-size: 2.2rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 0 rgba(0,0,0,0.12);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.gallery-stage-nav:hover {
  transform: scale(1.04);
  box-shadow: 0 6px 0 rgba(0,0,0,0.12);
  filter: brightness(1.03);
}

.gallery-stage-nav:active {
  transform: scale(0.98);
  box-shadow: 0 2px 0 rgba(0,0,0,0.12);
}

.gallery-thumbs-all {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.gallery-thumb-all {
  height: 78px;
  padding: 0;
  overflow: hidden;
  border-radius: 14px;
  border: 2px solid rgba(0,0,0,0.10);
  background: white;
  box-shadow: 0 3px 0 rgba(0,0,0,0.08);
  cursor: pointer;
  opacity: 0.72;
  transition: transform 0.15s ease, opacity 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.gallery-thumb-all:hover,
.gallery-thumb-all.is-active {
  opacity: 1;
  transform: translateY(-2px);
  border-color: var(--primary);
  box-shadow: 0 4px 0 rgba(255,92,0,0.25);
}

.gallery-thumb-all img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

/* Vollbild-Galerie */
.gallery-fullscreen {
  --gallery-image-width: min(78vw, 1100px);

  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 72px 76px 60px;
  background: rgba(26,26,46,0.88);
  backdrop-filter: blur(10px);
}

.gallery-fullscreen.is-open {
  display: flex;
}

.gallery-fullscreen img {
  max-width: var(--gallery-image-width);
  max-height: calc(100vh - 150px);
  object-fit: contain;
  border-radius: 22px;
  background: white;
  box-shadow: 0 18px 70px rgba(0,0,0,0.40);
}

.gallery-fullscreen-close,
.gallery-fullscreen-nav {
  position: absolute;
  z-index: 1002;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  text-align: center;
  background: linear-gradient(135deg, var(--primary), var(--pink));
  color: white;
  border: 3px solid rgba(255,208,0,0.9);
  box-shadow: 0 5px 0 rgba(0,0,0,0.28);
  font-family: 'Baloo 2', sans-serif;
  font-weight: 900;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.gallery-fullscreen-close {
  top: 22px;
  right: 22px;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  font-size: 2rem;
  padding-bottom: 0px;
}

.gallery-fullscreen-close:hover {
  transform: scale(1.04);
  box-shadow: 0 7px 0 rgba(0,0,0,0.28);
  filter: brightness(1.06);
}

.gallery-fullscreen-close:active {
  transform: scale(0.98);
  box-shadow: 0 2px 0 rgba(0,0,0,0.28);
}

.gallery-fullscreen-nav {
  top: 50%;
  transform: translateY(-50%);
  width: 58px;
  height: 58px;
  border-radius: 18px;
  font-size: 2.6rem;
}

.gallery-fullscreen-nav:hover {
  transform: translateY(-50%) scale(1.04);
  box-shadow: 0 7px 0 rgba(0,0,0,0.28);
  filter: brightness(1.06);
}

.gallery-fullscreen-nav:active {
  transform: translateY(-50%) scale(0.98);
  box-shadow: 0 2px 0 rgba(0,0,0,0.28);
}

.gallery-fullscreen-prev {
  left: max(22px, calc((100vw - var(--gallery-image-width)) / 2 - 54px));
  padding-right: 3px;
  padding-bottom: 2px;
}

.gallery-fullscreen-next {
  right: max(22px, calc((100vw - var(--gallery-image-width)) / 2 - 54px));
  padding-left: 3px;
  padding-bottom: 2px;
}

.gallery-fullscreen-caption {
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  max-width: min(900px, calc(100% - 32px));
  padding: 10px 16px;
  border-radius: 999px;
  background: white;
  color: var(--text);
  font-weight: 900;
  text-align: center;
  box-shadow: 0 4px 0 rgba(0,0,0,0.18);
}

/* Galerie responsiv */
@media (max-width: 1100px) {
  #galleryAlbums.gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-album-media {
    height: 180px;
  }

  .gallery-stage-image-button {
    height: 430px;
  }
}

@media (max-width: 780px) {
  .gallery-page {
    padding: 24px 0;
  }

  .gallery-hero,
  .gallery-slider-head {
    flex-direction: column;
  }

  .gallery-hero,
  .gallery-viewer-card {
    padding: 18px;
  }

  .gallery-hint {
    min-width: 0;
  }

  #galleryAlbums.gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-album-media {
    height: 185px;
  }

  .gallery-viewer-card {
    padding: 12px;
  }

  .gallery-stage {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 8px;
  }

  .gallery-stage-image-button {
    height: 310px;
    border-radius: 18px;
  }

  .gallery-stage-nav {
    width: 42px;
    height: 42px;
    font-size: 1.8rem;
    border-radius: 14px;
  }

  .gallery-thumbs-all {
    grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
    gap: 8px;
  }

  .gallery-thumb-all {
    height: 58px;
  }

  .gallery-open-hint {
    display: none;
  }

  .gallery-fullscreen {
    --gallery-image-width: calc(100vw - 28px);

    padding: 70px 14px 60px;
  }

  .gallery-fullscreen img {
    max-height: calc(100vh - 150px);
  }

  .gallery-fullscreen-close {
    top: 14px;
    right: 14px;
    width: 46px;
    height: 46px;
    font-size: 1.8rem;
  }

  .gallery-fullscreen-nav {
    width: 42px;
    height: 42px;
    font-size: 2rem;
    border-radius: 14px;
  }

  .gallery-fullscreen-prev {
    left: 10px;
  }

  .gallery-fullscreen-next {
    right: 10px;
  }

  .gallery-fullscreen-caption {
    bottom: 12px;
    border-radius: 18px;
  }
}
