/* AUTO-GENERATED — править portal-local/css/, затем:
   python3 scripts/build_portal_css.py
   built: 2026-09-16T11:29:24Z
   sources_hash: 5e75b9bd3872
*/
:root {
  --bg: #f9fbfd;
  --bg-soft: #eef3f8;
  --bg-ochre: rgba(226, 165, 74, 0.14);
  --brand: #1a365d;
  --text: #2c3e50;
  --muted: #5a6b7d;
  --line: #d5dce6;
  --ochre: #e2a54a;
  --ochre-soft: rgba(226, 165, 74, 0.16);
  --cta: #c52b23;
  --cta-hover: #a8241e;
  --shutter: #4a90e2;
  --serif: "PT Serif", "Times New Roman", serif;
  --sans: "PT Sans", system-ui, -apple-system, sans-serif;
  --pad: clamp(1.25rem, 4.5vw, 3rem);
  --max: 72rem; /* канон колонки: header, footer, .section__inner */
  --content-narrow: 44rem;
  --content-detail: 42rem;
  --tile-aspect: 4 / 3;
  --grid-gap: 1.5rem;
  --tile-cols-max: 3;
  --radius: 3px;
  --header-h: 5rem;
  --section-y: clamp(2.75rem, 7vh, 4.75rem);
}



*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5.5rem;
}

html:has(body .back-bar) {
  scroll-padding-top: calc(var(--header-h) + 3.4rem + 0.75rem);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

.prose-single a,
.prose a,
.about-prose a,
.about-block__prose a,
.about-block__text a,
.section__lead a,
.place-card__text a,
.place-detail__body a,
.go-block a,
.go-note a,
.go-links a,
.events-more__links a,
.venue-list a,
.afisha-status a,
.site-footer__nav a {
  color: var(--brand);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.prose-single a:hover,
.prose a:hover,
.about-prose a:hover,
.about-block__prose a:hover,
.about-block__text a:hover,
.section__lead a:hover,
.place-card__text a:hover,
.place-detail__body a:hover,
.go-block a:hover,
.go-note a:hover,
.go-links a:hover,
.events-more__links a:hover,
.venue-list a:hover,
.afisha-status a:hover,
.site-footer__nav a:hover {
  color: var(--cta);
}

.atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 50% at 12% 18%, var(--ochre-soft), transparent 60%),
    radial-gradient(ellipse 50% 45% at 88% 72%, rgba(74, 144, 226, 0.1), transparent 58%),
    linear-gradient(165deg, #f9fbfd 0%, #f4f7fb 48%, #eef3f8 100%);
}

.atmosphere__seal {
  position: absolute;
  right: clamp(2%, 4vw, 6%);
  top: 50%;
  width: min(40vw, 26rem);
  height: auto;
  transform: translateY(-42%);
  opacity: 0.075;
  filter: saturate(0.9);
}

@media (max-width: 640px) {
  .atmosphere__seal {
    width: min(85vw, 20rem);
    top: auto;
    bottom: 12%;
    right: -16%;
    transform: none;
    opacity: 0.05;
  }
}

main,
.site-footer,
.back-bar {
  position: relative;
  z-index: 1;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  padding: 0.5rem 1rem;
  background: var(--brand);
  color: #fff;
}

.skip-link:focus {
  left: var(--pad);
  top: 0.5rem;
}


/* —— Sections —— */

.section {
  padding: var(--section-y) 0;
  border-top: 1px solid var(--line);
}

.section--after-hero {
  padding-top: 2.75rem;
  border-top: 0;
}

.section--about,
.section--siamz {
  background: transparent;
}

.siamz-band {
  display: grid;
  gap: 1.35rem;
  align-items: stretch;
}

@media (min-width: 800px) {
  .siamz-band {
    grid-template-columns: 1.25fr 1fr;
    gap: 2rem;
  }
}

.siamz-band .section__title {
  margin-bottom: 0.65rem;
}

.siamz-band .section__lead {
  margin: 0 0 1.15rem;
  max-width: 36rem;
  font-size: 1.08rem;
  line-height: 1.55;
}

.siamz-band__figure {
  margin: 0;
  border: 1px solid rgba(26, 54, 93, 0.18);
  border-radius: 4px;
  overflow: hidden;
  background: #d5dce6;
  min-height: 12rem;
}

.siamz-band__figure img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  object-fit: cover;
}

.page-hub .section--afisha {
  background: transparent;
}

.section--see {
  background: transparent;
}

.section--go {
  background: var(--bg-soft);
}

.section--afisha {
  background: var(--bg-soft);
}

.section--residents {
  background:
    linear-gradient(180deg, rgba(26, 54, 93, 0.92), rgba(26, 54, 93, 0.96));
  border-top-color: transparent;
  color: #f9fbfd;
}

.section--hub {
  background: transparent;
}

/* Канон ширины страниц: все блоки контента — .section__inner.
   Не снимать max-width у внутренних секций (хроника, intro, сетки).
   Исключения: hero на всю ширину; .section__inner--narrow для короткого текста. */
.section__inner {
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}

.section__inner--narrow {
  max-width: var(--content-narrow);
}

.section__inner--split {
  display: grid;
  gap: 1.75rem;
  align-items: end;
}

@media (min-width: 720px) {
  .section__inner--split {
    grid-template-columns: 1.35fr auto;
    gap: 2.5rem;
  }
}

.section__eyebrow {
  margin: 0 0 0.55rem;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--shutter);
}

.section__eyebrow--on-tint {
  color: var(--ochre);
}

.section__title {
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(1.7rem, 3.2vw, 2.25rem);
  line-height: 1.15;
  color: var(--brand);
}

.section__title--on-tint {
  color: #f9fbfd;
}

.section__lead {
  margin: 0;
  max-width: 52rem;
  color: var(--muted);
}

.section__lead--see {
  max-width: 52rem;
  margin-bottom: 1.5rem;
  font-size: 1.08rem;
  line-height: 1.55;
}

.section__lead--on-tint {
  color: rgba(249, 251, 253, 0.85);
}

.page-head {
  padding-top: clamp(1.5rem, 4vh, 2.5rem);
  padding-bottom: clamp(0.75rem, 2vh, 1.25rem);
}

.page-head--tight {
  padding-bottom: 0.35rem;
}

.section--club-routes--tight {
  padding-top: clamp(0.75rem, 2vh, 1.25rem);
}

.afisha-status {
  margin: 0;
  padding: 1rem 0 0;
  border-top: 3px solid var(--ochre);
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--brand);
}


/* —— Design system primitives —— */

/* Figure: универсальный блок иллюстрации */
.figure {
  margin: clamp(1.5rem, 3vh, 2rem) 0 clamp(1.75rem, 3.5vh, 2.25rem);
  padding: 0;
  max-width: 100%;
  border: 1px solid rgba(26, 54, 93, 0.14);
  background: #f4f1ea;
}

.figure img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: #f4f1ea;
}

.figure--ratio-4x3 img {
  aspect-ratio: var(--tile-aspect);
  object-fit: cover;
}

.figure--plan img {
  aspect-ratio: 1024 / 633;
  object-fit: contain;
}

.figure--intrinsic img {
  aspect-ratio: auto;
  max-height: min(85vh, 52rem);
}

.figure figcaption {
  margin: 0;
  padding: 0.65rem 0.85rem 0.8rem;
  border-top: 1px solid rgba(26, 54, 93, 0.1);
  background: #fff;
  font-size: 0.86rem;
  line-height: 1.4;
  color: #5b6b7c;
}

.figure__open {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  position: relative;
  text-align: left;
}

.figure__open:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
}

.figure__hint {
  position: absolute;
  right: 0.65rem;
  bottom: 0.65rem;
  padding: 0.35rem 0.65rem;
  border-radius: 2px;
  background: rgba(26, 54, 93, 0.82);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  pointer-events: none;
}

/* Prose: универсальный текстовый блок */
.prose {
  margin-top: 0.35rem;
}

.prose p,
.prose__lead {
  margin: 0 0 1.15rem;
  font-size: 1.06rem;
  line-height: 1.72;
  color: var(--text);
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 4 4;
}

