@import url('https://fonts.googleapis.com/css2?family=Geologica:wght@200;300;400;500;600&display=swap');

:root {
    --primary: #B91C1C;
    --text: #111;
    --muted: #666;
    --border: #ddd;
    --bg-light: #E6E6E6;
}

/* Базовые стили */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    font-family: Geologica, sans-serif;
    color: var(--text);
    background: #fff;
    font-size: 0.83vw;
}

/* Главный контейнер */
.page {
    padding-top: 0;
}

.container {
    width: 90%;
    margin: 0 auto;
}

.school {
    margin: 0 auto;
    padding: 0 0 80px;
}

/* Общие заголовки секций */
.section__title {
    font-size: 2.76vw;
    font-weight: 200;
    margin: 0 0 2.6vw;
    line-height: 100%;
    letter-spacing: -0.03vw;
}

/* Кнопки */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 3.2vw;
    padding: 0 24px;
    font-size: 1vw;
    font-weight: 300;
    text-decoration: none;
    cursor: pointer;
    transition: .2s ease;
    white-space: nowrap;
    font-family: inherit;
    text-transform: uppercase;
}

.btn__icon {
    width: 2.1vw;
    height: 2.1vw;
}

.contact__info {
    display: flex;
    align-items: center;
    gap: 0.55vw
}

.btn--primary, .btn__primary {
    background: var(--primary);
    color: #fff;
    border: 1px solid var(--primary);
}

.btn--primary:hover, .btn__primary:hover {
    background: #991515;
    border-color: #991515;
}

.btn__outline {
    background: #fff;
    color: var(--text);
    border: 1px solid var(--text);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.btn__outline:hover img {
    filter: invert(1) brightness(1.15) contrast(1.05);
    mix-blend-mode: normal;
    opacity: 1;
}

.btn__outline:hover {
    background: var(--text);
    color: #fff;
}

.btn--outline {
    background: #fff;
    color: var(--text);
    border: 1px solid var(--text);
}

.btn--outline:hover {
    background: var(--text);
    color: #fff;
}

/* ============= ГЕРОЙ-СЕКЦИЯ ============= */
.hero {
    padding: 0.94vw 0 6.25vw;
}

.hero__header {
    font-size: 70px;
    font-weight: 300;
    font-size: 2.76vw;
    line-height: 110%;
    letter-spacing: -0.03vw;
    margin-bottom: 2.6vw;
}

.hero__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto auto;
    gap: 5.2vw 2.08vw;
}

.hero__logo {
    grid-row: 1 / 2;
    grid-column: 1 / 2;
}

.hero__logo img {
    width: 18.2vw;
    height: 23.2vw;
    display: block;
}


.hero__right {
    display: grid;
    grid-column: 2 / -1;
    grid-row: 1 / 2;
    column-gap: 2.08vw;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto;
}

.hero__title {
    height: max-content;
    grid-row: 1 / 2;
    grid-column: 1 / 2;
    line-height: 105%;
    font-size: 1.61vw;
    font-weight: 300;
    margin: 0;
    margin-bottom: 1.6vw;
}

.hero__desc {
    height: max-content;
    grid-column: 1 / 2;
    line-height: 110%;
    margin: 0 0 0.73vw;
    font-size: 1.25vw;
    font-weight: 250;
    letter-spacing: -0.03vw;
    font-family: Geologica;
}

.hero__desc strong {
    font-weight: 500;
}

.hero__program_title {
    height: max-content;
    grid-row: 1 / 2;
    grid-column: 2 / 3;
    margin: 0;
    font-size: 1.61vw;
    font-weight: 300;
}
.hero__price_title
{
    grid-column: 3;
    grid-row: 1 / 2;
    height: max-content;
    margin: 0;
    font-size: 1.61vw;
    font-weight: 300;
}

.hero__program_list {
    /* gap: 1.04vw; */
    list-style-type: none;
    grid-row: 2 / 6;
    grid-column: 2 / 3;
    line-height: 110%;
    padding: 0;
    margin: 0;
    font-size: 1.25vw;
    font-weight: 200;
    letter-spacing: -0.03vw;
    display: flex;
    flex-direction: column;
}

.hero__program_list li::before {
    content: "—";
    margin-right: 0.26vw;
}

.hero__prices_title {
    height: max-content;
    grid-column: -1 / -2;
    grid-row: 1 / 2;
    margin: 0;
    font-size: 1.61vw;
    font-weight: 300;
}

.hero__prices_text {
    height: max-content;
    grid-column: -1 / -2;
    line-height: 110%;
    padding: 0;
    margin: 0;
    font-size: 1.25vw;
    font-weight: 200;
    letter-spacing: -0.03vw;
    grid-row: 2 / 3;
    font-weight: 400;
}

.hero__prices_text b {
    display: block;
    margin-top: 0.52vw;
    font-weight: 300;
}

