/* «Души Пармы», Пермь — сайт с живой картой края (primer2).

   14.09.2026, вечер — по руководству по фирменному стилю хозяйки (архив «Сайт ДП»):
   • логотип — только в исходном виде (файлы brend/*.svg переведены из её PNG один в один),
     цвета — только фирменные: терракота #AE4C2F, графит #5B5B5B, синий #56698F, белый #FEFEFE;
   • шрифты — Stem (Extra Light для заголовков, Bold для подписей и кнопок) и Runic
     (как буквы логотипа — для ярлыков и акцентов); абзацы — Arial, руководство его разрешает;
   • фирменный узор — плитка brend/uzor-*.svg ровно в один период, без шва.
   Тёмная «ночная» подача сохранена: Ирине она понравилась («цвет вы практически выхватили»). */

:root{
  --noch:#0F0E0D;
  --noch-2:#141312;
  --noch-3:#1B1918;
  --noch-4:#242220;
  --grafit:#5B5B5B;
  --terra:#AE4C2F;
  --terra-t:#8A3A22;
  --terra-sv:#D8805E;
  --terra-sv2:#F0BFA8;
  --sin:#56698F;
  --sin-sv:#9FB2D8;
  --bel:#FEFEFE;
  --tekst:#F2EDE8;
  --tekst-2:rgba(242,237,232,.74);
  --tekst-3:rgba(242,237,232,.5);
  --liniya:rgba(254,254,254,.1);
  --liniya-2:rgba(254,254,254,.2);
  --liniya-t:rgba(216,128,94,.38);
  --steklo:linear-gradient(155deg,rgba(254,254,254,.06),rgba(254,254,254,.015));
  --zag:"Stem","Arial",sans-serif;
  --shrift:Arial,"Helvetica Neue",Helvetica,sans-serif;
  --runa:"Runic","Stem",sans-serif;
  --verh-h:72px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--verh-h) + 10px);background:var(--noch);
  -webkit-text-size-adjust:100%;text-size-adjust:100%}
html.s-zastavkoy,html.s-listom{overflow:hidden}
/* боковые поля под вырез экрана: у айфона, повёрнутого боком, сайт не уходит под «чёлку» и стоит ровно по центру
   (viewport-fit=cover); в обычном положении и на компьютере отступы нулевые — ничего не меняется */
body{font-family:var(--shrift);background:var(--noch);color:var(--tekst);font-size:16.5px;line-height:1.7;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
  padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
/* clip не делает body прокручиваемым: иначе при открытом листе (html overflow:hidden) шапка перестаёт прилипать */
@supports (overflow:clip){body{overflow-x:clip}}
img{max-width:100%;display:block}
figure{margin:0}
p{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:rgba(174,76,47,.55);color:#fff}
.skryto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* зерно поверх всего — как у фотографии на плёнке */
.zerno{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='z'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23z)'/%3E%3C/svg%3E")}

/* акцент в заголовках — цветом, тем же шрифтом. До 15.09 здесь были буквы логотипа (Runic); Ирина: «плохо читается,
   лучше на обычный заменить, логотип оставляем» — Runic остался только в самом логотипе, он картинка.
   inline-block — выделенные слова переносятся целиком: иначе Safari и Chrome рвали «в справочнике» в разных местах */
h1 em,h2 em{font-style:normal;color:var(--terra-sv);display:inline-block}

/* =============================================================== заставка со звуком */
.zastavka{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px;overflow:hidden;
  background:
    radial-gradient(46% 40% at 50% 42%,rgba(174,76,47,.28),transparent 72%),
    radial-gradient(40% 50% at 100% 100%,rgba(86,105,143,.22),transparent 70%),
    radial-gradient(34% 40% at 0% 0%,rgba(91,91,91,.18),transparent 70%),
    #0B0A09;
  transition:opacity 1.2s var(--ease),visibility 1.2s}
.zastavka::before{content:"";position:absolute;inset:0;background:url(brend/uzor-bel.svg) center/220px 151px;opacity:.035;
  -webkit-mask-image:radial-gradient(60% 55% at 50% 45%,#000,transparent 80%);mask-image:radial-gradient(60% 55% at 50% 45%,#000,transparent 80%)}
.zastavka[hidden]{display:none}
.zastavka.uhod{opacity:0;visibility:hidden}
.zastavka.uhod .zastavka-centr{transform:scale(1.06);filter:blur(6px)}
.zastavka-centr{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  transition:transform 1.2s var(--ease),filter 1.2s}
.zastavka-znak{position:relative;width:min(380px,74vw);aspect-ratio:1;margin-bottom:26px;animation:znakVhod 1.6s var(--ease) backwards}
.zastavka-kolco{position:absolute;inset:0;width:100%;height:100%;max-width:none;opacity:.92;transform-origin:50% 50%;animation:vrashch 80s linear infinite}
.zastavka-logo{position:absolute;left:50%;top:50%;width:44%;transform:translate(-50%,-50%)}
.zastavka-podzag{font-family:var(--zag);font-weight:200;font-size:clamp(22px,3vw,34px);letter-spacing:.02em;color:var(--tekst);
  animation:tumanVhod 1.4s .5s var(--ease) backwards}
.zastavka-knopka{margin-top:34px;padding:18px 34px;animation:tumanVhod 1.4s .9s var(--ease) backwards}
.zastavka-tiho{margin-top:18px;background:none;border:0;cursor:pointer;font-family:var(--zag);font-weight:700;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--tekst-3);padding:8px 12px;transition:color .3s;
  animation:tumanVhod 1.4s 1.1s var(--ease) backwards}
.zastavka-tiho:hover{color:var(--tekst)}
@keyframes znakVhod{from{opacity:0;transform:scale(.86) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes tumanVhod{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* волны звука — на кнопке входа и на кнопке «пение птиц» */
.zvuk-volny{display:inline-flex;align-items:flex-end;gap:2.5px;height:14px}
.zvuk-volny i{display:block;width:2.5px;height:30%;border-radius:2px;background:currentColor}
.zastavka-knopka .zvuk-volny i,.zvuk-knopka.vkl .zvuk-volny i{animation:volna 1.1s ease-in-out infinite}
.zvuk-volny i:nth-child(2){animation-delay:-.3s!important}
.zvuk-volny i:nth-child(3){animation-delay:-.6s!important}
.zvuk-volny i:nth-child(4){animation-delay:-.15s!important}
@keyframes volna{0%,100%{height:25%}50%{height:100%}}

/* кнопка звука живёт в шапке: всегда под рукой и ничего не закрывает */
.zvuk-knopka{position:relative;display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:50%;cursor:pointer;
  color:var(--tekst-3);background:rgba(254,254,254,.04);box-shadow:inset 0 0 0 1px var(--liniya-2);flex:0 0 auto;
  transition:box-shadow .3s,color .3s,background .3s}
.zvuk-knopka[hidden]{display:none}
.zvuk-knopka:hover{color:var(--bel);box-shadow:inset 0 0 0 1px var(--terra-sv)}
.zvuk-knopka.vkl{color:var(--terra-sv2);box-shadow:inset 0 0 0 1px var(--liniya-t);background:rgba(174,76,47,.14)}
.zvuk-knopka .zvuk-volny{position:relative}
.zvuk-knopka:not(.vkl) .zvuk-volny::after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:1.5px;border-radius:2px;background:currentColor;transform:rotate(-38deg)}
.zvuk-knopka:not(.vkl) .zvuk-volny i{height:45%}
.zvuk-knopka:not(.vkl) .zvuk-volny i:nth-child(2),.zvuk-knopka:not(.vkl) .zvuk-volny i:nth-child(4){height:70%}
.knopka:focus-visible,.zvuk-knopka:focus-visible,.pv:focus-visible,.kk-chip:focus-visible,.fishka:focus-visible,.mp:focus-visible,.pz-pr:focus-visible{outline:1.5px solid var(--terra-sv2);outline-offset:3px}

/* =============================================================== верхушка */
.verhushka{position:sticky;top:0;z-index:60}
.demo{position:relative;background:linear-gradient(90deg,#1F130E,#3A1D12 50%,#1F130E);color:var(--terra-sv2);
  font-size:13px;line-height:1.45;padding:9px 48px 9px 20px;text-align:center;border-bottom:1px solid var(--liniya)}
.demo span::before{content:"";display:inline-block;width:6px;height:6px;margin:0 10px 1px 0;transform:rotate(45deg);background:var(--terra-sv)}
.demo button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--terra-sv2);
  font-size:22px;line-height:1;cursor:pointer;padding:4px 8px}

.shapka{display:flex;align-items:center;gap:28px;padding:13px 34px;background:rgba(15,14,13,.7);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);
  border-bottom:1px solid var(--liniya);transition:background .4s,padding .4s}
.shapka.plyt{background:rgba(12,11,10,.92);padding-top:9px;padding-bottom:9px}
.brend{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:var(--tekst);flex:0 0 auto}
.brend-logo{display:block;width:176px;height:auto}
.brend i{font-style:normal;font-family:var(--zag);font-weight:700;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--terra-sv);white-space:nowrap}
.navi{display:flex;gap:26px;margin-left:auto;font-family:var(--zag);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase}
.navi a{position:relative;text-decoration:none;color:var(--tekst-2);padding:6px 0;transition:color .3s}
.navi a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--terra-sv);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.navi a:hover{color:var(--bel)}
.navi a:hover::after{transform:scaleX(1)}
.tel{text-decoration:none;font-family:var(--zag);font-weight:200;font-size:21px;white-space:nowrap;color:var(--bel);letter-spacing:.01em}
.tel:hover{color:var(--terra-sv2)}
.burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:6px;padding:8px}
/* шапка в одну строку на любом ноутбуке: сначала мельче телефон и промежутки, потом телефон уходит (он есть в брони и подвале) */
@media (max-width:1400px){.tel{font-size:18px}.shapka{gap:22px}.navi{gap:22px}}
@media (max-width:1320px){.tel{display:none}}
@media (max-width:1180px){.shapka{gap:18px}.navi{gap:18px}}
.burger span{display:block;width:26px;height:1.5px;background:var(--bel)}

/* =============================================================== кнопки */
.knopka{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;text-align:center;
  cursor:pointer;border:0;border-radius:999px;padding:16px 30px;font-family:var(--zag);font-weight:700;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--bel);background:var(--terra);isolation:isolate;overflow:hidden;
  box-shadow:0 14px 34px -14px rgba(174,76,47,.85),inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s}
