/* «ЛукаМорье» — вторая версия (06.10.2026). Ритм, шрифты и движения — по образцу priezai.ru (слово Алексея),
   свой стиль — из их логотипа и их сказки: ночь у лукоморья, золото цепи, спил бревна, берёста, частокол.
   Тёмные секции — годовые кольца спила; светлые — спил и берёста; стык секций — частокол; метка — звено цепи. */

:root {
  --noch: #0B1F1C;      /* ночь у лукоморья */
  --dub: #12302B;       /* дубрава */
  --karta: #1A3D37;
  --liniya: #24504A;
  --zoloto: #F2B33D;    /* золото цепи */
  --zoloto-2: #F7CB6B;
  --zoloto-t: #9A6512;  /* золото на светлом */
  --zakat: #E8742A;
  --spil: #F4E6CC;
  --spil-2: #EAD3AC;
  --beresta: #FBF8F1;
  --kora: #6E3B1E;
  --med: #B4561A;       /* выделение на светлом */
  --t-svet: #F3EBDD;
  --t-svet-2: #B9C6BC;
  --t: #1F2420;
  --t-2: #5C5A50;
  --zag: "Yanone Kaffeesatz", "Arial Narrow", sans-serif;
  --txt: "Mulish", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 100px; }
body { margin: 0; font: 400 17px/1.6 var(--txt); color: var(--t); background: var(--noch); font-variant-numeric: lining-nums; font-synthesis: none; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video { display: block; max-width: 100%; }
figure { margin: 0; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
h1, h2, h3 { font-family: var(--zag); font-weight: 700; text-transform: uppercase; margin: 0; letter-spacing: .01em; }
h2 { font-size: clamp(46px, 5.4vw, 80px); line-height: .92; margin: 10px 0 18px; }
h3 { font-size: 30px; line-height: 1; letter-spacing: .02em; }
p { margin: 0 0 14px; }
em { font-style: normal; }
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; }
section { position: relative; }
.lead { font-size: 19px; line-height: 1.6; max-width: 640px; }
.foto-kn { display: block; width: 100%; border: 0; padding: 0; margin: 0; background: none; cursor: zoom-in; font: inherit; color: inherit; text-align: left; }
.melko { font-size: 13px; line-height: 1.5; color: #7B6F5F; margin: 12px 0 0; }

/* ---- секции: тёмные — годовые кольца спила, светлые — спил и берёста ---- */
.s-noch, .s-dub { color: var(--t-svet); }
.s-noch { background-color: var(--noch); }
.s-dub { background-color: var(--dub); }
.s-noch { --fon: 11, 31, 28; }
.s-dub { --fon: 18, 48, 43; }
.s-noch, .s-dub {
  background-image:
    radial-gradient(circle at var(--kc, 100% 0%), rgba(var(--fon), 0) 0, rgba(var(--fon), 0) 16%, rgba(var(--fon), .94) 64%),
    repeating-radial-gradient(circle at var(--kc, 100% 0%), rgba(242, 179, 61, .1) 0, rgba(242, 179, 61, .1) 1.2px, rgba(242, 179, 61, 0) 2.8px, rgba(242, 179, 61, 0) 19px),
    repeating-radial-gradient(circle at var(--kc, 100% 0%), rgba(242, 179, 61, .07) 0, rgba(242, 179, 61, .07) 1px, rgba(242, 179, 61, 0) 2.6px, rgba(242, 179, 61, 0) 31px);
}
.hero { --kc: 74% 64%; }
.zony { --kc: 0% 0%; }
.restoran { --kc: 0% 100%; }
.otzyvy { --kc: 100% 0%; }
.gde { --kc: 100% 40%; }
.podval { --kc: 50% 0%; }
.s-noch em, .s-dub em { color: var(--zoloto); }
.s-noch .lead, .s-dub .lead { color: var(--t-svet-2); }
.s-spil { background-color: var(--spil); color: var(--t);
  background-image: repeating-radial-gradient(circle at 50% -60%, rgba(110, 59, 30, .055) 0, rgba(110, 59, 30, .055) 1px, rgba(110, 59, 30, 0) 2.6px, rgba(110, 59, 30, 0) 21px); }
.s-beresta { background-color: var(--beresta); color: var(--t);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='140'%3E%3Cg fill='%231F2420' fill-opacity='.075'%3E%3Crect x='12' y='18' width='38' height='3' rx='1.5'/%3E%3Crect x='120' y='10' width='22' height='2.5' rx='1.25'/%3E%3Crect x='160' y='52' width='44' height='3.5' rx='1.75'/%3E%3Crect x='30' y='70' width='18' height='2' rx='1'/%3E%3Crect x='78' y='96' width='52' height='3' rx='1.5'/%3E%3Crect x='170' y='118' width='26' height='2.5' rx='1.25'/%3E%3Crect x='6' y='122' width='30' height='2.5' rx='1.25'/%3E%3Crect x='96' y='44' width='14' height='2' rx='1'/%3E%3C/g%3E%3C/svg%3E"); }
.s-spil em, .s-beresta em { color: var(--med); }
.s-spil .lead, .s-beresta .lead { color: var(--t-2); }

/* стык секций — частокол цветом следующей секции */
.styk { position: absolute; left: 0; right: 0; bottom: -1px; height: 44px; z-index: 2; pointer-events: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='44'%3E%3Cpath d='M0 17L10 8L20 17V44H0zM22 9L32 0L42 9V44H22zM44 20L54 11L64 20V44H44zM66 13L76 4L86 13V44H66zM88 22L98 13L108 22V44H88zM110 11L120 2L130 11V44H110z'/%3E%3C/svg%3E") repeat-x left bottom / 132px 44px;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='44'%3E%3Cpath d='M0 17L10 8L20 17V44H0zM22 9L32 0L42 9V44H22zM44 20L54 11L64 20V44H44zM66 13L76 4L86 13V44H66zM88 22L98 13L108 22V44H88zM110 11L120 2L130 11V44H110z'/%3E%3C/svg%3E") repeat-x left bottom / 132px 44px; }
.styk-spil { background: var(--spil); }
.styk-dub { background: var(--dub); }
.styk-noch { background: var(--noch); }
.styk-beresta { background: var(--beresta); }

/* метка — золотое звено цепи */
.metka { display: flex; align-items: center; gap: 12px; font: 700 12.5px/1.3 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--zoloto); margin: 0 0 8px; }
.metka::before { content: ""; flex: none; width: 34px; height: 17px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 20'%3E%3Crect x='1.5' y='3' width='21' height='14' rx='7' fill='none' stroke='%23F2B33D' stroke-width='3'/%3E%3Crect x='17.5' y='7.2' width='21' height='5.6' rx='2.8' fill='none' stroke='%23F2B33D' stroke-width='3'/%3E%3C/svg%3E") no-repeat center / contain; }
.metka-svet { color: var(--zoloto-t); }
.metka-svet::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 20'%3E%3Crect x='1.5' y='3' width='21' height='14' rx='7' fill='none' stroke='%239A6512' stroke-width='3'/%3E%3Crect x='17.5' y='7.2' width='21' height='5.6' rx='2.8' fill='none' stroke='%239A6512' stroke-width='3'/%3E%3C/svg%3E"); }

/* ---- кнопки: Yanone 600, «вдавленный низ» ---- */
.kn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; padding: 12px 28px 15px; border-radius: 14px; border: 0;
  font: 600 22px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform .2s, background-color .2s, box-shadow .2s, color .2s; }
.kn svg { width: 20px; height: 20px; flex: none; }
.kn-zoloto { background: var(--zoloto); color: var(--noch); box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 10px 24px rgba(242, 179, 61, .18); }
.kn-zoloto:hover { background: var(--zoloto-2); transform: translateY(-2px); }
.kn-zoloto:active { transform: translateY(1px); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .2); }
.kn-kontur { background: transparent; color: var(--t-svet); box-shadow: inset 0 0 0 2px rgba(243, 235, 221, .38); }
.kn-kontur:hover { color: var(--zoloto); box-shadow: inset 0 0 0 2px var(--zoloto); }
.s-spil .kn-kontur, .s-beresta .kn-kontur { color: var(--t); box-shadow: inset 0 0 0 2px rgba(31, 36, 32, .28); }
.s-spil .kn-kontur:hover, .s-beresta .kn-kontur:hover { color: var(--med); box-shadow: inset 0 0 0 2px var(--med); }
.kn-noch { background: var(--noch); color: var(--zoloto); box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .35); }
.kn-noch:hover { transform: translateY(-2px); }
.kn-mal { min-height: 48px; padding: 10px 18px 12px; font-size: 19px; border-radius: 12px; }
.kn-shir { width: 100%; }

/* ---- шапка ---- */
.shapka { position: -webkit-sticky; position: sticky; top: 0; z-index: 50; color: var(--t-svet); background: rgba(11, 31, 28, .93);
  -webkit-backdrop-filter: saturate(1.3) blur(10px); backdrop-filter: saturate(1.3) blur(10px); border-bottom: 1px solid rgba(242, 179, 61, .14); }
