

/* ============================================
   AZARA LUMA – Praxis für Klang, Raum & Wandlung
   ============================================ */

/* ---------- Farbvariablen ---------- */
:root {
  --bg: #f5f0e6;
  --text: #3b3a36;
  --accent-1: #a2a98b;
  --accent-2: #7b6453;
  --gold: #c6a65a;
  --light: #faf7f2;

  --radius: 18px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  --font-serif: "Playfair Display", serif;
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
:root{
  /* Startseite (bestehend) */
  --hero-h1: clamp(40px, 5vw, 68px);

  /* Unterseiten: kleiner & kompakter */
  --hero-site-h1: clamp(30px, 3.4vw, 44px);
  --hero-site-lead: clamp(15px, 1.4vw, 18px);
  --hero-site-btn: 0.95rem;          /* Button-Schrift */
  --hero-site-btn-pad: 10px 16px;    /* Button-Padding */
}

/* ---------- Grundlayout etc. ---------- */
html, body {
  background-color: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  min-height: 100vh;
display: flex;
flex-direction: column;
margin: 0;                 /* sicherheitshalber */
}

*{box-sizing:border-box}
html,body{margin:0;
  padding:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;
}
a{color:inherit;
  text-decoration:none
}
img{max-width:100%;display:block}
.container{width:min(1100px,90vw);margin-inline:auto}

header{position:sticky;top:0;backdrop-filter:saturate(140%) blur(6px);background:rgba(250,248,247,.85);z-index:20;border-bottom:1px solid #eee}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px}
.brand__mark{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-2),#fff);border:1px solid #eadbe1;display:grid;place-items:center;box-shadow:var(--shadow)}
.brand__mark:after{content:"";width:16px;height:16px;border-radius:50%;border:1.5px solid var(--gold)}
.brand__name{font-family:"Playfair Display",serif;font-size:20px;letter-spacing:.3px}
nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}
nav a{padding:8px 10px;border-radius:10px}
nav a:hover{background:var(--accent-2)}
.menu-btn{display:none}

.hero{padding:72px 0 40px;}
.hero__card{background:linear-gradient(180deg,#fff, var(--accent-2));border:1px solid #efe7ea;border-radius:var(--radius);box-shadow:var(--shadow);padding:34px;display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
.hero h1{font-family:"Playfair Display",serif;font-size:clamp(28px,4.5vw,44px);line-height:1.12;margin:0 0 10px}
.hero p{color:var(--muted);margin:0 0 18px}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid var(--gold);color:#6a5735;background:#fff7e8;margin-bottom:10px;font-size:13px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.btn{padding:10px 14px;border-radius:12px;border:1px solid #e6d8dc;box-shadow:var(--shadow);background:#fff}
.btn--primary{background:var(--ink);color:#fff;border-color:#222}

section{padding:0px 0}
h2.section-title{font-family:"Playfair Display",serif;font-size:28px;margin:0 0 8px}
.kicker{color:var(--muted);font-size:14px;margin-bottom:22px}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:1px solid #eee;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.card h3{margin:6px 0 6px;font-size:18px}
.card p{color:var(--muted);font-size:15px;margin:0}

.pricing{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.price{background:#fff;border:1px solid #eee;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.price h3{margin:6px 0 4px}
.price strong{font-size:28px}
.note{font-size:14px;color:var(--muted)}

/*footer{margin-top:40px;padding:28px 0;border-top:1px solid #eee;color:var(--muted);font-size:14px}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}
.footgrid a{display:block;margin:4px 0}

@media (max-width: 880px){
  .hero__card{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr}
  .pricing{grid-template-columns:1fr}
  .footgrid{grid-template-columns:1fr 1fr}
}
@media (max-width: 640px){
  nav ul{display:none}
  .menu-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #e6d8dc;background:#fff;padding:8px 10px;border-radius:10px}
  .nav.open ul{display:flex;position:absolute;top:58px;right:5vw;flex-direction:column;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:var(--shadow);padding:10px;width:min(260px,90vw)}
  .grid{grid-template-columns:1fr}
  .footgrid{grid-template-columns:1fr}
}*/

/* =================================================
   THEME 2: Velvet Mystic – edel, tiefer, samtiger
   ================================================= */
   .theme-mystic .hero {
     background:
       radial-gradient(900px 500px at 70% 0%, rgba(90,130,125,.30), transparent 70%),
       linear-gradient(180deg, #2f2f31 0%, #2a2a2c 55%, #232325 100%);
     border-top:    1px solid #d6b86e;             /* satte Goldkante */
     border-bottom: 1px solid #d6b86e;
     box-shadow:
       inset 0 1px 0 rgba(255,240,200,.22),        /* Lichtkante oben */
       inset 0 -1px 0 rgba(255,240,200,.12),       /* Lichtkante unten */
       0 12px 40px rgba(0,0,0,.35);                /* Tiefe nach außen */
   }

/* Hintergrund mit Glühen und Tiefe */
.theme-mystic body {
  background:
    radial-gradient(1400px 800px at 25% -10%, #343335 0%, #2c2b2d 45%, #252426 80%, #222123 100%),
    linear-gradient(180deg, #252426 0%, #222123 100%);
  color: var(--ink);
}
.theme-mystic main {
  background:
    radial-gradient(1000px 400px at 50% 0%, rgba(214,184,110,.08), transparent 70%),
    linear-gradient(180deg, transparent 0%, rgba(255,255,255,.02) 18%, transparent 40%);
}

/* Karten / Sektionen */
.theme-mystic .hero_card,
.theme-mystic .card,
.theme-mystic .container section {
  border: 1px solid rgba(212,180,106,0.28);
  box-shadow: var(--shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.theme-mystic .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px rgba(212,180,106,0.35);
}

/* Navigation */
/* === Oberes Menüband – rötlich abgesetzt === */
header {
  background: linear-gradient(
    180deg,
    rgba(156, 102, 84, 0.95) 0%,     /* warmes Terracotta */
    rgba(125, 82, 66, 0.9) 100%      /* dunklerer Verlauf nach unten */
  );
  border-bottom: 1px solid rgba(198,166,90,0.35); /* goldene Linie */
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  backdrop-filter: saturate(120%) blur(6px);
  position: sticky;
  top: 0;
  z-index: 50;
}

/* Menülinks kontrastreich & harmonisch */
header nav a {
  color: #f5f2ee;
  font-weight: 500;
  text-transform: none;
  transition: color 0.25s ease;
}

/* Hero */
.theme-mystic .hero {
  background:
    radial-gradient(900px 500px at 70% 0%, rgba(90,130,125,0.35), transparent 70%),
    linear-gradient(180deg, #2e2f30 0%, #2a2a2b 45%, #222223 100%);
  border-top: 1px solid rgba(212,180,106,0.30);
  border-bottom: 1px solid rgba(212,180,106,0.30);
  box-shadow: 0 12px 40px rgba(0,0,0,0.35);
  padding: 5px 0 10px;        /* schmale Ober-/Unterkante */
}
.theme-mystic .hero h1 {
  color: #f3ece1;
  text-shadow: 0 3px 10px rgba(0,0,0,0.6);
}

/* Buttons */
.theme-mystic .btn-primary {
  background: linear-gradient(180deg, #9c835e, #6f5a49);
  border: 1px solid rgba(212,180,106,0.45);
  color: #f7f3ed;
  transition: all 0.35s ease;
}
.theme-mystic .btn-primary:hover {
  background: linear-gradient(180deg, #e3c67e, #bfa260);
  color: #1e1e20;
  box-shadow: 0 18px 36px rgba(212,180,106,0.3);
}

/* Linien & Schimmer */
.theme-mystic .gold-line {
  border-top: 1px solid rgba(212,180,106,0.6);
  opacity: .95;
}
.theme-mystic .glow {
  box-shadow: 0 0 20px rgba(212,180,106,0.2);
}


/* =================================================
   THEME 3: Creative Flow – edel, etwas dunkler
   ================================================= */
.theme-flow {
  /* Farbpalette mit tieferem Grundton */
  --bg:        #e3dacd;   /* sanft getöntes Sandbeige */
  --ink:       #2c2723;   /* dunkler Text – warmes Anthrazitbraun */
  --muted:     #7a7269;   /* zurückhaltender Sekundärton */
  --accent:    #6c5644;   /* kräftiges Cappuccino */
  --accent-2:  #8c9376;   /* Salbei leicht vernebelt */
  --gold:      #bfa25b;   /* gedecktes Altgold */
  --light:     #f5f1ea;

  --shadow:    0 14px 36px rgba(70,55,40,0.25);
}

/* Hintergrund mit tieferem Verlauf */
.theme-flow body {
  background:
    radial-gradient(1000px 600px at 20% -10%, #efe7da 0%, #e3dacd 55%, #d7ccbb 100%);
  color: var(--ink);
}

/* Karten / Sektionen */
.theme-flow .hero {
  /* kompakt: nur noch ein enger Rahmen um den Inhalt */
  min-height: auto;            /* Vollhöhe raus */
  padding: 5px 0 10px;        /* schmale Ober-/Unterkante */
  display: block;

  /* kühler, dunkler Hintergrund (taupe → graphit) */
  background:
    radial-gradient(880px 480px at 78% 8%, rgba(162,169,139,0.18), transparent 70%),
    linear-gradient(180deg, #686357 0%, #4f4b44 55%, #3e3b36 100%);

  /* klare Goldtrennung */
  border-top: 2px solid rgba(198,166,90,0.75);
  border-bottom: 2px solid rgba(198,166,90,0.75);

  /* dezente Tiefe */
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,0.22),
    inset 0 -1px 0 rgba(255,245,200,0.14),
    0 12px 36px rgba(60,50,40,0.28);
}

/* sorgt dafür, dass Karte + Bild im Hero vertikal bündig wirken */
.theme-flow .hero .container {
  display: flex;
  align-items: center;   /* richtet den Kasten in der Höhe mittig aus */
  gap: 36px;             /* (falls nötig) Abstand zwischen Karte & Bild */
  padding: 0;            /* kein zusätzlicher Innenabstand */
}

/* Textkontrast im kühleren Umfeld leicht anheben */
.theme-flow .hero h1 { color: #f1ece6; text-shadow: 0 2px 6px rgba(0,0,0,.35); }
.theme-flow .hero p  { color: #e3dbd1; }
.theme-flow footer {
  background:
    linear-gradient(180deg, #4f4b44 0%, #3e3b36 100%);
  color: #e9e4dc;
  padding: 32px 0 24px;
  border-top: 2px solid rgba(198,166,90,0.75); /* goldene Linie oben */
  box-shadow:
    inset 0 1px 0 rgba(255,245,200,0.22),
    0 -12px 24px rgba(60,50,40,0.25);
  text-align: center;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

/* optionale Verlinkungen im Footer */
.theme-flow footer a {
  color: #d6b86e; /* Gold-Ton für Links */
  text-decoration: none;
  transition: color 0.2s ease;
}
.theme-flow footer a:hover {
  color: #f1e3a8;
}

.hero--frech {
  position: relative;
  padding: 60px 0;
  background:
    linear-gradient(180deg, #575249 0%, #3f3c37 65%, #38342f 100%);
  border-top: 2px solid rgba(198,166,90,0.75);
  border-bottom: 2px solid rgba(198,166,90,0.75);
  box-shadow: 0 12px 36px rgba(40,30,20,0.3);
  overflow: hidden;
}

/* Inhalt innerhalb des Hero */

.hero_layer{
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  grid-template-areas: "text image"; /* Bild rechts */
  align-items: center;
  gap: 36px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}
.hero_card { grid-area: text; }
.hero_media{ grid-area: image; }

/* Deko-Slash soll nicht das Grid verschieben */
.hero_slash{
  position: absolute;
  left: -12px; top: -12px;
  width: 200px; height: 200px;
  background: linear-gradient(135deg, rgba(198,166,90,.18), transparent 70%);
  transform: rotate(-8deg);
  pointer-events: none;
}

/* Bildrahmen/IMG */
.frame-tilt{
  border: 2px solid rgba(198,166,90,.6);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
  transform: rotate(1.5deg);
  transition: transform .3s ease;
}
.frame-tilt:hover{ transform: rotate(0deg) scale(1.02); }
.frame-tilt img{ width:100%; height:auto; display:block; }




/* Zierlinie diagonal */
.hero_slash {
  position: absolute;
  left: 0;
  top: 0;
  width: 180px;
  height: 180px;
  background: linear-gradient(135deg, rgba(198,166,90,0.2) 0%, transparent 100%);
  transform: rotate(-8deg);
  pointer-events: none;
}
.offers_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
  margin-top: 40px;
}

.card {
  background: #fffdf8;
  padding: 24px;
  border-radius: 16px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.card_arrow {
  position: absolute;
  right: 16px;
  bottom: 16px;
  color: rgba(198,166,90,0.75);
  font-size: 1.2rem;
}
.ribbon {
  text-align: center;
  background: linear-gradient(180deg, #ebe3d4 0%, #e0d6c6 100%);
  padding: 6px 0;
  font-style: italic;
  color: #5a5349;
  letter-spacing: 0.05em;
}
/* Geometrische Formen hinter dem Bild (dekorativ) */
.hero_media { position: relative; z-index: 0; }

/* 1) Schräge, goldene Fläche (abgerundetes Quadrat links hinter dem Bild) */
.hero_media::before {
  content: "";
  position: absolute;
  left: -28px;          /* ggf. anpassen */
  top: -24px;           /* ggf. anpassen */
  width: 180px;         /* Größe der Fläche */
  height: 180px;
  border-radius: 14px;
  transform: rotate(-8deg);
  background: linear-gradient(135deg,
              rgba(198,166,90,0.28) 0%,
              rgba(198,166,90,0.10) 60%,
              transparent 100%);
  border: 1px solid rgba(198,166,90,0.45);
  filter: saturate(110%);
  z-index: 0;
  pointer-events: none;
}

/* 2) Petrolfarbener Glow (runde Fläche rechts außen) */
.hero_media::after {
  content: "";
  position: absolute;
  right: -44px;         /* ggf. anpassen */
  top: 18%;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
              rgba(48,101,106,0.35) 0%,
              rgba(48,101,106,0.15) 50%,
              transparent 70%);
  z-index: 0;
  pointer-events: none;
}

/* Bild selbst über die Formen legen */
.frame-tilt { position: relative; z-index: 1; }
.frame-tilt img { display:block; width:100%; height:auto; }
.hero_slash{
  position:absolute;
  left:-12px; top:-12px;
  width: 200px; height: 200px;
  background: linear-gradient(135deg, rgba(198,166,90,0.18), transparent 70%);
  transform: rotate(-8deg);
  pointer-events:none;
  z-index:0;
}
/* Allgemeine Textboxen (Karten) aufhellen */
/* ==== Hero-Karte im Theme-3-Look ==== */
.hero_card{
  position: relative;
  padding: 28px;
  border-radius: var(--radius, 18px);

  /* dunkler, samtiger Verlauf */
  background:
    linear-gradient(180deg, #2b2a29 0%, #242321 68%, #1c1b19 100%);

  /* feine Goldkontur */
  border: 1px solid rgba(198,166,90,.35);

  /* Tiefe */
  box-shadow:
    0 22px 48px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.04); /* leichte Kante oben innen */
  color: #f3efe6;
}

/* zarte Oberlicht-Kante (scheinbar „poliert“) */
.hero_card::before{
  content:"";
  position:absolute; inset:0; border-radius:inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0));
  pointer-events:none;
  mix-blend-mode:overlay;
}

/* goldener Edge-Glow – sehr dezent */
.hero_card::after{
  content:"";
  position:absolute; inset:-1px; border-radius:inherit;
  box-shadow:
    0 0 0 1px rgba(198,166,90,.35),
    0 10px 40px rgba(198,166,90,.18);
  pointer-events:none;
}

/* Typo-Farben passend zur dunklen Karte */
.hero_card h1{
  color:#fff7ea;
  text-shadow: 0 1px 0 rgba(0,0,0,.25);
  margin: 0 0 10px;
}
.hero_card p{ color:#d9d2c6; }

/* Abstände/Hover optional */
.hero_card.hero_card--lift{ margin-top: 24px; }
/* === Mystic: Angebots-Karten unter dem Hero heller machen === */
/* Gilt für alle vier Karten (.card, .card--tall, .card--wide) */
.theme-mystic .offers_grid .card,
.theme-mystic .offers_grid .card.card--tall,
.theme-mystic .offers_grid .card.card--wide {
  background: linear-gradient(
    0deg,                     /* Verlauf von unten nach oben */
    #c8b693 0%,               /* dunklerer Ton unten */
    #f3efe6 100%              /* heller Ton oben */
  );
  border: 1px solid rgba(214, 184, 110, 0.28);
  color: #2c2723;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

/* Texte in den Karten */
.theme-mystic .offers_grid .card h3 { color: #1f1b18; }
.theme-mystic .offers_grid .card p  { color: #3a342e; }

/* dezenter Hover (leicht vergoldet) */
.theme-mystic .offers_grid .card:hover {
  background: linear-gradient(180deg, #f7f1e6 0%, #eadfcf 100%);
  border-color: rgba(214,184,110,0.45);
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(214,184,110,0.22);
}

/* kleiner Pfeil / Akzent in Gold */
.theme-mystic .offers_grid .card .card_arrow { color: rgba(214,184,110,0.9); }
body.theme-mystic header {

  border-bottom: 1px solid rgba(214,184,110,0.45); /* Goldlinie */
  box-shadow: 0 6px 14px rgba(0,0,0,0.25);
  backdrop-filter: saturate(130%) blur(6px);
  position: sticky;
  top: 0;
  z-index: 60;
}

body.theme-mystic header .brand_name { color: #f3ece6; }

body.theme-mystic header nav a {
  color: #f5f1ec;
  font-weight: 500;
  transition: color .25s ease, background-color .25s ease;
}

body.theme-mystic header {
  background: linear-gradient(
    180deg,
    rgba(118, 84, 60, 0.95) 0%,     /* helles Kupfer */
    rgba(85, 63, 47, 0.9) 100%      /* Bronze-Schattierung */
  );
  border-bottom: 1px solid rgba(214,184,110,0.35);
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
  backdrop-filter: blur(5px) saturate(115%);
}
body.theme-mystic header {
  background: linear-gradient(
    180deg,
    rgba(122, 96, 92, 0.95) 0%,     /* Rosé-Taupe */
    rgba(96, 74, 70, 0.92) 100%     /* tieferer Grundton */
  );
  border-bottom: 1px solid rgba(214,184,110,0.35);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  backdrop-filter: blur(6px) saturate(120%);
}
/* FINAL OVERRIDE – Theme 2 (Rosé-Taupe) */

body.theme-mystic header nav a:hover {
  color: #f8f6f3;
  background-color: #6c7871; /* kühles, dezentes Eukalyptus-Grau */
  text-shadow: 0 0 6px rgba(214,184,110,0.15);
  border-radius: 8px;
  padding: 6px 10px;
  transition: background-color .25s ease, color .25s ease;
}

/* === Mobile-Fix für das Menü im Mystic-Theme === */
@media (max-width: 700px){
  body.theme-mystic header{
    position: sticky;
    top: 0;
    z-index: 999;
    padding-top: max(6px, env(safe-area-inset-top));
    border-bottom: 1px solid rgba(255,255,255,.08);
    background: linear-gradient(
      180deg,
      rgba(35, 20, 20, .72),
      rgba(35, 20, 20, .64)
    );
    -webkit-backdrop-filter: saturate(140%) blur(6px);
    backdrop-filter: saturate(140%) blur(6px);
  }

  /* UL wirklich umbrechen lassen */
  body.theme-mystic header nav ul{
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 10px 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
  }
  /* <li> nicht selbst blocken – <a> darf im Flexfluss stehen */
  body.theme-mystic header nav li{ display: contents !important; }

  /* Links kompakter, damit mehr auf die Zeile passt */
  body.theme-mystic header nav a{
    display: inline-block;
    padding: 6px 10px !important;
    line-height: 1.2;
  }
}

/* Kollisionsschutz: kein Clipping in Header-Wraps */
body.theme-mystic header .container,
body.theme-mystic header .nav{
  overflow: visible !important;
  height: auto !important;
}

/* ==============================================
   Brand-Struktur (neue Klassen mit doppeltem Unterstrich)
   ============================================== */

/* 1. Logo + Text nebeneinander */
.brand__link {
  display: inline-flex;          /* nebeneinander */
  align-items: center;           /* vertikal mittig */
  gap: 12px;                     /* Abstand zwischen Kreis und Text */
  text-decoration: none;
  color: inherit;
}

/* --- Brand-Kreis: tiefer, größerer Dauerschatten + sanfter Goldhover --- */
.brand__mark {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 42% 32%, rgba(70,60,52,.30) 0%, rgba(70,60,52,.14) 62%, transparent 100%),
    linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.36));
  border: 1.3px solid rgba(198,166,90,0.55);

  /* Tiefer, dunkler, weich auslaufender Schatten */
  box-shadow:
    0 8px 22px rgba(0,0,0,0.55),     /* dunkler Hauptschatten */
    0 0 22px rgba(0,0,0,0.25),       /* innerer Dunst */
    inset 0 0 4px rgba(198,166,90,0.25); /* leichter goldener Innenreflex */
  transition: all 0.35s ease;
}


/* Blatt im Kreis */
.brand__mark img {
  height: 48px;
  width: auto;
  filter: brightness(1.06) contrast(0.94);
  transition: filter 0.3s ease;
}

/* --- Hover-Effekt: sanfte Aufhellung --- */
.brand__link:hover .brand__mark {
  box-shadow: 0 6px 14px rgba(198,166,90,0.45);  /* stärkerer Goldschein */
  border-color: rgba(198,166,90,0.75);
  background:
    radial-gradient(circle at 42% 32%, rgba(80,70,60,.34) 0%, rgba(80,70,60,.16) 65%, transparent 100%),
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(0,0,0,.25));
}

/* Blatt etwas heller bei Hover */
.brand__link:hover .brand__mark img {
  filter: brightness(1.15) contrast(1);
}
/* --- Menüband kompakter machen --- */
header {
  min-height: unset;             /* entfernt evtl. Mindesthöhe */
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;                /* war 14px – jetzt schlanker */
  gap: 16px;
}

/* Logo und Schrift minimal kleiner, um Proportion zu halten */
.brand__mark {
  width: 44px;
  height: 44px;
}
.brand__mark img {
  height: 42px;
}
.brand__name {
  font-size: 18px;
}
/* HERO-BEREICH – Portraitgröße und Abstand
=========================================== */

/* Das gesamte Bild etwas kleiner */
.hero_media img,
.frame-tilt img {
width: 420px;              /* vorher war vermutlich größer (z. B. 480 px) */
height: auto;
border-radius: var(--radius);
box-shadow: 0 12px 30px rgba(0,0,0,0.4);  /* sanfte Tiefe */
transition: all 0.4s ease;
}

/* Abstand zum Textblock links */
.hero_media {
margin-left: 30px;          /* leicht aufgelockert */
}

/* Optional: dezente Neigung und Hover-Effekt */
.frame-tilt img {
transform: rotate(0deg);
}
.frame-tilt img:hover {
transform: rotate(0deg) scale(1.02);
}
.blob path {
  fill: rgba(171,153,116,0.10); /* Goldbeige mit Tiefe */
}
.blob { position:absolute; left:50%; top:100%;
  transform: translate(-50%,-50%);            /* Basis bleibt */
   animation: blobDrift 9s ease-in-out infinite;
 }
 @keyframes blobDrift{
   0%,100% { transform: translate(-50%,-50%) scale(1); }
   50%     { transform: translate(-50%,-52%) scale(1.12); } /* -52% = ~8–12px Auf/Abdriften */
 }
 @media (prefers-reduced-motion: reduce){
  .blob, .blob path{ animation: none !important; }
}
/* =========================================
   Einheitlicher Footer – Azara Luma
   ========================================= */
footer,
.site-footer {
  background-color: #3b3a36;               /* dunkles, ruhiges Braun-Grau */
  color: #faf7f2;                          /* helles, sanftes Beige */
  border-top: 1px solid rgba(198,166,90,0.25);
  font-size: 15px;
  padding: 2px 0 8px;
    margin-top: auto;          /* drückt den Footer nach unten */
    flex-shrink: 0;
}

/* zentrierte Breite + Grid */
.site-footer .footer-inner{
  max-width: 1180px;          /* oder 1240px – entscheide dich für EINEN Wert */
  margin: 0 auto;
  padding: 48px 40px 32px;
  display: grid;
  grid-template-columns: 445px 1.7fr 0.9fr 0.4fr; /* Logo | Kontakt | Adresse | Rechtliches */
  column-gap: 30px;                                /* Abstand zwischen den Spalten */
  align-items: stretch;                             /* gleiche Zellenhöhe */
}

/* Footer */
footer {
  display: flex;
  justify-content: space-around; /* oder: space-between */
  flex-wrap: wrap; /* falls es auf kleinen Bildschirmen umbrechen soll */
}

.footer-section {
  flex: 1;
  min-width: 200px;
  margin: 0 10px;
}
.footer-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.footer-logo img {
  width: 300px;  /* hier kannst du die Größe ändern */
  height: auto;
}
.footer-logo p {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  color: var(--light);
}


/* Logo links, Copyright darunter */
.footer-brand{
  display: flex;
  flex-direction: column;   /* Logo oben, Copyright darunter */
  gap: 10px;
  justify-self: start;     /* Logo bündig links */
  justify-content: space-between;  /* verteilt Kinder: erstes nach oben, letztes nach unten */
  align-items: flex-start; /* Logo + Text linksbündig */
  min-height: 100%;                 /* füllt die volle Grid-Zellenhöhe */
  overflow: visible;
}
.footer-brand img{
  width: 320px;             /* gewünschte Größe */
  height: auto;
  display: block;
  margin: 0;                        /* keine Zusatzabstände oben */
  transform: translateY(-14px);   /* feintunen: -10…-22px */
  will-change: transform;
}
.brand-copyright {
  font-size: 0.9rem;
  opacity: 0.85;
  margin-top: 10px;
  color: var(--light);
  letter-spacing: 0.03em;
}
.footer-brand .brand-copyright {
  align-self: center;         /* nur Copyright mittig unter dem Logo */
  text-align: center;
  width: 100%;                      /* auf Breite der Brand-Spalte zentrieren */
  margin-top: 10px;                  /* kleiner Abstand zum Logo (optional) */
  font-size: 0.9rem;
  opacity: 0.85;
  margin-bottom: 0;
  color: var(--light);
  letter-spacing: 0.03em;
}

/* Spalten linksbündig */
/* ---------- Spalten & Höhen-Ausrichtung ---------- */

/* sorgt dafür, dass alle Grid-Zellen gleich hoch sind */
.site-footer .footer-inner{
  align-items: stretch;
}

/* Brand-Spalte – Logo oben, © ganz unten */
.footer-brand{
  display: flex;
  flex-direction: column;
  justify-content: space-between;  /* verteilt Logo und Copyright */
  align-items: flex-start;          /* links bündig */
  min-height: 100%;
}

/* Copyright mittig unter Logo */
.footer-brand .brand-copyright{
  align-self: center;
  text-align: center;
  width: 100%;
  margin-top: 10px;
  font-size: .95rem;
  opacity: .85;
}

/* Textspalten: Inhalt oben, letzte Zeile bündig unten */
.footer-col{
  display: flex;
  flex-direction: column;
  min-height: 100%;
  text-align: left;
  justify-self: end;       /* rückt alle Spalten etwas nach rechts */
}
.footer-col h4{
  margin: 0 0 8px;
  font-weight: 700;
}
.footer-col > *:last-child{
  margin-top: auto;  /* drückt die letzte Zeile nach unten */
}
.footer-col p:last-child,
.footer-col a:last-child{
  margin-bottom: 0;  /* kein Extra-Abstand nach unten */
}


/* Responsiv */
@media (max-width: 960px){
  .site-footer .footer-inner{
    grid-template-columns: 1fr 1fr;   /* Logozeile + zwei Spalten */
    column-gap: 40px;
  }
  .footer-brand{ grid-column: 1 / -1; } /* Brand oben über die volle Breite */
}

@media (max-width: 560px){
  .site-footer .footer-inner{
    grid-template-columns: 1fr;       /* untereinander */
  }
}




/* ==== Hero-Karte – sanfter Verlauf mit Goldschimmer ==== */
/* ==== Hero-Karte mit deutlich sichtbarem Verlauf ==== */
.hero_card {
  position: relative;
  padding: 28px;
  border-radius: var(--radius, 18px);
  background: linear-gradient(
    17deg,
    rgba(24, 24, 25, 1) 0%,       /* tiefer Anfang, sattes Dunkelbraun */
    rgba(53, 41, 38, 1) 35%,      /* mittlerer Übergang etwas früher */
    rgba(84, 85, 68, 1) 70%,   /* heller, goldbeiger Schimmer */
    rgba(201, 186, 153, 1) 100%   /* sanftes Auslaufen, Lichtton */
  ) !important;
  border: 1px solid rgba(198, 166, 90, 0.45);
  box-shadow:
    0 20px 44px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  color: #f3efe6;
  transition: transform 0.45s ease, box-shadow 0.45s ease;
  overflow: hidden;
}

/* zarte Lichtkante oben */
.hero_card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.1),
    rgba(255, 255, 255, 0)
  );
  mix-blend-mode: overlay;
  pointer-events: none;
}

/* goldener Rand-Schimmer */
.hero_card::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  box-shadow:
    0 0 0 1px rgba(198, 166, 90, 0.35),
    0 10px 40px rgba(198, 166, 90, 0.18);
  pointer-events: none;
}

.hero_card h1 {
  color: #fff7ea;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

.hero_card p {
  color: #ddd3c4;
  line-height: 1.6;
}

/* Hover: leichte Bewegung + mehr Leuchten */
.hero_card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 26px 54px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
/* Thema 2: Hero-Karte mit Verlauf wie in Thema 3 */
body.theme-flow .hero_card,
body.theme-2 .hero_card {
  /* evtl. alte Einfärbung neutralisieren */
  background-color: transparent !important;

  /* sichtbarer, warmer Verlauf (wie links in Thema 3) */
  background: linear-gradient(
    150deg,
    #6e5d49 0%,
    #52473e 52%,
    #2b2724 100%
  ) !important;

  /* feine Goldkontur + Tiefe wie in T3 */
  border: 1px solid rgba(198,166,90,.35);
  box-shadow:
    0 20px 44px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.04);
  color: #f3efe6;
}

/* zarte Lichtkante oben (polierter Look) */
body.theme-flow .hero_card::before,
body.theme-2 .hero_card::before {
  content:"";
  position:absolute; inset:0; border-radius:inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0));
  mix-blend-mode: overlay; pointer-events:none;
}

/* dezenter Gold-Glow am Rand */
body.theme-flow .hero_card::after,
body.theme-2 .hero_card::after {
  content:"";
  position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  box-shadow:
    0 0 0 1px rgba(198,166,90,.32),
    0 10px 38px rgba(198,166,90,.18);
}

/* Typo auf der dunklen Karte */
body.theme-flow .hero_card h1,
body.theme-2 .hero_card h1 { color:#fff7ea; text-shadow:0 1px 0 rgba(0,0,0,.25); }
body.theme-flow .hero_card p,
body.theme-2 .hero_card p  { color:#d9d2c6; }

/* ---------- Impressum-Seite ---------- */
.page-header {
  text-align: center;
  padding: 4rem 1rem 2rem;
  background-color: var(--light);
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.page-header h1 {
  font-family: var(--font-serif);
  font-size: 2rem;
  color: var(--accent-2);
  margin-top: 1rem;
}

.content {

  margin: 0 auto;
  padding: 3rem 1.5rem 6rem;
  line-height: 1.6;
}

.impressum h2 {
  font-size: 1.4rem;
  color: var(--accent-2);
  margin-bottom: 1rem;
}

.impressum p {
  margin-bottom: 1.2rem;
}
.impressum {

  padding: 3rem;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.impressum h2 {
  font-family: var(--font-serif);
  color: var(--accent-2);
}

.impressum p {
  font-size: 0.95rem;
  color: var(--text);
}
/* ---------- Logo ---------- */
.logo {
  width: 14vw;      /* 14 % der Bildschirmbreite */
  max-width: 220px; /* nie größer als 220px */
  height: auto;
  display: block;
  margin: 0 auto;
}
/* --- Grünes Banner-Grundgerüst --- */
.banner-mystic{
  position: relative;
  height: 260px;                 /* Bannerhöhe nach Wunsch */
  overflow: hidden;
  background: linear-gradient(180deg,#22322d 0%, #1a241f 100%) !important; /* sattes Grün */
  isolation: isolate;            /* verhindert Misch-Effekte mit Überlagerungen */
  z-index: 0;
}
:root{ --site-banner-h: 220px; } /* gewünschte Bannerhöhe */

/* Optional: sanfter Schimmer, kann auch weggelassen werden */
.banner-mystic::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(1200px 260px at 60% 0%, rgba(255,255,255,.05), transparent 60%);
  pointer-events:none;
}

/* --- Zeichenfläche für die schwebenden Formen --- */
.banner-mystic__canvas{
  position:absolute; inset:0;
  pointer-events:none;
}
/* Ruhiges Fade-Banner */
#page-banner.banner-mystic{
  position: relative;
  height: 180px;
  overflow: hidden;
  background: linear-gradient(180deg,#22322d 0%,#1a241f 100%);
  border-bottom: 1px solid rgba(198,166,90,.45);
}

/* Sichtbare goldene Umrissformen */
#page-banner .shape{
  position:absolute;
  border:2px solid rgba(198,166,90,0.7);
  background:transparent;
  border-radius:32px;
  opacity:0.8;
  animation: drift var(--dur,28s) linear infinite;
  top: calc(var(--y,50) * 1% - var(--h,200px)/2);
  width: var(--w,300px);
  height: var(--h,200px);
}
/* --- Schlankes Banner für Unterseiten --- */
.banner-thin {
  position: relative;
  height: 160px;
  overflow: hidden;
  background: linear-gradient(180deg, #2b322f 0%, #1a231f 100%);
  border-bottom: 1px solid rgba(198,166,90,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
}

.banner-thin .banner-inner {
  text-align: center;
}

.banner-thin h1 {
  font-family: "Playfair Display", serif;
  font-size: 1.8rem;
  color: #e9e4dc;
  letter-spacing: 0.5px;
  font-weight: 500;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.banner-thin h1 {
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1.8rem;
  color: #e8e4da;
  letter-spacing: 0.6px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35);
  transform: translateY(2px);
}
.subtitle {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-weight: 400;
  font-size: 1.3rem;
  color: #e8e4da;
  letter-spacing: 0.4px;
  margin-top: 0.4rem;
  text-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
/* ===== Hero Compact (Unterseiten) ===== */
.hero-compact{
  position: relative;
  display: grid;
  grid-template-columns: 1fr minmax(280px, 720px) 1fr;
  align-items: center;
  gap: clamp(16px, 3vw, 28px);
  padding: clamp(18px, 3vw, 28px) 0 34px;
}

/* Karte mittig */
.hero-compact__card{
  background: linear-gradient(180deg, #3a2e26 0%, #2b221c 100%);
  color: #eadfd2;
  border: 1px solid rgba(198,166,90,.35);
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  padding: clamp(18px, 3vw, 28px);
}

.hero-compact__card h1{
  font-family: "Playfair Display", serif;
  font-size: clamp(24px, 3.2vw, 38px);
  line-height: 1.15;
  color: #eae5dc;
  margin: 0 0 6px;
}

.hero-compact__card .subtitle{
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(16px, 1.8vw, 22px);
  color: #e8e4da;
  letter-spacing: .3px;
  margin: 4px 0 14px;
  text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

/* Buttons */
.hero-compact__actions{
  display: flex; gap: 10px; flex-wrap: wrap; margin: 6px 0 14px;
}
.btn-solid, .btn-ghost{
  display:inline-block; text-decoration:none; cursor:pointer;
  padding: 10px 14px; border-radius: 12px; font-weight: 600;
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.btn-solid{
  background: linear-gradient(180deg,#caa871 0%,#a98d59 100%);
  color:#1d1a16; border:1px solid rgba(98,78,42,.55);
}
.btn-solid:hover{ filter: brightness(1.05); }
.btn-ghost{
  background: transparent; color:#eadfd2;
  border: 1px solid rgba(198,166,90,.45);
}
.btn-ghost:hover{ background: rgba(198,166,90,.08); }

/* Liste */
.hero-compact__list{
  margin: 8px 0 0; padding-left: 1.1em; color:#e6dfd6;
  opacity:.9;
}
.hero-compact__list li{ margin: 4px 0; }

/* Fotos links/rechts */
.hero-compact__photo{
  position: relative; justify-self: center;
  width: clamp(180px, 26vw, 320px);
  aspect-ratio: 3/4;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(198,166,90,.45);
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
  background: rgba(0,0,0,.25);
}
.hero-compact__photo img{
  width:100%; height:100%; object-fit: cover; display:block;
  filter: contrast(1.02) saturate(1.02);
}

/* Leichte Neigung/Versatz wie auf der Startseite */
.hero-compact__photo--left{ transform: rotate(-6deg); }
.hero-compact__photo--right{ transform: rotate(6deg); }

/* Responsiv: auf schmalen Geräten Bilder unter die Karte */
@media (max-width: 880px){
  .hero-compact{
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 16px 0 26px;
  }
  .hero-compact__photo--left{ order: 2; transform: rotate(-4deg); }
  .hero-compact__photo--right{ order: 3; transform: rotate(4deg); }
  .hero-compact__card{ order: 1; }
}



/* verschiedene Typen */
.shape--circle{border-radius:999px;}
.shape--pill{border-radius:999px/48px;}
.shape--diamond{border-radius:18px;transform:rotate(45deg);}
.shape--hex{clip-path:polygon(10% 0,90% 0,100% 50%,90% 100%,10% 100%,0 50%);}

/* ruhige Bewegung */
@keyframes drift{
  0%{
    transform: translateX(var(--x-start,-25%))
               rotate(var(--rot,0deg))
               scale(1);
  }
  50%{
    transform: translateX(calc((var(--x-start,-25%) + var(--x-end,125%))/2))
               rotate(calc(var(--rot,0deg) + var(--rotDelta,90deg)))
               scale(1.03);
  }
  100%{
    transform: translateX(var(--x-end,125%))
               rotate(calc(var(--rot,0deg) + var(--rotDelta,180deg)))
               scale(1);
  }
}
/* Banner-Grundhöhe und Layer */
#page-banner.banner-with-card{
  position: relative;
  height: 180px;           /* ggf. 200–280 anpassen */
  overflow: hidden;
  background: linear-gradient(180deg,#22322d 0%, #1a241f 100%);
  border-bottom: 1px solid rgba(198,166,90,.45);
}
#page-banner .shape{ z-index: 0; }       /* Shapes ganz hinten */
#page-banner.banner-with-card::after{
  content:""; position:absolute; inset:0;
  z-index: 1; pointer-events:none;
  background: radial-gradient(1000px 220px at 60% 0%, rgba(255,255,255,.05), transparent);
}

/* Inhaltsschicht über Shapes */
#page-banner .banner-content{
  position: relative;
  z-index: 3;                 /* über den Shapes */
  height: 100%;
  display: grid;
  grid-template-columns: 1fr minmax(280px, 560px) 380px; /* links Platz, Mitte Karte, rechts Foto */
  align-items: center;
  gap: clamp(12px, 2.6vw, 24px);
  padding: 0 clamp(14px, 3vw, 28px);
}

/* Karte mittig */
#page-banner .hero-card{
  grid-column: 2;
  background: linear-gradient(180deg, #3a2e26 0%, #2b221c 100%);
  color: #eadfd2;
  border: 1px solid rgba(198,166,90,.35);
  border-radius: 16px;
  box-shadow: 0 16px 36px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  padding: clamp(14px, 2.4vw, 22px);
}
#page-banner .hero-card h1{
  font-family: "Playfair Display", serif;
  font-size: clamp(20px, 2.6vw, 32px);
  line-height: 1.15; color: #ece6dd; margin: 0 0 6px;
}
#page-banner .hero-card .subtitle{
  font-family: "Playfair Display", serif;
  font-style: italic; font-weight: 400;
  font-size: clamp(14px, 1.6vw, 20px);
  color:#e8e4da; letter-spacing:.3px;
  margin: 2px 0 12px; text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

/* Buttons (nutzt deine vorhandenen, sonst diese) */
/* --- Button-Stil wie auf der Startseite --- */
#page-banner .actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}

/* Voller Button (Einzelsitzung) */
#page-banner .btn-solid {
  background: linear-gradient(180deg, #d9caa3 0%, #c0a972 100%);
  color: #2a241c;
  border: 1px solid rgba(120, 100, 65, 0.45);
  font-weight: 600;
  border-radius: 12px;
  padding: 10px 16px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: all 0.25s ease;
}
#page-banner .btn-solid:hover {
  filter: brightness(1.08);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
}

/* Transparenter Button (Gruppenabende) */
#page-banner .btn-ghost {
  background: rgba(255, 255, 255, 0.04);
  color: #e7e3d9;
  border: 1px solid rgba(198, 166, 90, 0.4);
  font-weight: 500;
  border-radius: 12px;
  padding: 10px 16px;
  text-decoration: none;
  transition: all 0.25s ease;
}
#page-banner .btn-ghost:hover {
  background: rgba(198, 166, 90, 0.1);
  color: #fff;
}


/* Rechtes Foto im Banner */
#page-banner .hero-photo-right{
  grid-column: 3; justify-self: end;
  width: clamp(200px, 22vw, 320px);
  aspect-ratio: 3/4;
  border-radius: 16px; overflow:hidden;
  border: 1px solid rgba(198,166,90,.45);
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
  transform: rotate(5deg);
  background: rgba(0,0,0,.25);
}
#page-banner .hero-photo-right img{
  width:100%; height:100%; object-fit:cover; display:block;
}

/* Responsiv: Foto unter die Karte, wenn wenig Platz */
@media (max-width: 980px){
  #page-banner.banner-with-card{ height: 280px; } /* etwas höher, wenn gestapelt */
  #page-banner .banner-content{
    grid-template-columns: 1fr;
    align-content: center; justify-items: center;
    gap: 12px;
  }
  #page-banner .hero-card{ grid-column: 1; max-width: 640px; }
  #page-banner .hero-photo-right{ grid-column: 1; transform: rotate(3deg); }
}
/* Karte leicht nach oben versetzen */
#page-banner.banner-with-card .banner-content{
  align-items: start;        /* statt center */
  padding-top: 2px;          /* etwas Luft oben */
}
#page-banner.banner-with-card .hero-card{
  transform: translateY(-36px);   /* 6–12px nach oben ist meist ideal */
}
/* schlankere Typo im Banner */
#page-banner.banner-with-card .hero-card h1{
  font-size: clamp(18px, 2.1vw, 28px);  /* vorher größer → kleiner */
  line-height: 1.1;
}
#page-banner.banner-with-card .hero-card .subtitle{
  font-size: clamp(13px, 1.4vw, 18px);
}
/* ---------- Banner-Grundlage ---------- */
#page-banner.banner-with-card.banner--site{
  height: 220px;                      /* schlank, aber nicht gedrungen */
  background: linear-gradient(180deg,#22322d 0%, #1a241f 100%);
  border-bottom: 1px solid rgba(198,166,90,.45);
  position: relative; overflow: hidden;
}

/* Shapes bleiben hinten */
#page-banner .shape{ z-index:0; }

/* dezenter Glanz wie auf index */
#page-banner.banner--site::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background: radial-gradient(1100px 240px at 60% 0%, rgba(255,255,255,.05), transparent);
}

/* ---------- Zentrierte Bühne wie auf index ---------- */
#page-banner .banner-content{
  position: relative; z-index:3;
  height: 100%;
  max-width: 1180px;                  /* selbe Breite wie Startseite */
  margin: 0 auto;                     /* ZENTRIERUNG */
  padding: 0 24px;
  display: grid;
  grid-template-columns: minmax(420px, 620px) 340px; /* Karte | Foto */
  align-items: center;
  gap: 24px;
}

/* ---------- Karte wie auf index ---------- */
.hero-card--site{
  background: linear-gradient(180deg,#4a3a30 0%, #2b221c 100%);
  color:#eadfd2;
  border:1px solid rgba(198,166,90,.38);
  border-radius:18px;
  box-shadow:
    0 18px 40px rgba(0,0,0,.35),
    inset 0 14px 40px rgba(255,255,255,.08),
    inset 0 -18px 40px rgba(0,0,0,.35);
  padding: 16px 18px;
}
.hero-card--site h1{
  font-family:"Playfair Display", serif;
  font-size: clamp(20px, 2.4vw, 30px);   /* kleiner → kein Umbruch */
  line-height:1.1; color:#efe9df; margin:0 0 6px;
}
.hero-card--site .subtitle{
  font-family:"Playfair Display", serif;
  font-style: italic; font-weight:400;
  font-size: clamp(13px, 1.4vw, 18px);
  color:#e8e4da; letter-spacing:.3px;
  margin: 2px 0 12px;
  text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

/* ---------- Buttons exakt wie index ---------- */
:root{
  --btn-grad-a:#e6d7b0;  /* oben */
  --btn-grad-b:#c9ae75;  /* unten */
  --btn-border: rgba(120,100,65,.45);
  --btn-ghost-bg: rgba(255,255,255,.04);
  --btn-ghost-border: rgba(198,166,90,.45);
}
#page-banner .actions{ display:flex; gap:10px; flex-wrap:wrap; }

#page-banner .btn{
  display:inline-block; text-decoration:none; cursor:pointer;
  padding: 10px 16px; border-radius:12px; font-weight:600;
  transition: all .25s ease;
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
#page-banner .btn--primary{
  background: linear-gradient(180deg,var(--btn-grad-a) 0%, var(--btn-grad-b) 100%);
  color:#2a241c; border:1px solid var(--btn-border);
}
#page-banner .btn--primary:hover{ filter:brightness(1.08); }

#page-banner .btn--secondary{
  background: var(--btn-ghost-bg);
  color:#eadfd2; border:1px solid var(--btn-ghost-border);
}
#page-banner .btn--secondary:hover{
  background: rgba(198,166,90,.10); color:#fff;
}

/* ---------- Foto rechts – goldener Rand wie index ---------- */
#page-banner .hero-photo-right{
  justify-self:end;
  width: clamp(220px,22vw,320px);
  aspect-ratio: 3/4;
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(198,166,90,.6);
  box-shadow: 0 18px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.25) inset;
  transform: rotate(4.5deg);
  background: rgba(0,0,0,.25);
}
#page-banner .hero-photo-right img{
  width:100%; height:100%; object-fit:cover; display:block;
}

/* ---------- Feintuning: Karte optisch etwas höher ---------- */
#page-banner.banner-with-card .banner-content{ align-items:start; padding-top:6px; }
#page-banner.banner-with-card .hero-card{ transform: translateY(-6px); }

/* ---------- Responsiv stapeln ---------- */
@media (max-width: 980px){
  #page-banner.banner-with-card.banner--site{ height: 270px; }
  #page-banner .banner-content{
    grid-template-columns: 1fr;
    gap: 12px; align-content:center; justify-items:center;
  }
  #page-banner .hero-photo-right{ transform: rotate(3deg); }
}
/* Hintergrund-Banner (Shapes) */
#page-banner.banner-mystic{
  position: relative;
  z-index: 1;
  height: var(--site-banner-h);
  overflow: hidden;
  background: linear-gradient(180deg,#22322d 0%, #1a241f 100%);
  border-bottom: 1px solid rgba(198,166,90,.45);
}

/* Site-Banner (Inhalt) soll NUR überlagern, NICHT verdecken */
#site-banner.banner--site{
  position: relative;
  z-index: 3;                     /* über #page-banner */
  height: var(--site-banner-h);
  margin-top: calc(-1 * var(--site-banner-h));  /* legt sich deckungsgleich darüber */
  background: transparent !important;           /* KEIN eigener Hintergrund */
  border: 0;
}

/* Bühne zentrieren wie Startseite */
#site-banner .banner-content{
  height: 100%;
  max-width: 1180px;
  margin: 0 auto;                 /* Mitte */
  padding: 0 24px;
  display: grid;
  grid-template-columns: minmax(420px, 620px) 340px; /* Karte | Foto */
  align-items: center;
  gap: 24px;
}

/* Karte & Foto (wie zuvor) – hier nur Kurzfassung falls was überschrieben wird: */
.hero-card--site{
  background: linear-gradient(180deg,#4a3a30 0%, #2b221c 100%);
  color:#eadfd2;
  border:1px solid rgba(198,166,90,.38);
  border-radius:18px;
  box-shadow: 0 18px 40px rgba(0,0,0,.35),
              inset 0 14px 40px rgba(255,255,255,.08),
              inset 0 -18px 40px rgba(0,0,0,.35);
  padding: 16px 18px;
}
.hero-card--site h1{ font-size: clamp(20px,2.4vw,30px); line-height:1.1; margin:0 0 6px; }
.hero-card--site .subtitle{ font-style: italic; font-size: clamp(13px,1.4vw,18px); margin:2px 0 12px; }

#site-banner .actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* Buttons exakt wie Index */
#site-banner .btn{
  position: relative; overflow:hidden;
  display:inline-block; text-decoration:none; cursor:pointer;
  padding:10px 16px; border-radius:12px; font-weight:600;
  transition: all .25s ease; box-shadow:0 6px 16px rgba(0,0,0,.25);
}
#site-banner .btn--primary{
  background: linear-gradient(180deg,#e6d7b0 0%, #c9ae75 100%);
  color:#2a241c; border:1px solid rgba(120,100,65,.45);
}
#site-banner .btn--secondary{
  background: rgba(255,255,255,.04);
  color:#eadfd2; border:1px solid rgba(198,166,90,.45);
}
#site-banner .btn--primary:hover{ filter:brightness(1.08); }
#site-banner .btn--secondary:hover{ background: rgba(198,166,90,.10); color:#fff; }

