/*
  ═══════════════════════════════════════════════════════
   SugaringTime – Feature-Flag-Styles
  ═══════════════════════════════════════════════════════

  Jedes Feature wird über eine body-class aktiviert:
    <body class="feat-hero-glow feat-scroll-animations ...">

  Body-Klassen werden vom Inline-Bootstrap-Script
  im <head> von index.html gesetzt (FOUC-Vermeidung
  via localStorage-Cache).

  Ohne body-Klasse = Default-Look = jetzige Seite
  (Zero-Diff-Garantie wenn alle Toggles aus sind).
*/

/* ═══════════════════════════════════════════════════ */
/*  1. hero_glow                                       */
/* ═══════════════════════════════════════════════════ */
body.feat-hero-glow .hero::after {
  background: radial-gradient(ellipse at center,
              rgba(61,46,30,0.18) 0%,
              rgba(61,46,30,0.55) 55%,
              rgba(61,46,30,0.92) 100%);
}
body.feat-hero-glow .hero-content img {
  border-radius: 50%;
  background: radial-gradient(circle,
              rgba(245,225,185,0.42) 0%,
              rgba(212,184,150,0.18) 45%,
              rgba(212,184,150,0) 72%);
  animation: feat-logo-glow 4s ease-in-out infinite;
  will-change: filter;
}
@keyframes feat-logo-glow {
  0%, 100% { filter: drop-shadow(0 0 14px rgba(245,225,185,0.50)); }
  50%      { filter: drop-shadow(0 0 30px rgba(255,236,198,0.95)); }
}
body.feat-hero-glow .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 14% 22%, rgba(255,240,200,0.85) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 86% 32%, rgba(255,240,200,0.7) 0%, transparent 60%),
    radial-gradient(2px 2px at 22% 78%, rgba(255,240,200,0.65) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 78% 82%, rgba(255,240,200,0.55) 0%, transparent 60%),
    radial-gradient(1px 1px at 50% 12%, rgba(255,240,200,0.9) 0%, transparent 60%),
    radial-gradient(1px 1px at 65% 60%, rgba(255,240,200,0.7) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 38% 45%, rgba(255,240,200,0.6) 0%, transparent 60%);
  animation: feat-sparkle 6s ease-in-out infinite;
}
@keyframes feat-sparkle {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50%      { opacity: 0.85; transform: scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  body.feat-hero-glow .hero-content > img:first-child { animation: none; }
  body.feat-hero-glow .hero::before { animation: none; opacity: 0.6; }
}

/* ═══════════════════════════════════════════════════ */
/*  2. scroll_animations                  (Phase C)    */
/* ═══════════════════════════════════════════════════ */
body.feat-scroll-animations [data-feat-anim] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease;
  will-change: opacity, transform;
}
body.feat-scroll-animations [data-feat-anim].in-view {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  body.feat-scroll-animations [data-feat-anim] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ═══════════════════════════════════════════════════ */
/*  3. gallery_lightbox                   (Phase D)    */
/* ═══════════════════════════════════════════════════ */
body.feat-gallery-lightbox .gallery-strip .g-img { cursor: zoom-in; }
.feat-lightbox-overlay {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(20,15,10,0.93);
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px;
  opacity: 0; pointer-events: none;
  transition: opacity .25s ease;
}
.feat-lightbox-overlay.is-open { opacity: 1; pointer-events: auto; }
.feat-lightbox-img {
  max-width: 92vw; max-height: 84vh;
  object-fit: contain;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
  border-radius: 4px;
  user-select: none; -webkit-user-drag: none;
}
.feat-lightbox-close,
.feat-lightbox-nav {
  position: absolute;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fdfaf6;
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.5rem;
  font-family: 'Cormorant Garamond', serif;
  transition: background .2s, transform .2s;
}
.feat-lightbox-close:hover,
.feat-lightbox-nav:hover {
  background: rgba(255,255,255,0.18);
  transform: scale(1.08);
}
.feat-lightbox-close { top: 20px; right: 20px; }
.feat-lightbox-nav.prev { left: 20px; top: 50%; transform: translateY(-50%); }
.feat-lightbox-nav.next { right: 20px; top: 50%; transform: translateY(-50%); }
.feat-lightbox-nav.prev:hover { transform: translateY(-50%) scale(1.08); }
.feat-lightbox-nav.next:hover { transform: translateY(-50%) scale(1.08); }
.feat-lightbox-counter {
  position: absolute;
  bottom: 24px; left: 50%; transform: translateX(-50%);
  color: rgba(253,250,246,0.7);
  font-size: .8rem;
  letter-spacing: .12em;
  background: rgba(0,0,0,0.4);
  padding: 6px 16px;
  border-radius: 20px;
}
@media(max-width:600px){
  .feat-lightbox-nav { width: 42px; height: 42px; font-size: 1.2rem; }
  .feat-lightbox-nav.prev { left: 8px; }
  .feat-lightbox-nav.next { right: 8px; }
  .feat-lightbox-close   { top: 12px; right: 12px; }
}

/* ═══════════════════════════════════════════════════ */
/*  4. mikrotypo                                       */
/* ═══════════════════════════════════════════════════ */
body.feat-mikrotypo .s-title,
body.feat-mikrotypo .hero h1,
body.feat-mikrotypo .legal-page h1,
body.feat-mikrotypo .price-cat h3,
body.feat-mikrotypo .card h3,
body.feat-mikrotypo .lz-card h3,
body.feat-mikrotypo .alert h4 {
  font-feature-settings: "liga" 1, "dlig" 1, "kern" 1, "calt" 1;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.feat-mikrotypo .s-title,
body.feat-mikrotypo .hero h1 {
  letter-spacing: -0.003em;
}
body.feat-mikrotypo .s-label {
  letter-spacing: .32em;
  font-feature-settings: "kern" 1;
}
/* SVG-Stern statt Unicode ✦ in Leistungs-Items */
body.feat-mikrotypo .leist-icon {
  font-size: 0 !important;
  line-height: 0;
  margin-bottom: 12px;
}
body.feat-mikrotypo .leist-icon::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23b89a6a' d='M12 2l1.5 7.5L21 11l-7.5 1.5L12 22l-1.5-7.5L3 11l7.5-1.5z'/></svg>") no-repeat center / contain;
  vertical-align: middle;
}
body.feat-mikrotypo .leist-item:hover .leist-icon::before {
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%238a7050' d='M12 2l1.5 7.5L21 11l-7.5 1.5L12 22l-1.5-7.5L3 11l7.5-1.5z'/></svg>") no-repeat center / contain;
}

/* ═══════════════════════════════════════════════════ */
/*  5. stars_hero                         (Phase C)    */
/* ═══════════════════════════════════════════════════ */
.feat-hero-rating {
  display: none; /* Default — von JS aktiviert wenn Daten geladen */
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 auto 22px;
  font-size: .82rem;
  color: rgba(253,250,246,0.9);
  letter-spacing: .04em;
}
body.feat-stars-hero .feat-hero-rating.is-ready { display: flex; }
.feat-hero-rating .feat-stars {
  letter-spacing: .12em;
  color: #f5d27e;
  font-size: 1rem;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
.feat-hero-rating .feat-rating-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--gold-l);
}
.feat-hero-rating .feat-rating-count {
  color: rgba(253,250,246,0.55);
  font-size: .78rem;
}

