/* ========= CSS Variables ========= */
:root{
  --bg: #FAF7F2;
  --bg-soft: #F2E8DA;
  --text: #2F2F2F;
  --muted: #5a5a5a;
  --accent: #9fc7aa;       /* Mintgrün */
  --accent-2: #BDAA8C;     /* Bronze/Sand */
  --deep: #5c422c;         /* Walnussbraun */
  --white: #ffffff;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow: 0 8px 24px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 48px rgba(0,0,0,.12);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --header-h: 75px;
}
@media (max-width: 860px){
  :root{ --header-h: 80px; }
}

*{box-sizing:border-box}
html{scroll-behavior: smooth}
html,body{margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.7;
  overflow-x:hidden;
}

/* Typography - Unified Inter Font */
h1,h2,h3{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  margin:0 0 .5rem;
  font-weight:700;
  letter-spacing:-0.02em;
}
h1{font-size: clamp(2.1rem, 3.8vw, 3.2rem); line-height:1.15; letter-spacing: -0.02em}
h2{
  font-size: clamp(1.55rem, 2.8vw, 2.3rem);
  line-height:1.2;
  letter-spacing: -0.01em;
  text-wrap: balance;
  max-width: 40ch;
  margin-inline:auto;
}
h3{font-size: clamp(1.3rem, 2vw, 1.7rem); line-height:1.3}
.lead{font-size:1.2rem; color:var(--muted); line-height:1.6}

@media (max-width: 480px){
  .lead{font-size:1.08rem;}
}

a{color:var(--deep); text-decoration:none; transition: var(--transition)}
a:hover{text-decoration:underline}

.text-center{text-align:center}

/* Layout helpers */
.container{
  width:min(1200px, 96vw);
  margin:0 auto;
  padding-left:clamp(1.1rem, 3.8vw, 1.8rem);
  padding-right:clamp(1.1rem, 3.8vw, 1.8rem);
}
.section{padding: clamp(1.75rem, 4vw, 3rem) 0}
.section--soft{background: var(--bg-soft)}

.grid-2{display:grid; grid-template-columns: 1.1fr .9fr; gap:2.5rem; align-items:center}
@media (max-width: 900px){
  .grid-2{
    grid-template-columns:1fr;
    justify-items:center;
  }
  .grid-2 > *{width:100%;}
  .about-content{
    text-align:center;
    padding:0 clamp(1.1rem, 5vw, 1.6rem);
    max-width:620px;
  }
}

/* Home page background + unified sections */
.home-page{
  background: linear-gradient(180deg, #fdfaf7 0%, #f4ede3 50%, #ede3d6 100%);
}
.home-page .section,
.home-page .section-welcome,
.home-page .section-about,
.home-page .section-values,
.home-page .section-offers,
.home-page .section-testimonials{
  background: transparent;
}
.home-page .section-cta-final{
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.8));
}
.home-page .section-cta-final h2{
  color:var(--deep);
}
.home-page .section-cta-final .lead,
.home-page .section-cta-final .cta-note{
  color:var(--text);
}
/* ================= HEADER ================= */

.site-header{
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(242,232,218,.12);
  backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid rgba(0,0,0,.05);
  transition: transform 0.3s ease-in-out;
}

.site-header.header-hidden{
  transform: translateY(-100%);
}

.header-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(.6rem, 2vw, 1.1rem);
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: center; /* wichtig: zentriert die kompakte Gruppe */
}

/* Die KOMPAKTE Einheit: Logo + Menü + CTA */
.header-group{
  display: flex;
  align-items: center;
  gap: .9rem;              /* HIER steuerst du, wie nah alles zusammenrückt */
}

/* Logo */
.logo{
  display: flex;
  align-items: center;
}

.logo-image{
  height: clamp(56px, 6vw, 80px);
  width: auto;
  display: block;
}

/* Navigation */
.site-nav{
  display: flex;
  align-items: center;
  gap: .6rem;
}

.site-nav a{
  padding: .25rem .55rem;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

/* Rechts (CTA + Burger) */
.header-right{
  display: flex;
  align-items: center;
  gap: .35rem;            /* Abstand CTA ↔ Burger */
  flex: 0 0 auto;
}

.header-cta{
  display: inline-flex;
  align-items: center;
  padding: .42rem .95rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--accent), #8fa376);
  color: var(--white);
  box-shadow: 0 4px 16px rgba(159,199,170,.3);
  font-weight: 700;
  letter-spacing: .01em;
  font-size: .93rem;
  line-height: 1;
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease;
}

.header-cta:hover{
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(159,199,170,.4);
}

/* Burger */
.nav-toggle{
  display: none;
  background: var(--white);
  border: 1px solid rgba(0,0,0,.15);
  padding: .55rem 1rem;
  border-radius: 12px;
  font-weight: 700;
  color: var(--deep);
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
}
@media (max-width: 860px){
  .site-header{--header-h:80px;}
  .header-inner{
    padding:.8rem 3%;
    position: relative;
    justify-content: center;
  }
  .logo{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
  }
  .logo-image{
    height: 65px;
  }
  .header-right{
    gap:.6rem;
    position: absolute;
    right: 3%;
    top: 50%;
    transform: translateY(-50%);
  }
  .header-cta{
    display: none !important;
    visibility: hidden !important;
  }
  .site-nav {
    position: absolute;
    right: 0.5rem;
    top: 100%;
    background: var(--bg);
    padding: 1rem;
    display: none;
    flex-direction: column;
    box-shadow: var(--shadow);
    margin-top: .5rem;
    border-radius: 12px;
    width: calc(100% - 1rem);
    align-items: stretch;
    text-align: center;
  }
  .site-nav.open{display:flex}
  /* Menüpunkte mittig (Links sind inline-flex) */
  .site-nav a{ justify-content: center; text-align: center; }
  .nav-toggle{
    display:inline-block;
    background:var(--white);
    border:1px solid rgba(0,0,0,.15);
    padding:.55rem 1rem;
    border-radius:12px;
    font-weight:700;
    color:var(--deep);
    box-shadow:0 4px 12px rgba(0,0,0,.06);
    margin-left: 0;
  }
  .nav-contact-mobile { display: block; padding: .8rem 1rem; background: var(--bg-soft); border-radius: 8px; margin-top: .5rem; }
}

@media (max-width: 500px){
  .site-header .logo-image{
    height: 60px;
  }
  .nav-toggle{
    padding:.48rem .85rem;
    font-size:.92rem;
  }
}

/* Buttons */
.btn{
  display:inline-block;
  padding:clamp(.85rem, 2vw, 1rem) clamp(1.2rem, 4vw, 1.8rem); 
  border:none; 
  border-radius:50px;
  font-weight:600;
  font-size:clamp(.95rem, 2vw, 1.05rem);
  cursor:pointer;
  transition: var(--transition);
  text-decoration:none;
  letter-spacing:0.02em;
}
/* Unified Button Styles */
.btn-primary{
  background:linear-gradient(135deg, var(--accent), #8fa376);
  color:var(--white); 
  box-shadow: 0 4px 16px rgba(159,199,170,0.3);
}
.btn-primary:hover{
  transform: translateY(-2px); 
  box-shadow: 0 6px 24px rgba(159,199,170,0.4);
  text-decoration:none;
}
.btn-secondary{
  background:var(--white);
  color:var(--deep);
  border:2px solid var(--accent);
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.btn-secondary:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  text-decoration:none;
}
.btn-large{
  padding:clamp(1rem, 2.5vw, 1.2rem) clamp(1.4rem, 4.5vw, 2.2rem);
  font-size:clamp(1rem, 2.4vw, 1.12rem);
}
.link-arrow{
  color:var(--accent); 
  font-weight:600;
  transition: var(--transition);
}
.link-arrow:hover{
  color:var(--deep);
  transform: translateX(4px);
  display:inline-block;
  text-decoration:none;
}

/* Section Styling */
.section-label{
  display:inline-block;
  background:transparent;
  color:var(--accent);
  padding:.5rem 1.2rem;
  border:2px solid var(--accent);
  border-radius:50px;
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:1.5rem;
}
.section-header{
  text-align:center;
  max-width:1200px;
  margin:0 auto 2rem;
}
.section-header .section-label{
  margin-bottom:1.5rem;
}
.section-header h2{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:700;
  margin-bottom:1.5rem;
}
.section-header .lead{
  font-size:1.15rem;
  line-height:1.8;
}

/* Hero */
/* Modern Hero Section */
.hero{
  position: relative;
  /* Header ist sticky und belegt Flow-Höhe: Headerhöhe abziehen, damit
     Header + Hero exakt eine Bildschirmhöhe ergeben (kein Scrollen nötig). */
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100dvh - var(--header-h)); /* dynamische Viewport-Höhe (mobil korrekt, ohne Adressleisten-Sprung) */
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-image{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  filter: saturate(0.9) brightness(0.92);
  pointer-events:none;
}
.hero-overlay{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(250,247,242,.94), rgba(159,199,170,.68));
  z-index: 1;
  pointer-events:none;
}
.hero-inner{
  padding: clamp(4rem, 10vw, 8rem) 0;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 2;
  min-height: clamp(70vh, 82vh, 95vh);
}
.hero-content{
  max-width: 1000px;
  text-align: center;
  animation: fadeInUp 1s ease-out;
}
.hero-content h1{
  font-family: 'Lora', Georgia, serif;
  font-weight:400;
  letter-spacing:-0.02em;
}
.hero-content .lead,
.page-hero-content .lead{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:500;
  color:var(--text);
}
.hero-welcome{
  font-size:1rem;
  color:var(--deep);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:600;
  margin-bottom:1rem;
  opacity:0;
  animation: fadeIn 1s ease-out 0.3s forwards;
}
.hero-content h1{
  margin-bottom: 1.5rem;
  color:var(--deep);
  text-shadow: 0 2px 8px rgba(0,0,0,.05);
  opacity:0;
  animation: fadeInUp 1s ease-out 0.5s forwards;
  font-family: 'Lora', Georgia, serif;
  font-weight:400;
  letter-spacing:-0.02em;
}
.hero-subtitle{
  max-width:900px;
  margin: 0 auto 2.5rem;
  font-size:1.25rem;
  color:var(--text);
  opacity:0;
  animation: fadeInUp 1s ease-out 0.7s forwards;
  line-height:1.75;
  font-weight:500;
}
.hero-tagline-emotional{
  display:block;
  font-size:0.7em;
  font-style:italic;
  font-weight:400;
  margin-top:0.5rem;
  opacity:0.92;
  letter-spacing:normal;
}
.hero-cta{
  display:flex; 
  gap:1rem; 
  align-items:center; 
  justify-content:center;
  flex-wrap:wrap;
  opacity:0;
  animation: fadeInUp 1s ease-out 0.9s forwards;
}
.hero-scroll{
  position:absolute;
  bottom:2rem;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  animation: bounce 2s infinite;
  color:var(--deep);
  font-size:1.5rem;
  cursor:pointer;
}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes fadeInUp{
  from{opacity:0; transform:translateY(30px)}
  to{opacity:1; transform:translateY(0)}
}
@keyframes bounce{
  0%, 20%, 50%, 80%, 100%{transform:translateX(-50%) translateY(0)}
  40%{transform:translateX(-50%) translateY(-10px)}
  60%{transform:translateX(-50%) translateY(-5px)}
}

