/* ============================================================
   LOCAL FONTS — selbst gehostet (DSGVO-konform, keine Google-Anfrage)
   Schriften: Playfair Display & Montserrat (SIL Open Font License)
   ============================================================ */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-300-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-300-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/montserrat/montserrat-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-400-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-400-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-600-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-600-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/playfair-display/playfair-display-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}


:root{
  /* ── Farben ───────────────────────────────────────────── */
  --brombeer:#722e61;--brombeer-dark:#4a1d3f;
  --hellgold:#ebd89b;--holzbraun:#9f7752;
  --sand-hell:#F5F2ED;--sand2:#E0D0B6;--sand3:#C4B296;--taupe3:#756761;
  --gold:linear-gradient(135deg,#c3ab76 0%,#f7e6aa 18%,#b09460 30%,#ebd99b 65%,#f7e6aa 82%,#b09460 100%);

  /* ── Typografie-Skala ─────────────────────────────────── */
  --fs-h1:        28px;   /* Page-Names (Kontakt, Subpage-Hauptüberschriften) */
  --fs-h2:        21px;   /* Card-Back-Title, Subpage H2 */
  --fs-h3:        18px;   /* Subpage H3, kleinere Akzent-Überschriften */
  --fs-body:      15px;   /* Standard-Lesetext (Adressen, Subpage-Fließtext) */
  --fs-body-sm:   13px;   /* Kompakt-Text (Card-Back-Text, Eyebrow groß) */
  --fs-label:     11px;   /* Eyebrow-Labels (Uppercase, weit gesperrt) */
  --fs-tiny:      9px;    /* Bildunterschriften, Footer-Mini */

  /* ── Line-Heights ─────────────────────────────────────── */
  --lh-tight:     1.15;   /* Überschriften */
  --lh-body:      1.55;   /* Fließtext */
  --lh-spacious:  1.85;   /* Atmosphärischer Text (Über mich, Kontakt) */
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;background:var(--brombeer);color:var(--sand3);
  max-width:100%;width:100%;position:relative}

nav.s{background:rgba(74,29,63,.97);backdrop-filter:blur(8px)}
.nl{width:52px;height:52px;flex-shrink:0}.nl svg{width:100%;height:100%}
/* Hamburger Button */
.hamburger{
  background:none;border:none;cursor:pointer;padding:8px;
  display:flex;flex-direction:column;gap:5px;z-index:310;
  flex-shrink:0;
}
.hamburger-line{
  display:block;width:24px;height:2px;
  background:var(--hellgold);
  transition:transform .3s ease,opacity .3s ease;
}
.hamburger.open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open .hamburger-line:nth-child(2){opacity:0}
.hamburger.open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Nav Overlay */
.nav-overlay{
  position:fixed;top:0;right:0;width:320px;height:100vh;
  background:rgba(74,29,63,.98);backdrop-filter:blur(16px);
  display:flex;align-items:center;justify-content:center;
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  z-index:305;
}
.nav-overlay::before{
  content:'';position:absolute;top:0;left:0;width:2px;height:100%;
  background:var(--gold);
}
.nav-overlay.open{transform:translateX(0)}
.nav-overlay ul{list-style:none;display:flex;flex-direction:column;gap:32px;text-align:center}
.nav-overlay ul a{font-family:'Montserrat',sans-serif;font-weight:400;font-size:13px;
  letter-spacing:3px;text-transform:uppercase;color:rgba(235,216,155,.8);
  text-decoration:none;transition:color .3s}
.nav-overlay ul a:hover{color:var(--hellgold)}

.hsz{height:300vh;position:relative}
.hst{position:sticky;top:0;width:100%;height:100vh;overflow:hidden}
canvas{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  image-rendering:auto;
  -webkit-font-smoothing:antialiased;
}
.htc{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;padding-bottom:80px;
  pointer-events:none;opacity:0;transition:opacity 1.1s ease}
.htc.v{opacity:1}
.hey{font-family:'Montserrat',sans-serif;font-weight:300;font-size:10px;
  letter-spacing:6px;text-transform:uppercase;color:var(--hellgold);margin-bottom:12px}
.ht{font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(34px,10vw,56px);
  background:var(--gold);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;line-height:1.05;text-align:center;margin-bottom:14px}
.hs{font-family:'Montserrat',sans-serif;font-weight:300;font-size:11px;
  letter-spacing:4px;text-transform:uppercase;color:rgba(245,242,237,.7)}
.shi{position:absolute;bottom:22vh;left:50%;transform:translateX(-50%);
  z-index:11;display:flex;flex-direction:column;align-items:center;gap:10px;transition:opacity .5s}
.shl{font-family:'Montserrat',sans-serif;font-weight:300;font-size:9px;
  letter-spacing:3px;text-transform:uppercase;color:rgba(235,216,155,.55)}
.shb{width:22px;height:30px;display:block;animation:sb 2.2s ease-in-out infinite;
  filter:drop-shadow(0 0 6px rgba(247,230,170,.55))}
@keyframes sb{
  0%  {transform:translateY(-6px);opacity:0}
  50% {transform:translateY(0);opacity:1}
  100%{transform:translateY(6px);opacity:0}
}

.gd{height:2px;background:var(--gold)}

.us{background:var(--brombeer);padding:120px 0 130px;position:relative;overflow:hidden}

.uhs{text-align:center;margin-bottom:80px;perspective:900px;position:relative;min-height:100px}
.ubg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(60px,18vw,120px);
  color:transparent;
  -webkit-text-stroke:1px rgba(235,216,155,.1);
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease .2s;
  user-select:none;letter-spacing:.08em;
}
.ubg.sh{opacity:1}
.uh{font-family:'Playfair Display',serif;font-weight:700;font-size:42px;
  position:relative;display:inline-block;line-height:1.1;z-index:1}
