    /* Блокировка скролла при открытом мобильном меню */
    body.is-mobile-menu-open {
      overflow: hidden;
    }

    .color-green { color: var(--bs-link-color); }
    a.color-green:hover, button.color-green:hover { color: var(--bs-link-hover-color); }
    
    .color-beet { color: var(--beet); }
    a.color-beet:hover, button.color-beet:hover { color: var(--bs-link-hover-color); }

    /* =========================================
       УТИЛИТЫ (UTILITIES)
       ========================================= */
    .fs-14 { font-size: 14px; }
    .fs-16 { font-size: 16px; }
    .fs-18 { font-size: 18px; }

    .u-mb-xs { margin-bottom: 16px !important; }
    .u-mb-sm { margin-bottom: 20px !important; }
    .u-mb-lg { margin-bottom: 32px !important; }
    .u-mb-xl { margin-bottom: 40px !important; }
    
    .u-mt-lg { margin-top: 32px !important; }
    .u-mt-xxxl { margin-top: 120px !important; }
    
    .u-me-xs { margin-right: 16px !important; }
    .u-me-sm { margin-right: 20px !important; }
    .u-mx-sm { margin: 0 20px !important; }

    .u-pb-xs { padding-bottom: 16px !important; }

    /* =========================================
       КНОПКИ (BUTTONS)
       ========================================= */
    .btn-outline-primary {
      --bs-btn-color: var(--bs-link-color);
      --bs-btn-border-color: var(--bs-link-color);
      --bs-btn-hover-color: var(--bs-link-hover-color);
      --bs-btn-hover-bg: transparent;
      --bs-btn-hover-border-color: var(--bs-link-hover-color);
    }
    .btn-outline-primary img { filter: var(--filter-link-color); margin-top: -2px; }
    .btn-outline-primary:hover:not(.btn-outline-gradient) {
      color: var(--white);
      background-color: var(--bs-btn-hover-color);
      border-color: var(--bs-btn-hover-color);
    }
    .btn-outline-primary:hover img { filter: var(--filter-white); }
    
    .btn-outline-white {
      --bs-btn-color: #fff;
      --bs-btn-border-color: #fff;
      --bs-btn-hover-color: var(--bs-body-color);
      --bs-btn-hover-bg: #fff;
      --bs-btn-hover-border-color: #fff;
    }
    .btn-outline-white img { filter: var(--filter-white); }
    .btn-outline-white:hover img { filter: var(--filter-text-primary); }

    .btn-outline-gradient {
      --btn-grad: linear-gradient(60deg, #892436 27.04%, #02AABA 93.86%), #00828E;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
      font-weight: 700;
      border: 1px solid transparent;
      border-radius: 12px;
      background: linear-gradient(var(--white), var(--white)) padding-box, var(--btn-grad) border-box;
      position: relative;
    }
    .btn-outline-gradient span {
      background: var(--btn-grad);
      -webkit-background-clip: text;
      color: transparent;
      position: relative;
      z-index: 1;
      white-space: nowrap;
      font-weight: 700;
    }
    .btn-outline-gradient:hover { background: var(--btn-grad); border-color: transparent; }
    .btn-outline-gradient:hover span {
      background: transparent !important;
      color: var(--white);
      -webkit-text-fill-color: var(--white);
    }

    .btn-icon img { margin-right: 20px; vertical-align: top; position: relative; }
    .btn-sm { --bs-btn-padding-y: 12px; --bs-btn-padding-x: 16px; --bs-btn-font-size: 14px; }
    .btn-presentation { --bs-btn-padding-y: 14px; --bs-btn-padding-x: 19px; }
    .btn-presentation img { margin-right: 7px; }

    @media (min-width: 768px) {
      .btn-presentation { font-weight: 400; }
    }

  /* =========================================
       Scoped body font size (career page only)
       ========================================= */
    body.template-career-page {
        --bs-body-font-size: 14px;
        --bs-body-font-weight: 500;
        --bs-body-line-height: 1.4;
        --bs-body-color: #474849;
        font-size: var(--bs-body-font-size);
        font-weight: var(--bs-body-font-weight);
        line-height: var(--bs-body-line-height);
        /* clip (not hidden): kill sideways page scroll without breaking sticky header */
        overflow-x: clip;
    }
    html:has(body.template-career-page) {
        overflow-x: clip;
    }
    @media (min-width: 768px) {
        body.template-career-page { --bs-body-font-size: 16px; }
    }

    /* Uniform vertical rhythm between career sections */
    .template-career-page .container {
        display: flex;
        flex-direction: column;
        gap: clamp(48px, 6vw, 72px);
        padding-top: 0;
    }

    .template-career-page .container > * {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    .template-career-page .container > .section-divider {
        display: none;
    }

  /* =========================================
           CSS Переменные (Настройки темы)
           ========================================= */
        :root {
            --bs-gutter-x: 1.5rem;
            --bs-gutter-y: 0;
            --container-sm: 540px;
            --container-md: 720px;
            --container-lg: 960px;
            --container-xl: 1140px;
            --container-xxl: 1320px;
            --onboarding-teal: #388e99;
            --onboarding-accent: #a7455d;
            --onboarding-green: #32c832;
            --onboarding-bg: #ffffff;
            --onboarding-border: #e0e0e0;
            --onboarding-text: #1a1a1a;

            --color-teal: #01A5B5;
            --color-burgundy: #780020;
            --color-text-main: #474849;
            --color-text-dark: #474849;
            --color-text-muted: #9CA3AF;
            --bg-body: #ffffff;
            --bg-gray: #F5F5F5;
            --bg-img-placeholder: #DCDCDC;
            
            --gradient-primary: linear-gradient(90deg, var(--color-teal) 0%, var(--color-burgundy) 100%);
            --font-family: 'Montserrat', sans-serif;
            
            --shadow-sm: 0 4px 20px rgba(0, 0, 0, 0.08);
            --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.05);
            --shadow-lg: 0 15px 35px rgba(0, 0, 0, 0.08);
        }

        /* =========================================
           Базовые стили и Утилиты
           ========================================= */
        /* Career page sections get vertical spacing via their own padding */

        /* Утилитный класс для текста с градиентом */
        .text-gradient {
            background: var(--gradient-primary);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            display: inline-block;
        }

        .text-center {
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        /* =========================================
           Секция: Hero (Работай с нами)
           ========================================= */
        .hero-section {
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            gap: clamp(32px, 4vw, 60px);
            padding-top: 24px;
            padding-bottom: 48px;
            scroll-margin-top: 96px;
            box-sizing: border-box;
        }

        /* Desktop: height driven by video, stats aligned to video bottom */
        @media (min-width: 992px) {
            .hero-section {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                align-items: stretch;
                gap: clamp(32px, 4vw, 60px);
            }
        }

        .hero-content {
            flex: 1;
            min-width: 320px;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            justify-content: flex-start;
        }

        @media (min-width: 992px) {
            .hero-content {
                flex: unset;
                min-width: 0;
                min-height: 100%;
            }
        }

        .badge {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 8px 18px;
            border: 1px solid #E5E7EB;
            border-radius: 50px;
            font-size: 14px;
            font-weight: 400;
            margin-bottom: 24px;
            color: var(--color-text-dark);
        }

        .badge-dot {
            width: 8px;
            height: 8px;
            background-color: var(--color-teal);
            border-radius: 50%;
        }

        .hero-title {
            font-size: 48px;
            font-weight: 700;
            margin-bottom: 24px;
            letter-spacing: -0.03em;
        }

        .hero-description {
            font-size: 16px;
            font-weight: 500;
            line-height: 1.6;
            margin-bottom: 40px;
            max-width: 500px;
            letter-spacing: -0.03em;
        }

        .btn-primary {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            padding: 16px 36px;
            border-radius: 15px;
            color: white;
            text-decoration: none;
            font-weight: 600;
            background: var(--gradient-primary);
            margin-bottom: 32px;
            transition: transform 0.2s ease, opacity 0.2s ease;
        }

        .btn-primary:hover {
            opacity: 0.9;
            transform: translateY(-2px);
        }

        .stats-grid {
            display: flex;
            gap: 48px;
        }

        .hero-stats-wrap {
            display: flex;
            flex-direction: column;
            gap: 28px;
            margin-top: auto;
            width: 100%;
        }

        .hero-stats-divider {
            width: 100%;
        }

        .stat-item h3 {
            font-size: 36px;
            font-weight: 700;
            margin-bottom: 4px;
        }

        .stat-item p {
            font-size: 12px;
            font-weight: 700;
            color: var(--color-text-dark);
            text-transform: uppercase;
            line-height: 1.2;
        }

        .hero-media {
            flex: 1;
            min-width: 320px;
        }

        @media (min-width: 992px) {
            .hero-media {
                flex: unset;
                min-width: 0;
            }
        }

        .video-container {
            width: 100%;
            aspect-ratio: 1 / 1;
            background-color: var(--bg-gray);
            border-radius: 24px;
            position: relative;
            overflow: hidden;
        }

        @media (min-width: 992px) {
            .video-container {
                margin-bottom: 10px;
            }
        }

        .hero-video {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

        .hero-watch-btn {
            position: absolute;
            left: 50%;
            bottom: 20px;
            transform: translateX(-50%);
            z-index: 2;
            padding: 12px 22px;
            border: none;
            border-radius: 12px;
            background: #fff;
            color: #000;
            font-family: var(--font-family);
            font-size: 14px;
            font-weight: 600;
            line-height: 1.2;
            cursor: pointer;
            box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
            transition: background-color 0.2s ease, transform 0.2s ease;
        }

        .hero-watch-btn:hover {
            background: #FFF0D9;
        }

        .hero-watch-btn:active {
            transform: translateX(-50%) scale(0.98);
        }

        .play-button {
            width: 70px;
            height: 70px;
            background: #FFFFFF;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: var(--shadow-sm);
            transition: transform 0.2s ease;
            z-index: 2;
        }

        .play-button:hover {
            transform: scale(1.1);
        }

        .play-icon {
            width: 0;
            height: 0;
            border-top: 10px solid transparent;
            border-bottom: 10px solid transparent;
            border-left: 15px solid var(--color-teal);
            margin-left: 5px;
        }

        /* =========================================
           Секция: Исследуйте наш кампус
           ========================================= */
        .campus-section {
            margin-top: 100px;
            margin-bottom: 60px;
        }

        .section-header {
            margin-bottom: 40px;
        }

        .section-title {
            font-size: 48px;
            font-weight: 700;
            margin-bottom: 16px;
            letter-spacing: -0.03em;
        }

        .section-subtitle {
            font-size: 16px;
            font-weight: 500;
            line-height: 1.6;
            width: 100%; 
            letter-spacing: -0.03em;
        }

        .campus-grid {
            display: flex;
            flex-direction: row; 
            gap: 30px;
            width: 100%;
        }

        .campus-card {
            flex: 1;
            aspect-ratio: 1.4 / 1;
            background-color: var(--bg-img-placeholder);
            border-radius: 24px;
            padding: 40px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            position: relative;
            overflow: hidden;
            cursor: pointer;
            text-decoration: none;
            color: inherit;
        }

        .campus-card::after {
            content: '';
            position: absolute;
            inset: 0;
            z-index: 1;
            border-radius: inherit;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.08) 55%, transparent 100%);
            pointer-events: none;
        }

        .campus-card__img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: 0;
            transition: transform 0.45s ease;
        }

        .campus-card:hover .campus-card__img {
            transform: scale(1.06);
        }

        @media (prefers-reduced-motion: reduce) {
            .campus-card__img {
                transition: none;
            }
            .campus-card:hover .campus-card__img {
                transform: none;
            }
        }

        .icon-360 {
            width: 70px;
            height: auto;
            position: relative;
            z-index: 2;
        }

        .campus-card-title {
            color: #ffffff;
            font-size: 28px;
            font-weight: 700;
            line-height: 1.2;
            margin: 0;
            position: relative;
            z-index: 2;
            transition: color 0.3s ease;
        }

        .campus-card:hover .campus-card-title {
            color: #FF9900;
        }

        .icon-360 text,
        .icon-360 path {
            transition: fill 0.3s ease, stroke 0.3s ease;
        }

        .campus-card:hover .icon-360 text {
            fill: #FF9900;
        }

        .campus-card:hover .icon-360 path {
            stroke: #FF9900;
        }

        /* =========================================
           Секция: Почему Invento
           ========================================= */
        .reasons-section {
            margin-top: 120px;
            margin-bottom: 60px;
        }

        .reasons-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 14px;
            width: 100%;
        }

        .reason-card {
            position: relative;
            width: 100%;
            height: 189px;
            perspective: 1000px;
            background: none;
            border: none;
            padding: 0;
            box-sizing: border-box;
        }

        .reason-card__flipper {
            position: relative;
            width: 100%;
            height: 100%;
            transform-style: preserve-3d;
            transition: transform 0.55s ease;
        }

        .reason-card__face {
            position: absolute;
            inset: 0;
            backface-visibility: hidden;
            -webkit-backface-visibility: hidden;
            border-radius: 22px;
            box-sizing: border-box;
            background-color: #F2F9F9;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 20px 16px;
            overflow: hidden;
        }

        .reason-card__face--front {
            gap: 13px;
        }

        .reason-icon {
            width: 43px;
            height: 43px;
            object-fit: contain;
            flex-shrink: 0;
            display: block;
        }

        .reason-card__face--back {
            transform: rotateX(180deg);
            background: linear-gradient(90deg, #01A5B5 0%, #780D20 100%);
            padding: 18px 16px;
        }

        .reason-title {
            margin: 0;
            font-size: 20px;
            font-weight: 700;
            line-height: 1.2;
            text-align: center;
            letter-spacing: -0.03em;
            max-width: 100%;
        }

        .reason-title__line {
            display: block;
        }

        .reason-card .reason-title.text-gradient {
            display: block;
            text-align: center;
        }

        /* Back: description only, fills the whole card */
        .reason-text {
            margin: 0;
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: clamp(13px, 1.35vw, 16px);
            line-height: 1.45;
            font-weight: 500;
            letter-spacing: -0.01em;
            text-align: center;
            color: #ffffff;
        }

        @media (hover: hover) {
            .reason-card:hover .reason-card__flipper {
                transform: rotateX(-180deg);
            }
        }

        @media (min-width: 993px) {
            .reason-card:focus-within .reason-card__flipper {
                transform: rotateX(-180deg);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .reason-card__flipper {
                transition: none;
            }
        }

        /* Мобильный слайдер: планшеты и телефоны */
        @media (max-width: 992px) {
            .reasons-grid {
                display: flex;
                flex-wrap: nowrap;
                gap: 20px;
                overflow-x: auto;
                overflow-y: hidden;
                scroll-snap-type: x mandatory;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: none;
                padding: 4px 2px 12px;
            }

            .reasons-grid::-webkit-scrollbar {
                display: none;
            }

            .reason-card {
                flex: 0 0 min(88%, 306px);
                width: min(88%, 306px);
                height: 189px;
                scroll-snap-align: start;
            }

            .reason-card:focus-within .reason-card__flipper,
            .reason-card.is-flipped .reason-card__flipper {
                transform: rotateX(-180deg);
            }

            .reason-title {
                font-size: 20px;
            }

            .reason-text {
                font-size: 14px;
            }
        }

        /* =========================================
           Секция: Life inside — video slider
           ========================================= */
        .live-inside-section {
            margin-top: 80px;
            margin-bottom: 60px;
        }

        .live-inside {
            position: relative;
            background: #F3F9F9;
            border-radius: 24px;
            padding: clamp(24px, 3vw, 36px) clamp(16px, 2.5vw, 32px) clamp(22px, 2.5vw, 32px);
            box-sizing: border-box;
        }

        .live-inside__header {
            text-align: center;
            margin-bottom: 20px;
        }

        .live-inside__title {
            font-size: 24px;
            font-weight: 600;
            margin: 0;
            letter-spacing: normal;
            text-align: center;
            color: #000000;
            line-height: 1.35;
        }

        .live-inside__media {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 2px;
            position: relative;
            overflow: visible;
        }

        .live-inside__nav {
            flex: 0 0 40px;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: 1px solid var(--color-teal);
            background-color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
            color: var(--color-teal);
            z-index: 2;
            box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
            padding: 0;
        }

        .live-inside__nav:hover {
            background-color: var(--color-teal);
            color: #ffffff;
        }

        .live-inside__nav path {
            stroke: currentColor;
        }

        .live-inside__slider,
        .testimonials-slider {
            display: flex;
            gap: 14px;
            flex: 1;
            min-width: 0;
            max-width: none;
            margin: 0;
            overflow-x: auto;
            overflow-y: visible;
            padding: 12px 0 16px;
            align-items: stretch;
            scroll-padding-inline: 0;
            scroll-behavior: smooth;
            scroll-snap-type: x mandatory;
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        .testimonials-slider--centered {
            justify-content: center;
        }

        .live-inside__slider::-webkit-scrollbar,
        .testimonials-slider::-webkit-scrollbar {
            display: none;
        }

        /* Legacy aliases (kept for any leftover markup) */
        .testimonials-section {
            margin-top: 80px;
            margin-bottom: 60px;
        }

        .testimonials-wrapper {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 2px;
            position: relative;
            overflow: visible;
        }

        .testimonials-slider-btn {
            flex: 0 0 40px;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: 1px solid var(--color-teal);
            background-color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
            color: var(--color-teal);
            z-index: 2;
            box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
            padding: 0;
        }

        .testimonials-slider-btn:hover {
            background-color: var(--color-teal);
            color: #ffffff;
        }

        .testimonials-slider-btn path {
            stroke: currentColor;
        }

        .testimonials-header {
            text-align: center;
            margin-bottom: 20px;
        }

        .testimonials-title {
            font-size: 24px;
            font-weight: 600;
            margin: 0 0 20px;
            letter-spacing: normal;
            text-align: center;
            color: #000000;
            line-height: 1.35;
        }

        .testimonials-header-row {
            display: flex;
            align-items: flex-end;
            justify-content: flex-start;
            gap: 24px;
        }

        .testimonials-subtitle {
            margin: 0;
            flex: 1;
            min-width: 0;
        }

        .testimonial-card {
    /* legacy — kept for reference */
    flex: 0 0 calc((100% - 48px) / 3);
            background-color: var(--bg-body);
            border-radius: 22px; 
            padding: 24px 16px;
    border: 1px solid #D7DCE2;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.08);
            scroll-snap-align: start;
            display: flex;
            flex-direction: column;
    box-sizing: border-box;
    min-height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
        }

        /* Vertical YouTube video cards — 3 visible in viewport */
        .testimonial-video-card {
            flex: 0 0 calc((100% - 28px) / 3);
            scroll-snap-align: center;
            box-sizing: border-box;
        }

        .testimonial-video-card__trigger {
            display: block;
            width: 100%;
            padding: 0;
            border: none;
            background: none;
            cursor: pointer;
            position: relative;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 8px 24px rgba(17, 24, 39, 0.12);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .testimonial-video-card__trigger:hover {
            transform: translateY(-4px);
            box-shadow: 0 14px 32px rgba(17, 24, 39, 0.16);
        }

        .testimonial-video-card__player {
            width: 100%;
            aspect-ratio: 9 / 16;
            max-height: min(68vh, 560px);
            background: #1a1a1a;
            pointer-events: none;
            position: relative;
            overflow: hidden;
        }

        .testimonial-video-card__thumb {
            position: absolute;
            inset: 0;
            background-color: #1a1a1a;
            transition: opacity 0.25s ease;
        }

        .testimonial-video-card.is-playing .testimonial-video-card__thumb {
            opacity: 0;
        }

        .testimonial-video-card__thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .testimonial-video-card__embed {
            position: absolute;
            inset: 0;
            z-index: 1;
            overflow: hidden;
            opacity: 1;
        }

        /* Crop YouTube chrome during muted auto-preview */
        .testimonial-video-card__embed iframe {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 108%;
            height: 112%;
            border: 0;
            transform: translate(-50%, -50%);
            pointer-events: none;
        }

        .testimonial-video-card.is-user-playing .testimonial-video-card__embed iframe {
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            transform: none;
            pointer-events: auto;
        }

        .testimonial-video-card__title {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 2;
            margin: 0;
            padding: 48px 18px 18px;
            box-sizing: border-box;
            color: #ffffff;
            font-family: 'Montserrat', sans-serif;
            font-size: clamp(15px, 1.35vw, 18px);
            font-weight: 600;
            line-height: 1.25;
            letter-spacing: -0.02em;
            text-align: left;
            text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
            background: linear-gradient(
                to top,
                rgba(0, 0, 0, 0.55) 0%,
                rgba(0, 0, 0, 0.2) 55%,
                transparent 100%
            );
            pointer-events: none;
            transition: opacity 0.25s ease;
        }

        .testimonial-video-card.is-user-playing .testimonial-video-card__title {
            opacity: 0;
        }

        .testimonial-video-card__play-hint {
            position: absolute;
            left: 50%;
            top: 50%;
            bottom: auto;
            transform: translate(-50%, -50%);
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 18px;
            border-radius: 50px;
            background: rgba(255, 255, 255, 0.92);
            color: var(--color-text-dark);
            font-size: 14px;
            font-weight: 600;
            opacity: 0;
            transition: opacity 0.25s ease;
            pointer-events: none;
            z-index: 3;
        }

        .testimonial-video-card__trigger:hover .testimonial-video-card__play-hint,
        .testimonial-video-card.is-active .testimonial-video-card__trigger {
            box-shadow: 0 0 0 3px var(--color-teal);
        }

        .testimonial-video-card.is-active .testimonial-video-card__play-hint {
            opacity: 0;
        }

        .testimonial-video-card.is-playing .testimonial-video-card__play-hint {
            opacity: 0;
        }

        /* Full-video modal */
        .testimonial-video-modal {
            position: fixed;
            inset: 0;
            z-index: 12000;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 24px;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.25s ease, visibility 0.25s ease;
        }

        .testimonial-video-modal.is-open {
            opacity: 1;
            visibility: visible;
        }

        .testimonial-video-modal__backdrop {
            position: absolute;
            inset: 0;
            background: rgba(0, 0, 0, 0.72);
        }

        .testimonial-video-modal__dialog {
            position: relative;
            z-index: 1;
            width: min(420px, 100%);
            background: #000;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
        }

        .testimonial-video-modal__close {
            position: absolute;
            top: 10px;
            right: 10px;
            z-index: 2;
            width: 40px;
            height: 40px;
            border: none;
            border-radius: 50%;
            background: rgba(0, 0, 0, 0.55);
            color: #fff;
            font-size: 24px;
            line-height: 1;
            cursor: pointer;
        }

        .testimonial-video-modal__embed {
            width: 100%;
            aspect-ratio: 9 / 16;
            background: #000;
        }

        .testimonial-video-modal__embed iframe {
            width: 100%;
            height: 100%;
            border: 0;
            display: block;
        }

        .testimonial-card:hover {
            transform: translateY(-5px);
    border-color: #C8D0D9;
    box-shadow: 0 14px 24px rgba(17, 24, 39, 0.12);
        }

        .testimonial-photo {
            width: calc(100% - 20px);
            aspect-ratio: 4 / 3;
            margin: 0 auto 15px;
            background-color: #f0f2f4;
            border-radius: 16px;
            overflow: hidden;
        }

        .testimonial-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center top;
            display: block;
        }

        .testimonial-content {
            padding: 0 8px;
            flex-grow: 1;
        }

        .testimonial-name {
            font-size: 18px;
            font-weight: 700;
            color: var(--color-text-dark);
            margin-bottom: 4px;
            letter-spacing: -0.01em;
        }

        .testimonial-role {
            font-size: 13px;
            font-weight: 500;
            color: var(--color-text-muted);
            margin-bottom: 16px;
        }

        .testimonial-text p {
            font-size: 12px;
            line-height: 1.6;
            margin-bottom: 12px;
            font-weight: 500;
        }

        .testimonial-text p:last-child {
            margin-bottom: 0;
        }

        /* =========================================
           Адаптивность (Media Queries)
           ========================================= */
        @media (min-width: 993px) and (max-width: 1200px) {
            .reasons-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (max-width: 992px) {
            .hero-title, .section-title {
                font-size: 40px;
            }
            .hero-section {
                gap: 40px;
            }
            .campus-card {
                padding: 30px;
            }
        }

        /* Планшеты и мобильные */
        @media (max-width: 768px) {
            /* Hero */
            .hero-section {
                flex-direction: column;
                text-align: center;
            }
            .hero-content {
                align-items: center;
                width: 100%;
            }
            .hero-description {
                margin: 0 auto 40px;
                max-width: 100%;
            }
            .hero-media {
                width: 100%;
            }
            .hero-stats-wrap {
                width: 100%;
                margin-top: 0;
                gap: 20px;
            }
            .btn-primary {
                align-self: center;
            }
            .stats-grid {
                justify-content: center;
                flex-wrap: wrap;
                gap: 20px;
            }
            .badge {
                justify-content: center;
            }
            .section-header {
                text-align: center;
            }

            .testimonials-header,
            .live-inside__header {
                text-align: center;
            }

            .campus-grid {
                flex-direction: column; 
            }
            .campus-card {
                width: 100%;
                aspect-ratio: 16 / 9; 
            }
            /* Life inside */
            .testimonials-nav {
                display: none;
            }

            .testimonials-slider-btn,
            .live-inside__nav {
                display: none;
            }

            .live-inside {
                padding: 20px 14px 18px;
                border-radius: 20px;
            }

            .testimonial-card {
                flex: 0 0 100%;
            }

            .testimonial-video-card {
                flex: 0 0 min(82%, 300px);
            }

            .testimonial-video-card__player {
                max-height: min(62vh, 480px);
            }

            /* Life in Uzbekistan */
            .life-uz-content {
                width: 100%;
                flex: unset;
            }
            .uz-feature-item {
                align-items: flex-start;
            }
            .uz-feature-icon {
                flex-shrink: 0;
                margin-top: 4px;
            }

            /* Collage → горизонтальный слайдер */
            .life-uz-collage {
                width: 100% !important;
                height: 240px !important;
                max-height: none !important;
                display: flex !important;
                flex-direction: row !important;
                overflow-x: auto !important;
                overflow-y: hidden !important;
                scroll-snap-type: x mandatory;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: none;
                gap: 12px !important;
                flex: unset !important;
                align-self: stretch !important;
            }
            .life-uz-collage::-webkit-scrollbar {
                display: none;
            }
            .collage-col,
            .collage-img,
            .collage-img--small,
            .collage-img--large {
                display: contents !important;
            }
            .collage-slide {
                position: static !important;
                inset: auto !important;
                opacity: 1 !important;
                transform: none !important;
                transition: none !important;
                flex: 0 0 76vw !important;
                width: 76vw !important;
                min-width: 76vw !important;
                height: 100% !important;
                min-height: 0 !important;
                object-fit: cover;
                scroll-snap-align: start;
                border-radius: 16px !important;
            }
        }

  /* =========================================
   Секция: Жизнь в Узбекистане
   ========================================= */
.life-uz-section {
    background-color: #F2F9F9;
    box-shadow: 0 0 0 100vmax #F2F9F9;
    clip-path: inset(0 -100vmax);
    padding-top: clamp(48px, 6vw, 72px);
    padding-bottom: clamp(48px, 6vw, 72px);
    
}

.life-uz-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 80px;
}

.life-uz-content {
    flex: 0 0 45%;
}

.life-uz-main-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text-main);
    margin-bottom: 48px;
    font-weight: 500;
}

/* Список особенностей */
.uz-features-list {
    display: flex;
    flex-direction: column;
    gap: 35px;
    margin-bottom: 40px;
}

.uz-feature-item {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}

/* Иконка-кольцо (по данным Figma) */
.uz-feature-icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    margin-top: 2px;
    border-radius: 50%;
    
}