/* Foto rechts – goldener Rand */
#site-banner .hero-photo-right{
  justify-self:end;
  width: clamp(220px,22vw,320px);
  aspect-ratio:3/4;
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(198,166,90,.6);
  box-shadow:0 18px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.25) inset;
  transform: rotate(4.5deg);
  background: rgba(0,0,0,.25);
}
#site-banner .hero-photo-right img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Optional: Karte minimal höher wirken lassen */
#site-banner .banner-content{ align-items:start; padding-top:6px; }
#site-banner .hero-card{ transform: translateY(-6px); }

/* Responsive Stapelung */
@media (max-width: 980px){
  :root{ --site-banner-h: 270px; }      /* etwas höher, wenn gestapelt */
  #site-banner .banner-content{
    grid-template-columns: 1fr;
    gap: 12px; align-content:center; justify-items:center;
  }
  #site-banner .hero-photo-right{ transform: rotate(3deg); }
}

.hero--site .hero_media .frame-tilt img {
  height: auto;
  max-height: none;
}
/* Eventuelle Außenabstände am Header/Ribbon eliminieren */
header, .site-header, .topbar { margin-bottom: 0 !important; }

/* Grüner Bereich folgt automatisch der Sektionhöhe */
body.theme-mystic #page-banner.hero.hero--mystic.hero--site::before{
  content:"";
  position:absolute;
  inset:0;                     /* top/right/bottom/left = 0 */
  height:100%;                 /* <- statt fester px: Panel = Sektionhöhe */
  background: radial-gradient(120% 120% at 30% 30%, #2b3130 0%, #1f2222 60%, #171818 100%);
  z-index:0;
  pointer-events:none;
}