.hw{display:inline-block;overflow:hidden;margin:0 3px;vertical-align:baseline}
.hwi{
  display:inline-block;
  background:var(--gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  transform:perspective(400px) rotateX(-90deg) translateY(100%);
  opacity:0;
  transition:transform .8s cubic-bezier(.15,1.3,.4,1),opacity .5s ease;
}
.hwi.d{transform:perspective(400px) rotateX(0deg) translateY(0);opacity:1}
.uglow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 60% 120% at 50% 50%,rgba(235,216,155,0) 0%,rgba(235,216,155,0) 100%);
  transition:background 1.2s ease .7s;
}
.uglow.gl{background:radial-gradient(ellipse 80% 200% at 50% 50%,rgba(235,216,155,.09) 0%,rgba(235,216,155,0) 60%)}
.uhl{height:2px;width:0;background:var(--gold);margin:14px auto 0;
  transition:width 1.2s cubic-bezier(.4,0,.2,1) .5s}
.uhl.dw{width:70%}

/* Schwerpunkte-Liste unter Über mich */
.schwerpunkte{
  max-width:1100px;margin:30px auto 0;padding:0 20px;text-align:center;
}
.schwerpunkte-label{
  font-family:'Montserrat',sans-serif;font-weight:500;font-size:var(--fs-label);
  letter-spacing:3.5px;text-transform:uppercase;color:var(--hellgold);
  margin-bottom:14px;
}
.schwerpunkte-line{
  width:60px;height:1px;background:var(--gold);margin:0 auto 18px;opacity:.7;
}
.schwerpunkte-list{
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:11px;
  line-height:1.9;color:var(--sand3);letter-spacing:.4px;
  max-width:880px;margin:0 auto;
}
@media(min-width:601px){
  .schwerpunkte{margin-top:80px;padding:0 48px}
  .schwerpunkte-list{font-size:12px;line-height:2}
}

.ug{max-width:1160px;margin:0 auto;padding:0 16px;
  display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
.pc{position:relative}
.pf{position:relative;overflow:visible}
.pf::before{content:'';position:absolute;top:-12px;left:-12px;right:12px;bottom:12px;
  border:1px solid rgba(235,216,155,.28);z-index:1;pointer-events:none;
  opacity:0;transition:opacity .8s ease}
.pf::after{content:'';position:absolute;top:12px;left:12px;right:-12px;bottom:-12px;
  background:rgba(74,29,63,.6);z-index:-1;
  opacity:0;transition:opacity .8s ease}
.pf.in::before,.pf.in::after{opacity:1}
.pf img{width:100%;height:auto;aspect-ratio:458/560;object-fit:cover;object-position:center top;
  display:block;position:relative;z-index:0;filter:sepia(10%) contrast(1.04) brightness(.94)}
.pgl{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--gold);z-index:2}
.tc{padding-top:6px}
.pb{margin-bottom:18px}
@media(min-width:601px){
  .pb{margin-bottom:46px}
}
/* Mobile (Default): "Ich vertraue" auf eigener Zeile, danach
   pro Zeile ein eingerückter Satz (kein Zeilenumbruch). */
.pr{display:block;line-height:1.7;white-space:nowrap}
.pv{display:block;font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;
  letter-spacing:2px;text-transform:uppercase;color:var(--hellgold);margin-bottom:2px}
.pr:not(:first-child) .pv{display:none}
.pw{font-family:'Montserrat',sans-serif;font-weight:300;font-size:13px;color:var(--sand3);margin-left:12px}
.ps{font-family:'Playfair Display',serif;font-style:italic;font-size:15px;color:var(--hellgold);margin-left:5px}
.pe{font-family:'Montserrat',sans-serif;font-weight:300;font-size:14px;color:var(--sand3);line-height:1.85;margin-top:12px}
/* Tablet+: horizontales 3-Spalten-Layout (Original) */
@media(min-width:601px){
  .pr{display:flex;flex-wrap:wrap;align-items:baseline;line-height:2.25;white-space:normal}
  .pv{display:inline-block;font-size:12px;min-width:110px;flex-shrink:0;margin-bottom:0}
  .pr:not(:first-child) .pv{display:inline-block}
  .pw{font-size:15px;margin-left:0}
  .ps{font-size:19px;margin-left:6px}
  .pe{font-size:15px;line-height:2.1}
}
.gb{display:none;width:120px;height:2px;background:var(--gold);margin:12px auto}
.iw{display:flex;flex-direction:column;align-items:center;gap:0}
.iw-word{font-family:'Playfair Display',serif;font-style:italic;font-size:21px;color:var(--sand3);flex-shrink:0;line-height:1}
.sig{height:168px;width:auto;max-width:100%}
@media(min-width:601px){
  .gb{display:block;width:52px;margin:36px 0}
  .iw{flex-direction:row;gap:0}
}

.ks{background:var(--brombeer-dark);padding:100px 48px 80px;text-align:center;position:relative;overflow:hidden}
.ks::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 50% at 50% 10%,rgba(114,46,97,.5) 0%,transparent 70%);pointer-events:none}
.ki{max-width:680px;margin:0 auto;position:relative;z-index:2}
.khs{text-align:center;margin-bottom:80px;perspective:900px;position:relative;min-height:100px}
.kbg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(60px,18vw,120px);
  color:transparent;
  -webkit-text-stroke:1px rgba(235,216,155,.1);
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease .2s;
  user-select:none;letter-spacing:.08em;
}
.kbg.sh{opacity:1}
.kh{font-family:'Playfair Display',serif;font-weight:700;font-size:42px;
  position:relative;display:inline-block;line-height:1.1;z-index:1}
.kglow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 60% 120% at 50% 50%,rgba(235,216,155,0) 0%,rgba(235,216,155,0) 100%);
  transition:background 1.2s ease .7s;
}
.kglow.gl{background:radial-gradient(ellipse 80% 200% at 50% 50%,rgba(235,216,155,.09) 0%,rgba(235,216,155,0) 60%)}
.khl{height:2px;width:0;background:var(--gold);margin:14px auto 0;
  transition:width 1.2s cubic-bezier(.4,0,.2,1) .5s}