.uz-feature-info h3 {
    /* Настройки из Figma */
    font-family: 'Montserrat', sans-serif;
    font-weight: 500; /* Semibold */
    font-size: 18px; /* Адаптировано для веба, пропорционально 11.1 в Figma */
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: var(--color-text-dark);
    margin-bottom: 8px;
}

.uz-feature-info p {
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-text-main);
    font-weight: 400;
}

.uz-link-more {
    font-size: 16px;
    font-weight: 600;
    color: var(--color-teal);
    text-decoration: none;
    display: inline-block;
    transition: transform 0.2s ease;
}

.uz-link-more:hover {
    transform: translateX(5px);
}

/* Коллаж: 2 колонки (узкая | широкая), маленькие по диагали 1↔4, большие 2↔3 */
.life-uz-collage {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: row;
    gap: 18px;
    align-self: stretch;
    height: min(660px, 52vw);
    max-height: 720px;
}

.collage-col {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
    flex: 1 1 50%;
}

.collage-col--narrow {
    flex: 0 0 41%;
}

.collage-col--wide {
    flex: 1 1 59%;
}

.collage-img {
    width: 100%;
    min-height: 0;
    background-color: var(--bg-img-placeholder);
    border-radius: 14px;
    transition: transform 0.3s ease;
    position: relative;
    overflow: hidden;
}

