/* =============================================================
   NORMALIZE
   ============================================================= */
*,*::before,*::after{box-sizing:border-box}html{line-height:1.25;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}a{background-color:transparent}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type="button"],[type="submit"]{-webkit-appearance:button}

/* =============================================================
   CUSTOM PROPERTIES
   ============================================================= */
:root {
  --waldgruen:    rgb(85, 115, 60);
  --dunkelgruen:  rgb(45, 67, 54);
  --beere:        rgb(160, 60, 110);
  --beere-dunkel: rgb(100, 50, 80);
  --gelbgruen:    rgb(197, 200, 78);
  --creme:        rgb(240, 238, 233);
  --creme-gruen:  rgb(240, 241, 212);
  --hellgrau:     rgb(228, 228, 224);
  --nav-bg:       rgb(245, 244, 241);
  --footer-bg:    rgb(38, 38, 38);
  --weiss:        rgb(255, 255, 255);
  --text:         rgb(45, 67, 54);
  --text-beere:   rgb(100, 50, 80);
}

/* =============================================================
   @FONT-FACE
   ============================================================= */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jost-v20-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/jost-v20-latin-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lora-v37-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lora-v37-latin-italic.woff2') format('woff2');
}

/* =============================================================
   BASIS
   ============================================================= */
html { scroll-behavior: smooth; font-size: 20px;  }
body {
  font-family: 'Jost', sans-serif;
  font-weight: 400;
  line-height: 1.375;
  color: var(--text);
  background: var(--weiss);
}
h1, h2, h3 { font-weight: 600; line-height: 1.25; margin: 0 0 0.5em; }
h1 { font-size: clamp(1.5rem, 3vw, 2.2rem); text-transform: uppercase; letter-spacing: 0.05em; color: var(--dunkelgruen); }
h2 { font-size: 1.6rem; }
h3 { font-size: clamp(1rem, 2vw, 1.2rem); text-transform: uppercase; letter-spacing: 0.04em; color: var(--dunkelgruen); }
.h2-jost { font-size: clamp(1.2rem, 2.5vw, 1.6rem); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--dunkelgruen); }

.schrift-lora {
  font-family: 'Lora', serif;
  font-style: italic;
  font-weight: 400;
  color: var(--beere);
  font-size: 1.3rem;
  line-height: 1.4;
  display: block;
  margin-bottom: 0.8rem;
}
.obertitel {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dunkelgruen);
  margin-bottom: 0.4rem;
}
p { margin: 0 0 0.85em; }
a { color: var(--beere); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--beere-dunkel); }
img { max-width: 100%; height: auto; display: block; }
address { font-style: normal; }

/* =============================================================
   UTILITY – HINTERGRÜNDE & FARBEN
   ============================================================= */
.bg-weiss       { background: var(--weiss); }
.bg-creme       { background: var(--creme); }
.bg-creme-gruen { background: var(--creme-gruen); }
.bg-hellgrau    { background: var(--hellgrau); }
.bg-nav         { background: var(--nav-bg); }
.bg-waldgruen   { background: var(--waldgruen); }
.bg-dunkelgruen { background: var(--dunkelgruen); }
.bg-beere       { background: var(--beere); }
.bg-footer      { background: var(--footer-bg); }

.text-weiss        { color: var(--weiss); }
.text-dunkel       { color: var(--text); }
.text-beere        { color: var(--beere); }
.text-beere-dunkel { color: var(--text-beere); }
.text-waldgruen    { color: var(--waldgruen); }
.text-dunkelgruen  { color: var(--dunkelgruen); }
.text-gelbgruen    { color: var(--gelbgruen); }

/* =============================================================
   CONTAINER
   ============================================================= */
.container {
  max-width: 1240px;
  margin: 0 auto;
  padding: calc(0.75rem + 1.5vw);
  position: relative;
}

/* =============================================================
   HEADER
   ============================================================= */