@media (max-width: 768px){
  .hero-content h1{font-size:2rem}
  .hero-subtitle{font-size:1.1rem}
  .hero-cta{flex-direction:column; width:100%}
  .hero-cta .btn{width:100%; text-align:center}
  .hero,
  .hero-inner{
    min-height: calc(100vh - var(--header-h));
    min-height: calc(100dvh - var(--header-h));
  }
  .hero-inner{
    padding: clamp(3rem, 8vw, 6rem) clamp(1.5rem, 5vw, 2rem);
  }
  .hero-content{
    padding: 0 1rem;
  }
  .hero-subtitle{
    max-width: 100%;
    padding: 0 0.5rem;
  }
}

/* Welcome Section */
.section-welcome{
  background:var(--white);
  padding: clamp(2rem, 4vw, 3rem) 0;
}
.welcome-box{
  max-width:1000px;
  margin:0 auto;
  padding:4rem 3rem;
  background:linear-gradient(135deg, var(--bg-soft), var(--bg));
  border-radius:32px;
  box-shadow:0 12px 48px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.03);
}
.welcome-box h2{
  color:var(--deep);
  margin-bottom:2rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:700;
  text-align:center;
}
.welcome-box .lead{
  font-size:1.2rem;
  line-height:1.9;
  text-align:center;
  max-width:42em;
  margin-left:auto;
  margin-right:auto;
}

@media (max-width: 768px){
  .welcome-box{
    padding: 2.5rem 1.5rem;
    border-radius: 20px;
  }
  .welcome-box h2{
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .welcome-box .lead{
    font-size: 1.05rem;
    line-height: 1.7;
  }
}

@media (max-width: 480px){
  .welcome-box{
    padding: 2rem 1.25rem;
    margin: 0 1rem;
  }
}

/* About Section */
.section-about{
  padding: clamp(2rem, 4vw, 3rem) 0;
}
.about-content{
  max-width:720px;
  margin:0 auto;
  padding:0 clamp(1.25rem, 4vw, 1.75rem);
}
.about-content p{
  margin-bottom:1.2rem;
  font-size:1.05rem;
  line-height:1.75;
}
.about-img{
  background:linear-gradient(135deg, var(--accent-2), var(--accent));
  min-height:420px;
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
}
.about-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Values Section */
.section-values{
  background:var(--white);
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
.values-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:2rem;
  margin-top:3rem;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
}
@media (max-width: 900px){
  .values-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:1.5rem;
  }
}
@media (max-width: 500px){
  .values-grid{
    grid-template-columns:1fr;
  }
}
/* Value Cards - Unified Design */
.value-card{
  text-align:center;
  padding:2.5rem 2rem;
  background:var(--white);
  border-radius:20px;
  transition: var(--transition);
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  border:1px solid rgba(0,0,0,0.05);
}
.value-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 32px rgba(0,0,0,0.1);
}

@keyframes float{
  0%, 100%{transform:translateY(0)}
  50%{transform:translateY(-10px)}
}
.value-card h3{
  color:var(--deep);
  margin-bottom:1rem;
  position:relative;
  font-weight:700;
  font-size:1.3rem;
}
.value-card h3::after{
  content:"";
  display:block;
  width:40px;
  height:3px;
  margin:0.8rem auto 0;
  border-radius:999px;
  background:var(--accent);
}
.value-card p{
  color:var(--muted);
  line-height:1.7;
  font-size:1rem;
  max-width:32ch;
  margin-left:auto;
  margin-right:auto;
}

/* Value Photos - Rechteckig, modern */
/* Gleiches Erscheinungsbild wie die Werte-Icons auf der Startseite:
   kleines, gerundetes Quadrat mit dezentem Rahmen (statt großem Rechteck). */
.value-photo{
  width:110px;
  height:110px;
  border-radius:18px;
  margin:0 auto 1.25rem;
  position:relative;
  overflow:hidden;
  box-shadow:0 12px 24px rgba(0,0,0,.06);
  border:2px solid rgba(189,170,140,.35);
  transition:var(--transition);
}
.value-photo:hover{
  box-shadow:0 16px 32px rgba(0,0,0,.1);
}
.value-photo::before,
.value-photo::after{ content:none; }
.value-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  position:relative;
  z-index:1;
  border-radius:0;
}

.section-values .value-icon img{
  width:100%;
  height:100%;
  object-fit:cover;
  
  display:block;
  border-radius:inherit;
}
.section-values .value-card:nth-child(1) .value-icon img { object-position: 10% 50%; }
.section-values .value-card:nth-child(2) .value-icon img { object-position: 50% 90%; }
.section-values .value-card:nth-child(3) .value-icon img { object-position: 100% 80%; }
.section-values .value-card:nth-child(4) .value-icon img { object-position: 100% 50%; }

/* Offers Section */
.section-offers{
  background:var(--bg-soft);
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
.section-offers .card{
  padding:3rem 2.5rem;
}
.cards-3{
  display:grid; 
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); 
  gap:1.75rem;
  max-width:1150px;
  margin-left:auto;
  margin-right:auto;
}
/* Offer Cards - Unified Design */
.card{
  background:var(--white); 
  border-radius:20px; 
  padding:2.5rem 2rem; 
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  transition: var(--transition);
  position:relative;
  overflow:hidden;
  border:1px solid rgba(0,0,0,0.05);
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 32px rgba(0,0,0,0.1);
}
.card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition: var(--transition);
}
.card:hover::before{
  transform:scaleX(1);
}
.offer-card{
  height: 100%;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.section-offers .card-icon{display:none !important;}
.card-icon img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.offer-card h3{
  color:var(--deep);
  margin:0;
  line-height:1.3;
  min-height:calc(1.3em * 2); /* 2 Zeilen reservieren */
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:1.4rem;
  font-weight:700;
}

.offer-card p{
  line-height: 1.8;
  font-size: 1.05rem;
  color: var(--muted);
  margin: 0;

  /* Clamp (modern + webkit fallback) */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;

  display: box;      /* harmless fallback for some linters */
  line-clamp: 4;

  overflow: hidden;
  min-height: calc(1.8em * 4);
}

.offer-features{
  column-count: 1 !important;
  columns: auto !important;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  list-style:none;
  padding:0;
  margin:0;
}

/* CTA immer nach unten */
.offer-card .link-arrow{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
}

/* Angebote-Karte: grüner zentrierter "Mehr erfahren"-Button (wie Seminar-Karte).
   Höhere Spezifität (a.…), damit margin-top:auto die Regel .container .btn schlägt
   – sonst säße der Button nicht bündig am unteren Kartenrand. */
.offer-card a.offer-card__cta{
  margin-top:auto;     /* an den unteren Kartenrand schieben */
  align-self:center;   /* horizontal mittig */
}
@media (max-width: 768px){
  /* Mobil: Überschrift + Details-Umschalter über dem Button mittig */
  .offer-card h3{ text-align:center; }
  .offer-card .card-collapse-toggle{ align-self:center; }
}

.offer-features li{
  padding:.5rem 0;
  padding-left:1.5rem;
  position:relative;
  color:var(--muted);
  font-size:.95rem;
  line-height:1.6;
  /* feste Höhe von 2 Zeilen -> Haken sitzen über alle Karten hinweg bündig */
  min-height:calc(2 * 1.6em + 1rem);
}
.offer-features li::before{
  content:'\2713\FE0E';
  position:absolute;
  left:0;
  color:var(--accent);
  font-weight:bold;
}
.featured{
  border:2px solid var(--accent);
  transform:scale(1.02);
}
.featured-badge{
  position:absolute;
  top:1rem;
  right:-2rem;
  background:var(--accent);
  color:var(--white);
  padding:.4rem 3rem;
  font-size:.75rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
  transform:rotate(35deg);
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}

@media (max-width: 1000px){
  .cards-3{grid-template-columns:1fr}
  .featured{transform:scale(1)}
}

.card-img{
  background:url('/assets/img/hero/home.webp') center/cover no-repeat; 
  border-radius:var(--radius); 
  min-height:260px; 
  box-shadow:var(--shadow)
}

/* Testimonials */
.section-testimonials{
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
.testimonials{
  display:grid; 
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); 
  gap:3rem;
  margin-top:2rem;
  max-width:1300px;
  margin-left:auto;
  margin-right:auto;
}
/* Testimonials - Unified Design */
.testimonial{
  display:flex;
  flex-direction:column;
  background:var(--white);
  padding:2.5rem 2rem;
  border-radius:20px;
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  position:relative;
  transition: var(--transition);
  border:1px solid rgba(0,0,0,0.05);
}
.testimonial::before{
  content:'"';
  position:absolute;
  top:1.5rem;
  left:2rem;
  font-size:4rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  color:var(--accent);
  opacity:0.12;
  line-height:1;
  font-weight:700;
}
.testimonial:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 32px rgba(0,0,0,0.1);
}
.testimonial blockquote{
  margin:0 0 1.5rem;
  font-style:italic;
  line-height:1.8;
  color:var(--text);
  position:relative;
  z-index:1;
  font-size:1.05rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}
.testimonial cite,
.testimonial figcaption{
  margin-top:auto;
  font-style:normal;
  color:var(--muted);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:0.02em;
}

@media(max-width: 900px){ 
  .testimonials{grid-template-columns:1fr} 
}

