/* Шапка и подвал сайта. Источник — site/index.html, извлечено tools/make-shell.py.
   Править здесь НЕ нужно: поменяли на главной → запустили make-shell.py и apply-shell.py. */
.vk-h *, .vk-h *::before, .vk-h *::after { box-sizing: border-box; margin: 0; padding: 0; }
.vk-h { position: sticky; top: 0; z-index: 100;
  background: rgba(254, 252, 248, 0.96);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(200, 32, 60, 0.10);
  font-family: 'Josefin Sans','Raleway','Jost';
}
.vk-h-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 10px 20px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px;
  min-height: 56px;
}
/* ── Logo ─────────────────────────────────────── */
.vk-h-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: 0 0 auto; min-width: 0; }
.vk-h-logo-img { height: 36px; width: auto; display: block; }
.vk-h-logo-fallback {
  font-family: 'Pinyon Script','Apple Chancery','Great Vibes';
  font-size: 28px; line-height: 1; color: #C8203C;
  white-space: nowrap;
  display: none;
}
.vk-h-logo-by {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 300; font-size: 8px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: #A09080;
  display: none;
  white-space: nowrap;
}
/* ── Nav (desktop) ──────────────────────────── */
.vk-h-nav { display: none; }
.vk-h-nav ul { list-style: none; display: flex; gap: 28px; align-items: center; }
.vk-h-nav a {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 400; font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #2A1810; text-decoration: none;
  padding: 6px 0; position: relative;
  transition: color 200ms ease;
}
.vk-h-nav a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: #C8203C;
  transform: scaleX(0); transform-origin: left;
  transition: transform 240ms ease;
}
.vk-h-nav a:hover { color: #C8203C; }
.vk-h-nav a:hover::after { transform: scaleX(1); }
.vk-h-nav a.vk-h-active { color: #C8203C; }
.vk-h-nav a.vk-h-active::after { transform: scaleX(1); }
/* ── Right side ─────────────────────────────── */
.vk-h-right { display: flex; align-items: center; gap: 14px; }
.vk-h-lang {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 400; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #6A5A4A; cursor: pointer;
  border: 1px solid rgba(200, 32, 60, 0.18);
  padding: 6px 10px;
  background: transparent;
  display: none;
}
.vk-h-lang strong { color: #C8203C; font-weight: 600; }
/* ── Mobile burger (CSS-only) ────────────────── */
.vk-h-burger { width: 36px; height: 36px; background: transparent; border: none; cursor: pointer; padding: 0; position: relative; display: block; }
.vk-h-burger-toggle { position: absolute; opacity: 0; pointer-events: none; }
.vk-h-burger-lines { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; }
.vk-h-burger-lines span { display: block; width: 22px; height: 1px; background: #2A1810; transition: all 280ms ease; }
.vk-h-burger-toggle:checked ~ .vk-h-burger-lines span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); background: #C8203C; }
.vk-h-burger-toggle:checked ~ .vk-h-burger-lines span:nth-child(2) { opacity: 0; }
.vk-h-burger-toggle:checked ~ .vk-h-burger-lines span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); background: #C8203C; }
/* ── Mobile drawer ──────────────────────────── */
.vk-h-drawer {
  position: fixed; top: 56px; left: 0; right: 0;
  background: #FEFCF8;
  border-bottom: 1px solid rgba(200, 32, 60, 0.12);
  padding: 32px 24px 40px;
  transform: translateY(-110%);
  transition: transform 360ms cubic-bezier(0.2, 0, 0, 1);
  z-index: 99;
  max-height: calc(100vh - 56px);
  overflow-y: auto;
}
.vk-h-burger-toggle:checked ~ .vk-h-drawer { transform: translateY(0); }
.vk-h-drawer ul { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.vk-h-drawer li { border-bottom: 1px solid rgba(160, 144, 128, 0.18); }
.vk-h-drawer a {
  display: block; padding: 16px 0;
  font-family: 'Playfair Display';
  font-size: 18px; letter-spacing: 0.05em;
  color: #2A1810; text-decoration: none;
  transition: color 180ms ease;
}
.vk-h-drawer a:hover, .vk-h-drawer a:focus { color: #C8203C; }
.vk-h-drawer .vk-h-drawer-foot {
  margin-top: 28px; padding-top: 18px;
  border-top: 1px solid rgba(160, 144, 128, 0.25);
  display: flex; justify-content: space-between; align-items: center;
  font-family: 'Josefin Sans','Raleway','Jost'; font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #A09080;
}
.vk-h-drawer .vk-h-drawer-foot strong { color: #C8203C; font-weight: 600; }
@media (min-width: 1024px) {
.vk-h-inner { padding: 14px 44px; min-height: 68px; }
.vk-h-nav { display: block; }
.vk-h-burger { display: none; }
.vk-h-drawer { display: none; }
.vk-h-lang { display: inline-flex; }
.vk-h-logo-img { height: 46px; }
}
.vk-f *, .vk-f *::before, .vk-f *::after { box-sizing: border-box; margin: 0; padding: 0; }
.vk-f {
  background: #FEFCF8;
  border-top: 1px solid rgba(200, 32, 60, 0.12);
  font-family: 'Josefin Sans','Raleway','Jost';
  color: #2A1810;
  position: relative;
  overflow: hidden;
}
.vk-f::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse at 15% 100%, rgba(200, 32, 60, 0.05) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 0%, rgba(228, 90, 120, 0.04) 0%, transparent 45%);
}
.vk-f-inner { position: relative; max-width: 1280px; margin: 0 auto; padding: 32px 24px 32px; }
/* ── Top quote ───────────────────────────────── */
.vk-f-quote {
  font-family: 'Libre Baskerville','Times New Roman','Noto Serif';
  font-style: italic; font-weight: 400;
  font-size: 20px; line-height: 1.45;
  color: #2A1810; text-align: center;
  max-width: 540px; margin: 0 auto 44px;
}
.vk-f-quote b { color: #C8203C; font-weight: 700; }
.vk-f-rule { width: 36px; height: 1px; background: linear-gradient(to right, transparent, #C8203C, transparent); margin: 0 auto 36px; }
/* ── Columns ─────────────────────────────────── */
.vk-f-grid { display: grid; grid-template-columns: 1fr; gap: 36px; margin-bottom: 48px; }
.vk-f-col-head {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 400; font-size: 9px;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: #A09080;
  margin-bottom: 16px;
}
.vk-f-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.vk-f-col a {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 300; font-size: 14px;
  color: #2A1810; text-decoration: none;
  transition: color 200ms ease;
}
.vk-f-col a:hover { color: #C8203C; }
.vk-f-contact { font-family: 'Josefin Sans','Raleway','Jost'; font-weight: 300; font-size: 14px; line-height: 1.9; color: #6A5A4A; }
.vk-f-contact strong { color: #2A1810; font-weight: 400; }
.vk-f-contact a { color: #C8203C; text-decoration: none; border-bottom: 1px solid rgba(200, 32, 60, 0.25); transition: all 200ms ease; }
.vk-f-contact a:hover { color: #5D0F24; border-color: rgba(93, 15, 36, 0.5); }
/* ── Socials ─────────────────────────────────── */
.vk-f-socials { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.vk-f-soc {
  width: 40px; height: 40px;
  border: 1px solid rgba(200, 32, 60, 0.30);
  border-radius: 50%;
  display: grid; place-items: center;
  color: #C8203C;
  text-decoration: none;
  transition: all 240ms ease;
}
.vk-f-soc:hover { background: #C8203C; color: #FEFCF8; border-color: #C8203C; }
.vk-f-soc svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.vk-f-soc svg.filled { fill: currentColor; stroke: none; }
/* ── Bottom ─────────────────────────────────── */
.vk-f-bot {
  border-top: 1px solid rgba(160, 144, 128, 0.20);
  padding-top: 22px;
  display: flex; flex-direction: column; gap: 14px;
  align-items: center;
}
.vk-f-sig { display: flex; align-items: center; gap: 8px; }
.vk-f-sig-img { height: 38px; width: auto; }
.vk-f-sig-fallback { font-family: 'Pinyon Script','Apple Chancery','Great Vibes'; font-size: 26px; color: #C8203C; line-height: 1; display: none; }
.vk-f-sig .by { font-family: 'Josefin Sans','Raleway','Jost'; font-weight: 300; font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: #A09080; }
.vk-f-copy {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 300; font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #A09080; text-align: center;
}
@media (min-width: 1024px) {
.vk-f-inner { padding: 32px 44px 44px; }
.vk-f-quote { font-size: 28px; max-width: 640px; }
.vk-f-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 56px; }
}
/* токены — внутри одного блока, чтобы случайно не перебить styles другой части страницы */
  .vk-h-scope {
    --vk-h-ink:       #2A1810;
    --vk-h-ink-soft:  #4A3528;
    --vk-h-mute:      #A09080;
    --vk-h-mute-soft: #C9BEB1;
    --vk-h-red:       #C8203C;
    --vk-h-line:      rgba(42, 24, 16, 0.10);
    --vk-h-line-soft: rgba(42, 24, 16, 0.06);
    --vk-h-font:      'Josefin Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }
.vk-h-scope *, .vk-h-scope *::before, .vk-h-scope *::after { box-sizing: border-box; }
/* ── HEADER ─────────────────────────────────── */
  .vk-header {
    position: sticky; top: 0; z-index: 100;
    background: #ffffff;
    border-bottom: 1px solid var(--vk-h-line-soft);
  }
/* логотип Vita Code в шапке */
  .vk-h-logo { justify-self: start; align-self: center; display: inline-flex; align-items: center; }
.vk-h-logo img { height: 30px; width: auto; display: block; }
.vk-h-inner {
    max-width: 1680px;
    margin: 0 auto;
    padding: 18px 48px 14px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: end;
    gap: 32px;
  }
/* меню */
  .vk-h-nav { justify-self: start; align-self: end; }
.vk-h-nav > ul {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; gap: 38px; flex-wrap: nowrap;
  }
.vk-h-nav > ul > li { position: relative; }
.vk-h-nav a,
  .vk-h-nav .vk-h-item {
    display: inline-block;
    font-family: var(--vk-h-font);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--vk-h-ink);
    padding: 10px 0;
    position: relative;
    cursor: pointer;
    text-decoration: none;
    transition: color 240ms cubic-bezier(0.4, 0, 0.2, 1);
    background: transparent; border: 0;
  }
.vk-h-nav a::after,
  .vk-h-nav .vk-h-item::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 4px;
    height: 1.5px;
    background: var(--vk-h-red);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 360ms cubic-bezier(0.65, 0, 0.35, 1);
  }
.vk-h-nav > ul > li:hover > a,
  .vk-h-nav > ul > li:hover > .vk-h-item,
  .vk-h-nav a:hover, .vk-h-nav .vk-h-item:hover { color: var(--vk-h-red); }
.vk-h-nav > ul > li:hover > a::after,
  .vk-h-nav > ul > li:hover > .vk-h-item::after,
  .vk-h-nav a:hover::after,
  .vk-h-nav .vk-h-item:hover::after { transform: scaleX(1); }
.vk-h-nav a.is-active { color: var(--vk-h-red); }
.vk-h-nav a.is-active::after { transform: scaleX(1); }
.vk-h-item .vk-h-caret {
    display: inline-block;
    margin-left: 6px; font-size: 8px;
    transform: translateY(-1px); opacity: 0.6;
    transition: transform 280ms ease, opacity 240ms ease;
  }
.vk-h-nav > ul > li:hover .vk-h-caret { transform: translateY(0) rotate(180deg); opacity: 1; }
/* dropdown */
  .vk-h-sub {
    position: absolute; top: 100%; left: -22px;
    min-width: 280px;
    background: #ffffff;
    border: 1px solid var(--vk-h-line);
    border-top: 2px solid var(--vk-h-red);
    padding: 18px 22px;
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: opacity 240ms ease, transform 320ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 240ms;
    box-shadow: 0 18px 40px -10px rgba(42, 24, 16, 0.12), 0 4px 12px rgba(42, 24, 16, 0.04);
    z-index: 110;
  }
.vk-h-nav > ul > li:hover .vk-h-sub,
  .vk-h-nav > ul > li:focus-within .vk-h-sub {
    opacity: 1; visibility: visible; transform: translateY(0);
    transition-delay: 0s, 0s, 0s;
  }
.vk-h-sub::before {
    content: '';
    position: absolute; top: -10px; left: 28px;
    width: 14px; height: 14px;
    background: #fff;
    border-left: 1px solid var(--vk-h-line);
    border-top: 2px solid var(--vk-h-red);
    transform: rotate(45deg);
  }
.vk-h-sub ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.vk-h-sub a {
    font-family: var(--vk-h-font);
    font-weight: 500; font-size: 11px;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--vk-h-ink-soft);
    padding: 10px 0; display: block;
    position: relative;
    border-bottom: 1px solid var(--vk-h-line-soft);
    text-decoration: none;
    transition: color 200ms ease, padding-left 280ms cubic-bezier(0.4, 0, 0.2, 1);
  }
.vk-h-sub li:last-child a { border-bottom: 0; }
.vk-h-sub a::after { display: none; }
.vk-h-sub a::before {
    content: '';
    position: absolute;
    left: 0; top: 50%;
    width: 0; height: 1px;
    background: var(--vk-h-red);
    transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1);
  }
.vk-h-sub a:hover { color: var(--vk-h-red); padding-left: 18px; }
.vk-h-sub a:hover::before { width: 12px; }
/* языки */
  .vk-h-lang {
    justify-self: end; align-self: end;
    display: flex; align-items: center; gap: 14px;
    font-family: var(--vk-h-font);
    font-weight: 500; font-size: 12px;
    letter-spacing: 0.18em; text-transform: uppercase;
    padding-bottom: 10px;
  }
.vk-h-lang a {
    color: var(--vk-h-mute);
    transition: color 200ms ease;
    position: relative;
    padding: 2px 0;
    text-decoration: none;
  }
.vk-h-lang a::after {
    content: '';
    position: absolute; left: 0; right: 0; bottom: -3px;
    height: 1.5px; background: var(--vk-h-red);
    transform: scaleX(0); transform-origin: left;
    transition: transform 260ms ease;
  }
.vk-h-lang a:hover { color: var(--vk-h-red); }
.vk-h-lang a:hover::after { transform: scaleX(1); }
.vk-h-lang a.is-active { color: var(--vk-h-red); font-weight: 700; }
.vk-h-lang a.is-active::after { transform: scaleX(1); }
.vk-h-lang .sep { color: var(--vk-h-mute-soft); user-select: none; }
/* бургер */
  .vk-h-burger { display: none; }
@media (max-width: 1180px) {
.vk-h-inner { padding: 16px 24px; }
.vk-h-nav > ul { gap: 26px; }
.vk-h-nav a, .vk-h-nav .vk-h-item { font-size: 11px; letter-spacing: 0.14em; }
}
@media (max-width: 1024px) {
.vk-h-nav { display: none; }
.vk-h-lang { padding-bottom: 0; }
.vk-h-burger {
      display: inline-flex; align-items: center; justify-content: center;
      width: 36px; height: 36px;
      background: transparent; border: 0; cursor: pointer;
      position: relative;
    }
.vk-h-burger span {
      position: absolute; left: 50%;
      width: 22px; height: 1px;
      background: var(--vk-h-ink);
      transform: translateX(-50%);
      transition: transform 280ms ease, top 280ms ease, opacity 200ms ease;
    }
.vk-h-burger span:nth-child(1) { top: 12px; }
.vk-h-burger span:nth-child(2) { top: 17px; }
.vk-h-burger span:nth-child(3) { top: 22px; }
.vk-h-burger[aria-expanded="true"] span:nth-child(1) { top: 17px; transform: translateX(-50%) rotate(45deg); background: var(--vk-h-red); }
.vk-h-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.vk-h-burger[aria-expanded="true"] span:nth-child(3) { top: 17px; transform: translateX(-50%) rotate(-45deg); background: var(--vk-h-red); }
}
/* drawer */
  .vk-h-drawer {
    position: fixed; top: 0; left: auto; right: 0; bottom: 0;
    width: min(380px, 86vw);
    background: #ffffff;
    z-index: 200;
    padding: 80px 32px 40px;
    transform: translateX(100%);
    transition: transform 360ms cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: -20px 0 60px rgba(42, 24, 16, 0.08);
    overflow-y: auto;
  }
.vk-h-drawer.is-open { transform: translateX(0); }
.vk-h-drawer > a, .vk-h-drawer details > summary {
    display: block; padding: 18px 0;
    font-family: var(--vk-h-font);
    font-weight: 600; font-size: 13px;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--vk-h-ink);
    border-bottom: 1px solid var(--vk-h-line-soft);
    cursor: pointer; list-style: none;
    text-decoration: none;
  }
.vk-h-drawer details > summary::-webkit-details-marker { display: none; }
.vk-h-drawer details[open] > summary { color: var(--vk-h-red); }
.vk-h-drawer details > summary::after { content: '+'; float: right; font-weight: 400; }
.vk-h-drawer details[open] > summary::after { content: '−'; color: var(--vk-h-red); }
.vk-h-drawer details ul { list-style: none; margin: 0; padding: 6px 0 14px 18px; display: flex; flex-direction: column; gap: 4px; }
.vk-h-drawer details ul a {
    display: block; padding: 10px 0;
    font-family: var(--vk-h-font);
    font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--vk-h-ink-soft);
    text-decoration: none;
  }
.vk-h-drawer details ul a:hover { color: var(--vk-h-red); }
.vk-h-drawer > a:hover, .vk-h-drawer > a:focus { color: var(--vk-h-red); }
.vk-h-drawer-foot {
    margin-top: 32px;
    display: flex; gap: 18px;
    font-family: var(--vk-h-font);
    font-size: 12px; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--vk-h-mute);
  }
.vk-h-drawer-foot a { text-decoration: none; color: inherit; }
.vk-h-drawer-foot a.is-active { color: var(--vk-h-red); font-weight: 700; }
.vk-h-scrim {
    position: fixed; inset: 0;
    background: rgba(42, 24, 16, 0.30);
    opacity: 0; pointer-events: none;
    transition: opacity 280ms ease;
    z-index: 150;
  }
.vk-h-scrim.is-open { opacity: 1; pointer-events: auto; }
/* токены — внутри scope */
  .vk-f-scope {
    --vk-f-cream-warm: #FBF6EE;
    --vk-f-ink:        #2A1810;
    --vk-f-ink-soft:   #4A3528;
    --vk-f-mute:       #A09080;
    --vk-f-mute-soft:  #C9BEB1;
    --vk-f-red:        #C8203C;
    --vk-f-line:       rgba(42, 24, 16, 0.10);
    --vk-f-line-soft:  rgba(42, 24, 16, 0.06);
  }
.vk-f-scope *, .vk-f-scope *::before, .vk-f-scope *::after { box-sizing: border-box; }
.vk-footer {
    background: var(--vk-f-cream-warm);
    color: var(--vk-f-ink);
    padding: 56px 48px 28px;
    position: relative;
    overflow: hidden;
    font-family: 'Josefin Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  }
.vk-footer::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--vk-f-mute-soft) 20%, var(--vk-f-mute-soft) 80%, transparent 100%);
  }
.vk-footer a { text-decoration: none; color: inherit; }
.vk-footer ul { list-style: none; margin: 0; padding: 0; }
.vk-footer img { display: block; max-width: 100%; }
.vk-f-logo-img { display: block; height: 88px; width: auto; margin-bottom: 14px; }
.vk-f-inner { max-width: 1280px; margin: 0 auto; }
/* верхняя сетка */
  .vk-f-top {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr 1.1fr;
    gap: 56px;
    padding-bottom: 48px;
  }
/* бренд */
  .vk-f-brand .vk-f-logo {
    font-family: 'Pinyon Script','Apple Chancery','Great Vibes';
    font-size: 44px; line-height: 1;
    color: var(--vk-f-red);
    margin-bottom: 4px;
    white-space: nowrap;
  }
.vk-f-brand .vk-f-by {
    font-weight: 300; font-size: 10px;
    letter-spacing: 0.32em; text-transform: uppercase;
    color: var(--vk-f-mute);
    margin-bottom: 22px;
  }
.vk-f-brand .vk-f-tag {
    font-family: 'Bodoni Moda','Playfair Display';
    font-style: italic; font-weight: 400;
    font-size: 16px; line-height: 1.55;
    color: var(--vk-f-ink-soft);
    max-width: 280px;
    margin: 0;
  }
/* заголовок колонки */
  .vk-f-h {
    font-family: 'Playfair Display';
    font-weight: 700; font-size: 15px;
    letter-spacing: 0.22em;
    color: var(--vk-f-red);
    margin: 0 0 26px;
    padding-bottom: 14px;
    position: relative;
    display: inline-block;
    white-space: nowrap;
  }
.vk-f-h::after {
    content: '';
    position: absolute; left: 0; bottom: 0;
    width: 38px; height: 2px;
    background: var(--vk-f-red);
  }
.vk-f-h::before {
    content: '';
    position: absolute; left: 42px; bottom: 0.5px;
    width: 80px; height: 1px;
    background: var(--vk-f-line);
  }
/* списки колонок (буллеты) */
  .vk-f-col ul { display: flex; flex-direction: column; gap: 14px; }
.vk-f-col > ul > li {
    position: relative;
    padding-left: 40px;
    min-height: 28px;
    display: flex; align-items: center;
  }
.vk-f-col > ul > li::before {
    content: '';
    position: absolute;
    left: 10px; top: 50%;
    transform: translateY(-50%);
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--vk-f-red);
    box-shadow: 0 0 0 4px rgba(200, 32, 60, 0.10);
    transition: transform 240ms ease, box-shadow 240ms ease;
  }
.vk-f-col > ul > li:hover::before {
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 0 5px rgba(200, 32, 60, 0.18);
  }
.vk-f-col > ul > li > a {
    font-weight: 400; font-size: 14px;
    letter-spacing: 0.02em;
    color: var(--vk-f-ink-soft);
    display: inline-block;
    position: relative;
    padding-bottom: 2px;
    background-image: linear-gradient(var(--vk-f-red), var(--vk-f-red));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 1.5px;
    transition: color 220ms ease, background-size 320ms cubic-bezier(0.4, 0, 0.2, 1);
  }
.vk-f-col > ul > li > a:hover {
    color: var(--vk-f-red);
    background-size: 100% 1.5px;
  }
/* соцсети в правой колонке */
  .vk-f-links-icon { display: flex; flex-direction: column; gap: 14px; }
.vk-f-links-icon a {
    display: inline-flex; align-items: center; gap: 12px;
    min-height: 28px;
    font-weight: 500; font-size: 13px;
    letter-spacing: 0.04em;
    color: var(--vk-f-ink-soft);
    transition: color 220ms ease, transform 240ms ease;
    position: relative;
  }
.vk-f-links-icon a .ic {
    width: 28px; height: 28px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid var(--vk-f-line);
    box-shadow: 0 0 0 4px rgba(200, 32, 60, 0.10);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--vk-f-red);
    transition: all 240ms ease;
  }
.vk-f-links-icon a .ic svg { width: 13px; height: 13px; fill: currentColor; }
.vk-f-links-icon a:hover { color: var(--vk-f-red); transform: translateX(4px); }
.vk-f-links-icon a:hover .ic {
    background: var(--vk-f-red); color: #fff;
    border-color: var(--vk-f-red);
    box-shadow: 0 0 0 5px rgba(200, 32, 60, 0.18);
  }
/* email-полоса */
  .vk-f-mail {
    margin: 0 auto;
    padding: 36px 0 32px;
    border-top: 1px solid var(--vk-f-line-soft);
    border-bottom: 1px solid var(--vk-f-line-soft);
    display: flex; flex-direction: column;
    align-items: center; gap: 14px;
    text-align: center;
  }
.vk-f-mail-icon {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid var(--vk-f-line);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--vk-f-red);
    transition: all 280ms ease;
  }
.vk-f-mail-icon svg { width: 22px; height: 22px; fill: currentColor; }
.vk-f-mail:hover .vk-f-mail-icon {
    background: var(--vk-f-red); color: #fff;
    border-color: var(--vk-f-red);
    transform: translateY(-2px);
    box-shadow: 0 12px 24px -8px rgba(200, 32, 60, 0.35);
  }
.vk-f-mail-label {
    font-size: 10px; letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--vk-f-mute);
  }
.vk-f-mail-link {
    font-family: 'Bodoni Moda','Playfair Display';
    font-weight: 400; font-style: italic;
    font-size: 26px;
    color: var(--vk-f-ink);
    letter-spacing: 0.02em;
    transition: color 220ms ease;
  }
.vk-f-mail-link:hover { color: var(--vk-f-red); }
/* низ */
  .vk-f-bottom {
    padding-top: 24px;
    display: flex; justify-content: space-between;
    align-items: center; flex-wrap: wrap; gap: 14px;
    font-size: 11px; letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--vk-f-mute);
  }
.vk-f-bottom a { transition: color 200ms ease; }
.vk-f-bottom a:hover { color: var(--vk-f-red); }
.vk-f-bottom .legal { display: flex; gap: 22px; flex-wrap: wrap; }
.vk-f-bottom .years { color: var(--vk-f-red); font-weight: 600; letter-spacing: 0.14em; }
/* росчерк */
  .vk-f-flourish {
    position: absolute;
    top: 30px; right: 40px;
    font-family: 'Pinyon Script','Apple Chancery','Great Vibes';
    font-size: 90px;
    color: var(--vk-f-red);
    opacity: 0.06;
    line-height: 1;
    pointer-events: none;
    transform: rotate(-6deg);
  }
@media (max-width: 980px) {
.vk-footer { padding: 56px 24px 24px; }
.vk-f-top { grid-template-columns: 1fr 1fr; gap: 40px 32px; padding-bottom: 36px; }
.vk-f-brand { grid-column: 1 / -1; }
.vk-f-bottom { flex-direction: column; align-items: flex-start; }
.vk-f-flourish { font-size: 60px; right: 20px; top: 20px; }
.vk-f-mail-link { font-size: 22px; }
}
@media (max-width: 560px) {
.vk-f-top { grid-template-columns: 1fr; gap: 36px; padding-bottom: 32px; }
.vk-f-mail-link { font-size: 19px; }
}
/* ── Lang toggle ── */
html[lang="en"] .vk-h-lang a[href="#ru"],
html[lang="ru"] .vk-h-lang a[href="#en"] { opacity:.55; font-weight:400; }
html[lang="en"] .vk-h-lang a[href="#en"],
html[lang="ru"] .vk-h-lang a[href="#ru"] { color:var(--vk-h-red,#C8203C); font-weight:700; }
/* ── Объединённая навигация: компактная посадка 6 пунктов ── */
.vk-h-nav .vk-h-item { display: inline-flex; align-items: center; gap: 6px; line-height: 1.35; }
.vk-h-nav .vk-h-item > span[data-i18n] { display: inline-block; }
.vk-h-nav .vk-h-item .vk-h-caret { flex: 0 0 auto; margin-left: 0; }
.vk-h-nav > ul > li > a { line-height: 1.35; }
@media (max-width: 1400px) {
.vk-h-nav ul { gap: 20px; }
.vk-h-nav a, .vk-h-nav .vk-h-item { letter-spacing: 0.12em; }
}
@media (max-width: 1180px) {
.vk-h-nav ul { gap: 14px; }
.vk-h-nav a, .vk-h-nav .vk-h-item { font-size: 10px; letter-spacing: 0.08em; }
}
/* выпадающее меню не обрезается у правого края */
.vk-h-nav > ul > li:nth-last-child(-n+2) .vk-h-sub { left: auto; right: 0; }
.vk-f *, .vk-f *::before, .vk-f *::after { box-sizing: border-box; margin: 0; padding: 0; }
.vk-f {
  background: #FEFCF8;
  border-top: 1px solid rgba(200, 32, 60, 0.12);
  font-family: 'Josefin Sans','Raleway','Jost';
  color: #2A1810;
  position: relative;
  overflow: hidden;
}
.vk-f::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse at 15% 100%, rgba(200, 32, 60, 0.05) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 0%, rgba(228, 90, 120, 0.04) 0%, transparent 45%);
}
.vk-f-inner { position: relative; max-width: 1280px; margin: 0 auto; padding: 32px 24px 32px; }
/* ── Top quote ───────────────────────────────── */
.vk-f-quote {
  font-family: 'Libre Baskerville','Times New Roman','Noto Serif';
  font-style: italic; font-weight: 400;
  font-size: 20px; line-height: 1.45;
  color: #2A1810; text-align: center;
  max-width: 540px; margin: 0 auto 44px;
}
.vk-f-quote b { color: #C8203C; font-weight: 700; }
.vk-f-rule { width: 36px; height: 1px; background: linear-gradient(to right, transparent, #C8203C, transparent); margin: 0 auto 36px; }
/* ── Columns ─────────────────────────────────── */
.vk-f-grid { display: grid; grid-template-columns: 1fr; gap: 36px; margin-bottom: 48px; }
.vk-f-col-head {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 400; font-size: 9px;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: #A09080;
  margin-bottom: 16px;
}
.vk-f-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.vk-f-col a {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 300; font-size: 14px;
  color: #2A1810; text-decoration: none;
  transition: color 200ms ease;
}
.vk-f-col a:hover { color: #C8203C; }
.vk-f-contact { font-family: 'Josefin Sans','Raleway','Jost'; font-weight: 300; font-size: 14px; line-height: 1.9; color: #6A5A4A; }
.vk-f-contact strong { color: #2A1810; font-weight: 400; }
.vk-f-contact a { color: #C8203C; text-decoration: none; border-bottom: 1px solid rgba(200, 32, 60, 0.25); transition: all 200ms ease; }
.vk-f-contact a:hover { color: #5D0F24; border-color: rgba(93, 15, 36, 0.5); }
/* ── Socials ─────────────────────────────────── */
.vk-f-socials { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.vk-f-soc {
  width: 40px; height: 40px;
  border: 1px solid rgba(200, 32, 60, 0.30);
  border-radius: 50%;
  display: grid; place-items: center;
  color: #C8203C;
  text-decoration: none;
  transition: all 240ms ease;
}
.vk-f-soc:hover { background: #C8203C; color: #FEFCF8; border-color: #C8203C; }
.vk-f-soc svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.vk-f-soc svg.filled { fill: currentColor; stroke: none; }
/* ── Bottom ─────────────────────────────────── */
.vk-f-bot {
  border-top: 1px solid rgba(160, 144, 128, 0.20);
  padding-top: 22px;
  display: flex; flex-direction: column; gap: 14px;
  align-items: center;
}
.vk-f-sig { display: flex; align-items: center; gap: 8px; }
.vk-f-sig-img { height: 38px; width: auto; }
.vk-f-sig-fallback { font-family: 'Pinyon Script','Apple Chancery','Great Vibes'; font-size: 26px; color: #C8203C; line-height: 1; display: none; }
.vk-f-sig .by { font-family: 'Josefin Sans','Raleway','Jost'; font-weight: 300; font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: #A09080; }
.vk-f-copy {
  font-family: 'Josefin Sans','Raleway','Jost';
  font-weight: 300; font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #A09080; text-align: center;
}
@media (min-width: 1024px) {
.vk-f-inner { padding: 32px 44px 44px; }
.vk-f-quote { font-size: 28px; max-width: 640px; }
.vk-f-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 56px; }
}
