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

[hidden] { display: none !important; }
h1, h2, h3, h4, h5, h6, p, figure, figcaption, blockquote, dl, dd { margin: 0; }
button, input, select, textarea { font-family: inherit; font-size: 100%; color: inherit; }
button { background: none; -webkit-appearance: button; }

:root {
  --forest: #244638;
  --forest-deep: #173229;
  --cream: #f5f0e6;
  --paper: #fffdf8;
  --sage: #b9cbb6;
  --sage-light: #dfe8dc;
  --apricot: #dd8b65;
  --apricot-light: #f0c9b4;
  --sun: #efc969;

  --sun-pale: #f7ecd0;
  --brick: #b0564c;
  --moss: #8fa894;
  --ink: #1f2b25;
  --muted: #637068;
  --line: rgba(31, 43, 37, 0.16);
  --radius-lg: 34px;
  --radius-md: 24px;

  --sec-gap: clamp(72px, 8vw, 112px);

  --h1: clamp(38px, 4.5vw, 66px);
  --h2: clamp(34px, 3.5vw, 54px);
  --h3: clamp(24px, 2.2vw, 34px);
  --h4: clamp(20px, 1.6vw, 25px);
  --header-h: 94px;

  --hero-pad-top: 92px;
  --band-h: 56px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Rubik", "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.site-header {
  position: sticky; top: 0; z-index: 40;
  width: min(1420px, calc(100% - 64px));
  height: 94px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.site-header::before {
  content: ""; position: absolute; z-index: -1;
  top: 0; bottom: 0;
  left: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  right: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  background: var(--cream);
  box-shadow: 0 10px 24px rgba(23, 50, 41, .06);
  opacity: 0; transition: opacity .25s ease;
}
.site-header.is-stuck::before { opacity: 1; }

.brand { display: inline-flex; align-items: center; gap: 12px;
         font-size: 17px; font-weight: 650; letter-spacing: -0.02em; }

.brand-logo { display: block; height: 62px; width: auto; flex: none; }
.footer-brand .brand-logo { height: 84px; }
.brand-mark {
  width: 42px; height: 42px; border-radius: 50% 50% 46% 42%;
  display: grid; place-items: center; background: var(--forest); color: var(--cream);
  font-size: 13px; text-transform: uppercase; transform: rotate(-4deg);
}
.main-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px);
            font-size: 15px; font-weight: 500; }

.nav-item { position: relative; display: inline-flex; }
.nav-item > a { display: inline-flex; align-items: center; gap: 5px; }
.nav-item > a svg { transition: transform .2s ease; }
.nav-item:hover > a svg, .nav-item:focus-within > a svg { transform: rotate(180deg); }
.nav-sub {
  position: absolute; top: 100%; left: 50%; translate: -50% 0;
  min-width: 168px; margin-top: 14px; padding: 10px;
  display: grid; gap: 2px;
  background: var(--paper); border-radius: 18px;
  box-shadow: 0 16px 34px rgba(23, 50, 41, .13);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.nav-sub a { padding: 9px 12px; border-radius: 11px; white-space: nowrap; }
.nav-sub a:hover { background: var(--sage-light); opacity: 1; }
.nav-item:hover .nav-sub, .nav-item:focus-within .nav-sub {
  opacity: 1; visibility: visible; transform: none;
}

.nav-sub-list { display: grid; gap: 14px; padding-left: 18px;
                border-left: 1px solid var(--line); }
.main-nav a, .text-link { transition: opacity .2s ease; }
.main-nav a:hover, .text-link:hover { opacity: .58; }
.button {
  min-height: 54px; padding: 0 24px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center; gap: 22px;
  background: var(--forest); color: #fff; font-size: 14px; font-weight: 600;
  transition: transform .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); background: var(--forest-deep); }
.button-small { min-height: 46px; padding: 0 19px; font-size: 13px; }
.button-sun { background: var(--sun); color: var(--forest-deep); }
.button-sun:hover { background: #e8c057; color: var(--forest-deep); }

.hero {
  width: min(1420px, calc(100% - 64px));
  min-height: calc(100vh - var(--header-h) - var(--band-h));
  min-height: calc(100svh - var(--header-h) - var(--band-h));
  margin: 0 auto; padding: 64px 0 72px;
  position: relative;
  display: grid; grid-template-columns: 1.02fr .98fr; align-items: center;
  overflow-x: visible; overflow-y: clip;
}
.hero-copy { position: relative; z-index: 2; max-width: 700px; }
.hero h1 { font-size: var(--h1); }
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -.028em; }
h1 { margin-top: 27px; font-size: var(--h1); line-height: .97; }

h1 em, h2 em { font-family: inherit; font-style: italic; font-weight: inherit;
               color: var(--apricot); }
