/* ===================== */
/* Тема через CSS-переменные */
/* ===================== */
:root{
  /* LIGHT по умолчанию */
  --bg: #ffffff;
  --bg-soft: #f7f7f7;
  --text: #333333;
  --text-weak: #555555;
  --card: #ffffff;
  --shadow: 0 8px 24px rgba(0,0,0,0.06);
  --shadow-strong: 0 10px 30px rgba(0,0,0,0.12);
  --border: rgba(0,0,0,0.08);
  --brand: #2d5a4b;
  --brand-strong: #1e4034;
  --header-bg: rgba(255,255,255,0.96);
}

html[data-theme="dark"]{
  color-scheme: dark;
  --bg: #0f1214;
  --bg-soft: #14181b;
  --text: #e9edf1;
  --text-weak: #c7d0d8;
  --card: #151a1e;
  --shadow: 0 8px 24px rgba(0,0,0,0.35);
  --shadow-strong: 0 10px 30px rgba(0,0,0,0.45);
  --border: rgba(255,255,255,0.08);
  --brand: #53b79a;
  --brand-strong: #3d8d75;
  --header-bg: rgba(15,18,20,0.9);
}

/* ===================== */
/* Базовые стили */
/* ===================== */
*{box-sizing:border-box}
body, html {
  margin: 0;
  padding: 0;
  font-family: "Arial", sans-serif;
  color: var(--text);
  background: var(--bg);
  scroll-behavior: smooth;
}
h1, h2, h3 { margin: 0; font-weight: 700; }
p { margin: 0 0 10px; color: var(--text); }
a { color: inherit; }

/* ===================== */
/* Шапка */
/* ===================== */
header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  background: var(--header-bg);
  z-index: 1000;
  box-shadow: 0 2px 10px var(--border);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  height:88px;
  position: relative;
}

/* Логотип — без искажений */
.logo { display: flex; align-items: center; max-width: 220px; }
.logo-img {
  display: block;
  height: auto;
  max-height: 72px;
  width: auto;
}
.logo-light { display: block; }
.logo-dark  { display: none; }
html[data-theme="dark"] .logo-light { display: none; }
html[data-theme="dark"] .logo-dark  { display: block; }

nav ul{
  list-style:none;
  display:flex;
  gap:18px;
  margin:0;
  padding:0;
  align-items:center;
}
nav a{
  text-decoration:none;
  color: var(--text);
  font-weight:600;
  padding: 6px 8px;
  border-radius:8px;
  transition: background .2s ease;
}
nav a:hover{ background: var(--border); }

.btn-booking{
  background: var(--brand);
  color:#fff;
  padding:10px 18px;
  border-radius:8px;
  text-decoration:none;
  border: 1px solid transparent;
  transition: transform .12s ease, background .2s ease, border-color .2s ease;
}
.btn-booking:hover{
  background: var(--brand-strong);
  transform: translateY(-1px);
}
.header-spacer{height:88px;}

/* переключатель темы */
.theme-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;height:40px;
  margin-right:8px;
  border-radius:10px;
  background: transparent;
  border: 1px solid transparent;
  color: var(--text);
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .1s ease;
  position: relative;
}
.theme-toggle:hover{ background: var(--border); }
.theme-toggle:active{ transform: scale(0.96); }
.theme-toggle i{ position:absolute; font-size:18px; opacity:0; transition:opacity .15s ease, transform .2s ease; }
.theme-toggle i.fa-moon{ opacity:1; }
.theme-toggle.is-dark i.fa-moon{ opacity:0; transform: scale(0.7); }
.theme-toggle.is-dark i.fa-sun{ opacity:1; }
.theme-toggle .theme-badge{
  position:absolute; bottom:-8px; right:-6px; font: 600 10px/1 Arial, sans-serif;
  background: var(--brand); color:#fff; border-radius:6px; padding:2px 5px; opacity:.9;
}

/* бургер-кнопка */
.menu-toggle{
  display:none;
  cursor:pointer;
  background:transparent;
  border:none;
  padding:6px;
  width:44px;
  height:44px;
  border-radius:10px;
}
.menu-toggle:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }
.menu-toggle .line{
  display:block;
  width:26px;
  height:3px;
  background: var(--text);
  margin:5px auto;
  border-radius:2px;
  transition:transform .25s ease, opacity .2s ease, background-color .2s ease;
  transform-origin: center;
}
.menu-toggle.active .line:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.menu-toggle.active .line:nth-child(2){ opacity:0; transform: scaleX(0); }
.menu-toggle.active .line:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

