/* ====== Базовые переменные ====== */
:root {
  --orange: #ff8500;
  --orange-light: #ffe5bc;
  --orange-bg: #fff6ed;
  --orange-gradient: linear-gradient(90deg, #ff8500 0%, #ffc56d 100%);
  --grey: #222;
  --grey-light: #6b6b6b;
  --border-radius: 16px;
  --transition: 0.22s cubic-bezier(.38,1.4,.6,1);
  --container: 1220px;
}

html {
  scroll-behavior: smooth;
}
html, body {
  overflow-x: hidden;
  margin: 0;
  padding: 0;
  width: 100vw;
}
body {
  font-family: 'Inter', 'Montserrat', Arial, sans-serif;
  background: #fff;
  color: var(--grey);
  line-height: 1.65;
  font-size: 18px;
  margin: 0;
  padding: 0;
}

h1, h2, h3 {
  font-family: 'Montserrat', 'Inter', Arial, sans-serif;
  font-weight: 700;
  color: var(--orange);
  margin-top: 0;
}

h2 {
  font-size: 2.2em;
  margin-bottom: 0.8em;
}

/* ====== Контейнер ====== */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}

/* ====== Header & Навигация ====== */
/* --- HEADER & NAV --- */
.site-header {
  background: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,.04);
  padding: 0;
  z-index: 10;
  position: relative;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 84px;
  padding: 0 36px 0 24px;
  position: relative;
}