.khl.dw{width:70%}
.kl{width:76px;height:76px;margin:0 auto 28px}.kl svg{width:100%;height:100%}
.kn{font-family:'Playfair Display',serif;font-weight:600;font-size:var(--fs-h1);color:var(--sand-hell);line-height:1.3;margin-bottom:8px}
.kr{font-family:'Montserrat',sans-serif;font-weight:300;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--hellgold);line-height:2.2}
.ghr{width:60px;height:1px;background:var(--gold);margin:32px auto;opacity:.7}
.ka{font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body);color:rgba(196,178,150,.8);line-height:2.2}
.kt{font-family:'Montserrat',sans-serif;font-weight:400;font-size:17px;letter-spacing:2px;color:var(--hellgold);text-decoration:none;display:inline-block;margin-top:14px;transition:opacity .3s}
.kt:hover{opacity:.65}
.kt-mail{font-size:var(--fs-body);letter-spacing:1px;margin-top:6px;display:block}
.kappt{font-family:'Playfair Display',serif;font-style:italic;font-size:16px;
  color:var(--sand3);margin-top:18px;letter-spacing:.5px}

.ls{background:var(--brombeer);padding:50px 16px 60px;text-align:center;position:relative;overflow:hidden}
.ls::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold)}
.lhs{text-align:center;margin-bottom:80px;perspective:900px;position:relative;min-height:100px}
.lbg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(60px,18vw,120px);
  color:transparent;
  -webkit-text-stroke:1px rgba(235,216,155,.1);
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease .2s;
  user-select:none;letter-spacing:.08em;
}
.lbg.sh{opacity:1}
.lh{font-family:'Playfair Display',serif;font-weight:700;font-size:42px;
  position:relative;display:inline-block;line-height:1.1;z-index:1}
.lglow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 60% 120% at 50% 50%,rgba(235,216,155,0) 0%,rgba(235,216,155,0) 100%);
  transition:background 1.2s ease .7s;
}
.lglow.gl{background:radial-gradient(ellipse 80% 200% at 50% 50%,rgba(235,216,155,.09) 0%,rgba(235,216,155,0) 60%)}
.lhl{height:2px;width:0;background:var(--gold);margin:14px auto 0;
  transition:width 1.2s cubic-bezier(.4,0,.2,1) .5s}
.lhl.dw{width:70%}
.lr{display:flex;justify-content:center;align-items:center;gap:64px;flex-wrap:wrap}
.lr img{height:60px;width:auto;filter:sepia(20%) brightness(.85);opacity:.78;transition:opacity .4s,filter .4s,transform .4s}
.lr img:hover{opacity:1;filter:sepia(0%) brightness(1);transform:scale(1.06)}

/* ── ANGEBOT SECTION ── */
.angebot-section{background:var(--brombeer-dark);padding:80px 20px 80px;position:relative;overflow:hidden}
.ahs{text-align:center;margin-bottom:80px;perspective:900px;position:relative;min-height:100px}
.abg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(60px,18vw,120px);
  color:transparent;
  -webkit-text-stroke:1px rgba(235,216,155,.1);
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease .2s;
  user-select:none;letter-spacing:.08em;
}
.abg.sh{opacity:1}
.ah{font-family:'Playfair Display',serif;font-weight:700;font-size:42px;
  position:relative;display:inline-block;line-height:1.1;z-index:1}
.aglow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 60% 120% at 50% 50%,rgba(235,216,155,0) 0%,rgba(235,216,155,0) 100%);
  transition:background 1.2s ease .7s;
}
.aglow.gl{background:radial-gradient(ellipse 80% 200% at 50% 50%,rgba(235,216,155,.09) 0%,rgba(235,216,155,0) 60%)}
.ahl{height:2px;width:0;background:var(--gold);margin:14px auto 0;
  transition:width 1.2s cubic-bezier(.4,0,.2,1) .5s}
.ahl.dw{width:70%}

/* Card Grid */
.card-grid{
  display:grid;grid-template-columns:1fr;gap:24px;
  max-width:340px;margin:0 auto;
}

/* Flip Container */
.flip-container{
  perspective:800px;
  opacity:0;transform:translateX(120px);
  transition:opacity .7s ease-out,transform .7s ease-out;
}
.flip-container.in{opacity:1;transform:translateX(0)}
.flip-inner{
  position:relative;width:100%;aspect-ratio:3/4;
  transform-style:preserve-3d;
  transition:transform .7s cubic-bezier(.4,0,.2,1) .15s;
}
.flip-container.flipped .flip-inner,
.flip-container:hover .flip-inner{transform:rotateY(180deg)}

/* Card Faces */
.flip-front,.flip-back{
  position:absolute;top:0;left:0;width:100%;height:100%;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border:2px solid #c9a87c;border-radius:12px;
  box-shadow:0 0 12px rgba(201,168,124,.1);
  overflow:hidden;
  transition:box-shadow .4s ease;
  -webkit-transform:translateZ(0);transform:translateZ(0);
}
.flip-front{transform:rotateY(0deg)}
.flip-container:hover .flip-front,
.flip-container:hover .flip-back,
.flip-container.flipped .flip-front,
.flip-container.flipped .flip-back{
  box-shadow:0 0 28px rgba(201,168,124,.25),0 12px 40px rgba(0,0,0,.35);
}
.flip-back{
  transform:rotateY(180deg);
  background:var(--brombeer);
  display:flex;flex-direction:column;justify-content:flex-end;padding:28px;
}

/* Shine Effect */
.flip-front::after{
  content:'';position:absolute;inset:0;z-index:10;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.08) 45%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.08) 55%,transparent 60%);
  transform:translateX(-110%);
  transition:transform .5s ease-out;
  pointer-events:none;border-radius:inherit;
}
.flip-container:hover .flip-front::after{transform:translateX(110%)}

/* Slideshow */
.slide-wrap{position:absolute;inset:0}
.slide-wrap img.slide{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:0;transition:opacity 1s ease;
}
.slide-wrap img.slide.active{opacity:1}
.slide-wrap img[src*="yoga-01.webp"],
.slide-wrap img[src*="yoga-04.webp"]{object-position:25% center}
.slide-wrap img[src*="wellness-04.webp"]{object-position:30% center}

