:root{
  --bg:#FFFFFF;
  --bg-soft:#F5F5F5;
  --ink:#222222;
  --muted:#6b7280;
  --primary:#2C7DA0;
  --accent:#F4A261;
  --accent-strong:#E76F51;
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --container:1180px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
}
.container{max-width:var(--container); margin:0 auto; padding:0 20px}

/* HEADER */
.header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid #eee;
}
.header__row{
  display:flex;
  align-items:center;
  gap:24px;
  height:72px;
}
.logo{
  font-weight:700;
  font-size:22px;
  color:var(--primary);
  text-decoration:none;
  letter-spacing:.5px;
}
.logo--footer{
  font-weight:700;
  font-size:20px;
  color:var(--primary);
  margin-bottom:6px;
}
.header__cta{
  margin-left:auto;
  display:flex;
  gap:8px;
}
.header__cta .btn i{font-size:14px}

/* NAV desktop */
.nav{
  margin-left:auto;
  position:relative;
  z-index:60;
}
.nav__toggle{
  display:none;
  align-items:center;
  gap:8px;
  height:40px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#fff;
  cursor:pointer;
}
.nav__toggle-text{font-weight:600}
.nav__list{
  display:flex;
  gap:18px;
  list-style:none;
  margin:0;
  padding:0;
}
.nav__list li{margin:0}
.nav__link{
  display:inline-block;
  white-space: nowrap;
  padding:8px 10px;
  color:#333;
  text-decoration:none;
  border-radius:10px;
}
.nav__link:hover{background:var(--bg-soft)}
.nav__link.is-active{
  color:var(--primary);
  font-weight:600;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:42px;
  padding:0 16px;
  border-radius:12px;
  text-decoration:none;
  font-weight:600;
  transition:.2s;
  border:0;
  cursor:pointer;
}
.btn--accent{
  background:var(--primary);
  color:#fff;
}
.btn--accent:hover{background:#256b86}
.btn--ghost{
  border:1px solid #e5e7eb;
  color:#111;
  background:#fff;
}
.btn--ghost:hover{
  border-color:#cbd5e1;
  background:#f9fafb;
}
.btn--block{width:100%}

/* Hero */
.hero{padding:56px 0 24px}
.hero__card{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:28px;
  align-items:stretch;
  background:linear-gradient(180deg,#fff,#f9fcfd);
  border:1px solid #eef2f7;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.hero__media{position:relative; background:var(--bg-soft)}
.hero__content{padding:36px}
.kicker{
  color:var(--primary);
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
}
.h1{
  font-size:42px;
  line-height:1.1;
  margin:10px 0 12px;
}
.lead{
  font-size:18px;
  color:#374151;
  margin:0 0 18px;
}
.hero__cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

/* Placeholder */
.ph{ 
  position:relative;
  width:100%;
  background:linear-gradient(135deg,#eaf6fb,#f6fbff);
  border:1px dashed #d1e4ee;
}
.ph::before{content:""; display:block; padding-top:62.5%}
.ph--tall::before{padding-top:100%}
.ph--wide::before{padding-top:50%}
.ph__label{
  position:absolute;
  inset:auto 12px 12px auto;
  background:#fff;
  border:1px solid #e5e7eb;
  color:#111;
  padding:6px 10px;
  border-radius:10px;
  font-size:12px;
}

/* Badges */
.badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:14px 0 0;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  background:#f3f6f9;
  color:#0f172a;
  border:1px solid #e2e8f0;
  font-size:14px;
}
.badge i{font-size:14px}

/* Section */
.section{padding:56px 0}
.section--soft{background:var(--bg-soft)}
.section__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px;
}
.h2{font-size:28px; margin:0}
.muted{color:var(--muted)}

/* Features / cards */
.features{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.card{
  background:#fff;
  border:1px solid #eef2f7;
  border-radius:var(--radius-sm);
  padding:18px;
  box-shadow:var(--shadow);
}
.card__title{font-weight:700; margin:0 0 6px}
.card__desc{margin-bottom:10px; color:#4b5563}

/* Rooms grid */
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.room__media{
  border-radius:12px;
  overflow:hidden;
  margin-bottom:12px;
}
.room__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.price{font-weight:700; color:#0f172a}

/* Steps */
.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.step{
  background:#fff;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding:16px;
}
.step b{display:block; margin-bottom:6px}

/* Gallery */
.gallery{
  column-count:3;
  column-gap:16px;
}
.gallery__item{
  break-inside:avoid;
  margin-bottom:16px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #eef2f7;
  background:#fff;
}

/* FAQ Accordion (jQuery UI) */
.faq-accordion .ui-accordion-header{
  display:flex;
  align-items:center;
  gap:8px;
  padding:14px 16px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  margin:0 0 8px;
  cursor:pointer;
}
.faq-accordion .ui-accordion-content{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:14px 16px;
  background:#fff;
  margin:0 0 12px;
}

/* Footer */
.footer{
  background:#0b1220;
  color:#dae1ea;
  padding:40px 0 18px;
}
.footer a{color:#e7edf5}
.footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.2fr;
  gap:24px;
}
.footer h4{margin:0 0 10px}
.list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:6px;
}
.footer .booking-mini label{
  display:block;
  font-size:13px;
  color:#cbd5e1;
  margin-bottom:10px;
}
.footer .booking-mini input{
  width:100%;
  height:40px;
  border-radius:10px;
  border:1px solid #334155;
  background:#0e1729;
  color:#e5e7eb;
  padding:0 10px;
}
.footer .booking-mini__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:10px;
}
.footer__copy{
  margin-top:20px;
  border-top:1px solid #1f2937;
  padding-top:10px;
  text-align:center;
  font-size:13px;
}

/* Breadcrumbs */
.breadcrumbs{
  border-top:1px solid #f0f0f0;
  border-bottom:1px solid #f0f0f0;
  background:#fff;
}
.crumbs{
  display:flex;
  gap:10px;
  padding:10px 0;
  margin:0;
  list-style:none;
}
.crumb a{
  color:#334155;
  text-decoration:none;
}
.crumb a:hover{color:#0f172a}

/* Datepicker */
.ui-datepicker{
  font-size:14px !important;
  border:1px solid #e5e7eb !important;
  border-radius:12px !important;
  box-shadow:var(--shadow);
}
.ui-datepicker .ui-datepicker-header{
  background:#f6fafc !important;
  border:0 !important;
  color:#0f172a !important;
  border-radius:12px 12px 0 0 !important;
}
.ui-state-active,
.ui-widget-content .ui-state-active{
  background:var(--primary) !important;
  color:#fff !important;
  border:0 !important;
}
.ui-widget.ui-widget-content{
  border-radius:12px !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width:1024px){
  .hero__card{grid-template-columns:1fr}
  .features,
  .grid-3,
  .steps{grid-template-columns:1fr 1fr}
  .gallery{column-count:2}
  .header__row{height:64px}
}

@media (max-width:720px){
  .header__cta{display:none}
  .nav__toggle{display:inline-flex}

  .nav__list{
    position:absolute;
    right:0;
    top:64px;
    display:none;
    flex-direction:column;
    gap:4px;
    padding:10px;
    margin:0;
    list-style:none;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    box-shadow:var(--shadow);
    min-width:190px;
  }
  .nav__list.is-open{display:flex}
  .nav__link{
    display:block;
    width:100%;
    padding:10px 12px;
  }

  .features,
  .grid-3,
  .steps{grid-template-columns:1fr}
  .gallery{column-count:1}
  .h1{font-size:34px}
  .footer .booking-mini__row{grid-template-columns:1fr}
}
.room__img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  border-radius: 12px;
  background: #f0f4f7;
  display: block;
}
/* Grid */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.gallery__item img {
  width: 100%;
  display: block;
  border-radius: 12px;
  object-fit: cover;
  cursor: pointer;
  transition: .2s;
}

.gallery__item img:hover {
  opacity: .85;
}
/* Lightbox */
#lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 0; /* чтобы не было смещения */
}

#lightbox img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 10px;
  display: block;
  margin: 0 auto; /* страховка */
}


#lightbox .close,
#lightbox .prev,
#lightbox .next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 40px;
  color: #fff;
  cursor: pointer;
  padding: 10px;
  user-select: none;
}