.knopka::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-130%);transition:transform 1s var(--ease)}
.knopka:hover{transform:translateY(-2px);background:#BD5635;box-shadow:0 20px 46px -16px rgba(200,90,56,.9),inset 0 1px 0 rgba(255,255,255,.2)}
.knopka:hover::after{transform:translateX(130%)}
.knopka:disabled{opacity:.6;cursor:default;transform:none}
.knopka-tihaya{background:rgba(254,254,254,.04);box-shadow:inset 0 0 0 1px var(--liniya-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.knopka-tihaya::after{background:linear-gradient(115deg,transparent 30%,rgba(254,254,254,.12) 50%,transparent 70%)}
.knopka-tihaya:hover{background:rgba(254,254,254,.07);box-shadow:inset 0 0 0 1px var(--terra-sv),0 14px 36px -18px rgba(174,76,47,.6)}
.knopka-mini{padding:12px 20px;font-size:10.5px}
.knopka-shir{width:100%;padding:19px}
.knopka-vk{background:#0077FF;box-shadow:0 12px 30px -12px rgba(0,110,255,.7)}
.knopka-vk:hover{background:#1A86FF}
/* 16.09.2026 — MAX: их рабочий мессенджер, кнопка ведёт сразу в диалог */
.knopka-max{background:linear-gradient(135deg,#3D6BF5,#8B4BF0);box-shadow:0 12px 30px -12px rgba(93,86,240,.75)}
.knopka-max:hover{background:linear-gradient(135deg,#5480FF,#9C63FF)}
.knopka-max[hidden]{display:none}
.pisat{display:flex;gap:12px;flex-wrap:wrap}

/* =============================================================== узор и подписи разделов */
.lenta{height:26px;background:url(brend/uzor-terra.svg) center/38px 26px repeat-x;opacity:.5;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.sek-nad{display:flex;align-items:center;gap:14px;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--terra-sv);margin-bottom:22px}
.sek-nad .nomer{font-family:var(--zag);font-weight:200;font-size:22px;letter-spacing:.02em;color:var(--tekst-3)}
.sek-nad .nomer::after{content:"";display:inline-block;width:34px;height:1px;margin:0 0 6px 14px;background:var(--liniya-t)}

/* =============================================================== первый экран */
.hero{position:relative;min-height:calc(100vh - var(--verh-h) - var(--demo-h,0px));min-height:calc(100svh - var(--verh-h) - var(--demo-h,0px));display:grid;place-items:center;
  padding:48px 24px 100px;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(44% 42% at 50% 36%,rgba(174,76,47,.3),transparent 72%),
    radial-gradient(36% 46% at 4% 96%,rgba(174,76,47,.14),transparent 70%),
    radial-gradient(46% 54% at 98% 100%,rgba(86,105,143,.26),transparent 72%),
    radial-gradient(30% 30% at 92% 4%,rgba(91,91,91,.2),transparent 70%),
    linear-gradient(180deg,#131110 0%,#0D0C0B 62%,var(--noch) 100%)}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url(brend/uzor-bel.svg) center top/190px 131px;opacity:.035;
  -webkit-mask-image:radial-gradient(62% 58% at 50% 42%,#000 10%,transparent 78%);mask-image:radial-gradient(62% 58% at 50% 42%,#000 10%,transparent 78%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;z-index:-1;background:linear-gradient(transparent,var(--noch))}

.hero-par,.zastavka-par{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.zastavka-par{z-index:0}
.par{position:absolute;bottom:-38%;width:44vw;height:70vh;border-radius:50%;opacity:0;
  background:radial-gradient(closest-side,rgba(254,250,245,.12),rgba(254,250,245,.045) 55%,transparent);
  animation:parIdet 24s linear infinite;will-change:transform,opacity}
.par1{left:2%}
.par2{left:36%;width:36vw;animation-delay:-8s}
.par3{left:62%;width:40vw;animation-delay:-15s}
.par4{left:20%;width:30vw;animation-delay:-20s;animation-duration:30s}
@keyframes parIdet{0%{transform:translate3d(0,0,0) scale(.75);opacity:0}18%{opacity:1}65%{opacity:.55}100%{transform:translate3d(5vw,-105vh,0) scale(1.4);opacity:0}}

.hero-centr{position:relative;z-index:2;width:min(700px,48vw);text-align:center;display:flex;flex-direction:column;align-items:center}
.hero-znak{position:relative;width:clamp(190px,17vw,250px);aspect-ratio:1;margin-bottom:22px}
/* кольцо ровно по размеру знака и строго по центру логотипа. Было inset:-6% и width:112% — общее img{max-width:100%}
   срезало ширину до 100%, и кольцо стояло левее логотипа на 6% (жалоба Алексея 14.09) */
.hero-kolco{position:absolute;inset:0;width:100%;height:100%;max-width:none;opacity:.9;transform-origin:50% 50%;animation:vrashch 90s linear infinite}
.hero-logo{position:absolute;left:50%;top:50%;width:46%;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 30px rgba(0,0,0,.6))}
@keyframes vrashch{to{transform:rotate(360deg)}}

.nad{display:inline-flex;align-items:center;gap:16px;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--terra-sv)}
.nad::before,.nad::after{content:"";width:38px;height:1px;background:linear-gradient(90deg,transparent,var(--terra-sv))}
.nad::after{transform:scaleX(-1)}
.hero h1{font-family:var(--zag);font-weight:200;font-size:clamp(44px,5.4vw,88px);line-height:1;letter-spacing:-.015em;
  margin-top:22px;color:var(--bel);text-wrap:balance}
.hero h1 em{display:block;margin-top:.06em;line-height:1.05}
.hero-text{font-size:17px;line-height:1.72;color:var(--tekst-2);margin-top:26px;max-width:35em;text-wrap:pretty}
.pripiska{font-size:12.5px;color:var(--tekst-3);margin-top:12px}
.pripiska:empty{display:none}
/* главная кнопка — бронь, по центру под логотипом (Ирина, 15.09); к карте и к ценам — тише, строкой ниже */
.hero-knopki{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:34px}
.knopka-bron{padding:21px 58px;font-size:13.5px;letter-spacing:.2em;box-shadow:0 22px 50px -18px rgba(174,76,47,.95),inset 0 1px 0 rgba(255,255,255,.2)}
.hero-knopki-dop{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* --- фишки на главной: почта, открытки, роспись, ролик — в рамах, как на стене холла */
.hero-fishki{position:absolute;inset:0;z-index:1;pointer-events:none}
/* 16.09.2026, Ирина: «плашки наезжают друг на друга, текст перекрывают». Были на жёстких отступах от низа —
   ярлык и подпись сталкивались, а длинная подпись резалась многоточием. Теперь низ рамы идёт потоком:
   фото тянется, ярлык — наклейкой на его кромке, подпись — ниже с зазором и переносится в две строки */
.fishka{position:absolute;display:flex;flex-direction:column;pointer-events:auto;cursor:pointer;border:0;padding:9px 9px 11px;border-radius:4px;text-align:left;color:var(--tekst);
  background:linear-gradient(160deg,#23201E,#151312);
  box-shadow:0 46px 90px -34px rgba(0,0,0,.95),inset 0 0 0 1px rgba(254,254,254,.12),inset 0 1px 0 rgba(254,254,254,.08);
  transform:translate3d(var(--px,0px),var(--py,0px),0) rotate(var(--rot,0deg));transition:transform 1.1s var(--ease),box-shadow .6s}
.fishka:hover,.fishka:focus-visible{transform:translate3d(var(--px,0px),var(--py,0px),0) rotate(0deg) scale(1.045);outline:none;
  box-shadow:0 56px 100px -34px rgba(0,0,0,.95),inset 0 0 0 1px rgba(216,128,94,.6),0 0 70px -24px rgba(174,76,47,.55)}
.fishka-ramka{position:relative;display:block;flex:1 1 auto;min-height:0;width:100%;overflow:hidden;border-radius:2px;background:var(--noch-3)}
.fishka-ramka img,.fishka-ramka video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.fishka:hover .fishka-ramka img{transform:scale(1.06)}
.fishka-yarlyk{position:relative;z-index:2;align-self:center;flex:none;margin-top:-15px;transform:rotate(-2.5deg);padding:9px 16px 8px;border-radius:2px;
  background:var(--terra);color:var(--bel);font-family:var(--zag);font-weight:700;font-size:11px;line-height:1;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  box-shadow:0 12px 24px -10px rgba(0,0,0,.85),inset 0 0 0 1px rgba(255,255,255,.12)}
.fishka-kratko{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;flex:none;margin:12px 2px 0;overflow:hidden;
  font-family:var(--zag);font-weight:700;font-size:8.5px;line-height:1.4;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tekst-3);text-align:center}
.fishka-igrat{position:absolute;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;
  display:grid;place-items:center;background:rgba(15,14,13,.45);box-shadow:inset 0 0 0 1.5px rgba(254,254,254,.8);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .5s var(--ease),background .4s}
.fishka-igrat::before{content:"";margin-left:5px;border-left:17px solid var(--bel);border-top:11px solid transparent;border-bottom:11px solid transparent}
.fishka:hover .fishka-igrat{transform:translate(-50%,-50%) scale(1.1);background:var(--terra)}
.fishka1{--rot:-5deg;left:3.5%;top:8%;width:clamp(170px,18.5vw,286px);height:clamp(220px,24vw,370px)}
.fishka2{--rot:4.5deg;right:3.5%;top:6%;width:clamp(160px,17.5vw,270px);height:clamp(210px,23vw,350px)}
.fishka3{--rot:3deg;left:5%;bottom:9%;width:clamp(180px,19vw,300px);height:clamp(150px,15vw,236px)}
.fishka4{--rot:-3.5deg;right:5%;bottom:8%;width:clamp(200px,21vw,330px);height:clamp(120px,12.4vw,194px)}

.hero-vniz{position:absolute;left:50%;bottom:26px;z-index:3;width:1px;height:58px;transform:translateX(-50%);
  background:linear-gradient(var(--liniya-2),transparent);overflow:hidden}
.hero-vniz span{position:absolute;left:0;top:-30%;width:1px;height:30%;background:var(--terra-sv);animation:vniz 2.4s var(--ease) infinite}
@keyframes vniz{to{top:110%}}

/* =============================================================== цифры */
.cifry-sek{position:relative;padding:14px 0 70px;background:linear-gradient(180deg,var(--noch),var(--noch-2))}
.cifry{display:grid;grid-template-columns:repeat(4,1fr);margin-top:44px}
.cifra{position:relative;text-align:center;padding:6px 20px}
.cifra+.cifra::before{content:"";position:absolute;left:0;top:10%;bottom:10%;width:1px;background:linear-gradient(transparent,var(--liniya-2),transparent)}
.cifra b{display:block;font-family:var(--zag);font-weight:200;font-size:clamp(46px,5.2vw,80px);line-height:1;color:var(--bel);letter-spacing:-.02em}
.cifra span{display:block;font-family:var(--zag);font-weight:700;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--tekst-3);
  margin:14px auto 0;line-height:1.6;max-width:17em}

/* =============================================================== каркас */
.obertka{max-width:1240px;margin:0 auto;padding:0 34px}
.sek{position:relative;padding:130px 0;isolation:isolate}
.sek h2{font-family:var(--zag);font-weight:200;font-size:clamp(38px,4.4vw,68px);line-height:1.02;letter-spacing:-.012em;color:var(--bel);text-wrap:balance}
.lead{max-width:44em;margin-top:22px;color:var(--tekst-2);font-size:17px;text-wrap:pretty}
.snoska{margin-top:30px;font-size:12.5px;color:var(--tekst-3);max-width:62em}
.snoska:empty{display:none}
.sek-lenta::before{content:"";position:absolute;left:0;right:0;top:0;height:26px;background:url(brend/uzor-terra.svg) center/38px 26px repeat-x;
  opacity:.28;-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent)}

/* =============================================================== три пространства */
.sek-prostr{background:
  radial-gradient(40% 36% at 0% 20%,rgba(174,76,47,.14),transparent 70%),
  radial-gradient(40% 40% at 100% 60%,rgba(86,105,143,.16),transparent 70%),
  var(--noch-2)}
.prostr{display:grid;gap:120px;margin-top:80px}
.pz{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:76px;align-items:start}
.pz:nth-child(even) .pz-foto{order:2}
.pz-foto{position:sticky;top:calc(var(--verh-h) + 30px)}
.pz-foto-glav{width:100%;aspect-ratio:4/4.9;object-fit:cover;border-radius:300px 300px 14px 14px;box-shadow:0 60px 110px -50px rgba(0,0,0,.95);cursor:zoom-in}
.pz-foto::after{content:"";position:absolute;left:-14px;right:-14px;top:-14px;bottom:-14px;border:1px solid var(--liniya-t);
  border-radius:320px 320px 22px 22px;pointer-events:none}
.pz-venok{position:absolute;right:-26px;bottom:34px;z-index:2;width:132px;height:132px;border-radius:50%;object-fit:cover;cursor:zoom-in;
  box-shadow:0 0 0 6px var(--noch-2),0 0 0 7px var(--liniya-t),0 24px 44px -16px rgba(0,0,0,.9)}
.pz:nth-child(even) .pz-venok{right:auto;left:-26px}
.pz-foto2{position:absolute;left:-30px;bottom:-40px;z-index:1;width:42%;aspect-ratio:1;object-fit:cover;border-radius:12px;cursor:zoom-in;
  box-shadow:0 0 0 6px var(--noch-2),0 30px 60px -24px rgba(0,0,0,.9)}
.pz:nth-child(even) .pz-foto2{left:auto;right:-30px}
.pz-tip{font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--terra-sv)}
.pz-imya{font-family:var(--zag);font-weight:200;font-size:clamp(40px,4.2vw,62px);line-height:1;letter-spacing:-.012em;color:var(--bel);margin-top:14px}
.pz-legenda{font-family:var(--zag);font-weight:200;font-size:21px;line-height:1.35;color:var(--terra-sv2);margin-top:14px;letter-spacing:.005em;text-wrap:balance}
.pz-text{margin-top:20px;color:var(--tekst-2);font-size:16.5px}
.pz-ceny{margin-top:28px;border-top:1px solid var(--liniya)}
.pz-s{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 30px;align-items:end;padding:16px 0;border-bottom:1px solid var(--liniya)}
.pz-s .kto{font-size:15px;color:var(--tekst)}
.pz-s .vmest{display:block;font-size:12.5px;color:var(--tekst-3);margin-top:2px}
.pz-s .cena{text-align:right}
.pz-s .cena span{display:block;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--tekst-3)}
.pz-s .cena b{display:block;font-family:var(--zag);font-weight:200;font-size:30px;line-height:1.05;color:var(--bel);white-space:nowrap}
.pz-vhodit{margin-top:14px;font-size:13px;line-height:1.6;color:var(--tekst-3)}
.pz-zdes{margin-top:34px;padding:26px 26px 12px;border-radius:18px;background:var(--steklo);box-shadow:inset 0 0 0 1px var(--liniya)}
.pz-zdes h4{display:flex;align-items:center;gap:10px;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--tekst-2)}
.pz-zdes h4 i{font-style:normal;min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;
  background:rgba(174,76,47,.2);color:var(--terra-sv2);letter-spacing:0}
.pz-pr{display:grid;grid-template-columns:minmax(0,1fr) auto 14px;gap:2px 18px;align-items:baseline;width:100%;padding:13px 0;border:0;
  border-bottom:1px solid var(--liniya);background:none;cursor:pointer;text-align:left;color:var(--tekst);transition:padding .35s var(--ease)}
.pz-pr:last-child{border-bottom:0}
.pz-pr:hover{padding-left:8px}
.pz-pr-imya{grid-column:1;grid-row:1;font-size:15.5px;line-height:1.35}
/* подпись под названием может заходить под цену: у «Двойного погружения» на айфоне «3,5 часа, на двоих» рвалось на две строки */
.pz-pr-za{grid-column:1 / 3;grid-row:2;font-size:12px;color:var(--tekst-3)}
.pz-pr-cena{grid-column:2;grid-row:1;font-family:var(--zag);font-weight:200;font-size:21px;color:var(--terra-sv2);white-space:nowrap}
.pz-pr::after{content:"›";grid-column:3;grid-row:1;color:var(--terra-sv);font-size:20px;transition:transform .35s var(--ease)}
.pz-pr:hover::after{transform:translateX(4px)}
.pz-gr+.pz-gr{margin-top:14px}
.pz-gr h5{margin:18px 0 2px;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--terra-sv)}
.pz-eshche-spisok[hidden]{display:none}
.pz-eshche{display:inline-flex;align-items:center;gap:10px;margin:10px 0 8px;padding:9px 16px;border:0;border-radius:999px;cursor:pointer;
  font-family:var(--zag);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-sv2);
  background:rgba(174,76,47,.12);box-shadow:inset 0 0 0 1px var(--liniya-t);transition:background .3s}
.pz-eshche::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s}
.pz-eshche[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
.pz-eshche:hover{background:rgba(174,76,47,.24)}
.pz-knopki{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

.obe{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);margin-top:120px;border-radius:24px;overflow:hidden;
  background:var(--steklo);box-shadow:inset 0 0 0 1px var(--liniya-2)}
.obe[hidden]{display:none}
.obe-foto{position:relative;min-height:340px;display:grid}
/* две парные рядом: у каждой свой кадр и подпись (просьба Ирины 16.09.2026) */
.obe-foto-2{grid-template-rows:1fr 1fr;gap:3px}
.obe-foto figure{position:relative;margin:0;min-height:0;overflow:hidden}
.obe-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.obe-foto figcaption{position:absolute;z-index:3;left:18px;bottom:14px;font-family:var(--zag);font-weight:700;font-size:9.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--bel);text-shadow:0 2px 14px rgba(15,14,13,.9)}
.obe-foto::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 55%,rgba(20,19,18,.9))}
.obe-telo{padding:42px 44px}
.obe-telo h3{font-family:var(--zag);font-weight:200;font-size:clamp(32px,3.4vw,48px);line-height:1.04;color:var(--bel)}
.obe-telo>p{margin-top:12px;color:var(--tekst-2)}
.obe-ceny{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:22px}
.obe-ceny div span{display:block;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--tekst-3)}
.obe-ceny div b{display:block;font-family:var(--zag);font-weight:200;font-size:34px;line-height:1.1;color:var(--bel)}
.obe .pz-zdes{margin-top:26px}

/* =============================================================== программы и цены */
.sek-karta{background:
  radial-gradient(44% 30% at 100% 18%,rgba(174,76,47,.1),transparent 70%),
  radial-gradient(40% 40% at 0% 100%,rgba(86,105,143,.14),transparent 70%),
  var(--noch)}
.karta-verh{display:grid;grid-template-columns:1fr;gap:40px;align-items:end}
.karta-verh:has(img[src]){grid-template-columns:1.25fr .75fr}
.karta-f img{width:100%;border-radius:12px;max-height:460px;object-fit:contain}
.prays-vkladki{display:flex;flex-wrap:wrap;gap:8px;margin-top:44px}
.pv{display:inline-flex;align-items:center;gap:9px;padding:10px 12px 10px 18px;border:0;border-radius:999px;cursor:pointer;
  font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--tekst-2);
  background:rgba(254,254,254,.04);box-shadow:inset 0 0 0 1px var(--liniya-2);transition:box-shadow .3s,color .3s,background .3s}