.collage-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transform: scale(1.04);
    transition: opacity 1.8s ease-in-out, transform 2.4s ease-in-out;
}

.collage-slide.active {
    opacity: 1;
    transform: scale(1);
}

.collage-img--small {
    flex: 0 0 33%;
}

.collage-img--large {
    flex: 1 1 auto;
}

.collage-img:hover {
    transform: scale(1.02);
}

.collage-img[data-order="1"] { order: 1; }
.collage-img[data-order="2"] { order: 2; }
.collage-img[data-order="3"] { order: 3; }
.collage-img[data-order="4"] { order: 4; }

/* Жизнь в Узбекистане — планшет */
@media (max-width: 1024px) {
    .life-uz-container {
        flex-direction: column;
        gap: 5px;
    }
    .life-uz-content {
        width: 100%;
    }
    .life-uz-collage {
        width: 100%;
        height: min(540px, 78vw);
        max-height: none;
    }
}

/* =========================================
   Секция: Открытые вакансии (Плитки)
   ========================================= */
.vacancies-categories-section {
    margin-top: 100px;
    margin-bottom: 100px;
}

.vacancies-categories-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 колонки в ряд */
    gap: 20px;
    margin-top: 40px;
}

.vacancy-cat-card {
    text-decoration: none;
    border-radius: 28px; /* Крупные скругления как в макете */
    padding: 40px 30px;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.vacancy-cat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.cat-content h3 {
    font-size: 24px;
    font-weight: 200;
    color: #000000;
    line-height: 1.2;
    margin: 0;
}

.cat-arrow {
    position: absolute;
    right: 30px;
    bottom: 40px;
    font-size: 24px;
    color: #000;
    transition: transform 0.3s ease;
}

.vacancy-cat-card:hover .cat-arrow {
    transform: translateX(5px);
}

/* Цвета из твоих фото (HEX коды) */
.cat-cyan { background-color: #F3FAFB; }      /* image_8b08cb.jpg */
.cat-pink { background-color: #F8F4F5; }      /* image_8b08ac.jpg */
.cat-yellow { background-color: #FEFAF2; }    /* image_8b088f.jpg */
.cat-grey { background-color: #F9F9F9; }      /* image_8b0873.jpg */
.cat-blue { background-color: #F4F6FB; }      /* image_8b086d.jpg */
.cat-soft-pink { background-color: #FDF5F6; } /* Доп. оттенок для 6-й плитки */

/* Адаптивность */
@media (max-width: 1024px) {
    .vacancies-categories-grid {
        grid-template-columns: repeat(2, 1fr); /* 2 колонки на планшетах */
    }
}

@media (max-width: 600px) {
    .vacancies-categories-grid {
        grid-template-columns: 1fr; /* 1 колонка на мобилках */
    }
    .vacancy-cat-card {
        min-height: 160px;
        padding: 30px 20px;
    }
}

/* =========================================
   Photo banner — full-block image + white title shape
   ========================================= */
.career-photo-banner {
    position: relative;
    margin: 60px 0;
    border-radius: var(--content-border-radius, 20px);
    overflow: hidden;
    /* Taller photo block */
    min-height: clamp(360px, 52vw, 640px);
}

.career-photo-banner__media {
    position: absolute;
    inset: 0;
}

.career-photo-banner__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.career-photo-banner__title-shape {
    position: absolute;
    /* Sit inside the photo, not flush with the top edge */
    top: clamp(1.5rem, 5%, 2.75rem);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    background: #fff;
    border-radius: var(--content-border-radius, 20px);
    padding: clamp(14px, 2vw, 22px) clamp(28px, 5vw, 56px) clamp(16px, 2.2vw, 26px);
    max-width: min(92%, 40rem);
    text-align: center;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.career-photo-banner__title {
    margin: 0 !important;
    font-size: clamp(1.35rem, 3vw, 48px);
    line-height: 1.15;
}

@media (max-width: 768px) {
    .career-photo-banner {
        min-height: 280px;
    }

    .career-photo-banner__title-shape {
        top: 1rem;
        padding: 8px 16px;
        width: max-content;
        max-width: calc(100% - 20px);
    }

    .career-photo-banner__title.section-title {
        font-size: 18px;
        line-height: 1.1;
        white-space: nowrap;
    }
}

/* =========================================
   Секция: Открытые вакансии (department cards)
   ========================================= */
.home-vacancies {
    --board-padding: clamp(1.5rem, 4vw, 3.5rem);
    scroll-margin-top: 88px;
    margin-top: 60px;
    margin-bottom: 28px;
}

.home-vacancies__header {
    /* Align with cards inside the board; typography from .section-title / .section-subtitle */
    padding-left: var(--board-padding);
    padding-right: var(--board-padding);
}

.home-vacancies__header .section-subtitle {
    margin-bottom: 0;
}

.home-vacancies__board {
    background: linear-gradient(110deg, #00828E 0%, #344A5E 45%, #7E2F3D 100%);
    border-radius: var(--content-border-radius, 20px);
    padding: var(--board-padding);
    position: relative;
    overflow: hidden;
}

.home-vacancies__board-decoration {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: visible;
}

.home-vacancies__deco {
    position: absolute;
    display: block;
    pointer-events: none;
    user-select: none;
}

.home-vacancies__deco--tr {
    top: -72px;
    right: -64px;
    width: clamp(220px, 30vw, 360px);
    height: auto;
}

.home-vacancies__deco--bl {
    bottom: -68px;
    left: -60px;
    width: clamp(190px, 26vw, 300px);
    height: auto;
}

.home-vacancies__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    position: relative;
    z-index: 2;
}

@media (min-width: 768px) {
    .home-vacancies__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.home-vacancies__card {
    background-color: #EAECEE;
    border: none;
    border-radius: var(--content-border-radius, 20px);
    padding: clamp(1.5rem, 2vw, 2rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 180px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    font: inherit;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.home-vacancies__card:hover {
    transform: translateY(-4px);
    background-color: var(--bg-secondary, #F2F9F9);
}

.home-vacancies__card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(1.6rem, 3vw, 35.35px);
    color: #000;
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1;
    margin: 0;
}

.home-vacancies__card-action {
    align-self: flex-end;
    width: 36px;
    height: 36px;
    border: 1px solid var(--bs-link-color, #00828E);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-link-color, #00828E);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.home-vacancies__card-action svg {
    width: 20px;
    height: 20px;
}

.home-vacancies__card:hover .home-vacancies__card-action {
    background-color: var(--bs-link-color, #00828E);
    color: #fff;
}

@media (max-width: 640px) {
    .home-vacancies__card {
        min-height: 150px;
    }
}

/* Полноэкранное видео (hero) */
.hero-video-modal {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0.3s ease;
}

.hero-video-modal.is-open {
    visibility: visible;
    pointer-events: auto;
}

.hero-video-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    transition: background 0.3s ease;
}

.hero-video-modal.is-open .hero-video-modal__backdrop {
    background: rgba(0, 0, 0, 0.88);
}

.hero-video-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1200px, 100%);
    max-height: calc(100vh - 48px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.hero-video-modal.is-open .hero-video-modal__dialog {
    opacity: 1;
    transform: scale(1);
}

.hero-video-modal__player {
    width: 100%;
    max-height: calc(100vh - 48px);
    border-radius: 12px;
    background: #000;
    object-fit: contain;
}

.hero-video-modal__embed {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: calc(100vh - 48px);
    border-radius: 12px;
    overflow: hidden;
    background: #000;
}

.hero-video-modal__embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.hero-video.hero-video--poster {
    object-fit: cover;
}

.hero-video-modal__close {
    position: absolute;
    top: -48px;
    right: 0;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease;
}

.hero-video-modal__close:hover {
    background: rgba(255, 255, 255, 0.28);
}

@media (max-width: 768px) {
    .hero-watch-btn {
        bottom: 14px;
        padding: 10px 18px;
        font-size: 13px;
    }

    .hero-video-modal {
        padding: 16px;
    }

    .hero-video-modal__close {
        top: -44px;
        right: 0;
    }
}

/* Pop-up списка вакансий снизу */
.vacancy-sheet-backdrop {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 12px 12px;
    background: rgba(0, 0, 0, 0);
    visibility: hidden;
    pointer-events: none;
    transition: background 0.35s ease, visibility 0.35s;
}
.vacancy-sheet-backdrop.is-open {
    visibility: visible;
    pointer-events: auto;
    background: rgba(0, 0, 0, 0.45);
}
.vacancy-sheet-panel {
    width: 100%;
    max-width: 640px;
    max-height: min(88vh, 820px);
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 -12px 48px rgba(0, 0, 0, 0.18);
    transform: translateY(calc(100% + 24px));
    transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.vacancy-sheet-backdrop.is-open .vacancy-sheet-panel {
    transform: translateY(0);
}
.vacancy-sheet-head {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 20px 14px;
    border-bottom: 1px solid #EBEBEB;
}
.vacancy-sheet-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #474849;
    letter-spacing: -0.02em;
    margin: 0;
    line-height: 1.25;
}
.vacancy-sheet-close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: #F3F4F6;
    color: #474849;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s;
}
.vacancy-sheet-close:hover {
    background: #E5E7EB;
}
.vacancy-sheet-scroll {
    overflow-y: auto;
    padding: 16px 16px 20px;
    -webkit-overflow-scrolling: touch;
}
.vacancy-sheet-empty {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: #333;
    margin: 8px 4px 0;
}
.vacancy-sheet-empty[hidden] {
    display: none !important;
}
.job-card[hidden] {
    display: none !important;
}
.job-card {
    border: 1px solid #D3D3D3;
    border-radius: 22px;
    padding: 0;
    margin-bottom: 14px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.06);
}
.job-card:last-child {
    margin-bottom: 0;
}
.job-card-hit {
    cursor: pointer;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 18px 18px 16px;
    text-align: left;
    outline: none;
    border: none;
    background: none;
    width: 100%;
    font: inherit;
    color: inherit;
    box-sizing: border-box;
}
.job-card-hit:hover {
    background: #fafafa;
}
.job-card-hit:focus-visible {
    box-shadow: inset 0 0 0 2px #01A5B5;
}
.job-card-hit-main {
    flex: 1;
    min-width: 0;
}
.job-card-chevr {
    flex-shrink: 0;
    margin-top: 6px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #F3F4F6;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #474849;
    transition: transform 0.3s ease, background 0.2s;
}
.job-card.is-open .job-card-chevr {
    transform: rotate(180deg);
    background: #E8F7F9;
}
.job-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #111;
    letter-spacing: -0.02em;
    line-height: 1.28;
    margin: 0 0 6px;
}
.job-apps-count {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: rgba(71, 72, 73, 0.42);
    letter-spacing: 0.01em;
    line-height: 1.3;
    margin: 0 0 12px;
}
.job-meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}
.job-meta-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    color: #333;
    line-height: 1.45;
}
.job-meta-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: #474849;
}
.job-card-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.job-card.is-open .job-card-body {
    max-height: 2000px;
}
.job-card-body-inner {
    padding: 0 18px 4px;
    border-top: 1px solid #EFEFEF;
    padding-top: 16px;
    margin-top: 0;
}
.job-desc-intro {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: #333;
    margin: 0 0 16px;
}
.job-richtext {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: #333;
    margin: 0 0 16px;
}
.job-richtext:last-child {
    margin-bottom: 0;
}
.job-richtext p,
.job-richtext li {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0 0 0.6em;
}
.job-richtext p:last-child,
.job-richtext ul:last-child,
.job-richtext ol:last-child {
    margin-bottom: 0;
}
.job-richtext ul,
.job-richtext ol {
    margin: 0 0 0.6em;
    padding-left: 1.2em;
}
.job-richtext strong,
.job-richtext b {
    font-weight: 700;
    color: #111;
}
.job-desc-heading {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #111;
    margin: 0 0 8px;
}
.job-detail-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.job-detail-list li {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    line-height: 1.45;
    color: #333;
    padding-left: 16px;
    position: relative;
}
.job-detail-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.52em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #01A5B5;
}
.job-detail-list:last-of-type {
    margin-bottom: 0;
}
.job-card-footer {
    display: flex;
    justify-content: flex-end;
    padding: 16px 18px 18px;
    border-top: 1px solid transparent;
}
.job-card.is-open .job-card-footer {
    border-top-color: #F0F0F0;
}
.job-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px 10px 22px;
    border-radius: 50px;
    background: linear-gradient(90deg, #01A5B5 0%, #780D20 100%);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}
.job-apply-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.job-apply-circle svg {
    width: 16px;
    height: 16px;
}
.job-apply-btn:hover {
    opacity: 0.92;
}
@media (max-width: 640px) {
    .vacancy-sheet-head {
        padding: 18px 16px 12px;
    }
    .job-card-footer {
        justify-content: stretch;
    }
    .job-apply-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Vacancy pop-up: на ПК — по центру, шире; на мобайле — снизу */
@media (min-width: 900px) {
    .vacancy-sheet-backdrop {
        align-items: center;
        justify-content: center;
        padding: clamp(20px, 4vh, 48px);
    }
    .vacancy-sheet-panel {
        max-height: min(85vh, 880px);
        max-width: 880px;
        width: min(880px, calc(100vw - 56px));
        margin: 0 auto;
        box-shadow: 0 20px 56px rgba(0, 0, 0, 0.18);
        transform: translateY(12px) scale(0.97);
        opacity: 0;
        transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.32s ease;
    }
    .vacancy-sheet-backdrop.is-open .vacancy-sheet-panel {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

/* Мастер заявки (4 шага) — поверх списка вакансий */
.apply-wizard-backdrop {
    position: fixed;
    inset: 0;
    z-index: 3400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(0, 0, 0, 0);
    visibility: hidden;
    pointer-events: none;
    transition: background 0.3s ease, visibility 0.3s;
}
.apply-wizard-backdrop.is-open {
    visibility: visible;
    pointer-events: auto;
    background: rgba(0, 0, 0, 0.52);
}
/* Мастер заявки на стажировку — поверх мастера найма на вакансию */
.intern-wizard-backdrop {
    z-index: 3505;
}
.intern-step {
    display: none;
}
.intern-step.is-active {
    display: block;
}
.apply-btn-next:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.apply-btn-final:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
/* Стажировки — шаг 1 (личная информация) */
#internWizardBackdrop .apply-wizard-scroll {
    padding-top: 2px;
}
.intern-step1-wrap {
    background: transparent;
    border-radius: 22px;
    overflow: visible;
    margin: 0 0 6px;
}
.intern-step1-banner {
    background: transparent;
    padding: 18px 16px 16px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.07em;
    color: #111;
    line-height: 1.35;
}
.intern-step1-fields {
    padding: 18px 18px 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.intern-field {
    margin: 0;
}
.intern-input-pill,
.intern-select-pill {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 20px;
    border: 1px solid #D8DCDE;
    border-radius: 999px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 400;
    background: #fff;
    color: #111;
}
.intern-input-pill::placeholder {
    color: #9CA3AF;
    opacity: 1;
}
.intern-select-pill {
    appearance: none;
    -webkit-appearance: none;
    color: #9CA3AF;
    padding-right: 42px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2378828F'%3E%3Cpath d='M6 8L2 4h8z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    cursor: pointer;
}
.intern-select-pill.has-value {
    color: #111;
}
.intern-step1-nav {
    padding: 10px 18px 20px;
}
.intern-step1-nav .intern-wizard-next {
    width: 100%;
}
.intern-step2-shell {
    padding: 32px 12px 8px;
    text-align: center;
}
.intern-step-placeholder {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    color: #6B7280;
    line-height: 1.5;
    margin: 0 0 24px;
}
.intern-final-step {
    padding: 8px 4px 4px;
}
.intern-final-hero {
    background: linear-gradient(90deg, #4997a1 0%, #6b1a21 100%);
    border-radius: 26px;
    padding: clamp(34px, 9vw, 52px) 22px;
    box-sizing: border-box;
    text-align: center;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
}
.intern-final-kicker {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0;
    opacity: 0.94;
}
.intern-final-title {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: clamp(19px, 4.6vw, 28px);
    line-height: 1.22;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}
.intern-final-title-line {
    display: block;
}
.intern-final-copy {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(12px, 3.2vw, 14px);
    font-weight: 400;
    line-height: 1.52;
    margin: 6px 0 0;
    padding: 0 6px;
    max-width: 440px;
    opacity: 0.96;
}
.intern-final-nav.apply-nav {
    margin-top: 22px;
    padding-bottom: 6px;
}
.intern-step2-nav.apply-nav {
    margin-top: 0;
}
/* Стажировки — шаг 2: формат участия */
.intern-format-stack {
    padding: 16px 18px 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.intern-format-pill {
    display: block;
    margin: 0;
    cursor: pointer;
}
.intern-format-pill input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.intern-format-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-radius: 999px;
    border: 1px solid #D8DCDE;
    background: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #6B7280;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.intern-format-pill input:checked + .intern-format-inner {
    background: var(--color-teal);
    border-color: var(--color-teal);
    color: #fff;
}
.intern-format-pill input:focus-visible + .intern-format-inner {
    outline: 2px solid rgba(1, 165, 181, 0.45);
    outline-offset: 2px;
}
.intern-format-check {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
}
.intern-format-pill input:checked + .intern-format-inner .intern-format-check {
    opacity: 1;
}
.intern-format-inner .intern-format-check svg {
    display: block;
}
.intern-step2-actions.apply-nav {
    padding: 8px 18px 18px;
    margin-top: 0;
}
.intern-step2-actions .intern-wizard-next {
    width: 100%;
}
#internWizardBackdrop .apply-btn-final {
    background: linear-gradient(90deg, #4997A1 0%, #6B1A21 100%);
}

/* Стажировки — шаг 3: описание проекта */
.intern-step3-card {
    padding: 4px 0 10px;
}
.intern-step3-intro {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.55;
    color: #111;
    text-align: center;
    margin: 0 8px 20px;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}
.intern-step3-guide {
    border: none;
    border-radius: 0;
    padding: 16px 2px 14px;
    background: transparent;
    margin: 0 2px;
}
.intern-step3-guide-strong {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #111;
    margin: 0 0 10px;
}
.intern-step3-list {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.55;
    color: #374151;
    margin: 0 0 0 1rem;
    padding: 0 0 4px;
}
.intern-step3-list li {
    margin-bottom: 6px;
    padding-left: 2px;
}
.intern-step3-list li:last-of-type {
    margin-bottom: 10px;
}
.intern-step3-note {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.55;
    color: #374151;
    margin: 0 0 14px;
}
.intern-step3-textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 140px;
    padding: 14px 16px;
    border: 1px solid #E5E7EB;
    border-radius: 14px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.45;
    color: #111;
    resize: vertical;
    background: #fff;
}
.intern-step3-textarea::placeholder {
    color: #9CA3AF;
}
.intern-step3-actions.apply-nav {
    margin-top: 18px;
    padding: 4px 0 4px;
}
.intern-step3-actions .intern-wizard-next,
.intern-step3-actions > .apply-btn-final {
    width: 100%;
}

/* Стажировки — шаг 4: образование и языки */
.intern-step4-card {
    padding: 0 0 8px;
}
.intern-step4-section {
    margin-bottom: 4px;
}
.intern-step4-sec-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.intern-step4-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #4997A1 0%, #6B1A21 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.intern-step4-icon svg {
    display: block;
}
.intern-step4-section h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #111;
    margin: 0;
}
.intern-step4-edu-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 20px;
    align-items: start;
}
.intern-edu-label,
.intern-step4-lang-label {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 10px;
    line-height: 1.35;
}
.intern-edu-radios {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.intern-edu-radio-row {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #111;
}
.intern-edu-radio-row input[type="radio"] {
    accent-color: var(--color-teal);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    cursor: pointer;
}
.intern-edu-other-wrap {
    display: none;
    margin-top: 12px;
}
.intern-edu-other-wrap.is-visible {
    display: block;
}
.intern-step4-input {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    border: 1px solid #D1D5DB;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #111;
}
.intern-step4-input::placeholder {
    color: #9CA3AF;
}
.intern-edu-right .intern-field {
    margin-bottom: 14px;
}
.intern-step4-divider {
    border: none;
    border-top: 1px solid #E8EAEE;
    margin: 22px 0 20px;
}
.intern-step4-sub {
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    color: #6B7280;
    margin: -6px 0 14px;
    line-height: 1.45;
}
.intern-lang-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.intern-step4-select {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 36px 11px 14px;
    border: 1px solid #D1D5DB;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #9CA3AF;
    appearance: none;
    -webkit-appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2378828F'%3E%3Cpath d='M6 8L2 4h8z'/%3E%3C/svg%3E") right 14px center no-repeat;
    cursor: pointer;
}
.intern-step4-select.has-value {
    color: #111;
}
.intern-step4-hint {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    color: #9CA3AF;
    margin: 12px 0 0;
    line-height: 1.4;
}
.intern-step4-actions.apply-nav {
    margin-top: 22px;
    padding-bottom: 0;
}
/* Стажировки — мотивация */
.intern-motiv-card {
    padding: 8px 4px 16px;
}
.intern-motiv-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}
.intern-motiv-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4997A1 0%, #6B1A21 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
}
.intern-motiv-icon svg {
    display: block;
}
.intern-motiv-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #111;
    margin: 0;
}
.intern-motiv-field {
    margin-bottom: 18px;
}
.intern-motiv-label {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #111;
    margin-bottom: 8px;
    line-height: 1.4;
}
.intern-motiv-textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 120px;
    padding: 14px 16px;
    border: 1px solid #D1D5DB;
    border-radius: 12px;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    line-height: 1.45;
    color: #111;
    resize: vertical;
    background: #fff;
}
.intern-motiv-textarea::placeholder {
    color: #9CA3AF;
}
.intern-motiv-actions.apply-nav {
    margin-top: 8px;
}
/* Стажировки — направление интереса */
.intern-interest-main-head {
    margin-bottom: 22px;
}
.intern-interest-body-grid {
    align-items: start;
}
.intern-interest-col-left,
.intern-interest-col-right {
    min-width: 0;
}
.intern-interest-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.intern-interest-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #111;
    line-height: 1.35;
}
.intern-interest-check-row input[type='checkbox'] {
    accent-color: var(--color-teal);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
}
.intern-interest-hint-banner {
    margin-top: 20px;
    margin-bottom: 4px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #ECFDF5;
    border: 1px solid #BBF7D0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    color: #166534;
    line-height: 1.45;
}
.intern-interest-hint-banner svg {
    flex-shrink: 0;
    margin-top: 1px;
    color: #16A34A;
}
/* Стажировки — формат участия (время) */
.intern-participation-time-card .intern-participation-schedule-grid {
    align-items: start;
}
.intern-participation-schedule-col {
    min-width: 0;
}

@media (max-width: 520px) {
    .intern-step4-edu-grid,
    .intern-lang-grid,
    .intern-interest-body-grid,
    .intern-participation-schedule-grid {
        grid-template-columns: 1fr;
    }
}

/* Стажировки: на ПК шире с блока образования и дальше (4+) */
@media (min-width: 900px) {
    #internWizardBackdrop.intern-step-wide .apply-wizard-panel {
        width: min(860px, calc(100vw - 48px));
        max-width: min(860px, calc(100vw - 48px));
        max-height: min(90vh, 860px);
    }
    #internWizardBackdrop.intern-step-wide .apply-wizard-scroll {
        padding-left: 32px;
        padding-right: 32px;
    }
}