header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  background: var(--weiss);
  display: flex;
  align-items: center;
  height: 54px;
  transition: box-shadow 0.3s;
}
header.gescrollt { box-shadow: 0 2px 12px rgba(45,67,54,0.14); }
body { padding-top: 54px; }

.logo {
  display: flex;
  align-items: center;
  padding: 0 0.75rem;
  flex-shrink: 0;
}
.logo img { height: 32px; width: auto; display: block; }

.contacts {
  display: flex;
  align-items: center;
  margin-left: auto;
  flex-shrink: 0;
}
.contacts a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 46px;
  height: 54px;
  background: var(--hellgrau);
  color: var(--beere);
  border-left: 1px solid rgba(45,67,54,0.1);
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s;
}
.contacts a:hover { background: var(--creme); color: var(--beere-dunkel); }
.contacts span { display: none; }

.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 54px;
  height: 54px;
  flex-shrink: 0;
  background: var(--beere);
  border: none;
  cursor: pointer;
  padding: 0;
}
.hamburger span {
  display: block;
  width: 22px; height: 2px;
  background: var(--weiss);
  border-radius: 1px;
  transition: transform 0.3s ease, opacity 0.25s ease;
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* NAV – Mobil (Hamburger) */
nav {
  display: none;
  position: fixed;
  top: 54px; left: 0; right: 0; bottom: 0;
  background: rgba(45,67,54,0.96);
  z-index: 190;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 2rem;
}
nav.open { display: flex; }
nav ul { list-style: none; padding: 0; margin: 0; text-align: center; width: 100%; }
nav ul li { border-bottom: 1px solid rgba(255,255,255,0.1); }
nav ul li a {
  display: block;
  padding: 0.9rem 3rem;
  font-size: 1.1rem; font-weight: 600;
  color: var(--weiss); letter-spacing: 0.05em;
  transition: color 0.2s;
}
nav ul li a:hover,
nav ul li a.aktiv { color: var(--gelbgruen); }
nav ul li a.aktiv::before {
  content: '';
  display: inline-block;
  width: 7px; height: 7px;
  background: var(--beere);
  border-radius: 50%;
  margin-right: 0.5rem;
}

/* =============================================================
   HERO (Startseite)
   ============================================================= */
.hero { position: relative; }
.hero-bild-wrapper {
  position: relative;
  height: 44vh; min-height: 280px; max-height: 860px;
  overflow: hidden;
  border-bottom: 3px solid var(--weiss);
  box-shadow: 0 3px 0 0 var(--beere);
}
.hero-bild { width: 100%; height: 100%; object-fit: cover; object-position: right 35%; display: block; }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(45,67,54,0.04) 0%, rgba(45,67,54,0.44) 100%);
}

.hero-claim {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  text-align: center; z-index: 2; width: 100%;
  padding: 0 calc(0.75rem + 1.5vw);
}
.hero-claim span {
  display: block;
  font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--weiss); text-shadow: 0 2px 16px rgba(0,0,0,0.28);
  opacity: 0;
  animation: atmen 2.2s ease-in-out forwards;
  will-change: transform, opacity;
}
.hero-claim span:nth-child(1) { font-size: clamp(1.8rem, 9vw, 2.8rem); animation-delay: 0.2s; }
.hero-claim span:nth-child(2) { font-size: clamp(2rem, 10vw, 3rem); animation-delay: 1.8s; }
.hero-claim span:nth-child(3) { font-size: clamp(1.6rem, 8vw, 2.6rem); animation-delay: 3.4s; }

@keyframes atmen {
  0%   { opacity: 0; transform: scale(0.75); }
  60%  { opacity: 1; transform: scale(1.25); }
  100% { opacity: 1; transform: scale(1); }
}

.hero-wrapper { position: relative; }