.prose__lead,
.prose--lead > p:first-child {
  font-size: 1.12rem;
  line-height: 1.65;
}

.prose p:last-child {
  margin-bottom: 0;
}

.prose-single {
  margin: 0;
  max-width: 40rem;
  font-size: 1.08rem;
}

/* Panel: блок с охряной полосой сверху */
.panel {
  border: 1px solid rgba(26, 54, 93, 0.12);
  border-top: 3px solid var(--ochre);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
}

.panel--split {
  margin-top: 1.35rem;
  display: grid;
  gap: 1.1rem;
  padding: 1rem 1.05rem 1.15rem;
}

@media (min-width: 900px) {
  .panel--split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: start;
    gap: 1.35rem;
    padding: 1.15rem 1.25rem 1.25rem;
  }
}

.panel__figure {
  margin: 0;
  overflow: hidden;
  border-radius: 2px;
}

.panel__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--tile-aspect);
  object-fit: cover;
}

.panel__title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  font-weight: 700;
  color: var(--brand);
  line-height: 1.2;
}

.panel__meta {
  margin: 0.35rem 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.panel__body {
  margin-top: 0.55rem;
}

.panel__body p {
  margin: 0.45rem 0 0;
}

.go-block.panel {
  padding: 1.1rem 1.15rem 1.05rem;
}

.panel__foot {
  padding: 0.85rem clamp(1rem, 2.5vw, 1.5rem) 1.1rem;
  border-top: 1px solid rgba(26, 54, 93, 0.08);
  background: var(--bg-soft);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* —— Header —— */

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(249, 251, 253, 0.94);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0.65rem var(--pad);
  min-height: var(--header-h);
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  flex-shrink: 0;
}

.brand__seal {
  width: 3.75rem;
  height: 3.75rem;
  object-fit: contain;
}

.brand__text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.brand__place {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--brand);
}

.brand__name {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--shutter);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nav-toggle {
  display: none;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.35rem;
}

.nav-toggle__bar {
  display: block;
  width: 1.1rem;
  height: 2px;
  background: var(--brand);
}

.nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem 1rem;
  font-size: 1rem;
  font-weight: 700;
  max-width: 52rem;
  line-height: 1.25;
}

.nav a {
  text-decoration: none;
  color: var(--brand);
  border-bottom: 2px solid transparent;
  padding-bottom: 0.1rem;
  transition: border-color 0.25s ease;
}

.nav a:hover,
.nav a:focus-visible {
  border-bottom-color: var(--ochre);
  outline: none;
}


/* —— Hero (metaenergy home pattern: compact, no stats in hero) —— */

.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #1a365d;
}

.hero--compact {
  min-height: clamp(26rem, 58vh, 38rem);
  align-items: center;
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 36% 40%;
  transform: scale(1.04);
  transform-origin: 36% 40%;
  animation: hero-ken 32s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
  .hero__photo {
    animation: none;
    transform: none;
  }
}

@keyframes hero-ken {
  from {
    transform: scale(1.04) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.08) translate3d(-0.6%, 0.4%, 0);
  }
}

.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(10, 18, 32, 0.88) 0%,
    rgba(10, 18, 32, 0.62) 26%,
    rgba(10, 18, 32, 0.28) 48%,
    rgba(10, 18, 32, 0.08) 64%,
    transparent 80%
  );
}

.hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(2.5rem, 5vh, 3.25rem) var(--pad);
}

.hero__brand {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ochre);
  text-shadow: 0 1px 12px rgba(12, 24, 42, 0.35);
}

.hero__title {
  margin: 0 0 0.75rem;
  max-width: 14ch;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(2.1rem, 5.2vw, 3.4rem);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: #f9fbfd;
  text-shadow: 0 2px 24px rgba(12, 24, 42, 0.45);
}

.hero__lead {
  margin: 0 0 1.35rem;
  max-width: 34rem;
  font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  line-height: 1.4;
  color: rgba(249, 251, 253, 0.94);
  text-shadow: 0 1px 14px rgba(12, 24, 42, 0.4);
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}


/* —— Buttons —— */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.55rem 1.4rem;
  border-radius: var(--radius);
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.btn--primary {
  background: var(--cta);
  color: #fff;
  border: 1px solid var(--cta);
}

.btn--primary:hover,
.btn--primary:focus-visible {
  background: var(--cta-hover);
  border-color: var(--cta-hover);
  outline: none;
}

.btn--outline-hero {
  background: rgba(12, 24, 42, 0.35);
  color: #f9fbfd;
  border: 1px solid rgba(249, 251, 253, 0.85);
}

.btn--outline-hero:hover,
.btn--outline-hero:focus-visible {
  border-color: #fff;
  background: rgba(249, 251, 253, 0.08);
  outline: none;
}

.btn--outline {
  background: transparent;
  color: var(--brand);
  border: 1px solid var(--brand);
}

.btn--outline:hover,
.btn--outline:focus-visible {
  background: var(--brand);
  color: #fff;
  outline: none;
}


/* —— Tile grid + cards (канон: до 3 колонок, фото 4:3) —— */

.tile-grid,
.place-grid,
.venue-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.5rem;
  align-items: stretch;
}

@media (min-width: 800px) {
  .tile-grid,
  .tile-grid--cols-3,
  .place-grid,
  .venue-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--grid-gap);
  }

  .tile-grid--cols-2,
  .place-grid--home,
  .venue-grid--home {
    grid-template-columns: repeat(2, 1fr);
    max-width: calc((2 * ((100% - 1.5rem) / 2)));
    gap: 1.5rem;
  }

  .tile-grid--narrow,
  .place-grid--nearby,
  .venue-grid--narrow {
    grid-template-columns: minmax(0, 1fr);
    max-width: calc((100% - 1.5rem) / 2);
  }

  .tile-grid--stay,
  .venue-grid--stay {
    grid-template-columns: repeat(2, 1fr);
    max-width: calc((2 * ((100% - 3rem) / 3)) + 1.5rem);
  }
}

.tile-card,
.place-card,
.venue-card {
  --tile-pad-x: 1rem;
  --tile-pad-y: 0.95rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  position: relative;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(26, 54, 93, 0.06);
  padding: 0.65rem 0.65rem 0.9rem;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
}

.place-card:hover,
.venue-card:hover {
  box-shadow: 0 4px 16px rgba(26, 54, 93, 0.12);
  border-color: #b5bfcc;
}

/* клик по плитке → страница справки */
.place-card__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  color: transparent;
  font-size: 0;
  overflow: hidden;
}

.place-card a[href^="tel"],
.place-card a[href^="mailto"],
.venue-card a[href^="tel"],
.venue-card a[href^="mailto"],
.place-card__links a,
.venue-card__links a {
  position: relative;
  z-index: 2;
}

.place-card__more,
.venue-card__more {
  margin: 0;
  margin-top: auto;
  padding: 0.35rem 0.15rem 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--brand);
  position: relative;
  z-index: 0;
  pointer-events: none;
}

.place-card:hover .place-card__more,
.venue-card:hover .place-card__more,
.venue-card:hover .venue-card__more {
  color: var(--cta);
}

.place-card__figure,
.venue-card__figure {
  margin: 0;
  border-radius: 2px;
  overflow: hidden;
  background: #d5dce6;
  aspect-ratio: 4 / 3;
  flex: 0 0 auto;
  border: 1px solid rgba(26, 54, 93, 0.22);
  box-sizing: border-box;
}

.place-card__figure img,
.venue-card__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.place-card__title,
.venue-card__title,
.place-card__meta,
.venue-card__meta,
.place-card__contact,
.venue-card__contact,
.place-card__text,
.venue-card__text,
.place-card__links,
.venue-card__links,
.place-card__more,
.venue-card__more {
  padding-left: 0.15rem;
  padding-right: 0.15rem;
}

.place-card__title,
.venue-card__title {
  margin: 0.55rem 0 0;
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--brand);
  padding: 0 0.15rem;
  border-left: none;
}

.place-card__meta,
.venue-card__meta {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--muted);
  min-height: 0;
}

.place-card__contact,
.venue-card__contact {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--muted);
  min-height: 0;
}

