/* Тестостерон.site — стили по макету Figma «MEDO Clinic / ТЕСТОСТЕРОН.SITE» (десктоп 1440, мобайл 360) */

:root {
  --orange: #fe5301;
  --orange-hover: #ff6920;
  --orange-active: #ec5005;
  --orange-soft: rgba(255, 87, 34, .1);
  --ink: #0b0a0a;
  --dark: #131313;
  --text: #5f5a56;
  --text-2: #655f5b;
  --muted: #9b948f;
  --light-text: #b8b8b8;
  --bg: #f9f5f3;
  --beige: #f4f1ea;
  --border: rgba(255, 87, 34, .1);
  --pad-x: clamp(16px, 4.45vw, 64px);
  --font: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-cond: 'Roboto Condensed', 'Arial Narrow', sans-serif;
  --font-logo: 'Oswald', 'Arial Narrow', sans-serif;
  --font-ui: 'Inter', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 16px/1.5 var(--font); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
b { font-weight: 600; }
[hidden] { display: none !important; }

.container { width: 100%; max-width: 1440px; margin: 0 auto; padding-inline: var(--pad-x); }
.h2 { font: italic 700 52px/.98 var(--font-cond); letter-spacing: -.02em; color: var(--ink); }
.h2--light { color: #fff; }
.h2 em { font-style: inherit; color: #ff4f1a; }
.head { display: flex; align-items: center; gap: 48px; }
.head__title { width: 700px; flex-shrink: 0; }
.head__title--narrow { width: 620px; }
.head__text { flex: 1; font-size: 16px; line-height: 1.5; color: var(--text); }
.head__text b { color: var(--orange); }

/* Кнопки: состояния из макета «Поведение кнопок» */
.btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 10px 20px; border-radius: 8px; background: var(--orange); color: #fff; font-weight: 600; font-size: 16px; line-height: 1.2; white-space: nowrap; transition: background .15s, color .15s, border-color .15s; }
.btn:hover { background: var(--orange-hover); }
.btn:active { background: var(--orange-active); }
.btn:focus-visible, .filter:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.btn--lg { height: 56px; font-size: 18px; }
.btn--xl { font-size: 20px; }
.btn--sm { height: auto; padding: 10px 20px; font-size: 14px; }
.btn--dark { background: var(--dark); }
.btn--dark:hover { background: #2a2a2a; }
.btn--dark:active { background: #000; }
.btn--white { background: #fff; color: var(--dark); }
.btn--white:hover { background: #fcf9f9; }
.btn--white:active { background: #f7f7f7; }
.btn--outline { height: 40px; width: 148px; background: transparent; border: 1px solid var(--orange); color: var(--orange); font-size: 14px; }
.btn--outline:hover { background: var(--orange); color: #fff; }
.btn--outline:active { background: var(--orange-active); border-color: var(--orange-active); color: #fff; }
.btn--block { width: 100%; }
.btn:disabled { opacity: .6; cursor: default; }

/* Навигация */
.nav { position: fixed; z-index: 50; top: 0; left: 0; right: 0; }
.nav__bar { max-width: 1440px; height: 110px; margin: 0 auto; padding: 0 64px; display: flex; align-items: center; justify-content: space-between; background: rgba(230, 230, 230, .2); border-radius: 0 0 12px 12px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: height .25s, background .25s; }
.nav.is-scrolled .nav__bar { height: 76px; background: rgba(26, 12, 6, .82); }
.logo { font: 500 26px/1 var(--font-logo); letter-spacing: -.5px; color: #fff; white-space: nowrap; }
.nav__links { display: flex; align-items: center; gap: 36px; }
.nav__links > a { font-size: 14px; letter-spacing: .01em; color: #fff; transition: opacity .2s; }
.nav__links > a:hover { opacity: .7; }
.nav__num { display: none; }
.nav__burger { display: none; width: 40px; height: 40px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.nav__burger span { display: block; width: 20px; height: 2px; background: #fff; border-radius: 1px; transition: transform .2s, opacity .2s; }
.nav__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 1. Первый экран */
.hero { position: relative; overflow-x: clip; height: 900px; background: linear-gradient(180.66deg, #010200 12.8%, #411506 44.7%, #c25218 85.7%, #f2710b 96%); }
.hero::before { content: ''; position: absolute; inset: 0; background: url(../img/hero-texture.webp) center / cover; opacity: .2; pointer-events: none; }
.hero__stage { position: relative; max-width: 1440px; height: 100%; margin: 0 auto; }
.hero__title { position: absolute; left: 335px; top: 138px; width: 834px; text-align: center; font: italic 700 100px/.98 var(--font-cond); letter-spacing: -.04em; color: #fff; }
.hero__title span { display: block; }
.hero__glass { position: absolute; left: 183px; top: 351px; width: 1097px; max-width: none; pointer-events: none; }
.hero__curve { position: absolute; left: 250px; top: 592px; width: 958px; max-width: none; pointer-events: none; }
.hero__man { position: absolute; z-index: 2; left: 292px; top: 273px; width: 874px; height: 604px; overflow: hidden; filter: drop-shadow(1px 18px 12px rgba(0, 0, 0, .25)); }
.hero__man img { width: 100%; max-width: none; }
.hero__offer { position: absolute; z-index: 3; left: calc(50% - 42px); top: 843px; transform: translateX(-50%); width: 986px; height: 149px; padding: 0 36px 0 45px; border-radius: 24px; background: var(--dark); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.hero__offer p { max-width: 664px; font-size: 24px; line-height: 1.5; color: #fff; }
.hero__offer b { color: var(--orange); }
.hero__offer .btn { width: 210px; flex-shrink: 0; }

/* 2. Симптомы */
.symptoms { padding: 200px 0 100px; }
.symptoms .head { margin-bottom: 56px; }
.symptoms__list { display: flex; justify-content: space-between; gap: 16px; }
.symptom { width: 180px; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.symptom__icon { width: 80px; height: 80px; flex-shrink: 0; }
.symptom__icon--bg { border-radius: 50%; background: var(--orange-soft); display: flex; align-items: center; justify-content: center; }
.symptom__label { font: 500 20px/1.4 var(--font-cond); }

/* 3. Как проходит диагностика */
.process { background: #040403; overflow: hidden; }
.process__inner { position: relative; max-width: 1440px; height: 480px; margin: 0 auto; }
.process__portrait { position: absolute; left: 228px; top: 0; width: 849px; height: 480px; }
.process__portrait img { width: 100%; height: 100%; object-fit: cover; }
.process__copy { position: absolute; left: 62px; top: 70px; width: 610px; display: flex; flex-direction: column; align-items: flex-start; gap: 64px; }
.process__copy .h2 { letter-spacing: -.006em; }
.process__text { max-width: 502px; margin-top: -40px; font-size: 17px; line-height: 1.42; color: var(--light-text); }
.timeline { position: absolute; left: 988px; top: 44px; width: 380px; }
.timeline__line { position: absolute; left: 93px; top: 17px; width: 10px; height: 311px; }
.process__cta { display: none; }
.timeline__step { position: relative; display: grid; grid-template-columns: 80px 1fr; column-gap: 44px; min-height: 132px; }
.timeline__icon { width: 80px; height: 80px; }
.timeline__num { display: block; margin: 6px 0 5px; font-weight: 600; font-size: 17px; line-height: 1.1; color: #ff4f1a; }
.timeline__title { margin-bottom: 8px; font-weight: 600; font-size: 20px; line-height: 1.15; color: #fff; }
.timeline__text { max-width: 260px; font-size: 13px; line-height: 1.35; color: var(--light-text); }

/* 4. Нормы по возрасту */
.norms { padding: 60px 0 100px; }
.norms .head { margin-bottom: 32px; }
.norms__cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.norm { padding: 28px 24px; border: 1px solid var(--border); border-radius: 16px; background: #fff; display: flex; flex-direction: column; gap: 16px; }
.norm__age { font-weight: 500; font-size: 14px; letter-spacing: .02em; color: var(--orange); }
.norm__value { display: flex; flex-direction: column; gap: 4px; font: 700 44px/1 var(--font-cond); white-space: nowrap; }
.norm__value span { font: 400 14px/1.2 var(--font); color: var(--muted); }
.norm__bar { display: block; height: 4px; border-radius: 2px; background: var(--orange-soft); overflow: hidden; }
.norm__bar span { display: block; height: 100%; border-radius: 2px; background: var(--orange); }
.norm__text { font-size: 14px; line-height: 1.45; color: var(--text); }
.norm--accent { background: var(--orange); border-color: var(--orange); color: #fff; }
.norm--accent .norm__age { color: #fff; opacity: .75; }
.norm--accent .norm__value span { color: #fff; opacity: .75; }
.norm--accent .norm__bar { background: rgba(255, 255, 255, .2); }
.norm--accent .norm__bar span { background: #fff; }
.norm--accent .norm__text { color: #fff; opacity: .85; }
.strip { margin-top: 48px; padding: 40px 40px 40px 56px; border-radius: 24px; background: var(--dark); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.strip__copy { max-width: 680px; display: flex; flex-direction: column; gap: 10px; }
.strip__title { font: italic 700 36px/.98 var(--font-cond); color: #fff; }
.strip__text { font-size: 16px; line-height: 1.5; color: var(--light-text); }

/* 5. Эксперт */
.expert { padding: 60px 0 100px; background: var(--beige); }
.expert__inner { display: flex; align-items: stretch; }
.expert__left { width: 720px; flex-shrink: 0; padding: 72px 72px 72px 64px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 32px; }
.expert__text { margin-top: -8px; font-size: 16px; line-height: 1.55; color: var(--text); }
.expert__text b { color: var(--orange); }
.trio { display: flex; align-items: center; }
.trio__item { width: 180px; padding-inline: 16px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.trio__item:first-child { padding-left: 0; }
.trio__item:last-child { padding-right: 0; }
.trio__item b { font-weight: 600; font-size: 16px; color: var(--dark); white-space: nowrap; }
.trio__item span:last-child { font-weight: 500; font-size: 12px; letter-spacing: .02em; color: var(--orange); white-space: nowrap; }
.trio__icon { width: 44px; height: 44px; border-radius: 50%; background: rgba(254, 83, 1, .1); display: flex; align-items: center; justify-content: center; }
.trio__plus { font: 300 28px/1 var(--font-cond); color: rgba(254, 83, 1, .4); }
.expert__right { position: relative; flex: 1; min-height: 480px; border-radius: 24px; overflow: hidden; background: linear-gradient(90deg, #ede8e3, #d9d0c8); }
.expert__photo { position: absolute; left: -.76%; top: -13.54%; width: 101.52%; max-width: none; }
.quote { position: absolute; left: 24px; right: 24px; bottom: 24px; padding: 24px; border-radius: 20px; background: rgba(255, 255, 255, .93); box-shadow: 0 8px 24px rgba(0, 0, 0, .1); }
.quote::before, .quote::after { content: '«'; position: absolute; font: 700 80px/.9 var(--font-cond); color: var(--orange); }
.quote::before { left: 10px; top: -44px; }
.quote::after { content: '»'; right: 10px; top: 42px; }
.quote blockquote { padding-right: 16px; margin-bottom: 12px; font-size: 18px; line-height: 1.25; color: var(--dark); }
.quote figcaption { display: flex; flex-direction: column; gap: 4px; }
.quote figcaption b { font-weight: 700; font-size: 16px; color: var(--dark); }
.quote figcaption span { font-size: 12px; color: var(--text); }

/* 6. О клинике */
.about { padding: 60px 0 100px; }
.welcome { position: relative; height: 484px; border-radius: 24px; overflow: hidden; }
.welcome__img { position: absolute; left: 0; top: -34.57%; width: 100%; max-width: none; }
.welcome::before { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(26, 9, 4, .8), rgba(91, 33, 15, .27) 62%, rgba(0, 0, 0, 0)); }
.welcome__copy { position: relative; z-index: 2; width: 600px; height: 100%; padding: 56px 0 56px 56px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; }
.welcome__text { max-width: 520px; margin-top: 20px; font-size: 16px; line-height: 1.55; color: #f0eae6; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 24px; }
.value { padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: #fff; display: flex; flex-direction: column; gap: 16px; }
.value__icon { width: 44px; height: 44px; border-radius: 50%; background: #fff0e9; display: flex; align-items: center; justify-content: center; }
.value h3 { font: 500 20px/1.2 var(--font-cond); }
.value p { font-size: 15px; line-height: 1.5; color: var(--text-2); }
.visit { margin-top: 24px; min-height: 250px; padding: 32px; border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(26, 10, 4, .1); display: flex; align-items: center; gap: 32px; }
.visit__copy { width: 400px; flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; }
.visit__label { font-weight: 700; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; color: var(--orange); }
.visit__address { font: 600 32px/1.2 var(--font-cond); }
.visit__hours { font-size: 16px; color: var(--text-2); }
.visit__hours span { margin-inline: 4px; }
.visit__map { flex: 1; min-width: 0; height: 190px; border-radius: 16px; overflow: hidden; }
.visit__map img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.visit__map:hover img { transform: scale(1.03); }

/* 7. Врачи */
.doctors { padding: 60px 0 100px; }
.doctors__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.doctors__head .head__text { flex: none; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 32px 0; }
.filter { padding: 9px 20px; border: 1px solid var(--border); border-radius: 100px; background: #fff; font-size: 14px; line-height: 1.2; transition: background .15s, color .15s; }
.filter:hover { border-color: rgba(254, 83, 1, .4); }
.filter.is-active { background: var(--orange); border-color: var(--orange); color: #fff; }
.carousel { max-width: 1440px; margin: 0 auto; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad-x); scrollbar-width: none; cursor: grab; }
.carousel::-webkit-scrollbar { display: none; }
.carousel.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.carousel.is-dragging .doctor { pointer-events: none; }
.carousel__track { display: flex; gap: 32px; width: max-content; padding-inline: var(--pad-x); }
@media (min-width: 1025px) {
  .carousel { max-width: calc(1440px - 2 * var(--pad-x)); margin-inline: max(var(--pad-x), calc((100vw - 1440px) / 2 + var(--pad-x))); scroll-padding-inline: 0; }
  .carousel__track { padding-inline: 0; }
}
.doctor { width: 416px; height: 519px; flex-shrink: 0; scroll-snap-align: start; border: 1px solid var(--border); border-radius: 28px; background: #fff; overflow: hidden; display: flex; flex-direction: column; }
.doctor__photo { position: relative; flex: 1; min-height: 0; overflow: hidden; background: #eae5df; }
.doctor__photo img { position: absolute; left: 5.83%; top: -9.6%; width: 88.33%; max-width: none; user-select: none; }
.doctor--doctorgrekov .doctor__photo img { left: .67%; top: -13.94%; width: 98.65%; }
.doctor__exp { position: absolute; left: 14px; top: 14px; padding: 4px 12px; border: 1px solid rgba(254, 83, 1, .12); border-radius: 100px; background: #fff1e8; font-size: 14px; color: var(--orange); }
.doctor__body { padding: 16px 16px 24px; display: flex; flex-direction: column; align-items: flex-start; }
.doctor__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.tag { padding: 6px 14px; border: 1px solid var(--border); border-radius: 100px; background: var(--orange-soft); font-size: 12px; line-height: 1.2; }
.doctor__name { margin-bottom: 8px; font: 700 20px/1 var(--font-cond); letter-spacing: -.01em; }
.doctor__about { margin-bottom: 24px; font-size: 14px; line-height: 1.4; color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.scrollbar { position: relative; width: 360px; max-width: calc(100% - 32px); height: 4px; margin: 32px auto 0; border-radius: 100px; background: var(--orange-soft); overflow: hidden; }
.scrollbar span { position: absolute; left: 0; top: 0; height: 100%; width: 25%; border-radius: 100px; background: var(--orange); transition: width .2s; }

/* 8. Форма */
.contact { padding-bottom: 100px; }
.contact__card { position: relative; min-height: 757px; padding: 80px; border-radius: 24px; overflow: hidden; background: #f3e4d9; }
.contact__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.contact__form { position: relative; width: 493px; max-width: 100%; }
.contact__title { font: italic 900 52px/.98 var(--font-cond); margin-bottom: 20px; }
.contact__text { margin-bottom: 48px; font-size: 18px; line-height: 1.6; color: var(--text); max-width: 440px; }
.contact__fields { display: flex; flex-direction: column; gap: 24px; margin-bottom: 48px; }
.input { width: 100%; height: 70px; padding: 0 16px; border: 1.5px solid transparent; border-radius: 16px; background: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, .03); font: 400 16px var(--font); color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.input::placeholder { color: rgba(95, 90, 86, .5); }
.input:hover { box-shadow: 0 6px 16px rgba(0, 0, 0, .06); }
.input:focus, .input:focus-visible { outline: 0; border-color: var(--orange); }
.input:-webkit-autofill, .input:-webkit-autofill:hover { -webkit-text-fill-color: var(--ink); -webkit-box-shadow: 0 0 0 100px #fff inset, 0 4px 6px rgba(0, 0, 0, .03); transition: background-color 9999s; }
.input:-webkit-autofill:not(:focus) { border-color: transparent; }
.input.is-error { border-color: #d23c1e; background: #fff6f3; }
.consent { margin-top: 16px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.consent a { color: var(--text); text-decoration: underline; }
.form-error { margin: -32px 0 16px; font-size: 14px; color: #d23c1e; }
.contact__success { display: flex; align-items: center; gap: 16px; margin-top: 24px; padding: 16px 20px; border-radius: 16px; background: #fff; }
.check { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: #fff0e9; color: var(--orange); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; }
.check--lg { width: 56px; height: 56px; font-size: 26px; }

/* 9. Финальный блок */
.final { padding-bottom: 100px; }
.final__card { position: relative; min-height: 267px; padding: 40px 40px 40px 300px; border-radius: 24px; overflow: hidden; background: #110c07; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.final__img { position: absolute; left: 0; top: .1%; width: 54.65%; max-width: none; }
.final__copy { position: relative; max-width: 680px; display: flex; flex-direction: column; gap: 10px; }
.final__title { font: italic 700 52px/.98 var(--font-cond); color: #fff; }
.final__title em { font-style: inherit; color: var(--orange); }
.final__card .btn { position: relative; }

/* Подвал */
.footer { background: linear-gradient(179.15deg, #2a110a 6.3%, #c25218 52%, #f06b18 103.6%); font-family: var(--font-ui); color: #fff; }
.footer__container { max-width: 1440px; margin: 0 auto; padding: 64px 80px 40px; display: flex; flex-direction: column; gap: 32px; }
.footer__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.footer__slogan { display: none; margin-top: 12px; font-size: 14px; line-height: 1.4; color: rgba(255, 255, 255, .47); }
.socials { display: flex; align-items: center; gap: 26px; }
.socials a { transition: opacity .2s; }
.socials a:hover { opacity: .75; }
.footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.footer__legal { display: flex; flex-direction: column; gap: 10px; max-width: 240px; font-size: 9.2px; line-height: 11px; letter-spacing: -.02em; color: rgba(255, 255, 255, .47); }
.footer__links { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; font-size: 14px; line-height: 1.2; color: rgba(255, 255, 255, .75); }
.footer__links a:hover, .footer__contact:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.footer__contacts { display: flex; flex-direction: column; gap: 32px; font-size: 16px; line-height: 20.9px; letter-spacing: -.02em; }
.footer__contact { display: block; margin-bottom: 4px; }
.footer__hint { font-size: 14px; line-height: 15.4px; letter-spacing: 0; color: rgba(255, 255, 255, .47); }
.footer__dev { display: flex; flex-direction: column; gap: 4px; font-size: 13px; line-height: 15.4px; color: rgba(255, 255, 255, .47); }
.footer__disclaimer { padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: 12px; line-height: 1.6; color: rgba(255, 255, 255, .55); }
.footer__warning { margin-top: 8px; font-weight: 700; font-size: 13px; letter-spacing: .02em; color: rgba(255, 255, 255, .85); }

/* Модальное окно */
.modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal__overlay { position: absolute; inset: 0; background: rgba(11, 6, 3, .6); backdrop-filter: blur(4px); animation: fade .2s ease; }
.modal__dialog { position: relative; width: 100%; max-width: 480px; max-height: calc(100vh - 32px); overflow: auto; padding: 44px 40px 36px; border-radius: 24px; background: var(--bg); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .5); animation: pop .25s ease; }
.modal__close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; font-size: 28px; line-height: 1; color: var(--text); }
.modal__close:hover { background: #fff; color: var(--ink); }
.modal__form { display: flex; flex-direction: column; gap: 16px; }
.modal__form .input { height: 60px; }
.modal__form .form-error { margin: 0; }
.modal__form .consent { margin-top: 0; font-size: 13px; }
.modal__title { padding-right: 24px; font: italic 900 40px/.98 var(--font-cond); }
.modal__text { margin-bottom: 8px; font-size: 16px; line-height: 1.5; color: var(--text); }
.modal__text a { color: var(--orange); font-weight: 600; }
.modal__success { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
body.is-locked { overflow: hidden; }
@keyframes fade { from { opacity: 0; } }
@keyframes pop { from { opacity: 0; transform: translateY(16px) scale(.98); } }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  *, *::before, *::after { animation: none !important; }
}

/* ---------- Адаптив ---------- */

/* Первый экран и тёмный блок сверстаны абсолютно под 1440 — на меньших экранах масштабируем сцену */
@media (max-width: 1439px) and (min-width: 1025px) {
  .hero { height: calc(900 / 1440 * 100vw); }
  .hero__stage { width: 1440px; height: 900px; transform: scale(var(--k, 1)); transform-origin: 0 0; }
  .symptoms { padding-top: calc(200 / 1440 * 100vw); }
  .process__inner { width: 1440px; transform: scale(var(--k, 1)); transform-origin: 0 0; }
  .process { height: calc(480 / 1440 * 100vw); }
}

@media (max-width: 1280px) {
  .head__title { width: 55%; }
  .expert__left { width: 55%; padding: 48px 40px 48px 0; }
  .trio__item { width: auto; min-width: 120px; }
  .final__card { padding-left: 38%; }
  .footer__container { padding-inline: var(--pad-x); }
}

@media (max-width: 1024px) {
  .nav__bar { height: 72px; padding: 0 16px 0 20px; border-radius: 0; background: rgba(60, 50, 44, .55); }
  .nav.is-scrolled .nav__bar { height: 64px; }
  .logo { font-size: 20px; }
  .nav__burger { display: flex; }
  .nav__links { position: fixed; top: 72px; left: 0; right: 0; height: calc(100vh - 72px); height: calc(100dvh - 72px); padding: 64px 32px 32px; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 20px; background: radial-gradient(120% 60% at 0% 40%, rgba(194, 82, 24, .35), transparent 60%), #0e0806; opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; }
  .nav.is-scrolled .nav__links { top: 64px; }
  .nav.is-open .nav__links { opacity: 1; visibility: visible; }
  .nav.is-open .nav__bar { background: rgba(60, 50, 44, .95); }
  .nav__links > a { display: flex; align-items: center; gap: 24px; padding-left: 12px; border-left: 3px solid rgba(255, 255, 255, .15); font: 700 32px/1.2 var(--font); color: #e8e3df; }
  .nav__num { display: inline; width: 24px; font-size: 14px; font-weight: 500; color: rgba(255, 255, 255, .45); }
  .nav__links .btn { margin-top: 36px; height: 56px; background: var(--orange); font-size: 18px; }

  .h2 { font-size: 40px; }
  .head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .head__title, .head__title--narrow { width: auto; }

  .hero { height: auto; }
  .hero__stage { height: auto; padding: 104px var(--pad-x) 0; display: flex; flex-direction: column; align-items: center; }
  .hero__title { position: relative; left: auto; top: auto; width: auto; max-width: 640px; font-size: clamp(38px, 8.5vw, 72px); }
  .hero__glass { left: 50%; top: 42%; width: 110%; transform: translateX(-50%); opacity: .6; }
  .hero__curve { left: 50%; top: 58%; width: 110%; transform: translateX(-50%); }
  .hero__man { position: relative; left: auto; top: auto; width: min(874px, 118%); height: auto; aspect-ratio: 874 / 604; margin-top: -3%; }
  .hero__offer { position: relative; left: auto; top: auto; transform: none; width: 100%; max-width: 760px; height: auto; margin: -24px 0 -80px; padding: 24px; flex-direction: column; align-items: stretch; gap: 20px; }
  .hero__offer p { font-size: 18px; }
  .hero__offer .btn { width: 100%; }
  .symptoms { padding-top: 140px; }
  .symptoms__list { display: grid; grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
  .symptom { width: auto; }

  .process__inner { height: auto; padding: 64px var(--pad-x); display: flex; flex-direction: column; gap: 32px; }
  .process__copy, .process__portrait, .timeline { position: relative; left: auto; top: auto; width: 100%; }
  .process__copy { order: -1; gap: 32px; }
  .process__copy .btn { display: none; }
  .process__text { margin-top: -8px; }
  .process__portrait { height: 360px; border-radius: 16px; overflow: hidden; }
  .timeline { max-width: 520px; }
  .timeline__text br { display: none; }
  .process__cta { display: flex; align-self: flex-start; }

  .norms__cards { grid-template-columns: repeat(3, 1fr); }
  .strip { flex-direction: column; align-items: flex-start; padding: 32px; }

  .expert__inner { flex-direction: column; gap: 24px; }
  .expert__left { width: 100%; padding: 0; }
  .expert__right { min-height: 520px; }

  .welcome__copy { width: 100%; padding: 40px; }
  .visit { flex-direction: column; align-items: stretch; }
  .visit__copy { width: auto; }
  .visit__map { flex: none; height: 240px; }

  .contact__card { padding: 48px 40px 360px; }
  .contact__bg { object-position: 80% 50%; }
  .final__card { padding: 220px 32px 32px; flex-direction: column; align-items: flex-start; }
  .final__img { width: 100%; top: -30%; }
  .footer__cols { grid-template-columns: 1fr 1fr; row-gap: 40px; }
}

@media (max-width: 640px) {
  html { scroll-padding-top: 80px; }
  .h2 { font-size: 32px; letter-spacing: -.01em; }
  .btn--lg { width: 100%; height: 48px; font-size: 16px; }
  .btn--xl { font-size: 17px; }
  .nav__links > a { font-size: 30px; }

  .hero__stage { padding-top: 96px; }
  .hero__title { font-size: 36px; }
  .hero__man { width: 128%; }
  .hero__offer { margin-bottom: -96px; padding: 20px 16px 16px; }
  .hero__offer p { font-size: 15px; }
  .symptoms { padding: 136px 0 64px; }
  .symptoms .head { margin-bottom: 40px; }
  .head__text { font-size: 14px; }
  .symptoms__list { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .symptom { gap: 12px; }
  .symptom__icon { width: 64px; height: 64px; }
  .symptom__label { font-size: 16px; }

  .process__inner { padding-block: 56px; }
  .process__text { font-size: 15px; }
  .process__portrait { height: 300px; }
  .timeline__line { display: none; }
  .timeline__step { grid-template-columns: 64px 1fr; column-gap: 16px; min-height: 0; padding-bottom: 24px; }
  .timeline__icon { width: 64px; height: 64px; }
  .timeline__num { margin-top: 0; }
  .process__cta { align-self: stretch; }

  .norms { padding: 48px 0 64px; }
  .norms__cards { grid-template-columns: 1fr; gap: 12px; }
  .norm { padding: 20px; gap: 12px; }
  .norm__value { font-size: 36px; }
  .strip { margin-top: 24px; padding: 24px 16px 16px; }
  .strip__title { font-size: 28px; }
  .strip__text { font-size: 14px; }

  .expert { padding: 56px 0 48px; }
  .trio { flex-direction: column; gap: 4px; align-self: center; }
  .trio__item { padding: 0; }
  .expert__left { align-items: flex-start; }
  .expert__left .btn { width: 100%; }
  .expert__right { min-height: 420px; }
  .quote { left: 12px; right: 12px; bottom: 12px; padding: 20px 16px 16px; }
  .quote blockquote { font-size: 15px; }

  .about { padding: 48px 0 64px; }
  .welcome { height: auto; min-height: 520px; }
  .welcome__img { top: auto; bottom: 0; height: 60%; object-fit: cover; }
  .welcome::before { background: linear-gradient(180deg, rgba(26, 9, 4, .92) 30%, rgba(91, 33, 15, .3) 75%, rgba(0, 0, 0, .1)); }
  .welcome__copy { min-height: 520px; padding: 24px 16px 16px; }
  .welcome__text { font-size: 14px; }
  .values { grid-template-columns: 1fr; gap: 12px; }
  .visit { padding: 20px 16px 16px; gap: 20px; }
  .visit__address { font-size: 24px; }
  .visit__hours { font-size: 14px; }

  .doctors { padding: 48px 0 64px; }
  .doctors__head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .doctors__head .head__text br { display: none; }
  .filters { margin: 20px 0 24px; }
  .filter { padding: 8px 14px; font-size: 13px; }
  .carousel__track { gap: 12px; }
  .doctor { width: min(328px, calc(100vw - 48px)); height: 480px; border-radius: 20px; }

  .contact { padding-bottom: 64px; }
  .contact__card { padding: 24px 16px 300px; min-height: 0; }
  .contact__bg { top: auto; bottom: 0; height: 340px; object-position: 78% 100%; -webkit-mask-image: linear-gradient(transparent, #000 30%); mask-image: linear-gradient(transparent, #000 30%); }
  .contact__title { font-size: 32px; margin-bottom: 12px; }
  .contact__text { font-size: 15px; margin-bottom: 24px; }
  .contact__fields { gap: 12px; margin-bottom: 24px; }
  .input { height: 54px; border-radius: 12px; }
  .form-error { margin: -12px 0 12px; }
  .consent { font-size: 12px; }

  .final { padding-bottom: 64px; }
  .final__card { padding: 280px 16px 16px; }
  .final__img { width: 175%; left: -6%; top: 0; }
  .final__card::before { content: ''; position: absolute; left: 0; right: 0; top: 190px; height: 150px; background: linear-gradient(transparent, #110c07 85%); }
  .final__title { font-size: 34px; }
  .final__card .btn { width: 100%; height: 48px; font-size: 16px; }

  .footer__container { padding: 40px var(--pad-x) 32px; gap: 28px; }
  .footer__top { align-items: flex-start; }
  .logo--footer { font-size: 24px; }
  .footer__slogan { display: block; }
  .socials { gap: 12px; }
  .socials img { width: 24px; height: auto; }
  .footer__cols { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .footer__legal { grid-column: 1 / -1; order: -1; max-width: none; }
  .footer__links { gap: 20px; }
  .footer__contacts { grid-column: 1 / -1; gap: 20px; }
  .modal { align-items: flex-end; padding: 0; }
  .modal__dialog { max-width: none; border-radius: 20px 20px 0 0; padding: 32px 16px 20px; }
  .modal__title { font-size: 32px; }
}

/* Юридические страницы */
.legal-page .nav__bar { height: 76px; background: rgba(26, 12, 6, .92); }
.legal-page__back { height: auto; }
.legal { max-width: 920px; padding-top: 140px; padding-bottom: 80px; }
.legal__crumbs { font-size: 14px; color: var(--text); margin-bottom: 16px; }
.legal__crumbs a { text-decoration: underline; text-underline-offset: 3px; }
.legal .h2 { margin-bottom: 32px; }
.legal__body { font-size: 16px; line-height: 1.6; }
.legal__body h2 { margin: 32px 0 12px; font: 600 22px/1.3 var(--font); }
.legal__body p, .legal__body ul { margin-bottom: 12px; }
.legal__body ul { padding-left: 22px; list-style: disc; }
.legal__body li { margin-bottom: 6px; }
.legal__body a { text-decoration: underline; }
.legal-page .footer__disclaimer { max-width: 1440px; margin: 0 auto; padding: 24px var(--pad-x); border: 0; text-align: center; }
.legal-page .footer__disclaimer a { color: inherit; }
@media (max-width: 1024px) { .legal-page .nav__bar { height: 64px; } .legal { padding-top: 104px; } }