.logo {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  height: 84px;
}
.logo-svg img {
  height: 64px;
  width: auto;
  display: block;
}
@media (max-width: 700px) {
  .logo-svg img { height: 48px; }
  .nav { padding-left: 7px; padding-right: 7px; }
  .footer-logo-center {margin-top: 0px !important;}
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-links li a {
  color: #232323;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.13rem;
  transition: color .18s;
  font-family: 'Inter', sans-serif;
  padding: 3px 0;
}

.nav-links li a:hover,
.nav-links li a:focus {
  color: #ff8500;
}

.main-cta {
  background: linear-gradient(90deg, #ff8500 60%, #ffae2b 100%);
  color: #fff !important;
  padding: 13px 32px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 1.13rem;
  margin-left: 36px;
  text-decoration: none;
  transition: box-shadow .18s, transform .16s;
  box-shadow: 0 2px 16px #ffb1431f;
  border: none;
  cursor: pointer;
  display: inline-block;
  font-family: 'Inter', sans-serif;
}
.main-cta:hover, .main-cta:focus {
  box-shadow: 0 4px 30px #ffb1432a;
  transform: translateY(-2px) scale(1.04);
  color: #fff !important;
}

/* --- Hide desktop CTA on mobile, show only one --- */
.desktop-cta { display: inline-block; }
.mobile-cta { display: none; }

@media (max-width: 980px) {
  .nav-links { gap: 18px; }
  .main-cta { padding: 12px 21px; margin-left: 13px; font-size: 1rem; }
}

@media (max-width: 700px) {
  .logo-svg img { height: 38px; }
  .main-cta { font-size: 1rem; padding: 10px 16px; margin-left: 0; }
  .desktop-cta { display: none; }
  .mobile-cta { display: block; }
  .nav {
    padding-left: 4px;
    padding-right: 4px;
  }
}

/* --- Hamburger --- */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
  margin-left: 10px;
  z-index: 22;
}

.hamburger {
  width: 32px; height: 4px;
  background: #ff8500;
  border-radius: 2px;
  position: relative;
  display: block;
  transition: background 0.2s;
}
.hamburger:before,
.hamburger:after {
  content: "";
  display: block;
  width: 32px; height: 4px;
  background: #ff8500;
  border-radius: 2px;
  position: absolute;
  left: 0;
  transition: 0.19s;
}
.hamburger:before { top: -10px; }
.hamburger:after { bottom: -10px; }

@media (max-width: 900px) {
  .nav-links {
    position: absolute;
    top: 84px;
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 22px;
    background: #fff;
    box-shadow: 0 8px 40px #ffc56d22;
    padding: 28px 0 19px 0;
    z-index: 99;
    align-items: flex-start;
    width: 100%;
    display: none;
  }
  .nav-links.active {
    display: flex;
  }
  .nav-toggle {
    display: block;
  }
}

/* Убрать лишние отступы у body */
body.no-scroll { overflow: hidden; }



/* ========== HERO ========== */.hero {
  position: relative;
  background: radial-gradient(ellipse at 20% 38%, #fff7ef 70%, #feecd6 100%);
  padding: 80px 0 0 0;
  overflow: hidden;
  min-height: 740px;
  z-index: 1;
}

.hero-bg-img {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 50vw;
  min-width: 540px;
  background: url('../bg_hero.webp') right bottom no-repeat;
  background-size: cover;
  filter: brightness(1.03) saturate(1.15);
  opacity: 0.91;
  z-index: 1;
  border-radius: 0 0 0 62px;
  box-shadow: -14px 22px 70px #ffb1432a;
  pointer-events: none;
}

.hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
}

.hero-content {
  flex: 1 1 580px;
  max-width: 660px;
  padding: 28px 0 40px 0;
  margin-left: 20px;
}

.hero h1 {
  font-family: 'Montserrat', sans-serif;
  color: #ff8500;
  font-size: 3.1rem;
  font-weight: 800;
  line-height: 1.08;
  margin-bottom: 0.48em;
  letter-spacing: -1.5px;
}

.hero p {
  font-size: 1.35em;
  color: #222;
  margin-bottom: 30px;
}

.hero-cta-block {
  display: flex;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.hero-cta-block .main-cta {
  font-size: 1.1em;
}
.hero-cta-block a {
  background: #fff;
  padding: 0.7em 1.2em;
  border-radius: 10px;
  color: #ff8500;
  font-weight: 700;
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  border: 1px solid #ffe5bc;
  transition: background 0.19s, color 0.18s;
  margin-right: 2px;
  box-shadow: 0 1px 8px #ffe0bb42;
}
.hero-cta-block a:hover { background: #fff6ed; color: #c28114; }

.hero-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin: 0;
  margin-top: 6px;
  padding: 0;
  list-style: none;
}
.hero-benefits li {
  background: #fff;
  border-radius: 8px;
  font-size: 1.14em;
  padding: 8px 18px;
  color: #222;
  box-shadow: 0 1px 6px #ffb14319;
}

.b-orange {
  color: #ff8500;
  font-weight: 700;
}

/* SVG separator */
.hero-wave {
  width: 100%;
  line-height: 0;
  position: absolute;
  bottom: -3px; left: 0;
  z-index: 3;
}

/* Для планшетов */
@media (max-width: 1100px) {
  .hero-bg-img { min-width: 320px; width: 52vw;}
  .hero-inner { flex-direction: column; }
  .hero-content { margin-left: 0; max-width: 98vw;}
  .hero { min-height: 420px; }
}

/* Для мобильных */
@media (max-width: 700px) {
  .hero {
    padding: 18px 0 0 0;
    min-height: 0;
    background: #fff7ef;
  }
  .hero-bg-img {
    position: relative;
    width: 98vw; min-width: 0; height: 220px;
    left: 0; right: 0; top: auto; bottom: 0;
    margin: 16px auto 0 auto;
    border-radius: 18px;
    background-position: center 60%;
    box-shadow: 0 6px 22px #ffb14330;
    opacity: 1;
  }
  .hero-content { padding: 0 0 10px 0;}
  .hero h1 { font-size: 1.45em; }
  .hero-benefits { gap: 8px; }
  .hero-benefits li { font-size: 1em; padding: 6px 11px;}
  .hero-wave { height: 34px;}
}

/* Container, чтобы отступы не убирались */
.container { width: 92%; max-width: 1200px; margin: 0 auto; padding: 0 10px; }
.hero-content {
  position: relative;
  z-index: 2;
  flex: 1 1 580px;
  max-width: 660px;
  padding: 38px 28px 38px 28px;
  margin-left: 0;
  background: rgba(255,255,255,0.85); /* белая подложка! */
  border-radius: 20px;
  box-shadow: 0 4px 42px #ffd1a229;
  backdrop-filter: blur(3px);
}

@media (max-width: 900px) {
  .hero-content {
    padding: 18px 7px 18px 7px;
    border-radius: 12px;
  }
}




.call-link, .wa-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #ff8500;
  background: #fff6ed;
  border-radius: 8px;
  font-weight: 600;
  font-size: 1em;
  text-decoration: none;
  padding: 7px 16px;
  box-shadow: 0 2px 16px #ffe5bc22;
  transition: background .14s, color .14s;
}
.wa-link {
  color: #43C054;
}
.call-link:hover, .wa-link:hover {
  background: #ffe5bc;
}

.hero-benefits {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 19px;
  margin: 30px 0 0 0;
  padding: 0;
}
.hero-benefits li {
  font-size: 1.07em;
  background: #fff;
  border-radius: 9px;
  box-shadow: 0 2px 10px #ffdca233;
  padding: 9px 16px;
  color: #603600;
  font-weight: 500;
}

.hero-img-block {
  min-width: 280px;
  max-width: 470px;
  flex: 1 0 300px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.hero-img {
  max-width: 420px;
  width: 100%;
  border-radius: 19px;
  box-shadow: 0 6px 42px #ffdca244;
  display: block;
}

@media (max-width: 1100px) {
  .hero {
    flex-direction: column;
    gap: 32px;
    padding: 34px 0 26px 0;
    min-height: unset;
    text-align: center;
  }
  .hero-content {
    max-width: 99vw;
  }
  .hero-img-block {
    justify-content: center;
    width: 100%;
    min-width: unset;
  }
}

@media (max-width: 640px) {
  .hero h1 { font-size: 2.1em; }
  .hero-benefits { gap: 10px;}
  .hero-img { max-width: 98vw;}
  .hero {
    padding: 25px 0 18px 0;
  }
}

/* ====== ABOUT секция ====== */
.about {
  background: #fff;
  padding: 48px 0 32px 0;
}
.about-content h2 {
  color: var(--orange);
  font-size: 2em;
}
.about-grid {
  display: flex;
  gap: 44px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.about-text {
  flex: 1 1 340px;
  font-size: 1.11em;
}
.about-list {
  margin: 1em 0 0 1em;
  padding: 0;
  list-style: disc inside;
  color: #33230a;
  font-size: 1.04em;
}
.about-fact {
  display: flex;
  flex-direction: column;
  gap: 15px;
  min-width: 180px;
}
.fact-box {
  background: #ffe5bc;
  color: #9d6b15;
  font-weight: 700;
  border-radius: 12px;
  padding: 13px 18px;
  font-size: 1.14em;
  box-shadow: 0 1px 8px #ffefce55;
}
.fact-box span {
  font-size: 1.6em;
  color: var(--orange);
  margin-right: 7px;
}

@media (max-width: 900px) {
  .footer-logo-center {margin-top: 0px !important;}
  .about-grid {
    flex-direction: column;
    gap: 18px;
  }
}

/* ====== WHY SECTION ====== */
.why-section {
  background: #fff6ed;
  padding: 48px 0 32px 0;
}

.why-section h2 {
  color: var(--orange);
  font-size: 2em;
}
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* три колонки */
  gap: 32px 22px;
  margin-top: 36px;
}
.why-card {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 2px 16px #ffb14317;
  padding: 26px 26px 20px 26px;
  font-size: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 190px;
  transition: box-shadow .18s, transform .14s;
}


.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 22px;
}

/* Для расширенной карточки */
.why-card-wide {
  grid-column: span 2;
}

/* Адаптивность */
@media (max-width: 1100px) {
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .why-card-wide { grid-column: span 2; }
}
@media (max-width: 700px) {
  .why-grid { grid-template-columns: 1fr; }
  .why-card-wide { grid-column: span 1; }
}


.why-card:hover {
  box-shadow: 0 8px 36px #ffb14322;
  transform: translateY(-2px) scale(1.03);
}
.why-icon {
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  font-size: 2rem;
}
.why-title {
  color: #ff8500;
  font-weight: 800;
  font-size: 1.17em;
  margin-bottom: 3px;
  font-family: 'Montserrat', sans-serif;
}
.why-desc {
  color: #222;
  font-size: 1em;
}

@media (max-width: 1100px) {
  .why-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .why-grid { grid-template-columns: 1fr; }
  .why-card { min-height: unset; }
}

.why-desc {
  color: #483818;
  font-size: 1em;
}
.why-extra {
  display: flex;
  gap: 23px;
  flex-wrap: wrap;
  margin-top:30px;
}
.why-offer {
  background: #fff1dc;
  border-radius: 11px;
  color: #c28114;
  font-weight: 700;
  font-size: 1em;
  padding: 13px 22px;
  box-shadow: 0 1px 10px #ffdca211;
}

@media (max-width: 900px) {
  .why-grid, .why-extra {
    flex-direction: column;
    gap: 14px;
  }
  .why-card, .why-offer {
    max-width: 100%;
  }
}

/* ====== SERVICES ====== */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 22px;
  margin-bottom: 24px;
}