/* Badge – Mobil: im Flow */
.hero-badge-outer {
  position: relative;
  top: auto; left: auto; right: auto;
  height: auto;
  pointer-events: all;
}
.hero-badge {
  position: relative;
  right: auto; top: auto;
  width: auto;
  opacity: 1;
  animation: none;
  transform: none;
  margin: 1.5rem 1rem;
  border-radius: 8px;
  pointer-events: all;
}
.hero-badge-inner {
  background: var(--waldgruen);
  border-radius: 8px 8px 0 0;
  padding: 1.4rem 1.4rem 0;
  overflow: hidden;
}
.hero-badge-inner h1, .hero-badge-inner strong {
  display: block; font-size: 1rem; font-weight: 600;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--gelbgruen); margin: 0 0 0.6rem;
  line-height: 1.3; text-align: center;
}
.hero-badge-inner p {
  font-size: 1.05rem; margin: 0 0 0.4rem;
  color: rgba(255,255,255,0.9); line-height: 1.45; text-align: center;
}
.hero-badge-blumen { width: 100%; height: auto; display: block; transform: scaleX(-1); vertical-align: bottom; margin: 0; }
.hero-badge-btn {
  display: block; background: var(--beere); color: var(--weiss);
  padding: 0.75rem 1rem; text-align: center;
  font-size: 0.9rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em;
  border-radius: 0 0 8px 8px;
  margin-top: 0;
  transition: background 0.2s;
}
.hero-badge-btn:hover { background: var(--beere-dunkel); color: var(--weiss); }

/* =============================================================
   BUTTONS
   ============================================================= */
.btn {
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-family: 'Jost', sans-serif; font-size: 0.875rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em;
  border-radius: 8px;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  cursor: pointer; border: 2px solid transparent; text-decoration: none;
  padding: 0.5rem 1.25rem;
}
.btn--beere        { background: var(--beere); color: var(--weiss); border-color: var(--beere); }
.btn--beere:hover  { background: var(--beere-dunkel); border-color: var(--beere-dunkel); color: var(--weiss); }
.btn--waldgruen    { background: var(--waldgruen); color: var(--weiss); border-color: var(--waldgruen); }
.btn--waldgruen:hover { background: var(--dunkelgruen); border-color: var(--dunkelgruen); color: var(--weiss); }
.btn--kontur-gruen { background: transparent; color: var(--waldgruen); border-color: var(--waldgruen); }
.btn--kontur-gruen:hover { background: var(--waldgruen); color: var(--weiss); }
.btn--kontur-dunkel { background: transparent; color: var(--dunkelgruen); border-color: var(--dunkelgruen); }
.btn--kontur-dunkel:hover { background: var(--dunkelgruen); color: var(--weiss); }
.btn--kontur-weiss { background: transparent; color: var(--weiss); border-color: rgba(255,255,255,0.7); }
.btn--kontur-weiss:hover { background: var(--weiss); color: var(--dunkelgruen); border-color: var(--weiss); }

/* =============================================================
   LAYOUT – SECTIONS
   ============================================================= */
section { padding: calc(1.5rem + 0.5vw) 0; }

/* fw-hero (Unterseiten) */
.fw-hero { height: clamp(400px, 55dvh, 640px); overflow: hidden; border-bottom: 3px solid var(--weiss); box-shadow: 0 3px 0 0 var(--beere); }
.fw-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }

/* fw-hero klein (Kontakt etc.) */
.fw-hero--klein { background: var(--dunkelgruen); display: flex; align-items: center; min-height: 140px; }
.fw-hero--klein h1 { color: var(--weiss); margin: 0; }
.fw-hero--klein .schrift-lora { color: var(--gelbgruen); }

/* Zweispaltig – Mobil: untereinander, kein Flex nötig */
.zwei-spalten > * { display: block; width: 100%; margin-bottom: 1.2rem; }
.zwei-spalten > *:last-child { margin-bottom: 0; }