/* Inhaltsebene über dem Panel */
body.theme-mystic #page-banner.hero.hero--mystic.hero--site .hero_layer{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;  /* Karte bestimmt die Höhe, Foto ist absolut */
}



/* Mobile fallback: Bild wieder im Fluss unter die Karte */
@media (max-width: 900px){
  body.theme-mystic #page-banner.hero.hero--mystic.hero--site{
    padding-block: 20px 16px;
  }
  body.theme-mystic #page-banner.hero.hero--mystic.hero--site .hero_layer{
    display: block;
  }
  body.theme-mystic #page-banner.hero.hero--mystic.hero--site .hero_media{
    position: static;
    transform: none;
    margin-top: 14px;
  }
}

/* Sektion ist der Bezugspunkt */
#page-banner.hero.hero--mystic.hero--site {
  position: relative;
  overflow: visible; /* wichtig, sonst wird das aboslute Bild abgeschnitten */
}

/* Inhaltsebene über dem Panel */
#page-banner .hero_layer {
  position: relative;
  z-index: 1;
}

/* Grünes Panel hinter alles */
#page-banner.hero.hero--mystic.hero--site::before{
  content:"";
  position:absolute;
  inset:0;
  height:100%;
  z-index:0; /* hinter Foto und Karte */
}

#page-banner .frame-tilt{
  display:inline-block;
  padding: 12px;             /* dein goldener Rahmen */
  border-radius: 18px;
  box-shadow: 0 14px 36px rgba(0,0,0,.25);
  background: rgba(0,0,0,0.02);

}
#page-banner .frame-tilt img{
  display:block;
  width: auto;
  height: auto;
  max-width: min(34vw, 440px); /* Breite steuern, nicht Höhe */
  max-height: none;            /* NICHT deckeln */
}
/* Foto kleiner, aber gleiche Proportionen */
.hero.hero--mystic.hero--site .hero_media .frame-tilt img {
  width: auto;
  max-width: 220px;     /* vorher evtl. 400–440px */
  height: auto;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
  border-radius: 14px;
}

  /* =========================================
   Unterseiten-Hero: feste Panelhöhe
   ========================================= */