/* когда меню открыто — блокируем скролл страницы */
body.menu-open{overflow:hidden;}

/* ===================== */
/* Hero Section */
/* ===================== */
.hero-video-background{position:relative;width:100%;height:100vh;overflow:hidden;}
.hero-video-background video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero-content{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  text-align:center;color:#fff;z-index:2;
  text-shadow:0 6px 20px rgba(0,0,0,0.45);
}
.hero-content h1{font-size:2.6rem;margin-bottom:8px;}
.hero-content p{font-size:1.05rem;margin-bottom:18px; color:#fff;}
.btn-hero{
  background: var(--brand); color:#fff; padding:12px 22px;
  border-radius:10px; text-decoration:none; display:inline-block;
  transition: background .2s ease, transform .12s ease;
}
.btn-hero:hover{ background: var(--brand-strong); transform: translateY(-1px); }
.hero-video-background .swiper-pagination,
.hero-video-background .swiper-button-next,
.hero-video-background .swiper-button-prev { display: none !important; }

/* ===================== */
/* Услуги */
/* ===================== */
.services{padding:80px 20px;background:var(--bg-soft);text-align:center;}
.services h2{font-size:2rem;margin-bottom:28px;color:var(--text);}

/* MOBILE-FIRST: по умолчанию сетка 2×N, без скролла */
.services .service-cards{
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  max-width: 100%;
  margin: 0 auto;
  overflow: visible !important;   /* исключаем горизонтальный скролл */
  padding-bottom: 0 !important;
}
.services .service-card{
  width: 100%;
  flex: initial !important;       /* отмена наследованных flex-ограничений */
  background:var(--card);
  border-radius:12px;
  overflow:hidden;
  box-shadow: var(--shadow);
  transition:transform .25s, box-shadow .25s ease, background .2s ease;
  border: 1px solid var(--border);
}
.service-card a{display:block;position:relative;}
.service-card img{width:100%;height:180px;object-fit:cover;display:block;transition:transform .22s,opacity .22s;}
.service-card a::after{
  content:"\1F441";font-size:26px;color:#fff;position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%) scale(.85);opacity:0;transition:all .22s;pointer-events:none;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
}
.service-card a:hover img{transform:scale(1.04);opacity:.9;}
.service-card a:hover::after{opacity:1;transform:translate(-50%,-50%) scale(1);}
.service-info{padding:16px;text-align:left;}
.service-info h3{font-size:1.05rem;margin-bottom:6px;color:var(--text);}
.service-info p{color:var(--text-weak);}

/* ДЕСКТОП ≥769px: один ряд с возможностью горизонтального скролла, как было */
@media (min-width: 769px){
  .services .service-cards{
    display:flex !important;
    gap:18px;
    justify-content:center;
    align-items:stretch;
    flex-wrap:nowrap;
    overflow-x:auto !important;
    overflow-y:visible;
    padding-bottom:6px !important;
    scrollbar-width: thin;
  }
  .services .service-card{
    flex: 0 0 280px !important;   /* фикс-ширина карточки */
  }
}

/* ===================== */
/* Наши домики (Swiper) */
/* ===================== */
.houses{padding:80px 20px;background:var(--bg);text-align:center;}
.houses h2{font-size:2rem;margin-bottom:14px;color:var(--text);}
.houses-description{max-width:820px;margin:0 auto 26px;color:var(--text-weak);font-size:1.02rem;}
.houses-swiper{width:100%;max-width:1100px;margin:0 auto;position:relative;}
.houses-swiper .swiper-slide{display:flex;justify-content:center;align-items:center;}
.houses-swiper .swiper-slide img{
  width:100%;max-width:100%;height:500px;object-fit:cover;border-radius:12px;
  box-shadow: var(--shadow-strong); transition:transform .25s;
}
.houses-swiper .swiper-slide img:hover{transform:scale(1.02);}
.houses-pagination{margin-top:14px;}

/* ===================== */
/* Отзывы */
/* ===================== */
.reviews{padding:80px 20px;background:var(--bg-soft);text-align:center;}
.reviews h2{font-size:2rem;margin-bottom:18px;color:var(--text);}
.reviews-widget iframe{
  width:100%;max-width:900px;border-radius:12px;margin:0 auto;display:block;border:0;
  background: var(--card); box-shadow: var(--shadow);
}

/* ===================== */
/* Правила */
/* ===================== */
.rules{padding:80px 20px;background:var(--bg);text-align:center;}
.rules h2{font-size:2rem;margin-bottom:18px;color:var(--text);}
.rules-offer{margin-bottom:20px;}
.btn-offer{
  display:inline-block;padding:12px 22px;background:var(--brand);color:#fff;border-radius:8px;text-decoration:none;
  transition: background .2s ease, transform .12s ease;
}
.btn-offer:hover{background:var(--brand-strong); transform: translateY(-1px);}
.rules-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:980px;margin:0 auto;text-align:left;
}
.rule-item{
  background:var(--bg-soft); padding:14px; border-radius:10px; display:flex; gap:12px; align-items:flex-start;
  box-shadow: var(--shadow); border: 1px solid var(--border);
}
.rule-number{
  background:var(--brand); color:#fff; font-weight:700; padding:8px 12px; border-radius:50%; flex-shrink:0; font-size:1rem;
}