.apply-wizard-panel {
    width: min(540px, 100%);
    max-height: min(92vh, 780px);
    background: #fff;
    border-radius: 28px;
    box-shadow: 0 22px 64px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.94);
    opacity: 0;
    transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.3s ease;
}
.apply-wizard-backdrop.is-open .apply-wizard-panel {
    transform: scale(1);
    opacity: 1;
}
.apply-wizard-toolbar {
    flex-shrink: 0;
    padding: 18px 22px 10px;
    border-bottom: none;
}
.apply-toolbar-progress-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
}
.apply-progress {
    flex: 1;
    height: 4px;
    min-width: 0;
    background: #E8EAED;
    border-radius: 4px;
    overflow: hidden;
    max-width: 100%;
}
.apply-progress-fill {
    height: 100%;
    width: 25%;
    border-radius: 4px;
    background: linear-gradient(90deg, #01A5B5 0%, #0a9a6a 100%);
    transition: width 0.35s ease;
}
.apply-wizard-close {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: #F3F4F6;
    color: #474849;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}
.apply-wizard-scroll {
    overflow-y: auto;
    padding: 4px 26px 28px;
    -webkit-overflow-scrolling: touch;
}
.apply-step-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: #9CA3AF;
    margin: 0;
    text-align: center;
    text-transform: none;
}
.apply-wizard-heading {
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #111;
    margin: 0;
    line-height: 1.22;
}
.apply-wizard-sub {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #5C5F63;
    margin: 10px 0 0;
    line-height: 1.45;
}
.apply-heading-block.apply-step1-head {
    text-align: center;
    margin-bottom: 20px;
}
.apply-job-ref {
    font-size: 13px;
    color: #6B7280;
    font-weight: 500;
    margin: 0 0 18px;
    padding: 0 0 16px;
    border-bottom: 1px solid #EEF0F4;
    text-align: center;
}
.apply-step {
    display: none;
}
.apply-step.is-active {
    display: block;
}
.apply-field {
    margin-bottom: 14px;
}
.apply-step[data-apply-step="1"] > .apply-field {
    margin-bottom: 12px;
}
.apply-input.step1-field,
.apply-select.step1-field {
    padding: 14px 20px;
    border: 1px solid #D8DCDE;
    border-radius: 999px;
    font-weight: 400;
    background: #fff;
}
.apply-select.step1-field {
    color: #9CA3AF;
    padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2378828F'%3E%3Cpath d='M6 8L2 4h8z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
}
.apply-select.step1-field.has-value {
    color: #111;
}
.apply-input.step1-field::placeholder {
    color: #9CA3AF;
    opacity: 1;
}
.apply-step:not([data-apply-step="1"]) > .apply-q:first-of-type {
    margin-top: 6px;
}
.apply-cv-block {
    margin-top: 4px;
    margin-bottom: 4px;
}
.apply-cv-primary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.apply-cv-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #374151;
    flex: 1;
    min-width: 0;
}
.apply-star {
    color: #DC2626;
    font-weight: 600;
}
.apply-cv-filename {
    display: block;
    font-size: 12px;
    color: #9CA3AF;
    text-align: right;
    margin-top: 6px;
    min-height: 1.2em;
}
.apply-partner-row {
    margin-top: 14px;
}
.apply-consent.apply-consent--box {
    margin-top: 20px;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
}
.apply-consent--box input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    flex-shrink: 0;
    border: 2px solid #CFD4DA;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    vertical-align: top;
}
.apply-consent--box input[type="checkbox"]:checked {
    background: var(--color-teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M2 6l3 3 5-6'/%3E%3C/svg%3E") center center / 11px no-repeat;
    border-color: var(--color-teal);
}
.apply-consent--box input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(1, 165, 181, 0.45);
    outline-offset: 2px;
}
.apply-field label.apply-label {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #474849;
    margin-bottom: 6px;
}
.apply-input,
.apply-select,
.apply-textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 14px;
    border: 1px solid #D3D3D3;
    border-radius: 12px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    color: #111;
}
.apply-select {
    appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23474849'%3E%3Cpath d='M6 8L2 4h8z'/%3E%3C/svg%3E") right 14px center no-repeat;
    padding-right: 36px;
}
.apply-textarea {
    min-height: 120px;
    resize: vertical;
}
.apply-file-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.apply-upload-btn {
    display: inline-block;
    padding: 11px 20px;
    border-radius: 999px;
    background: var(--color-teal);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    white-space: nowrap;
}
.apply-file-name {
    font-size: 12px;
    color: #888;
}
.apply-hint {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    color: #888;
    line-height: 1.45;
    margin: 6px 0 12px;
}
.apply-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    color: #4B5563;
    line-height: 1.45;
}
.apply-consent--box span.apply-consent-txt {
    flex: 1;
    padding-top: 1px;
}
.apply-btn-next {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 20px;
    border: none;
    border-radius: 999px;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
    background: #D1D7E1;
    color: #FFFFFF;
}
.apply-btn-next:hover {
    background: #C6CDD9;
    color: #FFFFFF;
}
.apply-btn-next svg {
    opacity: 0.95;
}
.apply-heading-block.is-hidden-step {
    display: none;
}
.apply-q {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #111;
    margin: 4px 0 16px;
    line-height: 1.4;
}
.apply-yesno {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
}
.apply-choice {
    flex: 1;
    cursor: pointer;
    position: relative;
}
.apply-choice input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.apply-choice-inner {
    display: block;
    text-align: center;
    padding: 14px 12px;
    border: 2px solid #E5E7EB;
    border-radius: 12px;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #474849;
    transition: border-color 0.2s, background 0.2s;
}
.apply-choice input:checked + .apply-choice-inner,
.apply-choice input:focus-visible + .apply-choice-inner {
    border-color: #01A5B5;
    background: #F0FBFC;
}
.apply-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.apply-pill {
    padding: 9px 16px;
    border-radius: 999px;
    border: 1px solid #D1D5DB;
    background: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #474849;
    cursor: pointer;
    transition: all 0.2s;
}
.apply-pill.is-selected {
    background: #780D20;
    border-color: #780D20;
    color: #fff;
}
.apply-motivation-wrap {
    position: relative;
}
.apply-motivation-wrap .apply-input {
    padding-right: 40px;
}
.apply-pencil {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.45;
    pointer-events: none;
}
.apply-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 22px;
    padding-top: 4px;
}
.apply-btn-back {
    align-self: flex-start;
    background: none;
    border: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #01A5B5;
    cursor: pointer;
    padding: 4px 0;
}
.apply-btn-final {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 22px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(90deg, #01A5B5 0%, #780D20 100%);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}
.apply-btn-final:hover {
    opacity: 0.92;
}
.hidden-file {
    display: none;
}

@media (max-width: 480px) {
    .apply-wizard-panel {
        width: 100%;
        border-radius: 18px;
    }
    .apply-wizard-scroll {
        padding: 4px 18px 22px;
    }
    .apply-cv-primary-row {
        flex-direction: column;
        align-items: stretch;
    }
    .apply-cv-primary-row .apply-upload-btn {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }
    .apply-cv-filename {
        text-align: left;
    }
}

/* =========================================
   Секция: Стажировки
   ========================================= */
.internship-section {
    margin-top: 80px;
    margin-bottom: 120px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: stretch;
}

.internship-content {
    display: flex;
    flex-direction: column;
    gap: 0;
    height: 100%;
}

.internship-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.03em;
    margin: 0 0 28px 0;
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.internship-desc {
    font-family: 'Montserrat', sans-serif;
    font-size: 17px;
    color: #444;
    line-height: 1.65;
    margin: 0 0 16px 0;
}

.internship-formats-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #474849;
    margin: 8px 0 10px 0;
}

.internship-formats-list {
    list-style: none;
    padding: 0;
    margin: 0 0 36px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.internship-formats-list li {
    font-family: 'Montserrat', sans-serif;
    font-size: 17px;
    color: #444;
    display: flex;
    align-items: center;
    gap: 10px;
}

.internship-formats-list li::before {
    content: '•';
    color: #01A5B5;
    font-size: 18px;
    line-height: 1;
}

.internship-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 44px;
    border-radius: 50px;
    background: linear-gradient(90deg, #01A5B5 0%, #780D20 100%);
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border: none;
    width: fit-content;
    margin-top: auto;
    transition: opacity 0.2s ease;
}

.internship-btn:hover {
    opacity: 0.88;
}

/* Фото в форме фигуры */
.internship-shape {
    width: 100%;
    aspect-ratio: 363.51 / 358.98;
    background: #D8D8D8 url("/static/img/career/internship.729425f2b422.jpg") center / cover no-repeat;
    border-radius: 20px 160px 20px 20px;
}

@media (max-width: 900px) {
    .internship-section {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    .internship-title {
        font-size: 34px;
    }
    .internship-shape {
        max-width: 400px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .internship-shape {
        display: none;
    }
}

/* =========================================
   Секция: FAQ
   ========================================= */
.faq-section {
    margin-top: 120px;
    margin-bottom: 120px;
}

.faq-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-bottom: 40px;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    border: 1px solid #E5E7EB;
    border-radius: 50px;
    overflow: hidden;
    background: #fff;
    transition: border-radius 0.28s ease, box-shadow 0.2s ease;
}

.faq-item.is-open,
.faq-item:has(.faq-trigger[aria-expanded="true"]) {
    border-radius: 20px;
}

.faq-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 28px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 19px;
    font-weight: 500;
    color: #474849;
    text-align: left;
    gap: 16px;
}

.faq-trigger:hover {
    background: #f9f9f9;
}

.faq-chevron {
    flex-shrink: 0;
    color: #474849;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-trigger[aria-expanded="true"] .faq-chevron {
    transform: rotate(180deg);
}

/* Height is driven in JS (px → auto) for smooth 60fps expand/collapse */
.faq-body {
    height: 0;
    overflow: hidden;
    transition: height 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: height;
}

.faq-body-inner {
    padding: 0 28px 24px;
}

@media (prefers-reduced-motion: reduce) {
    .faq-body,
    .faq-chevron,
    .faq-item {
        transition-duration: 0.01ms;
    }
}

.faq-body p {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    color: #666;
    line-height: 1.65;
}

.faq-qa-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 4px;
}

.faq-qa {
    border: 1px solid #ECECEC;
    border-radius: 16px;
    overflow: hidden;
    background: #fafafa;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.faq-qa.is-open,
.faq-qa:has(.faq-q-trigger[aria-expanded="true"]) {
    background: #fff;
    border-color: #d8d8d8;
}

.faq-q-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #474849;
    text-align: left;
    line-height: 1.45;
}

.faq-q-trigger:hover {
    background: rgba(1, 165, 181, 0.04);
}

.faq-q-trigger__text {
    flex: 1;
    min-width: 0;
}

.faq-q-chevron {
    flex-shrink: 0;
    color: #01A5B5;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq-q-trigger[aria-expanded="true"] .faq-q-chevron {
    transform: rotate(180deg);
}

.faq-a-panel {
    height: 0;
    overflow: hidden;
    transition: height 0.3s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: height;
}

.faq-a-panel-inner {
    padding: 0 18px 16px;
}

@media (prefers-reduced-motion: reduce) {
    .faq-a-panel,
    .faq-q-chevron {
        transition-duration: 0.01ms;
    }
}

.faq-q {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #474849;
    line-height: 1.45;
    margin: 0 0 10px;
}

.faq-a {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #666;
    line-height: 1.65;
    margin: 0;
}

.faq-a > p {
    margin: 0 0 10px;
}

.faq-a > p:last-child {
    margin-bottom: 0;
}

.faq-a-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.faq-a-list li {
    position: relative;
    padding-left: 16px;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #666;
    line-height: 1.6;
}

.faq-a-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #01A5B5;
}

