@charset "utf-8";

/* ---------------------------------------------
   1) GLOBAL RESET & TYPO
--------------------------------------------- */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

/* Webfont: font-display sorgt dafür, dass Text sichtbar bleibt während Font lädt */
@font-face {
  font-family: "Simple Kind Of Girl";
  src: url("/fonts/Simple Kind Of Girl.ttf") format("truetype");
  font-display: swap;
}

body {
  font-family:'Simple Kind Of Girl',"Ink free","Helvetica Neue", Arial, sans-serif;
  background-color:#929d87; /* Salbeigrün */
  color:#000;
  line-height:1.6;
  cursor: url('kreis.png') 24 24, default;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

/* großer Cursor beim hover*/
a:hover, button:hover, .ay-btn:hover, .flip-btn:hover, .css-arrow:hover, .mail-btn:hover, .ig-button:hover,.ay-btn:hover,
.ay-btn:focus,
.ay-btn-yoga:hover,
.mail-btn:hover { cursor: url('kreis_groß.png') 28 28, default; }

/* Reduce pointer cursor on touch devices (improves UX on phones) */
@media (hover: none) and (pointer: coarse) {
  body, a, button { cursor: auto; }
}

/* ---------------------------------------------
   2) LOGO
--------------------------------------------- */
.logo-container {
  width:360px;
  margin:2rem auto 1rem;
  text-align:center;
}
.logo-container img {
  width:100%; height:auto; display:block; object-fit:contain;
}

/* ---------------------------------------------
   3) HEADER & NAVIGATION
--------------------------------------------- */
.site-header {
  position:fixed;
  top:12px; right:16px; left:0;
  z-index:999;
  pointer-events:none;
}
.header-inner {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  padding-right:16px;
  pointer-events:auto;
}

.nav-right {
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
}

/* Menu-Text (Desktop oben sichtbar) */
.nav-text {
  display:inline-block;
  padding:8px 12px;
  background:rgba(0,0,0,0.25);
  color:#fff;
  font-weight:600;
  border-radius:8px;
  transition:opacity .18s, transform .18s;
}

/* Hamburger */
.hamburger {
  display:none;
  background:transparent;
  border:0;
  padding:8px;
  border-radius:8px;
  min-width:44px; min-height:44px;
}
.hamburger-icon rect { fill:#fff; }

/* Scroll-Verhalten */
body.scrolled .nav-text {
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
}
body.scrolled .hamburger { display:inline-flex; }

/* ---------------------------------------------
   4) FLYOUT-MENÜ (NICHT TRANSPARENT)
--------------------------------------------- */
.main-nav {
  position:absolute;
  top:48px; right:0;
  min-width:200px;
  background:#929d87; /* Salbeigrün, deckend */
  color:#222;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,0.12);

  /* geschlossen */
  opacity:0;
  transform:scale(.95);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}

.main-nav.open {
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}

.main-nav ul { list-style:none; padding:10px 14px; }
.main-nav li + li { margin-top:6px; }
.main-nav a {
  display:block;
  padding:8px 10px;
  text-decoration:none;
  color:#000;
  border-radius:6px;
}
.main-nav a:hover { background:rgba(0,0,0,0.06); }

/* ---------------------------------------------
   5) MOBILE NAVIGATION
--------------------------------------------- */
@media (max-width:768px) {
  .nav-text { display:none; }
  .hamburger { display:inline-flex; }
  .hamburger-icon rect { fill:#222; }
  .main-nav { top:44px; right:8px; width:220px; }
  .site-header { top:10px; right:10px; left:auto; }
  .header-inner { padding-right:0; }

  /* Performance: avoid fixed background on mobile */
  body { background-attachment: scroll; }
  .flip-card-front, .flip-card-back, .expanded-back-clone {
    box-shadow: 0 6px 12px rgba(0,0,0,0.08);
  }
}

/* ---------------------------------------------
   6) CONTENT SECTIONS
--------------------------------------------- */
section {
  max-width:900px;
  margin:4rem auto;
  padding:2rem;
  border-radius:12px;
  backdrop-filter:blur(4px);
}

h1,h2,h3 {
  font-family:"Simple Kind Of Girl","Georgia",serif;
  color:#2a2a2a;
  margin-bottom:1rem;
}

/* ---------------------------------------------
   7) FOOTER
--------------------------------------------- */
footer {
  background:rgba(0,0,0,0.4);
  color:#fff;
  padding:2rem;
  text-align:center;
  margin-top:4rem;
}

/* ---------------------------------------------
   8) SCROLL TO TOP BUTTON (mit kreis.svg Hintergrund)
--------------------------------------------- */
.scroll-top-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-image: url('kreis.svg'), linear-gradient(rgba(255,255,255,0), rgba(255,255,255,0));
  background-repeat: no-repeat;
  background-position: center;
  background-size: 60% 60%;
  background-color: rgba(18, 48, 18, 0.18);
  color: #2a2a2a;
  padding: 12px;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 1.2rem;
  text-decoration: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  transition: background .3s, transform .3s;
  z-index: 9999;
  border: none;
  touch-action: manipulation;
}

/* Hover / Fokus */
.scroll-top-btn:hover,
.scroll-top-btn:focus {
  background-image: url('kreis.svg');
  transform: translateY(-3px);
  outline: none;
}

/* ---------------------------------------------
   9) MOBILE GENERAL
--------------------------------------------- */
@media (max-width:768px) {
  body { background-size:cover; }
  section { margin:2rem 1rem; padding:1.5rem; }
  .logo-container { width:140px; }
  h1,h2 { text-align:center; }
}
@media (max-width:480px) {
  section { padding:1rem; }
  .logo-container { width:120px; }
}

/* ---------------------------------------------
   10) INSTAGRAM BUTTON
--------------------------------------------- */
.ig-wrap { display:flex; justify-content:center; }
.ig-button {
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  background:transparent;
  color:#111;
  border-radius:8px;
  font-weight:600;
  text-decoration:none;
  border:1px solid rgba(0,0,0,0.06);
  transition:transform .12s, box-shadow .12s;
}
.ig-button:hover {
  transform:translateY(-3px);
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
}
.ig-icon { width:20px; height:20px; }
@media (max-width:480px) {
  .ig-text { display:none; }
  .ig-button { padding:6px; }
}

/* ---------------------------------------------
   11) EVENT / GALERIE
--------------------------------------------- */
.termine-event { padding:2rem 1rem; background:transparent; border-radius:10px; }

.event-inner {
  display:flex;
  gap:1.5rem;
  align-items:flex-start;
  max-width:1100px;
  margin:0 auto;
}

.event-text { flex:1 1 55%; color:#2a2a2a; }

.event-gallery {
  flex:0 0 360px;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  align-items:center;
}

.gallery-large {
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:10px;
  background:#ffffff10;
}
.gallery-large img {
  width:100%; height:100%; object-fit:cover;
}

.gallery-thumbs {
  display:flex;
  gap:0.5rem;
  width:100%;
  justify-content:space-between;
}
.gallery-thumbs img {
  width:calc((100% - 1rem) / 3);
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:8px;
  background:#ffffff10;
}

/* Ensure all images are responsive */
img { max-width:100%; height:auto; display:block; }

/* ---------------------------------------------
   12) BUTTONS
--------------------------------------------- */
.btn-group { display:flex; gap:10px; align-items:center; }

.ay-btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  color:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,0.10);
  transition:transform .14s, box-shadow .14s, opacity .14s;
  white-space:nowrap;
  touch-action: manipulation;
  min-height:44px;
}

.ay-btn-primary {
  background:linear-gradient(135deg,#7f8a73 0%, #929d87 100%);
  color:#123012;
}
.ay-btn-secondary {
  background:linear-gradient(135deg,#7f8a73 0%, #929d87 100%);
  color:#0f2b10;
}
.ay-btn-yoga {
  background:linear-gradient(135deg,#7f8a73 0%, #929d87 100%);
  color:#123012;
  padding:12px 18px;
  box-shadow:0 8px 22px rgba(0,0,0,0.12);
}

.ay-btn:hover,
.ay-btn:focus,
.ay-btn-yoga:hover,
.ay-btn-yoga:focus {
  transform:translateY(-3px);
  box-shadow:0 12px 30px rgba(0,0,0,0.14);
}

@media (max-width:480px) {
  .btn-group { flex-direction:column; gap:8px; width:100%; }
  .ay-btn, .ay-btn-yoga { width:100%; justify-content:center; padding:14px; min-height:48px; font-size:1rem; }
  .ay-btn, .mail-btn, .ig-button, .flip-btn, .hamburger { min-height:48px; min-width:48px; padding:12px 16px; }
}

/* ---------------------------------------------
   13) ACCESSIBILITY
--------------------------------------------- */
@media (prefers-reduced-motion:reduce) {
  .ay-btn, .ay-btn-yoga { transition:none; transform:none; }
  * { transition: none !important; animation: none !important; }
}

/* Profilbild immer rund halten */
.profile-image img {
  width: 360px;
  max-width: 80%;
  aspect-ratio: 1 / 1;
  height: auto;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  margin: 0 auto;
}

/* FLIP GRID */
.flip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.5rem;
  max-width: 1200px;
  margin: auto;
  padding: 0;
}
.angebote-grid-section {
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
@media (max-width: 768px) {
  .angebote-grid-section { padding-left: 1rem; padding-right: 1rem; }
}

/* FLIP CARD (Container) */
.flip-card {
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  perspective: 1000px;
}

/* INNER: 3D-Container */
.flip-card-inner {
  width: 100%;
  position: relative;
  transition: transform .8s cubic-bezier(.2,.9,.3,1), height .28s ease;
  transform-style: preserve-3d;
  will-change: transform;
  overflow: visible;
}

/* FRONT: immer quadratisch, Inhalt zentriert */
.flip-card-front {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
  backface-visibility: hidden;
  border-radius: 14px;
  padding: 1.5rem;
  background-color: #929d87;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  z-index: 2;
  background-image: url('kreis.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-color: transparent;
  background-size: contain;
  background-origin: content-box;
}
.flip-card-front > * { position: relative; z-index: 3; }
.flip-card-front::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.06);
  border-radius: 14px;
  pointer-events: none;
  z-index: 2;
}
.flip-card-front .flip-btn { position: relative; z-index: 4; min-width: 44px; min-height: 44px; padding: 8px 12px; }

/* BACK: im Card-Flow (wird beim Expandieren geklont) */
.flip-card-back {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  backface-visibility: hidden;
  transform: rotateY(180deg);
  border-radius: 14px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #929d87;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  z-index: 1;
  overflow-y: auto;
  height: auto;
  scrollbar-width: none;
}
.flip-card-back::-webkit-scrollbar { display: none; }

/* Geflippt: Inner dreht sich */
.flip-card.flipped .flip-card-inner {
  transform: rotateY(180deg);
}

/* Button am unteren Rand der Karte (Front und Back) */
.flip-card-front .flip-btn,
.flip-card-back .flip-btn:hover {
  margin-top: 1rem;
  align-self: center;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid #000;
  background: transparent;
  font-weight: 600;
}

/* Responsive Anpassungen */
@media (max-width: 768px) {
  .flip-grid { gap: 1rem; max-width: 92vw; }
  .flip-card { max-width: 320px; }
}
@media (max-width: 480px) {
  .flip-card { max-width: 260px; }
}

/* Overlay beim Expandieren */
.flip-back-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 99990;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
.flip-back-overlay.visible {
  opacity: 1;
  pointer-events: auto;
}

/* EXPANDED CLONE: sichtbare Rückseite außerhalb des transformierten Containers */
.expanded-back-clone {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  top: 6vh;
  max-width: 1100px;
  width: calc(100% - 2rem);
  background: #929d87;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 20px 40px rgba(0,0,0,0.28);
  z-index: 99999;
  overflow: auto;
  transition: opacity .25s ease, transform .25s ease;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 96px);
}
.expanded-back-clone .close-back {
  position: absolute;
  top: 12px;
  right: 12px;
  background: transparent;
  border: none;
  padding: 6px 10px;
  border-radius: 8px;
  font-weight: 700;
  z-index: 100001;
}
.expanded-back-clone.limited { max-height: calc(100vh - 96px); }

/* kleine optische Feinheiten */
.flip-card-front, .flip-card-back, .expanded-back-clone {
  transition-timing-function: cubic-bezier(.2,.9,.3,1);
}

/* Rückseite: Inhalt oben, Footer immer unten */
.flip-card-back {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  padding: 1.5rem;
  box-sizing: border-box;
}
.flip-card-back .back-content { flex: 0 0 auto; width: 100%; }
.flip-card-back .back-footer {
  margin-top: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding-top: 0.5rem;
}

/* Stil des Zurück-Buttons (Rückseite und Clone) */
.flip-card-back .close-back,
.expanded-back-clone .close-back,
.flip-card-front .flip-btn {
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid #000;
  background: transparent;
  color: #123012;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(0,0,0,0.08);
  transition: transform .12s ease, box-shadow .12s ease;
}
.flip-card-back .close-back:hover,
.expanded-back-clone .close-back:hover,
.flip-card-front .flip-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.12);
}