/* Placeholder gradients */
/* Card Name Overlay */
.card-name{
  position:absolute;bottom:0;left:0;right:0;z-index:5;
  padding:20px 18px 16px;
  background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%);
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.card-title{
  display:block;
  font-family:'Playfair Display',serif;font-weight:700;font-size:20px;
  background:var(--gold);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  line-height:1.2;
}
.card-subtitle{
  display:block;
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:12px;
  letter-spacing:2px;text-transform:uppercase;color:rgba(245,242,237,.7);
  margin-top:4px;
}

/* Back Content */
.back-title{
  font-family:'Playfair Display',serif;font-weight:700;font-size:var(--fs-h2);
  background:var(--gold);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  line-height:1.15;
  margin-bottom:10px;
}
.back-text{
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:14px;
  color:var(--sand3);line-height:1.55;
}

/* Responsive */
@media(min-width:600px){
  .angebot-section{padding:100px 48px 110px}
  .card-grid{grid-template-columns:repeat(2,1fr);max-width:1200px}
  .back-text{font-size:var(--fs-body-sm)}
}
@media(min-width:1024px){
  .card-grid{grid-template-columns:repeat(4,1fr);gap:32px}
}

/* ── ANFAHRT SECTION ── */
.anf-section{background:var(--brombeer);padding:60px 16px 70px;position:relative;overflow:hidden;
  border-top:2px solid transparent;border-image:var(--gold) 1}
.anfhs{text-align:center;margin-bottom:64px;perspective:900px;position:relative;min-height:100px}
.anfbg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(90px,18vw,220px);
  color:transparent;
  -webkit-text-stroke:1px rgba(235,216,155,.1);
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity 1.4s ease .2s;
  user-select:none;letter-spacing:.08em;
}
.anfbg.sh{opacity:1}
.anfh{font-family:'Playfair Display',serif;font-weight:700;font-size:42px;
  position:relative;display:inline-block;line-height:1.1;z-index:1}
.anfglow{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 60% 120% at 50% 50%,rgba(235,216,155,0) 0%,rgba(235,216,155,0) 100%);
  transition:background 1.2s ease .7s;
}
.anfglow.gl{background:radial-gradient(ellipse 80% 200% at 50% 50%,rgba(235,216,155,.09) 0%,rgba(235,216,155,0) 60%)}
.anfhl{height:2px;width:0;background:var(--gold);margin:14px auto 0;
  transition:width 1.2s cubic-bezier(.4,0,.2,1) .5s}
.anfhl.dw{width:70%}

.anf-grid{
  display:grid;grid-template-columns:1fr;gap:48px;
  max-width:680px;margin:0 auto;
}
/* Reihenfolge: erst Region-Übersicht, dann Karte */
.anf-grid > .anf-card:nth-child(1){order:2}
.anf-grid > .anf-card:nth-child(2){order:1}
.anf-card{display:flex;flex-direction:column;gap:18px}
.anf-eyebrow{font-family:'Montserrat',sans-serif;font-weight:500;font-size:var(--fs-body-sm);
  letter-spacing:3.5px;text-transform:uppercase;color:var(--hellgold);text-align:center}

/* Map */
.anf-map-wrap{position:relative;border:1px solid rgba(235,216,155,.28);border-radius:6px;overflow:hidden;
  box-shadow:0 12px 40px rgba(0,0,0,.35)}
.anf-map{width:100%;height:340px;border:0;display:block;background:var(--brombeer-dark);
  filter:sepia(8%) saturate(.92) brightness(.96);
  transition:filter .3s}
.anf-locate{
  position:absolute;top:10px;right:10px;z-index:500;
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;border:1px solid rgba(235,216,155,.4);border-radius:4px;
  background:rgba(74,29,63,.92);color:var(--hellgold);
  font-family:'Montserrat',sans-serif;font-weight:400;font-size:9px;
  letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  transition:background .3s,color .3s;
  backdrop-filter:blur(6px);
}
.anf-locate:hover{background:var(--brombeer);color:var(--sand-hell)}
.anf-locate span{display:none}
.anf-locate svg{stroke:currentColor;flex-shrink:0;width:20px;height:20px}
.anf-marker-pulse{
  position:relative;width:42px;height:42px;
}
.anf-marker-pulse::before,.anf-marker-pulse::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:var(--hellgold);opacity:.5;
  animation:anfpulse 2.2s ease-out infinite;
}
.anf-marker-pulse::after{animation-delay:1.1s}
@keyframes anfpulse{
  0%{transform:scale(.4);opacity:.7}
  100%{transform:scale(1.6);opacity:0}
}
.anf-marker-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:18px;height:18px;border-radius:50%;background:var(--brombeer-dark);
  border:2px solid var(--hellgold);box-shadow:0 0 12px rgba(235,216,155,.6)}
.anf-popup{font-family:'Montserrat',sans-serif;font-size:12px;color:var(--brombeer-dark);
  text-align:center;line-height:1.5}
.anf-popup strong{font-family:'Playfair Display',serif;font-size:14px;color:var(--brombeer);display:block;margin-bottom:4px}

.anf-addr{font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body);
  color:var(--sand3);line-height:1.7;text-align:center}
.anf-addr strong{font-family:'Playfair Display',serif;font-weight:600;font-size:17px;color:var(--hellgold)}
.anf-parking{font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body-sm);
  letter-spacing:.5px;color:var(--hellgold);text-align:center;
  display:inline-flex;align-items:center;gap:8px;justify-content:center;
  padding:8px 16px;border:1px solid rgba(235,216,155,.25);border-radius:4px;
  margin:8px auto 0;align-self:center}
.anf-parking svg{stroke:var(--hellgold);flex-shrink:0}