.faq-a-list strong {
    color: #474849;
    font-weight: 600;
}

.faq-contact {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 12px;
}

.faq-contact-icon {
    flex-shrink: 0;
    font-size: 22px;
    line-height: 1;
    margin-top: 0.12em;
}

.faq-contact-phone {
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #474849;
    letter-spacing: -0.01em;
    margin: 0;
}

.faq-contact-label {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #888;
    text-align: right;
    margin: 4px 0 0;
}

/* =========================================
   CTA: Приглашение в команду
   ========================================= */
.recruit-cta {
    margin-top: 20px;
    margin-bottom: 20px;
    padding-bottom: 20px;
}

.recruit-cta__inner {
    position: relative;
    background: #00828E;
    border-radius: 20px;
    overflow: hidden;
    min-height: 220px;
}

.recruit-cta__content {
    position: relative;
    z-index: 2;
    max-width: min(720px, 72%);
    padding: 48px 56px;
}

.recruit-cta__title {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
    letter-spacing: -0.02em;
    margin: 0 0 20px;
}

.recruit-cta__socials {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0;
}

.recruit-cta__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #ffffff;
    font-size: 20px;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.recruit-cta__social:hover {
    background: #ffffff;
    color: #00828E;
    transform: translateY(-2px);
}

.recruit-cta__phone {
    font-size: 1.15rem;
    color: #ffffff;
    letter-spacing: 0.02em;
    white-space: nowrap;
    text-decoration: none;
}