.hero-lead { max-width: 620px; margin: 28px 0 0; font-size: clamp(17px, 1.45vw, 21px); line-height: 1.55; color: #46544c; }

.hero-actions { margin-top: 38px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.hero-actions .button-outline { margin-top: 0; }
.text-link { display: inline-flex; gap: 12px; align-items: center; font-size: 14px; font-weight: 600; }

.mobile-menu { display: none; }
.mobile-menu summary { list-style: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-content: center; gap: 6px; cursor: pointer; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary span { display: block; width: 18px; height: 1px; background: currentColor; }
.mobile-menu[open] nav { display: flex; }
.mobile-menu nav {

  position: absolute; top: 100%; left: 0; right: 0; padding: 28px; border-radius: 0 0 20px 20px;
  background: var(--paper); color: var(--ink); box-shadow: 0 18px 32px rgba(23,50,41,.1);
  display: none; flex-direction: column; gap: 18px; font-size: 18px;

  max-height: calc(100svh - var(--header-h) - 16px); overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-menu nav .button { margin-top: 8px; font-size: 13px; }

.marquee-band {
  height: var(--band-h); overflow: hidden;
  display: flex; align-items: center;
  background: var(--sun); color: var(--forest-deep);
  border-block: 1px solid rgba(31, 43, 37, .14);
}
.marquee-track {
  display: flex; align-items: center; width: max-content;
  animation: marquee 46s linear infinite;
}
.marquee-run { display: flex; align-items: center; flex: none; }

.marquee-item {
  flex: none; display: inline-flex; align-items: center; gap: 22px;
  margin-right: 22px;
  font-size: 15px; font-weight: 600; white-space: nowrap;
  color: var(--forest-deep);
}

.kid-svg { display: block; flex: none; transform: scaleX(-1); }

.kid-frames { height: 44px; background-repeat: no-repeat;
              animation-duration: .78s; animation-timing-function: steps(5);
              animation-iteration-count: infinite; }
.kid-rabbit-walk {
  width: 49px; background-image: url("/assets/art/rabbit-walk.png");
  background-size: 245px 44px; animation-name: walk-rabbit;
}
.kid-bear-walk {
  width: 33px; background-image: url("/assets/art/bear-walk.png");
  background-size: 165px 44px; animation-name: walk-bear;
}
.kid-fox-walk {
  width: 39px; background-image: url("/assets/art/fox-walk.png");
  background-size: 195px 44px; animation-name: walk-fox;
}
@keyframes walk-rabbit {
  from { background-position-x: 0; }
  to   { background-position-x: -245px; }
}
@keyframes walk-bear {
  from { background-position-x: 0; }
  to   { background-position-x: -165px; }
}
@keyframes walk-fox {
  from { background-position-x: 0; }
  to   { background-position-x: -195px; }
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.intro-section {
  padding-block: clamp(78px, 12vw, 132px); display: grid; grid-template-columns: .94fr 1.06fr;
  gap: clamp(52px, 8vw, 128px);

  align-items: start;
}

.intro-copy { padding-top: clamp(12px, 3vw, 44px); }

.lyudi-stack { grid-template-rows: auto 1fr; row-gap: 0; }

.lyudi-stack > .stack-head { grid-column: 1 / -1; grid-row: 1; margin-bottom: 40px; }
.lyudi-stack > .stack-head h2 { margin: 0; font-size: var(--h2); line-height: 1.06; }
.lyudi-stack > .stack-head .lead-text { margin: 22px 0 0; max-width: 820px; }

.lyudi-stack > .intro-copy { align-self: center; padding-top: 0; }

.zone-copy .zone-source { margin: 22px 0 0; font-size: 12px; line-height: 1.5; }
.zone-copy .zone-source a { display: inline-block; padding: 5px 11px;
                 border-radius: 999px; border: 1px solid rgba(70, 84, 76, .28);
                 color: #46544c; letter-spacing: .02em; }
.zone-copy .zone-source a:hover { color: var(--apricot); border-color: currentColor; }
.lyudi-stack > .zone-stack { grid-column: 1; grid-row: 2; }

.lyudi-stack > .intro-copy { grid-column: 2; grid-row: 2; }

@media (max-width: 820px) {
  .lyudi-stack { grid-template-columns: 1fr; grid-template-rows: none; }
  .lyudi-stack > .stack-head, .lyudi-stack > .zone-stack,
  .lyudi-stack > .intro-copy { grid-column: 1; grid-row: auto; }

  .lyudi-stack > .stack-head { margin-bottom: 22px; }
  .lyudi-stack > .zone-stack { margin-top: 0; }
}

.zone-stack { position: relative; padding-left: 44px; }
.zone-cards { display: grid; }
.zone-card {
  grid-area: 1 / 1; margin: 0; position: relative;
  height: 610px; border-radius: 250px 250px 24px 24px; overflow: hidden;
  display: grid; place-items: end center;
  transition: transform .45s ease, opacity .45s ease;
  transform: translate(var(--сдвиг, 0), var(--подъём, 0)) scale(var(--масштаб, 1));
  opacity: var(--видимость, 1);
  z-index: var(--слой, 1);
}

.zone-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.zone-card figcaption {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center;
  gap: 10px; padding: 0 32px; text-align: center;
}
.zone-card-name { font-size: clamp(20px, 2.4vw, 30px); font-weight: 600; letter-spacing: -.02em; }
.zone-card-role { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; opacity: .72; }
.zone-card:has(img) figcaption { display: none; }

.zone-card:has(img) { background: var(--paper); }
.zone-card:where(.tone-sun) { background: var(--sun); color: var(--forest-deep); }
.zone-card:where(.tone-apricot) { background: var(--apricot); color: var(--forest-deep); }
.zone-card:where(.tone-apricot-light) { background: var(--apricot-light); color: var(--forest-deep); }
.zone-card:where(.tone-sage) { background: var(--sage); color: var(--forest-deep); }
.zone-card:where(.tone-sage-light) { background: var(--sage-light); color: var(--forest-deep); }
.zone-card:where(.tone-moss) { background: var(--moss); color: var(--paper); }
.zone-card:where(.tone-brick) { background: var(--brick); color: var(--paper); }
.zone-card:where(.tone-forest) { background: var(--forest); color: var(--paper); }

.zone-cards { padding: 0; border: 0; background: none; cursor: pointer;
              width: 100%; text-align: inherit;

              position: relative; }
.zone-cards:focus-visible { outline: 2px solid var(--apricot); outline-offset: 6px;
                            border-radius: 250px 250px 24px 24px; }

.zone-hint {
  position: absolute; right: clamp(10px, 4%, 34px); bottom: clamp(10px, 5%, 40px);
  z-index: 20; width: 62px; height: 62px; display: grid; place-items: center;

  color: var(--ink); pointer-events: none;
  transition: opacity .35s ease, transform .35s ease;
}
.zone-hint svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.zone-hint > span { font-size: 11px; font-weight: 600; letter-spacing: .12em;
                    text-transform: uppercase; }
.zone-stack.is-used .zone-hint { opacity: 0; transform: scale(.86); }
.zone-hint svg { stroke-width: 1.3; }

.zone-stack[data-zone-gallery] .zone-hint {
  color: var(--paper); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(23, 50, 41, .55),
                              rgba(23, 50, 41, .32) 62%, rgba(23, 50, 41, 0));
  filter: drop-shadow(0 1px 2px rgba(31, 43, 37, .6));
}

.zone-card-count {
  position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 7px;
  left: clamp(12px, 4%, 26px); bottom: clamp(12px, 3.4%, 26px);
  padding: 7px 13px 7px 11px; border-radius: 999px;
  background: rgba(255, 253, 248, .9); box-shadow: 0 2px 10px rgba(31, 43, 37, .12);
  color: var(--ink); font-size: 13px; font-weight: 600; line-height: 1;
}

[data-zone-gallery] .zone-cards { touch-action: pan-y; -webkit-user-select: none; user-select: none; }
[data-zone-gallery] .zone-cards img { -webkit-user-drag: none; }

.zone-arrows { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
.zone-arrows .zone-counter { margin: 0; min-width: 4.5ch; text-align: center; }
.zone-arrow {
  width: 46px; height: 46px; padding: 0; border-radius: 50%; cursor: pointer;
  display: grid; place-items: center; color: var(--ink);
  background: transparent; border: 1px solid rgba(31, 43, 37, .28);
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .12s ease;
}
.zone-arrow:hover { background: var(--forest); border-color: var(--forest); color: var(--paper); }
.zone-arrow:active { transform: scale(.94); }
.zone-arrow:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .zone-arrow { transition: none; } }

.swipe-hint {
  display: none; justify-content: flex-end; align-items: center; gap: 6px;
  margin: 26px 0 0; font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: currentColor; opacity: .72;
  transition: opacity .35s ease;
}
.swipe-hint svg { animation: swipe-nudge 1.6s ease-in-out infinite; }
@keyframes swipe-nudge { 0%, 100% { transform: translateX(0); }
                         50% { transform: translateX(4px); } }

.swipe-hint.is-used { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .swipe-hint svg { animation: none; } }

@media (max-width: 1100px) {
  .swipe-hint-formats { display: flex; }
  .swipe-hint-formats + .format-grid { margin-top: 14px; }
}

@media (max-width: 580px) {
  .swipe-hint-nutrition { display: flex; }
  .swipe-hint-nutrition + .nutrition-card-grid { margin-top: 14px; }
}

.zone-counter { display: block; margin-top: 22px; font-size: 12px;
                color: var(--muted); font-variant-numeric: tabular-nums; }

.intro-copy .text-link { display: inline-block; margin-top: 28px; }

.zone-copy { margin-top: 40px; max-width: 560px; }

.zone-copy .zone-name { margin-top: 0; font-size: var(--h3); line-height: 1.14; }

.zone-role { margin: 8px 0 0; font-size: 12px; letter-spacing: .1em;
             text-transform: uppercase; color: #46544c; }

.person-note { font-size: 14px; color: var(--muted); }
.zone-copy p { margin: 14px 0 0; font-size: 17px; line-height: 1.7; color: #46544c; }
.zone-copy strong { color: var(--ink); font-weight: 600; }
.zone-copy em { font-style: italic; color: var(--apricot); }

.intro-copy h2, .reggio-copy h2, .day-title h2, .gallery-heading h2, .adaptation-copy h2,
.visit-heading h2, .detail-fit h2, .included-section h2, .format-rhythm h2,
.other-formats h2, .info-sections h2, .route-heading h2 {
  margin-top: 24px; font-size: var(--h2); line-height: 1.06;
}
.intro-copy .lead-text { margin: 34px 0 0; max-width: 650px; }
.quiet-points { margin: 38px 0 34px; display: grid; border-top: 1px solid var(--line); }
.quiet-points > div { padding: 20px 0; border-bottom: 1px solid var(--line); }
.quiet-points p { margin: 0; line-height: 1.55; color: #4d5a52; }
.quiet-points strong { color: var(--ink); }

.section-shell { width: min(1420px, calc(100% - 64px)); margin-inline: auto; }
.lead-text { font-size: clamp(18px, 1.55vw, 23px); line-height: 1.56; color: #46544c; }
.text-link-underline { width: fit-content; padding-bottom: 7px; border-bottom: 1px solid currentColor; }
.breadcrumbs { margin-bottom: 38px; display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; }
.breadcrumbs a:hover { color: var(--apricot); }

.formats-section { background: var(--forest); color: #f8f4ec; padding: clamp(72px, 9.1vw, 100px) max(32px, calc((100vw - 1420px) / 2)); }
.section-heading { display: flex; justify-content: space-between; gap: 48px; align-items: end; }
.section-heading h2 { margin-top: 24px; font-size: var(--h2); line-height: 1.06; }
.section-heading > p { max-width: 390px; margin: 0 0 8px; color: rgba(255,255,255,.68); line-height: 1.6; }
.format-grid { margin-top: 64px; display: grid; grid-template-columns: repeat(4, 1fr);

  column-gap: 16px; row-gap: 0;

  min-height: 370px;

  grid-template-rows: minmax(172px, 1fr) auto auto auto auto auto; }

.format-card {
  padding: 26px; border-radius: var(--radius-md);
  color: var(--ink); position: relative; overflow: hidden;
  transition: transform .25s ease;
  display: grid; grid-row: span 6; grid-template-rows: subgrid;
}

@supports not (grid-template-rows: subgrid) {
  .format-card { display: flex; flex-direction: column; justify-content: flex-end; }
  .format-time { margin-top: auto; }
}
.format-card:hover { transform: translateY(-6px); }

.format-card:is(.sage, .apricot, .sun, .brick-light) { background: var(--sage-light); }
.format-time { display: block; margin-bottom: 13px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.format-card h3 { font-size: var(--h3); }
.format-card p { max-width: 330px; margin: 17px 0 0; line-height: 1.5; color: #47544d; }

.format-card-art {

  position: absolute; inset: 0 0 auto; height: 50%; z-index: 0;
  mix-blend-mode: multiply; pointer-events: none;

  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0,0,0,.24) 76%, transparent 96%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0,0,0,.24) 76%, transparent 96%);
}
.format-card-art img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 26%; }

.format-time, .format-card h3, .format-card p { position: relative; z-index: 1; }

.format-card .format-price { margin: 9px 0 0; color: var(--ink); font-weight: 600; }
.format-card .format-teaser { margin-top: 11px; }

.format-card .format-more { margin-top: 16px; }

.format-note { margin: 20px 0 0; color: var(--muted); font-size: 15px; }

.format-all { margin-top: 18px; display: flex; justify-content: flex-end; }

.format-card .format-time { grid-row: 2; }
.format-card h3 { grid-row: 3; }
.format-card .format-price { grid-row: 4; }
.format-card .format-teaser { grid-row: 5; }
.format-card .format-more { grid-row: 6; }

.reggio-section {
  --reggio-pad: clamp(78px, 12vw, 132px);
  padding-block: var(--reggio-pad);
  display: grid; grid-template-columns: 1.04fr .96fr;
  gap: clamp(46px, 8vw, 104px); align-items: center;
}

.reggio-visual {
  position: relative; align-self: stretch; overflow: hidden;
  background: var(--cream);

  margin-block: calc(var(--reggio-pad) * -1);

  margin-left: calc((100vw - min(1420px, 100vw - 64px)) / -2);

  margin-right: -26%;
  -webkit-mask-image: linear-gradient(to left,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
          mask-image: linear-gradient(to left,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
}

.reggio-visual img {
  mix-blend-mode: multiply;
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: 42% 50%;
}
.reggio-copy { position: relative; z-index: 1; }
.reggio-text { margin-top: 30px; display: grid; gap: 18px; }
.reggio-text p { margin: 0; line-height: 1.62; color: #46544c; font-size: clamp(16px, 1.2vw, 18px); }

.reggio-text strong { color: var(--ink); font-weight: 600; }
.reggio-text em { font-style: italic; color: var(--apricot); }
.button-outline { width: fit-content; margin-top: 34px; background: transparent; border: 1px solid var(--forest); color: var(--forest); }
.button-outline:hover { color: white; }

.day-section { background: var(--paper); border-block: 1px solid var(--line); }
.day-inner {
  width: min(1420px, calc(100% - 64px)); margin: 0 auto; padding-block: 120px;
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(54px, 10vw, 150px);
}

.day-title { position: sticky; top: calc(var(--header-h) + 28px); align-self: start; }
.day-title p { max-width: 440px; margin: 30px 0 0; color: var(--muted); line-height: 1.65; }

.day-title p em { font-style: normal; color: var(--apricot); }

.day-links { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 12px; }
.day-links .button { margin-top: 0; }
.timeline { position: relative; }

.timeline-row { min-height: 116px; display: grid; grid-template-columns: 78px 36px 1fr; gap: 2px; position: relative; }
.timeline-row::before {

  content: ""; position: absolute; left: 98px; top: 32px; bottom: -8px;
  width: 1px; background: var(--line);
}
.timeline-row:last-child::before { display: none; }

.timeline-row time { padding-top: 3px; font-size: 12px; color: var(--muted);
                     white-space: nowrap; font-variant-numeric: tabular-nums; }

.timeline-mark {
  align-self: start; justify-self: center;
  position: relative; z-index: 1;
  display: grid; place-items: center; color: var(--apricot);
  background: var(--paper); padding: 4px 2px;
}
.timeline-row h3 { font-size: var(--h4); }
.timeline-row p { margin: 8px 0 0; color: var(--muted); line-height: 1.5; }

.nutrition-home { padding-block: clamp(78px, 11.6vw, 128px); background: var(--sage-light); }
.nutrition-home-inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(56px, 8vw, 120px); align-items: center; }

.nutrition-home-photo { position: relative; background: var(--sage-light); transform: none; padding: 0; }
.nutrition-home-art {
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(farthest-corner at 50% 46%,
      #000 40%, rgba(0,0,0,.5) 72%, transparent 94%);
          mask-image: radial-gradient(farthest-corner at 50% 46%,
      #000 40%, rgba(0,0,0,.5) 72%, transparent 94%);
}
.nutrition-home-photo img { width: 100%; height: auto; border-radius: 0; }

.nutrition-home-photo > span { display: block; margin-top: 10px; padding-left: 2px;
                               color: #46544c; font-size: 12px; line-height: 1.5; }
.nutrition-home-copy h2, .nutrition-related h2 { margin-top: 24px; font-size: var(--h2); line-height: 1.06; }
.nutrition-home-copy > p { max-width: 590px; margin: 30px 0 0; color: #4d5a52; font-size: 18px; line-height: 1.65; }
.nutrition-home-copy .button { margin-top: 34px; }

.nutrition-card-grid {
  margin-top: 70px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  min-height: 320px;
  grid-template-rows: minmax(0, 1fr) auto auto;
}
.nutrition-card-grid > a {
  overflow: hidden; padding: 26px; border-radius: var(--radius-md);
  position: relative; color: var(--ink);
  display: grid; grid-row: span 3; grid-template-rows: subgrid;
  transition: transform .2s ease;
}
@supports not (grid-template-rows: subgrid) {
  .nutrition-card-grid > a { display: flex; flex-direction: column; justify-content: flex-end; }
}
.nutrition-card-grid > a h3 { grid-row: 2; }
.nutrition-card-grid > a p  { grid-row: 3; }
.nutrition-card-grid > a:hover { transform: translateY(-5px); }

.nutrition-card-grid > a { background: #f3f5ed;
                           border: 1px solid rgba(31, 43, 37, .12); }
.nutrition-card-grid > a:hover { background: var(--paper); }

.nutrition-card-art {
  position: absolute; inset: 0 0 auto; height: 62%; z-index: 0;
  overflow: hidden; pointer-events: none;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 38%, rgba(0,0,0,.26) 70%, transparent 92%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 38%, rgba(0,0,0,.26) 70%, transparent 92%);
}
.nutrition-card-art img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }

.nutrition-card-grid h3, .nutrition-card-grid p { position: relative; z-index: 1; }
.nutrition-card-grid h3 { font-size: var(--h3); line-height: 1.05; }

.nutrition-card-grid p { max-width: 360px; margin: 33px 0 0; color: #47544d; line-height: 1.5; }

@supports (grid-template-rows: subgrid) {
  @media (min-width: 821px) {
    .nutrition-card-grid { min-height: 300px;
      grid-template-rows: minmax(0, 1fr) auto auto; row-gap: 0; }
    .nutrition-card-grid > a { min-height: 0; display: grid;
      grid-row: span 3; grid-template-rows: subgrid; }
    .nutrition-card-grid h3 { grid-row: 2; margin-top: 0; }
    .nutrition-card-grid p { grid-row: 3; }
  }
}

.gallery-section { padding-block: clamp(78px, 12vw, 132px); }

.gallery-section:has(+ .otzyvy) { padding-bottom: 40px; }

.gallery-more { margin-top: 34px; display: flex; justify-content: flex-end; }

.gallery-section:has(.breadcrumbs) { padding-top: var(--hero-pad-top); }

.gallery-section:has(+ .visit-section) { padding-bottom: 56px; }

.landing-page .nutrition-home + .gallery-section { padding-top: clamp(64px, 6vw, 88px); }
.gallery-heading { display: flex; justify-content: space-between; gap: 50px; align-items: end; }
.gallery-heading > p { max-width: 430px; margin: 0 0 8px; color: var(--muted); line-height: 1.6; }
.photo-grid {
  margin-top: 72px; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 78px; gap: 16px;
}
.gallery-photo { margin: 0; padding: 0; border: 0; cursor: zoom-in; position: relative; overflow: hidden; border-radius: 20px; background: var(--sage-light); }
.gallery-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.gallery-photo:hover img { transform: scale(1.025); }

.gallery-item-1 { grid-column: 1 / 5;  grid-row: 1 / 7; }
.gallery-item-2 { grid-column: 5 / 13; grid-row: 1 / 5; }
.gallery-item-3 { grid-column: 5 / 9;  grid-row: 5 / 9; }
.gallery-item-4 { grid-column: 9 / 13; grid-row: 5 / 9; }
.gallery-item-5 { grid-column: 1 / 5;  grid-row: 7 / 13; }
.gallery-item-6 { grid-column: 5 / 9;  grid-row: 9 / 13; }
.gallery-item-7 { grid-column: 9 / 13; grid-row: 9 / 13; }

.gallery-filter { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 10px; }
.gallery-filter-btn, .blog-rubriki a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
                      padding: 10px 18px; border: 1px solid var(--line); border-radius: 999px;
                      background: transparent; color: var(--ink); cursor: pointer;
                      font: 600 14px/1 "Rubik", sans-serif; transition: background .2s ease, border-color .2s ease; }
.gallery-filter-btn span, .blog-rubriki a span { font-weight: 400; font-size: 12px; color: var(--muted); }
.gallery-filter-btn:hover, .blog-rubriki a:hover { border-color: var(--forest); }
.gallery-filter-btn[aria-pressed="true"], .blog-rubriki a[aria-current="page"] { background: var(--forest); border-color: var(--forest); color: var(--paper); }
.gallery-filter-btn[aria-pressed="true"] span, .blog-rubriki a[aria-current="page"] span { color: rgba(255, 253, 248, .7); }
.gallery-filter-btn:focus-visible, .blog-rubriki a:focus-visible { outline: 2px solid var(--apricot); outline-offset: 2px; }
.gallery-masonry { margin-top: 36px; columns: 3; column-gap: 16px; }
.gallery-masonry .gallery-photo { display: block; width: 100%; margin: 0 0 16px; break-inside: avoid; }
.gallery-masonry .gallery-photo img { display: block; height: auto; }

.gallery-masonry.is-justified { columns: auto; position: relative; }
.gallery-masonry.is-justified .gallery-photo { position: absolute; margin: 0; }
.gallery-masonry.is-justified .gallery-photo img { width: 100%; height: 100%; object-fit: cover; }
.gallery-empty { margin: 36px 0 0; color: var(--muted); }

.gallery-masonry .gallery-photo[hidden], .gallery-empty[hidden] { display: none; }
@media (max-width: 1000px) { .gallery-masonry { columns: 2; } }
@media (max-width: 600px) {
  .gallery-masonry { columns: 1; }
  .gallery-filter { flex-wrap: nowrap; overflow-x: auto; margin-inline: -20px; padding-inline: 20px;
                    scrollbar-width: none; }
  .gallery-filter::-webkit-scrollbar { display: none; }
  .gallery-filter-btn { flex: none; }
}

.adaptation-section {
  display: grid; grid-template-columns: 1fr 1fr; min-height: 740px; background: var(--sage-light);
}

.adaptation-photo {
  display: grid; align-items: center;
  background: var(--sage-light);

  -webkit-mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.3) 9%, rgba(0,0,0,.8) 18%, #000 28%);
          mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.3) 9%, rgba(0,0,0,.8) 18%, #000 28%);
}
.adaptation-photo img { width: 100%; height: auto; mix-blend-mode: multiply; }

.adaptation-copy { padding: 100px 40px 100px max(40px, calc((100vw - 1420px) / 2)); display: flex; flex-direction: column; justify-content: center; }
.adaptation-copy > p { max-width: 590px; margin: 30px 0 0; font-size: 18px; color: #4d5a52; line-height: 1.65; }

.adaptation-invite { max-width: 590px; margin-top: 30px; }
.adaptation-invite-lead { margin: 0 0 20px; font-size: 15px; font-weight: 500; color: var(--forest); }

.adaptation-aside { display: grid; align-content: end; gap: 34px; padding-bottom: 100px; }

.adaptation-aside .contact-actions {
  margin: 0; padding-right: max(40px, calc((100vw - 1420px) / 2)); padding-left: 40px;
  justify-content: center;
}
.adaptation-steps { margin: 38px 0; display: flex; gap: 10px; flex-wrap: wrap; }
.adaptation-steps > div { padding: 12px 18px 12px 12px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(31,43,37,.2); border-radius: 999px; }
.adaptation-steps span { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: white; font-size: 10px; }
.adaptation-steps p { margin: 0; font-size: 12px; }
.adaptation-copy .button { width: fit-content; margin-top: 38px; }

.visit-section { padding-block: 72px clamp(78px, 11.6vw, 128px); }
.visit-heading { max-width: 780px; }

.visit-steps { margin-top: 68px; padding: 0; list-style: none;
               display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.visit-steps > li { position: relative; padding: 0 42px 0 0; }
.visit-steps > li::before {
  content: ""; position: absolute; left: 46px; right: 0; top: 22px;
  height: 1px; background: var(--line);
}
.visit-steps > li:last-child::before { display: none; }
.visit-mark {
  position: relative; z-index: 1; width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center; color: var(--apricot);
  background: var(--cream); box-shadow: inset 0 0 0 1px var(--line);
}
.visit-steps h3 { margin-top: 26px; font-size: var(--h4); }
.visit-steps p { margin: 10px 0 0; max-width: 34ch; color: var(--muted); line-height: 1.55; }

.visit-links { margin-top: 54px; display: flex; flex-wrap: wrap; gap: 14px 40px; }
.visit-link { margin-top: 34px; display: inline-flex; gap: 18px; align-items: center; font-size: 14px; font-weight: 650; border-bottom: 1px solid currentColor; padding-bottom: 7px; }

.contacts-main {
  --contacts-pad: var(--hero-pad-top);
  position: relative; isolation: isolate;
  padding-block: var(--contacts-pad);
  display: grid; grid-template-columns: .92fr 1.08fr;

  column-gap: clamp(40px, 5vw, 72px); row-gap: 0; align-items: start;
}

.contacts-main::before {
  content: ""; position: absolute; z-index: -2; pointer-events: none;
  top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%);
  background: var(--cream);
}

.contacts-visual {
  position: absolute; z-index: -1;

  mix-blend-mode: multiply;

  top: 0; bottom: 0;
  left: -8%;
  right: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  overflow: hidden;

  -webkit-mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.2) 14%, rgba(0,0,0,.7) 30%, #000 46%),
      linear-gradient(to bottom, #000 calc(100% - 220px),
      rgba(0,0,0,.45) calc(100% - 100px), transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.2) 14%, rgba(0,0,0,.7) 30%, #000 46%),
      linear-gradient(to bottom, #000 calc(100% - 220px),
      rgba(0,0,0,.45) calc(100% - 100px), transparent 100%);
          mask-composite: intersect;
}

.contacts-visual img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%;
}

.contacts-main > .breadcrumbs, .info-hero > .breadcrumbs,
.nutrition-hero > .breadcrumbs, .detail-hero > .breadcrumbs {
  grid-column: 1 / -1; align-self: start; position: relative; z-index: 1;
  margin-bottom: 38px;
}

.contacts-main > h1 { grid-column: 1 / -1; position: relative; z-index: 1;
                      margin: 0 0 40px; }
.contacts-copy { position: relative; z-index: 1; display: grid; gap: 34px; }

.contacts-text { margin: 0; max-width: 52ch; font-size: clamp(15px, 1.15vw, 17px);
                 line-height: 1.66; color: #46544c; }
.contacts-map { position: relative; z-index: 1; }

.map-frame { border-radius: var(--radius-lg); overflow: hidden; }
.map-static { position: relative; background: var(--paper); }

.map-static img { display: block; width: 100%; height: clamp(360px, 46vw, 560px);
                  object-fit: none; object-position: center; filter: saturate(.72) sepia(.06); }

.map-pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%);
           filter: drop-shadow(0 3px 6px rgba(31, 43, 37, .25)); pointer-events: none; }
.map-pin svg { display: block; }
.map-actions { position: absolute; left: 16px; right: 16px; bottom: 16px;
               display: flex; flex-wrap: wrap; gap: 8px; }
.map-btn { padding: 11px 16px; border-radius: 999px; background: var(--paper); color: var(--forest);
           font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none;
           box-shadow: 0 2px 10px rgba(31, 43, 37, .16); transition: background .2s ease, transform .2s ease; }
.map-btn:hover { background: var(--sage-light); transform: translateY(-1px); }
.map-btn:focus-visible { outline: 3px solid var(--forest); outline-offset: 2px; }

.map-attr { position: absolute; right: 8px; bottom: 6px; z-index: 2; padding: 2px 7px; border-radius: 6px;
            background: rgba(255, 253, 248, .75); color: var(--muted); font-size: 10px; line-height: 1.4; }

.map-static .map-live { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1;
                        opacity: 0; transition: opacity .5s ease; background: var(--paper); font: inherit; }
.map-zhivaya .map-live { opacity: 1; }
.map-zhivaya .map-pin { opacity: 0; }
.map-actions { z-index: 2; }

.map-live canvas { filter: saturate(.72) sepia(.06); }
.map-live .map-live-pin { filter: drop-shadow(0 3px 6px rgba(31, 43, 37, .25)); }

.map-live.maplibregl-map .maplibregl-ctrl-group { border-radius: 999px; box-shadow: 0 2px 10px rgba(31, 43, 37, .16); background: var(--paper); }
.map-live.maplibregl-map .maplibregl-ctrl-group button { width: 40px; height: 40px; border-radius: 0; }
.map-live.maplibregl-map .maplibregl-ctrl-group button + button { border-top: 1px solid var(--line); }
.map-live.maplibregl-map .maplibregl-ctrl-group button:hover { background: var(--sage-light); }
.map-live.maplibregl-map .maplibregl-ctrl-top-right .maplibregl-ctrl { margin: 14px; }

.map-live.maplibregl-map .maplibregl-cooperative-gesture-screen { font: 500 15px/1.4 "Rubik", sans-serif; }

.contact-actions {
  margin: -14px 14px 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.contact-actions .button {
  font-size: 14px; padding: 13px 16px; min-height: 50px;

  gap: 10px;

  flex: 1 1 auto; min-width: 150px;

  margin: 0; width: auto;
}

.contact-actions-solid { margin: 0; justify-content: flex-start; }
.contact-actions-solid .button { flex: 0 0 auto; min-width: 0; color: #fff; }
.contact-actions-solid .button-sun { color: var(--forest-deep); }
.btn-icon { flex: none; }
.map-note { margin: 18px 0 0; font-size: 13px; color: var(--muted); }
.map-note a { border-bottom: 1px solid var(--line); }
.map-note a:hover { color: var(--ink); }

.route-section { padding-block: clamp(20px, 2.4vw, 36px) clamp(72px, 9vw, 112px); }
.route-heading { max-width: 780px; }

.route-heading h2 { margin-top: 0; }
.route-heading .lead-text { margin: 22px 0 0; }
.route-steps { margin: 52px 0 0; padding: 0; list-style: none;
               display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.route-steps figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden;
                      border-radius: var(--radius-md); background: var(--paper); }
.route-steps img { display: block; width: 100%; height: 100%; object-fit: cover; }
.route-num { margin-top: 20px; width: 30px; height: 30px; border-radius: 50%;
             display: grid; place-items: center; background: var(--forest);
             color: var(--paper); font-size: 13px; font-weight: 600; }
.route-steps p { margin: 12px 0 0; max-width: 32ch; line-height: 1.55; }
@media (max-width: 980px) {
  .route-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 44px; }
}
@media (max-width: 580px) {
  .route-steps { grid-template-columns: 1fr; row-gap: 36px; margin-top: 36px; }
}

.contact-form-wrap { padding: 44px; border-radius: var(--radius-lg); background: var(--forest); color: white; align-self: center; }
.lead-form { display: grid; gap: 23px; }

.form-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead-form label { display: grid; gap: 9px; }

.field-error { font-size: 12px; line-height: 1.4; color: var(--sun); }
.field-error:empty { display: none; }
.lead-form input[aria-invalid="true"] { border-color: var(--sun); }
.lead-form label > span { font-size: 12px; color: rgba(255,255,255,.66); }
.lead-form input {
  width: 100%; padding: 0 0 12px; border: 0; border-bottom: 1px solid rgba(255,255,255,.3);
  outline: none; background: transparent; color: white; font: inherit; font-size: 17px; border-radius: 0;
}
.lead-form input::placeholder { color: rgba(255,255,255,.34); }
.lead-form input:focus { border-color: var(--sun); }
.button-light { background: var(--cream); color: var(--forest); border: 0; cursor: pointer; }
.button-light:hover { background: white; color: var(--forest-deep); }
.lead-form .button { width: 100%; margin-top: 8px; }

.form-note { margin: -9px 0 0; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.5; }
.form-success { min-height: 330px; display: flex; gap: 18px; align-items: center; }
.form-success > span { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--sun); color: var(--forest); font-size: 24px; }
.form-success h3 { font-size: var(--h3); }
.form-success p { color: rgba(255,255,255,.65); line-height: 1.55; }
.form-success button { padding: 0; border: 0; border-bottom: 1px solid white; background: transparent; color: white; cursor: pointer; }

.site-footer { padding: 72px max(32px, calc((100vw - 1420px) / 2)) 28px; background: var(--forest-deep); color: #f6f1e8; }

.footer-top { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 64px; align-items: start; }
.footer-brand { display: grid; gap: 20px; align-content: start; }

.footer-contacts { display: grid; gap: 10px; font-style: normal; }
.footer-contacts a { width: fit-content; font-size: 13px; color: rgba(255,255,255,.82); }

.footer-hours { font-size: 13px; color: rgba(255,255,255,.6); }
.footer-contacts a:hover { color: var(--sun); }
.site-header-light { color: #f9f5ed; }
.site-header-light .brand-mark { background: #f9f5ed; color: var(--forest); }
.site-header-light .header-cta { background: #f9f5ed; color: var(--forest); }
.footer-brand .brand-mark { background: var(--cream); color: var(--forest); }
.footer-brand p { color: rgba(255,255,255,.58); }

.footer-tagline a { color: rgba(255,255,255,.58); }
.footer-tagline a:hover { color: var(--paper); border-bottom: 1px solid currentColor; }
.footer-links { display: grid; grid-template-columns: repeat(4, minmax(132px, 176px)); gap: 34px; }

.footer-links > div { display: grid; gap: 9px; align-content: start; }
.footer-label { margin-bottom: 7px; color: rgba(255,255,255,.52); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; }
.footer-links a { width: fit-content; font-size: 14px; }
.footer-links a:hover { color: var(--sun); }
.footer-bottom { margin-top: 66px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); display: flex; justify-content: space-between; color: rgba(255,255,255,.56); font-size: 11.5px; }
.footer-docs { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.footer-docs a { color: inherit; text-decoration: none; }
.footer-docs a:hover, .footer-docs a:focus-visible { color: #fff; text-decoration: underline; }
.form-note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.pravo-page .article-body p, .pravo-page .article-body li { overflow-wrap: anywhere; }

.formaty-hero > div > p + p { margin-top: 16px; }
.formaty-hero strong { font-weight: 600; color: var(--ink); }
.formaty-hero .hero-actions { margin-top: 32px; }

.info-hero.formaty-hero .hero-actions .button { margin-top: 0; }

@media (min-width: 1000px) and (max-width: 1279px) {
  .info-hero.formaty-hero:has(.hero-art) > div:not(.breadcrumbs) { max-width: 540px; }

  .info-hero.formaty-hero figure.hero-art img { object-position: 92% 50%; }
}

.formaty-list { padding-block: clamp(64px, 7vw, 100px); background: var(--forest); }
.formaty-list .format-note { color: rgba(255, 253, 248, .72); }
.formaty-list { color: #f8f4ec; }
.formaty-list .section-heading { margin-bottom: clamp(32px, 3.4vw, 46px); }
.formaty-list .section-heading h2 { margin-top: 0; }
.formaty-list .section-heading > p { max-width: 420px; color: rgba(255, 253, 248, .8); }

.fakty.fakty-light.vhodit { padding-top: calc(clamp(64px, 7vw, 100px) - 32px); }
.vhodit .fakty-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vhodit .fakty-grid p { margin-bottom: 14px; }

.fakt-mark { display: inline-flex; align-items: center; gap: 8px; width: fit-content;
             margin: auto 24px 24px; padding: 5px 12px 5px 10px; border-radius: 999px;
             background: var(--sage-light); color: var(--forest);
             font-size: 12px; font-weight: 600; }
.fakt-mark::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.fakt-mark-full { background: #f7e3d8; color: #b8623d; }

.odinakovo-section { background: var(--sun-pale); color: var(--ink); padding-block: clamp(64px, 7vw, 96px); }
.odinakovo-section h2 { margin: 0; max-width: 16em; font-size: var(--h2); line-height: 1.04;
                        text-wrap: balance; }
.odinakovo { margin-top: 40px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
             gap: 32px clamp(20px, 3vw, 44px); }
.odinakovo article { display: flex; flex-direction: column; align-items: flex-start;
                     padding-top: 20px; border-top: 1px solid rgba(36, 70, 56, .22); }
.odinakovo h3 { margin: 0; font-size: var(--h4); line-height: 1.15; }
.odinakovo p { margin: 10px 0 0; font-size: 16px; line-height: 1.6; color: #3f4a44; }
.odinakovo .text-link { margin-top: auto; padding-top: 16px; font-size: 13.5px; color: var(--forest); }

.zanyatiya-plashki { padding-block: calc(var(--sec-gap) / 2) calc(var(--sec-gap) / 2); }

@media (min-width: 821px) {
  .page-zanyatiya .info-hero figure.hero-art {
    -webkit-mask-image: linear-gradient(to right,
        transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%),
        linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
    -webkit-mask-composite: source-in;
            mask-image: linear-gradient(to right,
        transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%),
        linear-gradient(to bottom, #000 0%, #000 78%, transparent 100%);
            mask-composite: intersect; }
}

.zanyatiya-plashki .excursions-list { grid-auto-rows: 1fr; }

.excursion.zanyatie-plashka { grid-template-columns: minmax(0, 372px) 1fr; }

.zanyatie-plashka.fon-mezhdu .excursion-fon { right: 24%; bottom: -10%; width: 56%;
  -webkit-mask-image: radial-gradient(110% 120% at 62% 96%, #000 24%, rgba(0,0,0,.5) 56%, transparent 86%);
          mask-image: radial-gradient(110% 120% at 62% 96%, #000 24%, rgba(0,0,0,.5) 56%, transparent 86%); }
@media (max-width: 900px) {
  .zanyatiya-plashki .excursions-list { grid-auto-rows: auto; }

  .excursion.zanyatie-plashka { grid-template-columns: 1fr; }
  .zanyatie-plashka .excursion-poster { max-width: 372px; }
}

.zanyatie-plashka:nth-child(even) { grid-template-columns: 1fr minmax(0, 372px); }
.zanyatie-plashka:nth-child(even) .excursion-poster { order: 2; }
.zanyatie-plashka:nth-child(even) .excursion-copy { order: 1; justify-self: start; }

.zanyatie-plashka.poster-photo .excursion-poster { align-self: stretch; }
.zanyatie-plashka.poster-photo .excursion-poster button,
.zanyatie-plashka.poster-photo .excursion-poster img { height: 100%; }
.zanyatie-plashka.poster-photo .excursion-poster img { object-fit: cover; }

.zanyatie-plashka.no-poster:nth-child(odd) .excursion-copy { margin-left: auto; }
.zanyatie-plashka.no-poster:nth-child(odd) .excursion-fon { right: auto; left: -4%;
  -webkit-mask-image: radial-gradient(120% 120% at 8% 96%, #000 26%, rgba(0,0,0,.5) 58%, transparent 88%);
          mask-image: radial-gradient(120% 120% at 8% 96%, #000 26%, rgba(0,0,0,.5) 58%, transparent 88%); }

.zanyatie-plashka.no-poster .excursion-fon { bottom: -46%; }
@media (max-width: 900px) {
  .zanyatie-plashka:nth-child(even) { grid-template-columns: 1fr; }
  .zanyatie-plashka:nth-child(even) .excursion-poster { order: 0; }
  .zanyatie-plashka:nth-child(even) .excursion-copy { order: 0; }
  .zanyatie-plashka.no-poster:nth-child(odd) .excursion-copy { margin-left: 0; }

  .zanyatie-plashka .excursion-fon,
  .zanyatie-plashka.no-poster:nth-child(odd) .excursion-fon {
    width: 112%; right: -6%; left: auto; bottom: -4%; opacity: .42;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.4) 45%, #000 100%);
            mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.4) 45%, #000 100%); }
  .zanyatie-plashka.no-poster .excursion-fon { bottom: -4%; }
}
.zanyatiya-plashki .excursions-list { gap: 18px; }
.zanyatie-plashka.no-poster { grid-template-columns: 1fr; }
.zanyatie-plashka .excursion-copy { max-width: 60ch; }
.zanyatie-plashka .excursion-text + .excursion-text { margin-top: 8px; }
.zanyatie-plashka.is-soon .excursion-date { color: var(--muted); }
.zanyatie-knopki { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 26px; }
.zanyatie-knopki .button { margin: 0; }
.zanyatie-knopki .button-outline { margin-top: 0; }
.zanyatie-plashka .excursion-poster button { display: block; width: 100%; padding: 0; border: 0;
  background: none; cursor: zoom-in; }
.zanyatiya-plashki .zanyatiya-note { margin-top: 28px; }

.bahotsky-chas .pair-copy h2 { font-size: var(--h3); }

.vzroslyj { padding-block: calc(var(--sec-gap) / 2); }
.vzroslyj-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 30px; }
.vzroslyj-card { padding: clamp(24px, 3vw, 34px) clamp(24px, 3vw, 36px);
                 border-radius: var(--radius-lg); background: var(--paper); }
.vzroslyj-card.is-net { background: var(--sage-light); }
.vzroslyj-card h3 { margin: 0 0 16px; font-size: var(--h4); }
.vzroslyj-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.vzroslyj-card li { position: relative; padding-left: 24px; line-height: 1.5; color: #3f4a44; }
.vzroslyj-card li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px;
                            height: 10px; border-radius: 50%; background: var(--apricot); }
.vzroslyj-card.is-net li::before { background: none; width: 12px; height: 2px; top: .8em;
                                   border-radius: 1px; background: var(--forest); }

.bahotsky-avtor { padding-block: calc(var(--sec-gap) / 2) var(--sec-gap); }
.avtor-card { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 4vw, 60px);
              align-items: center; padding: clamp(26px, 3.4vw, 44px);
              border-radius: var(--radius-lg); background: var(--paper); }
.avtor-card h2 { margin: 0 0 16px; font-size: var(--h3); line-height: 1.08; }
.avtor-card p + p { margin-top: 12px; }
.avtor-card blockquote { padding-left: clamp(22px, 3vw, 40px); border-left: 3px solid var(--apricot); }
.avtor-card blockquote p { font-size: var(--h4); line-height: 1.3; font-weight: 600; }
.avtor-card cite { display: block; margin-top: 14px; font-style: normal; font-size: 14px; color: var(--muted); }
.bahotsky-avtor .zanyatiya-note { margin-top: 26px; }
@media (max-width: 700px) {
  .vzroslyj-grid, .avtor-card { grid-template-columns: 1fr; }
  .avtor-card blockquote { padding-left: 18px; }
}

.zanyatie-kogda { display: block; margin-bottom: 10px; font-size: 12px; font-weight: 600;
                  letter-spacing: .08em; text-transform: uppercase; color: var(--forest); }
.odinakovo article.is-soon { opacity: .72; }
.odinakovo article.is-soon .zanyatie-kogda { color: var(--apricot); }

.pair-row figure.pair-poster { background: none; display: flex; justify-content: center; }
.pair-row figure.pair-poster button { display: block; width: min(100%, 420px); padding: 0; border: 0;
  background: none; border-radius: var(--radius-md); overflow: hidden; cursor: zoom-in; }
.pair-row figure.pair-poster img { width: 100%; height: auto; border-radius: var(--radius-md);
  mix-blend-mode: normal; -webkit-mask-image: none; mask-image: none; }
.pair-row figure.pair-poster button:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }
.pair-row.is-soon .pair-copy { opacity: .78; }

.zanyatiya-list { padding-top: calc(var(--sec-gap) / 4); }

.pair-row.has-lenta { align-items: stretch; }
.pair-row.has-lenta .pair-copy { display: flex; flex-direction: column; }
.pair-row.has-lenta .pair-lenta { position: relative; flex: 1 1 0; min-height: 140px; margin: 28px 0 0; }
.pair-row.has-lenta .pair-lenta img { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 60%; mix-blend-mode: multiply; }
@media (max-width: 820px) {
  .pair-row.has-lenta .pair-lenta { flex: none; aspect-ratio: 21 / 9; min-height: 0; }
}
.pair-row .zanyatie-kogda { margin-bottom: 8px; }
.pair-row .zanyatie-cena { margin-top: 18px; }
.pairs-section .zanyatiya-note { margin-top: 0; }
.zanyatie-afisha { display: block; width: 100%; margin: 0 0 18px; padding: 0; border: 0;
                   border-radius: var(--radius-md); overflow: hidden; background: none; cursor: zoom-in; }
.zanyatie-afisha img { display: block; width: 100%; height: auto; }
.zanyatie-afisha:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }
.zanyatie-cena { margin-top: auto; padding-top: 14px; font-size: 14px; color: var(--muted); }
.odinakovo article .zanyatie-cena + .text-link { margin-top: 0; padding-top: 8px; }
.zanyatiya-note { margin: 36px 0 0; max-width: 640px; font-size: 17px; line-height: 1.6; color: #3f4a44; }
.zanyatiya-page .odinakovo-section .section-heading { align-items: end; }
.zanyatiya-page .odinakovo-section .section-heading h2 { margin-top: 0; }
.zanyatiya-page .odinakovo-section .section-heading > p { max-width: 400px; color: #4d5a52; }

.atelie-text { padding-block: calc(var(--sec-gap) / 2) 0; }
.atelie-text .section-heading h2 { margin-top: 0; }
.atelie-copy { margin-top: 24px; max-width: 640px; }
.atelie-copy p { margin: 0 0 16px; font-size: 18px; line-height: 1.6; }

.atelie-proekty .pair-copy h2, .atelie-kak .pair-copy h2 { margin-top: 0; }
.atelie-proekty .pair-copy h2 { font-size: var(--h3); }

.proekt-snimok { position: relative; display: block; width: 100%; padding: 0; border: 0;
                 background: none; cursor: zoom-in; border-radius: var(--radius-md); overflow: hidden; }
.proekt-snimok img { transition: transform .5s ease; }
@media (hover: hover) { .proekt-snimok:hover img { transform: scale(1.03); } }
.proekt-snimok:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .proekt-snimok img { transition: none; } }

.pair-row.atelie-lenta .pair-lenta img { object-fit: contain; object-position: 0% 100%;
                                        -webkit-mask-image: none; mask-image: none; }

.pair-row.atelie-lenta .pair-lenta { background: var(--cream); }

.pair-row.atelie-lenta.lenta-short .pair-lenta { max-width: 560px; }
.pair-row.atelie-lenta .pair-media { align-self: stretch; }
.pair-row.atelie-lenta figure.pair-photo { flex: 1 1 auto; display: flex; flex-direction: column; }
.pair-row.atelie-lenta figure.pair-photo > img, .pair-row.atelie-lenta .proekt-snimok { flex: 1 1 auto; }
.pair-row.atelie-lenta figure.pair-photo img { height: 100%; }
@media (max-width: 820px) {
  .pair-row.atelie-lenta .pair-lenta { aspect-ratio: 4 / 1; }
  .pair-row.atelie-lenta .pair-lenta img { object-position: 0% 50%; }
  .pair-row.atelie-lenta figure.pair-photo img { height: auto; }
}

.pair-row.proekt { row-gap: clamp(30px, 3.2vw, 46px); }
.proekt-chasti { grid-column: 1 / -1; }

.atelie-gallery .gallery-heading + .gallery-masonry { margin-top: clamp(30px, 3.4vw, 50px); }
.proekt-chasti h3 { margin: 0 0 18px; font-size: var(--h4); }
.proekt-chasti-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }

.proekt-chasti-grid article { padding: 22px 22px 18px; border-radius: var(--radius-lg); background: var(--paper);
  display: flex; flex-direction: column; isolation: isolate; }
.proekt-chasti-grid article:nth-child(5n+1) { background: var(--sun-pale); }
.proekt-chasti-grid article:nth-child(5n+2) { background: var(--sage-light); }
.proekt-chasti-grid article:nth-child(5n+3) { background: #f7e1d4; }
.proekt-chasti-grid article:nth-child(5n+4) { background: var(--sage-light); }
.proekt-chasti-grid article:nth-child(5n+5) { background: var(--sun-pale); }
.chast-art { margin-top: auto; padding-top: 14px; height: 130px; }
.chast-art img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 100%;
                 mix-blend-mode: multiply; }
.proekt-chasti-grid h4 { margin: 0 0 10px; font-size: var(--h4); font-weight: 600; line-height: 1.2; }
.pair-row .proekt-chasti-grid p { margin: 0; max-width: none; font-size: 15.5px; line-height: 1.55; color: #3f4a44; }
.proekt-chasti-grid em { font-style: italic; color: var(--apricot); }
@media (max-width: 1100px) {
  .proekt-chasti-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proekt-chasti-grid article:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 580px) { .proekt-chasti-grid { grid-template-columns: 1fr; } }

@media (max-width: 820px) { .proekt-chasti { order: 3; } }
.atelie-gallery { padding-top: 24px; }
.atelie-gallery .gallery-masonry { margin-top: 0; }
@media (max-width: 1100px) {
  .odinakovo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .odinakovo { grid-template-columns: 1fr; }
}

.info-hero.tarif-hero figure.hero-art img { object-position: var(--hero-focus, 100% 50%); }

@media (min-width: 821px) {
.info-hero.tarif-hero figure.hero-art { margin-left: -12%; }

.info-hero.tarif-hero figure.hero-art {
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%),
      linear-gradient(to bottom, #000 72%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%),
      linear-gradient(to bottom, #000 72%, transparent 100%);
          mask-composite: intersect;
}
}
@media (min-width: 1000px) and (max-width: 1279px) {
  .info-hero.tarif-hero figure.hero-art img { object-position: var(--hero-focus, 100% 50%); }

  .info-hero.tarif-hero figure.hero-art { margin-left: -6%; }
}
.tarif-fit { padding-block: clamp(64px, 7vw, 100px) calc(clamp(64px, 7vw, 100px) - 8px); }
.tarif-fit h2 { margin: 0; font-size: var(--h2); line-height: 1.04; }
.tarif-fit .odinakovo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tarif-fit .odinakovo p { color: #47544d; }
.bahotsky-row .pair-copy h2 { margin: 0; }

.pair-row p.bahotsky-note { margin-top: 26px; padding: 14px 18px; border-radius: var(--radius-md);
                            background: var(--paper); font-size: 15.5px; line-height: 1.55; color: #4d5a52; }
.bahotsky-note span { display: block; margin-bottom: 3px; font-size: 12px; font-weight: 600;
                      letter-spacing: .08em; text-transform: uppercase; color: var(--apricot); }
.bahotsky-link { margin-top: 24px; }

.vhodit .bahotsky-row { margin-block: clamp(56px, 6vw, 88px) clamp(24px, 3vw, 40px); }

@media (min-width: 821px) {
  .bahotsky-row.pair-row { grid-template-columns: 1.3fr 1fr; gap: clamp(32px, 4vw, 64px); }
}

@media (min-width: 1280px) {
  .bahotsky-row.pair-row img { width: 108%; margin-left: -4%; }
}
.tarif-bahotsky { scroll-margin-top: var(--header-h); }
.tarif-drugie { background: var(--sun-pale); padding-block: clamp(64px, 7vw, 96px); }

.tarif-drugie-inner { display: grid; grid-template-columns: 1.35fr .65fr;
                      gap: clamp(32px, 5vw, 80px); align-items: center; }
.tarif-drugie h2 { margin: 0; font-size: var(--h2); line-height: 1.04; }
.tarif-drugie-lead { margin: 22px 0 0; max-width: 46ch; font-size: 17px; line-height: 1.65; color: #46544c; }
.tarif-drugie .vybor-list { margin-top: clamp(28px, 3vw, 40px); border-color: rgba(36, 70, 56, .22); }

.tarif-drugie-art { margin: 0; background: var(--sun-pale); }

@media (min-width: 901px) {
  .tarif-drugie { overflow: hidden; }
  .tarif-drugie-art { position: relative; align-self: stretch; }
  .tarif-drugie .tarif-drugie-art img { position: absolute; top: 50%; left: 36%; width: auto; height: 118%;
                          max-width: none; transform: translate(-50%, -50%); }
}

@media (min-width: 901px) {
  .tarif-drugie .tarif-drugie-art.is-wide img { left: auto; right: -96px; height: 100%;
                                                transform: translateY(-50%); }
}

@media (min-width: 901px) and (max-width: 1279px) {
  .tarif-drugie .tarif-drugie-art.is-wide img { height: 62%; }
}
.tarif-drugie .tarif-drugie-art.is-wide img {
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, rgba(0,0,0,.18) 22%, rgba(0,0,0,.7) 40%, #000 56%),
      linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, rgba(0,0,0,.18) 22%, rgba(0,0,0,.7) 40%, #000 56%),
      linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
          mask-composite: intersect;
}

@media (min-width: 901px) and (max-width: 1279px) {
  .tarif-drugie .tarif-drugie-art img { left: 50%; height: 98%; }
}
.tarif-drugie-art img { display: block; width: 100%; height: auto; mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 62%, transparent 100%);
          mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 62%, transparent 100%); }
.tarif-drugie .vybor-row { padding-block: 20px; border-color: rgba(36, 70, 56, .22); }
.tarif-drugie .vybor-if { font-size: 17px; }
@media (max-width: 900px) {
  .tarif-fit .odinakovo { grid-template-columns: 1fr; }
  .tarif-drugie-inner { grid-template-columns: 1fr; }
  .tarif-drugie-art { width: 100%; max-width: 360px; justify-self: center; }
}

.format-rhythm .timeline-mark { background: var(--cream); }

.pair-row.pair-row-flip { direction: rtl; }
.pair-row.pair-row-flip > * { direction: ltr; }
.formaty-start .pair-copy h2 { margin: 0; }
.vybor-title { margin: 38px 0 0; font-size: var(--h4); line-height: 1.2; }
.vybor-list { margin-top: 14px; display: grid; border-bottom: 1px solid var(--line); }
.vybor-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px;
             padding: 14px 0; border-top: 1px solid var(--line); color: var(--ink);
             transition: color .2s ease; }
.vybor-row:hover .vybor-format strong { color: var(--apricot); }
.vybor-if { font-size: 15.5px; line-height: 1.45; color: #46544c; }
.vybor-format { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.vybor-format strong { font-size: 17px; font-weight: 600; line-height: 1.2; white-space: nowrap;
                       transition: color .2s ease; }
.vybor-format small { margin-top: 4px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
                      color: var(--muted); white-space: nowrap; }
.pair-row .vybor-note { margin-top: 18px; font-size: 15.5px; }
.formaty-start .pair-copy .button { margin-top: 24px; }

@media (max-width: 820px) {
  .formaty-start .pair-row figure { order: 0; margin: 0 0 26px; }
}
@media (max-width: 560px) {
  .vybor-row { grid-template-columns: 1fr; gap: 6px; }
  .vybor-format { align-items: flex-start; text-align: left; }
}

.vhodit .vhodit-more { display: flex; margin: 24px 0 0 auto; color: var(--forest); }
.vhodit .fakty-vazhno { background: var(--paper); box-shadow: 0 2px 14px rgba(31, 43, 37, .07); }

.formaty-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
                grid-auto-rows: 1fr; }
.formaty-card {
  display: grid; grid-template-columns: .82fr 1.18fr; align-items: stretch;
  border-radius: var(--radius-md); overflow: hidden; color: var(--ink);
  transition: transform .25s ease;
}
.formaty-card:hover { transform: translateY(-5px); }

.formaty-card:is(.sage, .apricot, .sun, .brick-light) { background: var(--sage-light); }

.formaty-card-art {
  position: relative; overflow: hidden; mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to right,
      #000 52%, rgba(0,0,0,.62) 78%, transparent 100%);
          mask-image: linear-gradient(to right,
      #000 52%, rgba(0,0,0,.62) 78%, transparent 100%);
}
.formaty-card-art img { width: 100%; height: 100%; object-fit: cover;
                        object-position: 50% 42%; }
.formaty-card-copy { padding: 28px 28px 26px; display: flex; flex-direction: column;
                     align-items: flex-start; }
.formaty-card-copy h2 { margin: 0; font-size: var(--h3); line-height: 1.06; }
.formaty-card-copy .format-price { margin: 9px 0 0; font-weight: 600; }
.formaty-card-copy > p:not(.format-price) { margin: 11px 0 0; max-width: 34ch;
                                            line-height: 1.5; color: #47544d; }
.formaty-card-copy .text-link { margin-top: auto; padding-top: 18px; }

.lager {
  margin-top: 52px; border-radius: var(--radius-md); overflow: hidden;
  background: var(--sun-pale); color: var(--forest-deep);
  display: grid; grid-template-columns: 1.15fr .85fr; align-items: stretch;
  transition: transform .25s ease; position: relative;
}
.lager:hover { transform: translateY(-5px); }
.lager-copy { padding: 32px 34px; display: flex; flex-direction: column;
              align-items: flex-start; justify-content: center; }
.lager h2 { margin: 0; font-size: var(--h4); }
.lager p { margin: 9px 0 0; max-width: 54ch; line-height: 1.55; color: #3f4a35; }
.lager strong { color: var(--forest-deep); }
.lager .text-link { margin-top: 20px; }

.badge {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 6px 13px 6px 10px; border-radius: 999px;
  background: var(--forest); color: var(--paper);
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .12em; transform: rotate(-2.5deg);
}

.lager > .badge, .referal > .badge {
  position: absolute; z-index: 1; top: 34px; right: -62px;
  width: 232px; padding: 7px 0; border-radius: 0; transform: rotate(45deg);
  box-shadow: 0 1px 3px rgba(31, 43, 37, .22);
}
.lager .button { margin-top: 22px; flex: none; }

.lager-art { position: relative; overflow: hidden; min-height: 190px; }

.lager-art {
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to left,
      #000 60%, rgba(0,0,0,.6) 86%, transparent 100%);
          mask-image: linear-gradient(to left,
      #000 60%, rgba(0,0,0,.6) 86%, transparent 100%);
}
.lager-art img { position: absolute; inset: 0;
                 width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; }

.lager-hero-image { background: var(--sun-pale); }

.parents-hero { padding-block: var(--hero-pad-top) 0; }
.parents-hero h1 { margin: 10px 0 0; font-size: var(--h2); line-height: 1.06; }
.parents-block { padding-block: 54px 0; }

.parents-block + .parents-block { padding-top: clamp(72px, 8vw, 110px); }
.parents-block:last-of-type { padding-bottom: clamp(78px, 10.7vw, 118px); }
.parents-block h2 { margin: 0; font-size: var(--h2); line-height: 1.06; }
.parents-note { margin: 12px 0 30px; max-width: 60ch; color: var(--muted); }

.excursions-inner { margin-top: 40px; display: grid;
                    grid-template-columns: 1fr minmax(0, 300px);
                    gap: clamp(30px, 4vw, 64px); align-items: stretch; }

.excursion { position: relative; overflow: hidden; isolation: isolate;
             padding: clamp(24px, 3vw, 38px);
             border-radius: var(--radius-lg); background: var(--paper);
             display: grid; grid-template-columns: minmax(0, 280px) 1fr;
             gap: clamp(24px, 3vw, 44px); align-items: center; }

.excursions-list { display: grid; gap: 18px; align-content: start; }
.excursion > *:not(.excursion-fon) { position: relative; z-index: 1; }

.excursion-text { margin: 12px 0 0; max-width: 48ch; color: var(--muted); line-height: 1.55; }

.sobytiya .excursions-inner { margin-top: 30px; }
.sobytiya .excursions-inner + .excursions-inner { margin-top: 18px; }
.sobytiya .parents-note { margin-bottom: 0; }
.sobytie-dlya { align-self: start; padding: 26px 28px; border-radius: var(--radius-lg);
                background: var(--sage-light); }
.sobytie-dlya h3 { margin: 0 0 10px; font-size: var(--h4); }
.sobytie-dlya p { margin: 0; line-height: 1.55; }

.excursion-fon {
  position: absolute; z-index: 0; right: -4%; bottom: -6%;
  width: 62%; mix-blend-mode: multiply; pointer-events: none;
  -webkit-mask-image: radial-gradient(120% 120% at 92% 96%,
      #000 26%, rgba(0,0,0,.5) 58%, transparent 88%);
          mask-image: radial-gradient(120% 120% at 92% 96%,
      #000 26%, rgba(0,0,0,.5) 58%, transparent 88%);
}
.excursion-fon img { display: block; width: 100%; height: auto; }

.excursion-poster { border-radius: var(--radius-md); overflow: hidden; }
.excursion-poster img { display: block; width: 100%; height: auto; }
.excursion-date { font-size: 12px; text-transform: uppercase;
                  letter-spacing: .1em; color: var(--apricot); font-weight: 600; }
.excursion h3 { margin: 10px 0 0; font-size: var(--h3); line-height: 1.08; }
.excursion-facts { margin: 22px 0 0; display: grid; gap: 13px;
                   grid-template-columns: repeat(2, minmax(0, 190px)); }
.excursion-facts > div { display: grid; gap: 3px; }
.excursion-facts dt { font-size: 12px; text-transform: uppercase;
                      letter-spacing: .1em; color: var(--muted); }
.excursion-facts dd { margin: 0; font-weight: 600; }
.excursion .button { margin-top: 26px; }

.excursion-none { margin: 0; display: grid; place-content: center;

                  padding: 26px 28px; min-height: 420px; text-align: center;
                  color: var(--muted); }
.excursion:has(.excursion-none) { grid-template-columns: 1fr; }

.excursions-list:has(> .excursion-none-wrap:not([hidden])) { align-content: stretch; }

.excursion-archive h3 { margin: 0 0 14px; font-size: var(--h4); }
.archive-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.archive-grid:has(> :only-child) { grid-template-columns: 1fr; }

.archive-photo.is-more { display: none; }
.archive-photo { padding: 0; border: 0; background: none; cursor: pointer;
                 border-radius: 14px; overflow: hidden; display: block;
                 box-shadow: 0 1px 6px rgba(31, 43, 37, .08); }
.archive-photo img { display: block; width: 100%; height: auto;
                     transition: transform .3s ease; }
.archive-photo:hover img { transform: scale(1.03); }

.archive-link { position: relative; text-decoration: none; }
.archive-link span { position: absolute; left: 10px; bottom: 10px; padding: 6px 11px;
                     border-radius: 999px; background: var(--forest); color: var(--paper);
                     font: 600 11px/1 "Rubik", sans-serif; letter-spacing: .04em; }
.archive-link:focus-visible { outline: 2px solid var(--apricot); outline-offset: 2px; }
.archive-all { display: inline-block; margin-top: 16px; font-size: 14px; font-weight: 600;
               color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }

.parents-mix { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.85fr);
               gap: clamp(30px, 4vw, 64px); align-items: stretch; }
.parents-posters { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr;
                   gap: 18px; align-content: start; }

.parents-posters .plakaty-h2 { grid-column: 1 / -1; margin: 0 0 6px; font-size: var(--h2); }
.parents-posters h3 { margin: 0; font-size: var(--h4); line-height: 1.15; }
.parents-posters .parents-note { margin: 4px 0 0; font-size: 14px; }
.parents-posters .rasporyadok-foto { margin-top: 14px; max-width: none; }
.parents-mix .referal h2 { font-size: var(--h3); }

@media (max-width: 1300px) {
  .parents-mix { grid-template-columns: 1fr; align-items: start; }
  .parents-posters { max-width: 560px; }
}

.rasporyadok-foto { margin: 0; max-width: 480px; border-radius: var(--radius-md);
                    overflow: hidden; box-shadow: 0 2px 14px rgba(31, 43, 37, .08); }
.rasporyadok-foto img { display: block; width: 100%; height: auto; }

.poster-open { display: block; width: 100%; padding: 0; border: 0;
               border-radius: 0; background: none; cursor: zoom-in; }
.poster-open img { height: auto; }
.poster-open:focus-visible { outline: 3px solid var(--forest); outline-offset: -3px; }
.holidays { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px;
            max-width: 640px; }
.holidays li { display: grid; grid-template-columns: 46px 132px 1fr;
               align-items: center; gap: 14px; padding: 14px 0;
               border-top: 1px solid var(--line); }
.holidays li:last-child { border-bottom: 1px solid var(--line); }
.holiday-mark { width: 40px; height: 40px; border-radius: 50%; display: grid;
                place-items: center; color: var(--apricot);
                box-shadow: inset 0 0 0 1px var(--line); }
.holidays time { font-weight: 600; font-variant-numeric: tabular-nums; }
.holiday-name { color: #47544d; }

.referal { position: relative; overflow: hidden;
           padding: 34px 36px; border-radius: var(--radius-md);
           background: var(--sage-light); }

.referal h2 { margin: 0; padding-right: 190px; }

.parents-right { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

.parents-art { position: relative; flex: 1 1 0; min-height: 150px; margin: 0; background: var(--cream); }

.parents-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  object-position: 50% 70%; mix-blend-mode: multiply;
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 16%, #000 84%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 16%, #000 84%, transparent 100%);
          mask-composite: intersect; }
.referal-mini { flex: none; }
.referal-mini .button { margin-top: 22px; }
@media (max-width: 900px) {
  .parents-art { flex: none; aspect-ratio: 3 / 1; min-height: 0; }
}

.referal-page { padding-block: 0 calc(var(--sec-gap) / 2); }
.referal-page .referal-lead { max-width: 70ch; }
@media (max-width: 820px) { .referal-page .referal-bonuses { grid-template-columns: 1fr; } }
.referal-lead { margin: 12px 0 0; max-width: 62ch; line-height: 1.6;
                color: #46544d; }

.referal-bonuses { margin-top: 26px; display: grid;
                   grid-template-columns: repeat(3, 1fr); gap: 14px; }
.referal-bonuses > div { padding: 18px 20px; border-radius: 14px;
                         background: var(--paper); }
.referal-bonuses span { font-size: 12px; text-transform: uppercase;
                        letter-spacing: .1em; color: var(--muted); }
.referal-bonuses p { margin: 6px 0 0; font-weight: 600; line-height: 1.45; }
.referal-steps { margin: 26px 0 0; padding-left: 20px; display: grid; gap: 10px;
                 max-width: 66ch; line-height: 1.55; color: #46544d; }
.referal-note { margin: 20px 0 0; max-width: 66ch; font-size: 15px;
                font-style: italic; color: var(--muted); }

.otzyvy { position: relative; isolation: isolate;
          padding-block: calc(var(--sec-gap) / 2); }
.otzyvy-visual {
  position: absolute; z-index: -1; inset: 0;
  left: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  right: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  overflow: hidden;

  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to top,
      #000 0%, rgba(0,0,0,.45) 46%, transparent 82%);
          mask-image: linear-gradient(to top,
      #000 0%, rgba(0,0,0,.45) 46%, transparent 82%);
}
.otzyvy-visual img { position: absolute; inset: 0;
                     width: 100%; height: 100%; object-fit: cover;
                     object-position: 50% 70%; }

.otzyvy .section-heading > p { max-width: 400px; color: #4d5a52; }

.otzyvy-frame { margin-top: 46px; max-width: 760px; display: grid;
                border-radius: var(--radius-lg); overflow: hidden;
                box-shadow: 0 2px 14px rgba(31, 43, 37, .07); }
.otzyvy-photo { display: none; }
.otzyvy > .text-link { display: inline-block; margin-top: 22px; }
@media (min-width: 1160px) {
  .otzyvy-frame { max-width: none; grid-template-columns: 760px 1fr; }
  .otzyvy-photo { display: block; position: relative; }
  .otzyvy-photo img { position: absolute; inset: 0; width: 100%; height: 100%;

                      object-fit: cover; object-position: 50% 58%; }
}
.otzyvy-embed {
  display: block; width: 100%; height: clamp(420px, 52vw, 620px); border: 0;

  background: var(--cream);
}

.fakty { background: var(--forest); color: #f8f4ec;
         padding-block: clamp(72px, 8vw, 108px);
         padding-top: calc(clamp(72px, 8vw, 108px) - 24px); }
.fakty .section-heading > p { max-width: 420px; }
.fakty-grid { margin-top: 46px; display: grid;
              grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }

.fakty-grid article { display: flex; flex-direction: column;
                      background: var(--paper); color: var(--ink);
                      border-radius: var(--radius-md); overflow: hidden; }

.fakt-art { height: 214px; background: var(--paper);
  -webkit-mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
}

.fakt-art img { display: block; width: 100%; height: 100%;
                object-fit: cover; object-position: 50% 72%;

                mix-blend-mode: multiply; }

.fakty-grid h3 { margin: -14px 24px 0; font-size: var(--h4); line-height: 1.12; }

.fakty-grid article:not(:has(.fakt-art)) h3 { margin-top: 26px; }
.fakty-grid p { margin: 12px 24px 26px; font-size: 16px; line-height: 1.55;
                color: #47544d; }
@media (max-width: 1100px) {
  .fakty-grid, .vhodit .fakty-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .fakty-grid { grid-template-columns: 1fr; }

  :is(.vhodit, .tarif-den, .hist-yazyk) .fakty-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  :is(.vhodit, .tarif-den, .hist-yazyk) .fakt-art { height: 104px; }
  :is(.vhodit, .tarif-den, .hist-yazyk) .fakty-grid h3 { margin: -8px 12px 0; font-size: var(--h4); line-height: 1.12; }
  :is(.vhodit, .tarif-den, .hist-yazyk) .fakty-grid p { margin: 6px 12px 12px; font-size: 14px; line-height: 1.45; }
  .vhodit .fakt-mark { margin: auto 12px 12px; padding: 4px 8px; font-size: 11.5px; gap: 5px; }
  .vhodit .fakt-mark::before { width: 5px; height: 5px; }
}

.fakty-note { margin: 30px 0 0; max-width: 62ch; font-size: 16px;
              line-height: 1.65; color: rgba(255, 253, 248, .8); }
.fakty-note .text-link { color: var(--sun); }

.fakty-vazhno { margin: 30px 0 0; padding: 18px 24px; border-radius: var(--radius-md);
                background: var(--paper); color: #4d5a52;
                font-size: 15.5px; line-height: 1.6; }
.fakty-vazhno span { display: block; margin-bottom: 4px; font-size: 12px;
                     font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
                     color: var(--apricot); }

.fakty .istoriya-frame { margin-top: 16px; max-width: none; color: var(--ink); }

.fakty-light { background: var(--cream); color: var(--ink);
               padding-top: calc(clamp(72px, 8vw, 108px) - 24px); }
.fakty-light .section-heading > p { color: #46544c; }
.fakty-light .fakty-grid article,
.fakty-light .istoriya-frame { box-shadow: 0 2px 14px rgba(31, 43, 37, .07); }

.istoriya { padding-block: calc(var(--sec-gap) / 2); }

.osobennosti + .istoriya { padding-top: 0; }

.osobennosti:has(+ .istoriya) { padding-bottom: 44px; }

.istoriya-text h2 { margin: 0 0 4px; font-size: var(--h3); line-height: 1.08; }

.istoriya-frame { max-width: 720px; display: grid;
                  border-radius: var(--radius-lg); overflow: hidden;
                  background: var(--paper);
                  box-shadow: 0 2px 14px rgba(31, 43, 37, .07); }
.istoriya-text { padding: clamp(28px, 3.4vw, 46px); display: grid;
                 gap: 18px; align-content: start; }
.istoriya-text p { margin: 0; font-size: 16.5px; line-height: 1.7;
                   color: #3f4a44; }

.istoriya-text .istoriya-note { margin-top: 4px; font-size: 13.5px;
                                line-height: 1.5; color: #5b6862; }

.istoriya-photo img { display: block; width: 100%; height: 220px;
                      object-fit: cover; object-position: 50% 45%; }
@media (min-width: 1000px) {

  .istoriya-frame:has(.istoriya-photo) { max-width: none;
    grid-template-columns: minmax(0, 1fr) .72fr; }
  .istoriya-photo { position: relative; }
  .istoriya-photo img { position: absolute; inset: 0; height: 100%; }
}

.pochemu { background: var(--forest); color: #f8f4ec;
           padding-block: clamp(72px, 8vw, 108px); }
.pochemu .section-heading > p { max-width: 420px; }

.pochemu .section-heading h2 { margin-top: 0; }
.pochemu-grid { margin-top: 56px; display: grid;
                grid-template-columns: repeat(3, 1fr); gap: 16px; }

.pochemu:not(.pochemu-principy) .pochemu-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pochemu:not(.pochemu-principy) .pochemu-grid > article { grid-column: span 2; }
.pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(3n + 1):nth-last-child(2) { grid-column: 2 / span 2; }

.pochemu-grid article { position: relative; padding: 28px 28px 30px;
                        border-radius: var(--radius-md);
                        background: var(--paper); color: var(--ink);

                        isolation: isolate; overflow: hidden;
                        display: flex; flex-direction: column; }

.pochemu-art { position: absolute; z-index: 0; pointer-events: none;
               right: -4%; bottom: -7%; width: 54%; height: 62%;
               mix-blend-mode: multiply; opacity: .5;
  -webkit-mask-image: linear-gradient(to top,
      #000 0%, rgba(0,0,0,.6) 55%, transparent 100%);
          mask-image: linear-gradient(to top,
      #000 0%, rgba(0,0,0,.6) 55%, transparent 100%);
}
.pochemu-art img { display: block; width: 100%; height: 100%;
                   object-fit: contain; object-position: 100% 100%; }

.pochemu-art-card { min-height: 160px; }
.pochemu-art-card .pochemu-art { position: absolute; inset: 0; width: auto; height: auto;

                                 padding: 18px; opacity: 1; mix-blend-mode: multiply;
                                 -webkit-mask-image: none; mask-image: none; }
.pochemu-art-card .pochemu-art img { object-fit: contain; object-position: 50% 50%; }

.pochemu-grid h3, .pochemu-grid article > p, .pochemu-grid ul {
  position: relative; z-index: 1;
}
.pochemu-grid h3 { margin: 0; font-size: var(--h4); line-height: 1.1; }
.pochemu-grid article > p { margin: 10px 0 0; font-size: 15.5px; line-height: 1.55;
                            color: var(--muted); }
.pochemu-grid ul { margin: 18px 0 0; padding: 0; list-style: none;
                   display: grid; gap: 9px; }
.pochemu-grid li { position: relative; padding-left: 18px; font-size: 15.5px;
                   line-height: 1.45; }

.pochemu-grid li::before {
  content: ""; position: absolute; left: 2px; top: .55em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--apricot);
}
.pochemu-note { margin: 34px 0 0; max-width: 70ch; font-size: 17px;
                line-height: 1.6; color: rgba(255, 253, 248, .8); }

.pochemu-principy .pochemu-grid { margin-top: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pochemu-principy .section-heading { padding: 6px 16px 0 0; flex-direction: column;
                                     align-items: start; justify-content: start; gap: 20px; }
.pochemu-principy .section-heading > p { max-width: none; margin: 0; font-size: 15px;
                                         line-height: 1.6; }

.pochemu-principy .section-heading h2 { margin-top: 0; font-size: var(--h3); }

.pochemu-principy article > p { margin-top: 14px; font-size: 16px; color: #4d5a52; }
@media (max-width: 1279px) {
  .pochemu-principy .pochemu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .pochemu-principy .pochemu-grid { grid-template-columns: 1fr; }
  .pochemu-principy .section-heading { padding: 0 0 12px; }
}

.detail-hero {
  min-height: 730px; padding-block: var(--hero-pad-top) 92px; display: grid; grid-template-columns: 1fr .86fr;
  column-gap: clamp(50px, 8vw, 120px); row-gap: 0; align-items: center; grid-template-rows: auto 1fr;
}
.detail-hero-copy h1, .info-hero h1 { margin: 0; font-size: var(--h1); line-height: .95; max-width: 800px; }
.detail-hero-copy > p, .info-hero > div > p { max-width: 660px; margin: 30px 0 0; font-size: 19px; line-height: 1.62; color: #4d5a52; }
.detail-chips { margin: 33px 0; display: flex; gap: 9px; flex-wrap: wrap; }
.detail-chips span { padding: 10px 15px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; }
.detail-hero-image { position: relative; padding: 12px 12px 50px; background: var(--paper); border-radius: 210px 210px 24px 24px; }
.detail-hero-image img { width: 100%; height: 540px; object-fit: cover; border-radius: 200px 200px 18px 18px; }
.detail-hero-image > span { position: absolute; bottom: 17px; left: 28px; font-size: 11.5px; color: var(--muted); }
.detail-fit { padding-block: clamp(78px, 10vw, 110px); display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(70px, 11vw, 170px); align-items: start; }
.check-list { display: grid; border-top: 1px solid var(--line); }
.check-list > div { padding: 24px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 34px 1fr; gap: 16px; }
.check-list span { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: white; font-size: 11px; }
.check-list p { margin: 0; font-size: 17px; line-height: 1.55; }
.included-section { background: var(--forest); color: #f7f2e8; padding: clamp(78px, 10vw, 110px) max(32px, calc((100vw - 1420px) / 2)); }
.included-inner { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(70px, 10vw, 160px); }
.included-section > .included-inner > div:first-child p { max-width: 430px; color: rgba(255,255,255,.62); line-height: 1.6; }
.included-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.included-grid > div { min-height: 180px; padding: 24px; border-radius: 18px; background: rgba(255,255,255,.07); display: flex; flex-direction: column; justify-content: space-between; }
.included-grid span { color: var(--sun); font-size: 11.5px; }
.included-grid h3 { font-size: var(--h4); line-height: 1.15; }
.format-rhythm { padding-block: clamp(78px, 11.1vw, 122px); display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(70px, 10vw, 160px); }
.format-rhythm-heading > p { max-width: 430px; margin-top: 28px; color: var(--muted); line-height: 1.6; }
.detail-cta { padding: clamp(82px, 10.5vw, 115px) 32px; text-align: center; background: var(--apricot); color: var(--forest-deep); }
.detail-cta > div { max-width: 900px; margin: auto; }
.cta-script { display: inline-block; margin-bottom: 18px; color: var(--cream); font: italic 18px "Rubik", sans-serif; transform: rotate(-2deg); }
.detail-cta h2 { margin: 0; font-size: var(--h2); line-height: 1.04; }
.detail-cta p { max-width: 600px; margin: 26px auto 32px; line-height: 1.6; }
.other-formats { padding-block: clamp(78px, 9.8vw, 108px); }
.other-formats h2 { margin-bottom: 46px; }
.other-format-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.other-format-card { min-height: 280px; padding: 28px; border-radius: 22px; position: relative; display: flex; flex-direction: column; justify-content: flex-end; }
.other-format-card:is(.sage, .apricot, .sun, .brick-light) { background: var(--sage-light); }
.other-format-card > span { margin-bottom: auto; font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; }
.other-format-card h3 { font-size: var(--h3); }
.other-format-card p { max-width: 480px; color: var(--muted); }

.info-hero { min-height: calc(100vh - var(--header-h));
             min-height: calc(100svh - var(--header-h)); padding-block: var(--hero-pad-top) var(--info-pad-bottom); display: grid; grid-template-columns: 1.06fr .94fr; column-gap: clamp(60px, 8vw, 120px); row-gap: 0; align-items: center; grid-template-rows: auto 1fr; }
.info-hero .button { margin-top: 34px; }

.error-hero { padding-block: clamp(16px, 3vw, 40px) var(--sec-gap); display: grid;
              justify-items: center; text-align: center; }
.error-art { width: min(100%, 880px); margin: 0; }
.error-art img { display: block; width: 100%; height: auto; mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 8%, #000 68%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 8%, #000 68%, transparent 100%);
          mask-composite: intersect; }
.error-copy { max-width: 520px; margin-top: 4px; }
.error-copy h1 { font-size: var(--h2); line-height: 1.06; text-wrap: balance; }
.error-copy p { margin-top: 16px; color: var(--muted); line-height: 1.6; }
.error-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 22px;
                 margin-top: 28px; }
.error-buttons .button { margin: 0; }

.info-hero > div > .info-hero-sub { margin: 20px 0 0; font-size: var(--h4);
                                    font-weight: 600; line-height: 1.25; color: var(--ink);

                                    text-wrap: balance; }
.info-hero-sub em { font-style: italic; color: var(--apricot); }

.info-hero-intro { max-width: 620px; margin: 22px 0 0; line-height: 1.66;
                   color: var(--muted); }

.info-hero > .breadcrumbs, .nutrition-hero > .breadcrumbs,
.detail-hero > .breadcrumbs { grid-row: 1; grid-column: 1 / -1; }
.info-hero > div:not(.breadcrumbs), .nutrition-hero-copy, .detail-hero-copy {
  grid-row: 2; grid-column: 1;
}

.info-hero:has(.hero-art) > div:not(.breadcrumbs) {
  grid-column: 1 / -1; max-width: 820px; position: relative; z-index: 1;
}
.info-hero > figure, .nutrition-hero > figure, .detail-hero > .detail-hero-image {
  grid-row: 1 / -1; grid-column: 2;
}

.info-hero > div:not(.breadcrumbs), .detail-hero-copy, .nutrition-hero-copy { align-self: start; }
.info-hero figure { margin: 0; padding: 12px 12px 46px; background: var(--paper); border-radius: var(--radius-lg); transform: rotate(1deg); }
.info-hero figure img { width: 100%; height: 550px; border-radius: 24px; object-fit: cover; }
.info-hero figcaption { padding: 16px 12px 0; color: var(--muted); font-size: 12px; }

.info-hero { --info-pad-top: var(--hero-pad-top); --info-pad-bottom: 100px; }
.info-hero figure.hero-art {
  padding: 0; transform: none; border-radius: 0;

  background: var(--cream);
  position: relative; align-self: stretch; overflow: hidden;

  margin-block: calc(var(--info-pad-top) * -1) calc(var(--info-pad-bottom) * -1);
  margin-right: calc((100vw - min(1420px, 100vw - 64px)) / -2);

  margin-left: -30%;
  -webkit-mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
          mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
}

.info-hero figure.hero-art img {
  mix-blend-mode: multiply;
  position: absolute; inset: 0; border-radius: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: 46% 50%;
}

.info-hero figure.hero-art-wide { align-self: start; margin-block: 84px 0; margin-left: -34%;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 9%);
          mask-image: linear-gradient(to right, transparent 0%, #000 9%); }
.info-hero figure.hero-art-wide img { position: static; display: block; height: auto; }
.info-hero figure.hero-art-wide .hero-mark { left: auto; right: 7%; bottom: -1%; transform: rotate(-3deg); }

@media (min-width: 821px) and (max-width: 1279px) {
  .info-hero:has(.hero-art-wide) { grid-template-rows: auto auto auto; }
  .info-hero figure.hero-art-wide { grid-row: 3; grid-column: 1 / -1; justify-self: start;
    width: min(100%, 900px); margin: 40px 0 0; }
}

.info-hero figure .hero-mark { position: absolute; z-index: 1;
  left: 44%; bottom: 20%; margin: 0;
  font-size: clamp(22px, 2.2vw, 32px); color: var(--forest);
  white-space: nowrap; transform: rotate(-6deg); }
@media (max-width: 999px) {

  .info-hero figure .hero-mark { left: auto; right: 8%; bottom: 3%; }

  .info-hero figure.hero-art.hero-art-wide { aspect-ratio: auto; height: auto; margin-top: 28px; }
  .info-hero:has(.hero-art-wide) { padding-bottom: 36px; }
}
.info-sections { padding-block: clamp(78px, 10vw, 110px); display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 80px; }
.info-sections article { min-height: 320px; padding: 28px 0; border-top: 1px solid var(--line); }
.info-sections article > span { color: var(--apricot); font-size: 11.5px; }

.pairs-section { padding-block: calc(var(--sec-gap) / 2); display: grid; gap: clamp(38px, 4vw, 60px); }

.pairs-heading { margin-bottom: calc(-1 * clamp(10px, 1.5vw, 20px)); }
.pairs-heading h2 { margin-top: 0; }
.pairs-heading > p { max-width: 400px; color: var(--muted); }
.pair-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 92px);

  align-items: center;
}
.pair-row:nth-child(even) { direction: rtl; }
.pair-row:nth-child(even) > * { direction: ltr; }

@media (max-width: 820px) { .pair-copy h2 br { display: none; } }

.pair-row figure { margin: 0; background: var(--cream); }

.pair-row img {

  width: calc(100% * var(--art, 1)); height: auto; margin-inline: auto;
  mix-blend-mode: multiply;
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 16%, #000 84%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 16%, #000 84%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
          mask-composite: intersect;
}

.pair-row figure.pair-photo { background: none; }
.pair-row figure.pair-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: var(--radius-md); mix-blend-mode: normal;
  -webkit-mask-image: none; mask-image: none; }

.pair-media { display: flex; flex-direction: column; gap: 24px; }

.pair-media:has(.pair-link) { align-self: stretch; }

.pair-row-center > .pair-media { align-self: center; }
.pair-row h2 { font-size: var(--h2); }
.pair-row p { margin: 24px 0 0; max-width: 46ch; line-height: 1.66; color: #46544c; }

.pair-link {
  flex: 1; display: grid; grid-template-columns: 1fr;
  border-radius: var(--radius-md); background: var(--sage-light);
  color: var(--forest-deep); overflow: hidden; transition: transform .2s ease;
}
.pair-link.has-photo { grid-template-columns: 1fr minmax(0, .82fr); }
.pair-link:hover { transform: translateY(-3px); }
.pair-link-text { display: flex; flex-direction: column; gap: 8px;
                  padding: 26px 26px 24px; }

.pair-link-text .pair-link-go { margin-top: auto; }

.pair-link-photo { position: relative; min-height: 180px; }

.pair-row .pair-link-photo.is-art img {
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 30%);
          mask-image: linear-gradient(to right, transparent 0%, #000 30%);
}
.pair-row .pair-link-photo img {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
  object-fit: cover; object-position: 45% 40%;
  mix-blend-mode: normal; -webkit-mask-image: none; mask-image: none;
}
.pair-link-text > span:first-child { font-size: 12px; text-transform: uppercase;
                                letter-spacing: .1em; color: var(--muted); }
.pair-link strong { font-size: 19px; font-weight: 600; line-height: 1.25; }
.pair-link-go { width: fit-content; font-size: 14px;
                font-weight: 600; color: var(--forest);
                border-bottom: 1px solid currentColor; padding-bottom: 5px; }

aside.pair-note:hover { transform: none; }
.pair-note.has-photo { grid-template-columns: 1fr minmax(0, .5fr); }
.pair-note .pair-link-text { padding: 24px 0 22px 26px; }
.pair-row .pair-note p { margin: 2px 0 6px; max-width: none;
                         font-size: 16px; line-height: 1.5;
                         color: var(--forest-deep); }

.pair-list { margin: 20px 0 0; padding: 0; max-width: 46ch;
             list-style: none; display: grid; gap: 11px; }
.pair-list li { position: relative; padding-left: 20px;
                line-height: 1.6; color: #46544c; }
.pair-list li::before {
  content: ""; position: absolute; left: 2px; top: .62em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--apricot);
}
.pair-list b { color: var(--ink); }

.pair-list-two { max-width: none; columns: 2; column-gap: 40px;
                 display: block; }
.pair-list-two li { break-inside: avoid; margin-bottom: 11px; }

.perebivka { background: var(--forest); color: var(--cream);
             padding-block: clamp(56px, 6vw, 84px); }
.perebivka .cta-script { display: block; margin: 0 0 16px; opacity: .8; }

.perebivka blockquote p { font-size: var(--h3); line-height: 1.2;
                          font-weight: 600; letter-spacing: -.01em;
                          text-wrap: balance; }

.perebivka .section-shell { text-align: center; }
.perebivka blockquote { margin: 0; }
.perebivka blockquote span { display: inline-block; }

.perebivka-more { max-width: 60ch; margin: 18px auto 0; font-size: 16.5px;
                  line-height: 1.65; color: rgba(255, 253, 248, .8);
                  text-wrap: balance; }
.perebivka .button { margin-top: 28px; }

.perebivka-sun .perebivka-more { color: #3f4a44; }

.perebivka-sun { position: relative; isolation: isolate; overflow: hidden;
                 background: var(--sun); color: var(--ink); }
.perebivka-sun .cta-script { opacity: .7; }

.perebivka-sun .section-shell { position: relative; z-index: 1; }

.perebivka-art { position: absolute; z-index: 0; inset-block: 0; right: 0;
                 width: min(300px, 26%); pointer-events: none;
                 mix-blend-mode: multiply; opacity: .9;
  -webkit-mask-image: linear-gradient(to left, #000 45%, transparent 100%);
          mask-image: linear-gradient(to left, #000 45%, transparent 100%);
}
.perebivka-art img { display: block; width: 100%; height: 100%;
                     object-fit: contain; object-position: 100% 50%; }
@media (max-width: 820px) {

  .perebivka-art { width: 46%; right: -10%; opacity: .3; }
}
@media (max-width: 640px) {

  .perebivka blockquote span { display: block; }
}

.sovety { padding-block: calc(var(--sec-gap) / 2); }

.sovety + .otzyvy { padding-top: calc(var(--sec-gap) / 4); }
.sovety .section-heading { flex-direction: column; align-items: start; gap: 18px; }
.sovety .section-heading > p { max-width: 52ch; margin: 0; color: #4d5a52; }

.sovety-grid { margin-top: 52px; display: grid; grid-template-columns: 1fr 1fr;
               column-gap: clamp(40px, 5vw, 84px); counter-reset: sovet; }
.sovety-col { display: flex; flex-direction: column; }
.sovety-list { margin: 0; padding: 0; list-style: none; }

.sovety-art { position: relative; flex: 1 0 auto; aspect-ratio: 2000 / 848;
              margin: 0 0 38px; background: var(--cream); }

.sovety-art img { position: absolute; inset: 0; width: 100%; height: 100%;
                  object-fit: contain; object-position: 50% 100%;
                  mix-blend-mode: multiply;
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 12%, #000 90%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 12%, #000 90%, transparent 100%);
          mask-composite: intersect;
}
.sovety-list > li { break-inside: avoid; margin-bottom: 38px;
                    padding-left: 42px; position: relative; }
.sovety-list > li::before {
  counter-increment: sovet; content: counter(sovet);
  position: absolute; left: 0; top: 1px;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--sage-light); color: var(--forest);
  font-size: 13px; font-weight: 600;
  display: grid; place-items: center;
}
.sovety-list h3 { margin: 0 0 10px; font-size: var(--h4); line-height: 1.2; }
.sovety-list p { margin: 0 0 12px; line-height: 1.62; color: #46544c; }
.sovety-list p:last-child { margin-bottom: 0; }

.plain-sections { padding-bottom: 96px; display: grid; gap: 34px; max-width: 760px; }
.plain-sections h3 { font-size: var(--h3); }
.plain-sections p { margin: 10px 0 0; line-height: 1.66; color: var(--muted); }

.info-sections h2 { font-size: var(--h2); }
.info-sections p { max-width: 560px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.info-cta { background: var(--sage); }

.cta-with-form {
  padding: clamp(82px, 9.5vw, 104px) max(32px, calc((100vw - 1420px) / 2));
  text-align: left;
  display: grid; grid-template-columns: 1.02fr .98fr;
  gap: clamp(48px, 7vw, 104px); align-items: center;
}

.cta-with-form > div { max-width: none; margin: 0; }
.cta-with-form p { max-width: 520px; margin: 26px 0 0; }
.cta-with-form .contact-actions-solid { margin-top: 32px; }

.cta-with-form .cta-title { max-width: 520px; text-align: center; }
.cta-with-form .cta-script {
  display: block; margin: 0 0 18px; text-align: center;
}

.nutrition-hero { min-height: 760px; padding-block: var(--hero-pad-top) 100px; display: grid; grid-template-columns: .96fr 1.04fr; column-gap: clamp(60px, 8vw, 120px); row-gap: 0; align-items: center; grid-template-rows: auto 1fr; }
.nutrition-hero h1 { margin-top: 0; max-width: 790px; font-size: var(--h1); line-height: .95; }
.nutrition-hero-copy > p { max-width: 680px; margin: 30px 0 0; color: #4d5a52; font-size: 19px; line-height: 1.62; }

.nutrition-hero figure {
  margin: 0; padding: 0; transform: none; background: var(--cream);
  -webkit-mask-image: radial-gradient(farthest-corner at 50% 46%,
      #000 40%, rgba(0,0,0,.5) 72%, transparent 94%);
          mask-image: radial-gradient(farthest-corner at 50% 46%,
      #000 40%, rgba(0,0,0,.5) 72%, transparent 94%);
}
.nutrition-hero figure img { width: 100%; height: auto; border-radius: 0;
                             mix-blend-mode: multiply; }

.nutrition-actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 14px;
                     align-items: center; }
.nutrition-actions .button { margin-top: 0; }

.menu-section { padding-block: clamp(56px, 6vw, 90px);
                scroll-margin-top: calc(var(--header-h) - 8px); }
.menu-section .section-heading > p { max-width: 420px; color: #4d5a52; }
.menu-section h2 { margin: 0; font-size: var(--h2); line-height: 1.06; }
.menu-week { margin-top: 38px; }
.menu-week h3 { margin: 0 0 12px; font-size: var(--h4); line-height: 1.1; }
.menu-scroll { overflow-x: auto; }
.menu-table { width: 100%; min-width: 760px; border-collapse: collapse;
              font-size: 15.5px; line-height: 1.45; }
.menu-table th, .menu-table td { padding: 10px 12px; text-align: left;
                                 vertical-align: top;
                                 border: 1px solid rgba(31, 43, 37, .14); }
.menu-table thead th { font-size: 12px; letter-spacing: .04em; font-weight: 600;
                       background: var(--sage-light); }

.menu-table tbody th { width: 104px; font-size: 12px; letter-spacing: .1em;
                       text-transform: uppercase; font-weight: 600;
                       background: var(--cream); }

.menu-table .menu-all { text-align: center; background: var(--cream); }
.menu-table ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
@media (max-width: 640px) {

  .menu-table .menu-all { text-align: left; }
}

.nutrition-hero:has(figure.hero-art) { min-height: calc(100vh - var(--header-h));
                                       min-height: calc(100svh - var(--header-h)); }

@media (min-width: 821px) and (max-width: 1366px) {
  .info-hero, .nutrition-hero:has(figure.hero-art) {
    min-height: min(calc(100vh - var(--header-h)), 820px);
    min-height: min(calc(100svh - var(--header-h)), 820px);
  }
}
.nutrition-hero figure.hero-art {
  position: relative; align-self: stretch; overflow: hidden;

  margin-block: calc(var(--hero-pad-top) * -1) -100px;
  margin-right: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  margin-left: -26%;
  -webkit-mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
          mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 12%, rgba(0,0,0,.75) 24%, #000 36%);
}
.nutrition-hero figure.hero-art img { height: 100%; object-fit: cover;
                                      object-position: 50% 50%; }

.nutrition-hero:has(figure.hero-art) .nutrition-hero-copy {
  grid-column: 1 / -1; max-width: 820px; position: relative; z-index: 1;
}
.nutrition-hero figcaption { padding: 16px 12px 0; color: var(--muted); font-size: 12px; }
.nutrition-facts { margin: 32px 0; display: flex; flex-wrap: wrap; gap: 9px; }
.nutrition-facts span { padding: 10px 15px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; }
.nutrition-intro { padding-block: 100px; background: var(--forest); color: #f8f3ea; }
.nutrition-intro .section-shell { display: grid; grid-template-columns: 150px 1fr; gap: 40px; align-items: start; }
.nutrition-intro span { color: var(--sun); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; }
.nutrition-intro p { max-width: 1120px; margin: 0; font-size: clamp(28px, 3.2vw, 47px); line-height: 1.3; letter-spacing: -.025em; }
.nutrition-sections { padding-block: 110px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 80px; }
.nutrition-sections article { min-height: 330px; padding: 28px 0; border-top: 1px solid var(--line); }
.nutrition-sections article > span { color: var(--apricot); font-size: 11.5px; }
.nutrition-sections h2 { margin-top: 24px; font-size: var(--h2); line-height: 1.05; }
.nutrition-sections p { max-width: 590px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.nutrition-sections a { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: 13px; font-weight: 650; }
.nutrition-related { padding-bottom: 120px; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 8vw, 120px); }
.nutrition-related h2 { font-size: var(--h2); }
.nutrition-related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.nutrition-related-grid a { min-height: 280px; padding: 26px; border-radius: 22px; background: var(--sage-light); display: flex; flex-direction: column; position: relative; }
.nutrition-related-grid a:nth-child(2) { background: var(--apricot-light); }
.nutrition-related-grid span { font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.nutrition-related-grid h3 { margin-top: auto; max-width: 360px; font-size: var(--h3); line-height: 1.08; }

.osobennosti { padding-block: clamp(56px, 6vw, 90px); }
.osob-grid { margin-top: 44px; display: grid; grid-template-columns: 1fr 1fr;
             gap: 16px; }
.osob-card { display: flex; flex-direction: column; overflow: hidden;
             border-radius: var(--radius-md); background: var(--paper);
             color: var(--ink); transition: transform .3s ease; }
.osob-card:hover { transform: translateY(-4px); }
.osob-art { height: 210px; background: var(--paper);
  -webkit-mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
}
.osob-art img { display: block; width: 100%; height: 100%; object-fit: cover;
                object-position: 50% 60%; mix-blend-mode: multiply; }
.osob-copy { padding: 0 28px 30px; display: flex; flex-direction: column;
             flex: 1; }

.osob-copy h3 { margin: -18px 0 0; font-size: var(--h3); line-height: 1.1; }
.osob-copy p { margin: 14px 0 0; font-size: 16px; line-height: 1.6; color: #46544c; }
.osob-copy .text-link { margin-top: auto; padding-top: 22px; }
@media (max-width: 820px) {
  .osob-grid { grid-template-columns: 1fr; }
}

.za-stolom { padding-block: clamp(56px, 6vw, 90px); }

.za-stolom-top { display: grid; gap: clamp(20px, 3vw, 44px); align-items: start; }
.za-stolom-copy { max-width: 52ch; }
.za-stolom-copy .section-heading { display: block; }
.za-stolom-copy .section-heading h2 { margin-top: 0; }
.za-stolom-copy > p { margin: 20px 0 0; font-size: 17px; line-height: 1.7;
                      color: #46544c; }

.za-stolom-art { background: var(--cream); aspect-ratio: 1 / 1; }
.za-stolom-art img { display: block; width: 100%; height: 100%; object-fit: cover;
                     mix-blend-mode: multiply;
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 22%, #000 78%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 22%, #000 78%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
          mask-composite: intersect;
}

.za-stolom-plates { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
                    gap: 16px; }
.za-stolom-plates article { padding: 26px 24px 28px; border-radius: var(--radius-md);
                            background: var(--paper); color: var(--ink);
                            display: flex; flex-direction: column; }
.za-stolom-plates h3 { margin: 0; font-size: var(--h4); line-height: 1.1; }
.za-stolom-plates p { margin: 12px 0 0; font-size: 16px; line-height: 1.6;
                      color: #4d5a52; }

.za-stolom-plates .za-stolom-fraza { justify-content: center;
                                     text-align: center; }
.za-stolom-fraza h3 { color: var(--apricot); font-style: italic;
                      text-wrap: balance; }
@media (min-width: 1000px) {
  .za-stolom-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

  .za-stolom-art { margin: -60px -2vw 0 0; aspect-ratio: 4 / 3; }
  .za-stolom-art img { object-position: 50% 15%; }

  .za-stolom-plates { margin-top: -36px; position: relative; z-index: 1; }
}
@media (min-width: 1000px) and (max-width: 1199px) {

  .za-stolom-plates { margin-top: 0; }
}
@media (max-width: 999px) {
  .za-stolom-plates { margin-top: 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .za-stolom-art { width: 100%; max-width: 560px; margin-inline: auto; }
}
@media (max-width: 600px) {
  .za-stolom-plates { grid-template-columns: 1fr; }
}

.faq { padding-block: clamp(64px, 7vw, 100px); }

.za-stolom + .faq, .menu-section + .faq { padding-top: 0; }

.faq + .landing-map { padding-top: 0; }
.faq-grid { display: grid; gap: 28px; }

.faq { isolation: isolate; }
.faq-grid { position: relative; }
.faq-head, .faq-list { position: relative; z-index: 1; }

.faq-art { position: relative; z-index: 0; pointer-events: none;
           margin-top: 72px; width: calc(100% + 80px);
           height: min(700px, 42vw); background: var(--cream); }

.faq-art img { display: block; width: 100%; height: 100%; object-fit: contain;
               object-position: 8% 100%; mix-blend-mode: multiply; }

.faq-head .section-heading { display: block; }
.faq-head .section-heading h2 { margin-top: 0; }

.faq-list { padding: 8px clamp(20px, 2.6vw, 36px);
            border-radius: var(--radius-lg);
            background: rgba(255, 253, 248, .8);
            -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
            box-shadow: 0 2px 14px rgba(31, 43, 37, .07); }
.faq-item + .faq-item { border-top: 1px solid var(--line); }
.faq-item summary { list-style: none; cursor: pointer;
                    display: flex; align-items: center; justify-content: space-between;
                    gap: 24px; padding: 22px 0;
                    font-size: 18px; font-weight: 500; line-height: 1.4;
                    color: var(--ink); }
.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
  content: ""; flex: none; width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--line);
  background:
    linear-gradient(var(--forest), var(--forest)) center / 12px 1.5px no-repeat,
    linear-gradient(var(--forest), var(--forest)) center / 1.5px 12px no-repeat;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}
.faq-item summary:hover::after { border-color: var(--forest); }
.faq-item[open] summary::after { transform: rotate(45deg);
                                 background-color: var(--sun); border-color: var(--sun); }
.faq-item summary:focus-visible { outline: 2px solid var(--forest);
                                  outline-offset: 4px; border-radius: 8px; }
.faq-answer { padding: 0 62px 26px 0; }
.faq-answer p { margin: 0; max-width: 64ch; font-size: 16px; line-height: 1.7;
                color: #46544c; }
.faq-answer .text-link { margin-top: 14px; color: var(--forest); }
@media (min-width: 1000px) {
  .faq-grid { grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); gap: 56px; }

  .faq-head { align-self: start; }

  .faq-list { align-self: start; }
}
@media (max-width: 999px) {

  .faq-art { display: none; }
  .faq-head { padding-bottom: 0; }
}
@media (max-width: 600px) {
  .faq-item summary { font-size: 16.5px; padding: 18px 0; gap: 16px; }
  .faq-answer { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-item summary::after { transition: none; }
}

.nutrition-cta { background: var(--sage); }

@media (max-width: 1100px) {
  .intro-section { gap: 52px; }

  .pochemu-grid { grid-template-columns: repeat(2, 1fr); }
  .pochemu:not(.pochemu-principy) .pochemu-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(3n + 1):nth-last-child(2) { grid-column: span 2; }
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(2n + 1):last-child { grid-column: 2 / span 2; }

  .detail-hero, .info-hero { column-gap: 52px; }
  .zone-card { height: 540px; }

  .footer-top { grid-template-columns: 1fr; gap: 48px; }
  .footer-links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .section-shell, .day-inner { width: min(100% - 40px, 1420px); }
  .site-header { width: min(100% - 40px, 1420px); }

  .reggio-section { grid-template-columns: 1fr; gap: 34px; }
  .reggio-visual {
    margin-block: calc(var(--reggio-pad) * -1) 0;
    margin-inline: calc((100vw - min(1420px, 100vw - 64px)) / -2);
    min-height: 340px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 62%, rgba(0,0,0,.45) 84%, transparent 100%);
            mask-image: linear-gradient(to bottom, #000 0%, #000 62%, rgba(0,0,0,.45) 84%, transparent 100%);
  }
  .reggio-visual img { position: static; height: 340px; object-position: 45% 46%; }

  .landing-page .reggio-copy { order: 1; }

  .landing-page .reggio-visual {
    order: 2; margin-block: 0 calc(var(--reggio-pad) * -1);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 22%, #000 72%, transparent 100%);
            mask-image: linear-gradient(to bottom, transparent 0%, #000 22%, #000 72%, transparent 100%);
  }

  .contacts-main { grid-template-columns: 1fr; column-gap: 40px; row-gap: 0; }
  .contacts-main > h1 { margin-bottom: 30px; }

  .contacts-map { margin-top: 44px; }
  .contacts-visual {
    left: calc((100vw - min(1420px, 100vw - 64px)) / -2);
    -webkit-mask-image: linear-gradient(to bottom,
        transparent 0%, rgba(0,0,0,.2) 16%, rgba(0,0,0,.7) 34%, #000 52%,
        #000 calc(100% - 150px), transparent 100%);
            mask-image: linear-gradient(to bottom,
        transparent 0%, rgba(0,0,0,.2) 16%, rgba(0,0,0,.7) 34%, #000 52%,
        #000 calc(100% - 150px), transparent 100%);
  }

  .intro-section, .day-inner, .adaptation-section,
  .detail-hero, .detail-fit, .included-inner, .format-rhythm, .info-hero,
  .nutrition-home-inner, .nutrition-hero, .nutrition-related {
    grid-template-columns: 1fr;
  }

  .detail-hero, .info-hero, .nutrition-hero {
    row-gap: 52px; grid-template-rows: none; align-content: start;
  }

  .info-hero > .breadcrumbs, .nutrition-hero > .breadcrumbs, .detail-hero > .breadcrumbs,
  .info-hero > div:not(.breadcrumbs), .nutrition-hero-copy, .detail-hero-copy,
  .info-hero > figure, .nutrition-hero > figure, .detail-hero > .detail-hero-image {
    grid-row: auto; grid-column: auto;
  }
  .detail-hero > .breadcrumbs, .info-hero > .breadcrumbs,
  .nutrition-hero > .breadcrumbs { margin-bottom: -14px; }

  .info-hero figure.hero-art, .nutrition-hero figure.hero-art {
    margin: -36px 0 0; align-self: auto; width: 100%; aspect-ratio: 4 / 3;
    -webkit-mask-image:
        linear-gradient(to right, transparent 0%, #000 14%, #000 86%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 6%, #000 86%, transparent 100%);
    -webkit-mask-composite: source-in;
            mask-image:
        linear-gradient(to right, transparent 0%, #000 14%, #000 86%, transparent 100%),
        linear-gradient(to bottom, transparent 0%, #000 6%, #000 86%, transparent 100%);
            mask-composite: intersect;
  }
  .zone-stack { max-width: 680px; }

  .intro-copy { display: contents; }

  .intro-section { row-gap: 0; }
  .zone-stack { order: 1; margin-top: 46px; }
  .intro-copy > .zone-copy { order: 2; }

  .intro-copy > .team-more { order: 3; margin-top: 20px; }
  .gallery-heading, .section-heading { align-items: flex-start; flex-direction: column; }
  .day-title { position: static; }

  .adaptation-aside { display: contents; }
  .adaptation-photo { order: -1;

    -webkit-mask-image: none; mask-image: none; }
  .adaptation-aside .contact-actions { order: 1; margin: 0; padding: 0 20px 72px; }

  .adaptation-aside .contact-actions .button { width: 100%; }
  .pair-row { grid-template-columns: 1fr; }
  .pair-row:nth-child(even) { direction: ltr; }

  .pair-media { display: contents; }

  .pair-copy { order: 1; }
  .pair-row figure { order: 2; margin-top: 26px; }
  .pair-link { order: 3; margin-top: 8px; }

  .pair-link.has-photo { grid-template-columns: 1fr; }
  .pair-link-photo { order: -1; min-height: 0; aspect-ratio: 16 / 9; }

  .pair-row .pair-link-photo.is-art img {
    -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
            mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
  }
  .pair-link-text .pair-link-go { margin-top: 10px; }
  .pair-note .pair-link-text { padding: 22px 24px 24px; }

  .visit-steps { grid-template-columns: 1fr; gap: 34px; }
  .visit-steps > li { padding: 0 0 0 62px; }
  .visit-steps > li .visit-mark { position: absolute; left: 0; top: 0; }
  .visit-steps > li::before { left: 22px; right: auto; top: 52px; bottom: -34px;
                              width: 1px; height: auto; }
  .visit-steps h3 { margin-top: 4px; }
  .detail-hero-image, .info-hero figure { max-width: 680px; }
  .detail-fit { gap: 56px; }
  .included-grid { grid-template-columns: 1fr 1fr; }
  .other-format-grid { grid-template-columns: 1fr; }

  .sovety-grid { grid-template-columns: 1fr; }

  .sovety-art { flex: none; aspect-ratio: 2000 / 848; }
  .pair-list-two { columns: 1; }

  .nutrition-card-grid { grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; }
  .nutrition-card-grid > a { grid-row: auto; min-height: 300px;
                             display: flex; flex-direction: column; justify-content: flex-end; }

  .nutrition-hero figure { max-width: 680px; }

  .nutrition-hero:has(figure.hero-art) { padding-bottom: 20px; min-height: 0; }

  .info-hero:has(> figure.hero-art:not(.hero-art-wide)) { padding-bottom: 20px; min-height: 0; }

  .info-hero:has(> figure.hero-art.hero-art-wide) { min-height: 0; }

  .info-hero + .tarif-fit { padding-top: 28px; }
  .nutrition-related { gap: 52px; }
}

@media (max-width: 580px) {
  .hero { width: min(100% - 40px, 1420px); }
  .intro-section, .gallery-section, .visit-section, .detail-fit, .format-rhythm, .other-formats, .info-sections { padding-block: 78px; }

  .reggio-section { --reggio-pad: 78px; }

  .zone-stack { padding-left: 10px; padding-right: 36px; }
  .zone-card { height: 380px; }

  .team-stack .zone-card { height: 460px; }

  .formaty-grid { grid-auto-rows: auto; }
  .excursions-inner { grid-template-columns: 1fr; }
  .excursion { grid-template-columns: 1fr; gap: 22px; }
  .excursion-poster { max-width: 420px; }
  .archive-grid { grid-template-columns: 1fr 1fr; max-width: 420px; }
  .sobytie-dlya { max-width: 420px; }
  .holidays li { grid-template-columns: 40px 1fr; gap: 12px; }
  .holidays time { grid-column: 2; }
  .holiday-name { grid-column: 2; margin-top: -4px; }
  .referal { padding: 26px 22px; }
  .formaty-card, .lager { grid-template-columns: 1fr; }
  .formaty-card-art, .lager-art { height: 172px; min-height: 0; }

  .formaty-card-art {
    -webkit-mask-image: linear-gradient(to bottom,
        #000 56%, rgba(0,0,0,.6) 82%, transparent 100%);
            mask-image: linear-gradient(to bottom,
        #000 56%, rgba(0,0,0,.6) 82%, transparent 100%);
  }

  .lager-art { order: -1;
    -webkit-mask-image: linear-gradient(to bottom,
        #000 56%, rgba(0,0,0,.6) 82%, transparent 100%);
            mask-image: linear-gradient(to bottom,
        #000 56%, rgba(0,0,0,.6) 82%, transparent 100%); }
  .lager-copy { padding: 24px 22px 26px; }
  .formaty-card-copy { padding: 22px 22px 24px; }

  .nutrition-home .nutrition-card-grid {
    width: 100%; max-width: none; margin-inline: 0;
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 76%;
    overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
    scroll-snap-type: x proximity; scroll-padding-left: 20px;
    padding-inline: 20px;
    column-gap: 12px; row-gap: 0; min-height: 0;
    scrollbar-width: none;
  }
  .nutrition-home .nutrition-card-grid::-webkit-scrollbar { display: none; }
  .nutrition-card-grid > a { scroll-snap-align: start; }
  .nutrition-card-grid > a:last-child { scroll-snap-align: end; }

  .day-links { gap: 10px; }
  .day-links .button { flex: 1 1 0; min-width: 0; padding-inline: 12px;
                       font-size: 13px; gap: 0; white-space: nowrap; }
  .day-inner { padding-block: 78px; }

  :root { --hero-pad-top: 62px; }
  .contacts-main { --contacts-pad: var(--hero-pad-top); padding-bottom: 62px; }

  .timeline-row::before { left: 89px; }
  .timeline-row { grid-template-columns: 72px 30px 1fr; }
  .photo-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; }
  .photo-grid .gallery-photo { grid-column: auto; grid-row: auto; }
  .photo-grid .gallery-item-1, .photo-grid .gallery-item-5 { grid-row: span 2; }

  .photo-grid .gallery-item-7 { grid-column: 1 / -1; }
  .adaptation-copy { padding: 72px 20px 34px; }
  .adaptation-invite { max-width: none; }
  .contact-form-wrap { padding: 30px 24px; }

  .footer-links { grid-template-columns: 1fr 1fr; gap: 30px 24px; }
  .footer-bottom { gap: 18px; align-items: flex-start; flex-direction: column; }
  .detail-hero { padding-block: var(--hero-pad-top) 72px; }

  .info-hero { --info-pad-bottom: 72px; }
  .detail-hero-image img, .info-hero figure:not(.hero-art) img { height: 440px; }
  .included-section { padding: 78px 20px; }
  .included-grid { grid-template-columns: 1fr; }
  .included-grid > div { min-height: 150px; }
  .detail-cta { padding: 82px 20px; }
  .cta-with-form { padding: 82px 20px; grid-template-columns: 1fr; gap: 44px; }

  .cta-with-form .cta-copy { text-align: center; }
  .cta-with-form .cta-title { margin-inline: auto; }
  .cta-with-form p { margin-inline: auto; }
  .cta-with-form .button { justify-self: center; }

  .cta-with-form { row-gap: 0; }
  .cta-with-form .cta-copy { display: contents; }
  .cta-with-form .contact-form-wrap { margin-top: 40px; }
  .cta-with-form .contact-actions-solid { order: 1; justify-content: center;
                                          margin-top: 26px; }
  .cta-with-form .contact-actions-solid .button { width: 100%; }
  .info-sections { grid-template-columns: 1fr; }
  .info-sections article { min-height: 260px; }
  .nutrition-home { padding-block: 78px; }

  .nutrition-home-photo img { height: auto; }
  .nutrition-card-grid { margin-top: 44px; }
  .nutrition-hero { padding-block: var(--hero-pad-top) 72px; }

  .nutrition-intro { padding-block: 70px; }
  .nutrition-intro .section-shell { grid-template-columns: 1fr; gap: 22px; }
  .nutrition-sections { padding-block: 78px; grid-template-columns: 1fr; }
  .nutrition-sections article { min-height: 270px; }
  .nutrition-related { padding-bottom: 78px; }
  .nutrition-related-grid { grid-template-columns: 1fr; }
  .nutrition-related-grid a { min-height: 230px; }
}

html, body { overflow-x: clip; }
@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  padding: 12px 20px; border-radius: 0 0 14px 14px;
  background: var(--forest); color: #fff; font-size: 14px;
  transition: top .18s ease;
}

.skip-link:focus-visible { top: 0; }

:focus-visible {
  outline: 2px solid var(--apricot);
  outline-offset: 3px;
  border-radius: 4px;
}
.formats-section :focus-visible, .included-section :focus-visible,
.nutrition-intro :focus-visible,
.site-footer :focus-visible, .contact-form-wrap :focus-visible {
  outline-color: var(--sun);
}
.lead-form input:focus-visible { outline-offset: 4px; }

img { background-repeat: no-repeat; }
img.is-loaded { background-image: none !important; }

.site-header { padding-inline: env(safe-area-inset-left) env(safe-area-inset-right); }
.site-footer { padding-bottom: calc(28px + env(safe-area-inset-bottom)); }

.button:active, .format-card:active, .nutrition-card-grid > a:active,
.other-format-card:active, .nutrition-related-grid a:active { transform: scale(.985); }
@media (hover: none) {
  .button:hover, .format-card:hover, .nutrition-card-grid > a:hover { transform: none; }
  .gallery-photo:hover img { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important;
  }
  .button:hover, .format-card:hover, .nutrition-card-grid > a:hover,
  .gallery-photo:hover img, .button:active { transform: none; }
}

@media (prefers-contrast: more) {
  :root { --muted: #46524a; --line: rgba(31, 43, 37, .4); }
}

@media (min-width: 581px) and (max-width: 980px) {
  .excursions-inner { grid-template-columns: 1fr; gap: 28px; }
  .archive-grid { grid-template-columns: repeat(4, 1fr); max-width: none; }
  .sobytie-dlya { max-width: none; }
  .excursion-none { min-height: 300px; }
}

@media (max-width: 980px) {

  .main-nav, .header-cta { display: none; }

  .mobile-menu { display: block; }

  .hero { grid-template-columns: 1fr; grid-template-rows: auto 1fr;
          align-items: start; padding-block: 40px 0; }
  .hero-copy { max-width: 640px; }

  .format-grid { grid-template-columns: 1fr; grid-template-rows: none; }

  .formaty-grid { grid-template-columns: 1fr; }

  .pochemu-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .pochemu:not(.pochemu-principy) .pochemu-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(3n + 1):nth-last-child(2) { grid-column: span 2; }
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(2n + 1):last-child { grid-column: 2 / span 2; }
  .pochemu-grid article { padding: 16px 14px 18px; }
  .pochemu-grid h3 { font-size: var(--h4); line-height: 1.12; }
  .pochemu-grid article > p { margin-top: 6px; font-size: 12.5px; line-height: 1.45; }
  .pochemu-grid ul { margin-top: 10px; gap: 6px; }
  .pochemu-grid li { padding-left: 12px; font-size: 12.5px; line-height: 1.4; }
  .pochemu-grid li::before { top: .55em; width: 5px; height: 5px; }
  .pochemu-principy .pochemu-grid { grid-template-columns: 1fr; }
  .referal-bonuses { grid-template-columns: 1fr; }
  .format-card { grid-row: auto; min-height: 300px;
                 display: flex; flex-direction: column; justify-content: flex-end; }
  .format-card .format-time { margin-top: auto; }
  .format-card .format-time, .format-card h3, .format-card p,
  .format-card .format-more { grid-row: auto; }

  .format-card-art { height: 40%; }
}

@media (max-width: 640px) {

  :root { --header-h: 76px; }
  .site-header { height: var(--header-h); }
  .brand-logo { height: 50px; }

  .hero { padding-block: 66px 0; }

  .formats-section { padding-top: 72px; padding-bottom: 72px; }
  .format-grid { margin-top: 42px; }

  .pochemu-grid { grid-template-columns: 1fr; gap: 16px; }
  .pochemu:not(.pochemu-principy) .pochemu-grid { grid-template-columns: 1fr; }
  .pochemu:not(.pochemu-principy) .pochemu-grid > article,
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(3n + 1):nth-last-child(2),
  .pochemu:not(.pochemu-principy) .pochemu-grid > article:nth-child(2n + 1):last-child { grid-column: auto; }
  .pochemu-grid article { padding: 24px 22px 26px; }
  .pochemu-grid article > p { margin-top: 10px; font-size: 15.5px; line-height: 1.55; }
  .pochemu-grid ul { margin-top: 16px; gap: 10px; }
  .pochemu-grid li { padding-left: 18px; font-size: 15.5px; line-height: 1.5; }
  .pochemu-grid li::before { top: .6em; width: 6px; height: 6px; }

  .excursion-poster { margin-inline: auto; }

  .excursion-copy .button { display: none; }

  .archive-grid { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none !important; }

  .kid-frames { animation: none !important; }
}

.hero h1 .line {
  display: block; overflow: hidden;
  padding-bottom: .1em; margin-bottom: -.1em;
}
@keyframes text-rise {
  from { opacity: 0; transform: translateY(105%); }
  to   { opacity: 1; transform: none; }
}
@keyframes text-fade-rise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
.hero h1 .line > span {
  display: block;
  animation: text-rise .85s cubic-bezier(.22, .9, .3, 1) both;
}
.hero h1 .line:nth-child(1) > span { animation-delay: .05s; }
.hero h1 .line:nth-child(2) > span { animation-delay: .16s; }
.hero-lead    { animation: text-fade-rise .8s ease both .32s; }
.hero-actions { animation: text-fade-rise .8s ease both .44s; }

@media (prefers-reduced-motion: reduce) {
  .hero h1 .line > span,
  .hero-lead,
  .hero-actions { animation-delay: 0s !important; }
}

.has-reveal [data-reveal] {
  opacity: 0;
  transition: opacity 1.1s cubic-bezier(.22, .9, .3, 1);
  transition-delay: calc(var(--reveal-i, 0) * 110ms);
}
.has-reveal [data-reveal].is-visible { opacity: 1; }

.has-reveal [data-reveal="rise"] {
  transform: translateY(48px);
  transition: opacity 1.1s cubic-bezier(.22, .9, .3, 1),
              transform 1.1s cubic-bezier(.22, .9, .3, 1);
}
.has-reveal [data-reveal="rise"].is-visible { transform: none; }

@media (prefers-reduced-motion: reduce) {

  .has-reveal [data-reveal] { opacity: 1; transition: none; }
  .has-reveal [data-reveal="rise"] { transform: none; }
}

.hero-visual {
  position: relative; z-index: 1;

  align-self: stretch;
  margin-block: -64px -72px;
  margin-left: -21%;

  margin-right: calc((100vw - min(1420px, 100vw - 64px)) / -2);
  -webkit-mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 11%, rgba(0,0,0,.75) 22%, #000 32%);
          mask-image: linear-gradient(to right,
      transparent 0%, rgba(0,0,0,.22) 11%, rgba(0,0,0,.75) 22%, #000 32%);
}

.hero-visual { overflow: hidden; }
.hero-visual img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 62% 50%;
}

@media (max-width: 980px) {

  .hero-visual {
    align-self: stretch;
    max-width: none;
    margin: 14px 0 0;
    margin-inline: calc((100vw - min(1420px, 100vw - 64px)) / -2);
    min-height: 170px;
    -webkit-mask-image: linear-gradient(to bottom,
        transparent 0%, rgba(0,0,0,.2) 11%, rgba(0,0,0,.75) 24%, #000 38%);
            mask-image: linear-gradient(to bottom,
        transparent 0%, rgba(0,0,0,.2) 11%, rgba(0,0,0,.75) 24%, #000 38%);
  }
  .hero-visual img { object-position: 50% 46%; }
}

.to-top {
  position: fixed; right: clamp(16px, 3vw, 34px); bottom: clamp(16px, 3vw, 34px);
  z-index: 45; width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: var(--forest); color: var(--paper);
  box-shadow: 0 10px 26px rgba(23, 50, 41, .18);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.to-top.is-shown { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.to-top:hover { background: var(--forest-deep); }
.to-top:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }

@media (max-width: 640px) { .to-top { width: 46px; height: 46px; } }

.blog-hero { padding-block: var(--hero-pad-top) 0; }
.blog-hero .lead-text { margin-top: 22px; max-width: 620px; }

.blog-list { padding-block: 56px 96px; display: grid; gap: 22px; }
.blog-card {
  display: grid; grid-template-columns: minmax(0, 300px) 1fr;
  gap: clamp(24px, 4vw, 52px); align-items: center;
  padding: 22px; border-radius: var(--radius-lg);
  background: var(--paper); border: 1px solid var(--line);
  transition: transform .22s ease;
}
.blog-card:hover { transform: translateY(-4px); }
.blog-card:focus-visible { outline: 2px solid var(--apricot); outline-offset: 3px; }

.blog-card img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover;
                 object-position: 50% 30%; border-radius: var(--radius-md); }
.blog-card figure { margin: 0; }
.blog-card time { font-size: 12px; color: var(--muted); }
.blog-card h2 { margin: 10px 0 0; font-size: var(--h3); }
.blog-card p { margin: 12px 0 0; max-width: 56ch; font-size: 17px; line-height: 1.6; color: var(--muted); }

.rubrika { display: inline-block; font-size: 12px; text-transform: uppercase; letter-spacing: .1em;
           color: var(--apricot); font-weight: 600; text-decoration: none; }
.blog-card .rubrika { margin-right: 12px; }
.article-head .rubrika { margin-right: 12px; }
.article-head .rubrika:hover { text-decoration: underline; text-underline-offset: 3px; }
.article-author { margin: 14px 0 0; font-size: 15px; color: var(--muted); }
.blog-rubriki { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 10px; }
.blog-rubriki + .blog-list { padding-top: 34px; }
.blog-rubriki a { text-decoration: none; }

.blog-list:has(+ .blog-pages) { padding-bottom: 0; }
.blog-pages { margin: 40px auto 0; padding-bottom: 96px; display: flex; justify-content: center;
              align-items: center; gap: 10px; }
.blog-pages a, .blog-pages span { display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); color: var(--ink);
  font: 600 14px/1 "Rubik", sans-serif; text-decoration: none;
  transition: border-color .2s ease, background .2s ease; }
.blog-pages .blog-pages-arrow { font-size: 18px; }
.blog-pages a:hover { border-color: var(--forest); }
.blog-pages a[aria-current="page"] { background: var(--forest); border-color: var(--forest); color: var(--paper); }
.blog-pages a:focus-visible { outline: 2px solid var(--apricot); outline-offset: 2px; }
.blog-pages .is-off { opacity: .35; }

.blog-ekskursii { padding-block: 0 96px; }
.blog-ekskursii .section-heading { align-items: center; }
.blog-ekskursii .section-heading h2 { margin: 0; }
.blog-ekskursii .button-outline { margin-top: 0; }
.blog-list-polosa { margin-top: 30px; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.blog-list-polosa .blog-card { grid-template-columns: 1fr; gap: 18px; align-items: start; }
.blog-list-polosa .blog-card img { aspect-ratio: 3 / 2; }
.blog-list-polosa .blog-card h2 { font-size: var(--h4); }
.blog-list-polosa .blog-card p { font-size: 15px; }
@media (max-width: 900px) { .blog-list-polosa { grid-template-columns: 1fr; } }

.blog-list-section { padding-block: 54px 0; }
.blog-list-section h2 { margin: 0 0 26px; font-size: var(--h2); line-height: 1.06; }
.blog-list-section .blog-list { padding: 0; }
.ekskursii-page .parents-block h2 { margin-bottom: 22px; }
.ekskursii-page .excursions-list { margin-top: 0; }
.ekskursii-page .blog-list-section:last-of-type { padding-bottom: 96px; }

.article-gallery { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.article-gallery .article-foto { aspect-ratio: 3 / 2; border-radius: var(--radius-md); }
.article-gallery .article-foto img { object-position: 50% 28%; }
.article-gallery .article-foto:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
.article-gallery + h2 { margin-top: 44px; }
@media (max-width: 600px) { .article-gallery { grid-template-columns: 1fr; gap: 10px; } }

.ekskursiya-afisha { padding-bottom: 96px; }
.ekskursiya-afisha .excursion h2 { margin: 10px 0 0; font-size: var(--h3); line-height: 1.08; }
.ekskursiya-afisha .excursion .button-outline { margin-top: 26px; }
.ekskursiya-page .article-body { padding-bottom: 48px; }

.article-head { padding-block: var(--hero-pad-top) 0; max-width: 720px; }
.article-head time { font-size: 12px; color: var(--muted); }

.article-head h1 { margin-top: 14px; font-size: var(--h2); line-height: 1.08; text-wrap: balance; }

@media (max-width: 600px) { .article-head h1 { font-size: var(--h3); line-height: 1.15; } }
.article-head .lead-text { margin-top: 22px; max-width: 640px; }

.article-cover { margin: 46px auto 0; max-width: 720px; }
.article-cover img { width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover;
                     object-position: 50% 30%; border-radius: var(--radius-lg); }

@media (max-width: 420px) { .ne-na-uzkih { display: none; } }

.article-nav { position: sticky; top: var(--header-h); z-index: 20;
               width: 100vw; margin: 0 0 0 calc(50% - 50vw);
               background: var(--cream); border-bottom: 1px solid var(--line); }
.article-nav-toggle { display: flex; align-items: center; gap: 10px; width: min(1420px, calc(100% - 64px));
                      min-height: 40px; margin-inline: auto; padding: 0; border: 0; background: none;
                      color: var(--ink); font: 600 13px/1.3 "Rubik", sans-serif; cursor: pointer; text-align: left; }
.article-nav-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.article-nav-current { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.article-nav-toggle svg { flex: none; transition: transform .25s ease; }
.article-nav.is-open .article-nav-toggle svg { transform: rotate(180deg); }
.article-nav-toggle:focus-visible { outline: 2px solid var(--apricot); outline-offset: -2px; }
.article-nav-list { display: none; position: absolute; left: 0; right: 0; top: 100%; margin: 0; padding: 6px 0 12px;
                    list-style: none; background: var(--cream); border-bottom: 1px solid var(--line);
                    box-shadow: 0 16px 30px rgba(31, 43, 37, .10); }
.article-nav.is-open .article-nav-list { display: block; }

.article-nav-list { max-height: calc(100dvh - var(--header-h) - 48px); overflow-y: auto; overscroll-behavior: contain; }
.article-nav-list li { width: min(1420px, calc(100% - 64px)); margin-inline: auto; }
.article-nav-list a { display: block; padding: 10px 0; font-size: 15px; line-height: 1.35; color: var(--ink);
                      text-decoration: none; border-top: 1px solid var(--line); }
.article-nav-list li:first-child a { border-top: 0; }
.article-nav-list a.is-current { color: var(--apricot); font-weight: 600; }
.article-nav-list a:hover { color: var(--forest); }

.article-nav-list ol { margin: 0; padding: 0 0 4px 16px; list-style: none; }
.article-nav-list ol a { padding: 6px 0; font-size: 14px; border-top: 0; color: var(--muted); }

.article-body h2, .article-body h3 { scroll-margin-top: calc(var(--header-h) + 56px); }
@media (min-width: 1320px) {

  .article-nav { top: calc(var(--header-h) + 36px); z-index: 2; width: 250px; height: 0;
                 margin: var(--hero-pad-top) 0 calc(-1 * var(--hero-pad-top)) calc(50% - 360px - 300px);
                 background: none; border: 0; }
  .article-nav-toggle { display: none; }

  .article-nav-list { display: block; position: static; padding: 18px 22px 20px; background: var(--paper);
                      max-height: calc(100dvh - var(--header-h) - 60px);
                      border: 0; border-radius: var(--radius-md); box-shadow: 0 1px 6px rgba(31, 43, 37, .06); }
  .article-nav-list::before { content: "Содержание"; display: block; margin-bottom: 10px; font-size: 11px;
                              font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
  .article-nav-list li { width: auto; margin: 0; }
  .article-nav-list a { padding: 7px 0; font-size: 14px; line-height: 1.35; color: var(--ink); border: 0;
                        border-top: 1px solid var(--line); transition: color .2s ease; }
  .article-nav-list li:first-child a { border-top: 0; }
  .article-nav-list a.is-current { color: var(--apricot); font-weight: 600; }
  .article-nav-list a:hover { color: var(--forest); }
  .article-nav-list ol { padding: 0 0 6px 14px; }
  .article-nav-list ol a { padding: 4px 0; font-size: 13px; line-height: 1.3; }
  .article-body h2, .article-body h3 { scroll-margin-top: calc(var(--header-h) + 24px); }
}

.article-body { padding-block: 56px 96px; max-width: 720px; }

.article-head + .article-body { padding-top: 28px; }

.article-body:has(+ .story-stack) { padding-bottom: 0; }
.story-stack + .article-body { padding-top: 32px; }
.article-body h2 { margin-top: 44px; font-size: var(--h3); }
.article-body h2:first-child { margin-top: 0; }

.article-body p { margin: 18px 0 0; font-size: 18px; line-height: 1.72; }

.article-body p a:not(.button), .article-body li a:not(.button) { color: var(--forest); text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-body p a:not(.button):hover, .article-body li a:not(.button):hover { text-decoration-thickness: 2px; }
.article-body ul { margin: 18px 0 0; padding-left: 22px; display: grid; gap: 9px;
                   font-size: 18px; line-height: 1.66; color: #46544c; }
@media (max-width: 640px) {
  .article-body p, .article-body ul,
  .story-text p:not(.story-num) { font-size: 17px; }
}
.article-body li::marker { color: var(--apricot); }

.article-body h3 { margin: 36px 0 0; font-size: var(--h4); line-height: 1.2; }
.article-body h2 + h3 { margin-top: 22px; }
.article-body .article-h4 { margin-top: 26px; font-weight: 600; color: var(--forest); }
.article-body .article-h4 + ul { margin-top: 10px; }

.article-body li > b.li-podzag { display: block; margin-bottom: 6px; }
.article-body li > ul { margin-top: 4px; gap: 7px; font-size: 17px; }

.article-table { margin-top: 24px; overflow-x: auto; }
.article-table table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.article-table th { text-align: left; vertical-align: bottom; padding: 10px 12px 10px 0;
                    font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted);
                    border-bottom: 1px solid var(--forest); }
.article-table td { vertical-align: top; padding: 14px 12px 14px 0; border-bottom: 1px solid var(--line); }
.article-table td:first-child { min-width: 96px; font-weight: 600; color: var(--forest); }
.article-table td ul { margin: 0; padding-left: 18px; gap: 6px; font-size: 15px; line-height: 1.5; }

.article-plashki { margin-top: 28px; }
.article-plashki.is-ready .story-bar { display: flex; }
.plashki-list { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: none;
                text-align: left; font: inherit; color: inherit; cursor: pointer; position: relative; }
.plashki-list:focus-visible { outline: 2px solid var(--apricot); outline-offset: 8px; border-radius: 8px; }

.is-ready .plashki-list::before, .is-ready .plashki-list::after {
  content: ""; position: absolute; inset: 0; border-radius: 6px; background: var(--paper);
  box-shadow: 0 8px 24px rgba(31, 43, 37, .08); z-index: 0; }
.is-ready .plashki-list::before { transform: translate(10px, 12px) rotate(1.4deg); opacity: .8; }
.is-ready .plashki-list::after { transform: translate(-8px, 6px) rotate(-1deg); opacity: .9; }
.plashka { position: relative; z-index: 1; padding: 30px 28px 26px; border-radius: 6px; background: var(--paper);
           box-shadow: 0 12px 30px rgba(31, 43, 37, .10), 0 1px 3px rgba(31, 43, 37, .08);
           transition: transform .3s ease; }
.plashka + .plashka { margin-top: 12px; }

.is-ready .plashka::before { content: ""; position: absolute; top: -11px; left: 50%; width: 96px; height: 24px;
  transform: translateX(-50%) rotate(-3deg); background: rgba(239, 201, 105, .6);
  box-shadow: 0 1px 2px rgba(31, 43, 37, .08); }
.plashki-list:hover .plashka { transform: translateY(-3px); }

.article-plashki.is-ready::after { content: "Нажмите на листок или стрелки, чтобы листать"; display: block;
  margin-top: 26px; font-size: 13px; color: var(--muted); text-align: center; }
.plashka h4 { margin: 0 0 6px; font-size: var(--h4); line-height: 1.2; color: var(--forest); }
.plashka-pole { margin-top: 14px; }
.plashka-pole span { display: block; margin-bottom: 3px; font-size: 11px; text-transform: uppercase;
                     letter-spacing: .08em; color: var(--muted); }
.plashka-pole p { margin: 0; font-size: 17px; line-height: 1.6; }
.plashka-pole ul { margin: 0; padding-left: 18px; gap: 6px; font-size: 16px; }
@media (max-width: 760px) {
  .article-table thead { display: none; }
  .article-table table, .article-table tbody, .article-table tr, .article-table td { display: block; }
  .article-table tr { margin-top: 12px; padding: 16px 18px; border-radius: var(--radius-md); background: var(--paper); }
  .article-table td { padding: 8px 0; border: 0; min-width: 0; }
  .article-table td::before { content: attr(data-label); display: block; margin-bottom: 3px;
                              font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
  .article-table td:first-child { font-size: 18px; }
  .article-table td:first-child::before { display: none; }
}

.kviz { margin-top: 30px; padding: 26px 26px 28px; border-radius: var(--radius-md);
        background: var(--paper); border: 1px solid var(--line); }
.kviz-title { margin: 0; font-size: var(--h4); font-weight: 700; line-height: 1.2; }
.kviz-lead { margin: 10px 0 0; font-size: 16px; line-height: 1.55; color: var(--muted); }
.kviz-progress { display: none; margin-top: 18px; height: 4px; border-radius: 2px; background: var(--cream); overflow: hidden; }
.kviz-progress span { display: block; height: 100%; width: 0; background: var(--forest); transition: width .3s ease; }
.kviz.is-ready .kviz-progress { display: block; }
.kviz-form { margin-top: 22px; }
.kviz-q { margin: 0 0 26px; padding: 0; border: 0; min-width: 0; }
.kviz.is-ready .kviz-q { display: none; margin: 0; }
.kviz.is-ready .kviz-q.is-current { display: block; }
.kviz-q legend { padding: 0; font-size: 18px; font-weight: 600; line-height: 1.4; }
.kviz-num { display: block; margin-bottom: 6px; font-size: 11px; font-weight: 600; letter-spacing: .1em;
            text-transform: uppercase; color: var(--muted); }
.kviz-a { display: flex; gap: 12px; align-items: flex-start; margin-top: 10px; padding: 12px 16px;
          border: 1px solid var(--line); border-radius: 14px; cursor: pointer; font-size: 16px; line-height: 1.45;
          transition: border-color .2s ease, background .2s ease, color .2s ease; }
.kviz-a:hover { border-color: var(--forest); }
.kviz-a input { flex: none; margin: 4px 0 0; accent-color: var(--forest); }
.kviz-a:has(input:checked) { background: var(--forest); border-color: var(--forest); color: var(--paper); }
.kviz-a:has(input:focus-visible) { outline: 2px solid var(--apricot); outline-offset: 2px; }
.kviz-bar { display: none; margin-top: 22px; gap: 12px; flex-wrap: wrap; }
.kviz.is-ready .kviz-bar { display: flex; }
.kviz-bar .button { margin: 0; }
.kviz-bar .button[disabled] { opacity: .4; pointer-events: none; }
.kviz-result { margin-top: 22px; padding: 22px 24px; border-radius: 18px; background: var(--sage-light); }
.kviz-result .kviz-num { color: var(--forest); }
.kviz-result-title { margin: 0; font-size: var(--h4); font-weight: 700; line-height: 1.2; }
.kviz-result p { margin: 12px 0 0; font-size: 17px; line-height: 1.55; }
.kviz-result ul { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 8px; font-size: 16px; line-height: 1.5; }
.kviz-result .kviz-links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; font-size: 15px; }
.kviz-result .kviz-links a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.kviz-result .kviz-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.kviz-result .kviz-cta .button { margin: 0; }
@media (max-width: 620px) {
  .kviz { padding: 20px 18px 22px; }
  .kviz-result { padding: 18px 18px 20px; }
  .kviz-bar .button, .kviz-cta .button { width: 100%; }
}

.article-body .article-buttons { margin: 26px 0 0; display: flex; flex-wrap: wrap; gap: 12px; }
.article-body .article-buttons .button { margin: 0; }
.article-note {
  margin-top: 30px; padding: 22px 26px; border-radius: var(--radius-md);
  background: var(--sage-light); font-size: 18px; line-height: 1.6;
}

.article-body .article-quote { margin: 22px 0 0; padding-left: 20px;
  border-left: 2px solid var(--apricot); font-size: 20px; line-height: 1.5;
  font-style: italic; color: var(--forest); }

.article-image { width: 100%; margin: 36px 0 12px; background: var(--cream); }
.article-image img { display: block; width: 100%; height: auto; mix-blend-mode: multiply;
  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
          mask-composite: intersect; }
.article-body .article-note + .article-note, .article-body h2 + .article-image { margin-top: 30px; }

.story-stack { width: min(720px, calc(100% - 64px)); margin: 48px auto 8px; display: flow-root; }
.story-bar { display: none; align-items: center; justify-content: space-between; gap: 16px;
  margin-bottom: 26px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.story-stack.is-ready .story-bar { display: flex; }
.story-bar > span { font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--apricot); font-variant-numeric: tabular-nums; }
.story-nav { display: flex; gap: 10px; }
.story-nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line);
  background: transparent; color: var(--ink); font-size: 18px; cursor: pointer;
  transition: border-color .2s ease, background .2s ease; }
.story-nav button:hover { border-color: var(--forest); }
.story-nav button:focus-visible { outline: 2px solid var(--apricot); outline-offset: 2px; }
.story-deck { float: left; width: min(370px, 52%); margin: 22px 48px 26px 4px; }
.story-cards { display: grid; width: 100%; padding: 0; border: 0; background: none;
  cursor: pointer; text-align: inherit; position: relative; }
.story-cards:focus-visible { outline: 2px solid var(--apricot); outline-offset: 8px; border-radius: 8px; }
.story-card { grid-area: 1 / 1; margin: 0; position: relative; padding: 14px 14px 18px;
  background: var(--paper); border-radius: 6px;
  box-shadow: 0 12px 30px rgba(31, 43, 37, .10), 0 1px 3px rgba(31, 43, 37, .08);
  transition: transform .45s ease, opacity .45s ease;
  transform: translate(var(--сдвиг, 0), var(--подъём, 0)) rotate(var(--наклон, 0deg)) scale(var(--масштаб, 1));
  opacity: var(--видимость, 1); z-index: var(--слой, 1); }

.story-card::before { content: ""; position: absolute; top: -11px; left: 50%; width: 96px; height: 24px;
  transform: translateX(-50%) rotate(-3deg); background: rgba(239, 201, 105, .6);
  box-shadow: 0 1px 2px rgba(31, 43, 37, .08); }
.story-card-art { aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper); border-radius: 3px; }
.story-card-art img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }

.story-card figcaption { margin-top: 12px; padding-inline: 10px; min-height: 3.7em;
  display: grid; place-items: center; text-align: center; }

.story-card figcaption strong { display: block; font-style: italic; font-size: 19px;
  line-height: 1.22; font-weight: 600; color: var(--muted); text-wrap: balance; }
.story-text + .story-text { margin-top: 44px; }
.story-stack.is-ready .story-text + .story-text { margin-top: 0; }
.story-text[hidden] { display: none; }
.story-num { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--apricot); }

.story-stack.is-ready .story-num { display: none; }
.story-text h3 { margin: 10px 0 0; font-size: var(--h3); line-height: 1.14; text-wrap: balance; }
.story-stack.is-ready .story-text h3 { margin-top: 0; }
.story-text p:not(.story-num) { margin: 14px 0 0; font-size: 18px; line-height: 1.72; color: #3f4a44; }
@media (max-width: 820px) {

  .story-stack.is-ready { display: flex; flex-direction: column; }
  .story-deck { float: none; width: auto; max-width: 400px; margin: 22px 32px 34px 4px; }
  .story-stack.is-ready .story-bar { order: 3; margin: 28px 0 0; padding: 14px 0 0;
    border-bottom: 0; border-top: 1px solid var(--line); }
  .story-stack.is-ready .story-num { display: block; margin-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) { .story-card { transition: none; } }

.article-more { padding-bottom: 96px; }
.article-more h2 { font-size: var(--h3); }
.article-more > div { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.article-more a { padding: 24px 26px; border-radius: var(--radius-md);
                  background: var(--paper); border: 1px solid var(--line);
                  transition: transform .22s ease; }
.article-more a:hover { transform: translateY(-4px); }
.article-more time { font-size: 12px; color: var(--muted); }
.article-more h3 { margin-top: 10px; font-size: var(--h4); }

@media (max-width: 820px) {
  .blog-card { grid-template-columns: 1fr; }
  .blog-card img { height: 240px; }
  .article-more > div { grid-template-columns: 1fr; }
}

.lightbox {
  width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh;
  margin: 0; padding: clamp(12px, 3vw, 40px); border: 0;

  background: rgba(23, 50, 41, .92); color: var(--paper);
  display: none; place-items: center; grid-template-columns: auto 1fr auto;

  grid-template-rows: minmax(0, 1fr);
  gap: clamp(8px, 2vw, 26px);
}
.lightbox[open] { display: grid; }
.lightbox::backdrop { background: rgba(23, 50, 41, .92); }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {

  .lightbox, .lightbox::backdrop {
    background: rgba(23, 50, 41, .46);
    -webkit-backdrop-filter: blur(18px) saturate(.9);
            backdrop-filter: blur(18px) saturate(.9);
  }
}

.lightbox figure { margin: 0; justify-self: center; align-self: center;

                   height: calc(100dvh - 2 * clamp(12px, 3vw, 40px));
                   width: fit-content; max-width: 100%; min-width: 0;

                   display: grid; align-content: center; gap: 14px; justify-items: center; }

.lightbox img {
  max-width: 100%; max-height: calc(100dvh - 2 * clamp(12px, 3vw, 40px) - 149px);
  width: auto; height: auto; border-radius: 14px; object-fit: contain;
}
.lightbox figure:has(figcaption[hidden]) img { max-height: calc(100dvh - 2 * clamp(12px, 3vw, 40px)); }

.lightbox img { cursor: zoom-in; }
.lightbox.is-zoomed figure { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh;
  display: block; overflow: auto; overscroll-behavior: contain; padding: clamp(12px, 3vw, 40px);
  box-sizing: border-box; -webkit-overflow-scrolling: touch; }

.lightbox.is-zoomed figure img { display: block; width: var(--zoom-w, 200%) !important;
  max-width: none !important; max-height: none !important;
  height: auto !important; margin: 0 auto; border-radius: 10px; cursor: zoom-out; }

.lightbox.is-follow figure { scrollbar-width: none; }
.lightbox.is-follow figure::-webkit-scrollbar { display: none; }
.lightbox.is-zoomed figcaption, .lightbox.is-zoomed .lightbox-link { display: none; }
.lightbox.is-zoomed .lightbox-nav { display: none; }
.lightbox.is-zoomed .lightbox-close { z-index: 3; }

.lightbox figcaption { max-width: 60ch; min-height: 67px; text-align: center; font-size: 13px;
                       color: rgba(255, 253, 248, .74); line-height: 1.5; }
.lightbox figcaption b { display: block; margin-bottom: 3px; font-size: 15px;
                         font-weight: 600; color: var(--paper); }

.lightbox-link { margin: 0; padding: 12px 22px; font-size: 14px; }

.lightbox-link.is-pusto { display: none; }

.lightbox-close, .lightbox-nav {
  display: grid; place-items: center; cursor: pointer; color: var(--paper);
  background: rgba(255, 253, 248, .12); border-radius: 50%;
  transition: background .2s ease;
}
.lightbox-close:hover, .lightbox-nav:hover { background: rgba(255, 253, 248, .24); }
.lightbox-close:focus-visible, .lightbox-nav:focus-visible {
  outline: 2px solid var(--sun); outline-offset: 3px;
}
.lightbox-nav { width: 52px; height: 52px; }

.lightbox-close { position: absolute; top: clamp(12px, 3vw, 28px);
                  right: clamp(12px, 3vw, 28px); width: 46px; height: 46px; z-index: 1; }

@media (max-width: 640px) {

  .lightbox {
    grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto;
    align-content: center; row-gap: 22px;
  }
  .lightbox figure { grid-column: 1 / -1; grid-row: 1; align-self: center; }

  .lightbox img { max-height: calc(100dvh - clamp(150px, 26vw, 210px)); }
  .lightbox-prev { grid-column: 1; grid-row: 2; justify-self: end; margin-right: 9px; }
  .lightbox-next { grid-column: 2; grid-row: 2; justify-self: start; margin-left: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .lightbox-close, .lightbox-nav { transition: none; }
}

.team-hero { padding-block: var(--hero-pad-top) 0; position: relative; isolation: isolate; }
.team-hero::before, .team-visual {
  position: absolute; pointer-events: none;

  top: calc(100% - 24.4vw); height: 73.9vw;
  left: calc(50% - 50vw); width: 100vw;
}
.team-hero::before { content: ""; z-index: -2; background: var(--cream); }
.team-visual {
  z-index: -1; overflow: hidden;
  mix-blend-mode: multiply;

  -webkit-mask-image: linear-gradient(to bottom,
      #000 0%, #000 49%, rgba(0,0,0,.2) 54.5%, rgba(0,0,0,.2) 88%, transparent 100%);
          mask-image: linear-gradient(to bottom,
      #000 0%, #000 49%, rgba(0,0,0,.2) 54.5%, rgba(0,0,0,.2) 88%, transparent 100%);

  opacity: .72;
}
.team-visual img { width: 100%; height: auto; }

.team-hero > *:not(.team-visual) { position: relative; z-index: 1; }

.team-hero .lead-text { margin-top: 22px; max-width: 1000px; }

.team-stack { padding-block: 62px clamp(78px, 10.7vw, 118px); }

.team-hero ~ section { position: relative; z-index: 1; }

.team-stack .zone-stack { padding-left: 0; }
.team-stack .zone-card { border-radius: var(--radius-lg); }

.team-stack .zone-card img { object-position: 50% 0%; }

.team-stack .zone-hint { color: var(--paper);
                         filter: drop-shadow(0 1px 2px rgba(31, 43, 37, .7)); }
.team-stack .zone-cards:focus-visible { border-radius: var(--radius-lg); }

.hist-timeline .day-title p { max-width: 470px; font-size: 19px; line-height: 1.6; color: #4d5a52; }
.hist-timeline .timeline-row { grid-template-columns: 36px 1fr; column-gap: 14px;
                               min-height: 132px;

                               padding: clamp(42px, 4.6vw, 72px) 0 36px; }
.hist-timeline .timeline-row::before { left: 18px; top: calc(clamp(42px, 4.6vw, 72px) + 32px); }
.hist-timeline .timeline-row time { position: absolute; z-index: 0; left: 44px; top: 0;
  padding: 0; font-size: clamp(72px, 8vw, 128px); font-weight: 600; line-height: 1;
  letter-spacing: -.04em; white-space: nowrap; color: rgba(221, 139, 101, .16);
  pointer-events: none; user-select: none; }
.hist-timeline .timeline-row > div { position: relative; z-index: 1; }
.timeline-note { font-size: 14px; }

.hist-timeline .timeline-row-today { padding-top: calc(clamp(36px, 3.4vw, 52px) + 18px); }
.hist-timeline .timeline-row-today time { font-size: clamp(36px, 3.4vw, 52px); font-style: italic;
  color: var(--apricot); letter-spacing: -.02em; top: 4px; }
.hist-timeline .timeline-row-today .timeline-mark { padding: 7px; border-radius: 50%;
  background: var(--sun); color: var(--forest-deep); }
.hist-timeline .timeline-row-today .timeline-photo { max-width: none; margin-top: 22px; }
.hist-timeline .timeline-row-today .button { margin-top: 26px; }
.hist-timeline .timeline-row p.timeline-note { margin-top: 10px; color: var(--forest); font-weight: 500; }
.timeline-photo { margin: 18px 0 0; max-width: 540px; }
.timeline-photo img { display: block; width: 100%; height: auto; border-radius: var(--radius-md); }
.timeline-photo figcaption { margin-top: 8px; font-size: 12px; line-height: 1.45; color: var(--muted); }

.timeline-art { background: var(--paper);

  -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image:
      linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
          mask-composite: intersect; }
.timeline-art img { border-radius: 0; mix-blend-mode: multiply; }

.hist-yazyk { background: var(--forest); color: #f8f4ec; padding-block: clamp(72px, 8vw, 108px); }
.hist-yazyk .section-heading > p { max-width: 460px; color: rgba(255, 253, 248, .8); }
.hist-yazyk .text-link { margin-top: 30px; color: var(--sun); }

@media (max-width: 820px) {
  .hist-timeline .timeline-row { grid-template-columns: 30px 1fr; column-gap: 10px; }
  .hist-timeline .timeline-row::before { left: 15px; }
  .hist-timeline .timeline-row { padding-top: 38px; }
  .hist-timeline .timeline-row-today { padding-top: 58px; }
  .hist-timeline .timeline-row-today time { font-size: 36px; }
  .hist-timeline .timeline-row::before { top: 70px; }
  .hist-timeline .timeline-row time { left: 36px; font-size: 64px; }
}

.landing-hero .nutrition-facts { max-width: 620px; }

.landing-paper { background: var(--paper); border-block: 1px solid var(--line); }

.landing-paper .team-more { display: inline-block; margin-top: 26px; }
.landing-map { padding-block: clamp(64px, 7vw, 100px); display: grid;
               grid-template-columns: .85fr 1.15fr; gap: clamp(30px, 4vw, 72px);
               align-items: center; }
.landing-map h2 { margin: 0; font-size: var(--h2); line-height: 1.06; }
.landing-map .landing-map-copy > p { margin: 20px 0 0; font-size: 17px;
                                     line-height: 1.7; color: #46544c; }
.landing-map .landing-address { margin-top: 26px; font-weight: 600; color: var(--ink); }
.landing-map .landing-hours { margin-top: 2px; }
.landing-map .text-link { margin-top: 20px; }
@media (max-width: 900px) {
  .landing-map { grid-template-columns: 1fr; gap: 28px; }
}

@media (min-width: 821px) and (max-width: 1099px) {

  .info-hero:has(.hero-art:not(.hero-art-wide)) > div:not(.breadcrumbs),
  .nutrition-hero:has(figure.hero-art) .nutrition-hero-copy { max-width: 50%; }

  .info-hero figure.hero-art:not(.hero-art-wide),
  .info-hero.tarif-hero figure.hero-art,
  .nutrition-hero figure.hero-art { margin-left: -4%; }
}

@media (max-width: 400px) {
  .day-links .button { flex: 1 1 100%; white-space: normal; padding-inline: 20px; }
}

@media (min-width: 581px) and (max-width: 900px) {
  .cta-with-form { grid-template-columns: 1fr; gap: 40px; }
  .cta-with-form .cta-copy p { max-width: 62ch; }
}

@media (min-width: 821px) and (max-width: 1099px) {

  .landing-hero { --h1: clamp(35px, 4.14vw, 61px); }
}

@media (max-width: 500px) {
  .landing-hero { --h1: clamp(30px, 8.2vw, 38px); }
  .landing-hero h1 br { display: none; }
}

@media (max-width: 820px) {

  .landing-hero { position: relative; padding-bottom: 156px; }
  .landing-hero > figure.hero-art {

    position: absolute; left: -20px; right: -20px; bottom: 0; z-index: 0;
    width: auto; max-width: none; height: min(54%, 560px);
    margin: 0; aspect-ratio: auto;
    -webkit-mask-image: linear-gradient(to top, #000 38%, rgba(0,0,0,.6) 66%, transparent 97%);
            mask-image: linear-gradient(to top, #000 38%, rgba(0,0,0,.6) 66%, transparent 97%);
  }
  .landing-hero > figure.hero-art img {
    width: 100%; height: 100%; object-fit: cover; object-position: 62% 22%;
  }
  .landing-hero .nutrition-hero-copy { position: relative; z-index: 1; }

  .landing-hero .nutrition-facts span,
  .landing-hero .nutrition-actions .button-outline {
    background: rgba(255, 253, 248, .76);
    -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px);
    border-color: rgba(31, 43, 37, .12);
  }
}

@media (hover: none) and (pointer: coarse) {
  .formats-section .format-grid,
  .nutrition-home .nutrition-card-grid { scroll-snap-type: none; }
  .formats-section .format-card,
  .nutrition-home .nutrition-card-grid > a { scroll-snap-align: none; }
}

@media (max-width: 1100px) {
  .formats-section .format-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: row; grid-template-rows: none; grid-auto-rows: auto;
    overflow: visible; min-height: 0;
    padding-inline: 0; margin-inline: 0;
    column-gap: 12px; row-gap: 12px;
    scroll-snap-type: none;
  }
  .formats-section .format-card {
    grid-row: auto; scroll-snap-align: none; min-height: 300px;
    display: flex; flex-direction: column; justify-content: flex-end;
  }
  .formats-section .format-card .format-time { margin-top: auto; }
  .formats-section .format-card :is(.format-time, h3, p, .format-more) { grid-row: auto; }

  .formats-section .swipe-hint-formats { display: none; }
  .formats-section .swipe-hint-formats + .format-grid { margin-top: clamp(36px, 5vw, 56px); }
}

@media (max-width: 620px) {

  .formats-section { padding-inline: 20px; }
  .formats-section .format-grid { grid-template-columns: 1fr; row-gap: 12px; }
  .formats-section .format-card { padding: 24px 22px; min-height: 248px; }
  .formats-section .format-card h3 { font-size: var(--h3); }
  .formats-section .format-card .format-time { margin-bottom: 11px; font-size: 11px;
                                               letter-spacing: .08em; }
  .formats-section .format-card .format-price { margin-top: 9px; font-size: 15px; }
  .formats-section .format-card .format-teaser { margin-top: 10px; font-size: 13.5px;
                                                 line-height: 1.5; }
  .formats-section .format-card .format-more { margin-top: 14px; }

  .formats-section .format-card-art {
    height: 46%;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.66) 24%, rgba(0,0,0,.18) 56%, transparent 86%);
            mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.66) 24%, rgba(0,0,0,.18) 56%, transparent 86%);
  }
}

@media (max-width: 580px) {
  .nutrition-home .nutrition-card-grid {
    width: min(100% - 40px, 1420px); max-width: none; margin-inline: auto;
    grid-template-columns: 1fr; grid-auto-flow: row; grid-auto-columns: auto;
    grid-template-rows: none; min-height: 0;
    overflow: visible; padding-inline: 0;
    column-gap: 0; row-gap: 12px;
    scroll-snap-type: none;
  }
  .nutrition-home .nutrition-card-grid > a { scroll-snap-align: none; }
  .nutrition-home .swipe-hint-nutrition { display: none; }
  .nutrition-home .swipe-hint-nutrition + .nutrition-card-grid {
    margin-top: clamp(36px, 6vw, 56px); }
}

@media (max-width: 640px) {
  .breadcrumbs { display: none; }
  .section-heading > p, .gallery-heading > p { display: none; }
  .section-heading h2 { margin-top: 0; }
  .pochemu, .fakty { padding-block: 52px; }
  .fakty { padding-top: 52px; }
  .pochemu-grid, .fakty-grid { margin-top: 30px; }
}