/* Обычные карточки */
.service-card {
  background: #fff6ed;
  border-radius: 16px;
  padding: 28px 24px 20px 24px;
  box-shadow: 0 3px 15px rgba(255,133,0,0.08);
  font-size: 1.14em;
}

/* "Широкая" карточка для фото и цены */
.service-photo-wide {
  grid-column: span 3;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 38px;
  background: #fff6ed;
  border-radius: 18px;
  padding: 20px 28px;
  margin-top: 8px;
  box-shadow: 0 4px 18px rgba(255,133,0,0.08);
}
.service-photo-wide img {
  border-radius: 14px;
  width: 270px;
  height: auto;
  object-fit: cover;
  box-shadow: 0 4px 22px #ffb14319;
}
.service-price {
  font-size: 1.35em;
  color: #ff8500;
  font-weight: 700;
  margin-left: 18px;
  background: #fff3e6;
  border-radius: 8px;
  padding: 8px 24px;
  box-shadow: 0 1px 8px #ffe0bb42;
}

/* Адаптивность */
@media (max-width: 1100px) {
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service-photo-wide { grid-column: span 2; flex-direction: column; gap: 18px; }
}
@media (max-width: 700px) {
  .services-grid { grid-template-columns: 1fr; }
  .service-photo-wide { grid-column: span 1; flex-direction: column; padding: 12px 6px;}
  .service-photo-wide img { width: 95vw; max-width: 350px;}
}

.services {
  background: #fff;
  padding: 45px 0 35px 0;
}

.services h2 {
  color: var(--orange);
  font-size: 2em;
}

.service-card {
  background: #fff6ed;
  border-radius: 15px;
  box-shadow: 0 2px 12px #ffe5bc45;
  padding: 19px 19px 19px 19px;
  display: flex;
  gap: 15px;
  align-items: flex-start;
  transition: transform .18s;
}

.service-card:hover {
  transform: translateY(-4px) scale(1.03);
}

.service-icon {
  min-width: 40px;
  margin-top: 3px;
}

.service-title {
  color: var(--orange);
  font-weight: 800;
  font-size: 1.08em;
  margin-bottom: 0.1em;
}

.service-desc {
  color: #483818;
  font-size: 1em;
  opacity: 0.9;
}