.recruit-cta__phone-prefix {
    font-weight: 400;
}

.recruit-cta__phone-number {
    font-weight: 700;
}

.hh-icon {
    display: block;
    width: 30px;
    height: 30px;
    background: url("/static/img/career/icons/hh.853a5f37228b.svg") no-repeat center / contain;
}

.recruit-cta__social:hover .hh-icon {
    background-image: url("/static/img/career/icons/hh-hover.194640e3f1c4.svg");
}

.recruit-cta__pattern {
    position: absolute;
    right: 0;
    top: 50%;
    width: 480px;
    height: 480px;
    transform: translate(18%, -50%);
    background: url("/static/img/career/pattern_min.3455eee9d12e.svg") no-repeat center / contain;
    pointer-events: none;
}

@media (max-width: 992px) {
    .recruit-cta__inner {
        min-height: 0;
        height: auto;
    }

    .recruit-cta__content {
        max-width: 62%;
        padding: 40px 16px 40px 32px;
        box-sizing: border-box;
    }

    .recruit-cta__pattern {
        transform: translate(25%, -50%);
    }
}

@media (max-width: 768px) {
    .recruit-cta {
        margin-top: 72px;
        margin-bottom: 72px;
    }

    .recruit-cta__content {
        max-width: 60%;
        padding: 32px 12px 32px 24px;
    }

    .recruit-cta__title {
        font-size: 22px;
        margin-bottom: 16px;
    }

    .recruit-cta__social {
        width: 46px;
        height: 46px;
        font-size: 18px;
    }

    .hh-icon {
        width: 27px;
        height: 27px;
    }

    .recruit-cta__pattern {
        width: 48%;
        height: 100%;
        top: 0;
        right: 0;
        transform: none;
        background-position: left center;
        background-size: auto 100%;
    }
}

