.lt-spa {
  --lt-spa-blue: #182583;
  --lt-spa-text: #333333;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  width: 100%;
  max-width: none;
  font-family: "Lora", Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--lt-spa-text);
  text-align: left;
}
.lt-spa *, .lt-spa *::before, .lt-spa *::after { box-sizing: border-box; }
.lt-spa .lt-spa__resorts, .lt-spa .lt-spa__resort, .lt-spa .lt-spa__cards { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; margin: 0; padding: 0; }
/* Каталог: страны идут плашками по алфавиту. Первая открыта, остальные свёрнуты.
   Стандартные details/summary раскрывают предложения без поиска и без JavaScript. */
.lt-spa .lt-spa__country { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.lt-spa .lt-spa__country-toggle { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 64px; margin: 0; padding: 18px 24px; border: 1px solid #DDE1EA; border-radius: 12px; background: #fff; color: #182583; font-family: "Playfair Display", Georgia, serif; font-size: 30px; font-weight: 700; font-style: normal; line-height: 1.2; text-align: left; text-transform: none; letter-spacing: normal; list-style: none; cursor: pointer; }
.lt-spa .lt-spa__country-toggle::marker { content: ""; }
.lt-spa .lt-spa__country-toggle::-webkit-details-marker { display: none; }
.lt-spa .lt-spa__country-toggle::before, .lt-spa .lt-spa__country-toggle::after { content: none; }
.lt-spa .lt-spa__country-toggle:hover, .lt-spa .lt-spa__country[open] > .lt-spa__country-toggle { border-color: #182583; }
.lt-spa .lt-spa__country-toggle:focus-visible { outline: 3px solid #182583; outline-offset: 3px; }
.lt-spa .lt-spa__country-name { min-width: 0; overflow-wrap: anywhere; }
/* Стрелка плашки: толстая, синяя, с внутренним отступом от края; вверх при раскрытии. */
.lt-spa .lt-spa__country-arrow { display: block; flex: 0 0 24px; width: 24px; height: 24px; color: #182583; transition: transform .18s ease; }
.lt-spa .lt-spa__country[open] > .lt-spa__country-toggle .lt-spa__country-arrow { transform: rotate(180deg); }
.lt-spa .lt-spa__country > .lt-spa__resorts { padding-top: 16px; }
.lt-spa .lt-spa__country:not([open]) > .lt-spa__resorts { display: none; }
@media (prefers-reduced-motion: reduce) {
  .lt-spa .lt-spa__country-arrow { transition: none; }
}
.lt-spa .lt-spa__resorts, .lt-spa .lt-spa__cards { gap: 24px; }
.lt-spa .lt-spa__resort { gap: 16px; }
.lt-spa .lt-spa__destination-title { margin: 0; padding: 0; font-family: "Playfair Display", Georgia, serif; font-size: 30px; font-weight: 700; line-height: 1.2; color: #182583; text-align: left; text-transform: none; font-style: normal; letter-spacing: normal; overflow-wrap: anywhere; }
.lt-spa .lt-spa__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.lt-spa .lt-spa__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 24px;
  padding: 24px;
  border: 1px solid #DDE1EA;
  border-radius: 12px;
  background: #fff;
  min-width: 0;
  width: 100%;
  overflow-wrap: anywhere;
  scroll-margin-top: 16px;
}
.lt-spa .lt-spa__card--photo { grid-template-columns: 320px minmax(0, 1fr); }
.lt-spa .lt-spa__media { width: 320px; height: 320px; max-width: 100%; overflow: hidden; border-radius: 8px; }
.lt-spa .lt-spa__photo { display: block; width: 100%; height: 100%; max-width: 100%; max-height: none; margin: 0; padding: 0; object-fit: cover; object-position: center; border: 0; border-radius: 0; }
.lt-spa .lt-spa__body { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 8px; min-width: 0; }
.lt-spa .lt-spa__body p, .lt-spa .lt-spa__body h2, .lt-spa .lt-spa__body h3, .lt-spa .lt-spa__body h4, .lt-spa .lt-spa__body ul { margin: 0; padding: 0; font-style: normal; text-transform: none; letter-spacing: normal; }
.lt-spa .lt-spa__title { font-family: "Playfair Display", Georgia, serif; font-size: 28px; font-weight: 700; color: var(--lt-spa-blue); line-height: 1.2; }
.lt-spa .lt-spa__meta { font-size: 18px; font-weight: 600; line-height: 1.4; }
.lt-spa .lt-spa__meta-separator { white-space: pre-wrap; }
.lt-spa .lt-spa__location { font-size: inherit; }
.lt-spa .lt-spa__program { font-weight: 600; }
.lt-spa .lt-spa__dates { font-size: inherit; }
.lt-spa .lt-spa__terms { display: grid; gap: 5px; }
.lt-spa .lt-spa__terms span { font-weight: 600; }
.lt-spa .lt-spa__section { display: grid; gap: 3px; }
.lt-spa .lt-spa__note-label { font-weight: 600; }
.lt-spa .lt-spa__body .lt-spa__services { display: grid; gap: 3px; padding: 0; list-style: none; }
.lt-spa .lt-spa__services li { display: block; padding: 0; margin: 0; list-style: none; color: var(--lt-spa-text); font-size: inherit; font-weight: 600; line-height: 1.4; }
.lt-spa .lt-spa__services li::before, .lt-spa .lt-spa__services li::after { content: none; }
.lt-spa .lt-spa__section-title { font-family: "Lora", Georgia, serif; font-size: 18px; font-weight: 600; line-height: 1.4; color: var(--lt-spa-text); }
.lt-spa .lt-spa__body .lt-spa__list { display: block; padding-left: 1.2em; list-style: disc outside; }
.lt-spa .lt-spa__list li { display: list-item; padding: 0; margin: 0 0 5px; list-style: disc outside; color: var(--lt-spa-text); }
.lt-spa .lt-spa__list li:last-child { margin-bottom: 0; }
/* Карточка пакета: основная цена и «Одноместное размещение: цена» стоят в одной строке.
   При нехватке ширины текст переносится естественно; пустые цены не выводятся. */
.lt-spa .lt-spa__prices { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; }
.lt-spa .lt-spa__price-item { display: grid; gap: 4px; min-width: 0; max-width: 100%; }
.lt-spa .lt-spa__price-label { font-size: 17px; font-weight: 600; line-height: 1.4; }
.lt-spa .lt-spa__price { font-family: "Lora", Georgia, serif; font-size: 36px; font-weight: 700; line-height: 1.25; color: var(--lt-spa-blue); }
.lt-spa .lt-spa__single-price-line { display: block; font-size: 17px; font-weight: 600; line-height: 1.4; }
.lt-spa .lt-spa__single-price-line .lt-spa__price-label { display: inline; }
.lt-spa .lt-spa__single-price-line .lt-spa__price { display: inline; white-space: nowrap; vertical-align: baseline; }
.lt-spa .lt-spa__note, .lt-spa .lt-spa__deadline { font-size: 17px; font-weight: 600; }
.lt-spa .lt-spa__buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; justify-content: flex-start; margin-top: 2px; }
.lt-spa .lt-spa__button, .lt-spa .lt-spa__button:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  max-width: 100%;
  min-height: 48px;
  padding: 12px 10px;
  border: 1px solid var(--lt-spa-blue);
  border-radius: 8px;
  font-family: "Lora", Georgia, serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
  color: #fff;
  background: var(--lt-spa-blue);
  box-shadow: none;
}
.lt-spa .lt-spa__button--whatsapp, .lt-spa .lt-spa__button--whatsapp:visited { background: #218838; border-color: #218838; color: #fff; }
.lt-spa .lt-spa__button:hover { filter: brightness(.92); color: #fff; text-decoration: none; }
.lt-spa .lt-spa__button:focus-visible { outline: 3px solid #1F4E79; outline-offset: 3px; }
.lt-spa .lt-spa__button { cursor: pointer; }
.lt-spa .lt-spa__button:disabled { opacity: .65; cursor: default; filter: none; }
.lt-spa .lt-spa__dialog {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(640px, calc(100% - 32px));
  max-width: 640px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  padding: 24px;
  border: 1px solid #DDE1EA;
  border-radius: 12px;
  background: #fff;
  color: #333333;
  font-family: "Lora", Georgia, serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  text-align: left;
  box-shadow: 0 12px 48px #0003;
}
.lt-spa .lt-spa__dialog::backdrop { background: #0008; }
.lt-spa .lt-spa__dialog-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.lt-spa .lt-spa__dialog-title { margin: 0; padding: 0; flex: 1; font-family: "Playfair Display", Georgia, serif; font-size: 28px; font-weight: 600; line-height: 1.2; color: #182583; letter-spacing: normal; text-transform: none; }
.lt-spa .lt-spa__close { display: flex; flex: 0 0 40px; align-items: center; justify-content: center; width: 40px; height: 40px; min-height: 40px; margin: -8px -8px 0 0; padding: 0; border: 0; border-radius: 8px; background: #fff; color: #182583; box-shadow: none; cursor: pointer; font: 400 32px/1 Arial, sans-serif; }
.lt-spa .lt-spa__form { display: grid; gap: 14px; margin: 0; padding: 0; }
.lt-spa .lt-spa__form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.lt-spa .lt-spa__field { display: grid; gap: 6px; min-width: 0; margin: 0; font-family: "Lora", Georgia, serif; font-size: 16px; font-weight: 400; line-height: 1.4; color: #333333; }
.lt-spa .lt-spa__field--wide { grid-column: 1 / -1; }
.lt-spa .lt-spa__field input, .lt-spa .lt-spa__field select, .lt-spa .lt-spa__field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; height: auto; min-height: 46px; margin: 0; padding: 10px 12px; border: 1px solid #DDE1EA; border-radius: 8px; background: #fff; color: #333333; font: 400 16px/1.4 "Lora", Georgia, serif; box-shadow: none; }
.lt-spa .lt-spa__field textarea { resize: vertical; }
.lt-spa .lt-spa__field input[readonly] { background: #f5f6fa; font-weight: 600; }
.lt-spa .lt-spa__field input:focus, .lt-spa .lt-spa__field textarea:focus, .lt-spa .lt-spa__field select:focus, .lt-spa .lt-spa__close:focus-visible { outline: 2px solid #182583; outline-offset: 2px; }
.lt-spa .lt-spa__consent { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: #333333; font: 400 15px/1.4 "Lora", Georgia, serif; }
.lt-spa .lt-spa__consent input { appearance: auto; -webkit-appearance: checkbox; display: block; position: static; opacity: 1; flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #182583; }
.lt-spa .lt-spa__consent a { color: #182583; text-decoration: underline; }
.lt-spa .lt-spa__form-note { margin: 0; padding: 0; font: 400 14px/1.4 "Lora", Georgia, serif; color: #555; }
.lt-spa .lt-spa__form-status { font-size: 16px; overflow-wrap: anywhere; }
.lt-spa .lt-spa__form-status:empty { display: none; }
.lt-spa .lt-spa__form-status--error { color: #B42318; }
.lt-spa .lt-spa__form-status--success { color: #176C2F; }
.lt-spa .lt-spa__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 1024px) {
  /* Планшет: плашка страны 28px, внутренние отступы 16px/20px. */
  .lt-spa .lt-spa__country-toggle { font-size: 28px; padding: 16px 20px; }
  .lt-spa .lt-spa__destination-title { font-size: 28px; }
  .lt-spa .lt-spa__card, .lt-spa .lt-spa__card--photo { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 16px; }
  .lt-spa .lt-spa__title { font-size: 26px; }
  .lt-spa .lt-spa__price { font-size: 32px; }
  /* Планшет: обе цены одинакового размера — 32px. */
  .lt-spa .lt-spa__price--single { font-size: 32px; }
  .lt-spa .lt-spa__dialog-title { font-size: 26px; }
}
@media (max-width: 767px) {
  .lt-spa { font-size: 17px; gap: 16px; }
  .lt-spa .lt-spa__destination-title { font-size: 24px; }
  /* Телефон: плашка страны 24px, стрелка остаётся внутри рамки. */
  .lt-spa .lt-spa__country-toggle { min-height: 56px; font-size: 24px; padding: 14px 16px; gap: 12px; }
  .lt-spa .lt-spa__resorts, .lt-spa .lt-spa__cards { gap: 20px; }
  .lt-spa .lt-spa__card { padding: 16px; }
  .lt-spa .lt-spa__media { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .lt-spa .lt-spa__title { font-size: 24px; }
  .lt-spa .lt-spa__meta, .lt-spa .lt-spa__location, .lt-spa .lt-spa__dates, .lt-spa .lt-spa__section-title { font-size: 17px; }
  .lt-spa .lt-spa__price { font-size: 28px; }
  /* Телефон: обе цены 28px, подписи 16px; суммы переносятся целиком. */
  .lt-spa .lt-spa__price--single { font-size: 28px; }
  .lt-spa .lt-spa__note, .lt-spa .lt-spa__deadline, .lt-spa .lt-spa__price-label, .lt-spa .lt-spa__single-price-line { font-size: 16px; }
  .lt-spa .lt-spa__buttons { flex-direction: column; }
  .lt-spa .lt-spa__button { width: 100%; font-size: 16px; }
  .lt-spa .lt-spa__dialog { padding: 16px; }
  .lt-spa .lt-spa__dialog-title { font-size: 22px; }
  .lt-spa .lt-spa__form-grid { grid-template-columns: minmax(0, 1fr); }
}