#lightbox .close {
  top: 20px;
  right: 25px;
  transform: none;
  font-size: 38px;
}

#lightbox .prev { left: 30px; }
#lightbox .next { right: 30px; }
.room-slider {
  position: relative;
  width: 100%;
  margin-left: auto;
  margin-right: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #f3f4f6;
}

.hero__media .room-slider {
  height: 100%;
  width: 100%;
}

.room-slider__track {
  position: relative;
  width: 100%;
  height: 100%;
}

.room-slider__item {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.room-slider__item.is-active {
  opacity: 1;
  position: absolute;
}

.room-slider__item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Навигация */
.room-slider__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: rgba(0,0,0,0.35);
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  z-index: 2;
}

.room-slider__nav--prev { left: 10px; }
.room-slider__nav--next { right: 10px; }

.room-slider__nav i {
  font-size: 14px;
}

/* Точки */
.room-slider__dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 2;
}

.room-slider__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  padding: 0;
  cursor: pointer;
  background: rgba(255,255,255,0.5);
}

.room-slider__dot.is-active {
  background: #ffffff;
}
/* ====== Контакты: общая раскладка ====== */

.hero--contacts .hero__card--contacts {
  align-items: flex-start;
  gap: 32px;
}

.hero--contacts .hero__content--contacts {
  max-width: 640px;
}