/* Listen */
.liste-plain { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.liste-plain li { padding: 0.4rem 0; border-bottom: 1px solid rgba(45,67,54,0.1); }
.liste-plain li:last-child { border-bottom: none; }

.liste-pfeil { list-style: none; padding: 0; margin: 0 0 1.3rem; }
.liste-pfeil li { padding: 0.4rem 0; border-bottom: 1px solid rgba(45,67,54,0.09); }
.liste-pfeil li:last-child { border-bottom: none; }
.liste-pfeil li::before { content: '» '; font-weight: 600; }
/* In zweispaltigen Blöcken: keine Linie, mehr Abstand */
.zwei-spalten .liste-pfeil li { border-bottom: none; padding: 0.6rem 0; }

/* Ausstattung – Mobil: untereinander */
.ausstattung-flex { display: block; }
.ausstattung-vase { text-align: center; margin-top: 1rem; }
.ausstattung-vase img { max-height: 240px; width: auto; }

/* Bild-Links-Raus */
.bild-links-raus { display: block; }
.bild-links-raus img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; }

/* fw-bild-titel – Mobil: untereinander */
.fw-bild { display: block; margin-bottom: 1rem; }
.fw-titel { display: block; }
.fw-textblock { margin-left: 0; margin-right: 0; }

/* Block-Versetzt */
.block-versetzt { border-radius: 8px; padding: 1.2rem 1.4rem; position: relative; z-index: 2; margin-top: 1rem; margin-left: 0; }
.block-versetzt p,
.block-versetzt ul li { font-size: 1rem; }
.block-versetzt ul { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.block-versetzt ul li { padding: 0.4rem 0; border-bottom: 1px solid rgba(45,67,54,0.1); }
.block-versetzt ul li:last-child { border-bottom: none; }

/* Block-Mit-Bild-Rechts */
.block-mit-bild-rechts { border-radius: 8px; padding: 1.2rem; overflow: visible; }
.bild-rechts-raus { margin-top: 1rem; }
.bild-rechts-raus img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,0.18); }

/* Block-Mit-Bildern-Links */
.block-mit-bildern-links { border-radius: 8px; padding: 1.2rem; overflow: visible; }
.bilder-links-raus { margin-bottom: 1rem; }
.bilder-links-raus img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,0.12); margin-bottom: 0.5rem; }

/* Preise – Mobil: untereinander */
.preise-grid { margin-top: 1.5rem; }
.preise-grid > * { margin-bottom: 1.5rem; }
.gut-zu-wissen { padding: calc(1.2rem + 0.5vw); border-radius: 8px; }
.gut-zu-wissen h3 { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.09em; color: var(--dunkelgruen); margin-bottom: 1.2rem; }
.gut-zu-wissen h4 { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--waldgruen); margin-bottom: 0.15rem; font-weight: 600; }
.gut-zu-wissen p { font-size: 1rem; margin-bottom: 1rem; }

/* Quicklinks – Mobil: untereinander */
.quicklinks-grid > * {
	margin-bottom: 1.5rem;
	padding: calc(1rem + 0.5vw);
	border-radius: 8px;
	background-color: var(--creme-gruen);
}
.quicklink-item h3 {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--dunkelgruen);
	margin-bottom: 0.6rem;
}
.quicklink-item p {
	font-size: 1rem;
	color: var(--text);
	margin-bottom: 1.2rem;
}

/* =============================================================
   GALERIE  (Flex-Layout mit Padding)
   ============================================================= */
.galerie-raster {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -10px; 
}

.galerie-item {
  flex: 0 0 50%;
  padding: calc(0.25rem + 0.25vw); 
  box-sizing: border-box;
}

.galerie-item figure, 
.galerie-link {
  position: relative;
  margin: 0;
  width: 100%;
  aspect-ratio: 4 / 3; 
  overflow: hidden;
  background: var(--dunkelgruen);
  cursor: pointer;
  border-radius: 2px; 
}

