* {
  font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  width: 100%;
  background: #FFFFFF;
}

body {
  font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: #FFFFFF;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}

img {
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
  pointer-events: auto;
}

::-webkit-scrollbar {
  width: 7px;
  background: #fff;
}

::-webkit-scrollbar-thumb {
  background: #27CAFC;
  -webkit-border-radius: 100px;
  border: 1px solid #27CAFC;
}

::-webkit-scrollbar-thumb:hover {
  background: #276EFC;
  -webkit-border-radius: 1px;
  border: 1px solid #f2911c;
}

/* ============================================
   Централизованное управление шрифтами
   ============================================ */

:root {
    /* Fluid helper: 60px from Figma => calc(60 * var(--fluid-unit)) */
    --fluid-screen-width: 1920;
    --fluid-unit: min(calc(100vw / var(--fluid-screen-width)), 1px);

    /* Основные размеры заголовков */
    --font-size-h1: 2.35vw; /* Главные заголовки секций */
    --font-size-h1-5: 2.09vw; /* Главные заголовки секций */
    --font-size-h2-5: 2.188vw; /* Промежуточный размер */
    --font-size-h3: 1.667vw; /* Заголовки третьего уровня */
    --font-size-h3-5: 2.083vw; /* Промежуточный размер */
    --font-size-h4: 1.563vw; /* Заголовки четвертого уровня */
    --font-size-h4-5: 1.875vw; /* Промежуточный размер */
    --font-size-h5: 1.458vw; /* Заголовки пятого уровня */
    --font-size-h6: 1.302vw; /* Заголовки шестого уровня */
    --font-size-h7: 1.25vw; /* Малые заголовки */
    --font-size-h8: 1.144vw; /* Очень малые заголовки */
    --font-size-h9: 1.042vw; /* Минимальные заголовки */
    --font-size-h9-5: 0.99vw; /* Промежуточный размер */
    --font-size-16: 0.833vw;
    --font-size-18: 0.875vw;
    --font-size-26: 1.354vw;

    /* Основные размеры текста */
    --font-size-body: 0.938vw; /* Обычный текст */
    --font: 0.938vw; /*для отдельных случаев*/
    --font-size-body-medium: 0.833vw; /* Средний текст */
    --font-size-body-small: 0.729vw; /* Малый текст */
    --font-size-body-xs: 0.677vw; /* Очень малый текст */
    --font-size-body-xxs: 0.729vw; /* Минимальный текст */
    --font-size-body-small-2: 0.781vw; /* Промежуточный малый текст */

    /* Размеры для кнопок */
    --font-size-button: 0.677vw; /* Основная кнопка */
    --font-size-button-secondary: 0.625vw; /* Второстепенная кнопка */

    /* Веса шрифтов */
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Высоты строк */
    --line-height-tight: 1.2;
    --line-height-normal: 1.4;
    --line-height-relaxed: 1.5;
    --line-height-loose: 1.6;
    --line-height-100: 100%;
    --line-height-120: 120%;
    --line-height-21: 1.098vw;
    --line-height-23: 1.198vw;
    --line-height-25: 1.302vw;
    --line-height-26: 1.354vw;
    --line-height-28: 1.458vw;
    --line-height-33: 1.719vw;
    --line-height-35: 1.819vw;
    --line-height-40: 2.083vw;
    --line-height-60: 3.125vw;
    --line-height-70: 3.646vw;
}

/* ============================================
   УТИЛИТАРНЫЕ КЛАССЫ ДЛЯ БЫСТРОГО ПРИМЕНЕНИЯ
   ============================================ */

/* Заголовки */
.text-h1 {
    font-size: 2.35vw;
    font-size: var(--font-size-h1);
}

.text-h2-5 {
    font-size: 2.188vw;
    font-size: var(--font-size-h2-5);
}

.text-h3 {
    font-size: 1.667vw;
    font-size: var(--font-size-h3);
}

.text-h3-5 {
    font-size: 2.083vw;
    font-size: var(--font-size-h3-5);
}

.text-h4 {
    font-size: 1.563vw;
    font-size: var(--font-size-h4);
}

.text-h4-5 {
    font-size: 1.875vw;
    font-size: var(--font-size-h4-5);
}

.text-h5 {
    font-size: 1.458vw;
    font-size: var(--font-size-h5);
}

.text-h6 {
    font-size: 1.302vw;
    font-size: var(--font-size-h6);
}

.text-h7 {
    font-size: 1.25vw;
    font-size: var(--font-size-h7);
}

.text-h8 {
    font-size: 1.144vw;
    font-size: var(--font-size-h8);
}

.text-h9 {
    font-size: 1.042vw;
    font-size: var(--font-size-h9);
}

.text-h9-5 {
    font-size: 0.99vw;
    font-size: var(--font-size-h9-5);
}

/* Текст */
.text-body {
    font-size: 0.938vw;
    font-size: var(--font-size-body);
}

.text-body-medium {
    font-size: 0.833vw;
    font-size: var(--font-size-body-medium);
}

.text-body-small {
    font-size: 0.729vw;
    font-size: var(--font-size-body-small);
}

.text-body-xs {
    font-size: 0.677vw;
    font-size: var(--font-size-body-xs);
}

.text-body-xxs {
    font-size: 0.729vw;
    font-size: var(--font-size-body-xxs);
}

.text-body-small-2 {
    font-size: 0.781vw;
    font-size: var(--font-size-body-small-2);
}

/* Кнопки */
.text-button {
    font-size: 0.677vw;
    font-size: var(--font-size-button);
}

.text-button-secondary {
    font-size: 0.625vw;
    font-size: var(--font-size-button-secondary);
}

/* Веса */
.font-light {
    font-weight: 300;
    font-weight: var(--font-weight-light);
}

.font-regular {
    font-weight: 400;
    font-weight: var(--font-weight-regular);
}

.font-medium {
    font-weight: 500;
    font-weight: var(--font-weight-medium);
}

.font-semibold {
    font-weight: 600;
    font-weight: var(--font-weight-semibold);
}

.font-bold {
    font-weight: 700;
    font-weight: var(--font-weight-bold);
}

/* Высоты строк */
.leading-tight {
    line-height: 1.2;
    line-height: var(--line-height-tight);
}

.leading-normal {
    line-height: 1.4;
    line-height: var(--line-height-normal);
}

.leading-relaxed {
    line-height: 1.5;
    line-height: var(--line-height-relaxed);
}

.leading-loose {
    line-height: 1.6;
    line-height: var(--line-height-loose);
}

.leading-100 {
    line-height: 100%;
    line-height: var(--line-height-100);
}

.leading-120 {
    line-height: 120%;
    line-height: var(--line-height-120);
}

.leading-33 {
    line-height: 1.719vw;
    line-height: var(--line-height-33);
}

.leading-40 {
    line-height: 2.083vw;
    line-height: var(--line-height-40);
}

.leading-60 {
    line-height: 3.125vw;
    line-height: var(--line-height-60);
}
  
  

.header {
    width: 100%;
    margin: 0 auto;
    background: transparent;
    padding: 1.04vw 0 calc(100 * var(--fluid-unit)) 0;
    position: relative;
    overflow: visible;
}

.header-center-card {
    position: absolute;
    top: 10%;
    left: 89%;
    width: 100%;
    max-width: 19.79vw;
    background: #EBEBEB;
    border-radius: 1.04vw;
    padding: 0.52vw 1.3vw 1.04vw 1.3vw;
    z-index: 10;
}

.header-center-item {
    display: flex;
    align-items: flex-start;
    gap: 0.78vw;
    padding: 0.52vw 0;
    cursor: pointer;
}

.header-center-icon {
    flex-shrink: 0;
    margin-top: 0.21vw;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 0.68vw;
    height: 0.68vw;
}

.header-center-icon svg {
    width: 100%;
    height: 100%;
}

.header-center-content {
    flex: 1 1;
    text-align: left;
}

.header-center-title {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: #000000;
    font-family: 'Geist', sans-serif;
    margin-bottom: 0.21vw;
    text-align: left;
}

.header-center-description {
    font-size: var(--font-size-body-small);
    font-weight: 300;
    color: #1A1A1ABF;
    font-family: 'Geist', sans-serif;
    line-height: 1.4;
    text-align: left;
}

.header-center-arrow {
    margin-top: 0.52vw;
    flex-shrink: 0;
    width: 0.94vw;
    height: 0.89vw;
}

.header-center-arrow svg {
    width: 100%;
    height: 100%;
    transition: transform 0.3s ease;
}

.header-center-item:hover .header-center-arrow svg {
    /*transform: rotate(40deg);*/
}

.header-center-divider {
    height: 0.052vw;
    background: #1a1a1a59;
    margin: 0;
    transform: scaleY(0.5);
    transform-origin: center;
}

.header-container {
    max-width: 100%;
    margin: 0 auto;
    padding: 0vw 10% 0.78vw 10%;
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    background: transparent;
    overflow: visible;
}

.header-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.0vw;
    /* gap: 1.56vw; */
    width: 100%;
    overflow: visible;
    position: relative;
    background: transparent;
}


.header-logo {
    flex-shrink: 0;
}

.header-logo img {
    height: 2.4vw;
    width: 7.6vw;
}

.header-clinic-info {
    flex-shrink: 0;
    transform: translateX(-1vw);
}

.header-clinic-text {
    text-align: left;
    font-size: var(--font-size-body);
    color: #1A1A1ABF;
    font-weight: 300;
}

.header-location {
    display: flex;
    align-items: center;
    gap: 0.63vw;
    flex-shrink: 0;
    transform: translateX(-2vw);
}

.header-metro-icon {
    flex-shrink: 0;
}

.header-metro-icon img {
    width: 1.25vw;
    height: 1.46vw;
    margin-bottom: 0.52vw;
}

.header-address {
    display: flex;
    flex-direction: column;
}

.header-metro-text {
    text-align: left;
    font-size: var(--font-size-body);
    font-weight: 500;
    color: #000000;
    line-height: 1.2;
}

.header-street {
    text-align: left;
    font-size: var(--font-size-body-xxs);
    font-weight: 300;
    color: #1A1A1ABF;
    line-height: 1.2;
}

.header-calculator-btn {
    display: flex;
    align-items: center;
    gap: 1.3vw;
    padding: 1.04vw 1.6vw;
    border: 0.052vw solid #485B85;
    border-radius: 2.6vw;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    background: #485B85;

    transform: translate(-4vw, -00.21vw)
}

.header-calculator-btn:hover {
    background: #FFFFFF;
}

.header-calculator-btn span {
    font-size: var(--font-size-button);
    color: #FFFFFF;
    font-weight: 500;
    line-height: 0.94vw;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
}

.header-calculator-btn:hover span {
    transform: translateX(min(2.0vw, 4.8vw));
    color: #485B85;
}

.header-calculator-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
    width: 0.63vw;
    height: 0.57vw;
}

.header-calculator-btn-icon svg {
    width: 100%;
    height: 100%;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.header-calculator-btn-icon svg {
    width: 100%;
    height: 100%;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.header-nav-wrapper {
    position: relative;
}

.header-nav-anchor {
    height: 0;
    transition: height 0.3s ease;
}

.header-nav {
    width: 100%;
    background: #FFF;
    border-radius: 0.55vw;
    position: relative;
    transition: margin-top 0.5s ease;
}

.header-nav.fixed {
    position: fixed;
    top: 0.52vw;
    left: 0;
    right: 0;
    z-index: 1000;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 10%;
    box-sizing: border-box;
    background: transparent;
}

.header-nav.fixed .header-nav-container {
    width: 100%;
    background: #FFF;
    border-radius: 0.55vw;
}

.header-nav-container {
    width: 100%;
    padding: 1.1vw 1.56vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.6vw;
    flex-wrap: wrap;
    background: rgba(235, 235, 235, 0.3);
    border-radius: 0.55vw;
}

.header-nav-item {
    display: flex;
    align-items: center;
    line-height: 1.55;
    gap: 0.7vw;
    font-size: var(--font-size-body);
    font-weight: 500;
    color: rgba(26, 26, 26, 0.75);
    text-decoration: none;
    font-family: 'Geist', sans-serif;
    transition: color 0.3s ease;
    cursor: pointer;
    position: relative;
    white-space: nowrap;
}

.header-nav-item:hover {
    color: #485B85;
}

.header-nav-item svg {
    width: 1.25vw;
    height: 1.25vw;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.header-nav-item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25vw;
    height: 1.25vw;
    flex-shrink: 0;
}

.header-nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #485B85;
    color: #FFFFFF;
    font-size: 0.65vw;
    font-weight: 500;
    padding: 0.24vw 0.52vw;
    border-radius: 0.52vw;
    line-height: 1;
}

.header-calculator-btn-icon svg path {
    transition: fill 0.3s ease;
    fill: #FFFFFF;
}

.header-calculator-btn:hover .header-calculator-btn-icon svg {
    transform: translateX(max(-12.35vw, calc(-10% - 20.04vw))) rotate(40deg);
}

.header-calculator-btn:hover .header-calculator-btn-icon svg path {
    fill: #485B85;
}

/* Эффект блика для кнопки калькулятора */
.header-calculator-btn .flare {
    position: absolute;
    top: 0;
    height: 100%;
    width: 45px;
    transform: skewX(-45deg);
    animation: flareAnimation 3s infinite;
    left: -170%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);
    filter: blur(0px);
    z-index: 1;
    pointer-events: none;
}

.header-contact-wrapper {
    display: flex;
    align-items: center;
    gap: 0.26vw;
    flex-shrink: 0;
    position: relative;
    overflow: visible;
}

@keyframes swing {
    0%, 100% {
        transform: rotate(-20deg);
    }
    50% {
        transform: rotate(30deg);
    }
}

@keyframes pulse {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        transform: scale(0.55);
        opacity: 0;
    }
}

@keyframes pulse-border-phone {
    0% {
        transform: translate(-50%, -50%) translateZ(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) translateZ(0) scale(1.5);
        opacity: 0;
    }
}

.header-phone-icon {
    width: 2.86vw;
    height: 2.86vw;
    border-radius: 50%;
    background: #485B85;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 100;
    overflow: visible;
    box-sizing: content-box;
}

.header-phone-icon:hover::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 2.86vw;
    height: 2.86vw;
    background: #485B85;
    border-radius: 50%;
    animation: pulse-border-phone 1500ms ease-out infinite;
}

.header-phone-icon:hover::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 2.86vw;
    height: 2.86vw;
    /*background: #485B85;*/
    border-radius: 50%;
    transition: all 200ms;
    background-color: rgba(72, 91, 133, 0.9);
}

.header-phone-icon svg {
    width: 1.04vw;
    height: 1.04vw;
    transform-origin: center;
    animation: swing 2s ease-in-out infinite;
    position: relative;
    z-index: 3;
}

.header-phone-icon-fixed {
    /*width: 58px;*/
    /*height: 58px;*/
    width: 4vw;
    height: 4vw;
    border-radius: 50%;
    background: #485B85;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 1vw;

    /* ФИКС: Делаем значение еще меньше, чтобы сдвинуть кнопку ПРАВЕЕ */
    right: 0.6vw ;
    /*right: 12px ;*/

    z-index: 1000;
    overflow: visible;
    cursor: pointer;
    box-shadow: 0 0.26vw 0.78vw rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-sizing: content-box;
}

.header-phone-icon-fixed:hover {
    transform: scale(1.1);
}

.header-phone-icon-fixed:hover::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4vw;
    height: 4vw;
    background: #485B85;
    border-radius: 50%;
    animation: pulse-border-phone 1500ms ease-out infinite;
}

.header-phone-icon-fixed:hover::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4vw;
    height: 4vw;
    background: #485B85;
    border-radius: 50%;
    transition: all 200ms;
    /*background-color: rgba(72, 91, 133, 0.9);*/
}

.header-phone-icon-fixed svg {
    width: 1.46vw;
    height: 1.46vw;
    /*width: 22px;*/
    /*height: 22px;*/
    transform-origin: center;
    animation: swing 2s ease-in-out infinite;
    position: relative;
    z-index: 3;
}

.header-contact-block {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.78vw;
    padding: 0.21vw 0.23vw 0.21vw 1.56vw;
    background: #EBEBEB;
    border-radius: 2.6vw;
    flex-shrink: 0;
    margin-right: 0.26vw;
}

.header-phone-info {
    display: flex;
    flex-direction: column;
}

.header-phone-number {
    text-align: right;
    font-size: 1.04vw;
    font-weight: 500;
    color: #000000;
    line-height: 0.94vw;
}

.header-phone-hours {
    font-size: var(--font-size-body-xxs);
    color: #1A1A1ABF;
    line-height: 100%;
    text-align: right;
    margin-top: 0.26vw;
    font-weight: 300;
    position: relative;
}