/* Region SVG */
.anf-region{position:relative;width:100%;aspect-ratio:1;max-width:760px;margin:0 auto;
  border:1px solid rgba(235,216,155,.28);border-radius:6px;overflow:hidden;
  background:radial-gradient(ellipse at center,#5a2350 0%,var(--brombeer-dark) 70%);
  box-shadow:0 12px 40px rgba(0,0,0,.35)}
.anf-region svg{width:100%;height:100%;display:block}
.anf-label{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:400;
  letter-spacing:1.5px;text-transform:uppercase;fill:var(--sand3)}
.anf-label-outer{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:500;
  letter-spacing:1.8px;text-transform:uppercase;fill:var(--holzbraun)}
.anf-center-label{font-family:'Playfair Display',serif;font-size:13px;font-weight:700;fill:#ebd89b}
.anf-node circle{transition:r .4s ease,fill .4s ease}
.anf-node:hover circle{r:8;fill:#f7e6aa}
.anf-node-outer:hover circle{r:7;fill:#ebd89b}
.anf-line{animation:anfdash 30s linear infinite}
@keyframes anfdash{to{stroke-dashoffset:-100}}
.anf-region-text{font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body);
  color:var(--sand3);line-height:1.7;text-align:center}

/* Anfahrt responsive — mobile-first: defaults = mobile, min-width = larger */
@media(min-width:601px){
  .anf-section{padding:100px 48px 110px}
  .anf-map{height:440px}
  .anf-locate{padding:9px 14px;font-size:10px;letter-spacing:1.5px;top:14px;right:14px}
  .anf-locate span{display:inline}
  .anf-locate svg{width:18px;height:18px}
  .anf-label{font-size:13px}
  .anf-center-label{font-size:15px}
}
@media(min-width:1024px){
  .anf-grid{gap:56px;max-width:900px}
  .anf-map{height:520px}
  /* .anf-region nutzt aspect-ratio:1 — Höhe folgt automatisch der Breite */
}

/* Routing panel — kompakt halten auf kleinen Screens (default).
   Auf größeren Screens braucht's die Beschränkung nicht. */
.anf-map .leaflet-routing-container{
  max-height:160px;font-size:10px!important;
  width:calc(100% - 20px)!important;
}
@media(min-width:601px){
  .anf-map .leaflet-routing-container{
    max-height:none;font-size:inherit!important;
    width:auto!important;
  }
}

/* ── INFO / RECHTLICHES SECTION ── */
.info-section{background:var(--brombeer-dark);padding:50px 24px;text-align:center;
  border-top:1px solid rgba(235,216,155,.15)}
.info-container{max-width:900px;margin:0 auto}
.info-eyebrow{font-family:'Montserrat',sans-serif;font-weight:300;font-size:10px;
  letter-spacing:4px;text-transform:uppercase;color:var(--holzbraun);margin-bottom:18px}
.info-links{list-style:none;display:flex;flex-direction:column;justify-content:center;align-items:center;
  flex-wrap:wrap;gap:14px;padding:0;margin:0}
.info-link{font-family:'Montserrat',sans-serif;font-weight:400;font-size:12px;
  letter-spacing:2.5px;text-transform:uppercase;color:rgba(235,216,155,.8);
  text-decoration:none;transition:color .3s,border-color .3s;
  border-bottom:1px solid transparent;padding-bottom:2px;cursor:pointer}
.info-link:hover{color:var(--hellgold);border-bottom-color:var(--hellgold)}
@media(min-width:601px){
  .info-links{flex-direction:row;gap:8px 32px}
}

/* ── NACHWEISE MODAL ── */
.nw-modal{position:fixed;inset:0;z-index:500;display:none}
.nw-modal.open{display:block}
.nw-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px)}
.nw-modal-window{
  position:absolute;top:0;left:0;
  width:100%;height:100vh;height:100dvh;
  background:var(--brombeer-dark);
  border:none;border-radius:0;
  box-shadow:0 20px 60px rgba(0,0,0,.55);
  display:flex;flex-direction:column;overflow:hidden;
}
.nw-modal-window::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);z-index:2}
.nw-modal-close{
  position:absolute;top:10px;right:10px;z-index:10;
  width:40px;height:40px;background:rgba(74,29,63,.95);border:1px solid rgba(235,216,155,.4);
  border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .3s
}
.nw-modal-close:hover{background:var(--brombeer)}
.nw-modal-close span{position:absolute;width:16px;height:1.5px;background:var(--hellgold)}
.nw-modal-close span:nth-child(1){transform:rotate(45deg)}
.nw-modal-close span:nth-child(2){transform:rotate(-45deg)}
.nw-modal-frame{flex:1;width:100%;height:100%;border:0;background:var(--brombeer-dark)}
@media(min-width:601px){
  .nw-modal-window{
    top:50%;left:50%;transform:translate(-50%,-50%);
    width:min(900px,92vw);height:min(85vh,900px);
    border:1px solid rgba(235,216,155,.25);border-radius:8px;
  }
  .nw-modal-close{top:14px;right:14px;width:36px;height:36px;
    background:rgba(74,29,63,.8);border:none}
}