:root{ --hero-site-panel-h: 80px; }           /* Höhe des grünen Bereichs */

#page-banner.hero.hero--mystic.hero--site{
  position: relative !important;
  padding: 0 !important;
  overflow: visible !important;                 /* Bild darf überstehen */
}

/* Grün selbst */
#page-banner.hero.hero--mystic.hero--site::before{
  content:"";
  position:absolute;
  inset:0;
  height: var(--hero-site-panel-h) !important;  /* << Höhe hier steuern */
  background: radial-gradient(120% 120% at 30% 30%, #2b3130 0%, #1f2222 60%, #171818 100%);
  z-index:0;
  pointer-events:none;
}

/* Karte vertikal in die Mitte des grünen Bereichs */
#page-banner.hero.hero--mystic.hero--site .hero_layer{
  position: relative;
  z-index: 2;
  display: grid !important;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center !important;               /* vertikal mittig */
  min-height: var(--hero-site-panel-h) !important;
  gap: clamp(24px, 4vw, 40px);
}


/* =========================================
   Foto hinter dem cremefarbenen Banner
   ========================================= */
.ribbon{ position: relative; z-index: 5 !important; }

/* =========================================
   Schwebende Objekte nur im grünen Bereich
   (alle denkbaren Klassennamen abgedeckt)
   ========================================= */