.header-avatar {
    width: 2.6vw;
    height: 2.6vw;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.header-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.header-menu-btn {
    display: flex;
    align-items: center;
    gap: 0.52vw;
    padding: 0.83vw 1.51vw 0.83vw 1.51vw;
    border-radius: 2.6vw;
    background: #485B85;
    border: 0.063vw solid #2E3D58;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.header-menu-btn span {
    font-size: var(--font-size-body);
    color: #FFFFFF;
    font-weight: 500;
}

.header-menu-icons {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.header-menu-icons svg {
    width: 1.56vw;
    height: 0.78vw;
}

.header-menu-bottom-line {
    transform-origin: left center;
    transition: transform 0.3s ease;
}

.header-menu-btn:hover {
    background: #FFFFFF;
    border-color: #485B85;
}

.header-menu-btn:hover span {
    color: #485B85;
}

.header-menu-btn:hover .header-menu-icons svg rect {
    fill: #485B85;
}

.header-menu-btn:hover .header-menu-bottom-line {
    transform: scaleX(1.2) translateX(-0.25vw);
}

.header_nuv {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 2.6vw;
    /*padding: 0 10% 0 10%;*/
    padding: 0 2.6vw 0 2.6vw;
}

.header_nuv-left {
    flex: 0 0 42vw;
    position: relative;
}

.header_nuv-left-text {
    width: 38.02vw;
    font-weight: 700;
    font-size: 2.61vw;
    line-height: 3.925vw;
    color: #000000;
    text-align: left;
    text-transform: uppercase;
}

.header_nuv-left-text span {
    color: #485B85;
    text-decoration: underline;
    text-decoration-thickness: 0.16vw;
    text-underline-offset: 0.26vw;
}

.header_nuv-left-text-description {
    width: 30.21vw;
    font-weight: 300;
    font-size: var(--font-size-h8);
    line-height: 1.72vw;
    text-align: left;
    color: #1A1A1ABF;
    margin-top: 0.78vw;
}

.header_nuv-left-buttons {
    display: flex;
    gap: 0.78vw;
    margin-top: 1.56vw;
    align-items: center;
}

.header_nuv-btn {
    padding: 1.46vw 2.08vw;
    border-radius: 2.6vw;
    font-weight: 600;
    border: none;
    font-size: var(--font-size-body-xxs);
    font-weight: 500;
    line-height: 0.99vw;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    font-family: 'Geist', sans-serif;
}

.header_nuv-btn-1 {
    padding: 0.31vw 0.31vw 0.31vw 1.56vw;
    border-radius: 2.6vw;
    border: 0.052vw solid #2E3D58;
    font-weight: 700;
    font-size: var(--font-size-button);
    line-height: 0.89vw;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 1.56vw;
    font-family: 'Geist', sans-serif;
    position: relative;
    overflow: hidden;
}

.header_nuv-btn-secondary {
    background: #E2E2E2B2 ;
    color: #000000;
    border: 0.052vw solid #E0E0E0;
}

.header_nuv-btn-secondary:hover {
    background: #FFFFFF;
}

.header_nuv-btn-primary {
    background: #485B85;
    color: #FFFFFF;
}

.header_nuv-btn-primary span {
    color: #FFFFFF;
    transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.header_nuv-btn-primary:hover span {
    color: #485B85;
    transform: translateX(min(3.65vw, 15.31vw));
}

.header_nuv-btn-icon {
    width: calc(60 * var(--fluid-unit));
    height: calc(60 * var(--fluid-unit));
    border-radius: 50%;
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.header_nuv-btn-icon svg {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.header_nuv-btn-1:hover .header_nuv-btn-icon svg {
    transform: translateX(max(-10.1vw, calc(-10% - 15.56vw))) rotate(40deg);
}

.header_nuv-btn-1::after {
    content: '';
    position: absolute;
    right: 0.31vw;
    top: 50%;
    transform: translateY(-50%);
    width: calc(60 * var(--fluid-unit));
    height: calc(60 * var(--fluid-unit));
    border-radius: 50%;
    background: #FFFFFF;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
    pointer-events: none;
}

.header_nuv-btn-1:hover::after {
    width: 41.67vw;
    height: 41.67vw;
    right: -20.83vw;
    top: 50%;
    transform: translateY(-50%);
}

.header_nuv-btn-1 span {
    position: relative;
    z-index: 3;
}

.header_nuv-btn-icon svg {
    width: 0.73vw;
    height: 0.63vw;
}

/* Эффект блика для кнопки "Записаться на приём" */
.header_nuv-btn-1 .flare {
    position: absolute;
    top: 0;
    height: 100%;
    width: 45px;
    transform: skewX(-45deg);
    animation: flareAnimation 3s infinite;
    left: -170%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);
    filter: blur(0px);
    z-index: 1;
    pointer-events: none;
}

@keyframes flareAnimation {
    0% {
        left: -170%;
    }
    50% {
        left: 170%;
    }
    100% {
        left: 170%;
    }
}

.header_nuv-left-about {
    display: flex;
    align-items: center;
    gap: 0.78vw;
    margin-top: 2.6vw;
}

.header_nuv-tooth-icon {
    width: 1.56vw;
    height: 1.56vw;
    border-radius: 50%;
    background: #485B85;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.header_nuv-tooth-icon svg {
    width: 0.78vw;
    height: 0.73vw;
}

.header_nuv-about-text {
    font-size: var(--font-size-body);
    font-weight: 300;
    color: #1A1A1ABF;
    font-family: 'Geist', sans-serif;
}

.header_nuv-ratings {
    display: flex;
    gap: 0.52vw;
    margin-top: 2.6vw;
    align-items: center;
}


.header_nuv-rating-card {
    height: 3.5vw;
    background: #FFFFFF;
    border: 1px solid rgba(215, 215, 215, 1);
    /* box-shadow: 0 0 0 0.026vw rgba(235, 235, 235, 1); */
    border-radius: 0.63vw;
    padding: 0.63vw;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.42vw;
    transition: transform 0.3s ease;
    cursor: pointer;
    text-decoration: none;
}

.header_nuv-rating-card:hover {
    transform: scale(1.05);
}

.header_nuv-rating-icon {
    width: auto;
    height: 1.09vw;
    object-fit: contain;
    flex-shrink: 0;
    align-self: flex-start;
}

.header_nuv-rating-logo-text {
    font-size: var(--font-size-h9);
    font-weight: 700;
    color: #2E3D58;
    font-family: 'Geist', sans-serif;
    flex-shrink: 0;
    line-height: 1;
}

.header_nuv-rating-content {
    display: flex;
    flex-direction: column;
    gap: 0.21vw;
    align-items: flex-start;
    width: 100%;
}

.header_nuv-rating-title {
    font-size: var(--font-size-body-small);
    font-weight: 600;
    color: #000000;
    font-family: 'Geist', sans-serif;
    line-height: 1.2;
}

.header_nuv-rating-stars {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.21vw;
}

.header_nuv-rating-value {
    font-size: var(--font);
    font-weight: 700;
    color: #000000;
    font-family: 'Geist', sans-serif;
    margin-right: 0.21vw;
}

.header_nuv-rating-stars svg {
    width: 0.94vw;
    height: 0.89vw;
    flex-shrink: 0;
}

.header_nuv-right {
    flex: 1 1;
    display: flex;
    justify-content: flex-start;
    margin-top: 1.15vw;
}

.header_nuv > div:last-child {
    flex: 1 1;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    align-self: stretch;
}

.header_nuv-doctor-image {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 1.04vw;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
}

.header_nuv-doctor-image img {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 47.45vw;
    display: block;
    object-fit: cover;
    object-position: center 30%;
    border-radius: 1.04vw;
}

.header_nuv-carousel-wrapper {
    display: flex;
    align-items: center;
    gap: 1.56vw;
}

.header_nuv-carousel {
    position: relative;
    width: 100%;
    height: 15.63vw;
    overflow: hidden;
    border-radius: 1.56vw;
}

.header_nuv-carousel-slides {
    display: flex;
    height: 100%;
}

.header_nuv-carousel-slide {
    width: 100%;
    min-width: 100%;
    height: 100%;
    flex-shrink: 0;
}

.header_nuv-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease-in-out;
}

.header_nuv-carousel-dots-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    padding: 0.21vw 0;
}

.header_nuv-carousel-line {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 0.42vw;
    background: linear-gradient(180deg, #485B85 0%, rgba(72, 91, 133, 0.8) 100%);
    border-radius: 0.1vw;
    z-index: 0;
    pointer-events: none;
    box-shadow: 0 0 0.21vw rgba(72, 91, 133, 0.3);
    opacity: 0;
}

.header_nuv-carousel-line-animating {
    animation: slideLine 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes slideLine {
    0% {
        top: 0.52vw;
        top: var(--prev-top, 0.52vw);
        opacity: 1;
    }
    100% {
        top: 0.52vw;
        top: var(--current-top, 0.52vw);
        opacity: 1;
    }
}

.header_nuv-carousel-dots {
    display: flex;
    flex-direction: column;
    gap: 0.26vw;
    position: relative;
    z-index: 2;
}

.header_nuv-carousel-dot {
    width: 0.26vw;
    height: 0.26vw;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
    position: relative;
    z-index: 2;
}

.header_nuv-carousel-dot.active {
    background: #000000;
    height: 0.52vw;
}

@media (max-width: 767px) {
    /* Скрываем навигацию */
    .header-nav-wrapper,
    .header-nav {
        display: none;
    }

    /* В шапке оставляем только лого и кнопку меню */
    .header-top-row {
        justify-content: space-between;
    }

    .header-clinic-info,
    .header-location,
    .header-calculator-btn,
    .header-contact-wrapper .header-phone-icon,
    .header-contact-wrapper .header-contact-block {
        display: none;
    }

    .header-contact-wrapper {
        display: flex;
        align-items: center;
    }

    /* Размеры лого */
    .header-logo img {
        width: 24.26vw;
        height: 7.71vw;
    }

    /* Размеры кнопки меню */
    .header-menu-btn {
        padding: 2.7vw 4.76vw;
        gap: 1.94vw;
        border-radius: 6.41vw;
    }

    .header-top-row {
        margin-bottom: 2.6vw;
    }

    .header-menu-btn span {
        font-size: 3.1vw;
        font-weight: 500;
    }

    .header-menu-icons svg {
        width: 5.26vw;
        height: 2.28vw;
    }

    .header-menu-bottom-line {
        transform-origin: right center;
        transition: transform 0.3s ease;
    }

    .header-menu-btn:hover .header-menu-bottom-line {
        transform: scaleX(1.2) translateX(0.0vw);
    }

    /* Изменяем порядок элементов в header_nuv */
    .header_nuv {
        flex-direction: column;
        gap: 6.36vw;
        padding: 0 2.56vw;
        position: relative;
    }

    /* Фотография и блок - первый порядок */
    .header_nuv > div:last-child {
        order: 1;
        width: 100%;
        position: relative;
    }

    .header_nuv-doctor-image {
        width: 100%;
        height: 128.21vw;
        max-height: 128.21vw;
        position: relative;
        border-radius: 2.2vw;
    }

    .header_nuv-doctor-image img {
        width: 100%;
        height: 100%;
        max-height: 128.21vw;
        object-fit: cover;
    }

    /* Блок header-center-card позиционируем на фотографии */
    .header_nuv {
        position: relative;
    }

    .header-center-item {
        gap: 1.3vw;
    }

    .header_nuv-left .header-center-card {
        position: absolute;
        top: -51.9vw;
        bottom: auto;
        right: 1.4svw;
        left: auto;
        max-width: calc(100% - 5.13vw);
        width: 65vw;
        /* min-width: 25.641vw; */
        z-index: 10;
        padding: 1.7vw 4.22vw 2.6vw 3.32vw;
        border-radius: 1.7vw;
    }

    .header-center-title {
        font-size: 3.1vw;
        margin-bottom: 0.9vw;
    }

    .header-center-description {
        font-size: 2.3vw;
    }

    .header-center-icon {
        width: 2.1vw;
        height: 2.1vw;
        margin-top: 1.1vw;
    }

    .header-center-arrow {
        width: 3.5vw;
        height: 2.7vw;
        margin-top: 1.5vw;
    }

    .header_nuv-btn-2 {
       max-width: 37.549vw;
        width: 100%;
    }
    .header_nuv-btn-3 {
        max-width: 55.411vw;
        width: 100%;
    }

    /* Заголовок и подзаголовок с кнопками - второй порядок */
    .header_nuv-left {
        order: 2;
        flex: none;
        width: 100%;
        position: relative;
    }

    .header_nuv-left-text {
        width: 100%;
        font-size: 6.37vw;
        font-weight: 700;
        line-height: 8.33vw;
    }

    .header_nuv-left-text span {
        text-decoration-thickness: 0.26vw;
        text-underline-offset: 0.64vw;
    }

    .header_nuv-left-text-description {
        width: 100%;
        font-size: 3.85vw;
        font-weight: 300;
        line-height: 5.77vw;
        margin-top: 3.911vw;
    }

    .header_nuv-left-buttons {
        display: flex;
        flex-direction: row;
        gap: 1.92vw;
        margin-top: 6.519vw;
        align-items: center;
        width: 100%;
    }

    .header_nuv-btn {
        padding: 5.38vw 5.13vw;
        border-radius: 6.41vw;
        font-weight: 600;
        /* border: none; */
        font-size: 2.82vw;
        line-height: 2.44vw;
        cursor: pointer;
        transition: all 0.3s ease;
        display: flex;
        align-items: center;
        font-family: 'Geist', sans-serif;
        width: 40%;
        justify-content: center;
    }

    .header_nuv-btn-1 {
        padding: 0.77vw 0.77vw 0.77vw 3.21vw;
        border-radius: 6.41vw;
        border: 0.13vw solid #2E3D58;
        font-weight: 500;
        font-size: 2.82vw;
        line-height: 2.18vw;
        cursor: pointer;
        transition: all 0.3s ease;
        display: flex;
        align-items: center;
        gap: 3.85vw;
        font-family: 'Geist', sans-serif;
        position: relative;
        overflow: hidden;
        width: 60%;
        justify-content: space-between;
    }

    .header_nuv-btn-icon {
        width: 11.54vw;
        height: 11.54vw;
        border-radius: 50%;
        background: #FFFFFF;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        position: relative;
        z-index: 2;
        margin-left: auto;
    }

    .header_nuv-btn-icon svg {
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        width: 2.31vw;
        height: 1.79vw;
    }

    /* Стили для анимации синей кнопки */
    .header_nuv-btn-primary {
        background: #485B85;
        color: #FFFFFF;
    }

    .header_nuv-btn-1.header_nuv-btn-primary {
        font-weight: 700;
        padding-left: 6.41vw;
    }

    .header_nuv-btn-primary span {
        color: #FFFFFF;
        transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        z-index: 3;
    }

    .header_nuv-btn-primary:hover span {
        color: #485B85;
        transform: translateX(13.474vw);
    }

    /* Подгоняем псевдоэлемент ::after под размер белого круга */
    .header_nuv-btn-1::after {
        content: '';
        position: absolute;
        right: 0.77vw;
        top: 50%;
        transform: translateY(-50%);
        width: 11.54vw;
        height: 11.54vw;
        border-radius: 50%;
        background: #FFFFFF;
        transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 0;
        pointer-events: none;
    }

    .header_nuv-btn-1:hover::after {
        width: 200vw;
        height: 200vw;
        right: -100vw;
        top: 50%;
        transform: translateY(-50%);
    }

    .header_nuv-btn-1:hover .header_nuv-btn-icon svg {
        transform: translateX(-42.028vw) rotate(40deg);
    }

    .header_nuv-left-about {
        display: flex;
        align-items: center;
        gap: 2.56vw;
        margin-top: 13.021vw;
        margin-bottom: 2.56vw;
    }

    .header_nuv-tooth-icon {
        width: 7.05vw;
        height: 7.05vw;
        border-radius: 50%;
        background: #485B85;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .header_nuv-tooth-icon svg {
        width: 3.21vw;
        height: 3.21vw;
    }

    .header_nuv-about-text {
        font-size: 3.21vw;
    }

    /* Карусель - третий порядок */
    .header_nuv-right {
        order: 3;
        width: 100%;
        margin-top: 0;
        position: relative;
    }

    .header_nuv-carousel-wrapper {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        position: static;
    }

    .header_nuv-carousel {
        min-height: 51.28vw;
        height: 51.28vw;
        border-radius: 2.564vw;
        border: 0.128vw solid rgba(215, 215, 215, 1);
        order: 1;
        width: 100%;
    }


    .header_nuv-carousel-dots {
        flex-direction: row;
        gap: 0.64vw;
    }

    .header_nuv-carousel-dot {
        width: 0.77vw;
        height: 0.77vw;
    }

    .header_nuv-carousel-dot.active {
        width: 2.05vw;
        height: 0.77vw;
        border-radius: 12.82vw;
    }

    .header_nuv-ratings {
        order: 4;
        width: 100%;
        margin-top: 0;
        display: flex;
        flex-wrap: wrap;
        gap: 2.56vw;
        align-items: flex-start;
        position: relative;
        padding-top: 2.56vw;
    }

    .header_nuv-rating-card {
        width: 29.5vw;
        height: 12.87vw;
        padding: 1.03vw 1.67vw;
        border-radius: 1.03vw;
        gap: 0.77vw;
        order: 1;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .header_nuv-rating-icon {
        height: 3.2vw;
        display: block;
        margin-left: 10%;
    }

    .header_nuv-rating-content {
        display: flex;
        flex-direction: column;
        gap: 0.21vw;
        align-items: center;
        justify-content: center;
        width: 100%;
    }

    .header_nuv-rating-value {
        font-size: 3.2vw;
        margin-right: 0.51vw;
    }

    .header_nuv-rating-stars {
        gap: 0.38vw;
        justify-content: center;
    }

    .header_nuv-rating-stars svg {
        width: 2.6vw; /* Было 2.05vw - увеличили звездочки */
        height: 2.4vw;
    }


    .header_nuv-carousel-dots-wrapper {
        position: absolute ;
        /*top: calc(51.28vw + 10.36vw + 11.67vw + 2.56vw + 3vw);*/
        top: 75.28vw;
        left: 50% ;
        right: auto ;
        transform: translateX(-50%) ;
        margin-top: 0 ;
        flex-direction: row;
        padding: 0;
        width: auto;
        min-width: 20vw;
        justify-content: center;
        align-items: center;
        display: flex ;
        flex-shrink: 0;
        z-index: 100 ;
        visibility: visible ;
        opacity: 1 ;
        pointer-events: auto ;
        background: transparent;
    }

    .header_nuv-carousel-dots {
        display: flex ;
        visibility: visible ;
    }

    .header_nuv-carousel-dot {
        display: block ;
        visibility: visible ;
        opacity: 1 ;
    }


    .header {
        padding: 3.2vw 0 19.557vw 0;
    }

    @media (min-width: 2201px) {
        /* ... остальные стили ... */
        .header-phone-icon-fixed {
            width: 3.5vw;
            height: 3.5vw;
            bottom: 1.75vw;

            /* ФИКС: Еще правее для больших экранов */
            right: 0.5vw ;
        }

        .header-phone-icon-fixed svg {
            width: 1.27vw;
            height: 1.27vw;
        }
    }

    .header-phone-icon-fixed:hover::before {
        width: 9.38vw;
        height: 9.38vw;
    }

    .header-phone-icon-fixed:hover::after {
        width: 9.38vw;
        height: 9.38vw;
    }
}

@media (max-width: 2200px) {
    .header_nuv {
        padding: 0 2.6vw 0 2.6vw;
    }

    .header-container {
        padding: 0 2.6vw 0.5vw 2.6vw;
        /* padding-top: 10px; */
    }

    .header-nav.fixed {
        padding: 0 2.6vw 0 2.6vw;
    }
}

@media (min-width: 2201px) {
    .header-top-row {
        gap: 1.2vw;
    }

    .header-clinic-text {
        font-size: 0.82vw;
    }

    .header-logo img {
        height: 2.1vw;
        width: 6.64vw;
    }

    .header-location {
        gap: 0.55vw;
    }

    .header-metro-icon img {
        width: 1.09vw;
        height: 1.27vw;
    }

    .header-metro-text {
        font-size: 0.82vw;
    }

    .header-street {
        font-size: 0.64vw;
    }

    .header-calculator-btn {
        gap: 1.14vw;
        padding: 0.91vw 1.41vw;
        border: 0.052vw solid #485B85;
        border-radius: 2.27vw;
        margin: 0;
    }

    .header-calculator-btn span {
        font-size: 0.59vw;
        line-height: 0.94vw;
    }

    .header-calculator-btn:hover span {
        transform: translateX(min(2.0vw, 4.8vw));
    }

    .header-calculator-btn-icon {
        width: 0.55vw;
        height: 0.5vw;
    }

    .header-calculator-btn:hover .header-calculator-btn-icon svg {
        transform: translateX(max(-12.35vw, calc(-10% - 11.04vw))) rotate(40deg);
    }

    .header-contact-wrapper {
        gap: 0.23vw;
    }

    .header-phone-icon {
        width: 2.5vw;
        height: 2.5vw;
    }

    .header-phone-icon svg {
        width: 0.91vw;
        height: 0.91vw;
    }

    .header-contact-block {
        gap: 0.68vw;
        padding: 0.18vw 0.2vw 0.18vw 1.36vw;
        border-radius: 2.27vw;
    }

    .header-phone-number {
        font-size: 0.91vw;
    }

    .header-phone-hours {
        font-size: 0.64vw;
    }

    .header-avatar {
        width: 2.27vw;
        height: 2.27vw;
    }

    .header-menu-btn {
        gap: 0.45vw;
        padding: 0.73vw 1.32vw;
        border-radius: 2.27vw;
    }

    .header-menu-btn span {
        font-size: 0.82vw;
    }

    .header-menu-icons svg {
        width: 1.36vw;
        height: 0.68vw;
    }

    .header-phone-icon-fixed {
        width: 3.5vw;
        height: 3.5vw;
        bottom: 1.75vw;
        right: 3.25vw; /* <-- Идеальная середина для больших мониторов */
    }

    .header-phone-icon-fixed svg {
        width: 1.27vw;
        height: 1.27vw;
    }
}


/* =========================================
   ИДЕАЛЬНАЯ НАВИГАЦИЯ СЛАЙДЕРА (Адаптивная)
   ========================================= */
.header_nuv-ratings-nav {
    display: flex ;
    align-items: center ;
    gap: 0.78vw ; /* ~15px на ПК */
    position: relative;
    z-index: 10;
}

.header_nuv-ratings-counter {
    font-size: 0.83vw ; /* ~16px */
    font-weight: 500 ;
    margin-right: 0.52vw ; /* ~10px */
    color: #1A1A1A;
}

/* Кнопка */
.header_nuv-nav-btn {
    border: 0.052vw solid rgba(215, 215, 215, 1);
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 50%;
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

/* Эффект при наведении (hover) - красивое увеличение */
.header_nuv-nav-btn:hover {
    /*transform: scale(1.08) ;*/
    /*filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.08));*/
    border: 0.052vw solid #485B85;
}

.header_nuv-nav-btn:active {
    /*transform: scale(0.95) ;*/
}

/* Кольцо прогресса: заставляем SVG тянуться за кнопкой */
.header_nuv-nav-progress {
    position: absolute ;
    top: 0 ;
    left: 0 ;
    width: 100% ;
    height: 100% ;
    z-index: 1 ;
}

/* Сама стрелка */
.header_nuv-nav-arrow {
    position: relative ;
    width: 0.52vw ; /* ~10px */
    height: 0.78vw ; /* ~15px */
    z-index: 2 ;
}

/* Делаем стрелку ярче при наведении */
.header_nuv-nav-btn:hover .header_nuv-nav-arrow path {
    stroke-opacity: 1 ;
    transition: stroke-opacity 0.3s ease;
}

/* =========================================
   МОБИЛЬНАЯ АДАПТАЦИЯ (для экранов < 780px)
   ========================================= */
@media (max-width: 767px) {
    .header_nuv-ratings-nav {
        gap: 3vw;
        width: 100% ;
        order: 2 ;
        justify-content: flex-end ;
        margin-top: 15.531vw ;
        margin-left: 0 ;
    }

    .header_nuv-ratings-counter {
        font-size: 2.56vw ;
        margin-right:1vw;
    }

    .header_nuv-nav-btn {
        width: 13.021vw;
        height: 13.021vw ;

    }

    .header_nuv-nav-arrow {
        width: 2vw ; /* Было 1.5vw - сделали саму стрелку покрупнее */
        height: 3.2vw ; /* Было 2.5vw */
    }
}

.header-nav {
    display: none ;
}


/* =========================================
   ПОЛНОЭКРАННОЕ ВОЛНОВОЕ МЕНЮ (ФИРМЕННЫЙ СТИЛЬ)
   ========================================= */
.fullscreen-menu-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 9999;
    pointer-events: none;
}

.fullscreen-menu-wrapper.active {
    pointer-events: auto;
}

.menu-transition-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.fullscreen-menu-content {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: translateY(2vw);
}

/* СТИЛИ ДЛЯ ВИДЕО-АВАТАРА */
.header-avatar-video {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Идеально заполняет контейнер, обрезая лишнее */
    display: block;
    border-radius: inherit; /* Наследует скругление от родительского .header-avatar */
}


/* Крестик строго в vw (адаптируется вместе с экраном, не съезжает при зуме) */
.close-menu-btn {
    position: absolute;

    /* ФИКС: Твои точные размеры (19.24px сверху и 27.5px справа) */
    top: 0 ;
    right: 4vw ;

    background: transparent;
    border: none;
    color: rgba(72, 91, 133, 1);

    font-family: 'Geist', sans-serif;
    font-weight: 200;
    font-size: 4.43vw; /* Аналог 85.12px */
    line-height: 5.76vw; /* Аналог 110.65px */

    width: 2.5vw; /* Аналог 48px */
    height: 5.78vw; /* Аналог 111px */
    transform: rotate(45deg);
    opacity: 1;

    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, color 0.3s ease;
    z-index: 10;
}

.close-menu-btn:hover {
    transform: rotate(45deg) scale(1.03);
}

/* Блок со ссылками строго по размерам из Figma в vw */
.fullscreen-nav-links {
    display: flex;
    flex-direction: column;
    width: 61.46vw; /* Аналог 1180px */
    height: 38.8vw; /* Аналог 745px */
    max-width: 90vw;
    gap: 1.04vw; /* Аналог 20px */
    justify-content: center;
    text-align: center;
    margin: 0 auto;
}

/* Новая типографика: Geist Bold 50px (переведено в vw) */
.fullscreen-nav-links a {
    color: rgba(72, 91, 133, 1);
    font-family: 'Geist', sans-serif;
    font-weight: 700; /* По ТЗ: Bold */
    font-style: normal;
    font-size: 2.60vw; /* Аналог 50px */
    line-height: var(--line-height-70);
    text-transform: uppercase;
    text-decoration: none;
    position: relative;
    transition: transform 0.3s ease;
    display: inline-block;
    width: -webkit-fit-content;
    width: fit-content;
    margin: 0 auto;
}

/* Красивое подчеркивание при наведении */
.fullscreen-nav-links a::after {
    content: '';
    position: absolute;
    bottom: -0.5vw;
    left: 0;
    width: 0;
    height: 0.2vw;
    background: #FFFFFF;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 0.1vw;
}

.fullscreen-nav-links a:hover {
    transform: scale(1.03);
}

.fullscreen-nav-links a:hover::after {
    width: 100%;
}

/*@media (min-width: 1920px) {*/
/*    .fullscreen-nav-links {*/
/*        gap: 0;*/
/*    }*/
/*}*/

/* =========================================
   МОБИЛЬНАЯ АДАПТАЦИЯ МЕНЮ (< 780px)
   ========================================= */
@media (max-width: 767px) {
    .fullscreen-menu-content {
        transform: translateY(5vw);
    }

    .close-menu-btn {
        /*top: 5vw ;*/
        right: 5vw ;
        font-size: 10vw;
        width: 6vw;
        height: 12vw;
    }

    .fullscreen-nav-links {
        width: 100%;
        height: auto;
        gap: 4vw;
    }

    .fullscreen-nav-links a {
        font-size: 7vw;
        line-height: 1.2;
    }

    .fullscreen-nav-links a::after {
        bottom: -1.5vw;
        height: 0.6vw;
    }
}


/* =========================================
   1. ЖЕЛЕЗОБЕТОННЫЙ СЕРЫЙ ЦВЕТ ДЛЯ КНОПКИ
   ========================================= */
.header_nuv-btn.header_nuv-btn-secondary {
    background-color: #E2E2E2B2 ;
}

/* =========================================
   2. СТИЛИ И АНИМАЦИИ ГАЛЕРЕИ (ЖЕСТКО В VW)
   ========================================= */
.gallery-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(15, 15, 15, 0.95);
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
    z-index: 999999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.gallery-modal-overlay.open {
    opacity: 1;
    visibility: visible;
}

.gallery-modal-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ИСПРАВЛЕНО: Убрали vh! Теперь пропорции фотки и кнопок намертво связаны */
.gallery-image-wrapper {
    width: 75vw;
    height: 43vw; /* МАГИЯ ЗДЕСЬ: Жестко привязали высоту к ширине экрана */
    display: flex;
    justify-content: center;
    align-items: center;
}

.gallery-main-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 0.63vw;
    box-shadow: 0 0.52vw 2.08vw rgba(0, 0, 0, 0.5);
}

/* =========================================
   АНИМАЦИИ ГАЛЕРЕИ (ВЛЕВО/ВПРАВО)
   ========================================= */
.gallery-main-image.slide-next {
    animation: slideInFromRight 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

.gallery-main-image.slide-prev {
    animation: slideInFromLeft 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

@keyframes slideInFromRight {
    0% {
        opacity: 0;
        transform: translateX(2.6vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInFromLeft {
    0% {
        opacity: 0;
        transform: translateX(-2.6vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* =========================================
   КНОПКИ И СЧЕТЧИК (Только vw)
   ========================================= */
.gallery-close-btn {
    position: absolute;
    top: 1.56vw;
    right: 2.08vw;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.82vw;
    cursor: pointer;
    z-index: 10;
    transition: color 0.3s ease, transform 0.25s ease ;
}

.gallery-close-btn:hover {
    color: white ;
    transform: scale(1.15) ;
}

.gallery-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.1);
    border: 0.052vw solid rgba(255, 255, 255, 0.2);
    color: white;
    font-size: 2.08vw;
    width: calc(60 * var(--fluid-unit));
    height: calc(60 * var(--fluid-unit));
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.25s ease ;
    z-index: 10;
}

.gallery-nav-btn:hover {
    background: rgba(255, 255, 255, 0.25) ;
    transform: translateY(-50%) scale(1.1) ;
}

.gallery-nav-btn.prev {
    left: 5vw;
    padding-bottom: 0.26vw;
}

/* Заменили % на vw */
.gallery-nav-btn.next {
    right: 5vw;
    padding-bottom: 0.26vw;
}

/* Заменили % на vw */

.gallery-counter {
    position: absolute;
    bottom: 1.56vw;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.83vw;
    font-family: 'Geist', sans-serif;
    letter-spacing: 0.1vw;
}

/* =========================================
   3. АДАПТИВ ГАЛЕРЕИ ДЛЯ ТЕЛЕФОНОВ (< 780px)
   ========================================= */
@media (max-width: 767px) {
    .gallery-image-wrapper {
        width: 100vw;
        height: 70vh; /* На мобилке оставляем vh, так как экраны вертикальные */
        padding: 0 2.5vw;
        box-sizing: border-box;
    }

    .gallery-main-image {
        border-radius: 2vw;
    }

    .gallery-nav-btn {
        width: 12vw;
        height: 12vw;
        font-size: 8vw;
        border: 0.2vw solid rgba(255, 255, 255, 0.2);
    }

    .gallery-nav-btn.prev {
        left: 2vw;
    }

    .gallery-nav-btn.next {
        right: 2vw;
    }

    .gallery-close-btn {
        top: 4vw;
        right: 4vw;
        font-size: 8vw;
    }

    .gallery-counter {
        bottom: 5vw;
        font-size: 4vw;
    }
}

.ui-fullscreen-gallery-overlay {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(15, 15, 15, 0.95);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  z-index: 999999;
}

.ui-fullscreen-gallery-container {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ui-fullscreen-gallery-image-wrapper {
  width: min(72vw, 1400px);
  height: min(82vh, 900px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ui-fullscreen-gallery-main-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0.63vw;
  box-shadow: 0 0.52vw 2.08vw rgba(0, 0, 0, 0.5);
}

.ui-fullscreen-gallery-main-image.slide-next {
  animation: uiFullscreenGallerySlideInFromRight 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

.ui-fullscreen-gallery-main-image.slide-prev {
  animation: uiFullscreenGallerySlideInFromLeft 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
}

@keyframes uiFullscreenGallerySlideInFromRight {
  0% {
    opacity: 0;
    transform: translateX(2.6vw);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes uiFullscreenGallerySlideInFromLeft {
  0% {
    opacity: 0;
    transform: translateX(-2.6vw);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.ui-fullscreen-gallery-close-btn {
  position: absolute;
  top: 1.56vw;
  right: 2.08vw;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.82vw;
  cursor: pointer;
  transition: color 0.2s ease, transform 0.2s ease;
}

.ui-fullscreen-gallery-close-btn:hover {
  color: white;
  transform: scale(1.15);
}

.ui-fullscreen-gallery-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: calc(60 * var(--fluid-unit));
  height: calc(60 * var(--fluid-unit));
  background: rgba(255, 255, 255, 0.1);
  border: 0.052vw solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  color: white;
  font-size: 2.08vw;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.ui-fullscreen-gallery-nav-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-50%) scale(1.1);
}

.ui-fullscreen-gallery-nav-btn.prev {
  left: 5vw;
  padding-bottom: 0.26vw;
}

.ui-fullscreen-gallery-nav-btn.next {
  right: 5vw;
  padding-bottom: 0.26vw;
}

.ui-fullscreen-gallery-counter {
  position: absolute;
  bottom: 2.08vw;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.85);
  font-family: 'Geist', sans-serif;
  font-size: 0.94vw;
  font-weight: 500;
  letter-spacing: 0.05em;
}

@media (max-width: 767px) {
  .ui-fullscreen-gallery-image-wrapper {
    width: 90vw;
    height: 74vh;
  }

  .ui-fullscreen-gallery-main-image {
    border-radius: 2vw;
  }

  .ui-fullscreen-gallery-nav-btn {
    width: 12vw;
    height: 12vw;
    font-size: 8vw;
    border: 0.2vw solid rgba(255, 255, 255, 0.2);
  }

  .ui-fullscreen-gallery-nav-btn.prev {
    left: 2vw;
  }

  .ui-fullscreen-gallery-nav-btn.next {
    right: 2vw;
  }

  .ui-fullscreen-gallery-close-btn {
    top: 4vw;
    right: 4vw;
    font-size: 8vw;
  }

  .ui-fullscreen-gallery-counter {
    bottom: 5vw;
    font-size: 4vw;
  }
}

.btn-position-aware {
    --position-aware-bg: rgba(226, 226, 226, 0.7);
    --position-aware-hover-bg: rgba(226, 226, 226, 0.7);
    --position-aware-border: #E0E0E0;
    --position-aware-text-color: #000000;
    --position-aware-text-hover-color: #FFFFFF;
    --position-aware-wave-color: #485B85;
    --position-aware-padding-y: 1.46vw;
    --position-aware-padding-x: 2.083vw;
    --position-aware-radius: 2.6vw;
    --position-aware-border-width: 0.052vw;
    --position-aware-font-size: 0.625vw;
    --position-aware-line-height: 0.833vw;
    --position-aware-font-weight: 600;
    --position-aware-wave-size: 30vw;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: var(--position-aware-padding-y) var(--position-aware-padding-x);
    border-radius: var(--position-aware-radius);
    border: var(--position-aware-border-width) solid var(--position-aware-border);
    background: var(--position-aware-bg);
    color: var(--position-aware-text-color);
    font-family: 'Geist', sans-serif;
    font-size: var(--position-aware-font-size);
    font-weight: var(--position-aware-font-weight);
    line-height: var(--position-aware-line-height);
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    z-index: 1;
    box-sizing: border-box;
}

.btn-position-aware .wave-span {
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    background-color: var(--position-aware-wave-color);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
    z-index: 0;
    pointer-events: none;
}

.btn-position-aware:hover {
    background: var(--position-aware-hover-bg);
}

.btn-position-aware:hover .wave-span,
.btn-position-aware:focus-visible .wave-span {
    width: var(--position-aware-wave-size);
    height: var(--position-aware-wave-size);
}

.btn-position-aware .btn-text {
    position: relative;
    z-index: 1;
    transition: color 0.4s ease-in-out;
    pointer-events: none;
    text-align: center;
}

.btn-position-aware:hover .btn-text,
.btn-position-aware:focus-visible .btn-text {
    color: var(--position-aware-text-hover-color);
}

.btn-position-aware:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-position-aware:disabled .wave-span {
    width: 0;
    height: 0;
}

.btn-position-aware:disabled .btn-text {
    color: var(--position-aware-text-color);
}

@media (max-width: 767px) {
    .btn-position-aware {
        --position-aware-padding-y: 5.469vw;
        --position-aware-padding-x: 5.729vw;
        --position-aware-radius: 16.54vw;
        --position-aware-border-width: 0.2vw;
        --position-aware-font-size: 2.868vw;
        --position-aware-line-height: 1.92vw;
        --position-aware-wave-size: 100vw;
    }
}

.action-button {
    /* Основные цвета кнопки */
    --action-button-bg: #485B85;
    --action-button-border: #2E3D58;
    --action-button-label-color: #FFFFFF;
    --action-button-label-active-color: #485B85;
    --action-button-icon-bg: #FFFFFF;
    --action-button-icon-color: #485B85;

    /* Внутренняя геометрия кнопки */
    /* Отступ слева до текста */
    --action-button-inline-padding: 1.563vw;
    /* Вертикальный padding кнопки */
    --action-button-block-padding: 0.313vw;
    /* Расстояние между текстом и зоной иконки */
    --action-button-content-gap: 1.563vw;
    /* Размер белого круга с иконкой */
    --action-button-icon-size: 3.125vw;
    /* Скругление всей кнопки */
    --action-button-radius: 2.6vw;
    /* Толщина бордера кнопки */
    --action-button-border-width: 0.052vw;

    /* Типографика */
    --action-button-font-size: 0.938vw;
    --action-button-line-height: 1.458vw;

    /* Декоративный блик */
    --action-button-flare-width: 2.344vw;

    /* Анимационные переменные, вычисляются из JS */
    /* Насколько текст должен уехать вправо при hover */
    --action-button-label-shift: 0px;
    /* Насколько иконка должна уехать влево при hover */
    --action-button-icon-shift: 0px;
    /* Базовая позиция белого круга справа */
    --action-button-after-right: 0.313vw;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: -webkit-max-content;
    width: max-content;
    min-height: calc(var(--action-button-icon-size) + (var(--action-button-block-padding) * 2));
    padding: var(--action-button-block-padding)
    calc(var(--action-button-after-right) + var(--action-button-icon-size) + var(--action-button-content-gap))
    var(--action-button-block-padding)
    var(--action-button-inline-padding);
    border-radius: var(--action-button-radius);
    border: var(--action-button-border-width) solid var(--action-button-border);
    background: var(--action-button-bg);
    font-family: 'Geist', sans-serif;
    cursor: pointer;
    overflow: hidden;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.35s ease, border-color 0.35s ease;
}

.action-button__label {
    position: absolute;
    left: var(--action-button-inline-padding);
    top: 50%;
    z-index: 3;
    max-width: calc(100% - var(--action-button-inline-padding) - var(--action-button-after-right) - var(--action-button-icon-size) - var(--action-button-content-gap));
    color: var(--action-button-label-color);
    font-weight: 500;
    font-size: var(--action-button-font-size);
    line-height: var(--action-button-line-height);
    white-space: nowrap;
    transform: translateY(-50%);
    transform-origin: center left;
    transition: color 0.3s ease, transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
}

.action-button__measure {
    visibility: hidden;
    white-space: nowrap;
    font-weight: 500;
    font-size: var(--action-button-font-size);
    line-height: var(--action-button-line-height);
    pointer-events: none;
}

.action-button__icon {
    position: absolute;
    right: var(--action-button-after-right);
    top: 50%;
    z-index: 2;
    width: var(--action-button-icon-size);
    height: var(--action-button-icon-size);
    border-radius: 50%;
    background: var(--action-button-icon-bg);
    color: var(--action-button-icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.action-button__icon svg {
    display: block;
    width: 0.73vw;
    height: 0.63vw;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.action-button__flare {
    position: absolute;
    top: 0;
    left: -170%;
    z-index: 1;
    height: 100%;
    width: var(--action-button-flare-width);
    transform: skewX(-45deg);
    animation: actionButtonFlare 3s infinite;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #FFFFFF);
    pointer-events: none;
}

.action-button::after {
    content: '';
    position: absolute;
    right: var(--action-button-after-right);
    top: 50%;
    z-index: 0;
    width: var(--action-button-icon-size);
    height: var(--action-button-icon-size);
    border-radius: 50%;
    background: var(--action-button-icon-bg);
    transform: translateY(-50%);
    transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.action-button:not(:disabled):hover,
.action-button:not(:disabled):focus-visible {
    background: #FFFFFF;
}

.action-button:not(:disabled):hover .action-button__label,
.action-button:not(:disabled):focus-visible .action-button__label {
    color: var(--action-button-label-active-color);
    transform: translateY(-50%) translateX(var(--action-button-label-shift));
}

.action-button:not(:disabled):hover .action-button__icon,
.action-button:not(:disabled):focus-visible .action-button__icon {
    transform: translateY(-50%) translateX(calc(var(--action-button-icon-shift) * -1));
}

.action-button:not(:disabled):hover .action-button__icon svg,
.action-button:not(:disabled):focus-visible .action-button__icon svg {
    transform: rotate(40deg);
}

.action-button:not(:disabled):hover::after,
.action-button:not(:disabled):focus-visible::after {
    right: calc(100% - var(--action-button-inline-padding) - var(--action-button-icon-size));
}

.action-button:disabled {
    cursor: not-allowed;
}

.action-button:disabled .action-button__flare,
.action-button.is-loading .action-button__flare {
    animation: none;
    opacity: 0;
}

.action-button:disabled:not(.is-loading) .action-button__label {
    opacity: 0.5;
}

.action-button:disabled:not(.is-loading) .action-button__icon {
    opacity: 0.7;
}

.action-button:disabled .action-button__label,
.action-button:disabled .action-button__icon {
    transform: translateY(-50%);
}

.action-button.is-loading .action-button__label {
    color: var(--action-button-label-color);
    opacity: 1;
}

@keyframes actionButtonFlare {
    0% {
        left: -170%;
    }

    50% {
        left: 170%;
    }

    100% {
        left: 170%;
    }
}

@media (max-width: 767px) {
    .action-button {
        /* Мобильные значения тех же переменных */
        /* На mobile слева до текста 5.215vw */
        --action-button-inline-padding: 5.215vw;
        --action-button-block-padding: 1.304vw;
        /* На mobile от текста до иконки тоже 5.215vw */
        --action-button-content-gap: 5.215vw;
        --action-button-icon-size: 10.43vw;
        --action-button-radius: 10vw;
        --action-button-border-width: 0.2vw;
        --action-button-font-size: 3.129vw;
        --action-button-line-height: 4.824vw;
        --action-button-flare-width: 7vw;
        --action-button-after-right: 0.652vw;
    }

    .action-button__icon svg {
        width: 2.5vw;
        height: 2.5vw;
    }
}

/* Модальное окно с согласием на обработку персональных данных */
.kvis-privacy-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2vw;
  box-sizing: border-box;
}

.kvis-privacy-modal {
  background: #FFFFFF;
  border-radius: 1.04vw;
  max-width: 60vw;
  max-height: 90vh;
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.3);
}

.kvis-privacy-modal-close {
    position: absolute;
    top: 1.04vw;
    right: 1.04vw;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.52vw;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 10001;
  transition: opacity 0.3s ease;
  color: #1A1A1A;
}

.kvis-privacy-modal-close:hover {
  opacity: 0.7;
}

.kvis-privacy-modal-close svg {
  width: 1.25vw;
  height: 1.25vw;
}

.kvis-privacy-modal-content {
  padding: 2.6vw;
  overflow-y: auto;
  flex: 1 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(17, 47, 85, 0.3) transparent;
}

.kvis-privacy-modal-content::-webkit-scrollbar {
  width: 0.52vw;
}

.kvis-privacy-modal-content::-webkit-scrollbar-track {
  background: transparent;
  margin: 1.04vw 0;
}

.kvis-privacy-modal-content::-webkit-scrollbar-thumb {
  background: rgba(17, 47, 85, 0.3);
  border-radius: 0.26vw;
  -webkit-transition: background 0.3s ease;
  transition: background 0.3s ease;
}

.kvis-privacy-modal-content::-webkit-scrollbar-thumb:hover {
  background: rgba(17, 47, 85, 0.5);
}

.kvis-privacy-modal-title {
  font-size: 1.56vw;
  font-weight: 700;
  color: #1A1A1A;
  margin: 0 0 1.56vw 0;
  font-family: 'Geist', sans-serif;
}

.kvis-privacy-modal-text {
  font-size: 0.83vw;
  line-height: 1.5;
  color: #1A1A1A;
  font-family: 'Geist', sans-serif;
}

.kvis-privacy-modal-text p {
  margin: 0 0 1.04vw 0;
}

.kvis-privacy-modal-text ul {
  margin: 0 0 1.04vw 0;
  padding-left: 1.56vw;
}

.kvis-privacy-modal-text li {
  margin: 0 0 0.52vw 0;
}

.kvis-privacy-modal-text strong {
  font-weight: 700;
}

@media (max-width: 767px) {
  .kvis-privacy-modal-overlay {
    padding: 4.302vw;
  }

  .kvis-privacy-modal {
    max-width: 100%;
    max-height: calc(100vh - 8.604vw);
    border-radius: 4vw;
  }

  .kvis-privacy-modal-close {
      display: flex;
      top: 4.302vw;
      right: 4.302vw;
    width: 21.739vw;
    height: 21.739vw;
    padding: 3.623vw;
    border-radius: 36.232vw;
    background: rgba(72, 91, 133, 0.92);
    color: #FFFFFF;
  }

  .kvis-privacy-modal-close svg {
    width: 6.522vw;
    height: 6.522vw;
  }

  .kvis-privacy-modal-content {
    padding: 17vw 4.302vw 4.302vw;
  }

  .kvis-privacy-modal-title {
    font-size: 5.215vw;
    margin-bottom: 4.302vw;
  }

  .kvis-privacy-modal-text {
    font-size: 3.129vw;
    line-height: 1.5;
  }

  .kvis-privacy-modal-text p,
  .kvis-privacy-modal-text ul {
    margin-bottom: 3.911vw;
  }

  .kvis-privacy-modal-text ul {
    padding-left: 5.215vw;
  }

  .kvis-privacy-modal-text li {
    margin-bottom: 2.608vw;
  }
}

.googing {
    width: 100%;
    background: #F5F5F5;
    /* Сверху 3.65vw (70px), справа 2.6vw (50px), снизу 5.2vw (100px), слева 2.6vw (50px) */
    padding: 3.65vw 2.6vw 5.2vw 2.6vw;
    box-sizing: border-box;
}

.googing-container {
    width: 100%;
    margin: 0 auto;
}

/* =========================================
   ВЕРХНИЙ БЛОК (Заголовок 1 + Описание 1)
   ========================================= */
.googing-header {
    text-align: left;

    /* Отступ ровно 50px до нижнего контента */
    margin-bottom: 2.6vw;

    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.googing-main-title {
    font-family: 'Geist', sans-serif;
    font-weight: 700;
    font-size: 2.344vw; /* 45px в vw */
    line-height: 3.385vw; /* 65px в vw */
    color: #000000;
    text-align: left;
    text-transform: uppercase;
    vertical-align: middle;
    margin-bottom: 0.52vw;
}

.googing-main-title span {
    text-decoration: underline;
    -webkit-text-decoration-style: solid;
            text-decoration-style: solid;
    -webkit-text-decoration-skip: ink;
            text-decoration-skip-ink: auto;
    color: #485B85;
}

.googing-main-description {
    font-family: 'Geist', sans-serif;
    font-weight: 300;
    font-size: 1.146vw; /* 22px в vw */
    line-height: 1.719vw; /* 33px в vw */
    color: #1A1A1ABF;
    text-align: left;
    max-width: 61vw;
}

/* =========================================
   КОНТЕНТ (Блоки по 895px = 46.61vw)
   ========================================= */
.googing-content {
    display: flex;
    justify-content: space-between;
    gap: 1.04vw;
    width: 100%;
    align-items: stretch;
}

/* --- ЛЕВАЯ ЧАСТЬ (895x706, gap 10, radius 20) --- */
.googing-left {
    width: 46.614vw; /* 895px в vw */
    height: 36.77vw; /* 706px в vw */
    flex-shrink: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.52vw; /* 10px в vw */
    opacity: 1;
    border-radius: 1.041vw; /* 20px в vw */
}

.googing-doctor-image {
    width: 100%;
    height: 100%;
    background: #E0E0E0;
    border-radius: 1.041vw;
    overflow: hidden;
    position: relative;
}

.googing-doctor-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
}

.googing-play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: transform 0.3s ease;
    box-sizing: content-box;
}

.googing-play-button::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    animation: pulse-border 1500ms ease-out infinite;
}

.googing-play-button::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    transition: all 200ms;
}

.googing-play-button:hover::after {
    background-color: #f5f5f5;
}

.googing-play-button:hover {
    transform: translate(-50%, -50%) scale(1.1);
}

.googing-play-button svg {
    width: 1.16vw;
    height: 1.4vw;
    transform: translateX(0.1vw);
    position: relative;
    z-index: 3;
}

@keyframes pulse-border {
    0% {
        transform: translate(-50%, -50%) translateZ(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) translateZ(0) scale(1.5);
        opacity: 0;
    }
}

.googing-doctor-info {
    background: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 1.04vw;
    padding: 0.26vw;
    display: flex;
    flex-direction: column;
    gap: 0.42vw;
    position: absolute;
    bottom: 0.8vw;
    right: 0.8vw;
    border: 0.03vw solid rgba(255, 255, 255, 1);
    border-top: 0.1vw solid rgba(255, 255, 255, 1);
}

.googing-doctor-info-card {
    background: #FFFFFF;
    padding: 0.52vw 1.25vw;
    gap: 1.56vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 0.78vw;
}

.googing-doctor-name {
    font-size: var(--font-size-h5);
    text-align: left;
    font-weight: 700;
    color: rgba(25, 25, 25, 1);
    font-family: 'Geist', sans-serif;
    margin-bottom: 0.26vw;
}

.googing-doctor-title {
    font-size: var(--font-size-body-small);
    font-weight: 400;
    text-align: left;
    color: #666666;
    font-family: 'Geist', sans-serif;
}

.googing-doctor-contact {
    width: 3.125vw;
    height: 3.125vw;
    background: rgba(46, 61, 88, 1);
    border-radius: 2.6vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.googing-doctor-contact svg {
    width: 1.2vw;
    height: 0.94vw;
}

/* --- ПРАВАЯ ЧАСТЬ (895x706, padding 30, space-between, radius 20) --- */
.googing-right {
    width: 46.614vw; /* 895px в vw */
    height: 36.77vw; /* 706px в vw */
    flex-shrink: 0;
}

.googing-form-card {
    width: 100%;
    height: 100%;
    background: #FFFFFF;
    border-radius: 1.041vw; /* 20px в vw */
    padding: 1.562vw; /* 30px в vw. Это и есть ваш отступ в 30px сверху! */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Распределяем элементы по высоте */
    box-sizing: border-box;
    opacity: 1;
}

.googing-form-title {
    font-family: 'Geist', sans-serif;
    font-weight: 700;
    font-size: 2.083vw;
    line-height: 2.708vw;
    text-transform: uppercase;
    text-align: left;
    color: #000;
    margin: 0 0 1.562vw 0; /* <-- Задали отступ снизу 30px */
    vertical-align: middle;
}

.googing-form-description {
    font-family: 'Geist', sans-serif;
    font-weight: 300;
    font-size: 1.146vw;
    line-height: 1.719vw;
    color: #1A1A1ABF;
    text-align: left;
    margin: 0 0 1.562vw 0; /* <-- Задали отступ снизу 30px */
}

/* =========================================
   КНОПКИ
   ========================================= */
.googing-form-buttons {
    display: flex;
    gap: 1.04vw;
    margin: 0 0 0.52vw 0; /* <-- Задали отступ снизу 10px */
    align-items: center;
    justify-content: flex-start;
    width: 100%;
}

.googing-btn {
    padding: 1.46vw 2.08vw;
    border-radius: 5.2vw;
    font-weight: 600;
    font-size: var(--font-size-button-secondary);
    line-height: 0.99vw;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    font-family: 'Geist', sans-serif;
}

.googing-btn-secondary {
    /*background: #E2E2E2B2 !important; !* Теперь этот цвет сработает на 100% *!*/
    /*color: #000000;*/
    border: none; /* Убираем бордер, если он не нужен */
}

/* НАСТРОЙКИ ТЕКСТА КНОПКИ (ИЗ FIGMA) */
.googing-btn-secondary .btn-text {
    font-family: 'Geist', sans-serif ;
    font-weight: 600; /* SemiBold */
    font-size: 0.625vw; /* 12px */
    line-height: 0.873vw; /* 16.77px */
    letter-spacing: 0;
    vertical-align: middle;

    /* В Figma 'background' для текста означает его цвет (color) */
    /*color: #191919 !important; */
}

/* Ховер эффект, чтобы кнопка реагировала на мышку */
.googing-btn-secondary:hover {
    background: #D0D0D0 !important;
}

/*.googing-btn-1 {*/
/*    padding: 0.31vw 0.31vw 0.31vw 1.56vw;*/
/*    border-radius: 2.6vw;*/
/*    border: 0.052vw solid #2E3D58;*/
/*    font-weight: 700;*/
/*    font-size: var(--font-size-button);*/
/*    line-height: 0.89vw;*/
/*    cursor: pointer;*/
/*    transition: all 0.3s ease;*/
/*    display: flex;*/
/*    align-items: center;*/
/*    gap: 1.56vw;*/
/*    font-family: 'Geist', sans-serif;*/
/*    position: relative;*/
/*    overflow: hidden;*/
/*}*/

/*.googing-btn-primary {*/
/*    background: #485B85;*/
/*    color: #FFFFFF;*/
/*}*/

/*.googing-btn-primary span {*/
/*    color: #FFFFFF;*/
/*    transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);*/
/*    position: relative;*/
/*    z-index: 3;*/
/*}*/

/*.googing-btn-primary:hover span {*/
/*    color: #485B85;*/
/*    transform: translateX(min(3.65vw, 15.31vw));*/
/*}*/

/*.googing-btn-icon {*/
/*    width: 3.125vw;*/
/*    height: 3.125vw;*/
/*    border-radius: 50%;*/
/*    background: #FFFFFF;*/
/*    display: flex;*/
/*    align-items: center;*/
/*    justify-content: center;*/
/*    flex-shrink: 0;*/
/*    position: relative;*/
/*    z-index: 2;*/
/*}*/

/*.googing-btn-icon svg {*/
/*    width: 0.73vw;*/
/*    height: 0.63vw;*/
/*    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);*/
/*}*/

/*.googing-btn-1 .flare {*/
/*    position: absolute;*/
/*    top: 0;*/
/*    height: 100%;*/
/*    width: 45px;*/
/*    transform: skewX(-45deg);*/
/*    animation: flareAnimation 3s infinite;*/
/*    left: -170%;*/
/*    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);*/
/*    filter: blur(0px);*/
/*    z-index: 1;*/
/*    pointer-events: none;*/
/*}*/

@keyframes flareAnimation {
    0% {
        left: -170%;
    }
    50% {
        left: 170%;
    }
    100% {
        left: 170%;
    }
}

/*.googing-btn-1:hover .googing-btn-icon svg {*/
/*    transform: translateX(max(-12.7vw, calc(-10% - 30.56vw))) rotate(40deg);*/
/*}*/

/*.googing-btn-1::after {*/
/*    content: '';*/
/*    position: absolute;*/
/*    right: 0.31vw;*/
/*    top: 50%;*/
/*    transform: translateY(-50%);*/
/*    width: 3.125vw;*/
/*    height: 3.125vw;*/
/*    border-radius: 50%;*/
/*    background: #FFFFFF;*/
/*    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);*/
/*    z-index: 0;*/
/*    pointer-events: none;*/
/*}*/

/*.googing-btn-1:hover::after {*/
/*    width: 41.67vw;*/
/*    height: 41.67vw;*/
/*    right: -20.83vw;*/
/*    top: 50%;*/
/*    transform: translateY(-50%);*/
/*}*/

/* =========================================
   ОПИСАНИЕ СНИЗУ
   ========================================= */

.googing-form-disclaimer {
    font-size: var(--font-size-body-small);
    font-weight: 300;
    color: #1A1A1ABF;
    font-family: 'Geist', sans-serif;
    text-align: left;
    width: 100%;
    margin-top: auto; /* <-- Эта строка обязательно должна быть, она прижмет текст к самому низу карточки */
}

.googing-privacy-link {
    color: #485B85;
    text-decoration: underline;
    text-underline-offset: 0.2vw;
    cursor: pointer;
    transition: color 0.3s ease;
}

.googing-privacy-link:hover {
    color: #112F55;
}

/* =========================================
   АДАПТИВ (MOBILE)
   ========================================= */
@media (max-width: 767px) {
    .googing {
        padding: 15.625vw 2.604vw 19.531vw;
    }

    .googing-header {
        margin-bottom: 0;
    }

    .googing-main-title {
        width: 100%;
        font-size: 6.510vw;
        line-height: 9.115vw;
        margin-bottom: 2.604vw;
    }

    .googing-main-title span {
        text-decoration-thickness: 0.4vw;
        text-underline-offset: 1vw;
    }

    .googing-main-description {
        width: 100%;
        font-size: 3.385vw;
        line-height: 5.208vw;
        max-width: 100%;
    }

    .googing-content {
        display: flex;
        flex-direction: column;
        gap: 3.906vw; /* Отступ между карточкой врача и карточкой формы */
        margin-top: 9.115vw;
    }

    .googing-left {
        width: 100%;
        height: auto;
    }

    .googing-doctor-image {
        height: 100vw;
        border-radius: 4vw;
    }

    .googing-play-button {
        width: 16vw;
        height: 16vw;
    }

    .googing-play-button::before,
    .googing-play-button::after {
        width: 16vw !important;
        height: 16vw !important;
    }

    .googing-play-button svg {
        width: 15.625vw !important;
        height: 15.625vw !important;
    }

    .googing-doctor-info {
        padding: 1.432vw;
        border-radius: 3vw;
        bottom: 2.604vw;
        right: 2.604vw;
        border: 0;
    }

    .googing-doctor-info-card {
        padding: 1.302vw 2.995vw;
        border-radius: 2vw;
        gap: 4.427vw;
    }

    .googing-doctor-name {
        font-size: 4.036vw;
        /*line-height: 100%;*/
        margin-bottom: 0.681vw;
    }

    .googing-doctor-title {
        font-size: 2.344vw;
        /*line-height: 100%;*/
        font-weight: 300;
    }

    .googing-doctor-contact {
        width: 8.073vw;
        height: 8.073vw;
        border-radius: 50%;
    }

    .googing-doctor-contact svg {
        width: 4vw;
        height: 3vw;
    }

    .googing-right {
        width: 100%;
        height: auto;
    }

    .googing-form-card {
        width: 100%;
        height: auto;
        padding: 6.510vw 2.604vw;
        border-radius: 4vw;
    }

    .googing-form-title {
        width: 100%;
        font-size: 5.208vw;
        line-height: 7.161vw;
        margin-bottom: 2.604vw;
    }

    .googing-form-title span {
        text-decoration: underline;
        text-underline-offset: 0.5vw;
        text-decoration-thickness: 0.3vw;
    }

    /* На мобилке скрываем теги <br />, чтобы текст естественно переносился */
    .googing-form-description br {
        display: none;
    }

    .googing-form-description {
        width: 100%;
        font-size: 3.385vw;
        line-height: 5.208vw;
        margin-bottom: 6.510vw;
    }

    /* Настраиваем колонку для кнопок */
    .googing-form-buttons {
        flex-direction: row;
        gap: 3vw;
        margin-bottom: 19.531vw;
    }

    /* Мобильная СЕРАЯ кнопка (На всю ширину) */
    .googing-btn-secondary {
        /*width: 11.979vw !important; */
        /*height: 3.75vw !important; */
        /*padding: 0.729vw 2.083vw !important; */
        /*border-radius: 6.718vw !important; */

        /* ТВОЙ ЦВЕТ В ФОРМАТЕ RGBA (Эквивалент #E2E2E2B2) */
        background: rgba(226, 226, 226, 0.7) !important;

        /* ВАЖНО: Если кнопка с этим цветом всё ещё кажется белой из-за
           белого фона карточки, раскомментируй строку ниже (это 100% серый цвет без прозрачности): */
        /* background: #E2E2E2 !important; */

        color: #000000 !important;
        border: none !important;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
    }

    .googing-btn-secondary .btn-text {
        font-size: 1.823vw;
        line-height: 2.604vw;
        /*font-size: 2.083vw;*/
        /*line-height: 2.995vw;*/
    }

    /* Мобильная СИНЯЯ кнопка (На всю ширину) */
    /*.googing-btn,*/
    /*.googing-btn-1 {*/
    /*    width: 100%;*/
    /*    height: 11.068vw;*/
    /*    border-radius: 10vw;*/
    /*    !*padding: 0 2vw 0 6vw;*!*/
    /*    font-size: 3.8vw;*/
    /*    gap: 2vw;*/
    /*    box-sizing: border-box;*/
    /*}*/

    .googing-btn-2 {
        --action-button-font-size: 2.086vw;
        --position-aware-font-size: 2.086vw;
        --action-button-line-height: 2.995vw;
        --position-aware-line-height: 2.995vw;
        --position-aware-padding-y: 4.854vw;
        --position-aware-padding-x: 4.854vw;
    }

    /*.googing-btn-1 {*/
    /*    padding: 0 0.911vw 0 2.083vw;*/
    /*}*/

    /*.googing-btn-1 span {*/
    /*    font-size: 1.823vw;*/
    /*    line-height: 2.604vw;*/
    /*}*/

    /*.googing-btn-icon {*/
    /*    width: 9.115vw;*/
    /*    height: 9.115vw;*/
    /*    position: absolute;*/
    /*    right: 1vw;*/
    /*}*/

    /*.googing-btn-icon svg {*/
    /*    width: 1.693vw;*/
    /*    height: 1.693vw;*/
    /*}*/

    /*.googing-btn-1::after {*/
    /*    right: 1vw;*/
    /*    width: 9.115vw;*/
    /*    height: 9.115vw;*/
    /*}*/

    /*.googing-btn-primary:hover span {*/
    /*    !*color: #485B85;*!*/
    /*    transform: translateX(11.31vw);*/
    /*}*/

    /*.googing-btn-1:hover .googing-btn-icon svg {*/
    /*    transform: translateX(-31.31vw) rotate(40deg);*/
    /*}*/

    /*.googing-btn-1:hover::after {*/
    /*    width: 120vw;*/
    /*    height: 120vw;*/
    /*    right: -60vw;*/
    /*}*/

    .googing-form-checkbox {
        gap: 3vw;
        margin-bottom: 4vw;
        align-items: flex-start;
    }

    .googing-form-checkbox input[type="checkbox"] {
        width: 5vw;
        height: 5vw;
        border-radius: 1vw;
        margin-top: 0.5vw;
    }

    .googing-form-checkbox input[type="checkbox"]:checked::after {
        width: 1.2vw;
        height: 2.2vw;
        border-width: 0 0.4vw 0.4vw 0;
        transform: translate(-50%, -60%) rotate(45deg);
    }

    .googing-form-checkbox label {
        font-size: 3.5vw;
        line-height: 1.4;
    }

    .googing-form-disclaimer {
        font-size: 2.865vw;
        line-height: 3.906vw;
    }

    .googing-privacy-link {
        text-underline-offset: 0.6vw;
    }
}
.kvis-container {
    width: 100%;

    /* Отступы: 5.2vw (100px) сверху и снизу, 2.6vw (50px) слева и справа */
    padding: 5.208vw 2.6vw;
    /*padding: 2.604vw;*/

    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 1);
}

.kvis-card {
    background: rgba(255, 255, 255, 1);
    border: 0.062vw solid rgba(235, 235, 235, 1);
    border-radius: 1.05vw;
    padding: 1.6vw;
    width: 100%;
    max-width: 100%;
    min-height: 28.125vw;
    box-shadow: 0 0 3.125vw rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
}

.kvis-content-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    flex: 1 1;
    min-height: 0;
}

.kvis-content-wrapper.kvis-two-columns {
    display: grid;
    grid-template-columns: 1fr 0fr;
    grid-gap: 2.6vw;
    gap: 2.6vw;
    align-items: stretch;
    height: 100%;
    min-height: 0;
}

.kvis-content-wrapper.kvis-two-columns.kvis-step-6 {
    grid-template-columns: 0fr 1fr;
}

.kvis-content-wrapper.kvis-two-columns.kvis-step-6 .kvis-form-section {
    order: 2;
}

.kvis-content-wrapper.kvis-two-columns.kvis-step-6 .kvis-image-section-right {
    order: 1;
}

.kvis-form-section {
    display: flex;
    flex-direction: column;
    flex: 1 1;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.kvis-form-content {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.kvis-form-content.fade-out,
.kvis-discount-text-wrapper.fade-out {
    opacity: 0;
    transform: translateY(-0.52vw);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.kvis-form-content.fade-in,
.kvis-discount-text-wrapper.fade-in {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.kvis-image-section {
    display: flex;
    flex-direction: column;
    gap: 0.83vw;
    position: relative;
    align-items: flex-start;
}

.kvis-doctor-image-wrapper {
    position: relative;
    width: 25.5vw;
    height: 42.5vw;
    border-radius: 0.82vw;
    overflow: hidden;
    background-color: #f0f0f0;
}

.kvis-doctor-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.82vw;
}

.kvis-play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    transition: transform 0.3s ease;
    box-sizing: content-box;
}

.kvis-play-button::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    animation: pulse-border 1500ms ease-out infinite;
}

.kvis-play-button::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 4.17vw;
    height: 4.17vw;
    background: #FFFFFF;
    border-radius: 50%;
    transition: all 200ms;
}

.kvis-play-button:hover::after {
    background-color: #f5f5f5;
}

.kvis-play-button:hover {
    transform: translate(-50%, -50%) scale(1.1);
}

.kvis-play-button svg {
    width: 1.16vw;
    height: 1.35vw;
    transform: translateX(0.1vw);
    position: relative;
    z-index: 3;
}

@keyframes pulse-border {
    0% {
        transform: translate(-50%, -50%) translateZ(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) translateZ(0) scale(1.5);
        opacity: 0;
    }
}


.kvis-calculator-title {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-bold);
    color: #000;
    text-align: left;
    margin-bottom: 0.83vw;
    line-height: var(--line-height-tight);
    margin-top: 0;
}

.kvis-calculator-title-main {
    color: #1a1a1a;
}

.kvis-calculator-title-underline {
    color: #485B85;
    text-decoration: underline;
    text-decoration-thickness: 0.16vw;
    text-underline-offset: 0.26vw;
}

.kvis-calculator-subtitle {
    font-size: var(--font-size-h8);
    font-weight: var(--font-weight-light);
    color: rgba(26, 26, 26, 0.75);
    text-align: left;
    margin-bottom: 3.1vw;
    line-height: var(--line-height-light);
    margin-top: 0;
}

.kvis-title {
    font-size: var(--font-size-h5);
    font-weight: var(--font-weight-medium);
    color: #000;
    text-align: left;
    margin-bottom: 2.57vw;
    line-height: var(--line-height-normal);
    margin-top: 0;
}

.kvis-options-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 0.83vw;
    gap: 0.83vw;
    margin-bottom: 2.6vw;
}

.kvis-option {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 1.56vw 1.01vw;
    border: 0.05vw solid #e0e0e0;
    border-radius: 0.52vw;
    cursor: pointer;
    transition: background-color 0.3s ease;
    background: white;
}

.kvis-option:hover {
    background-color: #EBEBEB;
}

.kvis-option:hover .kvis-checkbox {
    border: 0.052vw solid rgba(25, 25, 25, 0.2);
}

.kvis-radio-wrapper {
    margin-right: calc(20 * var(--fluid-unit));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kvis-radio {
    width: 1.04vw;
    height: 1.04vw;
    border: 0.1vw solid #9e9e9e;
    border-radius: 50%;
    background: white;
    position: relative;
    flex-shrink: 0;
}

.kvis-radio.checked-radio {
    border-color: #4caf50;
}

.kvis-radio-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.52vw;
    height: 0.52vw;
    border-radius: 50%;
    background-color: #4caf50;
}

.kvis-checkbox {
    width: 1.6vw;
    height: 1.6vw;
    border-radius: 0.26vw;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(235, 235, 235, 1);
    box-sizing: border-box;
    border: 0.052vw solid transparent;
    transition: border-color 0.3s ease;
}

.kvis-checkbox.checked {
    position: relative;
}

.kvis-checkbox.checked::before {
    content: '';
    position: absolute;
    top: 0.26vw;
    left: 0.26vw;
    right: 0.26vw;
    bottom: 0.26vw;
    background-color: rgba(72, 91, 133, 1);
    border-radius: 0.16vw;
    z-index: 0;
}

.kvis-checkbox.checked svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    width: 0.469vw;
    height: 0.365vw;
    flex-shrink: 0;
}

.kvis-option-text {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: rgba(25, 25, 25, 1);
    flex: 1 1;
    text-align: left;
    line-height: var(--line-height-normal);
}

.kvis-navigation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.63vw;
    margin-top: auto;
    /* padding-top: 1.04vw; */
}

.kvis-navigation.kvis-navigation-step6 {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    /*margin-top: 2.0vw  ; !* Уменьшили отступ с 6vw до 1vw, чтобы поднять кнопки *!*/
}

.kvis-btn-back {
    padding: 1.46vw 3.35vw;
    border-radius: 2.6vw;
    border: 0.052vw solid #E0E0E0;
    font-size: var(--font-size-h9-5);
    font-weight: 500;
    line-height: 0.99vw;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Geist', sans-serif;
    background: #EBEBEB;
    color: #000000;
    flex-shrink: 0;
    box-sizing: border-box;
}

.kvis-btn-back .btn-text {
    color: #000000;
}

.kvis-btn-back:hover:not(:disabled) {
    background: #EBEBEB;
}

.kvis-btn-back:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* --- Ссылка "Назад" на 6-м шаге (Десктоп) --- */
.kvis-btn-back-step6 {
    font-size: 0.938vw; /* Сделали аккуратный десктопный размер */
    font-weight: 500;
    color: rgba(26, 26, 26, 0.75);
    text-decoration: underline;
    text-underline-offset: 0.2vw; /* Аккуратное подчеркивание */
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    height: auto;
    flex-shrink: 0;
    cursor: pointer;
    transition: color 0.3s ease;
}

.kvis-btn-back-step6:hover:not(:disabled) {
    background: transparent;
    color: #485B85; /* При наведении делаем фирменным синим */
}

.kvis-next-wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.63vw;
}

.kvis-btn-next-1 svg {
    transform: rotate(39deg);
}

.kvis-btn-next {
    /* Стили из header_nuv-btn-1 */
    padding: 0.31vw 0.31vw 0.31vw 1.56vw;
    border-radius: 2.6vw;
    border: 0.052vw solid #2E3D58;
    font-weight: 500 !important;
    font-size: var(--font-size-h9-5) !important;
    line-height: 0.89vw !important;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 1.56vw;
    font-family: 'Geist', sans-serif;
    position: relative;
    overflow: hidden;
}

.kvis-btn-next.header_nuv-btn-primary {
    background: #485B85;
    color: #FFFFFF;
}

.kvis-btn-next.header_nuv-btn-primary span {
    color: #FFFFFF;
    transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 3;
}

.kvis-btn-next.header_nuv-btn-primary:hover span {
    color: #485B85;
    transform: translateX(min(3.65vw, 15.31vw));
}

.kvis-btn-next .header_nuv-btn-icon {
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 50%;
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.kvis-btn-next .header_nuv-btn-icon svg {
    width: 0.73vw;
    height: 0.63vw;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform: rotate(40deg);
}

.kvis-btn-next:hover .header_nuv-btn-icon svg {
    transform: translateX(max(-11.0vw, calc(-20% - 5.96vw))) rotate(40deg) !important;
}

.kvis-btn-next::after {
    content: '';
    position: absolute;
    right: 0.31vw;
    top: 50%;
    transform: translateY(-50%);
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 50%;
    background: #FFFFFF;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
    pointer-events: none;
}

.kvis-btn-next:hover::after {
    width: 41.67vw;
    height: 41.67vw;
    right: -20.83vw;
    top: 50%;
    transform: translateY(-50%);
}

/* Эффект блика для кнопок */
.kvis-btn-next .flare {
    position: absolute;
    top: 0;
    height: 100%;
    width: 45px;
    transform: skewX(-45deg);
    animation: flareAnimation 3s infinite;
    left: -170%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);
    filter: blur(0px);
    z-index: 1;
    pointer-events: none;
}

@keyframes flareAnimation {
    0% {
        left: -170%;
    }
    50% {
        left: 170%;
    }
    100% {
        left: 170%;
    }
}

/* Стили для кнопки ОТПРАВИТЬ */
.kvis-btn-submit .header_nuv-btn-icon svg {
    transform: rotate(40deg);
}

.kvis-btn-submit:hover .header_nuv-btn-icon svg {
    transform: translateX(max(-20.0vw, calc(-10% - 15.4vw))) rotate(40deg) !important;
}

.kvis-discount-message {
    display: flex;
    gap: 1.1vw;
    align-items: center;
    flex: 1 1;
}

.kvis-discount-text-wrapper {
    flex: 1 1;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.781vw;
}

.kvis-discount-icon {
    flex-shrink: 0; /* ЗАПРЕТ на превращение в кляксу */
    width: 1.563vw;
    height: 1.563vw;
    min-width: 18px; /* Чтобы на маленьких экранах не исчезла */
    min-height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.kvis-discount-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Убираем "кляксу" — удаляем лишние трансформации */
.kvis-exclamation-mark {
    transform: none; /* Убираем scale(0.5), который всё портил */
}

/* Настраиваем конкретно восклицательный знак внутри синего круга */
.kvis-exclamation-icon .kvis-exclamation-mark path,
.kvis-exclamation-icon .kvis-exclamation-mark circle {
    stroke: none; /* Здесь обводка не нужна, только заливка */
}

.kvis-discount-text {
    font-size: var(--font-size-h9-5);
    font-weight: 300;
    color: #1A1A1ABF;
    margin: 0;
    line-height: 1.46vw;
    text-align: left;
    font-family: 'Geist', sans-serif;
}

.kvis-discount-dynamic {
    display: flex;
    flex-direction: column;
    gap: 0.2vw;
}

.kvis-discount-current {
    font-size: var(--font-size-h6);
    font-weight: 500;
    color: #1A1A1A;
    margin: 0;
    line-height: 1.46vw;
    text-align: left;
    font-family: 'Geist', sans-serif;
}

.kvis-discount-hint {
    font-size: var(--font-size-h9-5);
    font-weight: 300;
    color: rgba(25, 25, 25, 1);
    margin: 0;
    line-height: 1.46vw;
    text-align: left;
    font-family: 'Geist', sans-serif;
}

.kvis-progress-bar-container {
    position: absolute;
    bottom: 0.6vw;
    left: 0.6vw;
    right: 0.6vw;
    z-index: 10;
}

.kvis-progress-bar {
    width: 100%;
    height: 2.8vw;
    border-radius: 0.6vw;
    background: rgba(255, 255, 255, 0.85);
    position: relative;
    overflow: visible;
    display: flex;
    align-items: center;
    box-shadow: 0 0.1vw 0.26vw rgba(0, 0, 0, 0.1);
}

.kvis-progress-bar-fill {
    height: calc(100% - 0.21vw);
    background-color: rgba(17, 47, 85, 1);
    background-image: repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, 0.3),
            rgba(255, 255, 255, 0.3) 2px,
            transparent 0.1vw,
            transparent 0.42vw
    );
    background-size: 0.59vw 0.59vw;
    background-position: 0 0;
    animation: progressBarStripes 1s linear infinite;
    border-radius: 0.6vw;
    transition: width 0.8s ease;
    position: absolute;
    left: 0.1vw;
    top: 0.1vw;
    z-index: 1;
}

@keyframes progressBarStripes {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 0.59vw 0.59vw;
    }
}

.kvis-progress-text {
    font-size: var(--font-size-body);
    font-weight: 700;
    font-family: 'Geist', sans-serif;
    white-space: nowrap;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    pointer-events: none;
    width: 100%;
    text-align: center;
}

.kvis-progress-text-black {
    color: #000000;
    position: relative;
    white-space: nowrap;
    display: inline-block;
}

.kvis-progress-text-white {
    color: #FFFFFF;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    text-align: center;
    white-space: nowrap;
    z-index: 10;
    -webkit-clip-path: inset(0 calc(100% - var(--progress)) 0 0);
            clip-path: inset(0 calc(100% - var(--progress)) 0 0);
    display: flex;
    align-items: center;
    justify-content: center;
}

.kvis-enter-hint {
    font-size: var(--font-size-body-xxs);
    color: #9e9e9e;
    margin-top: 0.21vw;
}

/* Блок "Готово!" для шага 6 */
.kvis-image-section-right {
    order: 1;
}

.kvis-ready-bar-container {
    position: absolute;
    bottom: 0.6vw;
    left: 0.6vw;
    right: 0.6vw;
    z-index: 10;
}

.kvis-ready-bar {
    width: 100%;
    height: 2.8vw;
    border-radius: 0.6vw;
    background-color: rgba(17, 47, 85, 1);
    background-image: repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, 0.3),
            rgba(255, 255, 255, 0.3) 2px,
            transparent 0.1vw,
            transparent 0.42vw
    );
    background-size: 0.59vw 0.59vw;
    background-position: 0 0;
    animation: progressBarStripes 1s linear infinite;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.83vw;
    padding: 0 1.04vw;
    box-shadow: 0 0.1vw 0.26vw rgba(0, 0, 0, 0.1);
    border: 0.1vw solid rgb(255, 255, 255);
    box-sizing: border-box;
}

.kvis-ready-text {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: #FFFFFF;
    font-family: 'Geist', sans-serif;
    white-space: nowrap;
}

.kvis-ready-bar svg {
    flex-shrink: 0;
    width: 1.15vw;
    height: 1.15vw;
}

/* Финальный шаг */
.kvis-final-step {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}

.kvis-final-left {
    display: flex;
    flex-direction: column;
    gap: 0.5vw;
    text-align: left;
}

.kvis-final-title {
    font-size: 2.04vw;
    font-weight: 600;
    color: #000;
    line-height: 2.9vw;
    margin: 0;
}

.kvis-promo-text {
    font-size: var(--font-size-h8);
    font-weight: 300;
    color: rgba(26, 26, 26, 0.75);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.kvis-offer-cards {
    display: flex;
    flex-direction: column;
    gap: 1vw;
    margin-top: 1.4vw;
}

.kvis-offer-card {
    display: flex;
    align-items: center;
    gap: 1.05vw;
    padding: 1.04vw;
    background: rgba(255, 255, 255, 1);
    border-radius: 1vw;
    border: 0.052vw solid rgba(235, 235, 235, 1);
}

.kvis-offer-icon {
    width: 3.1vw;
    height: 3.1vw;
    background: rgba(17, 47, 85, 1);
    border-radius: 0.36vw;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kvis-offer-icon svg {
    /* width: 100%; */
    /* height: 100%; */
    width: 1.05vw;
    height: 1.05vw;
    object-fit: contain;
}

.kvis-offer-text {
    flex: 1 1;
    font-size: var(--font-size-body);
    font-weight: 500;
    color: rgba(26, 26, 26, 0.75);
    line-height: 1.5vw;
    text-align: left;
}

.kvis-offer-checkbox {
    width: 2.34vw;
    height: 2.34vw;
    border-radius: 0.26vw;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 0.13vw solid rgba(235, 235, 235, 1);
    background: white;
    box-sizing: border-box;
}

.kvis-offer-checkbox.checked {
    background-color: rgba(72, 91, 133, 1);
    border: 0.13vw solid rgba(235, 235, 235, 1);
}

.kvis-offer-checkbox svg {
    width: 0.55vw;
    height: 0.44vw;
}

/* Инпуты для шага 6 */
.kvis-inputs-section {
    display: flex;
    /* flex-direction: column; */
    gap: 1.53vw;
    margin-top: 1.56vw;
}

.kvis-input {
    width: 100%;
    padding: 1.04vw 1.25vw;
    border: 0.052vw solid rgba(235, 235, 235, 1);
    border-radius: 1vw;
    font-size: var(--font-size-body);
    font-family: 'Geist', sans-serif;
    color: rgba(26, 26, 26, 0.75);
    background: white;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.3s ease;
}

.kvis-input::placeholder {
    color: rgba(26, 26, 26, 0.5);
}

.kvis-input:focus {
    border-color: #485B85;
}

/* Убираем синий фон при автозаполнении */
.kvis-input:-webkit-autofill,
.kvis-input:-webkit-autofill:hover,
.kvis-input:-webkit-autofill:focus,
.kvis-input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1.56vw white inset;
    -webkit-text-fill-color: rgba(26, 26, 26, 0.75);
    background-color: white;
    background: white;
}

.kvis-phone-input:-webkit-autofill,
.kvis-phone-input:-webkit-autofill:hover,
.kvis-phone-input:-webkit-autofill:focus,
.kvis-phone-input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1.56vw white inset;
    -webkit-text-fill-color: rgba(26, 26, 26, 0.75);
    background-color: white;
    background: white;
}

.kvis-phone-input-wrapper {
    display: flex;
    width: 100%;
    border: 0.052vw solid rgba(235, 235, 235, 1);
    border-radius: 1vw;
    overflow: hidden;
    background: white;
    transition: border-color 0.3s ease;
}

.kvis-phone-input-wrapper:focus-within {
    border-color: #485B85;
}

.kvis-phone-prefix {
    display: flex;
    align-items: center;
    gap: 0.52vw;
    padding: 1.04vw 1.25vw;
    background: white;
    flex-shrink: 0;
    position: relative;
}

.kvis-phone-prefix::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0.22vw;
    bottom: 0.22vw;
    width: 0.052vw;
    background: rgba(235, 235, 235, 1);
}

.kvis-phone-prefix svg {
    width: 1.04vw;
    height: 0.78vw;
    flex-shrink: 0;
    border: 0.064vw solid rgba(25, 25, 25, 0.411);
}

.kvis-phone-prefix span {
    font-size: var(--font-size-body);
    font-family: 'Geist', sans-serif;
    color: rgba(25, 25, 25, 1);
    font-weight: 500;
}

.kvis-phone-input {
    flex: 1 1;
    border: none;
    border-radius: 0;
    padding: 1.04vw 1.25vw;
}

.kvis-phone-input:focus {
    border: none;
    outline: none;
}

.kvis-final-right {
    display: flex;
    flex-direction: column;
    gap: 1.04vw;
}

.kvis-messenger-title {
    font-size: var(--font-size-body-medium);
    font-weight: var(--font-weight-semibold);
    color: #000;
    margin: 0 0 1.04vw 0;
    text-align: center;
}

.kvis-messenger-buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 0.63vw;
    gap: 0.63vw;
    margin-bottom: 1.04vw;
}

.kvis-phone-btn {
    grid-column: 1;
}

.kvis-messenger-btn {
    padding: 0.63vw 0.83vw;
    border: 0.05vw solid #e0e0e0;
    border-radius: 0.52vw;
    background: #f5f5f5;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: var(--font-size-body-medium);
    font-weight: var(--font-weight-medium);
    display: flex;
    align-items: center;
    gap: 0.63vw;
    text-align: left;
}

.kvis-messenger-btn:hover {
    border-color: #4caf50;
    background-color: #f9f9f9;
}

.kvis-messenger-icon-circle {
    width: 2.08vw;
    height: 2.08vw;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kvis-viber-icon {
    background-color: #8b5cf6;
}

.kvis-whatsapp-icon {
    background-color: #25d366;
}

.kvis-phone-icon {
    background-color: #e91e63;
}

.kvis-messenger-text {
    color: #333;
    font-weight: 500;
}

.kvis-messenger-btn.active {
    border-color: #4caf50;
    background-color: white;
}

.kvis-viber-btn.active .kvis-viber-icon {
    background-color: #8b5cf6;
}

.kvis-whatsapp-btn.active .kvis-whatsapp-icon {
    background-color: #25d366;
}

.kvis-phone-btn.active .kvis-phone-icon {
    background-color: #e91e63;
}

.kvis-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.63vw;
    cursor: pointer;
    font-size: var(--font-size-body-small);
    color: #666;
    line-height: var(--line-height-relaxed);
    text-align: left;
    justify-content: flex-start;
}

.kvis-checkbox-input {
    width: 1.04vw;
    height: 1.04vw;
    margin-top: 0.1vw;
    cursor: pointer;
    flex-shrink: 0;
}

.kvis-checkbox-text {
    text-align: left;
}

/* Чекбокс согласия из Googing */
.googing-form-checkbox {
    display: flex;
    align-items: center;
    gap: 0.53vw;
    justify-content: flex-start;
    width: 40vw;
    margin-bottom: 0;
}

.googing-form-checkbox input[type="checkbox"] {
    width: 0.78vw;
    height: 0.78vw;
    border-radius: 0.2vw;
    border: 0.052vw solid #EBEBEB;
    background: #EBEBEB;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    position: relative;
    flex-shrink: 0;
}

.googing-form-checkbox input[type="checkbox"]:checked {
    background: rgba(72, 91, 133, 1);
    border-color: rgba(46, 61, 88, 1);
}

.layout-fade-out {
    opacity: 0;
    transform: scale(0.99);
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.layout-fade-in {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.googing-form-checkbox input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.12vw;
    height: 0.38vw;
    border: solid white;
    border-width: 0 0.16vw 0.16vw 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.googing-form-checkbox label {
    font-size: calc(18 * var(--fluid-unit));
    font-weight: 300;
    color: rgba(26, 26, 26, 0.75);
    font-family: 'Geist', sans-serif;
    cursor: pointer;
    line-height: calc(28 * var(--fluid-unit));
}

.kvis-privacy-link {
    color: rgba(26, 26, 26, 0.75) !important;
    text-decoration: underline;
}

.kvis-privacy-link:hover {
    text-decoration: underline;
}

.kvis-disclaimer {
    font-size: var(--font-size-body-xxs);
    color: #9e9e9e;
    margin: 0;
    margin-top: auto;
}

/*@media (max-width: 2200px) {*/
/*    .kvis-container {*/
/*        padding: 4.17vw 2.6vw;*/
/*    }*/
/*}*/

@media (min-width: 2200px) {
    .kvis-calculator-title-main {
        font-size: 2.2vw;
    }

    .kvis-calculator-title-underline {
        font-size: 2.2vw;
    }

    .kvis-final-title {
        font-size: 1.6vw;
        line-height: 2.4vw;
    }
}

/* Модальное окно с согласием на обработку персональных данных */
.kvis-privacy-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2vw;
    box-sizing: border-box;
}

.kvis-privacy-modal {
    background: #FFFFFF;
    border-radius: 1.04vw;
    max-width: 60vw;
    max-height: 90vh;
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 60px rgba(0, 0, 0, 0.3);
}

.kvis-privacy-modal-close {
    position: absolute;
    top: 1.04vw;
    right: 1.04vw;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.52vw;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    transition: opacity 0.3s ease;
}

.kvis-privacy-modal-close:hover {
    opacity: 0.7;
}

.kvis-privacy-modal-close svg {
    width: 1.25vw;
    height: 1.25vw;
}

.kvis-privacy-modal-content {
    padding: 2.6vw;
    overflow-y: auto;
    max-height: 90vh;
}

.kvis-privacy-modal-title {
    font-size: var(--font-size-h3);
    font-weight: 600;
    color: #000000;
    margin: 0 0 1.56vw 0;
    font-family: 'Geist', sans-serif;
}

.kvis-privacy-modal-text {
    font-size: var(--font-size-body);
    font-weight: 300;
    color: #1A1A1A;
    line-height: 1.6;
    font-family: 'Geist', sans-serif;
}

.kvis-privacy-modal-text p {
    margin: 0 0 1.04vw 0;
}

.kvis-privacy-modal-text p:last-child {
    margin-bottom: 0;
}

.kvis-privacy-modal-text strong {
    font-weight: 600;
    color: #000000;
}

.kvis-privacy-modal-text ul {
    margin: 1.04vw 0;
    padding-left: 2.08vw;
}

.kvis-privacy-modal-text li {
    margin-bottom: 0.52vw;
}

.kvis-privacy-modal-text li:last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {


    /* =========================================
         ИДЕАЛЬНЫЕ КНОПКИ (Далее, Назад, Получить расчет)
         ========================================= */
    /* Контейнер кнопок (выравниваем вправо) */
    .kvis-next-wrapper {
        order: 2;
        width: 100%;
        display: flex;
        justify-content: flex-end; /* Прижимаем кнопку вправо, как на макете */
        align-items: center;
        gap: 3vw;
        /*margin-top: 0;*/
        padding: 13.021vw 0 ;
    }

    /* --- 1. Серая кнопка "Назад" --- */
    .kvis-btn-back {
        height: 11vw; /* Жесткая высота */
        padding: 0 6vw;
        border-radius: 13vw;
        font-size: 2.82vw;
        font-weight: 500;
        border: 0.2vw solid #E0E0E0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #EBEBEB;
        color: #000000;
        box-sizing: border-box;
    }

    .kvis-btn-back .btn-text {
        color: #000000;
    }

    /* --- 2. Синие кнопки (База) --- */
    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary {
        width: auto;
        height: 13.021vw; /* Точно такая же высота, как у кнопки Назад */
        padding: 1vw 1vw 1vw 6vw; /* Отступы формируют каемочку */
        border-radius: 13vw;
        border: none;
        display: flex;
        align-items: center;
        justify-content: space-between;
        box-sizing: border-box;
        gap: 4vw;
    }

    /* Текст внутри синих кнопок */
    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary span {
        font-size: 2.82vw;
        font-weight: 500;
        line-height: 1;
        color: #FFFFFF;
    }

    /* Белый кружок */
    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary .header_nuv-btn-icon {
        width: 9vw; /* Уменьшили: 11vw - 2vw (отступы) = 9vw */
        height: 9vw;
        border-radius: 50%;
        background: #FFFFFF;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        margin: 0;
    }

    /* Стрелочка ровно вправо (поворот на 45 градусов) */
    /*.kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary .header_nuv-btn-icon svg {*/
    /*    width: 3.5vw;*/
    /*    height: 3.5vw;*/
    /*    transform: rotate(45deg);*/
    /*}*/

    /* Анимация при наведении */
    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary:hover span {
        color: #FFFFFF; /* Текст остается белым */
        transform: translateX(0); /* Не сдвигается */
    }

    /*.kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary:hover .header_nuv-btn-icon svg {*/
    /*    transform: rotate(45deg);*/
    /*}*/

    /* Эффект заливки (белая волна при наведении) */
    /*.kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary::after {*/
    /*    !*width: 9vw;*!*/
    /*    !*height: 9vw;*!*/
    /*    !*right: 1vw;*!*/
    /*}*/

    /*.kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary:hover::after {*/
    /*    !*width: 11vw; !* Оставляем размер кружка стандартным *!*!*/
    /*    !*height: 11vw;*!*/
    /*    !*right: 1vw;*!*/
    /*    !*width: 100%;*!*/
    /*    !*height: 100%;*!*/
    /*    !*left: 0;*!*/
    /*    !*right: 0;*!*/
    /*    !*border-radius: 0;*!*/
    /*}*/

    /* --- 3. Финальная кнопка "Получить расчет" (6 шаг) --- */
    .kvis-btn-next.kvis-btn-submit.header_nuv-btn-1.header_nuv-btn-primary {
        /*width: 68%; !* Сделали поуже (было 76%) *!*/
        /*height: 13.021vw; !* Синхронизируем высоту с остальными *!*/
        /*padding: 1vw 1vw 1vw 3.5vw;*/
        margin: 0;
    }

    /* Чуть уменьшаем текст, чтобы он влез в одну строку */
    .kvis-btn-next.kvis-btn-submit.header_nuv-btn-1.header_nuv-btn-primary span {
        font-size: 3.385vw; /* Чуть уменьшили текст, чтобы влез в узкую кнопку */
        white-space: nowrap;
        text-align: center;
        flex: 1 1;
    }

    .kvis-btn-next.kvis-btn-submit.header_nuv-btn-1.header_nuv-btn-primary:hover span {
        transform: translateX(8.974vw);
        color: rgba(72, 91, 133, 1);
    }

    .kvis-btn-next.kvis-btn-submit.header_nuv-btn-1.header_nuv-btn-primary:hover svg {
        transform: translateX(-53.521vw) rotate(40deg) !important;
    }

    /* --- 4. Ссылка "Назад" на 6-м шаге --- */
    .kvis-btn-back-step6 {
        font-size: 3.385vw;
        line-height: 5.208vw;
        font-weight: 300;
        color: rgba(26, 26, 26, 0.75); /* Тот самый нужный серый цвет */
        text-decoration: underline;
        text-underline-offset: 0.6vw;
        background: transparent;
        border: none;
        padding: 0;
        margin: 0;
        height: 11vw; /* Синхронизируем высоту с синей кнопкой */
        display: flex;
        align-items: center; /* Идеально центрируем по вертикали */
        flex-shrink: 0;
    }


    .kvis-container {
        padding: 19.531vw 1.923vw 0 1.923vw;
    }

    .kvis-card {
        padding: 3.906vw;
        border-radius: 2.564vw;
    }

    .kvis-content-wrapper.kvis-two-columns {
        display: flex;
        flex-direction: column;
        gap: 6.41vw;
    }

    .kvis-content-wrapper.kvis-two-columns.kvis-step-6 {
        flex-direction: column;
    }

    .kvis-content-wrapper.kvis-two-columns.kvis-step-6 .kvis-form-section {
        order: 2;
    }

    .kvis-content-wrapper.kvis-two-columns.kvis-step-6 .kvis-image-section-right {
        order: 1;
    }

    .kvis-image-section-right .kvis-doctor-image-wrapper,
    .kvis-image-section.kvis-image-section-right .kvis-doctor-image-wrapper {
        position: relative;
    }

    .kvis-image-section-right .kvis-play-button,
    .kvis-image-section.kvis-image-section-right .kvis-play-button {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 15.38vw;
        height: 15.38vw;
        z-index: 10;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .kvis-image-section-right .kvis-play-button::before,
    .kvis-image-section-right .kvis-play-button::after,
    .kvis-image-section.kvis-image-section-right .kvis-play-button::before,
    .kvis-image-section.kvis-image-section-right .kvis-play-button::after {
        width: 15.38vw;
        height: 15.38vw;
    }

    .kvis-image-section-right .kvis-play-button svg,
    .kvis-image-section.kvis-image-section-right .kvis-play-button svg {
        width: 3.46vw;
        height: 4.36vw;
    }

    .kvis-image-section {
        order: 1;
        width: 100%;
    }

    .kvis-form-section {
        order: 2;
    }

    .kvis-doctor-image-wrapper {
        width: 100%;
        height: 116.67vw;
        border-radius: 1.923vw;
    }

    .kvis-doctor-image {
        border-radius: 1.923vw;
    }

    .kvis-play-button {
        width: 15.38vw;
        height: 15.38vw;
    }

    .kvis-play-button::before,
    .kvis-play-button::after {
        width: 15.38vw;
        height: 15.38vw;
    }

    .kvis-play-button svg {
        width: 3.46vw;
        height: 4.36vw;
    }

    .kvis-progress-bar-container {
        bottom: 1.282vw;
        left: 1.282vw;
        right: 1.282vw;
    }

    .kvis-progress-bar {
        height: 9.115vw;
        border-radius: 1.282vw;
    }

    .kvis-progress-bar-fill {
        height: calc(100% - 0.513vw);
        border-radius: 1.026vw;
        background-image: repeating-linear-gradient(
                -45deg,
                rgba(255, 255, 255, 0.3),
                rgba(255, 255, 255, 0.3) 0.51vw,
                transparent 0.51vw,
                transparent 1.15vw
        );
        background-size: 1.67vw 1.67vw;
        animation: progressBarStripesMobile 1s linear infinite;
        position: absolute;
        left: 0.256vw;
        top: 0.256vw;
    }

    @keyframes progressBarStripesMobile {
        0% {
            background-position: 0 0;
        }
        100% {
            background-position: 1.67vw 1.67vw;
        }
    }

    .kvis-progress-text {
        font-size: 3.077vw;
        font-weight: 700;
    }

    .kvis-ready-bar-container {
        bottom: 1.282vw;
        left: 1.282vw;
        right: 1.282vw;
    }

    .kvis-ready-bar {
        height: 7.179vw;
        border-radius: 1.282vw;
        background-image: repeating-linear-gradient(
                -45deg,
                rgba(255, 255, 255, 0.3),
                rgba(255, 255, 255, 0.3) 0.51vw,
                transparent 0.51vw,
                transparent 1.15vw
        );
        background-size: 1.67vw 1.67vw;
        animation: progressBarStripesMobile 1s linear infinite;
        gap: 3.85vw;
    }

    .kvis-ready-text {
        font-size: 3.077vw;
        font-weight: 700;
    }

    .kvis-ready-bar svg {
        width: 3.33vw;
        height: 3.33vw;
    }

    .kvis-calculator-title {
        width: 100%;
        font-size: 5.867vw;
        font-weight: 700;
        line-height: 8.475vw;
        margin-bottom: 0;
    }

    .kvis-calculator-title-underline {
        text-decoration-thickness: 0.26vw;
        text-underline-offset: 0.64vw;
    }

    .kvis-calculator-subtitle {
        width: 100%;
        font-size: 3.390vw;
        font-weight: 300;
        line-height: 5.215vw;
        margin-top: 2.56vw;
        margin-bottom: 0;
    }

    .kvis-title {
        margin-top: 10.26vw;
        margin-bottom: 6.41vw;
        font-size: 4.10vw;
        font-weight: 500;
    }

    .kvis-option {
        padding: 3.85vw 2.56vw;
        border-radius: 2.564vw;
    }

    .kvis-radio-wrapper {
        margin-right: 2.564vw;
    }

    .kvis-checkbox {
        width: 5.13vw;
        height: 5.13vw;
        border-radius: 0.641vw;
    }

    .kvis-checkbox.checked svg {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 1.54vw;
        height: 1.15vw;
    }

    .kvis-checkbox.checked::before {
        width: 3.33vw;
        height: 3.33vw;
        top: 50%;
        left: 50%;
        right: auto;
        bottom: auto;
        transform: translate(-50%, -50%);
        border-radius: 0.641vw;
    }

    .kvis-option-text {
        font-size: 2.82vw;
        font-weight: 500;
    }

    .kvis-options-grid {
        grid-template-columns: 1fr;
        gap: 2.564vw;
        margin-bottom: 6.41vw;
    }

    .kvis-navigation {
        display: flex;
        flex-direction: column; /* Главное исправление! */
        align-items: stretch;
        gap: 5vw; /* Расстояние между текстом и кнопками */
        width: 100%;
    }

    .kvis-navigation.kvis-navigation-step6 {
        display: flex;
        margin-top: 13.021vw;
    }

    .kvis-discount-message {
        order: 1;
        width: 100%;
        display: flex;
        align-items: center;
        gap: 2vw; /* Уменьшили отступ от иконки */
    }

    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary:active {
        transform: scale(0.97);
        transition: transform 0.1s ease;
    }

    /* --- ОТКЛЮЧЕНИЕ СДВИГОВ И МАСШТАБА ДЛЯ МОБИЛЬНЫХ --- */
    .kvis-form-content,
    .kvis-form-content.fade-out,
    .kvis-form-content.fade-in,
    .kvis-discount-text-wrapper.fade-out,
    .kvis-discount-text-wrapper.fade-in,
    .layout-fade-out,
    .layout-fade-in {
        transform: none;
        gap: 3.911vw;
    }


    .kvis-discount-icon {
        width: 5.859vw;
        height: 5.859vw;
        border-radius: 50%;
        overflow: hidden;
        padding: 0;
        margin: 0;
    }

    .kvis-discount-icon svg {
        width: 5.859vw;
        height: 5.859vw;
    }

    .kvis-discount-text {
        font-family: 'Geist', sans-serif;
        font-weight: 300;
        font-size: 3.385vw; /* Идеальный размер, чтобы влезло в 1 строку */
        line-height: 5.208vw; /* Line height 30px для 20px - это 1.5 */
        letter-spacing: 0;
        color: rgba(25, 25, 25, 1);
        width: 100%;
        margin: 0;
    }

    .kvis-btn-next {
        width: auto;
        padding: 0.77vw 0.77vw 0.77vw 3.21vw;
        border-radius: 6.41vw;
        font-size: 3.21vw;
        line-height: 2.18vw;
        gap: 3.85vw;
    }

    .kvis-btn-next .header_nuv-btn-icon {
        width: 7.69vw;
        height: 7.69vw;
    }

    /*.kvis-btn-next .header_nuv-btn-icon svg {*/
    /*    width: 2.05vw;*/
    /*    height: 1.79vw;*/
    /*}*/

    .kvis-btn-next::after {
        right: 0.77vw;
        width: 7.69vw;
        height: 7.69vw;
    }

    .kvis-btn-next:hover::after {
        width: 102.56vw;
        /*height: 102.56vw;*/
        /*right: -51.28vw;*/
    }

    .kvis-btn-next.header_nuv-btn-primary:hover span {
        transform: translateX(8.24vw);
    }

    .kvis-btn-next:hover .header_nuv-btn-icon svg {
        transform: translateX(-16.103vw) rotate(40deg);
    }


    /* Уменьшенная и аккуратная стрелочка вправо */
    .kvis-btn-next.header_nuv-btn-1.header_nuv-btn-primary .header_nuv-btn-icon svg {
        width: 2.2vw; /* Было 3.5vw */
        height: 2.2vw; /* Было 3.5vw */
        transform: rotate(0deg);
    }


    .kvis-btn-submit.header_nuv-btn-primary:hover span {
        transform: translateX(8.974vw);
    }

    .kvis-btn-submit:hover .header_nuv-btn-icon svg {
        transform: rotate(45deg);
    }


    .kvis-discount-dynamic {
        gap: 0.5vw;
    }

    .kvis-discount-current {
        font-size: 2.82vw;
        line-height: 3.59vw;
    }

    .kvis-discount-hint {
        font-size: 2.31vw;
        line-height: 3.08vw;
    }

    .kvis-final-title {
        font-size: 5.0vw;
        font-weight: 600;
        line-height: 7.05vw;
        margin-bottom: 2.56vw;
    }

    .kvis-promo-text {
        font-size: 3.33vw;
        font-weight: 300;
        line-height: 5.13vw;
    }

    .kvis-offer-cards {
        gap: 2.56vw;
        margin-top: 6.41vw;
    }

    .kvis-offer-card {
        gap: 2.69vw;
        padding: 2.67vw;
        border-radius: 2.56vw;
    }

    .kvis-offer-icon {
        width: 7.95vw;
        height: 7.95vw;
        border-radius: 0.92vw;
    }

    .kvis-offer-icon svg {
        width: 2.69vw;
        height: 2.69vw;
    }

    .kvis-offer-text {
        font-size: 2.82vw;
        font-weight: 500;
        line-height: 3.85vw;
    }

    .kvis-offer-checkbox {
        width: 6vw;
        height: 6vw;
        border-radius: 0.67vw;
        border: 0.33vw solid rgba(235, 235, 235, 1);
    }

    .kvis-offer-checkbox.checked {
        border: 0.33vw solid rgba(235, 235, 235, 1);
    }

    .kvis-offer-checkbox svg {
        width: 1.41vw;
        height: 1.13vw;
    }

    .kvis-inputs-section {
        flex-direction: column;
        gap: 2.604vw;
        margin-top: 6.41vw;
    }

    .kvis-input {
        padding: 5.208vw 2.604vw;
        border-radius: 2.56vw;
    }

    .kvis-input.kvis-name-input {
        font-size: 3.385vw;
        line-height: 5.208vw;
        font-weight: 300;
    }

    .kvis-phone-input-wrapper {
        border-radius: 2.56vw;
    }

    .kvis-phone-prefix {
        padding: 5.208vw 3.906vw;
        gap: 1.33vw;
    }

    .kvis-phone-prefix span {
        font-size: 2.31vw;
        font-weight: 500;
    }

    .kvis-phone-prefix svg {
        width: 3.21vw;
        height: 2.41vw;
    }

    .kvis-phone-input {
        padding: 5.208vw 3.906vw;
        font-size: 3.385vw;
        line-height: 5.208vw;
        font-weight: 300;
    }

    .kvis-checkbox-label {
        gap: 1.61vw;
        font-size: 1.79vw;
        line-height: 2.56vw;
    }


    .googing-form-checkbox {
        gap: 1.36vw;
        width: 100%;
        margin-top: 2.56vw;
    }

    .googing-form-checkbox input[type="checkbox"] {
        width: 4vw;
        height: 4vw;
        border-radius: 0.51vw;
        border: 0.13vw solid #EBEBEB;
    }

    .googing-form-checkbox input[type="checkbox"]:checked {
        border: 0.13vw solid rgba(46, 61, 88, 1);
    }

    .googing-form-checkbox input[type="checkbox"]:checked::after {
        content: '';
        position: absolute;
        left: 50%;
        top: 50%;
        width: 0.38vw;
        height: 0.77vw;
        border: solid white;
        border-width: 0 0.26vw 0.26vw 0;
        transform: translate(-50%, -60%) rotate(45deg);
    }

    .googing-form-checkbox label {
        font-size: 2.865vw;
        line-height: 3.906vw;
    }
}

/* =========================================
   РАЗМЕРЫ ИЗ FIGMA С АДАПТАЦИЕЙ В VW (Desktop)
   ========================================= */
@media (min-width: 781px) {
    /* gap: 30px */
    .kvis-inputs-section {
        gap: 1.563vw;
    }

    /* width: 590px, height: 80px, border-radius: 20px, border-width: 1px */
    .kvis-input.kvis-name-input,
    .kvis-phone-input-wrapper {
        width: 30.729vw;
        height: 4.167vw;
        border-radius: 1.042vw;
        border-width: 0.052vw;
    }

    /* padding: 20px */
    .kvis-input.kvis-name-input {
        padding: 1.042vw;
    }

    /* Внутренние отступы для телефона (padding 20px) */
    .kvis-phone-prefix {
        padding: 0 1.042vw;
        height: 100%;
    }

    .kvis-phone-input {
        padding: 0 1.042vw;
        height: 100%;
        border: none;
    }

    /* Шрифт: 18px, line-height: 28px */
    .kvis-btn-next.kvis-btn-submit span {
        font-family: 'Geist', sans-serif;
        font-weight: 500;
        font-size: 0.938vw;
        line-height: 1.458vw;
        letter-spacing: 0%;
        vertical-align: middle;
    }
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1.042vw;
}


/* --- КЛЮЧЕВЫЕ КАДРЫ (АНИМАЦИИ) --- */
@keyframes fadeInOverlay {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeOutOverlay {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes scaleInModal {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes scaleOutModal {
    from {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
    to {
        opacity: 0;
        transform: scale(0.95) translateY(20px);
    }
}

/* --- ПРИМЕНЕНИЕ АНИМАЦИЙ К БЛОКАМ --- */

/* НОВЫЙ ВАРИАНТ: Мягкий блюр как на макете */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5); /* Чуть темнее фон для контраста */
    backdrop-filter: blur(5px); /* <--- УМЕНЬШИЛИ ДО 5px */
    -webkit-backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 1.042vw;
}

/* Анимация ПРИ ЗАКРЫТИИ для фона */
.modal-overlay.closing {
    animation: fadeOutOverlay 0.4s ease-out forwards;
}

.modal-content {
    background: white;
    border-radius: 1.04vw;
    padding: 0;
    /*width: 68vw; */
    height: auto; /* Окно теперь облегает контент */
    /*max-width: 90vw;*/
    position: relative;
    box-shadow: 0 0 2.08vw 0 rgba(0, 0, 0, 0.1);
    overflow: hidden;
    display: flex;
}

/* Анимация ПРИ ЗАКРЫТИИ для карточки */
.modal-content.closing {
    animation: scaleOutModal 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* БАЗОВЫЕ ОТСТУПЫ */
.modal-wrapper {
    display: flex;

    /* ФИКС 1: СТРОГО 50 ПИКСЕЛЕЙ (2.6vw) между левым видео/фото и правым текстом */
    gap: 2.6vw;

    /* ФИКС 2: Уменьшили отступ СПРАВА (до 4.5vw).
       Теперь дыра между текстом "Перезвоним за 2 минуты" и кнопкой выйти исчезнет! */
    padding: 1.04vw;

    width: 100%;
    height: 100%;
    box-sizing: border-box;
    align-items: stretch;
}

/* ИНДИВИДУАЛЬНАЯ НАСТРОЙКА ДЛЯ ВТОРОГО ПОПАПА */
.modal-content.type-emergency .modal-wrapper {
    /* Для "Острой боли" делаем отступ справа чуть больше (5.5vw),
       чтобы длинная строчка текста не врезалась в крестик */
    /*padding-right: 5.5vw ; */
}

.modal-image-block {
    flex: 1 1;
    min-width: 0;
    overflow: hidden;
    border-radius: 0.521vw;
    width: 30.990vw;
    height: 27.031vw;
    /*height: auto;*/
}

.modal-image-block video,
.modal-image-block img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: inherit;
}

.modal-image-block img {
    object-position: center 25%;
    /*height: 26.667vw;*/
    /*width: 30.990vw;*/
}

.modal-image-block video {
    /*height: 26.563vw;*/
    /*width: 30.990vw;*/
}

.modal-form-block {
    display: flex;
    flex-direction: column;

    /* ФИКС: Отключаем резиновую ширину. Блок теперь строго равен переменной */
    flex: none;
    width: var(--form-width);

    height: auto;
    justify-content: flex-start;
    text-align: left;
}

.video-review-block {
    padding: 1.5vw 0;
}

.modal-close {
    position: absolute;

    /* Стоит аккуратно с краю: по 20 пикселей сверху и справа */
    top: 1.04vw;
    right: 1.04vw;

    width: 2.5vw;
    height: 2.5vw;
    background: #F6F6F6;
    border: none;
    border-radius: 50%;
    color: #a0a0a0;
    cursor: pointer;
    /*display: flex;*/
    align-items: center;
    justify-content: center;
    padding: 0;
    box-sizing: border-box;
    transition: all 0.3s ease;
    z-index: 1001;
    display: none;
}

.modal-close svg {
    width: 1.1vw;
    height: 1.1vw;
    display: block;
    margin: 0;
}

.modal-close svg {
    /* Вместо 45% используем точные vw, чтобы избежать дробных пикселей */
    width: 1.1vw;
    height: 1.1vw;
    display: block;
    margin: 0; /* Дополнительная гарантия математического центра */
}

/* Эффект при наведении (Ховер) */
.modal-close:hover {
    background: #EBEBEB;
    color: #2E3D58;
    transform: rotate(90deg);
}


.modal-title {
    font-family: 'Geist', sans-serif;
    font-weight: 600;
    /*font-size: clamp(30px, 2.2vw, 44px);*/
    /*line-height: clamp(36px, 2.9vw, 54px);*/

    color: rgba(17, 47, 85, 1);
    margin: 0 0 0.52vw 0;
    text-align: left;

    /* ФИКС: Базовая ширина по инпутам, но разрешаем растягиваться под длинный текст */
    min-width: 27.86vw;
    width: -webkit-max-content;
    width: max-content;
    padding-right: 0;

    /* Строго 1 строка, НИКАКОЙ обрезки троеточием */
    white-space: nowrap;
    overflow: visible;
    display: block;
}

.title-callback {
    font-size: 2.08vw;
    line-height: 2.86vw;
}

.title-emergency {
    font-size: var(--font-size-h3);
    /*text-wrap: wrap ;*/
}

.modal-description,
.modal-description span {
    font-family: 'Geist', sans-serif;
    font-weight: 200;
    font-size: 1.146vw;
    line-height: 1.719vw;
    color: #1A1A1A;
    text-align: left;
    margin: 0 0 1.56vw 0;

    /* Идеальная ширина */
    width: var(--form-width);
    max-width: var(--form-width);

    /* Строго 3 строки */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal;
}

.modal-form {
    display: flex;
    flex-direction: column;
    margin: 0;
    gap: 0;
    flex-grow: 1;

    /* Идеальная ширина */
    width: var(--form-width);
    max-width: var(--form-width);
}

.video-review-form {
    gap: 0.52vw;
}

/* Стили для инпутов и кнопок из Footer */

/* 1. Железобетонно одинаковые обертки для обоих полей */
.modal-form .modal-name-input-wrapper,
.modal-form .modal-phone-input-wrapper {
    display: flex;

    /* Идеальная ширина */
    width: var(--form-width);
    max-width: var(--form-width);

    height: 4.16vw;
    border-radius: 1.04vw;
    border: 0.052vw solid rgba(25, 25, 25, 0.2);
    background: white;
    transition: border-color 0.3s ease;
    align-items: center;
    box-sizing: border-box;
    padding: 0 1.04vw;
    overflow: hidden;
}

/* БАЗОВОЕ ОКНО ("Перезвоним за 2 минуты") */
.modal-content {
    background: white;
    border-radius: 1.04vw;
    padding: 0;

    /* ФИКС: Немного сузили окно (до 65vw), чтобы крестик "приехал" ближе к тексту */
    /*width: 65vw; */

    height: auto;
    max-width: 90vw;
    position: relative;
    box-shadow: 0 0 2.08vw 0 rgba(0, 0, 0, 0.1);
    overflow: hidden;
    display: flex;

    --form-width: 27.86vw;
}

/* УВЕЛИЧЕННОЕ ОКНО ("Беспокоит острая зубная боль?") */
.modal-content.type-emergency {
    /*--form-width: 33vw;*/
    /* Оставляем широким, чтобы влез длинный текст */
    /*width: 73vw ; */
}

.modal-form .modal-name-input-wrapper:focus-within,
.modal-form .modal-phone-input-wrapper:focus-within {
    border-color: #485B85;
}

.modal-form .modal-phone-input-wrapper {
    margin-bottom: 1vw; /* Ровно 10px до блока с согласием */
}

.modal-review-textarea-wrapper {
    width: var(--form-width);
    max-width: var(--form-width);
    /*min-height: 8.85vw;*/
    border-radius: 1.04vw;
    border: 0.052vw solid rgba(25, 25, 25, 0.2);
    background: white;
    transition: border-color 0.3s ease;
    box-sizing: border-box;
    padding: 1.04vw;
    margin-bottom: 1vw;
}

.modal-review-textarea-wrapper:focus-within {
    border-color: #485B85;
}

.modal-review-textarea {
    width: 100%;
    /*min-height: 6.77vw;*/
    border: none;
    outline: none;
    resize: none;
    background: transparent;
    font-family: 'Geist', sans-serif;
    font-weight: 300;
    font-size: 1.04vw;
    line-height: 1.56vw;
    color: rgba(26, 26, 26, 0.75);
    padding: 0;
    box-sizing: border-box;
}

.modal-review-textarea::placeholder {
    font-weight: 300;
    font-size: 1.04vw;
    line-height: 1.56vw;
    color: rgba(26, 26, 26, 0.75);
}

.modal-upload-field {
    width: var(--form-width);
    max-width: var(--form-width);
    margin-bottom: 1vw;
    display: flex;
    align-items: baseline;
    gap: 0.78vw;
    min-width: 0;
}

.modal-upload-field.is-error .modal-upload-trigger {
    color: #c43b3b;
}

.modal-upload-input {
    position: absolute;
    width: 0.005vw;
    height: 0.005vw;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
}

.modal-upload-trigger {
    display: inline-block;
    font-family: 'Geist', sans-serif;
    font-size: 0.94vw;
    line-height: 1.46vw;
    font-weight: 300;
    color: #1A1A1ABF;
    text-decoration: underline;
    text-underline-offset: 0.16vw;
    cursor: pointer;
    transition: color 0.3s ease;
    text-wrap: nowrap;
}

.modal-upload-trigger:hover {
    color: #485B85;
}

.modal-upload-summary {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 0.78vw;
}

.modal-upload-name,
.modal-upload-clear {
    font-family: 'Geist', sans-serif;
    font-size: 0.83vw;
    line-height: 1.2;
}

.modal-upload-name {
    color: rgba(26, 26, 26, 0.85);
    flex: 1 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modal-upload-clear {
    width: -webkit-fit-content;
    width: fit-content;
    padding: 0;
    border: none;
    background: transparent;
    color: #485B85;
    cursor: default;
    pointer-events: none;
    white-space: nowrap;
}

/* Отступ 10px (0.52vw) между первым и вторым полем */
.modal-form .modal-name-input-wrapper {
    margin-bottom: 0.52vw; /* Добавил , чтобы точно перебить всё остальное */
}

.modal-form .modal-name-input {
    width: 100%;
    height: 100%; /* Растягиваем на всю высоту 80px */
    border: none;
    outline: none;
    background: transparent;
    font-family: 'Geist', sans-serif;
    font-weight: 300;
    font-size: 1.04vw;
    color: rgba(26, 26, 26, 0.75);
    padding: 0; /* Убрали старые отступы */
}

.modal-form .modal-phone-prefix {
    display: flex;
    align-items: center;
    gap: 0.52vw;
    padding: 0 0.52vw 0 0; /* Оставляем только отступ справа до полоски */
    height: 100%;
    background: transparent;
    flex-shrink: 0;
    position: relative;
}

.modal-form .modal-phone-prefix::after {
    content: '';
    position: absolute;
    right: 0;
    top: 15%;
    bottom: 15%;
    width: 0.052vw;
    background: #EBEBEB;
}

.modal-form .modal-phone-input {
    flex: 1 1;
    min-width: 0;
    height: 100%; /* Растягиваем на всю высоту */
    border: none;
    outline: none;
    background: transparent;
    font-family: 'Geist', sans-serif;
    font-weight: 300;
    font-size: 1.04vw;
    color: rgba(26, 26, 26, 0.75);
    padding: 0 0 0 1.04vw; /* Отступ слева от разделителя */
}

.modal-form .modal-name-input::placeholder,
.modal-form .modal-phone-input::placeholder {
    font-weight: 300;
    font-size: 1.04vw;
    line-height: 1.56vw;
    color: rgba(26, 26, 26, 0.75);
}


.modal-form .modal-phone-prefix svg {
    width: 1.04vw;
    height: 0.78vw;
    flex-shrink: 0;
}

.modal-form .modal-phone-prefix span {
    font-family: 'Geist', sans-serif;
    font-weight: 300; /* Меняем с 500 на 300, чтобы совпадало с вводом */
    font-size: 1.04vw; /* 20px */
    line-height: 1.56vw; /* 30px */
    color: rgba(26, 26, 26, 0.75);
    vertical-align: middle;
}


.modal-form .googing-form-checkbox {
    display: flex;
    align-items: center;
    gap: 0.53vw;
    justify-content: flex-start;
    width: 100%;
    margin-left: 0.52vw; /* Тот самый сдвиг на +10px слева */
    margin-bottom: 1vw; /* Отступ 20px до кнопки */
    box-sizing: border-box;
}

.modal-form .googing-form-checkbox input[type="checkbox"] {
    width: 0.78vw;
    height: 0.78vw;
    border-radius: 0.2vw;
    border: 0.052vw solid #EBEBEB;
    background: #EBEBEB;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    position: relative;
    flex-shrink: 0;
}

.modal-form .googing-form-checkbox input[type="checkbox"]:checked {
    background: rgba(72, 91, 133, 1);
    border-color: rgba(46, 61, 88, 1);
}

.modal-form .googing-form-checkbox input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.12vw;
    height: 0.38vw;
    border: solid white;
    border-width: 0 0.16vw 0.16vw 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.modal-form .googing-form-checkbox label {
    /*font-size: var(--font-size-body-medium);*/
    font-weight: 400;
    color: #666666;
    font-family: 'Geist', sans-serif;
    cursor: pointer;
    text-align: left;

}

.modal-form .googing-btn-1 {
    padding: 0.31vw 0.31vw 0.31vw 1.56vw;
    border-radius: 2.6vw;
    border: 0.052vw solid #2E3D58;
    font-weight: 500;
    font-size: var(--font-size-button);
    line-height: 0.89vw;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 1.56vw;
    font-family: 'Geist', sans-serif;
    position: relative;
    overflow: hidden;
    width: 16.625vw;
    justify-content: space-between;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.modal-form .googing-btn-1.upload-file-btn {
    width: -webkit-fit-content;
    width: fit-content;
    min-width: 0;
    padding-right: 0.31vw;
    gap: 1.04vw;
}

.modal-form .googing-btn-primary {
    margin-top: 0; /* Убрали пружину */
    margin-bottom: 0;
    align-self: flex-end;
}

.modal-form .modal-action-button {
    align-self: flex-end;
    width: 16.625vw;
}

.modal-form .modal-action-button.upload-file-btn {
    width: -webkit-fit-content;
    width: fit-content;
}

.modal-form .googing-btn-primary span {
    color: #FFFFFF;
    transition: color 0.3s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 3;
    font-family: 'Geist', sans-serif;

    /* УМЕНЬШИЛИ ЖИРНОСТЬ БЕЛОГО ТЕКСТА (было 400, стало 300) */
    font-weight: 300;
    font-size: 0.938vw;
    line-height: 1.458vw;
}

.modal-form .googing-btn-primary:not(:disabled):hover span {
    color: #485B85;
    transform: translateX(min(4.3vw, 15.31vw));
}

.modal-form .googing-btn-icon {
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 50%;
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.modal-form .googing-btn-icon svg {
    width: 0.73vw;
    height: 0.63vw;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal-form .googing-btn-1 .flare {
    position: absolute;
    top: 0;
    height: 100%;
    width: 2.344vw;
    transform: skewX(-45deg);
    animation: flareAnimation 3s infinite;
    left: -170%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);
    filter: blur(0px);
    z-index: 1;
    pointer-events: none;
}

@keyframes flareAnimation {
    0% {
        left: -170%;
    }
    50% {
        left: 170%;
    }
    100% {
        left: 170%;
    }
}

.modal-form .googing-btn-1:not(:disabled):hover .googing-btn-icon svg {
    transform: translateX(max(-12.7vw, calc(-10% - 30.56vw))) rotate(40deg);
}

.modal-form .googing-btn-1.upload-file-btn:not(:disabled):hover span {
    transform: translateX(calc(32 * var(--fluid-unit)));
}

.modal-form .googing-btn-1.upload-file-btn:not(:disabled):hover .googing-btn-icon svg {
    transform: translateX(calc(-100% - 6.3vw)) rotate(40deg);
}

.modal-form .googing-btn-1::after {
    content: '';
    position: absolute;
    right: 0.31vw;
    top: 50%;
    transform: translateY(-50%);
    width: 3.125vw;
    height: 3.125vw;
    border-radius: 50%;
    background: #FFFFFF;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
    pointer-events: none;
}

.modal-form .googing-btn-1:not(:disabled):hover::after {
    width: 41.67vw;
    height: 41.67vw;
    right: -20.83vw;
    top: 50%;
    transform: translateY(-50%);
}

.modal-form .googing-btn-1:disabled {
    cursor: not-allowed;
    opacity: 1;
    pointer-events: none;
}

.modal-form .googing-btn-1:disabled span {
    opacity: 0.5;
    transform: none;
}

.modal-form .googing-btn-1:disabled .flare {
    animation: none;
    opacity: 0;
}

.modal-form .googing-btn-1.is-submitting span {
    color: #FFFFFF;
    transform: none;
}

.modal-form .googing-btn-1.is-submitting .googing-btn-icon svg {
    transform: none;
}

.modal-form .googing-btn-1.is-submitting::after {
    width: 3.125vw;
    height: 3.125vw;
    right: 1.31vw;
    transform: translateY(-50%);
}

.modal-form .googing-btn-1.is-submitting .flare {
    animation: none;
    opacity: 0;
}

.modal-form .googing-btn-1.is-submitting:hover span {
    color: #FFFFFF;
    transform: none;
}

.modal-form .googing-btn-1.is-submitting:hover .googing-btn-icon svg {
    transform: none;
}

.modal-form .googing-btn-1.is-submitting:hover::after {
    width: 3.125vw;
    height: 3.125vw;
    right: 0.31vw;
    transform: translateY(-50%);
}


/* Добавим стиль для видео на десктопе (так как мы убрали его из JS) */
.modal-video {
    width: 100%;
    /*height: 100%;*/
    object-fit: cover; /* Идеально заполняет блок, обрезая лишнее, как фоновая картинка */
    display: block;
    border-radius: 0.52vw;
}

.success-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    gap: 1.56vw;
}

/* =========================================
   ИДЕАЛЬНАЯ МОБИЛЬНАЯ АДАПТАЦИЯ (До 780px)
   ========================================= */
@media (max-width: 767px) {
    .modal-overlay {
        padding: 4.302vw;
    }

    .modal-content {
        max-width: 100%;
        width: 100%;
        height: auto; /* Автовысота, чтобы вместить весь контент */
        border-radius: 4vw;
    }

    .modal-wrapper {
        flex-direction: column;
        /*padding: 0 ;*/
        padding: 2.347vw;
        gap: 5.867vw;
        /*height: auto;*/
    }

    /* --------------------------
       1. ВИДЕО / КАРТИНКА (Возвращаем красивые отступы)
    -------------------------- */
    .modal-image-block {
        width: 100%;
        height: auto;
        order: -1; /* Видео строго сверху */
        /*padding: 2.4vw 2.4vw 0 2.4vw ;*/
        box-sizing: border-box;
        border-radius: 0;
    }

    .modal-image {
    }

    .modal-video,
    .modal-image-block video,
    .modal-image-block img {
        border-radius: 3vw;
        /*width: 100%;*/
        aspect-ratio: 1.6 / 1; /* Идеальные пропорции для телефона */
        object-fit: cover;
        display: block;
        height: 84.746vw;
    }

    .modal-image-block img {
        object-position: center 20%;
    }

    /* Крестик закрытия */
    .modal-close {
        display: flex;
        top: 3.651vw;
        right: 3.651vw;
        width: 13.038vw;
        height: 13.038vw;
        padding: 3.623vw;
        border-radius: 36.232vw;
        background: rgba(245, 245, 245, 0.4);
        color: #FFFFFF;
        z-index: 10;
    }

    .modal-close svg {
        width: 3.911vw;
        height: 3.911vw;
    }

    /* --------------------------
       БЛОК С КОНТЕНТОМ И ТЕКСТАМИ
    -------------------------- */
    .modal-form-block {
        /*padding: 4vw 2.5vw 6vw 2.5vw ;*/
        height: auto;
        width: 100%;
        gap: 1.304vw;
    }

    /* --------------------------
       2. ЗАГОЛОВОК (Разрешаем перенос текста!)
    -------------------------- */
    .modal-title {
        font-weight: 700;
        font-size: 5.215vw;
        line-height: 6.519vw;
        margin: 0;
    }

    .title-emergency {
        font-size: 5.215vw;
        line-height: 6.519vw;
        text-wrap: wrap;
    }

    .modal-description {
        width: 100%;
        max-width: 100%;
        font-size: 3.390vw;
        line-height: 5.215vw;
        margin: 0;
    }

    /* --------------------------
       ФОРМА И ИНПУТЫ (Возвращаем красивые размеры)
    -------------------------- */
    .modal-form {
        gap: 2.608vw;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
        padding-top: 6.519vw;
    }

    .modal-form .modal-name-input-wrapper,
    .modal-form .modal-phone-input-wrapper {
        width: 100%;
        max-width: 100%;
        height: 15.645vw;
        border-radius: 2.5vw;
        border: 0.2vw solid #EBEBEB;
        padding: 0;
        display: flex;
        align-items: center;
        overflow: hidden;
        box-sizing: border-box;
        background: white;
    }


    /* Отступ 15px (0.78vw) между первым и вторым полем */
    .modal-form .modal-name-input-wrapper {
        margin-bottom: 0;
    }

    /* Отступ 10px (0.52vw) от второго поля до чекбокса */
    .modal-form .modal-phone-input-wrapper {
        margin-bottom: 0;
    }

    .modal-form .modal-name-input {
        width: 100%;
        height: 100%;
        border: none;
        background: transparent;
        text-align: left;
        padding: 0 4vw;
        font-size: 2.868vw;
        line-height: 4.563vw;
        box-sizing: border-box;
        font-weight: 500;
    }

    .modal-form .modal-phone-prefix {
        height: 100%;
        display: flex;
        align-items: center;
        padding: 0 2vw 0 4vw;
        gap: 2vw;
        background: transparent;
        border-radius: 0;
    }

    .modal-form .modal-phone-prefix::after {
        top: 25%;
        bottom: 25%;
        width: 0.2vw;
        background: #EBEBEB;
    }

    .modal-form .modal-phone-prefix span {
        font-size: 2.868vw;
        line-height: 4.563vw;
    }

    .modal-form .modal-phone-prefix svg {
        width: 5vw;
        height: 3.5vw;
    }

    .modal-form .modal-phone-input {
        flex: 1 1;
        min-width: 0;
        height: 100%;
        border: none;
        background: transparent;
        text-align: left;
        padding: 0 4vw 0 2vw;
        font-size: 2.868vw;
        line-height: 4.563vw;
        box-sizing: border-box;
        font-weight: 500;
    }

    .modal-form .modal-name-input::placeholder,
    .modal-form .modal-phone-input::placeholder {
        font-size: 2.868vw;
        line-height: 4.563vw;
        font-weight: 500;
    }

    /* --------------------------
       ЧЕКБОКС
    -------------------------- */
    /* Отступ 10px (0.52vw) от чекбокса до кнопки */
    .modal-form .googing-form-checkbox {
        display: flex;
        align-items: center;
        gap: 0.53vw;
        justify-content: flex-start;
        width: 100%;
        margin: 6.519vw 0 0 0.52vw; /* Строгий отступ 20px до кнопки */
        box-sizing: border-box;
    }

    .modal-form .googing-form-checkbox input[type="checkbox"] {
        width: 2.608vw;
        height: 2.608vw;
        border-radius: 1vw;
        margin-top: 0;
        border: 0.2vw solid #EBEBEB;
        margin-right: 1vw;
    }

    .modal-form .googing-form-checkbox input[type="checkbox"]:checked::after {
        width: 0.8vw;
        height: 1.5vw;
        border-width: 0 0.5vw 0.5vw 0;
    }

    .modal-form .googing-form-checkbox label {
        font-size: 2.738vw;
        line-height: 3.651vw;
    }

    .modal-upload-field {
        width: 100%;
        max-width: 100%;
        margin-bottom: 1.304vw;
        margin-top: 3.911vw;
        gap: 2vw;
    }

    .modal-upload-input {

    }

    .modal-review-textarea-wrapper {
        width: 100%;
        max-width: 100%;
        /*min-height: 26.076vw;*/
        border-radius: 2.5vw;
        border: 0.2vw solid #EBEBEB;
        padding: 2vw 4vw;
        margin-bottom: 0;
    }

    .modal-review-textarea {
        min-height: 21.252vw;
        font-size: 2.738vw;
        line-height: 3.651vw;
        font-weight: 500;
    }

    .modal-review-textarea::placeholder {
        font-size: 2.738vw;
        line-height: 3.651vw;
        font-weight: 500;
    }

    .modal-upload-trigger {
        font-size: 3.129vw;
        line-height: 3.651vw;
        text-underline-offset: 0.5vw;
    }

    .modal-upload-summary {
        gap: 2vw;
        min-width: 0;
    }

    .modal-upload-name,
    .modal-upload-clear {
        font-size: 2.8vw;
    }

    .success-block {
        gap: 3.911vw;
    }

    /* --------------------------
       КНОПКА ОТПРАВКИ
    -------------------------- */
    .modal-form .googing-btn-primary {
        width: auto;
        align-self: flex-end;
        border-radius: 10vw;
        padding: 1.304vw 1.304vw 1.304vw 5.215vw;
        margin-top: 6.519vw;
        gap: 5.215vw;
        height: auto;
    }

    .modal-form .modal-action-button {
        min-width: 0;
        width: -webkit-fit-content;
        width: fit-content;
        margin-top: 6.519vw;
    }

    .modal-form .modal-action-button.upload-file-btn {
        min-width: 0;
        width: -webkit-fit-content;
        width: fit-content;
    }

    .modal-form .googing-btn-primary span {
        font-size: 3.129vw;
        font-weight: 500;
        line-height: 4.824vw;
    }

    .modal-form .googing-btn-primary::after {
        width: 10.430vw;
        height: 10.430vw;
        right: 1vw;
    }

    .modal-form .googing-btn-primary:not(:disabled):hover.googing-btn-primary {
        background: #FFFFFF;

    }

    .modal-form .googing-btn-primary.upload-file-btn:not(:disabled):hover span {
        transform: translateX(3vw);
    }

    .modal-form .googing-btn-primary:not(:disabled):hover .googing-btn-icon svg {
        transform: translateX(calc(-100% - 34vw)) rotate(40deg);
    }

    .modal-form .googing-btn-primary:not(:disabled):hover span {
        transform: translateX(min(11.3vw, 15.31vw));
    }

    .modal-form .googing-btn-icon {
        width: 10.430vw;
        height: 10.430vw;
        /*margin-left: 3vw;*/
        right: 0;
    }

    .modal-form .googing-btn-icon svg {
        width: 2.5vw;
        height: 2.5vw;
    }

    .modal-form .googing-btn-1.upload-file-btn {
        width: -webkit-fit-content;
        width: fit-content;
        max-width: 100%;
        gap: 2.5vw;
    }

    .modal-form .googing-btn-1.upload-file-btn:not(:disabled):hover span {
        transform: translateX(10vw);
    }

    .modal-form .googing-btn-1.upload-file-btn:not(:disabled):hover .googing-btn-icon svg {
        transform: translateX(calc(-100% - 21vw)) rotate(40deg);
    }
}

.carousel-container {
  width: 100%;
  padding: 5.208vw 0;
  box-sizing: border-box;
  background-color: rgba(245, 245, 245, 1);
  position: relative;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.carousel-slides-wrapper {
  width: 100%;
  position: relative;
  overflow: hidden;
  height: 15.625vw;
  display: flex;
  align-items: center;
}

.carousel-slides-track {
  display: flex;
  gap: 2.6vw;
  width: -webkit-fit-content;
  width: fit-content;
  touch-action: pan-y;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  contain: layout paint style;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

.carousel-wrapper {
  width: 50vw;
  height: 15.625vw;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  border-radius: 1vw;
  background-color: #fff;
  overflow: hidden;
}

.carousel-slide {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0.26vw;
  box-sizing: border-box;
}

.carousel-slide-image {
  width: 15.625vw;
  height: 15.1vw;
  flex-shrink: 0;
  overflow: hidden;
  /* border-radius: 30px; */
}

.carousel-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0.8vw;
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}

.carousel-slide-content {
  flex: 1 1;
  height: 15.1vw;
  background: #FFFFFF;
  padding: 1.04vw;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1.56vw;
  border-radius: 1.56vw;
  box-sizing: border-box;
}

.carousel-slide-text {
  display: flex;
  flex-direction: column;
  gap: 0.52vw;
  flex: 1 1;
}

.carousel-slide-title {
  text-align: left;
  font-size: var(--font-size-h8);
  font-weight: 600;
  color: #000000;
  margin: 0;
  line-height: 1.3;
  font-family: 'Geist', sans-serif;
}

.carousel-slide-subtitle {
  text-align: left;
  font-size: var(--font-size-body-small-2);
  font-weight: 300;
  color: #1A1A1ABF;
  margin: 0;
  line-height: 1.46vw;
  font-family: 'Geist', sans-serif;
}

.carousel-slide-button {
  padding: 1.46vw 3.65vw;
  border-radius: 2.6vw;
  background: #485B85;
  position: relative;
  overflow: hidden;
  border: 0.052vw solid #2E3D58;
  color: #FFFFFF;
  font-size: 0.8vw;
  font-weight: 700;
  cursor: pointer;
  font-family: 'Geist', Medium;
  text-transform: uppercase;
  flex-shrink: 0;
  transition: all 0.3s ease;
  height: -webkit-fit-content;
  height: fit-content;
}

.carousel-slide-button:hover {
  background: #FFFFFF;
  color: #485B85;
}

/* Эффект блика для кнопки */
.carousel-slide-button .flare {
  position: absolute;
  top: 0;
  height: 100%;
  width: 45px;
  transform: skewX(-45deg);
  animation: flareAnimation 3s infinite;
  left: -170%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), #fff);
  filter: blur(0px);
  z-index: 1;
  pointer-events: none;
}

@keyframes flareAnimation {
  0% {
    left: -170%;
  }
  50% {
    left: 170%;
  }
  100% {
    left: 170%;
  }
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.6vw;
  height: 2.6vw;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.9);
  color: #333;
  font-size: var(--font-size-h9);
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0.21vw 0.78vw rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
}

.carousel-btn:hover {
  background-color: #00a651;
  color: #fff;
  transform: translateY(-50%) scale(1.1);
}

.carousel-btn-prev {
  left: 1.04vw;
}

.carousel-btn-next {
  right: 1.04vw;
}

.carousel-dots {
  display: flex;
  gap: 0.63vw;
  margin-top: 1.56vw;
}

.carousel-dot {
  width: 0.63vw;
  height: 0.63vw;
  border: none;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
  transition: all 0.3s ease;
}

.carousel-dot:hover {
  background-color: #999;
}

.carousel-dot.active {
  background-color: #00a651;
  transform: scale(1.2);
}

@media (max-width: 767px) {
  .carousel-slides-wrapper {
    height: 33.205vw;
  }

  .carousel-slides-track {
    gap: 2.564vw;
  }

  .carousel-wrapper {
    width: 115.38vw;
    height: 33.205vw;
    border-radius: 2.564vw;
  }

  .carousel-slide {
    padding: 0.641vw;
    height: 37.82vw;
  }

  .carousel-slide-image {
    width: 38.462vw;
    height: 31.923vw;
  }

  .carousel-slide-image img {
    border-radius: 1.923vw;
  }

  .carousel-slide-content {
    height: 31.923vw;
    padding: 1.564vw 1.282vw 3.846vw 2.52vw;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.923vw;
    border-radius: 1.282vw;
  }

  .carousel-slide-text {
    gap: 1.28vw;
  }

  .carousel-slide-title {
    font-size: 3.85vw;
    font-weight: 700;
    line-height: 5.77vw;
  }

  .carousel-slide-subtitle {
    font-size: 2.95vw;
    font-weight: 300;
    line-height: 4.49vw;
  }

  .carousel-slide-button {
    padding: 3.33vw 10.26vw;
    border-radius: 16.667vw;
    font-size: 2.56vw;
    font-weight: 500;
    align-self: flex-end;
    margin-left: auto;
    margin-top: auto;
  }
  
  .carousel-slide-content {
    align-items: flex-start;
  }
  
  .carousel-container {
    padding: 19.531vw 0;
  }
}

.App {
  text-align: center;
}

.App-logo {
  height: 40vmin;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  .App-logo {
    animation: App-logo-spin infinite 20s linear;
  }
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}


/* =========================================
   КАСТОМНЫЙ СКРОЛЛБАР ДЛЯ ВСЕГО САЙТА
   ========================================= */

/* Поддержка для Firefox */
html {
  scrollbar-width: thin;
  scrollbar-color: #485B85 transparent;
}

/* Настройки для Chrome, Safari, Edge, Яндекс */
::-webkit-scrollbar {
  width: 16px; /* Делаем общую зону чуть шире для эффекта расширения */
  background-color: transparent;
}

::-webkit-scrollbar-track {
  background-color: transparent;
}

/* 1. Обычное состояние (тонкий ползунок) */
::-webkit-scrollbar-thumb {
  background-color: #485B85; /* Фирменный синий */
  border-radius: 10px;
  /* Забираем 6px с каждой стороны прозрачной рамкой, остается 4px видимой части */
  border: 6px solid rgba(255, 255, 255, 0); 
  background-clip: padding-box;
}

/* 2. При наведении мыши (средний ползунок) */
::-webkit-scrollbar-thumb:hover {
  background-color: #112F55; /* Темнеет */
  /* Уменьшаем рамку, видимая часть становится 10px */
  border: 3px solid rgba(255, 255, 255, 0); 
  background-clip: padding-box;
}

/* 3. При зажатии и перетаскивании (самый широкий ползунок) */
::-webkit-scrollbar-thumb:active {
  background-color: #112F55;
  /* Оставляем минимальную рамку, видимая часть становится 14px */
  border: 1px solid rgba(255, 255, 255, 0); 
  background-clip: padding-box;
}


/* =========================================
   УНИВЕРСАЛЬНЫЙ ЭФФЕКТ: POSITION AWARE (Волна от курсора)
   ========================================= */
/*.btn-position-aware {*/
/*  position: relative;*/
/*  overflow: hidden;*/
/*  z-index: 1;*/
/*  !* background-color: transparent !important; - УДАЛЕНО *!*/
/*}*/

/*!* Скрытая волна *!*/
/*.btn-position-aware .wave-span {*/
/*  position: absolute;*/
/*  display: block;*/
/*  width: 0;*/
/*  height: 0;*/
/*  border-radius: 50%;*/
/*  background-color: #485B85; !* Фирменный синий цвет клиники *!*/
/*  transition: width 0.4s ease-in-out, height 0.4s ease-in-out;*/
/*  transform: translate(-50%, -50%);*/
/*  z-index: -1; !* Волна растекается ПОД текстом *!*/
/*  pointer-events: none; !* Чтобы волна не блокировала клики *!*/
/*}*/

/*!* Волна раскрывается при наведении *!*/
/*.btn-position-aware:hover .wave-span {*/
/*  !* Делаем круг достаточно большим, чтобы покрыть прямоугольную кнопку *!*/
/*  width: 40vw;*/
/*  height: 40vw;*/
/*}*/

/*!* Текст кнопки *!*/
/*.btn-position-aware .btn-text {*/
/*  position: relative;*/
/*  z-index: 2; !* Текст всегда ПОВЕРХ волны *!*/
/*  transition: color 0.4s ease-in-out;*/
/*}*/

/*!* Меняем цвет текста на белый, когда под ним синяя волна *!*/
/*.btn-position-aware:hover .btn-text {*/
/*  color: #FFFFFF !important;*/
/*}*/

/*# sourceMappingURL=main.c3149bc6.css.map*/