/* Yaglamp · v3 — оформление по брендбуку владельца (08.10.2026).
   Цвета брендбука: тёмная олива #3A4B21, шалфей #748C6F, серый #C5C6C6, бежевый фон презентации #E7E5D9.
   Шрифт брендбука — Montserrat (заголовки тонким начертанием, текст обычным).
   Фишка: фото в рамках-силуэтах из знака (дом, купол) и тонкая линия знака, которая рисуется. */

:root {
  --olive: #3A4B21;
  --olive-2: #2C3818;
  --sage: #748C6F;
  --sage-2: #8DA388;
  --sage-3: #B7C5B2;
  --sage-soft: #E2E8DD;
  --stone: #C5C6C6;
  --linen: #E7E5D9;
  --paper: #F4F2EA;
  --paper-2: #FAF9F4;
  --white: #FFFFFF;
  --ink: #252A20;
  --ink-2: #505849;
  --ink-3: #868D7F;
  --line: #DAD7CA;
  --graphite: #2B2B2B;
  --shrift: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --shrift-zag: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r: 22px;
  --r-mal: 14px;
  --ten: 0 1px 0 rgba(37, 42, 32, .04), 0 26px 60px -36px rgba(44, 56, 24, .5);
  --ten-mal: 0 12px 30px -20px rgba(44, 56, 24, .45);
  --shapka: 76px;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --pole: 28px;
}

