html {
  scroll-behavior: smooth;
}

body {
  font-feature-settings: "liga" 1;
}

.text-balance {
  text-wrap: balance;
}

/* Header states */
#site-header {
  color: #FBF7F0;
}
#site-header.is-scrolled {
  background: #FBF7F0;
  color: #2B211B;
  box-shadow: 0 1px 0 #E4D5C0;
}
#site-header.is-scrolled .nav-link {
  color: #2B211B;
}
#site-header .nav-link {
  color: inherit;
  opacity: 0.85;
  transition: opacity 200ms ease;
}
#site-header .nav-link:hover {
  opacity: 1;
}
#site-header #lang-toggle {
  color: inherit;
}

/* Hero scroll indicator */
.scroll-line {
  position: relative;
  overflow: hidden;
}
.scroll-line::after {
  content: "";
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: #FBF7F0;
  animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine {
  0% { top: -100%; }
  50% { top: 0%; }
  100% { top: 100%; }
}

.icon-mark {
  color: #BD5B2C;
}

/* Reveal animation initial state (JS/GSAP controls the animation itself;
   this is only a no-JS / pre-hydration fallback so content is not invisible) */
.reveal {
  opacity: 1;
}
.js-ready .reveal {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .scroll-line::after {
    animation: none;
  }
}

/* ---------- Google-Rezensionen ---------- */
.reviews-scroller {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.reviews-scroller::-webkit-scrollbar { display: none; }
.reviews-track { display: flex; gap: 1.25rem; width: max-content; padding: 0.5rem 1.5rem; }
.review-card {
  width: 18.5rem;
  flex: 0 0 auto;
  text-align: left;
  cursor: pointer;
  background: #fff;
  border: 1px solid #E4D5C0;
  border-radius: 2px;
  padding: 1.75rem;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
@media (min-width: 640px) { .review-card { width: 22rem; } }
.review-card:hover, .review-card:focus-visible { border-color: rgba(189, 91, 44, 0.45); box-shadow: 0 6px 24px rgba(43, 33, 27, 0.08); outline: none; }
.review-card .review-text {
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.review-stars { color: #B8862A; letter-spacing: 0.15em; }

dialog#review-dialog {
  border: 1px solid #E4D5C0;
  border-radius: 2px;
  padding: 0;
  max-width: min(36rem, calc(100vw - 2rem));
  width: 100%;
  max-height: calc(100vh - 3rem);
  background: #fff;
  color: #2B211B;
}
dialog#review-dialog::backdrop { background: rgba(43, 33, 27, 0.55); }