.place-card__contact a,
.venue-card__contact a {
  color: var(--muted);
  text-decoration: none;
  border-bottom: none;
}

.place-card__contact a:hover,
.venue-card__contact a:hover {
  color: var(--cta);
  border-bottom-color: var(--cta);
}

.place-card__contact-note,
.venue-card__contact-note {
  font-weight: 400;
  color: var(--muted);
  font-size: 0.85rem;
}

.place-card__contact--empty,
.venue-card__contact--empty {
  display: none;
}

.place-card__links--empty,
.venue-card__links--empty {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}

.place-card__text,
.venue-card__text {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
  min-height: calc(0.92rem * 1.45 * 3);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.place-card__links,
.venue-card__links {
  margin: 0;
  padding-top: 0.2rem;
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.35;
}

.place-card__links a,
.place-card__link,
.venue-card__links a {
  color: var(--brand);
  text-decoration: none;
  border-bottom: 2px solid var(--ochre);
}

.place-card__links a:hover,
.place-card__link:hover,
.venue-card__links a:hover {
  color: var(--cta);
  border-bottom-color: var(--cta);
}

.go-route--wide {
  margin-bottom: 1.25rem;
  max-width: 40rem;
}

.go-map-cta {
  margin: 0 0 0.75rem;
}

.go-list__title--section {
  margin: 1.5rem 0 0.85rem;
  font-size: 1.25rem;
}

.place-index__title {
  margin: 2rem 0 0.5rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--brand);
}

.place-index {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 1;
  column-gap: 2rem;
}

@media (min-width: 800px) {
  .place-index {
    columns: 2;
  }
}

.place-index__item {
  break-inside: avoid;
  margin: 0;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.place-index__item a {
  color: var(--brand);
  text-decoration: none;
  font-weight: 700;
}

.place-index__item a:hover {
  color: var(--cta);
}

.place-index__item span {
  font-size: 0.85rem;
  color: var(--muted);
}

.go-list__title--section:first-of-type {
  margin-top: 0.35rem;
}

.go-note {
  margin: 1.75rem 0 0;
  max-width: 40rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--muted);
}

.go-list__title {
  margin: 0 0 0.75rem;
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--brand);
}


/* —— Place detail page + back bar (2026) —— */

.back-bar {
  position: sticky;
  top: var(--header-h);
  z-index: 45;
  background: rgba(249, 251, 253, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(8px);
}

.back-bar__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0.45rem var(--pad);
}

.crumbs-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
}

.crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  font-size: 0.92rem;
  color: #5b6b7c;
}

.crumbs a {
  color: var(--brand);
  font-weight: 700;
  text-decoration: none;
}

.crumbs a:hover {
  text-decoration: underline;
}

.crumbs [aria-current="page"] {
  color: var(--ink, #1a2433);
  font-weight: 600;
}

.back-bar__btn,
.btn--back {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  border: 1px solid #c8d0db;
  border-radius: 4px;
  background: #fff;
  color: var(--brand);
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.2;
  padding: 0.55rem 0.9rem;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 1px 0 rgba(26, 54, 93, 0.04);
}

.back-bar__btn:hover,
.btn--back:hover {
  border-color: var(--ochre);
  background: var(--bg-ochre);
}

.back-bar__btn:focus-visible,
.btn--back:focus-visible {
  outline: 2px solid var(--ochre);
  outline-offset: 2px;
}

.back-bar__chevron {
  font-size: 1.05em;
  line-height: 1;
}

.page-place,
body:has(.crumbs-bar) {
  --back-bar-h: 3.4rem;
  scroll-padding-top: calc(var(--header-h) + var(--back-bar-h) + 0.75rem);
}

.nav a[aria-current="page"] {
  color: var(--cta);
  border-bottom-color: var(--ochre);
}

.place-card--flash,
.venue-card.place-card--flash {
  box-shadow: 0 0 0 2px var(--ochre), 0 4px 16px rgba(26, 54, 93, 0.12);
}

.place-detail__inner {
  max-width: var(--content-detail);
}

.place-detail__title {
  margin: 0.15rem 0 0.5rem;
  font-family: var(--serif);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--brand);
}

.place-detail__meta {
  margin: 0 0 0.5rem;
  color: var(--muted);
  font-size: 1rem;
}

.place-detail__contact {
  margin: 0 0 0.85rem;
  font-weight: 700;
  color: var(--brand);
}

.place-detail__contact a {
  color: var(--brand);
  text-decoration: none;
  border-bottom: 1px solid var(--ochre);
}

.place-detail__body {
  margin: 0 0 1.5rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--text);
}

.place-detail__body p {
  margin: 0 0 1.05rem;
  max-width: 40rem;
}

.place-detail__body p:last-child {
  margin-bottom: 0;
}

.place-detail__figure {
  margin: 0 0 1.5rem;
  border: 1px solid rgba(26, 54, 93, 0.22);
  border-radius: 2px;
  overflow: hidden;
  background: #d5dce6;
}

.place-detail__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Вертикальные ролики (телефон 9:16) — пара под фото карточки */
.place-videos {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (min-width: 560px) {
  .place-videos {
    grid-template-columns: 1fr 1fr;
    gap: 1.15rem;
  }
}

.place-video {
  margin: 0;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  background: #0f1724;
  box-shadow: 0 2px 10px rgba(26, 54, 93, 0.06);
}

.place-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  max-height: min(68vh, 34rem);
  object-fit: cover;
  background: #0f1724;
  vertical-align: middle;
}

.place-video__caption {
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  background: #fff;
  border-top: 1px solid rgba(26, 54, 93, 0.1);
  font-size: 0.86rem;
  line-height: 1.35;
  color: #5b6b7c;
}

/* Фотогалерея на карточке (вертикаль 3∶4) — тот же ритм, что place-videos */
.place-gallery {
  margin: 0 0 1.75rem;
}

.place-gallery__title {
  margin: 0 0 0.85rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
}

.place-gallery__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (min-width: 560px) {
  .place-gallery__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.15rem;
  }
}

.place-gallery__item {
  margin: 0;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  background: #d5dce6;
  box-shadow: 0 2px 10px rgba(26, 54, 93, 0.06);
}

.place-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  vertical-align: middle;
}

.place-gallery__caption {
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  background: #fff;
  border-top: 1px solid rgba(26, 54, 93, 0.1);
  font-size: 0.86rem;
  line-height: 1.35;
  color: #5b6b7c;
}

.place-detail__site {
  margin: -0.75rem 0 1.5rem;
  font-weight: 700;
}

.place-detail__site a {
  color: var(--brand);
  text-decoration: none;
  border-bottom: 2px solid var(--ochre);
}

.place-detail__actions {
  margin: 1.75rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.place-detail__draft {
  margin: 1.5rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}


/* Related places on card */
.place-related {
  margin: 1.75rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--brand) 18%, transparent);
}
.place-related__title {
  margin: 0 0 0.65rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
}
.place-related__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.place-related__list li {
  margin: 0;
}
.place-related__all {
  margin: 0.85rem 0 0;
  font-size: 0.98rem;
}
.place-related__all a {
  color: var(--brand);
  font-weight: 700;
  text-underline-offset: 0.18em;
}

/* —— Footer —— */

.site-footer {
  border-top: 1px solid var(--line);
  background: #e8eef5;
  padding: 1.15rem 0 1.35rem;
}

.site-footer__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.site-footer__mark {
  margin: 0 0 0.3rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  align-items: baseline;
}

.site-footer__place {
  font-family: var(--serif);
  font-weight: 700;
  color: var(--brand);
}

.site-footer__brand {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--shutter);
}

.site-footer__contact {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  color: var(--muted);
}

.site-footer__contact a {
  color: var(--brand);
  font-weight: 700;
  text-underline-offset: 0.15em;
}

.siamz-band__title-link {
  color: inherit;
  text-decoration: none;
}

.siamz-band__title-link:hover,
.siamz-band__title-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.siamz-band__figure a {
  display: block;
  height: 100%;
  color: inherit;
}

.site-footer__proto {
  margin: 0 0 0.85rem;
  font-size: 0.85rem;
  color: var(--muted);
}

