@charset "UTF-8";
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Thin.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Thin.woff") format("woff");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-ThinIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-ThinIta.woff") format("woff");
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Light.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-LightIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-LightIta.woff") format("woff");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Regular.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-RegIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-RegIta.woff") format("woff");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Medium.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-MedIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-MedIta.woff") format("woff");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Bold.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-BoldIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-BoldIta.woff") format("woff");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Black.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-Black.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Helvetica Now Display";
  src: url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-BlackIta.woff2") format("woff2"), url("./fonts/HelveticaNowDisplay/HelveticaNowDisplay-BlackIta.woff") format("woff");
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "e-Ukraine Head Logo";
  src: url("./fonts/e-Ukraine Head/e-UkraineHead-LOGO.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "e-Ukraine Head";
  src: url("./fonts/e-Ukraine Head/e-UkraineHead-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --font-sans: "Helvetica Now Display", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-logo: "e-Ukraine Head Logo", var(--font-sans);
  --header-nav-shift: 4rem; /* смещение меню вправо/влево */
  /* Макет: 1920px, контейнер: 1736px */
  --container-max: min(90.4167vw, 108.5rem); /* 1736px */
  --container-padding: clamp(0.75rem, 0.7813vw, 0.9375rem); /* 12px..15px */
  /* Цветовые темы - захардкоженные значения */
  --color-purple: #8f5bff;
  --color-purple-hover: #7b43ff;
  --color-dark-gray: rgba(43, 47, 54, 1);
  --color-dark-gray-hover: rgba(30, 33, 38, 1);
  --color-blue: rgba(0, 71, 171, 1);
  --color-blue-hover: rgba(0, 57, 137, 1);
  --color-red: rgba(164, 52, 58, 1);
  --color-red-hover: rgba(140, 44, 49, 1);
  --color-dark-blue: rgba(44, 62, 80, 1);
  --color-dark-blue-hover: rgba(35, 50, 64, 1);
  --color-blue-light: rgba(0, 86, 179, 1);
  --color-blue-light-hover: rgba(0, 69, 143, 1);
  --color-gray-blue: rgba(69, 90, 100, 1);
  --color-gray-blue-hover: rgba(55, 72, 80, 1);
  /* Основные цвета (по умолчанию фиолетовый) */
  --primary: var(--color-purple);
  --primary-hover: var(--color-purple-hover);
  --text: #111;
  --c-heading: #2b2b2b;
  --c-paragraph: #6c6c6c;
  --bg: #fff;
  --focus: #2b66ff;
}

/* Классы для переключения цветовой темы */
body.theme-purple {
  --primary: var(--color-purple);
  --primary-hover: var(--color-purple-hover);
}

body.theme-dark-gray {
  --primary: var(--color-dark-gray);
  --primary-hover: var(--color-dark-gray-hover);
}

body.theme-blue {
  --primary: var(--color-blue);
  --primary-hover: var(--color-blue-hover);
}

body.theme-red {
  --primary: var(--color-red);
  --primary-hover: var(--color-red-hover);
}

body.theme-dark-blue {
  --primary: var(--color-dark-blue);
  --primary-hover: var(--color-dark-blue-hover);
}

body.theme-blue-light {
  --primary: var(--color-blue-light);
  --primary-hover: var(--color-blue-light-hover);
}

body.theme-gray-blue {
  --primary: var(--color-gray-blue);
  --primary-hover: var(--color-gray-blue-hover);
}

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

html,
body {
  height: 100%;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--bg);
  line-height: 1.5;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
/* Typography */
h2 {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2rem, 3.3333vw, 4rem); /* ~32px..64px */
  line-height: 1; /* 100% */
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: var(--c-heading);
}

h3 {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1.5rem, 2.1875vw, 2.625rem); /* ~24px..42px */
  line-height: 1.1429; /* 48/42 */
  letter-spacing: -0.0229em; /* -0.96px @ 42px */
  color: var(--c-heading);
}

p {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(0.9375rem, 1.0417vw, 1.25rem); /* ~15px..20px */
  line-height: 1.15; /* 23/20 */
  letter-spacing: -0.0095em; /* -0.19px @ 20px */
  color: var(--c-paragraph);
}

/* Layout */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* Preloader */
.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  transition: opacity 450ms ease, visibility 0ms linear 450ms;
}

.preloader__logo {
  flex-direction: column;
  gap: 0.75rem;
  text-align: center;
}

.preloader .header__logo-text {
  color: rgb(43, 43, 43);
}

html.js:not(.is-app-ready) body {
  overflow: hidden;
}

html.is-app-ready .preloader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* На экранах ниже 1400px контейнер занимает 100% ширины */
@media (max-width: 87.5em) {
  :root {
    --container-max: 95.4167vw;
  }
  /* Partners glass: <1400px сделать шире/выше на +50px */
  .partners-glass {
    width: min(27.8646vw + 50px, 33.4375rem + 50px);
    height: min(22.2917vw + 50px, 26.75rem + 50px);
  }
  /* Footer map badge: <1400px сделать шире на +50px */
  .footer__map-badge {
    width: min(92%, var(--footer-badge-w) + 50px);
  }
}
/* Header (без фона) */
.header {
  padding-block: 0.75rem; /* 12px */
  position: absolute;
  top: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
  left: 0;
  right: 0;
  z-index: 50;
  transition: top 250ms ease, background-color 250ms ease, backdrop-filter 250ms ease, transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Sticky header from the 2nd section */
.header.is-fixed {
  position: fixed;
  top: 0;
  height: 6rem; /* 96px */
  padding-block: 0;
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 106.77%);
  backdrop-filter: blur(3px);
  transform: translate3d(0, -100%, 0);
}

.header.is-fixed.is-fixed--shown {
  transform: translate3d(0, 0, 0);
}

/* Fixed header: remove fog on nav + phone button */
.header.is-fixed .header__nav {
  background: transparent;
  backdrop-filter: blur(3px);
}

.header.is-fixed .btn--phone {
  background: transparent;
  backdrop-filter: blur(3px);
}

@keyframes header-reveal {
  0% {
    opacity: 0;
    transform: translate3d(0, -1rem, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/* Header: появление сверху вместе с hero__cta */
html.js .header {
  opacity: 0;
  transform: translate3d(0, -1rem, 0);
  will-change: transform, opacity;
}

html.is-loaded .header {
  animation: header-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.75s; /* синхронно с hero__cta */
}

.header__inner {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
}

.header__logo {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.375rem, 0.5208vw, 0.625rem); /* 6px..10px */
}

.header__logo-text {
  font-family: "e-Ukraine Head", var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(0.8125rem, 0.8333vw, 1rem); /* 13px..16px */
  line-height: 1.1519rem; /* 18.43px */
  max-width: 10.5rem; /* 168px */
  letter-spacing: 0;
  text-transform: uppercase;
  color: rgb(255, 255, 255);
  display: inline-flex;
  align-items: center;
}

/* Цвет текста лого в зависимости от секции (класс вешается на .header через JS) */
.header.black .header__logo-text {
  color: rgb(43, 43, 43);
}

.header__logo img {
  width: clamp(2.5rem, 2.7021vw, 3.2425rem); /* ~40px..51.88px */
  height: clamp(3.25rem, 3.4845vw, 4.1814rem); /* ~52px..66.90px */
}

.header__nav {
  margin-inline: auto;
  transform: translateX(var(--header-nav-shift));
  display: flex;
  align-items: center;
  height: clamp(2.75rem, 2.9167vw, 3.5rem); /* 44px..56px */
  padding-inline: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(0.25rem); /* 4px */
  border-radius: 0.25rem; /* 4px */
}

.header__menu {
  display: flex;
  align-items: center;
  gap: clamp(0.5rem, 0.8333vw, 1rem); /* 8px..16px */
}

.header__link {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-radius: 999px;
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
  line-height: 1.5rem; /* 24px */
  letter-spacing: -0.02em; /* -2% */
  color: #fff;
}

.header__link:hover {
  opacity: 0.8;
}

.header__actions {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
  white-space: nowrap;
}

.btn {
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.5rem, 0.8333vw, 1rem); /* 8px..16px */
  padding: clamp(0.625rem, 0.8333vw, 1rem) clamp(0.875rem, 1.1458vw, 1.375rem); /* 10..16 / 14..22 */
  border-radius: clamp(0.375rem, 0.4167vw, 0.5rem); /* 6px..8px */
  border: 1px solid rgba(17, 17, 17, 0.18);
  color: inherit;
  --btn-text-duration: 0.32s;
  --btn-text-stagger: 0.02s;
}

/* Hover-анимация ТОЛЬКО текста внутри кнопок (.btn > span) */
.btn > span {
  position: relative;
  display: inline-block;
  overflow: hidden;
  line-height: 100%;
}

.btn > span .btn__text {
  display: inline-flex;
  overflow: hidden;
  text-shadow: 0 1em 0 currentColor;
}

.btn > span .btn__char {
  display: inline-block;
  backface-visibility: hidden;
  transform: translateY(0) translateZ(0);
  transition: transform var(--btn-text-duration) ease;
  transition-delay: calc(var(--i, 0) * var(--btn-text-stagger));
}

.btn:is(:hover, :focus-visible) > span .btn__char {
  transform: translateY(-1em) translateZ(0);
}

.btn--phone {
  height: clamp(2.75rem, 2.5vw, 3rem); /* 44px..48px */
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
  line-height: 1.5rem; /* 24px */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(255, 255, 255);
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(2rem); /* 32px */
  border-color: transparent;
  border-radius: clamp(7.5rem, 11.4583vw, 13.75rem); /* 120px..220px */
}

.btn--callback .btn__icon {
  width: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
  height: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
}

.btn:hover {
  background: rgba(0, 0, 0, 0.04);
}

.btn--primary {
  border-color: transparent;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  white-space: nowrap;
  height: clamp(4.5rem, 5.8333vw, 7rem); /* 72px..112px */
  width: clamp(18rem, 29.4271vw, 35.3125rem); /* 288px..565px */
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
}

/* Абсолютное позиционирование нужно только для CTA в hero (в Partners кнопка должна быть в потоке) */
.btn.btn--primary.hero__cta {
  position: absolute;
  bottom: 0;
  left: 0;
}

.btn--primary:hover {
  background: var(--primary-hover);
}

.btn__icon {
  width: 2rem; /* 32px */
  height: 2rem; /* 32px */
  flex: 0 0 auto;
  transform: translate3d(0, 0, 0);
  transition: transform 220ms ease;
}

/* Чтобы иконка в основной CTA-кнопке была резиновой вместе с font-size */
.btn--primary .btn__icon {
  width: 1.333em; /* 32px при 24px шрифте */
  height: 1.333em;
}

.btn:is(:hover, :focus-visible) .btn__icon {
  transform: translate3d(clamp(0.125rem, 0.1563vw, 0.1875rem), clamp(-0.1875rem, -0.1563vw, -0.125rem), 0);
}

.btn--callback {
  height: clamp(2.75rem, 2.5vw, 3rem); /* 44px..48px */
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
  line-height: 1.5rem; /* 24px */
  letter-spacing: -0.02em; /* -2% */
  background: rgb(255, 255, 255);
  color: var(--text);
  border-color: transparent;
  border-radius: clamp(6rem, 8.3333vw, 10rem); /* 96px..160px */
}
.btn--callback:hover {
  background: rgba(255, 255, 255, 0.95);
}
.btn--callback:hover .btn__icon {
  transform: translate3d(0, 0, 0);
}

/* Hero */
.hero {
  background: url("../img/hero.png") center/cover no-repeat;
  color: #fff;
  --c-heading: #fff;
  --c-paragraph: rgba(255, 255, 255, 0.95);
  padding: clamp(4rem, 4.1667vw, 5rem) 0 0; /* 64px..80px */
  height: 100dvh;
}
.hero .container {
  height: 100%;
}
.hero .btn--primary {
  border-radius: 0.5rem 0.5rem 0 0;
}

/* Service pages: hero variant */
.hero--service .breadcrumbs {
  color: rgba(255, 255, 255, 0.88);
}
.hero--service .breadcrumbs__sep {
  opacity: 0.7;
}
.hero--service .breadcrumbs__current {
  color: rgba(255, 255, 255, 0.78);
}
.hero--service .hero__inner {
  grid-template-columns: minmax(0, clamp(22rem, 34vw, 40rem)) 1fr;
}

/* Banner: military law */
.hero--military-law {
  background-image: url("../img/military law.png");
  background-position: right center;
  position: relative;
  isolation: isolate;
}
.hero--military-law::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(4, 18, 45, 0.92) 0%, rgba(4, 18, 45, 0.72) 38%, rgba(4, 18, 45, 0.24) 62%, rgba(4, 18, 45, 0) 78%);
}

@media (max-width: 64em) { /* <1024px */
  .hero--military-law {
    background-position: 70% center;
  }
}
@media (max-width: 40em) { /* <640px */
  .hero--service .hero__inner {
    grid-template-columns: 1fr;
  }
  .hero--military-law {
    background-position: center;
  }
}
.hero__inner {
  display: grid;
  grid-template-columns: minmax(0, clamp(28rem, 42.4479vw, 50.9375rem)) 1fr; /* 448px..815px */
  align-items: center;
  gap: clamp(1.5rem, 2.0833vw, 2.5rem); /* 24px..40px */
  height: 100%;
}

.service-practices__title {
  margin: 0;
  margin-bottom: clamp(1.25rem, 2.0833vw, 2.5rem); /* 20px..40px */
}

.service-practices__list {
  display: flex;
  flex-direction: column;
  gap: clamp(1.25rem, 2.0833vw, 2.5rem); /* 20px..40px */
}

.blog--services {
  border-radius: clamp(1.5rem, 2.5vw, 3rem);
  margin-top: -34px;
  z-index: 10;
  position: relative;
}

.practice-item {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: clamp(0.875rem, 1.0417vw, 1.25rem); /* 14px..20px */
  align-items: stretch;
}

.practice-item__media {
  border-radius: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  min-height: clamp(15.5rem, 20.8333vw, 19.875rem); /* 248px..318px */
  position: relative;
  overflow: hidden;
  background: radial-gradient(120% 90% at 35% 35%, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 60%), linear-gradient(135deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 55%), var(--primary);
}

.practice-item__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  opacity: 0.92;
}

.practice-item__overlay {
  position: absolute;
  left: clamp(0.75rem, 1.0417vw, 1.25rem);
  right: clamp(0.75rem, 1.0417vw, 1.25rem);
  bottom: clamp(0.75rem, 1.0417vw, 1.25rem);
  padding: clamp(0.875rem, 1.1458vw, 1.375rem);
  border-radius: clamp(0.875rem, 0.9375vw, 1.125rem); /* 14px..18px */
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(32px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  display: grid;
  gap: clamp(1rem, 1.6667vw, 2rem); /* 16px..32px */
}

.practice-item h3 {
  color: rgb(255, 255, 255);
}

.btn.btn--practice {
  width: 100%;
  height: clamp(4.5rem, 5.8333vw, 7rem);
  padding-inline: clamp(1rem, 1.25vw, 1.5rem);
  border-color: transparent;
  background: var(--primary);
  color: rgb(255, 255, 255);
  justify-content: center;
  font-weight: 500;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem);
}
.btn.btn--practice:hover {
  background: var(--primary-hover);
}