#page-banner .float_shapes,
#page-banner .banner-shapes,
#page-banner .banner_shapes,
#page-banner .shapes,
#page-banner .shapes-wrap {
  position: absolute !important;
  top: 0; left: 0; right: 0;
  height: var(--hero-site-panel-h) !important;
  overflow: hidden !important;                   /* alles außerhalb abschneiden */
  z-index: 1 !important;                         /* über Grün, unter Inhalt */
  pointer-events: none;
}

/* Falls die Shapes als direkte Kinder <span class="shape"> eingefügt werden */
#page-banner .shape{ will-change: transform; }

/* =========================================
   Text im cremefarbenen Banner vertikal mittig
   ========================================= */
.ribbon{
  min-height: 24px !important;                   /* Bandhöhe bei Bedarf anpassen */
  display: flex !important;
  align-items: center !important;                /* vertikal zentriert */
}
.ribbon .ribbon_row{
  display: flex; align-items: center; width: 100%;
}

/* --- Zitatbereich auf der Startseite --- */
.page-quote {
  text-align: center;
  margin-top: 60px;
  margin-bottom: 40px;
  font-family: 'Parisienne', 'Great Vibes', cursive;
  font-size: 1.8rem;
  color: #a58a78;          /* sanftes Roségold / Cappuccino-Ton */
  opacity: 0.95;
}