/* Process Section */
.section-process{
  background:var(--white);
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}
.process-steps{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:4rem;
  margin-top:4rem;
  position:relative;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
}
.process-step{
  text-align:center;
  position:relative;
}
.step-number{
  width:80px;
  height:80px;
  background:linear-gradient(135deg, var(--accent), #8fa376);
  color:var(--white);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:700;
  margin:0 auto 2rem;
  box-shadow:0 8px 24px rgba(159,199,170,0.3);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}
.process-step h3{
  color:var(--deep);
  margin-bottom:1.2rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
  font-size:1.4rem;
}
.process-step p{
  color:var(--muted);
  line-height:1.8;
  font-size:1.05rem;
  max-width:32ch;
  margin-left:auto;
  margin-right:auto;
}

/* CTA Section */
.section-cta-final{
  background:linear-gradient(135deg, rgba(189,170,140,0.85), rgba(159,199,170,0.85));
  padding: clamp(2rem, 4vw, 3.5rem) 0;
  position:relative;
  overflow:hidden;
}
.section-cta-final::before{
  content:'';
  position:absolute;
  top:-50%;
  right:-10%;
  width:500px;
  height:500px;
  background:rgba(255,255,255,0.08);
  border-radius:50%;
  filter:blur(40px);
  pointer-events:none;
}
.section-cta-final::after{
  content:'';
  position:absolute;
  bottom:-30%;
  left:-5%;
  width:400px;
  height:400px;
  background:rgba(255,255,255,0.06);
  border-radius:50%;
  filter:blur(40px);
  pointer-events:none;
}
.cta-content{
  text-align:center;
  max-width:900px;
  margin:0 auto;
  position:relative;
  z-index:1;
}
.cta-content h2{
  color:var(--white);
  margin-bottom:2rem;
  text-shadow:0 2px 12px rgba(0,0,0,.15);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
  font-size:clamp(2rem, 4vw, 3rem);
}
.cta-content .lead{
  color:rgba(255,255,255,0.95);
  margin-bottom:3rem;
  font-size:1.25rem;
  line-height:1.8;
}
.cta-buttons{
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:2rem;
}
.cta-note{
  color:var(--muted);
  font-size:.95rem;
  margin-top:1.5rem;
  opacity: 0.7;
}

@media (max-width: 768px){
  .cta-buttons{flex-direction:column; align-items:stretch}
  .cta-buttons .btn{width:100%}
}

/* Pricing (keeping for other pages) */
.pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem}
.price-card{background:#fff; padding:1.2rem; border-radius:var(--radius); box-shadow:var(--shadow)}
.price{font-weight:700; color:var(--deep)}
@media(max-width: 1000px){ .pricing{grid-template-columns:1fr} }

/* Forms */
.form .field{margin-bottom:1.5rem}
.form label{display:block; margin-bottom:.5rem; font-weight:600; color:var(--deep)}
.form input,.form textarea,.form select{
  width:100%;
  padding:1rem 1.2rem;
  border-radius:16px;
  border:2px solid rgba(0,0,0,.08);
  background:var(--white);
  font-family:inherit;
  font-size:1rem;
  color:var(--text);
  transition: var(--transition);
}
.form input:focus,.form textarea:focus,.form select:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(159,199,170,.12);
}
/* Select an die übrigen Felder angleichen + eigener Pfeil */
.form select{
  -webkit-appearance:none;
  appearance:none;
  cursor:pointer;
  padding-right:2.8rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%235c422c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1.2rem center;
  background-size:.85rem;
}
/* iOS: native date-Inputs bekommen sonst eine zu große Eigenbreite und
   ignorieren width:100% – auf gleiche Breite wie die übrigen Felder zwingen */
.form input[type="date"]{
  -webkit-appearance:none;
  appearance:none;
  min-width:0;
}
.form .hp{display:none}
.checkbox-field .checkbox{
  display:flex;
  gap:.75rem;
  align-items:center;
  padding:.85rem 1rem;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  background: var(--bg-soft);
}
.checkbox-field input[type=checkbox]{
  width:20px;
  height:20px;
  margin:0;
  accent-color: var(--accent);
  flex-shrink:0;
}
.checkbox-field .checkbox-text{
  line-height:1.4;
  color:var(--deep);
}
.checkbox-field .checkbox-title{
  font-weight:600;
  display:block;
}
.checkbox-field .checkbox-note{
  display:block;
  font-size:.9rem;
  color:var(--muted);
}

/* Hotel-Hinweis im Anmeldeformular */
.hotel-notice-field { margin-bottom: 0.5rem; }
.hotel-notice-box {
  padding: 1rem 1.25rem;
  border-radius: 12px;
  background: #fef9e7;
  border: 2px solid #f0c040;
  margin-bottom: .75rem;
  line-height: 1.6;
}
.hotel-notice-box p { margin: .4rem 0 0; }

/* Download-Pflicht vor Checkboxen */
.download-prompt {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .5rem;
}
.download-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.download-link--done { color: var(--accent); border-color: var(--accent); }
.download-required {
  display: none;
  font-size: .85rem;
  color: #c0392b;
  font-style: italic;
}
.checkbox-field input[type=checkbox]:disabled + .checkbox-text {
  opacity: .5;
  cursor: not-allowed;
}
.checkbox-field .checkbox:has(input:disabled) {
  opacity: .7;
}
.note{
  padding:1rem 1.2rem; 
  border-radius:12px; 
  margin-bottom:1rem; 
  background:var(--white); 
  border:2px solid rgba(0,0,0,.1)
}
.note.ok{border-color: #8bc34a; background:#f1f8e9}
.note.err{border-color: #f44336; background:#ffebee}

/* Lists */
.checks{list-style:none; padding:0; margin:0; display:grid; gap:.6rem}
.checks li{padding-left:1.5rem; position:relative; line-height:1.6}
.checks li::before{
  content:"\2713\FE0E";
  color:var(--accent); 
  position:absolute; 
  left:0; 
  font-weight:bold
}

/* ==== FOOTER ==== */

.site-footer {
  width: 100%;
  background: #f5efe6;
  color: #3c342e;
  padding: 1.5rem 0 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 -10px 30px rgba(0,0,0,0.03);
  font-size: 0.95rem;
  position: relative;
  z-index: auto;
}

.site-footer a {color: inherit; text-decoration: none;}
.site-footer a:hover {text-decoration: underline;}

.footer-main,
.footer-bottom{
  width: 100%;
  max-width: 1600px;            /* oder 1280px */
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 3rem);
}

.footer-main{
  display:grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "brand"
    "cols";
  align-items:flex-start;
  column-gap:2.5rem;
  row-gap:2rem;
  text-align:center;
  padding-top: 2rem;
  padding-bottom: 2rem;

}
.footer-brand{
  grid-area: brand;
  max-width:440px;
  margin:0 auto;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.35rem;
}
.logo--footer {
  font-size: 1.55rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 0.4rem 0;
  display:block;
}
.footer-tagline {
  font-size: 0.95rem;
  margin: 0 0 0.8rem;
  opacity: 0.9;
  line-height:1.5;
  text-align:center;
  width:100%;
}
.footer-name{
  display:block;
  font-size:1.2rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:.25rem;
}
.footer-intro{
  max-width:640px;
  margin:0 auto 1rem;
  text-align:center;
}
.footer-intro {max-width: 52ch; margin: 0 0 1.4rem; opacity: 0.9; line-height: 1.55;}

.footer-actions {display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 0.5rem; justify-content:center;}
.footer-btn {display: inline-flex; align-items: center; justify-content: center; padding: 0.55rem 1.1rem; border-radius: 999px; border: 1px solid rgba(60,52,46,0.16); font-size: 0.9rem; font-weight: 500; background:rgba(255,255,255,0.35);}
.footer-btn-ghost {background: transparent;}
.footer-btn:hover {background: rgba(255,255,255,0.55);}

.footer-columns{
  grid-area: cols;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  column-gap:1.75rem;
  row-gap:1.35rem;
  justify-items:center;
}
.footer-column h4 {font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.16em; margin-bottom: 1rem; opacity: 0.8;}
.footer-column a, .footer-column p {display: block; margin-bottom: 0.35rem; opacity: 0.9; text-align:center;}
.footer-column .cookie-manage-link{margin-top:.2rem;}
.footer-contact-line {margin: 0.3rem 0 0.1rem; font-size: 0.85rem; opacity: 0.7;}
.footer-location {margin: 0;}

.footer-bottom{
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content: center;
  gap:0.3rem;
  text-align:center;
  opacity:0.85;
  font-size: 0.85rem;
  margin-left: auto;
  margin-right: auto;
}
.footer-bottom p {width: 100%;
  text-align: center;
  margin: 0;
}

@media (min-width: 900px){
  .footer-main{
    grid-template-columns: minmax(320px, 1.15fr) minmax(320px, 1fr);
    grid-template-areas: "brand cols";
    align-items:start;
    text-align:left;
  }
  .footer-brand{margin:0; text-align:left; max-width:480px;}
  .footer-actions{justify-content:flex-start;}
  .footer-columns{justify-items:start; text-align:left;}
  .footer-column a, .footer-column p{text-align:left;}
  .footer-bottom{
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
  }
}

@media (max-width: 768px){
  .section{padding:1.5rem 0;}
  .offer-content-grid{gap:2rem;}
  .method-content{gap:2rem;}
  .container{
    width:100%;
    padding-left:clamp(1rem, 5vw, 1.5rem);
    padding-right:clamp(1rem, 5vw, 1.5rem);
  }
  .section:not(.container){
    padding-left:clamp(1rem, 5vw, 1.5rem);
    padding-right:clamp(1rem, 5vw, 1.5rem);
    box-sizing:border-box;
  }
}

@media (max-width: 540px){
  .container{
    max-width:100%;
    padding-left:clamp(1.1rem, 6vw, 1.7rem);
    padding-right:clamp(1.1rem, 6vw, 1.7rem);
  }
  .grid-2 > *{width:100%;}
  .about-content{max-width:100%; padding:0 clamp(1.1rem, 6vw, 1.7rem);}
  .grid-2{gap:1.5rem;}
  .about-content p,
  .section-about .link-arrow{margin-left:auto; margin-right:auto;}
}

@media (max-width: 640px){
  .cards-3,
  .testimonials,
  .process-steps,
  .footer-columns,
  .map-card{grid-template-columns:1fr;}
}

@media (max-width: 480px){
  .section{padding:1.25rem 0;}
  .lead{font-size:1.05rem;}
  .btn{padding:.85rem 1.4rem;}
}

/* 404 */
.container .btn{margin-top:.5rem}

/* ========= PAGE-SPECIFIC STYLES ========= */

/* Page Hero (for About, Offers, etc.) */
.page-hero{
  --page-hero-image: url('/assets/img/hero/home.webp');
  background:
    linear-gradient(135deg, rgba(250,247,242,0.92), rgba(92,66,44,0.32)),
    var(--page-hero-image) center/cover no-repeat;

  /* Header ist sticky (im Flow) – keine zusätzliche Headerhöhe nötig.
     Moderates Innenabstand, Inhalt wird vertikal zentriert. */
  padding: clamp(2rem, 6vw, 4rem) 0;

  border-bottom:1px solid rgba(163,177,138,.15);
  /* Header belegt Flow-Höhe: abziehen, damit Header + Hero = eine Bildschirmhöhe. */
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100dvh - var(--header-h)); /* dynamische Viewport-Höhe */
  display:flex;
  align-items:center;
  position:relative;
}

.page-hero .container{
  width:min(1380px, 97vw);
  display:flex;
  align-items:center;
  justify-content:center;
}
.page-hero-content{
  text-align:center;
  max-width:1200px;
  margin:0 auto;
  position:relative;
  z-index:1;
  opacity:0;
  animation: fadeInUp 1s ease-out 0.3s forwards;
}
.page-hero-content h1{
  margin-bottom:1.5rem;
  color:var(--deep);
  opacity:0;
  animation: fadeInUp 1s ease-out 0.5s forwards;
  font-family: 'Lora', Georgia, serif;
  font-weight:400;
  letter-spacing:-0.02em;
}
.page-hero-content .lead{
  opacity:0;
  animation: fadeInUp 1s ease-out 0.7s forwards;
  font-size:1.2rem;
  line-height:1.9;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:500;
  color:var(--text);
}

.page-hero--about{--page-hero-image: url('/assets/img/hero/about.webp');}
.page-hero--offers{--page-hero-image: url('/assets/img/hero/offer.webp');}
.page-hero--faq{--page-hero-image: url('/assets/img/hero/faq.webp');}
.page-hero--contact{--page-hero-image: url('/assets/img/hero/contact.webp');}