.cp{background:#2a0d22;padding:20px 48px;text-align:center}
.cp p{font-family:'Montserrat',sans-serif;font-weight:400;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:rgba(245,242,237,.7)}

.rv{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.rvl{opacity:0;transform:translateX(-40px);transition:opacity 1s ease,transform 1s ease}
.rvr{opacity:0;transform:translateX(40px);transition:opacity 1s ease .15s,transform 1s ease .15s}
.rv.in,.rvl.in,.rvr.in{opacity:1;transform:none}

/* Tablet+: leicht erhöhte Paddings & Hero-Schrift */
@media(min-width:481px){
  .ug{padding:0 20px}
  .ht{font-size:clamp(40px,7vw,88px)}
}
/* Desktop: 2-Spalten-Layout für Über mich, größere Sektions-Ghosts */
@media(min-width:901px){
  nav{padding:16px 48px}
  .ug{grid-template-columns:1fr 1.15fr;gap:80px;padding:0 48px}
  .pf img{height:560px;aspect-ratio:auto}
  .ubg{font-size:clamp(90px,18vw,220px)}
  .kbg{font-size:clamp(90px,18vw,220px)}
  .lbg{font-size:clamp(90px,18vw,220px)}
  .abg{font-size:clamp(90px,18vw,220px)}
}

/* ===== CERT GALLERY ===== */
.cert-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 8px;
}
.cert-item {
  position: relative;
  z-index: 1;
}
.cert-item:hover { z-index: 50; }
.cert-thumb-wrap {
  overflow: visible;
  position: relative;
}
.cert-thumb {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: top;
  display: block;
  border: 1px solid rgba(235,216,155,.2);
  border-radius: 2px;
  filter: sepia(15%) brightness(.82) contrast(1.05);
  cursor: zoom-in;
  transition:
    transform 0.38s cubic-bezier(.18,1.4,.4,1),
    filter 0.3s ease,
    box-shadow 0.38s ease;
  transform-origin: center center;
}
.cert-item:hover .cert-thumb {
  transform: scale(2.5);
  filter: sepia(0%) brightness(1.02) contrast(1.05);
  box-shadow: 0 16px 48px rgba(0,0,0,0.75), 0 0 0 1px rgba(235,216,155,.45);
}
/* Edge clipping prevention */
.cert-item:nth-child(9n+1):hover .cert-thumb,
.cert-item:nth-child(9n+2):hover .cert-thumb { transform-origin: left center; }
.cert-item:nth-child(9n+8):hover .cert-thumb,
.cert-item:nth-child(9n+9):hover .cert-thumb,
.cert-item:last-child:hover .cert-thumb      { transform-origin: right center; }

.cert-label {
  font-family:'Montserrat',sans-serif;
  font-weight:300; font-size:8.5px; letter-spacing:.3px;
  text-align:center; color:var(--sand3);
  margin-top:5px; line-height:1.3;
}
@media(min-width:381px){
  .cert-grid{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:601px){
  .ls{padding:60px 20px 70px}
  .cert-grid{grid-template-columns:repeat(6,1fr);gap:10px;padding:0 16px}
}
@media(min-width:901px){
  .ls{padding:72px 48px 88px}
  .cert-grid{grid-template-columns:repeat(9,1fr);padding:0 32px}
}


/* ── NAV TITLE (slides in when hero scrolls away) ── */
nav{position:fixed;top:0;left:0;right:0;z-index:300;padding:14px 20px;
  display:flex;align-items:center;gap:24px;justify-content:space-between;
  background:linear-gradient(180deg,rgba(74,29,63,.92) 0%,transparent 100%);transition:background .4s}
/* Mobile (Default): Title im Flex-Flow zwischen Logo & Hamburger.
   Nur Opacity-Fade, solide Farbe (Gradient flackert auf iOS bei kleinen Größen). */
.nav-title {
  position:static;
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  opacity:0;
  transition:opacity .5s ease;
  pointer-events:none;
  white-space:nowrap;
}
.nav-title.show {
  opacity:1;
  pointer-events:auto;
}
.nav-title-main {
  display:inline-block;
  font-family:'Playfair Display',serif;
  font-weight:600;
  font-size:12px;
  letter-spacing:.3px;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
  color:var(--hellgold);
}
.nav-title-sub {
  display:none;
  font-family:'Montserrat',sans-serif;
  font-weight:300;
  font-size:17px;
  letter-spacing:1.5px;
  color:rgba(235,216,155,0.6);
  white-space:nowrap;
  margin-top:2px;
}
@media(min-width:381px){
  .nav-title-main{font-size:14px}
}
/* Tablet+: Title absolut zentriert mit transform-Animation, Gold-Gradient */
@media(min-width:601px){
  .nav-title{
    position:absolute;left:50%;top:50%;
    transform:translate(-50%, 40px);
    flex:none;
    transition:opacity 0.55s cubic-bezier(.4,0,.2,1),
               transform 0.55s cubic-bezier(.4,0,.2,1);
  }
  .nav-title.show{
    transform:translate(-50%, -50%);
  }
  .nav-title-main{
    background:var(--gold);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;
    overflow:visible;
    text-overflow:clip;
    letter-spacing:normal;
  }
}
@media(min-width:901px){
  .nav-title-sub{display:block}
  .nav-title-main{font-size:28px}
}

/* ===== FLYER OVERLAY START — kompletter Block löschbar ===== */
.flyer-overlay{position:fixed;inset:0;z-index:600;display:none;pointer-events:none}
.flyer-overlay.active{display:block}
.flyer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0);
  transition:background .4s ease,backdrop-filter .4s ease;pointer-events:auto}
.flyer-overlay.smash .flyer-backdrop{background:rgba(42,13,34,.7);backdrop-filter:blur(4px)}
.flyer-content{
  position:absolute;top:50%;left:50%;
  width:86vw;max-height:88vh;
  transform:translate(-50%,-50%) scale(7) rotate(-90deg);
  opacity:0;
  transition:transform .55s cubic-bezier(.2,1.5,.4,1),opacity .3s ease;
  pointer-events:auto;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.6));
}
.flyer-overlay.smash .flyer-content{
  transform:translate(-50%,-50%) scale(1) rotate(-10deg);
  opacity:1;
}
/* Vanish — einfaches Wegblenden beim Schließen */
.flyer-overlay.vanish .flyer-content{
  transition:opacity .3s ease;
  opacity:0;
}
.flyer-overlay.vanish .flyer-backdrop{
  transition:background .3s ease,backdrop-filter .3s ease;
  background:rgba(0,0,0,0);backdrop-filter:blur(0)
}