@media (max-width: 768px) {
  .page-quote {
    font-size: 1.5rem;
    margin-top: 40px;
    margin-bottom: 30px;
  }
}

/* Zitatbereich unter den Boxen (zentriert + dichter dran) */
.closing-line{
  display: block;                 /* statt inline-block */
  text-align: center !important;  /* sichere Zentrierung */
  font-family: "Parisienne", cursive;
  font-size: 1.8rem;
  color: #a58a78;
  margin: 36px auto 6px;          /* näher an die Boxen, wenig Abstand zur Quelle */
  line-height: 1.3;
}

.closing-source{
  display: block;
  width: 100%;
  text-align: center !important;  /* Quelle exakt mittig */
  font-family: "Playfair Display", serif;
  font-size: 1rem;
  color: rgba(0,0,0,.55);
  margin: 0 0 16px;               /* kleiner Abstand zum Footer */
  letter-spacing: .5px;
}

/* Mittelbanner (Ribbon) wieder mittig ausrichten */

.ribbon .ribbon_text{
  display: block;
  text-align: center !important;
  margin: 0 auto;
}


.quote .closing-line{ font-family:"Parisienne",cursive !important; }

/* Dein Inhaltsbereich (wrapper um den Seiteninhalt) */
.site-main, .content, main {
  flex: 1 0 auto;            /* Inhalt füllt den Raum */
}
.page-sheet:last-child,
.container:last-child {
  margin-bottom: 0px ;
  padding-bottom: 6px ;
}