.pv i{font-style:normal;min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;
  background:rgba(254,254,254,.08);color:var(--tekst-2);letter-spacing:0}
.pv:hover{color:var(--bel);box-shadow:inset 0 0 0 1px var(--terra-sv)}
.pv.vybran{background:var(--terra);color:var(--bel);box-shadow:none}
.pv.vybran i{background:rgba(0,0,0,.2);color:var(--bel)}
.mesta{margin-top:40px}
.pg{margin-top:44px}
.pg:first-child{margin-top:0}
.pg[hidden]{display:none}
.pg-zag{display:flex;align-items:center;gap:16px;font-family:var(--zag);font-weight:700;font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--terra-sv);padding-bottom:14px;border-bottom:1px solid var(--liniya-t)}
.pg-zag::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--liniya),transparent)}
.mp{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr) auto 18px;gap:6px 30px;width:100%;padding:24px 12px;border:0;
  border-bottom:1px solid var(--liniya);background:none;cursor:pointer;text-align:left;color:var(--tekst);align-items:center;transition:background .5s}
.mp:hover{background:linear-gradient(90deg,rgba(174,76,47,.1),transparent 75%)}
.mp-mesto{font-family:var(--zag);font-weight:700;font-size:10px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-sv)}
.mp-t b{display:block;font-family:var(--zag);font-weight:200;font-size:27px;line-height:1.1;color:var(--bel)}
.mp-t i{display:block;font-style:normal;font-size:14px;color:var(--tekst-3);margin-top:6px;line-height:1.5}
.mp-c{text-align:right;white-space:nowrap}
.mp-c b{display:block;font-family:var(--zag);font-weight:200;font-size:28px;line-height:1;color:var(--terra-sv2)}
.mp-c span{display:block;font-size:12px;color:var(--tekst-3);margin-top:7px;white-space:normal;max-width:15em;margin-left:auto;line-height:1.4}
.mp::after{content:"›";color:var(--terra-sv);font-size:24px;transition:transform .35s var(--ease)}
.mp:hover::after{transform:translateX(5px)}

/* =============================================================== пары «фото + текст» */
.para{display:grid;grid-template-columns:1fr 1fr;gap:84px;align-items:center}
.para-obratno .para-foto{order:2}
.para-foto{position:relative}
.para-foto>img{width:100%;aspect-ratio:4/4.8;object-fit:cover;border-radius:320px 320px 16px 16px;box-shadow:0 60px 110px -50px rgba(0,0,0,.95)}
.para-foto:not(.para-dve)::after{content:"";position:absolute;inset:-16px;border:1px solid var(--liniya-t);border-radius:340px 340px 24px 24px;pointer-events:none}
.para-dve{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}
.para-dve img{width:100%;aspect-ratio:3/4.2;object-fit:cover;border-radius:200px 200px 12px 12px}
.para-dve img+img{aspect-ratio:3/3.4;border-radius:12px}

.citaty{margin-top:34px;border-top:1px solid var(--liniya)}
.cit{padding:20px 0;border-bottom:1px solid var(--liniya)}
.cit b{display:block;font-family:var(--zag);font-weight:200;font-size:25px;line-height:1.15;color:var(--bel)}
.cit p{font-size:15px;line-height:1.6;color:var(--tekst-2);margin-top:8px}
.sek-komanda{background:
  radial-gradient(44% 50% at 10% 50%,rgba(174,76,47,.12),transparent 70%),
  radial-gradient(30% 40% at 95% 10%,rgba(86,105,143,.12),transparent 70%),
  var(--noch-2)}

/* =============================================================== особенное */
.sek-krem{background:
  radial-gradient(50% 40% at 50% 0%,rgba(86,105,143,.18),transparent 72%),
  radial-gradient(40% 40% at 100% 100%,rgba(174,76,47,.1),transparent 70%),
  var(--noch)}
.sek-krem::after{content:"";position:absolute;inset:0;z-index:-1;background:url(brend/uzor-bel.svg) center/190px 131px;opacity:.025;
  -webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}
.osob{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:64px}
.os{position:relative;border-radius:16px;overflow:hidden;background:var(--noch-3);box-shadow:inset 0 0 0 1px var(--liniya);transition:transform .7s var(--ease),box-shadow .7s}
.os:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px var(--liniya-2),0 40px 80px -40px rgba(0,0,0,.9)}
.os-f{aspect-ratio:1/1;overflow:hidden;background:var(--noch-4)}
.os-f img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .7s;filter:saturate(.92)}
.os:hover .os-f img{transform:scale(1.07);filter:saturate(1.05)}
.os-t{padding:22px 22px 26px}
.os-t b{display:block;font-family:var(--zag);font-weight:700;font-size:15.5px;line-height:1.3;color:var(--bel)}
.os-t p{font-size:14px;color:var(--tekst-2);margin-top:10px;line-height:1.6}

/* =============================================================== галерея */
.sek-foto{background:linear-gradient(180deg,var(--noch-2),var(--noch))}
.setka{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,14.5vw,196px);grid-auto-flow:dense;gap:12px;margin-top:64px}
.plitka{position:relative;overflow:hidden;border-radius:10px;cursor:zoom-in;background:var(--noch-3)}
.plitka:nth-child(9n+1),.plitka:nth-child(9n+8){grid-column:span 2;grid-row:span 2}
.plitka img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .7s;filter:saturate(.9) brightness(.9)}
.plitka:hover img{transform:scale(1.08);filter:saturate(1.05) brightness(1)}
.plitka span{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bel);background:linear-gradient(transparent,rgba(8,7,6,.88));opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
.plitka:hover span{opacity:1;transform:none}
@media (hover:none){.plitka span{opacity:1;transform:none}}

/* =============================================================== отзывы */
.sek-otzyvy{background:
  radial-gradient(40% 40% at 0% 0%,rgba(174,76,47,.1),transparent 70%),
  radial-gradient(40% 50% at 100% 100%,rgba(86,105,143,.12),transparent 70%),
  var(--noch)}
/* карточки — строчные блоки: Safari переносил отступ последней карточки колонки наверх следующей (колонка на 22 px ниже)
   и раскладывал отзывы по колонкам иначе, чем Chrome. Так раскладка одна везде; минус 22 px снизу — отступ последней карточки */
.otzyvy{columns:3;column-gap:22px;margin-top:64px;margin-bottom:-22px}
.otz{position:relative;display:inline-block;width:100%;vertical-align:top;break-inside:avoid;margin-bottom:22px;padding:30px 30px 28px;border-radius:18px;background:var(--steklo);box-shadow:inset 0 0 0 1px var(--liniya)}
.otz::before{content:"“";position:absolute;top:6px;right:22px;font-family:Georgia,serif;font-size:80px;line-height:1;color:var(--terra);opacity:.5}
.otz-h{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;padding-right:44px}
.otz-h b{font-family:var(--zag);font-weight:700;font-size:16px;line-height:1.25;color:var(--bel)}
.otz-h span{font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra-sv)}
.otz p{font-size:15px;line-height:1.7;color:var(--tekst-2)}
/* отзывы с Яндекс Карт — их официальный виджет, обновляется сам (Ирина, 15.09); у 2ГИС такого нет — кнопка.
   Скругление режем у самого окна (clip-path): overflow у рамки Safari для iframe не всегда соблюдает, а тень рамки должна остаться */
