/* Fresha booking — токены и .theme-btn из main.css (Rubik + Oswald, #d6a354) */
:root,
.fresha-booking,
.fresha-modal,
.fresha-cart-modal {
  --fresha-accent: #d6a354;
  --fresha-accent-soft: rgba(214, 163, 84, 0.1);
  --fresha-accent-border: rgba(214, 163, 84, 0.35);
  --fresha-text: #707070;
  --fresha-heading: #252525;
  --fresha-border: #e8e8e8;
  --fresha-bg: #fff;
  --fresha-bg-soft: #faf8f5;
  --fresha-font-body: "Rubik", sans-serif;
  --fresha-font-heading: "Oswald", sans-serif;
  --fresha-radius: 5px;
}

.fresha-booking {
  position: relative;
  font-family: var(--fresha-font-body);
  color: var(--fresha-text);
}

.fresha-booking__skeleton {
  margin-bottom: 24px;
}

.fresha-booking__skeleton[hidden] {
  display: none !important;
}

.fresha-booking__services.is-loading {
  position: relative;
  min-height: 200px;
}

.fresha-booking__services.is-loading .fresha-booking__tabs,
.fresha-booking__services.is-loading .fresha-booking__panes {
  visibility: hidden;
}

.fresha-booking--ssr-html .fresha-booking__services {
  margin-bottom: 24px;
}

.fresha-booking__services.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--fresha-radius);
  background: linear-gradient(90deg, #eee 0%, #f5f5f5 50%, #eee 100%);
  background-size: 200% 100%;
  animation: fresha-shimmer 1.2s ease-in-out infinite;
}

@keyframes fresha-shimmer {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

.fresha-skeleton {
  border-radius: var(--fresha-radius);
  background: linear-gradient(90deg, #ececec 0%, #f6f6f6 50%, #ececec 100%);
  background-size: 200% 100%;
  animation: fresha-shimmer 1.2s ease-in-out infinite;
}

.fresha-skeleton--tabs {
  height: 121px;
  margin-bottom: 24px;
}

.fresha-skeleton--services {
  height: 380px;
}

.fresha-time__slots-shimmer {
  min-height: 120px;
  border-radius: var(--fresha-radius);
  background: linear-gradient(90deg, #ececec 0%, #f6f6f6 50%, #ececec 100%);
  background-size: 200% 100%;
  animation: fresha-shimmer 1.2s ease-in-out infinite;
}

.fresha-booking__error {
  padding: 16px;
  border: 1px solid #e8c4c4;
  background: #fff5f5;
  color: #8b2e2e;
  border-radius: var(--fresha-radius);
  margin-bottom: 20px;
}