.services-photo {
  margin-top: 21px;
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.services-photo img {
  max-width: 340px;
  width: 100%;
  border-radius: 17px;
  box-shadow: 0 2px 24px #98d7ff22;
}

.service-price {
  background: #fff6ed;
  color: #9d6b15;
  font-weight: 700;
  font-size: 1.13em;
  padding: 13px 22px;
  border-radius: 12px;
  box-shadow: 0 1px 10px #ffdca218;
  margin-left: 10px;
}

@media (max-width: 900px) {
  .services-photo {
    flex-direction: column;
    gap: 11px;
    align-items: flex-start;
  }
  .services-photo img {
    max-width: 97vw;
  }
}

/* ====== Инфографика (цифры) ====== */
.info-stats {
  background: #fff6ed;
  padding: 46px 0 30px 0;
}

.info-stats h2 {
  color: var(--orange);
  font-size: 2em;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 28px;
  margin-top: 10px;
}
.stat-card {
  background: #fff;
  border-radius: 15px;
  box-shadow: 0 2px 13px #ffdca222;
  padding: 22px 18px 19px 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transition: transform .17s;
}
.stat-card:hover {
  transform: scale(1.04);
}
.stat-number {
  color: var(--orange);
  font-size: 2.2em;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  margin-bottom: 0.09em;
}
.stat-label {
  color: #654A26;
  font-size: 1.06em;
}

/* ====== ROADMAP ====== */
.roadmap {
  background: #fff;
  padding: 45px 0 25px 0;
}
.roadmap h2 {
  color: var(--orange);
  font-size: 2em;
}
.roadmap-steps {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.roadmap-step {
  background: #fff6ed;
  border-radius: 14px;
  padding: 19px 23px;
  flex: 1 1 200px;
  box-shadow: 0 2px 12px #ffe5bc45;
  min-width: 170px;
  position: relative;
  z-index: 1;
  text-align: center;
}
.step-number {
  display: inline-block;
  background: var(--orange-gradient);
  color: #fff;
  font-weight: 700;
  font-size: 1.22em;
  width: 2.1em; height: 2.1em;
  line-height: 2.1em;
  border-radius: 50%;
  margin-bottom: 0.3em;
  margin-right: 0.15em;
  box-shadow: 0 2px 9px #ffdca222;
}
.step-title {
  font-weight: 700;
  color: var(--orange);
  font-size: 1.13em;
  margin-bottom: 0.08em;
}
.step-desc {
  color: #664a19;
  font-size: 1.04em;
  opacity: 0.9;
}
.roadmap-arrow {
  display: inline-block;
  width: 48px;
  height: 22px;
  margin: 0 8px;
  align-self: center;
  background: url("data:image/svg+xml,%3Csvg width='48' height='22' viewBox='0 0 48 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 11h44m0 0l-6-6m6 6l-6 6' stroke='%23ff8500' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  background-size: contain;
}

@media (max-width: 950px) {
  .roadmap-steps {
    flex-direction: column;
    gap: 13px;
  }
  .roadmap-arrow {
    display: none;
  }
}

/* ====== REVIEWS ====== */
.reviews {
  background: #fff;
  padding: 42px 0 29px 0;
}
.reviews h2 {
  color: var(--orange);
  font-size: 2em;
}
.reviews-slider {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  padding-bottom: 9px;
  scroll-snap-type: x mandatory;
}
.review-card {
  min-width: 290px;
  max-width: 360px;
  background: #fff6ed;
  border-radius: 16px;
  box-shadow: 0 2px 14px #ffe5bc33;
  padding: 19px 17px 17px 17px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
  scroll-snap-align: start;
}
.review-stars {
  color: #ffae2c;
  font-size: 1.36em;
  font-weight: 700;
  letter-spacing: 2px;
}
.review-text {
  color: #533c15;
  font-size: 1.07em;
  font-style: italic;
}
.review-author {
  color: #0071e3;
  font-size: 1em;
  font-weight: 600;
  margin-top: 0.25em;
}

/* Скрыть scrollbar для слайдера на десктопе */
.reviews-slider::-webkit-scrollbar { height: 7px; }
.reviews-slider::-webkit-scrollbar-thumb { background: #ffae2c; border-radius: 7px;}
.reviews-slider::-webkit-scrollbar-track { background: #fff3e6; }

@media (max-width: 600px) {
  .review-card {
    min-width: 85vw;
    max-width: 85vw;
    padding: 13px 9px 11px 9px;
  }
}

/* ====== FAQ ====== */
.faq {
  background: #fff6ed;
  padding: 43px 0 30px 0;
}
.faq h2 {
  color: var(--orange);
  font-size: 2em;
}
.faq-list {
  margin: 2.4em 0;
  padding: 0;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.faq-list details {
  margin-bottom: 1.1em;
  background: #fff;
  border-radius: 15px;
  box-shadow: 0 2px 14px #ffad3412;
  overflow: hidden;
  transition: box-shadow 0.18s;
  border: 1.5px solid #ffead0;
  position: relative;
}
.faq-list details[open] {
  box-shadow: 0 8px 38px #ffd08d33, 0 2px 8px #ffd08d19;
  border-color: #ffc56d;
}
.faq-list summary {
  cursor: pointer;
  font-size: 1.23em;
  color: #ff8500;
  font-weight: 800;
  padding: 1.1em 1.7em 1.1em 3.3em;
  background: linear-gradient(90deg, #fff8ee 85%, #ffe4bb 100%);
  position: relative;
  outline: none;
  border: none;
  user-select: none;
  transition: background 0.15s, color 0.15s;
  list-style: none;
}
.faq-list summary:hover,
.faq-list details[open] summary {
  color: #0071e3;
  background: linear-gradient(90deg, #ffe6c7 75%, #ffe4bb 100%);
}
.faq-list summary::-webkit-details-marker, 
.faq-list summary::marker, 
.faq-list details > summary::marker { display: none; content: ""; }
.faq-list summary::before {
  content: '';
  position: absolute;
  left: 1.2em; top: 1.12em;
  width: 1.3em; height: 1.3em;
  background: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><polyline points="5,8 10,13 15,8" stroke="%23ff8500" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center;
  background-size: 1.3em;
  transition: transform 0.26s, background 0.18s;
}
.faq-list details[open] summary::before {
  transform: rotate(180deg);
  background: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><polyline points="5,12 10,7 15,12" stroke="%230071e3" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center;
}
.faq-list details > div {
  padding: 0 2em 1.5em 3.3em;
  color: #565252;
  font-size: 1.12em;
  line-height: 1.6;
  background: transparent;
  animation: fadeInFaq 0.44s;
}
@keyframes fadeInFaq {
  from { opacity: 0; transform: translateY(15px);}
  to { opacity: 1; transform: translateY(0);}
}
@media (max-width: 600px) {
  .faq-list summary {
    font-size: 1.08em;
    padding-left: 2.4em;
  }
  .faq-list details > div {
    padding-left: 2.4em;
    font-size: 1em;
  }
}

/* ====== Контакты и карта ====== */
.contacts {
  background: #fff;
  padding: 45px 0 35px 0;
}
.contacts h2 {
  color: var(--orange);
  font-size: 2em;
}
.contacts-map-wrap {
  position: relative;
  margin-top: 2.2em;
  min-height: 440px;
}
.contacts-map {
  position: relative;
  width: 100%;
  min-height: 420px;
}
.contacts-info-float {
  position: absolute;
  top: 36px;
  left: 38px;
  max-width: 390px;
  width: 92vw;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  box-shadow: 0 8px 36px #b1cdf833, 0 2px 8px #99cbfa1c;
  border-radius: 19px;
  padding: 2.2em 2em 1.7em 2em;
  z-index: 2;
  font-size: 1.07em;
  color: #222;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1em;
}
.ul-contact {
  list-style: none;
  padding: 0;
  margin: 0 0 0.7em 0;
}
.ul-contact li {
  margin-bottom: 1em;
  line-height: 1.46;
}
.ul-contact a {
  color: #0071e3;
  text-decoration: underline;
  transition: color 0.18s;
  word-break: break-all;
}
.ul-contact a:hover {
  color: #ff8500;
  text-decoration: none;
}
.socials {
  margin: 0.3em 0 0.8em 0;
  display: flex;
  align-items: center;
  gap: 1.2em;
}
.socials span {
  color: #c28114;
  font-weight: 600;
  margin-right: 0.8em;
  font-size: 1em;
}
.socials img {
  filter: drop-shadow(0 2px 6px #ffb14324);
  height: 29px;
  width: 29px;
  border-radius: 7px;
}
.contacts-info-float .main-cta {
    width: 100%;
    margin: 18px 0 0 0; /* сверху отступ, по бокам и снизу 0 */
    box-sizing: border-box;
    display: block;
    text-align: center;
}
@media (max-width: 900px) {
  .contacts-info-float {
    position: static;
    margin: 0 auto 1.5em auto;
    max-width: 99vw;
    padding: 1.3em 0.7em 1.1em 1em;
    box-shadow: 0 4px 22px #b1cdf855;
  }
  .contacts-map-wrap {
    min-height: unset;
    margin-top: 1.3em;
  }
  .contacts-map {
    min-height: 250px;
  }
}
@media (max-width: 600px) {
  .contacts-map-wrap, .contacts-map {
    min-height: unset;
    margin-top: 0.7em;
  }
  .contacts-info-float {
    border-radius: 13px;
    margin: 0 0 8px 0;
    padding: 1em 10px 1.3em 10px;
    width: 99vw;
    left: 0;
    top: 0;
    max-width: 100vw;
  }
}

@media (max-width: 600px) {
  .contacts-map-wrap, .contacts-map {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-top: 0.7em;
    box-sizing: border-box;
  }
  #map {
    width: 100% !important;
    max-width: 100vw;
    min-width: 0;
    box-sizing: border-box;
    border-radius: 13px;
  }
  .contacts-info-float {
    width: 100%;
    max-width: 100vw;
    box-sizing: border-box;
    left: 0;
    right: 0;
    margin-left: 0;
    margin-right: 0;
    padding: 1em 4px 1.3em 4px;
  }
}
@media (max-width: 700px) {
  .reviews-slider,
  .reviews-row,
  .swiper-container {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .swiper-slide {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 auto !important;
    box-sizing: border-box;
  }
}
.modal input[type="text"],
  .modal input[type="tel"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
.main-cta {
  display: flex;
  align-items: center;
  gap: 0.75em;
  justify-content: center;
  font-size: 1.16em;
  background: linear-gradient(90deg, #ff9d2f 0%, #ff8500 100%);
  color: #fff;
  border: none;
  border-radius: 13px;
  box-shadow: 0 2px 16px #ffb14324;
  padding: 0.82em 2em 0.82em 1.5em;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.18s, box-shadow 0.22s;
}

.main-cta:hover, .main-cta:focus {
  background: linear-gradient(90deg, #ffb955 0%, #ff8500 100%);
  box-shadow: 0 4px 24px #ffb14332;
}

.cta-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cta-icon svg {
  display: block;
}

@media (max-width: 600px) {
  .modal {
    width: 100vw;
    max-width: 100vw;
    padding: 20px 10px 18px 10px;
   
    box-sizing: border-box;
  }
  .modal input[type="text"],
  .modal input[type="tel"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}
.modal-overlay {
  position: fixed;
  left: 0; top: 0;
  width: 100vw;
  height: 100vh;
  min-width: 100vw;
  min-height: 100vh;
  background: rgba(0,0,0,0.34); /* твой цвет */
  z-index: 9000;
  border-radius: 0 !important;
  margin: 0;
  padding: 0;
  overflow: auto;
}


/* ====== FOOTER ====== */
.site-footer {
  
  color: #9d6b15;
  padding: 32px 0 16px 0;
  font-size: 1.09em;
  text-align: center;
}
.footer-flex {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
  justify-content: space-between;
}
.footer-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 1.18em;
  font-weight: 700;
  color: var(--orange);
}
.footer-info {
  font-size: .95em;
  color: #b97a19;
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-end;
}
.developer-credit a {
  color: #0071e3;
  text-decoration: none;
  font-weight: 600;
}
.developer-credit a:hover {
  color: var(--orange);
  text-decoration: underline;
}

@media (max-width: 700px) {
  .footer-flex {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }
  .footer-logo {
    margin-bottom: 5px;
  }
  .footer-info {
    align-items: flex-start;
  }
}

/* ====== Модальное окно ====== */

.modal {
  opacity: 0;
  pointer-events: none;
  transition: opacity .38s cubic-bezier(.34,2,.66,1);
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed; left: 0; top: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,.38);
  z-index: 9999;
}

.modal.active {
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

.modal-form {
  opacity: 0;
  transform: translateY(38px) scale(.97);
  transition: opacity .36s cubic-bezier(.34,2,.66,1), transform .38s cubic-bezier(.34,2,.66,1);
  background: #fff;
  padding: 30px 24px;
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(0,0,0,.13);
  min-width: 280px;
  max-width: 98vw;
  width: 380px;
  margin: 0 12px;
  position: relative;
}
.modal.active .modal-form {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: .10s;
}




/*
.modal {
  position: fixed;
  z-index: 1300;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(40, 40, 55, 0.36);
  display: none;
  align-items: center;
  justify-content: center;
}
.modal.active {
  display: flex;
}
.modal-form {
  background: #fff;
  border-radius: 17px;
  padding: 34px 32px 22px 32px;
  max-width: 340px;
  box-shadow: 0 6px 40px #ffad3422;
}*/
.modal-form h3 {
  margin: 0 0 1.1em 0;
  color: var(--orange);
  font-size: 1.3em;
  font-weight: 700;
}
.modal-form label {
  display: block;
  margin-bottom: 13px;
  color: #8a570d;
  font-size: 1em;
}
.modal-form input {
  width: 100%;
  padding: 10px;
  font-size: 1.08em;
  border-radius: 8px;
  border: 1.4px solid #ffe5bc;
  margin-top: 4px;
  margin-bottom: 7px;
  transition: border-color 0.17s;
}
.modal-form input:focus {
  outline: none;
  border-color: #ff8500;
}
.modal-form .main-cta {
  margin-top: 15px;
  padding: 13px 0;
  width: 100%;
  font-size: 1.13em;
}

/* ====== Мелкие правки и детали ====== */
.no-scroll {
  overflow: hidden !important;
}

/* ====== Медиазапросы: общие отступы и шрифты ====== */
@media (max-width: 700px) {
  h2 { font-size: 1.36em; }
  .container { padding: 0 5px; }
}
.desktop-cta { display: block; }
.mobile-cta { display: none; }
@media (max-width: 900px) {
  .desktop-cta { display: none !important; }
  .mobile-cta { display: block; }
}


.site-header .logo {
  margin-left: 24px; /* Можно варьировать: 18-28px */
}

@media (max-width: 700px) {
  .site-header .logo {
    margin-left: 8px;
  }
}

.site-header .main-cta {
  margin-right: 24px;
}

@media (max-width: 700px) {
  .site-header .main-cta {
    margin-right: 8px;
  }
}

.hero-inner {
  min-height: 640px;
  align-items: center;
}
@media (max-width: 900px) {
  .hero-inner { min-height: unset; }
}

.hero-content-block {
  background: rgba(255,255,255,0.96);
  box-shadow: 0 6px 48px #ffe0bb44, 0 1.5px 16px #ff85000c;
  border-radius: 28px;
  padding: 38px 40px 34px 40px;
  max-width: 650px;
  margin-left: 60px;
}

@media (max-width: 900px) {
  .hero-content-block {
    max-width: 98vw;
    margin: 18px auto 0 auto;
    padding: 18px 6vw 16px 6vw;
  }
}

.service-wide-offer {
  display: flex;
  align-items: center;
  background: #fff6ed;
  border-radius: 19px;
  box-shadow: 0 4px 22px #ffb14319;
  padding: 18px 34px;
  margin-bottom: 38px;
  gap: 40px;
  min-height: 230px;
}
.service-wide-offer img {
  width: 320px;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 6px 24px #ffe0bb42;
}
.offer-content {
  flex: 1 1 420px;
  min-width: 280px;
}
.offer-title {
  font-size: 2.0em;
  font-weight: 800;
  color: #ff8500;
  margin-bottom: 10px;
  letter-spacing: -1.3px;
}
.offer-title span {
  font-size: 1.2em;
  font-weight: 800;
  color: #ff8500;
}
.offer-text {
  font-size: 1.16em;
  color: #57381c;
  margin-bottom: 18px;
}
@media (max-width: 1100px) {
  .nav-links {
    gap: 16px;       /* Уменьшаем расстояние между пунктами */
    font-size: 1em;  /* Можно чуть уменьшить размер */
  }
  .site-header .logo {
    max-width: 170px;  /* Лого чуть поменьше */
  }
  .main-cta.desktop-cta {
    padding: 0.68em 1.2em;
    font-size: 1em;
    margin-left: 10px;
  }
  .nav {
    padding: 16px 12px; /* Уменьшаем боковые отступы */
  }
}
@media (max-width: 1100px) {
  .site-header .logo img,
  .logo img {
    max-width: 140px;
    width: 140px;
    height: auto; transition: all .2s;
  }
}
.site-header .logo img, .logo img {
  max-width: 200px;
  width: 170px;
  height: auto;
  transition: all .2s;
}
@media (min-width:1200px) {
  .site-header .logo img, .logo img { max-width: 200px; width:200px; height: auto; transition: all .2s; }
}
.site-header .main-cta.desktop-cta {
  background: linear-gradient(90deg, #FF9100 0%, #ffce73 100%);
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  border: none;
  border-radius: 14px;
  padding: 11px 36px;
  box-shadow: 0 2px 16px #ff910024;
  transition: box-shadow .2s, transform .1s;
  cursor: pointer;
}
.site-header .main-cta.desktop-cta:hover {
  box-shadow: 0 4px 24px #ff910055;
  transform: translateY(-2px) scale(1.04);
  background: linear-gradient(90deg, #FF9100 60%, #f5b429 100%);
}
.nav-links a {
  position: relative;
  font-size: 20px;
  font-weight: 500;
  color: #222;
  text-decoration: none;
  transition: color 0.2s;
  padding: 5px 0;
}

.nav-links a:hover,
.nav-links a.active {
  color: #FF9100;
}

.nav-links a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2.5px;
  background: linear-gradient(90deg, #FF9100 0%, #ffce73 100%);
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(0.5);
  transition: all .22s cubic-bezier(.37,1.19,.49,.98);
}

.nav-links a:hover::after,
.nav-links a.active::after {
  opacity: 1;
  transform: scaleX(1);
}

@media (max-width: 900px) {
  .nav-links {
    display: none;
    position: absolute;
    left: 0; right: 0; top: 100px;
    background: #fff;
    z-index: 110;
    box-shadow: 0 4px 24px #ff910022;
    width: 100%;
    padding-bottom: 20px;
  }
  .nav.nav-open .nav-links {
    display: block;
  }
}
@media (max-width: 1100px) {
  .site-header .logo img,
  .site-header .logo-svg img {
    max-height: 58px;
    height: 58px;
    width: auto;
  }
  .site-header .logo,
  .site-header .logo-svg {
    min-width: 180px;
    max-width: 220px;
  }
  .site-header .nav-links a {
    font-size: 1.1rem;
    padding: 0 12px;
  }
  .main-cta.desktop-cta {
    font-size: 1.07rem;
    padding: 13px 32px;
  }
  .site-header {
    min-height: 78px;
  }
}

@media (max-width: 1024px) {
  .nav-links {
    gap: 10px;
    font-size: 0.97em;
  }
  .site-header .logo {
    max-width: 150px;
  }
  .main-cta.desktop-cta {
    font-size: 0.95em;
    padding: 0.62em 1em;
  }
}


@media (max-width: 900px) {
  .service-wide-offer { flex-direction: column; gap: 16px; padding: 14px 8px;}
  .service-wide-offer img { width: 90vw; max-width: 340px;}
  .offer-title { font-size: 1.45em;}
}


.contacts-map-wrap {
  position: relative;
  width: 100%;
  margin: 0 auto;
  max-width: 940px;
  min-height: 370px;
}
.contacts-map {
  position: relative;
}
#map {
  width: 100%;
  height: 750px;
  border-radius: 17px;
  box-shadow: 0 0 20px #cbeaff44;
  background: #eee;
}

.contacts-info-float {
  position: absolute;
  left: 38px;
  top: 28px;
  min-width: 320px;
  max-width: 350px;
  background: #fff;
  border-radius: 18px;
  padding: 26px 26px 20px 26px;
  box-shadow: 0 2px 24px #ffb14318;
  font-size: 1.17em;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ul-contact {
  list-style: none;
  margin: 0 0 12px 0;
  padding: 0;
}
.ul-contact li { margin-bottom: 8px; }
.ul-contact a { color: #ff8500; text-decoration: none; font-weight: 600;}
.ul-contact a:hover { text-decoration: underline;}

.socials { margin: 10px 0 0 0; display: flex; align-items: center; gap: 7px;}
.socials img { filter: grayscale(0.3) brightness(0.94);}
.socials span { color: #c2a357; font-size: 0.96em; margin-right: 6px;}

@media (max-width: 900px) {
  .contacts-info-float {
    position: static;
    max-width: 100%;
    margin: 0;
    border-radius: 13px;
    padding: 18px 12px 14px 12px;
    font-size: 1em;
  }
  .contacts-map-wrap { min-height: 0;}
}
@media (max-width: 900px) {
  .contacts-info-float {
    position: static;
    max-width: 100%;
    margin: 0 0 18px 0;
    border-radius: 13px;
    padding: 18px 12px 14px 12px;
    font-size: 1em;
    left: 0;
    top: 0;
    /* Добавляем боковые отступы */
    box-sizing: border-box;
  }
  .contacts-map-wrap {
    padding: 0 10px;
    min-height: 0;
  }
  .contacts-map iframe, .contacts-map #map {
    min-height: 220px;
    height: 220px;
  }
}
@media (max-width: 700px) {
  .nav-links {
    padding: 0 16px;
  }
  .nav-links li {
    /* На всякий случай, если что-то сбивает отступы */
    margin-left: 0;
    margin-right: 0;
  }
  .mobile-cta {
    margin-top: 14px;
    margin-bottom: 8px;
  }
}


.modal .main-cta, 
.modal form button[type="submit"] {
    width: 100%;
    max-width: 100%;
    display: block;
    margin: 20px 0 0 0; /* сверху 20px, по бокам и снизу 0 */
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
    border-radius: 14px;
}
@media (max-width: 700px) {
  .nav-links .main-cta {
    display: block;
    margin:5px auto 0 auto;
    width: fit-content;
    padding: 0.7em 1.8em;
  }
}


.site-footer {
  
  /*border-radius: 32px 32px 0 0; /* Сверху обтекаемость */
  box-shadow: 0 -8px 32px #cbeaff36;
  margin-top: 40px;
  padding-top: 26px;
  padding-bottom: 30px;
}
.footer-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}
.footer-logo img {
  height: 60px;
  border-radius: 18px;
  background: #fff0;
}
.footer-info {
  color: #b98d2d;
  font-size: 1.2em;
  line-height: 1.5;
}
.developer-credit a {
  color: #0184ff;
  text-decoration: none;
  font-weight: 600;
}
@media (max-width: 700px) {
  .footer-flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .site-footer {
   /* border-radius: 20px 20px 0 0;*/
    padding: 22px 0 18px 0;
  }
  .footer-logo img { height: 44px; }
}
.footer-wave {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-bottom: -8px;
}
.site-footer {
 
  box-shadow: 0 -8px 32px #cbeaff36;
  /*border-radius: 32px 32px 0 0;*/
  margin-top: 40px;
}


.reviews-slider-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.reviews-slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 30px;
  scroll-behavior: smooth;
  width: 100%;
  padding: 10px 0 30px 0;
}
.review-card {
  flex: 0 0 350px;
  scroll-snap-align: start;
  background: #fff6ed;
  border-radius: 24px;
  box-shadow: 0 4px 24px #ffbe5a22;
  padding: 36px 32px 32px 32px;
  margin: 0;
}
.slider-arrow {
  background: #fff;
  border: none;
  font-size: 36px;
  color: #ff8500;
  cursor: pointer;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  box-shadow: 0 2px 14px #ffbe5a22;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: background .18s;
}
.slider-arrow.left  { position: absolute; left: -28px; top: 38%; }
.slider-arrow.right { position: absolute; right: -28px; top: 38%; }
.slider-arrow:active { background: #ffbe5a44; }
@media (max-width: 1024px) {
  .slider-arrow { display: none; }
}
@media (max-width: 700px) {
  .reviews, .reviews-slider-wrap, .reviews-slider {
    width: 100%;
    max-width: 100vw;
    box-sizing: border-box;
  }
  .reviews-slider-wrap {
    padding: 0 3vw;
  }
  .reviews-slider {
    gap: 9px;
    padding: 0 0 22px 0;
  }
  .review-card {
    flex: 0 0 93vw;
    max-width: 85vw;
    min-width: 85vw;
    box-sizing: border-box;
    padding: 16px 9px 16px 12px;
    font-size: 1em;
    margin: 0;
  }
}



.docs-section {
  margin: 48px 0 0 0;
  background: #fcf6f0;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 2px 18px 0 #d8eafc19;
  padding: 32px 0;
}
.docs-title {
  font-size: 2rem;
  font-weight: 700;
  color: #ff8800;
  margin-bottom: 24px;
  text-align: center;
}
.docs-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 650px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.doc-link {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 1.08rem;
  padding: 16px 18px;
  border-radius: 14px;
  background: #fff;
  color: #1e1e1e;
  text-decoration: none;
  box-shadow: 0 2px 8px 0 #d8eafc0f;
  transition: box-shadow 0.18s, background 0.18s;
  font-weight: 500;
}
.doc-link:hover, .doc-link:focus {
  background: #fff7ee;
  box-shadow: 0 4px 16px 0 #ffc86b44;
  color: #ff8800;
}
.doc-icon {
  font-size: 1.35em;
  flex-shrink: 0;
}

/* Адаптив под телефоны */
@media (max-width: 700px) {
  .docs-section {
    margin: 32px 0 0 0;
    padding: 20px 0;
    border-radius: 16px;
  }
  .docs-title {
    font-size: 1.2rem;
    margin-bottom: 14px;
  }
  .docs-list {
    gap: 10px;
    padding: 0 6px;
    max-width: 100%;
  }
  .doc-link {
    font-size: 1rem;
    padding: 11px 12px;
    border-radius: 9px;
  }
  .doc-icon {
    font-size: 1.13em;
  }
}


.docs-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 36px 48px;
  justify-content: center; /* Центрирует сетку если ряд не полный! */
  max-width: 1150px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.docs-list li {
  /* Стили для карточки документа */
  background: #fff;
  border-radius: 20px;
  padding: 34px 36px;
  box-shadow: 0 2px 12px 0 #d8eafc1a;
  display: flex;
  align-items: center;
  font-size: 1.16rem;
  font-weight: 500;
  transition: box-shadow 0.18s;
  min-width: 240px;
  min-height: 110px;
  justify-content: flex-start;
}

.docs-list li a {
  color: #1b2025;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 18px;
  width: 100%;
}

.doc-icon {
  font-size: 2.2em;
  margin-right: 10px;
  flex-shrink: 0;
}

.docs-list li:hover {
  box-shadow: 0 8px 32px 0 #ffc86b33;
  background: #fff7ee;
}

@media (max-width: 1100px) {
  .docs-list {
    grid-template-columns: repeat(2, minmax(200px, 1fr));
    gap: 26px 18px;
    max-width: 99vw;
  }
}
@media (max-width: 700px) {
  .docs-list {
    grid-template-columns: 1fr;
    gap: 15px 0;
  }
  .docs-list li {
    min-width: 0;
    padding: 18px 12px;
    min-height: 68px;
    font-size: 1rem;
    border-radius: 12px;
  }
  .docs-title {
    font-size: 1.15rem;
  }
}


.site-footer {
 
  position: relative;
  margin-top: 0;
  overflow: hidden;
  box-shadow: 0 -1px 8px #ffd6a633;
  padding: 0;
}
.footer-wave-top, .footer-wave-bottom {
  width: 100vw;
  min-width: 100%;
  line-height: 0;
  position: relative;
}
.footer-wave-top svg,
.footer-wave-bottom svg {
  width: 100vw;
  min-width: 100%;
  display: block;
}
.footer-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 34px 16px 28px 16px;
}
.footer-logo-center {
  margin-bottom: 12px;
}
.footer-logo-svg,
.footer-logo-center img {
  height: 55px;
  width: auto;
  display: block;
  margin: 0 auto;
}
.footer-info {
  text-align: center;
  color: #b58c2b;
  font-size: 1.12em;
  font-weight: 500;
  max-width: 1024px;
}
.developer-credit {
  display: block;
  margin-top: 8px;
  color: #b58c2b;
  font-size: 1em;
}
.developer-credit a {
  color: #0085ff;
  text-decoration: underline;
  font-weight: 600;
  transition: color 0.15s;
}
.developer-credit a:hover {
  color: #ff9500;
}

/* Мобильная адаптация */
@media (max-width: 600px) {
  .footer-main {
    padding: 18px 8px 16px 8px;
    gap: 8px;
  }
  .footer-logo-svg, .footer-logo-center img {
    height: 38px;
  }
  .footer-info { font-size: 0.92em; }
}
.site-footer {
 
  padding: 0;
  position: relative;
  overflow: hidden;
}

.footer-wave-top {
  width: 100vw;
  min-width: 100%;
  position: relative;
  z-index: 2;
  /* НЕ нужен margin-bottom, пусть лого будет ниже! */
}

.footer-main {
  text-align: center;
  padding: 36px 16px 28px 16px;
  position: relative;
  z-index: 3;
}

.footer-logo-center {
  margin-top: -24px; /* если хотите чтобы логотип "нависал", иначе уберите */
  margin-bottom: 24px;
  display: flex;
  justify-content: center;
}

.footer-logo-svg {
  max-width: 220px;
  width: 22vw;
  min-width: 140px;
  height: auto;
  /*background: #fff5e5;*/
  border-radius: 0 0 32px 32px;
  /*box-shadow: 0 12px 36px #ffe7cc66;*/
  padding: 0 18px 8px 18px;
  /* Можно добавить border если хочется */
}

.footer-info {
  font-size: 1.18rem;
  color: #c19736;
  margin-bottom: 10px;
  display: block;
  line-height: 1.5;
}

.developer-credit a {
  color: #148fff;
  font-weight: bold;
  text-decoration: underline dotted #ffd07a 2px;
  transition: color .2s;
}
.developer-credit a:hover {
  color: #ff9d13;
}

.footer-wave-bottom {
  width: 100vw;
  min-width: 100%;
  margin-top: -6px; /* убрать стык с футером */
  z-index: 1;
  position: relative;
}
@media (max-width: 600px) {
  .footer-logo-svg {
    max-width: 140px;
    min-width: 100px;
    padding: 0 8px 5px 8px;
  }
  .footer-main {
    padding: 18px 4vw 16px 4vw;
  }
  .footer-info { font-size: 0.98rem; }
}


.site-footer {
 /* background: linear-gradient(180deg, #fff9f2 60%, #fff0dc 100%);*/
  /*box-shadow: 0 -6px 32px #ffe9b844;*/
  /*border-radius: 36px 36px 0 0;*/
  padding-bottom: 46px;
 /* margin-top: 60px;*/
  font-size: 1.22rem;
  color: #ba7e19;
  position: relative;
  overflow: hidden;
  z-index: 9;
}

.footer-logo-svg {
  /*box-shadow: 0 14px 44px #ffd19c44, 0 1px 16px #ffb14315;
  background: linear-gradient(180deg, #fff9f2 50%, #fff0dc 100%);*/
  border-radius: 0 0 42px 42px;
}

.footer-info {
  color: #b98d2d;
  font-size: 1.13em;
}

.developer-credit a {
  color: #0170ff;
  font-weight: bold;
  transition: color 0.22s, text-shadow 0.22s;
}
.developer-credit a:hover {
  color: #ff9d13;
  text-shadow: 0 3px 18px #ffdca2;
}


@keyframes footerWaveAnim {
  0% { d: path("M0 42 Q960 130 1920 42"); }
  50% { d: path("M0 38 Q960 122 1920 38"); }
  100% { d: path("M0 42 Q960 130 1920 42"); }
}
.footer-wave-top path.animated {
  animation: footerWaveAnim 4s infinite;
}



.site-footer {
  position: relative;
  
  background-image: url('../footer-bg.webp'); /* или footer-bg.png */
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  color: #ba8e2f;
  padding-top: 100px;
  padding-bottom: 60px;
  text-align: center;
  z-index: 1;
  overflow: hidden;
}

/* Для затемнения и плавного эффекта */
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  /*background: linear-gradient(180deg, rgba(255,255,255,0.90) 10%, rgba(255,249,235,0.98) 100%);*/
  z-index: 0;
  pointer-events: none;
}

/* Основной контент футера всегда поверх */
.site-footer .footer-main,
.site-footer .footer-info {
  position: relative;
  z-index: 1;
}

/* Адаптивность */
@media (max-width: 1024px) {
  .site-footer {
    padding-top: 70px;
    padding-bottom: 40px;
    background-position: center top;
  }
}
@media (max-width: 600px) {
  .site-footer {
    padding-top: 40px;
    padding-bottom: 28px;
    background-size: cover;
    background-position: 65% top;
  }
}

#site-preloader {
  position: fixed;
  z-index: 99999;
  inset: 0;
  background: linear-gradient(120deg, #fff7ef 60%, #fff2e0 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity .4s;
  animation: fadeInPreloader .4s;
}

@keyframes fadeInPreloader { from {opacity:0} to {opacity:1} }

.preloader-logo {
  margin-bottom: 25px;
  animation: logoJump 1.5s infinite cubic-bezier(.34,2,.66,1);
}
@keyframes logoJump {
  0%, 100% { transform: translateY(0);}
  30% { transform: translateY(-12px);}
  60% { transform: translateY(0);}
}

.preloader-wave {
  display: flex;
  gap: 9px;
  align-items: flex-end;
  justify-content: center;
}
.preloader-wave span {
  width: 12px; height: 24px;
  border-radius: 7px;
  background: linear-gradient(150deg, #ffc56d 70%, #ff8500 100%);
  display: block;
  animation: waveBounce 1.18s infinite;
}
.preloader-wave span:nth-child(2) {animation-delay: .19s;}
.preloader-wave span:nth-child(3) {animation-delay: .38s;}
@keyframes waveBounce {
  0%, 100% { height: 24px;}
  30% { height: 36px;}
  60% { height: 24px;}
}


.reveal-on-scroll {
  opacity: 0;
  transform: translateY(60px) scale(0.98);
  transition: opacity .6s cubic-bezier(.34,2,.66,1), transform .7s cubic-bezier(.34,2,.66,1);
  will-change: opacity, transform;
}
.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}