/* ===================== */
/* FAQ */
/* ===================== */
.faq{padding:60px 20px;background:var(--bg);max-width:900px;margin:0 auto;}
.faq h2{font-size:2rem;margin-bottom:16px;color:var(--text);text-align:center;}
.faq-list details{
  background:var(--bg-soft);
  border:1px solid var(--border);
  border-radius:10px;
  padding:12px 14px;
  margin:10px 0;
}
.faq-list summary{cursor:pointer;font-weight:700;color:var(--text);}
.faq-list p{margin:8px 0 0;color:var(--text-weak);}

/* ===================== */
/* Контакты */
/* ===================== */
.contacts{padding:80px 20px;background:var(--bg-soft);text-align:center;}
.contacts h2{font-size:2rem;margin-bottom:26px;color:var(--text);}
.contacts-wrapper{display:flex;gap:28px;max-width:1100px;margin:0 auto;align-items:flex-start;flex-wrap:wrap;}
.contacts-info{flex:1 1 300px;text-align:left;}
.contacts-info p{font-size:1.1rem;margin:12px 0;color:var(--text);}
.contacts-info i{margin-right:8px;color: var(--brand);}
.contacts-info a{color:var(--text);text-decoration:none;}
.contacts-info a:hover{color: var(--brand);}
.contacts-map{flex:2 1 420px;min-height:200px;}

/* ===================== */
/* Sticky CTA */
/* ===================== */
.sticky-cta{
  display:none; /* скрыта по умолчанию (десктоп) */
  position:fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 1200;
  text-align:center;
  padding:14px 16px;
  border-radius:12px;
  background: var(--brand);
  color:#fff;
  text-decoration:none;
  box-shadow: var(--shadow-strong);
  font-weight:700;
  transition: transform .12s ease, background .2s ease, box-shadow .2s ease;
}
.sticky-cta:active{ transform: scale(0.98); }
.sticky-cta:hover{ background: var(--brand-strong); }

/* ===================== */
/* Адаптив */
/* ===================== */
@media (max-width:900px){
  .hero-content h1{font-size:1.9rem;}
  .hero-content p{font-size:1rem;}
  .houses-swiper .swiper-slide img{height:320px;}
  .rules-grid{grid-template-columns:1fr;}
}

/* мобильные правки */
@media (max-width: 768px) {
  .theme-toggle{ margin-right: 44px; } /* место для бургера справа */
  .menu-toggle{
    display:block;
    position:absolute;
    right:20px;
    top:22px;
    z-index:1001;
  }
  .btn-booking{display:none;}

  nav{width:100%;}
  nav ul{
    flex-direction:column;
    gap:12px;
    background:var(--card);
    position:absolute;
    top:88px;
    left:0;
    width:100%;
    padding:0;
    margin:0;
    box-shadow: var(--shadow);
    border-top: 1px solid var(--border);
    z-index:999;

    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-8px);
    pointer-events:none;

    transition:
      max-height .35s ease,
      opacity .25s ease,
      transform .25s ease,
      padding .25s ease;
  }
  nav ul.show{
    max-height:480px;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
    padding:15px 0;
  }
  nav ul li { padding: 2px 0; }
  nav ul a { display:block; padding:10px 20px; }

  /* лого компактнее */
  .logo-img { max-height: 56px; }

  /* показываем плавающую кнопку на мобилке */
  .sticky-cta{ display:block; }
  body{ padding-bottom:84px; } /* чтобы плавающая кнопка не перекрывала контент */
}

/* ===================== */
/* Lightbox мобильные стрелки */
/* ===================== */
@media (max-width: 768px){
  #lightbox .lb-nav a.lb-prev,
  #lightbox .lb-nav a.lb-next{
    opacity: 1 !important;
    z-index: 10000 !important;
  }
}