@media (max-width: 768px){
  .hero{
    /* Startseiten-Hero: weiterhin bildschirmfüllend (Landing-Wirkung) */
    min-height: calc(100vh - var(--header-h));
    min-height: calc(100dvh - var(--header-h));
    padding: clamp(2rem, 8vw, 3.5rem) 0;
  }
  .page-hero{
    /* Unterseiten-Hero: kompakter Banner statt Vollbild – spart auf jeder
       Unterseite eine komplette Bildschirmhöhe Scrollen. */
    min-height: 0;
    padding: clamp(1.75rem, 7vw, 2.75rem) 0;
  }
}

/* About Page Styles */
.about-intro{
  align-items:center;
  gap:5rem;
}
.about-image-large{
  background:linear-gradient(135deg, var(--accent-2), var(--accent));
  min-height:550px;
  border-radius:32px;
  box-shadow:0 16px 64px rgba(0,0,0,.08);
  position:relative;
}
.about-image-large::after{
  content:'';
  position:absolute;
  inset:0;
  background:url('/assets/img/Carola_Kropp.webp') center/cover no-repeat;
  border-radius:32px;
  opacity:0.9;
}
.about-flow{
  width:min(1200px, 96%);
  margin:0 auto;
}
.about-flow .about-text{
  max-width:1100px;
  margin:0 auto;
  font-size:1.08rem;
  line-height:1.9;
}
.about-flow .about-text p{
  text-wrap:pretty;
  hyphens:auto;
  margin-bottom:1.8rem;
}
.about-flow h2{
  margin-bottom:1.5rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}
.about-inline-image{
  float:left;
  width:48%;
  max-width:450px;
  min-width:300px;
  aspect-ratio:4/5;
  margin:0 2.5rem 1.5rem 0;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 16px 48px rgba(0,0,0,.1);
}
.about-inline-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media (max-width: 900px){
  .about-inline-image{
    float:none;
    width:100%;
    max-width:none;
    margin:1.5rem 0;
  }
}
.about-text p{
  font-size:1.05rem;
  line-height:1.8;
  margin-bottom:1.5rem;
}
/* ── Intro-Band direkt unter dem Page-Hero ── */
.section-page-intro{
  background: #f5efe6;
}
.page-intro{
  max-width:960px;
  margin:0 auto;
  text-align:center;
  position:relative;
}
.page-intro p{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:1.13rem;
  line-height:1.9;
  color:var(--deep);
  text-wrap:pretty;
  margin:0 0 1rem;
}
.page-intro p:last-child{margin-bottom:0;}

@media (max-width: 900px){
  .about-flow .about-text{
    text-align:center;
    padding:0 1.5rem;
  }
  .page-intro{
    padding:0 1.5rem;
  }
}

.section-journey{
  background:var(--white);
}
.journey-content{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:4rem;
  margin-top:4rem;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
}
.journey-item{
  text-align:center;
  padding:3rem 2rem;
}
.journey-icon{
  font-size:3.5rem;
  margin-bottom:2rem;
}
.journey-item h3{
  color:var(--deep);
  margin-bottom:1.2rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
  font-size:1.5rem;
}
.journey-item p{
  color:var(--muted);
  line-height:1.8;
  font-size:1.05rem;
  max-width:32ch;
  margin-left:auto;
  margin-right:auto;
}

.section-method{
  background:var(--bg-soft);
}
.method-box{
  max-width:1200px;
  margin:0 auto;
  background:var(--white);
  padding:4rem 3rem;
  border-radius:32px;
  box-shadow:0 12px 48px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.03);
}
.method-box h2{
  text-align:center;
  margin-bottom:4rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}
.method-content{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:3rem;
}
@media (min-width: 1100px){
  .section-method .container{width:min(1250px, 95%);}
  .method-box{max-width:1200px;}
  .method-content{grid-template-columns:repeat(4, minmax(0, 1fr));}
}
.method-item h3{
  font-size:1.2rem;
  margin-bottom:1rem;
  color:var(--deep);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}
.method-item p{
  color:var(--muted);
  line-height:1.8;
  font-size:1.05rem;
}

.qualifications-box{
  max-width:900px;
  margin:3rem auto 0;
  background:var(--white);
  padding:3rem;
  border-radius:24px;
  box-shadow:0 8px 32px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.03);
}

.section-personal{
  background:var(--white);
}
.personal-box{
  max-width:900px;
  margin:0 auto;
  padding:4rem 3rem;
  background:var(--bg);
  border-radius:32px;
  box-shadow:0 12px 48px rgba(0,0,0,.06);
  border-left:6px solid var(--accent);
}
.personal-box h2{
  color:var(--deep);
  margin-bottom:2rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}
.personal-box p{
  font-size:1.08rem;
  line-height:1.9;
  margin-bottom:1.5rem;
  color:var(--text);
}

/* Offers Page Styles */
.offers-intro{
  padding:2rem 0;
}

/* Angebots-Sprungnavigation */
.section-offers-nav{
  background:var(--white);
  padding:1.75rem 0;
  border-top:1px solid rgba(189,170,140,0.2);
  border-bottom:1px solid rgba(189,170,140,0.2);
}
.offers-nav-label{
  text-align:center;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--accent2);
  margin:0 0 1.1rem;
}
.offers-nav{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:0.6rem;
  max-width:900px;
  margin:0 auto;
}
.offers-nav__item{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0.8rem 1rem;
  background:transparent;
  border:1px solid rgba(92,66,44,0.18);
  border-radius:10px;
  color:var(--deep);
  text-decoration:none;
  font-family:'Lora',Georgia,serif;
  font-size:0.92rem;
  font-weight:600;
  font-style:italic;
  transition:var(--transition);
  line-height:1.3;
}
.offers-nav__item:hover{
  background:var(--deep);
  color:var(--white);
  border-color:var(--deep);
  box-shadow:0 4px 16px rgba(92,66,44,0.15);
}
.offers-nav__item::before,
.offers-nav__item::after{ content:none; }

/* Seminare-Bridge am Ende der Angebotsliste */
.offers-seminars-bridge{
  text-align:center;
  margin-top:3rem;
  padding:2rem;
  background:var(--bg-soft);
  border-radius:var(--radius-lg);
}
.offers-seminars-bridge p{
  color:var(--muted);
  margin-bottom:1rem;
}

.section-main-offers{
  background:var(--bg);
}
.offer-detailed{
  margin-bottom:4rem;
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  padding:3rem;
  position:relative;
  transition:var(--transition);
}
/* zwei Klassen, damit die Größe die spezifischere Regel .section-main-offers h2 schlägt */
.offer-detailed .offer-detailed__subtitle{
  text-align:left;
  color:var(--deep);
  font-size:1.4rem;
  font-weight:700;
  margin:0 0 1.25rem;
  max-width:100%;
}
.offer-detailed:hover{
  box-shadow:var(--shadow-lg);
}
.offer-highlighted{
  border:3px solid var(--accent);
  transform:scale(1.01);
}
.offer-detailed-content h3{
  color:var(--deep);
  font-size:2rem;
  margin:1rem 0;
}
.offer-icon-large{
  font-size:4rem;
  display:inline-block;
}
.offer-subtitle{
  font-size:1.15rem;
  color:var(--accent);
  font-weight:600;
  margin-bottom:1.5rem;
}
.offer-detailed-content h4{
  color:var(--deep);
  margin:2rem 0 1rem;
  font-size:1.3rem;
}
.offer-detailed-content > p{
  font-size:1.05rem;
  line-height:1.8;
  margin-bottom:1.5rem;
}
.offer-details-box{
  background:var(--bg-soft);
  padding:2rem;
  border-radius:var(--radius);
  margin-top:2rem;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:1.5rem;
}
.detail-item{
  padding:1rem;
  background:var(--white);
  border-radius:10px;
}
.detail-item strong{
  color:var(--accent);
  display:block;
  margin-bottom:0.5rem;
  font-size:0.9rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
}

/* Seminar-Detailseite: Fakten-Liste nach Zielen */
.seminar-facts{
  list-style:none;
  padding:0;
  margin:1.5rem 0 0;
  display:grid;
  gap:.55rem;
  font-size:.97rem;
}
.seminar-facts li{margin:0;}
.seminar-facts strong{color:var(--deep);}


/* Clean Offer Layout */
.offer-content-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:3rem;
  margin:2rem 0;
}
.offer-main-content p{
  font-size:1.05rem;
  line-height:1.8;
  margin-bottom:1.5rem;
}
.offer-main-content h4, .offer-detailed > h4{
  color:var(--deep);
  font-size:1.4rem;
  margin:2.5rem 0 1.5rem;
}
.offer-sidebar{
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}
.offer-image-box{
  width:100%;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.offer-image-box img{
  width:100%;
  height:auto;
  display:block;
}
.offer-quote-box{
  background:var(--bg-soft);
  padding:2rem;
  border-radius:var(--radius);
  border-left:4px solid var(--accent);
}
.offer-quote-box p{
  font-style:italic;
  color:var(--deep);
  margin:0;
  line-height:1.7;
  font-size:1.05rem;
}

/* ── Offer Events Box ────────────────────────────── */
.offer-events{
  margin-top:2rem;
}
.offer-events__heading{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:1rem;
  font-style:normal;
  font-weight:700;
  color:var(--deep);
  margin:0 0 0.9rem;
  padding-bottom:0.6rem;
  border-bottom:1px solid var(--accent2);
}
.offer-events__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.offer-events__item{
  display:grid;
  position:relative;
  grid-template-columns:8rem 1fr;
  grid-template-rows:auto auto;
  column-gap:1rem;
  row-gap:0;
  align-items:baseline;
  font-size:0.9rem;
  line-height:1.45;
  padding:0.6rem 0;
  border-bottom:1px dashed color-mix(in srgb, var(--accent2) 50%, transparent);
}
.offer-events__item:last-child{
  border-bottom:none;
  padding-bottom:0;
}
.offer-events__date{
  grid-column:1;
  grid-row:1 / 3;
  font-weight:600;
  color:var(--deep);
  font-size:0.88rem;
  line-height:1.3;
  align-self:start;
}
.offer-events__time{
  display:block;
  font-weight:400;
  color:var(--text-muted,#777);
  font-size:0.82rem;
}
.offer-events__title{
  grid-column:2;
  grid-row:1;
  color:var(--text);
  font-weight:500;
}
.offer-events__location{
  grid-column:2;
  grid-row:2;
  color:var(--text-muted,#777);
  font-size:0.82rem;
}
.offer-events__info{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
  margin-left:0.4rem;
  cursor:help;
  color:var(--deep);
  opacity:0.55;
  position:static;
  flex-shrink:0;
  transition:opacity .15s;
}
.offer-events__info:hover{
  opacity:1;
}
.offer-events__info svg{
  width:16px;
  height:16px;
  display:block;
  flex-shrink:0;
}
.offer-events__info::after{
  content:attr(data-info);
  position:absolute;
  left:0;
  right:auto;
  top:calc(100% + 8px);
  width:min(280px, 100%);
  background:var(--deep);
  color:var(--white);
  font-size:0.8rem;
  line-height:1.55;
  padding:0.65rem 0.85rem;
  border-radius:8px;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
  pointer-events:none;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .18s ease, transform .18s ease;
  z-index:20;
  white-space:normal;
  text-align:left;
}
.offer-events__info:hover::after,
.offer-events__info:focus::after{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 1000px){
  .offer-content-grid{
    grid-template-columns:1fr;
    gap:2rem;
  }
  /* Mehr Abstand zwischen Terminliste und dem darunter gestapelten Bild */
  .offer-events{
    margin-bottom:1.5rem;
  }
}

/* Kommende Termine: auf schmalen Screens gestapelt darstellen,
   damit Datum/Titel/Ort nicht zusammengedrückt werden */
@media (max-width: 600px){
  .offer-events__item{
    grid-template-columns:1fr;
    row-gap:0.15rem;
    padding:0.7rem 0;
  }
  .offer-events__date{ grid-column:1; grid-row:auto; }
  .offer-events__time{ display:inline; margin-left:0.5rem; }
  .offer-events__title{ grid-column:1; grid-row:auto; }
  .offer-events__location{ grid-column:1; grid-row:auto; }
}

/* Offer with Background Image (offers2.php) */
.offer-with-background{
  padding:0;
  overflow:hidden;
  position:relative;
}
.offer-with-background::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:inherit;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0.08;
  z-index:0;
  pointer-events:none;
}
.offer-hero-section{
  position:relative;
  min-height:400px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  z-index:1;
}
.offer-hero-image{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
}
.offer-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(92,66,44,0.85), rgba(159,199,170,0.75));
  z-index:1;
}
.offer-hero-content{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:900px;
  padding:3rem 2rem;
}
.offer-hero-content h3{
  color:var(--white);
  font-size:3rem;
  margin:0 0 2rem;
  text-shadow:0 2px 12px rgba(0,0,0,0.3);
}
.offer-hero-quote{
  background:rgba(255,255,255,0.95);
  padding:2.5rem 3rem;
  border-radius:var(--radius);
  box-shadow:0 8px 32px rgba(0,0,0,0.2);
  position:relative;
}
.offer-hero-quote::before{
  content:'"';
  position:absolute;
  top:-0.5rem;
  left:1.5rem;
  font-size:8rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  color:var(--accent);
  opacity:0.2;
  line-height:1;
}
.offer-hero-quote p{
  font-size:1.4rem;
  line-height:1.8;
  color:var(--deep);
  font-style:italic;
  margin:0;
  position:relative;
  z-index:1;
}
.offer-text-content{
  padding:3rem;
  position:relative;
  z-index:1;
  background:var(--white);
}
.offer-text-content p{
  font-size:1.05rem;
  line-height:1.8;
  margin-bottom:1.5rem;
}
.offer-text-content h4{
  color:var(--deep);
  font-size:1.4rem;
  margin:2.5rem 0 1.5rem;
}