.galerie-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.galerie-item:hover img {
  transform: scale(1.08);
}

.galerie-overlay {
  position: absolute;
  inset: 0;
  background: rgba(45, 67, 54, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.galerie-item:hover .galerie-overlay {
  opacity: 1;
}

.galerie-overlay i {
  color: var(--weiss);
  font-size: 1.5rem;
}

.galerie-caption {
  display: none; /* Wird vom JS für die Lightbox ausgelesen */
}

.galerie-link {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  text-align: center;
  text-decoration: none;
}

.galerie-link a {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 0.85rem;
  color: var(--beere);
}

@media (min-width: 768px) {
  .galerie-item {
    flex: 0 0 33.333%;
  }
}

/* =============================================================
   LIGHTBOX
   ============================================================= */
.lightbox {
  display: none;
  position: fixed; inset: 0;
  z-index: 999;
  background: rgba(0,0,0,0.93);
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.lightbox.aktiv { display: flex; }

.lightbox-bild { max-width: 98vw; max-height: 65vh; object-fit: contain; display: block; }

.lightbox-beschriftung {
  color: rgba(255,255,255,0.7);
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 0.9rem;
  margin: 0.4rem 0 0;
  text-align: center;
  min-height: 1.4em;
}
.lightbox-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 1rem 0 0.5rem;
  width: 100%;
}
.lightbox-schliessen {
  position: absolute;
  top: 1rem; right: 1.4rem;
  background: none; border: none;
  color: var(--weiss); font-size: 2.2rem;
  cursor: pointer; opacity: 0.75; line-height: 1;
  transition: opacity 0.2s;
}
.lightbox-schliessen:hover { opacity: 1; }
.lightbox-nav {
  background: rgba(255,255,255,0.15); border: none;
  color: var(--weiss); width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; cursor: pointer; border-radius: 50%;
  transition: background 0.2s; flex-shrink: 0;
}
.lightbox-nav:hover { background: rgba(255,255,255,0.28); }
.lightbox-zaehler { color: rgba(255,255,255,0.6); font-size: 0.9rem; min-width: 60px; text-align: center; }

/* =============================================================
   FOOTER
   ============================================================= */
footer { background: var(--footer-bg); font-size: 1rem; line-height: 1.5rem; color: rgba(255,255,255,0.65); }
.footer-haupt { position: relative; overflow: hidden; }
.footer-grid { display: flex; flex-flow: row wrap; align-items: start; }
.footer-grid > div { flex: 1 1 auto; padding: calc(1rem + 0.5vw); padding-bottom: 7vh; }
img.footer-logo { height: 44px; width: auto; margin-bottom: 0.5rem; }
.footer-blumen {
  position: absolute; right: 0; bottom: 0;
  min-width: 180px; width: calc(10vw + 10vh);
  height: auto; display: block; pointer-events: none; z-index: 0;
}
footer a { color: rgba(255,255,255,0.65); transition: color 0.2s; }
footer a:hover { color: var(--weiss); }
footer ul, footer ul li { list-style: none; padding: 0; margin: 0; }
.footer-unten {
  background: var(--weiss);
  padding: calc(0.75rem + 0.75vw);
  text-align: center;
  margin: 0 auto;
  position: relative;
  color: rgba(45,67,54,0.55); font-size: 0.875em;
}
.footer-unten a { color: var(--dunkelgruen); transition: color 0.2s; }
.footer-unten a:hover { color: var(--beere); }

/* =============================================================
   KONTAKT
   ============================================================= */
.kontakt-hero-info { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 0.8rem; }
.kontakt-hero-info a, .kontakt-hero-info span { color: rgba(255,255,255,0.9); font-size: 0.9rem; display: flex; align-items: center; gap: 0.4rem; }
.kontakt-hero-info a:hover { color: var(--weiss); }
.kontakt-maps { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 0.8rem; }
.kontakt-maps a { font-size: 0.82rem; color: var(--waldgruen); display: inline-flex; align-items: center; gap: 0.25rem; text-decoration: underline; }
.kontakt-maps a:hover { color: var(--dunkelgruen); }
.kontakt-maps i { font-size: 0.8rem; }

.kontakt-raster { display: flex; flex-direction: column; gap: 3rem; }
.kontakt-zeile { display: flex; flex-direction: column; gap: 0; }
.kontakt-feld { display: flex; flex-direction: column; gap: 0.3rem; margin-bottom: 1rem; }
.kontakt-feld label { font-size: 0.82rem; font-weight: 600; color: var(--dunkelgruen); }
.kontakt-feld input, .kontakt-feld select, .kontakt-feld textarea {
  border: 1px solid rgba(45,67,54,0.2); border-radius: 6px;
  padding: 0.5rem 0.75rem; font-size: 0.9rem; font-family: inherit;
  background: rgba(197,200,78,0.1); color: var(--text); transition: background 0.2s, border-color 0.2s;
}
.kontakt-feld input:focus, .kontakt-feld select:focus, .kontakt-feld textarea:focus {
  outline: none; border-color: var(--waldgruen); background: var(--creme);
}
.kontakt-pflichtfeld { font-size: 0.78rem; color: var(--text); margin-bottom: 0.5rem; }
.kontakt-datenschutz { font-size: 0.78rem; margin-bottom: 1rem; }
.kontakt-eintrag { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.2rem; }
.kontakt-icon { color: var(--beere); font-size: 0.95rem; width: 20px; flex-shrink: 0; padding-top: 0.35rem; }
.kontakt-eintrag h4 { margin: 0 0 0.2rem; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--dunkelgruen); }

/* Texte/Impressum */
.text-seite { max-width: 760px; }
.text-seite h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.06em; margin-top: 2rem; }
.text-seite ul { padding-left: 1.4rem; margin-bottom: 1rem; }