/* Clone: Footer ebenfalls unten mittig halten */
.expanded-back-clone .back-content { width: 100%; }
.expanded-back-clone .back-footer {
  margin-top: auto;
  display: flex;
  justify-content: center;
  padding-top: 0.75rem;
}
.expanded-back-clone .back-content {
  overflow: auto;
  max-height: calc(100vh - 220px);
}

/* Kleine Anpassung: sorgt für weiche Höhen-Übergänge */
.flip-card-inner {
  transition: transform .6s cubic-bezier(.2,.9,.3,1), height .28s ease;
}

/* CSS Arrow / Kreis-Buttons */
.css-arrow, .css-arrow-grid {
  width: 56px; height: 56px;
  display: inline-block;
  border-radius: 50%;
  background-image: url('kreis.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 70% 70%;
  background-color: rgba(18, 48, 18, 0.18);
  position: relative;
  box-shadow: 0 4px 10px rgba(0,0,0,0.18);
}

.css-arrow::before, .css-arrow-grid::before {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 10px; height: 10px;
  transform: translate(-50%, -60%) rotate(45deg);
  border-left: 2px solid #123012;
  border-top: 2px solid #123012;
  z-index: 2;
}

/* Mail button */
.mail-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  color: #123012;
  background: linear-gradient(135deg, #7f8a73 0%, #929d87 100%);
  box-shadow: 0 6px 18px rgba(0,0,0,0.10);
  transition: transform .14s ease, box-shadow .14s ease;
  touch-action: manipulation;
}
.mail-btn:hover, .mail-btn:focus {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.14);
}