@media (max-width: 480px) {
    .recruit-cta {
        margin-top: 48px;
        margin-bottom: 48px;
    }

    .recruit-cta__content {
        max-width: 62%;
        padding: 28px 8px 28px 20px;
    }

    .recruit-cta__title {
        font-size: 20px;
    }

    .recruit-cta__socials {
        gap: 10px;
    }

    .recruit-cta__social--phone {
        display: none;
    }

    .recruit-cta__social {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .hh-icon {
        width: 24px;
        height: 24px;
    }

    .recruit-cta__pattern {
        width: 42%;
        height: 100%;
        top: 0;
        right: 0;
        transform: none;
        background-position: left center;
        background-size: auto 100%;
    }
}

/* Разделитель между секциями */
.section-divider {
    width: 100%;
    height: 1px;
    background-color: #C0C0C0;
    margin: 0;
}

/* =========================================
   Секция: Политика рекрутинга
   ========================================= */
.policies-card {
    margin-top: 80px;
    margin-bottom: 120px;
    background: #FFFFFF;
    border: 1px solid #D3D3D3;
    border-radius: 20px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    padding: 48px 56px;
}

.policies-section {
    margin-top: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.policies-section-title {
    display: block !important;
    width: 100%;
    max-width: 100%;
    align-self: stretch;
    margin: 0 0 40px 0;
    line-height: 1.15;
}

.policies-content {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
}

.policies-items {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 36px;
}

.policies-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.policies-item-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.policies-item-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 17px;
    color: #444;
    line-height: 1.65;
    margin: 0;
}

.policies-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 44px;
    border-radius: 50px;
    background: linear-gradient(90deg, #01A5B5 0%, #780D20 100%);
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border: none;
    width: fit-content;
    margin: 0 auto;
    align-self: center;
    transition: opacity 0.2s ease;
}

.policies-btn:hover {
    opacity: 0.88;
}

@media (max-width: 900px) {
    .policies-card {
        padding: 32px 24px;
    }
    .policies-section-title {
        font-size: 34px;
    }
}

/* =========================================
   АДАПТИВНОСТЬ — Планшет (≤ 768px)
   ========================================= */
@media (max-width: 768px) {

    body { padding: 12px; }

    .container {
        margin: 32px auto;
        padding-top: 0;
        padding-bottom: 0;
        padding-right: calc(var(--bs-gutter-x) * 0.5);
        padding-left: calc(var(--bs-gutter-x) * 0.5);
    }

    /* Секционные отступы */
    .vacancies,
    .testimonials-section,
    .live-inside-section,
    .reasons-section,
    .campus-section,
    .life-uz-section,
    .onboarding-section,
    .faq-section {
        margin-top: 72px;
        margin-bottom: 72px;
    }

    .internship-section,
    .policies-card {
        margin-top: 72px;
        margin-bottom: 72px;
    }

    /* Hero */
    .hero-title { font-size: 36px; }
    .hero-description { font-size: 15px; max-width: 100%; }
    .btn-primary { padding: 14px 28px; font-size: 14px; }
    .stats-grid { gap: 24px; flex-wrap: wrap; justify-content: center; }
    .stat-item h3 { font-size: 28px; }
    .stat-item p { font-size: 11px; }
    .video-container { border-radius: 20px; }

    /* Заголовки секций */
    .section-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .testimonials-header {
        align-items: stretch;
        text-align: center;
    }

    .testimonials-title {
        text-align: center;
        align-self: center;
    }

    .testimonials-header-row {
        width: 100%;
    }

    .section-subtitle {
        text-align: center;
    }

    .testimonials-subtitle {
        text-align: left;
    }

    .testimonials-nav {
        display: none;
    }

    .testimonials-slider-btn {
        display: none;
    }

    .vacancies-subtitle {
        text-align: center;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .life-uz-content > .section-title:first-of-type {
        width: 100%;
        text-align: left;
    }

    .life-uz-main-text {
        text-align: left;
    }

    .uz-features-list {
        gap: 33px;
    }

    .internship-section .internship-title {
        text-align: left;
        width: 100%;
    }

    .faq-section {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }
    .faq-section > .faq-title {
        align-self: center;
        text-align: center;
        max-width: 100%;
    }

    .policies-section-title {
        text-align: center;
    }

    .section-title,
    .policies-section-title,
    .faq-title { font-size: 36px; }

    /* Reasons */
    .reason-card {
        flex: 0 0 88%;
        width: 88%;
        height: 176px;
    }
    .reason-title { font-size: 20px; }

    /* Testimonials */
    .testimonial-card {
        flex: 0 0 100%;
    }

    .testimonial-video-card {
        flex: 0 0 min(82%, 280px);
    }

    /* Vacancies */
    .vacancies-grid-layout {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .card-3 { grid-column: span 1; }
    .card-2 { grid-column: span 1; }
    .v-title { font-size: 36px; }
    .v-card { padding: 24px; }
    .vacancies-subtitle { font-size: 14px; }

    /* Internship */
    .internship-title { font-size: 30px; }
    .internship-desc {
        font-size: 15px;
        text-align: left;
    }
    .internship-formats-list li { font-size: 15px; }
    .internship-btn { padding: 13px 32px; font-size: 14px; }

    /* Policies */
    .policies-card { padding: 28px 24px; }
    .policies-section-title { font-size: 28px; }
    .policies-item-text { font-size: 15px; }
    .policies-btn { padding: 13px 32px; font-size: 14px; }

    /* FAQ */
    .faq-trigger { font-size: 16px; padding: 16px 20px; }
    .faq-body-inner { padding: 0 20px 18px; }
    .faq-contact { justify-content: flex-start; }
    .faq-contact-phone { font-size: 18px; }
}

/* =========================================
   АДАПТИВНОСТЬ — Мобайл (≤ 480px)
   ========================================= */
@media (max-width: 480px) {

    /* Do not inset the whole page — that clipped the sticky site header
       and left white gutters on the sides. */
    body.template-career-page {
        padding: 0;
    }

    .template-career-page .container {
        margin-top: 0;
        margin-bottom: 0;
        padding-top: 0;
        padding-bottom: 0;
        padding-right: calc(var(--bs-gutter-x) * 0.5);
        padding-left: calc(var(--bs-gutter-x) * 0.5);
    }

    /* Секционные отступы */
    .vacancies,
    .testimonials-section,
    .live-inside-section,
    .reasons-section,
    .campus-section,
    .life-uz-section,
    .onboarding-section,
    .faq-section {
        margin-top: 48px;
        margin-bottom: 48px;
    }

    .internship-section,
    .policies-card {
        margin-top: 48px;
        margin-bottom: 48px;
    }

    /* Hero */
    .hero-title { font-size: 28px; }
    .hero-description { font-size: 14px; }
    .stats-grid { gap: 16px; }
    .stat-item h3 { font-size: 24px; }

    /* Заголовки */
    .section-title,
    .policies-section-title,
    .faq-title { font-size: 28px; }
    .section-subtitle { font-size: 14px; }

    /* Campus */
    .campus-card { padding: 24px; }
    .campus-card-title { font-size: 22px; }

    /* Reasons */
    .reason-title { font-size: 17px; }
    .reason-text { font-size: 13px; }

    /* Vacancies */
    .vacancies-grid-layout {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .card-3,
    .card-2 {
        grid-column: span 1;
        aspect-ratio: 245.12 / 179.37;
    }
    .v-title { font-size: 28px; }
    .v-card { padding: 20px; }

    /* Internship */
    .internship-title { font-size: 24px; }
    .internship-shape { border-radius: 16px; }

    /* Policies */
    .policies-card { padding: 20px 16px; }
    .policies-section-title { font-size: 24px; }

    /* FAQ */
    .faq-title { font-size: 28px; }
    .faq-trigger { font-size: 15px; padding: 14px 16px; }
    .faq-item { border-radius: 16px; }
    .faq-item:has(.faq-trigger[aria-expanded="true"]) { border-radius: 16px; }
    .faq-contact-phone { font-size: 16px; }
}

/* =========================================
   Секция: Onboarding Journey
   ========================================= */
.onboarding-section {
    margin-top: 120px;
    margin-bottom: 80px;
}

.onboarding-section .section-header {
    margin-bottom: 8px;
}

.onboarding-section .section-title {
    margin-bottom: 8px;
}

.onboarding-section .section-subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    color: #666;
    margin: 0 0 28px 0;
}

/* Появление при скролле */
.onboarding-section.reveal-ready .section-header,
.onboarding-section.reveal-ready .section-subtitle,
.onboarding-section.reveal-ready .onboarding-block {
    opacity: 0;
    transform: translateY(48px);
    transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.onboarding-section.reveal-ready.is-revealed .section-header {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
}

.onboarding-section.reveal-ready.is-revealed .section-subtitle {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.12s;
}

.onboarding-section.reveal-ready.is-revealed .onboarding-block {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.24s;
}

@media (prefers-reduced-motion: reduce) {
    .onboarding-section.reveal-ready .section-header,
    .onboarding-section.reveal-ready .section-subtitle,
    .onboarding-section.reveal-ready .onboarding-block {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.onboarding-block {
    width: 100%;
    margin: 0;
    background-color: var(--onboarding-bg);
    font-family: 'Montserrat', sans-serif;
    color: var(--onboarding-text);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--onboarding-border);
}

.onboarding-header {
    display: flex;
    padding: 40px 50px 20px;
    border-bottom: 1px solid var(--onboarding-border);
}

.onboarding-header-left,
.onboarding-header-right {
    flex: 1;
}

.onboarding-main-title {
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.3;
    margin: 0;
}

.onboarding-header-right p {
    font-size: 1.4rem;
    font-weight: 700;
    color: #111;
    margin: 10px 0 0;
}

.onboarding-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

.onboarding-card {
    padding: 40px 50px;
    border-bottom: 1px solid var(--onboarding-border);
    display: flex;
    flex-direction: column;
    position: relative;
    min-height: 100%;
    height: 100%;
}

.onboarding-card-top {
    /* Fixed height so the badge lands at the same vertical position in every
       card regardless of timeline node count. Timeline uses margin-top:auto
       to fill whatever space is left beneath this block. */
    flex: 0 0 auto;
    min-height: 215px;
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
}

.onboarding-card:nth-child(odd) {
    border-right: 1px solid var(--onboarding-border);
}

/* Fixed min-height so badge lands at same position regardless of title length */
.onboarding-step-info {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
    min-height: 110px;
}

.onboarding-number {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--onboarding-teal);
    margin-right: 20px;
    line-height: 1;
}

.onboarding-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--onboarding-teal);
    line-height: 1.2;
    margin: 0;
}

.onboarding-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background: #f4f4f4;
    padding: 12px 20px;
    border-radius: 25px;
    font-size: 15px;
    font-weight: 700;
    border: 1px solid #e5e5e5;
    margin-top: auto;
    margin-bottom: 28px;
    text-align: center;
    line-height: 1.35;
    /* fixed height so badge stays at same vertical position across all cards */
    min-height: 58px;
}

.onboarding-timeline {
    --onboarding-nodes: 3;
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--onboarding-nodes), minmax(0, 1fr));
    column-gap: 6px;
    width: 100%;
    margin-top: auto;
    flex-shrink: 0;
}