/* =============================================================
   MEDIA QUERIES
   ============================================================= */

@media (min-width: 768px) {
  html { font-size: 21px; }

  body { padding-top: 118px; }

  header { flex-wrap: wrap; height: auto; }

  .logo { height: 66px; padding: 0 calc(1rem + 1vw); max-width: 300px; overflow: hidden; transition: max-width 0.4s ease, opacity 0.4s ease, padding 0.4s ease; }
  .logo img { height: 44px; transition: height 0.3s; }

  .contacts { height: 66px; padding-right: calc(1rem + 1vw); gap: 0.6rem; margin-left: auto; transition: all 0.4s ease; }
  .contacts a { width: auto; height: auto; padding: 0.4rem 1rem; border-radius: 8px; border-left: none; background: var(--beere); color: var(--weiss); gap: 0.5rem; transition: background 0.2s; }
  .contacts a:hover { background: var(--beere-dunkel); color: var(--weiss); }
  .contacts span { display: inline; }

  .hamburger { display: none; }

  nav {
    display: flex !important;
    position: static;
    background: var(--nav-bg);
    border-top: 1px solid rgba(45,67,54,0.08);
    border-bottom: 1px solid rgba(45,67,54,0.12);
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 0;
    height: 52px;
    width: 100%;
    flex-basis: 100%;
    top: auto; bottom: auto;
  }
  nav ul { display: flex; flex-direction: row; width: auto; text-align: left; list-style: none; margin: 0; padding: 0; }
  nav ul li { border-bottom: none; }
  nav ul li a {
    display: flex; align-items: center;
    height: 52px; padding: 0 0.85rem;
    font-size: 0.9rem; font-weight: 400;
    color: var(--dunkelgruen); letter-spacing: 0.03em;
    border-bottom: 3px solid transparent;
    transition: color 0.2s, border-bottom-color 0.2s;
    white-space: nowrap;
  }
  nav ul li a:hover { color: var(--beere); border-bottom-color: var(--beere); }
  nav ul li a.aktiv { color: var(--beere); font-weight: 600; border-bottom-color: var(--beere); }
  nav ul li a.aktiv::before {
    content: '';
    display: inline-block;
    width: 7px; height: 7px;
    background: var(--beere);
    border-radius: 50%;
    margin-right: 0.4rem;
    flex-shrink: 0;
  }

  header.gescrollt { flex-wrap: nowrap; }
  header.gescrollt .logo { max-width: 0; opacity: 0; padding: 0; height: 52px; }
  header.gescrollt .contacts { position: absolute; right: 0; top: 52px; height: 52px; padding: 0 0.75rem; gap: 0.4rem; z-index:201; }
  header.gescrollt .contacts a { width: 36px; height: 36px; padding: 0; gap: 0; border-radius: 50%; justify-content: center; background: var(--beere); color: var(--weiss); }
  header.gescrollt .contacts span { display: none; }
  header.gescrollt nav { border-top: none; flex-basis: 100%; }

  /* Hero */
  .hero-bild-wrapper { height: 55vh; min-height: 380px; max-height: 560px; }
  .hero-badge-outer { position: absolute; top: calc(55vh - 200px); left: 0; right: 0; height: 0; pointer-events: none; }
  .hero-badge { position: absolute; right: calc(0.75rem + 1.5vw); top: 220px; width: 280px; margin: 0; border-radius: 8px; pointer-events: all; opacity: 1; animation: none; transform: none; }
  .hero-badge-inner { border-radius: 8px; }
  .hero-badge-btn { border-radius: 8px; margin-top: 0.7rem; }
  .intro-text-wrap { max-width: 55%; }

  /* Layout */
  .zwei-spalten { display: flex; flex-direction: row; gap: 2.5rem; align-items: center; }
  .zwei-spalten > * { width: auto; margin-bottom: 0; }

  .fw-bild-titel { display: flex; flex-direction: row; align-items: flex-start; gap: 2rem; }
  .fw-bild { flex: 0 0 55%; margin-bottom: 0; margin-left: calc(0.75rem - 1.5vw); }
  .fw-titel { flex: 1; padding-top: 1rem; }

  .block-mit-bild-rechts { display: flex; flex-direction: row; align-items: flex-start; gap: 2rem; padding: calc(1.5rem + 1vw); }
  .bild-rechts-raus { flex: 0 0 50%; margin: 0 -2rem -2rem 1.5rem; }

  .block-mit-bildern-links { display: flex; flex-direction: row; align-items: flex-start; gap: 2rem; padding: calc(1.5rem + 1vw); }
  .bilder-links-raus { flex: 0 0 38%; margin-left: calc(-1.5rem - 1vw); margin-bottom: 0; }
  .bilder-links-raus img { margin-bottom: 0; }

  .block-mit-bild-rechts .block-text,
  .block-mit-bildern-links .block-text { flex: 1; min-width: 0; }

  .block-versetzt { margin-top: 1.2rem; padding: calc(1.5rem + 0.5vw) calc(1.8rem + 0.5vw); }
  .bild-links-raus { margin-left: calc(-0.75rem - 1.5vw); }

  /* Ausstattung */
  .ausstattung-flex { display: flex; flex-direction: row; gap: 2rem; align-items: flex-start; }
  .ausstattung-flex > div:not(.ausstattung-vase) { flex: 1; }
  .ausstattung-vase { flex: 0 0 auto; margin-top: 0; text-align: right; }
  .ausstattung-vase img { max-height: 300px; }

  /* Preise & Quicklinks – 2 Spalten */
  .preise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
  .preise-grid > * { margin-bottom: 0; }
  .quicklinks-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
  .quicklinks-grid > * { margin-bottom: 0; }
  .quicklnks-item a { font-size:0.825rem; padding:0.5rem 1.2rem; }

  /* Lightbox */
  .lightbox-bild { max-width: 90vw; max-height: 78vh; }

  /* Kontakt */
  .kontakt-raster { flex-direction: row; align-items: flex-start; }
  .kontakt-formular { flex: 1.2; }
  .kontakt-info-block { flex: 0.8; }
  .kontakt-zeile { flex-direction: row; gap: 1rem; }
}