/* ------------------------------------------------------------------ основа */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--shapka) + 12px); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 16px/1.62 var(--shrift); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body.zamok { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: var(--olive); }
button { font: inherit; color: inherit; }
h1, h2, h3 { margin: 0; font-family: var(--shrift-zag); font-weight: 300; color: var(--olive); letter-spacing: -.015em; line-height: 1.1; }
h1 { font-size: clamp(42px, 6.2vw, 88px); }
h2 { font-size: clamp(32px, 4.1vw, 58px); }
p { margin: 0; }
.skryto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.obolochka { max-width: 1280px; margin: 0 auto; padding: 0 var(--pole); }
.razdel { padding: 112px 0; position: relative; }
.razdel--verh { padding-top: 56px; }
.metka { font: 600 11.5px/1.35 var(--shrift); letter-spacing: .26em; text-transform: uppercase; color: var(--sage); margin-bottom: 18px; }
.h-mal { font: 600 13px/1.4 var(--shrift); letter-spacing: .2em; text-transform: uppercase; color: var(--olive); margin: 36px 0 16px; }
.mel { font-size: 13.5px; line-height: 1.55; color: var(--ink-3); margin-top: 12px; }
.ik { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ik--l { transform: scaleX(-1); }
:focus-visible { outline: 2px solid var(--sage); outline-offset: 3px; border-radius: 6px; }

/* появление */
[data-r] { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
[data-r].vidno { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-r] { opacity: 1; transform: none; transition: none; } }
#stranica.poyav { animation: strPoyav .6s var(--ease); }
@keyframes strPoyav { from { opacity: 0; } to { opacity: 1; } }

/* ------------------------------------------------------------------ кнопки */
.knopka {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px; border-radius: 999px; border: 1px solid var(--olive);
  background: var(--olive); color: var(--paper); cursor: pointer; text-decoration: none;
  font: 600 14px/1.2 var(--shrift); letter-spacing: .03em; text-align: center;
  transition: background .3s, color .3s, border-color .3s, transform .4s var(--ease), box-shadow .3s;
}
.knopka:hover { background: var(--sage); border-color: var(--sage); color: #fff; }
.knopka:active { transform: scale(.98); }
.knopka .ik { width: 18px; height: 18px; }
.knopka--kontur { background: transparent; color: var(--olive); }
.knopka--kontur:hover { background: var(--olive); border-color: var(--olive); color: var(--paper); }
.knopka--svet { background: var(--paper); border-color: var(--paper); color: var(--olive); }
.knopka--svet:hover { background: #fff; border-color: #fff; color: var(--olive); }
.knopka--kontur-svet { background: transparent; border-color: rgba(244, 242, 234, .5); color: var(--paper); }
.knopka--kontur-svet:hover { background: var(--paper); color: var(--olive); border-color: var(--paper); }
.knopka--mal { min-height: 42px; padding: 0 20px; font-size: 13px; }
.knopka--shiroko { width: 100%; }
.knopka:disabled { opacity: .55; cursor: default; }
.knopki { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.kr-knopka {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); background: var(--white);
  display: grid; place-items: center; cursor: pointer; color: var(--olive); transition: background .3s, color .3s, border-color .3s;
}
.kr-knopka:hover { background: var(--olive); color: var(--paper); border-color: var(--olive); }
.ssylka-strelka { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; margin: 8px 0 56px; }
.ssylka-strelka .ik { transition: transform .3s var(--ease); }
.ssylka-strelka:hover .ik { transform: translateX(4px); }

.chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--white); color: var(--ink-2); cursor: pointer;
  font: 500 14px/1.2 var(--shrift); transition: background .25s, color .25s, border-color .25s;
}
.chip:hover { border-color: var(--sage); color: var(--olive); }
.chip[aria-pressed="true"] { background: var(--olive); border-color: var(--olive); color: var(--paper); }
.chip--mal { min-height: 38px; padding: 0 15px; font-size: 13.5px; }
.chip small { font-size: 12px; opacity: .75; margin-left: 2px; }
.chipy { display: flex; flex-wrap: wrap; gap: 8px; }

.znachok {
  position: absolute; z-index: 3; left: 16px; bottom: 16px; padding: 7px 12px; border-radius: 999px;
  background: var(--paper); color: var(--olive); font: 600 11px/1 var(--shrift); letter-spacing: .14em; text-transform: uppercase;
}
.znachok--sery { color: var(--ink-2); }
.zametka { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; padding: 14px 16px; border-radius: var(--r-mal); background: var(--sage-soft); color: var(--olive); font-size: 14px; line-height: 1.5; }
.zametka .ik { margin-top: 1px; }
.zametka--dnem { font-size: 15.5px; }
.zametka--dnem b { font-weight: 600; }

/* галочки */
.galki { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.galki li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.galki .ik { width: 18px; height: 18px; color: var(--sage); margin-top: 2px; }
.galki--mel li { font-size: 13.5px; color: var(--ink-3); }

/* ------------------------------------------------------------------ заставка */
.zastavka {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; background: var(--paper); color: var(--sage);
  transition: opacity .6s ease, visibility .6s;
}
.zastavka__znak { width: 130px; height: auto; }
.zastavka__znak path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: risuy 1.1s var(--ease) forwards; }
.zastavka__znak path:nth-child(2) { animation-delay: .15s; }
.zastavka__znak path:nth-child(3) { animation-delay: .3s; }
body.gotovo .zastavka { opacity: 0; visibility: hidden; }
@keyframes risuy { to { stroke-dashoffset: 0; } }

.demo-bar { position: fixed; z-index: 120; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 10px; align-items: center; padding: 10px 14px 10px 18px; border-radius: 999px; background: var(--graphite); color: #fff; font-size: 13px; }
.demo-x { border: 0; background: transparent; color: #fff; font-size: 18px; cursor: pointer; }

/* ------------------------------------------------------------------ шапка */
.shapka {
  position: fixed; z-index: 60; inset: 0 0 auto; height: var(--shapka); color: var(--olive);
  background: rgba(244, 242, 234, .97); box-shadow: 0 1px 0 var(--line);
  transition: background .35s, box-shadow .35s, color .35s;
}
.shapka.na-hero { background: transparent; box-shadow: none; color: #fff; }
.shapka__ryad { max-width: 1360px; height: 100%; margin: 0 auto; padding: 0 var(--pole); display: flex; align-items: center; gap: 26px; }
.shapka__logo { display: block; color: var(--sage); flex: none; }
.shapka.na-hero .shapka__logo { color: #fff; }
.shapka__logo svg { display: block; height: 30px; width: auto; }
.menu { display: flex; align-items: center; gap: 30px; margin: 0 auto; }
.menu a { position: relative; padding: 6px 0; color: inherit; text-decoration: none; font: 500 14.5px/1 var(--shrift); letter-spacing: .02em; white-space: nowrap; }
.menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.menu a:hover::after, .menu a.aktiv::after { transform: scaleX(1); }
.shapka__tel { color: inherit; text-decoration: none; font: 600 14px/1 var(--shrift); white-space: nowrap; }
.shapka.na-hero .shapka__bron { background: var(--paper); border-color: var(--paper); color: var(--olive); }
.burger { display: none; width: 46px; height: 46px; margin-left: auto; border: 0; background: transparent; cursor: pointer; position: relative; color: inherit; }
.burger i { position: absolute; left: 11px; right: 11px; height: 1.6px; background: currentColor; border-radius: 2px; transition: transform .4s var(--ease), top .4s var(--ease); }
.burger i:first-child { top: 18px; }
.burger i:last-child { top: 27px; }
body.menu-otkryto .burger i:first-child { top: 22.5px; transform: rotate(45deg); }
body.menu-otkryto .burger i:last-child { top: 22.5px; transform: rotate(-45deg); }
body.menu-otkryto .shapka { background: var(--paper); color: var(--olive); box-shadow: none; }
body.menu-otkryto .shapka .shapka__logo { color: var(--sage); }

.mmenu { position: fixed; inset: 0; z-index: 55; background: var(--paper); padding: calc(var(--shapka) + 24px) var(--pole) 32px; display: flex; flex-direction: column; justify-content: space-between; opacity: 0; transition: opacity .35s ease; overflow-y: auto; }
.mmenu.otkryto { opacity: 1; }
.mmenu__spisok { display: grid; gap: 6px; }
.mmenu__spisok a { display: flex; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--olive); font: 300 34px/1.1 var(--shrift-zag); opacity: 0; transform: translateY(14px); transition: opacity .5s var(--ease), transform .5s var(--ease); transition-delay: calc(var(--i, 0) * 50ms + 80ms); }
.mmenu.otkryto .mmenu__spisok a { opacity: 1; transform: none; }
.mmenu__spisok span { font: 500 12px var(--shrift); color: var(--sage); letter-spacing: .1em; }
.mmenu__niz { display: grid; gap: 14px; margin-top: 30px; }
.mmenu__niz a { display: flex; align-items: center; gap: 10px; color: var(--olive); text-decoration: none; font-weight: 600; }

/* ------------------------------------------------------------------ первый экран */
.hero { position: relative; isolation: isolate; height: 100svh; min-height: 680px; max-height: 1080px; overflow: hidden; color: #fff; display: grid; place-items: center; }
.hero__foto { position: absolute; inset: 0; z-index: -2; background: var(--olive-2); }
.hero__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.07); transition: opacity 1.3s ease, transform 14s linear; }
.hero__foto img.on { opacity: 1; transform: scale(1); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background:
  radial-gradient(ellipse 62% 52% at 50% 44%, rgba(24, 31, 14, .42), rgba(24, 31, 14, 0) 72%),
  linear-gradient(180deg, rgba(24, 31, 14, .5) 0%, rgba(24, 31, 14, .08) 26%, rgba(24, 31, 14, .1) 58%, rgba(24, 31, 14, .66) 100%); }
.hero__centr { text-align: center; padding: 0 20px; margin-top: -9vh; }
.hero__logo { font-size: 0; line-height: 0; }
.lv { width: clamp(230px, 27vw, 380px); height: auto; color: #fff; overflow: visible; filter: drop-shadow(0 2px 24px rgba(0, 0, 0, .22)); }
.lv-znak path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: risuy 1.6s var(--ease) forwards; animation-delay: .7s; }
.lv-znak path:nth-child(2) { animation-delay: .9s; }
.lv-znak path:nth-child(3) { animation-delay: 1.1s; }
.lv-bukvy { opacity: 0; animation: proyav 1.2s ease 1.5s forwards; }
@keyframes proyav { to { opacity: 1; } }
.hero__missiya { margin-top: 34px; font: 300 clamp(21px, 2.4vw, 34px)/1.25 var(--shrift-zag); letter-spacing: .04em; text-shadow: 0 2px 20px rgba(0, 0, 0, .3); opacity: 0; animation: proyav 1.2s ease 1.9s forwards; }
.hero__pod { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 14px; margin-top: 20px; font: 600 11.5px/1.5 var(--shrift); letter-spacing: .24em; text-transform: uppercase; opacity: 0; animation: proyav 1.2s ease 2.1s forwards; }
.hero__pod i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .7; }
.hero__sezon { position: absolute; left: var(--pole); top: calc(var(--shapka) + 22px); display: flex; align-items: center; gap: 14px; }
.hero__podpis { font-size: 12.5px; letter-spacing: .04em; opacity: .85; }
@media (prefers-reduced-motion: reduce) { .lv-znak path, .lv-bukvy, .hero__missiya, .hero__pod { animation: none; opacity: 1; stroke-dashoffset: 0; } }

/* переключатель сезона */
.sezon { position: relative; display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); }
.sezon button { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 15px; border: 0; border-radius: 999px; background: transparent; color: inherit; cursor: pointer; font: 600 12.5px/1 var(--shrift); letter-spacing: .04em; transition: background .3s, color .3s; }
.sezon button .ik { width: 16px; height: 16px; }
.sezon button[aria-pressed="true"] { background: #fff; color: var(--olive); }
.sezon--svet { background: var(--white); border-color: var(--line); color: var(--ink-2); }
.sezon--svet button[aria-pressed="true"] { background: var(--olive); color: var(--paper); }

/* строка брони */
.bron-bar {
  position: absolute; left: 50%; bottom: 34px; transform: translateX(-50%); width: min(1120px, calc(100% - 2 * var(--pole)));
  display: grid; grid-template-columns: 1.15fr 1.3fr .9fr auto; align-items: stretch; gap: 0;
  padding: 10px; border-radius: 28px; background: var(--paper); color: var(--ink); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .55);
  opacity: 0; animation: proyav 1s ease 2.2s forwards;
}
.bron-bar__pole { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 64px; padding: 8px 20px; border: 0; background: transparent; text-align: left; cursor: pointer; border-right: 1px solid var(--line); border-radius: 18px; transition: background .25s; }
.bron-bar__pole:hover { background: var(--white); }
.bron-bar__pole > span { display: flex; align-items: center; gap: 7px; font: 600 11px/1.2 var(--shrift); letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.bron-bar__pole > span .ik { width: 15px; height: 15px; }
.bron-bar__pole b, .bron-bar__pole select { font: 600 15.5px/1.25 var(--shrift); color: var(--ink); }
.bron-bar__pole select { appearance: none; -webkit-appearance: none; border: 0; background: transparent; padding: 0 22px 0 0; cursor: pointer; outline: none; width: 100%; }
.bron-bar__str { position: absolute; right: 16px; bottom: 15px; width: 16px; height: 16px; color: var(--ink-3); pointer-events: none; }
.bron-bar__pole--gosti { cursor: default; }
.bron-bar__pole--gosti:hover { background: transparent; }
.bron-bar__pole--gosti { border-right: 0; }
.bron-bar__k { min-height: 64px; border-radius: 20px; padding: 0 30px; }

/* ------------------------------------------------------------------ счётчики, переключатели */
.schyot { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); }
.schyot button { width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; font-size: 20px; line-height: 1; color: var(--olive); transition: background .2s; }
.schyot button:hover:not(:disabled) { background: var(--sage-soft); }
.schyot button:disabled { opacity: .3; cursor: default; }
.schyot output { min-width: 26px; text-align: center; font-weight: 600; font-size: 16px; }
.schyot--mal { background: transparent; border: 0; padding: 0; gap: 2px; }
.schyot--mal button { width: 32px; height: 32px; background: var(--white); border: 1px solid var(--line); font-size: 17px; }

.pereklyuch { position: relative; display: inline-flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.pereklyuch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pereklyuch i { flex: none; position: relative; width: 46px; height: 28px; border-radius: 999px; background: var(--stone); transition: background .3s; }
.pereklyuch i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .35s var(--ease); }
.pereklyuch input:checked + i { background: var(--sage); }
.pereklyuch input:checked + i::after { transform: translateX(18px); }
.pereklyuch input:focus-visible + i { outline: 2px solid var(--sage); outline-offset: 2px; }
.pereklyuch input:disabled + i { opacity: .45; }
.pereklyuch span b { display: block; font-weight: 600; font-size: 14.5px; line-height: 1.4; color: var(--ink); }
.pereklyuch span em { display: block; font-style: normal; font-size: 13px; color: var(--ink-3); line-height: 1.4; }

/* ------------------------------------------------------------------ шапка страницы */
.str-shapka { position: relative; padding: calc(var(--shapka) + 70px) 0 40px; overflow: hidden; }
.str-shapka h1 { max-width: 19ch; }
.str-shapka__lead { max-width: 680px; margin-top: 26px; font-size: 18px; line-height: 1.65; color: var(--ink-2); }
.str-shapka__znak { position: absolute; right: -40px; top: calc(var(--shapka) + 20px); width: min(560px, 48vw); height: auto; color: var(--sage-3); opacity: .55; pointer-events: none; }
.kroshki { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 34px; font-size: 13px; color: var(--ink-3); }
.kroshki a { color: var(--ink-2); text-decoration: none; }
.kroshki a:hover { color: var(--olive); text-decoration: underline; }
.kroshki b { font-weight: 500; color: var(--olive); }
.kto { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }

.zag-ryad { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px 60px; align-items: end; margin-bottom: 52px; }
.zag-ryad > p { font-size: 16.5px; line-height: 1.65; color: var(--ink-2); }
.zag-ryad > .knopka { justify-self: end; }
.zag-ryad:has(> .knopka) { grid-template-columns: 1.1fr 1fr auto; }

/* ------------------------------------------------------------------ главная: концепция и поводы */
.kontsept { background: var(--paper); }
.kontsept__verh { display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px 70px; align-items: end; }
.kontsept__text { font-size: 18px; line-height: 1.7; color: var(--ink-2); }
.povody__h { margin: 84px 0 26px; font: 600 13px/1.4 var(--shrift); letter-spacing: .22em; text-transform: uppercase; color: var(--olive); }
.povody { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.povod {
  position: relative; display: flex; flex-direction: column; gap: 10px; padding: 28px 28px 30px; min-height: 238px;
  border-radius: var(--r); background: var(--white); border: 1px solid var(--line); text-decoration: none; color: var(--ink);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .3s, opacity .9s var(--ease);
}
.povod:hover { transform: translateY(-4px); box-shadow: var(--ten); border-color: transparent; }
.povod__ik { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; color: var(--sage); border: 1px solid var(--sage-3); margin-bottom: 10px; transition: background .35s, color .35s, border-color .35s; }
.povod__ik .ik { width: 26px; height: 26px; stroke-width: 1.4; }
.povod:hover .povod__ik { background: var(--sage); color: #fff; border-color: var(--sage); }
.povod__nomer { position: absolute; top: 26px; right: 28px; font: 500 12px var(--shrift); color: var(--ink-3); letter-spacing: .08em; }
.povod b { font-weight: 600; font-size: 18px; line-height: 1.3; color: var(--olive); }
.povod > span:not(.povod__ik):not(.povod__nomer) { font-size: 14.5px; line-height: 1.55; color: var(--ink-2); }
.povod__str { position: absolute; right: 26px; bottom: 26px; color: var(--sage); opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .4s var(--ease); }
.povod:hover .povod__str { opacity: 1; transform: none; }

/* ------------------------------------------------------------------ карта глэмпинга */
.karta-blok { background: var(--linen); }
.karta { display: grid; grid-template-columns: minmax(0, 2.05fr) minmax(250px, 1fr); gap: 34px; align-items: start; }
.karta__holst { position: relative; min-width: 0; }
.karta > * { min-width: 0; }
.karta__ramka { position: relative; border-radius: var(--r); overflow: visible; background: #eeebdf; box-shadow: var(--ten); }
.karta__ramka > img { width: 100%; height: auto; border-radius: var(--r); }
.tochka {
  position: absolute; z-index: 2; transform: translate(-50%, -50%); width: 34px; height: 34px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: transparent; display: grid; place-items: center;
}
.tochka span { position: relative; z-index: 1; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--paper); color: var(--olive); font: 700 12px/1 var(--shrift); box-shadow: 0 4px 12px rgba(30, 40, 15, .35); transition: transform .3s var(--ease), background .3s, color .3s; }
.tochka::before { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid var(--paper); opacity: 0; animation: puls 2.6s ease-out infinite; animation-delay: calc(var(--d, 0) * 1s); }
.tochka:nth-child(3n)::before { --d: .4; }
.tochka:nth-child(3n+1)::before { --d: .9; }
@keyframes puls { 0% { transform: scale(.7); opacity: .9; } 70% { transform: scale(1.5); opacity: 0; } 100% { opacity: 0; } }
.tochka:hover span, .tochka.aktiv span { transform: scale(1.18); background: var(--olive); color: var(--paper); }
.tochka--p span { background: #2C6EA8; color: #fff; }
.tochka--ostrov { width: auto; height: auto; border-radius: 999px; }
.tochka--ostrov::before { display: none; }
.tochka--ostrov { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px 7px 10px; background: rgba(244, 242, 234, .92); color: var(--olive); box-shadow: 0 6px 16px rgba(30, 40, 15, .25); font: 600 12px/1 var(--shrift); letter-spacing: .04em; white-space: nowrap; transition: background .3s, color .3s; }
.tochka--ostrov em { font-style: normal; }
.tochka--ostrov .ik { width: 15px; height: 15px; }
.tochka--ostrov:hover, .tochka--ostrov.aktiv { background: var(--olive); color: var(--paper); }
.karta__vsplyv {
  position: absolute; z-index: 5; width: 290px; transform: translate(18px, -50%); background: var(--paper); border-radius: 18px; box-shadow: 0 30px 60px -20px rgba(20, 28, 10, .55);
  overflow: hidden; animation: vsplyv .35s var(--ease);
}
.karta__vsplyv.sleva { transform: translate(calc(-100% - 18px), -50%); }
.karta__vsplyv.snizu { transform: translate(18px, -14%); }
.karta__vsplyv.sleva.snizu { transform: translate(calc(-100% - 18px), -14%); }
@keyframes vsplyv { from { opacity: 0; } to { opacity: 1; } }
.karta__vsplyv-foto img { width: 100%; height: 150px; object-fit: cover; }
.karta__vsplyv-tekst { display: grid; gap: 6px; padding: 16px 18px 18px; }
.karta__vsplyv-tekst b { font-size: 16px; line-height: 1.3; color: var(--olive); font-weight: 600; }
.karta__vsplyv-tekst > span:not(.karta__n) { font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.karta__vsplyv-tekst a { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: 600; font-size: 14px; text-decoration: none; }
.karta__vsplyv-tekst a .ik { width: 16px; height: 16px; }
.karta__vsplyv-x { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(244, 242, 234, .92); color: var(--olive); cursor: pointer; display: grid; place-items: center; }
.karta__vsplyv-x .ik { width: 16px; height: 16px; }
.karta__n { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 999px; background: var(--olive); color: var(--paper); font: 700 11.5px/1 var(--shrift); }
.karta__okno { position: relative; }
.karta__podskazka { display: none; }
.karta__polnaya { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; border: 0; background: transparent; color: var(--olive); font-weight: 600; font-size: 14px; cursor: pointer; padding: 6px 0; }
.karta__polnaya .ik { width: 18px; height: 18px; }
.karta__legenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.karta__legenda button { width: 100%; display: flex; align-items: center; gap: 12px; padding: 9px 12px; border: 0; border-radius: 12px; background: transparent; text-align: left; cursor: pointer; font-size: 14.5px; line-height: 1.35; color: var(--ink-2); transition: background .25s, color .25s; }
.karta__legenda button .karta__n { background: var(--white); color: var(--olive); border: 1px solid var(--line); flex: none; }
.karta__legenda button:hover, .karta__legenda button.aktiv { background: var(--white); color: var(--olive); }
.karta__legenda button.aktiv .karta__n { background: var(--olive); color: var(--paper); border-color: var(--olive); }

/* ------------------------------------------------------------------ карточки домов (рамки-силуэты) */
.doma-blok { background: var(--paper); }
.doma-ryad { display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; }
.doma-ryad--4 { grid-template-columns: repeat(4, 1fr); }
.dk { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--ink); }
.dk__ramka { position: relative; display: block; aspect-ratio: 4 / 5; margin: 12px 12px 14px 0; }
.dk__ramka .kontur { position: absolute; inset: 0; width: 100%; height: 100%; transform: translate(12px, -12px); overflow: visible; fill: none; stroke: var(--sage-3); stroke-width: 1.3; vector-effect: non-scaling-stroke; transition: transform .6s var(--ease), stroke .3s; }
.dk__foto { position: absolute; inset: 0; overflow: hidden; background: var(--linen); }
.dk__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.rama-dom .dk__foto { clip-path: polygon(50% 0, 100% 28%, 100% 100%, 0 100%, 0 28%); }
.rama-kupol .dk__foto { border-radius: 50% 50% 0 0 / 40% 40% 0 0; }
.dk:hover .dk__foto img, .dom-ryad__foto:hover .dk__foto img { transform: scale(1.05); }
.dk:hover .kontur, .dom-ryad__foto:hover .kontur { transform: translate(6px, -6px); stroke: var(--sage); }
.dk__net { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 10px; color: var(--sage); text-align: center; padding: 30px 20px 20px; background: var(--sage-soft); }
.dk__net svg { width: 46%; max-width: 140px; height: auto; color: var(--sage); }
.dk__net em { font-style: normal; font-size: 13px; color: var(--ink-2); line-height: 1.4; }
.dk__vid { font: 600 11px/1.3 var(--shrift); letter-spacing: .18em; text-transform: uppercase; color: var(--sage); }
.dk__imya { font: 300 26px/1.12 var(--shrift-zag); color: var(--olive); }
.dk__niz { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 10px; padding-top: 10px; margin-top: 4px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-3); }
.dk__niz b { color: var(--olive); font-weight: 600; font-size: 14px; }
.dk__dnem { flex-basis: 100%; display: flex; align-items: center; gap: 6px; color: var(--olive); }
.dk__dnem .ik { width: 15px; height: 15px; }

/* ------------------------------------------------------------------ где жить: строки домов */
.doma-spisok .obolochka { display: grid; gap: 120px; }
.dom-ryad { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px 80px; align-items: center; transition: opacity .5s, filter .5s; }
.dom-ryad--obr .dom-ryad__foto { order: 2; }
.dom-ryad.mimo { opacity: .35; filter: grayscale(.6); }
.dom-ryad__foto { position: relative; display: block; padding: 18px 60px 40px 0; }
.dom-ryad--obr .dom-ryad__foto { padding: 18px 0 40px 60px; }
.dom-ryad__glavnoe { position: relative; display: block; aspect-ratio: 4 / 4.4; }
.dom-ryad__glavnoe .kontur { position: absolute; inset: 0; width: 100%; height: 100%; transform: translate(16px, -16px); fill: none; stroke: var(--sage-3); stroke-width: 1.3; vector-effect: non-scaling-stroke; transition: transform .6s var(--ease), stroke .3s; overflow: visible; }
.dom-ryad__mal { position: absolute; width: 34%; aspect-ratio: 1; overflow: hidden; border-radius: 16px; border: 6px solid var(--paper); box-shadow: var(--ten-mal); }
.dom-ryad__mal img { width: 100%; height: 100%; object-fit: cover; }
.dom-ryad__mal--1 { right: 0; bottom: 70px; }
.dom-ryad__mal--2 { right: 12%; bottom: 0; width: 26%; }
.dom-ryad--obr .dom-ryad__mal--1 { right: auto; left: 0; }
.dom-ryad--obr .dom-ryad__mal--2 { right: auto; left: 12%; }
.dom-ryad__info h2 { margin-bottom: 18px; }
.dom-ryad__info > p { font-size: 17px; line-height: 1.65; color: var(--ink-2); max-width: 520px; }
.fakty { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 30px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fakty--4 { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.fakty > div { padding: 16px 16px 16px 0; }
.fakty > div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.fakty dt { font: 600 10.5px/1.3 var(--shrift); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px; }
.fakty dd { margin: 0; font: 300 24px/1.15 var(--shrift); color: var(--olive); }
.fakty dd small { display: block; margin-top: 4px; font: 400 13px/1.4 var(--shrift); color: var(--ink-2); }

/* таблица цен */
.prays-blok { background: var(--white); }
.tablica-obertka { overflow-x: auto; border-radius: var(--r); border: 1px solid var(--line); background: var(--paper-2); }
.tablica { width: 100%; border-collapse: collapse; min-width: 760px; font-size: 15px; }
.tablica th, .tablica td { padding: 18px 20px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tablica thead th { font: 600 11px/1.3 var(--shrift); letter-spacing: .14em; text-transform: uppercase; color: var(--sage); background: var(--paper); }
.tablica thead th small { display: block; margin-top: 4px; font: 400 11.5px/1.35 var(--shrift); letter-spacing: 0; text-transform: none; color: var(--ink-3); }
.tablica tbody th { font-weight: 600; color: var(--olive); }
.tablica tbody th a { text-decoration: none; color: var(--olive); }
.tablica tbody th a:hover { text-decoration: underline; }
.tablica tbody th small { display: block; font-weight: 400; font-size: 12.5px; color: var(--ink-3); }
.tablica td { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.tablica td small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--ink-3); }
.tablica tr:last-child th, .tablica tr:last-child td { border-bottom: 0; }
.tablica__zapros { color: var(--ink-3) !important; font-style: italic; }
.prays-blok__mel { margin-top: 18px; font-size: 14px; color: var(--ink-2); }
.akkordeony { display: grid; gap: 10px; margin-top: 40px; }
.akk { border-radius: 18px; background: var(--paper); border: 1px solid var(--line); }
.akk summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 24px; cursor: pointer; font-weight: 600; font-size: 16px; color: var(--olive); }
.akk summary::-webkit-details-marker { display: none; }
.akk summary .ik { transition: transform .35s var(--ease); color: var(--sage); }
.akk[open] summary .ik { transform: rotate(180deg); }
.akk__telo { padding: 0 24px 24px; }
.akk__telo p { color: var(--ink-2); line-height: 1.65; }
.prays-skan { display: inline-flex; align-items: center; gap: 14px; margin-top: 26px; padding: 10px 18px 10px 10px; border-radius: 16px; border: 1px solid var(--line); background: var(--white); cursor: pointer; text-align: left; transition: border-color .3s, box-shadow .3s; }
.prays-skan:hover { border-color: var(--sage); box-shadow: var(--ten-mal); }
.prays-skan img { width: 58px; height: 72px; object-fit: cover; object-position: top; border-radius: 8px; border: 1px solid var(--line); }
.prays-skan b { display: block; font-size: 14px; color: var(--olive); }
.prays-skan em { display: block; font-style: normal; font-size: 12.5px; color: var(--ink-3); }

/* ------------------------------------------------------------------ страница дома */
.dom-str__shapka { padding: calc(var(--shapka) + 40px) 0 28px; }
.dom-str__zag { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
.dom-str__harakter { margin-top: 12px; font: 300 22px/1.3 var(--shrift-zag); color: var(--sage); }
.taby { display: inline-flex; padding: 5px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); }
.tab { display: inline-flex; align-items: center; min-height: 44px; padding: 0 24px; border-radius: 999px; text-decoration: none; color: var(--ink-2); font-weight: 600; font-size: 14.5px; transition: background .3s, color .3s; }
.tab[aria-selected="true"] { background: var(--olive); color: var(--paper); }
.tab:hover:not([aria-selected="true"]) { color: var(--olive); }
.dom-str__lenta { padding: 0 0 0 var(--pole); max-width: calc(1280px + (100vw - 1280px) / 2); margin-left: auto; }
@media (max-width: 1280px) { .dom-str__lenta { max-width: none; } }
.lenta { --h: 540px; position: relative; }
.lenta__dorozhka { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-right: var(--pole); }
.lenta__dorozhka::-webkit-scrollbar { display: none; }
.lenta__kadr { position: relative; flex: none; height: var(--h); aspect-ratio: var(--ar); max-width: 86vw; border: 0; padding: 0; border-radius: 20px; overflow: hidden; scroll-snap-align: start; cursor: zoom-in; background: var(--linen); }
.lenta__kadr img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.lenta__kadr:hover img { transform: scale(1.03); }
.lenta__podpis { position: absolute; left: 14px; bottom: 14px; padding: 7px 12px; border-radius: 999px; background: rgba(244, 242, 234, .92); color: var(--olive); font: 500 12.5px/1.2 var(--shrift); opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s; }
.lenta__kadr:hover .lenta__podpis, .lenta__kadr:focus-visible .lenta__podpis { opacity: 1; transform: none; }
.lenta__upr { display: flex; align-items: center; gap: 14px; margin-top: 18px; padding-right: var(--pole); justify-content: flex-end; }
.lenta__schyot { font-size: 13px; color: var(--ink-3); min-width: 56px; text-align: center; }
.lenta__schyot b { color: var(--olive); font-weight: 600; }
.dom-str__setka { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 70px; padding-top: 60px; padding-bottom: 40px; align-items: start; }
.dom-str__opis { font-size: 17px; line-height: 1.75; color: var(--ink-2); margin-bottom: 18px; }
.dom-str__opis--bol { font: 300 clamp(21px, 2vw, 26px)/1.5 var(--shrift-zag); color: var(--olive); letter-spacing: .005em; }
.dom-str__dve { display: grid; grid-template-columns: 1fr 1fr; gap: 0 46px; }
.dom-str__golosa { margin-top: 20px; display: grid; gap: 14px; }
.dom-str__bron { position: sticky; top: calc(var(--shapka) + 20px); }
.dom-bron { padding: 30px 28px; border-radius: var(--r); background: var(--white); box-shadow: var(--ten); border: 1px solid var(--line); }
.dom-bron__ot { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin-bottom: 18px; color: var(--ink-3); font-size: 14px; }
.dom-bron__ot b { font: 300 40px/1 var(--shrift); color: var(--olive); }
.dom-bron__zapros { font: 300 24px/1.3 var(--shrift-zag) !important; }
.dom-bron__ceny { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.dom-bron__ceny > div { display: flex; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.dom-bron__ceny dt { color: var(--ink-2); }
.dom-bron__ceny dd { margin: 0; font-weight: 600; color: var(--ink); white-space: nowrap; }
.dom-bron__dop { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.dom-bron__dop li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 14px; border-radius: 14px; background: var(--sage-soft); }
.dom-bron__dop b { font-size: 14px; color: var(--olive); }
.dom-bron__dop span { grid-column: 1; font-size: 12.5px; color: var(--ink-2); }
.dom-bron__dop em { grid-row: 1 / 3; grid-column: 2; align-self: center; font-style: normal; font-weight: 600; font-size: 14px; color: var(--olive); white-space: nowrap; }
.dom-bron__mel { margin: 16px 0 18px; font-size: 13px; line-height: 1.5; color: var(--ink-3); }
.dom-bron__tel { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 14px; font-weight: 600; text-decoration: none; font-size: 15px; }
.net-foto { display: grid; justify-items: center; gap: 16px; padding: 70px 20px; border-radius: var(--r); background: var(--linen); text-align: center; color: var(--sage); }
.net-foto svg { width: 200px; height: auto; }
.net-foto use { color: var(--sage); }
.net-foto p { color: var(--ink-2); font-size: 15px; }
.net-foto--mal { padding: 60px 20px; aspect-ratio: 4 / 3; align-content: center; }
.drugie { background: var(--linen); }

/* отзыв */
.golos { position: relative; margin: 0; padding: 52px 30px 26px; border-radius: var(--r); background: var(--white); border: 1px solid var(--line); }
.golos__kav { position: absolute; top: 14px; left: 28px; font: 300 54px/1 var(--shrift-zag); color: var(--sage-3); }
.golos blockquote { margin: 0 0 22px; font-size: 15.5px; line-height: 1.65; color: var(--ink); }
.golos figcaption { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--ink-3); }
.golos figcaption b { display: block; color: var(--olive); font-size: 14px; }
.golos__ava { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 600; color: var(--olive); background: var(--sage-soft); flex: none; }
.golos__ava[data-c="1"] { background: #E9E1CF; }
.golos__ava[data-c="2"] { background: #DCE3E6; }
.golos__ava[data-c="3"] { background: #EBDDD6; }
.golos--mal { padding: 44px 22px 20px; background: var(--paper-2); }
.golos--mal .golos__kav { left: 22px; top: 10px; font-size: 44px; }
.golos--mal blockquote { font-size: 14.5px; }

/* ------------------------------------------------------------------ отзывы и призыв */
.otzyvy-blok { background: var(--paper); }
.otzyvy-blok__verh { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 44px; }
.ocenka { display: inline-flex; align-items: center; gap: 16px; padding: 14px 22px 14px 18px; border-radius: 20px; background: var(--white); border: 1px solid var(--line); text-decoration: none; color: var(--ink-2); transition: box-shadow .3s; }
.ocenka:hover { box-shadow: var(--ten-mal); }
.ocenka > b { font: 300 46px/1 var(--shrift); color: var(--olive); }
.ocenka span { font-size: 13px; line-height: 1.4; max-width: 170px; }
.ocenka i { display: block; font-style: normal; color: #C9A23F; letter-spacing: 2px; font-size: 14px; }
.ocenka .ik { color: var(--sage); }
.otzyvy-lenta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: start; }
.prizyv { position: relative; overflow: hidden; background: var(--olive); color: var(--paper); padding: 110px 0; text-align: center; }
.prizyv__vnutri { display: grid; justify-items: center; }
.prizyv__znak { width: 170px; height: auto; color: var(--sage-2); margin-bottom: 30px; }
.prizyv__missiya { font: 300 clamp(26px, 3.4vw, 48px)/1.15 var(--shrift-zag); letter-spacing: .03em; max-width: 22ch; }
.prizyv__knopki { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 40px; }

/* ------------------------------------------------------------------ где праздновать */
.lok-nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 44px; max-width: 980px; }
.lok-nav__k { display: grid; gap: 4px; padding: 20px 22px; border-radius: 20px; background: var(--white); border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: transform .5s var(--ease), box-shadow .5s, border-color .3s; }
.lok-nav__k:hover { transform: translateY(-3px); box-shadow: var(--ten-mal); border-color: transparent; }
.lok-nav__k b { font: 200 44px/1 var(--shrift); color: var(--olive); }
.lok-nav__k span { font-weight: 600; font-size: 14.5px; color: var(--olive); }
.lok-nav__k em { font-style: normal; font-size: 12.5px; color: var(--ink-3); }
.lokaciya:nth-of-type(even) { background: var(--white); }
.lokaciya__setka { display: grid; grid-template-columns: 1.15fr 1fr; gap: 50px 80px; align-items: center; }
.lokaciya--obr .lokaciya__foto { order: 2; }
.lokaciya__info > p { font-size: 16.5px; line-height: 1.7; color: var(--ink-2); margin-bottom: 24px; }
.lokaciya__info h2 { margin-bottom: 18px; }
.lokaciya__gosti { display: flex; align-items: baseline; gap: 14px; margin-bottom: 22px !important; }
.lokaciya__gosti b { font: 200 64px/1 var(--shrift); color: var(--olive); }
.lokaciya__gosti span { font-size: 14px; color: var(--ink-2); max-width: 240px; line-height: 1.45; }
.lokaciya__usl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 28px 0 0; border-top: 1px solid var(--line); }
.lokaciya__usl > div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.lokaciya__usl > div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--line); }
.lokaciya__usl dt { font: 600 10.5px/1.3 var(--shrift); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px; }
.lokaciya__usl dd { margin: 0; font-weight: 600; color: var(--olive); font-size: 16px; }
.lokaciya__usl dd small { display: block; font-weight: 400; font-size: 12.5px; color: var(--ink-3); margin-top: 3px; }
.mozaika { display: grid; gap: 10px; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 150px; }
.mozaika__kadr { position: relative; border: 0; padding: 0; border-radius: 16px; overflow: hidden; cursor: zoom-in; background: var(--linen); }
.mozaika__kadr img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.mozaika__kadr:hover img { transform: scale(1.04); }
.mozaika__kadr:first-child { grid-column: span 4; grid-row: span 2; border-radius: 22px; }
.mozaika--5 .mozaika__kadr:first-child, .mozaika--4 .mozaika__kadr:first-child { grid-row: span 2; }
.mozaika--4 .mozaika__kadr:not(:first-child) { grid-column: span 4; }
.mozaika--4 { grid-template-columns: repeat(3, 1fr); }
.mozaika--4 .mozaika__kadr:first-child { grid-column: span 3; }
.mozaika--4 .mozaika__kadr:not(:first-child) { grid-column: span 1; }
.mozaika--2 .mozaika__kadr:not(:first-child), .mozaika--3 .mozaika__kadr:not(:first-child) { grid-column: span 2; }
.mozaika__esche { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(44, 56, 24, .55); color: #fff; font-weight: 600; font-size: 15px; }
.usloviya-blok { background: var(--linen); }
.tablica--lok { min-width: 620px; }
.tablica--lok td { font-weight: 600; color: var(--olive); }
.usloviya-setka { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 26px; }
.uslovie { display: grid; gap: 6px; padding: 20px 22px; border-radius: 18px; background: var(--paper-2); border: 1px solid var(--line); }
.uslovie b { font-size: 14px; color: var(--olive); }
.uslovie span { font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.pokaz { display: flex; gap: 10px; align-items: flex-start; margin-top: 30px; font-size: 15px; color: var(--ink-2); line-height: 1.55; }
.pokaz .ik { color: var(--sage); margin-top: 1px; }
.pokaz a { font-weight: 600; white-space: nowrap; }

/* ------------------------------------------------------------------ чем заняться */
.podnav { position: sticky; top: var(--shapka); z-index: 20; background: rgba(244, 242, 234, .97); border-bottom: 1px solid var(--line); }
.podnav .obolochka { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-top: 10px; padding-bottom: 10px; }
.podnav .obolochka::-webkit-scrollbar { display: none; }
.podnav a { display: inline-flex; align-items: center; gap: 8px; flex: none; min-height: 40px; padding: 0 16px; border-radius: 999px; text-decoration: none; color: var(--ink-2); font-weight: 500; font-size: 14px; transition: background .3s, color .3s; }
.podnav a .ik { width: 18px; height: 18px; color: var(--sage); }
.podnav a:hover { color: var(--olive); background: var(--white); }
.podnav a.aktiv { background: var(--olive); color: var(--paper); }
.podnav a.aktiv .ik { color: var(--paper); }
.bassein { background: var(--paper); }
.bassein .mozaika { margin-bottom: 56px; }
.status { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 12px 18px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--ink-2); }
.status i { width: 9px; height: 9px; border-radius: 50%; background: var(--stone); }
.status.otkryto i { background: #4FA34F; box-shadow: 0 0 0 4px rgba(79, 163, 79, .18); }
.status em { font-style: normal; font-weight: 400; color: var(--ink-3); }
.bassein__setka { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.bassein__opis { font-size: 17px; line-height: 1.7; color: var(--ink-2); }
.cifry { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 30px 0 6px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cifra { padding: 18px 14px 18px 0; }
.cifra + .cifra { padding-left: 16px; border-left: 1px solid var(--line); }
.cifra b { display: block; font: 200 36px/1 var(--shrift); color: var(--olive); }
.cifra span { display: block; margin-top: 6px; font-size: 12.5px; color: var(--ink-3); line-height: 1.4; }
.bassein__ceny { padding: 30px; border-radius: var(--r); background: var(--white); border: 1px solid var(--line); }
.bassein__ceny .h-mal:first-child { margin-top: 0; }
.bassein__ceny .knopka { margin-top: 22px; width: 100%; }
.prays-spisok { margin: 0; display: grid; }
.prays-spisok > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.prays-spisok dt { font-size: 14.5px; color: var(--ink); line-height: 1.4; }
.prays-spisok dt small { display: block; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.prays-spisok dd { margin: 0; font-weight: 600; color: var(--olive); text-align: right; font-size: 14.5px; max-width: 55%; }
.prays-spisok--bol dt { font-size: 16px; font-weight: 600; color: var(--olive); }
.prays-spisok--bol dd { font-size: 16px; }
.scenarii { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.scenariy { padding: 24px 22px; border-radius: 20px; background: var(--white); border: 1px solid var(--line); }
.scenariy span { font: 500 12px var(--shrift); color: var(--sage); letter-spacing: .1em; }
.scenariy b { display: block; margin: 12px 0 8px; font-size: 17px; color: var(--olive); font-weight: 600; line-height: 1.3; }
.scenariy p { font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.bassein__niz { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: start; margin-top: 30px; }
.bassein__niz .prays-skan { margin-top: 0; }
.banya { background: var(--linen); }
.banya__setka { display: grid; grid-template-columns: 1fr 1.15fr; gap: 50px; align-items: start; }
.banya__foto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.banya__foto button { position: relative; border: 0; padding: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 3 / 4; cursor: zoom-in; background: var(--paper); }
.banya__foto img { width: 100%; height: 100%; object-fit: cover; }
.banya__foto span { position: absolute; left: 10px; bottom: 10px; padding: 6px 11px; border-radius: 999px; background: rgba(244, 242, 234, .92); font-size: 12px; font-weight: 500; color: var(--olive); }
.kalk { padding: 30px; border-radius: var(--r); background: var(--paper-2); box-shadow: var(--ten); border: 1px solid var(--line); }
.kalk__zag { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px; margin-bottom: 8px; }
.kalk__zag b { font: 300 28px/1.1 var(--shrift-zag); color: var(--olive); }
.kalk__zag span { font-size: 12.5px; color: var(--ink-3); }
.kalk__shag { padding: 20px 0; border-bottom: 1px solid var(--line); }
.kalk__shag--ryad { display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.kalk__shag-zag { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; color: var(--olive); margin-bottom: 14px; }
.kalk__shag--ryad .kalk__shag-zag { margin-bottom: 4px; }
.kalk__shag-zag span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--olive); color: var(--paper); font-size: 12.5px; }
.kalk__seansy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.seans, .stol { display: grid; gap: 3px; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--white); cursor: pointer; text-align: left; transition: border-color .25s, background .25s, box-shadow .25s; }
.seans b, .stol b { font-size: 15px; color: var(--olive); }
.seans span, .stol span { font-size: 12.5px; color: var(--ink-3); line-height: 1.4; }
.seans em { font-style: normal; font-weight: 600; font-size: 14.5px; margin-top: 4px; }
.seans[aria-checked="true"], .stol[aria-checked="true"] { border-color: var(--olive); box-shadow: inset 0 0 0 1px var(--olive); background: var(--sage-soft); }
.stol b small { margin-left: 8px; font-weight: 600; color: var(--ink-2); font-size: 13px; }
.kalk__opcii { display: grid; gap: 8px; }
.opciya { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 14px; background: var(--white); border: 1px solid var(--line); transition: opacity .3s; }
.opciya b { display: block; font-size: 14.5px; color: var(--ink); }
.opciya b small { margin-left: 8px; color: var(--olive); font-weight: 600; }
.opciya em { display: block; font-style: normal; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.opciya.vykl { opacity: .55; }
.kalk__stoly { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kalk__chay { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.kalk__prokat summary { list-style: none; display: flex; align-items: center; justify-content: space-between; cursor: pointer; }
.kalk__prokat summary::-webkit-details-marker { display: none; }
.kalk__prokat summary .kalk__shag-zag { margin-bottom: 0; }
.kalk__prokat[open] summary .ik { transform: rotate(180deg); }
.kalk__prokat-setka { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.prokat-ryad { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 9px 10px 9px 14px; border-radius: 12px; background: var(--white); border: 1px solid var(--line); }
.prokat-ryad b { font-weight: 500; font-size: 13.5px; line-height: 1.3; }
.prokat-ryad b small { display: block; color: var(--olive); font-weight: 600; }
.kalk__skidka { margin-top: 20px; }
.kalk__itog { margin-top: 22px; padding-top: 4px; }
.kalk__stroki { display: grid; gap: 6px; margin-bottom: 14px; }
.stroka { display: flex; justify-content: space-between; gap: 14px; font-size: 13.5px; color: var(--ink-2); }
.stroka span:last-child { white-space: nowrap; font-weight: 600; color: var(--ink); }
.stroka--minus span:last-child { color: #4E8A3F; }
.kalk__summa { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0; margin-bottom: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kalk__summa span { font-weight: 600; color: var(--olive); }
.kalk__summa b { font: 300 38px/1 var(--shrift); color: var(--olive); font-variant-numeric: tabular-nums; }
.kalk .knopka { margin-top: 18px; }
.ostrov { background: var(--paper); }
.ostrov__setka { display: grid; grid-template-columns: 1.15fr 1fr; gap: 60px; align-items: center; }
.ostrov__info > p { font-size: 17px; line-height: 1.7; color: var(--ink-2); margin-top: 6px; }
.ostrov__info h2 { margin-bottom: 18px; }
.prokat { background: var(--white); }
.prokat__pravo { display: grid; gap: 18px; justify-items: start; }
.prokat__pravo p { font-size: 16.5px; line-height: 1.65; color: var(--ink-2); }
.prokat__setka { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: start; }
.prokat__foto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.prokat__kadr { position: relative; border: 0; padding: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; cursor: zoom-in; background: var(--linen); }
.prokat__kadr:first-child { grid-column: span 2; aspect-ratio: 16 / 10; }
.prokat__kadr img { width: 100%; height: 100%; object-fit: cover; }
.prokat__kadr span { position: absolute; left: 10px; bottom: 10px; padding: 6px 11px; border-radius: 999px; background: rgba(244, 242, 234, .92); font-size: 12px; font-weight: 500; color: var(--olive); }
.prokat__info .galki { margin-top: 22px; }
.esche { background: var(--paper); }
.esche__setka { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.esche__k { padding: 24px 22px; border-radius: 20px; background: var(--white); border: 1px solid var(--line); }
.esche__k b { display: block; font-size: 16.5px; color: var(--olive); margin-bottom: 8px; }
.esche__k p { font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.esche__foto { position: relative; border: 0; padding: 0; border-radius: 20px; overflow: hidden; min-height: 180px; cursor: zoom-in; background: var(--linen); }
.esche__foto img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.esche__foto span { position: absolute; left: 10px; bottom: 10px; padding: 6px 11px; border-radius: 999px; background: rgba(244, 242, 234, .92); font-size: 12px; font-weight: 500; color: var(--olive); }

/* ------------------------------------------------------------------ как добраться */
.doroga__setka { display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: start; }
.kontakty { margin: 0; display: grid; border-top: 1px solid var(--line); }
.kontakty > div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.kontakty dt { font: 600 11px/1.6 var(--shrift); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.kontakty dd { margin: 0; font-size: 15.5px; line-height: 1.5; }
.kontakty dd a { font-weight: 600; text-decoration: none; }
.kontakty dd a:hover { text-decoration: underline; }
.kontakty dd small { display: block; font-size: 13px; color: var(--ink-3); margin-top: 2px; }
.soc { display: inline-flex; flex-wrap: wrap; gap: 8px 16px; }
.soc a { display: inline-flex; align-items: center; gap: 7px; }
.karta-ya { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; background: var(--linen); box-shadow: var(--ten); }
.karta-ya iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.karta-ya__vkl { position: absolute; inset: 0; margin: auto; width: max-content; height: 50px; display: inline-flex; align-items: center; gap: 8px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--olive); font-weight: 600; cursor: pointer; }
.doroga__foto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.doroga__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; }

/* ------------------------------------------------------------------ подвал */
.podval { background: var(--olive-2); color: rgba(244, 242, 234, .78); padding: 80px 0 34px; }
.podval__verh { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 46px; border-bottom: 1px solid rgba(244, 242, 234, .14); }
.podval__logo { color: var(--paper); }
.podval__logo svg { height: 64px; width: auto; display: block; }
.podval__missiya { font: 300 clamp(22px, 2.4vw, 32px)/1.2 var(--shrift-zag); color: var(--paper); letter-spacing: .03em; }
.podval__setka { display: grid; grid-template-columns: 1fr 1.2fr 1.2fr; gap: 40px; padding: 46px 0; }
.podval__menu { display: grid; gap: 10px; align-content: start; }
.podval__menu a { color: var(--paper); text-decoration: none; font-weight: 500; }
.podval__menu a:hover { text-decoration: underline; }
.podval__kontakty, .podval__adres { display: grid; gap: 4px; align-content: start; font-size: 14px; }
.podval__kontakty a { color: var(--paper); font-weight: 600; font-size: 17px; text-decoration: none; margin-top: 10px; }
.podval__kontakty a:first-child { margin-top: 0; }
.podval__kontakty .soc { margin-top: 16px; gap: 10px; }
.podval__kontakty .soc a { margin: 0; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(244, 242, 234, .3); display: grid; place-items: center; }
.podval__kontakty .soc a:hover { background: var(--paper); color: var(--olive); }
.podval__adres b { color: var(--paper); font-weight: 600; }
.podval__adres a { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--paper); font-weight: 600; text-decoration: none; }
.podval__niz { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; padding-top: 26px; border-top: 1px solid rgba(244, 242, 234, .14); font-size: 12.5px; color: rgba(244, 242, 234, .55); }
.podval__panel { color: rgba(244, 242, 234, .7); }

/* нижняя панель на телефоне */
.niz-bar { display: none; }

/* ------------------------------------------------------------------ заявка: панель */
.bron { position: fixed; inset: 0; z-index: 90; }
.bron__fon { position: absolute; inset: 0; background: rgba(28, 36, 16, .45); opacity: 0; transition: opacity .45s ease; }
.bron.otkryt .bron__fon { opacity: 1; }
.bron__okno { position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--paper); box-shadow: -30px 0 80px -30px rgba(0, 0, 0, .4); transform: translateX(104%); transition: transform .5s var(--ease); overflow-y: auto; overscroll-behavior: contain; }
.bron.otkryt .bron__okno { transform: none; }
.bron__x { position: sticky; top: 14px; float: right; margin: 14px 14px 0 0; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); background: var(--white); cursor: pointer; display: grid; place-items: center; color: var(--olive); }
.bron__telo { padding: 34px 34px 40px; }
.bron__telo h2 { font-size: 38px; margin-bottom: 12px; }
.bron__telo .metka { margin-bottom: 10px; }
.bron__text { font-size: 14.5px; color: var(--ink-2); line-height: 1.6; margin-bottom: 26px; }
.forma__blok { border: 0; margin: 0 0 22px; padding: 0; }
.forma__blok legend, .forma__legend { display: block; margin-bottom: 12px; font: 600 11.5px/1.3 var(--shrift); letter-spacing: .16em; text-transform: uppercase; color: var(--sage); padding: 0; }
.forma__blok legend em { font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--olive); margin-left: 8px; font-size: 13px; }
.forma__blok--ryad { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.forma__blok--ryad .forma__legend { margin: 0; }
.forma__vybrano { position: relative; margin-bottom: 20px; padding: 16px 48px 16px 18px; border-radius: 16px; background: var(--sage-soft); }
.forma__vybrano .metka { margin-bottom: 6px; }
.forma__vybrano p { white-space: pre-line; font-size: 13.5px; line-height: 1.55; color: var(--olive); }
.forma__vybrano button { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .7); cursor: pointer; display: grid; place-items: center; color: var(--olive); }
.forma__vybrano button .ik { width: 16px; height: 16px; }
.daty { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; margin-bottom: 12px; }
.daty__pole { display: grid; gap: 2px; padding: 12px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--white); cursor: pointer; text-align: left; transition: border-color .25s, box-shadow .25s; }
.daty__pole span { font-size: 11.5px; color: var(--ink-3); letter-spacing: .06em; text-transform: uppercase; }
.daty__pole b { font-size: 15px; color: var(--ink); }
.daty__pole.aktiv { border-color: var(--olive); box-shadow: inset 0 0 0 1px var(--olive); }
.daty__strelka { color: var(--ink-3); display: grid; place-items: center; }
.kal-vybor { padding: 14px; border-radius: 18px; border: 1px solid var(--line); background: var(--white); }
.kal-vybor__shapka { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.kal-vybor__shapka b { font-weight: 600; text-transform: capitalize; color: var(--olive); }
.kal-vybor__shapka button { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--paper-2); cursor: pointer; display: grid; place-items: center; color: var(--olive); }
.kal-vybor__shapka button:disabled { opacity: .35; cursor: default; }
.kal-vybor__shapka .ik { width: 17px; height: 17px; }
.kal-vybor__dni { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.kal-vybor__dni .dn { font-size: 11px; color: var(--ink-3); text-align: center; padding: 4px 0; text-transform: uppercase; letter-spacing: .06em; }
.den { position: relative; display: grid; place-content: center; justify-items: center; gap: 1px; min-height: 48px; border: 0; border-radius: 10px; background: transparent; cursor: pointer; font-size: 14px; color: var(--ink); transition: background .2s; padding: 4px 0; }
.den b { font-weight: 500; line-height: 1.1; }
.den i { font-style: normal; font-size: 10px; color: var(--ink-3); line-height: 1; }
.den.vyhodnoy b { color: #9B5A3C; }
.den.c-vyhodnye i, .den.c-prazdnik i { color: #9B5A3C; }
.den.c-predprazdnik i { color: #8A7A2E; }
.den:hover:not(:disabled) { background: var(--sage-soft); }
.den:disabled { opacity: .3; cursor: default; }
.den.zakryto:disabled { text-decoration: line-through; }
.den.segodnya b { text-decoration: underline; text-underline-offset: 3px; }
.den.v-diapazone { background: var(--sage-soft); border-radius: 0; }
.den.nachalo, .den.konec { background: var(--olive) !important; color: var(--paper); border-radius: 10px; }
.den.nachalo b, .den.konec b, .den.nachalo i, .den.konec i { color: var(--paper) !important; }
.kal-vybor .mel { margin-top: 10px; }
.forma__dop { display: grid; gap: 12px; margin-bottom: 18px; }
.forma__dop:empty { display: none; }
.forma__raschet { margin-bottom: 22px; padding: 18px; border-radius: 16px; background: var(--white); border: 1px solid var(--line); }
.raschet__stroki { display: grid; gap: 6px; }
.raschet__itog { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-3); }
.raschet__itog b { font: 300 32px/1 var(--shrift); color: var(--olive); white-space: nowrap; }
.pole__para { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pole { display: grid; gap: 6px; margin-bottom: 12px; }
.pole span { font-size: 12.5px; color: var(--ink-3); }
.pole input, .pole textarea { width: 100%; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--white); font: 400 15.5px/1.4 var(--shrift); color: var(--ink); transition: border-color .25s, box-shadow .25s; }
.pole textarea { resize: vertical; min-height: 64px; }
.pole input:focus, .pole textarea:focus { outline: none; border-color: var(--sage); box-shadow: 0 0 0 3px rgba(116, 140, 111, .2); }
.forma__oshibka { margin: 6px 0 12px; padding: 12px 14px; border-radius: 12px; background: #F6E3DC; color: #8A3A22; font-size: 14px; }
.soglasie { margin-top: 12px; font-size: 12px; color: var(--ink-3); line-height: 1.5; }
#forma { position: relative; }
#forma.otpravleno > *:not(.forma__gotovo) { visibility: hidden; }
.forma__gotovo { position: absolute; inset: 0; display: grid; align-content: start; justify-items: center; gap: 12px; padding-top: 30px; text-align: center; }
.forma__gotovo svg { width: 74px; height: 74px; fill: none; stroke: var(--sage); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.forma__gotovo circle, .forma__gotovo path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: risuy 1s var(--ease) forwards; }
.forma__gotovo path { animation-delay: .4s; }
.forma__gotovo h3 { font-size: 30px; }
.forma__gotovo p { font-size: 15px; color: var(--ink-2); max-width: 360px; line-height: 1.6; }
.bron__svyaz { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.bron__svyaz a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; }

/* ------------------------------------------------------------------ просмотр фото */
.lajtboks { position: fixed; inset: 0; z-index: 150; background: rgba(18, 22, 12, .94); display: grid; place-items: center; opacity: 0; transition: opacity .35s; }
.lajtboks.otkryt { opacity: 1; }
.lajtboks__kadr { margin: 0; max-width: min(1400px, 92vw); display: grid; justify-items: center; gap: 14px; }
.lajtboks__kadr img { max-width: 100%; max-height: 82svh; width: auto; height: auto; border-radius: 12px; transition: opacity .3s; }
.lajtboks__kadr figcaption { display: flex; gap: 16px; color: rgba(255, 255, 255, .85); font-size: 14px; }
.lajtboks__kadr em { font-style: normal; color: rgba(255, 255, 255, .5); }
.lajtboks__x, .lajtboks__str { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08); color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .25s; }
.lajtboks__x:hover, .lajtboks__str:hover { background: rgba(255, 255, 255, .2); }
.lajtboks__x { top: 20px; right: 20px; }
.lajtboks__str--l { left: 20px; top: 50%; transform: translateY(-50%); }
.lajtboks__str--l .ik { transform: scaleX(-1); }
.lajtboks__str--p { right: 20px; top: 50%; transform: translateY(-50%); }
.lajtboks.odin .lajtboks__str { display: none; }

/* ------------------------------------------------------------------ адаптив */
@media (max-width: 1180px) {
  .menu { gap: 22px; }
  .shapka__tel { display: none; }
  .doma-ryad { grid-template-columns: repeat(3, 1fr); }
  .doma-ryad--4 { grid-template-columns: repeat(2, 1fr); }
  .scenarii { grid-template-columns: repeat(2, 1fr); }
  .esche__setka { grid-template-columns: repeat(2, 1fr); }
  .dom-str__setka { grid-template-columns: minmax(0, 1fr) 340px; gap: 44px; }
  .fakty--4 { grid-template-columns: repeat(2, 1fr); }
  .fakty--4 > div:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .fakty--4 > div:nth-child(4) { border-top: 1px solid var(--line); }
}
@media (max-width: 1000px) {
  :root { --shapka: 64px; --pole: 20px; }
  .menu, .shapka__bron { display: none; }
  .burger { display: block; }
  .shapka__logo svg { height: 26px; }
  .razdel { padding: 80px 0; }
  .bron-bar { grid-template-columns: 1fr 1fr; padding: 8px; border-radius: 24px; }
  .bron-bar__pole { border-right: 0; border-bottom: 1px solid var(--line); border-radius: 14px; }
  .bron-bar__pole--chto { grid-column: span 2; }
  .bron-bar__pole--gosti { border-bottom: 1px solid var(--line); }
  .bron-bar__k { grid-column: span 2; margin-top: 6px; min-height: 54px; }
  .karta { grid-template-columns: minmax(0, 1fr); }
  .karta__legenda { grid-template-columns: 1fr 1fr; }
  .kontsept__verh, .zag-ryad, .zag-ryad:has(> .knopka) { grid-template-columns: 1fr; }
  .zag-ryad > .knopka { justify-self: start; }
  .povody { grid-template-columns: 1fr 1fr; }
  .dom-ryad, .lokaciya__setka, .bassein__setka, .banya__setka, .ostrov__setka, .prokat__setka, .doroga__setka { grid-template-columns: 1fr; }
  .dom-ryad--obr .dom-ryad__foto, .lokaciya--obr .lokaciya__foto { order: 0; }
  .dom-ryad__foto, .dom-ryad--obr .dom-ryad__foto { padding: 18px 50px 40px 0; }
  .dom-ryad--obr .dom-ryad__mal--1 { left: auto; right: 0; }
  .dom-ryad--obr .dom-ryad__mal--2 { left: auto; right: 12%; }
  .doma-spisok .obolochka { gap: 90px; }
  .dom-str__setka { grid-template-columns: 1fr; }
  .dom-str__bron { position: static; }
  .otzyvy-lenta { grid-template-columns: 1fr 1fr; }
  .lok-nav { grid-template-columns: repeat(2, 1fr); }
  .usloviya-setka { grid-template-columns: 1fr 1fr; }
  .podval__setka { grid-template-columns: 1fr 1fr; }
  .podval__adres { grid-column: span 2; }
  .str-shapka__znak { width: 70vw; right: -30vw; opacity: .35; }
  .lenta { --h: 440px; }
  .bassein__niz { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  body { font-size: 15.5px; }
  .razdel { padding: 68px 0; }
  .hero { min-height: 640px; height: auto; display: block; padding: calc(var(--shapka) + 90px) 0 0; }
  .hero__centr { margin: 0; padding: 0 var(--pole); }
  .lv { width: 64vw; }
  .hero__missiya { margin-top: 26px; }
  .hero__sezon { top: calc(var(--shapka) + 14px); left: var(--pole); right: var(--pole); justify-content: space-between; }
  .hero__podpis { display: none; }
  .hero__pod { flex-direction: column; gap: 6px; }
  .hero__pod i { display: none; }
  .bron-bar { position: relative; left: auto; bottom: auto; transform: none; width: auto; margin: 40px var(--pole) 22px; }
  .povody { grid-template-columns: 1fr; }
  .povod { min-height: 0; padding: 22px 22px 24px; }
  .povod__str { opacity: 1; transform: none; }
  .doma-ryad, .doma-ryad--4 { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; margin: 0 calc(-1 * var(--pole)); padding: 0 var(--pole) 8px; scrollbar-width: none; }
  .doma-ryad::-webkit-scrollbar { display: none; }
  .dk { flex: none; width: 66vw; scroll-snap-align: start; }
  .karta__legenda { grid-template-columns: 1fr; }
  .karta__okno { overflow-x: auto; margin: 0 calc(-1 * var(--pole)); padding: 0 var(--pole) 14px; scrollbar-width: none; }
  .karta__okno::-webkit-scrollbar { display: none; }
  .karta__okno .karta__ramka { width: 680px; }
  .karta__podskazka { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 13px; color: var(--ink-3); }
  .karta__podskazka .ik { width: 17px; height: 17px; }
  .karta__vsplyv, .karta__vsplyv.sleva, .karta__vsplyv.snizu, .karta__vsplyv.sleva.snizu { position: fixed; z-index: 45; left: 12px !important; right: 12px; top: auto !important; bottom: 12px; transform: none; width: auto; display: grid; grid-template-columns: 110px 1fr; box-shadow: 0 20px 60px -10px rgba(0, 0, 0, .5); }
  .karta__vsplyv-foto img { height: 100%; min-height: 120px; }
  .karta__vsplyv-tekst { padding: 14px 44px 14px 14px; }
  .tochka { width: 28px; height: 28px; }
  .tochka span { width: 24px; height: 24px; font-size: 10.5px; }
  .tochka--ostrov { width: auto; height: auto; padding: 5px 9px 5px 7px; font-size: 10.5px; }
  .fakty { grid-template-columns: 1fr 1fr; }
  .fakty > div:nth-child(3) { grid-column: span 2; border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .fakty--4 > div:nth-child(3) { grid-column: auto; }
  .fakty dd { font-size: 20px; }
  .dom-str__dve { grid-template-columns: 1fr; }
  .dom-str__lenta { padding-left: var(--pole); }
  .lenta { --h: 360px; }
  .lenta__kadr { max-width: 82vw; }
  .lenta__podpis { opacity: 1; transform: none; }
  .otzyvy-lenta { grid-template-columns: 1fr; }
  .lok-nav { grid-template-columns: 1fr 1fr; gap: 10px; }
  .lok-nav__k { padding: 16px; }
  .lok-nav__k b { font-size: 36px; }
  .lokaciya__usl { grid-template-columns: 1fr; }
  .lokaciya__usl > div:nth-child(even) { padding-left: 0; border-left: 0; }
  .mozaika { grid-auto-rows: 110px; gap: 8px; }
  .usloviya-setka { grid-template-columns: 1fr; }
  .scenarii, .esche__setka { grid-template-columns: 1fr; }
  .cifra b { font-size: 28px; }
  .kalk { padding: 20px 16px; }
  .kalk__seansy { grid-template-columns: 1fr; }
  .kalk__stoly, .kalk__prokat-setka { grid-template-columns: 1fr; }
  .bassein__ceny { padding: 22px 18px; }
  .prays-spisok dd { max-width: 50%; }
  .kontakty > div { grid-template-columns: 1fr; gap: 4px; }
  .podval__setka { grid-template-columns: 1fr; }
  .podval__adres { grid-column: auto; }
  .podval { padding-bottom: 100px; }
  .podval__logo svg { height: 48px; }
  .prizyv { padding: 80px 0; }
  .str-shapka { padding-top: calc(var(--shapka) + 40px); }
  .str-shapka__lead { font-size: 16.5px; }
  .dom-str__shapka { padding-top: calc(var(--shapka) + 28px); }
  .taby { width: 100%; }
  .tab { flex: 1; justify-content: center; padding: 0 12px; }
  .pole__para { grid-template-columns: 1fr; }
  .bron__okno { top: auto; height: 92svh; width: 100%; border-radius: 26px 26px 0 0; transform: translateY(104%); }
  .bron__telo { padding: 22px 18px 34px; }
  .bron__telo h2 { font-size: 30px; }
  .den { min-height: 44px; }
  .niz-bar { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: 12px; display: flex; gap: 10px; padding: 8px; border-radius: 999px; background: rgba(244, 242, 234, .97); box-shadow: 0 16px 40px -14px rgba(0, 0, 0, .45); transform: translateY(140%); transition: transform .45s var(--ease); }
  .niz-bar.vidno { transform: none; }
  body.bron-otkryta .niz-bar, body.menu-otkryto .niz-bar { transform: translateY(140%); }
  .niz-bar__tel { width: 50px; height: 50px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--white); border: 1px solid var(--line); color: var(--olive); }
  .niz-bar__tel svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; }
  .niz-bar__bron { flex: 1; min-height: 50px; }
  .lajtboks__str { top: auto; bottom: 22px; transform: none; }
  .lajtboks__str--l { left: 22px; }
  .lajtboks__str--p { right: 22px; }
}

/* ------------------------------------------------------------------ свадьбы и праздники (09.10: «подсветить мероприятия») */
.metka--svet { color: var(--sage-3); }
.menu a.menu__akcent { padding: 9px 16px; border: 1px solid currentColor; border-radius: 999px; transition: background .3s, color .3s, border-color .3s; }
.menu a.menu__akcent::after { display: none; }
.menu a.menu__akcent:hover, .menu a.menu__akcent.aktiv { background: var(--olive); border-color: var(--olive); color: var(--paper); }
.shapka.na-hero .menu a.menu__akcent:hover, .shapka.na-hero .menu a.menu__akcent.aktiv { background: var(--paper); border-color: var(--paper); color: var(--olive); }
.mmenu__spisok a small { display: block; margin-left: auto; font: 500 11px/1.3 var(--shrift); letter-spacing: .08em; text-transform: uppercase; color: var(--sage); text-align: right; max-width: 40%; }

.svadby-blok { background: var(--olive); color: var(--paper); overflow: hidden; }
.svadby-blok h2 { color: var(--paper); max-width: 15ch; }
.svadby-blok__verh { display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px 70px; align-items: end; margin-bottom: 56px; }
.svadby-blok__text { font-size: 17px; line-height: 1.7; color: rgba(244, 242, 234, .82); }
.lok-karty { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lok-karta { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 22px; overflow: hidden; text-decoration: none; color: #fff; background: var(--olive-2); }
.lok-karta__foto, .lok-karta__foto img { position: absolute; inset: 0; width: 100%; height: 100%; }
.lok-karta__foto img { object-fit: cover; transition: transform 1.2s var(--ease); }
.lok-karta:hover .lok-karta__foto img { transform: scale(1.05); }
.lok-karta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 26, 10, 0) 40%, rgba(20, 26, 10, .78) 100%); }
.lok-karta__net { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 20px; text-align: center; background: var(--olive-2); color: var(--sage-2); }
.lok-karta__net svg { width: 52%; height: auto; }
.lok-karta__net em { font-style: normal; font-size: 13px; color: rgba(244, 242, 234, .7); }
.lok-karta__niz { position: absolute; z-index: 1; left: 20px; right: 20px; bottom: 20px; display: flex; align-items: flex-end; gap: 14px; }
.lok-karta__niz b { font: 200 54px/0.9 var(--shrift); }
.lok-karta__niz > span { display: grid; gap: 2px; font-size: 12.5px; color: rgba(255, 255, 255, .8); line-height: 1.35; }
.lok-karta__niz em { font-style: normal; font-weight: 600; font-size: 16px; color: #fff; }
.lok-karta__niz .ik { margin-left: auto; width: 22px; height: 22px; opacity: .8; transition: transform .4s var(--ease); }
.lok-karta:hover .lok-karta__niz .ik { transform: translateX(4px); }
.cifry--svet { margin-top: 44px; border-color: rgba(244, 242, 234, .18); }
.cifry--svet .cifra + .cifra { border-color: rgba(244, 242, 234, .18); }
.cifry--svet .cifra b { color: var(--paper); }
.cifry--svet .cifra span { color: rgba(244, 242, 234, .65); }
.prizyv__tel { margin-top: 22px; font-size: 14px; color: rgba(244, 242, 234, .7); }
.prizyv__tel a { color: var(--paper); font-weight: 600; text-decoration: none; white-space: nowrap; }

/* полоса «проживание / праздник» на первом экране */
.bron-bar-obertka { position: absolute; left: 50%; bottom: 34px; transform: translateX(-50%); width: min(1120px, calc(100% - 2 * var(--pole))); opacity: 0; animation: proyav 1s ease 2.2s forwards; }
.bron-bar-obertka .bron-bar { position: static; transform: none; width: 100%; opacity: 1; animation: none; }
.bron-bar__taby { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 10px; border-radius: 999px; background: rgba(20, 26, 10, .38); border: 1px solid rgba(255, 255, 255, .25); }
.bron-bar__taby button { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: #fff; cursor: pointer; font: 600 13px/1 var(--shrift); transition: background .3s, color .3s; }
.bron-bar__taby button .ik { width: 17px; height: 17px; }
.bron-bar__taby button[aria-selected="true"] { background: var(--paper); color: var(--olive); }

/* страница праздников */
.sv-hero { position: relative; isolation: isolate; min-height: 86svh; display: flex; align-items: flex-end; color: #fff; padding: calc(var(--shapka) + 60px) 0 130px; overflow: hidden; }
.sv-hero__foto { position: absolute; inset: 0; z-index: -2; background: var(--olive-2); }
.sv-hero__foto img { width: 100%; height: 100%; object-fit: cover; animation: svHero 14s ease-out both; }
@keyframes svHero { from { transform: scale(1.08); } to { transform: scale(1); } }
.sv-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 26, 10, .55) 0%, rgba(20, 26, 10, .15) 55%, rgba(20, 26, 10, 0) 80%), linear-gradient(180deg, rgba(20, 26, 10, .45) 0%, rgba(20, 26, 10, .1) 35%, rgba(20, 26, 10, .7) 100%); }
.sv-hero__tekst { width: 100%; }
.sv-hero h1 { color: #fff; max-width: 14ch; font-size: clamp(44px, 6.4vw, 92px); }
.sv-hero__lead { max-width: 620px; margin-top: 22px; font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, .88); }
.kroshki--svet, .kroshki--svet a { color: rgba(255, 255, 255, .8); }
.kroshki--svet b { color: #fff; }
.lok-nav--nad { position: relative; z-index: 2; margin-top: -84px; max-width: none; }
.lok-nav--nad .lok-nav__k { box-shadow: var(--ten); border-color: transparent; }
.preim { background: var(--paper); }
.preim__setka { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.preim__k { padding: 30px 28px; border-radius: var(--r); background: var(--white); border: 1px solid var(--line); }
.preim__k span { font: 500 12px var(--shrift); color: var(--sage); letter-spacing: .1em; }
.preim__k b { display: block; margin: 14px 0 10px; font: 300 26px/1.2 var(--shrift-zag); color: var(--olive); }
.preim__k p { font-size: 15px; line-height: 1.6; color: var(--ink-2); }
.den-blok { background: var(--olive); color: var(--paper); }
.den-blok h2 { color: var(--paper); margin-bottom: 30px; }
.den-blok__setka { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px 90px; align-items: start; }
.den__shagi { list-style: none; margin: 0; padding: 0; position: relative; }
.den__shagi::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 1px; background: rgba(244, 242, 234, .25); }
.den__shagi li { position: relative; display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 0 14px 34px; border-bottom: 1px solid rgba(244, 242, 234, .12); }
.den__shagi li::before { content: ""; position: absolute; left: 2px; top: 20px; width: 11px; height: 11px; border-radius: 50%; background: var(--sage-2); box-shadow: 0 0 0 4px rgba(141, 163, 136, .25); }
.den__shagi b { font: 300 22px/1.2 var(--shrift); color: var(--paper); font-variant-numeric: tabular-nums; }
.den__shagi span { font-size: 16px; color: rgba(244, 242, 234, .85); align-self: center; }
.den__note { margin-top: 16px; font-size: 13px; color: rgba(244, 242, 234, .6); }
.pary { padding: 36px 34px; border-radius: var(--r); background: rgba(244, 242, 234, .06); border: 1px solid rgba(244, 242, 234, .16); }
.galki--svet li { color: rgba(244, 242, 234, .88); }
.galki--svet .ik { color: var(--sage-3); }
.sv-galereya { background: var(--paper); }
.sv-galereya__setka { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; grid-auto-flow: dense; gap: 12px; }
.sv-galereya__k { position: relative; border: 0; padding: 0; border-radius: 18px; overflow: hidden; cursor: zoom-in; background: var(--linen); }
.sv-galereya__k img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.sv-galereya__k:hover img { transform: scale(1.04); }
.sv-galereya__k:nth-child(1), .sv-galereya__k:nth-child(8) { grid-row: span 2; }
.sv-galereya__k:nth-child(4) { grid-column: span 2; }
@media (max-width: 1000px) {
  .svadby-blok__verh, .den-blok__setka { grid-template-columns: 1fr; }
  .lok-karty { grid-template-columns: repeat(2, 1fr); }
  .preim__setka { grid-template-columns: 1fr 1fr; }
  .sv-galereya__setka { grid-template-columns: repeat(3, 1fr); }
  .bron-bar-obertka .bron-bar { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .bron-bar-obertka { position: relative; left: auto; bottom: auto; transform: none; width: auto; margin: 40px var(--pole) 22px; }
  .bron-bar-obertka .bron-bar { margin: 0; }
  .bron-bar__taby { display: flex; width: 100%; }
  .bron-bar__taby button { flex: 1; justify-content: center; padding: 0 8px; font-size: 12px; }
  .lok-karty { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 calc(-1 * var(--pole)); padding: 0 var(--pole) 6px; scrollbar-width: none; }
  .lok-karty::-webkit-scrollbar { display: none; }
  .lok-karta { flex: none; width: 70vw; scroll-snap-align: start; }
  .preim__setka { grid-template-columns: 1fr; }
  .preim__k { padding: 24px 22px; }
  .sv-hero { min-height: 92svh; padding-bottom: 60px; }
  .lok-nav--nad { margin-top: 20px; }
  .den__shagi li { grid-template-columns: 1fr; gap: 2px; }
  .pary { padding: 26px 20px; }
  .sv-galereya__setka { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; gap: 8px; }
  .sv-galereya__k:nth-child(4) { grid-column: span 2; }
  .niz-bar__meropr { flex: none; min-height: 50px; padding: 0 16px; }
  .mmenu__spisok a { flex-wrap: wrap; }
  .mmenu__spisok a small { max-width: none; margin-left: 30px; width: 100%; text-align: left; }
}

/* ------------------------------------------------------------------ онлайн-бронь Bnovo (страница #/bron) */
main.str-bron .str-shapka { padding-bottom: 34px; }
main.str-bron .str-shapka h1 { font-size: clamp(36px, 4.6vw, 64px); max-width: 16ch; }
main.str-bron .str-shapka__lead { margin-top: 18px; }
.bnovo { padding: 0 0 100px; }
.bnovo__filtr { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 14px; padding: 12px 14px 12px 18px; border-radius: var(--r-mal); background: var(--sage-soft); color: var(--olive); font-size: 14.5px; font-weight: 500; }
.bnovo__filtr > span { display: inline-flex; align-items: center; gap: 10px; }
.bnovo__filtr .ik { color: var(--sage); }
.bnovo__ramka { position: relative; padding: 12px; border-radius: var(--r); background: var(--white); box-shadow: var(--ten); }
.bnovo.zhdyom .bnovo__ramka { min-height: 446px; }
#booking_iframe iframe { border-radius: calc(var(--r) - 10px); }
/* модуль так и не встал (скрипт Bnovo не загрузился) — не оставлять пустое поле с одной подписью */
#booking_iframe:not(:has(iframe)) { display: none; }
.bnovo__zhdyom { position: absolute; z-index: 3; inset: 12px 12px auto; height: 420px; display: grid; place-content: center; justify-items: center; gap: 16px; border-radius: calc(var(--r) - 10px); background: var(--paper-2); color: var(--ink-3); font-size: 14.5px; }
.bnovo__krug { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--sage-3); border-top-color: var(--olive); animation: bnovoKrug .9s linear infinite; }
@keyframes bnovoKrug { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bnovo__krug { animation-duration: 2.4s; } }
.bnovo__zapas { position: relative; z-index: 4; margin: 0 0 12px; padding: 28px 26px; border-radius: calc(var(--r) - 10px); background: var(--paper-2); border: 1px solid var(--line); }
.bnovo__zapas p { max-width: 620px; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.bnovo__zapas .knopki { margin-top: 18px; }
.bnovo__niz { display: grid; grid-template-columns: 1.2fr 1fr; gap: 26px 48px; align-items: start; margin-top: 40px; }
.bnovo__fakty li { font-size: 14.5px; }
.bnovo__svyaz { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.chip--onlayn { border-style: dashed; border-color: var(--sage); color: var(--olive); }
.chip--onlayn .ik { width: 16px; height: 16px; }
body.s-bron .niz-bar { display: none; }
@media (max-width: 1000px) {
  .bnovo__niz { grid-template-columns: 1fr; }
  .bnovo__svyaz { justify-content: flex-start; }
}
@media (max-width: 700px) {
  main.str-bron .str-shapka { padding-bottom: 20px; }
  main.str-bron .str-shapka .kroshki { margin-bottom: 20px; }
  .bnovo { padding-bottom: 64px; }
  .bnovo > .obolochka { padding: 0 6px; }
  .bnovo__filtr { margin: 0 8px 12px; }
  .bnovo__ramka { padding: 0; border-radius: 0; background: transparent; box-shadow: none; }
  #booking_iframe iframe { border-radius: 0; }
  .bnovo__zhdyom { inset: 0 0 auto; border-radius: var(--r-mal); }
  .bnovo__zapas { margin: 0 8px 12px; padding: 22px 18px; }
  .bnovo__niz { margin-top: 30px; padding: 0 calc(var(--pole) - 6px); }
}

/* ------------------------------------------------------------------ 152-ФЗ: согласие, cookie, реквизиты */
.soglasie-galka { position: relative; display: flex; align-items: flex-start; gap: 12px; margin: 4px 0 14px; cursor: pointer; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.soglasie-galka input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.soglasie-galka i { flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px; border: 1.5px solid var(--sage); background: var(--white); display: grid; place-items: center; transition: background .2s, border-color .2s; }
.soglasie-galka i::after { content: ""; width: 10px; height: 6px; border: solid #fff; border-width: 0 0 2px 2px; transform: rotate(-45deg) translate(1px, -1px); opacity: 0; transition: opacity .15s; }
.soglasie-galka input:checked + i { background: var(--olive); border-color: var(--olive); }
.soglasie-galka input:checked + i::after { opacity: 1; }
.soglasie-galka input:focus-visible + i { outline: 2px solid var(--sage); outline-offset: 2px; }
.soglasie-galka a, .soglasie a { color: var(--olive); }
.podval__pravo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding-top: 14px; margin-top: 14px; border-top: 1px solid rgba(244, 242, 234, .1); font-size: 12px; line-height: 1.5; color: rgba(244, 242, 234, .5); }
.podval__pravo nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.podval__pravo a, .podval__pravo button { color: rgba(244, 242, 234, .75); font: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.podval__pravo a:hover, .podval__pravo button:hover { color: var(--paper); }
.cookie { position: fixed; z-index: 85; left: 18px; bottom: 18px; max-width: 460px; padding: 18px 20px; border-radius: var(--r-mal); background: var(--paper-2); color: var(--ink-2); box-shadow: 0 20px 50px -18px rgba(30, 40, 15, .5); border: 1px solid var(--line); font-size: 13.5px; line-height: 1.55; }
.cookie a { color: var(--olive); }
.cookie__knopki { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
@media (max-width: 700px) {
  .cookie { left: 10px; right: 10px; bottom: 10px; max-width: none; padding: 16px; }
  .podval__pravo { flex-direction: column; }
}