.site-footer__note {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.35;
}

.site-footer__credit {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  color: color-mix(in srgb, var(--muted) 88%, transparent);
  line-height: 1.35;
}

.site-footer__credit a {
  color: inherit;
  text-underline-offset: 0.15em;
}

.site-footer__credit a:hover,
.site-footer__credit a:focus-visible {
  color: var(--brand);
}

.site-footer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.75rem;
}

.site-footer__support {
  margin: 0;
  flex: 0 0 auto;
}

.site-footer__support-btn {
  display: inline-block;
  padding: 0.42rem 1rem;
  line-height: 1.35;
  border-radius: 4px;
  background: var(--cta);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(197, 43, 35, 0.18);
}

.site-footer__support-btn:hover,
.site-footer__support-btn:focus-visible {
  color: #fff;
  background: color-mix(in srgb, var(--cta) 88%, #000);
}

.site-footer__nav {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.86rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.4rem;
  align-items: center;
  line-height: 1.45;
}

.site-footer__nav span[aria-hidden="true"] {
  color: color-mix(in srgb, var(--muted) 55%, transparent);
  user-select: none;
  pointer-events: none;
}


/* —— Page tools: copy link + back to top —— */

.page-tools {
  position: fixed;
  right: max(0.75rem, env(safe-area-inset-right));
  bottom: max(0.85rem, env(safe-area-inset-bottom));
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  pointer-events: none;
}

.page-copy,
.page-top {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--line) 85%, var(--brand));
  border-radius: 999px;
  background: rgba(249, 251, 253, 0.96);
  color: var(--brand);
  box-shadow: 0 4px 16px rgba(26, 54, 93, 0.12);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.page-top {
  font-family: var(--sans);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
}

.page-copy:hover,
.page-copy:focus-visible,
.page-top:hover,
.page-top:focus-visible {
  background: #fff;
  border-color: color-mix(in srgb, var(--ochre) 55%, var(--brand));
  outline: none;
}

.page-copy.is-copied,
.page-top.is-copied,
.block-share.is-copied {
  background: color-mix(in srgb, var(--ochre) 22%, #fff);
  border-color: var(--ochre);
}

.page-copy__icon {
  display: block;
}

.block-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  flex-wrap: wrap;
}

.block-heading__text {
  flex: 1 1 auto;
  min-width: 0;
}

.block-share {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--line) 85%, var(--brand));
  border-radius: 999px;
  background: rgba(249, 251, 253, 0.96);
  color: color-mix(in srgb, var(--muted) 45%, var(--brand));
  box-shadow: 0 2px 8px rgba(26, 54, 93, 0.08);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.block-share:hover,
.block-share:focus-visible {
  background: #fff;
  color: var(--brand);
  border-color: color-mix(in srgb, var(--ochre) 55%, var(--brand));
  outline: none;
}

.block-share__icon {
  display: block;
}

.block-heading,
[id].section,
[id].about-story,
[id].about-chronicle,
[id].about-intro,
[id].go-block,
[id].place-church,
[id].residents-done,
[id].church-card,
[id].route-card,
[id].hub-door,
[id].hub-tile {
  scroll-margin-top: calc(var(--header-h) + 1rem);
}

[id].club-segment,
[id].club-routes__cta,
[id].section--club-routes,
[id].section--routes-more {
  scroll-margin-top: calc(var(--header-h) + 1rem);
}

body:has(.back-bar) [id].section,
body:has(.back-bar) .block-heading,
body:has(.back-bar) [id].go-block,
body:has(.back-bar) [id].about-story,
body:has(.back-bar) [id].about-chronicle,
body:has(.back-bar) [id].about-intro,
body:has(.back-bar) [id].place-church,
body:has(.back-bar) [id].residents-done,
body:has(.back-bar) [id].church-card,
body:has(.back-bar) [id].route-card {
  scroll-margin-top: calc(var(--header-h) + var(--back-bar-h, 3.4rem) + 0.75rem);
}


/* —— О станице: одна колонка текста, план внутри потока —— */

.page-about .section--about {
  padding-bottom: clamp(2.5rem, 6vh, 4rem);
}

.about-body {
  margin-bottom: clamp(2rem, 4vh, 3rem);
}

.about-intro {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  margin-bottom: clamp(2.25rem, 5vh, 3.5rem);
}

.about-intro--text {
  display: block;
  max-width: 52rem;
}

@media (min-width: 880px) {
  .about-intro:not(.about-intro--text) {
    grid-template-columns: minmax(18rem, 0.95fr) minmax(22rem, 1.25fr);
    gap: clamp(2rem, 4.5vw, 3.25rem);
    align-items: start;
  }
}

.about-intro__copy {
  max-width: 36rem;
  padding-top: 0.15rem;
}

.about-intro__copy .section__title {
  margin-bottom: 0.55rem;
  max-width: none;
}

.about-intro__figure {
  margin: 0;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  background: #d5dce6;
}

.about-intro__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.about-intro__figure figcaption,
.about-block__figure figcaption,
.place-detail__figure figcaption {
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  background: #fff;
  font-size: 0.82rem;
  line-height: 1.35;
  color: #5b6b7c;
}

.about-block {
  max-width: none;
}

.about-block__geo {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--brand);
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.about-block__lead {
  margin: 0;
  max-width: none;
  font-size: 1.12rem;
  line-height: 1.65;
  color: var(--text);
}

.about-block__figure {
  margin: 0 0 1.5rem;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  background: #d5dce6;
}

.about-block__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.about-story {
  margin: 0 0 3rem;
  padding-top: 0.25rem;
  padding-bottom: 0.5rem;
  max-width: none;
}

.about-story__prose,
.about-block__prose {
  max-width: none;
  margin: 0;
}

.about-block__prose p,
.about-story__prose p {
  margin: 0 0 1.15rem;
  font-size: 1.06rem;
  line-height: 1.72;
  color: var(--text);
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.about-block__prose p:last-child,
.about-story__prose p:last-child {
  margin-bottom: 0;
}

.plan-lightbox {
  width: min(96vw, 72rem);
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 0;
  background: #f4f1ea;
  color: var(--text);
}

.plan-lightbox::backdrop {
  background: rgba(12, 24, 40, 0.72);
}

.plan-lightbox__bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid rgba(26, 54, 93, 0.12);
  background: #fff;
}

.plan-lightbox__title {
  margin: 0;
  font-family: var(--sans);
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--brand);
}

.plan-lightbox__close {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(26, 54, 93, 0.18);
  border-radius: 2px;
  background: #fff;
  color: var(--brand);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.plan-lightbox__close:hover,
.plan-lightbox__close:focus-visible {
  background: var(--brand);
  color: #fff;
}

.plan-lightbox__scroll {
  overflow: auto;
  max-height: min(82vh, 52rem);
  padding: 0.5rem;
  background: #f4f1ea;
  -webkit-overflow-scrolling: touch;
}

.plan-lightbox__scroll img {
  display: block;
  width: auto;
  max-width: none;
  height: auto;
  margin: 0 auto;
}

body.plan-lightbox-open {
  overflow: hidden;
}

.about-historic {
  margin: 0 auto 3rem;
  padding-top: clamp(1.75rem, 4vh, 2.5rem);
  border-top: 1px solid rgba(26, 54, 93, 0.12);
  scroll-margin-top: calc(var(--header-h) + 3.5rem);
}

.about-historic__title {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 700;
  color: var(--brand);
}

.about-historic__lead {
  margin: 0 0 1.25rem;
  max-width: 46rem;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--muted);
}

.about-historic__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .about-historic__grid {
    grid-template-columns: 1.35fr 1fr 1fr;
    gap: 1.15rem;
    align-items: stretch;
  }

  .about-historic__item--hero {
    grid-row: span 1;
  }

  .about-historic__item--hero img {
    height: 22rem;
  }
}

.about-historic__grid figure {
  margin: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  background: #efe8d8;
}

.about-historic__grid img {
  display: block;
  width: 100%;
  height: 16rem;
  object-fit: contain;
  background: #e4d9c4;
  border-bottom: 1px solid rgba(26, 54, 93, 0.12);
}

