/* ==========================================================================
   EINSTELLUNGEN — hier und nur hier anfassen, um Look & Feel zu ändern.
   Der Rest der Datei (ab "LAYOUT — ab hier nichts mehr anfassen") ist reines
   Handwerk und muss für Änderungen nicht angerührt werden.
   ========================================================================== */
:root{

  /* --- FARBEN: Hauptflächen (Creme & Champagner, 75% Weißanteil) ---------
     Berechnungsbasis: gesättigter Champagner-/Cremeton, gemischt mit 75%
     Weiß. Ergebnis sind sehr helle, warme Flächenfarben für Hintergründe. */
  --champagne:        #F1E8D9;  /* Hauptfläche Champagner (75% Weiß) */
  --cream:             #F8F4E7;  /* Hauptfläche Creme (75% Weiß) */
  --paper:             #FFFDF9;  /* Seiten-Grundton, fast Weiß, wärmer als reines #fff */
  --white:             #ffffff;

  /* --- FARBEN: Akzentflächen (kräftiger, 50% Weißanteil) -----------------
     Für Karten-Rahmen, Buttons, Hover-Zustände — bewusst kräftiger als die
     Hauptflächen oben, damit Buttons/Rahmen sich abheben. */
  --champagne-strong: #E4D0B2;  /* Kräftigeres Champagner (Rahmen, Verläufe) */
  --cream-strong:      #F1E9D0;  /* Kräftigeres Creme (Rahmen, Verläufe) */

  /* --- FARBEN: Gold-Akzent (0% Weiß, volle Sättigung) ---------------------
     Für Call-to-Action-Buttons, Eyebrow-Labels, Icons — der "Schmuck"-Ton. */
  --gold:               #C8A165;
  --gold-light:        #D9B77E;

  /* --- FARBEN: Text ---------------------------------------------------- */
  --ink:                #4A4038;  /* Haupttextfarbe (warmes Dunkelbraun) */
  --ink-soft:          #8A7A6D;  /* Sekundärtext / gedämpft */
  --ink-on-gold:       #4A3B1F;  /* Text auf Gold-Flächen (Buttons) */

  /* --- FARBEN: Linien & Schatten ---------------------------------------- */
  --line:               #EADFC7;
  --card-border:       rgba(151,120,80,.14);
  --shadow:            0 24px 60px rgba(90,68,42,.10);
  --shadow-soft:       0 18px 44px rgba(90,68,42,.08);

  /* --- SCHRIFTEN --------------------------------------------------------
     Fließtext/H1/H3: bestehende Hausschrift (Fallback: Arial).
     H2: kalligrafische Web-Font "Alex Brush" (Google Fonts, lizenzfrei,
     wird über <link> im <head> von index.html geladen — dort ggf. tauschen). */
  --font-body:          "Meta Pro","MetaPro","Meta",Arial,sans-serif;
  --font-hand:          "Alex Brush", cursive;

  /* --- FORM (Ecken/Schatten-Intensität) ---------------------------------
     Ein zentraler Radius-Wert steuert alle abgerundeten Ecken der Seite. */
  --radius-lg:         28px;
  --radius-md:         24px;
  --radius-sm:         14px;

  /* --- HINTERGRUND-MUSTER: Rosen-Ranke an den Seitenrändern --------------
     Große Rosen-Ranke (SVG, assets/pattern-floral.svg, Deckkraft bereits sehr
     niedrig direkt in der Datei eingebacken, aktuell 0.09), läuft als schmale
     Spalte am linken UND rechten Seitenrand vertikal durch (repeat-y), rechts
     automatisch gespiegelt. Die Mitte der Seite bleibt dadurch automatisch
     frei. Deaktivieren: --pattern-floral auf "none" setzen. Spaltenbreite
     über --pattern-width, Ausblenden zur Mitte hin über --pattern-fade. */
  --pattern-floral:    none; /* Rosen-Ranke deaktiviert; zum Reaktivieren: url("assets/pattern-floral.svg") */
  --pattern-width:      190px;
  --pattern-fade:      linear-gradient(90deg, black 0%, black 55%, transparent 100%);
}

