/* ============================================
   THELENSHOF – Conversion Components
   Availability signal, sticky mobile CTA,
   closing booking section
   ============================================ */

/* ── Availability signal (hero inline) ───────── */
.availability-signal {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-small);
  color: rgba(250, 247, 242, 0.65);
  margin-top: var(--space-3);
}

.availability-signal__dot {
  width: 7px;
  height: 7px;
  border-radius: var(--radius-full);
  background: #7DBF6E;
  flex-shrink: 0;
  animation: signalPulse 2.4s ease-in-out infinite;
}

@keyframes signalPulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.45; }
}

@media (prefers-reduced-motion: reduce) {
  .availability-signal__dot { animation: none; }
}

/* ── Sticky mobile booking bar ────────────────── */
.sticky-book {
  display: none; /* shown only on mobile via media query below */
}

@media (max-width: 767px) {
  .sticky-book {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky);
    background: var(--color-dark);
    border-top: 1px solid rgba(250, 247, 242, 0.1);
    padding: var(--space-3) var(--container-padding);
    padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom));
    transform: translateY(100%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
  }

  .sticky-book.is-visible {
    transform: translateY(0);
  }

  .sticky-book.is-hidden {
    transform: translateY(100%);
  }

  .sticky-book__text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
  }

  .sticky-book__label {
    font-size: var(--text-caption);
    color: rgba(250, 247, 242, 0.55);
    white-space: nowrap;
  }

  .sticky-book__price {
    font-family: var(--font-heading);
    font-size: 1.125rem;
    color: var(--color-text-on-dark);
    white-space: nowrap;
  }

  .sticky-book__price span {
    font-family: var(--font-body);
    font-size: var(--text-caption);
    color: rgba(250, 247, 242, 0.55);
    font-weight: var(--weight-regular);
  }

  /* Push page content up so nothing is hidden behind the bar */
  body.has-sticky-book {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }
}

/* ── Closing booking section ──────────────────── */
.section-book {
  background: var(--color-dark);
  padding: clamp(var(--space-7), 10vw, 140px) 0;
  text-align: center;
}

.section-book__inner {
  max-width: 560px;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.section-book .overline {
  color: var(--color-accent-light);
  margin-bottom: var(--space-3);
}

.section-book h2 {
  color: var(--color-text-on-dark);
  margin-bottom: var(--space-4);
}

.section-book p {
  color: rgba(250, 247, 242, 0.65);
  font-size: var(--text-lg);
  margin-bottom: var(--space-6);
}

.section-book__ctas {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.section-book__note {
  font-size: var(--text-small);
  color: rgba(250, 247, 242, 0.4);
}

.section-book__note a {
  color: rgba(250, 247, 242, 0.55);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.section-book__note a:hover {
  color: var(--color-accent-light);
}