.hero--contacts .hero__media--contacts {
  flex: 0 0 320px;
}

/* Карточка справа в hero */

.contacts-summary {
  padding: 20px 20px 18px;
  border-radius: 16px;
}

.contacts-summary__block + .contacts-summary__block {
  margin-top: 10px;
}

.contacts-summary__label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9ca3af;
  margin-bottom: 2px;
}

.contacts-summary__value {
  font-size: 14px;
}

.contacts-summary__value a {
  text-decoration: none;
}

.contacts-summary__value a:hover {
  text-decoration: underline;
}

.contacts-summary__hint {
  margin-top: 14px;
  font-size: 12px;
}

/* ====== Сетка контактов ====== */

.contacts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.contacts-grid__item {
  display: flex;
}

.contacts-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.contacts-card .card__desc {
  flex-grow: 1;
  margin-bottom: 16px;
}

/* Кнопка внизу карточки */

.contacts-card .btn--block {
  margin-top: auto;
}

/* ====== Блок с картой ====== */

.contacts-map-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.contacts-map-layout__map,
.contacts-map-layout__text {
  flex: 1 1 320px;
}

.contacts-map {
  border-radius: 16px;
  overflow: hidden;
  background: #e5e7eb;
}

.contacts-map__hint {
  margin-top: 8px;
  font-size: 13px;
}

/* ====== Форма обратной связи ====== */

.contacts-form-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.contacts-form-layout__form,
.contacts-form-layout__text {
  flex: 1 1 320px;
}

/* Базовая форма */

.form--contacts .form__group {
  margin-bottom: 12px;
}

.form--contacts label {
  display: block;
  font-size: 14px;
  margin-bottom: 4px;
}

.form--contacts input[type="text"],
.form--contacts input[type="tel"],
.form--contacts input[type="email"],
.form--contacts textarea {
  width: 100%;
  border-radius: 8px;
  border: 1px solid #d1d5db;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1.4;
}

.form--contacts textarea {
  resize: vertical;
  min-height: 120px;
}

.form--contacts input:focus,
.form--contacts textarea:focus {
  outline: none;
  border-color: #6366f1;
  box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.15);
}

.form__hidden-field {
  display: none;
}

/* Чекбокс */

.form--contacts .checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
}

.form--contacts .checkbox input[type="checkbox"] {
  margin-top: 3px;
}

.form--contacts .form__note {
  margin-top: 8px;
  font-size: 13px;
}

/* ====== Адаптив ====== */

@media (max-width: 960px) {
  .hero--contacts .hero__card--contacts {
    flex-direction: column;
  }

  .hero--contacts .hero__media--contacts {
    width: 100%;
  }

  .contacts-grid {
    grid-template-columns: 1fr;
  }

  .contacts-map-layout,
  .contacts-form-layout {
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .contacts-summary {
    padding: 16px;
  }

  .contacts-map iframe {
    height: 320px;
  }
}