.about-historic__grid figcaption {
  margin: 0;
  padding: 0.55rem 0.7rem 0.7rem;
  background: #fff;
  font-size: 0.84rem;
  line-height: 1.4;
  color: #334556;
  flex: 0 0 auto;
}

.about-historic__credit {
  margin: 1rem 0 0;
  max-width: 52rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #4a5b6c;
}

.about-chronicle {
  margin: 0 auto;
  padding-top: clamp(2rem, 4.5vh, 2.75rem);
  border-top: 1px solid rgba(26, 54, 93, 0.12);
}

.about-chronicle__head {
  margin-bottom: clamp(1rem, 2.5vh, 1.35rem);
}

.about-chronicle__head .section__eyebrow {
  margin-bottom: 0.4rem;
}

.about-chronicle__title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 700;
  color: var(--brand);
}

.about-timeline.about-timeline--chronicle {
  list-style: none;
  margin: 0;
  padding: clamp(0.35rem, 1.5vw, 0.65rem) clamp(1rem, 2.5vw, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  max-width: none;
  grid-template-columns: none;
}

@media (min-width: 768px) {
  .about-timeline.about-timeline--chronicle {
    padding: clamp(0.5rem, 1.5vw, 0.85rem) clamp(1.25rem, 3vw, 2rem);
  }
}

@media (min-width: 720px) {
  .about-timeline.about-timeline--chronicle {
    grid-template-columns: none;
  }
}

@media (min-width: 1100px) {
  .about-timeline.about-timeline--chronicle {
    grid-template-columns: none;
  }
}

.about-timeline.about-timeline--chronicle .about-timeline__item {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(26, 54, 93, 0.08);
  grid-template-columns: none;
}

.about-timeline.about-timeline--chronicle .about-timeline__item:last-child {
  border-bottom: none;
}

.about-timeline.about-timeline--chronicle .about-timeline__head {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.about-timeline.about-timeline--chronicle {
  --tl-year-w: 9.75rem;
}

.about-timeline.about-timeline--chronicle .about-timeline__year {
  flex: 0 0 var(--tl-year-w);
  width: var(--tl-year-w);
  position: relative;
  padding-left: 0.9rem;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--brand);
  white-space: nowrap;
}

.about-timeline.about-timeline--chronicle .about-timeline__year::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 1px;
  background: var(--ochre);
  transform: rotate(45deg);
}

.about-timeline.about-timeline--chronicle .about-timeline__text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.98rem;
  line-height: 1.5;
  color: var(--text);
  font-weight: 700;
}

.about-timeline.about-timeline--chronicle .about-timeline__detail {
  margin: 0.45rem 0 0;
  padding: 0 0 0.15rem calc(var(--tl-year-w) + 0.85rem);
}

.about-timeline.about-timeline--chronicle .about-timeline__detail p {
  margin: 0;
  max-width: 52rem;
  font-size: 0.95rem;
  line-height: 1.62;
  color: var(--muted);
  text-align: left;
  hyphens: none;
  -webkit-hyphens: none;
}

.about-timeline.about-timeline--chronicle .about-timeline__photo {
  margin: 0.75rem 0 0.15rem calc(var(--tl-year-w) + 0.85rem);
  max-width: min(28rem, 100%);
  padding: 0;
}

.about-timeline.about-timeline--chronicle .about-timeline__photo a {
  display: block;
  line-height: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(26, 54, 93, 0.12);
}

.about-timeline.about-timeline--chronicle .about-timeline__photo img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.about-timeline.about-timeline--chronicle .about-timeline__photo figcaption {
  margin: 0.4rem 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--muted);
}

.about-timeline.about-timeline--chronicle .about-timeline__photo figcaption a {
  color: var(--brand);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

@media (max-width: 560px) {
  .about-timeline.about-timeline--chronicle .about-timeline__head {
    flex-wrap: wrap;
    row-gap: 0.35rem;
  }

  .about-timeline.about-timeline--chronicle .about-timeline__year {
    width: auto;
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .about-timeline.about-timeline--chronicle .about-timeline__text {
    flex: 1 1 100%;
  }

  .about-timeline.about-timeline--chronicle .about-timeline__detail {
    padding: 0.35rem 0 0 1.25rem;
  }

  .about-timeline.about-timeline--chronicle .about-timeline__photo {
    margin-left: 1.25rem;
    max-width: calc(100% - 1.25rem);
  }
}

.about-chronicle__foot {
  padding: 0.85rem clamp(1rem, 2.5vw, 1.5rem) 1.1rem;
  border-top: 1px solid rgba(26, 54, 93, 0.08);
  background: var(--bg-soft);
}

.about-chronicle__foot .about-page__links {
  margin: 0;
  font-size: 0.95rem;
}

.about-timeline {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: grid;
  gap: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

@media (min-width: 720px) {
  .about-timeline {
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(1.5rem, 3vw, 2.75rem);
    row-gap: 0;
  }
}

@media (min-width: 1100px) {
  .about-timeline {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.about-timeline__item {
  display: grid;
  grid-template-columns: minmax(6.75rem, 7.75rem) 1fr;
  gap: 0.65rem;
  align-items: start;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(26, 54, 93, 0.1);
}

.about-timeline__item:last-child {
  border-bottom: 1px solid rgba(26, 54, 93, 0.1);
}

.about-timeline__year {
  display: block;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 0.98rem;
  line-height: 1.3;
  color: var(--brand);
}

.about-timeline__text {
  display: block;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--muted);
}

.about-page__links {
  margin: 1.75rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: center;
  font-size: 1.02rem;
  line-height: 1.55;
}

.about-page__links a {
  color: var(--brand);
  font-weight: 700;
  text-underline-offset: 0.18em;
}

.about-block .btn {
  margin-top: 0.15rem;
}


/* —— Multi-page hub (0.6.2) —— */

.page-hub .section--after-hero {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}

.hub-doors {
  display: grid;
  gap: 1.15rem;
  margin-top: 0.85rem;
}

@media (min-width: 800px) {
  .hub-doors {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1.35rem;
    align-items: stretch;
  }

  .hub-door--guest {
    grid-column: 1;
    grid-row: 1 / -1;
  }
}

.hub-door {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 13.5rem;
  padding: 1.5rem 1.4rem 1.35rem;
  text-decoration: none;
  border-radius: 4px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.hub-door__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

.hub-door__kicker {
  align-self: flex-start;
  display: inline-block;
  padding: 0.3rem 0.6rem;
  border-radius: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--ochre);
  color: var(--brand);
  box-shadow: 0 1px 4px rgba(10, 18, 32, 0.22);
}

.hub-door__title {
  font-family: var(--serif);
  font-size: clamp(1.65rem, 2.75vw, 2rem);
  font-weight: 700;
  line-height: 1.15;
}

.hub-door__text {
  font-size: 0.98rem;
  line-height: 1.45;
  flex: 1;
}

.hub-door__more {
  margin-top: 0.4rem;
  font-weight: 700;
}

.hub-door--guest {
  color: #f9fbfd;
  border-top: 4px solid var(--ochre);
  min-height: 16rem;
  box-shadow: 0 4px 18px rgba(26, 54, 93, 0.18);
}

.hub-door--guest::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    rgba(10, 18, 32, 0.28) 0%,
    rgba(10, 18, 32, 0.55) 42%,
    rgba(10, 18, 32, 0.82) 100%
  );
}

.hub-door--guest .hub-door__kicker {
  color: var(--brand);
  background: var(--ochre);
}

.hub-door--guest .hub-door__title,
.hub-door--guest .hub-door__more {
  color: #fff;
}

.hub-door--guest .hub-door__text {
  color: rgba(249, 251, 253, 0.88);
}

.hub-door--about {
  color: #f9fbfd;
  border-top: 4px solid var(--ochre);
  min-height: 0;
  box-shadow: 0 4px 18px rgba(26, 54, 93, 0.14);
}

.hub-door--about::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    rgba(10, 18, 32, 0.48) 0%,
    rgba(10, 18, 32, 0.72) 45%,
    rgba(10, 18, 32, 0.92) 100%
  );
}

