/* Стили только для блока лазерной эпиляции. */
.lazer-booking {
  --booking-ink: #1e293b;
  --booking-muted: #64748b;
  --booking-accent: #17a38c;
  --booking-accent-dark: #0e7564;
  --booking-ease: cubic-bezier(.4, 0, .2, 1);
  box-sizing: border-box;
  width: 100%; max-width: 920px;
  margin: 24px auto; padding: 32px 16px;
  color: var(--booking-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 16px; line-height: 1.5; text-align: left;
  color-scheme: light; scroll-margin-top: 24px;
}
.lazer-booking *, .lazer-booking *::before, .lazer-booking *::after { box-sizing: border-box; }
.lazer-booking [hidden] { display: none !important; }
.lazer-booking .widget-section__title {
  margin: 0; color: var(--booking-ink); text-align: center;
  font-size: 28px; font-weight: 700; line-height: 1.25; letter-spacing: -.025em;
  text-wrap: balance;
}
.lazer-booking .widget-section__subtitle {
  margin: 10px 0 28px; color: var(--booking-muted); text-align: center;
  font-size: 15px; line-height: 1.6;
}
.lazer-booking .widget-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.lazer-booking .widget-card {
  appearance: none; position: relative;
  display: flex; align-items: center; gap: 22px;
  width: 100%; margin: 0; padding: 28px;
  border: 2px solid #d4ebe5; border-radius: 18px;
  background: linear-gradient(115deg, #fff 55%, #f3fbf8);
  color: inherit; font: inherit; text-align: left; cursor: pointer;
  box-shadow: 0 3px 14px rgb(17 90 75 / 5%);
  transition: transform .3s var(--booking-ease), box-shadow .3s var(--booking-ease), border-color .25s ease;
}
.lazer-booking .widget-card__icon {
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 64px; width: 64px; height: 64px;
  border-radius: 17px; background: linear-gradient(135deg, #12816f, #17a38c);
  color: #fff; box-shadow: 0 5px 15px rgb(23 163 140 / 19%);
}
.lazer-booking .widget-card__icon i { font-size: 29px; }
.lazer-booking .widget-card__body { display: block; flex: 1; min-width: 0; }
.lazer-booking .widget-card__title {
  display: block; margin: 0 0 7px; color: var(--booking-ink);
  font-size: 20px; font-weight: 650; line-height: 1.3; letter-spacing: -.02em;
}
.lazer-booking .widget-card__desc {
  display: block; max-width: 360px; margin: 0; color: #526b65;
  font-size: 14px; line-height: 1.6;
}
.lazer-booking .widget-card__hint {
  display: block; margin-top: 10px; color: #64748b; font-size: 12px; line-height: 1.5;
}
/* Плашка — часть единственной кнопки. Нажимать можно на всю карточку. */
.lazer-booking .widget-card__action {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  flex-shrink: 0; min-width: 208px; min-height: 50px; padding: 13px 18px;
  border: 1px solid transparent; border-radius: 12px;
  background: #12816f; color: #fff;
  font-size: 14px; font-weight: 650; line-height: 1.4; white-space: nowrap;
  box-shadow: 0 5px 12px rgb(23 163 140 / 16%);
  transition: background-color .25s ease, box-shadow .25s ease;
}
.lazer-booking .widget-card__arrow { display: inline-flex; align-items: center; font-size: 19px; }
.lazer-booking .widget-card__arrow i { transition: transform .25s ease; }
@media (hover: hover) {
  .lazer-booking .widget-card:not(:disabled):hover {
    transform: translateY(-3px); border-color: #87cdbc;
    box-shadow: 0 12px 28px rgb(23 163 140 / 12%);
  }
  .lazer-booking .widget-card:not(:disabled):hover .widget-card__action {
    background: var(--booking-accent-dark); box-shadow: 0 7px 16px rgb(23 163 140 / 22%);
  }
  .lazer-booking .widget-card:not(:disabled):not(.is-active):hover .widget-card__arrow i { transform: translateX(3px); }
}
.lazer-booking .widget-card:not(:disabled):active { transform: translateY(-1px); }
.lazer-booking .widget-card.is-active { border-color: var(--booking-accent); box-shadow: 0 6px 22px rgb(23 163 140 / 10%); }
.lazer-booking .widget-card.is-active .widget-card__action { background: #e9f7f3; border-color: #bde2d8; color: #0e7564; box-shadow: none; }
.lazer-booking .widget-card.is-active:hover .widget-card__action { background: #ddf1eb; }
.lazer-booking .widget-card:disabled { cursor: default; }
.lazer-booking .widget-card:disabled .widget-card__action { background: #edf1ef; color: #657a73; box-shadow: none; }
.lazer-booking .lazer-booking__details {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 20px;
  margin-top: 22px; color: #586f68; font-size: 12px; line-height: 1.5;
}
.lazer-booking .lazer-booking__details span { display: inline-flex; align-items: center; gap: 7px; }
.lazer-booking .lazer-booking__details i { flex-shrink: 0; font-size: 15px; color: #17957f; }
.lazer-booking .lazer-booking__fallback { margin: 18px 0 0; text-align: center; font-size: 12px; }
.lazer-booking .lazer-booking__fallback a {
  color: #287766; text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: #afd3c9; line-height: 1.6; overflow-wrap: anywhere;
}
.lazer-booking .lazer-booking__fallback a:hover { color: #0c6657; }
.lazer-booking .lazer-booking__notice {
  margin: 20px 0 0; padding: 14px 16px; border: 1px solid #e6d9be;
  border-radius: 12px; background: #fffaf0; color: #715731; font-size: 14px;
}
/* Высота определяется содержимым. Нет фиксированного max-height и обрезания формы. */
.lazer-booking .widget-accordion {
  display: grid; grid-template-rows: 0fr; margin-top: 0;
  visibility: hidden; scroll-margin-top: 24px;
  transition: grid-template-rows .48s var(--booking-ease), margin-top .48s var(--booking-ease), visibility 0s .48s;
}
.lazer-booking .widget-accordion.is-open {
  grid-template-rows: 1fr; margin-top: 24px; visibility: visible;
  transition: grid-template-rows .48s var(--booking-ease), margin-top .48s var(--booking-ease), visibility 0s;
}
.lazer-booking .widget-accordion__clip { min-height: 0; overflow: hidden; }
.lazer-booking .widget-accordion__inner {
  padding: 16px; border: 1px solid #d7e9e3; border-radius: 18px; background: #f7fbf9;
}
.lazer-booking .widget-accordion__header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 14px; padding: 0 2px;
}
.lazer-booking .widget-accordion__title {
  display: flex; align-items: center; gap: 9px;
  color: var(--booking-ink); font-size: 15px; font-weight: 600; line-height: 1.5;
}
.lazer-booking .widget-accordion__status-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: #93aaa2; }
.lazer-booking .widget-accordion__status-dot.is-loading { background: var(--booking-accent); animation: lazer-booking-pulse 1.2s ease-in-out infinite; }
.lazer-booking .widget-accordion__status-dot.is-ready { background: #17a38c; }
.lazer-booking .widget-accordion__close {
  appearance: none; display: flex; align-items: center; justify-content: center;
  flex: 0 0 44px; width: 44px; height: 44px; padding: 0; margin: 0;
  border: 1px solid #deebe6; border-radius: 50%; background: #fff;
  color: #64748b; font: inherit; font-size: 16px; cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.lazer-booking .widget-accordion__close:hover { background: #e7f5ef; color: #127d6b; }
.lazer-booking .widget-accordion__frame-wrap {
  position: relative; height: 600px; min-height: 420px;
  overflow: hidden; border: 1px solid #dce9e3; border-radius: 12px; background: #fff;
}
.lazer-booking .widget-accordion__frame-wrap iframe {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  border: 0; background: #fff; opacity: 0; transition: opacity .4s ease;
}
.lazer-booking .widget-accordion__frame-wrap iframe.is-loaded { opacity: 1; }
.lazer-booking .widget-accordion__loader {
  position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px; padding: 24px;
  background: #fff; color: var(--booking-muted); font-size: 14px; text-align: center;
  opacity: 1; visibility: visible;
  transition: opacity .3s ease, visibility 0s;
}
.lazer-booking .widget-accordion__loader.is-hidden {
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s ease, visibility 0s .3s;
}
.lazer-booking .spinner-border {
  display: block; width: 34px; height: 34px; border: 3px solid #ddefe9;
  border-top-color: var(--booking-accent); border-radius: 50%; animation: lazer-booking-spin .8s linear infinite;
}
.lazer-booking .widget-card:focus-visible,
.lazer-booking .widget-accordion__close:focus-visible,
.lazer-booking .lazer-booking__fallback a:focus-visible { outline: 3px solid var(--booking-accent); outline-offset: 4px; }
.lazer-booking .bi { display: inline-block; width: 1em; height: 1em; font-style: normal; vertical-align: -.125em; }
.lazer-booking .bi::before {
  content: ""; display: block; width: 100%; height: 100%; background-color: currentColor;
  -webkit-mask: var(--booking-icon) center / contain no-repeat;
  mask: var(--booking-icon) center / contain no-repeat;
}
.lazer-booking .bi-calendar2-heart { --booking-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M7%203v4M17%203v4M3%2010h18%22%2F%3E%3Cpath%20d%3D%22M12%2018.5l-3.1-2.9a1.9%201.9%200%200%201%202.7-2.7l.4.4.4-.4a1.9%201.9%200%200%201%202.7%202.7Z%22%2F%3E%3C%2Fsvg%3E"); }
.lazer-booking .bi-check-circle { --booking-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22m8%2012%202.5%202.5L16%209%22%2F%3E%3C%2Fsvg%3E"); }
.lazer-booking .bi-arrow-right { --booking-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2012h16m-6-6%206%206-6%206%22%2F%3E%3C%2Fsvg%3E"); }
.lazer-booking .bi-chevron-up { --booking-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%2015%206-6%206%206%22%2F%3E%3C%2Fsvg%3E"); }
.lazer-booking .bi-x-lg { --booking-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%206%2012%2012M18%206%206%2018%22%2F%3E%3C%2Fsvg%3E"); }
@keyframes lazer-booking-spin { to { transform: rotate(360deg); } }
@keyframes lazer-booking-pulse { 50% { opacity: .4; } }
@media (max-width: 680px) {
  .lazer-booking { padding: 24px 12px; margin: 16px auto; }
  .lazer-booking .widget-section__title { font-size: 24px; }
  .lazer-booking .widget-section__subtitle { margin-bottom: 22px; font-size: 14px; }
  .lazer-booking .widget-card {
    display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: start;
    gap: 18px 15px; padding: 22px; border-radius: 16px;
  }
  .lazer-booking .widget-card__icon { width: 54px; height: 54px; border-radius: 14px; }
  .lazer-booking .widget-card__icon i { font-size: 25px; }
  .lazer-booking .widget-card__title { font-size: 18px; }
  .lazer-booking .widget-card__desc { font-size: 13px; }
  .lazer-booking .widget-card__hint { font-size: 11px; }
  .lazer-booking .widget-card__action { grid-column: 1 / -1; width: 100%; min-width: 0; min-height: 50px; font-size: 15px; }
  .lazer-booking .lazer-booking__details { justify-content: flex-start; gap: 10px 18px; padding: 0 4px; }
  .lazer-booking .widget-accordion.is-open { margin-top: 18px; }
  .lazer-booking .widget-accordion__inner { padding: 12px; border-radius: 16px; }
  .lazer-booking .widget-accordion__title { font-size: 13px; }
  .lazer-booking .widget-accordion__frame-wrap { height: clamp(420px, calc(100dvh - 180px), 680px); min-height: 420px; }
}
@media (max-width: 360px) {
  .lazer-booking .widget-card { padding: 18px; grid-template-columns: 46px minmax(0, 1fr); gap: 16px 12px; }
  .lazer-booking .widget-card__icon { width: 46px; height: 46px; }
  .lazer-booking .widget-card__title { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .lazer-booking *, .lazer-booking *::before { animation: none !important; transition: none !important; }
}
