/*
 * Рыбная деревня (#984) — «Проплыть вдоль набережной». Только body.rybnaya-vip.
 * Концепт: agents/design/proposals/06_rybnaya_2026-09-29.md. Разметка: templates/vip-rybnaya-take.php,
 * главы гида оборачивает kedo_rybnaya_chapters() (inc/rybnaya-vip.php). Префикс классов rv-.
 * Статика первой: без JS и в бережном режиме всё видно; движение только под body.rv-js.
 */

body.rybnaya-vip{
  --rv-paper:#f3ecdf;--rv-paper-2:#ebe1cc;--rv-ink:#1b2629;--rv-ink-2:rgba(27,38,41,.76);
  --rv-deep:#0d2326;--rv-night:#0c1c2b;--rv-teal:#1d4b50;--rv-amber:#e0a33b;--rv-amber-d:#c8862b;
  --rv-gold:#f2cf86;--rv-brick:#9c4a2f;--rv-cream:#f7f0e2;--rv-line:rgba(27,38,41,.14);--rv-line-l:rgba(247,240,226,.18);
  --rv-pad:clamp(20px,5vw,72px);--rv-col:760px;
  --rv-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --rv-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --rv-ease:cubic-bezier(.2,.75,.2,1);
  background:var(--rv-paper);
}
/* освобождение контейнеров GeneratePress (как okean.css / new-year.css) */
body.rybnaya-vip #content,body.rybnaya-vip .site-content,body.rybnaya-vip .content-area,body.rybnaya-vip #primary,body.rybnaya-vip .site-main{max-width:100%;width:100%;padding:0;margin:0;float:none}
body.rybnaya-vip #page.site,body.rybnaya-vip .site.grid-container,body.rybnaya-vip .grid-container.container{max-width:100%;width:100%;margin:0;padding:0}
body.rybnaya-vip .site-main>*{margin-bottom:0}
body.rybnaya-vip .inside-article{padding:0}
body.rybnaya-vip .kedo-search-bar{display:none!important}
body.rybnaya-vip .poi-page,body.rybnaya-vip .poi-article{background:var(--rv-paper)}
body.rybnaya-vip .poi-article{overflow-x:clip}
body.rybnaya-vip [hidden]{display:none!important}