/* ═══════════════════════════════════════════════════ */
/*  6. before_after                       (Phase D)    */
/* ═══════════════════════════════════════════════════ */
.feat-ba-section {
  display: none;
  background: var(--cream);
  padding: 90px 30px;
}
body.feat-before-after .feat-ba-section { display: block; }
.feat-ba-wrap {
  position: relative;
  max-width: 720px;
  margin: 30px auto 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 12px 48px rgba(60,40,20,0.18);
  user-select: none; -webkit-user-select: none;
  touch-action: none;
}
.feat-ba-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}
.feat-ba-after { clip-path: inset(0 0 0 50%); transition: none; }
.feat-ba-handle {
  position: absolute;
  top: 0; bottom: 0;
  width: 4px;
  background: rgba(255,255,255,0.95);
  left: 50%;
  transform: translateX(-50%);
  cursor: ew-resize;
  z-index: 3;
  box-shadow: 0 0 16px rgba(0,0,0,0.3);
}
.feat-ba-handle::after {
  content: '⇆';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 44px; height: 44px;
  background: var(--gold);
  color: white;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}
.feat-ba-label {
  position: absolute;
  top: 16px;
  padding: 6px 14px;
  background: rgba(0,0,0,0.55);
  color: #fff;
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  z-index: 2;
  border-radius: 3px;
}
.feat-ba-label.before { left: 16px; }
.feat-ba-label.after  { right: 16px; }
.feat-ba-demo-banner {
  max-width: 720px;
  margin: 20px auto 0;
  padding: 12px 16px;
  background: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: 6px;
  font-size: .82rem;
  color: #7a5c00;
  text-align: center;
}

/* ═══════════════════════════════════════════════════ */
/*  7. webp_lazy                                       */
/* ═══════════════════════════════════════════════════ */
/* (kein CSS — reine JS-Funktion, siehe features.js)   */

/* ═══════════════════════════════════════════════════ */
/*  8. prices_polish                                   */
/* ═══════════════════════════════════════════════════ */
body.feat-prices-polish .price-cat {
  background: var(--warm);
  padding: 26px 24px;
  border-radius: 10px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 20px rgba(60,40,20,0.04);
}
body.feat-prices-polish .price-cat h3 {
  position: relative;
  padding-left: 0;
}
body.feat-prices-polish .price-cat h3::before {
  content: '✦';
  color: var(--gold);
  margin-right: 8px;
  font-size: 0.95em;
  font-weight: 300;
  font-style: normal;
}
body.feat-prices-polish .price-amt {
  position: relative;
}
body.feat-prices-polish .price-amt::before {
  content: 'ab ';
  font-family: 'Jost', sans-serif;
  font-size: 0.65em;
  color: var(--mid);
  font-weight: 400;
  font-style: italic;
  letter-spacing: .04em;
  margin-right: 3px;
  vertical-align: 1px;
}
body.feat-prices-polish .price-row {
  transition: background .2s ease, padding-left .2s ease;
  padding-left: 4px;
  padding-right: 4px;
  border-radius: 4px;
}
body.feat-prices-polish .price-row:hover {
  background: rgba(184,154,106,0.07);
  padding-left: 10px;
}
body.feat-prices-polish .feat-price-duration {
  font-size: 0.75em;
  color: var(--mid);
  font-style: italic;
  margin-left: 8px;
  letter-spacing: .02em;
}

/* ═══════════════════════════════════════════════════ */
/*  9. storytelling_about                              */
/* ═══════════════════════════════════════════════════ */
/* (kein CSS — Content-Swap via JS, siehe Phase E)     */

/* ═══════════════════════════════════════════════════ */
/*  10. floating_termin_btn                            */
/* ═══════════════════════════════════════════════════ */
.feat-floating-termin {
  /* via JS hinzugefügt, nutzt .quick-action Styles */
}
body.feat-floating-termin-btn .feat-floating-termin {
  background: var(--brown);
  color: #fff;
}
body.feat-floating-termin-btn .feat-floating-termin:hover {
  background: var(--gold-d);
}
@media(max-width:600px){
  body.feat-floating-termin-btn .feat-floating-termin {
    flex: 1;
  }
}