.otz-para{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:44px 72px;align-items:center}
.otz-knopki{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.otz-knopki:empty{display:none}
.otz-vidzhet{position:relative;width:100%;max-width:560px;height:600px;justify-self:center;border-radius:22px;background:#fff;
  box-shadow:0 60px 110px -50px rgba(0,0,0,.95),0 0 0 1px rgba(254,254,254,.1),0 0 90px -40px rgba(174,76,47,.35)}
.otz-vidzhet iframe{display:block;width:100%;height:100%;border:0;border-radius:22px;clip-path:inset(0 round 22px)}

/* =============================================================== бронь */
.sek-zapis{background:
  radial-gradient(44% 60% at 0% 60%,rgba(174,76,47,.16),transparent 70%),
  radial-gradient(40% 50% at 100% 0%,rgba(86,105,143,.14),transparent 70%),
  var(--noch-2)}
.sek-zapis .para{align-items:start}
.bolshoy-tel{display:inline-block;font-family:var(--zag);font-weight:200;font-size:clamp(36px,3.6vw,54px);line-height:1.1;text-decoration:none;margin-top:32px;color:var(--bel)}
.bolshoy-tel:hover{color:var(--terra-sv2)}
.chasy{font-size:14.5px;color:var(--tekst-2);margin-top:8px}
.chasy:empty{display:none}
.svyaz{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.svyaz a{text-decoration:none;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:12px 20px;border-radius:999px;
  color:var(--tekst);box-shadow:inset 0 0 0 1px var(--liniya-2);background:rgba(254,254,254,.03);transition:box-shadow .3s,color .3s}
.svyaz a:hover{box-shadow:inset 0 0 0 1px var(--terra-sv);color:var(--bel)}
.vk-blok{margin-top:34px;padding-top:26px;border-top:1px solid var(--liniya)}
.vk-blok[hidden]{display:none}
.vk-blok p{font-size:14.5px;color:var(--tekst-2);margin-bottom:14px;max-width:26em}

.forma{position:relative;border-radius:24px;padding:36px;color:var(--tekst);
  background:linear-gradient(160deg,rgba(254,254,254,.07),rgba(254,254,254,.02));box-shadow:inset 0 0 0 1px var(--liniya-2),0 70px 130px -60px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.forma::before{content:"";position:absolute;left:36px;right:36px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--terra-sv),transparent);opacity:.8}

.kal{border-radius:18px;background:rgba(8,7,6,.5);box-shadow:inset 0 0 0 1px var(--liniya);padding:20px 20px 18px;margin-bottom:26px}
.kal[hidden]{display:none}
.kal-zag{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.kal-zag b{font-family:var(--zag);font-weight:200;font-size:26px;color:var(--bel)}
.kal-listat{display:flex;align-items:center;gap:8px}
.kal-listat span{font-size:14px;min-width:9.6em;text-align:center;color:var(--tekst-2)}
.kal-listat button{width:34px;height:34px;border:0;background:rgba(254,254,254,.05);box-shadow:inset 0 0 0 1px var(--liniya-2);border-radius:50%;
  cursor:pointer;color:var(--terra-sv2);font-size:19px;line-height:1;padding:0;transition:box-shadow .25s}
.kal-listat button:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--terra-sv)}
.kal-listat button:disabled{opacity:.3;cursor:default}
.kal-dni,.kal-setka{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.kal-dni span{text-align:center;font-family:var(--zag);font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--tekst-3);padding-bottom:6px}
.kd{aspect-ratio:1/1;border:0;background:rgba(254,254,254,.04);border-radius:10px;cursor:pointer;font-size:15px;color:var(--tekst);padding:0;transition:background .2s,box-shadow .2s}
.kd:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--terra-sv)}
.kd.pusto{background:none;cursor:default}
.kd.nelzya{color:rgba(242,237,232,.2);background:none;cursor:default}
.kd.segodnya{box-shadow:inset 0 0 0 1px var(--liniya-2)}
.kd.vybran{background:var(--terra);color:var(--bel);font-weight:700;box-shadow:0 10px 22px -10px rgba(174,76,47,.9)}
.kal-chasy-zag{margin-top:20px;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3)}
.kal-chasy{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}
.kch{padding:11px 0;border:0;background:rgba(254,254,254,.04);box-shadow:inset 0 0 0 1px var(--liniya);border-radius:999px;cursor:pointer;font-size:14px;color:var(--tekst);transition:box-shadow .2s,background .2s}
.kch:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--terra-sv)}
.kch.nelzya{opacity:.3;cursor:default}
.kch.vybran{background:var(--terra);color:var(--bel);font-weight:700;box-shadow:none}
.kal-note{margin-top:14px;font-size:12.5px;color:var(--tekst-3);line-height:1.55}
.kal-vybor{margin-top:12px;font-size:14.5px;padding:12px 14px;border-radius:12px;background:rgba(174,76,47,.16);color:var(--terra-sv2)}
.kal-vybor[hidden]{display:none}
.kal-vybor i{font-style:normal;color:var(--tekst-2)}
#poleDataRuchnaya[hidden]{display:none}
.pole{display:block;margin-bottom:16px}
.pole span{display:block;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3);margin-bottom:8px}
.pole input,.pole select,.pole textarea{width:100%;background:rgba(8,7,6,.55);border:1px solid var(--liniya);border-radius:12px;padding:14px 16px;font-size:16px;
  color:var(--tekst);outline:none;transition:border-color .25s,box-shadow .25s}