/* Mobile tweaks for flip-card and grid */
@media (max-width: 480px) {
  .flip-card { max-width: 280px; }
  .flip-card-front { background-size: 60% auto; padding: 0.75rem; aspect-ratio: 0.95 / 1; background-image: url('kreis.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-color: transparent;
  background-size: contain;
  background-origin: content-box;}
  .flip-card-front h3, .flip-card-front p { font-size: 0.78rem; line-height: 1.15; }
  .flip-grid { padding-left: 0.5rem; padding-right: 0.5rem; gap: 0.75rem; }
  .scroll-top-btn { width:48px; height:48px; bottom:16px; right:16px; }
  .logo-container { width:160px; margin:1rem auto; }
  .profile-image img { width:160px; max-width:48%; }
}


/* Final accessibility: ensure focus outlines visible for keyboard users */
:focus { outline: 3px solid rgba(18,48,18,0.18); outline-offset: 2px; }

/* ---------------------------------------------
   PRAKRUTI-TABELLE
--------------------------------------------- */

.prakruti-table {
    width: 100%;
    border-collapse: collapse;
}

.prakruti-table th,
.prakruti-table td {
    padding: 10px;
    vertical-align: top;
    border-bottom: 1px solid #ddd; /* Linie pro Zeile */
}

.prakruti-table td:first-child {
    font-weight: bold; /* rechte Spalte fett */
}

.prakruti-table input[type="radio"] {
    margin-bottom: 4px;
}
.prakruti-table input[type="radio"] {
    width: 18px;
    height: 18px;
    transform: translateY(2px);
}
.prakruti-table label {
    cursor: url('kreis_groß.png') 28 28, pointer;
}
.error-msg {
    color: #b30000;
    background: #ffe5e5;
    padding: 10px;
    border-radius: 6px;
    margin-bottom: 15px;
}

.FONT-gif img {
    display: block;
    margin: 0 auto;
	width: 15%; /* doppelte Breite */ 
	height: auto; /* Höhe proportional anpassen */
}


/* End of file */