/* ================= 1. Первый экран и проход ================= */
body.rybnaya-vip .rv-take{position:relative;background:var(--rv-paper)}
body.rybnaya-vip .rv-take *,body.rybnaya-vip .rv-take *::before,body.rybnaya-vip .rv-take *::after{box-sizing:border-box}
body.rybnaya-vip .rv-stage{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"text frame" "text note" "caps caps";column-gap:clamp(28px,5vw,80px);max-width:1360px;margin:0 auto;padding:clamp(110px,14vh,150px) var(--rv-pad) clamp(40px,6vh,64px)}
body.rybnaya-vip .rv-hero__text{grid-area:text;align-self:center}
body.rybnaya-vip .rv-eyebrow{margin:0 0 16px;font:600 .74rem/1.5 var(--rv-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rv-brick)}
body.rybnaya-vip .rv-eyebrow a{color:inherit;text-decoration:none}
body.rybnaya-vip .rv-eyebrow a:hover{text-decoration:underline}
body.rybnaya-vip .rv-h1{margin:0;font:700 clamp(2.3rem,4.2vw,4.4rem)/1.03 var(--rv-display);letter-spacing:-.01em;color:var(--rv-ink);text-wrap:balance;max-width:16ch}
body.rybnaya-vip .rv-lede{margin:22px 0 28px;max-width:46ch;font:400 clamp(1rem,1.2vw,1.14rem)/1.6 var(--rv-sans);color:var(--rv-ink-2)}
body.rybnaya-vip .rv-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
body.rybnaya-vip .rv-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:var(--rv-teal);color:var(--rv-cream)!important;font:600 .92rem/1 var(--rv-sans);text-decoration:none;box-shadow:0 12px 26px rgba(13,35,38,.22);transition:transform .3s var(--rv-ease),box-shadow .3s}
body.rybnaya-vip .rv-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(13,35,38,.3)}
body.rybnaya-vip .rv-btn:focus-visible,body.rybnaya-vip .rv-link:focus-visible,body.rybnaya-vip .rv-motion:focus-visible,body.rybnaya-vip .rv-play:focus-visible{outline:3px solid var(--rv-amber);outline-offset:3px}
body.rybnaya-vip .rv-link{font:600 .92rem/1 var(--rv-sans);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;color:var(--rv-teal)!important}
body.rybnaya-vip .rv-cue{margin:34px 0 0;font:500 .78rem/1.4 var(--rv-sans);letter-spacing:.08em;color:var(--rv-ink-2)}
body.rybnaya-vip .rv-motion{margin-top:14px;padding:7px 12px;border:1px solid var(--rv-line);border-radius:999px;background:transparent;color:var(--rv-ink-2);font:500 .74rem/1 var(--rv-sans);cursor:pointer}
body.rybnaya-vip .rv-motion:hover{border-color:var(--rv-teal);color:var(--rv-teal);background:transparent}
body.rybnaya-vip .rv-slot{display:none}
body.rybnaya-vip .rv-frame{grid-area:frame;position:relative;margin:0;aspect-ratio:16/10;background:#c9bda6;transform:rotate(-1.4deg);box-shadow:0 30px 60px rgba(46,32,16,.22);align-self:end}
body.rybnaya-vip .rv-frame img,body.rybnaya-vip .rv-frame video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 58%;border-radius:0}
body.rybnaya-vip .rv-video{opacity:0;transition:opacity .35s linear}
body.rybnaya-vip .rv-frame__paper{position:absolute;inset:0;border:var(--paper-w,12px) solid #fbf7ef;pointer-events:none;opacity:var(--paper,1)}
body.rybnaya-vip .rv-frame__scrim{position:absolute;left:0;right:0;bottom:0;height:62%;background:linear-gradient(to top,rgba(7,20,24,.86) 0%,rgba(7,20,24,.5) 38%,rgba(7,20,24,0) 100%);opacity:var(--scrim,0);pointer-events:none}
body.rybnaya-vip .rv-note{grid-area:note;margin:14px 6px 0 0;text-align:right;font:italic 600 1.18rem/1.3 var(--rv-display);color:var(--rv-ink-2)}
body.rybnaya-vip .rv-play{grid-area:note;justify-self:start;align-self:start;margin-top:12px;padding:10px 18px;border:1px solid var(--rv-teal);border-radius:999px;background:transparent;color:var(--rv-teal);font:600 .86rem/1 var(--rv-sans);cursor:pointer}
body.rybnaya-vip .rv-caps{grid-area:caps;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:52px}
body.rybnaya-vip .rv-cap{padding-top:16px;border-top:1px solid var(--rv-line)}
body.rybnaya-vip .rv-cap__n{display:block;font:600 .7rem/1.3 var(--rv-sans);letter-spacing:.14em;color:var(--rv-brick)}
body.rybnaya-vip .rv-cap__t{margin:10px 0 6px;font:700 1.55rem/1.1 var(--rv-display);color:var(--rv-ink)}
body.rybnaya-vip .rv-cap__d{margin:0;font:400 .95rem/1.55 var(--rv-sans);color:var(--rv-ink-2)}
body.rybnaya-vip .rv-cap--end,body.rybnaya-vip .rv-route,body.rybnaya-vip .rv-ai,body.rybnaya-vip .rv-load{display:none}

/* закреплённая сцена (только при body.rv-js) */
body.rybnaya-vip.rv-js .rv-take{height:700vh}
body.rybnaya-vip.rv-js .rv-stage{display:block;position:sticky;top:0;height:100vh;height:100svh;max-width:none;margin:0;padding:0;overflow:hidden}
body.rybnaya-vip.rv-js .rv-stage::before{content:'';position:absolute;inset:0;background:var(--rv-deep);opacity:var(--dark,0);pointer-events:none}
body.rybnaya-vip.rv-js .rv-hero__text{position:absolute;z-index:3;left:var(--rv-pad);top:50%;width:min(40vw,600px);transform:translateY(-50%)}
body.rybnaya-vip.rv-js .rv-hero__inner{will-change:opacity,transform}
body.rybnaya-vip.rv-js .rv-slot{display:block;position:absolute;right:var(--rv-pad);top:50%;width:min(47vw,760px);transform:translateY(-44%);visibility:hidden;pointer-events:none}
body.rybnaya-vip.rv-js .rv-frame{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;aspect-ratio:auto;transform-origin:50% 50%;will-change:transform;box-shadow:none;align-self:auto}
body.rybnaya-vip.rv-js .rv-frame::before{content:'';position:absolute;inset:0;z-index:-1;box-shadow:0 44px 90px rgba(46,32,16,.34);opacity:var(--paper,1)}
body.rybnaya-vip.rv-js .rv-frame.is-shown .rv-video{opacity:1}
body.rybnaya-vip.rv-js .rv-note{position:absolute;z-index:3;right:var(--slot-right,72px);top:calc(var(--slot-bottom,70vh) + 18px);margin:0}
body.rybnaya-vip.rv-js .rv-caps{display:block;position:absolute;z-index:4;left:var(--rv-pad);bottom:clamp(92px,13vh,132px);width:min(560px,84vw);height:0;margin:0}
body.rybnaya-vip.rv-js .rv-cap{position:absolute;left:0;bottom:0;width:100%;padding:0;border:0;opacity:0;transform:translate3d(0,18px,0);transition:opacity .45s var(--rv-ease),transform .6s var(--rv-ease);text-shadow:0 2px 22px rgba(0,0,0,.45)}
body.rybnaya-vip.rv-js .rv-cap.is-on{opacity:1;transform:none}
body.rybnaya-vip.rv-js .rv-cap--end{display:block}
body.rybnaya-vip.rv-js .rv-cap__n{color:var(--rv-gold)}
body.rybnaya-vip.rv-js .rv-cap__t{margin:12px 0 10px;font-size:clamp(2.1rem,3.6vw,3.3rem);line-height:1.02;color:var(--rv-cream)}
body.rybnaya-vip.rv-js .rv-cap__d{max-width:46ch;font-size:clamp(.98rem,1.1vw,1.08rem);color:rgba(247,240,226,.92)}
body.rybnaya-vip.rv-js .rv-route{display:block;position:absolute;z-index:4;left:var(--rv-pad);right:var(--rv-pad);bottom:46px;height:2px;background:rgba(247,240,226,.28);opacity:var(--scrim,0)}
body.rybnaya-vip .rv-route__fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--rv-amber),var(--rv-gold));transform-origin:0 50%;transform:scaleX(0)}
body.rybnaya-vip .rv-route i{position:absolute;top:50%;left:var(--x);width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--rv-cream);box-shadow:0 0 0 3px rgba(13,35,38,.35)}
body.rybnaya-vip .rv-route b{position:absolute;top:14px;left:var(--x);transform:translateX(-4px);white-space:nowrap;font:600 .64rem/1 var(--rv-sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(247,240,226,.8)}
body.rybnaya-vip.rv-js .rv-ai{display:block;position:absolute;z-index:4;right:var(--rv-pad);bottom:62px;margin:0;font:500 .66rem/1.3 var(--rv-sans);letter-spacing:.04em;color:rgba(247,240,226,.66);opacity:var(--scrim,0)}
body.rybnaya-vip.rv-js .rv-load{display:block;position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;padding:10px 16px;border-radius:999px;background:rgba(7,20,24,.55);color:var(--rv-cream);font:500 .8rem/1 var(--rv-sans)}
body.rybnaya-vip.rv-js .rv-play{display:none}

/* ================= 2. Паспорт места и карточки (стандартный герой POI без H1 и фото) ================= */
body.rybnaya-vip .poi-hero{padding:clamp(56px,7vw,96px) 0;background:var(--rv-paper-2);border-top:1px solid var(--rv-line)}
body.rybnaya-vip .poi-hero__inner{max-width:1200px;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(28px,4vw,56px);align-items:start;padding-inline:var(--rv-pad)}
body.rybnaya-vip .poi-hero__text::before{content:'Перед прогулкой';display:block;margin:0 0 10px;font:600 .74rem/1.5 var(--rv-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rv-brick)}
body.rybnaya-vip .poi-hero__city{order:0}
body.rybnaya-vip .poi-passport__inner{max-width:none;background:#fffdf7;border-color:var(--rv-line);box-shadow:0 18px 40px rgba(40,30,15,.08)}
body.rybnaya-vip .poi-passport__map-btn{background:linear-gradient(180deg,#245b60,#1d4b50);box-shadow:0 10px 24px rgba(13,35,38,.25)}
body.rybnaya-vip .poi-hero__side{gap:0}
body.rybnaya-vip .poi-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.rybnaya-vip .poi-side-card{margin:0;border-color:var(--rv-line);border-radius:18px}
body.rybnaya-vip .poi-side-card--review{grid-column:1/-1}
body.rybnaya-vip .poi-side-card__head{font-family:var(--rv-display);font-weight:700;font-size:1.45rem;color:var(--rv-ink)}

/* ================= 3. Главы гида ================= */
body.rybnaya-vip .poi-body{display:block;max-width:none;margin:0;padding:0}
body.rybnaya-vip .poi-body__main{max-width:none}
body.rybnaya-vip .poi-content.city-content{max-width:none;width:100%;margin:0;padding:0;counter-reset:rvch;font-family:var(--rv-sans)}
body.rybnaya-vip .rv-ch{position:relative;padding:clamp(64px,8vw,112px) var(--rv-pad);background:var(--rv-paper)}
body.rybnaya-vip .rv-ch__in{max-width:var(--rv-col);margin:0 auto}
body.rybnaya-vip .rv-ch--location,body.rybnaya-vip .rv-ch--hotels,body.rybnaya-vip .rv-ch--family,body.rybnaya-vip .rv-ch--history,body.rybnaya-vip .rv-ch--faq{background:var(--rv-paper-2)}
body.rybnaya-vip .rv-ch h2{margin:0 0 .5em;max-width:22ch;font:700 clamp(2.1rem,3.6vw,3.3rem)/1.04 var(--rv-display);letter-spacing:-.01em;color:var(--rv-ink);text-wrap:balance;scroll-margin-top:96px}
body.rybnaya-vip .rv-ch:not(.rv-ch--intro) h2::before{counter-increment:rvch;content:counter(rvch,decimal-leading-zero);display:block;margin-bottom:16px;font:600 .74rem/1 var(--rv-sans);letter-spacing:.18em;color:var(--rv-brick)}
body.rybnaya-vip .rv-ch h3{margin:2em 0 .5em;font:700 clamp(1.4rem,2vw,1.75rem)/1.15 var(--rv-display);color:var(--rv-ink)}
body.rybnaya-vip .rv-ch p,body.rybnaya-vip .rv-ch li{font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.7;color:var(--rv-ink-2);max-width:68ch}
body.rybnaya-vip .rv-ch a{color:var(--rv-teal);text-decoration-thickness:1px;text-underline-offset:3px}
body.rybnaya-vip .rv-ch a:hover{color:var(--rv-brick)}
body.rybnaya-vip .rv-ch strong{color:var(--rv-ink);font-weight:600}
body.rybnaya-vip .rv-ch ul{list-style:none;margin:1.2em 0;padding:0}
body.rybnaya-vip .rv-ch ul>li{position:relative;padding:0 0 0 22px;margin:0 0 .7em}
body.rybnaya-vip .rv-ch ul>li::before{content:'';position:absolute;left:2px;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--rv-amber)}
/* введение: крупный лид и быстрые ссылки пилюлями */
body.rybnaya-vip .rv-ch--intro{padding-top:clamp(72px,9vw,120px)}
body.rybnaya-vip .rv-ch--intro p:first-child{font:500 clamp(1.3rem,2vw,1.7rem)/1.45 var(--rv-display);color:var(--rv-ink);max-width:40ch}
body.rybnaya-vip .rv-ch--intro p:first-child strong{font-weight:700}
body.rybnaya-vip .rv-ch--intro p:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:1.6em}
body.rybnaya-vip .rv-ch--intro p:last-child strong{margin-right:6px;font:600 .74rem/1 var(--rv-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--rv-brick)}
body.rybnaya-vip .rv-ch--intro p:last-child a{display:inline-flex;padding:9px 14px;border:1px solid var(--rv-line);border-radius:999px;background:#fffdf7;font:500 .9rem/1 var(--rv-sans);text-decoration:none;color:var(--rv-ink)}
body.rybnaya-vip .rv-ch--intro p:last-child a:hover{border-color:var(--rv-teal);color:var(--rv-teal)}
/* фото внутри глав — шире колонки текста */
body.rybnaya-vip .rv-ch figure:not(.rv-map){margin:2.4em auto 0;width:min(1200px,calc(100vw - 2 * var(--rv-pad)));max-width:none;position:relative;left:50%;transform:translateX(-50%)}
body.rybnaya-vip .rv-ch figure:not(.rv-map) img{display:block;width:100%;height:auto;border-radius:22px;box-shadow:0 30px 70px rgba(30,24,12,.18)}
body.rybnaya-vip .rv-ch figcaption{max-width:var(--rv-col);margin:14px auto 0;font:italic 600 1.05rem/1.4 var(--rv-display);color:var(--rv-ink-2);text-align:left}
/* рестораны и отели: редакционный список в две колонки */
body.rybnaya-vip .rv-ch--food .rv-ch__in,body.rybnaya-vip .rv-ch--hotels .rv-ch__in{max-width:1100px}
body.rybnaya-vip .rv-ch--food h2,body.rybnaya-vip .rv-ch--food h3,body.rybnaya-vip .rv-ch--food p,body.rybnaya-vip .rv-ch--hotels h2,body.rybnaya-vip .rv-ch--hotels h3,body.rybnaya-vip .rv-ch--hotels p{max-width:var(--rv-col)}
body.rybnaya-vip .rv-ch--food ul,body.rybnaya-vip .rv-ch--hotels ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;margin:1.6em 0 0}
body.rybnaya-vip .rv-ch--food ul>li,body.rybnaya-vip .rv-ch--hotels ul>li{padding:22px 0 24px;margin:0;border-top:1px solid var(--rv-line);max-width:none}
body.rybnaya-vip .rv-ch--food ul>li::before,body.rybnaya-vip .rv-ch--hotels ul>li::before{display:none}
body.rybnaya-vip .rv-ch--food li>strong:first-child,body.rybnaya-vip .rv-ch--hotels li>strong:first-child{display:block;margin-bottom:8px;font:700 1.4rem/1.2 var(--rv-display);color:var(--rv-ink)}
body.rybnaya-vip .rv-ch--food li>strong:first-child a,body.rybnaya-vip .rv-ch--hotels li>strong:first-child a{color:var(--rv-teal);text-decoration:none}
/* прогулки на катере: вечерняя глава */
body.rybnaya-vip .rv-ch--boats{background:var(--rv-night)}
body.rybnaya-vip .rv-ch--boats h2,body.rybnaya-vip .rv-ch--boats strong{color:var(--rv-cream)}
body.rybnaya-vip .rv-ch--boats h2::before{color:var(--rv-gold)!important}
body.rybnaya-vip .rv-ch--boats p{color:rgba(247,240,226,.84)}
body.rybnaya-vip .rv-ch--boats figure img{box-shadow:0 40px 90px rgba(0,0,0,.45)}
body.rybnaya-vip .rv-ch--boats figcaption{color:rgba(247,240,226,.7)}
/* вопросы: вопрос засечками, ответ с линией */
body.rybnaya-vip .rv-ch--faq h3{margin-top:1.6em;padding-top:1.1em;border-top:1px solid var(--rv-line)}
body.rybnaya-vip .rv-ch--faq h3:first-of-type{border-top:0;padding-top:0}

/* ================= 4. Пеший маршрут и план ================= */
body.rybnaya-vip .rv-ch--walk{background:var(--rv-deep);color:var(--rv-cream)}
body.rybnaya-vip .rv-ch--walk .rv-ch__in{max-width:1200px}
body.rybnaya-vip .rv-walk{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,440px);column-gap:clamp(32px,5vw,72px);align-items:start}
body.rybnaya-vip .rv-walk>*{grid-column:1}
body.rybnaya-vip .rv-walk>.rv-map{grid-column:2;grid-row:1/span 30;position:sticky;top:96px;align-self:start}
body.rybnaya-vip .rv-ch--walk h2,body.rybnaya-vip .rv-ch--walk h3,body.rybnaya-vip .rv-ch--walk strong{color:var(--rv-cream)}
body.rybnaya-vip .rv-ch--walk h2::before{color:var(--rv-gold)!important}
body.rybnaya-vip .rv-ch--walk p,body.rybnaya-vip .rv-ch--walk li{color:rgba(247,240,226,.86)}
body.rybnaya-vip .rv-ch--walk a{color:var(--rv-gold)}
body.rybnaya-vip .rv-walk ol{counter-reset:rvstep;list-style:none;margin:1.4em 0 1.2em;padding:0}
body.rybnaya-vip .rv-walk ol>li{counter-increment:rvstep;position:relative;margin:0;padding:18px 0 18px 58px;border-top:1px solid var(--rv-line-l);cursor:pointer;transition:color .3s}
body.rybnaya-vip .rv-walk ol>li::before{content:counter(rvstep);position:absolute;left:0;top:14px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(247,240,226,.1);border:1px solid var(--rv-line-l);font:700 1rem/1 var(--rv-sans);color:var(--rv-cream);transition:background-color .3s,color .3s,transform .3s var(--rv-ease)}
body.rybnaya-vip .rv-walk ol>li.is-on{color:var(--rv-cream)}
body.rybnaya-vip .rv-walk ol>li.is-on::before{background:var(--rv-amber);border-color:var(--rv-amber);color:var(--rv-ink);transform:scale(1.08)}
body.rybnaya-vip .rv-map{margin:0;padding:10px;border-radius:26px;background:#f7efe0;box-shadow:0 40px 90px rgba(0,0,0,.35)}
body.rybnaya-vip .rv-map__svg{display:block;width:100%;height:auto;border-radius:18px}
body.rybnaya-vip .rv-map__cap{margin:12px 8px 4px;font:500 .78rem/1.45 var(--rv-sans);color:#5b5a50}
body.rybnaya-vip .rv-map__lbl{font:600 9px var(--rv-sans);fill:#2b3b3b;paint-order:stroke;stroke:#efe6d3;stroke-width:3px;stroke-linejoin:round}
body.rybnaya-vip .rv-map__lbl--isl{font:italic 600 14px var(--rv-display);fill:#6b5a44}
body.rybnaya-vip .rv-map__lbl--water{font:italic 600 15px var(--rv-display);fill:#3e6664;stroke:#b5ccc8}
body.rybnaya-vip .rv-map__lbl--sm{font-size:8.5px;fill:#8a5a36}
body.rybnaya-vip .rv-map__lbl--stop{font-size:9px;fill:#1d4b50}
body.rybnaya-vip .rv-map__stop circle{fill:#1d4b50;stroke:#f7efe0;stroke-width:2.2;transition:fill .3s}
body.rybnaya-vip .rv-map__stop text{font:700 10px var(--rv-sans);fill:#f7efe0}
body.rybnaya-vip .rv-map__stop.is-on circle{fill:#d0862a}
body.rybnaya-vip .rv-map__north path{fill:#1d4b50}
body.rybnaya-vip .rv-map__north text{font:700 9px var(--rv-sans);fill:#1d4b50}
body.rybnaya-vip .rv-map__scale path{stroke:#1d4b50;stroke-width:1.4;fill:none}
body.rybnaya-vip .rv-map__scale text{font:600 8px var(--rv-sans);fill:#1d4b50}
body.rybnaya-vip .rv-map__osm{font:500 7px var(--rv-sans);fill:#7a7466}
/* прорисовка отрезков: база — всё нарисовано (без JS); JS прячет и рисует по шагам */
body.rybnaya-vip.rv-map-js .rv-map__seg{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.65s var(--rv-ease)}
body.rybnaya-vip.rv-map-js .rv-map__seg.is-drawn{stroke-dashoffset:0}
body.rybnaya-vip.rv-map-js .rv-map__under{opacity:0;transition:opacity .9s}
body.rybnaya-vip.rv-map-js .rv-map__under.is-drawn{opacity:1}

/* ================= 5. Хвост страницы ================= */
body.rybnaya-vip .kedo-trust{margin:0;padding:22px var(--rv-pad);background:var(--rv-paper-2);border-top:1px solid var(--rv-line)}
body.rybnaya-vip .kedo-trust__inner{max-width:var(--rv-col);margin:0 auto}
body.rybnaya-vip .kedo-app-banner,body.rybnaya-vip .kedo-booking-block{margin-top:0}
body.rybnaya-vip .poi-nearby{padding-bottom:clamp(56px,7vw,96px)}

/* ================= Телефон ================= */
@media (max-width:900px){
  body.rybnaya-vip .rv-walk{grid-template-columns:1fr}
  body.rybnaya-vip .rv-walk>.rv-map{grid-column:1;grid-row:auto;position:relative;top:auto;margin:1.4em 0 .4em}
  body.rybnaya-vip .poi-hero__inner{grid-template-columns:1fr}
  body.rybnaya-vip .rv-ch--food ul,body.rybnaya-vip .rv-ch--hotels ul{grid-template-columns:1fr}
}
@media (max-width:767px){
  body.rybnaya-vip .rv-stage{grid-template-columns:1fr;grid-template-areas:"text" "frame" "note" "caps";padding-top:104px}
  body.rybnaya-vip .rv-frame{aspect-ratio:4/3;margin-top:28px}
  body.rybnaya-vip .rv-caps{grid-template-columns:1fr 1fr;gap:16px}
  body.rybnaya-vip.rv-js .rv-take{height:480vh}
  body.rybnaya-vip.rv-js .rv-hero__text{left:20px;right:20px;top:96px;width:auto;transform:none}
  body.rybnaya-vip.rv-js .rv-h1{font-size:clamp(2rem,8.6vw,2.5rem)}
  body.rybnaya-vip.rv-js .rv-lede{margin:14px 0 18px;font-size:.98rem}
  body.rybnaya-vip.rv-js .rv-cue{display:none}
  body.rybnaya-vip.rv-js .rv-slot{left:7vw;right:auto;width:86vw;transform:none}
  body.rybnaya-vip.rv-js .rv-note{right:7vw;font-size:1.05rem}
  body.rybnaya-vip.rv-js .rv-caps{left:20px;right:20px;width:auto;bottom:auto;top:calc(var(--full-bottom,60vw) + 26px);height:auto}
  body.rybnaya-vip.rv-js .rv-cap{top:0;bottom:auto;text-shadow:none}
  body.rybnaya-vip.rv-js .rv-cap__t{font-size:2rem}
  body.rybnaya-vip.rv-js .rv-route{bottom:calc(26px + env(safe-area-inset-bottom))}
  body.rybnaya-vip.rv-js .rv-route b{display:none}
  body.rybnaya-vip.rv-js .rv-ai{left:20px;right:auto;bottom:calc(52px + env(safe-area-inset-bottom))}
  body.rybnaya-vip .poi-sidebar{grid-template-columns:1fr}
  body.rybnaya-vip .rv-ch h2{font-size:clamp(1.7rem,7.2vw,2.1rem);overflow-wrap:normal;word-break:normal;hyphens:manual}
  body.rybnaya-vip .rv-ch figure:not(.rv-map){width:calc(100vw - 2 * var(--rv-pad))}
  body.rybnaya-vip .rv-ch figure:not(.rv-map) img{border-radius:16px}
}
/* ================= Сцены между главами (inc/rybnaya-scenes.php) =================
 * База — статичный законченный кадр (всё нарисовано, окна горят). Движение только под body.rv-js. */
body.rybnaya-vip .rv-scene{position:relative;overflow:hidden;overflow:clip;background:var(--rv-night);color:var(--rv-cream)}
body.rybnaya-vip .rv-scene svg{display:block;width:100%;height:auto}
body.rybnaya-vip .rv-scene__eyebrow{display:block;margin:0 0 10px;font:600 .74rem/1 var(--rv-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--rv-gold)}
body.rybnaya-vip .rv-scene__cap{letter-spacing:0;position:relative;margin:0;padding:clamp(16px,2.4vw,28px) var(--rv-pad) clamp(22px,3vw,40px);max-width:none;font:500 clamp(1.05rem,1.7vw,1.5rem)/1.3 var(--rv-display);color:var(--rv-cream);text-shadow:0 2px 16px rgba(0,0,0,.6)}
body.rybnaya-vip .rv-star{fill:#f7f0e2}
body.rybnaya-vip .rv-w{fill:#ffd27a}
body.rybnaya-vip .rv-cw{fill:#ffd98a}
body.rybnaya-vip .rv-draw{stroke-opacity:.28}
body.rybnaya-vip .rv-scene svg.rv-village__svg{height:clamp(260px,34vw,440px);width:100%}
body.rybnaya-vip .rv-scene svg.rv-cath__svg{height:clamp(300px,42vw,600px);width:100%}
/* маяк */
body.rybnaya-vip .rv-climb{background:radial-gradient(120% 90% at 30% 20%,#1d3b4f 0%,#0c1c2b 60%,#081523 100%)}
body.rybnaya-vip .rv-climb__stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,80px);max-width:1200px;margin:0 auto;padding:clamp(96px,11vh,120px) var(--rv-pad) clamp(28px,5vh,56px)}
body.rybnaya-vip .rv-scene svg.rv-climb__svg{height:min(72vh,600px);width:auto;max-width:100%;margin:0 auto;overflow:visible}
body.rybnaya-vip .rv-climb__title{margin:0 0 18px;font:700 clamp(2.4rem,5vw,4.2rem)/1 var(--rv-display);color:var(--rv-cream)}
body.rybnaya-vip .rv-climb__count{margin:0 0 16px;font:500 1rem/1.2 var(--rv-sans);color:rgba(247,240,226,.8)}
body.rybnaya-vip .rv-climb__n{letter-spacing:0;display:inline-block;min-width:3ch;font:700 clamp(3rem,7vw,5.6rem)/1 var(--rv-display);color:var(--rv-gold)}
body.rybnaya-vip .rv-climb__desc{margin:0;max-width:34ch;font:400 1.05rem/1.6 var(--rv-sans);color:rgba(247,240,226,.82)}
body.rybnaya-vip .rv-climb__top{margin:18px 0 0;font:600 .8rem/1 var(--rv-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rv-gold)}
body.rybnaya-vip .rv-cl__stair-bg{fill:none;stroke:rgba(29,75,80,.25);stroke-width:3;stroke-dasharray:3 5}
body.rybnaya-vip .rv-cl__stair{fill:none;stroke:#e0a33b;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
body.rybnaya-vip .rv-cl__win{fill:#ffd27a}
body.rybnaya-vip .rv-cl__lamp{fill:#ffe3a0}
body.rybnaya-vip .rv-cl__base-win{fill:#ffd27a}
body.rybnaya-vip .rv-cl__dot{fill:#fff4d6;opacity:0}
body.rybnaya-vip .rv-cl__beam{opacity:.5}

/* --- движение --- */
body.rybnaya-vip.rv-js .rv-climb{height:260vh}
body.rybnaya-vip.rv-js .rv-climb__stage{position:sticky;top:0;min-height:100vh;min-height:100svh}
body.rybnaya-vip.rv-js .rv-cl__stair{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,0))}
body.rybnaya-vip.rv-js .rv-cl__win{fill:#2b3b44;transition:fill .5s}
body.rybnaya-vip.rv-js .rv-cl__win.is-lit{fill:#ffd27a}
body.rybnaya-vip.rv-js .rv-cl__dot{opacity:1;filter:drop-shadow(0 0 6px #ffd98a)}
body.rybnaya-vip.rv-js .rv-cl__lamp{fill:#34454c;transition:fill .6s}
body.rybnaya-vip.rv-js .rv-cl__halo,body.rybnaya-vip.rv-js .rv-cl__beams,body.rybnaya-vip.rv-js .rv-climb__top{opacity:0;transition:opacity .8s}
body.rybnaya-vip.rv-js .rv-climb.is-top .rv-cl__lamp{fill:#ffe3a0}
body.rybnaya-vip.rv-js .rv-climb.is-top .rv-cl__halo,body.rybnaya-vip.rv-js .rv-climb.is-top .rv-cl__beams,body.rybnaya-vip.rv-js .rv-climb.is-top .rv-climb__top{opacity:1}
body.rybnaya-vip.rv-js .rv-cl__beam{transform-box:view-box;transform-origin:100px 129px;animation:rv-beam 4s ease-in-out infinite}
body.rybnaya-vip.rv-js .rv-cl__beam--l{animation-delay:-2s}
@keyframes rv-beam{0%,100%{transform:scaleX(.08);opacity:.15}50%{transform:scaleX(1);opacity:.85}}
body.rybnaya-vip.rv-js .rv-star{animation:rv-twinkle 3.2s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes rv-twinkle{0%,100%{opacity:.25}50%{opacity:1}}
body.rybnaya-vip.rv-js .rv-scene--reveal .rv-w{fill:#2e3a40;transition:fill .5s;transition-delay:var(--d,0s)}
body.rybnaya-vip.rv-js .rv-scene--reveal.is-in .rv-w{fill:#ffd27a;animation:rv-flicker 5s ease-in-out infinite;animation-delay:calc(var(--d,0s) + 2s)}
@keyframes rv-flicker{0%,100%{opacity:1}47%{opacity:1}50%{opacity:.72}53%{opacity:1}}
body.rybnaya-vip.rv-js .rv-village__sun{transition:transform 2.4s var(--rv-ease);transform:translateY(40px)}
body.rybnaya-vip.rv-js .rv-village.is-in .rv-village__sun{transform:none}
body.rybnaya-vip.rv-js .rv-village__ripples path{animation:rv-ripple 6s ease-in-out infinite alternate}
body.rybnaya-vip.rv-js .rv-village__ripples path+path{animation-duration:8s;animation-direction:alternate-reverse}
@keyframes rv-ripple{from{transform:translateX(-18px)}to{transform:translateX(18px)}}
body.rybnaya-vip.rv-js .rv-draw{fill-opacity:0;stroke-opacity:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s var(--rv-ease),fill-opacity 1.6s ease 1.6s,stroke-opacity 1.6s ease 3s}
body.rybnaya-vip.rv-js .rv-cath.is-in .rv-draw{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:.28}
body.rybnaya-vip.rv-js .rv-cw{fill:#2b3b44;transition:fill .6s;transition-delay:var(--d,0s)}
body.rybnaya-vip.rv-js .rv-cath.is-in .rv-cw{fill:#ffd98a;animation:rv-flicker 6s ease-in-out infinite;animation-delay:calc(var(--d,0s) + 1s)}
body.rybnaya-vip.rv-js .rv-cath__halo{opacity:0;transition:opacity 2s ease 2.2s}
body.rybnaya-vip.rv-js .rv-cath.is-in .rv-cath__halo{opacity:1;animation:rv-halo 5s ease-in-out 4.2s infinite}
@keyframes rv-halo{0%,100%{opacity:1}50%{opacity:.55}}
body.rybnaya-vip.rv-js .rv-scene__cap{opacity:0;transform:translate3d(0,14px,0);transition:opacity .8s ease .6s,transform .9s var(--rv-ease) .6s}
body.rybnaya-vip.rv-js .rv-scene.is-in .rv-scene__cap{opacity:1;transform:none}
@media (max-width:767px){
  body.rybnaya-vip .rv-climb__stage{grid-template-columns:1fr;gap:18px;text-align:center;padding-top:72px;padding-bottom:28px}
  body.rybnaya-vip .rv-scene svg.rv-climb__svg{height:min(50vh,420px)}
  body.rybnaya-vip .rv-climb__desc{margin:0 auto}
  body.rybnaya-vip.rv-js .rv-climb{height:240vh}
  body.rybnaya-vip.rv-js .rv-climb__stage{align-content:center}
  body.rybnaya-vip .rv-climb__title{margin-bottom:8px}
  body.rybnaya-vip .rv-scene__cap{letter-spacing:0;position:static;padding:16px var(--rv-pad) 22px;max-width:none}
}
@media (prefers-reduced-motion:reduce){
  body.rybnaya-vip .rv-take *,body.rybnaya-vip .rv-map *,body.rybnaya-vip .rv-scene *{transition:none!important;animation:none!important}
}