/* Dust burst */
.flyer-dust{
  position:fixed;inset:0;z-index:601;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
}
.dust-particle{
  position:absolute;
  width:var(--size);height:var(--size);
  border-radius:50%;
  background:radial-gradient(circle,rgba(247,230,170,1) 0%,rgba(235,216,155,.85) 50%,rgba(176,148,95,.4) 80%,transparent 100%);
  box-shadow:0 0 6px rgba(247,230,170,.8),0 0 2px rgba(255,240,180,.9);
  opacity:0;
  will-change:transform,opacity;
  animation:dust-fly var(--duration) cubic-bezier(.18,.7,.35,1) var(--delay) forwards;
}
@keyframes dust-fly{
  0%   {transform:translate(0,0) scale(.3);opacity:0}
  8%   {opacity:var(--opacity);transform:translate(0,0) scale(1)}
  60%  {opacity:calc(var(--opacity) * 0.5)}
  100% {transform:translate(var(--dx),var(--dy)) scale(2.6);opacity:0}
}
.flyer-img{width:100%;height:auto;display:block;
  border:2px solid #c9a87c;border-radius:6px;
  box-shadow:0 0 40px rgba(201,168,124,.3)}
.flyer-close{
  position:absolute;top:-12px;right:-12px;
  width:36px;height:36px;border-radius:50%;
  background:var(--brombeer-dark);border:2px solid var(--hellgold);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  z-index:5;transition:transform .2s,background .2s;padding:0;
}
.flyer-close:hover{transform:scale(1.1);background:var(--brombeer)}
.flyer-close span{position:absolute;width:14px;height:1.5px;background:var(--hellgold)}
.flyer-close span:nth-child(1){transform:rotate(45deg)}
.flyer-close span:nth-child(2){transform:rotate(-45deg)}
@media(min-width:601px){
  .flyer-content{width:min(440px,80vw)}
  .flyer-close{top:-16px;right:-16px;width:40px;height:40px}
}
/* ===== FLYER OVERLAY END ===== */
/* ============================================================
   SUBPAGE STYLES — gemeinsame Styles für alle Themen-Unterseiten
   (beckenboden.html, physiotherapie.html, wellness-ayurveda.html, yoga.html)
   ============================================================ */
.sp-page{background:var(--brombeer);min-height:100vh;color:var(--sand3);
  font-family:'Montserrat',sans-serif;font-weight:300;line-height:1.7}
.sp-hero{position:relative;padding:130px 20px 60px;text-align:center;
  background:linear-gradient(180deg,var(--brombeer-dark) 0%,var(--brombeer) 100%);
  border-bottom:2px solid transparent;border-image:var(--gold) 1}
.sp-hero-eyebrow{font-family:'Montserrat',sans-serif;font-weight:500;font-size:var(--fs-label);
  letter-spacing:4px;text-transform:uppercase;color:var(--hellgold);margin-bottom:14px}
.sp-hero h1{font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(36px,6vw,64px);
  background:var(--gold);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;line-height:1.15;margin-bottom:18px;max-width:900px;margin-left:auto;margin-right:auto}
.sp-hero-sub{font-family:'Playfair Display',serif;font-style:italic;font-size:17px;
  color:var(--sand3);max-width:680px;margin:0 auto;line-height:1.5}
.sp-hero-line{width:80px;height:2px;background:var(--gold);margin:28px auto 0}

.sp-back{position:absolute;top:70px;left:16px;z-index:10;
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Montserrat',sans-serif;font-size:10px;font-weight:400;
  letter-spacing:2px;text-transform:uppercase;color:rgba(235,216,155,.75);
  text-decoration:none;transition:color .3s}
.sp-back:hover{color:var(--hellgold)}
.sp-back svg{stroke:currentColor;flex-shrink:0}

.sp-content{max-width:780px;margin:0 auto;padding:50px 20px}
.sp-content h2{font-family:'Playfair Display',serif;font-weight:700;font-size:24px;
  color:var(--hellgold);margin:48px 0 16px;line-height:1.2}
.sp-content h2:first-child{margin-top:0}
.sp-content h3{font-family:'Playfair Display',serif;font-weight:600;font-size:var(--fs-h3);
  color:var(--sand-hell);margin:32px 0 10px;line-height:1.3}
.sp-content p{font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body);
  color:var(--sand3);line-height:1.9;margin-bottom:14px}
.sp-content ul{list-style:none;padding:0;margin:14px 0}
.sp-content ul li{padding:6px 0 6px 24px;position:relative;
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:var(--fs-body);color:var(--sand3)}
.sp-content ul li::before{content:'·';position:absolute;left:8px;color:var(--hellgold);font-weight:700}
.sp-content strong{color:var(--sand-hell);font-weight:500}
.sp-content a{color:var(--hellgold);text-decoration:none;border-bottom:1px solid rgba(235,216,155,.3)}
.sp-content a:hover{color:var(--sand-hell);border-bottom-color:var(--hellgold)}
.sp-content blockquote{border-left:2px solid;border-image:var(--gold) 1;
  padding:8px 0 8px 24px;margin:24px 0;
  font-family:'Playfair Display',serif;font-style:italic;font-size:17px;color:var(--sand3)}

.sp-cta{text-align:center;padding:60px 24px;background:var(--brombeer-dark);
  border-top:1px solid rgba(235,216,155,.15)}
.sp-cta-text{font-family:'Playfair Display',serif;font-style:italic;font-size:18px;
  color:var(--hellgold);margin-bottom:16px}
.sp-cta-btn{display:inline-block;padding:14px 32px;
  border:1px solid var(--hellgold);border-radius:4px;
  font-family:'Montserrat',sans-serif;font-weight:400;font-size:11px;
  letter-spacing:2.5px;text-transform:uppercase;color:var(--hellgold);
  text-decoration:none;transition:background .3s,color .3s}
.sp-cta-btn:hover{background:var(--hellgold);color:var(--brombeer-dark)}

@media(min-width:601px){
  .sp-hero{padding:160px 24px 80px}
  .sp-back{top:90px;left:24px;font-size:11px}
  .sp-content{padding:80px 24px}
  .sp-content h2{font-size:var(--fs-h1)}
}

/* ============================================================
   COOKIE / CONSENT BANNER — Brand Design
   ============================================================ */