.hub-door--about .hub-door__kicker {
  color: var(--brand);
  background: var(--ochre);
}

.hub-door--about .hub-door__title,
.hub-door--about .hub-door__more {
  color: #fff;
}

.hub-door--about .hub-door__text {
  color: rgba(249, 251, 253, 0.88);
}

.hub-door--resident {
  background: var(--brand);
  border-top: 4px solid var(--ochre);
  color: #f9fbfd;
  min-height: 0;
}

.hub-door--resident .hub-door__kicker {
  color: var(--brand);
  background: var(--ochre);
}

.hub-door--resident .hub-door__text {
  color: rgba(249, 251, 253, 0.82);
}

.hub-door:hover .hub-door__more {
  color: var(--ochre);
}

.hub-tiles {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 800px) {
  .hub-tiles {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
}

.hub-tile {
  margin: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  overflow: hidden;
  min-height: 12rem;
  box-shadow: 0 2px 10px rgba(26, 54, 93, 0.06);
}

.hub-tile__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  color: transparent;
  font-size: 0;
}

.hub-tile__figure {
  margin: 0;
  aspect-ratio: 4 / 3;
  background: #d5dce6;
  overflow: hidden;
}

.hub-tile__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hub-tile--go .hub-tile__figure img {
  object-position: 50% 55%;
}

.about-block__figure.go-figure img {
  aspect-ratio: 4 / 3;
  object-position: 50% 50%;
}

.hub-tile__title {
  margin: 0.85rem 1rem 0.35rem;
  font-family: var(--serif);
  font-size: 1.32rem;
  font-weight: 700;
  color: var(--brand);
}

.hub-tile__text {
  margin: 0 1rem 1.25rem;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.4;
  flex: 1;
}

.hub-tile__more {
  margin: 0.7rem 1rem 1rem;
  font-weight: 700;
  color: var(--brand);
}

.hub-tile:hover .hub-tile__more {
  color: var(--cta);
}

.plaque__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.hub-event {
  margin: 0;
  padding: 1.15rem 0 0;
  border-top: 3px solid var(--ochre);
  max-width: 36rem;
}

.hub-event__when,
.hub-event__place {
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--brand);
}

.hub-event__title {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: 1.45rem;
  color: var(--brand);
}

.guest-rules {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.guest-rules li {
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-left: 3px solid var(--ochre);
}

.go-blocks {
  display: grid;
  gap: 1rem;
  margin: 1.75rem 0 0;
}

.go-block {
  padding: 1.1rem 1.15rem 1.05rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
}

.go-block h2 {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: 1.2rem;
  color: var(--brand);
}

.go-block p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.go-block p + p {
  margin-top: 0.65rem;
}

.route-grid,
.event-list,
.resident-grid {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
  align-items: stretch;
}

/* Рейсы: 3 карточки — не 2+дыра; на узком одна колонка */
@media (min-width: 900px) {
  .route-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 800px) {
  .resident-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.route-card,
.event-card,
.resident-card {
  margin: 0;
  position: relative;
  min-width: 0;
  height: 100%;
  padding: 1.2rem 1.15rem 1.1rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  box-sizing: border-box;
}

.route-card__meta {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--shutter);
}

.route-card__title {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  color: var(--brand);
}

.route-card__text {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.45;
  flex: 1 1 auto;
}

.route-card .place-card__more {
  margin-top: auto;
  padding-top: 0.5rem;
}

.route-card__stops {
  margin: 0.35rem 0 0.2rem;
  padding-left: 1.15rem;
  color: var(--text);
  font-size: 0.92rem;
}

/* —— Hub news —— */

.section--news {
  background: var(--bg-soft);
}

.news-list {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.news-card {
  margin: 0;
  padding: 1.1rem 1.15rem 1.05rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
}

.news-card__meta {
  margin: 0 0 0.45rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  font-size: 0.88rem;
  color: var(--muted);
}

.news-card__date {
  font-weight: 700;
  color: var(--brand);
}

.news-source {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--bg-soft);
  color: var(--brand);
}

.news-source--tg {
  background: rgba(74, 144, 226, 0.14);
  color: #1a4a7a;
}

.news-source--max {
  background: rgba(226, 165, 74, 0.18);
  color: #7a4a12;
}

.news-source--admin {
  background: rgba(26, 54, 93, 0.1);
  color: var(--brand);
}

.news-card__title {
  margin: 0 0 0.4rem;
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.8vw, 1.15rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--brand);
}

.news-card__title a {
  color: inherit;
  text-decoration: none;
}

.news-card__title a:hover,
.news-card__title a:focus-visible {
  color: var(--cta);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.news-card__lead {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.news-card__more {
  margin: 0.75rem 0 0;
  font-weight: 700;
  font-size: 0.92rem;
}

.news-card__more a {
  color: var(--brand);
  text-decoration: none;
  border-bottom: 2px solid var(--ochre);
}

.news-card__more a:hover {
  color: var(--cta);
  border-bottom-color: var(--cta);
}



/* FAQ quick links on hub */
.section--faq {
  padding-block: 1.5rem 0.5rem;
}
.section--faq .about-page__links {
  margin-top: 0.85rem;
}

/* —— News detail page —— */

.news-detail__inner {
  max-width: 42rem;
}

.news-detail__meta {
  margin: 0.35rem 0 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.news-detail__date {
  font-weight: 700;
  color: var(--brand);
}

.news-detail__title {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3.2vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--brand);
}

.news-detail__tags {
  margin: 0 0 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.news-detail__figure {
  margin: 0 0 1.25rem;
}

.news-detail__figure img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #c8d0db;
  border-radius: 4px;
  background: #fff;
}

.news-detail__body {
  margin: 0 0 1.5rem;
}

.news-detail__body p {
  margin: 0 0 0.9rem;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--text);
}

.news-detail__body p:last-child {
  margin-bottom: 0;
}

.news-detail__source {
  margin: 0 0 1.5rem;
  padding: 0.95rem 1.05rem;
  background: var(--bg-soft);
  border: 1px solid #c8d0db;
  border-left: 3px solid var(--ochre);
  border-radius: 4px;
}

.news-detail__source-label {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.news-detail__source-row {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
}

.news-detail__source-row a {
  color: var(--brand);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px solid var(--ochre);
}

.news-detail__source-row a:hover {
  color: var(--cta);
  border-bottom-color: var(--cta);
}

.news-detail__actions {
  margin-top: 0.5rem;
}

/* —— News archive /news —— */

.news-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 1.15rem 0 0;
}

.news-tags__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid #c8d0db;
  border-radius: 999px;
  background: #fff;
  color: var(--brand);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.2;
}

.news-tags__chip:hover,
.news-tags__chip:focus-visible {
  border-color: var(--ochre);
  color: var(--cta);
}

.news-tags__chip.is-active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.news-tags__count {
  font-size: 0.78rem;
  font-weight: 700;
  opacity: 0.75;
}

.news-list--archive {
  margin-top: 1.35rem;
}

.news-card--photo {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.85rem;
  padding: 0;
  overflow: hidden;
}

@media (min-width: 640px) {
  .news-card--photo {
    grid-template-columns: 11rem minmax(0, 1fr);
    align-items: stretch;
  }
}

.news-card__thumb {
  display: block;
  background: #e8edf2;
}

.news-card__thumb img {
  width: 100%;
  height: 100%;
  min-height: 9rem;
  object-fit: cover;
  display: block;
}

.news-card__body {
  padding: 0;
}

.news-card--photo .news-card__body {
  padding: 1rem 1.05rem 1.05rem;
}

.news-card__tags {
  margin: 0 0 0.35rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.news-card__tag {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted);
}

.news-hub__all {
  margin: 1.15rem 0 0;
}

.news-hub__all a {
  color: var(--brand);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px solid var(--ochre);
}

.news-hub__all a:hover {
  color: var(--cta);
  border-bottom-color: var(--cta);
}

.event-card__figure {
  margin: 0 0 0.55rem;
}

.event-card__figure img {
  width: 100%;
  height: auto;
  max-height: 22rem;
  object-fit: cover;
  display: block;
  border: 1px solid #c8d0db;
  border-radius: 3px;
  background: #fff;
}