/* ==========================================================================
   LAYOUT — ab hier nichts mehr anfassen (Struktur, keine Design-Werte mehr)
   ========================================================================== */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--font-body);
  line-height:1.68;
}
img{max-width:100%;display:block}
a{color:inherit}
figure{margin:0}
.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
.section{padding:96px 0;position:relative;isolation:isolate}
/* Rosen-Ranke je Sektion: ::before = linker Rand, ::after = rechter Rand
   (per scaleX(-1) gespiegelt, nutzt dieselbe SVG-Datei). Beide liegen HINTER
   dem Inhalt (z-index:-1), sind auf --pattern-width schmal begrenzt und
   blenden zur Mitte hin sanft aus (--pattern-fade). Betrifft alle .section,
   aber nicht .hero (eigenes Fotobild) und nicht Header/Footer. */
.section::before,
.section::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  z-index:-1;
  pointer-events:none;
  width:var(--pattern-width);
  background-image:var(--pattern-floral);
  background-repeat:repeat-y;
  background-position:top left;
  background-size:var(--pattern-width) auto;
  mask-image:var(--pattern-fade);
  -webkit-mask-image:var(--pattern-fade);
}
.section::before{ left:0; }
.section::after{ right:0; transform:scaleX(-1); }
/* Sektionsfarben: Klassennamen sind aus historischen Gründen "pink/sage/lilac"
   geblieben, liefern jetzt aber ausschließlich Creme- bzw. Champagner-Verläufe. */