@media (max-width: 768px){
  .offer-hero-section{
    min-height:300px;
  }
  .offer-hero-content h3{
    font-size:2rem;
  }
  .offer-hero-quote{
    padding:2rem;
  }
  .offer-hero-quote p{
    font-size:1.15rem;
  }
  .offer-text-content{
    padding:2rem;
  }
}

.section-additional{
  background:var(--white);
}

.section-pricing-info{
  background:#fafaf9;
}
.transparency-info-box{
  max-width:1000px;
  margin:0 auto;
  background:var(--bg);
  padding:4rem 3rem;
  border-radius:32px;
  box-shadow:0 12px 48px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.03);
}
.transparency-header{
  text-align:center;
  max-width:700px;
  margin:0 auto 3rem;
}
.transparency-header .section-label{
  margin-bottom:1rem;
}
.transparency-header h2{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
  color:var(--deep);
  margin-bottom:1.5rem;
}
.transparency-header .lead{
  font-size:1.05rem;
  line-height:1.8;
  color:var(--muted);
}
.transparency-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:2rem;
  margin-bottom:3rem;
}
.transparency-item{
  display:flex;
  gap:1rem;
  align-items:start;
  padding:1.5rem;
  background:var(--white);
  border-radius:16px;
  transition:var(--transition);
}
.transparency-item:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.transparency-icon{
  color:var(--accent);
  font-size:1.2rem;
  margin-top:0.2rem;
  flex-shrink:0;
}
.transparency-content strong{
  display:block;
  color:var(--deep);
  font-size:0.95rem;
  margin-bottom:0.4rem;
  font-weight:600;
}
.transparency-content p{
  margin:0;
  font-size:0.9rem;
  color:var(--muted);
  line-height:1.5;
}
.transparency-note{
  text-align:center;
  padding:1.5rem 2rem;
  background:var(--white);
  border-radius:16px;
  border-left:4px solid var(--accent);
  font-size:0.95rem;
  line-height:1.7;
  color:var(--text);
}
.transparency-note strong{
  color:var(--deep);
}

.pricing-info-box{
  max-width:1000px;
  margin:0 auto;
  background:var(--white);
  padding:3rem;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.pricing-info-box h2{
  text-align:center;
  margin-bottom:2rem;
}
.pricing-info-box h3{
  color:var(--deep);
  margin-bottom:1.5rem;
}

.section-offer-process{
  background:#fafaf9;
}

.section-faq-teaser{
  background:#fafaf9;
}
.faq-teaser-box{
  text-align:center;
  max-width:700px;
  margin:0 auto;
  padding:3rem;
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.faq-teaser-box h2{
  color:var(--deep);
  margin-bottom:1rem;
}
.faq-teaser-box p{
  margin-bottom:2rem;
  line-height:1.7;
}

.section-cta-simple{
  background:#fafaf9;
}
.cta-box-simple{
  text-align:center;
  max-width:800px;
  margin:0 auto;
  padding:3rem;
}
.cta-box-simple h2{
  color:var(--deep);
  margin-bottom:1.5rem;
}
.cta-box-simple .lead{
  margin-bottom:2.5rem;
}

@media (max-width: 768px){
  .method-content{grid-template-columns:1fr}
  .offer-details-box{grid-template-columns:1fr}
  .about-intro{grid-template-columns:1fr}
  .about-image-large{min-height:350px}
}

/* ========= IMAGE PLACEHOLDERS FOR ICONS ========= */

/* Value Icons (Startseite) */
.section-values .value-icon{
  width:110px;
  height:110px;
  margin:0 auto 1rem;
  background:none !important;
  background-image:none !important;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:18px;
  box-shadow:0 12px 24px rgba(0,0,0,0.06);
  border:2px solid rgba(189,170,140,0.35);
  overflow:hidden;
  padding:0;
}
.section-values .value-icon::before{
  content:none !important;
}
.value-icon-empathy{background-image:url('/assets/img/icons/empathie.webp')}
.value-icon-trust{background-image:url('/assets/img/icons/vertraulichkeit.webp')}
.value-icon-growth{background-image:url('/assets/img/icons/wachstum.webp')}
.value-icon-individual{background-image:url('/assets/img/icons/individualitaet.webp')}
.section-values .value-icon{
  background-image:none !important;
}
.section-values .value-icon img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:inherit;
}
.section-values .value-icon:not([style*="background-image"]){
  background:var(--white);
  box-shadow:var(--shadow);
}
.section-values .value-icon:not([style*="background-image"])::before{
  content:none !important;
}

/* Offer Icons (Startseite Cards) */
.card-icon{
  width:60px;
  height:60px;
  margin-bottom:1rem;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:12px;
  box-shadow:var(--shadow);
}
.offer-icon-grief{background-image:url('/assets/img/icons/empathie.webp')}
.offer-icon-counseling{background-image:url('/assets/img/icons/individualitaet.webp')}
.offer-icon-groups{background-image:url('/assets/img/icons/wachstum.webp')}
.offer-icon-phone{background-image:url('/assets/img/icons/vertraulichkeit.webp')}
.offer-icon-online{background-image:url('/assets/img/icons/individualitaet.webp')}
.offer-icon-voucher{background-image:url('/assets/img/icons/empathie.webp')}

/* Journey Icons (Über mich) */
.journey-icon{
  width:100px;
  height:100px;
  margin:0 auto 1.5rem;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:50%;
  box-shadow:var(--shadow-lg);
}
.journey-icon-beginning{background-image:url('/assets/img/icons/wachstum.webp')}
.journey-icon-education{background-image:url('/assets/img/icons/individualitaet.webp')}
.journey-icon-today{background-image:url('/assets/img/icons/vertraulichkeit.webp')}

/* Value Icons (Über mich - andere als Startseite) */
.value-icon-kindness{background-image:url('/assets/img/icons/empathie.webp')}
.value-icon-harmony{background-image:url('/assets/img/icons/wachstum.webp')}
.value-icon-security{background-image:url('/assets/img/icons/vertraulichkeit.webp')}
.value-icon-trust-about{background-image:url('/assets/img/icons/vertraulichkeit.webp')}

/* Method Icons (Über mich) */
.method-icon{
  width:50px;
  height:50px;
  margin-bottom:1rem;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:10px;
  box-shadow:var(--shadow);
}
.method-icon-holistic{background-image:url('/assets/img/icons/individualitaet.webp')}
.method-icon-resources{background-image:url('/assets/img/icons/wachstum.webp')}
.method-icon-mindful{background-image:url('/assets/img/icons/empathie.webp')}
.method-icon-practical{background-image:url('/assets/img/icons/vertraulichkeit.webp')}

/* Offer Detail Icons (Angebote - große Icons) */
.offer-icon-large{
  width:100px;
  height:100px;
  margin-bottom:1rem;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:16px;
  box-shadow:var(--shadow-lg);
}
.offer-detail-icon-grief{background-image:url('/assets/img/icons/empathie.webp')}
.offer-detail-icon-counseling{background-image:url('/assets/img/icons/individualitaet.webp')}
.offer-detail-icon-groups{background-image:url('/assets/img/icons/wachstum.webp')}

/* Pricing Icons (Angebote) */
.pricing-icon{
  width:60px;
  height:60px;
  margin-bottom:1rem;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:12px;
  box-shadow:var(--shadow);
}
.pricing-icon-costs{background-image:url('/assets/img/icons/vertraulichkeit.webp')}
.pricing-icon-info{background-image:url('/assets/img/icons/empathie.webp')}

/* Fallback: Platzhalter-Hintergrund wenn kein Bild vorhanden */
.value-icon:not([style*="background-image"]),
.card-icon:not([style*="background-image"]),
.journey-icon:not([style*="background-image"]),
.method-icon:not([style*="background-image"]),
.offer-icon-large:not([style*="background-image"]),
.pricing-icon:not([style*="background-image"]){
  background:linear-gradient(135deg, var(--accent-2), var(--accent));
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-weight:bold;
  font-size:0.8rem;
}
.value-icon:not([style*="background-image"])::before,
.card-icon:not([style*="background-image"])::before,
.journey-icon:not([style*="background-image"])::before,
.method-icon:not([style*="background-image"])::before,
.offer-icon-large:not([style*="background-image"])::before,
.pricing-icon:not([style*="background-image"])::before{
  content:'IMG';
  opacity:0.7;
}

/* ========= FAQ PAGE STYLES ========= */

.faq-intro{
  padding:2rem 0;
}

.section-faq-content{
  background:var(--bg);
}

.faq-category{
  background:var(--white);
  border-radius:32px;
  padding:4rem 3rem;
  margin-bottom:4rem;
  box-shadow:0 12px 48px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.03);
}