.shapka-in { max-width: 1440px; margin: 0 auto; padding: 0 32px; height: 92px; display: flex; align-items: center; gap: 24px; }
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; }
.logo-z { width: 64px; height: 64px; }
.logo-t b { display: block; font: 700 31px/1 var(--zag); letter-spacing: .03em; text-transform: uppercase; color: var(--zoloto); }
.logo-t i { display: block; font: 700 10.5px/1.3 var(--txt); font-style: normal; letter-spacing: .15em; text-transform: uppercase; color: #8FC97A; margin-top: 3px; }
.menu { display: flex; gap: 16px; margin-left: auto; }
.menu a { font: 600 19px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; white-space: nowrap; color: var(--t-svet); opacity: .86; padding: 8px 0 6px; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s, opacity .2s; }
.menu a:hover, .menu a.on { opacity: 1; color: var(--zoloto); border-color: var(--zoloto); }
.sh-tel { display: flex; align-items: center; gap: 8px; font: 600 22px/1 var(--zag); letter-spacing: .03em; text-decoration: none; white-space: nowrap; }
.sh-tel svg { width: 18px; height: 18px; color: var(--zoloto); flex: none; }
.sh-kn { min-height: 48px; padding: 10px 20px 13px; font-size: 20px; flex: none; }
.burger { display: none; width: 48px; height: 48px; border-radius: 12px; border: 1px solid rgba(242, 179, 61, .3); background: transparent; padding: 0 12px; flex-direction: column; justify-content: center; gap: 5px; }
.burger i { display: block; height: 2px; border-radius: 2px; background: var(--zoloto); transition: transform .25s, opacity .25s; }
.shapka.otkr .burger i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.shapka.otkr .burger i:nth-child(2) { opacity: 0; }
.shapka.otkr .burger i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---- 1. первый экран ---- */
.hero { padding: 34px 0 132px; overflow: hidden; }
.slovo { font-size: 200px; line-height: .8; margin: 4px 0 30px; white-space: nowrap; letter-spacing: .015em; }
.slovo span { display: inline-block; background: linear-gradient(180deg, #FCDB8A 0%, #F2B33D 46%, #C9861B 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 6px 0 rgba(0, 0, 0, .3)); padding: 0 .02em; }
.hero-setka { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: start; }
.hero-zag { font-size: clamp(36px, 3.6vw, 54px); line-height: .96; margin: 0 0 16px; }
.hero-kn { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0 22px; }
.akciya { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 14px; background: rgba(232, 116, 42, .12); border: 1px solid rgba(232, 116, 42, .45); text-decoration: none; color: var(--t-svet); max-width: 540px; transition: background-color .2s; }
.akciya:hover { background: rgba(232, 116, 42, .2); }
.akciya b { font: 700 21px/1 var(--zag); text-transform: uppercase; letter-spacing: .04em; color: var(--zakat); white-space: nowrap; }
.akciya span { font-size: 15px; line-height: 1.35; }
.akciya svg { width: 20px; height: 20px; flex: none; margin-left: auto; color: var(--zakat); }
.akciya-2 { margin-top: 10px; background: rgba(242, 179, 61, .1); border-color: rgba(242, 179, 61, .45); }
.akciya-2:hover { background: rgba(242, 179, 61, .18); }
.akciya-2 b, .akciya-2 svg { color: var(--zoloto); }
.cifry { list-style: none; margin: 30px 0 0; padding: 22px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; border-top: 1px solid rgba(242, 179, 61, .2); }
.cifry b { display: block; font: 700 44px/1 var(--zag); color: var(--zoloto); white-space: nowrap; }
.cifry span { display: block; font-size: 13.5px; line-height: 1.35; color: var(--t-svet-2); margin-top: 6px; }

.hero-media { position: relative; padding-top: 60px; }
.storis { position: relative; border-radius: 24px; overflow: hidden; background: #08170F; box-shadow: 0 30px 70px rgba(0, 0, 0, .45); }
.storis::before { content: ""; display: block; padding-top: 76%; }
.st-kadry { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
.st-kadr { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.1s ease; overflow: hidden; }
.st-kadr img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.07); transition: transform 7.5s linear; }
.st-kadr.on { opacity: 1; }
.st-kadr.on img { transform: scale(1); }
.storis::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, rgba(8, 23, 20, 0), rgba(8, 23, 20, .55)); pointer-events: none; z-index: 1; }
.st-polosy { position: absolute; top: 14px; left: 16px; right: 16px; display: flex; gap: 6px; z-index: 3; }
.st-polosy i { flex: 1; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, .35); overflow: hidden; }
.st-polosy i b { display: block; height: 100%; width: 0; background: #fff; }
.st-polosy i.byl b { width: 100%; }
.st-polosy i.on b { -webkit-animation: stPolosa 6.5s linear forwards; animation: stPolosa 6.5s linear forwards; }
@-webkit-keyframes stPolosa { to { width: 100%; } }
@keyframes stPolosa { to { width: 100%; } }
.st-nav { position: absolute; top: 0; bottom: 0; width: 34%; z-index: 2; background: none; border: 0; padding: 0; }
.st-nazad { left: 0; cursor: w-resize; }
.st-vpered { right: 0; cursor: e-resize; }
.st-podpis { position: absolute; left: 18px; bottom: 18px; z-index: 3; margin: 0; padding: 9px 15px 10px; border-radius: 999px; background: rgba(11, 31, 28, .74); font: 600 19px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; color: var(--t-svet); max-width: calc(100% - 210px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pilyulya { position: absolute; right: 18px; bottom: 18px; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 8px 18px 8px 8px; border-radius: 999px; border: 0; background: var(--zoloto); color: var(--noch); font: 600 19px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; box-shadow: 0 8px 20px rgba(0, 0, 0, .3); transition: transform .2s; }
.pilyulya:hover { transform: translateY(-2px); }
.pilyulya svg { width: 32px; height: 32px; padding: 8px 7px 8px 9px; border-radius: 50%; background: var(--noch); color: var(--zoloto); }

/* вывеска на двух золотых цепях */
.vyveska { position: absolute; top: -10px; left: 26px; z-index: 5; width: 224px; -webkit-transform-origin: 50% 0; transform-origin: 50% 0; }
.vyv-cepi { display: block; width: 224px; height: 72px; overflow: visible; }
.cep-a { fill: none; stroke: #D69A2C; stroke-width: 7; stroke-linecap: round; stroke-dasharray: 13 4 5 4; }
.cep-b { fill: none; stroke: var(--noch); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 7 19; stroke-dashoffset: -3; }
.vyv-doska { position: relative; margin-top: -8px; padding: 13px 16px 15px; border-radius: 14px; text-align: center; color: #FBE7B5;
  background: linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(0, 0, 0, .2)), repeating-linear-gradient(180deg, #6E3B1E 0, #6E3B1E 7px, #7A4422 7px, #7A4422 9px, #663517 9px, #663517 15px);
  box-shadow: inset 0 0 0 3px #C9861B, inset 0 0 0 5px rgba(0, 0, 0, .35), 0 18px 34px rgba(0, 0, 0, .45); }
.vyv-doska::before, .vyv-doska::after { content: ""; position: absolute; top: 7px; width: 9px; height: 9px; border-radius: 50%; background: #F2C35F; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .3); }
.vyv-doska::before { left: 26px; }
.vyv-doska::after { right: 26px; }
.vyv-doska small { display: block; font: 700 12px/1.2 var(--txt); letter-spacing: .22em; text-transform: uppercase; color: #E9C98A; opacity: .9; }
.vyv-doska b { display: block; font: 700 46px/.95 var(--zag); letter-spacing: .06em; text-transform: uppercase; color: var(--zoloto); margin: 5px 0 3px; text-shadow: 0 2px 0 rgba(0, 0, 0, .35); }
.vyv-doska span { display: block; font: 600 19px/1.1 var(--zag); letter-spacing: .05em; text-transform: uppercase; color: #FBE7B5; }
.vyv-lampa { position: absolute; top: 13px; left: 50%; margin-left: -60px; width: 9px; height: 9px; border-radius: 50%; background: #62D26F; box-shadow: 0 0 0 3px rgba(98, 210, 111, .22), 0 0 14px #62D26F; }
.vyveska.zakr .vyv-lampa { background: var(--zakat); box-shadow: 0 0 0 3px rgba(232, 116, 42, .22), 0 0 12px var(--zakat); }
.vyveska.zakr .vyv-doska b { color: #F6C49B; }

/* ---- 2. тропа с котом учёным ---- */
.tropa { padding: 110px 0 150px; }
.tropa-shapka { display: grid; grid-template-columns: 1fr 300px; gap: 64px; align-items: center; margin-bottom: 30px; }
.stih { margin: 26px 0 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--zoloto-t); font: italic 400 19px/1.6 var(--txt); color: #4B3E2E; white-space: pre-line; }
.stih cite { display: block; margin-top: 8px; font: 700 12px/1.3 var(--txt); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--zoloto-t); }

.vert-video { position: relative; width: 100%; max-width: 300px; border-radius: 22px; overflow: hidden; background: #0B1F1C; box-shadow: 0 26px 60px rgba(46, 28, 12, .3); cursor: zoom-in; }
.vert-video::before { content: ""; display: block; padding-top: 177.78%; }
.vert-video video, .vert-video img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.vv-kn { position: absolute; top: 14px; right: 14px; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; border: 0; background: rgba(11, 31, 28, .72); color: var(--t-svet); font: 600 16px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; }
.vv-kn svg { width: 24px; height: 24px; padding: 6px 5px 6px 7px; border-radius: 50%; background: var(--zoloto); color: var(--noch); }
.vv-podpis { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; margin: 0; padding: 40px 16px 14px; background: linear-gradient(180deg, rgba(11, 31, 28, 0), rgba(11, 31, 28, .85)); color: var(--t-svet); font-size: 13.5px; line-height: 1.4; }

.tropa-put { position: relative; padding: 30px 0 10px; }
.cep { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 0; }
.tropa .cep-a { stroke: #C98A22; }
.tropa .cep-b { stroke: var(--spil); }
.ostanovki { list-style: none; margin: 0; padding: 0; position: relative; z-index: 1; }
.ost { display: grid; grid-template-columns: 1fr 130px 1fr; align-items: center; margin-bottom: -46px; }
.ost:last-child { margin-bottom: 0; }
.ost-m { grid-column: 2; grid-row: 1; justify-self: center; position: relative; width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center;
  font: 700 32px/1 var(--zag); color: #2B1A0E; text-shadow: 0 1px 0 rgba(255, 236, 200, .6);
  background: radial-gradient(circle at 50% 50%, #EDC18A 0, #EDC18A 22%, rgba(237, 193, 138, 0) 23%), repeating-radial-gradient(circle at 50% 50%, #CC8A50 0, #CC8A50 3.5px, #BA7740 3.5px, #BA7740 6.5px);
  border: 4px solid var(--zoloto); box-shadow: 0 0 0 5px rgba(242, 179, 61, .22), 0 10px 22px rgba(110, 59, 30, .3); transition: transform .4s, box-shadow .4s; }
.ost:nth-child(odd) .ost-m { -webkit-transform: translateX(-34px); transform: translateX(-34px); }
.ost:nth-child(even) .ost-m { -webkit-transform: translateX(34px); transform: translateX(34px); }
.ost.on .ost-m { box-shadow: 0 0 0 7px rgba(242, 179, 61, .45), 0 0 26px rgba(242, 179, 61, .55), 0 10px 22px rgba(110, 59, 30, .3); }
.ost-karta { grid-row: 1; grid-column: 1; display: grid; grid-template-columns: 44% 1fr; background: #FFF8EC; border-radius: 22px; overflow: hidden; box-shadow: 0 18px 40px rgba(110, 59, 30, .14); border: 1px solid rgba(110, 59, 30, .1); min-height: 230px; transition: transform .45s, box-shadow .45s; }
.ost:nth-child(even) .ost-karta { grid-column: 3; }
.ost.on .ost-karta { box-shadow: 0 22px 48px rgba(110, 59, 30, .2); }
.ost-foto { position: relative; overflow: hidden; cursor: zoom-in; background: #E9D9BC; }
.ost-foto img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.ost-foto:hover img { transform: scale(1.04); }
.ost-tekst { padding: 22px 24px 22px; display: flex; flex-direction: column; }
.ost-n { font: 700 12px/1 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--zoloto-t); margin-bottom: 8px; }
.ost-tekst h3 { font-size: 31px; line-height: .98; margin-bottom: 10px; }
.ost-tekst p { font-size: 15.5px; line-height: 1.55; color: var(--t-2); margin: 0; }
.ost-kn { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 8px; font: 600 19px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; color: var(--med); text-decoration: none; align-self: flex-start; }
.ost-kn svg { width: 18px; height: 18px; transition: transform .2s; }
.ost-kn:hover svg { transform: translateX(4px); }
.ost-geroi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 14px; }
.ost-geroi button { position: relative; border: 0; padding: 0; border-radius: 10px; overflow: hidden; background: #E9D9BC; }
.ost-geroi button::before { content: ""; display: block; padding-top: 100%; }
.ost-geroi img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.ost-geroi b { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: grid; place-items: center; background: rgba(11, 31, 28, .66); color: var(--zoloto); font: 700 24px/1 var(--zag); }

.kot { position: absolute; top: 0; left: 0; width: 96px; height: 74px; z-index: 3; pointer-events: none; will-change: transform; }
.kot-svg { width: 96px; height: 74px; display: block; overflow: visible; transition: transform .25s; }
.kot.vlevo .kot-svg { -webkit-transform: scaleX(-1); transform: scaleX(-1); }
.kot-telo, .kot-golova, .kot-ushi, .kot-noga rect { fill: #2A2420; }
.kot-hvost { fill: none; stroke: #2A2420; stroke-width: 7; stroke-linecap: round; transform-box: fill-box; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; }
.kot-ochki { fill: none; stroke: var(--zoloto); stroke-width: 1.6; }
.kot-glaz { fill: var(--zoloto); }
.kot-usy { fill: none; stroke: #8A7A6A; stroke-width: 1; stroke-linecap: round; }
.kot-oshejnik { fill: none; stroke: var(--zoloto); stroke-width: 3; stroke-linecap: round; }
.kot-noga { transform-box: fill-box; -webkit-transform-origin: 50% 0; transform-origin: 50% 0; }
.kot.idet .kn-per1, .kot.idet .kn-zad2 { -webkit-animation: kotShag .38s ease-in-out infinite alternate; animation: kotShag .38s ease-in-out infinite alternate; }
.kot.idet .kn-per2, .kot.idet .kn-zad1 { -webkit-animation: kotShag .38s ease-in-out infinite alternate-reverse; animation: kotShag .38s ease-in-out infinite alternate-reverse; }
.kot.idet .kot-hvost { -webkit-animation: kotHvost .9s ease-in-out infinite alternate; animation: kotHvost .9s ease-in-out infinite alternate; }
@-webkit-keyframes kotShag { from { -webkit-transform: rotate(20deg); } to { -webkit-transform: rotate(-20deg); } }
@keyframes kotShag { from { transform: rotate(20deg); } to { transform: rotate(-20deg); } }
@-webkit-keyframes kotHvost { from { -webkit-transform: rotate(-8deg); } to { -webkit-transform: rotate(10deg); } }
@keyframes kotHvost { from { transform: rotate(-8deg); } to { transform: rotate(10deg); } }
.kot-reh { position: absolute; bottom: calc(100% + 4px); left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); white-space: nowrap; padding: 7px 13px 8px; border-radius: 12px; background: var(--noch); color: var(--zoloto); font: 600 18px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; box-shadow: 0 8px 18px rgba(11, 31, 28, .25); transition: opacity .3s; }
.kot-reh::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -7px; border: 7px solid transparent; border-top-color: var(--noch); }
.kot-reh:empty { opacity: 0; }

/* ---- 3. беседки ---- */
.zony { padding: 110px 0 150px; }
.zony-setka { display: grid; grid-template-columns: 330px 1fr; gap: 32px; margin-top: 36px; align-items: start; }
.zony-tabs { display: flex; flex-direction: column; gap: 10px; }
.z-tab { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; text-align: left; padding: 15px 18px 16px; border-radius: 16px; border: 1px solid var(--liniya); background: rgba(26, 61, 55, .6); color: var(--t-svet); transition: background-color .25s, border-color .25s, color .25s, transform .25s; }
.z-tab:hover { border-color: rgba(242, 179, 61, .55); transform: translateX(3px); }
.z-tab b { font: 700 25px/1 var(--zag); text-transform: uppercase; letter-spacing: .02em; }
.z-tab span { grid-column: 1; font-size: 14px; line-height: 1.3; color: var(--t-svet-2); }
.z-tab i { grid-row: 1 / 3; grid-column: 2; font: 700 23px/1 var(--zag); font-style: normal; color: var(--zoloto); white-space: nowrap; text-align: right; }
.z-tab i small { display: block; font: 700 12px/1.3 var(--txt); letter-spacing: .08em; text-transform: uppercase; color: var(--t-svet-2); }
.z-tab.on { background: var(--zoloto); color: var(--noch); border-color: var(--zoloto); transform: none; }
.z-tab.on span, .z-tab.on i small { color: rgba(11, 31, 28, .72); }
.z-tab.on i { color: var(--noch); }
.zona { background: var(--karta); border-radius: 24px; padding: 22px; border: 1px solid var(--liniya); }
.zona-media { display: grid; grid-template-columns: 1fr; gap: 14px; }
.zona-media.s-video { grid-template-columns: 1fr 236px; }
.zona-glav { position: relative; border-radius: 16px; overflow: hidden; cursor: zoom-in; background: #0E2723; }
.zona-glav::before { content: ""; display: block; padding-top: 68%; }
.zona-media.s-video .zona-glav::before { padding-top: 0; height: 419px; }
.zona-glav img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.zona-mini { display: flex; gap: 8px; margin-top: 10px; }
.zona-mini button { position: relative; width: 84px; height: 62px; border: 2px solid transparent; border-radius: 10px; overflow: hidden; padding: 0; background: #0E2723; opacity: .65; transition: opacity .2s, border-color .2s; }
.zona-mini button.on, .zona-mini button:hover { opacity: 1; border-color: var(--zoloto); }
.zona-mini img { width: 100%; height: 100%; object-fit: cover; }
.zona-media .vert-video { max-width: none; }
.zona-niz { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 22px; }
.zona-niz h3 { font-size: 36px; }
.chipy { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 14px; padding: 0; list-style: none; }
.chipy li { padding: 6px 12px 7px; border-radius: 999px; background: rgba(242, 179, 61, .12); border: 1px solid rgba(242, 179, 61, .32); font-weight: 700; font-size: 13.5px; color: var(--zoloto-2); }
.est { list-style: none; margin: 0; padding: 0; }
.est li { position: relative; padding: 6px 0 6px 26px; font-size: 15.5px; line-height: 1.45; color: var(--t-svet); }
.est li::before { content: ""; position: absolute; left: 0; top: 11px; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--zoloto); }
.schet { background: rgba(11, 31, 28, .55); border: 1px solid var(--liniya); border-radius: 18px; padding: 16px 18px 18px; }
.schet-ryad { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; font-weight: 700; }
.shag { display: flex; align-items: center; gap: 10px; }
.shag button { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--zoloto); color: var(--noch); font: 700 24px/1 var(--txt); display: grid; place-items: center; padding: 0 0 2px; }
.shag button:disabled { opacity: .35; cursor: default; }
.shag b { min-width: 34px; text-align: center; font: 700 28px/1 var(--zag); }
.tumbler-mal { display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 15px; line-height: 1.35; margin: 4px 0 14px; }
.tumbler-mal input { position: absolute; opacity: 0; pointer-events: none; }
.tumbler-mal i { flex: none; position: relative; width: 48px; height: 28px; border-radius: 14px; background: #3B5E57; transition: background-color .25s; }
.tumbler-mal i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform .25s; box-shadow: 0 2px 4px rgba(0, 0, 0, .25); }
.tumbler-mal input:checked + i { background: var(--zakat); }
.tumbler-mal input:checked + i::after { -webkit-transform: translateX(20px); transform: translateX(20px); }
.tumbler-mal input:focus-visible + i { box-shadow: 0 0 0 3px rgba(242, 179, 61, .5); }
.schet-itog { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; padding-top: 12px; border-top: 1px dashed rgba(242, 179, 61, .3); margin-bottom: 14px; }
.schet-itog span { font-size: 14.5px; color: var(--t-svet-2); }
.schet-itog b { font: 700 42px/1 var(--zag); color: var(--zoloto); white-space: nowrap; }
.schet-itog small { flex-basis: 100%; font-size: 13.5px; line-height: 1.4; color: var(--zoloto-2); min-height: 19px; }
.schet-prim { font-size: 12.5px; line-height: 1.45; color: var(--t-svet-2); margin: 10px 0 0; }

/* ---- 4. баня ---- */
.banya { padding: 110px 0 150px; }
.banya-in { display: grid; grid-template-columns: 1.02fr 1fr; gap: 56px; align-items: center; }
.banya-kollazh { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bk-foto { position: relative; border-radius: 18px; overflow: hidden; background: #E2D6BE; cursor: zoom-in; -webkit-filter: grayscale(.6) brightness(.9); filter: grayscale(.6) brightness(.9); transition: filter .6s, -webkit-filter .6s, transform .6s, box-shadow .6s; }
.bk-foto::before { content: ""; display: block; padding-top: 112%; }
.bk-foto:nth-child(2), .bk-foto:nth-child(3) { -webkit-transform: translateY(26px); transform: translateY(26px); }
.bk-foto img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.bk-foto em { position: absolute; left: 10px; top: 10px; padding: 6px 11px 7px; border-radius: 999px; background: rgba(251, 248, 241, .9); color: var(--t); font: 600 16px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; transition: background-color .4s, color .4s; }
.bk-foto.on { -webkit-filter: none; filter: none; box-shadow: 0 0 0 4px var(--zakat), 0 18px 40px rgba(110, 59, 30, .3); }
.bk-foto.on em { background: var(--zakat); color: #fff; }
.banya-cena { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 6px 0 18px; }
.banya-cena b { font: 700 52px/1 var(--zag); color: var(--t); }
.banya-cena b small { font-size: 24px; color: var(--t-2); margin-left: 4px; }
.znachok { display: inline-block; padding: 8px 14px 9px; border-radius: 12px; background: var(--zakat); color: #fff; font: 600 19px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; -webkit-transform: rotate(-2deg); transform: rotate(-2deg); box-shadow: 0 8px 18px rgba(232, 116, 42, .3); }
.znachok:empty { display: none; }
.tumblery { display: grid; gap: 10px; margin: 10px 0 18px; }
.tumbler { display: grid; grid-template-columns: 54px 1fr; gap: 0 14px; align-items: center; padding: 13px 16px; border-radius: 16px; background: #fff; border: 1px solid #E8DDC8; text-align: left; transition: border-color .3s, box-shadow .3s; }
.tumbler:hover { border-color: #D8C29C; }
.tumbler i { position: relative; width: 52px; height: 30px; border-radius: 15px; background: #D9CDB6; transition: background-color .3s; }
.tumbler i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0, 0, 0, .2); transition: transform .3s; }
.tumbler b { font: 700 25px/1 var(--zag); text-transform: uppercase; letter-spacing: .03em; color: var(--t); }
.tumbler span { grid-column: 2; display: block; font-size: 15px; line-height: 1.45; color: var(--t-2); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s, opacity .45s, margin .45s; }
.tumbler.on { border-color: rgba(232, 116, 42, .55); box-shadow: 0 10px 24px rgba(232, 116, 42, .12); }
.tumbler.on i { background: var(--zakat); }
.tumbler.on i::after { -webkit-transform: translateX(22px); transform: translateX(22px); }
.tumbler.on span { max-height: 140px; opacity: 1; margin-top: 6px; }
.banya-schet { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: 16px 18px; border-radius: 18px; background: var(--noch); color: var(--t-svet); }
.banya-schet .bs-ryad { display: flex; align-items: center; gap: 12px; font-weight: 700; font-size: 15px; }
.banya-schet .bs-itog { margin-left: auto; text-align: right; }
.banya-schet .bs-itog b { display: block; font: 700 40px/1 var(--zag); color: var(--zoloto); }
.banya-schet .bs-itog small { display: block; font-size: 13px; color: var(--zoloto-2); min-height: 18px; }
.banya-schet .kn { width: 100%; }
.banya-schet .vse-vkl { box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 0 0 0 rgba(242, 179, 61, .6); }
.banya-schet.vse .vse-vkl { -webkit-animation: zvon 1.6s ease-out infinite; animation: zvon 1.6s ease-out infinite; }
@-webkit-keyframes zvon { 0% { box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 0 0 0 rgba(242, 179, 61, .65); } 100% { box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 0 0 16px rgba(242, 179, 61, 0); } }
@keyframes zvon { 0% { box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 0 0 0 rgba(242, 179, 61, .65); } 100% { box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .2), 0 0 0 16px rgba(242, 179, 61, 0); } }
.bs-schetchik { flex-basis: 100%; font: 700 12px/1.3 var(--txt); letter-spacing: .14em; text-transform: uppercase; color: var(--t-svet-2); }
.otzyv-malyy { margin: 22px 0 0; padding: 16px 18px 16px 20px; border-left: 3px solid var(--zakat); background: rgba(232, 116, 42, .07); border-radius: 0 14px 14px 0; font-size: 15.5px; line-height: 1.6; white-space: pre-line; }
.otzyv-malyy cite { display: block; margin-top: 8px; font: 700 12.5px/1.3 var(--txt); font-style: normal; letter-spacing: .06em; color: var(--t-2); white-space: normal; }
.s-noch .otzyv-malyy, .s-dub .otzyv-malyy { background: rgba(242, 179, 61, .07); border-left-color: var(--zoloto); color: var(--t-svet); }
.s-noch .otzyv-malyy cite, .s-dub .otzyv-malyy cite { color: var(--t-svet-2); }

/* ---- 5. ресторан ---- */
.restoran { padding: 110px 0 150px; }
.restoran.s-noch { background-image: radial-gradient(ellipse 60% 50% at 88% 6%, rgba(232, 116, 42, .14), rgba(232, 116, 42, 0) 70%),
    radial-gradient(circle at var(--kc), rgba(var(--fon), 0) 0, rgba(var(--fon), 0) 16%, rgba(var(--fon), .94) 64%),
    repeating-radial-gradient(circle at var(--kc), rgba(242, 179, 61, .1) 0, rgba(242, 179, 61, .1) 1.2px, rgba(242, 179, 61, 0) 2.8px, rgba(242, 179, 61, 0) 19px),
    repeating-radial-gradient(circle at var(--kc), rgba(242, 179, 61, .07) 0, rgba(242, 179, 61, .07) 1px, rgba(242, 179, 61, 0) 2.6px, rgba(242, 179, 61, 0) 31px); }
.rest-shapka { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }
.rest-shapka .lead { margin-bottom: 0; }
.etazhi { display: inline-flex; flex: none; padding: 6px; border-radius: 999px; background: var(--karta); border: 1px solid var(--liniya); }
.etazhi button { border: 0; background: none; padding: 11px 26px 13px; border-radius: 999px; font: 600 24px/1 var(--zag); text-transform: uppercase; letter-spacing: .04em; color: var(--t-svet-2); transition: background-color .25s, color .25s; }
.etazhi button.on { background: var(--zoloto); color: var(--noch); }
.etazh { display: grid; grid-template-columns: 1.6fr 1fr; gap: 22px; margin-top: 34px; }
.etazh-glav { position: relative; border-radius: 22px; overflow: hidden; cursor: zoom-in; background: #0E2723; }
.etazh-glav::before { content: ""; display: block; padding-top: 64%; }
.etazh-glav img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.ogon { position: absolute; left: -4%; top: 18%; width: 52%; height: 64%; pointer-events: none; mix-blend-mode: screen; opacity: .6;
  background: radial-gradient(closest-side, rgba(255, 176, 70, .6), rgba(255, 120, 30, .22) 55%, rgba(255, 120, 30, 0));
  -webkit-animation: ogon 2.6s steps(1) infinite; animation: ogon 2.6s steps(1) infinite; }
@-webkit-keyframes ogon { 0% { opacity: .55; } 9% { opacity: .82; } 17% { opacity: .62; } 28% { opacity: .9; } 39% { opacity: .66; } 51% { opacity: .86; } 62% { opacity: .58; } 74% { opacity: .95; } 86% { opacity: .7; } }
@keyframes ogon { 0% { opacity: .55; } 9% { opacity: .82; } 17% { opacity: .62; } 28% { opacity: .9; } 39% { opacity: .66; } 51% { opacity: .86; } 62% { opacity: .58; } 74% { opacity: .95; } 86% { opacity: .7; } }
.etazh-bok { display: flex; flex-direction: column; gap: 16px; }
.etazh-tekst { background: var(--karta); border: 1px solid var(--liniya); border-radius: 22px; padding: 22px 24px; }
.etazh-tekst h3 { font-size: 40px; color: var(--zoloto); margin-bottom: 10px; }
.etazh-tekst p { color: var(--t-svet); font-size: 16px; line-height: 1.6; margin: 0; }
.etazh-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.etazh-mini button { position: relative; border: 0; padding: 0; border-radius: 14px; overflow: hidden; background: #0E2723; }
.etazh-mini button::before { content: ""; display: block; padding-top: 74%; }
.etazh-mini img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.etazh-mini button:hover img { transform: scale(1.05); }
.etazh-mini button.on { box-shadow: inset 0 0 0 3px var(--zoloto); }
.etazh-mini button.on img { opacity: .55; }
.etazh-anim { -webkit-animation: vhod .5s ease both; animation: vhod .5s ease both; }
@-webkit-keyframes vhod { from { opacity: 0; -webkit-transform: translateY(14px); } to { opacity: 1; -webkit-transform: none; } }
@keyframes vhod { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.menyu-setka { display: grid; grid-template-columns: 1.2fr 1fr; gap: 26px; margin-top: 56px; align-items: start; }
.menyu { position: relative; background: var(--spil); color: var(--t); border-radius: 22px; padding: 30px 32px 26px; box-shadow: 0 26px 60px rgba(0, 0, 0, .35);
  background-image: repeating-radial-gradient(circle at 100% 0, rgba(110, 59, 30, .05) 0, rgba(110, 59, 30, .05) 1px, rgba(110, 59, 30, 0) 2.6px, rgba(110, 59, 30, 0) 19px); }
.menyu h3 { font-size: 44px; line-height: .95; color: var(--t); margin-bottom: 4px; }
.menyu .m-prim { font-size: 13.5px; color: var(--t-2); margin-bottom: 14px; }
.m-gr { font: 700 12.5px/1.3 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--zoloto-t); margin: 18px 0 4px; }
.m-ryad { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; }
.m-n { flex: 0 1 auto; font-size: 16px; line-height: 1.4; font-weight: 700; }
.m-n small { display: block; font-weight: 400; font-size: 13.5px; color: var(--t-2); }
.m-t { flex: 1 1 24px; min-width: 24px; border-bottom: 2px dotted rgba(110, 59, 30, .35); -webkit-transform: translateY(-6px); transform: translateY(-6px); }
.m-c { flex: none; font: 700 28px/1 var(--zag); color: #9A4A12; white-space: nowrap; }
.m-c small { font-size: 17px; margin-left: 2px; }
.m-ves { display: inline-block; margin-left: 6px; padding: 1px 7px 2px; border-radius: 6px; background: rgba(110, 59, 30, .1); font-size: 12.5px; font-weight: 700; color: var(--kora); white-space: nowrap; }
.menyu-bok { display: flex; flex-direction: column; gap: 16px; }
.eda { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.eda button { position: relative; border: 0; padding: 0; border-radius: 16px; overflow: hidden; background: #0E2723; }
.eda button::before { content: ""; display: block; padding-top: 112%; }
.eda img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.eda button:hover img { transform: scale(1.05); }
.dostavka { position: relative; border-radius: 22px; overflow: hidden; padding: 26px 24px 22px; min-height: 250px; display: flex; flex-direction: column; justify-content: flex-end; background: #2A120A center / cover no-repeat; }
.dostavka::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(11, 31, 28, .2) 0%, rgba(11, 31, 28, .72) 45%, rgba(11, 31, 28, .94) 100%); }
.dostavka > * { position: relative; }
.dostavka h3 { font-size: 38px; color: var(--zoloto); margin-bottom: 6px; text-shadow: 0 2px 12px rgba(0, 0, 0, .55); }
.dostavka p { color: var(--t-svet); margin-bottom: 14px; font-size: 16px; }
.dostavka .d-kn { display: flex; flex-wrap: wrap; gap: 8px; }
.restoran .otzyv-malyy { margin-top: 16px; }

/* ---- 6. фуршет с выездом: печать «24 часа», льняная скатерть с вышитой каймой, блюда в арках; новинка — тарелки с золотой каёмкой ---- */
.furshet { padding: 110px 0 150px; }
.fur-shapka { display: grid; grid-template-columns: 1fr 210px; gap: 48px; align-items: center; margin-bottom: 42px; }
.fur-shapka .lead { margin-bottom: 0; }
.pechat { position: relative; width: 210px; height: 210px; border-radius: 50%; color: var(--zoloto);
  background: radial-gradient(circle, rgba(11, 31, 28, 0) 0, rgba(11, 31, 28, 0) 34%, rgba(11, 31, 28, .92) 70%), repeating-radial-gradient(circle, rgba(242, 179, 61, .16) 0, rgba(242, 179, 61, .16) 1px, rgba(242, 179, 61, 0) 2.4px, rgba(242, 179, 61, 0) 9px), var(--noch);
  box-shadow: 0 0 0 4px var(--zoloto), 0 0 0 10px rgba(242, 179, 61, .2), 0 24px 46px rgba(11, 31, 28, .32); }
.pechat-krug { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-animation: krug 32s linear infinite; animation: krug 32s linear infinite; }
.pechat-krug svg { display: block; width: 100%; height: 100%; overflow: visible; }
.pechat-krug text { font: 700 14.5px var(--txt); fill: var(--zoloto); }
@-webkit-keyframes krug { to { -webkit-transform: rotate(360deg); } }
@keyframes krug { to { transform: rotate(360deg); } }
.pechat-c { position: absolute; top: 50%; left: 50%; width: 58%; height: 58%; margin: -29% 0 0 -29%; border-radius: 50%; border: 1.5px dashed rgba(242, 179, 61, .5);
  display: flex; flex-direction: column; align-items: center; justify-content: center; -webkit-transform: rotate(-6deg); transform: rotate(-6deg); }
.pechat-c b { font: 700 76px/.8 var(--zag); padding: 0 .02em; background: linear-gradient(180deg, #FCDB8A 0%, #F2B33D 50%, #C9861B 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.pechat-c span { font: 600 20px/1 var(--zag); letter-spacing: .14em; text-transform: uppercase; color: var(--t-svet); margin-top: 5px; }

.skatert { position: relative; padding: 66px 44px 64px; border-radius: 26px; background-color: #F5EAD4; border: 1px solid rgba(110, 59, 30, .12); box-shadow: 0 26px 60px rgba(110, 59, 30, .14);
  background-image: repeating-linear-gradient(0deg, rgba(110, 59, 30, .035) 0, rgba(110, 59, 30, .035) 1px, rgba(110, 59, 30, 0) 1px, rgba(110, 59, 30, 0) 4px), repeating-linear-gradient(90deg, rgba(110, 59, 30, .035) 0, rgba(110, 59, 30, .035) 1px, rgba(110, 59, 30, 0) 1px, rgba(110, 59, 30, 0) 4px); }
.skatert::before, .skatert::after { content: ""; position: absolute; left: 26px; right: 26px; height: 20px; pointer-events: none; background-position: left center; background-size: 40px 20px; background-repeat: round no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cpath d='M9 3l7 7-7 7-7-7z' fill='none' stroke='%23B4561A' stroke-width='2'/%3E%3Cpath d='M9 7.6l2.4 2.4-2.4 2.4-2.4-2.4z' fill='%23B4561A'/%3E%3Cpath d='M26.5 7.5l5 5M31.5 7.5l-5 5' stroke='%239A6512' stroke-width='1.8'/%3E%3Cpath d='M18.5 9h2v2h-2zM36.5 9h2v2h-2z' fill='%239A6512'/%3E%3Cpath d='M0 .9h40M0 19.1h40' stroke='%23B4561A' stroke-width='1.2' stroke-dasharray='3 2'/%3E%3C/svg%3E"); }
.skatert::before { top: 20px; }
.skatert::after { bottom: 20px; }
.sk-zag { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0 0 34px; font: 600 26px/1 var(--zag); letter-spacing: .1em; text-transform: uppercase; color: var(--kora); text-align: center; }
.sk-zag::before, .sk-zag::after { content: ""; flex: 0 1 120px; height: 1.5px; background: linear-gradient(90deg, rgba(180, 86, 26, 0), rgba(180, 86, 26, .55)); }
.sk-zag::after { -webkit-transform: scaleX(-1); transform: scaleX(-1); }
.bluda { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin: 0 auto 36px; }
.bluda-3 { grid-template-columns: repeat(3, 1fr); max-width: 860px; }
.bluda-2 { grid-template-columns: repeat(2, 1fr); max-width: 580px; }
.bluda-1 { grid-template-columns: minmax(0, 280px); justify-content: center; }
.blyudo { text-align: center; min-width: 0; }
.bl-foto { position: relative; display: block; overflow: hidden; background: #EADBBF; border-radius: 50% 50% 16px 16px / 40% 40% 16px 16px;
  box-shadow: 0 0 0 6px #FFFBF2, 0 0 0 7.5px rgba(180, 86, 26, .4), 0 20px 36px rgba(110, 59, 30, .2); transition: transform .45s, box-shadow .45s; }
.bl-foto::before { content: ""; display: block; padding-top: 125%; }
.bl-foto img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.blyudo:hover .bl-foto { -webkit-transform: translateY(-4px); transform: translateY(-4px); box-shadow: 0 0 0 6px #FFFBF2, 0 0 0 7.5px rgba(180, 86, 26, .65), 0 26px 44px rgba(110, 59, 30, .26); }
.blyudo:hover .bl-foto img { -webkit-transform: scale(1.05); transform: scale(1.05); }
.bl-foto small { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 10px 8px; background: linear-gradient(180deg, rgba(11, 31, 28, 0), rgba(11, 31, 28, .72)); color: rgba(255, 255, 255, .9); font-size: 10.5px; line-height: 1.3; text-align: center; }
.blyudo figcaption { margin-top: 22px; }
.blyudo figcaption::before { content: ""; display: block; width: 9px; height: 9px; margin: 0 auto 12px; background: var(--med); -webkit-transform: rotate(45deg); transform: rotate(45deg); }
.blyudo figcaption b { display: block; font: 700 28px/1 var(--zag); letter-spacing: .03em; text-transform: uppercase; color: var(--t); }
.blyudo figcaption span { display: block; margin-top: 6px; font-weight: 700; font-size: 14.5px; color: var(--med); }
.sk-niz { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; padding-top: 26px; border-top: 1.5px dashed rgba(110, 59, 30, .22); }
.sk-niz p { margin: 0; font-size: 16px; color: var(--t-2); }
.sk-kn { display: flex; flex-wrap: wrap; gap: 12px; }

.novinka { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 30px 56px; align-items: center; margin-top: 36px; padding: 42px 52px 46px; border-radius: 26px; color: var(--t-svet); overflow: hidden; background-color: var(--noch);
  background-image: radial-gradient(circle at 78% 50%, rgba(11, 31, 28, 0) 0, rgba(11, 31, 28, 0) 18%, rgba(11, 31, 28, .92) 68%), repeating-radial-gradient(circle at 78% 50%, rgba(242, 179, 61, .11) 0, rgba(242, 179, 61, .11) 1.2px, rgba(242, 179, 61, 0) 2.8px, rgba(242, 179, 61, 0) 17px);
  box-shadow: 0 26px 60px rgba(11, 31, 28, .25); }
.nv-tekst h3 { font-size: 50px; line-height: .94; margin: 16px 0 12px; }
.nv-tekst h3 em { color: var(--zoloto); }
.nv-tekst p { color: var(--t-svet-2); font-size: 16.5px; max-width: 440px; margin-bottom: 22px; }
.tarelki { display: flex; gap: 36px; padding: 12px 14px 0; }
.tarelka { width: 210px; text-align: center; }
.tarelka:nth-child(2) { margin-top: 46px; }
.tarelka .foto-kn { position: relative; border-radius: 50%; overflow: hidden; background: #E9DCC4; transition: transform .7s;
  box-shadow: 0 0 0 10px #FBF8F1, 0 0 0 12px rgba(242, 179, 61, .6), 0 24px 44px rgba(0, 0, 0, .45); }
.tarelka .foto-kn::before { content: ""; display: block; padding-top: 100%; }
.tarelka img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.tarelka:hover .foto-kn { -webkit-transform: rotate(-12deg); transform: rotate(-12deg); }
.tarelka figcaption { margin-top: 26px; font: 600 22px/1 var(--zag); letter-spacing: .06em; text-transform: uppercase; color: var(--zoloto-2); }

/* ---- 7. выпускной под ключ: золотой билет, что входит — на золотой цепи, искры последнего костра ---- */
.vypusknoy { padding: 110px 0 150px; overflow: hidden; --kc: 50% 112%; }
.vypusknoy.s-noch { background-image: radial-gradient(ellipse 75% 40% at 50% 100%, rgba(232, 116, 42, .2), rgba(232, 116, 42, 0) 72%),
    radial-gradient(circle at var(--kc), rgba(var(--fon), 0) 0, rgba(var(--fon), 0) 16%, rgba(var(--fon), .94) 64%),
    repeating-radial-gradient(circle at var(--kc), rgba(242, 179, 61, .1) 0, rgba(242, 179, 61, .1) 1.2px, rgba(242, 179, 61, 0) 2.8px, rgba(242, 179, 61, 0) 19px),
    repeating-radial-gradient(circle at var(--kc), rgba(242, 179, 61, .07) 0, rgba(242, 179, 61, .07) 1px, rgba(242, 179, 61, 0) 2.6px, rgba(242, 179, 61, 0) 31px); }
.iskry { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
.vypusknoy .wrap { z-index: 1; }
.vyp-shapka { display: grid; grid-template-columns: 1fr 330px; gap: 64px; align-items: center; margin-bottom: 56px; }
.vyp-shapka .lead { margin-bottom: 0; }
.bilet-ten { -webkit-filter: drop-shadow(0 24px 30px rgba(0, 0, 0, .45)); filter: drop-shadow(0 24px 30px rgba(0, 0, 0, .45)); -webkit-transform: rotate(3deg); transform: rotate(3deg); transition: transform .5s; }
.bilet-ten:hover { -webkit-transform: translateY(-4px); transform: translateY(-4px); }
.bilet { --perf: 150px; position: relative; overflow: hidden; padding: 0 26px 22px; border-radius: 22px; color: var(--noch); text-align: center; background-color: var(--zoloto);
  background-image: repeating-radial-gradient(circle at 100% 0, rgba(255, 255, 255, .16) 0, rgba(255, 255, 255, .16) 1px, rgba(255, 255, 255, 0) 2.4px, rgba(255, 255, 255, 0) 11px), linear-gradient(160deg, #FCDB8A 0%, #F2B33D 50%, #D99A2B 100%);
  -webkit-mask: radial-gradient(circle at 0 var(--perf), rgba(0, 0, 0, 0) 15px, #000 15.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% var(--perf), rgba(0, 0, 0, 0) 15px, #000 15.5px) right / 51% 100% no-repeat;
  mask: radial-gradient(circle at 0 var(--perf), rgba(0, 0, 0, 0) 15px, #000 15.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% var(--perf), rgba(0, 0, 0, 0) 15px, #000 15.5px) right / 51% 100% no-repeat; }
.bilet::after { content: ""; position: absolute; top: -20%; bottom: -20%; left: 0; width: 45%; pointer-events: none; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .5), rgba(255, 255, 255, 0));
  -webkit-transform: translateX(-140%) skewX(-20deg); transform: translateX(-140%) skewX(-20deg); -webkit-animation: blesk 7s ease-in-out infinite; animation: blesk 7s ease-in-out infinite; }
@-webkit-keyframes blesk { 0%, 62% { -webkit-transform: translateX(-140%) skewX(-20deg); } 100% { -webkit-transform: translateX(280%) skewX(-20deg); } }
@keyframes blesk { 0%, 62% { transform: translateX(-140%) skewX(-20deg); } 100% { transform: translateX(280%) skewX(-20deg); } }
.bl-verh { height: var(--perf); display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 4px; }
.bl-m { display: flex; align-items: center; gap: 12px; font: 700 13px/1.2 var(--txt); letter-spacing: .22em; text-transform: uppercase; color: rgba(11, 31, 28, .74); }
.bl-m::before, .bl-m::after { content: ""; width: 24px; height: 1.5px; background: currentColor; }
.bl-god { display: block; font: 700 108px/.8 var(--zag); letter-spacing: .02em; color: var(--noch); margin-top: 12px; text-shadow: 0 2px 0 rgba(255, 255, 255, .35); }
.bl-perf { display: block; height: 0; margin: 0 -11px; border-top: 2.5px dashed rgba(11, 31, 28, .3); }
.bl-t { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 20px 0 16px; font: 700 21px/1.1 var(--zag); letter-spacing: .04em; text-transform: uppercase; color: var(--noch); }
.bl-t::before { content: "!"; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--noch); color: var(--zoloto); display: grid; place-items: center; font: 700 18px/1 var(--zag); }
.bilet .kn-noch:hover { background: var(--dub); }
.bl-tel { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; font: 600 22px/1 var(--zag); letter-spacing: .03em; color: var(--noch); text-decoration: none; }
.bl-tel svg { width: 17px; height: 17px; }
.vyp-pz { font: 700 12.5px/1.3 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--zoloto-2); margin: 0 0 24px; }
.vyp-pz:empty { display: none; }
.vyp-put { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; }
.vp { position: relative; text-align: center; }
.vp:not(:last-child)::after { content: ""; position: absolute; top: 30px; left: 50%; width: calc(100% + 12px); height: 20px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='20'%3E%3Cg fill='none' stroke='%23D69A2C'%3E%3Crect x='1.5' y='3' width='20' height='14' rx='7' stroke-width='3'/%3E%3Crect x='17' y='7.2' width='19' height='5.6' rx='2.8' stroke-width='2.6'/%3E%3Crect x='-15' y='7.2' width='19' height='5.6' rx='2.8' stroke-width='2.6'/%3E%3C/g%3E%3C/svg%3E") repeat-x left center / 32px 20px; }
.vp-m { position: relative; z-index: 1; display: grid; place-items: center; width: 80px; height: 80px; margin: 0 auto; border-radius: 50%; border: 4px solid var(--zoloto);
  background: radial-gradient(circle at 50% 50%, #EDC18A 0, #EDC18A 45%, rgba(237, 193, 138, 0) 46%), repeating-radial-gradient(circle at 50% 50%, #CC8A50 0, #CC8A50 3.5px, #BA7740 3.5px, #BA7740 6.5px);
  box-shadow: 0 0 0 5px rgba(242, 179, 61, .2), 0 12px 24px rgba(0, 0, 0, .35); transition: transform .4s, box-shadow .4s; }
.vp-m svg { width: 34px; height: 34px; fill: none; stroke: #2B1A0E; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.vp b { display: block; margin-top: 16px; font: 700 21px/1.05 var(--zag); letter-spacing: .03em; text-transform: uppercase; color: var(--t-svet); }
.vp:hover .vp-m { -webkit-transform: translateY(-4px); transform: translateY(-4px); box-shadow: 0 0 0 7px rgba(242, 179, 61, .4), 0 0 24px rgba(242, 179, 61, .45), 0 12px 24px rgba(0, 0, 0, .35); }
.vp-ogon .vp-m { -webkit-animation: ogonVp 2.2s ease-in-out infinite; animation: ogonVp 2.2s ease-in-out infinite; }
.vp-ogon .vp-m svg { stroke: #8A2A08; }
.vp-ogon b { color: var(--zoloto-2); }
@-webkit-keyframes ogonVp { 0%, 100% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .28), 0 0 18px rgba(255, 140, 50, .45), 0 12px 24px rgba(0, 0, 0, .35); } 22% { box-shadow: 0 0 0 6px rgba(255, 150, 60, .42), 0 0 32px rgba(255, 140, 50, .82), 0 12px 24px rgba(0, 0, 0, .35); } 41% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .3), 0 0 20px rgba(255, 140, 50, .5), 0 12px 24px rgba(0, 0, 0, .35); } 63% { box-shadow: 0 0 0 7px rgba(255, 150, 60, .46), 0 0 38px rgba(255, 140, 50, .9), 0 12px 24px rgba(0, 0, 0, .35); } 82% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .32), 0 0 24px rgba(255, 140, 50, .6), 0 12px 24px rgba(0, 0, 0, .35); } }
@keyframes ogonVp { 0%, 100% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .28), 0 0 18px rgba(255, 140, 50, .45), 0 12px 24px rgba(0, 0, 0, .35); } 22% { box-shadow: 0 0 0 6px rgba(255, 150, 60, .42), 0 0 32px rgba(255, 140, 50, .82), 0 12px 24px rgba(0, 0, 0, .35); } 41% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .3), 0 0 20px rgba(255, 140, 50, .5), 0 12px 24px rgba(0, 0, 0, .35); } 63% { box-shadow: 0 0 0 7px rgba(255, 150, 60, .46), 0 0 38px rgba(255, 140, 50, .9), 0 12px 24px rgba(0, 0, 0, .35); } 82% { box-shadow: 0 0 0 5px rgba(255, 150, 60, .32), 0 0 24px rgba(255, 140, 50, .6), 0 12px 24px rgba(0, 0, 0, .35); } }
.vyp-media { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 62px; align-items: start; }
.vyp-media.vm-3 { grid-template-columns: 4fr 4fr 3fr; }
.vyp-media.vm-2.s-video { grid-template-columns: 4fr 3fr; max-width: 760px; }
.vyp-media.vm-1 { grid-template-columns: minmax(0, 420px); }
.vm-foto { position: relative; border-radius: 22px; overflow: hidden; background: #0E2723; box-shadow: 0 26px 60px rgba(0, 0, 0, .4); }
.vm-foto::before { content: ""; display: block; padding-top: 133.33%; }
.vm-foto img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vm-foto:hover img { -webkit-transform: scale(1.04); transform: scale(1.04); }
.vm-podpis { position: absolute; left: 16px; bottom: 16px; max-width: calc(100% - 32px); padding: 9px 15px 10px; border-radius: 999px; background: rgba(11, 31, 28, .76); font: 600 19px/1 var(--zag); letter-spacing: .04em; text-transform: uppercase; color: var(--t-svet); }
.vyp-media .vert-video { max-width: none; box-shadow: 0 26px 60px rgba(0, 0, 0, .4); }
.vypusknoy .otzyv-malyy { margin-top: 34px; max-width: 860px; }

/* ---- 8. праздники ---- */
.prazdniki { padding: 110px 0 150px; }
.prazd-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 24px; }
.p-tab { padding: 12px 22px 14px; border-radius: 999px; border: 2px solid rgba(31, 36, 32, .2); background: transparent; font: 600 23px/1 var(--zag); text-transform: uppercase; letter-spacing: .04em; color: var(--t); transition: background-color .25s, color .25s, border-color .25s; }
.p-tab:hover { border-color: var(--noch); }
.p-tab.on { background: var(--noch); border-color: var(--noch); color: var(--zoloto); }
.prazd-setka { display: grid; grid-template-columns: 1.55fr 1fr; gap: 26px; align-items: start; }
.prazd { display: grid; grid-template-columns: 1.05fr 1fr; gap: 24px; background: #FFF9EE; border-radius: 24px; padding: 20px; box-shadow: 0 22px 50px rgba(110, 59, 30, .13); border: 1px solid rgba(110, 59, 30, .1); }
.prazd-foto { display: grid; gap: 10px; align-content: start; }
.prazd-foto button { position: relative; border: 0; padding: 0; border-radius: 16px; overflow: hidden; background: #E9D9BC; }
.prazd-foto button::before { content: ""; display: block; padding-top: 74%; }
.prazd-foto button:first-child::before { padding-top: 96%; }
.prazd-foto img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.prazd-foto button:hover img { transform: scale(1.04); }
.prazd-foto .pf-ryad { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.prazd-tekst { padding: 6px 4px 6px 0; }
.prazd-tekst h3 { font-size: 42px; line-height: .95; margin-bottom: 12px; }
.prazd-tekst > p:not(.vazhno) { color: var(--t-2); font-size: 16px; line-height: 1.6; }
.punkty { list-style: none; margin: 4px 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.punkty li { padding: 7px 13px 8px; border-radius: 999px; background: #F1DFC0; font-weight: 700; font-size: 14px; color: var(--kora); }
.punkty li:nth-last-child(2) { background: var(--zakat); color: #fff; }
.vazhno { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 12px; background: var(--noch); color: var(--zoloto-2); font: 700 20px/1.1 var(--zag); letter-spacing: .05em; text-transform: uppercase; margin: 0 0 14px; }
.vazhno::before { content: "!"; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--zakat); color: #fff; display: grid; place-items: center; font: 700 18px/1 var(--zag); }
.prazd > .otzyv-malyy { grid-column: 1 / -1; margin: 0; }
.banket { position: -webkit-sticky; position: sticky; top: 112px; background: var(--noch); color: var(--t-svet); border-radius: 24px; padding: 28px 26px 26px; box-shadow: 0 26px 60px rgba(11, 31, 28, .3);
  background-image: repeating-radial-gradient(circle at 110% -10%, rgba(242, 179, 61, .07) 0, rgba(242, 179, 61, .07) 1px, rgba(242, 179, 61, 0) 2.6px, rgba(242, 179, 61, 0) 15px); }
.banket h3 { font-size: 38px; color: var(--zoloto); margin-bottom: 6px; }
.banket > p { color: var(--t-svet-2); font-size: 15px; line-height: 1.5; }
.bk-gosti { display: flex; align-items: baseline; justify-content: space-between; margin: 18px 0 6px; font-weight: 700; }
.bk-gosti b { font: 700 46px/1 var(--zag); color: var(--t-svet); }
.polzunok { -webkit-appearance: none; appearance: none; width: 100%; height: 34px; background: transparent; margin: 0 0 6px; cursor: pointer; }
.polzunok::-webkit-slider-runnable-track { height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--zoloto) var(--p, 50%), rgba(255, 255, 255, .14) var(--p, 50%)); }
.polzunok::-moz-range-track { height: 8px; border-radius: 4px; background: rgba(255, 255, 255, .14); }
.polzunok::-moz-range-progress { height: 8px; border-radius: 4px; background: var(--zoloto); }
.polzunok::-webkit-slider-thumb { -webkit-appearance: none; width: 30px; height: 30px; margin-top: -11px; border-radius: 50%; background: var(--zoloto); border: 4px solid var(--noch); box-shadow: 0 0 0 2px var(--zoloto); }
.polzunok::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--zoloto); border: 4px solid var(--noch); box-shadow: 0 0 0 2px var(--zoloto); }
.bk-shkala { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--t-svet-2); margin-bottom: 16px; }
.bk-itog { padding: 16px 0 0; border-top: 1px dashed rgba(242, 179, 61, .3); margin-bottom: 16px; }
.bk-itog span { display: block; font-size: 14.5px; color: var(--t-svet-2); }
.bk-itog b { display: block; font: 700 58px/1 var(--zag); color: var(--zoloto); margin: 4px 0; }
.bk-itog small { display: block; font-size: 13.5px; line-height: 1.45; color: var(--t-svet-2); }
.bk-probka { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; padding: 7px 12px 8px; border-radius: 10px; background: rgba(232, 116, 42, .16); color: #FFB98A; font-weight: 700; font-size: 14px; }

/* ---- 9. отзывы ---- */
.otzyvy { padding: 110px 0 150px; }
.otzyvy-in { display: grid; grid-template-columns: 340px 1fr; gap: 52px; align-items: start; }
.ocenka { position: -webkit-sticky; position: sticky; top: 118px; background: var(--karta); border: 1px solid var(--liniya); border-radius: 24px; padding: 26px 24px 22px; }
.oc-gde { font: 700 12.5px/1.3 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--t-svet-2); }
.oc-b { display: flex; align-items: flex-end; gap: 14px; margin: 8px 0 4px; }
.oc-b b { font: 700 112px/.82 var(--zag); color: var(--zoloto); }
.oc-zv { display: flex; gap: 2px; padding-bottom: 8px; color: var(--zoloto); font-size: 22px; line-height: 1; letter-spacing: 1px; }
.oc-zv .pol { position: relative; color: rgba(242, 179, 61, .3); }
.oc-zv .pol::before { content: "★"; position: absolute; left: 0; top: 0; width: 70%; overflow: hidden; color: var(--zoloto); }
.oc-t { font-size: 14px; color: var(--t-svet-2); margin-bottom: 16px; }
.oc-temy-zag { font: 700 12px/1.3 var(--txt); letter-spacing: .14em; text-transform: uppercase; color: var(--zoloto-2); margin: 14px 0 6px; }
.tema { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 9px 0; color: var(--t-svet); }
.tema-ryad { display: flex; justify-content: space-between; gap: 8px; font-weight: 700; font-size: 15px; }
.tema-ryad small { font-weight: 400; color: var(--t-svet-2); }
.tema-polosa { display: block; height: 8px; border-radius: 4px; background: rgba(255, 255, 255, .08); overflow: hidden; margin-top: 7px; }
.tema-polosa i { display: block; height: 100%; width: 0; border-radius: 4px; background: linear-gradient(90deg, var(--zoloto), var(--zakat)); transition: width 1.4s cubic-bezier(.2, .8, .2, 1); }
.ocenka.vid .tema-polosa i { width: var(--w); }
.tema.on .tema-ryad { color: var(--zoloto); }
.tema.on .tema-polosa { box-shadow: 0 0 0 2px rgba(242, 179, 61, .4); }
.oc-ssylka { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font: 600 19px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; color: var(--zoloto); text-decoration: none; }
.oc-ssylka svg { width: 18px; height: 18px; }
.oc-sbros { display: none; margin-top: 10px; border: 0; background: none; padding: 0; color: var(--t-svet-2); font-size: 13.5px; text-decoration: underline; }
.ocenka.filtr .oc-sbros { display: inline-block; }
.kladka { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; margin-top: 28px; }
.kl-kol { display: grid; gap: 18px; align-content: start; min-width: 0; }
.otz { position: relative; background: #F9F1E2; color: var(--t); border-radius: 20px; padding: 22px 22px 20px; overflow-wrap: anywhere; }
.otz::before { content: "\201C"; position: absolute; top: 4px; right: 16px; font: 700 76px/1 var(--zag); color: var(--zakat); opacity: .45; }
.otz p { margin: 0 0 14px; white-space: pre-line; font-size: 16px; line-height: 1.6; }
.otz-kto { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 14.5px; line-height: 1.3; }
.otz-kto i { flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--noch); color: var(--zoloto); display: grid; place-items: center; font: 700 21px/1 var(--zag); font-style: normal; }
.otz-kto small { display: block; font-weight: 400; color: #7B6F5F; font-size: 13px; }
.otz mark { background: rgba(242, 179, 61, .45); color: inherit; border-radius: 3px; padding: 0 2px; }

/* ---- 10. бронь ---- */
.bron { padding: 110px 0 150px; }
.bron-setka { display: grid; grid-template-columns: 1fr 1.15fr; gap: 24px; margin-top: 34px; align-items: start; }
.bron-karta { background: #fff; border-radius: 24px; padding: 24px; box-shadow: 0 20px 50px rgba(110, 59, 30, .12); border: 1px solid #EEE3CF; }
.kal-shapka { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.kal-mes { font: 700 32px/1 var(--zag); text-transform: uppercase; letter-spacing: .02em; }
.kal-str { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #E3D6BE; background: #FBF8F1; font-size: 26px; line-height: 1; padding: 0 0 3px; }
.kal-str:disabled { opacity: .3; cursor: default; }
.kal-dni, .kal-setka { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.kal-dni span { text-align: center; font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #8B8170; padding: 14px 0 6px; }
.kal-den { height: 50px; border: 0; border-radius: 12px; background: #F6EFE1; font: 700 17px/1 var(--txt); color: var(--t); padding: 0; position: relative; transition: background-color .2s, color .2s; }
.kal-den:hover { background: #EFE2C8; }
.kal-den.pust { background: none; pointer-events: none; }
.kal-den.vyh, .kal-den.zakr { background: transparent; color: #C4B9A6; cursor: not-allowed; }
.kal-den.vyh::after, .kal-den.zakr::after { content: ""; position: absolute; left: 30%; right: 30%; top: 50%; height: 1.5px; background: #C4B9A6; }
.kal-den.proshl { background: transparent; color: #CFC6B5; cursor: default; }
.kal-den.segodnya { box-shadow: inset 0 0 0 2px var(--zoloto); }
.kal-den.on { background: var(--noch); color: var(--zoloto); }
.kal-legenda { font-size: 13px; color: #7B6F5F; margin: 12px 0 0; }
.opc-zag { font: 700 12.5px/1.3 var(--txt); letter-spacing: .14em; text-transform: uppercase; color: var(--zoloto-t); margin: 18px 0 10px; }
.forma-karta .opc-zag:first-child { margin-top: 0; }
.vremya { display: flex; flex-wrap: wrap; gap: 7px; }
.vremya button { padding: 9px 12px; border-radius: 10px; border: 1px solid #E3D6BE; background: #FBF8F1; font-weight: 700; font-size: 15px; }
.vremya button.on { background: var(--zoloto); border-color: var(--zoloto); color: var(--noch); }
.chto { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.chto button { padding: 10px 12px; border-radius: 12px; border: 1px solid #E3D6BE; background: #FBF8F1; text-align: left; font-weight: 700; font-size: 14.5px; line-height: 1.25; transition: background-color .2s, border-color .2s, color .2s; }
.chto button small { display: block; margin-top: 3px; font-weight: 400; font-size: 12.5px; color: #7B6F5F; }
.chto button.on { background: var(--noch); border-color: var(--noch); color: var(--t-svet); }
.chto button.on small { color: var(--zoloto); }
.opcii { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0 12px; }
.opc { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px 9px 14px; border-radius: 14px; background: #FBF8F1; border: 1px solid #EEE3CF; font-weight: 700; font-size: 14.5px; }
.opc .shag button { width: 36px; height: 36px; font-size: 21px; background: var(--noch); color: var(--zoloto); }
.opc .shag b { font-size: 26px; min-width: 30px; }
.opc-shir { grid-column: 1 / -1; }
.opc-shir .tumbler-mal { margin: 0; font-weight: 700; }
.opc-shir .tumbler-mal i { background: #D9CDB6; }
.stroki { list-style: none; padding: 0; margin: 0 0 12px; }
.stroki li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dashed #E3D6BE; font-size: 14.5px; line-height: 1.4; }
.stroki li b { white-space: nowrap; }
.itog { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 14px 18px; border-radius: 16px; background: var(--noch); color: var(--t-svet); margin-bottom: 16px; }
.itog span { font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--t-svet-2); }
.itog b { font: 700 40px/1 var(--zag); color: var(--zoloto); margin-left: auto; white-space: nowrap; }
.itog small { flex-basis: 100%; font-size: 13px; line-height: 1.45; color: var(--t-svet-2); }
.polya { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
#zayavka label { display: block; }
#zayavka label > span { display: block; font-weight: 700; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: #6D6252; margin: 0 0 6px; }
#zayavka input, #zayavka textarea { width: 100%; padding: 13px 14px; border-radius: 12px; border: 1.5px solid #E3D6BE; background: #FFFDF8; font: 400 16px/1.4 var(--txt); color: var(--t); -webkit-appearance: none; appearance: none; }
#zayavka textarea { resize: vertical; min-height: 64px; margin-bottom: 14px; }
#zayavka input:focus, #zayavka textarea:focus { outline: none; border-color: var(--zoloto); box-shadow: 0 0 0 3px rgba(242, 179, 61, .25); }
#zayavka input.osh { border-color: #C2410C; box-shadow: 0 0 0 3px rgba(194, 65, 12, .15); }
.lovushka { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.z-otvet { margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; background: #EAF5E4; color: #1F5A2A; font-weight: 700; font-size: 15px; }
.z-otvet.osh { background: #FDECE4; color: #9A3412; }

/* ---- 11. как найти ---- */
.gde { padding: 110px 0 110px; }
.gde-in { display: grid; grid-template-columns: 1fr 1.15fr; gap: 48px; align-items: center; }
.gde-punkty { list-style: none; padding: 0; margin: 24px 0 26px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.gde-punkty li { padding: 16px 16px 15px; border-radius: 16px; background: var(--karta); border: 1px solid var(--liniya); }
.gde-punkty b { display: block; font: 700 25px/1 var(--zag); color: var(--zoloto); text-transform: uppercase; margin-bottom: 6px; }
.gde-punkty span { display: block; font-size: 13.5px; line-height: 1.4; color: var(--t-svet-2); }
.gde-kn { display: flex; flex-wrap: wrap; gap: 10px; }
.gde-kn .kn-kontur svg { color: var(--zoloto); }
.gde-karta { position: relative; border-radius: 24px; overflow: hidden; min-height: 460px; background: var(--karta); border: 1px solid var(--liniya); }
.gde-karta iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
.gde-karta .k-zagl { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; padding: 20px; color: var(--t-svet-2); }
.gde-karta .k-zagl svg { width: 46px; height: 46px; color: var(--zoloto); }
.gde-karta .k-zagl a { font: 600 19px/1 var(--zag); letter-spacing: .05em; text-transform: uppercase; color: var(--zoloto); }
.gde-insta { margin: 18px 0 0; font-size: 14px; color: var(--t-svet-2); }

/* ---- 12. последний экран ---- */
.final { position: relative; min-height: 640px; display: flex; align-items: center; color: #fff; overflow: hidden; background: var(--noch); }
.final-foto { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: center / cover no-repeat; }
.final-foto::after { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, rgba(11, 31, 28, .9) 0%, rgba(11, 31, 28, .62) 50%, rgba(11, 31, 28, .2) 100%); }
.final-in { position: relative; z-index: 1; padding-top: 120px; padding-bottom: 120px; width: 100%; }
.final h2 { font-size: clamp(54px, 7vw, 112px); line-height: .88; max-width: 900px; margin: 0; }
.final h2 em { color: var(--zoloto); }
.final-kto { font: italic 400 16px/1.4 var(--txt); color: #F3D9A0; margin: 16px 0 22px; }
.final .lead { color: #EDE5D6; margin-bottom: 26px; }

/* ---- подвал ---- */
.podval { padding: 56px 0 46px; border-top: 1px solid rgba(242, 179, 61, .14); }
.podval-in { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px 40px; align-items: start; }
.podval-logo { display: flex; gap: 16px; align-items: center; }
.podval-logo img { width: 72px; height: 72px; flex: none; }
.podval-logo p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--t-svet-2); }
.podval-kontakty { display: grid; gap: 8px; justify-items: start; }
.podval-kontakty a { display: inline-flex; align-items: center; gap: 10px; font: 600 22px/1.1 var(--zag); letter-spacing: .03em; text-decoration: none; color: var(--t-svet); }
.podval-kontakty a svg { width: 18px; height: 18px; color: var(--zoloto); }
.podval-kontakty span { font-size: 14px; color: var(--t-svet-2); }
.podval-niz { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; margin: 10px 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .07); font-size: 13px; color: #8FA197; }
.podval-niz a { color: #8FA197; }

/* ---- нижняя полоса на телефоне ---- */
.niz-bar { position: fixed; left: 10px; right: 10px; bottom: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 60; display: none; grid-template-columns: 1fr 1.35fr; gap: 8px; padding: 7px; border-radius: 18px;
  background: rgba(11, 31, 28, .95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 12px 30px rgba(0, 0, 0, .35); border: 1px solid rgba(242, 179, 61, .2);
  -webkit-transform: translateY(150%); transform: translateY(150%); transition: transform .35s; }
.niz-bar.vid { -webkit-transform: none; transform: none; }
.niz-bar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border-radius: 12px; font: 600 21px/1 var(--zag); text-transform: uppercase; letter-spacing: .04em; text-decoration: none; }
.niz-bar svg { width: 18px; height: 18px; }
.nb-tel { background: var(--karta); color: var(--t-svet); }
.nb-tel svg { color: var(--zoloto); }
.nb-bron { background: var(--zoloto); color: var(--noch); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .2); }

/* ---- плашка «демо» ---- */
.demo { position: fixed; left: 16px; bottom: 16px; z-index: 70; max-width: 430px; max-width: calc(100% - 32px); display: flex; gap: 12px; align-items: flex-start; padding: 12px 12px 12px 16px; border-radius: 18px;
  background: rgba(11, 31, 28, .92); color: var(--t-svet-2); border: 1px solid rgba(242, 179, 61, .3); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); font-size: 13px; line-height: 1.45; box-shadow: 0 12px 30px rgba(0, 0, 0, .3); }
@media (min-width: 520px) { .demo { max-width: 430px; } }
.demo[hidden] { display: none; }
.demo::before { content: "демо"; flex: none; font: 700 10.5px/1 var(--txt); letter-spacing: .16em; text-transform: uppercase; color: var(--noch); background: var(--zoloto); padding: 5px 7px; border-radius: 6px; margin-top: 1px; }
.demo button { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(243, 235, 221, .1); color: var(--t-svet); font-size: 17px; line-height: 1; padding: 0; }

/* ---- просмотр на весь экран ---- */
.prosmotr { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100; background: rgba(5, 14, 12, .96); -ms-touch-action: none; touch-action: none; }
.prosmotr[hidden] { display: none; }
.pr-scena { position: absolute; top: 60px; bottom: 74px; left: 70px; right: 70px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pr-scena img, .pr-scena video { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
.pr-scena img { transition: transform .15s; }
.pr-podpis { position: absolute; left: 70px; right: 70px; bottom: 22px; margin: 0; text-align: center; color: #E9E1D2; font-size: 15px; line-height: 1.4; }
.pr-schet { position: absolute; top: 20px; left: 22px; color: #BFB6A6; font: 600 20px/1 var(--zag); letter-spacing: .06em; }
.pr-zakr { position: absolute; top: 10px; right: 12px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: #fff; padding: 12px; }
.pr-zakr svg { width: 24px; height: 24px; display: block; }
.pr-str { position: absolute; top: 50%; margin-top: -27px; width: 54px; height: 54px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .1); color: #fff; font-size: 34px; line-height: 1; padding: 0 0 5px; }
.pr-str:hover, .pr-zakr:hover { background: rgba(242, 179, 61, .3); }
.pr-nazad { left: 10px; }
.pr-vpered { right: 10px; }
.prosmotr.odin .pr-str, .prosmotr.odin .pr-schet { display: none; }
body.zamok { overflow: hidden; }

/* ---- появление при прокрутке ---- */
.js-anim .poyav { opacity: 0; -webkit-transform: translateY(26px); transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
.js-anim .poyav.vid { opacity: 1; -webkit-transform: none; transform: none; }
.bez-anim *, .bez-anim *::before, .bez-anim *::after { -webkit-animation-duration: 0s !important; animation-duration: 0s !important; -webkit-animation-iteration-count: 1 !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; }
.bez-anim .st-kadr img { -webkit-transform: none; transform: none; }

/* ================= адаптив ================= */
/* в меню девять разделов: до 1410 телефон — значком, до 1320 буквы мельче, с 1260 — бургер; шапка всегда в одну строку */
@media (max-width: 1410px) {
  .sh-tel span { display: none; }
  .sh-tel { width: 48px; height: 48px; justify-content: center; border-radius: 12px; border: 1px solid rgba(242, 179, 61, .3); }
}
@media (max-width: 1320px) {
  .shapka-in { gap: 18px; }
  .menu { gap: 13px; }
  .menu a { font-size: 18px; letter-spacing: .03em; }
}
@media (max-width: 1260px) {
  .menu { position: fixed; top: 92px; left: 0; right: 0; flex-direction: column; gap: 0; padding: 8px 20px 20px; margin: 0; background: rgba(11, 31, 28, .98); border-bottom: 1px solid rgba(242, 179, 61, .2);
    -webkit-transform: translateY(-120%); transform: translateY(-120%); transition: transform .3s; visibility: hidden; }
  .shapka.otkr .menu { -webkit-transform: none; transform: none; visibility: visible; }
  .menu a { padding: 15px 4px; font-size: 26px; border-bottom: 1px solid rgba(242, 179, 61, .12); }
  .burger { display: flex; }
  .sh-tel { margin-left: auto; }
}
@media (max-width: 1180px) {
  .hero-setka { gap: 40px; }
  .zony-setka { grid-template-columns: 290px 1fr; }
  .zona-media.s-video { grid-template-columns: 1fr 200px; }
  .zona-media.s-video .zona-glav::before { height: 356px; }
  .bluda { gap: 20px; }
  .novinka { padding: 36px 38px 40px; gap: 26px 36px; }
  .tarelka { width: 180px; }
  .vyp-shapka { grid-template-columns: 1fr 300px; gap: 44px; }
}
@media (max-width: 1024px) {
  .hero-setka { grid-template-columns: 1fr; }
  .hero-media { order: -1; max-width: 720px; }
  .tropa-shapka { grid-template-columns: 1fr 240px; gap: 36px; }
  .ost { grid-template-columns: 1fr 96px 1fr; }
  .ost-karta { grid-template-columns: 1fr; }
  .ost-foto { min-height: 180px; }
  .zony-setka { grid-template-columns: 1fr; }
  .zony-tabs { flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .zony-tabs::-webkit-scrollbar { display: none; }
  .z-tab { flex: none; min-width: 210px; }
  .banya-in { grid-template-columns: 1fr; gap: 40px; }
  .etazh { grid-template-columns: 1fr; }
  .menyu-setka { grid-template-columns: 1fr; }
  .prazd-setka { grid-template-columns: 1fr; }
  .banket { position: static; }
  .otzyvy-in { grid-template-columns: 1fr; gap: 30px; }
  .ocenka { position: static; }
  .bron-setka { grid-template-columns: 1fr; }
  .gde-in { grid-template-columns: 1fr; }
  .fur-shapka { grid-template-columns: 1fr 170px; gap: 32px; }
  .pechat { width: 170px; height: 170px; }
  .pechat-c b { font-size: 62px; }
  .pechat-c span { font-size: 17px; }
  .skatert { padding: 62px 28px 60px; }
  .bluda { gap: 16px; }
  .novinka { grid-template-columns: 1fr; }
  .tarelki { justify-content: center; }
  .vyp-shapka { grid-template-columns: 1fr; gap: 40px; }
  .bilet-ten { max-width: 360px; }
  .vp-m { width: 70px; height: 70px; }
  .vp-m svg { width: 30px; height: 30px; }
  .vp:not(:last-child)::after { top: 25px; }
  .vp b { font-size: 19px; }
}
@media (max-width: 900px) {
  .niz-bar { display: grid; }
  .sh-kn { display: none; }
  .demo { bottom: 84px; left: 10px; right: 10px; max-width: none; }
  .podval { padding-bottom: 96px; }
  .rest-shapka { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  body { font-size: 16px; }
  .wrap { padding: 0 20px; }
  .shapka-in { height: 76px; padding: 0 16px; gap: 12px; }
  .menu { top: 76px; }
  html { scroll-padding-top: 84px; }
  .logo-z { width: 52px; height: 52px; }
  .logo-t b { font-size: 27px; }
  .logo-t i { font-size: 12px; letter-spacing: .02em; }
  .sh-tel, .burger { width: 44px; height: 44px; }
  .lead { font-size: 17px; }
  h2 { font-size: clamp(42px, 12vw, 58px); }
  .hero { padding: 22px 0 110px; }
  .slovo { margin-bottom: 18px; }
  .hero-media { padding-top: 46px; }
  .vyveska { left: 12px; width: 176px; top: -6px; }
  .vyv-cepi { width: 176px; height: 58px; }
  .vyv-doska { padding: 11px 10px 12px; }
  .vyv-doska::before { left: 19px; } .vyv-doska::after { right: 19px; }
  .vyv-doska b { font-size: 36px; }
  .vyv-doska span { font-size: 16px; }
  .vyv-lampa { margin-left: -48px; top: 11px; }
  .storis { border-radius: 18px; }
  .storis::before { padding-top: 92%; }
  .st-podpis { left: 12px; bottom: 12px; font-size: 16px; line-height: 1.05; max-width: calc(100% - 150px); padding: 7px 12px 8px; white-space: normal; border-radius: 14px; }
  .pilyulya { right: 12px; bottom: 12px; font-size: 16px; padding: 6px 13px 6px 6px; gap: 8px; }
  .pilyulya svg { width: 28px; height: 28px; padding: 7px 6px 7px 8px; }
  .hero-zag { font-size: 40px; }
  .hero-kn .kn { flex: 1 1 100%; }
  .akciya { padding: 12px 14px; gap: 10px; flex-wrap: wrap; }
  .akciya span { flex: 1 1 180px; }
  .cifry { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .cifry b { font-size: 40px; }

  .tropa, .zony, .banya, .restoran, .furshet, .vypusknoy, .prazdniki, .otzyvy, .bron { padding: 76px 0 118px; }
  .gde { padding: 76px 0 84px; }
  .tropa-shapka { grid-template-columns: 1fr; gap: 26px; }
  .tropa-shapka .vert-video { max-width: 250px; }
  .stih { font-size: 17px; }
  .ost { grid-template-columns: 58px 1fr; margin-bottom: 26px; align-items: start; }
  .ost-m, .ost:nth-child(odd) .ost-m, .ost:nth-child(even) .ost-m { grid-column: 1; width: 50px; height: 50px; font-size: 24px; border-width: 3px; margin-top: 16px; }
  .ost:nth-child(odd) .ost-m { -webkit-transform: translateX(-6px); transform: translateX(-6px); }
  .ost:nth-child(even) .ost-m { -webkit-transform: translateX(4px); transform: translateX(4px); }
  .ost-karta, .ost:nth-child(even) .ost-karta { grid-column: 2; min-height: 0; }
  .ost-foto { min-height: 0; }
  .ost-foto::before { content: ""; display: block; padding-top: 62%; }
  .ost-tekst { padding: 16px 16px 18px; }
  .ost-tekst h3 { font-size: 27px; }
  .ost-tekst p { font-size: 15px; }
  .kot { width: 58px; height: 45px; }
  .kot-svg { width: 58px; height: 45px; }
  .kot-reh { font-size: 15px; padding: 6px 10px 7px; left: 0; -webkit-transform: none; transform: none; }
  .kot-reh::after { left: 22px; }
  .kot:not(.idet) .kot-reh { opacity: 0; }

  .zona { padding: 14px; border-radius: 20px; }
  .zona-media.s-video { grid-template-columns: 1fr; }
  .zona-media.s-video .zona-glav::before { height: auto; padding-top: 68%; }
  .zona-media .vert-video { max-width: 220px; }
  .zona-niz { grid-template-columns: 1fr; gap: 18px; }
  .zona-niz h3 { font-size: 32px; }
  .z-tab { min-width: 190px; padding: 12px 14px 13px; }
  .z-tab b { font-size: 22px; }
  .zona-mini button { width: 70px; height: 52px; }

  .banya-kollazh { gap: 10px; }
  .bk-foto:nth-child(2), .bk-foto:nth-child(3) { -webkit-transform: translateY(16px); transform: translateY(16px); }
  .bk-foto em { font-size: 14px; padding: 5px 9px 6px; left: 7px; top: 7px; }
  .banya-cena b { font-size: 44px; }
  .tumbler { grid-template-columns: 52px 1fr; padding: 12px; gap: 0 12px; }
  .tumbler b { font-size: 22px; }

  .etazhi button { padding: 10px 20px 12px; font-size: 21px; }
  .etazh-tekst h3 { font-size: 34px; }
  .menyu { padding: 22px 18px 18px; }
  .menyu h3 { font-size: 36px; }
  .m-n { font-size: 15px; }
  .m-c { font-size: 24px; }
  .eda { gap: 8px; }
  .dostavka { min-height: 300px; }

  .fur-shapka { display: block; position: relative; margin-bottom: 30px; }
  .fur-shapka h2 { padding-right: 126px; margin-bottom: 26px; }
  .pechat { position: absolute; top: 22px; right: -4px; width: 116px; height: 116px; box-shadow: 0 0 0 3px var(--zoloto), 0 0 0 7px rgba(242, 179, 61, .2), 0 14px 28px rgba(11, 31, 28, .3); }
  .pechat-c { border-width: 1px; }
  .pechat-c b { font-size: 44px; }
  .pechat-c span { font-size: 12.5px; letter-spacing: .1em; margin-top: 2px; }
  .skatert { padding: 50px 14px 48px; border-radius: 20px; }
  .skatert::before, .skatert::after { left: 14px; right: 14px; height: 16px; background-size: 32px 16px; }
  .skatert::before { top: 16px; }
  .skatert::after { bottom: 16px; }
  .sk-zag { font-size: 22px; gap: 12px; margin-bottom: 24px; }
  .sk-zag::before, .sk-zag::after { flex: 0 0 24px; }
  .bluda, .bluda-3, .bluda-4 { grid-template-columns: 1fr 1fr; gap: 26px 14px; margin-bottom: 30px; }
  .bl-foto { box-shadow: 0 0 0 4px #FFFBF2, 0 0 0 5.5px rgba(180, 86, 26, .4), 0 14px 26px rgba(110, 59, 30, .2); }
  .blyudo:hover .bl-foto { -webkit-transform: none; transform: none; }
  .bl-foto small { font-size: 9.5px; padding: 18px 6px 6px; }
  .blyudo figcaption { margin-top: 16px; }
  .blyudo figcaption::before { width: 7px; height: 7px; margin-bottom: 9px; }
  .blyudo figcaption b { font-size: 23px; }
  .sk-niz { flex-direction: column; align-items: stretch; text-align: center; }
  .sk-kn .kn { flex: 1 1 100%; }
  .novinka { padding: 26px 18px 32px; border-radius: 20px; gap: 22px; margin-top: 24px; }
  .nv-tekst h3 { font-size: 38px; }
  .nv-tekst .kn { width: 100%; }
  .tarelki { gap: 24px; padding: 8px 8px 0; }
  .tarelka { width: auto; flex: 1 1 0; min-width: 0; }
  .tarelka:nth-child(2) { margin-top: 30px; }
  .tarelka .foto-kn { box-shadow: 0 0 0 7px #FBF8F1, 0 0 0 8.5px rgba(242, 179, 61, .6), 0 16px 30px rgba(0, 0, 0, .45); }
  .tarelka figcaption { margin-top: 20px; font-size: 19px; }

  .vyp-shapka { gap: 30px; margin-bottom: 42px; }
  .bilet-ten { max-width: 330px; -webkit-transform: rotate(2deg); transform: rotate(2deg); }
  .bilet { --perf: 134px; padding: 0 20px 20px; }
  .bl-god { font-size: 94px; }
  .bl-perf { margin: 0 -5px; }
  .bl-t { font-size: 19px; }
  .vyp-put { grid-auto-flow: row; grid-template-columns: 1fr; gap: 10px; }
  .vp { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 16px; text-align: left; }
  .vp-m { width: 58px; height: 58px; border-width: 3px; margin: 0; box-shadow: 0 0 0 4px rgba(242, 179, 61, .2), 0 8px 18px rgba(0, 0, 0, .35); }
  .vp-m svg { width: 26px; height: 26px; }
  .vp b { margin: 0; font-size: 23px; }
  .vp:not(:last-child)::after { top: 29px; left: 19px; width: 20px; height: calc(100% + 10px);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='32'%3E%3Cg fill='none' stroke='%23D69A2C'%3E%3Crect x='3' y='1.5' width='14' height='20' rx='7' stroke-width='3'/%3E%3Crect x='7.2' y='17' width='5.6' height='19' rx='2.8' stroke-width='2.6'/%3E%3Crect x='7.2' y='-15' width='5.6' height='19' rx='2.8' stroke-width='2.6'/%3E%3C/g%3E%3C/svg%3E") repeat-y center top / 20px 32px; }
  .vyp-media, .vyp-media.vm-3 { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 42px; }
  .vyp-media.vm-3 .vert-video { grid-column: 1 / -1; justify-self: center; max-width: 250px; }
  .vm-foto { border-radius: 16px; }
  .vm-podpis { left: 10px; bottom: 10px; max-width: calc(100% - 20px); font-size: 15px; padding: 7px 11px 8px; }
  .vypusknoy .otzyv-malyy { margin-top: 26px; }

  .p-tab { font-size: 20px; padding: 10px 16px 12px; }
  .prazd { grid-template-columns: 1fr; padding: 14px; gap: 16px; }
  .prazd-tekst h3 { font-size: 36px; }
  .banket { padding: 22px 18px; }
  .bk-itog b { font-size: 50px; }

  .oc-b b { font-size: 92px; }
  .kladka { grid-template-columns: 1fr; gap: 14px; }
  .kl-kol { gap: 14px; }
  .otz { padding: 18px 18px 16px; }

  .bron-karta { padding: 16px; border-radius: 20px; }
  .kal-den { height: 44px; font-size: 16px; border-radius: 10px; }
  .kal-dni, .kal-setka { gap: 4px; }
  .chto { grid-template-columns: 1fr 1fr; }
  .opcii { grid-template-columns: 1fr; }
  .polya { grid-template-columns: 1fr; }
  .itog b { font-size: 34px; }

  .gde-punkty { grid-template-columns: 1fr; }
  .gde-karta { min-height: 340px; }
  .final { min-height: 560px; }
  .final-in { padding-top: 90px; padding-bottom: 90px; }
  .final-foto::after { background: linear-gradient(180deg, rgba(11, 31, 28, .55) 0%, rgba(11, 31, 28, .88) 100%); }
  .podval-in { grid-template-columns: 1fr; }
  .podval-niz { flex-direction: column; }
  .pr-scena { left: 0; right: 0; top: 64px; bottom: 80px; }
  .pr-str { display: none; }
  .pr-podpis { left: 16px; right: 16px; }
}
@media (max-width: 380px) {
  .logo-t i { display: none; }
  .cifry b { font-size: 36px; }
  .chto { grid-template-columns: 1fr; }
  .fur-shapka h2 { padding-right: 108px; }
  .pechat { width: 100px; height: 100px; top: 30px; }
  .pechat-c b { font-size: 38px; }
  .pechat-c span { font-size: 11px; }
  .bluda, .bluda-3, .bluda-4 { gap: 22px 10px; }
  .blyudo figcaption b { font-size: 21px; }
  .bl-god { font-size: 84px; }
}