@media (min-width: 1024px) {
  html { font-size: 22px; }
  body { padding-top: 136px; }

  .logo { height: 84px; padding: 0 calc(1.5rem + 1vw); }
  .logo img { height: 54px; }
  .contacts { height: 84px; padding-right: calc(1.5rem + 1vw); gap: 0.75rem; }
  .contacts a { padding: 0.45rem 1.2rem; font-size: 0.85rem; }

  header.gescrollt .logo { max-width: 180px; opacity: 1; padding: 0 0.75rem 0 calc(1rem + 1vw); height: 52px; background: var(--nav-bg); border-top: 1px solid rgba(45,67,54,0.08); border-bottom: 1px solid rgba(45,67,54,0.12); }
  header.gescrollt .logo img { height: 28px; }
  header.gescrollt .contacts { top: 0; height: 52px; }

  /* Hero */
  .hero-bild-wrapper { height: 74vh; min-height: 520px; max-height: 860px; }
  .hero-claim span:nth-child(1) { font-size: clamp(2.2rem, 4.8vw, 4.2rem); }
  .hero-claim span:nth-child(2) { font-size: clamp(2.4rem, 5.2vw, 4.6rem); }
  .hero-claim span:nth-child(3) { font-size: clamp(2rem, 4.4vw, 3.8rem); }
  .hero-badge-outer { top: calc(74vh - 260px); }
  .hero-badge { width: 340px; opacity: 0; transform: translateY(-28px); animation: badge-rein 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94) 5.4s forwards; }

  @keyframes badge-rein {
    0%   { opacity: 0; transform: translateY(-28px); }
    100% { opacity: 1; transform: translateY(0); }
  }

  .intro-text-wrap { max-width: 60%; }
  .block-versetzt { margin-top: -3rem; margin-left: 30%; }
  .bild-rechts-raus { flex: 0 0 55%; margin: -1rem -5rem -3rem 2rem; }
  .bilder-links-raus { margin-left: calc(-1.5rem - 1vw); }

  /* Ausstattung Desktop */
  .ausstattung-flex { align-items: flex-end; }
  .ausstattung-flex > div:not(.ausstattung-vase) { align-self: flex-start; }
  .ausstattung-vase img { max-height: 400px; }
}

@media (min-width: 1280px) {
  .bild-rechts-raus { flex: 0 0 38.2%; margin-right: -5rem; }
  .bilder-links-raus { margin-left: -3rem; }
}

/* =============================================================
   PREISTABELLE
   ============================================================= */
.preis-tabelle-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.preis-tabelle {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  min-width: 380px;
}
.preis-tabelle th,
.preis-tabelle td {
  padding: 0.6rem 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(45,67,54,0.12);
  vertical-align: middle;
}
.preis-tabelle thead th {
  background: var(--dunkelgruen);
  color: var(--weiss);
  font-weight: 600;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  white-space: nowrap;
}
.preis-tabelle thead th:first-child { border-radius: 8px 0 0 0; }
.preis-tabelle thead th:last-child  { border-radius: 0 8px 0 0; }
.preis-tabelle tbody tr:nth-child(even) { background: var(--creme); }
.preis-tabelle tbody tr:last-child td { border-bottom: none; }
.preis-tabelle td:not(:first-child) { text-align: right; font-weight: 600; color: var(--dunkelgruen); }
.preis-tabelle .preis-hinweis {
  font-size: 0.82rem;
  color: rgba(45,67,54,0.65);
  margin-top: 0.6rem;
}