.section-pink{background:linear-gradient(180deg,var(--champagne) 0%, #fff 100%)}
.section-sage{background:linear-gradient(180deg,var(--cream) 0%, #fff 100%)}
.section-lilac{background:linear-gradient(180deg,var(--cream) 0%, #fff 100%)}
.narrow{max-width:860px;margin:auto;text-align:center}
.narrow-copy{max-width:980px}
.align-start{align-items:start}

h1,h3{line-height:1.12;margin:0 0 18px;font-weight:700;letter-spacing:-.02em;font-family:var(--font-body)}
h1{font-size:clamp(2.35rem,5vw,5.2rem)}
h3{font-size:clamp(1.1rem,2vw,1.52rem)}
h2{
  line-height:0.75; /* ZAB: 0.6 + 25% */
  margin:0 0 18px;
  font-weight:500;
  letter-spacing:0;
  font-family:var(--font-hand);
  color:var(--ink);
}
h2{font-size:clamp(1.95rem,4.05vw,3.75rem)} /* 25% kleiner als Basisgröße */
p{margin:0 0 18px}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
  color:var(--gold);
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:34px;
  height:1px;
  background:currentColor;
  opacity:.55;
}
.eyebrow-center{justify-content:center}
.eyebrow-center::after{
  content:"";
  width:34px;
  height:1px;
  background:currentColor;
  opacity:.55;
}
.benefits{font-weight:700;letter-spacing:.03em;color:var(--ink-soft)}

.site-header{
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:15px max(20px,calc((100vw - 1180px)/2));
  background:rgba(255,253,249,.86);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--card-border);
  box-shadow:0 0 0 rgba(74,64,56,0);
  transition:box-shadow .3s ease, background .3s ease;
}
.site-header.is-scrolled{
  background:rgba(255,253,249,.96);
  box-shadow:0 8px 24px rgba(74,64,56,.10);
}
.brand{text-decoration:none}
.brand-logo{display:block;height:36px;width:auto}
.brand-sub{display:block;font-size:.74rem;letter-spacing:.08em;color:var(--ink-soft);margin-top:2px}
.main-nav{display:flex;gap:22px;align-items:center}
.main-nav a{text-decoration:none;font-size:.94rem;transition:color .25s ease}
.main-nav a:hover{color:var(--gold)}
.nav-cta{
  padding:11px 18px;
  border-radius:999px;
  background:var(--champagne-strong);
  font-weight:700;
}
.nav-toggle{
  display:none;
  border:1px solid var(--card-border);
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  padding:10px 16px;
  font:inherit;
}

.hero{
  position:relative;
  min-height:84vh;
  display:grid;
  align-items:end;
  overflow:hidden;
  color:#fff;
  background:#332b23;
}
.hero-slider,
.hero-slide,
.hero-overlay{position:absolute;inset:0}
.hero-slide{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.04);
  transition:opacity .9s ease, transform 6s ease;
}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-overlay{
  background:
    linear-gradient(100deg,rgba(40,32,22,.78) 8%,rgba(40,32,22,.36) 55%,rgba(40,32,22,.18) 100%),
    linear-gradient(180deg,rgba(18,14,10,.14),rgba(18,14,10,.42));
}
.hero-content{position:relative;padding:110px 0 80px}
.hero-panel{
  max-width:760px;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.hero-content h1{max-width:700px}
.hero-content p{max-width:670px;font-size:1.08rem;color:rgba(255,255,255,.92)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-dots{display:flex;gap:10px;margin-top:28px}
.hero-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  border:0;
  background:rgba(255,255,255,.45);
  padding:0;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
}
.hero-dot.is-active{background:#fff;transform:scale(1.15)}

.hero-credit{
  position:absolute;
  right:16px;
  bottom:14px;
  z-index:2;
  font-size:.72rem;
  color:rgba(255,255,255,.72);
  text-decoration:none;
  letter-spacing:.02em;
}
.hero-credit:hover{color:#fff;text-decoration:underline}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none;
  border:0;
  border-radius:999px;
  padding:15px 24px;
  font-weight:700;
  cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
  box-shadow:0 12px 28px rgba(151,120,80,.20);
}
.button:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(151,120,80,.24)}
.button-yellow{
  background:linear-gradient(135deg,var(--gold-light) 0%, var(--gold) 100%);
  color:var(--ink-on-gold);
}
.button-yellow:hover{background:linear-gradient(135deg,#e2c48f 0%, #d3ac72 100%)}
.button.small{padding:11px 18px;font-size:.92rem}

.section-heading{margin-bottom:44px}
.intro{padding-top:82px}
.intro-gallery,
.planning-gallery,
.culinary-photos,
.ceremony-gallery,
.impressions-grid{display:grid;gap:20px}
.intro-gallery{grid-template-columns:.86fr 1.28fr .86fr;margin-top:46px}
.intro-gallery figure{height:460px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);background:#fff}
.intro-gallery figure.portrait{height:460px}
.intro-gallery figure,
.planning-gallery figure,
.culinary-photos figure,
.impressions-grid figure{position:relative}
.intro-gallery img,
.planning-gallery img,
.culinary-photos img,
.ceremony-gallery img,
.impressions-grid img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.intro-gallery figure:hover img,
.planning-gallery figure:hover img,
.culinary-photos figure:hover img,
.ceremony-gallery figure:hover img,
.impressions-grid figure:hover img{transform:scale(1.025)}

.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.feature-card,
.room-card,
.culinary-grid article,
.steps li,
.faq-list details,
.inquiry-form,
.capacity-banner{
  background:rgba(255,255,255,.86);
  border:1px solid var(--card-border);
  box-shadow:var(--shadow-soft);
}
.feature-card,
.room-card,
.culinary-grid article,
.steps li{
  transition:transform .3s ease, box-shadow .3s ease;
}
.feature-card:hover,
.room-card:hover,
.culinary-grid article:hover,
.steps li:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 36px rgba(151,120,80,.18);
}
.feature-card{
  padding:32px;
  border-radius:var(--radius-lg);
}

.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.room-card{overflow:hidden;border-radius:var(--radius-lg)}
.room-card-media{position:relative}
.room-card img{width:100%;height:300px;object-fit:cover;transition:transform .5s ease}
.room-card:hover img{transform:scale(1.04)}
.room-card>div{padding:28px}
.room-capacity{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:.62em;
  font-weight:600;
  color:var(--gold);
  vertical-align:middle;
  white-space:nowrap;
}
.room-capacity-icon{width:15px;height:15px;flex:none}
.capacity-banner{margin-top:30px;padding:34px;border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--cream),#fff)}

.culinary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:34px}
.culinary-grid article{padding:26px;border-radius:var(--radius-md)}
.culinary-photos{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:34px}
.culinary-photos figure{grid-column:span 2;height:340px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft)}
.culinary-photos figure.wide{grid-column:span 4;height:430px}
.culinary-photos figure.narrow{grid-column:span 1;height:230px}

.two-col{display:grid;grid-template-columns:.82fr 1.18fr;gap:62px}

/* Frei anlegbare Zusatzabschnitte (siehe custom_sections im Admin-Bereich) */
.custom-section-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.custom-section-media img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}
.planning-gallery{grid-column:1/-1;grid-template-columns:.82fr 1.36fr .82fr;margin-top:10px}
.planning-gallery figure{height:390px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft)}
.planning-gallery figure.tall{height:390px}

.ceremony-gallery{grid-template-columns:1.38fr .82fr;margin-top:42px}
.ceremony-gallery figure{position:relative;height:470px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}

.photo-credit{
  position:absolute;
  right:14px;
  bottom:12px;
  z-index:2;
  font-size:.7rem;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  letter-spacing:.02em;
  text-shadow:0 1px 3px rgba(0,0,0,.45);
}
.photo-credit:hover{color:#fff;text-decoration:underline}
.photo-credit-static{cursor:default}

.ai-badge{
  position:absolute;
  left:14px;
  bottom:12px;
  z-index:2;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.03em;
  color:#fff;
  background:rgba(74,64,56,.62);
  padding:4px 10px;
  border-radius:999px;
}

.steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  padding:0;
  margin:0;
  list-style:none;
}
.steps li{padding:26px;border-radius:var(--radius-md)}
.steps strong{display:block;margin-bottom:10px}

.impressions-section{background:linear-gradient(180deg,#fff 0%, var(--champagne) 100%)}
.impressions-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:260px}
.impressions-grid figure{border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft);background:#fff}
.impressions-grid figure.tall{grid-row:span 2}
.impressions-grid figure.wide{grid-column:span 2}

.inquiry{background:linear-gradient(180deg,var(--cream) 0%, #fff 100%)}
.inquiry-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
.inquiry-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:30px;
  border-radius:30px;
}
.inquiry-form label{display:grid;gap:8px;font-weight:700}
.inquiry-form label:nth-last-of-type(-n+2),
.inquiry-form button{grid-column:1/-1}
.form-checkgroup{
  grid-column:1/-1;
  border:0;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.form-checkgroup legend{
  font-weight:700;
  padding:0 0 4px;
  color:var(--ink);
}
.form-checkgroup legend .legend-hint{
  font-weight:400;
  color:var(--ink-soft);
  font-size:.85em;
}
.form-checkgroup .checkbox-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:400;
  cursor:pointer;
}
.form-checkgroup .checkbox-label input{
  width:auto;
  accent-color:var(--gold);
}
#formular-status{grid-column:1/-1}
.form-notice{
  display:none;
  margin:16px 0 0;
  padding:14px 20px;
  border-radius:var(--radius-sm);
  font-weight:600;
}
.form-notice.is-visible{display:block}
.form-notice-ok{background:#EAF3DE;color:#27500A}
.form-notice-fail{background:#FCEBEB;color:#791F1F}
.form-checkgroup .checkgroup-text{
  margin-left:26px;
  max-width:360px;
}
input,select,textarea{
  width:100%;
  font:inherit;
  color:var(--ink);
  border:1px solid var(--champagne-strong);
  border-radius:var(--radius-sm);
  padding:13px 14px;
  background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(200,161,101,.22);
}

.faq-list{max-width:950px;margin:auto;display:grid;gap:16px}
.faq-list details{
  border-radius:22px;
  padding:0 22px;
  overflow:hidden;
}
.faq-list summary{
  list-style:none;
  font-weight:700;
  font-size:1.05rem;
  cursor:pointer;
  padding:22px 4px;
  position:relative;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:"+";
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  transition:transform .3s ease;
  color:var(--gold);
  font-size:1.4rem;
  line-height:1;
}
.faq-list details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-list details p{margin:0 0 18px;padding:0 4px}
.faq-list details p:first-of-type{padding-top:0}
.center{text-align:center;margin-top:38px}

footer{padding:32px 0;background:var(--ink);color:#fff;text-align:center}
footer p{margin:0}
footer .footer-legal{margin-top:10px;font-size:.82rem}
footer .footer-legal a{color:rgba(255,255,255,.72);text-decoration:none}
footer .footer-legal a:hover{color:#fff;text-decoration:underline}

.legal-page{max-width:760px;margin:0 auto;padding:120px 0 90px}
.legal-page h1{font-size:clamp(2rem,4vw,2.6rem);margin-bottom:28px}
.legal-page h2{font-family:var(--font-body);font-size:1.15rem;font-weight:700;margin:34px 0 12px;color:var(--ink)}
.legal-page h3{font-family:var(--font-body);font-size:.98rem;font-weight:700;margin:22px 0 10px;color:var(--ink)}
.legal-page p,.legal-page li{color:var(--ink-soft);line-height:1.7;margin:0 0 14px}
.legal-page ul{margin:0 0 14px;padding-left:20px}
.legal-page a{color:var(--gold)}
.legal-page .back-link{display:inline-block;margin-bottom:30px;font-weight:700;color:var(--ink)}

@media (max-width: 980px){
  .main-nav{
    display:none;
    position:absolute;
    top:100%;left:0;right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
    padding:24px 20px;
    background:rgba(255,253,249,.98);
    border-bottom:1px solid var(--card-border);
  }
  .main-nav.open{display:flex}
  .nav-toggle{display:inline-flex}
  .hero{min-height:78vh}
  .hero-panel{max-width:100%}
  .feature-grid,.room-grid,.culinary-grid,.steps{grid-template-columns:1fr 1fr}
  .two-col,.inquiry-grid{grid-template-columns:1fr}
  .inquiry-form{grid-template-columns:1fr}
  .planning-gallery,.intro-gallery{grid-template-columns:1fr 1fr}
  .planning-gallery figure:last-child,
  .intro-gallery figure:last-child{grid-column:1/-1}
  .ceremony-gallery{grid-template-columns:1fr}
  .impressions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 680px){
  .section{padding:72px 0}
  .wrap{width:min(100% - 28px,1180px)}
  .site-header{padding:14px 16px}
  .brand-logo{height:32px}
  .brand-sub{font-size:.68rem}
  .hero{min-height:74vh}
  .hero-content{padding:88px 0 50px}
  .hero-panel{padding:0}
  .hero-content p{font-size:1rem}
  .feature-grid,.room-grid,.culinary-grid,.steps,.inquiry-form,
  .ceremony-gallery{grid-template-columns:1fr}
  .ceremony-gallery figure{
    grid-column:auto;
    grid-row:auto;
    height:310px;
  }
  .room-card img{height:230px}

  /* Bildergalerien mit mehr als 2 Bildern: mobil horizontal wischbar statt
     gestapelt. Angeschnittenes nächstes Bild + Hinweistext machen deutlich,
     dass man wischen kann. */
  .intro-gallery,
  .planning-gallery,
  .culinary-photos,
  .impressions-grid{
    display:flex;
    grid-auto-rows:unset;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:14px;
    padding-bottom:4px;
  }
  .intro-gallery::-webkit-scrollbar,
  .planning-gallery::-webkit-scrollbar,
  .culinary-photos::-webkit-scrollbar,
  .impressions-grid::-webkit-scrollbar{display:none;height:0}
  .intro-gallery figure,
  .intro-gallery figure.portrait,
  .planning-gallery figure,
  .planning-gallery figure.tall,
  .culinary-photos figure,
  .culinary-photos figure.wide,
  .impressions-grid figure,
  .impressions-grid figure.tall,
  .impressions-grid figure.wide{
    flex:0 0 80%;
    scroll-snap-align:center;
    grid-column:auto;
    grid-row:auto;
    height:300px;
  }
}

/* ==========================================================================
   SCROLL-ANIMATIONEN ("Reveal on scroll")
   Elemente faden sanft ein und verschieben sich leicht nach oben, sobald sie
   beim Scrollen ins Blickfeld kommen (siehe IntersectionObserver in script.js).
   Alles ist an die Klasse .has-js gebunden, die script.js sofort beim Start
   setzt — ohne JavaScript (oder bevor es geladen ist) bleibt der Inhalt ganz
   normal sofort sichtbar, es geht nichts verloren. Wer reduzierte Bewegung
   bevorzugt (prefers-reduced-motion), bekommt ebenfalls keine Animation.
   ========================================================================== */
.has-js .section-heading,
.has-js .feature-card,
.has-js .room-card,
.has-js .culinary-grid article,
.has-js .steps li,
.has-js .faq-list details,
.has-js .capacity-banner{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s ease, transform .7s ease;
}
.has-js .section-heading.is-visible,
.has-js .feature-card.is-visible,
.has-js .room-card.is-visible,
.has-js .culinary-grid article.is-visible,
.has-js .steps li.is-visible,
.has-js .faq-list details.is-visible,
.has-js .capacity-banner.is-visible{
  opacity:1;
  transform:none;
}
/* Leicht versetztes Einblenden innerhalb eines Grids wirkt hochwertiger. */
.has-js .feature-card:nth-child(2),
.has-js .room-card:nth-child(2),
.has-js .culinary-grid article:nth-child(2),
.has-js .steps li:nth-child(2){transition-delay:.08s}
.has-js .feature-card:nth-child(3),
.has-js .room-card:nth-child(3),
.has-js .culinary-grid article:nth-child(3),
.has-js .steps li:nth-child(3){transition-delay:.16s}
.has-js .feature-card:nth-child(4),
.has-js .room-card:nth-child(4),
.has-js .culinary-grid article:nth-child(4),
.has-js .steps li:nth-child(4){transition-delay:.24s}

/* Seitliches Einfliegen — bewusst nur an drei kuratierten Bildmomenten
   (Intro-Trio, Planungs-Trio, Trauung-Duo), nicht bei den großen Foto-
   Rastern (Kulinarik/Impressionen/Räume), damit es besonders statt beliebig
   wirkt. Auf Mobilgeräten (kleiner Bildschirm, ohnehin wischbar) bleibt es
   beim einfachen Einblenden; das seitliche Fliegen ist Tablet/Desktop
   vorbehalten. */
.has-js .intro-gallery > figure,
.has-js .planning-gallery > figure,
.has-js .ceremony-gallery > figure{
  opacity:0;
  transition:opacity .8s ease, transform .8s ease;
}
.has-js .intro-gallery > figure.is-visible,
.has-js .planning-gallery > figure.is-visible,
.has-js .ceremony-gallery > figure.is-visible{
  opacity:1;
  transform:none;
}
@media (min-width:681px){
  .has-js .intro-gallery > figure:nth-child(1),
  .has-js .planning-gallery > figure:nth-child(1),
  .has-js .ceremony-gallery > figure:nth-child(1){transform:translateX(-50px)}
  .has-js .intro-gallery > figure:nth-child(2),
  .has-js .planning-gallery > figure:nth-child(2){transform:translateY(34px);transition-delay:.12s}
  .has-js .intro-gallery > figure:nth-child(3),
  .has-js .planning-gallery > figure:nth-child(3){transform:translateX(50px);transition-delay:.22s}
  .has-js .ceremony-gallery > figure:nth-child(2){transform:translateX(50px);transition-delay:.12s}
}

@media (prefers-reduced-motion: reduce){
  .has-js .section-heading,
  .has-js .feature-card,
  .has-js .room-card,
  .has-js .culinary-grid article,
  .has-js .steps li,
  .has-js .faq-list details,
  .has-js .capacity-banner,
  .has-js .intro-gallery > figure,
  .has-js .planning-gallery > figure,
  .has-js .ceremony-gallery > figure{
    opacity:1;
    transform:none;
    transition:none;
  }
}

/* ==========================================================================
   STANDORT-AUSWAHL (Fallback-Ansicht in index.php, wenn eine Domain zu
   keinem Standort passt — z. B. die Haupt-/Auswahl-Domain).
   ========================================================================== */
.picker{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px;
  overflow:hidden;
}
.picker-bg{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(74,64,56,.55) 0%, rgba(74,64,56,.72) 100%), url("assets/hero-standort.jpg") center/cover no-repeat;
}
.picker-card{
  position:relative;
  z-index:1;
  width:100%;
  max-width:480px;
  background:var(--paper);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  padding:48px 40px;
  text-align:center;
}
.picker-logo{width:150px;height:auto;margin:0 auto 20px;display:block}
.picker-eyebrow{margin:0 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.picker h1{margin:0 0 14px;font-family:var(--font-hand);font-weight:400;font-size:clamp(2.4rem,6vw,3.2rem);line-height:0.85;color:var(--ink)}
.picker-sub{margin:0 0 28px;color:var(--ink-soft);line-height:1.6;font-size:.98rem}
.picker-form{display:flex;flex-direction:column;gap:14px;text-align:left}
.picker-label{font-size:.85rem;font-weight:700;color:var(--ink)}
.picker-select{
  width:100%;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1rem;
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%238A7A6D'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:20px;
}
.picker-select:focus{outline:2px solid var(--gold);outline-offset:2px}
.picker-button{width:100%;margin-top:6px}
.picker-error{margin:-4px 0 0;font-size:.82rem;color:#8a3b2f}
@media (max-width:520px){
  .picker-card{padding:36px 26px}
}