.hero__prices_text:last-of-type {
    grid-row: 3 / 4;
}

.hero__center {
    width: 100%;
    display: grid;
    gap: 2.08vw;
    grid-template-columns: repeat(4, 1fr);
    grid-row: 2 / 3;
    grid-column: 1 / -1;
}

.hero__subtitle {
    font-size: 1.6vw;
    font-weight: 300;
    margin: 0;
    line-height: 110%;
    letter-spacing: -0.03vw;
}


.hero__actions {
    grid-column: 2 / -1;
    display: grid;
    gap: 2.08vw;
    grid-template-columns: repeat(3, 1fr);
}

.hero__actions .btn {
    height: 100%;
}

.hero__extra {
    grid-column: 3 / 4;
    grid-row: 2 / 20;
}

.hero__extra_title {
    margin: 0 0 1vw;
    font-size: 1.61vw;
    font-weight: 300;
}

.hero__extra_text {
    font-size: 1.25vw;
    line-height: 110%;
    font-weight: 200;
}

/* ============= СПИКЕРЫ ============= */
.speakers {
    padding-bottom: 3.13vw;
    position: relative;
}

.section__content {
    width: 100%;
    display: flex;
    justify-content: space-between;
    margin: 0 0 2.7vw;
    align-items: center;
}

.section__content .section__title {
    margin: 0;
}

.speakers__slider {
    position: relative;
    width: 100%;
}

.speakers__dots {
    display: flex;
    justify-content: center;
    margin-top: 0 !important;
    gap: 0.26vw !important;
}

.speakers__dot {
    flex: 0 0 auto;
}

.speakers__dot {
    width: 10px; height: 10px;
    background: #ccc;
    border-radius: 50%;
    cursor: pointer;
}

.speakers__dot.active {
    background: rgba(173, 12, 12, 1);
}

.speakers__track {
    display: flex !important;
    /* gap: var(--gap); */
    gap: 20px;
    transition: transform 0.4s ease;
    will-change: transform;
}

