/* healoutsource.com – стили главной страницы.
   Значения сняты с опубликованного сайта Framer: базовая раскладка 1200–1727 px,
   блок @media (min-width:1728px) повторяет его крупный вариант. */

:root { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #fff; color: #0d0d0d; font-family: Manrope, sans-serif; font-size: 12px; font-weight: 400; }
p, h1, h2, h3, h4 { margin: 0; font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; }
button { font: inherit; color: inherit; }
.icon { display: block; }

.page { position: relative; display: flex; flex-direction: column; align-items: center; width: 100%; min-height: 900px; overflow: hidden; background: #fff; }

.accent { color: #7e6aff; }
.ink { color: #0d0d0d; }
.w600 { font-weight: 600; }
.w700 { font-weight: 700; }

.overline { font-size: 12px; font-weight: 500; line-height: 12px; color: #0d0d0d; white-space: pre; text-align: center; }
.overline--ls { letter-spacing: 0.1px; }
.overline--white { color: #fff; }

/* кнопки-пилюли с градиентом */
.btn { display: flex; justify-content: center; align-items: center; padding: 15px; border-radius: 100px; background-image: linear-gradient(114deg, #3162ff -32%, #c671ff 114%); color: #fff; font-size: 12px; font-weight: 600; line-height: 12px; white-space: pre; text-align: center; }
.btn--hero { width: 140px; height: 50px; }
.btn--footer { width: 180px; height: 50px; }
.btn-fast { display: flex; justify-content: center; align-items: center; gap: 10px; height: 40px; padding: 0 24px; border-radius: 999px; background-image: linear-gradient(114deg, #3162ff -32%, #c671ff 114%); white-space: pre; }
.btn-fast img { width: 17px; height: 17px; object-fit: contain; }
.btn-fast span { font-size: 12px; font-weight: 600; line-height: 12px; color: #c7c7c7; }

/* ================= HERO ================= */
.hero { position: relative; width: 100%; height: 1000px; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; background-image: linear-gradient(#fff 0%, #f9f9f9 100%); overflow: hidden; }
.hero__shot { position: absolute; left: 50%; bottom: 74px; width: 714px; height: 436.297px; transform: translateX(-50%); border-radius: 20px; overflow: hidden; }
.hero__shot img { width: 100%; height: 100%; object-fit: contain; }
.hero__content { position: absolute; top: 180px; left: 0; right: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; padding: 10px; }
.hero__title { font-size: 62px; font-weight: 600; line-height: 62px; letter-spacing: -2px; text-align: center; white-space: pre; color: #0d0d0d; }
.hero__lead { width: 425px; font-size: 14px; font-weight: 500; line-height: 21px; text-align: center; color: #0d0d0d; white-space: pre-wrap; word-break: break-word; }
.hero__cta { display: flex; justify-content: center; align-items: center; width: 100%; height: 50px; }

.topbar { position: absolute; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: flex-start; padding: 30px 30px 20px; }
.topbar__mail { display: flex; align-items: flex-end; font-size: 12px; font-weight: 500; line-height: 14.4px; color: #c7c7c7; white-space: pre; }
.topbar__links { display: flex; align-items: flex-end; gap: 30px; padding-bottom: 20px; font-size: 12px; font-weight: 500; line-height: 14.4px; white-space: pre; }
.topbar__link { color: #c7c7c7; }
.topbar__link--grad { display: inline-block; background-image: linear-gradient(112deg, #3162ff -22%, #c671ff 150%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.topbar__link--login { letter-spacing: 0.1px; }
.topbar__link--join { color: #0d0d0d; }
.topbar__logo { position: absolute; top: 30px; left: 50%; width: 118px; height: 70px; transform: translateX(-50%); }
.topbar__logo img { width: 100%; height: 100%; object-fit: contain; }

/* ================= MISSION ================= */
.mission { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding: 100px 0; background: #fff; overflow: hidden; }
.mission__inner { display: flex; justify-content: space-between; align-items: center; width: 1000px; }
.mission__text { display: flex; flex-direction: column; justify-content: center; gap: 28px; width: 430px; }
.mission__head { display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.mission__head .overline { text-align: left; }
.mission__title { font-size: 50px; font-weight: 600; line-height: 55px; letter-spacing: -2px; white-space: pre; }
.mission__body { display: flex; flex-direction: column; justify-content: center; gap: 20px; overflow: hidden; }
.mission__p1 { font-size: 22px; font-weight: 500; line-height: 30.8px; white-space: pre-wrap; word-break: break-word; }
.mission__p2 { font-size: 14px; font-weight: 500; line-height: 25.2px; white-space: pre-wrap; word-break: break-word; }
.mission__logo { display: flex; justify-content: center; align-items: center; width: 352px; height: 306px; overflow: hidden; }
.mission__logo img { width: 230px; height: 199.938px; object-fit: contain; }

/* ================= CLIENTS ================= */
.clients { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding: 100px 0; background-image: linear-gradient(#f9f9f9 0%, #fff 100%); overflow: hidden; }
.clients__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 60px; width: 100%; }
.clients__head { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 28px; width: 100%; }
.clients__head-top { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.clients__title { width: 767px; font-size: 80px; font-weight: 600; line-height: 80px; letter-spacing: -2px; text-align: center; text-transform: uppercase; white-space: pre-wrap; word-break: break-word; }
.clients__lead { width: 518px; font-size: 20px; font-weight: 500; line-height: 32px; text-align: center; white-space: pre-wrap; word-break: break-word; }
.bubbles { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.bubbles__row { display: flex; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.bubble { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; flex: none; width: 150px; height: 150px; border-radius: 100px; background: #f6f6f6; overflow: hidden; text-align: center; }
.bubble p { font-size: 12px; font-weight: 600; line-height: 16.8px; color: #6573a1; white-space: pre; }
.bubble:not(.bubble--blur) p { transform: translateX(-1.5px); }
.bubble--blur { filter: blur(6px); }
.bubble--blur5 { filter: blur(5px); }
.bubble--sq-br { border-radius: 100px 100px 0 100px; }
.bubble--sq-bl { border-radius: 100px 100px 100px 0; }
.bubble--sq-tr { border-radius: 100px 0 100px 100px; }
.bubble--sq-tl { border-radius: 0 100px 100px 100px; }
.bubble--logo img { width: 75px; height: 75px; object-fit: contain; }
.clients__outro { width: 600px; font-size: 30px; font-weight: 600; line-height: 36px; text-align: center; color: #6573a1; white-space: pre-wrap; word-break: break-word; }

/* ================= PLATFORM ================= */
.platform { display: flex; justify-content: center; align-items: center; width: 100%; padding: 100px; background-image: linear-gradient(rgba(165, 88, 255, 0.6) -15%, rgba(49, 98, 255, 0.6) 100%); overflow: hidden; }
.platform__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 50px; width: 100%; }
.platform__head { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 50px; width: 100%; padding: 20px; }
.platform__logo { width: 118px; height: 70px; }
.platform__logo img { width: 100%; height: 100%; object-fit: contain; }
.platform__head-text { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 30px; width: 100%; overflow: hidden; }
.platform__title { width: 1023px; font-size: 64px; font-weight: 600; line-height: 64px; letter-spacing: -2px; text-align: center; text-transform: uppercase; white-space: pre-wrap; word-break: break-word; color: #0d0d0d; }
.platform__title-grad { display: inline-block; background-image: linear-gradient(298deg, #eaefff 21.8841%, #fff0f5 70.6588%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.platform__lead { width: 100%; font-size: 16px; font-weight: 500; line-height: 25.6px; text-align: center; color: #fff; white-space: pre-wrap; word-break: break-word; }
.platform__lead .br-tall { font-size: 24px; line-height: 38.4px; }
.features { display: flex; flex-direction: column; gap: 20px; width: 1000px; }
.feature { position: relative; width: 100%; height: 300px; border-radius: 10px; background: rgba(248, 248, 248, 0.1); }
.feature__text { position: absolute; top: 30px; left: 30px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 10px; width: 380px; overflow: hidden; }
.feature__title { width: 100%; font-size: 26px; font-weight: 600; line-height: 31.2px; letter-spacing: -0.26px; color: #fff; white-space: pre-wrap; word-break: break-word; }
.feature__desc { width: 100%; font-size: 14px; font-weight: 500; line-height: 22.4px; letter-spacing: 0.28px; color: #fff; white-space: pre-wrap; word-break: break-word; }
.feature__img { position: absolute; top: 10px; right: 10px; bottom: 10px; width: 425px; border-radius: 10px; overflow: hidden; }
.feature__img img { width: 100%; height: 100%; object-fit: cover; }

/* ================= REASONS ================= */
.reasons { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding: 150px; background: #fff; overflow: hidden; }
.reasons__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 90px; width: 100%; }
.reasons__head { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 842px; }
.reasons__title { width: 100%; font-size: 64px; font-weight: 600; line-height: 64px; letter-spacing: -2px; text-align: center; text-transform: uppercase; }
.reasons__title p { white-space: pre-wrap; word-break: break-word; }
.reasons__list { display: flex; flex-direction: column; align-items: center; gap: 90px; width: 100%; }
.reason { display: flex; flex-direction: column; align-items: center; gap: 30px; width: 100%; }
.reason__num { font-size: 40px; font-weight: 600; line-height: 40px; text-align: center; text-transform: uppercase; white-space: pre; }
.reason__text { font-size: 30px; font-weight: 500; line-height: 36px; text-align: center; white-space: pre-wrap; word-break: break-word; }
.reason__text--1 { width: 470px; }
.reason__text--2 { width: 561px; }
.reason__text--3 { width: 550px; }
.reason__label { font-size: 12px; font-weight: 600; line-height: 12px; letter-spacing: 1px; text-align: center; text-transform: uppercase; color: #c2c2c2; white-space: pre; }

/* ================= PROOFS ================= */
.proofs { display: flex; flex-direction: column; width: 100%; padding: 100px; background: #f9f9f9; overflow: hidden; }
.proofs__inner { display: flex; flex-direction: column; align-items: center; gap: 60px; width: 100%; }
.proofs__title { width: 400px; font-size: 50px; font-weight: 600; line-height: 55px; letter-spacing: -2px; text-align: center; white-space: pre-wrap; word-break: break-word; }
.proofs__grid { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; height: 104px; padding-top: 4px; }
.proof { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.proof p { font-size: 18px; font-weight: 500; line-height: 21.6px; letter-spacing: 0.18px; text-align: center; white-space: pre-wrap; word-break: break-word; }
.proof--1 { width: 251px; } .proof--1 p { letter-spacing: 0; }
.proof--2 { width: 200px; }
.proof--3 { width: 225px; }
.proof--4 { width: 200px; }
.icon--proof { width: 32px; height: 30px; }
.note { position: relative; display: flex; justify-content: center; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 5px; background: url("/assets/images/bcNhvfHb586VtMMmw7E8fw0yEsQ.png") center / 100% 100% no-repeat; overflow: hidden; }
.icon--info { width: 16px; height: 16px; flex: none; }
.note p { font-size: 12px; font-weight: 500; line-height: 21.6px; text-align: center; color: #fff; white-space: pre; }

/* ================= TRAINING ================= */
.training { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding: 100px; background: #0d0d0d; }
.training__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 60px; width: 1000px; }
.training__head { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.training__head-text { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.training__title { font-size: 70px; font-weight: 600; line-height: 77px; letter-spacing: -2px; text-align: center; color: #fff; white-space: pre; }
.training__offer { display: flex; justify-content: center; align-items: center; gap: 6px; }
.training__offer p { font-size: 16px; font-weight: 700; line-height: 25.6px; text-align: center; color: #fff; white-space: pre; }
.training__offer span { font-weight: 500; }
.icon--badge { width: 18px; height: 18px; flex: none; }
.training__cta { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 40px; }
.training__shot { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; width: 100%; overflow: hidden; }
.training__shot img { width: 600px; height: 375px; object-fit: cover; }

/* ================= COMPARE ================= */
.compare { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding: 100px; background-image: linear-gradient(rgba(165, 88, 255, 0.6) -15%, rgba(49, 98, 255, 0.6) 100%); overflow: hidden; }
.compare__inner { display: flex; flex-direction: column; align-items: center; gap: 60px; width: 100%; }
.compare__head { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.compare__logo { width: 118px; height: 90.766px; }
.compare__logo img { width: 100%; height: 100%; object-fit: contain; }
.compare__title { font-size: 50px; font-weight: 600; line-height: 50px; letter-spacing: -2px; text-align: center; color: #fff; white-space: pre; }
.compare__cols { display: flex; justify-content: space-between; width: 1000px; }
.compare__col { display: flex; flex-direction: column; gap: 20px; width: 490px; padding-bottom: 10px; }
.compare__col-title { font-size: 24px; font-weight: 700; line-height: 24px; color: #fff; white-space: pre; }
.cmp { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 20px; border-radius: 5px; background: rgba(248, 248, 248, 0.1); }
.compare__col--hos .cmp { background: rgba(248, 248, 248, 0.2); }
.icon--cmp { width: 16px; height: 16px; flex: none; }
.cmp p { flex: 1; font-size: 14px; font-weight: 500; line-height: 22.4px; color: #fff; white-space: pre-wrap; word-break: break-word; }
.compare__col--hos .cmp p { font-weight: 600; }
.cmp strong { font-weight: 700; }
.compare__cta { width: 100%; font-size: 32px; font-weight: 600; line-height: 38.4px; letter-spacing: -0.64px; text-align: center; color: #fff; white-space: pre-wrap; word-break: break-word; }

/* ================= PRICING ================= */
.pricing { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 100px; background: #0d0d0d; }
.pricing__inner { display: flex; flex-direction: column; align-items: center; gap: 90px; width: 100%; padding-bottom: 30px; }
.pricing__head { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; }
.pricing__title { font-size: 50px; font-weight: 600; line-height: 50px; letter-spacing: -1px; color: #fff; white-space: pre; }
.plans { display: flex; justify-content: center; gap: 20px; width: 100%; }
.plan { position: relative; flex: none; width: 470px; height: 596px; border-radius: 5px; color: #fff; }
.plans.is-open .plan { height: 750px; }
.plan--base { background: #161616; }
.plan--adv { background-image: linear-gradient(154deg, #3162ff -25%, #ddabff 128%); }
.plan__name { position: absolute; top: 20px; left: 20px; font-size: 26px; font-weight: 600; line-height: 26px; letter-spacing: -0.52px; white-space: pre; }
.plan__tag { position: absolute; top: 20px; right: 20px; display: flex; justify-content: center; align-items: center; gap: 5px; height: 40px; padding: 10px 15px; border-radius: 100px; }
.plan__tag p { position: relative; font-size: 12px; font-weight: 500; line-height: 19.2px; white-space: pre; }
.plan__tag--img img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 100px; }
.plan__tag--line { box-shadow: inset 0 0 0 1px #fff; }
.plan__price { position: absolute; top: 62px; left: 20px; display: flex; align-items: flex-end; gap: 6px; }
.plan__amount { font-size: 42px; font-weight: 600; line-height: 42px; letter-spacing: -0.84px; white-space: pre; }
.plan__per { font-size: 16px; font-weight: 500; line-height: 16px; letter-spacing: -0.32px; white-space: pre; }
.plan__features { position: absolute; top: 144px; left: 20px; right: 20px; display: flex; flex-direction: column; justify-content: center; gap: 30px; height: 164px; }
.plan__feat { position: relative; height: 20px; padding-left: 36px; }
.plan__feat .icon--check20 { position: absolute; top: 0; left: 0; }
.plan__feat p { font-size: 16px; font-weight: 500; line-height: 16px; white-space: pre; }
.plan__feat--long { height: 64px; }
.plan__feat--long .icon--check20 { top: 7px; }
.plan__feat--long p { width: 490px; line-height: 25.6px; white-space: pre-wrap; word-break: break-word; }
.plan__feat--narrow p { width: 380px; }
.icon--check20 { width: 20px; height: 20px; }
.plan__more { position: absolute; top: 338px; left: 56px; cursor: pointer; font-size: 12px; font-weight: 600; line-height: 12px; letter-spacing: 1.92px; text-decoration: underline; text-transform: uppercase; white-space: pre; }
.plan__more--base { color: #606060; }
.plan__extra { position: absolute; top: 370px; left: 56px; right: 56px; display: none; flex-direction: column; font-size: 12px; font-weight: 600; line-height: 19.2px; }
.plan__extra p { white-space: pre-wrap; word-break: break-word; }
.plans.is-open .plan__extra { display: flex; }
.plan__extra--base { color: #606060; }
.plan__feat4 { position: absolute; top: 379.609px; left: 20px; display: flex; align-items: center; gap: 16px; }
.plans.is-open .plan__feat4 { top: 533.609px; }
.plan__feat4 p { font-size: 16px; font-weight: 700; line-height: 16px; white-space: pre; }
.plan__feat4 span { font-weight: 400; }
.icon--target { width: 17px; height: 20.39px; }
.plan__offer { position: absolute; top: 450px; left: 0; right: 0; font-size: 16px; font-weight: 500; line-height: 16px; letter-spacing: 0.16px; text-align: center; white-space: pre; }
.plans.is-open .plan__offer { top: 604px; }
.plan__offer a { color: #c7c7c7; }
.plan__offer--white a { color: #fff; }
.plan__btn { position: absolute; left: 10px; right: 10px; bottom: 10px; display: flex; justify-content: center; align-items: center; height: 80px; padding: 15px; border-radius: 100px; font-size: 14px; font-weight: 600; line-height: 14px; text-align: center; white-space: pre; }
.plan__btn--grad { background-image: linear-gradient(114deg, #3162ff -32%, #c671ff 114%); color: #fff; }
.plan__btn--white { background: #fff; color: #7e6aff; }
.plan__btn--white span { color: #0d0d0d; } /* её правка 03.11: в оригинале #c7c7c7, выглядело неактивной */

/* ================= REVIEWS ================= */
.reviews { display: flex; flex-direction: column; align-items: center; gap: 60px; width: 100%; padding: 100px 0 15px; background: #fefefe; overflow: hidden; }
.reviews__head { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 662px; }
.reviews__title { width: 100%; font-size: 50px; font-weight: 600; line-height: 50px; letter-spacing: -1px; text-align: center; }
.reviews__title p { white-space: pre-wrap; word-break: break-word; }
.reviews__wrap { position: relative; flex: none; width: 1460px; height: 895px; overflow: hidden; }
.reviews__row { position: absolute; top: 0; display: flex; justify-content: center; align-items: center; gap: 15px; width: 1460px; height: 440px; overflow: hidden; }
.reviews__row--top { left: -40px; }
.reviews__row--bottom { top: 455px; left: 40px; }
.card { position: relative; flex: none; width: 280px; height: 440px; border-radius: 5px; color: #0d0d0d; }
.card--light { background: #f9f9f9; }
.card--grad { background-image: linear-gradient(151.678deg, #3162ff 0%, #ddabff 100%); color: #fff; }
.card--blur { filter: blur(6px); }
.card__top { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; flex-direction: column; gap: 20px; will-change: transform; }
.card__who { display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.card--grad .card__who { gap: 10px; }
.card__name { font-size: 16px; font-weight: 700; line-height: 25.6px; white-space: pre; }
.card__jobs { display: flex; flex-direction: column; justify-content: flex-end; }
.card__job { width: 200px; font-size: 12px; font-weight: 500; line-height: 12px; white-space: pre-wrap; word-break: break-word; }
.card__job + .card__job { margin-top: 6px; }
.card__job--inna { margin-top: 0 !important; }
.only-xl { display: none; }
.only-d { display: inline; }
.card__text { font-size: 15px; font-weight: 500; line-height: 24px; white-space: pre-wrap; word-break: break-word; }
.card__score { position: absolute; top: 388px; left: 10px; font-size: 12px; font-weight: 500; line-height: 12px; white-space: pre; }
.card__stars { position: absolute; top: 412px; left: 10px; display: flex; justify-content: center; align-items: center; gap: 10px; }
.card--grad .card__stars { top: 414px; }
.card__stars .icon { width: 16px; height: 16px; }
.card__badge { position: absolute; top: 400px; right: 10px; display: flex; justify-content: flex-end; align-items: center; gap: 5px; height: 30px; padding: 10px 15px; border-radius: 100px; }
.card__badge p { position: relative; font-size: 10px; font-weight: 500; line-height: 10px; color: #fff; white-space: pre; }
.card__badge--img img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 100px; }
.card__badge--white { background: #fff; }
.card__badge--white p { line-height: 16px; color: #0d0d0d; }

/* ================= FAQ ================= */
.faq { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 100px; background: #fefefe; }
.faq__inner { display: flex; flex-direction: column; align-items: center; gap: 50px; width: 100%; padding: 10px; }
.faq__head { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 100%; }
.faq__title { font-size: 50px; font-weight: 600; line-height: 50px; letter-spacing: -1px; text-align: center; white-space: pre; }
.faq__list { display: flex; flex-direction: column; gap: 20px; width: 600px; }
.qa { display: flex; flex-direction: column; border-radius: 14px; background: #f8f8f8; overflow: hidden; }
.qa__q { display: flex; align-items: center; gap: 12px; width: 100%; padding: 16px 24px; border: 0; border-radius: 14px; background: none; text-align: left; cursor: pointer; }
.qa__q h3 { flex: 1; font-size: 16px; font-weight: 500; line-height: 24px; color: #0d0d0d; white-space: pre-wrap; word-break: break-word; }
.qa__icon { position: relative; flex: none; width: 32px; height: 32px; border-radius: 100px; background: #191919; overflow: hidden; }
.qa__icon img { position: absolute; top: 6px; left: 6px; width: 20px; height: 20px; border-radius: 10px; }
.qa__minus { display: none; }
.qa.is-open .qa__plus { display: none; }
.qa.is-open .qa__minus { display: block; }
.qa__a { display: grid; grid-template-rows: 0fr; padding: 0 24px; transition: grid-template-rows 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), padding 0.35s cubic-bezier(0.25, 0.8, 0.25, 1); }
.qa.is-open .qa__a { grid-template-rows: 1fr; padding: 4px 24px 24px; }
.qa__a p { min-height: 0; overflow: hidden; font-size: 13px; font-weight: 500; line-height: 20.8px; color: #565656; white-space: pre-wrap; word-break: break-word; }

/* ================= FOOTER ================= */
.footer { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding-top: 100px; background: #fafafa; }
.footer__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 100px; width: 100%; }
.footer__top { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.footer__logo { width: 118px; height: 90.766px; margin: 10px; }
.footer__logo img { width: 100%; height: 100%; object-fit: contain; }
.footer__head { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 20px; width: 100%; }
.footer__title { width: 100%; font-size: 62px; font-weight: 600; line-height: 62px; letter-spacing: -2px; text-align: center; }
.footer__title p { white-space: pre-wrap; word-break: break-word; }
.footer__lead { width: 460px; font-size: 14px; font-weight: 500; line-height: 22.4px; text-align: center; white-space: pre-wrap; word-break: break-word; }
.footer__links { display: flex; flex-direction: column; gap: 60px; width: 1000px; }
.footer__menu { display: flex; flex-direction: column; justify-content: center; gap: 20px; overflow: hidden; font-size: 14px; font-weight: 500; line-height: 14px; white-space: pre; }
.footer__menu a { align-self: flex-start; }
.footer__bottom { display: flex; justify-content: space-between; align-items: flex-start; height: 16px; font-size: 14px; font-weight: 500; line-height: 14px; white-space: pre; }
.footer__legal { display: flex; justify-content: flex-end; align-items: center; gap: 30px; text-align: right; }
.footer__wordmark { width: 100%; }
.icon--wordmark { display: block; width: 100%; height: 130px; } /* у Framer 1440×130 на десктопе, 1728×189 на XL, 390×44 на телефоне; svg растягивается (preserveAspectRatio none) */

/* ================= FLOATING NAV ================= */
.dock { position: fixed; left: 50%; bottom: 20px; z-index: 50; display: flex; justify-content: center; align-items: center; height: 50px; padding: 5px 5px 5px 30px; border-radius: 100px; background: rgba(0, 0, 0, 0.8); transform: translateX(-50%); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.dock__items { display: flex; justify-content: center; align-items: center; gap: 24px; overflow: hidden; }
.dock__items > a:not(.btn-fast) { font-size: 12px; font-weight: 500; line-height: 14.4px; color: #fff; white-space: pre; }

/* элементы только для ≤1199 (планшет и телефон); на десктопе скрыты */
.mnav, .hero__mlogo, .hero__mshot, .clients__title--m, .bubbles--m, .platform__overline, .proofs__title--m, .reviews__m, .faq__title--m { display: none; }
.br-m { display: none; }

/* ================= /individuals: отличия от главной (1200–1727) ================= */
.br-d { display: inline; }
.only-m { display: none; }
.shot-m { display: none; }
.page--ind .btn--hero { width: 200px; height: 70px; }
.page--ind .btn-fast span { color: #fff; }
[data-soon] { cursor: pointer; }

/* заглушка «Coming soon» (решение Натальи 03.11.2026): кнопки Start Self-Check и Join us на /individuals */
.soon { position: fixed; inset: 0; z-index: 100; display: flex; justify-content: center; align-items: center; padding: 20px; background: rgba(0, 0, 0, 0.6); }
.soon[hidden] { display: none; }
.soon__card { width: 350px; max-width: 100%; padding: 40px 30px 30px; border-radius: 20px; background: #fff; text-align: center; color: #0d0d0d; }
.soon__title { font-size: 32px; font-weight: 600; line-height: 36px; letter-spacing: -1px; }
.soon__text { margin-top: 12px; font-size: 14px; font-weight: 500; line-height: 22.4px; }
.soon__close { width: 140px; height: 50px; margin: 24px auto 0; border: 0; cursor: pointer; }
.page--ind .hero__cta { height: 70px; }
.page--ind .mission__p1 { font-size: 30px; line-height: 42px; }
.page--ind .mission__p2 { font-size: 20px; line-height: 36px; }
.page--ind .clients__lead { width: 360px; }
.feature__title--lg { font-size: 30px; line-height: 36px; letter-spacing: -0.3px; }
.feature__desc--lg { font-size: 16px; line-height: 25.6px; letter-spacing: 0.32px; }
.page--ind .reason__text--2 { width: 500px; }
.page--ind .proofs__grid { position: relative; top: -1px; align-items: center; padding-top: 0; }
.page--ind .proof { width: 200px; }
.page--ind .proof--1 p, .page--ind .proof--2 p, .page--ind .proof--3 p { font-size: 14px; line-height: 16.8px; letter-spacing: 0.14px; }
.page--ind .proof--1 p { letter-spacing: 0; }
.page--ind .proof p span { font-size: 18px; line-height: 21.6px; letter-spacing: 0.18px; }
.page--ind .proof--1 p span { letter-spacing: 0; }
.page--ind .training__title { font-size: 50px; line-height: 55px; }
.page--ind .training__cta { height: 50px; }
.page--ind .compare__cta { font-size: 40px; line-height: 48px; letter-spacing: -0.8px; }
.plans--ind { width: 960px; }
.plans--ind .plan { height: 749px; }
.pfeat { position: absolute; left: 20px; width: 430px; }
.pfeat .icon--check20 { position: absolute; top: 7px; left: 0; }
.pfeat__text { width: 394px; margin-left: 36px; }
.pfeat p { font-size: 16px; font-weight: 500; line-height: 22.4px; white-space: pre-wrap; word-break: break-word; }
.pfeat strong { font-weight: 700; }
.plan--base .pfeat__desc { color: #606060; }
.pfeat--1 { top: 134px; }
.pfeat--2 { top: 199px; }
.pfeat--3 { top: 331px; }
.pfeat--4 { top: 419px; }
.plan--adv .pfeat--4 { top: 463px; }
.plans--ind .plan--base .plan__offer { top: 613px; }
.plans--ind .plan--adv .plan__offer { top: 603px; }
.plans--ind .plan__btn { bottom: 20px; }
.pricing__note { width: 600px; font-size: 20px; font-weight: 500; line-height: 28px; text-align: center; color: #fff; white-space: pre-wrap; word-break: break-word; }
.card--small .card__text { font-size: 14px; line-height: 22.4px; }
.card__job--lh14 { font-size: 14px; line-height: 14px; }
.card__who--fixed { height: 44.75px; }
.footer__cta { display: flex; justify-content: center; align-items: center; height: 50px; }
.page--ind .dock__items { justify-content: space-between; gap: 0; width: 675px; }
.dock__cta { display: flex; justify-content: center; width: 172px; }
@media (min-width: 1200px) and (max-width: 1727.98px) { .page--ind .reviews__row--bottom { top: 451px; } }

/* ================= ≥1728 ================= */
@media (min-width: 1728px) {
  .overline { font-size: 16px; line-height: 16px; }
  .btn--hero { width: 200px; height: 70px; font-size: 14px; line-height: 14px; }
  .btn--footer { height: 60px; font-size: 14px; line-height: 14px; }
  .btn-fast { height: 50px; padding: 0 30px; }
  .btn-fast img { width: 20px; height: 20px; }
  .btn-fast span { font-size: 14px; line-height: 14px; }

  .hero { height: 1435px; }
  .hero__shot { bottom: 100px; width: 1024px; height: 631.391px; }
  .hero__content { top: 259px; gap: 30px; }
  .hero__title { font-size: 90px; line-height: 90px; }
  .hero__lead { width: 592px; font-size: 20px; line-height: 32px; }
  .hero__cta { height: 70px; }
  .topbar { padding: 50px 50px 20px; }
  .topbar__mail { align-items: center; font-size: 16px; line-height: 16px; }
  .topbar__links { align-items: center; padding-bottom: 0; font-size: 16px; line-height: 16px; }
  .topbar__logo { top: 50px; width: 156px; height: 120px; }

  .mission { height: 795px; padding: 0; }
  .mission__inner { position: relative; display: block; width: 1400px; height: 496px; }
  .mission__text { position: absolute; top: 0; left: 0; gap: 50px; width: 592px; }
  .mission__title { font-size: 70px; line-height: 77px; }
  .mission__p1 { font-size: 30px; line-height: 42px; }
  .mission__p2 { font-size: 20px; line-height: 36px; }
  .mission__logo { position: absolute; top: 27px; left: 892px; width: 508px; height: 442px; }
  .mission__logo img { width: 345px; height: 300px; }

  .clients { padding: 150px 0; }
  .clients__inner { gap: 90px; }
  .clients__head { gap: 30px; }
  .clients__title { font-size: 120px; line-height: 120px; }
  .clients__lead { width: 538px; }
  .bubbles { gap: 30px; }
  .bubbles__row { gap: 30px; }
  .bubble { width: 200px; height: 200px; }
  .bubble p { font-size: 16px; line-height: 22.4px; }
  .bubble--logo img { width: 100px; height: 100px; }
  .bubble:not(.bubble--blur) p { transform: translateX(-2px); }
  .clients__outro { width: 760px; font-size: 40px; line-height: 48px; }

  .platform__inner { overflow: hidden; }
  .platform__head { gap: 70px; overflow: hidden; }
  .platform__logo { width: 156px; height: 120px; }
  .platform__title { font-size: 90px; line-height: 90px; }
  .platform__lead { font-size: 24px; line-height: 38.4px; }
  .features { width: 1200px; }
  .feature { height: 400px; }
  .feature__text { width: 440px; }
  .feature__title { font-size: 30px; line-height: 36px; letter-spacing: -0.3px; }
  .feature__desc { font-size: 16px; line-height: 25.6px; letter-spacing: 0.32px; }
  .feature__img { width: 625px; }

  .reasons__inner { gap: 150px; }
  .reasons__title { font-size: 90px; line-height: 90px; }
  .reasons__list { gap: 150px; }
  .reason { gap: 50px; }
  .reason__num { font-size: 70px; line-height: 70px; letter-spacing: -1.4px; }
  .reason__text { font-size: 40px; line-height: 48px; }
  .reason__text--1, .reason__text--2 { width: 676px; }
  .reason__text--3 { width: 790px; }
  .reason__label { font-size: 14px; line-height: 14px; letter-spacing: 1.4px; }

  .proofs__inner { gap: 90px; }
  .proofs__title { width: 662px; font-size: 70px; line-height: 77px; }
  .proofs__grid { width: 1450px; padding-top: 0; }
  .proof { gap: 30px; }
  .proof--1, .proof--2, .proof--3, .proof--4 { width: 340px; }
  .note { padding: 10px 20px; }
  .icon--info { width: 21px; height: 21px; }
  .note p { font-size: 14px; line-height: 25.2px; }

  .training { padding: 150px; }
  .training__inner { gap: 90px; width: 100%; }
  .training__head { gap: 30px; }
  .training__title { white-space: pre-wrap; }
  .training__offer { gap: 10px; }
  .training__offer p { font-size: 24px; line-height: 38.4px; }
  .icon--badge { width: 24px; height: 24px; }
  .training__cta { height: 70px; padding: 10px; }
  .training__shot img { width: 960px; height: 600px; }

  .compare__inner { justify-content: center; gap: 90px; }
  .compare__head { gap: 50px; }
  .compare__logo { width: 156px; height: 120px; }
  .compare__title { font-size: 70px; line-height: 70px; }
  .compare__cols { justify-content: center; align-items: center; gap: 30px; width: 1290px; }
  .compare__col { gap: 30px; width: 630px; padding-bottom: 0; }
  .cmp p { min-height: 58px; }
  .compare__col-title { font-size: 28px; line-height: 28px; }
  .cmp { gap: 20px; }
  .icon--cmp { width: 20px; height: 20px; }
  .cmp p { font-size: 18px; line-height: 28.8px; }
  .compare__cta { font-size: 40px; line-height: 48px; letter-spacing: -0.8px; }

  .pricing__overline { letter-spacing: 0.16px; }
  .pricing__title { font-size: 70px; line-height: 70px; letter-spacing: 0; }
  .plan { width: 590px; height: 681px; }
  .plans.is-open .plan { height: 892px; }
  .plan__name { font-size: 32px; line-height: 32px; letter-spacing: -0.64px; }
  .plan__tag p { font-size: 14px; line-height: 22.4px; }
  .plan__price { top: 72px; }
  .plan__amount { font-size: 50px; line-height: 50px; letter-spacing: -1px; }
  .plan__features { top: 172px; }
  .plan__feat p { font-size: 20px; line-height: 20px; }
  .plan__feat--long p { width: 490px; line-height: 32px; }
  .plan__more { top: 366px; }
  .plan__extra { top: 408px; right: 84px; font-size: 16px; line-height: 25.6px; }
  .plan__feat4 { top: 408px; }
  .plans.is-open .plan__feat4 { top: 617px; }
  .plan__feat4 p { font-size: 20px; line-height: 20px; }
  .icon--target { width: 20px; height: 24px; }
  .plan__offer { top: 523px; font-size: 18px; line-height: 18px; letter-spacing: 0.18px; }
  .plans.is-open .plan__offer { top: 734px; }
  .plan__btn { left: 20px; right: 20px; bottom: 20px; font-size: 18px; line-height: 18px; }

  .reviews { gap: 90px; }
  .reviews__title { font-size: 70px; line-height: 70px; }
  .reviews__wrap { width: 2205px; height: 1015px; }
  .reviews__row { width: 2010px; height: 500px; }
  .reviews__row--top { left: 0; }
  .reviews__row--bottom { top: 515px; left: 195px; }
  .card { width: 390px; height: 500px; }
  .card__top { top: 20px; left: 20px; right: 20px; gap: 30px; }
  .card__who { gap: 10px; }
  .card__name { font-size: 22px; line-height: 35.2px; }
  .card__job { width: 214px; font-size: 14px; line-height: 14px; }
  .card__job--inna { margin-top: 6px !important; }
  .only-xl { display: inline; }
  .only-d { display: none; }
  .card__text { font-size: 18px; line-height: 28.8px; }
  .card__score { top: 436px; left: 20px; font-size: 14px; line-height: 14px; }
  .card__stars, .card--grad .card__stars { top: 460px; left: 20px; }
  .card__stars .icon { width: 20px; height: 20px; }
  .card__badge { top: 440px; right: 20px; height: 40px; }
  .card__badge p { font-size: 12px; line-height: 19.2px; }

  .faq__title { font-size: 70px; line-height: 70px; letter-spacing: -1.4px; }
  .faq__list { width: 1000px; }
  .qa__q { padding: 20px 30px; }
  .qa__q h3 { font-size: 20px; line-height: 30px; }
  .qa__a { padding: 0 30px; }
  .qa.is-open .qa__a { padding: 0 30px 24px; }
  .qa__a p { font-size: 16px; line-height: 25.6px; }

  .footer__inner { gap: 150px; }
  .footer__top { gap: 50px; }
  .footer__logo { width: 156px; height: 120px; }
  .footer__head { gap: 30px; }
  .footer__title { font-size: 90px; line-height: 90px; letter-spacing: -1.8px; }
  .footer__lead { font-size: 24px; line-height: 38.4px; }
  .footer__links { width: 1200px; }
  .footer__menu { gap: 30px; font-size: 16px; line-height: 16px; }
  .footer__bottom { font-size: 16px; line-height: 16px; }
  .icon--wordmark { height: 189px; }


  .dock { height: 60px; }
  .dock__items { gap: 30px; }
  .dock__items > a:not(.btn-fast) { font-size: 14px; line-height: 16.8px; }

  /* ---- /individuals (≥1728) ---- */
  .page--ind .btn-fast { width: 175px; padding: 0; }
  .page--ind .mission__text { top: 3.5px; }
  .page--ind .clients__lead { width: 538px; }
  .page--ind .reason__text--2 { width: 676px; }
  .page--ind .proofs__grid { align-items: flex-start; }
  .page--ind .proof { width: 340px; }
  .page--ind .proof--1 p, .page--ind .proof--2 p, .page--ind .proof--3 p { font-size: 18px; line-height: 21.6px; }
  .page--ind .training__title { font-size: 70px; line-height: 77px; }
  .page--ind .training__cta { height: 70px; }
  .plans--ind { width: 1200px; }
  .plans--ind .plan { height: 870px; }
  .pfeat { width: 526px; }
  .pfeat__text { width: 490px; }
  .pfeat p { font-size: 20px; line-height: 28px; }
  .pfeat--1 { top: 152px; }
  .pfeat--2 { top: 236px; }
  .pfeat--3 { top: 396px; }
  .pfeat--4 { top: 499px; }
  .plan--adv .pfeat--4 { top: 555px; }
  .plans--ind .plan--base .plan__offer, .plans--ind .plan--adv .plan__offer { top: 712px; }
  .pricing__note { width: 800px; font-size: 28px; line-height: 39.2px; }
  .card--small .card__text { font-size: 18px; line-height: 28.8px; }
  .card__job--lh14 { width: 240px; }
  .card__job--sophia { line-height: 19.6px; }
  .card__who--fixed { height: auto; }
  .page--ind .dock__items { justify-content: center; gap: 30px; width: auto; }
  .dock__cta { width: 175px; }
}

/* ================= ≤1199: планшет и телефон ================= */
/* У Framer ниже 1200 px один макет: колонка 350 px по центру. Шапка с бургером у Framer была 390 px
   у левого края даже на планшете; по решению Натальи (02.11.2026) она растянута на всю ширину. */
@media (max-width: 1199.98px) {
  .page { min-height: 844px; padding-top: calc(64px + env(safe-area-inset-top, 0px)); }
  .only-m, .br-m { display: inline; }
  .br-d { display: none; }
  .dock { display: none; }
  .overline { font-size: 14px; line-height: 14px; text-align: left; }
  .btn-fast span { font-size: 14px; line-height: 14px; }

  /* ---- шапка и бургер-меню ---- */
  /* полоска уходит под статус-бар телефона: viewport-fit=cover + отступы safe-area (её правка 03.11) */
  .mnav { display: block; position: fixed; top: 0; left: 0; z-index: 10; width: 100%; padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) 0 env(safe-area-inset-left, 0px); background: #fff; }
  .mnav__top { display: flex; justify-content: space-between; align-items: center; height: 64px; padding: 10px 10px 10px 20px; cursor: pointer; }
  .mnav__logo { display: block; width: 30px; height: 30px; }
  .mnav__logo img { width: 30px; height: 30px; object-fit: contain; }
  .mnav__burger { position: relative; display: flex; justify-content: center; align-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; overflow: hidden; cursor: pointer; }
  .mnav__burger img { width: 25px; height: 14px; object-fit: cover; }
  .mnav__x { display: none; }
  .mnav__panel { position: absolute; top: 100%; right: 0; width: 390px; max-width: 100%; height: 0; overflow: hidden; background: #000; visibility: hidden; transition: height 0.35s cubic-bezier(0.2, 0.8, 0.3, 1), visibility 0s 0.35s; }
  .mnav__line { position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: rgba(0, 0, 0, 0.08); }
  .mnav.is-open { background: #000; }
  .mnav.is-open .mnav__burger img { display: none; }
  .mnav.is-open .mnav__x { display: block; position: absolute; inset: 0; }
  .mnav__x::before, .mnav__x::after { content: ""; position: absolute; top: 21px; left: 12px; width: 20px; height: 2px; border-radius: 50% / 500%; background: #999; }
  .mnav__x::before { transform: rotate(45deg); }
  .mnav__x::after { transform: rotate(-45deg); }
  .mnav.is-open .mnav__panel { height: 661px; visibility: visible; transition: height 0.35s cubic-bezier(0.2, 0.8, 0.3, 1), visibility 0s; }
  .mnav.is-open .mnav__line { display: none; }
  .mnav__links { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; height: 581px; padding: 20px 20px 50px; }
  .mnav__links a { font-size: 16px; font-weight: 400; line-height: 24px; letter-spacing: 0.2px; color: #fff; white-space: pre; }
  .mnav__links .mnav__ind { font-size: 18px; font-weight: 700; line-height: 27px; }
  .mnav__cta { display: flex; justify-content: center; height: 80px; padding: 0 20px 20px; }
  .mnav__cta .btn-fast { width: 350px; height: 60px; }

  /* ---- hero ---- */
  .hero { display: flex; flex-direction: column; align-items: center; height: auto; padding-top: 64px; }
  .hero__bg, .topbar, .topbar__logo { display: none; }
  .hero__content { position: relative; top: auto; width: 350px; padding: 10px; }
  .hero__mlogo { display: block; width: 118px; height: 70px; }
  .hero__mlogo img { width: 100%; height: 100%; object-fit: contain; }
  .hero__title { width: 350px; font-size: 42px; line-height: 42px; white-space: pre-wrap; word-break: break-word; }
  .hero__lead { width: 350px; font-size: 16px; line-height: 24px; }
  .hero__cta { height: 60px; }
  .btn--hero { width: 350px; height: 60px; }
  .hero__mshot { display: block; width: 350px; height: 682px; border-radius: 20px; overflow: hidden; }
  .hero__mshot img { width: 100%; height: 100%; object-fit: contain; }

  /* ---- mission ---- */
  .mission { width: 390px; padding: 50px 0 75px; }
  .mission__inner { flex-direction: column; align-items: center; gap: 60px; width: 350px; }
  .mission__text { gap: 20px; width: 350px; }
  .mission__title { font-size: 42px; line-height: 46.2px; }
  .mission__p1 { font-size: 24px; line-height: 33.6px; }
  .mission__p2 { font-size: 16px; line-height: 28.8px; }
  .mission__logo { width: 350px; height: 200px; }
  .mission__logo img { width: 230px; height: 200px; }

  /* ---- clients ---- */
  .clients { padding: 50px 0 75px; }
  .clients__inner { gap: 50px; }
  .clients__head { gap: 20px; }
  .clients__head-top { gap: 20px; }
  .clients__head .overline { width: 350px; }
  .clients__title--d { display: none; }
  .clients__title--m { display: block; width: 350px; font-size: 70px; line-height: 70px; text-align: left; }
  .clients__lead { width: 350px; text-align: left; }
  .bubbles:not(.bubbles--m) { display: none; }
  .bubbles--m { display: flex; gap: 15px; width: 390px; }
  .bubbles--m .bubbles__row { flex: none; gap: 15px; width: auto; }
  .bubbles--m .bubble { width: 100px; height: 100px; }
  .bubbles--m .bubble p { font-size: 10px; line-height: 14px; }
  .bubbles--m .bubble--blur p { font-size: 12px; line-height: 16.8px; }
  .bubbles--m .bubble:not(.bubble--blur) p { transform: translateX(-1px); }
  .bubbles--m .bubble--logo img { width: 50px; height: 50px; }
  .clients__outro { width: 350px; font-size: 24px; line-height: 28.8px; }

  /* ---- platform ---- */
  .platform { padding: 50px 0; }
  .platform__inner { gap: 50px; width: 350px; }
  .platform__head { gap: 20px; padding: 0; }
  .platform__logo { display: none; }
  .platform__head-text { align-items: flex-start; gap: 20px; overflow: visible; }
  .platform__overline { display: block; width: 350px; }
  .platform__title { width: 350px; font-size: 70px; line-height: 70px; text-align: left; }
  .platform__lead { width: 350px; font-size: 20px; line-height: 32px; text-align: left; }
  .features { gap: 20px; width: 350px; }
  .feature { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 30px; height: auto; padding: 20px; }
  .feature__text { position: static; gap: 15px; width: 310px; }
  .feature__title { font-size: 20px; line-height: 24px; letter-spacing: -0.2px; }
  .feature__desc { font-size: 16px; line-height: 25.6px; letter-spacing: 0.32px; }
  .feature__img { position: static; width: 310px; height: 204.234px; }

  /* ---- reasons ---- */
  .reasons { padding: 50px 0; }
  .reasons__inner { width: 350px; }
  .reasons__head { width: 350px; }
  .reasons__head .overline { width: 350px; }
  .reasons__title { text-align: left; }
  .reason__text { font-size: 18px; line-height: 25.2px; }
  .reason__text--1, .reason__text--2, .reason__text--3 { width: 350px; }

  /* ---- proofs ---- */
  .proofs { align-items: center; padding: 50px 0; }
  .proofs__inner { gap: 60px; width: 350px; }
  .proofs__title--d { display: none; }
  .proofs__title--m { display: block; width: 350px; font-size: 42px; line-height: 46.2px; }
  .proofs__grid { flex-direction: column; align-items: center; gap: 100px; height: auto; padding-top: 0; }
  .proof { width: 350px; }
  .proof p { font-size: 18px; line-height: 28.8px; }
  .note { flex-direction: column; width: 350px; height: 176.4px; padding: 30px 0; }
  .icon--info { width: 20px; height: 20px; }
  .note p { width: 310px; font-size: 16px; line-height: 28.8px; white-space: pre-wrap; word-break: break-word; }

  /* ---- training ---- */
  .training { padding: 60px 0; }
  .training__inner { gap: 60px; width: 350px; }
  .training__head { gap: 20px; }
  .training__head-text { align-items: flex-start; gap: 20px; }
  .training__offer p { letter-spacing: -0.2px; }
  .training__title { width: 350px; font-size: 58px; line-height: 58px; text-align: left; white-space: pre-wrap; word-break: break-word; }
  .training__cta { width: 350px; height: 60px; }
  .training__cta .btn-fast { width: 350px; height: 60px; }
  .training__shot { width: 350px; height: 372.5px; }
  .training__shot img { width: 596px; max-width: none; height: 372.5px; }

  /* ---- compare ---- */
  .compare { padding: 75px 0; }
  .compare__inner { gap: 50px; width: 350px; }
  .compare__title { font-size: 42px; line-height: 42px; }
  .compare__cols { flex-direction: column; justify-content: flex-start; align-items: center; gap: 50px; width: 350px; }
  .compare__col { align-items: center; gap: 20px; width: 350px; padding-bottom: 10px; }
  .compare__col-title { font-size: 20px; font-weight: 600; line-height: 20px; text-align: center; }
  .cmp { gap: 20px; width: 350px; }
  .cmp p { min-height: 0; font-size: 16px; line-height: 25.6px; }
  .compare__col--hos .cmp p { font-weight: 500; }
  .compare__col--hos .cmp:nth-child(3) p { font-weight: 600; }
  .compare__cta { width: 350px; font-size: 24px; line-height: 28.8px; letter-spacing: -1px; }
  .compare__cta br { display: none; }

  /* ---- pricing: карточки в колонку, каждая раскрывается своей ссылкой ---- */
  .pricing { padding: 50px 0; }
  .pricing__inner { gap: 20px; width: 350px; padding-bottom: 0; }
  .pricing__head { gap: 20px; width: 350px; padding-bottom: 30px; }
  .pricing__overline { font-size: 14px; line-height: 14px; text-align: center; }
  .pricing__title { font-size: 42px; line-height: 42px; }
  .plans { flex-direction: column; align-items: center; gap: 20px; width: 350px; }
  .plan { width: 350px; height: 670px; }
  .plan--adv { height: 750px; }
  .plans.is-open .plan { height: 670px; }
  .plans.is-open .plan--adv { height: 750px; }
  .plan__tag { top: 20px; left: 20px; right: auto; }
  .plan__name { top: 90px; }
  .plan__price { top: 136px; }
  .plan__amount { font-size: 38px; line-height: 38px; letter-spacing: -0.76px; }
  .plan__per { font-size: 14px; line-height: 14px; letter-spacing: -0.28px; }
  .plan__features { top: 224px; left: 20px; right: 20px; height: 209px; }
  .plan__feat--long { height: 77px; }
  .plan__feat--long p, .plan__feat--narrow p { width: 274px; }
  .plan__feat:nth-child(2) { height: 52px; }
  .plan__feat:nth-child(2) .icon--check20 { top: 8px; }
  .plan__feat:nth-child(2) p { width: 274px; line-height: 25.6px; white-space: pre-wrap; word-break: break-word; }
  .plan__more { top: 462px; left: 20px; cursor: pointer; }
  .plan__extra { top: 494px; left: 20px; right: 20px; }
  .plans.is-open .plan__extra { display: none; }
  .plan.is-open .plan__extra { display: flex; }
  .plan__offer { top: 524px; }
  .plans.is-open .plan__offer { top: 524px; }
  .plan--adv .plan__offer, .plans.is-open .plan--adv .plan__offer { top: 604px; }
  .plan__btn { left: 20px; right: 20px; bottom: 20px; }
  .plan__feat4, .plans.is-open .plan__feat4 { display: block; top: 504px; left: 19.5px; width: 281px; height: 51px; }
  .plan__feat4 .icon--check20 { position: absolute; top: 7px; left: 0; }
  .plan__feat4 p { position: absolute; top: 0; left: 35px; width: 246px; line-height: 25.6px; white-space: pre-wrap; word-break: break-word; }
  .plan__feat4 .icon--target { position: absolute; top: 27.6px; left: 175px; }
  .plan--base.is-open { height: 747px; }
  .plan--base.is-open .plan__offer { top: 601px; }
  .plan--adv.is-open { height: 944px; }
  .plan--adv.is-open .plan__feat4 { top: 697px; }
  .plan--adv.is-open .plan__offer { top: 798px; }

  /* ---- reviews: вертикальная лента (движение добавится на этапе 5) ---- */
  .reviews { gap: 50px; padding: 50px 0; }
  .reviews__head { width: 350px; }
  .reviews__head .overline { text-align: center; }
  .reviews__title { font-size: 42px; line-height: 42px; }
  .reviews__wrap { display: none; }
  .reviews__m { display: block; width: 350px; height: 600px; overflow: hidden; -webkit-mask-image: linear-gradient(rgba(0, 0, 0, 0) 0%, #000 7.5%, #000 92.5%, rgba(0, 0, 0, 0) 100%); mask-image: linear-gradient(rgba(0, 0, 0, 0) 0%, #000 7.5%, #000 92.5%, rgba(0, 0, 0, 0) 100%); }
  .reviews__m-list { display: flex; flex-direction: column; align-items: center; gap: 15px; width: 350px; margin: 0; padding: 0; list-style: none; padding-bottom: 15px; will-change: transform; animation: rv-ticker var(--rv-dur, 46s) linear infinite; }
  .mcard { display: flex; flex-direction: column; gap: 30px; width: 350px; padding: 20px; border-radius: 5px; color: #0d0d0d; }
  .mcard--light { background: #f9f9f9; }
  .mcard--grad { background-image: linear-gradient(151.678deg, #3162ff 0%, #ddabff 100%); color: #fff; }
  .mcard__who { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
  .mcard__name { font-size: 18px; font-weight: 700; line-height: 28.8px; white-space: pre; }
  .mcard__jobs { display: flex; flex-direction: column; justify-content: flex-end; width: 220px; }
  .mcard__job { font-size: 14px; font-weight: 500; line-height: 19.6px; white-space: pre-wrap; word-break: break-word; }
  .mcard__job + .mcard__job { margin-top: 6px; }
  .mcard__text { font-size: 16px; font-weight: 500; line-height: 25.6px; white-space: pre-wrap; word-break: break-word; }
  .mcard--small .mcard__text { font-size: 15px; line-height: 24px; }
  .mcard__bottom { display: flex; justify-content: space-between; align-items: flex-end; }
  .mcard__nums { display: flex; flex-direction: column; justify-content: center; gap: 10px; width: 120px; }
  .mcard__score { display: flex; align-items: flex-end; height: 14px; font-size: 12px; font-weight: 500; line-height: 12px; white-space: pre; }
  .mcard__stars { display: flex; justify-content: center; align-items: center; gap: 10px; height: 20px; overflow: hidden; }
  .mcard--grad .mcard__stars { height: 16px; }
  .mcard__stars .icon { width: 16px; height: 16px; }
  .mcard__badge { position: relative; display: flex; justify-content: flex-end; align-items: center; gap: 5px; height: 30px; padding: 10px 15px; border-radius: 100px; }
  .mcard__badge p { position: relative; font-size: 10px; font-weight: 500; line-height: 10px; color: #fff; white-space: pre; }
  .mcard__badge--img img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 100px; }
  .mcard__badge--white { background: #fff; }
  .mcard__badge--white p { color: #0d0d0d; }

  /* ---- faq ---- */
  .faq { padding: 50px 0; }
  .faq__inner { width: 350px; }
  .faq__head .overline { text-align: center; }
  .faq__title--d { display: none; }
  .faq__title--m { display: block; font-size: 42px; line-height: 42px; white-space: pre-wrap; }
  .faq__list { width: 350px; }
  .qa.is-open .qa__a { padding: 4px 24px 24px; }

  /* ---- footer ---- */
  .footer { padding-top: 50px; }
  .footer__inner { gap: 50px; }
  .footer__top { width: 390px; }
  .footer__head { width: 350px; }
  .footer__title { font-size: 38px; line-height: 41.8px; }
  .footer__lead { width: 350px; font-size: 16px; line-height: 25.6px; }
  .btn--footer { width: 350px; height: 60px; }
  .footer__links { align-items: center; gap: 40px; width: 350px; }
  .footer__menu { display: none; }
  .footer__bottom { flex-direction: column; align-items: center; gap: 40px; height: auto; }
  .footer__legal { flex-direction: column; justify-content: flex-end; gap: 40px; height: 68px; text-align: center; }
  .footer__wordmark { width: 390px; max-width: 100%; }
  .icon--wordmark { height: 44px; }

  /* ---- /individuals (≤1199) ---- */
  .no-m { display: none; }
  .shot-d { display: none; }
  .shot-m { display: block; }
  .page--ind .btn-fast { width: 175px; height: 50px; padding: 0; }
  .page--ind .btn-fast img { width: 20px; height: 20px; }
  .page--ind .mnav__cta .btn-fast { width: 350px; height: 60px; }
  .page--ind .clients__lead { width: 350px; }
  .feature__title--lg { font-size: 20px; line-height: 24px; letter-spacing: -0.2px; }
  .page--ind .reason__text--2 { width: 350px; }
  .page--ind .proofs__grid { top: 0; }
  .page--ind .proof { width: 350px; }
  .page--ind .proof--1 p, .page--ind .proof--2 p, .page--ind .proof--3 p { font-size: 18px; line-height: 28.8px; letter-spacing: 0.18px; }
  .page--ind .proof--1 p { letter-spacing: 0; }
  .page--ind .proof p span { font-size: inherit; line-height: inherit; letter-spacing: inherit; }
  .page--ind .training__title { font-size: 52px; line-height: 52px; letter-spacing: -1.2px; }
  .page--ind .training__cta { height: 50px; }
  .page--ind .compare__cta { font-size: 24px; line-height: 28.8px; letter-spacing: -1px; }
  .plans--ind .plan--base { height: 897.4px; }
  .plans--ind .plan--adv { height: 935.4px; }
  .pfeat { width: 310px; }
  .pfeat__text { width: 274px; }
  .plan--base .pfeat--1 { top: 204px; }
  .plan--base .pfeat--2 { top: 314px; }
  .plan--base .pfeat--3 { top: 466px; }
  .plan--base .pfeat--4 { top: 575.6px; }
  .plan--adv .pfeat--1 { top: 206px; }
  .plan--adv .pfeat--2 { top: 316px; }
  .plan--adv .pfeat--3 { top: 471px; }
  .plan--adv .pfeat--4 { top: 625.4px; }
  .plans--ind .plan--base .plan__offer { top: 750.4px; }
  .plans--ind .plan--adv .plan__offer { top: 790.4px; }
  .pricing__note { width: 350px; font-size: 18px; line-height: 25.2px; }
  .page--ind .note { height: auto; }
  .page--ind .compare__col--hos .cmp:nth-child(6) p { font-weight: 600; }
}

/* ===== Этап 4: legal-страницы (/privacypolicy, /termsandconditions и их *-individuals) и 404 =====
   Геометрия с Framer: десктоп – отступ страницы 100, шапка 100, контент 1000 с отступом 100, заголовок 50/55,
   текст 600 шириной 20/36; XL – 150 / 150 / 1400 / 70/77 / текст 800; телефон – колонка 350, заголовок 36/39.6
   на 136 px от верха (64 – фиксированная шапка), текст 20/36, снизу 50.
   Размер текста на всех четырёх страницах одинаковый (решение Натальи 05.11.2026; у Framer Terms практиков были мельче). */
.legal { padding: 100px 0; }
.legal__head { position: absolute; top: 0; left: 0; right: 0; height: 100px; }
.legal .topbar__mail, .legal .topbar__links { line-height: 12px; }
.legal .topbar__links { padding-bottom: 10px; }
.legal__content { display: flex; flex-direction: column; align-items: center; gap: 50px; width: 1000px; padding: 100px; }
.legal__title { width: 800px; font-size: 50px; font-weight: 600; line-height: 55px; letter-spacing: -2px; text-align: center; color: #0d0d0d; }
.legal__text { width: 600px; font-size: 20px; font-weight: 500; line-height: 36px; color: #0d0d0d; will-change: transform; }
.legal__text p { white-space: pre-wrap; word-break: break-word; }
.legal__text strong, .legal__text .b { font-weight: 700; }
.legal__text .b strong { font-weight: 900; }
.legal--404 .legal__text { text-align: center; }
.legal__cta { display: flex; justify-content: center; width: 100%; }
@media (min-width: 1728px) {
  .legal { padding: 150px 0; }
  .legal__head { height: 150px; }
  .legal .topbar__mail, .legal .topbar__links { line-height: 16px; }
  .legal__content { width: 1400px; padding: 150px; }
  .legal__title { font-size: 70px; line-height: 77px; }
  .legal__text { width: 800px; }
}
@media (max-width: 1199.98px) {
  .legal { padding: calc(64px + env(safe-area-inset-top, 0px)) 0 0; }
  .legal__head { display: none; }
  .legal__content { gap: 30px; width: 350px; padding: 72px 0 50px; }
  .legal__title { width: 350px; font-size: 36px; line-height: 39.6px; }
  .legal__text { width: 350px; }
}

/* ===== Этап 5: движение, снято с Framer 05.11.2026 (tools/probe_motion.mjs → reference/motion/) =====
   Появление при скролле: прозрачность 0 → 1 и сдвиг 20 px (надзаголовки и логотипы – сверху вниз, остальное – снизу
   вверх), 0.4 с, easeInOut (0.44, 0, 0.56, 1), один раз, срабатывает, когда любая часть элемента входит в окно.
   Класс .ap ставится в разметке, .is-in добавляет site.js (IntersectionObserver); без JS (нет класса .js на html)
   всё видно сразу. Сдвиг – свойство translate/scale, чтобы не спорить с transform элементов. */
.js .ap { opacity: 0.001; translate: 0 20px; transition: opacity 0.4s cubic-bezier(0.44, 0, 0.56, 1), translate 0.4s cubic-bezier(0.44, 0, 0.56, 1), scale 0.4s cubic-bezier(0.44, 0, 0.56, 1); }
.js .ap--down { translate: 0 -20px; }
.js .ap--30 { translate: 0 30px; }
.js .ap--scale { translate: 0 0; scale: 0.9; }
.js .ap.is-in { opacity: 1; translate: 0 0; scale: 1; }
/* Появление при загрузке (hero и кнопка Fast Training в блоке тренинга): задержки 1.25 / 1.35 / 1.45 с, 0.45 с, та же кривая */
@keyframes ap-load-up { from { opacity: 0.001; translate: 0 var(--ap-y, 20px); } to { opacity: 1; translate: 0 0; } }
@keyframes ap-load-fade { from { opacity: 0.001; } to { opacity: 1; } }
.hero__lead { animation: ap-load-up 0.45s cubic-bezier(0.44, 0, 0.56, 1) 1.25s both; }
.hero__cta, .training__cta { --ap-y: 30px; animation: ap-load-up 0.45s cubic-bezier(0.44, 0, 0.56, 1) 1.35s both; }
.hero__shot, .hero__mshot { animation: ap-load-fade 0.45s cubic-bezier(0.44, 0, 0.56, 1) 1.45s both; }
/* Бегущая колонка отзывов на телефоне и планшете: 50 px/с вверх, 12 карточек (6 × 2), длительность круга считает site.js */
@keyframes rv-ticker { from { transform: translateY(0); } to { transform: translateY(-50%); } }
/* Ховеры (у Framer без перехода, мгновенно): тёмные ссылки → #a26dff, серые → #7e6aff. Градиентные кнопки не меняются.
   Кнопка Fast Training в нижней панели у Framer на ховере красит текст в #7e6aff поверх такого же градиента (текст
   пропадает) – намеренно не повторяем. */
@media (hover: hover) {
  .topbar__mail a:hover, .topbar__link--login:hover, .plan__offer a:hover, .plan__btn--white:hover span { color: #7e6aff; }
  .topbar__link--join:hover, .dock__items > a:not(.btn-fast):hover, .footer__menu a:hover { color: #a26dff; }
}
@media (prefers-reduced-motion: reduce) {
  .js .ap { opacity: 1; translate: 0 0; scale: 1; transition: none; }
  .hero__lead, .hero__cta, .training__cta, .hero__shot, .hero__mshot { animation: none; }
  .reviews__m-list { animation: none; }
  .qa__a, .mnav__panel { transition: none; }
}
