
:root{
  --dark-blue:#0D1B2A; --gold:#FFD700; --cream:#FFF8E7; --white:#fff;
  --text-dark:#2C3E50; --text-light:#7F8C8D;
  --shadow:0 10px 30px rgba(0,0,0,.1); --shadow-hover:0 20px 40px rgba(0,0,0,.15);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
    background: linear-gradient(
        to bottom,
        #0f1418 0%,
        #16181c 40%,
        #1b1d21 70%,
        #1f1f22 100%
    );
    background-attachment: fixed;

    font-family:'Montserrat',sans-serif;
    color:var(--text-dark);
    line-height:1.6;
    /* background:var(--cream);  <-- ENTFERNEN! */
}
h1,h2,h3,h4{font-family:'Playfair Display',serif;color:var(--dark-blue)}
h1{font-size:clamp(2.2rem,4vw,3.5rem)}
h2{font-size:clamp(1.8rem,3.2vw,2.6rem)}
h3{font-size:clamp(1.4rem,2.4vw,2rem)}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* Header */
header{position:sticky;top:0;width:100%;background:rgba(13,27,42,.96);backdrop-filter:blur(10px);z-index:1000;box-shadow:0 2px 20px rgba(0,0,0,.1)}
nav{display:flex;justify-content:space-between;align-items:center;padding:16px 0}
.logo{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:900;color:var(--gold);text-decoration:none}
.nav-menu{display:flex;list-style:none;gap:24px}
.nav-menu a{color:#fff;text-decoration:none;font-weight:600;letter-spacing:.5px;position:relative;text-transform:uppercase;font-size:.9rem}
.nav-menu a::after{content:'';position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--gold);transition:width .3s}
.nav-menu a:hover::after,.nav-menu a.active::after{width:100%}

/* Hero */
.hero {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        to bottom,
        rgba(13,27,42,1) 0%,        /* gleiche Farbe wie Header */
        rgba(13,27,42,0.85) 30%,
        rgba(20,22,26,0.6) 60%,
        rgba(27,29,33,0.3) 80%,
        rgba(31,31,34,0) 100%        /* weich auslaufend */
    );
    text-align: center;
    color: #fff;
}

.hero h1{color:#fff;margin:.5rem 0}
.tagline{color:var(--gold)}
.btn{display:inline-block;padding:12px 28px;background:var(--gold);color:var(--dark-blue);border-radius:50px;text-decoration:none;font-weight:700;box-shadow:var(--shadow);transition:.3s}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
/* Der Inhalt bleibt perfekt in der Mitte */
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  padding: 0 20px;
  transform: translateY(-20%); /* vorher -5%, jetzt weiter nach oben */
}

/* Sections */
section{padding:72px 0}
.section-title{text-align:center;margin-bottom:40px}
.section-title h2{margin-bottom:8px}
.section-subtitle{color:var(--text-light)}

/* c */
.about-content{display:grid;grid-template-columns:1fr 1fr;gap:48px}
@media (max-width:900px){.about-content{grid-template-columns:1fr}}