.pole input::placeholder,.pole textarea::placeholder{color:rgba(242,237,232,.3)}
.pole select{-webkit-appearance:none;appearance:none;padding-right:44px;cursor:pointer;
  background:rgba(8,7,6,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23D8805E' stroke-width='1.5'/%3E%3C/svg%3E") right 18px center/12px 8px no-repeat}
.pole select option{background:#1B1918;color:#F2EDE8}
.pole input:focus,.pole select:focus,.pole textarea:focus{border-color:var(--terra-sv);box-shadow:0 0 0 4px rgba(174,76,47,.18)}
.pole textarea{resize:vertical}
.pole input.oshibka{border-color:#E0694F;box-shadow:0 0 0 4px rgba(224,105,79,.15)}
.pole-para{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.otvet{margin-top:14px;font-size:14.5px;padding:13px 15px;border-radius:12px;background:rgba(174,76,47,.16);color:var(--terra-sv2)}
.otvet[hidden]{display:none}
.otvet.beda{background:rgba(213,69,44,.18);color:#FFC2B0}

/* =============================================================== как добраться и подвал */
.sek-kontakty{background:radial-gradient(40% 50% at 100% 50%,rgba(86,105,143,.16),transparent 72%),var(--noch)}
.adres{margin-top:18px;font-family:var(--zag);font-weight:200;font-size:26px;line-height:1.3;color:var(--bel)}
/* «Построить маршрут» и «Открыть на карте» рядом; под адресом — живая карта с меткой (Ирина, 15.09) */
.kont-knopki{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.kont-karta{position:relative;margin-top:72px;height:clamp(320px,34vw,460px);border-radius:24px;background:var(--noch-3);
  box-shadow:0 60px 110px -50px rgba(0,0,0,.95),0 0 0 1px var(--liniya-2)}
.kont-karta iframe{display:block;width:100%;height:100%;border:0;border-radius:24px;clip-path:inset(0 round 24px)}

.podval{position:relative;padding:40px 0 34px;text-align:center;color:var(--tekst-2);font-size:14.5px;overflow:hidden;
  background:radial-gradient(46% 70% at 50% 0%,rgba(174,76,47,.16),transparent 72%),#0A0908;border-top:1px solid var(--liniya)}
.podval-logo{width:170px;height:auto;margin:46px auto 0}
.podval-v{display:flex;justify-content:center;gap:12px 40px;flex-wrap:wrap;margin-top:30px;align-items:center}
.podval a{color:var(--tekst);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
.podval a:hover{border-bottom-color:var(--terra-sv)}
.podval-tel{font-family:var(--zag);font-weight:200;font-size:24px}
.podval .panel-ssylka{display:inline-block;margin-top:26px;font-family:var(--zag);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3)}
/* 16.09.2026 — правила посещения и бронирования: ссылка-кнопка, лист открывается поверх страницы */
.tekst-ssylka{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--terra-sv);
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--liniya-t);transition:color .25s}
.tekst-ssylka:hover{color:var(--terra-sv2);text-decoration-color:currentColor}
.forma-pravila{margin-top:14px;font-size:12.5px;line-height:1.5;color:var(--tekst-3);text-align:center}
.forma-pravila[hidden]{display:none}
/* 28.09.2026 — согласие на обработку данных: своя галочка в терракоте, не отмечена заранее */
.soglasie{display:flex;gap:11px;align-items:flex-start;margin:16px 0 4px;font-size:13.5px;line-height:1.45;color:var(--tekst-2);cursor:pointer}
.soglasie input{-webkit-appearance:none;appearance:none;flex:0 0 20px;width:20px;height:20px;margin:0;border:1.5px solid var(--liniya-2);border-radius:4px;
  background:rgba(254,254,254,.04);display:grid;place-content:center;cursor:pointer;transition:border-color .2s,background .2s}
.soglasie input::before{content:"";width:11px;height:11px;transform:scale(0);transition:transform .15s var(--ease);background:var(--bel);
  clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}
.soglasie input:checked{background:var(--terra);border-color:var(--terra)}
.soglasie input:checked::before{transform:scale(1)}
.soglasie input:focus-visible{outline:2px solid var(--terra-sv);outline-offset:2px}
.soglasie a,.soglasie-pravila a{color:var(--terra-sv);text-decoration:underline;text-decoration-color:rgba(216,128,94,.45);text-underline-offset:3px}
.soglasie.nado input{border-color:#E0694F;box-shadow:0 0 0 4px rgba(224,105,79,.15)}
.soglasie.nado span{color:#FFC2B0}
.soglasie-pravila{margin:6px 0 16px 31px;font-size:12px;line-height:1.5;color:var(--tekst-3)}
.podval-dok{margin-top:22px;display:flex;gap:8px 22px;justify-content:center;flex-wrap:wrap;font-size:12.5px}
.podval-dok a{color:var(--tekst-2);text-decoration:underline;text-decoration-color:rgba(242,237,232,.3);text-underline-offset:3px}
.podval-dok a:hover{color:var(--terra-sv2)}
.podval .podval-rekv{margin-top:12px;padding-top:0;border-top:0;text-align:center}
.podval-rekv:empty{display:none}
.podval-dok a[hidden]{display:none}
/* 28.09.2026 — окно о cookie для Яндекс Метрики: стеклянная карточка с лентой узора, как лист документа */
.kuki{position:fixed;left:16px;bottom:16px;z-index:60;width:min(420px,calc(100vw - 32px));padding:34px 22px 20px;
  border:1px solid var(--liniya-2);border-radius:6px;background:rgba(20,19,18,.96);color:var(--tekst-2);font-size:14px;line-height:1.5;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.kuki[hidden]{display:none}
.kuki::before{content:"";position:absolute;left:0;right:0;top:8px;height:18px;background:url(brend/uzor-terra.svg) center/26px 18px repeat-x;opacity:.5;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.kuki-t b{display:block;margin-bottom:6px;font-family:var(--zag);font-weight:200;font-size:22px;line-height:1.15;color:var(--tekst)}
.kuki-t a{color:var(--terra-sv);text-underline-offset:3px;white-space:nowrap}
.kuki-sejchas{margin-top:8px;font-size:13px;color:var(--tekst-3)}
.kuki-knopki{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:16px}
.kuki-knopki .kuki-knopka{width:100%;padding:13px 14px;font-size:10.5px}   /* не knopka-mini: её на телефоне прячет шапка */
.podval-pravila{margin-top:22px;font-size:12.5px;color:var(--tekst-3);display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}
.podval-pravila[hidden]{display:none}
.podval-pravila i{font-style:normal;opacity:.5}
.pravila .pr-telo{padding-top:34px}
.pravila .pr-blok + .pr-blok{margin-top:6px}
.pravila-konec{margin-top:14px;font-family:var(--zag);font-size:16px;color:var(--terra-sv)}
.melko{max-width:1240px;margin:30px auto 0;padding:20px 34px 0;font-size:12px;color:var(--tekst-3);border-top:1px solid var(--liniya)}
.melko-zvuk{margin-top:0;padding-top:8px;border-top:0;font-size:11px;opacity:.8}
.melko:empty{display:none}

/* =============================================================== лупа */
.lupa{position:fixed;inset:0;z-index:200;background:rgba(6,5,4,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 20px;
  padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.lupa[hidden]{display:none}
/* dvh — видимая высота: у Safari на телефоне vh больше экрана с панелями, и низ фото уходил под панель */
.lupa img{max-width:min(1200px,92vw,100%);max-height:80vh;max-height:80dvh;object-fit:contain;border-radius:6px;box-shadow:0 40px 120px -30px #000}
.lupa p{color:var(--tekst-2);font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase}
/* крестик на прежнем месте, но попасть пальцем легко: кнопка 48×48 вместо 23×40 */
.lupa-x{position:absolute;top:14px;right:max(10px,env(safe-area-inset-right,0px));width:48px;height:48px;padding:0;background:none;border:0;color:var(--bel);font-size:40px;line-height:1;cursor:pointer;font-weight:300}

/* =============================================================== лист «Подробнее» */
.list{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:3vh 3vw;
  padding-left:max(3vw,env(safe-area-inset-left,0px));padding-right:max(3vw,env(safe-area-inset-right,0px))}
.list[hidden]{display:none}
.list-fon{position:absolute;inset:0;background:rgba(7,6,5,.74);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .45s var(--ease)}
.list.otkryt .list-fon{opacity:1}
.list-okno{position:relative;width:min(1180px,100%);max-height:min(94vh,900px);max-height:min(94dvh,900px);display:grid;grid-template-columns:minmax(0,1fr);border-radius:24px;overflow:hidden;
  background:linear-gradient(170deg,#1C1A18,#121110 60%);box-shadow:inset 0 0 0 1px var(--liniya-2),0 80px 160px -40px #000;outline:none;
  opacity:0;transform:translateY(28px) scale(.985);transition:opacity .45s var(--ease),transform .6s var(--ease)}
.list.otkryt .list-okno{opacity:1;transform:none}
.list-telo{overflow:auto;max-height:min(94vh,900px);max-height:min(94dvh,900px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.list-ruchka{display:none}
.list-x{position:absolute;top:14px;right:14px;z-index:5;width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;color:var(--bel);font-size:28px;line-height:1;
  background:rgba(15,14,13,.6);box-shadow:inset 0 0 0 1px var(--liniya-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .3s,transform .3s}
.list-x:hover{background:var(--terra);transform:rotate(90deg)}
.list-nazad{position:absolute;top:14px;left:14px;z-index:5;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border:0;border-radius:999px;cursor:pointer;
  color:var(--bel);font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  background:rgba(15,14,13,.6);box-shadow:inset 0 0 0 1px var(--liniya-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.list-nazad[hidden]{display:none}
.list-smena{animation:listSmena .5s var(--ease)}
@keyframes listSmena{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}

/* --- программа */
/* фото слева во всю высоту окна: окно не выше min(94vh, 900px) — ровно столько же и галерея */
.pr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(94vh,900px);min-height:min(94dvh,900px)}
.pr-gal{position:sticky;top:0;height:min(94vh,900px);height:min(94dvh,900px);background:#0B0A09;overflow:hidden}
.pr-gal-lenta{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.pr-gal-lenta::-webkit-scrollbar{display:none}
.pr-gal-lenta figure{flex:0 0 100%;height:100%;scroll-snap-align:start;position:relative;cursor:zoom-in}
.pr-gal-lenta img{width:100%;height:100%;object-fit:cover}
.pr-gal-lenta video{display:block;width:100%;height:100%;object-fit:cover;background:#0B0A09}
.pr-gal-lenta .pr-vid{cursor:default}
.pr-gal::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(transparent,rgba(11,10,9,.8));pointer-events:none}
.pr-gal-niz{position:absolute;left:22px;right:22px;bottom:18px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pr-gal-tochki{display:flex;gap:6px}
.pr-gal-tochki i{width:22px;height:2px;border-radius:2px;background:rgba(254,254,254,.3);transition:background .3s,width .3s}
.pr-gal-tochki i.akt{width:34px;background:var(--bel)}
.pr-gal-str{display:flex;gap:8px}
.pr-gal-str button{width:42px;height:42px;border:0;border-radius:50%;cursor:pointer;color:var(--bel);font-size:18px;background:rgba(15,14,13,.55);
  box-shadow:inset 0 0 0 1px var(--liniya-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .3s}
.pr-gal-str button:hover{background:var(--terra)}
.pr-telo{padding:64px 54px 40px}
.pr-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.pr-mesto{font-family:var(--zag);font-weight:700;font-size:10.5px;line-height:1;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-sv)}
.pr-pometka{font-family:var(--zag);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3);padding:6px 11px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--liniya-2)}
.pr-imya{font-family:var(--zag);font-weight:200;font-size:clamp(34px,3.4vw,52px);line-height:1.02;letter-spacing:-.012em;color:var(--bel);margin-top:16px}
.pr-cena-blok{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:20px}
.pr-cena{font-family:var(--zag);font-weight:200;font-size:clamp(34px,3.2vw,46px);line-height:1;color:var(--terra-sv2);white-space:nowrap}
.pr-za{font-size:14px;color:var(--tekst-3)}
.pr-varianty{list-style:none;margin-top:18px;border-top:1px solid var(--liniya)}
.pr-varianty li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:6px 18px;padding:12px 0;border-bottom:1px solid var(--liniya)}
.pr-var-kto{flex:1 1 170px;min-width:0;font-size:14.5px;line-height:1.45;color:var(--tekst-2);align-self:center}
.pr-var-ceny{display:flex;gap:24px;margin-left:auto;text-align:right}
.pr-var-c small{display:block;font-family:var(--zag);font-weight:700;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--tekst-3);margin-bottom:3px}
.pr-var-c b{display:block;font-family:var(--zag);font-weight:200;font-size:21px;line-height:1.1;color:var(--bel);white-space:nowrap}
.pr-fakty{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pr-fakt{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;font-size:13.5px;color:var(--tekst-2);background:rgba(254,254,254,.045);box-shadow:inset 0 0 0 1px var(--liniya)}
.pr-fakt b{font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--tekst-3)}
.pr-fakt.gde{color:var(--bel);box-shadow:inset 0 0 0 1px var(--liniya-t);background:rgba(174,76,47,.1)}
.pr-opis{margin-top:24px;font-size:16px;line-height:1.72;color:var(--tekst-2);text-wrap:pretty}
.pr-legenda{position:relative;margin-top:34px;padding:30px 28px 24px;border-radius:18px;background:
  linear-gradient(160deg,rgba(174,76,47,.14),rgba(174,76,47,.03)),rgba(254,254,254,.02);box-shadow:inset 0 0 0 1px var(--liniya-t);overflow:hidden}
.pr-legenda::before{content:"";position:absolute;left:0;right:0;top:0;height:18px;background:url(brend/uzor-terra.svg) center/26px 18px repeat-x;opacity:.55}
.pr-legenda h3{margin-top:6px;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-sv)}
.pr-legenda h3 span{display:block;margin-top:10px;font-family:var(--zag);font-weight:200;font-size:26px;line-height:1.2;letter-spacing:0;text-transform:none;color:var(--bel)}
.pr-legenda p{margin-top:14px;font-size:15.5px;line-height:1.75;color:var(--tekst)}
.pr-legenda.svernuta p{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.pr-legenda-dalee{margin-top:12px;background:none;border:0;cursor:pointer;padding:0;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--terra-sv2);border-bottom:1px solid var(--liniya-t)}
.pr-blok{margin-top:30px}
.pr-blok h3{font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--tekst-2)}
.pr-spisok{list-style:none;margin-top:12px}
.pr-spisok li{position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--liniya);font-size:15px;line-height:1.55;color:var(--tekst)}
.pr-spisok li::before{content:"";position:absolute;left:4px;top:17px;width:7px;height:7px;transform:rotate(45deg);background:var(--terra)}
.pr-akk{margin-top:12px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--liniya)}
.pr-akk summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;
  font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--tekst-2)}
.pr-akk summary::-webkit-details-marker{display:none}
.pr-akk summary::after{content:"+";font-family:var(--zag);font-weight:200;font-size:24px;line-height:1;color:var(--terra-sv);transition:transform .35s var(--ease)}
.pr-akk[open] summary::after{transform:rotate(45deg)}
.pr-akk .pr-spisok,.pr-akk p{padding:0 18px 14px;margin-top:0}
.pr-akk .pr-spisok li{border-bottom-color:rgba(254,254,254,.06)}
.pr-akk p{font-size:14.5px;line-height:1.65;color:var(--tekst-2)}
.pr-uslovie{margin-top:18px;padding:13px 16px;border-radius:12px;font-size:13.5px;line-height:1.55;color:var(--tekst-2);background:rgba(86,105,143,.14);box-shadow:inset 0 0 0 1px rgba(159,178,216,.22)}
.pr-knopki{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
@media (hover:hover) and (pointer:fine) and (min-width:1101px){.pr-tel{display:none}}
.pr-nav{display:flex;justify-content:space-between;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid var(--liniya)}
.pr-nav button{display:flex;flex-direction:column;gap:4px;max-width:48%;background:none;border:0;cursor:pointer;text-align:left;color:var(--tekst);padding:4px 0}
.pr-nav button:last-child{text-align:right;align-items:flex-end;margin-left:auto}
.pr-nav button span{font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--tekst-3)}
.pr-nav button b{font-family:var(--zag);font-weight:200;font-size:19px;line-height:1.2}
.pr-nav button:hover b{color:var(--terra-sv2)}
.pr-niz{display:none}

/* --- рассказ фишки и ролик */
.ist .pr-telo{display:flex;flex-direction:column;justify-content:center}
.ist-yarlyk{align-self:flex-start;padding:10px 18px 9px;border-radius:2px;background:var(--terra);color:var(--bel);font-family:var(--zag);font-weight:700;font-size:12px;line-height:1;letter-spacing:.2em;text-transform:uppercase;transform:rotate(-2deg)}
.ist-tekst{margin-top:20px;font-size:17px;line-height:1.75;color:var(--tekst)}
.ist-citata{margin-top:22px;padding:18px 20px;border-left:2px solid var(--terra);background:rgba(254,254,254,.03);border-radius:0 12px 12px 0;font-size:15px;line-height:1.65;color:var(--tekst-2)}
/* карта-роспись (21.09): кадр целиком, как картина на тёмной стене, подпись — под ним */
.ist-rospis .pr-gal::after{display:none}
.pr-gal-lenta .ros-kadr{display:flex;flex-direction:column;cursor:default}
.ros-foto{flex:1 1 auto;min-height:0;padding:26px 26px 6px;cursor:zoom-in}
.ist-rospis .pr-gal-lenta .ros-foto img{display:block;object-fit:contain;filter:drop-shadow(0 26px 34px rgba(0,0,0,.55))}
.ros-podpis{flex:none;min-height:150px;padding:18px 30px 24px}
.ros-mesto{display:block;font-family:var(--zag);font-weight:700;font-size:10.5px;line-height:1.3;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-sv)}
.ros-mesto b{font-weight:700;color:var(--bel)}
.ros-tekst{display:block;margin-top:10px;font-size:15px;line-height:1.6;color:var(--tekst);text-wrap:pretty}
/* стрелки — по бокам кадра, по середине картины (поля у росписи шире кнопок) */
.ist-rospis .pr-gal-niz{left:12px;right:12px;bottom:auto;top:calc((min(94vh,900px) - 150px) / 2 - 21px);top:calc((min(94dvh,900px) - 150px) / 2 - 21px);pointer-events:none}
.ist-rospis .pr-gal-str{width:100%;justify-content:space-between}
.ist-rospis .pr-gal-str button{pointer-events:auto}
.ros-mesta{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.ros-mesta-zag{flex-basis:100%;margin-bottom:4px;font-family:var(--zag);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3)}
.ros-m{border:0;cursor:pointer;padding:9px 14px;border-radius:12px;font:inherit;font-size:13.5px;line-height:1.2;color:var(--tekst-2);background:rgba(254,254,254,.045);
  box-shadow:inset 0 0 0 1px var(--liniya);transition:background .25s,color .25s,box-shadow .25s}
.ros-m:hover{color:var(--bel);box-shadow:inset 0 0 0 1px var(--liniya-t)}
.ros-m.akt{color:var(--bel);background:var(--terra);box-shadow:none}
.vid{display:grid;grid-template-columns:minmax(0,1fr);background:#000}
.vid video{display:block;width:100%;max-height:78vh;max-height:78dvh;background:#000}
.vid-podpis{padding:22px 28px 26px;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;background:linear-gradient(170deg,#1C1A18,#121110)}
.vid-podpis h2{font-family:var(--zag);font-weight:200;font-size:30px;line-height:1.1;color:var(--bel)}
.vid-podpis p{font-size:14.5px;color:var(--tekst-2);max-width:40em}

/* --- место с карты — на телефоне всплывает поверх карты */
.mst-foto{position:relative;height:190px;overflow:hidden}
.mst-foto img{width:100%;height:100%;object-fit:cover}
.mst-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#1C1A18)}
.mst-telo{padding:4px 22px 26px;margin-top:-44px;position:relative}
/* снимок «целиком» стоит в тексте (kk-k-cel) — верхней полосы фото нет, лист начинается сразу с названия;
   крестик листа ложится на верхний угол снимка, как раньше на полосу */
.mst-cel .mst-telo{margin-top:0;padding-top:24px}
.mst-cel .kk-k-verh-cel{--cel-w:clamp(120px,36vw,160px)}
.mst-cel .kk-k-cel{margin-top:0}
.mst-cel .kk-k-verh-cel h3{font-size:clamp(26px,7.6vw,32px)}

/* =============================================================== появление */
.poyav{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.poyav.vidno{opacity:1;transform:none}


/* =====================================================================
   ЖИВАЯ КАРТА ПЕРМСКОГО КРАЯ — идея хозяйки (10.09.2026).
   Плита тёмного дерева с кромкой в фирменной терракоте, реки — фирменный синий.
   ===================================================================== */
.kk{position:relative;padding:124px 0 90px;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(40% 36% at 34% 56%,rgba(174,76,47,.14),transparent 72%),
    radial-gradient(60% 60% at 30% 50%,rgba(86,105,143,.16),transparent 75%),
    radial-gradient(40% 40% at 100% 0%,rgba(174,76,47,.08),transparent 70%),
    radial-gradient(40% 50% at 100% 100%,rgba(86,105,143,.14),transparent 70%),
    linear-gradient(180deg,var(--noch-2),#0B0A09 50%,var(--noch))}
.kk::before{content:"";position:absolute;left:0;right:0;top:0;height:26px;background:url(brend/uzor-terra.svg) center/38px 26px repeat-x;
  opacity:.34;-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent);mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent)}
.kk-fon{position:absolute;inset:0;z-index:-1;pointer-events:none}
.kk-iskry i{position:absolute;bottom:-10px;width:var(--s);height:var(--s);border-radius:50%;background:#F4B89C;
  box-shadow:0 0 6px 1px rgba(232,140,100,.8),0 0 16px 3px rgba(174,76,47,.35);opacity:0;animation:iskra var(--d) linear infinite;animation-delay:var(--z);animation-play-state:paused}
.kk-na-ekrane .kk-iskry i{animation-play-state:running}
@keyframes iskra{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:.9}60%{opacity:.6}100%{transform:translate3d(var(--x),-100vh,0);opacity:0}}

.kk-obertka{position:relative;max-width:1320px;margin:0 auto;padding:0 34px}
.kk-shapka{max-width:840px}
.kk-nad{margin-bottom:22px}
.kk h2{font-family:var(--zag);font-weight:200;font-size:clamp(40px,4.8vw,74px);line-height:1;letter-spacing:-.012em;color:var(--bel)}
.kk-text{margin-top:22px;font-size:17px;line-height:1.7;color:var(--tekst-2);max-width:40em}

.kk-filtry{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}
.kk-chip{display:inline-flex;align-items:center;gap:9px;padding:10px 11px 10px 18px;border-radius:999px;border:0;
  background:rgba(254,254,254,.04);box-shadow:inset 0 0 0 1px var(--liniya-2);font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--tekst-2);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:box-shadow .3s,color .3s,background .3s,transform .3s}
.kk-chip i{font-style:normal;font-size:10.5px;min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;
  background:rgba(254,254,254,.08);color:var(--tekst-2);letter-spacing:0}
.kk-chip:hover{color:var(--bel);box-shadow:inset 0 0 0 1px var(--terra-sv);transform:translateY(-1px)}
.kk-chip.vybran{background:var(--terra);color:var(--bel);box-shadow:0 10px 26px -12px rgba(174,76,47,.9)}
.kk-chip.vybran i{background:rgba(0,0,0,.2);color:var(--bel)}

.kk-setka{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:48px;align-items:start;margin-top:30px}
.kk-karta{position:relative}
.kk-kartush{position:absolute;left:0;top:0;z-index:5;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.kk-kartush b{font-family:var(--zag);font-weight:700;font-size:clamp(13px,1.1vw,16px);letter-spacing:.32em;text-transform:uppercase;color:var(--bel);line-height:1;display:flex;align-items:center;gap:14px}
.kk-kartush b::after{content:"";width:70px;height:1px;background:linear-gradient(90deg,var(--terra-sv),transparent)}
.kk-kartush i{font-style:normal;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--tekst-3)}
.kk-kompas{position:absolute;right:3%;bottom:13%;z-index:5;width:clamp(64px,7vw,100px);height:auto;color:var(--terra-sv);opacity:.85;pointer-events:none}
.kk-kompas .kk-kompas-krug{transform-origin:50px 62px;animation:vrashch 140s linear infinite}

.kk-scena{position:relative;perspective:1700px;perspective-origin:50% 30%;padding-top:8px}
.kk-holst{position:relative;max-width:820px;margin:0 auto;--rx:0deg;--ry:0deg;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform 1s var(--ease)}
.kk-svg{display:block;width:100%;height:auto;overflow:visible;-webkit-tap-highlight-color:transparent}
.kk-svg-tok,.kk-svg-verh{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.kk-svg-verh .kk-pin{pointer-events:auto}

.kk-grad path{stroke:rgba(254,254,254,.08);stroke-width:1;stroke-dasharray:2 7;fill:none}
.kk-grad text{font-family:var(--zag);font-weight:700;font-size:11px;letter-spacing:.12em;fill:rgba(216,128,94,.42)}
.kk-ten{fill:#000;opacity:.9}
.kk-plita-niz{fill:none;stroke:rgba(216,128,94,.25);stroke-width:1}
.kk-okrug{transition:opacity .5s}
.kk-okrug-telo{stroke:url(#kkObvod);stroke-width:1.05;stroke-linejoin:round;transition:filter .35s}
.kk-okrug:hover .kk-okrug-telo{filter:brightness(1.4)}
.kk-gravyura{pointer-events:none}
.kk-kant{fill:none;stroke:url(#kkKant);stroke-width:2.6;stroke-linejoin:round;pointer-events:none}
.kk-kant-oreol{fill:none;stroke:#D8805E;stroke-width:9;opacity:.08;stroke-linejoin:round;pointer-events:none}
.kk-gnezdo{fill:#050403;opacity:0;pointer-events:none;transition:opacity .45s}
.kk-gnezdo.vidno{opacity:.9}

@property --t{syntax:"<number>";inherits:true;initial-value:0}
.kk-vzlet{pointer-events:none;--t:0;transition:--t .75s cubic-bezier(.2,.9,.28,1.18)}
.kk-vzlet.vverh{--t:1}
.kk-vzlet.srazu{transition:none}
.kk-vzlet-ten{fill:#000;opacity:calc(var(--t) * .75)}
.kk-vzlet-bok{transform:translateY(calc(var(--i) * var(--t) * -1px))}
.kk-vzlet-lico,.kk-vzlet-gravyura{transform:translateY(calc(var(--t) * -14px))}
.kk-vzlet-lico{stroke:#F6CDB9;stroke-width:1.5;stroke-linejoin:round}
.kk-vzlet-gravyura{opacity:.9}

.kk-reka path{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.kk-reka-oreol{stroke:#56698F;opacity:.34;transition:opacity .4s}
.kk-reka-voda{stroke:#9FB2D8;opacity:.95;transition:stroke .4s}
.kk-reka.kk-svetitsya .kk-reka-oreol{opacity:.7}
.kk-reka.kk-svetitsya .kk-reka-voda{stroke:#DCE5F6}
.kk-reka-tok{fill:none;stroke:#F3F6FC;stroke-linecap:round;stroke-dasharray:1.2 26;opacity:.75;animation:tok 8s linear infinite;animation-play-state:paused}
.kk-na-ekrane .kk-gotova .kk-reka-tok{animation-play-state:running}
@keyframes tok{to{stroke-dashoffset:-272}}
.kk-reka-imya{font-family:var(--zag);font-weight:700;font-size:13px;letter-spacing:.24em;text-transform:uppercase;fill:#B9C8E6;opacity:.85;paint-order:stroke;
  stroke:rgba(8,7,6,.75);stroke-width:4px;stroke-linejoin:round}
.kk-gorod path{fill:rgba(216,128,94,.6)}
.kk-gorod text{font-family:var(--zag);font-weight:700;font-size:11px;letter-spacing:.1em;fill:rgba(242,237,232,.5);paint-order:stroke;stroke:rgba(8,7,6,.8);stroke-width:3.5px;stroke-linejoin:round}

.kk-svet{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .8s;-webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;mix-blend-mode:screen}
.kk-svet-vkl .kk-svet{opacity:1}
.kk-svet-krug{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform;transition:transform .9s var(--ease)}
.kk-svet-krug::before{content:"";position:absolute;left:0;top:0;width:52%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(closest-side,rgba(240,170,138,.24),rgba(174,76,47,.1) 45%,transparent 75%)}
.kk-svet-vkl .kk-karta:hover .kk-svet-krug{transition:transform .18s linear}

.kk-marshrut{fill:none;stroke:url(#kkPutGrad);stroke-width:3;stroke-linecap:round;opacity:0;pointer-events:none;transition:opacity .35s}
.kk-marshrut.vidno{opacity:1}
.kk-marshrut-oreol{stroke:#D8805E;stroke-width:11}
.kk-marshrut-oreol.vidno{opacity:.16}
.kk-kometa{opacity:0;pointer-events:none}
.kk-kometa.vidno{opacity:1}
.kk-finish{fill:none;stroke:#F6CDB9;stroke-width:1.6;opacity:0;pointer-events:none}

.kk-pin{cursor:pointer;outline:none;transition:opacity .4s}
/* место под мышью karta-kraya.js считает сам — по расстоянию до булавок и подписей (mestoV) — и ставит kk-pod.
   Не :hover: кружки выбранной булавки растут и накрывали соседа (Пермь — Хохловка, Орда — Кунгур) */
.kk-holst.kk-ruka{cursor:pointer}
.kk-pin-vnutri{transform-origin:0 0;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.kk-pin.kk-pod .kk-pin-vnutri,.kk-pin:focus-visible .kk-pin-vnutri,.kk-pin.kk-aktiv .kk-pin-vnutri{transform:scale(1.3)}
.kk-pin-zona{fill:transparent}
.kk-pin-svet{opacity:0;transition:opacity .45s}
.kk-pin.kk-pod .kk-pin-svet,.kk-pin.kk-aktiv .kk-pin-svet{opacity:1}
.kk-pin-romb{fill:#141211;stroke:#D8805E;stroke-width:2.2;stroke-linejoin:round;transition:fill .3s,stroke .3s}
.kk-pin-serdce{fill:#D8805E;transition:fill .3s}
.kk-pin-volna{fill:none;stroke:#D8805E;stroke-width:1.4;opacity:0;transform-origin:0 0;animation:kkVolna 3s ease-out infinite;animation-delay:calc(var(--z,0s) * 1.7)}
.kk-pin.kk-aktiv .kk-pin-volna{animation-duration:1.6s;stroke:#F6CDB9;stroke-width:1.8}
.kk-pin.kk-aktiv .kk-pin-romb{fill:#AE4C2F;stroke:#FEFEFE}
.kk-pin.kk-aktiv .kk-pin-serdce{fill:#FEFEFE}
.kk-pin-imya{font-family:var(--zag);font-weight:700;font-size:19px;letter-spacing:.02em;fill:#F2EDE8;paint-order:stroke;stroke:rgba(9,8,7,.88);stroke-width:6px;
  stroke-linejoin:round;pointer-events:none;transition:fill .3s}
.kk-pin.kk-aktiv .kk-pin-imya,.kk-pin.kk-pod .kk-pin-imya{fill:#F6CDB9}
.kk-pin:focus-visible .kk-pin-romb{stroke-width:3.4}
/* «белое пятно» — место без программы (заготовка): белый ромб, подпись чуть тише, чем у мест с программами */
.kk-pusto .kk-pin-romb{fill:#EFE9E3;stroke:#FEFEFE}
.kk-pusto .kk-pin-serdce{fill:#1B1917}
.kk-pusto .kk-pin-volna{stroke:#FEFEFE}
.kk-pusto .kk-pin-imya{fill:#D9D2CB}
.kk-pin.kk-pusto.kk-aktiv .kk-pin-romb{fill:#FEFEFE;stroke:#D8805E}
.kk-pin.kk-pusto.kk-aktiv .kk-pin-serdce{fill:#AE4C2F}
.kk-dom-krug{fill:#AE4C2F;stroke:#FEFEFE;stroke-width:1.6}
.kk-dom-znak{pointer-events:none}
.kk-dom-centr{fill:#FEFEFE;pointer-events:none}
.kk-dom .kk-pin-imya{font-size:20px;fill:#FEFEFE}
.kk-dom .kk-pin-volna{stroke:#F6CDB9}
.kk-est-vybor .kk-pin:not(.kk-aktiv):not(.kk-pod){opacity:.82}
.kk-pin.kk-tusklo{opacity:.14!important;pointer-events:none}

.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda){opacity:0;transform:rotateX(38deg) translateY(70px) scale(.92)}
.kk-holst.kk-zhivaya:not(.kk-gotova){transition:transform 2s var(--ease),opacity 1.2s ease}
.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda) .kk-okrug,
.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda) .kk-pin,
.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda) .kk-goroda,
.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda) .kk-reki-imena{opacity:0}
.kk-holst:not(.kk-zhivaya):not(.kk-bez-vhoda) .kk-reka path{stroke-dashoffset:var(--L)}
.kk-zhivaya .kk-okrug{animation:kkOkrugVhod .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:var(--z)}
.kk-zhivaya .kk-reka path{transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1) .7s}
.kk-zhivaya .kk-pin .kk-pin-vnutri{animation:kkPinVhod .7s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--z)}
.kk-zhivaya .kk-goroda,.kk-zhivaya .kk-reki-imena{animation:kkTuman 1s ease 1.8s backwards}
/* после появления анимации входа снимаются: булавку выбранного места переносят наверх,
   и без этого она бы заново «выпрыгивала» с задержкой — на пару секунд пропадала */
.kk-gotova .kk-okrug,.kk-gotova .kk-pin .kk-pin-vnutri,.kk-gotova .kk-goroda,.kk-gotova .kk-reki-imena{animation:none}
.kk-holst .kk-pin.kk-podprygnul .kk-pin-vnutri{animation:kkPrygok .6s cubic-bezier(.34,1.56,.64,1)}
.kk-holst:not(.kk-gotova) .kk-svg-tok{opacity:0}
.kk-gotova .kk-svg-tok{opacity:1;transition:opacity 1.5s}
@keyframes kkOkrugVhod{from{opacity:0;transform:translateY(-22px)}to{opacity:1;transform:none}}
@keyframes kkPinVhod{from{opacity:0;transform:scale(.1)}to{opacity:1}}
@keyframes kkTuman{from{opacity:0}to{opacity:1}}
@keyframes kkVolna{0%{opacity:.8;transform:scale(1)}80%,100%{opacity:0;transform:scale(2.8)}}
@keyframes kkPrygok{0%{transform:scale(1)}40%{transform:scale(1.6)}100%{transform:scale(1)}}

.kk-podskazka{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;font-family:var(--zag);font-weight:700;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tekst-3);transition:opacity .5s}
.kk-podskazka::before{content:"";width:8px;height:8px;transform:rotate(45deg);background:var(--terra-sv);box-shadow:0 0 0 0 rgba(216,128,94,.5);animation:kkMayak 1.9s infinite}
.kk-tronuli .kk-podskazka{opacity:0}
.kk-osm{margin-top:8px;text-align:right;font-size:11px;color:rgba(242,237,232,.3)}
@keyframes kkMayak{0%{box-shadow:0 0 0 0 rgba(216,128,94,.5)}100%{box-shadow:0 0 0 12px rgba(216,128,94,0)}}

/* --- карточка места (компьютер: справа, прилипает) */
.kk-panel{position:sticky;top:calc(var(--verh-h) + 20px)}
.kk-kartochka{position:relative;border-radius:24px;overflow:hidden;min-height:260px;
  background:linear-gradient(165deg,rgba(36,33,31,.94),rgba(18,17,16,.96));
  box-shadow:inset 0 0 0 1px var(--liniya-2),0 60px 120px -50px rgba(0,0,0,.95),0 0 90px -40px rgba(174,76,47,.35);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.kk-kartochka::before{content:"";position:absolute;left:30px;right:30px;top:0;height:1px;z-index:2;background:linear-gradient(90deg,transparent,var(--terra-sv),transparent);opacity:.8}
/* смена места — без CSS-анимаций: текст, фото и высоту ведёт karta-kraya.js (kartochka, fotoVKartochku).
   До 15.09 тут были kkSmena (.55 с) и kkFotoSmena (1,1 с) с полной прозрачности — и справа подолгу было пусто */
.kk-k-pusto{padding:44px 32px 40px;text-align:center}
.kk-k-pusto-znak{position:relative;width:132px;height:132px;margin:0 auto 22px}
.kk-k-pusto-kolco{position:absolute;inset:0;width:100%;height:100%;max-width:none;opacity:.9;transform-origin:50% 50%;animation:vrashch 90s linear infinite}
.kk-k-pusto-logo{position:absolute;left:50%;top:50%;width:46%;transform:translate(-50%,-50%)}
.kk-k-pusto b{display:block;font-family:var(--zag);font-weight:200;font-size:30px;color:var(--bel);line-height:1.1}
.kk-k-pusto p{margin-top:10px;color:var(--tekst-2)}
.kk-k-foto{position:relative;height:200px;overflow:hidden;cursor:zoom-in}
/* фото лежат слоями: новое проявляется поверх прежнего; пока нового нет — прежнее притухает, но не пропадает */
.kk-k-foto img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;transition:opacity .25s}
.kk-k-foto.kk-zhdem img{opacity:.45}
.kk-k-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,17,16,0) 40%,rgba(30,28,26,.97))}
.kk-k-telo{position:relative;padding:26px 30px 18px}
.kk-k-foto:not([hidden])+.kk-k-telo{margin-top:-56px}
.kk-k-okrug{display:block;font-family:var(--zag);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--terra-sv)}
.kk-kartochka h3,.mst h3{font-family:var(--zag);font-weight:200;font-size:clamp(32px,2.6vw,40px);line-height:1.05;letter-spacing:-.01em;color:var(--bel);margin-top:8px}
.kk-k-podpis{margin-top:12px;font-size:14.5px;line-height:1.6;color:var(--tekst-2)}
/* 21.09 — место со своей росписи на стене: снимок целиком (9:16), справа от названия и легенды, текст обтекает.
   Слово Алексея: «они же уже специально отдельно сфотканные красивые — не надо было ничего нарезать».
   Включается в панели словом «целиком» в поле «Какую часть фото показывать». Высота задана числом, не aspect-ratio (Safari) */
.kk-k-verh-cel{display:flow-root;--cel-w:150px}
.kk-k-cel{float:right;width:var(--cel-w);height:calc(var(--cel-w) * 16 / 9);margin:3px 0 12px 22px;border-radius:14px;overflow:hidden;cursor:zoom-in;
  background:#2A2622 center / cover no-repeat;box-shadow:0 0 0 1px var(--liniya-2),0 24px 44px -24px rgba(0,0,0,.95)}
.kk-k-cel img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.kk-k-cel:hover img{transform:scale(1.03)}
/* рядом со снимком колонка ~200 px: «Чайковский» при 40 px в неё не входил и уезжал под фото */
.kk-kartochka .kk-k-verh-cel h3{font-size:clamp(30px,2.4vw,34px)}
/* 18.09, звонок Ирины — «белое пятно»: у места ещё нет программы. В карточке — строка об этом с белым ромбом, как на карте */
.kk-k-pyatno{display:flex;gap:11px;align-items:baseline;margin-top:16px;padding-top:15px;border-top:1px solid var(--liniya);font-size:13.5px;line-height:1.5;color:var(--tekst-2)}
.kk-k-pyatno::before{content:"";flex:none;width:9px;height:9px;transform:translateY(-1px) rotate(45deg);background:#F2EDE8;box-shadow:0 0 0 3px rgba(242,237,232,.14)}
/* чужое фото со свободной лицензией — подпись автора (условие лицензии) */
.kk-k-avtor{margin-top:12px;font-size:11px;line-height:1.45;color:var(--tekst-3)}
.kk-k-avtor a{color:inherit;text-decoration:underline;text-decoration-color:rgba(242,237,232,.28);text-underline-offset:2px}
.kk-k-avtor a:hover{color:var(--tekst-2)}
.kk-prog{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:baseline;margin-top:16px;padding-top:16px;border-top:1px solid var(--liniya)}
.kk-prog-imya{font-family:var(--zag);font-weight:700;font-size:15px;line-height:1.3;color:var(--bel)}
.kk-prog-cena{font-family:var(--zag);font-weight:200;font-size:24px;line-height:1;color:var(--terra-sv2);white-space:nowrap}
.kk-prog-kratko{grid-column:1 / -1;font-size:13.5px;line-height:1.55;color:var(--tekst-2)}
.kk-prog-za{grid-column:1 / -1;font-size:12px;color:var(--tekst-3);margin-top:-2px}
.kk-prog-knopki{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}
.kk-bron,.kk-podrobnee{padding:11px 18px;font-size:10px}
.kk-k-niz{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--liniya)}
.kk-k-schet{font-family:var(--zag);font-weight:200;font-size:18px;color:var(--tekst-3);letter-spacing:.06em}
.kk-k-schet b{font-weight:700;color:var(--bel)}
.kk-listat{width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;font-size:17px;color:var(--bel);background:rgba(254,254,254,.05);
  box-shadow:inset 0 0 0 1px var(--liniya-2);transition:box-shadow .3s,background .3s,transform .3s}
.kk-listat:hover{box-shadow:inset 0 0 0 1px var(--terra-sv);background:rgba(174,76,47,.2);transform:scale(1.06)}
.kk-foto{display:flex;align-items:center;gap:16px;margin-top:20px;cursor:zoom-in}
.kk-foto img{width:84px;height:84px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 1px var(--liniya-2),0 0 0 5px rgba(15,14,13,.8),0 0 0 6px var(--liniya);flex:0 0 auto}
.kk-foto figcaption{font-size:14px;line-height:1.5;color:var(--tekst-2)}

.kk-vspyshka{animation:kkVspyshka 1.8s ease}
@keyframes kkVspyshka{0%,40%{background-color:rgba(174,76,47,.24);box-shadow:0 0 0 3px rgba(216,128,94,.35)}100%{box-shadow:0 0 0 0 transparent}}


/* =============================================================== планшет */
@media (max-width:1100px){
  .navi{gap:18px;font-size:10.5px}
  .tel{display:none}
  .hero{display:flex;flex-direction:column;align-items:center;min-height:0;padding:48px 22px 64px}
  .hero-centr{width:100%;max-width:680px}
  .hero-fishki{position:relative;inset:auto;order:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;width:100%;max-width:640px;margin:52px auto 0;pointer-events:auto}
  /* рама 4:5 — распоркой из процента ширины, а не aspect-ratio: Safari (айфон, iPad, Mac) неверно считает aspect-ratio
     у ячейки сетки с полями и раздувает колонки — у брата на iPhone 15 правая колонка уезжала за край на 64 px (14.09).
     Распорка = 125% ширины рамы минус поля по вертикали плюс 1,25 боковых; сама рама — внутри полей */
  .fishka{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;height:auto;min-width:0}
  /* 16.09: распорка теперь у самой рамы (процент — от ширины рамы), низ с ярлыком и подписью идёт потоком под ней */
  .fishka-ramka{flex:none;height:0;padding-top:125%}
  .fishka1{--rot:-2.5deg}.fishka2{--rot:2.5deg}.fishka3{--rot:2deg}.fishka4{--rot:-2deg}
  .hero-vniz{display:none}
  /* карта на планшете и телефоне: карточка места не под картой, а листом поверх неё */
  .kk-setka{grid-template-columns:1fr;gap:12px}
  .kk-panel{display:none}
  .pz{grid-template-columns:1fr;gap:70px}
  .pz:nth-child(even) .pz-foto{order:0}
  .pz-foto{position:relative;top:auto;max-width:520px;margin:0 auto;width:100%}
  .para{grid-template-columns:1fr;gap:64px}
  .para-obratno .para-foto{order:0}
  .para-foto{max-width:560px;margin:0 auto;width:100%}
  .obe{grid-template-columns:1fr}
  .obe-foto{min-height:260px}
  /* на планшете и телефоне обе парные встают рядом по горизонтали */
  .obe-foto-2{grid-template-rows:1fr;grid-template-columns:1fr 1fr}
  .obe-foto figcaption{left:12px;right:8px;bottom:10px;font-size:8.5px;letter-spacing:.12em}
  .obe-foto::after{background:linear-gradient(180deg,transparent 55%,rgba(20,19,18,.95))}
  .osob{grid-template-columns:repeat(2,1fr)}
  .setka{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(110px,22vw,200px)}
  .otzyvy{columns:2}
  .mp{grid-template-columns:minmax(0,1fr) auto 18px;gap:6px 22px}
  .mp-mesto{grid-column:1 / -1}
  .pr{grid-template-columns:1fr;min-height:0}
  .pr-gal{position:relative;height:auto;aspect-ratio:4/3}
  /* фото программ здесь шире кадра: лица у людей выше середины — окно смещено кверху (21.09);
     у сертификата, выпечки, фруктов и парения вдвоём главное внизу — им окно ниже */
  .pr:not(.ist) .pr-gal-lenta>figure>img{object-position:50% 30%}
  .pr:not(.ist) .pr-gal-lenta>figure>img:is([src*="sertifikat-vk"],[src*="suksunskiy-1"],[src*="sila-parmy-2"],[src*="sverhsila-1"]){object-position:50% 75%}
  .pr:not(.ist) .pr-gal-lenta>figure>video{object-position:50% 40%}
  .pr-telo{padding:34px 34px 30px}
  .ist-rospis .pr-gal{aspect-ratio:auto}
  .ist-rospis .pr-gal-lenta{height:auto}
  .ros-foto{flex:none;height:min(92vw,62vh);height:min(92vw,62dvh);padding:18px 18px 4px}
  .ros-podpis{min-height:0;padding:14px 26px 22px}
  .ist-rospis .pr-gal-niz{top:calc(min(92vw,62vh) / 2 - 21px);top:calc(min(92vw,62dvh) / 2 - 21px)}
  /* место с карты: лист прижат к низу, карта видна над ним подложкой */
  .list.list-mesto{align-items:flex-end;padding:0 max(3vw,env(safe-area-inset-right,0px)) 0 max(3vw,env(safe-area-inset-left,0px))}
  .list.list-mesto .list-fon{background:rgba(7,6,5,.3);-webkit-backdrop-filter:none;backdrop-filter:none}
  .list.list-mesto .list-okno{width:min(640px,100%);border-radius:22px 22px 0 0;max-height:62vh;max-height:62dvh}
  .list.list-mesto .list-telo{max-height:62vh;max-height:62dvh}
}

/* =============================================================== телефон */
/* планшет: меню прячется под «бургер», в шапке остаются знак, звук и бронь */
@media (max-width:1100px){
  .burger{display:flex}
  .navi{position:absolute;top:100%;left:0;right:0;margin:0;background:rgba(12,11,10,.97);border-bottom:1px solid var(--liniya);flex-direction:column;gap:0;padding:6px 34px 16px;display:none;font-size:12px}
  .navi.otkryto{display:flex}
  .navi a{padding:15px 0;border-bottom:1px solid var(--liniya)}
  .navi a::after{display:none}
  .navi a:last-child{border-bottom:0}
  .zvuk-knopka{margin-left:auto}
}

@media (max-width:760px){
  body{font-size:16px}
  :root{--verh-h:64px}
  .shapka{gap:12px;padding:11px 16px;flex-wrap:wrap}
  .brend-logo{width:150px}
  .brend i{font-size:8px;letter-spacing:.24em}
  .tel,.knopka-mini{display:none}
  .burger{display:flex;margin-left:auto}
  .navi{padding:6px 20px 16px}
  .hero{padding:34px 18px 56px}
  .hero-znak{width:170px;margin-bottom:18px}
  .nad{font-size:9px;letter-spacing:.18em;gap:10px}
  .nad::before,.nad::after{width:16px}
  .hero h1{font-size:clamp(40px,11.5vw,56px)}
  .hero-text{font-size:15.5px;margin-top:20px}
  .hero-knopki{align-self:stretch;margin-top:28px}
  .hero-knopki .knopka{width:100%}
  .knopka-bron{padding:20px 24px;font-size:13px}
  .hero-knopki-dop{flex-direction:column;align-self:stretch}
  .hero-fishki{gap:26px 12px;margin-top:40px}
  .fishka{padding:6px 6px 8px}
  .fishka-yarlyk{font-size:9.5px;letter-spacing:.14em;padding:7px 10px 6px;margin-top:-12px}
  .fishka-kratko{font-size:7.5px;letter-spacing:.1em;margin:10px 0 0}
  .fishka-igrat{width:50px;height:50px}
  .cifry-sek{padding-bottom:46px}
  .cifry{grid-template-columns:repeat(2,1fr);gap:34px 0;margin-top:30px}
  .cifra:nth-child(3)::before{display:none}
  .sek{padding:84px 0}
  .obertka,.kk-obertka{padding:0 18px}
  .sek h2,.kk h2{font-size:clamp(34px,10vw,46px)}
  .lead,.kk-text{font-size:15.5px}
  .prostr{gap:90px;margin-top:56px}
  .pz-venok{width:96px;height:96px;right:-6px;bottom:22px}
  .pz:nth-child(even) .pz-venok{left:-6px}
  .pz-foto2{display:none}
  .pz-foto::after{left:-8px;right:-8px;top:-8px;bottom:-8px}
  .pz-imya{font-size:40px}
  .pz-legenda{font-size:16px}
  .pz-s{grid-template-columns:1fr auto auto;gap:4px 14px}
  .pz-s .cena b{font-size:24px}
  .pz-zdes{padding:20px 16px 8px}
  .obe-telo{padding:28px 20px}
  .prays-vkladki{flex-wrap:nowrap;overflow-x:auto;margin:30px -18px 0;padding:0 18px 8px;scrollbar-width:none}
  .prays-vkladki::-webkit-scrollbar{display:none}
  .pv{flex:0 0 auto}
  .mp{grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:20px 2px}
  .mp::after{display:none}
  .mp-t b{font-size:22px}
  .mp-t i{display:none}
  .mp-c b{font-size:22px}
  .mp-c span{display:none}
  .para{gap:52px}
  .para-foto:not(.para-dve)::after{inset:-10px}
  .osob{grid-template-columns:1fr}
  .setka{grid-template-columns:repeat(2,1fr);grid-auto-rows:44vw;gap:8px}
  .plitka:nth-child(9n+1),.plitka:nth-child(9n+8){grid-column:span 2;grid-row:span 1}
  .otzyvy{columns:1;margin-bottom:0}
  .forma{padding:24px 18px;border-radius:20px}
  .forma::before{left:18px;right:18px}
  .pole-para{grid-template-columns:1fr}
  .kal{padding:14px 12px}
  .kal-chasy{grid-template-columns:repeat(3,1fr)}
  .kal-zag b{font-size:22px}
  .podval-v{flex-direction:column;gap:10px}
  .melko{padding:18px 18px 0}
  .zvuk-knopka{margin-left:auto;width:40px;height:40px}
  .zvuk-knopka:not([hidden])+.knopka-mini+.burger{margin-left:0}
  .kk-prog-knopki{flex-wrap:nowrap}
  .kk-prog-knopki .knopka{flex:1 1 auto;padding:12px 10px;letter-spacing:.08em}

  /* лист снизу, как в приложениях */
  .list{align-items:flex-end;padding:0}
  .list-okno{width:100%;max-height:92dvh;border-radius:22px 22px 0 0;transform:translateY(100%);opacity:1;transition:transform .55s var(--ease)}
  .list.otkryt .list-okno{transform:translateY(var(--tyanut,0px))}
  .list.tyanem .list-okno{transition:none}
  .list-telo{max-height:92dvh}
  .list-ruchka{display:flex;justify-content:center;position:absolute;left:0;right:0;top:0;z-index:6;height:30px;padding-top:9px;touch-action:none}
  .list-ruchka span{width:44px;height:4px;border-radius:4px;background:rgba(254,254,254,.4)}
  .list-x{top:12px;right:12px;width:40px;height:40px;font-size:24px}
  .list-nazad{top:12px;left:12px;height:40px;padding:0 14px}
  /* карточка места: карта остаётся подложкой — фон почти прозрачный, лист ниже */
  .list.list-mesto{padding:0}
  .list.list-mesto .list-fon{background:rgba(7,6,5,.28);-webkit-backdrop-filter:none;backdrop-filter:none}
  .list.list-mesto .list-okno{max-height:70dvh}
  .list.list-mesto .list-telo{max-height:70dvh}
  .pr-gal{aspect-ratio:4/3.2}
  .pr-telo{padding:26px 20px 0}
  .ros-foto{height:min(128vw,58vh);height:min(128vw,58dvh);padding:14px 14px 2px}
  .ros-podpis{padding:12px 20px 20px}
  .ros-tekst{font-size:14.5px}
  .ist-rospis .pr-gal-niz{left:6px;right:6px;top:calc(min(128vw,58vh) / 2 - 19px);top:calc(min(128vw,58dvh) / 2 - 19px)}
  .ist-rospis .pr-gal-str button{width:38px;height:38px;font-size:16px}
  .pr-imya{font-size:34px}
  .pr-legenda{padding:26px 18px 20px}
  .pr-legenda h3 span{font-size:21px}
  .pr-knopki{display:none}
  .ist .pr-knopki{display:flex}
  .ist .pr-knopki .knopka{width:100%}
  .pr-nav{margin-bottom:20px}
  .pr-niz{display:flex;align-items:center;gap:12px;position:sticky;bottom:0;z-index:4;margin:0 -20px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:rgba(18,17,16,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--liniya)}
  .pr-niz-cena{display:flex;flex-direction:column;min-width:0}
  .pr-niz-cena b{font-family:var(--zag);font-weight:200;font-size:22px;line-height:1;color:var(--terra-sv2);white-space:nowrap}
  .pr-niz-cena span{font-size:11.5px;color:var(--tekst-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pr-niz .knopka{margin-left:auto;padding:14px 20px;font-size:10.5px;flex:0 0 auto}
  .ist .pr-telo{padding-bottom:30px}
  .vid-podpis{padding:18px 18px 26px}

  .kk{padding:84px 0 36px}
  .kk-filtry{flex-wrap:nowrap;overflow-x:auto;margin:26px -18px 0;padding:0 18px 8px;scrollbar-width:none}
  .kk-filtry::-webkit-scrollbar{display:none}
  .kk-chip{flex:0 0 auto}
  .kk-kartush{position:relative;margin:18px 0 4px}
  .kk-kartush b{font-size:12px;letter-spacing:.26em}
  .kk-kompas{width:58px;bottom:16%}
  .kk-grad text{display:none}
  .kk-pin-imya{font-size:28px;stroke-width:7px}
  .kk-dom .kk-pin-imya{font-size:28px}
  /* на телефоне у «белых пятен» только ромб: 28 крупных подписей на узкой карте ложатся друг на друга (замер 18.09);
     нажали на ромб — город открывается листом, как любое место */
  .kk-pusto .kk-pin-imya{display:none}
  .kk-goroda,.kk-reki-imena{display:none}
  .mst h3{font-size:32px}
}

@media (prefers-reduced-motion:reduce){
  .par,.hero-kolco,.zastavka-kolco,.kk-kompas .kk-kompas-krug,.hero-vniz span,.zvuk-volny i{animation:none!important}
  .kk-pin-volna,.kk-podskazka::before,.kk-reka-tok{animation:none}
  .kk-okrug,.kk-pin-vnutri,.kk-holst{transition:none}
  .poyav{opacity:1;transform:none;transition:none}
}