.practice-item__info {
  border-radius: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: clamp(1.25rem, 1.6667vw, 2rem); /* 20px..32px */
  background: rgba(220, 220, 220, 0.5);
  display: grid;
  gap: clamp(1.25rem, 1.875vw, 2.25rem); /* 20px..36px */
}

.practice-item__info ul {
  display: flex;
  flex-direction: column;
  padding: 0;
  list-style: none;
  gap: 0.5rem;
  padding-left: 0;
  margin-top: 30px;
}

.practice-item__info li {
  width: -moz-fit-content;
  width: fit-content;
  --check-wrap: clamp(1.25rem, 1.25vw, 1.5rem);
  --check-icon: clamp(0.625rem, 0.7292vw, 0.75rem);
  --check-x: clamp(0.75rem, 1.0417vw, 1.25rem);
  position: relative;
  min-height: clamp(2rem, 2.0833vw, 2.25rem);
  padding: clamp(0.25rem, 0.2604vw, 0.3125rem) clamp(1rem, 1.25vw, 1.5rem) clamp(0.25rem, 0.2604vw, 0.3125rem) calc(var(--check-x) + var(--check-wrap) + clamp(0.75rem, 1.0417vw, 1.25rem)); /* top/bottom: 4px..5px */
  border-radius: 20px;
  background: rgb(255, 255, 255);
  color: rgb(43, 43, 43);
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.9375vw, 1rem);
  line-height: 1.45;
  letter-spacing: -0.02em;
}
.practice-item__info li::before {
  content: "";
  position: absolute;
  left: var(--check-x);
  top: 50%;
  transform: translateY(-50%);
  width: var(--check-wrap);
  height: var(--check-wrap);
  border-radius: 999px;
  background: var(--primary);
}
.practice-item__info li::after {
  content: "";
  position: absolute;
  left: calc(var(--check-x) + (var(--check-wrap) - var(--check-icon)) / 2);
  top: 50%;
  transform: translateY(-50%);
  width: var(--check-icon);
  height: var(--check-icon);
  background: rgb(255, 255, 255);
  -webkit-mask-image: url(../img/check.svg);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url(../img/check.svg);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.practice-item__info-title {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(1.25rem, 1.6667vw, 2rem); /* 20px..32px */
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--primary);
}

.practice-item__info-text p {
  margin-top: clamp(0.75rem, 1.0417vw, 1rem);
}

.practice-item__info-text p:first-child {
  margin-top: 0;
}

.practice-item__list {
  display: flex;
  flex-direction: column;
  padding: 0;
  list-style: none;
  gap: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
}