.speakers__nav {
  position: absolute;
  width: 2vw;
  height: 76%;
  background: transparent;
  border: none;
  z-index: 2;
  cursor: pointer;
  filter: invert(1);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.speakers__nav.prev { left: -3vw; }
.speakers__nav.next { right: -3vw; }

.speakers:hover .speakers__nav, .speakers__nav:hover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.speaker {
    flex: 0 0 calc(25% - 20px) !important;
}

.speaker__name {
    margin: 0.52vw 0;
    font-size: 1.6vw;
    font-weight: 400;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

.speaker__role {
    margin: 0;
    font-size: 1.6vw;
    font-weight: 200;
    color: black;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

/* ===== REVIEWS SLIDER ===== */

.reviews__slider-container {
  overflow: hidden;
  width: 100%;
}

/* ===== REVIEWS ===== */

/* ДЕСКТОП — обычная сетка */
.reviews__track {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.7vw 2.08vw;
}

.review {
  width: 100%;
}

/* ===== СЛАЙДЕР ТОЛЬКО НА ПЛАНШЕТЕ И МОБИЛКЕ ===== */

@media (max-width: 1024px) {

  .reviews__slider-container {
    overflow: hidden;
  }

  .reviews__track {
    display: flex;
    gap: 20px;
    transition: transform 0.35s ease;
  }

  .review {
    flex: 0 0 calc(50% - 10px); /* 2 */
  }
}

@media (max-width: 767px) {
  .review {
    flex: 0 0 100%; /* 1 */
  }
}

/* точки */
.reviews__dots {
  display: none;
  justify-content: center;
  margin-top: 15px;
  gap: 8px;
}

.reviews__dot {
  width: 10px;
  height: 10px;
  background: #ccc;
  border-radius: 50%;
  cursor: pointer;
}

.reviews__dot.active {
  background: rgba(173, 12, 12, 1);
}

/* показываем точки только на моб/планшете */
@media (max-width: 1024px) {
  .reviews__dots {
    display: flex;
    
  }
}

/* ============= ФОРМА РЕГИСТРАЦИИ ============= */
.register {
    width: 100vw;
    height: 100vh;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    z-index: -10;
}

.register.open {
    opacity: 1;
    z-index: 1100;
}

html:has(.register.open) {
    overflow: hidden;
    height: 100%;
}

.register::after {
    content: "";
    width: 100vw;
    height: 100vh;
    background: rgba(58, 58, 58, 0.6);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    backdrop-filter: blur(5px);
}

.register__grid {
    width: 44.3vw;
    position: relative;
    z-index: 20;
}

.register__grid fieldset {
    display: none;
}

.register__info {
    display: none;
}

.register__info h3 {
    margin: 0 0 1.1vw;
    font-size: 1.6vw;
    font-weight: 400;
    line-height: 105%;
}

.price {
    font-weight: 300;
    margin: 0 0 1.7vw;
    font-size: 1.2vw;
    line-height: 1.5;
}

.price_count {
    font-weight: 400;
    font-size: 1.55vw;
}

.price strong {
    display: block;
    font-size: 1.6vw;
    color: var(--text);
    margin-top: 0.2vw;
}

.register__form {
    width: 100%;
    display: grid;
    gap: 1.04vw;
    grid-template-columns: repeat(2, 1fr) 0;
    background-color: white;
    padding: 2.1vw 3.2vw;
}

.close__form {
    display: block;
    width: 1.04vw;
    height: 1.04vw;
    grid-column: -2 / -1;
    justify-self: end;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50'%3E%3Cline x1='5' y1='5' x2='45' y2='45' stroke='black' stroke-width='2'/%3E%3Cline x1='45' y1='5' x2='5' y2='45' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

.register__form .section__title {
    grid-column: 1 / -1;
    font-size: 2.76vw;
    font-weight: 200;
    margin: 0 0 1vw;
    letter-spacing: -0.03vw;
    line-height: 100%;
}

.register__form input,
.register__form textarea {
    height: 3.2vw;
    width: 100%;
    padding: 1.04vw;
    font-size: 1vw;
    font-family: inherit;
    border: 1px solid rgba(0, 0, 0, 0.4);
}

.register__form input.btn {
    border: unset;
}

.form__row, .form__row_second {
    display: grid;
    gap: 0.9vw;
    grid-column: 1 / -2;
}

.form__row_second {
    grid-template-columns: 1fr;
}

.form__row_second * {
    width: 100%;
}

.form__row_thirdy {
    display: flex;
    grid-column: 1 / 2;
}

.form__row_thirdy * {
    font-size: 0.94vw;
}

.form__row_thirdy,
.register__form .btn:not(.form__row_thirdy .btn) {
    margin-top: 1.04vw;
}

.form__row_thirdy:has(input:nth-child(2)) {
    margin-top: 1.04vw;
    grid-column: 1 / -2;
}

.register__form .btn {
    grid-column: -3 / -2;
}

.register__form label:not(.register__form .form__row_thirdy > label) {
    display: flex;
    align-items: center;
    gap: 0.5vw;
    font-size: 0.94vw;
    font-weight: 400;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

.register__form label input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
    width: 1vw;
    height: 1vw;
    align-self: start;
}

/* ============= ОТЗЫВЫ ============= */
.reviews {
    width: 100vw;
    margin: 3.1vw -5vw;
    padding: 3.1vw 5vw 6.77vw;
    background-color: var(--bg-light);
}

.reviews__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.7vw 2.08vw;
}


.review {
    padding: 0 3.5vw 0 1.3vw;
    border-left: 0.1vw solid rgba(0, 0, 0, 1);
    position: relative;
}

.review__author {
    margin: 0;
    font-size: 1.6vw;
    font-weight: 400;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

.review__date {
    margin: 0.52vw 0 1.3vw;
    font-size: 0.73vw;
    color: black;
    font-weight: 300;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

.review__text {
    margin: 0;
    font-size: 1.25vw;
    line-height: 110%;
    letter-spacing: -0.03vw;
    font-weight: 300;
}

/* ============= АРХИВ ВОРКШОПОВ ============= */
.archive {
    padding: 3.1vw 0;
}

.archive__grid {
    display: grid;
    grid-template-columns: 1fr calc(50% - 1.04vw) 1fr;
    gap: 2.08vw;
}

.workshop {
    display: flex;
    flex-direction: column;
}

.workshop img {
    height: 32vw;
    width: 100%;
    object-fit: cover;
    display: block;
}

.workshop__title {
    margin: 0.52vw 0;
    font-size: 1.6vw;
    font-weight: 300;
    line-height: 1.4;
    line-height: 135%;
    letter-spacing: -0.03vw;
}

.workshop__date {
    margin: 0;
    font-size: 1.6vw;
    color: black;
    font-weight: 300;
    line-height: 135%;
    letter-spacing: -0.03vw;
}


.archive__actions {
    margin-top: 2.6vw;
    text-align: end;
}

.archive__actions .btn {
    width: calc(25% - 1.4vw);
    height: 3.1vw;
    line-height: 110%;
    letter-spacing: -0.03vw;
    text-transform: uppercase;
    font-size: 1.25vw;
}

.btn--outline img {
    width: 1.2vw;
    height: 1.2vw;
    opacity: 0;
}

.btn--outline:hover img {
    filter: invert(1) brightness(1.15) contrast(1.05);
    mix-blend-mode: normal;
    opacity: 1;
}

/* ============= КОНТАКТЫ ============= */
.contacts {
    padding: 3.13vw 0 6.25vw;
}

.contacts .section__title {
    margin-bottom: 1.8vw;
}


.contacts__list {
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0vw 1.8vw;
    display: grid;
    grid-template-columns: 44.9vw 1fr;
    position: relative;
}

.contacts__list::after {
    content: "";
    height: calc(100% - 15px);
    border-left: 0.1vw solid black;
    position: absolute;
    left: 25%;
    top: 7.5px;
}

.contact__item {
    display: flex;
    align-items: flex-start;
    gap: 0.8vw;
    padding: 0.52vw 1.04vw;
    background: var(--bg-light);
    grid-column: 1 / 2;
}

.contact__item:first-of-type {
    padding-top: 1.04vw;
}

.contact__item:last-of-type {
    padding-bottom: 1.04vw;
}

.contact__row {
    flex: 1;
    display: flex;
    gap: 13vw;
    align-items: center;
}

.contact__icon {
    width: 2vw;
    height: 2vw;
    flex-shrink: 0;
    display: block;
}

.contact__label {
    font-weight: 400;
    font-size: 1.25vw;
    color: black;
    white-space: nowrap;
    min-width: 6.2vw;
    line-height: 110%;
    letter-spacing: -0.03vw;
}

.contact__data {
    flex: 1;
    font-size: 1.25vw;
    line-height: 105%;
    color: var(--text);
    font-weight: 400;
    letter-spacing: -0.03vw;
    display: flex;
    gap: 0.2vw;
    flex-direction: column;
    line-height: 135%;
    margin-left: 1vw;
}

.contact__data a {
    color: inherit;
    text-decoration: none;
}

.contact__data a:hover {
    text-decoration: underline;
}

/* Карта */
.contacts__map {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.contacts__map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.mobile_speakers {
    display: none;
}

.tablet_speakers {
    display: none;
}

/* ============= АДАПТИВ ============= */

/* ============= МОБИЛЬНЫЙ АДАПТИВ 360–767 ============= */
@media (max-width:767px) {

    /* Общий контейнер */
    .school {
        max-width: min(100%, 767px);
        padding: 0 clamp(12px, 3vw, 20px) clamp(36px, 9vw, 50px);
        margin: 0 auto;
    }

    /* Заголовки секций */
    .section__title {
        font-size: 8vw;
        font-weight: 300;
        margin: 0 0 4.71vw;
        line-height: 105%;
    }

    /* Кнопки */
    .btn {
        height: 11vw;
        font-size: 3.76vw;
        padding: 0 16vw;
    }

    .breadcrumbs .title {
        font-size: 6.12vw;
    }

    /* ===== ГЕРОЙ-СЕКЦИЯ ===== */
    .hero {
        padding: 0 0 7.06vw;
    }

    .hero__header {
        font-size: 4.47vw;
    }

    .hero__logo {
        text-align: center;
    }

    .hero__logo img {
        width: 50.4vw;
        height: 64.3vw;
        margin: 0 auto;
    }

    .hero__grid {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .hero__center {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 4.71vw;
        margin: 4.71vw 0 14.12vw;
    }

    .hero__actions {
        display: flex;
        flex-direction: column;
        gap: 2.35vw;
    }

    .hero__subtitle {
        font-size: 4.47vw;
        text-align: start;
    }


    .hero__actions .btn {
        height: 10.67vw;
    }

    .btn__icon {
        height: 6.5vw;
        width: 6.5vw;
    }

    .hero__right {
        grid-template-columns: 1fr;
    }

    .hero__right>* {
        grid-column: 1 / 2;
        grid-row: unset;
    }

    .hero__title {
        font-size: 4.47vw;
        margin: 0 0 2.67vw;
    }

    .hero__desc, .hero__prices_text {
        font-size: 3.76vw;
        margin: 0 0 2.67vw;
    }

    .hero__program_title, .hero__prices_title, .hero__price_title, .hero__title{
        font-size: 5.07vw;
        margin: 4.71vw 0 2.35vw;
    }

    .hero__prices_title {
        margin-top: 7.06vw;
    }

    .hero__prices_text {
        grid-row: unset !important;
    }

    .hero__prices_text b {
        margin-top: 1.18vw;
    }

    .hero__program_list {
        font-size: 3.76vw;
    }

    .hero__program_list li::before {
        margin-right: 1.5vw;
    }

    /* ===== МОБИЛЬНЫЙ СЛАЙДЕР СПИКЕРОВ ===== */
    .mobile_speakers {
        display: block;
        padding: 0;
        position: relative;
        overflow: hidden;
    }

    .speakers {
        /* display: none; */
    }

    .speakers {
        padding: 7.06vw 0;
    }

    .speakers__track {
        display: flex !important;
    }


    .speakers .section__content {
        margin-bottom: 4.71vw;
    }

    .speaker {
        flex: 0 0 calc(100% - 0px) !important
    }

    .speaker img {
        height: 72.4vw !important;
    }

    .speaker__name, .speaker__role {
        font-size: 4.47vw;
        margin-top: 1.18vw;
    }

    .speaker__name {
        margin-top: 2.35vw;
        margin-bottom: 0;
    }

    .speakers__dots {
        gap: 0.49vw !important;
    }

    .mobile_speakers__header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 4.5vw;
    }

    .mobile_speakers__header .section__title {
        font-size: 8vw;
        margin: 0;
    }

    .mobile_speakers__dots {
        display: flex;
        gap: clamp(6px, 1.5vw, 10px);
    }

    .mobile_speakers__dots .dot {
        width: clamp(8px, 2vw, 12px);
        height: clamp(8px, 2vw, 12px);
        border-radius: 50%;
        background: #ddd;
        cursor: pointer;
        transition: background .3s ease;
    }

    .mobile_speakers__dots .dot.is_active {
        background: var(--primary);
    }

    .mobile_speakers .work_slider__track {
        display: flex;
        transition: transform 0.4s ease;
        will-change: transform;
        gap: 5.5vw;
    }

    .mobile_speakers .work_slider__slide {
        flex: 0 0 100%;
        width: 100%;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 3vw;
    }

    .mobile_speaker {
        text-align: start;
    }

    .mobile_speaker img {
        width: 100%;
        height: 58vw;
        margin: 0 auto;
        object-fit: cover;
        display: block;
    }

    .mobile_speaker__name {
        font-size: 5vw;
        font-weight: 400;
        margin: 2.5vw 0 0;
        line-height: 105%;
    }

    .mobile_speaker__role {
        font-weight: 300;
        font-size: 4.5vw;
        color: black;
        margin: 0;
        line-height: 1.4;
    }

    /* ===== ФОРМА РЕГИСТРАЦИИ ===== */
    .register {
        padding: 2.8vw;
    }

    .register__grid {
        width: 95%;
        display: flex;
        flex-direction: column;
        gap: 4.5vw;
    }

    .register__info h3 {
        font-size: 5.5vw;
        margin: 0 0 5.5vw;
    }

    .price {
        font-size: 4.4vw;
        margin: 0 0 4vw;
    }

    .price_count {
        font-size: 5vw;
    }

    .price strong {
        font-size: clamp(18px, 4.5vw, 22px);
    }

    .register__form .section__title {
        font-size: 5.5vw;
        font-weight: 400;
        margin: 0 0 5.5vw;
    }

    .register__form {
        grid-template-columns: 1fr;
        gap: 4.71vw;
        padding: 9.41vw 4vw;
    }

    .close__form {
        width: 4.71vw;
        height: 4.71vw;
    }

    .register__form input,
    .register__form textarea {
        height: auto;
        padding: 2.5vw;
        font-size: 4.5vw;
    }

    .form__row, .form__row_second {
        grid-template-columns: 1fr;
        gap: 4.71vw;
    }

    .form__row_thirdy {
        width: 100%;
        flex-direction: column;
        grid-column: 1 / -1;
    }

    .form__row_thirdy * {
        font-size: 4.24vw;
    }

    .register__form label:not(.register__form .form__row_thirdy > label) {
        width: 100%;
        font-size: 4.24vw;
        margin-top: 1vw;
        gap: 2.35vw;
    }

    .register__form label input[type="checkbox"] {
        width: 4.8vw;
        height: 4.8vw;
    }

    .register__form .btn {
        width: 100%;
        margin-top: 4.71vw;
        grid-column: unset;
    }

    /* ===== ОТЗЫВЫ (ТОЛЬКО ПЕРВЫЕ 2) ===== */
    .reviews {
        width: unset;
        margin: 0;
        background: none;
        padding: 7.06vw 0;
    }

    .reviews__grid {
        width: 200vw;
        display: flex;
        gap: 5.5vw;
    }

    .review {
        width: 45%;
        padding: 0 0 0 3.53vw;
        border-left: 0.1vw solid var(--text);
    }

    .review:nth-child(n+3) {
        display: none;
    }

    .review__author {
        font-size: 4.47vw;
        margin: 0;
    }

    .review__date {
        font-size: 3vw;
        margin: 1.33vw 0 3.53vw;
    }

    .review__text {
        font-size: 3.76vw;
        margin: 0;
    }

    /* ===== АРХИВ ВОРКШОПОВ ===== */
    .archive {
        padding: 7.06vw 0;
    }

    .archive__grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4.71vw 2.35vw;
    }

    .workshop:nth-child(1),
    .workshop:nth-child(2) {
        grid-column: span 1;
        line-height: 4vw;
    }

    .workshop:nth-child(1) img,
    .workshop:nth-child(2) img {
        height: 54.6vw;
        aspect-ratio: 150 / 222;
        object-fit: cover;
    }

    .workshop:nth-child(3) {
        grid-column: 1 / -1;
        line-height: 4vw;
    }

    .workshop:nth-child(3) img {
        width: 100%;
        height: 81vw;
        aspect-ratio: 320 / 220;
        object-fit: cover;
    }

    .workshop__title {
        font-size: 4.47vw;
        margin: 3vw 0 0;
    }

    .workshop__date {
        font-size: 4.47vw;
    }

    .archive__actions {
        margin-top: 4.71vw
    }

    .archive__actions .btn {
        font-size: 3.76vw;
        height: 11vw;
        width: 100%;
    }

    .archive__actions .btn img {
        width: 3.5vw;
        height: 3.5vw;
    }

    /* ===== КОНТАКТЫ ===== */
    .contacts {
        padding: 7.06vw 0 14.1vw;
    }

    .contacts .section__title {
        margin: 0 0 4.71vw;
    }

    .contact__icon {
        width: 7vw;
        height: 6.8vw;
    }

    .contact__info {
        gap: 2.8vw;
        width: 45%;
    }

    .contact__row {
        flex-direction: row;
        justify-content: space-between;
        gap: 2.8vw;
    }

    .contact__label {
        font-weight: 300;
        min-width: auto;
        font-size: 3.29vw;
    }

    .contact__data {
        font-size: 3.29vw;
        display: flex;
        white-space: normal;
        flex-direction: column;
        gap: 1vw;
        margin-left: 3.67vw;
    }

    .contacts__map {
        width: 100%;
        height: 61.5vw;
    }

    .contact__item {
        padding: 1.18vw 2.35vw;
    }

    .contact__item:first-of-type {
        padding-top: 2.35vw;
    }

    .contact__item:last-of-type {
        padding-bottom: 2.35vw;
    }

    .contacts__list {
        display: flex;
        flex-direction: column;
    }

    .contacts__list::after {
        left: 50%;
        height: 49%;
    }

    .contacts__map {
        width: 100%;
        height: 43.3vw;
        margin-top: 3.53vw;
    }
}

/* ============= ПЛАНШЕТ АДАПТИВ 768-1024 ============= */
@media (min-width:768px) and (max-width:1024px) {
    /* Общий контейнер — от 720px до 100% */
    .container {
        min-width: 36vw;
        background-position: center;
        width: calc(100% - 40px);
    }

    .school {
        max-width: min(100%, 1024px);
        margin: 0 auto;
    }

    .hero__center {
        gap: 7.3vw;
    }

    .breadcrumbs .title {
        font-size: 3.52vw;
    }

    /* Заголовки секций */
    .section__title {
        font-size: 4.55vw;
        margin: 0 0 2.93vw;
    }


    /* Кнопки */
    .btn {
        height: 4.39vw !important;
        font-size: 2.34vw;
        padding: 1vw 9vw;
    }

    /* ===== ГЕРОЙ-СЕКЦИЯ ===== */
    .hero {
        padding: 2.54vw 0 3.91vw;
    }

    .hero__grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 4vw 2.08vw;
        align-items: start;
    }

    .hero__header {
        margin: 0 0 60px;
        font-size: 3.52vw;
    }

    .hero__logo img {
        width: 21.19vw;
        height: 26.95vw;
    }

    .hero__logo {
        width: calc(100% + 1.04vw);
        grid-row: 1 / 2;
        grid-column: 1 / 2;
    }

    .hero__right {
        grid-template-columns: repeat(2, 1fr);
        grid-row: 2 / 3;
        grid-column: 1 / 3;

    }

    .hero__title {
        font-size: 2.34vw;
        margin-bottom: 1.95vw;
        grid-row: 1 / 2;
        grid-column: 1 / 2;
    }

    .hero__desc, .hero__prices_text {
        font-size: 1.95vw;
        margin: 0 0 1vw;
        grid-column: 1 / 2;
    }

    .hero__desc:last-of-type {
        margin: 0;
    }

    .hero__program_title, .hero__prices_title, .hero__price_title{
        font-size: 2.34vw;
        margin: 0 0 1.95vw;
    }

    .hero__program_list {
        font-size: 1.95vw;
        line-height: 110%;
        gap: 1vw;
    }

    .hero__prices_title {
        grid-row: unset;
        margin-top: 1.95vw;
    }

    .hero__prices_text {
        grid-column: -2 / -1;
        grid-row: unset !important;
    }

    .hero__prices_text b {
        margin-top: 0.98vw;
    }

    .hero__center {
        grid-row: 1 / 2;
        grid-column: 2 / 3;
        display: flex;
        flex-direction: column;
        gap: 1.95vw;
        align-self: flex-end;
        justify-self: end;
        width: calc(100% - 1.04vw);
    }

    .hero__subtitle {
        font-size: 2.34vw;
    }

    .hero__actions {
        display: flex;
        flex-direction: column;
        gap: 1.6vw;
    }

    /* ===== ПЛАНШЕТНЫЙ СЛАЙДЕР СПИКЕРОВ (2 ФОТО) ===== */
    .tablet_speakers {
        display: block;
        padding: 5.2vw 0;
        position: relative;
        overflow: hidden;
    }

    .speakers,
    .mobile_speakers {
        /* display: none; */
    }

    .speakers {
        padding: 3.91vw 0;
    }

    .speakers__track {
        display: flex !important;
    }

    .speaker {
        flex: 0 0 calc(50% - 10px) !important
    }

    .speaker img {
        height: 37.91vw !important;
    }

    .speaker__name, .speaker__role {
        font-size: 2.34vw;
        margin-top: 0.98vw;
    }

    .speakers__dots {
        gap: 0.49vw !important;
    }

    .tablet_speakers__header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 4vw;
    }

    .tablet_speakers__header .section__title {
        margin: 0;
    }

    .tablet_speakers__dots {
        display: flex;
        gap: 1.2vw;
    }

    .tablet_speakers__dots .dot {
        width: 1.5vw;
        height: 1.5vw;
        border-radius: 50%;
        background: #ddd;
        cursor: pointer;
        transition: background .3s ease;
    }

    .tablet_speakers__dots .dot.is_active {
        background: var(--primary);
    }

    .tablet_speakers .work_slider__track {
        display: flex;
        transition: transform 0.4s ease;
        will-change: transform;
        gap: 3vw;
    }

    /* Один слайд показывает 2 фотографии */
    .tablet_speakers .work_slider__slide {
        flex: 0 0 100%;
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 3vw;
        box-sizing: border-box;
    }

    .tablet_speaker {
        text-align: start;
    }

    .tablet_speaker img {
        width: 100%;
        display: block;
    }

    .tablet_speaker__name {
        font-size: 3vw;
        font-weight: 400;
        margin: 1.5vw 0 0.6vw;
    }

    .tablet_speaker__role {
        font-weight: 300;
        font-size: 2.4vw;
        color: black;
        margin: 0;
        line-height: 110.00000000000001%;
    }

    /* ===== ФОРМА РЕГИСТРАЦИИ ===== */
    .register {}

    .register__grid {
        display: flex;
        flex-direction: column;
        gap: 6.8vw;
    }

    .close__form {
        width: 1.95vw;
        height: 1.95vw;
    }

    .register__info h3 {
        font-size: 4vw;
        margin: 0;
    }

    .prices-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6vw;
        margin-top: 4vw;
    }

    .prices-grid p {
        font-size: 3.2vw;
    }

    .price_count {
        font-size: 3.2vw;
        line-height: 105%;
    }

    .price {
        margin: 0;
    }

    .register__pricing {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 50px;
    }

    .price {
        margin: 0;
    }

    .price__label {
        font-size: clamp(25px, 2.2vw, 30px);
        font-weight: 300;
        margin: 0 0 clamp(6px, 1vw, 8px);
    }

    .price__value {
        font-size: clamp(25px, 3vw, 26px);
        font-weight: 400;
        margin: 0;
    }

    /* Форма */
    .register__grid {
        width: 95%;
    }

    .register__form .section__title {
        font-size: 4vw;
        font-weight: 400;
    }

    .register__form {
        display: grid;
        gap: 1.95vw;
        padding: 3.91vw 5.86vw;
    }

    .register__form input,
    .register__form textarea {
        height: 5.86vw;
        width: 100%;
        padding: 1.95vw;
        font-size: 1.76vw;
    }

    .register__form input.btn {
        height: 5.86vw !important;
    }

    .form__row, .form__row_second {
        gap: 1.95vw;
    }

    .form__row_thirdy {
        flex-direction: column;
    }

    .form__row_thirdy * {
        font-size: 1.76vw;
    }

    .form__row_thirdy:has(input:nth-child(2)) {
        flex-direction: row;
        margin-top: 1.95vw;
    }

    .register__form label:not(.register__form .form__row_thirdy > label) {
        margin-top: 0;
        font-size: 1.76vw;
        margin-top: 1.95vw;
        gap: 0.98vw;
    }

    .register__form label input[type="checkbox"] {
        margin-top: 0;
        width: 2.5vw;
        height: 2.5vw;
    }

    .register__form .btn:not(.form__row_thirdy .btn) {
        height: 5.86vw !important;
        margin-top: 1.95vw;
    }

    /* ===== ОТЗЫВЫ (2 КОЛОНКИ) ===== */
    .reviews {
        width: unset;
        margin: 0;
        background: none;
        padding: 3.91vw 0;
    }

    .reviews__grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4vw 2.0vw;
    }

    .review {
        padding: 0 2.44vw;
        border-left: clamp(1px, 0.5vw, 1px) solid var(--text);
    }

    .review__author {
        font-size: 2.3vw;
        margin: 0;
    }

    .review__date {
        font-size: 1.7vw;
        margin: 0.49vw 0 1.95vw;
    }

    .review__text {
        font-size: 1.95vw;
    }

    /* ===== АРХИВ ВОРКШОПОВ (3 КОЛОНКИ) ===== */
    .archive {
        padding: 3.91vw 0;
    }

    .archive__grid {
        row-gap: 2.93vw;
        align-items: start;
    }

    .workshop img {
        height: 25.7vw;
        object-fit: cover;
        display: block;
    }


    .workshop__title {
        font-size: 2.34vw;
        margin: 1vw 0 0;
        overflow-wrap: break-word;
    }

    .workshop__date {
        font-size: 2.4vw;
    }

    .archive__actions {
        margin-top: 3.91vw;
    }

    .archive__actions .btn {
        font-size: 1.56vw;
        width: calc(50% - 1.04vw);
        height: 5.9vw;
    }

    /* ===== КОНТАКТЫ (2 КОЛОНКИ) ===== */
    .contacts {
        padding: 3.91vw 0 7.81vw;
    }

    .contacts__list {
        grid-template-columns: 1fr;
    }

    .contacts .section__title {
        margin: 0 0 2.93vw;
    }

    .contacts__list::after {
        left: 50%;
        width: 47%;
    }

    .contact__item {
        padding: 0.7vw 1.46vw;
        width: 100%;
        gap: 2vw;
        grid-column: 1/2;
    }

    .contact__item:first-of-type {
        padding-top: 1.4vw;
    }

    .contact__item:last-of-type {
        padding-bottom: 1.4vw;
    }

    .contact__icon {
        width: 2.73vw;
        height: 2.73vw;
    }

    .contact__row {
        gap: 5.4vw;
        display: flex;
        flex-direction: row;
    }

    .contact__info {
        gap: 1.4vw;
        width: 45%;
    }

    .contact__label {
        font-size: 1.95vw;
    }

    .contact__data {
        font-size: 1.95vw;
        display: flex;
        white-space: normal;
        flex-direction: column;
        gap: 0.4vw;
        line-height: 1.2;
        margin-left: 0.52vw;
    }

    .contacts__map {
        height: 22.27vw;
        grid-column: 1 / 1;
        grid-row: auto;
        margin-top: 2.44vw;
    }

    .contacts__map iframe {
        height: 100%;
    }
}
/* ===================================================== */
/* ====================== CONTACTS ====================== */
/* ===================================================== */

.Contacts {
}

.Contacts_Info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 2.7vw;
    gap: 1.6vw;
}

