/*
Theme Name: Спиридон 2026 — принесение мощей
Theme URI: https://example.ru/
Author: Оргкомитет принесения
Description: Тема сайта всероссийского принесения мощей святителя Спиридона Тримифунтского. Тёмно-золотой первый экран, интерактивная карта маршрута без JavaScript, тип записи «Города принесения», новости обычными записями. Требует PHP 7.0+.
Version: 1.8.0
Requires at least: 5.4
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: spiridon
Tags: custom-menu, featured-images, translation-ready, custom-logo
*/

/* ══════════════════ 1. ТОКЕНЫ ══════════════════ */
:root{
  --paper:#FDFAF3; --paper-2:#F6EFE0;
  --ink:#231E16; --ink-2:#5B5243; --ink-3:#8A8070;
  --gold:#C79A38; --gold-lite:#E9D2A0; --gold-deep:#7C5A13; --gold-wash:#FBF2DE;
  --night:#100E0A; --night-2:#181410; --night-3:#14110C;
  --pine:#1D453E; --pine-2:#16352F;
  --line:rgba(35,30,22,.12); --line-soft:rgba(35,30,22,.07);
  --sh-s:0 1px 3px rgba(70,52,18,.06), 0 10px 24px -14px rgba(70,52,18,.24);
  --sh-m:0 3px 10px rgba(70,52,18,.07), 0 34px 64px -32px rgba(70,52,18,.36);
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ══════════════════ 2. БАЗА ══════════════════ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
  font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; margin:0; line-height:1.1; letter-spacing:-.015em}
p{margin:0}
a{color:inherit; text-decoration:none}
img{max-width:100%; height:auto; display:block}
figure{margin:0}
ul,ol{margin:0; padding:0}
code{background:var(--gold-wash); padding:2px 6px; border-radius:5px; font-size:.9em}

.wrap{width:min(1240px, calc(100% - 44px)); margin-inline:auto}
.wrap--wide{width:min(1400px, calc(100% - 44px))}
.wrap--narrow{width:min(800px, calc(100% - 44px))}
@media(max-width:640px){ .wrap,.wrap--wide,.wrap--narrow{width:calc(100% - 28px)} body{font-size:16px} }

.screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap}
.skip-link:focus{position:fixed; left:16px; top:16px; z-index:999; background:#fff; padding:10px 16px;
  border-radius:8px; clip:auto; width:auto; height:auto}

.eyebrow{display:inline-block; font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:700; color:var(--gold-deep)}
.eyebrow--light{color:var(--gold-lite)}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px; cursor:pointer;
  font-family:var(--sans); font-weight:600; font-size:15px; padding:14px 28px; border-radius:100px; white-space:nowrap;
  border:1px solid transparent; transition:transform .25s cubic-bezier(.2,.7,.3,1), background .25s, color .25s, border-color .25s}