.faq-category h2{
  color:var(--deep);
  margin-bottom:2.5rem;
  padding-bottom:1.5rem;
  border-bottom:2px solid var(--accent-2);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}

.section-still-questions{
  background:var(--bg-soft);
}

.still-questions-box{
  text-align:center;
  max-width:700px;
  margin:0 auto;
  padding:3rem;
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}

.still-questions-box h2{
  color:var(--deep);
  margin-bottom:1rem;
}

.still-questions-box .lead{
  margin-bottom:2rem;
}

@media (max-width: 768px){
  .faq-category{padding:2rem 1.5rem}
}

/* ========= CONTACT PAGE STYLES ========= */

.contact-intro{
  padding:2rem 0;
}

.section-contact-content{
  background:var(--bg);
}

.contact-grid{
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:3rem;
  align-items:start;
}

.contact-form-wrapper{
  background:var(--white);
  padding:4rem 3rem;
  border-radius:32px;
  box-shadow:0 12px 48px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.03);
}

.contact-form-wrapper h2{
  color:var(--deep);
  margin-bottom:2.5rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}

.contact-form .field{
  margin-bottom:1.5rem;
}

.contact-form input,
.contact-form textarea{
  font-size:1rem;
}

.form-note{
  margin:1rem 0;
  color:var(--muted);
}

.contact-info-wrapper{
  display:flex;
  flex-direction:column;
  gap:2rem;
}

.contact-info-box,
.contact-hours-box{
  background:var(--white);
  padding:2.5rem;
  border-radius:24px;
  box-shadow:0 8px 32px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.03);
}

.contact-info-box h2{
  color:var(--deep);
  margin-bottom:2.5rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight:600;
}

.contact-item{
  display:flex;
  gap:1.5rem;
  align-items:start;
  margin-bottom:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid rgba(0,0,0,.05);
}

.contact-item:last-child{
  border-bottom:none;
  margin-bottom:0;
  padding-bottom:0;
}

.contact-item-icon{
  width:50px;
  height:50px;
  flex-shrink:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border-radius:10px;
  box-shadow:var(--shadow);
}

.contact-icon-email{background-image:url('/assets/img/icons/vertraulichkeit.webp')}
.contact-icon-phone{background-image:url('/assets/img/icons/empathie.webp')}
.contact-icon-location{background-image:url('/assets/img/icons/wachstum.webp')}

/* Fallback für Kontakt-Icons */
.contact-item-icon:not([style*="background-image"]){
  background:linear-gradient(135deg, var(--accent-2), var(--accent));
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  font-weight:bold;
  font-size:1.2rem;
}

.contact-item-content h3{
  color:var(--deep);
  margin-bottom:0.5rem;
  font-size:1.1rem;
}

.contact-item-content p{
  margin:0;
  line-height:1.6;
}

.contact-item-content a{
  color:var(--accent);
  font-weight:600;
  transition:var(--transition);
}

.contact-item-content a:hover{
  color:var(--deep);
  text-decoration:none;
}

.contact-hours-box h3{
  color:var(--deep);
  margin-bottom:1rem;
}

.contact-hours-box p{
  line-height:1.7;
  margin-bottom:1rem;
}

.section-contact-info-cards{
  background:var(--white);
}

.section-contact-map{
  background:var(--bg);
}
.map-card{
  background:transparent;
  border-radius:0;
  box-shadow:none;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  min-height:360px;
  justify-items:center;
  align-items:center;
}
.map-info{
  padding:2.5rem;
  background:transparent;
  border-right:1px solid rgba(0,0,0,0.03);
  text-align:center;
  width:100%;
}
.map-info h2{
  margin:0 0 1rem;
}
.map-info .lead{
  margin:0 0 1.2rem;
}
.map-info p{
  margin:0 0 1.2rem;
  color:var(--muted);
}
.map-frame{
  position:relative;
  width:100%;
  min-height:360px;
  background:#f7f1e8;
}
.map-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.map-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,0.92), rgba(245,239,230,0.9));
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:1.5rem;
  text-align:center;
}
.map-overlay p{
  margin:0;
  color:var(--muted);
}

.map-loaded .map-overlay{
  display:none;
}

.contact-card-icon-response{background-image:url('/assets/img/icons/empathie.webp')}
.contact-card-icon-consultation{background-image:url('/assets/img/icons/individualitaet.webp')}
.contact-card-icon-flexible{background-image:url('/assets/img/icons/wachstum.webp')}

.section-contact-privacy{
  background:var(--bg-soft);
}

.privacy-notice-box{
  max-width:900px;
  margin:0 auto;
  padding:2rem;
  background:var(--white);
  border-radius:var(--radius);
  border-left:4px solid var(--accent);
  box-shadow:var(--shadow);
}

.privacy-notice-box h3{
  color:var(--deep);
  margin-bottom:1rem;
}

.privacy-notice-box p{
  line-height:1.7;
  margin:0;
}

.privacy-notice-box a{
  color:var(--accent);
  font-weight:600;
}

@media (max-width: 900px){
  .contact-grid{
    grid-template-columns:1fr;
    gap:2rem;
  }
  .contact-form-wrapper{padding:2rem}
  .map-card{
    grid-template-columns:1fr;
  }
  .map-info{
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,0.03);
    padding:2rem 1.5rem;
  }
  .map-frame{
    min-height:300px;
  }
}

/* ========= 404 PAGE STYLES ========= */

.section-404{
  min-height:70vh;
  display:flex;
  align-items:center;
  background:var(--bg);
}

.error-404-box{
  text-align:center;
  max-width:700px;
  margin:0 auto;
  padding:4rem 3rem;
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}

.error-404-icon{
  width:120px;
  height:120px;
  margin:0 auto 2rem;
  background:linear-gradient(135deg, var(--accent-2), var(--accent));
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:4rem;
  color:var(--white);
  font-weight:bold;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  box-shadow:var(--shadow);
}

.error-404-icon::before{
  content:'404';
}

.error-404-box h1{
  color:var(--deep);
  margin-bottom:1.5rem;
}

.error-404-box .lead{
  margin-bottom:2rem;
}

.error-404-box > p{
  margin-bottom:2rem;
}

.error-404-links{
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:2rem;
}

@media (max-width: 768px){
  .error-404-box{padding:3rem 2rem}
  .error-404-links{flex-direction:column; align-items:stretch}
  .error-404-links .btn{width:100%}
}

/* ========= LEGAL PAGES STYLES ========= */

.page-hero-legal{
  background:linear-gradient(135deg, var(--deep), var(--accent));
  color:var(--white);
  padding: clamp(2.5rem, 6vw, 4rem) 0;
}

.page-hero-legal h1{
  color:var(--white);
  text-shadow:0 2px 8px rgba(0,0,0,.2);
}

.page-hero-legal .lead{
  color:rgba(255,255,255,0.95);
}

.section-legal{
  background:var(--bg);
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}

.legal-box{
  max-width:900px;
  margin:0 auto;
  background:var(--white);
  padding:3rem;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}

.legal-section{
  margin-bottom:3rem;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.legal-section:last-child{
  border-bottom:none;
  margin-bottom:0;
  padding-bottom:0;
}

.legal-section h2{
  color:var(--deep);
  margin-bottom:1.5rem;
  padding-bottom:0.8rem;
  border-bottom:2px solid var(--accent-2);
  font-size:1.6rem;
}

.legal-section h3{
  color:var(--deep);
  margin-top:2rem;
  margin-bottom:1rem;
  font-size:1.3rem;
}

.legal-section h4{
  color:var(--accent);
  margin-top:1.5rem;
  margin-bottom:0.8rem;
  font-size:1.1rem;
  font-weight:600;
}

.legal-section p{
  line-height:1.8;
  margin-bottom:1.2rem;
}

.legal-section ul{
  margin:1rem 0;
}

.legal-section a{
  color:var(--accent);
  font-weight:600;
  word-break:break-all;
}

.legal-section a:hover{
  color:var(--deep);
}

.legal-section strong{
  color:var(--deep);
}

.legal-section-footer{
  background:var(--bg-soft);
  padding:2rem;
  border-radius:var(--radius);
  margin-top:2rem;
  border:none;
}

.legal-section-footer p{
  margin:0.5rem 0;
}

@media (max-width: 768px){
  .legal-box{padding:2rem 1.5rem}
  .legal-section h2{font-size:1.4rem}
  .legal-section h3{font-size:1.2rem}
}

/* === START: Modernes Layout für Angebots-Section (offers3) === */

/* Section-Hintergrund + Überschrift */
.section-main-offers {
  padding: 5rem 0;
  background: #f5efe6; /* warmes, ruhiges Beige passend zum Carola-Design */
}

/* Seminar-Detailseite: heller Hintergrund (wie Kontaktseite), einheitlich mit der Intro */
.section-main-offers--light {
  background: var(--bg);
}

.section-main-offers h2 {
  font-size: 2rem;
  margin-bottom: 2.5rem;
}

/* Jede Angebots-Card */
.offer-detailed {
  background: #ffffff;
  border-radius: 20px;
  padding: 2.5rem 2.5rem 2.25rem;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.06);
  max-width: 1100px;
  margin: 0 auto 3rem;
}

.offer-detailed h3 {
  font-size: 1.6rem;
  margin-bottom: 1.75rem;
}

/* Float-Layout: Sidebar floats rechts, Text fließt darunter.
   display:flow-root klärt den Float wie ein Clearfix, schneidet aber den
   Info-Tooltip der Termine NICHT ab (overflow:hidden hätte ihn geklippt). */
.offer-content-grid {
  display: flow-root;
}

/* Haupttext */
.offer-main-content p {
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.offer-main-content h4, .offer-detailed > h4 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

/* Checkliste */
.offer-main-content .checks {
  list-style: none;
  padding: 0;
  margin: 0;
}

.offer-main-content .checks li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.4rem;
  font-size: 0.97rem;
}

.offer-main-content .checks li::before {
  content: "\2714\FE0E";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 0.9rem;
}

/* Sidebar: Bild + Zitat – floats rechts, Text umfließt sie und läuft darunter weiter */
.offer-sidebar {
  float: right;
  width: 36%;
  margin-left: 2.5rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.offer-image-box img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 18px;
  display: block;
}

.offer-quote-box {
  border-radius: 16px;
  background: #fdf7ee;
  padding: 1.5rem;
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.6;
  border-left: 4px solid #c9a77a; /* Akzentfarbe */
}