.event-card--photo {
  padding-top: 0.85rem;
}

/* News-as-events on /events */
.afisha-from-news {
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
}
.afisha-from-news__title {
  margin: 0 0 0.35rem;
  font-family: var(--serif);
  font-size: 1.45rem;
  color: var(--brand);
}
.section__lead--tight {
  margin-bottom: 1rem;
}
.event-card--link {
  position: relative;
}
.event-card__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  text-indent: -9999px;
  overflow: hidden;
}
.event-card__lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--muted);
}
.afisha-from-news__all {
  margin: 1rem 0 0;
  font-weight: 700;
}
.afisha-from-news__all a {
  color: var(--brand);
  text-underline-offset: 0.18em;
}

/* —— Клуб друзей: экскурсии на /routes и /events —— */

.section--club-routes {
  padding-top: clamp(0.5rem, 2vh, 1rem);
  padding-bottom: clamp(2rem, 5vh, 3rem);
  background: linear-gradient(
    180deg,
    rgba(232, 238, 245, 0.55) 0%,
    rgba(232, 238, 245, 0.15) 100%
  );
}

.section--routes-more,
.section--events-more,
.section--market-shops {
  padding-top: clamp(1.75rem, 4vh, 2.5rem);
  padding-bottom: clamp(2.5rem, 6vh, 4rem);
  border-top: 1px solid var(--line);
}


/* —— /market: продуктовый рынок сверху, магазины ниже —— */

.market-fair.panel--split {
  margin-top: 1.35rem;
}

.market-fair__copy {
  min-width: 0;
}

.market-fair__summary {
  margin: 0.65rem 0 0;
  font-size: 1rem;
  line-height: 1.45;
}

.market-fair__body {
  margin-top: 0.55rem;
}

.market-fair__body p {
  margin: 0.45rem 0 0;
}

.market-fair__cta {
  margin: 1rem 0 0;
}

.events-more__links {
  margin: 1.5rem 0 0;
}

.routes-more__title {
  margin: 0 0 1.25rem;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  line-height: 1.2;
  color: var(--brand);
}

.club-segment__label {
  display: inline;
}

.club-routes__title {
  margin: 0 0 0.75rem;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  line-height: 1.2;
  color: var(--brand);
}

.club-routes__lead {
  max-width: 42rem;
  margin-bottom: 0.65rem;
}

.club-routes__note {
  margin: 0 0 1.75rem;
  max-width: 42rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted);
}

.club-segment {
  margin-bottom: clamp(1.75rem, 4vh, 2.5rem);
}

.club-segment__title {
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.2vw, 1.45rem);
  font-weight: 700;
  color: var(--brand);
}

.club-excursion-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 720px) {
  .club-excursion-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* одна карточка в последнем ряду — половина ширины, не на всю */
  .club-excursion-grid > li:last-child:nth-child(odd) {
    max-width: calc((100% - 1rem) / 2);
  }
}

@media (min-width: 1100px) {
  /* ровно 3 программы в сегменте — три равные колонки */
  .club-excursion-grid:has(> li:nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .club-excursion-grid:has(> li:nth-child(3):last-child) > li:last-child:nth-child(odd) {
    max-width: none;
  }
}

.club-excursion-card {
  margin: 0;
  position: relative;
  min-width: 0;
  height: 100%;
  padding: 1.15rem 1.1rem 1.05rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-left: 3px solid var(--ochre);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  box-sizing: border-box;
}

.club-excursion-card:hover {
  box-shadow: 0 4px 16px rgba(26, 54, 93, 0.12);
  border-color: #b5bfcc;
}

.club-excursion-card__more {
  margin: 0;
  margin-top: auto;
  padding: 0.35rem 0.15rem 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--brand);
  pointer-events: none;
}

.club-excursion-card:hover .club-excursion-card__more {
  color: var(--cta);
}

.club-excursion-card__title {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.12rem;
  line-height: 1.25;
  color: var(--brand);
  min-height: calc(1.25em * 2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.club-excursion-card__text {
  margin: 0;
  flex: 1 1 auto;
  font-size: 0.93rem;
  line-height: 1.48;
  color: var(--text);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

.club-excursion-card__price {
  margin: 0.15rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.55rem;
}

.club-excursion-card__amount {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--brand);
}

.club-excursion-card__unit,
.club-excursion-card__group {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--shutter);
}

.club-excursion-card__group {
  flex-basis: 100%;
  color: var(--muted);
  font-weight: 600;
}

.club-routes__cta {
  margin-top: 0.5rem;
  padding: 1.35rem 1.25rem 1.2rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--brand);
  border-radius: 4px;
}

.club-routes__booking {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  color: var(--text);
}

.club-routes__contacts {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 700;
}

.club-routes__contacts a {
  color: var(--brand);
}

.club-routes__closing {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.05rem;
  color: var(--brand);
}

.resident-grid {
  margin: 1.75rem 0;
}

.resident-card {
  overflow: hidden;
  background: rgba(249, 251, 253, 0.08);
  border-color: rgba(249, 251, 253, 0.18);
  color: #f9fbfd;
}

.resident-card h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.25rem;
}

.resident-card .block-share {
  background: rgba(249, 251, 253, 0.1);
  border-color: rgba(249, 251, 253, 0.28);
  color: rgba(249, 251, 253, 0.92);
  box-shadow: none;
}

.resident-card .block-share:hover,
.resident-card .block-share:focus-visible {
  background: rgba(249, 251, 253, 0.18);
  border-color: rgba(249, 251, 253, 0.45);
  color: #fff;
}

.residents-done .block-share {
  background: rgba(249, 251, 253, 0.96);
}

.resident-card p {
  margin: 0;
  color: rgba(249, 251, 253, 0.82);
  font-size: 0.95rem;
  line-height: 1.45;
}

.resident-card__media {
  margin: -1.2rem -1.15rem 0.55rem;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #1a365d;
  flex: 0 0 auto;
}

.resident-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.residents-shops-title {
  margin: 2rem 0 0;
  font-family: var(--serif);
  font-size: 1.45rem;
  color: #f9fbfd;
}

.resident-card a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.resident-card a:hover {
  color: var(--ochre);
}

.page-hub .hero--compact {
  min-height: clamp(18rem, 42vh, 28rem);
}

@media (min-width: 800px) {
  .resident-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 820px) {
  .hub-door--guest {
    min-height: 14.5rem;
  }

  .hub-door--about,
  .hub-door--resident {
    min-height: 10.5rem;
  }

  .page-hub .section--see {
    padding-top: 1.5rem;
  }

  .page-hub .hero--compact {
    min-height: 0;
  }
}


/* —— Residents —— */

.residents-done {
  margin: 1.75rem 0 0;
}

.residents-done__grid {
  margin-bottom: 0;
}

.residents-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(249, 251, 253, 0.18);
}

.residents-cta__note {
  margin: 0;
  font-size: 0.88rem;
  color: rgba(249, 251, 253, 0.7);
}


/* —— App→site: храмы, пристань, мы сделали, такси —— */

.place-church,
.church-card {
  margin: 0 0 1.5rem;
  max-width: none;
  padding: 1rem 1.1rem 1.15rem;
  background: #fff;
  border: 1px solid #c8d0db;
  border-top: 3px solid var(--ochre);
  border-radius: 4px;
}

.place-church__title,
.church-card__title {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--brand);
}

.church-card__title a {
  color: inherit;
  text-decoration: none;
}

.church-card__title a:hover {
  color: var(--cta);
  text-decoration: underline;
}

.church-card__meta,
.place-church__hours,
.church-card__hours {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  color: var(--muted);
}

.church-card__stale {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  color: #8a5a12;
}

.church-card__note {
  margin: 0.65rem 0 0;
  font-size: 0.9rem;
  color: var(--muted);
}

.church-card__site,
.place-church__more {
  margin: 0.75rem 0 0;
  font-size: 0.95rem;
}

.church-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.15rem;
}

@media (min-width: 900px) {
  .church-list {
    grid-template-columns: 1fr 1fr;
  }
}