.cc-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:700;
  background:rgba(74,29,63,.97);backdrop-filter:blur(10px);
  border-top:2px solid transparent;border-image:var(--gold) 1;
  padding:22px 24px;
  transform:translateY(100%);
  transition:transform .45s cubic-bezier(.2,1,.4,1);
  box-shadow:0 -10px 30px rgba(0,0,0,.4);
}
.cc-banner.cc-show{transform:translateY(0)}
.cc-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:16px;align-items:center;
}
.cc-text{min-width:0}
.cc-title{
  font-family:'Playfair Display',serif;font-weight:700;font-size:18px;
  color:var(--hellgold);margin-bottom:6px;line-height:1.2;
}
.cc-desc{
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:12px;
  color:var(--sand3);line-height:1.7;
}
.cc-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:stretch}
.cc-btn{
  display:inline-block;flex:1;text-align:center;padding:12px 14px;
  font-family:'Montserrat',sans-serif;font-weight:400;font-size:10px;
  letter-spacing:1.5px;text-transform:uppercase;
  border-radius:3px;cursor:pointer;
  transition:background .25s,color .25s,border-color .25s;
  border:1px solid var(--hellgold);
  white-space:nowrap;
}
.cc-btn-primary{background:var(--hellgold);color:var(--brombeer-dark)}
.cc-btn-primary:hover{background:#f7e6aa;color:var(--brombeer-dark)}
.cc-btn-secondary{background:transparent;color:var(--hellgold)}
.cc-btn-secondary:hover{background:rgba(235,216,155,.12);color:var(--sand-hell)}

@media(min-width:761px){
  .cc-inner{grid-template-columns:1fr auto;gap:24px}
  .cc-actions{justify-content:flex-end}
  .cc-btn{flex:none;text-align:initial;padding:10px 22px;font-size:11px;letter-spacing:2px}
}

/* Settings Modal */
.cc-modal{position:fixed;inset:0;z-index:710;display:none}
.cc-modal.cc-show{display:block}
.cc-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px)}
.cc-modal-window{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:96vw;max-height:92vh;overflow-y:auto;
  background:var(--brombeer-dark);
  border:1px solid rgba(235,216,155,.25);border-radius:6px;
  box-shadow:0 20px 60px rgba(0,0,0,.55);
  padding:28px 20px;
}
.cc-modal-window::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);border-radius:6px 6px 0 0;
}
.cc-modal-close{
  position:absolute;top:14px;right:14px;
  width:32px;height:32px;border-radius:50%;
  background:rgba(74,29,63,.7);border:1px solid rgba(235,216,155,.3);
  cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
}
.cc-modal-close:hover{background:var(--brombeer)}
.cc-modal-close span{position:absolute;width:14px;height:1.5px;background:var(--hellgold)}
.cc-modal-close span:nth-child(1){transform:rotate(45deg)}
.cc-modal-close span:nth-child(2){transform:rotate(-45deg)}

.cc-h2{
  font-family:'Playfair Display',serif;font-weight:700;font-size:20px;
  background:var(--gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom:8px;line-height:1.2;
}
.cc-line{width:60px;height:2px;background:var(--gold);margin:0 0 18px}

.cc-cat{margin:14px 0;padding:14px;border:1px solid rgba(235,216,155,.15);border-radius:4px;
  transition:border-color .25s,background .25s}
.cc-cat:hover{border-color:rgba(235,216,155,.3);background:rgba(235,216,155,.03)}
.cc-row{display:flex;align-items:flex-start;gap:14px;cursor:pointer}
.cc-row input[type="checkbox"]{
  position:absolute;opacity:0;pointer-events:none;
}
.cc-toggle{
  flex-shrink:0;display:inline-block;
  width:42px;height:22px;border-radius:11px;
  background:rgba(74,29,63,.6);border:1px solid rgba(235,216,155,.3);
  position:relative;transition:background .25s,border-color .25s;margin-top:2px;
}
.cc-toggle::after{
  content:'';position:absolute;top:2px;left:2px;
  width:16px;height:16px;border-radius:50%;background:var(--sand3);
  transition:transform .25s,background .25s;
}
.cc-row input:checked + .cc-toggle{background:var(--brombeer);border-color:var(--hellgold)}
.cc-row input:checked + .cc-toggle::after{transform:translateX(20px);background:var(--hellgold)}
.cc-row input:disabled + .cc-toggle{opacity:.7;cursor:not-allowed}
.cc-row input:disabled + .cc-toggle::after{background:var(--hellgold)}
.cc-cat-text{flex:1}
.cc-cat-text strong{
  display:block;font-family:'Playfair Display',serif;font-weight:600;font-size:15px;
  color:var(--hellgold);margin-bottom:4px;
}
.cc-cat-text span{
  display:block;font-family:'Montserrat',sans-serif;font-weight:300;font-size:12px;
  color:var(--sand3);line-height:1.6;
}

.cc-modal-actions{
  display:flex;flex-direction:column-reverse;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap;
}
.cc-modal-actions .cc-btn{width:100%}
@media(min-width:601px){
  .cc-modal-window{padding:36px 32px;width:min(560px,92vw);max-height:88vh}
  .cc-modal-actions{flex-direction:row}
  .cc-modal-actions .cc-btn{width:auto}
  .cc-h2{font-size:24px}
}

/* Karten-Platzhalter solange keine Einwilligung */
.consent-placeholder{
  position:absolute;inset:0;z-index:5;
  background:var(--brombeer-dark);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;text-align:center;gap:14px;
}
.consent-placeholder svg{stroke:var(--hellgold);width:38px;height:38px;opacity:.7}
.consent-placeholder p{
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:13px;
  color:var(--sand3);line-height:1.7;max-width:340px;
}
.consent-placeholder button{
  margin-top:6px;padding:10px 22px;
  background:transparent;color:var(--hellgold);
  border:1px solid var(--hellgold);border-radius:3px;
  font-family:'Montserrat',sans-serif;font-weight:400;font-size:11px;
  letter-spacing:2px;text-transform:uppercase;cursor:pointer;
  transition:background .25s,color .25s;
}
.consent-placeholder button:hover{background:var(--hellgold);color:var(--brombeer-dark)}