.Contacts_Info_Blok {
    background-color: #E6E6E6;
    padding: 1.5vw;
    display: flex;
    flex-direction: column;
}

.Contacts_Grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2vw;
    position: relative;
    height: 100%;
    align-items: stretch;
}

.Contacts_Grid::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 0.5px;
    background-color: #00000066;
    transform: translateX(-50%);
}

.Contacts_Col {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.Contacts_Item {
    font-size: 1vw;
    font-weight: 300;
    line-height: 105%;
    color: #111;
    display: flex;
    align-items: center;
    gap: 0.8vw;
}

.Contacts_Icon {
    width: 1.2vw;
    height: auto;
    flex-shrink: 0;
    opacity: 0.7;
}

.Contacts_Item a {
    color: #111;
    text-decoration: none;
}

.Contacts_Item a:hover {
    text-decoration: underline;
}

.contacts__map {
    background-color: #E6E6E6;
    overflow: hidden;
    min-height: 280px;
}

.contacts__map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.Contacts_Disclaimer {
    margin-top: 1vw;
}

.Contacts_Disclaimer p {
    font-size: 0.8vw;
    color: rgba(0, 0, 0, 0.5);
    margin: 0;
}

/* ===== TABLET ===== */
@media (max-width: 1024px) {
    .Contacts_Info {
        grid-template-columns: 1fr;
        gap: 2vw;
    }

    .Contacts_Info_Blok {
        padding: 2vw;
    }

    .Contacts_Item {
        font-size: 2.6vw;
        gap: 1.2vw;
    }

    .Contacts_Icon {
        width: 2vw;
    }
}

/* ===== MOBILE ===== */
@media (max-width: 767px) {
    .Contacts_Info {
        gap: 3vw;
    }

    .Contacts_Info_Blok {
        padding: 4vw;
    }

    .Contacts_Grid {
        gap: 4vw;
    }

    .Contacts_Col {
        gap: 4vw;
    }

    .Contacts_Item {
        font-size: 3.8vw;
        gap: 2.5vw;
    }

    .Contacts_Icon {
        width: 4.5vw;
    }

    .contacts__map {
        min-height: 250px;
    }

    .Contacts_Grid::before {
        left: 47%;
    }
}