.practice-item__li {
  width: -moz-fit-content;
  width: fit-content;
  --check-wrap: clamp(1.25rem, 1.25vw, 1.5rem); /* 20px..24px */
  --check-icon: clamp(0.625rem, 0.7292vw, 0.75rem); /* 10px..12px */
  --check-x: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(2rem, 2.0833vw, 2.25rem); /* 32px..36px */
  padding: 0 clamp(1rem, 1.25vw, 1.5rem) 0 calc(var(--check-x) + var(--check-wrap) + clamp(0.75rem, 1.0417vw, 1.25rem));
  border-radius: clamp(4rem, 4.1667vw, 5rem); /* 64px..80px */
  background: rgb(255, 255, 255);
  color: rgb(43, 43, 43);
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.practice-item__li::before {
  content: "";
  position: absolute;
  left: var(--check-x);
  top: 50%;
  transform: translateY(-50%);
  width: var(--check-wrap);
  height: var(--check-wrap);
  border-radius: 999px;
  background: var(--primary);
}

.practice-item__li::after {
  content: "";
  position: absolute;
  left: calc(var(--check-x) + (var(--check-wrap) - var(--check-icon)) / 2);
  top: 50%;
  transform: translateY(-50%);
  width: var(--check-icon);
  height: var(--check-icon);
  background: rgb(255, 255, 255);
  -webkit-mask-image: url("../img/check.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../img/check.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

@media (max-width: 64em) { /* <1024px */
  .practice-item {
    grid-template-columns: 1fr;
  }
  .practice-item__info-text {
    max-width: 100%;
  }
}
.hero__content {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.hero__title {
  font-size: clamp(3rem, 5.2083vw, 6.25rem); /* 48px..100px */
  font-weight: 700;
  line-height: 100%;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}
.hero__title span {
  display: block;
}

@keyframes hero-line-reveal {
  0% {
    opacity: 0;
    transform: translate3d(0, 1.05em, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes hero-text-reveal {
  0% {
    opacity: 0;
    transform: translate3d(0, 0.85em, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes hero-cta-reveal {
  0% {
    opacity: 0;
    transform: translate3d(0, 1.25rem, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
html.js .hero__title span {
  opacity: 0;
  transform: translate3d(0, 1.05em, 0);
  will-change: transform, opacity;
}

html.is-loaded .hero__title span {
  animation: hero-line-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.is-loaded .hero__title span:nth-child(1) {
  animation-delay: 0.08s;
}

html.is-loaded .hero__title span:nth-child(2) {
  animation-delay: 0.18s;
}

html.is-loaded .hero__title span:nth-child(3) {
  animation-delay: 0.28s;
}

html.js .hero__breadcrumbs {
  opacity: 0;
  transform: translate3d(0, 0.85em, 0);
  will-change: transform, opacity;
}

html.is-loaded .hero__breadcrumbs {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.05s; /* синхронно с hero__text */
}

html.js .hero__text {
  opacity: 0;
  transform: translate3d(0, 0.85em, 0);
  will-change: transform, opacity;
}

html.is-loaded .hero__text {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.05s; /* после появления hero-title */
}

html.js .hero__cta {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
  will-change: transform, opacity;
}

html.is-loaded .hero__cta {
  animation: hero-cta-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.75s; /* после hero__text */
}

/* Reveal по строкам при первом попадании в экран (через IntersectionObserver) */
html.js .reveal-lines span {
  opacity: 0;
  transform: translate3d(0, 1.05em, 0);
  will-change: transform, opacity;
}

html.js .reveal-lines.is-revealed span {
  animation: hero-line-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.js .reveal-lines.is-revealed span:nth-child(1) {
  animation-delay: 0.23s;
}

html.js .reveal-lines.is-revealed span:nth-child(2) {
  animation-delay: 0.33s;
}

html.js .reveal-lines.is-revealed span:nth-child(3) {
  animation-delay: 0.43s;
}

html.js .reveal-lines.is-revealed span:nth-child(4) {
  animation-delay: 0.53s;
}

html.js .reveal-lines.is-revealed span:nth-child(5) {
  animation-delay: 0.63s;
}

html.js .reveal-lines.is-revealed span:nth-child(6) {
  animation-delay: 0.73s;
}

/* Services desc: появление p после reveal заголовка services-title */
html.js .services .services__desc p {
  opacity: 0;
  transform: translate3d(0, 0.85em, 0);
  will-change: transform, opacity;
}

html.js .services.is-revealed .services__desc p {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.js .services.is-revealed .services__desc p:nth-child(1) {
  animation-delay: 0.9s;
}

html.js .services.is-revealed .services__desc p:nth-child(2) {
  animation-delay: 1.02s;
}

html.js .services__grid .service-card {
  opacity: 0;
  transform: translateY(calc(var(--stagger) + 1.5rem));
  will-change: transform, opacity;
}

@keyframes service-card-reveal {
  0% {
    opacity: 0;
    transform: translateY(calc(var(--stagger) + 1.5rem));
  }
  100% {
    opacity: 1;
    transform: translateY(calc(var(--stagger)));
  }
}
/* Одноразовая цепочка: title -> desc -> cards */
html.js .services.is-revealed .services__grid {
  --services-cards-start: 0.9s; /* вместе с появлением текста */
}

html.js .services.is-revealed .services__grid .service-card {
  animation: service-card-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--services-cards-start, 0s) + var(--reveal-delay, 0s));
}

/* Чуть больше пауза между карточками */
html.js .services__grid .service-card:nth-child(1) {
  --reveal-delay: 0s;
}

html.js .services__grid .service-card:nth-child(2) {
  --reveal-delay: 0.10s;
}

html.js .services__grid .service-card:nth-child(3) {
  --reveal-delay: 0.20s;
}

html.js .services__grid .service-card:nth-child(4) {
  --reveal-delay: 0.30s;
}

html.js .services__grid .service-card:nth-child(5) {
  --reveal-delay: 0.40s;
}

html.js .services__grid .service-card:nth-child(6) {
  --reveal-delay: 0.50s;
}

html.js .services__grid .service-card:nth-child(7) {
  --reveal-delay: 0.60s;
}

html.js .services__grid .service-card:nth-child(8) {
  --reveal-delay: 0.70s;
}

html.js .services__grid .service-card:nth-child(9) {
  --reveal-delay: 0.80s;
}

html.js .services__grid .service-card:nth-child(10) {
  --reveal-delay: 0.90s;
}

@media (prefers-reduced-motion: reduce) {
  html.js .hero__title span {
    opacity: 1;
    transform: none;
    animation: none;
  }
  html.js .header {
    opacity: 1;
    transform: none;
    animation: none;
  }
  html.js .hero__text {
    opacity: 1;
    transform: none;
    animation: none;
  }
  html.js .hero__cta {
    opacity: 1;
    transform: none;
    animation: none;
  }
  html.js .services .services__desc p {
    opacity: 1;
    transform: none;
    animation: none;
  }
  html.js .services__grid .service-card {
    opacity: 1;
    transform: translateY(calc(var(--stagger)));
    transition: none;
    animation: none;
  }
  html.js .partners__cards .partners-card {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.js .partners-glass,
  html.js .partners-glass__brand span,
  html.js .partners-glass__logo,
  html.js .partners-glass__title span {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
    filter: none;
  }
  html.js .partners__text p {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.js .partners__cta {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.js .blog .blog__grid .post-card {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.js .blog .blog__all {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html.js .services-work__kicker,
  html.js .services-work__text,
  html.js .services-work__items .work-item {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }
  html.js .footer__map,
  html.js .footer__map-badge,
  html.js .footer__panel .footer-form.footer-card,
  html.js .footer__panel .footer-contacts.footer-card,
  html.js .footer-form__title span,
  html.js .footer-form__form,
  html.js .footer-form__note,
  html.js .footer-contacts__top,
  html.js .footer-contacts__phone,
  html.js .footer-contacts__email,
  html.js .footer-contacts__social .social-btn,
  html.js .footer__bottom {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }
  html.js .reveal-lines span {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
.hero__text, .hero__text p {
  font-weight: 500;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
  line-height: 120%;
  letter-spacing: -0.02em;
  margin-top: clamp(1rem, 1.6667vw, 2rem); /* 16px..32px */
}

.hero__cta {
  margin-top: clamp(1rem, 1.4583vw, 1.75rem); /* 16px..28px */
}

.hero__media {
  justify-self: end;
  perspective: 80rem;
  padding-left: clamp(0.75rem, 5.2083vw, 6.25rem); /* 12px..100px */
}

.hero__office {
  width: min(43.05rem, 46vw); /* 620px */
  height: auto;
  will-change: transform;
  transform-origin: 50% 55%;
  animation: hero-float 8.5s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

@keyframes hero-float {
  0% {
    transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
  25% {
    transform: translate3d(0.45rem, -1.05rem, 0) rotateX(1.2deg) rotateY(-1.8deg) rotateZ(-0.55deg);
  }
  50% {
    transform: translate3d(0, -2.1rem, 0) rotateX(2.1deg) rotateY(1.7deg) rotateZ(0.7deg);
  }
  75% {
    transform: translate3d(-0.4rem, -0.85rem, 0) rotateX(1.1deg) rotateY(2deg) rotateZ(0.35deg);
  }
  100% {
    transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
}
/* Мягче "невесомость" — чтобы не вылезало за секцию на средних экранах */
@keyframes hero-float-soft {
  0% {
    transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
  25% {
    transform: translate3d(0.25rem, -0.6rem, 0) rotateX(0.6deg) rotateY(-0.9deg) rotateZ(-0.25deg);
  }
  50% {
    transform: translate3d(0, -1.15rem, 0) rotateX(1deg) rotateY(0.9deg) rotateZ(0.35deg);
  }
  75% {
    transform: translate3d(-0.2rem, -0.45rem, 0) rotateX(0.5deg) rotateY(1deg) rotateZ(0.2deg);
  }
  100% {
    transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
}
/* Только вертикаль — без "качания" по сторонам (для маленьких экранов) */
@keyframes hero-float-vertical {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -0.75rem, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
/* Ниже 1400px */
@media (max-width: 87.5em) {
  .hero__office {
    width: min(43.05rem, 39vw);
    animation-name: hero-float-soft;
  }
  /* Hero CTA: <1400px сделать шире на +40px и чуть выше */
  .btn.btn--primary.hero__cta {
    min-width: 418px;
    min-height: calc(clamp(3.5rem, 5.8333vw, 7rem) + 8px);
  }
}
@keyframes services-logo-float {
  0% {
    transform: translate3d(-50%, 0, 0) rotateZ(0deg);
  }
  25% {
    transform: translate3d(-50%, -2.2rem, 0) rotateZ(-0.35deg);
  }
  50% {
    transform: translate3d(-50%, -4.2rem, 0) rotateZ(0.35deg);
  }
  75% {
    transform: translate3d(-50%, 1.4rem, 0) rotateZ(0.2deg);
  }
  100% {
    transform: translate3d(-50%, 0, 0) rotateZ(0deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero__office {
    animation: none;
    transform: none;
  }
  .services__bg-logo {
    animation: none;
    transform: translate3d(-50%, 0, 0);
  }
  .partners__photo {
    transform: none;
  }
  .partners-glass {
    transform: translate(-50%, -50%);
  }
  .services-work {
    transform: none;
  }
  .services__grid {
    transform: none;
  }
}
/* Services */
.services {
  position: relative;
  z-index: 1;
  padding-top: clamp(3.5rem, 5.2083vw, 6.25rem); /* ~56px..100px */
  padding-bottom: calc(clamp(3.5rem, 5.2083vw, 6.25rem) + 4.6875rem); /* +75px (было +25px, добавили +50px) */
  overflow: clip;
  background-color: #fff;
  background-image: url("../img/bg_hand.webp");
  background-repeat: no-repeat;
  background-position: center bottom;
  /* нижний фон занимает половину секции */
  background-size: 100% 50%;
}

.services-title span {
  display: block;
}

.services__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

.services__bg-people {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: auto;
  max-width: 62vw;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: right top;
     object-position: right top;
  opacity: 0.95;
}

.services__bg-logo {
  position: absolute;
  left: 50%;
  bottom: min(78.125vw, 81.75rem);
  transform: translate3d(-50%, 0, 0);
  width: min(15.625vw, 18.75rem); /* 300px @ 1920 */
  height: min(15.625vw, 18.75rem); /* 300px @ 1920 */
  -o-object-fit: contain;
     object-fit: contain;
  will-change: transform;
  transform-origin: 50% 55%;
  animation: services-logo-float 10s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

.services__bg-hand {
  position: absolute;
  right: 0;
  bottom: min(31.25vw, 20.5rem);
  width: min(59vw, 77.5rem);
  height: auto;
}

.services .container {
  position: relative;
  z-index: 2;
}

.services-work {
  width: min(70.9375vw, 85.125rem); /* 1362px @ 1920 */
  max-width: 85.125rem; /* 1362px */
  margin-inline: auto;
  margin-top: clamp(2.5rem, 5.2083vw, 6.25rem); /* ~40px..100px */
  padding-top: clamp(12rem, 36.6667vw, 44rem); /* ~192px..704px */
  padding-bottom: clamp(2.5rem, 5.2083vw, 5rem); /* ~40px..80px */
  text-align: center;
  transform: translate3d(0, var(--services-work-y, 0px), 0);
  will-change: transform;
}

.services-work__kicker {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 325;
  font-style: normal;
  font-size: clamp(2rem, 3.3333vw, 4rem); /* ~32px..64px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: rgb(255, 255, 255);
}

/* Services work: reveal chain (once) */
html.js .services-work__kicker,
html.js .services-work__text {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

html.js .services-work {
  --services-work-start: 0.25s; /* общая задержка перед первой анимацией */
}

html.js .services-work.is-revealed .services-work__kicker {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: calc(var(--services-work-start, 0s) + 0.15s);
}

.services-work__items {
  margin-top: clamp(1.5rem, 3.125vw, 2.5rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 3rem); /* 16px..48px */
  justify-items: center;
}

.work-item {
  width: min(100%, clamp(13.75rem, 21.9792vw, 26.375rem)); /* ~220px..422px */
  height: clamp(12.5rem, 18.75vw, 22.5rem); /* ~200px..360px */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: clamp(1rem, 2.5vw, 3rem); /* 16px..48px */
  padding: clamp(0.75rem, 1.25vw, 1.5rem); /* 12px..24px */
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(4rem); /* 64px */
  border: 0.125rem solid rgba(255, 255, 255, 0.5); /* 2px */
  border-radius: clamp(0.75rem, 0.8333vw, 1rem); /* 12px..16px */
  transform: translate3d(0, 0, 0);
  transition: transform 220ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .work-item:hover {
    transform: translate3d(0, -2px, 0) rotateZ(-0.35deg);
  }
}
html.js .services-work__items .work-item {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
  will-change: transform, opacity;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

html.js .services-work__items .work-item:nth-child(1) {
  --reveal-delay: calc(var(--services-work-start, 0s) + 0.55s);
}

html.js .services-work__items .work-item:nth-child(2) {
  --reveal-delay: calc(var(--services-work-start, 0s) + 0.70s);
}

html.js .services-work__items .work-item:nth-child(3) {
  --reveal-delay: calc(var(--services-work-start, 0s) + 0.85s);
}

html.js .services-work.is-revealed .services-work__items .work-item {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.work-item__icon {
  width: clamp(2.5rem, 4.1667vw, 5rem); /* ~40px..80px */
  height: clamp(2.5rem, 4.1667vw, 5rem); /* ~40px..80px */
  display: block;
  margin-inline: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.work-item__label {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* ~16px..24px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.03em; /* -3% */
  text-align: center;
  text-transform: uppercase;
  color: rgb(255, 255, 255);
}

.services-work__text {
  margin: clamp(1.5rem, 3.125vw, 2.5rem) auto 0;
  font-family: var(--font-sans);
  font-weight: 325;
  font-style: normal;
  font-size: clamp(2rem, 3.3333vw, 4rem); /* ~32px..64px */
  line-height: 1.3; /* 130% */
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: rgb(255, 255, 255);
}

html.js .services-work.is-revealed .services-work__text {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: calc(var(--services-work-start, 0s) + 1.15s);
}

/* Partners */
.partners {
  position: relative;
  z-index: 2;
  padding-top: 0;
  padding-bottom: clamp(3.5rem, 5.2083vw, 6.25rem); /* ~56px..100px */
  margin-top: -50px;
}

.partners__box {
  max-width: 100%;
  border-radius: clamp(1.5rem, 2.5vw, 3rem); /* 24px..48px */
  background: rgb(239, 239, 239);
  padding: clamp(1.5rem, 3.3333vw, 4rem); /* 24px..64px */
}

.comments {
  position: relative;
  overflow: hidden;
  z-index: 1;
  padding-top: clamp(3rem, 4.1667vw, 5rem); /* ~48px..80px */
  padding-bottom: clamp(3rem, 4.1667vw, 5rem);
  background: #fff;
}

.comments__title {
  margin: 0;
}
.comments__title span {
  display: block;
}

.comments__slider {
  margin-top: clamp(2rem, 2.9167vw, 3.5rem); /* ~32px..56px */
  overflow: visible;
}

.comments__slider .swiper-wrapper {
  align-items: stretch;
}

.comment-card {
  width: clamp(18.5rem, 22.5vw, 27.5rem); /* ~296px..440px */
  min-height: clamp(12rem, 13.5417vw, 16.25rem); /* ~192px..260px */
  background: rgb(60, 76, 84);
  border-radius: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
  padding: clamp(1.25rem, 1.4583vw, 1.75rem); /* 20px..28px */
  color: rgb(255, 255, 255);
  position: relative;
  display: flex;
  flex-direction: column;
}

.comment-card__quote {
  width: clamp(2rem, 2.2917vw, 2.75rem); /* 32px..44px */
  height: auto;
  opacity: 0.95;
  margin-bottom: clamp(0.75rem, 0.9375vw, 1.125rem); /* 12px..18px */
}

.comment-card__text {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: rgba(255, 255, 255, 0.9);
}

.comment-card__footer {
  margin-top: auto;
  padding-top: clamp(1rem, 1.25vw, 1.5rem);
}

.comment-card__user {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.comment-card__avatar {
  width: clamp(2.5rem, 2.9167vw, 3.5rem); /* 40px..56px */
  height: clamp(2.5rem, 2.9167vw, 3.5rem);
  border-radius: 999px;
  overflow: hidden;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.15);
}

.comment-card__avatar--empty {
  display: grid;
  place-items: center;
}

.comment-card__avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.comment-card__avatar--empty img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  opacity: 0.7;
}

.comment-card__name {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: rgb(255, 255, 255);
}

.faq {
  position: relative;
  z-index: 1;
  padding-top: clamp(3rem, 4.1667vw, 5rem);
  padding-bottom: clamp(3rem, 4.1667vw, 5rem);
  background: rgb(239, 239, 239);
  border-radius: 0;
  transition: border-radius 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
}

html.js .faq.is-revealed {
  border-radius: clamp(1.5rem, 2.5vw, 3rem);
}

.faq__title {
  margin: 0;
}
.faq__title span {
  display: block;
}

.faq__groups {
  margin-top: clamp(1.75rem, 2.5vw, 3rem);
  display: grid;
  gap: clamp(1rem, 1.3542vw, 1.625rem);
}

.faq__group {
  background: rgb(255, 255, 255);
  border-radius: clamp(0.75rem, 1.0417vw, 1.25rem);
  padding: clamp(1rem, 1.6667vw, 2rem);
}

html.js .faq .faq__group {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  will-change: transform, opacity;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--faq-reveal-delay, 0s);
}

html.js .faq .faq__group.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.faq__group-title {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.125rem, 1.3542vw, 1.625rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: rgb(0, 51, 94);
}

.faq-item {
  margin-top: clamp(0.75rem, 1.0417vw, 1.25rem);
  border: 1px solid rgba(0, 51, 94, 0.15);
  border-radius: 0.75rem;
  background: rgb(248, 249, 250);
  overflow: hidden;
}

.faq-item__question {
  list-style: none;
  cursor: pointer;
  margin: 0;
  padding: clamp(0.875rem, 1.1458vw, 1.375rem) clamp(1rem, 1.3542vw, 1.625rem);
  padding-right: clamp(2.75rem, 3.125vw, 3.75rem);
  position: relative;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(0.95rem, 1.0417vw, 1.25rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: rgb(43, 43, 43);
}

.faq-item__question::-webkit-details-marker {
  display: none;
}

.faq-item__question::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: clamp(1rem, 1.1458vw, 1.375rem);
  transform: translateY(-50%);
  font-size: clamp(1.5rem, 1.6667vw, 2rem);
  line-height: 1;
  color: rgb(0, 51, 94);
  transition: transform 0.2s ease;
}

.faq-item[open] .faq-item__question::after {
  content: "−";
}

.faq-item__answer {
  padding: 0 clamp(1rem, 1.3542vw, 1.625rem) clamp(1rem, 1.3542vw, 1.625rem);
  display: grid;
  gap: 0.75rem;
}

.faq-item__answer p,
.faq-item__answer li {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.9375vw, 1rem);
  line-height: 1.45;
  color: rgb(43, 43, 43);
}

.faq-item__answer ul,
.faq-item__answer ol {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.5rem;
}

.faq .partners__cta {
  position: static;
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem);
  width: min(100%, clamp(18rem, 40.3125vw, 48.375rem));
}

@media (max-width: 48em) {
  .faq .partners__cta {
    width: 100%;
    max-width: 418px;
  }
}

html.js .faq .faq__cta {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0) scale(0.98);
  will-change: transform, opacity;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0.08s;
}

html.js .faq .faq__cta.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.partners__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, min(49.6354vw, 59.5625rem)); /* 953px @ 1920 */
  align-items: start;
  gap: clamp(2rem, 2.9167vw, 3.5rem); /* ~32px..56px */
}

.partners__content {
  height: 100%;
  position: relative;
}

.partners__title {
  margin: 0;
}
.partners__title span {
  display: block;
}

.partners__cards {
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem); /* ~24px..40px */
  display: grid;
  grid-template-columns: repeat(3, minmax(0, clamp(10.5rem, 13.0729vw, 15.6875rem))); /* 168px..251px */
  gap: clamp(0.5rem, 0.5729vw, 0.6875rem); /* 8px..11px */
  padding-bottom: clamp(1.25rem, 1.6667vw, 2rem); /* 20px..32px */
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.partners-card {
  background: rgb(255, 255, 255);
  width: 100%;
  height: clamp(8.5rem, 9.375vw, 11.25rem); /* 136px..180px */
  border-radius: clamp(0.375rem, 0.4167vw, 0.5rem); /* 6px..8px */
  padding: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
}

.partners-card__num {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.25rem, 1.6667vw, 2rem); /* 20px..32px */
  line-height: 1;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: rgb(239, 239, 239);
}

.partners-card__label {
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 1;
  letter-spacing: -0.03em;
  color: rgb(0, 51, 94);
}

.partners__text {
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem); /* ~24px..40px */
  display: grid;
  gap: clamp(1rem, 1.0417vw, 1.25rem); /* ~16px..20px */
}

.partners__text p {
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.03em; /* -3% */
  color: rgb(43, 43, 43);
}

.partners__cta {
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem); /* ~24px..40px */
  width: clamp(18rem, 40.3125vw, 48.375rem); /* 288px..774px */
  height: clamp(3.5rem, 5.8333vw, 7rem); /* 56px..112px */
  border-radius: clamp(0.375rem, 0.6vw, 0.5rem) clamp(0.375rem, 0.6vw, 0.5rem) clamp(0.375rem, 0.6vw, 0.5rem) clamp(0.875rem, 1.6vw, 1.5rem);
  justify-content: space-between;
  position: absolute;
  bottom: 0;
  left: 0;
}

/* Partners: цепочка появления после reveal заголовка (.partners__title) */
html.js .partners__cards .partners-card {
  opacity: 0;
  transform: translate3d(-1rem, 0, 0);
  will-change: transform, opacity;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

html.js .partners__cards .partners-card:nth-child(1) {
  --reveal-delay: 1.0s;
}

html.js .partners__cards .partners-card:nth-child(2) {
  --reveal-delay: 1.12s;
}

html.js .partners__cards .partners-card:nth-child(3) {
  --reveal-delay: 1.24s;
}

html.js .partners__title.is-revealed ~ .partners__cards .partners-card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

html.js .partners__text p {
  opacity: 0;
  transform: translate3d(0, 0.85em, 0);
  will-change: transform, opacity;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

html.js .partners__text p:nth-child(1) {
  --reveal-delay: 1.95s;
}

html.js .partners__text p:nth-child(2) {
  --reveal-delay: 2.07s;
}

html.js .partners__title.is-revealed ~ .partners__text p {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

html.js .partners__cta {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
  will-change: transform, opacity;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 2.3s;
}

html.js .partners__title.is-revealed ~ .partners__cta {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.partners__media {
  position: relative;
  overflow: hidden;
  border-radius: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
}

.partners__photo {
  width: 100%;
  height: 100%;
  aspect-ratio: 953/960;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: inherit;
  transform: translate3d(0, var(--partners-photo-y, 0px), 0);
  will-change: transform;
}

.partners-glass {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) translate3d(0, var(--partners-glass-y, 0px), 0);
  width: min(27.8646vw, 33.4375rem); /* 535px @ 1920 */
  height: min(22.2917vw, 26.75rem); /* 428px @ 1920 */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 1.5rem; /* 24px */
  padding: 1.5rem; /* 24px */
  background: color-mix(in srgb, var(--primary) 20%, transparent);
  border: 1px solid rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(1rem); /* 32px */
  color: rgb(255, 255, 255);
}

/* Partners glass: плавное появление блока -> бренд построчно + лого -> тайтл построчно */
html.js .partners-glass {
  opacity: 0;
  filter: blur(0.35rem);
  will-change: opacity, filter;
  transition: opacity 650ms cubic-bezier(0.22, 1, 0.36, 1), filter 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

html.js .partners.is-revealed .partners-glass {
  opacity: 1;
  filter: blur(0);
  transition-delay: 0.35s;
}

.partners-glass__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(0.5rem, 1vw, 1rem);
}

.partners-glass__brand {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1.25rem, 1.6667vw, 2rem); /* 20px..32px */
  line-height: 1; /* 100% */
  letter-spacing: -0.06rem; /* -0.96px */
}

.partners-glass__brand span {
  display: block;
}

html.js .partners-glass__brand span {
  opacity: 0;
  transform: translate3d(0, 1.05em, 0);
  will-change: transform, opacity;
}

html.js .partners.is-revealed .partners-glass__brand span {
  animation: hero-line-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.js .partners.is-revealed .partners-glass__brand span:nth-child(1) {
  animation-delay: 0.85s;
}

html.js .partners.is-revealed .partners-glass__brand span:nth-child(2) {
  animation-delay: 0.97s;
}

.partners-glass__logo {
  width: clamp(2rem, 2.7021vw, 3.2425rem); /* ~32px..51.88px */
  height: clamp(2.625rem, 3.4845vw, 4.1814rem); /* ~42px..66.90px */
  flex-shrink: 0;
  -o-object-fit: contain;
     object-fit: contain;
}

html.js .partners-glass__logo {
  opacity: 0;
  transform: translate3d(0, 0.5rem, 0);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0.85s; /* вместе с первой строкой бренда */
}

html.js .partners.is-revealed .partners-glass__logo {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.partners-glass__title {
  margin-top: clamp(1.25rem, 1.6667vw, 2rem); /* ~20px..32px */
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1.75rem, 2.5vw, 3rem); /* 28px..48px */
  line-height: 1; /* 100% */
  letter-spacing: -0.03em;
}
.partners-glass__title span {
  display: block;
}

html.js .partners-glass__title span {
  opacity: 0;
  transform: translate3d(0, 1.05em, 0);
  will-change: transform, opacity;
}

html.js .partners.is-revealed .partners-glass__title span {
  animation: hero-line-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.js .partners.is-revealed .partners-glass__title span:nth-child(1) {
  animation-delay: 1.25s;
}

html.js .partners.is-revealed .partners-glass__title span:nth-child(2) {
  animation-delay: 1.37s;
}

html.js .partners.is-revealed .partners-glass__title span:nth-child(3) {
  animation-delay: 1.49s;
}

@media (max-width: 56.25em) {
  .partners__inner {
    grid-template-columns: 1fr;
  }
  .partners__cards {
    grid-template-columns: 1fr;
  }
}
/* Blog */
.blog {
  padding-block: clamp(3.5rem, 5.2083vw, 6.25rem); /* ~56px..100px */
  background: rgb(255, 255, 255);
}

.page-template-blog, .single-post {
  background: rgb(255, 255, 255);
}

.page-template-blog .header__logo-text, .single-post .header__logo-text, .page-template-privacy-policy .header__logo-text {
  color: rgb(43, 43, 43);
}

.page-template-blog .btn--menu, .single-post .btn--menu, .page-template-privacy-policy .btn--menu {
  color: rgb(0, 0, 0);
}

.page-template-blog .header__link, .single-post .header__link, .page-template-privacy-policy .header__link {
  color: rgb(0, 0, 0);
}

.page-template-blog .btn--phone, .single-post .btn--phone, .page-template-privacy-policy .btn--phone {
  color: rgb(0, 0, 0);
  box-shadow: var(--sds-size-depth-0, 0px) var(--sds-size-depth-100, 4px) var(--sds-size-depth-100, 4px) var(--sds-size-depth-negative-100, -2px) var(--sds-color-black-100, rgba(0, 0, 0, 0.12));
}

.page-template-blog .btn--callback, .single-post .btn--callback, .page-template-privacy-policy .btn--callback {
  box-shadow: var(--sds-size-depth-0, 0px) var(--sds-size-depth-400, 16px) var(--sds-size-depth-800, 32px) var(--sds-size-depth-negative-100, -2px) var(--sds-color-black-200, rgba(0, 0, 0, 0.18));
}

.page-template-blog .page__main, .single-post .page__main, .page-template-privacy-policy .page__main {
  /* header fixed: give first section offset so it doesn't hide under header */
  padding-top: 96px;
}

/* Single blog post page */
.single-post {
  padding-bottom: clamp(2.5rem, 4.1667vw, 5rem); /* 40px..80px */
  padding-block: clamp(1.5rem, 3.3333vw, 4rem);
}

.single-post__layout {
  margin-top: clamp(2rem, 2.9167vw, 3.5rem); /* 32px..56px */
  display: grid;
  /* Важно: min в clamp задаёт "жёсткий минимум" ширины сайдбара.
     14rem было слишком много — при сужении экрана колонка упиралась и выглядело как обрезка. */
  grid-template-columns: minmax(0, 1fr) minmax(0, clamp(10rem, 22vw, 24.5rem)); /* ~160px..392px */
  gap: clamp(1rem, 2.5vw, 3rem); /* 16px..48px */
  align-items: start;
}

.single-post__main {
  min-width: 0; /* allow column to shrink instead of overflowing/clipping */
}

.single-post__meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.single-post__tags {
  display: flex;
  flex-wrap: wrap;
}

.single-post__tags .chip:not(:first-child) {
  margin-left: -12px;
}

.single-post__date {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 23px;
  letter-spacing: -0.02em;
  color: rgb(108, 108, 108);
  white-space: normal;
  max-width: 100%;
}

.single-post__calendar {
  width: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  height: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  flex: 0 0 auto;
}

@media (max-width: 100em) { /* <1600px */
  .single-post__layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, clamp(10rem, 28vw, 24.5rem));
  }
}
.single-post__title.page_title {
  margin: 0;
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem); /* 24px..40px */
  max-width: min(100%, clamp(20rem, 55vw, 70rem));
  /* "Высота" заголовка — не фиксируем, но задаём резиновый минимум под макет */
  min-height: clamp(3.5rem, 6vw, 5rem); /* 56px..80px */
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(2rem, 2.5vw, 3rem); /* 32px..48px */
  line-height: 1;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: rgb(43, 43, 43);
}

.single-post__lead {
  margin-top: clamp(1.25rem, 1.875vw, 2.25rem); /* 20px..36px */
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(1.25rem, 1.5625vw, 1.5rem); /* 20px..24px */
  line-height: 120%;
  letter-spacing: -0.03em;
  color: rgb(43, 43, 43);
  max-width: 52rem;
}

.single-post__hero {
  margin-top: 36px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
  height: auto;
}

.single-post__hero img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}

.single-post__content {
  margin-top: clamp(2rem, 3.3333vw, 4rem); /* 32px..64px */
  font-family: var(--font-sans);
  color: rgb(43, 43, 43);
}

.single-post__content h2 {
  margin: 0;
  margin-top: clamp(0.25rem, 0.5208vw, 0.5rem); /* 4px..8px */
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1.25rem, 1.4583vw, 1.5rem); /* 20px..24px */
  line-height: 110%;
  letter-spacing: -0.02em; /* -2% */
  text-transform: none;
}

.single-post__content p {
  margin-top: clamp(0.75rem, 1.0417vw, 1rem); /* 12px..16px */
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1.125rem, 1.25vw, 1.25rem); /* 18px..20px */
  line-height: 120%;
  letter-spacing: -0.04em; /* -4% */
  color: rgb(43, 43, 43);
}

@media (max-width: 75em) { /* <1200px */
  .single-post__title.page_title {
    /* чтобы точно уменьшалось ниже 1200, не упираясь в min 32px */
    font-size: clamp(1.75rem, 3.2vw, 2.25rem); /* 28px..36px */
    margin-top: clamp(1.25rem, 2vw, 2rem); /* 20px..32px */
    min-height: clamp(3rem, 5.6vw, 4rem); /* 48px..64px */
  }
  .single-post__lead {
    font-size: clamp(1.125rem, 2vw, 1.25rem); /* 18px..20px */
    margin-top: clamp(1rem, 1.6vw, 1.5rem); /* 16px..24px */
  }
}
.single-post__content ul {
  margin-top: 1rem;
  padding-left: 1.25rem;
  display: grid;
  gap: 0rem;
  list-style: disc;
}

.single-post__content li {
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1.125rem, 1.25vw, 1.25rem); /* 18px..20px (same as p) */
  line-height: 120%;
  letter-spacing: -0.04em; /* -4% */
  color: rgb(43, 43, 43);
}

/* Single post reveal chain (after preloader) */
html.js .single-post .single-post__breadcrumbs,
html.js .single-post .single-post__title,
html.js .single-post .single-post__lead,
html.js .single-post .single-post__date,
html.js .single-post .single-post__tags .chip,
html.js .single-post .single-post__hero,
html.js .single-post .single-post__aside {
  opacity: 0;
  will-change: transform, opacity;
}

html.js .single-post .single-post__title {
  transform: translate3d(0, 1.05em, 0);
}

html.js .single-post .single-post__lead,
html.js .single-post .single-post__date,
html.js .single-post .single-post__breadcrumbs {
  transform: translate3d(0, 0.85em, 0);
}

html.js .single-post .single-post__tags .chip {
  transform: translate3d(0, 0.85em, 0);
}

html.js .single-post .single-post__hero {
  transform: translate3d(0, 1.25rem, 0);
}

html.js .single-post .single-post__aside {
  transform: translate3d(1.75rem, 0, 0);
}

/* Step 1: title */
html.js .single-post.is-revealed .single-post__title {
  animation: hero-line-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.08s;
}

/* Step 2: lead + breadcrumbs + date + chips (chips stagger) */
html.js .single-post.is-revealed .single-post__lead {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.95s;
}

html.js .single-post.is-revealed .single-post__breadcrumbs {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.95s;
}

html.js .single-post.is-revealed .single-post__date {
  animation: hero-text-reveal 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.95s;
}

html.js .single-post .single-post__tags .chip {
  animation-delay: var(--reveal-delay, 0s);
}

html.js .single-post .single-post__tags .chip:nth-child(1) {
  --reveal-delay: 1.00s;
}

html.js .single-post .single-post__tags .chip:nth-child(2) {
  --reveal-delay: 1.12s;
}

html.js .single-post .single-post__tags .chip:nth-child(3) {
  --reveal-delay: 1.24s;
}

html.js .single-post .single-post__tags .chip:nth-child(4) {
  --reveal-delay: 1.36s;
}

html.js .single-post.is-revealed .single-post__tags .chip {
  animation: hero-text-reveal 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* Step 3: hero */
html.js .single-post.is-revealed .single-post__hero {
  animation: hero-cta-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.55s;
}

/* Step 4: aside slides in from right */
@keyframes aside-slide-in {
  0% {
    opacity: 0;
    transform: translate3d(1.75rem, 0, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
html.js .single-post.is-revealed .single-post__aside {
  animation: aside-slide-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 1.65s;
}

/* Review card inside article content */
.review-card {
  margin-top: 36px;
  background: rgb(239, 239, 239);
  border-radius: clamp(1rem, 1.6667vw, 1.5rem); /* 16px..24px */
  padding: clamp(1.5rem, 3.3333vw, 3rem); /* 24px..48px */
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 3.3333vw, 2.5rem); /* 24px..40px */
  align-items: start;
}

.review-card__left {
  min-width: 0;
}

.review-card__stars {
  display: inline-flex;
  gap: 0.25rem;
}

.review-card__stars img {
  width: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  height: clamp(1rem, 1.0417vw, 1.25rem);
}

.review-card__person {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1rem;
}

.review-card__avatar {
  width: clamp(4rem, 6.6667vw, 6rem); /* 64px..96px */
  height: clamp(4rem, 6.6667vw, 6rem);
  border-radius: 999px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  background: rgba(0, 0, 0, 0.06);
}

.review-card__name {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 120%;
  letter-spacing: 0;
  color: rgb(43, 43, 43);
}

.review-card__role {
  margin-top: 0.25rem;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 120%;
  letter-spacing: 0;
  color: rgba(0, 0, 0, 0.4);
}

.review-card__body {
  margin-top: clamp(0.75rem, 1.1111vw, 1rem); /* 12px..16px */
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2.5rem); /* 20px..40px */
}
.review-card__body br {
  display: none;
}

.review-card__body p {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(1.125rem, 1.4583vw, 1.5rem); /* 18px..24px */
  line-height: 110%;
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
}

@media (max-width: 75em) { /* <1200px */
  .review-card {
    grid-template-columns: 1fr;
    gap: 1.25rem; /* 20px */
  }
}
@media (max-width: 56.25em) {
  .review-card {
    grid-template-columns: 1fr;
  }
}
/* Post gallery + stats after review */
.single-post__gallery {
  margin-top: clamp(2rem, 3.3333vw, 4rem); /* 32px..64px */
}

.single-post__gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.single-post__gallery-item {
  border-radius: 8px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
}

.single-post__gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

/* Video inside gallery grid: same card styles as images */
.single-post__gallery-item--video iframe,
.single-post__gallery-item--video video {
  width: 100%;
  display: block;
  border: 0;
}

.single-post__gallery-item--video iframe {
  aspect-ratio: 16/9;
  height: auto;
}

.single-post__gallery-text {
  margin-top: clamp(1.5rem, 2.5vw, 2.25rem); /* 24px..36px */
}

.single-post__stats {
  margin-top: clamp(1.25rem, 1.875vw, 2.25rem); /* 20px..36px */
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.single-post__stat {
  background: rgb(239, 239, 239);
  border-radius: 16px;
  padding: clamp(0.75rem, 3.3333vw, 3rem); /* 12px..48px */
  height: clamp(14.5rem, 21.0417vw, 18.9375rem); /* 232px..303px */
  display: grid;
  align-content: space-between;
  gap: 1rem;
}

.single-post__stat-value {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(3rem, 4.1667vw, 5rem); /* 48px..80px */
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--primary);
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
}

.single-post__stat-unit {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
}

.single-post__stat-label {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 1;
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
}

@media (max-width: 56.25em) {
  .single-post__gallery-grid {
    grid-template-columns: 1fr;
  }
  .single-post__stats {
    grid-template-columns: 1fr;
  }
}
.single-post__aside {
  display: grid;
  gap: 48px;
  position: sticky;
  top: 120px; /* header(96) + небольшой отступ */
  align-self: start;
  min-width: 0;
}

.single-post__share {
  padding-inline: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  height: clamp(4.5rem, 5.4167vw, 6.5rem); /* 72px..104px */
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  border-top: 1px solid rgba(0, 0, 0, 0.32);
  border-left: 1px solid rgba(0, 0, 0, 0.32);
}

.single-post__share-label {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 23px;
  letter-spacing: -0.02em;
  color: rgb(43, 43, 43);
}

.single-post__share-buttons {
  display: flex;
  align-items: center;
  gap: 8px;
}

.share-btn {
  width: clamp(2.5rem, 2.9167vw, 3.5rem); /* 40px..56px */
  height: clamp(2.5rem, 2.9167vw, 3.5rem); /* 40px..56px */
  border-radius: 999px;
  background: var(--Black-8, rgba(0, 0, 0, 0.08));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 200ms ease, opacity 200ms ease;
}

.share-btn:hover {
  transform: translateY(-1px);
  opacity: 0.9;
}

.share-btn img {
  width: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  height: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
}

@media (max-width: 36em) { /* <576px */
  .share-btn {
    width: 56px;
    height: 56px;
  }
}
@media (max-width: 35.9375em) { /* <575px */
  .single-post__share {
    grid-template-columns: 1fr;
    height: 110px;
  }
  .share-btn img {
    width: 24px;
    height: 24px;
  }
  .breadcrumbs {
    display: inline !important;
  }
}
.single-post__recommended {
  background: rgb(239, 239, 239);
  border-radius: clamp(0.75rem, 1.1111vw, 1rem); /* 12px..16px */
  padding: clamp(1rem, 1.6667vw, 1.5rem); /* 16px..24px */
}

.single-post__recommended-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
  line-height: 120%;
  letter-spacing: -0.02em;
  color: rgb(43, 43, 43);
  margin-bottom: clamp(0.75rem, 1.6667vw, 1.5rem); /* 12px..24px */
}

.rec-item {
  display: grid;
  grid-template-columns: clamp(3rem, 4.375vw, 5.25rem) 1fr; /* 48px..84px */
  gap: clamp(0.75rem, 1vw, 1rem); /* 12px..16px */
  align-items: center;
  text-decoration: none;
  color: inherit;
  padding-block: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
}

.rec-item:last-child {
  padding-bottom: 0;
}

.rec-item + .rec-item {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.rec-item__img {
  width: clamp(3rem, 4.375vw, 5.25rem); /* 48px..84px */
  min-width: clamp(3rem, 4.375vw, 5.25rem); /* 48px..84px */
  height: clamp(3rem, 4.375vw, 5.25rem); /* 48px..84px */
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 2px;
  overflow: hidden;
}

.rec-item__title {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(0.875rem, 0.9375vw, 1rem); /* 14px..16px */
  line-height: 120%;
  letter-spacing: -0.02em;
  color: rgb(43, 43, 43);
}

@media (max-width: 64em) {
  .header.is-fixed {
    height: 4rem;
  }
  .single-post {
    padding-bottom: 40px;
  }
  .single-post__layout {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-top: 24px;
  }
  .single-post__date {
    font-size: 12px;
  }
  .single-post__hero {
    margin-top: 16px;
  }
  .single-post__content {
    margin-top: 46px;
  }
  .single-post__aside {
    position: static;
    top: auto;
    gap: 80px;
  }
  .single-post__title.page_title {
    width: 100%;
    max-width: 100%;
  }
  .single-post__share {
    padding-left: 20px;
    padding-top: 20px;
    padding-right: 0;
  }
  .single-post__share-label {
    font-size: 20px;
  }
  .single-post__recommended {
    padding: 24px;
  }
  .single-post__recommended-title {
    font-size: 24px;
    margin-bottom: 24px;
  }
  .rec-item {
    padding: 13px 0;
    grid-template-columns: 84px 1fr;
  }
  .rec-item__title {
    font-size: 16px;
  }
  .rec-item__img {
    width: 84px;
    min-width: 84px;
    height: 84px;
    flex: 0 0 auto;
  }
}
.blog-page {
  padding-block: clamp(1.5rem, 3.3333vw, 4rem); /* 24px..64px */
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: 14px;
  line-height: 23px;
  letter-spacing: -0.19px;
  color: rgb(108, 108, 108);
  margin-bottom: clamp(1.25rem, 2.0833vw, 2.5rem); /* 20px..40px */
}

.breadcrumbs__link {
  color: inherit;
  text-decoration: none;
}

.breadcrumbs__link:hover {
  opacity: 0.85;
}

.breadcrumbs__sep {
  opacity: 0.8;
}

.breadcrumbs__current {
  font-weight: 400;
}

.blog-page__title {
  margin-top: 0;
  padding-top: clamp(1.5rem, 2.9167vw, 3.5rem); /* 24px..56px */
  margin-bottom: 0;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2.25rem, 3.75vw, 4rem); /* 36px..64px */
  line-height: 1;
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: rgb(43, 43, 43);
}

.blog-page__title span {
  display: block;
}

.blog-page__tabs {
  margin-top: clamp(1rem, 2.3958vw, 2.875rem); /* 16px..46px */
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.blog-tab {
  height: clamp(3rem, 2.9167vw, 3.375rem); /* 48px..54px */
  border-radius: clamp(1.75rem, 2.0833vw, 2.5rem); /* 28px..40px */
  padding: 0 clamp(1.125rem, 2.0833vw, 2.5rem); /* 18px..40px */
  border: 1px solid rgb(239, 239, 239);
  background: rgb(255, 255, 255);
  color: rgb(43, 43, 43);
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1rem, 0.9375vw, 1.125rem); /* 16px..18px */
  line-height: 120%;
  letter-spacing: -0.04em; /* -4% */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.blog-tab:hover {
  transform: translateY(-1px);
}

.blog-tab.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: rgb(255, 255, 255);
}

.blog__grid.blog-page__grid {
  margin-top: clamp(1rem, 2.3958vw, 2.875rem); /* 16px..46px */
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
}

/* Blog page reveal (blog.html):
   1) title like hero__title
   2) breadcrumbs + tabs appear together, tabs one-by-one
   3) cards appear one-by-one immediately (same start) */
html.js .blog-page.blog {
  --blog-page-after-title: 0.95s;
  --blog-page-stagger: 0.12s;
}

/* Title timing like hero__title (0.08/0.18/0.28...) */
html.js .blog-page.blog .blog-page__title.reveal-lines.is-revealed span:nth-child(1) {
  animation-delay: 0.08s;
}

html.js .blog-page.blog .blog-page__title.reveal-lines.is-revealed span:nth-child(2) {
  animation-delay: 0.18s;
}

html.js .blog-page.blog .blog-page__title.reveal-lines.is-revealed span:nth-child(3) {
  animation-delay: 0.28s;
}

/* Start states */
html.js .blog-page.blog .blog-page__breadcrumbs,
html.js .blog-page.blog .blog-page__tabs .blog-tab,
html.js .blog-page.blog .blog-page__grid .post-card {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
  will-change: transform, opacity;
}

/* Breadcrumbs: вместе с первым табом */
html.js .blog-page.blog.is-revealed .blog-page__breadcrumbs {
  animation: hero-cta-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: var(--blog-page-after-title, 0s);
}

/* Tabs: по очереди */
html.js .blog-page.blog .blog-page__tabs .blog-tab:nth-child(1) {
  --i: 0;
}

html.js .blog-page.blog .blog-page__tabs .blog-tab:nth-child(2) {
  --i: 1;
}

html.js .blog-page.blog .blog-page__tabs .blog-tab:nth-child(3) {
  --i: 2;
}

html.js .blog-page.blog.is-revealed .blog-page__tabs .blog-tab {
  animation: hero-cta-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--blog-page-after-title, 0s) + var(--i, 0) * var(--blog-page-stagger, 0.12s));
}

/* Cards: сразу (с тем же стартом), по очереди */
html.js .blog-page.blog .blog-page__grid .post-card:nth-child(1) {
  --i: 0;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(2) {
  --i: 1;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(3) {
  --i: 2;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(4) {
  --i: 3;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(5) {
  --i: 4;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(6) {
  --i: 5;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(7) {
  --i: 6;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(8) {
  --i: 7;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(9) {
  --i: 8;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(10) {
  --i: 9;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(11) {
  --i: 10;
}

html.js .blog-page.blog .blog-page__grid .post-card:nth-child(12) {
  --i: 11;
}

html.js .blog-page.blog.is-revealed .blog-page__grid .post-card {
  animation: hero-cta-reveal 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--blog-page-after-title, 0s) + var(--i, 0) * var(--blog-page-stagger, 0.12s));
}

/* Blog tabs: show/hide posts instantly (no reveal animation on filtering) */
html.js .blog-page.blog .blog-page__grid.is-filtering .post-card {
  animation: none !important;
  transition: none !important;
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 64em) {
  .blog-page__title {
    font-size: clamp(2rem, 5.5vw, 3rem); /* 32px..48px */
  }
  .blog-page__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 56.25em) {
  .breadcrumbs {
    font-size: 14px;
  }
  .page_title {
    font-size: 32px;
  }
  .blog-tab {
    height: 35px;
    font-size: 16px;
  }
  .blog__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 37.5em) {
  .blog__grid {
    grid-template-columns: 1fr;
  }
}
.blog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.blog__title {
  margin: 0;
}
.blog__title span {
  display: block;
}

.btn--outline {
  background: transparent;
  color: var(--primary);
  width: min(29.5833vw, 35.5rem); /* 568px @ 1920 */
  height: clamp(3.5rem, 5.8333vw, 7rem); /* 56px..112px */
  border: 0.125rem solid var(--primary); /* 2px */
  border-radius: 0.5rem; /* 8px */
  padding-inline: clamp(1rem, 2.0833vw, 2.5rem);
  gap: clamp(0.5rem, 0.8333vw, 1rem);
  justify-content: space-between;
  white-space: nowrap;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
}

.btn--outline:hover {
  border-color: var(--primary-hover);
  color: var(--primary-hover);
}

.blog__grid {
  margin-top: clamp(2rem, 2.9167vw, 3.5rem); /* ~32px..56px */
  display: block;
}

/* Blog on desktop: layout slides as grid (Swiper is enabled only on <1024px) */
.blog__grid .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.0417vw, 1.25rem); /* 12px..20px */
}

/* Blog: после появления тайтла показываем карточки слева -> вправо, затем кнопку */
html.js .blog .blog__grid .post-card {
  opacity: 0;
  transform: translate3d(-1rem, 0, 0);
  will-change: transform, opacity;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

html.js .blog .blog__grid .post-card:nth-child(1) {
  --reveal-delay: 1.00s;
}

html.js .blog .blog__grid .post-card:nth-child(2) {
  --reveal-delay: 1.12s;
}

html.js .blog .blog__grid .post-card:nth-child(3) {
  --reveal-delay: 1.24s;
}

html.js .blog.is-revealed .blog__grid .post-card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

html.js .blog .blog__all {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  will-change: transform, opacity;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 1.95s; /* после карточек */
}

html.js .blog.is-revealed .blog__all {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.post-card {
  background: rgb(239, 239, 239);
  min-height: min(33.8281vw, 40.5938rem); /* 649.5px @ 1920 */
  border-radius: 1rem; /* 16px */
  padding: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  display: flex;
  flex-direction: column;
  position: relative;
  transition: background-color 220ms ease, color 220ms ease, transform 220ms ease;
}

/* Make the whole post-card clickable without nested links */
.post-card__link {
  position: absolute;
  inset: 0;
  z-index: 5;
  cursor: pointer;
}

.post-card > *:not(.post-card__link) {
  position: relative;
  z-index: 2;
}

.post-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.post-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.post-card__tags .chip:not(:first-child) {
  margin-left: -0.9375rem; /* -15px */
}

.chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: clamp(1.625rem, 1.6667vw, 2rem); /* 26px..32px */
  padding-inline: clamp(0.875rem, 1.25vw, 1.5rem); /* 14px..24px */
  border-radius: 2.5rem; /* 40px */
  background: rgb(255, 255, 255);
  border: 1px solid rgb(239, 239, 239);
  color: rgb(43, 43, 43);
  font-family: "Geist", var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.8125rem, 0.8333vw, 1rem); /* 13px..16px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.04em; /* -4% */
}

.chip--light {
  background: rgba(255, 255, 255, 0.95);
  color: rgb(43, 43, 43);
}

.post-card__badge {
  height: clamp(1.625rem, 1.6667vw, 2rem); /* 26px..32px */
  padding-inline: clamp(0.75rem, 0.9375vw, 1.125rem); /* 12px..18px */
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.75);
  color: rgb(255, 255, 255);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(0.75rem, 0.7292vw, 0.875rem); /* 12px..14px */
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.post-card__media {
  margin-top: clamp(1.25rem, 2.0833vw, 2.5rem); /* 20px..40px */
  border-radius: 0.25rem; /* 4px */
  overflow: hidden;
  background: rgba(0, 0, 0, 0.06);
}

.post-card__media img {
  width: 100%;
  height: min(11.1563vw, 18.1875rem); /* 291px @ 1920 */
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

@media (max-width: 1900px) {
  .post-card__media img {
    height: min(13.1563vw, 18.1875rem); /* 291px @ 1920 */
  }
}
.post-card__title {
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem); /* 24px..40px */
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
  flex: 0 0 auto; /* не даём flex-сжатию резать высоту при уменьшении */
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.post-card {
  cursor: pointer;
}

.post-card:hover {
  background: var(--primary);
  color: rgb(255, 255, 255);
}

.post-card:hover .post-card__title {
  color: rgb(255, 255, 255);
}

.post-card__desc {
  margin-top: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.75rem, 0.9vw, 1rem); /* 12px..16px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.04em; /* -4% */
  color: rgba(43, 43, 43, 0.8);
  flex: 0 0 auto; /* фиксируем высоту 2 строк, без сжатия */
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.post-card:hover .post-card__desc {
  color: rgba(255, 255, 255, 0.85);
}

.post-card__footer {
  margin-top: auto;
  padding-top: clamp(1rem, 1.25vw, 1.5rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.5rem, 0.8333vw, 1rem); /* 8px..16px */
}

.post-card__read {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(8.5rem, 8.75vw, 10.5rem); /* 136px..168px */
  height: clamp(3rem, 2.9167vw, 3.5rem); /* 48px..56px */
  gap: clamp(0.25rem, 0.8333vw, 1rem); /* 4px..16px */
  padding: 12px 18px;
  border-radius: 0.25rem; /* 4px */
  background: var(--Black-8, rgba(0, 0, 0, 0.08));
  color: rgb(43, 43, 43);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.9vw, 0.875rem); /* 12px..14px */
  letter-spacing: -0.02em;
  text-decoration: none;
}

.post-card:hover .post-card__read {
  background: rgba(0, 0, 0, 0.15);
  color: rgb(255, 255, 255);
}

.post-card__read-icon {
  transition: transform 0.2s ease, filter 0.2s ease;
}

.post-card:hover .post-card__read-icon {
  transform: translateY(-2px);
  filter: brightness(0) invert(1);
  transition: transform 0.2s ease, filter 0.2s ease;
}

.post-card:hover .post-card__calendar {
  filter: brightness(0) invert(1);
}

.post-card__date {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: "Geist", var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(0.875rem, 0.8333vw, 1rem); /* 14px..16px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.04em; /* -4% */
  color: var(--Black-64, rgba(0, 0, 0, 0.64));
}

.post-card__calendar {
  width: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  height: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  flex: 0 0 auto;
}

/* Иконка в "дивитись всі" кнопке блога уменьшается вместе со шрифтом */
.btn--outline .btn__icon {
  width: 1.333em;
  height: 1.333em;
  color: var(--primary);
  fill: currentColor;
}

.post-card:hover .post-card__date {
  color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 56.25em) {
  .blog__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .blog__grid {
    grid-template-columns: 1fr;
  }
}
.blog__grid .swiper-wrapper {
  gap: 20px;
}

.services__head {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: clamp(1.25rem, 2.0833vw, 2.5rem);
}

.services__desc {
  display: grid;
  gap: clamp(0.375rem, 0.5208vw, 0.75rem); /* 6px..12px */
  margin-top: clamp(0.75rem, 1.0417vw, 1.25rem);
  max-width: min(clamp(22rem, 26.0417vw, 30rem), 92%); /* 352px..480px */
}

.services__grid {
  margin-top: clamp(2rem, 3.125vw, 3.75rem); /* ~32px..60px */
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 1.25vw, 1.5rem);
  align-items: start;
}

.service-card {
  --stagger: 0rem;
  width: 100%;
  max-width: 35.5rem; /* 568px */
  min-height: clamp(18rem, 20.8333vw, 25rem); /* ~288px..400px */
  display: flex;
  flex-direction: column;
  background: rgba(220, 220, 220, 0.5);
  backdrop-filter: blur(2rem); /* 32px */
  border-radius: 0.5rem; /* 8px */
  padding: clamp(1.25rem, 1.4583vw, 1.75rem);
  border: 1px solid rgba(255, 255, 255, 0.5);
  transform: translateY(calc(var(--stagger)));
  transition: background-color 220ms ease, color 220ms ease, transform 220ms ease;
  cursor: pointer;
}

a.service-card {
  text-decoration: none;
  color: inherit;
}

a.service-card:visited {
  color: inherit;
}

.service-card--glass {
  /* legacy class: выглядит как все карточки */
  background: rgba(220, 220, 220, 0.5);
  backdrop-filter: blur(2rem); /* 32px */
}

.service-card--wide {
  grid-column: auto;
}

.service-card:hover {
  background: var(--primary);
  color: #fff;
  transform: translateY(calc(var(--stagger) - 0.25rem));
  --c-heading: #fff;
  --c-paragraph: rgba(255, 255, 255, 0.92);
}

.service-card:hover .tag {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.95);
}

/* PC: смещения по колонкам в services__grid (3 колонки) */
.services__grid > .service-card:nth-child(3n+2) {
  /* 2-я колонка */
  --stagger: 128px;
}

.services__grid > .service-card:nth-child(3n) {
  /* 3-я колонка */
  --stagger: 241px;
}

.service-card__num {
  display: block;
  width: 100%;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1.75rem, 2.9167vw, 3.5rem); /* ~28px..56px */
  line-height: 1;
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: var(--c-heading); /* #2b2b2b / white on hover */
  padding-bottom: clamp(0.5rem, 0.7292vw, 0.875rem); /* ~8px..14px */
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.service-card:hover .service-card__num {
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.service-card__title {
  margin-top: clamp(0.75rem, 1.0417vw, 1.25rem);
}

.service-card__tags {
  margin-top: auto;
  padding-top: clamp(1rem, 1.5625vw, 1.75rem);
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.25rem, 0.4167vw, 0.5rem); /* 4px..8px */
}

.tag {
  display: inline-flex;
  align-items: center;
  border-radius: clamp(0.75rem, 1.5625vw, 62.4375rem); /* 12px..999px */
  padding: clamp(0.1875rem, 0.2604vw, 0.25rem) clamp(0.5rem, 0.625vw, 0.75rem); /* 3..4 / 8..12 */
  background: rgb(255, 255, 255);
  border: 1px solid rgba(0, 0, 0, 0.06);
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(0.8125rem, 0.8854vw, 1.0625rem); /* ~13px..17px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em;
  color: rgb(43, 43, 43);
}

.tag--on-dark {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.95);
}

/* Footer */
.footer {
  position: relative;
  background-image: url("../img/bg_footer.webp");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  --footer-contacts-w: clamp(18rem, 27.6042vw, 33.125rem); /* 288px..530px */
  --footer-form-w: clamp(18rem, 29.6875vw, 35.625rem); /* 288px..570px */
  --footer-badge-w: clamp(17rem, 25.2083vw, 30.25rem); /* 272px..484px */
  --footer-badge-h: clamp(4.5rem, 5.7292vw, 6.875rem); /* 72px..110px */
  padding-top: clamp(2.5rem, 3.125vw, 3.75rem);
  padding-bottom: clamp(1.75rem, 2.3438vw, 2.75rem);
  color: rgb(255, 255, 255);
}

/* Footer panel widths: < 1400px — contacts чуть шире, form чуть уже */
@media (max-width: 87.5em) {
  .footer {
    --footer-contacts-w: calc(clamp(18rem, 30vw, 36rem));
    --footer-form-w: clamp(16rem, 27vw, 33rem);
  }
  .footer-contacts__phone {
    font-size: clamp(1.8rem, 2.5vw, 3rem) !important;
  }
}
/* Modal (consult) */
/* ВАЖНО: не блокируем скролл через overflow на html — на мобилках это может "прыгать" в top.
   Скролл лочим через body{position:fixed} в JS (см. main.js openModal/closeModal). */
/* Mobile menu (separate component, not the consult modal) */
/* ВАЖНО: не блокируем скролл через overflow на html — на мобилках это может "прыгать" в top.
   Скролл лочим через body{position:fixed} в JS (см. main.js openMenu/closeMenu). */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.mobile-menu.is-open {
  opacity: 1;
  pointer-events: auto;
}

.mobile-menu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(2px);
}

.mobile-menu__panel {
  position: relative;
  width: calc(100% - 16px);
  margin: 8px auto 0;
  padding: 16px 16px 24px 16px;
  height: 475px;
  background: rgb(255, 255, 255);
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transform: translate3d(0, -110%, 0);
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.mobile-menu.is-open .mobile-menu__panel {
  transform: translate3d(0, 0, 0);
}

.mobile-menu__close {
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 109px;
  height: 32px;
  border-radius: 999px;
  border: 0;
  background: var(--primary);
  color: rgb(255, 255, 255);
  font-family: "Helvetica Now Display", var(--font-sans);
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.mobile-menu__close-icon {
  width: 20px;
  height: 20px;
  display: block;
}

.mobile-menu__nav {
  display: grid;
  width: 312px;
  margin-inline: auto;
}

.mobile-menu__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 16px;
  padding-bottom: 12px;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.14);
  color: rgb(43, 43, 43);
}

.mobile-menu__label {
  font-family: "Helvetica Now Display", var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: 24px;
  line-height: 120%;
  letter-spacing: -0.02em;
}

.mobile-menu__num {
  font-family: "Helvetica Now Display", var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: 16px;
  line-height: 120%;
  letter-spacing: -0.02em;
  color: rgba(0, 0, 0, 0.4);
}

.mobile-menu__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 312px;
  height: 56px;
  margin-inline: auto;
  padding-inline: 16px;
  border-radius: 16px;
  border: 1px solid var(--primary);
  text-decoration: none;
  color: var(--primary);
  font-family: "Helvetica Now Display", var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: 24px;
  line-height: 24px;
  letter-spacing: -0.02em;
}

.mobile-menu__social {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
}

.mobile-menu__bottom {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.mobile-menu__social .social-btn {
  width: 48px;
  height: 48px;
}

.mobile-menu__social .social-btn img {
  width: 24px;
  height: 24px;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
}

.modal__panel {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: clamp(20rem, 36vw, 38.5rem); /* ~320px..616px */
  padding: clamp(1.5rem, 2.0833vw, 2.5rem); /* ~24px..40px */
  background: var(--primary);
  color: rgb(255, 255, 255);
  transform: translate3d(110%, 0, 0);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(1.5rem, 2.0833vw, 2.5rem);
}

.modal.is-open .modal__panel {
  transform: translate3d(0, 0, 0);
}

.modal__close {
  position: absolute;
  right: clamp(1.25rem, 1.6667vw, 2rem);
  top: clamp(1.25rem, 1.6667vw, 2rem);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(0.75rem, 0.7292vw, 0.875rem); /* ~12px..14px */
  line-height: 1.5rem; /* 24px */
  letter-spacing: -0.02em;
  cursor: pointer;
  opacity: 0.9;
  transition: opacity 200ms ease;
}

.modal__close:hover {
  opacity: 1;
}

.modal__close-icon {
  width: clamp(1rem, 1.0417vw, 1.25rem); /* ~16px..20px */
  height: clamp(1rem, 1.0417vw, 1.25rem);
  display: block;
  flex: 0 0 auto;
}

.modal__title {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2rem, 2.5vw, 3rem); /* ~32px..48px */
  line-height: 1; /* 100% */
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: rgb(255, 255, 255);
}

.modal__desc {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* ~16px..20px */
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: rgba(255, 255, 255, 0.8);
}

.modal__meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; /* 8px */
}

.modal__service {
  margin-top: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1.75rem, 2.1875vw, 2.625rem); /* ~28px..42px */
  line-height: 1.1429; /* 48px @ 42px */
  letter-spacing: -0.06rem; /* -0.96px */
  color: rgb(255, 255, 255);
}

.modal .modal__form {
  margin-top: clamp(0.5rem, 1.0417vw, 1rem);
  display: grid;
  gap: clamp(0.75rem, 1.0417vw, 1rem);
}
.modal .modal__fields, .modal .footer-form__fields {
  display: grid;
  gap: 0.25rem; /* 4px */
}
.modal .modal__field, .modal .footer-form__field {
  width: 100%;
  height: clamp(4rem, 4.375vw, 5.25rem); /* ~64px..84px */
  padding: 0 clamp(1rem, 1.25vw, 1.5rem);
  border-radius: 0.5rem; /* 8px */
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.05);
  color: rgb(255, 255, 255);
  font-family: var(--font-sans);
  font-size: clamp(1rem, 1.0417vw, 1.25rem);
  outline: none;
}
.modal .modal__field::-moz-placeholder, .modal .footer-form__field::-moz-placeholder {
  color: rgba(255, 255, 255, 0.75);
}
.modal .modal__field::placeholder, .modal .footer-form__field::placeholder {
  color: rgba(255, 255, 255, 0.75);
}
.modal .modal__field:focus-visible, .modal .footer-form__field:focus-visible {
  border-color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.08);
}
.modal textarea.modal__field,
.modal textarea.footer-form__field {
  padding-top: 20px;
  height: clamp(7.5rem, 8.3333vw, 10rem); /* 120px */
  resize: none;
}
.modal .modal__submit, .modal .footer-form__submit {
  margin-top: clamp(2rem, 2.5vw, 3rem); /* ~32px..48px */
  width: 100%;
  height: clamp(4.25rem, 5.3125vw, 6.375rem); /* ~68px..102px */
  border-radius: 0.5rem; /* 8px */
  border: 1px solid rgb(255, 255, 255);
  background: transparent;
  color: rgb(255, 255, 255);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* ~18px..24px */
  line-height: 1; /* 24px @ 24px */
  letter-spacing: -0.02em;
  cursor: pointer;
  transition: background 220ms ease, border-color 220ms ease, transform 220ms ease;
}
.modal .modal__submit:hover, .modal .footer-form__submit:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translate3d(0, -2px, 0);
}

.wpcf7-spinner {
  display: none !important;
  height: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  .modal,
  .modal__panel,
  .modal__submit {
    transition: none;
  }
}
/* Приставка сверху для фона (blur + переход) */
.footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 100%;
  background: url("../img/bg-top_.png") center top/100% 100% no-repeat;
  pointer-events: none;
  z-index: 0;
}

.footer .container {
  position: relative;
  z-index: 1;
}

.footer__map {
  position: relative;
  display: block;
  height: clamp(18rem, 27.0833vw, 32.5rem); /* 288px..520px */
  border-radius: clamp(1.5rem, 2.0833vw, 2.5rem); /* 24px..40px */
  border: 1px solid rgba(255, 255, 255, 0.5);
  overflow: hidden;
}

.footer__map-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@keyframes simple-spinner-rotate {
  from {
    transform: translateY(-50%) rotate(0deg);
  }
  to {
    transform: translateY(-50%) rotate(360deg);
  }
}
/* Spinner element is present in markup, JS moves it into submit wrapper */
.submit-with-spinner {
  position: relative;
  display: inline-block;
  width: 100%;
}

.submit-with-spinner .spinner {
  display: none;
  position: absolute;
  right: 1.1rem;
  top: 63%;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  border: 2px solid #fff;
  border-top-color: transparent;
  animation: simple-spinner-rotate 1.5s linear infinite;
  pointer-events: none;
}

.submit-with-spinner .footer-form__spinner {
  top: 50%;
}

.submit-with-spinner.is-loading .spinner {
  display: block;
}

.submit-with-spinner.is-loading .footer-form__submit,
.submit-with-spinner.is-loading .modal__submit,
.submit-with-spinner.is-loading .wpcf7-submit {
  pointer-events: none;
  opacity: 0.9;
  padding-right: 3.25rem;
}

.footer__map-badge {
  position: absolute;
  top: clamp(1.25rem, 2.3438vw, 2.5rem);
  left: 50%;
  transform: translateX(-50%);
  min-width: 303px;
  width: min(92%, var(--footer-badge-w));
  min-height: var(--footer-badge-h);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 1rem; /* 16px */
  padding: clamp(0.75rem, 0.8333vw, 1rem) clamp(1rem, 1.25vw, 1.5rem); /* 12..16 / 16..24 */
  background: rgb(7, 41, 69);
  backdrop-filter: blur(2rem); /* 32px */
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  opacity: 0;
  transform: translateX(-50%) translateY(1rem);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1), background 200ms ease;
}

html.js .footer.is-revealed .footer__map-badge {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.footer__map-badge:is(:hover, :focus-visible) {
  transform: translateX(-50%) translateY(-1px);
  background: rgba(7, 41, 69, 0.92);
}

/* Footer: анимации появления (один раз при первом попадании в экран) */
html.js .footer__map {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

html.js .footer.is-revealed .footer__map {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: 0.05s;
}

.footer__map-label {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(0.9375rem, 1.0417vw, 1.25rem); /* 15px..20px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(255, 255, 255);
}

.footer__map-value {
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  line-height: 1.1758; /* 28.22px @ 24px */
  letter-spacing: 0;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  color: rgb(255, 255, 255);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.footer__panel {
  margin-top: clamp(0.5rem, 0.8333vw, 1rem); /* 8px..16px */
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--footer-contacts-w));
  gap: clamp(0.5rem, 0.8333vw, 1rem); /* 8px..16px */
}

.page-template-services .hero__office {
  animation: none;
}

.page-template-services .practice-item__overlay {
  backdrop-filter: blur(4px);
}

html.js .footer__panel .footer-form.footer-card {
  opacity: 0;
  transform: translate3d(-1.5rem, 0, 0);
  will-change: transform, opacity;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0.45s;
}

html.js .footer__panel .footer-contacts.footer-card {
  opacity: 0;
  transform: translate3d(1.5rem, 0, 0);
  will-change: transform, opacity;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0.55s;
}

html.js .footer.is-revealed .footer__panel .footer-form.footer-card,
html.js .footer.is-revealed .footer__panel .footer-contacts.footer-card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.footer-card {
  /* Responsive min-height: large screens -> 32.375rem, smaller screens -> down to 18rem */
  min-height: clamp(18rem, 24.0104vw, 32.375rem);
  height: auto;
  padding: clamp(1.5rem, 3.125vw, 3.75rem); /* 24px..60px */
  border-radius: clamp(1.5rem, 2.0833vw, 2.5rem); /* 24px..40px */
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(64px);
  color: rgb(43, 43, 43);
}

.footer-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--footer-form-w)); /* колонка формы (резиновая) */
  /* Left: title (top) + note (bottom). Right: form spans full height. */
  grid-template-rows: 1fr auto;
  -moz-column-gap: clamp(1.25rem, 2.5vw, 3.75rem);
       column-gap: clamp(1.25rem, 2.5vw, 3.75rem);
  /* no global row-gap here, otherwise it visually "cuts" the right column into extra blocks */
  row-gap: 0;
}

.footer-form__title {
  grid-column: 1;
  grid-row: 1;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2rem, 2.5vw, 3rem); /* 32px..48px */
  line-height: 1; /* 100% */
  letter-spacing: -0.03em; /* -3% */
  text-transform: uppercase;
  color: rgb(43, 43, 43);
}
.footer-form__title span {
  display: block;
}

/* Footer form: заголовок построчно, затем note */
html.js .footer-form__title span {
  opacity: 0;
  transform: translate3d(0, 1.05em, 0);
  will-change: transform, opacity;
}

html.js .footer.is-revealed .footer-form__title span {
  animation: hero-line-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.js .footer.is-revealed .footer-form__title span:nth-child(1) {
  animation-delay: 1.25s;
}

html.js .footer.is-revealed .footer-form__title span:nth-child(2) {
  animation-delay: 1.37s;
}

html.js .footer.is-revealed .footer-form__title span:nth-child(3) {
  animation-delay: 1.49s;
}

html.js .footer.is-revealed .footer-form__title span:nth-child(4) {
  animation-delay: 1.61s;
}

/* Right column: actual CF7 wrapper (footer form) */
.footer-form.footer-card .wpcf7 {
  grid-column: 2;
  grid-row: 1/span 2;
  align-self: stretch;
  height: 100%;
  width: 100%;
  max-width: var(--footer-form-w);
  display: flex;
}

.footer-form.footer-card .wpcf7 form.wpcf7-form {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

/* Появление формы справа одновременно со стартом reveal тайтла */
html.js .footer-form.footer-card .wpcf7 {
  opacity: 0;
  transform: translate3d(1.5rem, 0, 0);
  will-change: transform, opacity;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 1.25s;
}

html.js .footer.is-revealed .footer-form.footer-card .wpcf7 {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.footer-form__fields {
  display: flex;
  flex-direction: column;
  gap: 0.25rem; /* 4px */
  height: 100%;
}

#wpcf7-f32-o1 {
  position: relative;
}
#wpcf7-f32-o1 .wpcf7-spinner {
  display: none !important;
  height: 0 !important;
}

/* CF7: hide success output (we redirect), but SHOW errors via JS by toggling .has-error on the form */
.wpcf7-response-output {
  display: none !important;
  height: 0 !important;
}

.wpcf7-form.has-error + .wpcf7-response-output,
.wpcf7-form.has-error .wpcf7-response-output {
  display: block;
  margin-top: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(235, 46, 46, 0.5);
  background: rgba(235, 46, 46, 0.08);
  color: rgb(235, 46, 46);
}

.wpcf7-not-valid-tip {
  display: none !important;
  height: 0 !important;
}

.footer-form__field {
  width: 100%;
  height: clamp(3.75rem, 4.375vw, 5.25rem); /* 60px..84px */
  padding: clamp(1rem, 1.6146vw, 1.9375rem) 1.5rem; /* ~16px..31px / 24px */
  border-radius: 0.5rem; /* 8px */
  background: rgba(21, 21, 21, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.5);
  outline: none;
  color: rgb(21, 21, 21);
}

/* Custom invalid state (footer CF7) */
.footer-form__field.is-invalid,
.modal__field.is-invalid,
.wpcf7-form-control.is-invalid {
  border-color: rgb(235, 46, 46) !important;
}

.footer-form__field::-moz-placeholder {
  color: rgba(21, 21, 21, 0.5);
}

.footer-form__field::placeholder {
  color: rgba(21, 21, 21, 0.5);
}

.footer-form__submit {
  margin-top: auto; /* кнопка прижата к низу */
  width: 100%;
  height: clamp(4rem, 5.3125vw, 6.375rem); /* 64px..102px */
  padding: 0;
  justify-content: center;
  background: var(--primary);
  color: rgb(255, 255, 255);
  border-color: transparent;
  border-radius: 0.25rem; /* 4px */
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
  line-height: 1; /* ближе к макету для крупной кнопки */
  letter-spacing: -0.02em; /* -2% */
  cursor: pointer;
}

.footer-form__submit:hover {
  background: var(--primary-hover);
}

.footer-form__note {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(21, 21, 21);
}

html.js .footer-form__note {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 1.75s;
}

html.js .footer.is-revealed .footer-form__note {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.footer-contacts {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: var(--footer-contacts-w);
  justify-self: end;
}

.footer-contacts__body {
  margin-top: auto; /* прижимаем телефон/почту/соцсети вниз, как в макете */
  display: flex;
  flex-direction: column;
}

.footer-contacts__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

/* Footer contacts: top -> phone/email -> social */
html.js .footer-contacts__top,
html.js .footer-contacts__phone,
html.js .footer-contacts__email {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  will-change: transform, opacity;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

html.js .footer-contacts__top {
  transition-delay: 1.25s;
}

html.js .footer-contacts__phone {
  transition-delay: 1.45s;
}

html.js .footer-contacts__email {
  transition-delay: 1.6s;
}

html.js .footer.is-revealed .footer-contacts__top,
html.js .footer.is-revealed .footer-contacts__phone,
html.js .footer.is-revealed .footer-contacts__email {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.footer-contacts__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: 1.5rem; /* 24px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
}

.footer-contacts__corner {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
}

.footer-contacts__phone {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2rem, 2.5vw, 3rem); /* 32px..48px */
  line-height: 1.1; /* 110% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
  transition: opacity 200ms ease;
}
.footer-contacts__phone:hover {
  opacity: 0.8 !important;
}

.footer-contacts__email {
  margin-top: 1.875rem; /* 30px */
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1.125rem, 1.25vw, 1.5rem); /* 18px..24px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(43, 43, 43);
  transition: opacity 200ms ease;
}
.footer-contacts__email:hover {
  opacity: 0.8 !important;
}

.footer-contacts__social {
  margin-top: 1.875rem; /* 30px */
  display: flex;
  gap: 0.5rem; /* 8px */
}

html.js .footer-contacts__social .social-btn {
  opacity: 0;
  transform: translate3d(0, 0.75rem, 0);
  will-change: transform, opacity;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1), opacity 600ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

html.js .footer-contacts__social .social-btn:nth-child(1) {
  --reveal-delay: 1.85s;
}

html.js .footer-contacts__social .social-btn:nth-child(2) {
  --reveal-delay: 1.97s;
}

html.js .footer-contacts__social .social-btn:nth-child(3) {
  --reveal-delay: 2.09s;
}

html.js .footer-contacts__social .social-btn:nth-child(4) {
  --reveal-delay: 2.21s;
}

html.js .footer.is-revealed .footer-contacts__social .social-btn {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.social-btn {
  width: clamp(2.25rem, 2.2917vw, 2.75rem); /* 36px..44px */
  height: clamp(2.25rem, 2.2917vw, 2.75rem); /* 36px..44px */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.625rem; /* 10px */
  border: 1px solid rgb(207, 219, 229);
  transition: background 200ms ease, border-color 200ms ease, transform 200ms ease;
}

.social-btn:is(:hover, :focus-visible) {
  background: var(--primary);
  border-color: var(--primary);
  transform: translateY(-1px);
}

.social-btn img {
  width: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  height: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  transition: filter 200ms ease;
}

.social-btn:is(:hover, :focus-visible) img {
  filter: brightness(0) invert(1);
}

.footer__bottom {
  margin-top: clamp(1.5rem, 2.0833vw, 2.5rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.75rem, 1.3021vw, 1.25rem); /* 12px..20px */
  color: rgba(255, 255, 255, 0.9);
  padding-inline: clamp(1rem, 3.125vw, 3.75rem); /* 16px..60px */
}

html.js .footer__bottom {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
  will-change: transform, opacity;
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 2.35s;
}

html.js .footer.is-revealed .footer__bottom {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.footer__brand {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.5rem, 0.625vw, 0.75rem); /* 8px..12px */
  min-width: -moz-max-content;
  min-width: max-content;
}

.footer__brand-logo {
  width: clamp(1.5rem, 1.9387vw, 2.3264rem); /* 24px..37.223px */
  height: clamp(2rem, 2.5vw, 3rem); /* 32px..48px */
}

.blog__all-mobile {
  display: none;
}

.footer__brand-text {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(0.8125rem, 0.8333vw, 1rem); /* 13px..16px */
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.footer__links {
  display: inline-flex;
  align-items: center;
  gap: clamp(1rem, 2.0833vw, 2.5rem); /* 16px..40px */
}

.footer__link {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(0.8125rem, 0.8333vw, 1rem); /* 13px..16px */
  line-height: 1.3; /* 20.8px */
  letter-spacing: -0.02em; /* -2% */
  text-align: right;
  text-decoration: underline;
  color: rgba(255, 255, 255, 0.6);
  display: inline-block;
  padding: clamp(0.0625rem, 0.1302vw, 0.125rem) clamp(0.125rem, 0.2604vw, 0.25rem);
  border-radius: 0.25rem;
}

.footer__link:hover {
  opacity: 0.8;
}

.footer__copy {
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(0.8125rem, 0.8333vw, 1rem); /* 13px..16px */
  line-height: 1.3; /* 20.8px */
  letter-spacing: 0.00625em; /* 0.1px @ 16px */
  color: rgb(255, 255, 255);
  text-align: right;
}

.btn--menu {
  display: none;
  height: 32px;
  width: 97px;
  font-weight: 500;
  font-style: normal;
  font-size: 14px;
  line-height: 1.5rem;
  letter-spacing: -0.02em;
  color: rgb(255, 255, 255);
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(2rem);
  border-color: transparent;
  border-radius: clamp(7.5rem, 11.4583vw, 13.75rem);
  padding: 0;
}
.btn--menu .btn__icon {
  width: 20px;
  height: 20px;
}

textarea.footer-form__field, textarea.modal__field {
  min-height: clamp(86px, 12vw, 110px);
  max-height: clamp(86px, 12vw, 110px);
  resize: none;
  padding-top: clamp(12px, 2.2vw, 20px) !important;
  padding-bottom: clamp(12px, 2.2vw, 20px) !important;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin; /* Firefox */
  scrollbar-color: rgba(255, 255, 255, 0.55) rgba(255, 255, 255, 0.12); /* Firefox */
}

textarea.footer-form__field::-webkit-scrollbar {
  width: 6px;
}

textarea.footer-form__field::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
}

textarea.footer-form__field::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.55);
  border-radius: 999px;
}

textarea.footer-form__field::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.7);
}

/* Thank you page (light header like blog pages) */
.page--thank-you {
  background: rgb(255, 255, 255);
}

.page--thank-you .header__logo-text {
  color: rgb(43, 43, 43);
}

.thank-you__layout {
  min-height: inherit;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 100dvh;
}

.thank-you__content {
  background: rgb(255, 255, 255);
  display: grid;
  place-items: center;
  padding: clamp(1.5rem, 5vw, 4rem);
}

.thank-you__content-inner {
  width: min(35rem, 100%);
  text-align: center;
}

.page--thank-you header.header .header__nav {
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(4px);
}

.page--thank-you header.header .btn--phone {
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(32px);
}

.page--thank-you header.header {
  background: transparent;
  backdrop-filter: none;
}

.privacy-policy-page__wrapper {
  padding-top: clamp(1.5rem, 2.9167vw, 3.5rem);
}

.privacy-policy-page h1 {
  font-size: clamp(2rem, 3.3333vw, 4rem);
  font-weight: 400;
  line-height: 1.1429;
  margin-bottom: clamp(1rem, 1.6667vw, 2rem);
}
.privacy-policy-page h2 {
  font-size: clamp(1.5rem, 2.1875vw, 2.625rem);
  line-height: 1.1429;
  font-weight: 400;
  margin-bottom: clamp(1rem, 1.6667vw, 2rem);
  margin-top: clamp(1.5rem, 2.9167vw, 3.5rem);
}
.privacy-policy-page p {
  font-size: clamp(1rem, 1.0417vw, 1.25rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: rgb(43, 43, 43);
  margin-bottom: clamp(1rem, 1.6667vw, 2rem);
}

.thank-you__title {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(2.75rem, 4.5833vw, 5.5rem); /* 44px..88px */
  line-height: 1;
  letter-spacing: -0.03em; /* -3% */
  color: rgb(43, 43, 43);
  text-transform: uppercase;
}

.thank-you__desc {
  margin: clamp(1rem, 1.6667vw, 2rem) 0 0;
  font-family: var(--font-sans);
  font-weight: 400;
  font-style: normal;
  font-size: clamp(1rem, 1.0417vw, 1.25rem); /* 16px..20px */
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: rgb(108, 108, 108);
}

.thank-you__cta.btn--primary {
  margin-top: clamp(2.5rem, 3.6458vw, 4.375rem); /* 40px..70px */
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
}

.thank-you__media {
  background: url("../img/office2.png") center/cover no-repeat;
}

@media (max-width: 64em) {
  .thank-you__layout {
    grid-template-columns: 1fr;
  }
  .thank-you__media {
    min-height: clamp(16rem, 60vw, 26rem); /* ~256px..416px */
  }
}
/* 404 page */
.page__404 {
  /* match fixed header offset on internal pages */
  padding-top: 96px;
  min-height: 100vh;
  background: url("../img/bg-404.png") center/cover no-repeat;
}

.not-found {
  min-height: calc(100vh - 96px);
  display: grid;
  place-items: center;
  padding-block: clamp(2.5rem, 6.6667vw, 6rem); /* 40px..96px */
}

.not-found__inner {
  text-align: center;
  display: grid;
  justify-items: center;
  gap: clamp(0.75rem, 1.25vw, 1.5rem); /* 12px..24px */
}

.not-found__code {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(5rem, 10.4167vw, 12.5rem); /* 80px..200px */
  line-height: 1; /* 100% */
  letter-spacing: -0.03em; /* -3% */
  color: rgb(255, 255, 255);
  text-transform: uppercase;
}

.not-found__text {
  font-family: var(--font-sans);
  font-weight: 700;
  font-style: normal;
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* 16px..24px */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* -2% */
  color: rgb(255, 255, 255);
}

.not-found__cta {
  margin-top: clamp(2.5rem, 3.6458vw, 4.375rem); /* 40px..70px */
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Адаптив: ниже 1024px скрываем навигацию в хедере */
@media (max-width: 64em) {
  .partners__cta {
    position: relative;
  }
  .blog__grid .swiper-wrapper {
    gap: 0;
  }
  .partners__inner {
    grid-template-columns: 1fr;
  }
  .footer__copy {
    width: 163px;
  }
  .footer__brand-text {
    max-width: 127px;
    font-size: 12px;
    line-height: 14px;
  }
  .footer-contacts__phone {
    font-size: 28px !important;
  }
  .partners__media {
    height: 640px;
    border-radius: 16px;
  }
  .blog__grid.swiper {
    display: block;
    overflow: visible;
  }
  .blog {
    overflow: hidden;
  }
  .blog__grid.swiper .swiper-wrapper {
    /* Swiper сам ставит flex, но оставляем совместимость */
    display: flex;
  }
  .blog__pagination {
    margin-top: 16px;
    position: static;
    display: flex;
    justify-content: center;
    gap: 4px;
  }
  .blog__pagination .swiper-pagination-bullet {
    width: 16px;
    height: 8px;
    border-radius: 4px;
    opacity: 1;
    background: rgb(239, 239, 239);
  }
  .blog__pagination .swiper-pagination-bullet-active {
    background: var(--primary);
  }
  /* Blog cards tweaks: <1024px */
  .post-card {
    border-radius: 10px;
    padding: 13px;
  }
  .chip {
    font-size: 12px;
  }
  .post-card__media {
    border-radius: 2px;
  }
  .post-card__media img {
    height: min(44.1563vw, 18.1875rem);
  }
  .post-card__read {
    width: 108px;
    height: 37px;
    font-size: 12px;
    padding: 0;
  }
  .post-card__date {
    font-size: 12px;
  }
  .btn--menu {
    display: flex;
    /* internal pages (.page) on mobile: make icon black */
  }
  .btn--menu:hover .btn__icon {
    transform: none;
  }
  .header__nav {
    display: none;
  }
  .header__inner {
    justify-content: space-between;
  }
  .header__actions .btn--phone {
    display: none;
  }
  .header__actions .btn--callback {
    height: 32px;
    width: 58px;
  }
  .header__actions .btn--callback span {
    display: none;
  }
  .header__actions .btn--callback .btn__icon {
    width: 16px;
    height: 16px;
  }
  .header__logo-text {
    font-size: 9px;
    max-width: 7.5rem;
    line-height: 10.5px;
  }
  .header__logo img {
    height: 38px;
    width: 29px;
  }
  body {
    overflow-x: hidden;
  }
  /* Services: ниже 1024px — 2 колонки вместо 3 */
  .services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .services__grid > .service-card:nth-child(3n), .services__grid > .service-card:nth-child(3n+2) {
    --stagger: 0rem;
  }
  /* Partners: ниже 1024px */
  .partners-glass {
    width: min(350px, 92vw);
    height: 305px;
  }
  .partners-card__label {
    font-size: 12px;
  }
  .btn.btn--primary.hero__cta {
    min-width: 288px;
  }
  .blog__grid.swiper .swiper-slide {
    width: 330px;
    height: auto;
  }
  .page-template-blog .page__main, .single-post .page__main, .page-template-privacy-policy .page__main {
    padding-top: 90px;
  }
  .page-template-blog .btn--menu .btn__icon, .single-post .btn--menu .btn__icon {
    filter: brightness(0) saturate(100%);
  }
  .blog-page {
    padding-top: 0 !important;
    padding-bottom: 60px;
  }
  .blog-page__grid {
    gap: 6px;
    margin-top: 24px;
  }
  .blog-page__tabs {
    margin-top: 24px;
  }
  .blog-page__title {
    padding-top: 32px;
  }
}
@media (max-width: 56.25em) {
  .blog__grid.swiper .swiper-slide {
    width: 300px;
    height: auto;
  }
  :root {
    --container-max: 100%;
    --container-padding: 16px;
  }
  .hero__media {
    padding-left: 0;
  }
  .header__inner {
    row-gap: 0.75rem; /* 12px */
  }
  .header__nav {
    flex: 0 0 100%;
    justify-content: center;
    margin-inline: 0;
  }
  .header__menu {
    justify-content: center;
  }
  .hero {
    padding-block: 3.5rem 3.25rem; /* 56px 52px */
    padding-top: 80px;
  }
  .hero__inner {
    grid-template-columns: 1fr;
  }
  .hero__media {
    justify-self: center;
  }
  .hero__office {
    width: min(45rem, 90vw); /* 720px */
  }
  .services__head {
    grid-template-columns: 1fr;
  }
  .hero__title {
    font-size: 38px;
  }
  .hero__text {
    margin-top: 16px;
    font-size: 18px;
  }
  .hero__cta {
    margin-top: 32px;
    position: relative !important;
  }
  .blog__all {
    display: none;
  }
  #wpcf7-f32-o1 .wpcf7-form {
    position: relative;
  }
  .footer-form__submit, .footer-form__field {
    height: 72px;
    border-radius: 8px;
  }
  .social-btn img {
    width: 24px;
    height: 24px;
  }
  .page_title {
    font-size: 24px !important;
  }
  .single-post__content h2 {
    font-size: 20px !important;
  }
  .single-post__lead {
    font-size: 18px;
  }
  .single-post__lead p {
    font-size: 16px;
  }
  .single-post__content li {
    font-size: 16px;
  }
  .review-card__body p {
    font-size: 20px;
  }
  .review-card {
    padding: 16px;
  }
  .thank-you__content-inner {
    padding-top: 69px;
  }
  .blog__all-mobile {
    display: flex;
    margin-top: 32px;
    max-width: 418px;
    width: 100%;
    height: 72px;
    border-radius: 8px;
    padding: 24px;
    margin-left: auto;
    margin-right: auto;
  }
  .blog {
    padding-top: 40px;
  }
  .blog__grid {
    margin-top: 32px;
  }
  .partners-glass {
    max-width: 280px;
    height: 252px;
    padding: 16px;
  }
  .partners__box {
    padding-bottom: 0;
  }
  .partners__inner {
    gap: 64px;
  }
  .partners-glass__logo {
    width: 31px;
    height: 40px;
  }
  .partners-glass__title {
    font-size: 24px;
  }
  .partners-glass__brand {
    font-size: 24px;
  }
  .services__bg-people {
    top: 320px;
    max-width: 100vw;
  }
  h2 {
    font-size: 32px !important;
  }
  .services__bg-logo {
    bottom: min(147.125vw, 86.75rem);
  }
  .services__bg-hand {
    bottom: min(96.25vw, 48.5rem);
  }
  .header {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 106.77%);
    backdrop-filter: blur(3px);
    transform: translate3d(0, -100%, 0);
    top: 0;
  }
  .services__grid {
    margin-top: 471px;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-left: -8px;
    margin-right: -8px;
    width: calc(100% + 16px);
  }
  .services {
    background-position: 50% 138%;
  }
  .service-card,
  .service-card--wide,
  .service-card--primary {
    grid-column: auto;
    margin-top: 0;
    width: 100%;
    max-width: 100%;
    padding: 16px;
    min-height: 233px;
  }
  .services__head {
    gap: 18px;
  }
  .services__desc {
    margin-top: 0;
  }
  .services__desc p {
    font-size: 18px;
    margin-bottom: 12px;
  }
  /* На мобилке 1 колонка — убираем сдвиг "второй колонки" */
  .services__grid > .service-card {
    --stagger: 0rem;
    transform: none;
  }
  .services-work__items {
    grid-template-columns: 1fr;
  }
  .work-item {
    width: min(22rem, 90vw);
    height: 205px;
    padding-block: 1.25rem;
  }
  .btn--primary {
    font-size: 16px;
    max-width: 418px;
    width: 100%;
  }
  .footer__map-value {
    font-size: 18px;
  }
  .footer-form__form {
    width: 100%;
    max-width: 100%;
  }
  .footer-card {
    margin-left: -16px;
    margin-right: -16px;
    width: calc(100% + 32px);
  }
  .footer__map {
    height: 520px;
    margin-left: -16px;
    margin-right: -16px;
    width: calc(100% + 32px);
  }
  .footer__map-badge {
    height: 125px;
    max-width: 328px;
    width: 100%;
  }
  .services-work__text {
    margin-top: 24px;
  }
  .services-work__items {
    margin-top: 24px;
    gap: 8px;
  }
  .service-card__num {
    font-size: 32px;
  }
  .service-card__title {
    font-size: 28px;
  }
  .tag {
    font-size: 14px;
  }
  .partners__cards {
    margin-top: 24px;
    padding-bottom: 24px;
    gap: 8px;
  }
  .partners-card {
    height: 100px;
  }
  .partners__media {
    margin-left: -16px;
    margin-right: -16px;
    width: calc(100% + 32px);
  }
  .partners-card__num {
    font-size: 32px;
  }
  .partners-card__label {
    font-size: 18px;
  }
  .partners__text {
    font-size: 16px;
    margin-top: 24px;
  }
  .partners__text p {
    font-size: 16px;
  }
  .partners__cta {
    margin-top: 48px;
    max-width: 418px;
    height: 72px;
    border-radius: 8px;
    padding: 24px;
  }
  .footer__map {
    height: clamp(18rem, 60vw, 32.5rem);
    border-radius: clamp(1.25rem, 4vw, 2.5rem); /* 20px..40px */
  }
  .footer__panel {
    grid-template-columns: 1fr;
  }
  .footer-card {
    height: auto;
    border-radius: clamp(1.25rem, 4vw, 2.5rem); /* 20px..40px */
  }
  .footer-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    /* Left: title + note. Right: form spans full height. */
    grid-template-rows: 1fr auto;
    -moz-column-gap: 16px;
         column-gap: 16px;
    row-gap: 16px;
  }
  .footer-form__title {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    margin-top: auto;
    margin-bottom: auto;
  }
  .footer-contacts {
    width: calc(100% + 32px);
    max-width: calc(100% + 32px);
  }
  .footer-form.footer-card .wpcf7 {
    grid-column: 2;
    grid-row: 1/span 2;
    max-width: 100%;
  }
  .footer-contacts__body {
    margin-top: 105px;
  }
  .services-work {
    margin-left: -8px;
    margin-right: -8px;
    width: calc(100% + 16px);
  }
  .footer-contacts__phone {
    font-size: 36px !important;
  }
  .social-btn {
    width: 48px;
    height: 48px;
  }
  .footer__bottom {
    margin-top: 32px;
    gap: 24px;
  }
  .footer__brand {
    gap: 11px;
  }
  .footer-form__submit {
    margin-top: 24px;
  }
  .footer__brand-text {
    font-size: 17px;
    max-width: 100%;
  }
  .footer__copy {
    width: 100%;
  }
  .footer__copy, .footer__link {
    font-size: 16px;
  }
  .footer__brand-logo {
    width: 34px;
    height: 43px;
  }
  .footer-form__note {
    grid-column: 1;
    grid-row: 2;
  }
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    padding-inline: 0;
  }
  .footer__links {
    gap: 1.25rem;
    flex-wrap: wrap;
  }
  .footer__copy {
    text-align: left;
  }
  .partners__box {
    padding-top: 41px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .modal__submit, .modal__field {
    font-size: 16px;
  }
  .modal__panel {
    padding: 16px;
  }
}
/* Ниже 690px */
@media (max-width: 43.125em) {
  html {
    overflow-x: hidden;
  }
  /* Hero: убираем смещение по X, чтобы не вылазило за секцию */
  .hero__office {
    animation-name: hero-float-vertical;
  }
  .services__bg-logo {
    bottom: min(317.125vw, 160.75rem);
  }
  .services__bg-hand {
    bottom: min(262.25vw, 118.5rem);
  }
  .services {
    background-position: 50% 124%;
  }
  /* Footer form: 1 колонка (title -> note -> form) */
  .footer-form.footer-card {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    row-gap: 16px;
    -moz-column-gap: 0;
         column-gap: 0;
  }
  .footer-form__title {
    grid-column: 1;
    grid-row: 1;
    margin-top: 0;
    margin-bottom: 0;
  }
  .footer-form__note {
    grid-column: 1;
    grid-row: 2;
  }
  .footer-form.footer-card .wpcf7 {
    grid-column: 1;
    grid-row: 3;
    margin-top: 8px;
    max-width: 100%;
  }
  .services__grid {
    margin-top: 271px;
  }
  .blog-page__grid {
    grid-template-columns: 1fr !important;
  }
  .blog-page__title {
    max-width: 289px;
  }
}
@media (max-width: 575px) {
  .post-card__media img {
    height: min(33.1563vw, 18.1875rem);
  }
}
@media (max-width: 490px) {
  .page-template-services .hero {
    min-height: 966px;
  }
  .page-template-services .practice-item__media {
    min-height: 350px;
  }
  .work-item {
    width: 100%;
  }
  .services {
    padding-bottom: 90px;
  }
  .services-work {
    margin-top: 145px;
  }
  .services__bg-hand {
    bottom: min(204.25vw, 92.5rem);
  }
  .services__bg-logo {
    bottom: min(267.125vw, 136.75rem);
  }
  .footer__copy {
    width: 200px;
  }
  .footer__links {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }
  .modal__panel {
    padding-top: 60px;
    justify-content: flex-start;
    gap: 15px;
  }
  .modal__close {
    top: 15px;
    right: 10px;
  }
  .modal .modal__submit {
    margin-top: 20px;
  }
  .modal .modal__submit, .modal .footer-form__submit {
    font-size: 16px;
    margin-top: 10px;
  }
  .footer-form__submit, .footer-form__field {
    font-size: 16px;
    height: 64px;
  }
  .modal__title {
    font-size: 28px;
  }
  .modal .modal__field, .modal .footer-form__field {
    height: 58px;
  }
  .hero {
    min-height: 766px;
    padding-top: 90px;
  }
  .hero__inner {
    gap: 30px;
  }
  .footer-contacts__corner {
    width: 16px;
    height: 16px;
  }
  .footer-contacts__title {
    font-size: 18px;
  }
  .mobile-menu__nav, .mobile-menu__phone {
    width: 100%;
  }
}
@media (max-width: 400px) {
  .services-work {
    margin-top: 55px;
  }
  .services__bg-hand {
    bottom: min(228.25vw, 92.5rem);
  }
  .services__bg-logo {
    bottom: min(282.125vw, 144.75rem);
  }
  .post-card__media img {
    height: min(43.1563vw, 18.1875rem);
  }
  .footer-contacts__phone {
    font-size: 32px !important;
  }
}
/* Helpers */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}/*# sourceMappingURL=style.css.map */