.onboarding-timeline-line {
    position: absolute;
    top: 14px;
    left: calc(100% / (var(--onboarding-nodes) * 2));
    right: calc(100% / (var(--onboarding-nodes) * 2));
    height: 1px;
    background-color: #ccc;
    z-index: 0;
    pointer-events: none;
}

.onboarding-timeline[style*="--onboarding-nodes: 4"] .onboarding-node-text,
.onboarding-timeline[style*="--onboarding-nodes: 5"] .onboarding-node-text {
    font-size: 12px;
    line-height: 1.3;
}

.onboarding-node {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
}

.onboarding-icon {
    width: 28px;
    height: 28px;
    background-color: var(--onboarding-teal);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 8px;
    border: 2px solid #fff;
}

.onboarding-icon i {
    color: #fff;
    font-size: 11px;
}

.onboarding-node-text {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    width: 100%;
}

.onboarding-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 40px 0;
}

.onboarding-logo {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0 50px;
    justify-self: start;
}

/* Start at the right-column edge (grid divider), not inset like card content. */
.onboarding-footer .onboarding-status {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    width: 100%;
    margin: 0;
    padding: 0 50px 0 0;
    justify-self: stretch;
    box-sizing: border-box;
}

.onboarding-logo-img {
    display: block;
    width: auto;
    max-width: min(194px, 100%);
    height: auto;
    max-height: 55px;
    object-fit: contain;
}

.onboarding-status {
    display: flex;
    align-items: center;
    gap: 15px;
}

.onboarding-status-icon {
    display: block;
    width: 45px;
    height: 45px;
    flex-shrink: 0;
    object-fit: contain;
}

.onboarding-status-content h3 {
    color: var(--onboarding-green);
    font-size: 1.05rem;
    margin: 0;
    line-height: 1.25;
}

.onboarding-status-content p {
    font-size: 0.85rem;
    margin: 0;
    font-weight: 400;
    line-height: 1.4;
}

.onboarding-swipe-hint {
    display: none;
    text-align: center;
    font-size: 0.8rem;
    color: #aaa;
    padding: 10px 0;
    margin: 0;
}

@media (max-width: 768px) {
    .onboarding-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 30px 25px;
        gap: 16px;
    }

    .onboarding-header-left,
    .onboarding-header-right {
        flex: none;
        width: 100%;
    }

    .onboarding-header-right p {
        margin: 0;
    }

    .onboarding-grid {
        display: flex;
        align-items: flex-start;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .onboarding-grid::-webkit-scrollbar {
        display: none;
    }

    .onboarding-card {
        min-width: 85%;
        height: auto;
        min-height: 0;
        align-self: flex-start;
        scroll-snap-align: center;
        border-bottom: none;
        border-right: 1px solid var(--onboarding-border) !important;
        padding: 30px 25px;
    }

    .onboarding-card-top {
        flex: none;
        min-height: 0;
        gap: 16px;
        margin-bottom: 0;
    }

    .onboarding-badge {
        margin-top: 0;
        margin-bottom: 20px;
        font-size: 14px;
        padding: 10px 16px;
    }

    .onboarding-timeline {
        display: flex;
        flex-direction: column;
        gap: 18px;
        align-items: stretch;
        margin-top: 0;
    }

    .onboarding-timeline-line {
        display: none;
    }

    .onboarding-timeline[style*="--onboarding-nodes: 4"] .onboarding-node-text,
    .onboarding-timeline[style*="--onboarding-nodes: 5"] .onboarding-node-text {
        font-size: 11px;
    }

    .onboarding-node {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        width: 100%;
    }

    .onboarding-icon {
        flex-shrink: 0;
        margin-bottom: 0;
        margin-top: 0;
    }

    .onboarding-node-text {
        flex: 1;
        min-width: 0;
        font-size: 13px;
        line-height: 1.3;
        text-align: left;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .onboarding-step-info {
        min-height: 0;
        margin-bottom: 12px;
        align-items: flex-start;
    }

    .onboarding-number {
        font-size: 2.75rem;
        margin-right: 14px;
    }

    .onboarding-title {
        font-size: 1.2rem;
        line-height: 1.15;
        flex: 1;
        min-width: 0;
    }

    .onboarding-title-line2 {
        white-space: nowrap;
    }

    .onboarding-footer {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 28px;
        padding: 30px 25px;
    }

    .onboarding-logo {
        justify-content: center;
        justify-self: center;
        width: 100%;
        padding: 0;
    }

    .onboarding-logo-img {
        margin-inline: auto;
    }

    .onboarding-footer .onboarding-status {
        padding: 0;
        justify-self: center;
    }

    .onboarding-status {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 12px;
    }

    .onboarding-status-content {
        text-align: center;
    }

    /* Статус как 7-я ячейка слайдера */
    .onboarding-grid > .onboarding-status {
        min-width: 100%;
        width: 100%;
        align-self: stretch;
        scroll-snap-align: center;
        padding: 30px 25px;
        border-right: 1px solid var(--onboarding-border);
        gap: 16px;
    }

    .onboarding-swipe-hint {
        display: block;
    }

    .onboarding-swipe-hint.is-hidden {
        display: none;
    }
}

/* =========================================
   Voices — nested topic + photo sliders
   ========================================= */
.voices-section {
    margin-top: 80px;
    margin-bottom: 60px;
}

.voices-outer {
    position: relative;
    background: #F3F9F9;
    border-radius: 24px;
    padding: clamp(24px, 3vw, 36px) clamp(20px, 3vw, 40px) clamp(22px, 2.5vw, 32px);
    box-sizing: border-box;
}

.voices-top {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    align-items: center;
    gap: 12px 16px;
    margin-bottom: 20px;
}

.voices-top__copy {
    min-width: 0;
    text-align: center;
}

.voices-outer__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: transparent;
    color: #FF9900;
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 50%;
    transition: background 0.2s ease, opacity 0.2s ease;
    justify-self: center;
}

.voices-outer__nav:hover {
    background: rgba(255, 153, 0, 0.12);
}

.voices-outer__nav:disabled {
    opacity: 0.35;
    cursor: default;
}

.voices-outer__viewport {
    min-width: 0;
    width: 100%;
}

.voices-slide {
    width: 100%;
}

.voices-slide__header {
    text-align: center;
    width: 100%;
    max-width: none;
    margin: 0;
}

.voices-slide__title {
    margin: 0 0 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 34.37px;
    line-height: 100%;
    letter-spacing: -0.03em;
}

.voices-slide__subtitle {
    max-width: 40rem;
    margin: 0 auto;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: -0.02em;
    color: var(--color-text-main);
}

.voices-card {
    background: #ffffff;
    border-radius: 18px;
    padding: clamp(12px, 1.6vw, 18px) clamp(12px, 1.6vw, 18px) 14px;
    box-shadow: 0 6px 20px rgba(17, 24, 39, 0.05);
    box-sizing: border-box;
}

.voices-inner {
    position: relative;
}

.voices-inner__viewport {
    --voices-slide-w: 86%;
    --voices-slide-inset: 7%;
    position: relative;
    width: 100%;
    /* Taller frame so cover-cropped photos show more of the subject */
    height: clamp(300px, 44vw, 480px);
    border-radius: 14px;
    overflow: hidden;
    background: #e8eaed;
}

.voices-inner__track {
    position: relative;
    width: 100%;
    height: 100%;
}

.voices-photo {
    margin: 0;
    position: absolute;
    top: 0;
    left: var(--voices-slide-inset);
    width: var(--voices-slide-w);
    height: 100%;
    border-radius: 14px;
    overflow: hidden;
    opacity: 0;
    transform: translateX(0);
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
    pointer-events: none;
    z-index: 0;
    background: #d9dee3;
}

.voices-photo.is-side {
    opacity: 1;
    z-index: 1;
}

.voices-photo.is-active {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}

.voices-photo.is-far {
    opacity: 0;
    z-index: 0;
}

.voices-inner--single .voices-photo {
    left: 0;
    width: 100%;
    border-radius: 14px;
}

.voices-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Hit area over peeking side photos */
.voices-inner__nav {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--voices-slide-inset, 13%);
    min-width: 44px;
    padding: 0;
    border: none;
    background: transparent;
    color: #FF9900;
    cursor: pointer;
}

.voices-inner__nav--prev {
    left: 0;
}

.voices-inner__nav--next {
    right: 0;
}

.voices-inner__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.16);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.voices-inner__nav:hover .voices-inner__nav-btn {
    transform: scale(1.06);
    box-shadow: 0 4px 16px rgba(17, 24, 39, 0.2);
}

.voices-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

.voices-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: #ffb84d;
    opacity: 0.45;
    cursor: pointer;
    transition: width 0.25s ease, opacity 0.25s ease, background 0.25s ease;
}

.voices-dot.is-active {
    width: 26px;
    opacity: 1;
    background: #FF9900;
}

@media (max-width: 768px) {
    .live-inside-section {
        margin-top: 56px;
        margin-bottom: 48px;
    }

    .voices-section {
        margin-top: 56px;
        margin-bottom: 48px;
    }

    .voices-outer {
        padding: 20px 14px 18px;
        border-radius: 20px;
    }

    .voices-top {
        grid-template-columns: 32px minmax(0, 1fr) 32px;
        gap: 6px 8px;
        margin-bottom: 16px;
    }

    .voices-outer__nav {
        width: 32px;
        height: 32px;
    }

    .voices-slide__title {
        font-size: clamp(24px, 7vw, 34.37px);
    }

    .voices-slide__subtitle {
        font-size: 13px;
    }

    .voices-card {
        padding: 10px 10px 12px;
        border-radius: 14px;
    }

    .voices-inner__viewport {
        --voices-slide-w: 88%;
        --voices-slide-inset: 6%;
        height: clamp(260px, 64vw, 360px);
        border-radius: 12px;
    }

    .voices-photo {
        border-radius: 12px;
    }

    .voices-inner__nav {
        min-width: 36px;
    }

    .voices-inner__nav-btn {
        width: 30px;
        height: 30px;
    }
}