.church-schedule-wrap {
  margin: 0.65rem 0 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.church-schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
  line-height: 1.4;
}

.church-schedule-table th,
.church-schedule-table td {
  padding: 0.45rem 0.55rem;
  border-bottom: 1px solid rgba(26, 54, 93, 0.12);
  text-align: left;
  vertical-align: top;
}

.church-schedule-table th {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom-color: rgba(26, 54, 93, 0.22);
}

.church-schedule-table__when {
  font-weight: 700;
  color: var(--brand);
  white-space: nowrap;
  min-width: 8.5rem;
}

.church-schedule-table__time {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--brand);
  white-space: nowrap;
  width: 4.5rem;
}

.church-schedule-table__title {
  color: var(--text);
}

.church-schedule-table__feast {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.85rem;
  color: var(--muted);
}

.church-schedule-fig {
  margin: 0.65rem 0 0;
}

.church-schedule-fig img {
  width: 100%;
  height: auto;
  max-height: 22rem;
  object-fit: contain;
  background: #eef3f8;
  border: 1px solid #c8d0db;
}

.go-ships-regular {
  margin: 0.85rem 0 0;
}

.go-ships-regular__head {
  margin: 0 0 0.5rem;
}

.go-ships-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
  margin: 0 0 0.65rem;
}

.go-ships-table th,
.go-ships-table td {
  text-align: left;
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid rgba(26, 54, 93, 0.12);
  vertical-align: top;
}

.go-bus {
  margin: 0.85rem 0 0;
}

.go-bus__route {
  margin: 0 0 0.45rem;
}

.go-bus__next {
  margin: 0 0 0.65rem;
  font-size: 0.98rem;
  color: var(--brand);
  font-weight: 700;
}

.go-bus-table__next td {
  background: rgba(196, 140, 58, 0.14);
  font-weight: 700;
}

.go-bus__note {
  margin: 0.55rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  max-width: 40rem;
}

.go-ships-upcoming {
  margin: 1rem 0 0;
}

.go-ships-upcoming__title {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-size: 1.1rem;
  color: var(--brand);
}

.go-ships-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.go-ships-list li {
  display: grid;
  grid-template-columns: 7.5rem 1fr auto;
  gap: 0.5rem;
  font-size: 0.92rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(26, 54, 93, 0.08);
}

@media (max-width: 560px) {
  .go-ships-list li {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

.go-ships-list__date {
  font-weight: 700;
  color: var(--brand);
}

.go-ships-note {
  margin: 0.55rem 0 0;
  font-size: 0.9rem;
}

.go-taxi-list {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
}

.go-taxi-list li {
  margin: 0 0 0.35rem;
}

.residents-done {
  margin: 1.75rem 0 0;
  padding-bottom: 0.25rem;
}

.residents-done__title {
  margin: 0 0 0.35rem;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  color: #f9fbfd;
}

.residents-done__lead {
  margin: 0 0 1rem;
  color: rgba(249, 251, 253, 0.82);
  max-width: 40rem;
}

.residents-done__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

@media (min-width: 800px) {
  .residents-done__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.residents-done__card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(249, 251, 253, 0.18);
  border-radius: 4px;
  padding: 0.85rem;
}

.residents-done__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin: 0 0 0.65rem;
}

.residents-done__photos figure {
  margin: 0;
}

.residents-done__photos img {
  width: 100%;
  height: 7.5rem;
  object-fit: cover;
  border-radius: 2px;
  background: #d5dce6;
}

.residents-done__photos figcaption {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: rgba(249, 251, 253, 0.7);
}

.residents-done__addr {
  margin: 0 0 0.25rem;
  font-weight: 700;
  color: #f9fbfd;
  font-size: 0.95rem;
}

.residents-done__text {
  margin: 0;
  color: rgba(249, 251, 253, 0.88);
  font-size: 0.92rem;
  line-height: 1.45;
}

/* Short answer + CTAs on /go */
.go-answer {
  margin: 1rem 0 1.25rem;
  padding: 1rem 1.15rem;
}
.go-answer__lead {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  line-height: 1.5;
}
.go-answer .about-page__links {
  margin: 0;
}

/* —— Mobile —— */

@media (max-width: 820px) {
  :root {
    --header-h: 4.5rem;
  }

  .brand__seal {
    width: 3.25rem;
    height: 3.25rem;
  }

  .nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0.5rem var(--pad) 0.85rem;
    background: rgba(249, 251, 253, 0.98);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 8px 20px rgba(26, 54, 93, 0.08);
    font-size: 1.05rem;
    max-width: none;
  }

  .nav--open {
    display: flex;
  }

  .nav a {
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--line);
  }

  .site-header__inner {
    position: relative;
    flex-wrap: nowrap;
  }

  .hero--compact {
    min-height: 0;
    align-items: flex-end;
  }

  .hero__content {
    padding: 1.75rem var(--pad) 1.5rem;
  }

  .hero__media::after {
    background: linear-gradient(
      180deg,
      rgba(10, 18, 32, 0.42) 0%,
      rgba(10, 18, 32, 0.5) 34%,
      rgba(10, 18, 32, 0.78) 78%,
      rgba(10, 18, 32, 0.86) 100%
    );
  }

  .hero__photo {
    object-position: 28% 44%;
  }

  .hero__brand {
    margin-bottom: 0.45rem;
  }

  .hero__title {
    margin-bottom: 0.5rem;
    font-size: clamp(1.7rem, 7.5vw, 2.15rem);
  }

  .hero__lead {
    margin-bottom: 1rem;
    font-size: 0.98rem;
    line-height: 1.35;
  }

  .hero__cta {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.65rem;
  }

  .hero__cta .btn {
    width: auto;
    min-height: 2.5rem;
    padding: 0.45rem 1.1rem;
    font-size: 0.95rem;
  }

  .section--after-hero {
    padding-top: 1.5rem;
    padding-bottom: 2rem;
  }

  .site-footer__bar {
    flex-direction: column;
    align-items: stretch;
  }

  .site-footer__support {
    align-self: flex-end;
  }
}


/* —— Deprecation aliases (удалить после полной миграции шаблонов) —— */

.about-plan {
  margin: clamp(1.5rem, 3vh, 2rem) 0 clamp(1.75rem, 3.5vh, 2.25rem);
  padding: 0;
  max-width: 100%;
  border: 1px solid rgba(26, 54, 93, 0.14);
  background: #f4f1ea;
}

.about-plan img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1024 / 633;
  object-fit: contain;
  background: #f4f1ea;
}

.about-plan--sheet img,
.figure.about-plan--sheet img,
.about-plan.figure--intrinsic img {
  aspect-ratio: auto;
  max-height: min(85vh, 52rem);
}

.about-plan__open {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  position: relative;
  text-align: left;
}

.about-plan__open:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
}

.about-plan__hint {
  position: absolute;
  right: 0.65rem;
  bottom: 0.65rem;
  padding: 0.35rem 0.65rem;
  border-radius: 2px;
  background: rgba(26, 54, 93, 0.82);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  pointer-events: none;
}

.about-plan figcaption {
  margin: 0;
  padding: 0.65rem 0.85rem 0.8rem;
  border-top: 1px solid rgba(26, 54, 93, 0.1);
  background: #fff;
  font-size: 0.86rem;
  line-height: 1.4;
  color: #5b6b7c;
}

.about-prose {
  margin-top: 0.35rem;
}

.about-prose p,
.about-prose__lead {
  margin: 0 0 1.15rem;
  font-size: 1.06rem;
  line-height: 1.72;
  color: var(--text);
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 4 4;
}

.about-prose__lead {
  font-size: 1.12rem;
  line-height: 1.65;
}

.about-prose p:last-child {
  margin-bottom: 0;
}

.about-chronicle__panel {
  border: 1px solid rgba(26, 54, 93, 0.12);
  border-top: 3px solid var(--ochre);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
}

.page-routes .page-head,
.page-events .page-head {
  padding-bottom: 0.35rem;
}

.page-routes .section--club-routes,
.page-events .section--club-routes {
  padding-top: clamp(0.75rem, 2vh, 1.25rem);
}