/* Details unten als Info-Cards */
.offer-details-box {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.offer-details-box .detail-item {
  flex: 1 1 220px;
  background: #faf5ee;
  border-radius: 12px;
  padding: 1.1rem 1.4rem;
  font-size: 0.95rem;
}

.offer-details-box .detail-item strong {
  display: block;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.25rem;
}

/* Responsive Anpassung */
@media (max-width: 900px) {
  .offer-sidebar {
    float: none;
    width: 100%;
    max-width: 420px;
    margin: 0 auto 1.5rem;
  }

  .offer-detailed {
    padding: 2rem 1.5rem 2rem;
  }
}

@media (max-width: 800px){
  .offer-image-box{
    height:auto;
  }
}

/* === ENDE: Modernes Layout für Angebots-Section (offers3) === */

/* === START: Völlig neues modernes Design (offers3 v3) === */

.section-main-offers-v3{
  padding:0;
  background:#fafaf9;
}

.container-fluid{
  max-width:100%;
  padding:0;
}

/* Jedes Angebot als Full-Width Article */
.offer-modern{
  display:grid;
  grid-template-columns:45% 55%;
  min-height:90vh;
  position:relative;
  margin-bottom:6rem;
  padding:0 2rem;
}

.offer-modern:nth-child(even){
  grid-template-columns:55% 45%;
}

.offer-modern:nth-child(even) .offer-visual{
  order:2;
}

/* Visueller Bereich mit Bild */
.offer-visual{
  position:relative;
  overflow:hidden;
  border-radius:32px;
}

.offer-image-large{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  filter:saturate(0.9) brightness(0.95);
  transition:all 0.6s ease;
  border-radius:32px;
}

.offer-modern:hover .offer-image-large{
  transform:scale(1.05);
  filter:saturate(1) brightness(1);
}

.offer-number{
  position:absolute;
  top:3rem;
  left:3rem;
  font-size:8rem;
  font-weight:700;
  color:rgba(255,255,255,0.25);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height:1;
  z-index:2;
  text-shadow:0 4px 12px rgba(0,0,0,0.3);
}

.offer-modern:nth-child(even) .offer-number{
  left:auto;
  right:3rem;
}

/* Content Bereich - ZENTRIERT */
.offer-content-modern{
  padding:6rem 5rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  background:transparent;
}

.offer-category{
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.15em;
  color:#c9a77a;
  font-weight:700;
  margin-bottom:2rem;
}

/* Zitat als blockquote - SCHÖNERE SCHRIFT */
.offer-quote-modern{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size:1.8rem;
  line-height:1.5;
  color:#2F2F2F;
  font-style:italic;
  font-weight:400;
  margin:0 0 3rem;
  max-width:24ch;
  position:relative;
  padding:0 2rem;
}

.offer-quote-modern::before,
.offer-quote-modern::after{
  content:'"';
  position:absolute;
  font-size:3.5rem;
  color:#9fc7aa;
  opacity:0.3;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

.offer-quote-modern::before{
  left:0;
  top:-0.5rem;
}

.offer-quote-modern::after{
  right:0;
  bottom:-1.5rem;
}

.offer-intro-text{
  margin-bottom:3rem;
  max-width:50ch;
}

.offer-intro-text p{
  line-height:1.75;
  margin-bottom:1.2rem;
  color:#4a4a4a;
  font-size:1.05rem;
}

/* Highlights als kompakte Grid - ZENTRIERT */
.offer-highlights{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.5rem 2.5rem;
  margin-bottom:3rem;
  max-width:600px;
}

.highlight-item{
  display:flex;
  gap:1rem;
  align-items:start;
  text-align:left;
}

.highlight-icon{
  color:#9fc7aa;
  font-size:1.2rem;
  margin-top:0.15rem;
  flex-shrink:0;
}

.highlight-item strong{
  display:block;
  color:#2F2F2F;
  font-size:0.95rem;
  margin-bottom:0.15rem;
}

.highlight-item p{
  margin:0;
  font-size:0.88rem;
  color:#6a6a6a;
  line-height:1.4;
}

/* Pricing modern & minimalistisch */
.offer-pricing-modern{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2rem;
  padding-top:2rem;
  border-top:1px solid rgba(0,0,0,0.06);
  flex-wrap:wrap;
}

.price-item{
  display:flex;
  align-items:baseline;
  gap:0.75rem;
}

.price-duration{
  font-size:0.85rem;
  color:#888;
  text-transform:uppercase;
  letter-spacing:0.05em;
}

.price-amount{
  font-size:1.8rem;
  font-weight:700;
  color:#2F2F2F;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
}

.price-note{
  font-size:0.85rem;
  color:#888;
  flex-basis:100%;
  text-align:center;
  margin-top:0.5rem;
}

/* Responsive */
@media (max-width: 1200px){
  .offer-modern{
    grid-template-columns:1fr;
    min-height:auto;
    margin-bottom:4rem;
    gap:2rem;
    padding:0 1.5rem;
  }
  
  .offer-modern:nth-child(even){
    grid-template-columns:1fr;
  }
  
  .offer-modern:nth-child(even) .offer-visual{
    order:1;
  }
  
  .offer-visual{
    min-height:50vh;
  }
  
  .offer-content-modern{
    padding:4rem 3rem;
  }
  
  .offer-quote-modern{
    font-size:1.5rem;
  }
  
  .offer-number{
    font-size:6rem;
    top:2rem;
    left:2rem;
  }
}

@media (max-width: 768px){
  .offer-modern{
    margin-bottom:3rem;
    gap:1.5rem;
    padding:0 1rem;
  }
  
  .offer-content-modern{
    padding:3rem 2rem;
  }
  
  .offer-quote-modern{
    font-size:1.3rem;
    padding:0 1.5rem;
  }
  
  .offer-highlights{
    grid-template-columns:1fr;
    gap:1.2rem;
  }
  
  .offer-pricing-modern{
    flex-direction:column;
    gap:1rem;
  }
}

/* === ENDE: Völlig neues modernes Design (offers3 v3) === */

/* Cookie Banner */
body.cookie-lock{
  overflow:hidden;
}
#cookie-banner{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.4);
  backdrop-filter: blur(2px);
  z-index:99999;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:1rem;
  pointer-events:none;
  opacity:0;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease;
}
#cookie-banner.is-hidden{
  display:none;
}
.cookie-visible #cookie-banner{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.cookie-banner__card{
  background:var(--white);
  border-radius:18px 18px 0 0;
  max-width:720px;
  width:min(720px, 100%);
  padding:1rem 0.9rem;
  box-shadow:0 -6px 30px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.06);
  max-height:80vh;
  overflow:auto;
  pointer-events:auto;
  margin-bottom:env(safe-area-inset-bottom, 0);
  text-align:center;
}
.cookie-eyebrow{
  display:inline-flex;
  align-items:center;
  padding:.3rem .75rem;
  background:var(--bg-soft);
  border-radius:999px;
  color:var(--deep);
  font-weight:700;
  font-size:.85rem;
  margin-bottom:.5rem;
  margin-left:auto;
  margin-right:auto;
}
.cookie-banner__card h3{
  margin:0 0 .4rem;
  color:var(--deep);
  font-size:clamp(1.1rem, 2.6vw, 1.25rem);
  text-align:center;
}
.cookie-banner__card p{
  margin:0 0 .85rem;
  color:var(--text);
  font-size:clamp(.95rem, 2.4vw, 1rem);
  text-align:center;
}
.cookie-options{
  display:flex;
  flex-direction:column;
  gap:.4rem;
  margin-bottom:.6rem;
}
.cookie-option{
  display:flex;
  gap:.6rem;
  padding:.65rem .8rem;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  background:var(--bg);
  align-items:flex-start;
}
.cookie-option input{
  margin-top:.2rem;
}
.cookie-option strong{
  display:block;
  color:var(--deep);
  margin-bottom:.1rem;
}
.cookie-option small{
  color:var(--muted);
  line-height:1.5;
}
.cookie-actions{
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
  margin-top:.35rem;
  justify-content:center;
}
.cookie-actions .btn{
  flex:0 0 auto;
  max-width:220px;
  width:auto;
  align-self:center;
  text-align:center;
  padding:0.6rem 0.9rem;
  font-size:0.9rem;
  border-radius:12px;
}
.cookie-manage-link{
  background:none;
  border:none;
  color:var(--deep);
  font-weight:600;
  cursor:pointer;
  text-decoration:underline;
  padding:0;
}
.cookie-manage-link:hover{
  color:var(--accent);
}
.cookie-links{
  margin-top:.6rem;
  font-size:.9rem;
  color:var(--muted);
  text-align:center;
}
.cookie-links a{
  color:var(--deep);
  font-weight:600;
}
.cookie-links a:hover{
  text-decoration:underline;
}
@media (max-width: 640px){
  #cookie-banner{
    padding:.6rem;
  }
  .cookie-banner__card{
    padding:1rem .9rem;
    max-width:100%;
    border-radius:14px 14px 0 0;
  }
  .cookie-actions{
    flex-direction:column;
    gap:.4rem;
  }
  .cookie-actions .btn{
    width:100%;
    max-width:200px;
    align-self:center;
    padding:0.55rem 0.85rem;
    font-size:0.86rem;
    border-radius:10px;
  }
}

/* FAQ Accordion: klare Klickbarkeit + dezenter Hover (nur FAQ) */
.section-faq-content .accordion{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}
.section-faq-content .accordion details{
  border:1px solid rgba(0,0,0,0.06);
  border-radius:14px;
  background:var(--white);
  box-shadow:0 4px 16px rgba(0,0,0,0.06);
  overflow:hidden;
}
.section-faq-content .accordion summary{
  display:flex;
  align-items:center;
  gap:0.65rem;
  cursor:pointer;
  font-weight:700;
  color:var(--deep);
  padding:0.95rem 1.1rem;
  transition:color .22s ease, transform .22s ease, background-color .22s ease;
  list-style:none;
}
.section-faq-content .accordion summary::-webkit-details-marker{display:none}
.section-faq-content .accordion summary::after{
  content:"\25B6";
  font-size:.9rem;
  color:var(--deep);
  margin-left:auto;
  transition:transform .22s ease, color .22s ease;
}
.section-faq-content .accordion summary:hover{
  background:rgba(92,66,44,0.04);
  color:var(--deep);
  transform:translateX(2px);
}
.section-faq-content .accordion details[open] summary::after{
  transform:rotate(90deg);
}
.section-faq-content .accordion details[open] summary{
  background:rgba(92,66,44,0.05);
}
.section-faq-content .accordion summary:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.section-faq-content .accordion .content{
  padding:0 1.1rem 1rem 1.1rem;
  color:var(--text);
  line-height:1.6;
}

/* ========= SEMINARE ========= */

.page-hero--seminars{--page-hero-image: url('/assets/img/hero/seminar.webp');}
.page-hero--seminar-detail{--page-hero-image: url('/assets/img/hero/seminar-detail.webp');}