.btn--gold{background:linear-gradient(135deg,#D3A344,#9C6E1B 78%); color:#FFFBF0;
  box-shadow:0 12px 26px -14px rgba(124,90,19,.9), inset 0 1px 0 rgba(255,255,255,.28)}
.btn--gold:hover{transform:translateY(-2px)}
.btn--outline{border-color:rgba(233,210,160,.45); color:#F6EBD3}
.btn--outline:hover{background:rgba(233,210,160,.14); transform:translateY(-2px)}
.btn--ghost{border-color:var(--line); background:#fff; color:var(--ink)}
.btn--ghost:hover{border-color:var(--gold-lite); transform:translateY(-2px)}

/* ══════════════════ 3. ШАПКА ══════════════════ */
.site-header{position:sticky; top:0; z-index:60; background:rgba(253,250,243,.92);
  backdrop-filter:saturate(1.6) blur(14px); border-bottom:1px solid var(--line-soft)}
.site-header .wrap{display:flex; align-items:center; gap:18px; min-height:78px}
.nav-toggle{position:fixed; top:0; left:0; width:1px; height:1px; opacity:0; pointer-events:none;
  margin:0; padding:0; border:0}   /* та же причина: фокус на absolute-переключателе уводит прокрутку */

.brand{display:flex; align-items:center; gap:11px; margin-right:auto; color:var(--ink); flex:none}
.brand__mark{width:38px; height:38px; flex:none}
.brand .custom-logo{width:42px; height:auto; border-radius:11px}
.brand__title{display:block; font-family:var(--serif); font-size:19px; font-weight:600; line-height:1.1; max-width:19ch}
.brand__sub{display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); white-space:nowrap}

.nav__list{display:flex; gap:0; list-style:none; align-items:center}
.nav__list a{display:block; white-space:nowrap; font-size:14.5px; font-weight:500; color:var(--ink-2);
  padding:9px 13px; border-radius:100px; transition:.2s}
.nav__list a:hover{color:var(--ink); background:var(--paper-2)}
.nav__list .current-menu-item > a{color:var(--gold-deep); background:var(--gold-wash)}
.header-cta{padding:11px 20px; font-size:14px; flex:none}

@media(max-width:1240px){
  .nav__list a{padding:9px 10px; font-size:14px}
  .brand__sub{display:none}
}
@media(max-width:1080px){
  .nav{position:absolute; top:100%; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--line); box-shadow:var(--sh-m);
    max-height:0; overflow:hidden; opacity:0; padding-block:0;
    transition:max-height .35s, opacity .2s, padding .35s}
  .nav__list{flex-direction:column; align-items:stretch; padding:0 22px}
  .nav__list a{padding:12px 8px; font-size:16px}
  #spiridon-nav-toggle:checked ~ .wrap .nav{max-height:75vh; opacity:1; padding-block:12px 20px}
  .burger{display:flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px;
    padding:0 11px; border:1px solid var(--line); border-radius:100px; cursor:pointer; background:#fff}
  .burger span{height:1.5px; background:var(--ink); border-radius:2px; transition:.3s}
  #spiridon-nav-toggle:checked ~ .wrap .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  #spiridon-nav-toggle:checked ~ .wrap .burger span:nth-child(2){opacity:0}
  #spiridon-nav-toggle:checked ~ .wrap .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .header-cta{display:none}
}
@media(min-width:1081px){ .burger{display:none} }

/* ══════════════════ 4. ПЕРВЫЙ ЭКРАН (светлый) ══════════════════ */
.hero{position:relative; overflow:hidden; padding:66px 0 78px;
  background:linear-gradient(180deg,#FFFDF8,var(--paper))}
.hero::before{content:""; position:absolute; inset:-40% -10% auto -20%; height:120%; pointer-events:none;
  background:
    radial-gradient(58% 52% at 20% 32%, rgba(231,206,149,.42), transparent 62%),
    radial-gradient(44% 44% at 82% 10%, rgba(29,69,62,.09), transparent 60%)}
.hero__grid{position:relative; display:grid; grid-template-columns:1.06fr .94fr; gap:60px; align-items:center}
.hero__text{min-width:0}
.hero h1{font-size:clamp(38px,5.2vw,72px); line-height:1.03; letter-spacing:-.02em; margin:20px 0 0}
.hero h1 em{font-style:italic; color:var(--gold-deep)}
.hero__lead{margin-top:20px; font-size:18.5px; color:var(--ink-2); max-width:36em}
.hero__cta{display:flex; gap:13px; margin-top:32px; flex-wrap:wrap}
.hero__now{display:inline-flex; align-items:center; gap:10px; margin-top:30px; padding-top:24px;
  border-top:1px solid var(--line); font-size:15px; color:var(--ink-2)}
.hero__now b{color:var(--ink); font-weight:700}

.hero__media{position:relative}
.shrine{position:relative; aspect-ratio:4/5; margin:0; overflow:hidden; display:grid; place-items:center;
  border-radius:290px 290px 26px 26px; box-shadow:var(--sh-m), inset 0 0 0 1px rgba(176,129,42,.22);
  background:
    radial-gradient(70% 50% at 50% 26%, rgba(255,248,228,.95), transparent 60%),
    linear-gradient(180deg,#F7ECD5,#EADCBE 55%,#DCC79B)}
.shrine::after{content:""; position:absolute; inset:14px; border-radius:276px 276px 16px 16px;
  border:1px solid rgba(176,129,42,.35); pointer-events:none}
.shrine img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.shrine__mark{opacity:.5}
.shrine__caption{position:absolute; left:16px; right:16px; bottom:16px; z-index:2; font-size:13px;
  color:var(--ink-2); background:rgba(253,251,246,.9); backdrop-filter:blur(8px);
  border:1px solid var(--line-soft); border-radius:14px; padding:11px 15px}
.badge-float{position:absolute; z-index:3; background:#fff; border:1px solid var(--line-soft);
  border-radius:18px; padding:13px 17px; box-shadow:var(--sh-m); font-size:13px; color:var(--ink-3)}
.badge-float b{display:block; margin-top:3px; font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink)}
.badge-float--tl{top:24px; left:-26px}
.badge-float--br{bottom:104px; right:-22px}
.pulse{width:8px; height:8px; border-radius:50%; background:#2E9E62; flex:none;
  box-shadow:0 0 0 0 rgba(46,158,98,.5); animation:spPulse 2.4s infinite}
@keyframes spPulse{70%{box-shadow:0 0 0 12px rgba(46,158,98,0)}100%{box-shadow:0 0 0 0 rgba(46,158,98,0)}}

@media(max-width:980px){
  .hero{padding:44px 0 56px}
  .hero__grid{grid-template-columns:1fr; gap:40px}
  .hero__media{order:-1; width:100%; max-width:420px; margin-inline:auto}
  .badge-float--tl{left:-8px} .badge-float--br{right:-6px; bottom:86px}
}
@media(max-width:560px){ .badge-float{display:none} }

/* ── тёмная полоса с цифрами ── */
.statband{position:relative; overflow:hidden; color:#F7EDD7;
  background:
    radial-gradient(70% 120% at 20% 0%, rgba(214,169,73,.30), transparent 62%),
    radial-gradient(60% 120% at 85% 100%, rgba(214,169,73,.18), transparent 60%),
    linear-gradient(180deg,#191610,#241E15 55%,#191610)}
.statband__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(233,210,160,.14)}
.statband__grid > div{background:transparent; padding:38px 26px 40px; text-align:center;
  position:relative; z-index:2}
.statband__grid > div + div{box-shadow:-1px 0 0 rgba(233,210,160,.14)}
.statband b{display:block; font-family:var(--serif); font-weight:600; line-height:1.04;
  font-size:clamp(34px,4.4vw,60px); color:#F3E2BC; letter-spacing:-.02em}
.statband .statband__dates{font-size:clamp(20px,2.2vw,30px)}
.statband span{display:block; margin-top:10px; font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(247,237,215,.55)}
@media(max-width:900px){
  .statband__grid{grid-template-columns:1fr 1fr}
  .statband__grid > div{padding:28px 18px 30px}
  .statband__grid > div + div{box-shadow:none}
}

/* ══════════════════ 5. СЕКЦИИ ══════════════════ */
.section{padding:72px 0}
.section--tint{background:linear-gradient(180deg,var(--paper),var(--paper-2)); border-block:1px solid var(--line-soft)}
.section--map{padding:56px 0 64px}
.section__head{margin-bottom:34px}
.section__head--center{max-width:820px; margin-inline:auto; text-align:center}
.section__head h2{font-size:clamp(30px,4vw,52px); margin-top:14px}
.section__head p{color:var(--ink-2); margin-top:15px}
.orn-div{display:flex; align-items:center; justify-content:center; gap:14px; margin-top:22px; color:var(--gold-lite)}
.orn-div::before,.orn-div::after{content:""; height:1px; width:70px; background:linear-gradient(90deg,transparent,var(--gold-lite))}
.orn-div::after{background:linear-gradient(270deg,transparent,var(--gold-lite))}
.section__more{margin-top:32px; text-align:center; display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.section__more--left{justify-content:flex-start; text-align:left}
.section__empty{color:var(--ink-2); text-align:center}
@media(max-width:640px){ .section{padding:50px 0} }

/* ══════════════════ 6. ИНТЕРАКТИВНАЯ КАРТА ══════════════════ */
.spmap{position:relative}
.spmap input{position:fixed; top:0; left:0; width:1px; height:1px; opacity:0; pointer-events:none;
  margin:0; padding:0; border:0}   /* fixed, иначе фокус на переключателе уводит прокрутку страницы */
.spmap__card{position:relative; border-radius:30px; overflow:hidden; box-shadow:var(--sh-m);
  border:1px solid rgba(233,210,160,.2); background:var(--night)}
.spmap-empty{background:var(--gold-wash); border:1px dashed var(--gold-lite); border-radius:18px;
  padding:22px 24px; color:var(--ink-2)}

/* лента городов */
.spmap__railwrap{position:relative; background:var(--night-2); border-bottom:1px solid rgba(233,210,160,.14)}
/* затемнения по краям: видно, что лента продолжается */
.spmap__railwrap::before,.spmap__railwrap::after{content:""; position:absolute; top:0; bottom:8px;
  width:64px; pointer-events:none; z-index:3}
.spmap__railwrap::before{left:0; background:linear-gradient(90deg, var(--night-2) 30%, rgba(24,20,16,0))}
.spmap__railwrap::after{right:0; background:linear-gradient(270deg, var(--night-2) 30%, rgba(24,20,16,0))}
.spmap__arrow{position:absolute; top:calc(50% - 6px); transform:translateY(-50%); z-index:4;
  pointer-events:none; color:rgba(233,210,160,.6); display:grid; place-items:center;
  width:22px; height:22px; animation:spNudge 2.6s ease-in-out infinite}
.spmap__arrow.is-left{left:4px} .spmap__arrow.is-right{right:4px; animation-delay:1.3s}
@keyframes spNudge{0%,100%{opacity:.45; transform:translateY(-50%) translateX(0)}
  50%{opacity:1; transform:translateY(-50%) translateX(3px)}}
.spmap__arrow.is-left{animation-name:spNudgeL}
@keyframes spNudgeL{0%,100%{opacity:.45; transform:translateY(-50%) translateX(0)}
  50%{opacity:1; transform:translateY(-50%) translateX(-3px)}}

.spmap__rail{display:flex; gap:8px; overflow-x:auto; padding:15px 30px 12px; scroll-snap-type:x mandatory;
  scrollbar-color:#C79A38 rgba(233,210,160,.12); scrollbar-width:auto}
.spmap__rail::-webkit-scrollbar{height:9px}
.spmap__rail::-webkit-scrollbar-track{background:rgba(233,210,160,.1); border-radius:8px; margin:0 26px}
.spmap__rail::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#DDAE4E,#9C6E1B);
  border-radius:8px; border:2px solid var(--night-2)}
.spmap__rail::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#EFC169,#B07F22)}

/* на широком экране лента переносится в две строки — листать не нужно */
@media(min-width:1280px){
  .spmap__rail{flex-wrap:wrap; overflow-x:visible; padding:15px 18px}
  .spmap__railwrap::before,.spmap__railwrap::after,.spmap__arrow{display:none}
}
.spmap__chip,.spmap__all{flex:none; scroll-snap-align:start; cursor:pointer; white-space:nowrap;
  border:1px solid rgba(233,210,160,.18); border-radius:100px; padding:9px 15px; font-size:13.5px;
  font-weight:600; color:rgba(243,229,196,.82); display:flex; gap:8px; align-items:center; transition:.25s}
.spmap__chip:hover,.spmap__all:hover{border-color:rgba(233,210,160,.55); color:#FBF3E0; transform:translateY(-2px)}
.spmap__chip b{width:19px; height:19px; border-radius:50%; background:rgba(233,210,160,.14);
  color:#E9D2A0; font-size:11px; display:grid; place-items:center; flex:none}
.spmap__chip small{color:rgba(243,229,196,.45); font-weight:500}
.spmap__all{display:none; color:#E9D2A0; border-style:dashed}
/* активное состояние задаётся в динамическом CSS карты; здесь — как оно выглядит */
.spmap__all.is-on{background:#E9D2A0; border-color:transparent; color:#1A1610; border-style:solid;
  box-shadow:0 8px 20px -10px rgba(233,210,160,.8)}
.spmap__all.is-on svg{opacity:.75}

/* поле карты и панель */
.spmap__body{display:grid; grid-template-columns:1fr}
.spmap__stage{position:relative; overflow:hidden;
  background:radial-gradient(88% 78% at 46% 46%, #221C13, #0E0C08 76%)}
.spmap__dust,.spmap__sweep{position:absolute; pointer-events:none}
.spmap__dust{inset:0; opacity:.45; background-image:
  radial-gradient(1.4px 1.4px at 12% 22%, rgba(233,210,160,.9), transparent),
  radial-gradient(1.2px 1.2px at 32% 68%, rgba(233,210,160,.7), transparent),
  radial-gradient(1.6px 1.6px at 58% 18%, rgba(233,210,160,.8), transparent),
  radial-gradient(1.2px 1.2px at 74% 74%, rgba(233,210,160,.6), transparent),
  radial-gradient(1.5px 1.5px at 88% 34%, rgba(233,210,160,.75), transparent),
  radial-gradient(1.1px 1.1px at 46% 88%, rgba(233,210,160,.6), transparent);
  animation:spTwinkle 7s ease-in-out infinite alternate}
@keyframes spTwinkle{0%{opacity:.24}100%{opacity:.55}}
.spmap__sweep{inset:auto; left:50%; top:50%; width:210%; aspect-ratio:1; transform:translate(-50%,-50%);
  mix-blend-mode:screen; animation:spSweep 18s linear infinite;
  background:conic-gradient(from 0deg, rgba(199,154,56,.12) 0deg, rgba(199,154,56,0) 46deg, rgba(199,154,56,0) 360deg)}
@keyframes spSweep{to{transform:translate(-50%,-50%) rotate(360deg)}}

.spmap__cam{position:absolute; inset:0; transform-origin:0 0; transform:scale(1) translate(0,0);
  transition:transform 1.1s cubic-bezier(.62,.03,.2,1)}
.spmap__cam svg{position:absolute; inset:0; width:100%; height:100%}
.spmap__land{fill:rgba(233,210,160,.05); stroke:rgba(233,210,160,.4); stroke-width:1.3;
  stroke-linejoin:round; vector-effect:non-scaling-stroke}
.spmap__grat{stroke:rgba(233,210,160,.06); stroke-width:1; fill:none; vector-effect:non-scaling-stroke}
.spmap__track{stroke:rgba(199,154,56,.45); stroke-width:1.6; fill:none; stroke-dasharray:3 7;
  stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke}
.spmap__done{display:none; stroke:url(#spmapGrad); stroke-width:3.2; fill:none;
  stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke;
  animation:spDone .55s ease both}
@keyframes spDone{from{opacity:0}to{opacity:1}}

/* города-ориентиры */
.spmap__ref{position:absolute; width:5px; height:5px; transform:translate(-50%,-50%) scale(.8);
  transform-origin:50% 50%; z-index:4; pointer-events:none; transition:transform 1.1s cubic-bezier(.62,.03,.2,1)}
.spmap__ref i{position:absolute; inset:0; border-radius:50%; background:rgba(233,210,160,.32)}
.spmap__ref span{position:absolute; font-size:11px; font-weight:500; white-space:nowrap;
  color:rgba(243,229,196,.34); text-shadow:0 1px 4px rgba(0,0,0,.8)}
.spmap__ref[data-pos=r] span{left:9px; top:50%; transform:translateY(-50%)}
.spmap__ref[data-pos=l] span{right:9px; top:50%; transform:translateY(-50%)}
.spmap__ref[data-pos=t] span{bottom:9px; left:50%; transform:translateX(-50%)}
.spmap__ref[data-pos=b] span{top:9px; left:50%; transform:translateX(-50%)}

/* города маршрута */
.spmap__node{position:absolute; width:14px; height:14px; transform:translate(-50%,-50%) scale(.8);
  transform-origin:50% 50%; cursor:pointer; z-index:6; transition:transform 1.1s cubic-bezier(.62,.03,.2,1)}
.spmap__node::before{content:""; position:absolute; left:50%; top:50%; width:44px; height:44px;
  transform:translate(-50%,-50%); border-radius:50%}
.spmap__pin{position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle at 35% 32%, #FFF2D2, #C79A38 60%, #7C5A13);
  box-shadow:0 0 0 3px rgba(199,154,56,.15), 0 0 14px rgba(199,154,56,.55);
  transition:.5s cubic-bezier(.2,.8,.3,1)}
.spmap__pin::after{content:""; position:absolute; inset:-9px; border-radius:50%;
  border:1px solid rgba(233,210,160,.55); opacity:0; transform:scale(.5); transition:.55s}
.spmap__node:hover .spmap__pin{transform:scale(1.25)}
.spmap__halo{position:absolute; inset:0; border-radius:50%; border:1px solid rgba(199,154,56,.65);
  opacity:0; pointer-events:none; animation:spHalo 3.2s cubic-bezier(.2,.6,.3,1) infinite}
.spmap__halo:nth-of-type(2){animation-delay:1.6s}
@keyframes spHalo{0%{opacity:.85; transform:scale(1)}100%{opacity:0; transform:scale(4.4)}}
@keyframes spmapRing{0%{opacity:.95; transform:scale(.4)}100%{opacity:1; transform:scale(1)}}
.spmap__lead{position:absolute; left:50%; top:50%; height:1px; width:var(--lead,0px); z-index:-1;
  background:linear-gradient(90deg, rgba(233,210,160,.42), rgba(233,210,160,.1));
  transform-origin:0 50%; transform:rotate(var(--ang,0deg)); pointer-events:none; transition:.3s}
.spmap__nm{position:absolute; left:50%; top:50%;
  transform:translate(calc(-50% + var(--dx,0px)), calc(-50% + var(--dy,18px)));
  font-size:12px; font-weight:600; white-space:nowrap; color:rgba(246,234,203,.6);
  text-shadow:0 1px 5px rgba(0,0,0,.9); padding:2px 7px; border-radius:9px; border:1px solid transparent;
  transition:color .3s, background .3s, border-color .3s, box-shadow .3s}
.spmap__node:hover .spmap__nm{color:#FBF3E0}
.spmap__node:hover .spmap__lead{background:linear-gradient(90deg, rgba(233,210,160,.8), rgba(233,210,160,.25))}

/* поверх кадра */
.spmap__vignette{position:absolute; inset:0; pointer-events:none; z-index:7;
  background:radial-gradient(82% 76% at 50% 48%, transparent 46%, rgba(6,5,3,.55))}
.spmap__frame{position:absolute; inset:14px; border:1px solid rgba(233,210,160,.13);
  border-radius:18px; pointer-events:none; z-index:8}
.spmap__hud{position:absolute; left:28px; top:24px; right:96px; z-index:9; display:flex; gap:8px;
  flex-wrap:wrap; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(243,229,196,.6)}
.spmap__hud .l{display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  border:1px solid rgba(233,210,160,.22); border-radius:100px; padding:6px 13px;
  background:rgba(16,14,10,.55); backdrop-filter:blur(6px)}
.spmap__live{width:7px; height:7px; border-radius:50%; background:#79D9A5; flex:none;
  box-shadow:0 0 0 0 rgba(121,217,165,.6); animation:spPulse 2.2s infinite}
.spmap__note{position:absolute; left:28px; bottom:20px; z-index:9; font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(243,229,196,.34)}

/* масштаб */
.spmap__zoom{position:absolute; right:24px; top:24px; z-index:10; display:grid; gap:8px}
.spmap__zslot{position:relative; width:40px; height:40px}
.spmap__zc{position:absolute; inset:0; display:none; place-items:center; cursor:pointer; user-select:none;
  border:1px solid rgba(233,210,160,.28); border-radius:12px; background:rgba(16,14,10,.62);
  backdrop-filter:blur(8px); color:#EEDFB9; font-size:20px; font-weight:600; line-height:1; transition:.22s}
.spmap__zc:hover{background:rgba(233,210,160,.16); color:#FFF6E2; transform:translateY(-1px)}
.spmap__zc.is-off{color:rgba(238,223,185,.25); border-color:rgba(233,210,160,.12); cursor:default}
.spmap__zc.is-off:hover{background:rgba(16,14,10,.62); color:rgba(238,223,185,.25); transform:none}
.spmap__lvl{position:absolute; right:24px; top:120px; z-index:10; writing-mode:vertical-rl;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(243,229,196,.35)}
.spmap__lvl span{display:none}

/* панель города */
.spmap__side{background:var(--night-3); border-top:1px solid rgba(233,210,160,.16);
  padding:26px 26px 30px; color:#F3E5C4}
.spmap__panel{display:none}
.spmap__panel > *{animation:spRise .6s cubic-bezier(.2,.8,.3,1) both}
.spmap__panel > *:nth-child(1){animation-delay:.18s} .spmap__panel > *:nth-child(2){animation-delay:.24s}
.spmap__panel > *:nth-child(3){animation-delay:.30s} .spmap__panel > *:nth-child(4){animation-delay:.36s}
.spmap__panel > *:nth-child(5){animation-delay:.42s} .spmap__panel > *:nth-child(6){animation-delay:.48s}
@keyframes spRise{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}
.spmap__st{display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:700;
  border-radius:100px; padding:5px 12px; border:1px solid rgba(233,210,160,.3); color:#EBD7AC}
.spmap__st.is-now{border-color:rgba(121,217,165,.45); color:#A8E9C4}
.spmap__st.is-done{opacity:.7}
.spmap__panel h3{font-size:31px; color:#FBF2DD; margin:12px 0 3px}
.spmap__temple{font-size:14px; color:rgba(243,229,196,.6)}
.spmap__dates{margin-top:13px; font-family:var(--serif); font-size:23px; color:#E9D2A0; font-weight:600}
.spmap__facts{list-style:none; margin:13px 0 0}
.spmap__facts li{display:grid; grid-template-columns:104px 1fr; gap:12px; padding:9px 0;
  border-top:1px solid rgba(233,210,160,.14); font-size:13.5px}
.spmap__facts .k{color:rgba(243,229,196,.5); font-size:12.5px}
.spmap__ops{margin-top:14px; background:rgba(233,210,160,.08); border:1px solid rgba(233,210,160,.2);
  border-radius:12px; padding:12px 14px; font-size:13px; color:rgba(243,229,196,.85)}
.spmap__ops b{display:block; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:#E9D2A0; margin-bottom:5px}
.spmap__ops-text{display:block; margin-top:5px; color:rgba(243,229,196,.6)}
.spmap__acts{display:flex; gap:9px; margin-top:16px; flex-wrap:wrap}
.spmap__acts .btn{font-size:13px; padding:11px 19px}

@media(min-width:1200px){
  .spmap__body{grid-template-columns:1fr 372px}
  .spmap__side{border-top:0; border-left:1px solid rgba(233,210,160,.16); padding:30px 28px}
}
@media(max-width:1080px){
  .spmap__hud{left:16px; top:16px; right:82px; font-size:10px; gap:6px}
  .spmap__hud .l{padding:5px 10px}
  .spmap__zoom{right:14px; top:14px} .spmap__zslot{width:36px; height:36px} .spmap__zc{font-size:18px}
  .spmap__lvl{display:none}
  .spmap__note{left:16px; bottom:12px; font-size:9.5px}
  .spmap__frame{inset:9px}
  .spmap__side{padding:22px 18px 26px} .spmap__panel h3{font-size:27px}
}
@media(max-width:620px){
  .spmap__facts li{grid-template-columns:1fr; gap:1px}
  .spmap__ref span{font-size:10px}
}

/* ══════════════════ 7. НОВОСТИ ══════════════════ */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.ncard{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line-soft);
  border-radius:24px; overflow:hidden; box-shadow:var(--sh-s); transition:.32s}
.ncard:hover{transform:translateY(-6px); box-shadow:var(--sh-m); border-color:var(--gold-lite)}
.ncard__media{display:block; overflow:hidden}
.ncard__img{width:100%; aspect-ratio:16/10; object-fit:cover; display:block}
.ncard__img.is-empty{background:linear-gradient(145deg,#F4EAD3,#E4D2AC 58%,#D4BF92)}
.ncard__body{display:block; padding:24px 26px 28px}
.ncard time{font-size:13px; color:var(--ink-3)}
.ncard h2,.ncard h3{font-size:23px; margin-top:10px; line-height:1.2; font-family:var(--serif); font-weight:600}
.ncard p{margin-top:11px; font-size:15px; color:var(--ink-2)}
.ncard--wide{grid-column:span 3; flex-direction:row}
.ncard--wide .ncard__media{flex:1 1 55%}
.ncard--wide .ncard__img{height:100%; aspect-ratio:auto; min-height:320px}
.ncard--wide .ncard__body{flex:1 1 45%; align-self:center; padding:44px 46px}
.ncard--wide h3{font-size:36px}
.ncard--wide p{font-size:16.5px; max-width:48ch}
.news-grid--list{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){
  .news-grid{grid-template-columns:1fr 1fr}
  .news-grid--list{grid-template-columns:1fr 1fr}
  .ncard--wide{grid-column:span 2; flex-direction:column}
  .ncard--wide .ncard__img{min-height:220px}
  .ncard--wide .ncard__body{padding:26px}
  .ncard--wide h3{font-size:27px}
}
@media(max-width:640px){
  .news-grid,.news-grid--list{grid-template-columns:1fr}
  .ncard--wide{grid-column:span 1}
}

/* ══════════════════ 8. О СВЯТИТЕЛЕ (тёмная) ══════════════════ */
.section--dark{background:linear-gradient(180deg,#1B1811,#272016 55%,#1B1811); color:#F5EAD2;
  position:relative; overflow:hidden}
.section--dark::before{content:""; position:absolute; inset:-30% -10% auto -10%; height:120%;
  background:radial-gradient(45% 40% at 25% 30%, rgba(214,169,73,.22), transparent 62%)}
.section--dark .wrap{position:relative; z-index:2}
.dark-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:center}
.section--dark h2{color:#F8EFD9; font-size:clamp(30px,4vw,50px); margin:16px 0 24px}
.section--dark p{color:rgba(245,234,210,.78)}
.section--dark p + p{margin-top:15px}
.relic{aspect-ratio:3/4; border-radius:250px 250px 26px 26px; position:relative; overflow:hidden;
  display:grid; place-items:center; border:1px solid rgba(233,210,160,.28);
  background:radial-gradient(65% 45% at 50% 25%, rgba(255,244,219,.28), transparent 62%), linear-gradient(190deg,#3A311F,#241E14)}
.relic::after{content:""; position:absolute; inset:14px; border:1px solid rgba(233,210,160,.22);
  border-radius:236px 236px 16px 16px}
.relic figcaption{position:absolute; left:14px; right:14px; bottom:14px; font-size:12.5px;
  color:rgba(245,234,210,.65); background:rgba(26,23,18,.6); border-radius:12px; padding:10px 13px}
.dropcap::first-letter{float:left; font-family:var(--serif); font-size:74px; line-height:.82;
  font-weight:600; color:#E9D2A0; margin:6px 14px 0 0}
.quote{margin:30px 0 0; padding-left:24px; border-left:2px solid rgba(233,210,160,.5);
  font-family:var(--serif); font-style:italic; font-size:25px; line-height:1.36; color:#F5E7C6}
.quote cite{display:block; font-family:var(--sans); font-style:normal; font-size:11.5px;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(245,234,210,.5); margin-top:14px}
@media(max-width:900px){
  .dark-grid{grid-template-columns:1fr; gap:36px}
  .relic{max-width:340px; margin-inline:auto; width:100%}
}

/* ══════════════════ 9. ПАЛОМНИКУ ══════════════════ */
.pil{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
.pil-list{display:grid; gap:14px}
.pil-item{display:grid; grid-template-columns:auto 1fr; gap:18px; background:#fff;
  border:1px solid var(--line-soft); border-radius:18px; padding:22px 24px; box-shadow:var(--sh-s); transition:.28s}
.pil-item:hover{transform:translateX(4px); border-color:var(--gold-lite)}
.pil-item__ico{width:44px; height:44px; border-radius:14px; display:grid; place-items:center; flex:none;
  background:linear-gradient(140deg,var(--gold-wash),#F1E1BE); border:1px solid rgba(185,140,46,.22)}
.pil-item h3{font-size:19px; margin-bottom:5px}
.pil-item p{font-size:14.5px; color:var(--ink-2)}
.faq{display:grid; gap:10px}
.faq details{background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:0 24px;
  box-shadow:var(--sh-s); transition:.25s}
.faq details[open]{border-color:var(--gold-lite); box-shadow:var(--sh-m)}
.faq summary{list-style:none; cursor:pointer; padding:19px 0; font-weight:600; font-size:16.5px;
  display:flex; justify-content:space-between; gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-family:var(--serif); font-size:25px; color:var(--gold-deep);
  transition:.3s; line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding-bottom:21px; color:var(--ink-2); font-size:15px}
@media(max-width:900px){ .pil{grid-template-columns:1fr; gap:34px} }

/* ══════════════════ 10. ПРЕСС-ЦЕНТР (хвойная подложка) ══════════════════ */
.press{background:var(--pine); color:#EAF3EF; border-radius:30px; padding:56px;
  display:grid; grid-template-columns:1.1fr .9fr; gap:46px; align-items:center; position:relative; overflow:hidden}
.press::after{content:""; position:absolute; inset:auto -15% -70% 50%; height:140%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(199,148,48,.32), transparent 65%)}
.press > *{position:relative; z-index:2}
.press h2{color:#F4FAF7; font-size:clamp(28px,3.4vw,44px); margin-top:14px}
.press p{margin-top:15px; color:rgba(234,243,239,.8)}
.press__cta{margin-top:28px}
.press__list{list-style:none; display:grid; gap:10px}
.press__list li{background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12);
  border-radius:14px; padding:15px 18px; font-size:15px; transition:.25s}
.press__list li:hover{background:rgba(255,255,255,.12); transform:translateX(4px)}
@media(max-width:900px){ .press{grid-template-columns:1fr; padding:34px 24px} }

/* ══════════════════ 11. ПОДВАЛ ══════════════════ */
.site-footer{background:#17140F; color:rgba(245,234,210,.72); margin-top:0}
.footer__grid{display:grid; grid-template-columns:1.55fr 1fr 1fr 1.05fr; gap:40px; padding:54px 0 40px}
.site-footer h2{font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(245,234,210,.45); font-weight:700; margin-bottom:15px}
.footer__list{list-style:none; display:grid; gap:10px; font-size:15px; white-space:nowrap}
.footer__list a:hover{color:#E9D2A0}
.footer__about{margin-top:16px; font-size:15px; max-width:38ch}
.footer__bottom{border-top:1px solid rgba(233,210,160,.13); padding:20px 0 38px; font-size:13px;
  color:rgba(245,234,210,.42); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap}
.site-footer .brand{color:#F7EDD7; margin-right:0}
@media(max-width:820px){ .footer__grid{grid-template-columns:1fr 1fr; gap:32px} }
@media(max-width:420px){ .footer__list{white-space:normal} }

/* ══════════════════ 12. ВНУТРЕННИЕ СТРАНИЦЫ ══════════════════ */
.page-head{padding:52px 0 28px}
.page-head h1{font-size:clamp(32px,4.4vw,54px); margin-top:14px}
.page-head__desc{margin-top:16px; color:var(--ink-2); max-width:70ch}
.article{padding-top:44px}
.article__head h1{font-size:clamp(30px,4vw,50px); margin-top:14px}
.article__head time{display:block; font-size:13.5px; color:var(--ink-3); margin-top:16px}
.article__tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
.tag{background:var(--gold-wash); color:var(--gold-deep); font-weight:600; border-radius:100px;
  padding:5px 13px; font-size:12.5px; border:1px solid var(--gold-lite)}
.back-link{display:inline-block; font-size:14px; font-weight:600; color:var(--gold-deep); margin-bottom:6px}
.article__cover{margin:32px 0; border-radius:22px; overflow:hidden; box-shadow:var(--sh-m)}
.article__body{margin-top:28px; font-size:17.5px; color:var(--ink-2)}
.entry-content p{margin-bottom:18px}
.entry-content h2{font-size:31px; margin:34px 0 14px; color:var(--ink)}
.entry-content h3{font-size:24px; margin:28px 0 12px; color:var(--ink)}
.entry-content ul,.entry-content ol{margin:0 0 18px 22px}
.entry-content li{margin-bottom:8px}
.entry-content a{color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px}
.entry-content blockquote{margin:24px 0; padding:18px 24px; background:var(--gold-wash);
  border-left:3px solid var(--gold-lite); border-radius:0 16px 16px 0; font-family:var(--serif);
  font-size:22px; font-style:italic; color:var(--ink)}
.entry-content img{border-radius:16px}
.wp-caption-text,.entry-content figcaption{font-size:13.5px; color:var(--ink-3); margin-top:8px}
.alignwide{width:min(1100px,100%); margin-inline:auto}
.alignfull{width:100vw; margin-left:calc(50% - 50vw)}
.aligncenter{margin-inline:auto}
.pagination{margin-top:40px; text-align:center}
.pagination .page-numbers{display:inline-flex; align-items:center; justify-content:center; min-width:42px;
  height:42px; padding:0 12px; margin:0 4px; border-radius:100px; border:1px solid var(--line);
  background:#fff; font-weight:600; font-size:15px}
.pagination .current{background:linear-gradient(135deg,#D3A344,#9C6E1B 78%); color:#FFFBF0; border-color:transparent}
.post-nav__grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.post-nav a{display:block; background:#fff; border:1px solid var(--line-soft); border-radius:20px;
  padding:22px 24px; box-shadow:var(--sh-s); transition:.28s}
.post-nav a:hover{transform:translateY(-3px); border-color:var(--gold-lite)}
.post-nav span{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3)}
.post-nav b{display:block; margin-top:8px; font-family:var(--serif); font-size:21px; font-weight:600}
.post-nav .is-next{text-align:right}
@media(max-width:700px){ .post-nav__grid{grid-template-columns:1fr} .post-nav .is-next{text-align:left} }

/* ══════════════════ 13. ГОРОД ══════════════════ */
.city-hero{padding:64px 0 44px; color:#F5EAD2; position:relative; overflow:hidden;
  background:radial-gradient(70% 60% at 30% 10%, rgba(214,169,73,.26), transparent 62%),
             linear-gradient(180deg,#1B1811,#241E15)}
.city-hero .back-link{color:var(--gold-lite)}
.city-hero h1{font-size:clamp(34px,5vw,64px); margin:16px 0 0; color:#FBF2DD}
.city-hero__temple{margin-top:12px; color:rgba(245,234,210,.7); font-size:17px}
.city-hero__dates{margin-top:18px; font-family:var(--serif); font-size:28px; color:#E9D2A0; font-weight:600}
.city-hero__status{display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-size:12px;
  font-weight:700; border-radius:100px; padding:6px 14px; border:1px solid rgba(233,210,160,.35); color:#EBD7AC}
.city-hero__status.is-now{border-color:rgba(121,217,165,.5); color:#A8E9C4}
.city-grid{display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:start}
.city-block{margin-top:38px}
.city-block h2{font-size:29px; margin-bottom:14px}
.city-lines{list-style:none; display:grid; gap:10px}
.city-lines li{background:#fff; border:1px solid var(--line-soft); border-radius:14px;
  padding:14px 18px; box-shadow:var(--sh-s); font-size:15.5px; color:var(--ink-2)}
.city-empty{color:var(--ink-2); font-size:15.5px}
.ops-list{display:grid; gap:12px}
.ops-item{display:block; background:var(--gold-wash); border:1px solid var(--gold-lite);
  border-radius:18px; padding:18px 22px; transition:.28s}
.ops-item:hover{transform:translateX(4px); box-shadow:var(--sh-s)}
.ops-item time{font-size:12.5px; color:var(--gold-deep); font-weight:700; letter-spacing:.06em}
.ops-item b{display:block; margin-top:6px; font-family:var(--serif); font-size:22px; font-weight:600}
.ops-item span{display:block; margin-top:6px; font-size:14.5px; color:var(--ink-2)}
.city-side{display:grid; gap:18px; position:sticky; top:24px}
.city-card{background:#fff; border:1px solid var(--line-soft); border-radius:22px; padding:26px 26px 28px;
  box-shadow:var(--sh-s)}
.city-card h2{font-size:21px; margin-bottom:14px}
.city-facts{list-style:none}
.city-facts li{display:grid; grid-template-columns:110px 1fr; gap:12px; padding:11px 0;
  border-top:1px solid var(--line-soft); font-size:14.5px}
.city-facts .k{color:var(--ink-3); font-size:13px}
.city-others{list-style:none; display:grid; gap:2px}
.city-others a{display:flex; justify-content:space-between; gap:12px; padding:10px 0;
  border-top:1px solid var(--line-soft); font-size:14.5px; transition:.2s}
.city-others a:hover{color:var(--gold-deep)}
.city-others span{color:var(--ink-3); white-space:nowrap}
@media(max-width:960px){ .city-grid{grid-template-columns:1fr; gap:32px} .city-side{position:static} }

/* ══════════════════ 14. СПИСОК МАРШРУТА ══════════════════ */
.route-list{display:grid; gap:10px}
.route-item{display:grid; grid-template-columns:44px 1fr 160px 190px 160px; gap:18px; align-items:center;
  background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:18px 22px;
  box-shadow:var(--sh-s); transition:.28s}
.route-item:hover{transform:translateX(4px); border-color:var(--gold-lite); box-shadow:var(--sh-m)}
.route-item__n{width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:var(--gold-wash); color:var(--gold-deep); font-weight:700; font-size:14px}
.route-item__main b{display:block; font-family:var(--serif); font-size:23px; font-weight:600}
.route-item__temple{font-size:13.5px; color:var(--ink-3)}
.route-item__dates{font-weight:600; color:var(--gold-deep); font-size:15px}
.route-item__access{font-size:14px; color:var(--ink-2)}
.route-item__status{font-size:12px; font-weight:700; border-radius:100px; padding:5px 12px;
  text-align:center; background:#F1EEE7; color:#7A7263}
.route-item__status.is-now{background:#E7F5EC; color:#1E6B41}
.route-item__status.is-soon{background:var(--gold-wash); color:var(--gold-deep)}
@media(max-width:1000px){
  .route-item{grid-template-columns:38px 1fr; gap:12px}
  .route-item__dates,.route-item__access,.route-item__status{grid-column:2}
  .route-item__status{justify-self:start}
}

/* ══════════════════ 15. ДОСТУПНОСТЬ ══════════════════ */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.2s !important}
  html{scroll-behavior:auto}
}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:6px}

/* ══════════════════ 16. МЕЛОЧИ ══════════════════ */
.site-main{display:block}
.brand__text{display:block; line-height:1.15}
.city-main{min-width:0}
.city-card--route .city-others b{font-weight:600}
.city-facts .v{font-weight:500}

/* ══════════════════ 17. ХРОНОЛОГИЯ (второй способ подачи маршрута) ══════════════════ */
.timeline-wrap{margin-top:56px}
.timeline-head{max-width:760px; margin:0 auto 30px; text-align:center}
.timeline-head h3{font-size:clamp(24px,2.8vw,34px)}
.timeline-head p{margin-top:12px; color:var(--ink-2); font-size:16px}

.sptl{position:relative; max-width:980px; margin-inline:auto}
.sptl__list{position:relative; display:grid; gap:12px}
.sptl__list::before{content:""; position:absolute; left:82px; top:24px; bottom:24px; width:2px;
  background:linear-gradient(180deg,var(--gold),var(--gold-lite) 32%,var(--line))}
.sptl__item{position:relative}
.sptl__row{display:grid; grid-template-columns:82px 1fr auto; gap:24px; align-items:center; cursor:pointer;
  list-style:none;
  background:#fff; border:1px solid var(--line-soft); border-radius:20px; padding:18px 24px 18px 0;
  box-shadow:var(--sh-s); transition:.3s}
.sptl__row::-webkit-details-marker{display:none}
.sptl__row::marker{content:""}
.sptl__row:hover{border-color:var(--gold-lite); transform:translateX(3px)}
/* открытая карточка */
.sptl__item[open] > .sptl__row{border-color:var(--gold-lite); box-shadow:var(--sh-m)}
.sptl__item[open] .sptl__bullet{background:var(--gold); transform:scale(1.25)}
.sptl__item[open] .sptl__chev::after{transform:rotate(-135deg) translate(-3px,-3px)}
.sptl__date{text-align:right; font-size:12.5px; font-weight:700; color:var(--ink-3); line-height:1.25}
.sptl__month{display:block; text-transform:lowercase}
.sptl__date b{display:block; font-family:var(--serif); font-size:22px; font-weight:600; color:var(--ink);
  white-space:nowrap; letter-spacing:-.01em}
.sptl__mid{display:flex; align-items:center; gap:18px; margin-left:20px; min-width:0}
.sptl__bullet{width:14px; height:14px; border-radius:50%; background:#fff; border:2.5px solid var(--gold);
  flex:none; margin-left:-27px; box-shadow:0 0 0 5px #fff; transition:.3s}
.sptl__city{display:block; font-family:var(--serif); font-size:26px; font-weight:600; line-height:1.1}
.sptl__temple{display:block; margin-top:3px; font-size:13.5px; color:var(--ink-3)}
.sptl__aside{display:flex; align-items:center; gap:14px; flex:none}
.sptl__chip{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700;
  border-radius:100px; padding:6px 13px; white-space:nowrap; background:#F1EEE7; color:#7A7263}
.sptl__chip.is-now{background:#E7F5EC; color:#1E6B41}
.sptl__chip.is-soon{background:var(--gold-wash); color:var(--gold-deep); border:1px solid var(--gold-lite)}
.sptl__chev{width:34px; height:34px; border-radius:50%; border:1px solid var(--line); display:grid;
  place-items:center; flex:none; transition:.3s}
.sptl__chev::after{content:""; width:8px; height:8px; border-right:1.6px solid var(--ink-2);
  border-bottom:1.6px solid var(--ink-2); transform:rotate(45deg) translate(-2px,-2px); transition:.3s}
.sptl__body{margin-bottom:10px}
.sptl__item[open] .sptl__inner{animation:spRise .42s cubic-bezier(.2,.8,.3,1) both}
.sptl__inner{margin:12px 0 4px 106px; display:grid; grid-template-columns:1fr 290px; gap:32px;
  background:linear-gradient(150deg,var(--gold-wash),#fff 65%); border:1px solid var(--gold-lite);
  border-radius:20px; padding:26px 28px 28px}
.sptl__facts{margin:0}
.sptl__facts > div{display:grid; grid-template-columns:150px 1fr; gap:16px; padding:11px 0;
  border-top:1px solid rgba(185,140,46,.18); font-size:15px}
.sptl__facts > div:first-child{border-top:0; padding-top:0}
.sptl__facts dt{color:var(--ink-3); font-size:13.5px}
.sptl__facts dd{margin:0; font-weight:500}
.sptl__side{border-left:1px solid rgba(185,140,46,.2); padding-left:26px}
.sptl__side h4{font-family:var(--sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:9px}
.sptl__ops{background:#fff; border:1px dashed var(--gold-lite); border-radius:14px; padding:13px 15px;
  font-size:14px; color:var(--ink-2); margin-bottom:16px}
.sptl__side .btn{font-size:13.5px; padding:11px 20px}

@media(max-width:860px){
  .timeline-wrap{margin-top:40px}
  .sptl__list::before{left:16px}
  .sptl__row{grid-template-columns:1fr auto; padding:16px 18px 16px 42px; gap:12px}
  .sptl__date{grid-column:1/-1; text-align:left; order:-1; display:flex; gap:8px; align-items:baseline}
  .sptl__date b{font-size:17px}
  .sptl__mid{margin-left:0} .sptl__bullet{margin-left:-36px}
  .sptl__city{font-size:21px}
  .sptl__aside{flex-direction:row-reverse; gap:10px}
  .sptl__inner{margin-left:0; grid-template-columns:1fr; padding:22px 20px 24px; gap:20px}
  .sptl__facts > div{grid-template-columns:1fr; gap:2px}
  .sptl__side{border-left:0; border-top:1px solid rgba(185,140,46,.2); padding-left:0; padding-top:20px}
}
@media(max-width:480px){
  .sptl__chip{font-size:11px; padding:5px 10px}
  .sptl__chev{width:30px; height:30px}
}

/* ══════════════════ 18. ЛОГОТИПЫ ПАРТНЁРОВ ══════════════════ */
.partner{display:grid; gap:18px; padding:28px 0 6px; border-top:1px solid rgba(233,210,160,.13)}
.partner__label{font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(245,234,210,.45); font-weight:700}
.partner__list{list-style:none; display:flex; align-items:center; gap:40px; flex-wrap:wrap}
.partner__list li{flex:none}
.partner__logo{display:block; line-height:0}
/* высота именно задана, а не ограничена: у SVG без собственных размеров
   связка width:auto + max-height схлопывает картинку в ноль */
.partner__logo img{height:56px; width:auto; max-width:190px; object-fit:contain;
  opacity:.82; transition:opacity .25s, transform .25s}
.partner__logo:hover img{opacity:1; transform:translateY(-1px)}
@media(max-width:640px){
  .partner{padding-top:24px}
  .partner__list{gap:28px}
  .partner__logo img{height:46px; max-width:160px}
}

/* заголовок блока хронологии на странице маршрута */
.timeline-head h2{font-size:clamp(26px,3.2vw,40px)}

/* контакты пресс-службы */
.footer__person{color:rgba(245,234,210,.5); font-size:14px; white-space:normal}
.press__contacts{margin-top:18px; font-size:15px; color:rgba(234,243,239,.75)}
.press__contacts b{color:#F4FAF7; font-weight:600}
.press__contacts a{border-bottom:1px solid rgba(234,243,239,.35)}
.press__contacts a:hover{color:#fff; border-color:#fff}

/* фотография в блоке «О святителе» */
.relic.has-photo{background:#241E14}
.relic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.relic.has-photo::after{border-color:rgba(233,210,160,.35)}

/* крупные озёра на подложке карты */
.spmap__lake{fill:rgba(10,9,6,.85); stroke:rgba(233,210,160,.3); stroke-width:1;
  vector-effect:non-scaling-stroke}

/* ══════════════════ 19. ЗАГЛУШКА ДО ОТКРЫТИЯ ══════════════════ */
body.is-holding{background:#191610}
.holding{position:relative; min-height:100svh; display:grid; place-items:center; overflow:hidden;
  padding:60px 0; text-align:center; color:#F7EDD7;
  background:
    radial-gradient(70% 55% at 50% 12%, rgba(214,169,73,.30), transparent 62%),
    radial-gradient(60% 50% at 50% 104%, rgba(214,169,73,.16), transparent 60%),
    linear-gradient(180deg,#191610,#241E15 55%,#191610)}
.holding__orn{position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; opacity:.45}
.holding__orn svg{width:min(720px,105%); height:auto}
.holding__inner{position:relative; z-index:2; width:min(680px, calc(100% - 44px)); margin-inline:auto}
.holding__name{font-family:var(--serif); font-size:clamp(24px,3.4vw,38px); font-weight:600;
  color:#FBF2DD; margin:0 0 26px; line-height:1.12}
.holding__date{font-size:clamp(17px,2.2vw,23px); color:rgba(247,237,215,.72); line-height:1.3}
.holding__date b{display:block; margin-top:12px; font-family:var(--serif); font-weight:600;
  color:#E9D2A0; font-size:clamp(40px,6.6vw,82px); letter-spacing:-.02em; line-height:1}
.holding__days{margin-top:20px; font-size:11.5px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(247,237,215,.42)}
.holding__lead{margin:26px auto 0; max-width:52ch; font-size:17px; color:rgba(247,237,215,.7)}
.holding__contacts{margin-top:38px; display:flex; gap:10px 26px; justify-content:center; flex-wrap:wrap;
  font-size:15px; color:rgba(247,237,215,.6)}
.holding__contacts a{border-bottom:1px solid rgba(233,210,160,.35)}
.holding__contacts a:hover{color:#FFF8E9; border-color:#E9D2A0}
.holding__partners{margin-top:48px; padding-top:26px; border-top:1px solid rgba(233,210,160,.14)}
.holding__partners ul{list-style:none; display:flex; gap:32px; justify-content:center;
  align-items:center; flex-wrap:wrap}
.holding__partners img{height:40px; width:auto; max-width:140px; object-fit:contain; opacity:.7}
@media(max-width:600px){
  .holding__partners ul{gap:20px}
  .holding__partners img{height:32px; max-width:110px}
  .holding__contacts{font-size:14px}
}