html { overflow-anchor: none; }           /* verhindert das automatische Nachjustieren */

html { scroll-behavior: auto; }

/* Zitat-Block sauber kapseln */
.quote{
  position: relative;
  overflow: hidden;       /* verhindert Überstand unter dem Footer */
  padding-bottom: 0;
}

/* Blob im Zitat: an den unteren Rand des Blocks, nicht an den Viewport */
.quote .blob{
  position: absolute;
  left: 50%;
  top: auto;
  bottom: -14px;          /* minimal hinter die Linie schieben */
  transform: translateX(-50%);
}

/* Impressum/Datenschutz schmal und mittig */
.page-sheet.legal .sheet-card {
  max-width: 1440px;     /* oder var(--wrap-narrow) falls vorhanden */
  margin-inline: auto;
  padding: 2rem 1.5rem;
}

.page-sheet.legal .content {
  max-width: 105ch;      /* optional: noch enger für Fließtext */
  margin-inline: auto;
}

/* =========================================
   Kartenstil für HONORAR – wie card--soft,
   aber mit Preis & Button
   ========================================= */
.card--offer {
  background: #fcf8f2;                     /* sanftes Creme, wie Anfrage */
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  border: 1px solid rgba(0,0,0,.06);
  padding: 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: box-shadow .25s ease, transform .25s ease;
}
.card--offer:hover {
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.card--offer h2 {
  margin-top: 0;
  font-size: 1.3rem;
  font-weight: 600;
}

.card--offer .teaser {
  margin: .25rem 0 .75rem;
  color: #5b544c;
  line-height: 1.45;
}

.card--offer .bullets {
  margin: .25rem 0 .75rem;
  padding-left: 1.1rem;
}

.card--offer .price {
  margin: .5rem 0 .75rem;
  font-weight: 700;
  font-size: 1.05rem;
  color: #3c342b;
}

.card--offer .hint {
  font-weight: 400;
  opacity: .8;
}

.card--offer .actions {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
}

/* Gold-Button im Stil von "Platz reservieren" (aus gruppen.css) */
.btn--gold {
  display: inline-block;
  background: linear-gradient(180deg, #e7d4a2 0%, #d8ba6c 100%);
  color: #2a231c;
  font-weight: 600;
  text-decoration: none;
  border: none;
  border-radius: 12px;
  padding: 0.6rem 1rem;
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
  transition: all .25s ease;
}
.btn--gold {
  background: linear-gradient(90deg, #c6a65a, #a2a98b);
  color: #2c2723; font-weight: 600; border-color: rgba(0,0,0,.06);
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}
.btn--gold:hover { filter: brightness(1.03); }

.page-sheet {
  margin-bottom: 60px; /* oder ähnlicher Wert */
}

/* === MOBILE-FIX: Hauptnavigation sichtbar & umbrechbar === */
@media (max-width: 700px){
  /* Header darf nichts abschneiden und über den Shapes liegen */
  body.theme-mystic header{
    position: sticky;
    top: 0;
    height: auto !important;
    overflow: visible !important;
    z-index: 999 !important;
  }

  /* 2) Container: Brand oben, Menü darunter, harmonische Abstände */
  body.theme-mystic header .container.nav{
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    padding: 8px 14px max(10px, env(safe-area-inset-bottom));
  }
  body.theme-mystic header .brand{
    flex: 0 0 100%;
    text-align: center;
    margin-bottom: 2px;
  }

  /* 3) Menü als ruhiges 2-Spalten-Grid mit Pills */
  body.theme-mystic header nav[aria-label="Hauptnavigation"]{
    flex: 0 0 100%;
  }
  body.theme-mystic header nav[aria-label="Hauptnavigation"] ul.nav_list{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0px, 1fr));
    gap: 12px 14px;
    justify-items: stretch;
    align-items: stretch;
    margin: 0; padding: 0; list-style: none;
  }
  /* Buttons block-level & 100% Breite -> alle Pillen gleich breit */
body.theme-mystic header nav[aria-label="Hauptnavigation"] ul.nav_list a{
  display: block !important;
  width: 100% !important;
  text-align: center;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 999px;
}
  body.theme-mystic header nav[aria-label="Hauptnavigation"] li{
    list-style: none !important; /* Sicherheitsnetz gg. UA-Styles */
  }
  /* 4) Pill-Links: weich, fingerfreundlich, markenruhig */
  body.theme-mystic header nav[aria-label="Hauptnavigation"] a{
    display: inline-block;
    padding: 10px 14px;
    min-height: 44px; line-height: 1.2;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: .02em;
    background: rgba(255,255,255,.06);
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.09),
      0 1px 0 rgba(0,0,0,.2);
    transition: transform .12s ease, background .12s ease, box-shadow .12s ease;
  }
  body.theme-mystic header nav[aria-label="Hauptnavigation"] a:hover{
  background: rgba(255,255,255,.10);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.16),
    0 1px 2px rgba(0,0,0,.25);
}
body.theme-mystic header nav[aria-label="Hauptnavigation"] a:active{
  transform: translateY(1px);
}
body.theme-mystic header nav[aria-label="Hauptnavigation"] a:focus-visible{
  outline: 2px solid rgba(255,255,255,.35);
  outline-offset: 2px;
}