.seminar-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  gap:2rem;
}
.seminar-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:1.1rem 1.1rem 0;
}
.seminar-card__media{
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:14px;
  background:linear-gradient(135deg, var(--accent) 0%, var(--deep) 100%);
}
.seminar-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.seminar-card__placeholder{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(135deg, rgba(159,199,170,0.85), rgba(189,170,140,0.85));
}
.seminar-card__body{
  padding:1.25rem 0.7rem 1.8rem;
  display:flex;
  flex-direction:column;
  gap:.6rem;
  /* Body füllt die (durch das Grid) gleich hohe Karte aus, damit der
     Button via margin-top:auto immer bündig am unteren Rand sitzt –
     unabhängig davon, wie viel Text/Meta die einzelne Karte hat. */
  flex:1 1 auto;
}
.seminar-card__body h3{margin:0; color:var(--deep);}
.seminar-card__body h3 a{color:inherit; text-decoration:none;}
.seminar-card__body h3 a:hover{text-decoration:underline;}
.seminar-card__subtitle{
  font-style:italic;
  color:var(--accent-2, #8a7a5c);
  margin:0;
}
/* Intro-Text in der Karte auf max. 5 Zeilen begrenzen, damit eine lange
   Beschreibung die Karte nicht überproportional in die Höhe zieht. Der
   vollständige Text steht weiterhin auf der Detailseite. */
.seminar-card__body p:not(.seminar-card__subtitle){
  margin:0;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:5;
  line-clamp:5;
  overflow:hidden;
}
.seminar-card__meta{
  list-style:none;
  padding:0;
  margin:auto 0 0;
  padding-top:1rem;
  display:grid;
  gap:.5rem;
  font-size:.95rem;
}
.seminar-card__meta li{
  margin:0;
  line-height:1.5;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  min-height:calc(1.5em * 2);
}
.seminar-card__meta strong{color:var(--deep);}
/* Button sitzt direkt unter dem Meta-Block (der Block trägt jetzt das margin-top:auto). */
.seminar-card .btn{margin-top:.4rem; align-self:flex-start;}
/* Startseiten-Teaser: kein Meta-Block, daher den Link selbst nach unten verankern. */
.seminar-card .link-arrow{margin-top:auto;}

/* Horizontale Variante – Bild links, Text rechts (Seminare-Übersichtsseite) */
.seminar-card--horizontal{
  display:grid;
  grid-template-columns:220px 1fr;
  grid-template-rows:1fr auto;
  align-items:stretch;
  padding:0;
}
.seminar-card--horizontal .seminar-card__media{
  grid-column:1;
  grid-row:1;
  width:auto;
  flex-shrink:unset;
  align-self:center;
  border-radius:12px;
  margin:0.75rem 0 0.75rem 0.75rem;
}
.seminar-card--horizontal .seminar-card__body{
  grid-column:2;
  grid-row:1;
  padding:1.6rem 1.8rem 1.2rem;
}
.seminar-card--horizontal .seminar-card__cta{
  grid-column:1 / -1;
  grid-row:2;
  display:block;
  text-align:center;
  margin:0 1.8rem 1.5rem;
}
@media(max-width:640px){
  .seminar-card--horizontal{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }
  .seminar-card--horizontal .seminar-card__media{
    grid-column:1;
    grid-row:1;
    width:100%;
    aspect-ratio:4/3;
    border-radius:14px 14px 0 0;
    margin:0;
  }
  .seminar-card--horizontal .seminar-card__body{
    grid-column:1;
    grid-row:2;
    padding:1.25rem 1.25rem 1rem;
  }
  .seminar-card--horizontal .seminar-card__cta{
    grid-column:1;
    grid-row:3;
    margin:0 1.25rem 1.25rem;
  }
}

/* Rich-Text-Listen (aus dem Backend) wie .checks darstellen */
.offer-main-content .rte ul,
.offer-main-content .rte--checks ul,
.rte--checks ul{
  list-style:none;
  padding:0;
  margin:0 0 1rem;
  display:grid;
  gap:.6rem;
}
.offer-main-content .rte ul li,
.offer-main-content .rte--checks ul li,
.offer-main-content .rte--checks p,
.rte--checks ul li,
.rte--checks p{
  padding-left:1.5rem;
  position:relative;
  line-height:1.6;
  margin-bottom:.4rem;
}
.offer-main-content .rte ul li::before,
.offer-main-content .rte--checks ul li::before,
.offer-main-content .rte--checks p::before,
.rte--checks ul li::before,
.rte--checks p::before{
  content:"\2713\FE0E";
  color:var(--accent);
  position:absolute;
  left:0;
  font-weight:bold;
}

/* Terminliste */
.seminar-dates{
  list-style:none;
  padding:0;
  margin:1.5rem 0 0;
  display:grid;
  gap:1rem;
  grid-auto-rows:1fr; /* alle Termin-Karten gleich hoch (= höchste Karte) */
}
.seminar-date{
  display:flex;
  flex-wrap:nowrap;
  gap:1.5rem;
  align-items:center;
  justify-content:space-between;
  background:#fff;
  border:1px solid rgba(189,170,140,0.35);
  border-radius:var(--radius);
  padding:1.1rem 1.4rem;
}
.seminar-date__main{flex:1 1 auto; min-width:0; display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; align-items:baseline;}
.seminar-date__when{font-weight:600; color:var(--deep); font-size:1.05rem;}
.seminar-date__time, .seminar-date__loc{color:var(--muted);}
.seminar-date__note{flex-basis:100%; color:var(--accent-2, #8a7a5c); font-style:italic; font-size:.92rem;}
.seminar-date__accommodation{flex-basis:100%; color:var(--text); font-size:.92rem;}
.seminar-date__status{flex:0 0 auto;}
.seminar-date__status .btn{margin:0; white-space:nowrap;}
.badge-pill{
  display:inline-block;
  padding:.35rem .9rem;
  border-radius:999px;
  background:var(--bg-soft);
  color:var(--deep);
  font-size:.85rem;
  font-weight:600;
}
.badge-pill.is-full{background:#f3e1e1; color:#9a3b34;}

@media (max-width: 560px){
  .seminar-date{flex-direction:column; align-items:flex-start;}
  /* Karten sind gleich hoch -> Button bündig an den unteren Rand, mittig */
  .seminar-date__status{margin-top:auto; align-self:center;}
}

/* Seminar-Anmeldeformular: "Anmeldung absenden"-Button mittig */
form[action="/seminar_submit.php"] button[type="submit"]{
  display:block;
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
}

/* ========= SKIP-LINK (Barrierefreiheit) ========= */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:2000;
  background:var(--deep);
  color:#fff;
  padding:.75rem 1.25rem;
  border-radius:0 0 10px 0;
  text-decoration:none;
  font-weight:600;
}
.skip-link:focus{left:0;}

/* ============================================================
   MOBIL: kompaktere vertikale Abstände (weniger Scrollen)
   Greift zuletzt -> überschreibt die größeren Standard-Abstände.
   Reduziert nur Leerraum, kein Einfluss auf Inhalt/Desktop.
   ============================================================ */
@media (max-width: 768px){
  .section-header{ margin-bottom: 2rem; }
  .process-steps{ gap: 2rem; margin-top: 2rem; }

  /* Werte-Karten kompakter: kleineres Icon, weniger Polster, engere Schrift */
  .values-grid{ gap: 1.25rem; margin-top: 1.75rem; }
  .value-card{ padding: 1.5rem 1.25rem; border-radius: 16px; }
  .section-values .value-icon{ width: 76px; height: 76px; margin-bottom: .75rem; border-radius: 14px; }
  .value-card h3{ font-size: 1.15rem; margin-bottom: .65rem; }
  .value-card h3::after{ margin-top: .55rem; }
  .value-card p{ font-size: .95rem; line-height: 1.55; }
  /* "Über mich"-Werte: gleiches kleines Icon-Format wie auf der Startseite */
  .value-photo{ width: 76px; height: 76px; border-radius: 14px; margin: 0 auto .75rem; }

  /* Testimonials kompakter: kleinere Schrift, engere Zeilen, weniger Polster */
  .testimonials{ gap: 1.25rem; margin-top: 1.75rem; }
  .testimonial{ padding: 1.4rem 1.3rem; border-radius: 16px; }
  .testimonial blockquote{ font-size: 1rem; line-height: 1.55; margin: 0 0 .8rem; }
  .testimonial::before{ font-size: 2.6rem; top: .6rem; left: 1rem; }
  .testimonial figcaption,
  .testimonial cite{ font-size: .9rem; }
}

/* ============================================================
   MOBIL: einklappbare Abschnitte (Rechtstexte, Angebote-Blöcke)
   Wird per JS aktiviert (.collapse-enabled). Ohne JS / auf dem
   Desktop bleibt alles offen – nichts versteckt sich ungewollt.
   ============================================================ */
@media (max-width: 768px){
  .collapse-head{
    cursor: pointer;
    position: relative;
    padding-right: 1.9rem;
    -webkit-tap-highlight-color: transparent;
  }
  .collapse-head::after{
    content: '';
    position: absolute;
    right: .3rem;
    top: .5em;
    width: .5rem;
    height: .5rem;
    border-right: 2px solid var(--accent-2);
    border-bottom: 2px solid var(--accent-2);
    transform: rotate(45deg);
    transition: transform .2s ease;
  }
  .collapse-enabled:not(.is-collapsed) > .collapse-head::after{
    transform: rotate(-135deg);
  }
  .collapse-head:focus-visible{
    outline: 2px solid var(--accent);
    outline-offset: 3px;
    border-radius: 4px;
  }
  .collapse-enabled.is-collapsed > :not(.collapse-head){
    display: none !important;
  }
}

/* ============================================================
   MOBIL: Bild-Karten – Textblock einklappbar (Option A)
   Bild + Titel + Button bleiben sichtbar; nur Beschreibung/Meta
   klappen hinter "Details". Desktop: Wrapper löst sich per
   display:contents auf -> Karten-Layout bleibt 1:1 erhalten.
   ============================================================ */
.card-collapse{ display: contents; }
.card-collapse-toggle{ display: none; }

@media (max-width: 768px){
  .card-collapse{ display: block; }
  .is-card-collapsed .card-collapse{ display: none !important; }

  .card-collapse-toggle{
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    align-self: flex-start;
    margin: .2rem 0;
    padding: .4rem .9rem;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 999px;
    background: var(--white);
    color: var(--deep);
    font: inherit;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .card-collapse-toggle::after{
    content: '';
    width: .45rem;
    height: .45rem;
    border-right: 2px solid var(--accent-2);
    border-bottom: 2px solid var(--accent-2);
    transform: rotate(45deg);
    transition: transform .2s ease;
  }
  .card-collapse-toggle[aria-expanded="true"]::after{ transform: rotate(-135deg); }
  .card-collapse-toggle:focus-visible{ outline: 2px solid var(--accent); outline-offset: 2px; }
}

/* ============================================================
   MOBIL: Seminar-Detail & Angebote – kompaktere Boxen/Karten
   ============================================================ */
@media (max-width: 768px){
  /* Detail-/Angebote-Block: 3rem Padding war auf dem Handy zu groß */
  .offer-detailed{ padding: 1.4rem 1.25rem; margin-bottom: 1.25rem; }
  .offer-detailed > h3{ font-size: 1.25rem; line-height: 1.3; }

  /* Eingeklappte Angebote: gleiche Kartenhöhe trotz unterschiedlich langer Titel */
  .offer-detailed.collapse-enabled.is-collapsed > .collapse-head{ min-height: 2.6em; }

  /* Detail-Box (Investition/Enthalten/Ort/Gruppengröße): enger, je 1 pro Reihe */
  .offer-details-box{ padding: 1.1rem; gap: .7rem; margin-top: 1.5rem; padding-top: 1.5rem; }
  .offer-details-box .detail-item,
  .detail-item{ flex-basis: 100%; padding: .8rem 1rem; }

  /* Termin-Karten etwas kompakter */
  .seminar-date{ padding: 1rem 1.1rem; gap: .9rem; }
  .seminar-date__when{ font-size: 1rem; }
}