/* Menu page */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.menu-card{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:24px}
.menu-card h3{margin-bottom:10px}
.menu-card .menu-sub{margin-top:14px;margin-bottom:6px;color:var(--dark-blue);font-weight:700}
.menu-list{margin-left:18px}
.menu-list li{margin:.35rem 0}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.gallery-item{position:relative;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform .4s}
.gallery-item:hover img{transform:scale(1.06)}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;z-index:3000}
.lightbox.open{display:flex}
.lightbox-content{max-width:90%;max-height:90%}
.lightbox-close{position:absolute;top:20px;right:30px;color:#fff;font-size:2rem;cursor:pointer}

/* Instagram */
.insta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.insta-card{background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.insta-card a{display:block;text-decoration:none;color:inherit}
.insta-card img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.insta-card .insta-caption{padding:10px;font-size:.9rem;color:var(--text-dark)}
.insta-error{margin-top:12px;color:#c0392b}

/* Contact form (single step) */
.multi-step-form{max-width:900px;margin:0 auto;background:#fff;border-radius:20px;padding:40px;box-shadow:0 20px 60px rgba(0,0,0,.1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.form-field label{display:block;margin-bottom:8px;color:var(--dark-blue);font-weight:600}
.form-field input,.form-field textarea{width:100%;padding:12px 14px;border:1px solid #E0E0E0;border-radius:10px;background:#FAFAFA}
.form-navigation{display:flex;justify-content:flex-end;margin-top:18px}
.btn-submit{padding:12px 24px;border:0;border-radius:28px;background:#4CAF50;color:#fff;font-weight:700;cursor:pointer}
.form-success{text-align:center;padding:28px}

/* Footer */
footer{background:var(--dark-blue);color:#fff;text-align:center;padding:24px 0;margin-top:40px}
footer a{color:var(--gold)}


/* === Updates (v2) === */

/* Header: push nav to right */
nav{display:flex;align-items:center;gap:28px}
.nav-menu{display:flex;list-style:none;gap:24px;margin-left:auto}
.nav-menu li{list-style:none}

/* Menu vertical & centered */
.container.narrow{max-width:900px}
.menu-vertical{background:transparent}
.menu-vertical .section-title{text-align:center;margin-bottom:36px}
.menu-block{padding:28px 0;border-bottom:1px solid rgba(13,27,42,.12);text-align:center}
.menu-block:last-child{border-bottom:0}
.menu-title{
  font-family:'Playfair Display',serif;
  font-weight:700;
  letter-spacing:.3px;
  margin-bottom:14px;
  position:relative;
  display:inline-block;
  padding:0 12px;
}
.menu-title::after{
  content:'';
  display:block;
  height:2px;
  width:120px;
  margin:10px auto 0;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.menu-body{max-width:760px;margin:0 auto}
.menu-body .menu-sub{
  font-family:'Playfair Display',serif;
  font-weight:700;
  margin:16px 0 8px;
  
}
.menu-list{
  margin:0 auto 6px;
  padding:0;
  list-style:none;
  max-width:720px;
}
.menu-list li{
  margin:.35rem 0;
  position:relative;
  padding-left:0;
}
.menu-list li::before{
  content:'•';
  color:var(--gold);
  margin-right:.5ch;
}

/* Contact refined typography */
.contact-refined .form-main-title {
  font-family: 'Shadows Into Light', cursive !important;
  font-size: 2.8rem;
  color: #ffffff;
  text-align: center;
  letter-spacing: 1px;
  font-weight: 400;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}
.contact-refined .form-subtitle{
  text-align:center;
  color:var(--text-light);
  margin-bottom:22px;
}
.contact-refined .multi-step-form{background:#fff; border-radius:20px; padding:36px}
.contact-refined .form-field label{font-weight:600; letter-spacing:.2px; font-family:'Montserrat',sans-serif}
.contact-refined input, .contact-refined textarea{
  font-size:1rem; background:#FAFAFA; border:1px solid #E5E7EB; border-radius:10px;
}
.contact-refined .btn-submit{background:var(--gold); color:var(--dark-blue)}
.contact-refined .btn-submit:hover{filter:brightness(.95)}

/* Footer with grid and gold links */
footer{background:var(--dark-blue);color:#fff}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:16px}
footer a{color:var(--gold);text-decoration:none}
footer a:hover{text-decoration:underline}
footer .sep{opacity:.6;margin:0 8px}

/* Legal pages */
.legal .legal-content{max-width:900px;margin:0 auto;font-size:1rem;line-height:1.75}
.legal h3{margin:18px 0 6px}
.legal p{margin:8px 0}


/* ==== Flyer Theme (v3) ==== */

/* Fonts: handwritten headline + clean body */
body{background:#2f2f32; color:#EEE;}
h1,h2,h3,h4{color:#FFF; font-family:'Shadows Into Light', 'Caveat', 'Playfair Display', serif;}
p,li,label,input,textarea,button, a{color:#EAEAEA}

/* Chalkboard texture via layered gradients */
body::before{
  content:''; position:fixed; inset:0; z-index:-2;
  background:
    radial-gradient(ellipse at 20% 10%, rgba(255,255,255,.04), transparent 40%),
    radial-gradient(ellipse at 80% 0%, rgba(255,255,255,.03), transparent 35%),
    radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.03), transparent 40%),
    linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.35)),
    #2f2f32;
  background-blend-mode: overlay, overlay, overlay, multiply, normal;
}

/* Brand accent colors */
:root{
  --herb:#6FBF73;    /* Basilikum-Grün */
  --tomato:#E4572E;  /* Tomaten-Rot */
  --wood:#C79A63;    /* Holzlöffel-Ton */
  --chalk:#ffffff;
  --gold:#E7C87E;    /* sanfter Gold/Cremeton für Ornamente */
}

/* Header */
header{background:rgba(20,20,22,.9); box-shadow:0 10px 30px rgba(0,0,0,.4)}
.logo{color:var(--gold)}
.nav-menu a{color:#fff; opacity:.95}
.nav-menu a::after{background:var(--herb)}
.nav-menu a:hover{color:#fff}
.nav-menu a.active::after{background:var(--tomato)}

/* Hero with flyer image if present */
.hero{min-height:72vh; background-image:
  linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.65)),
  url('../img/hero-flyer.jpg');
  background-size:cover; background-position:center; border-bottom:1px solid rgba(255,255,255,.08);
}
.hero .tagline{color:var(--gold)}
.btn{background:var(--tomato); color:#fff}
.btn:hover{transform:translateY(-2px); filter:brightness(1.05)}

/* Sections */
.section-subtitle{color:#cfcfcf}

/* Menu (vertical, centered) */
.menu-title{color:#FFF}
.menu-title::after{background:linear-gradient(90deg, transparent, var(--gold), transparent)}
.menu-body .menu-sub{color:var(--gold)}
.menu-list li{color:#EEE}
.menu-list li::before{color:var(--herb)}

/* Gallery */
.gallery-grid .gallery-item{border:1px solid rgba(255,255,255,.08)}
.gallery-item img{filter:brightness(.95) saturate(1.02)}
.lightbox{background:rgba(0,0,0,.95)}

/* Instagram */
.insta-card{background:#1f1f22; border:1px solid rgba(255,255,255,.06)}
.insta-card .insta-caption{color:#DDD}
.insta-error{color:#ffad99}

/* Contact refined */
.multi-step-form{background:#1f1f22; color:#EEE; border:1px solid rgba(255,255,255,.06)}
.form-field label{color:#FFF}
.form-field input,.form-field textarea{background:#2a2a2d; color:#EEE; border:1px solid #3a3a3e}
.btn-submit{background:var(--herb); color:#0f1418}
.btn-submit:hover{filter:brightness(1.08)}

/* Footer */
footer{background:#141418; color:#fff; border-top:1px solid rgba(255,255,255,.08)}
footer a{color:var(--gold)}

/* Cards off: ensure previous card shadows don't appear */
.menu-card{background:transparent; box-shadow:none; padding:0}
.menu-grid{display:block}


/* ==== Flyer Theme v4 (Modern) ==== */

/* HERO modern light stone background */
.hero{
  min-height:72vh;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.0) 0%, rgba(0,0,0,.25) 100%),
    url('../img/hero-modern.jpg');
  background-size:cover;
  background-position:center;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.hero h1{color:#1C1C1C}
.hero .tagline{color:#6b6b6b}
.btn{background:#E7C87E; color:#1b1b1b}
.btn:hover{filter:brightness(0.95)}

/* CONTACT – light card on light section */
section.contact-refined{
  background: linear-gradient(180deg, #f3f4f6 0%, #eef0f2 100%);
}
.contact-refined .multi-step-form{
  background:#f8f8f8;
  color:#222;
  border:1px solid #e7e7e7;
  box-shadow: 0 12px 40px rgba(0,0,0,.08);
}
.contact-refined .form-main-title{
  font-family:'Playfair Display',serif;
  color:#111;
  letter-spacing:.2px;
}
.contact-refined .form-subtitle{color:#444}
.contact-refined .form-field label{color:#222}
.contact-refined input, .contact-refined textarea{
  background:#fff; color:#111; border:1px solid #dcdcdc;
}
.contact-refined .btn-submit{
  background:#E7C87E; color:#1b1b1b; box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.contact-refined .btn-submit:hover{filter:brightness(.96)}

/* Ensure legal/footer contrast stays readable */
footer{border-top:1px solid rgba(255,255,255,.08)}


/* ==== v5 Updates ==== */

/* Sticky footer layout */
html, body { height: 100%; }
body { display: flex; flex-direction: column; }
main { flex: 1; }
footer { margin-top: auto; }

/* Hero: bright elegant catering image */
.hero {
  background-image:
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(0,0,0,0.25) 100%),
    url('../img/hero‐modern.jpg');
  background-size: cover;
  background-position: center;
}


/* Contact section: dark, harmonized */
section.contact-refined{
  background: radial-gradient(1200px 800px at 30% 10%, rgba(255,255,255,0.06), transparent 60%), #2f2f32;
  padding-top: 84px;
  padding-bottom: 84px;
}
.contact-refined .multi-step-form{
  background: rgba(31,31,34,0.86);
  color: #F2F2F2;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.contact-refined .form-main-title{
  font-family: 'Playfair Display', serif;
  color: #FFFFFF;
}
.contact-refined .form-subtitle{ color: #cfcfcf; }
.contact-refined .form-field label{ color: #FFFFFF; }
.contact-refined input, .contact-refined textarea{
  background:#2a2a2d; color:#EEE; border:1px solid #3a3a3e;
}
.contact-refined input::placeholder, .contact-refined textarea::placeholder{ color:#bdbdbd; }
.contact-refined .btn-submit{
  background: var(--gold); color: #1b1b1b; box-shadow: 0 8px 22px rgba(0,0,0,.35);
}
.contact-refined .btn-submit:hover{ filter: brightness(.96); }


/* Enforced hero background fix */
.hero {
  background-image:
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(0,0,0,0.25) 100%),
    url('../img/hero-modern.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  min-height: 100vh;
}


/* === v6 Dark Milkglass Overlay for Hero === */
.hero {
  position: relative;
  min-height: 100vh;
  background-image:
    linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
    url('../img/hero-modern.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: white;
}

.hero * {
  position: relative;
  z-index: 1;
}

.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(3px);
  z-index: 0;
}


/* === v7 White Hero Text + Unified Playfair Display === */
.hero h1, .hero h2, .hero p, .hero span {
  color: #FFFFFF !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

.hero h1 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.contact-refined .form-main-title {
  font-family: 'Playfair Display', serif !important;
  color: #FFFFFF !important;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.4px;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}
.hero h1 {
  font-family: 'Shadows Into Light', cursive !important;
  font-size: 4rem;
  font-weight: 400;
  color: #ffffff;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
  letter-spacing: 1px;
}
/* Kontaktformular-Titel mit handschriftlicher Schrift */
.contact-refined .form-main-title {
  font-family: 'Shadows Into Light', cursive !important;
  font-size: 2.8rem;
  color: #ffffff;
  text-align: center;
  letter-spacing: 1px;
  font-weight: 400;
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}
#header {
  background-color: #111; /* dunkler Hintergrund */
  padding: 10px 0;
}

body { background: linear-gradient(to bottom, rgba(15,20,24,1) 0%, rgba(15,20,24,0.7) 30%, rgba(22,24,28,1) 100%); }

/* Navigation */
#header nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logo */
.logo img {
  height: 60px;          /* gewünschte Höhe am Desktop */
  width: auto;           /* proportional skalieren */
  object-fit: contain;   /* kein Verzerren */
  transition: transform 0.2s ease-in-out;
}

/* Logo Hover (optional) */
.logo img:hover {
  transform: scale(1.05);
}

/* Navigation links */
.nav-menu {
  display: flex;
  gap: 25px;
  list-style: none;
}

.nav-link {
  text-decoration: none;
  color: #fff;
  font-weight: 500;
  transition: color 0.2s ease-in-out;
}

.nav-link:hover {
  color: #d4a017; /* goldene Hover-Farbe */
}

/* Hamburger Menü (mobil) */
.hamburger {
  display: none;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .logo img {
    height: 50px;
  }
}

@media (max-width: 768px) {
  nav {
    flex-direction: row;
  }

  .nav-menu {
    display: none; /* ausgeblendet bis Hamburger aktiv ist */
  }

  .hamburger {
    display: block;
    cursor: pointer;
  }

  .logo img {
    height: 40px;
  }
}
/* === Instagram Grid Styling === */
#insta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 15px;
  margin-top: 40px;
}

.insta-card {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.insta-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease, filter 0.5s ease;
  filter: brightness(90%);
}

/* Hover Effekt: sanfte Vergrößerung + dunkler Filter */
.insta-card:hover img {
  transform: scale(1.05);
  filter: brightness(60%);
}

/* Caption Overlay */
.insta-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 15px;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s ease;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

/* Text blendet sanft ein */
.insta-card:hover .insta-caption {
  opacity: 1;
  transform: translateY(0);
}

/* Edler Glanz beim Hover */
.insta-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.4), transparent);
  transform: skewX(-25deg);
  transition: left 0.75s ease;
}

.insta-card:hover::after {
  left: 125%;
}

/* --- Desktop Standard --- */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
}

.nav-menu {
  display: flex;
  gap: 2rem;
  list-style: none;
}

.nav-link {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s ease;
}

.nav-link:hover {
  color: #d4af37; /* goldener Akzent */
}

/* --- Hamburger Symbol --- */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 5px;
  z-index: 1001;
  transition: transform 0.2s ease;
}

.hamburger span {
  width: 25px;
  height: 3px;
  background: #fff;
  border-radius: 3px;
  transition: all 0.35s cubic-bezier(0.68, -0.55, 0.27, 1.55); /* smooth bounce */
}

/* --- Hover Effekt --- */
.hamburger:hover span {
  background: #d4af37; /* goldener Akzent */
  box-shadow: 0 0 6px rgba(212, 175, 55, 0.6);
}

.hamburger:hover {
  transform: scale(1.1);
}

/* --- Mobile Menü --- */
@media (max-width: 1024px) {
  .hamburger {
    display: flex;
  }

  .nav-menu {
    position: absolute;
    top: 80px;
    right: 0;
    width: 100%;
    background-color: #111;
    flex-direction: column;
    align-items: center;
    display: none; /* versteckt */
    padding: 20px 0;
    z-index: 1000;
  }

  .nav-menu.active {
    display: flex; /* eingeblendet */
    animation: fadeIn 0.3s ease forwards;
  }

  .nav-link {
    padding: 10px 0;
    font-size: 18px;
  }
}

/* --- Animation beim Öffnen --- */
.nav-menu.active li {
  animation: fadeIn 0.3s ease forwards;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* --- Klick Animation (Burger -> X) --- */
.hamburger.open span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.hamburger.open span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* --- Kleine Bewegung beim Drücken --- */
.hamburger:active {
  transform: scale(0.95) rotateZ(1deg);
}

.hero-content .tagline:nth-of-type(2) {
    margin-bottom: 35px;
}
/* --- Pulsierender Button --- */
.btn-pulse {
  display: inline-block;
  background: #e8c27f; /* dein Gold-Ton */
  color: #000;
  padding: 18px 45px;
  font-size: 22px;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: 0.3s ease;
  position: relative;
  overflow: hidden;
  animation: softPulse 2.4s ease-in-out infinite;
}

/* sanfter Gold-Glimmer */
@keyframes softPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0px rgba(232, 194, 127, 0.5);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 25px rgba(232, 194, 127, 0.7);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0px rgba(232, 194, 127, 0.5);
  }
}

/* Hover: noch ein kleiner Kick */
.btn-pulse:hover {
  transform: scale(1.1);
  box-shadow: 0 0 35px rgba(232, 194, 127, 0.9);
}
/* --- Cookie Banner --- */
.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(0,0,0,0.88);
    color: #fff;
    padding: 18px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    z-index: 9999;
    backdrop-filter: blur(4px);
    border-top: 2px solid #e8c27f; /* goldene Linie */
    transform: translateY(100%);
    opacity: 0;
    animation: slideUp 0.6s ease forwards;
}

.cookie-banner p {
    margin: 0;
    max-width: 85%;
    line-height: 1.5;
}

/* Button */
.cookie-banner button {
    background: #e8c27f; /* Gold */
    border: none;
    color: #000;
    padding: 10px 20px;
    border-radius: 25px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: 0.3s ease;
}

.cookie-banner button:hover {
    background: #f1d59a;
    transform: scale(1.05);
}

@keyframes slideUp {
    to {
        transform: translateY(0%);
        opacity: 1;
    }
}
.cookie-banner {
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.checkbox-group {
  margin: 20px 0;
  font-size: 14px;
  line-height: 1.4;
  color: #fff; /* weiß auf dunklem Hintergrund */
}

.checkbox-group input[type="checkbox"] {
  margin-right: 8px;
  transform: scale(1.2);
}

.checkbox-group a {
  color: #e8c27f; /* Goldton */
  text-decoration: underline;
}

.checkbox-group a:hover {
  color: #f1d59a;
}


/* Added for desktop/mobile request button */
.desktop-only { display: block; }
.mobile-only { display: none; }

@media (max-width: 1024px) {
  .desktop-only { display: none; }
  .mobile-only { display: block; }
}


/* Desktop header Anfrage button override */
.desktop-only .btn-pulse {
    padding: 8px 18px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    color: #000 !important;
}
/* Header-Button vertikal an Menü-Höhe anpassen */
.desktop-only .btn-pulse {
    padding: 6px 18px !important;     /* weniger Höhe */
    font-size: 14px !important;
    border-radius: 8px !important;
    color: #000 !important;
    margin-top: -6px !important;       /* Button weiter nach oben */
    display: flex;
    align-items: center;               /* Text perfekt mittig */
}




@media (max-width: 1024px) {
  /* Mobile hochkant: ein Feld pro Zeile, volle Breite */
  .multi-step-form{
    padding: 20px;
  }
  .form-row{
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-bottom: 16px !important;
  }
  .form-field{
    width: 100% !important;
    margin-bottom: 0 !important;
  }
  .form-field input,
  .form-field textarea,
  .form-field select{
    width: 100% !important;
    display: block;
  }
}

}


@media (max-width: 600px) {
  .insta-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .insta-card img {
    aspect-ratio: 1/1;
  }
}


@media(max-width:600px){
  .insta-grid{
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .insta-card img{
    height:120px !important;
  }
}
/* Lightbox / Gallery Fix für mobile Darstellung */
.lightbox img,
.gallery-modal img,
.gallery-lightbox img {
    max-width: 100vw !important;
    max-height: 100vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}

/* Sicherheitsregel für sehr kleine Smartphones */
@media (max-width: 600px) {
    .lightbox img,
    .gallery-modal img,
    .gallery-lightbox img {
        max-width: 100%;
        max-height: 100%;
    }
}


/* MOBILE GALLERY FIX */
@media(max-width:600px){
  .gallery-grid{
    display:grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap:10px !important;
  }
  .gallery-grid img{
    width:100% !important;
    height:140px !important;
    object-fit:cover !important;
  }
  .gallery-item figcaption,
  .gallery-item .title,
  .gallery-item .caption{
    display:none !important;
  }
  
}
/* Lightbox Caption ausblenden */
.lightbox-caption,
.sl-caption,
.pswp__caption,
.fslightbox-caption,
.lg-sub-html,
.lg-caption,
.caption,
figcaption {
    display: none !important;
}

.page-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.75)),
    url('../img/hero-modern.jpg');
  background-size:cover;
  background-position:center;
}
/* Page-BG sicher sichtbar auf der Kontaktseite */




/* Seitenhintergrund mit Bild explizit für Über uns & Kontakt */
body[data-page="about.html"],


/* Overlay deaktivieren */
body[data-page="about.html"]::before,


.contact-refined{position:relative; z-index:0;}
/* Dienstleistungen */
.services-page {
    padding: 120px 0;
    color: var(--cream);
}

.section-title {
    text-align: center;
    font-family: 'Playfair Display', serif;
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--cream);
}

.section-subtitle {
    text-align: center;
    font-size: 18px;
    margin-bottom: 40px;
    color: #ccc;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 25px;
    max-width: 1000px;
    margin: 0 auto;
}

.service-card {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 20px 25px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    gap: 15px;
    backdrop-filter: blur(8px);
    transition: 0.25s ease;
}

.service-card:hover {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--gold);
}

.service-card i {
    font-size: 26px;
    color: var(--gold);
}

.service-card span {
    font-size: 20px;
    font-weight: 500;
    color: var(--cream);
}
/* Header behält seine Größe */
#header {
    height: 90px;                 /* fixe Höhe → passt sich nicht mehr dem Logo an */
    display: flex;
    align-items: center; 
}

/* Logo kann jetzt unabhängig skaliert werden */
.logo img {
    height: 110px;                 /* ⭐ HIER kannst du die Größe frei ändern! */
    width: auto;
    object-fit: contain;
    display: block;
     margin-top: 30px;
}
/* === HEADER-LAYOUT OVERRIDE === */

/* Grundlayout: Logo links, Menü rechts */
header nav {
    display: flex;
    align-items: center;
    justify-content: space-between; /* Logo links, Rest nach rechts */
}

/* Logo weiter nach links „ziehen“ */
.logo {
    margin-right: auto;   /* drückt die Navi nach rechts */
}

/* Logo-Bild sauber positionieren */
.logo img {
    display: block;
    height: 60px;         /* Größe nach Wunsch anpassen */
    width: auto;
    margin-left: 0;       /* wirklich ganz links */
}

/* Navi bewusst nach rechts schieben */
.nav-menu {
    margin-left: auto;
}

/* Mobile-Ansicht: auch hier links/rechts statt zentriert */
@media (max-width: 1024px) {
    header nav {
        justify-content: space-between;
    }

    .logo {
        margin-right: auto;
    }

    .logo img {
        margin-left: 0;
    }
}
header .container {
    padding-left: 10px; /* statt 20px, bringt alles näher an den Rand */
}
/* HEADER-PADDING FIX — Logo weiter nach links */
header .container {
    padding-left: -80px !important;
    padding-right: 20px !important; /* Navi bleibt schön rechts */
}
/* HEADER FIX: Logo links – Navigation rechts */
header nav {
    display: flex !important;
    justify-content: space-between !important; /* Logo links, Menu rechts */
    align-items: center !important;
}

/* Logo bekommt keinen Extra-Abstand */
header .logo {
    margin: 0 !important;
    padding: 0 !important;
}

/* Logo näher an den linken Rand */
header .logo img {
    margin-left: 0 !important;
    display: block;
    height: 60px; /* Höhe nach Wunsch */
}

/* Navigation bleibt bewusst rechts */
.nav-menu {
    margin-left: auto !important;
}
/* ==== FINALER HEADER-FIX ==== */

/* Container enger machen, damit Logo weiter links sitzt */
#header .container {
    padding-left: 0 !important;   /* Logo bündig */
    padding-right: 20px !important;
}

/* Logo korrekt positionieren */
#header .logo img {
    height: 60px !important;      /* Größe einstellbar */
    margin: 0 !important;         /* Zentrierung AUS */
    padding: 0 !important;
}

/* Navigation nach rechts */
#header .nav-menu {
    margin-left: auto !important;
}

/* Logo ganz nach links */
#header .logo {
    margin-right: auto !important;
}

/* Header-Layout final definieren */
#header nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
/* === FINALER HEADER FIX v2 - garantiert sichtbar === */



/* Entfernt globales Padding & Zentrierung NUR IM HEADER */
#header .container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

/* NAV auf volle Breite */
#header nav {
    width: 100% !important;
    padding: 0 20px !important; /* schöner Rand */
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* LOGO links kleben lassen */
#header .logo {
    margin: 0 !important;
    padding: 0 !important;
}

#header .logo img {
    height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* MENÜ rechts */
#header .nav-menu {
    margin-left: auto !important;
    margin-right: 0 !important;
    gap: 30px !important;
}
/* HEADER FIX GLOBAL */
#header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
}

/* Seite etwas nach unten schieben, damit der Header nichts überlagert */
body {
    padding-top: 100px;  /* je nach Header-Höhe anpassen */
}
/* === FIX: Grauer Balken unter Header auf der Startseite === */
body[data-page="index.html"] .hero {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body {
    padding-top: 90px !important;  /* Höhe deines Headers */
}

/* Falls der Header einen Border hat → entfernen */
#header {
    border-bottom: none !important;
}
/* --- Mobile Footer Fix --- */
@media (max-width: 1024px) {
    footer .footer-grid {
        flex-direction: column !important;   /* untereinander */
        text-align: center !important;       /* Mitte */
        gap: 10px !important;                /* sauberer Abstand */
    }

    footer .sep {
        display: none !important;            /* Punkt entfernen */
    }

    footer a {
        display: block !important;           /* volle Breite */
        width: 100% !important;
    }
}
/* Einheitliche Sektionen-Überschrift */
.page-subtitle {
  font-family: 'Playfair Display', serif;
  font-size: clamp(18px, 4vw, 18px);
  font-weight: 400;
  color: #fff;
  text-align: center;
  letter-spacing: 0.5px;
  margin-bottom: 20px;
  text-shadow: 0 2px 6px rgba(0,0,0,0.35);
}