/* 5) Aktiven Menüpunkt dezent betonen über body[data-active] */
body[data-active="home"]      header nav a[href*="index"]        ,
body[data-active="angebote"]  header nav a[href*="angebote"]     ,
body[data-active="einzelsitzungen"] header nav a[href*="einzelsitzungen"],
body[data-active="gruppen"]   header nav a[href*="gruppen"]      ,
body[data-active="honorar"]   header nav a[href*="honorar"]      ,
body[data-active="kontakt"]   header nav a[href*="kontakt"]{
  background: rgba(255,255,255,.16);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.28),
    0 2px 6px rgba(0,0,0,.25);
}

  /* Kontakt über volle Breite zentrieren (letzter Link) */
  body.theme-mystic header nav[aria-label="Hauptnavigation"] ul.nav_list li:last-child{
    grid-column: 1 / -1;
    justify-self: stretch;
  }
  /* Falls ein Wrap im Header clippt */
  body.theme-mystic header .nav,
  body.theme-mystic header .container{
    overflow: visible !important;
    height: auto !important;
  }
}

/* === H-Scroll Kill: Mobile-Überstände beseitigen (≤700px) === */
@media (max-width: 700px){
  /* 1) Deko-Flächen hinter dem Foto abschalten */
  .hero_media::before,
  .hero_media::after{
    content: none !important;
  }

  /* 2) Nichts darf breiter als der Viewport werden */
  html, body{
    max-width: 100%;
    overflow-x: hidden !important;
  }

  /* 3) Container & Layer vorsorglich kappen */
  .hero,
  .hero_layer,
  .banner-content,
  .container,
  .page-sheet,
  .site-main,
  main{
    max-width: 100vw !important;
    overflow-x: clip !important; /* modernes, weiches Abschneiden */
  }
}
/* === Fallbacks: Mobile-Navi unabhängig vom UL-Klassennamen === */
@media (max-width:700px){
  /* 2-Spalten Grid für alle gängigen Header-Nav-Strukturen */
  body.theme-mystic header nav ul,
  body.theme-mystic header .main-nav ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px !important;
    justify-items: stretch;
    align-items: stretch;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  /* <li> soll nicht blockieren – <a> nimmt die ganze Breite */
  body.theme-mystic header nav li,
  body.theme-mystic header .main-nav li {
    display: contents !important;
  }
  body.theme-mystic header nav a,
  body.theme-mystic header .main-nav a {
    display: block !important;
    width: 100% !important;
    text-align: center;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 999px;
  }
  /* letzter Link (Kontakt) über volle Breite */
  body.theme-mystic header nav ul li:last-child,
  body.theme-mystic header .main-nav ul li:last-child {
    grid-column: 1 / -1;
  }
}
