/* ====== Общие настройки ====== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: #dbeaff;
}

body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;

    background: linear-gradient(
        180deg,
        #eef5ff 0%,
        #e4efff 40%,
        #dbeaff 100%
    );

    min-height: 100vh;
}
/* ====== Шапка ====== */
header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(11,47,117,.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0,0,0,.15);
}

.container {
    width: 90%;
    max-width: 1300px;
    margin: auto;
}

header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 0;
}

header h1 {
    color: white;
    font-size: 30px;
}

nav {
    max-width: 1200px;
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 30px;
}

nav a {
    color: white;
    text-decoration: none;
    font-size: 18px;
    padding: 10px 18px;
    border-radius: 10px;
    transition: .3s;
}

nav a.active {
    background: #ffffff; 
    color: #00BFFF;
    font-weight: 700;
    border-bottom: 3px solid #7B68EE;
    padding-bottom: 5px;
}

nav a:hover {
    background: #2d62c8;
    color: #00BFFF;
}

/* ===== Баннер ===== */
.hero {
    background: transparent;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
    max-width: 1400px;
    margin: 60px auto;
    padding: 0 50px;
    text-align: center;
}

.hero-content {
    width: 900px;
    animation: fadeUp 1.4s ease;
}

.hero h1 {
    font-size: 72px;
    margin-bottom: 30px;
}

.hero p {
    font-size: 24px;
    line-height: 1.7;
}

.hero-text {
    width: 40%;
}

.hero-text h1 {
    font-size: 64px;
    color: #1b4fa3;
    margin-bottom: 20px;
}

.hero-text h2 {
    font-size: 36px;
    color: #2f6ed8;
    margin-bottom: 20px;
}

.hero-text p {
    font-size: 20px;
    color: #444;
    line-height: 1.7;
    margin-bottom: 30px;
}

/* ===== ЕДИНЫЙ СТИЛЬ КНОПОК ===== */

.button,
.btn,
.booking-btn {
    display: inline-block;
    padding: 12px 25px;
    margin-top: 0;

    background: #294F91;
    color: #ffffff;

    text-decoration: none;
    border: none;
    border-radius: 8px;

    cursor: pointer;
    transition: all 0.3s ease;
}

.button:hover,
.btn:hover,
.booking-btn:hover {
    background: #3764AD;
    color: #ffffff;
    transform: translateY(-2px);
}
/* ===== О школе ===== */
.about {
    width: 90%;
    max-width: 1200px;
    margin: 100px auto;
}

.about h2 {
    color: #0B2D63;
    font-size: 46px;
    margin-bottom: 25px;
}

.about p {
    font-size: 22px;
    line-height: 1.8;
}

/* ===== Статистика ===== */
.statistics {
    width: 90%;
    max-width: 1200px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 40px;
}

.card {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 20px;
    text-align: center;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    transition: .4s;
}

.card:hover {
    transform: translateY(-8px);
    background: linear-gradient(145deg, #294782, #182F5C);
    box-shadow: 0 20px 40px rgba(0,0,0,.18);
}

.card h2 {
    font-size: 60px;
    color: #ffffff;
}

.card h3 {
    color: #ffffff;
}

.card h2 a {
    color: #ffffff;
    text-decoration: none;
}

.card h2 a:hover {
    text-decoration: underline;
}

.card p {
    margin-top: 15px;
    padding: 0 20px;
    color: #E5EBF7;
    line-height: 1.6;
    font-size: 24px;
}

.card img {
    width: 100%;
    height: 300px;
    object-fit: cover;
}

.card .date {
    display: block;
    padding: 20px;
    color: #2f6ed8;
    font-weight: bold;
}

.card-body {
    padding: 10px;
    text-align: center;
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(320px,1fr));
    gap: 30px;
    padding: 40px 50px;
}

/* ===== Контакты ===== */
.contacts-preview {
    width: 90%;
    padding: 50px;
    max-width: 1200px;
    margin: 100px auto;
}

.contacts-preview h2 {
    color: #0B2D63;
    margin-bottom: 25px;
}

.contacts-preview p {
    font-size: 20px;
    margin: 12px 0;
}

.contacts {
    max-width: 1100px;
    margin: 50px auto;
    padding: 0 50px;
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
    gap: 30px;
}

.contact-card {
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 35px;
    text-align: center;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    transition: .3s;
}

.contact-card:hover {
    transform: translateY(-6px);
    background: linear-gradient(145deg, #294782, #182F5C);
}

.contact-card h2 {
    color: #ffffff;
    margin-bottom: 20px;
}

.contact-card p {
    color: #E5EBF7;
    font-size: 18px;
}

.contact-photo {
    margin-top: 30px;
    text-align: center;
}

.contact-photo img {
    width: 600px;
    max-width: 100%;
    border-radius: 15px;
    border: 4px solid #2f6fd6;
    box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}

.contact-map {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.contact-map iframe {
    width: 100%;
    max-width: 900px;
    height: 450px;
    border: none;
    border-radius: 20px;
    box-shadow: 0 10px 25px rgba(0,0,0,.15);
}

.map-title {
    text-align: center;
    margin-bottom: 20px;
    font-size: 32px;
}

/* ===== Педагоги ===== */
.teachers-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    max-width: 1500px;
    margin: 0 auto;
}

.teacher-card-horizontal {
    display: flex;
    align-items: center;
    gap: 30px;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    padding: 30px;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    min-height: 340px;
}

.teacher-card-horizontal:hover {
    background: linear-gradient(145deg, #294782, #182F5C);
}

.teacher-photo {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.teacher-info {
    flex: 1;
}

.teacher-info h2 {
    font-size: 32px;
    margin-bottom: 15px;
    color: #ffffff;
}

.teacher-info h3 {
    font-size: 22px;
    margin-bottom: 20px;
    color: #AFC7F2;
}

.teacher-info p {
    font-size: 19px;
    line-height: 1.7;
    color: #E5EBF7;
}

/* ===== Слайдер ===== */
.slider {
    width: 80%;
    height: 700px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

.slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.slide.active {
    opacity: 1;
    z-index: 2;
}

.slide img {
    width: 100%;
    height: 700px;
    object-fit: cover;
    display: block;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);
}

/* ===== Главная страница ===== */
.home-page{
    background: transparent;
    color: #0b3d91;
}

.home-page h1,
.home-page h2,
.home-page h3 {
    color: #0b3d91;
}

.home-page p {
    color: #2b4d8f;
}

/* ===== Галерея ===== */
.gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    padding: 30px 40px;
}

.gallery-item {
    max-width: 240px;
    margin: 0 auto;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    transition: .3s;
}

.gallery-item:hover {
    transform: translateY(-5px);
    background: linear-gradient(145deg, #294782, #182F5C);
}

.gallery-item img {
    width: 100%;
    height: 160px;
    object-fit: contain;
    background: #00008B;
    padding: 8px;
}

.gallery-item h3 {
    font-size: 18px;
    color: #ffffff;
    margin: 10px;
}

.gallery-item p {
    font-size: 14px;
    color: #E5EBF7;
    padding: 0 10px 15px;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(450px, 1fr));
    gap: 30px;
}

.gallery-grid .card {
    max-width: 1000px;
    margin: 0 auto;
}

.gallery-grid .card img {
    width: 100%;
    height: 380px;
    object-fit: cover;
}

.gallery-img {
    cursor: pointer;
    transition: .3s;
}

.gallery-img:hover {
    transform: scale(1.03);
}

/* ===== Анимация ===== */
.fade-in {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s ease;
}

.fade-in.show {
    opacity: 1;
    transform: translateY(0);
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(80px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== Кнопка наверх ===== */
#toTop {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 55px;
    height: 55px;
    border: none;
    border-radius: 50%;
    background: #0b3d91;
    color: white;
    font-size: 28px;
    cursor: pointer;
    display: none;
    box-shadow: 0 5px 15px rgba(0,0,0,.3);
    transition: 0.3s;
    z-index: 1000;
}

#toTop:hover {
    background: #1d5fc7;
    transform: scale(1.1);
}

/* ===== Наши достижения ===== */
.stats {
    padding: 100px 0;
    background: linear-gradient(145deg, #203A70, #14264D);
    text-align: center;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 30px;
    margin-top: 50px;
}

.stat-card {
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    padding: 40px;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.stat-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
    background: linear-gradient(145deg, #294782, #182F5C);
}

.stat-card h3 {
    font-size: 56px;
    color: #ffffff;
    margin-bottom: 15px;
}

.stat-card p {
    font-size: 20px;
    color: #D9E3F5;
}

/* ===== Дополнительные тексты «О нас» ===== */
.about-extra {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto 30px;
}

.about-extra .container {
    width: 100%;
}

.about-extra .card {
    width: 100%;
    box-sizing: border-box;
}

/* ===== Онлайн-бронирование ===== */
.booking {
    max-width: 700px;
    margin: 60px auto;
    padding: 40px;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
}

.booking h1 {
    text-align: center;
    color: #ffffff;
    margin-bottom: 30px;
}

.booking form p {
    margin-bottom: 20px;
    background: #4682B4;
    border-radius: 10px;
    padding: 5px;
}

.booking label {
    display: block;
    margin-bottom: 8px;
    color: #004080;
    font-weight: bold;
}

.form-control {
    width: 100%;
    padding: 12px;
    border: 1px solid #b8d8ff;
    border-radius: 10px;
    font-size: 16px;
}

.form-control:focus {
    outline: none;
    border-color: #0057b8;
}

.booking button {
    display: block;
    margin: 30px auto 0;
    padding: 14px 40px;
    background: #0057b8;
    color: white;
    border: none;
    border-radius: 30px;
    font-size: 18px;
    cursor: pointer;
}

.booking button:hover {
    background: #003f8a;
}

.success {
    text-align: center;
    color: green;
    font-size: 18px;
}

/* ===== Админ-кнопка ===== */
.admin-btn {
    margin-left: auto;
    background: #0d6efd;
    color: white;
    padding: 10px 18px;
    border-radius: 8px;
    text-decoration: none;
    transition: 0.3s;
}

.admin-btn:hover {
    background: #084298;
}

/* ===== Достижения ===== */


/* ===== Новости ===== */

/* ===== Детальная страница новости ===== */

.news-detail {
    max-width: 1000px;
    margin: 40px auto;
    padding: 30px;

    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, .22);

    overflow: hidden;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background 0.3s ease;
}

.news-detail:hover {
    transform: translateY(-6px);

    background: linear-gradient(145deg, #294782, #182F5C);

    box-shadow: 0 15px 35px rgba(0, 0, 0, .25);
}

.news-image {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 25px;
}

.news-content {
    font-size: 18px;
    line-height: 1.8;
    color: #E5EBF7;
}

/* ===== Новости — единый стиль карточек ===== */

.news-card {
    max-width: 950px;
    margin: 35px auto;
    padding: 30px;

    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;

    box-shadow: 0 8px 25px rgba(0,0,0,.22);

    overflow: hidden;

    transition: transform 0.3s ease,
                box-shadow 0.3s ease,
                background 0.3s ease;
}

.news-card:hover {
    transform: translateY(-6px);

    background: linear-gradient(145deg, #294782, #182F5C);

    box-shadow: 0 15px 35px rgba(0,0,0,.25);
}

.news-card h2 {
    margin: 0 0 25px;
    text-align: center;

    font-size: 36px;
    line-height: 1.2;

    color: #ffffff;
}

.news-card h2 a {
    color: #ffffff;
    text-decoration: none;
}

.news-card h2 a:hover {
    color: #AFC7F2;
}

.news-card img {
    display: block;

    width: auto;
    max-width: 100%;
    max-height: 700px;
    height: auto;

    margin: 0 auto 25px;

    border-radius: 16px;

    object-fit: contain;

    transition: transform 0.4s ease;
}

.news-card:hover img {
    transform: scale(1.03);
}

.news-meta {
    display: flex;
    justify-content: center;
    align-items: center;

    gap: 15px;
    margin-bottom: 20px;

    flex-wrap: wrap;
}

.news-date,
.news-category {
    display: inline-block;

    padding: 7px 15px;

    background: #294F91;
    color: #ffffff;

    border-radius: 20px;

    font-size: 14px;
}

.news-description {
    max-width: 850px;
    margin: 0 auto 25px;

    color: #E5EBF7;

    font-size: 18px;
    line-height: 1.7;
}

.news-card .btn {
    display: block;
    width: fit-content;

    margin: 20px auto 0;
    padding: 11px 25px;

    background: #294F91;
    color: #ffffff;

    text-decoration: none;
    border-radius: 8px;

    transition: all 0.3s ease;
}

.news-card .btn:hover {
    background: #3764AD;
    color: #ffffff;

    transform: translateY(-2px);
}
@keyframes newsFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== Ошибки ===== */
.error-page {
    max-width: 700px;
    margin: 60px auto;
    text-align: center;
}

.error-page h2 {
    font-size: 60px;
    color: #1565c0;
}

.error-page p {
    font-size: 22px;
    margin: 25px 0;
}

/* ===== Подвал ===== */
footer {
    background: #081936;
    color: white;
    text-align: center;
    padding: 35px;
    margin-top: 80px;
}

/* ===== Lightbox ===== */
.lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.9);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.lightbox img {
    max-width: 90%;
    max-height: 90%;
    border-radius: 15px;
}

.close {
    position: absolute;
    top: 30px;
    right: 50px;
    color: white;
    font-size: 50px;
    cursor: pointer;
}


    .news-card {
        margin: 25px 15px;
        padding: 20px;
    }

    .news-card h2 {
        font-size: 28px;
    }

    .news-card img {
        max-width: 100%;
        max-height: 500px;
    }

    .news-description {
        font-size: 16px;
    }
}




/* ===== Анимация карточек педагогов и новостей ===== */

.teacher-card-horizontal,
.news-card,
.news-detail {
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

/* Наведение на карточку */
.teacher-card-horizontal:hover,
.news-card:hover,
.news-detail:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}


/* ===== Анимация изображения педагога ===== */

.teacher-card-horizontal .teacher-photo {
    transition: transform 0.4s ease;
}

.teacher-card-horizontal:hover .teacher-photo {
    transform: scale(1.04);
}


/* ===== Анимация изображения новости ===== */

.news-card img,
.news-detail .news-image {
    transition: transform 0.4s ease;
}

.news-card:hover img,
.news-detail:hover .news-image {
    transform: scale(1.03);
}


@media (max-width: 768px) {

    .teacher-card-horizontal:active,
    .news-card:active,
    .news-detail:active {
        transform: scale(0.98);
    }

    .teacher-card-horizontal:active .teacher-photo,
    .news-card:active img,
    .news-detail:active .news-image {
        transform: scale(1.03);
    }

}


/* ===== Наша жизнь ===== */

.life-events {
    width: 90%;
    max-width: 1200px;
    margin: 50px auto;
}

.life-event {
    margin-bottom: 50px;
    padding: 30px;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0,0,0,.22);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.life-event:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(0,0,0,.25);
}

.life-event h2 {
    text-align: center;
    font-size: 36px;
    margin-bottom: 20px;
    color: #ffffff;
}

.life-description {
    max-width: 900px;
    margin: 0 auto 30px;
    font-size: 19px;
    line-height: 1.7;
    color: #E5EBF7;
}

.life-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.life-media {
    overflow: hidden;
    border-radius: 15px;
    background: #0d1d3a;
}

.life-media img,
.life-video {
    display: block;
    width: 100%;
    max-height: 500px;
    object-fit: cover;
    border-radius: 15px;
}

.life-media img {
    transition: transform 0.4s ease;
}

.life-media:hover img {
    transform: scale(1.04);
}








/* ==================================================
   МОБИЛЬНАЯ ВЕРСИЯ
   ================================================== */


/* ===== МАЛЕНЬКИЙ ТЕЛЕФОН ===== */

@media (max-width: 480px) {

    body {
        overflow-x: hidden;
    }

    .container {
        width: 95%;
    }

    header .container {
        flex-direction: column;
        padding: 15px 0;
    }

    header h1 {
        font-size: 24px;
        text-align: center;
        margin-bottom: 15px;
    }

    nav {
        width: 100%;
        padding: 5px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
    }

    nav a {
        font-size: 14px;
        padding: 8px 10px;
    }


    /* ===== Главная ===== */

    .hero {
        width: 100%;
        min-height: auto;
        margin: 30px auto;
        padding: 20px 15px;

        display: flex;
        flex-direction: column;
        gap: 25px;
    }

    .hero-content {
        width: 100%;
    }

    .hero h1 {
        font-size: 38px;
    }

    .hero p {
        font-size: 17px;
    }

    .hero-text {
        width: 100%;
    }

    .hero-text h1 {
        font-size: 38px;
    }

    .hero-text h2 {
        font-size: 26px;
    }

    .hero-text p {
        font-size: 17px;
    }


    /* ===== Слайдер ===== */

    .slider {
        width: 100%;
        height: 300px;
    }

    .slide img {
        height: 300px;
    }


    /* ===== Карточки ===== */

    .statistics {
        width: 95%;
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .card {
        max-width: 100%;
        padding: 20px 15px;
    }

    .card h2 {
        font-size: 45px;
    }

    .card p {
        font-size: 18px;
    }


    /* ===== Педагоги ===== */

    .teachers-grid {
        grid-template-columns: 1fr;
        width: 95%;
        gap: 20px;
    }

    .teacher-card-horizontal {
        flex-direction: column;
        text-align: center;
        padding: 20px 15px;
        min-height: auto;
    }

    .teacher-photo {
        width: 180px;
        height: 180px;
    }

    .teacher-info h2 {
        font-size: 26px;
    }

    .teacher-info h3 {
        font-size: 19px;
    }

    .teacher-info p {
        font-size: 16px;
    }


    /* ===== Галерея ===== */

    .gallery {
        grid-template-columns: 1fr;
        padding: 20px 15px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .gallery-grid .card img {
        height: 280px;
    }

.gallery-video {
    width: 100%;
    height: auto;
    max-height: 450px;
    object-fit: contain;
    background: #0d1d3a;
    border-radius: 15px;
    display: block;
}

   /* ===== Новости — мобильная версия ===== */

.news-card,
.news-detail {
    width: calc(100% - 30px);
    max-width: 100%;
    margin: 25px auto;
    padding: 20px 15px;

    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;

    box-shadow: 0 8px 25px rgba(0, 0, 0, .22);

    overflow: hidden;
}

/* Заголовок новости */

.news-card h2,
.news-detail h1,
.news-detail h2 {
    font-size: 27px;
    line-height: 1.3;
    text-align: center;
    color: #ffffff;
    margin-bottom: 20px;
}

/* Изображение */

.news-card img,
.news-detail .news-image {
    display: block;

    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 450px;

    object-fit: contain;

    margin: 0 auto 20px;

    border-radius: 15px;
}

/* Дата и категория */

.news-date,
.news-category {
    display: inline-block;

    padding: 7px 12px;
    margin: 5px;

    background: #294F91;
    color: #ffffff;

    border-radius: 20px;

    font-size: 14px;
}

/* Текст новости */

.news-content,
.news-description {
    width: 100%;
    max-width: 100%;

    color: #E5EBF7;

    font-size: 16px;
    line-height: 1.7;

    text-align: left;
}

/* Кнопки */

.news-card .btn,
.news-detail .btn {
    display: block;
    width: fit-content;

    margin: 20px auto 0;
    padding: 11px 20px;

    background: #294F91;
    color: #ffffff;

    text-decoration: none;
    border-radius: 8px;

    text-align: center;
}

/* Наведение / нажатие */

.news-card:active,
.news-detail:active {
    transform: scale(0.98);
}

.news-card:active img,
.news-detail:active .news-image {
    transform: scale(1.03);
}
    /* ===== Контакты ===== */

    .contacts {
        width: 95%;
        padding: 0;
        grid-template-columns: 1fr;
    }

    .contact-card {
        padding: 25px 15px;
    }

    .contact-photo img {
        width: 100%;
    }

    .contact-map iframe {
        height: 350px;
    }


    /* ===== Онлайн заявки ===== */

    .booking {
        width: calc(100% - 30px);
        margin: 30px auto;
        padding: 25px 15px;
    }


    /* ===== Достижения ===== */

    .stats {
        width: 100%;
        padding: 0 10px;
    }

    .stats .section-title {
        text-align: center;
        font-size: 30px;
        margin-bottom: 25px;
    }

    .stats-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .stat-card {
        width: 100%;
        padding: 18px 8px;
        text-align: center;
    }

    .stat-card h3 {
        font-size: 34px;
    }

    .stat-card p {
        font-size: 14px;
    }

    .stats {
        padding-bottom: 30px;
    }

    .stats .section-title {
        color: #2f80ed;
        -webkit-text-stroke: 0.6px white;
        text-shadow: 0 0 1px white;
    }

    .stat-card {
        padding-bottom: 30px;
    }

}

    /* ===== Наша жизнь ===== */

    .life-events {
        width: 95%;
        margin: 30px auto;
    }

    .life-event {
        padding: 20px 15px;
        margin-bottom: 30px;
    }

    .life-event h2 {
        font-size: 27px;
    }

    .life-description {
        font-size: 16px;
    }

    .life-gallery {
        grid-template-columns: 1fr;
        gap: 18px;
    }

/* ===== Видео в Нашей жизни ===== */

.life-media video,
.life-video {
    width: 100%;
    height: auto;
    max-height: 450px;

    object-fit: contain;

    display: block;
    border-radius: 15px;
}
    /* ===== Отзывы ===== */

    .reviews {
        width: 95%;
        margin: 30px auto;
    }



}



/* ===== ОБЫЧНЫЙ ТЕЛЕФОН ===== */

@media (min-width: 481px) and (max-width: 768px) {

    body {
        overflow-x: hidden;
    }

    .container {
        width: 94%;
    }


    /* ===== Шапка ===== */

    header .container {
        flex-direction: column;
        padding: 18px 0;
    }

    header h1 {
        font-size: 28px;
        text-align: center;
        margin-bottom: 18px;
    }

    nav {
        width: 100%;
        padding: 5px 10px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
    }

    nav a {
        font-size: 16px;
        padding: 9px 13px;
    }


    /* ===== Главная ===== */

    .hero {
        width: 100%;
        min-height: auto;
        margin: 40px auto;
        padding: 25px 25px;

        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    .hero-content {
        width: 100%;
    }

    .hero h1 {
        font-size: 48px;
    }

    .hero p {
        font-size: 19px;
    }

    .hero-text {
        width: 100%;
    }

    .hero-text h1 {
        font-size: 48px;
    }

    .hero-text h2 {
        font-size: 30px;
    }

    .hero-text p {
        font-size: 18px;
    }


    /* ===== Слайдер ===== */

    .slider {
        width: 100%;
        height: 400px;
    }

    .slide img {
        height: 400px;
    }


    /* ===== Статистика ===== */

    .statistics {
        width: 94%;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .card {
        max-width: 100%;
        padding: 22px 15px;
    }

    .card h2 {
        font-size: 48px;
    }

    .card p {
        font-size: 19px;
    }


    /* ===== Педагоги ===== */

    .teachers-grid {
        grid-template-columns: 1fr;
        width: 94%;
        gap: 25px;
    }

    .teacher-card-horizontal {
        flex-direction: column;
        text-align: center;
        padding: 25px 20px;
        min-height: auto;
    }

    .teacher-photo {
        width: 200px;
        height: 200px;
    }

    .teacher-info h2 {
        font-size: 29px;
    }

    .teacher-info h3 {
        font-size: 20px;
    }

    .teacher-info p {
        font-size: 17px;
    }


    /* ===== Галерея ===== */

    .gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        padding: 25px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .gallery-grid .card img {
        height: 330px;
    }

.gallery-video {
    width: 100%;
    height: auto;
    max-height: 550px;
    object-fit: contain;
    background: #0d1d3a;
    border-radius: 15px;
    display: block;
} 

   /* ===== Новости ===== */

.news-card {
    width: calc(100% - 40px);
    margin: 30px auto;
    padding: 25px 20px;
}

.news-card h2 {
    font-size: 31px;
}

.news-card img {
    max-width: 100%;
    max-height: 550px;
}

.news-description {
    font-size: 17px;
}
    /* ===== Контакты ===== */

    .contacts {
        width: 94%;
        padding: 0;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .contact-card {
        padding: 25px 18px;
    }

    .contact-photo img {
        max-width: 100%;
    }

    .contact-map iframe {
        height: 400px;
    }


    /* ===== Онлайн заявки ===== */

    .booking {
        width: calc(100% - 40px);
        margin: 40px auto;
        padding: 30px 25px;
    }


    /* ===== Достижения ===== */

 .stats {
        width: 100%;
        padding: 0 15px;
    }

    .stats .section-title {
        text-align: center;
        font-size: 35px;
        margin-bottom: 30px;
    }

    .stats-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }

    .stat-card {
        width: 100%;
        padding: 22px 12px;
        text-align: center;
    }

    .stat-card h3 {
        font-size: 42px;
    }

    .stat-card p {
        font-size: 16px;
    }

    .stats {
        padding-bottom: 35px;
    }

    .stats .section-title {
        color: #2f80ed;
        -webkit-text-stroke: 0.6px white;
        text-shadow: 0 0 1px white;
    }

    .stat-card {
        padding-bottom: 35px;
    }


}
    /* ===== Наша жизнь ===== */

    .life-events {
        width: 94%;
        margin: 35px auto;
    }

    .life-event {
        padding: 25px 20px;
        margin-bottom: 35px;
    }

    .life-event h2 {
        font-size: 30px;
    }

    .life-description {
        font-size: 17px;
    }

    .life-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

/* ===== Видео в Нашей жизни ===== */

.life-media video,
.life-video {
    width: 100%;
    height: auto;
    max-height: 550px;

    object-fit: contain;

    display: block;
    border-radius: 15px;
}
    /* ===== Отзывы ===== */

    .reviews {
        width: 94%;
        margin: 35px auto;
    }


}


/* ===== ПЛАНШЕТ ===== */

@media (min-width: 769px) and (max-width: 1000px) {

    body {
        overflow-x: hidden;
    }

    .container {
        width: 92%;
    }


    /* ===== Шапка ===== */

    header .container {
        flex-direction: column;
        padding: 20px 0;
    }

    header h1 {
        font-size: 30px;
        text-align: center;
        margin-bottom: 20px;
    }

    nav {
        width: 100%;
        padding: 8px 15px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
    }

    nav a {
        font-size: 17px;
        padding: 10px 15px;
    }


    /* ===== Главная ===== */

    .hero {
        width: 100%;
        min-height: auto;
        margin: 50px auto;
        padding: 30px;

        display: flex;
        flex-direction: column;
        gap: 40px;
    }

    .hero-content {
        width: 100%;
    }

    .hero h1 {
        font-size: 58px;
    }

    .hero p {
        font-size: 21px;
    }

    .hero-text {
        width: 100%;
    }

    .hero-text h1 {
        font-size: 56px;
    }

    .hero-text h2 {
        font-size: 34px;
    }

    .hero-text p {
        font-size: 19px;
    }


    /* ===== Слайдер ===== */

    .slider {
        width: 95%;
        height: 500px;
    }

    .slide img {
        height: 500px;
    }


    /* ===== Статистика ===== */

    .statistics {
        width: 92%;
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .card {
        max-width: 100%;
        padding: 25px 20px;
    }

    .card h2 {
        font-size: 52px;
    }

    .card p {
        font-size: 21px;
    }


    /* ===== Педагоги ===== */

    .teachers-grid {
        grid-template-columns: 1fr;
        width: 92%;
        gap: 30px;
    }

    .teacher-card-horizontal {
        padding: 30px;
        min-height: 300px;
    }

    .teacher-photo {
        width: 210px;
        height: 210px;
    }

    .teacher-info h2 {
        font-size: 30px;
    }

    .teacher-info h3 {
        font-size: 21px;
    }

    .teacher-info p {
        font-size: 18px;
    }


    /* ===== Галерея ===== */

    .gallery {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
        padding: 30px;
    }

    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .gallery-grid .card img {
        height: 350px;
    }


.gallery-video {
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: contain;
    background: #0d1d3a;
    border-radius: 15px;
    display: block;
}

/* ===== Новости ===== */

.news-card {
    width: calc(100% - 60px);
    margin: 35px auto;
    padding: 30px;

    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;

    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.08);

    box-shadow: 0 8px 25px rgba(0,0,0,.22);

    overflow: hidden;
}

.news-card:hover {
    background: linear-gradient(145deg, #294782, #182F5C);
}

.news-card h2 {
    font-size: 34px;
    color: #ffffff;
    text-align: center;
    margin-bottom: 25px;
}

.news-card .news-image {
    display: block;
    width: 100%;
    max-width: 100%;
    max-height: 600px;

    margin: 0 auto 25px;

    border-radius: 16px;
    object-fit: contain;
}

.news-card .news-content {
    color: #E5EBF7;
    font-size: 18px;
    line-height: 1.7;
}

.news-card .news-date,
.news-card .news-category {
    display: inline-block;

    padding: 7px 15px;
    margin-bottom: 15px;

    background: #294F91;
    color: #ffffff;

    border-radius: 20px;
    font-size: 14px;
}

.news-card .btn {
    display: block;
    width: fit-content;

    margin: 25px auto 0;

    background: #294F91;
    color: #ffffff;
}
    /* ===== Контакты ===== */

    .contacts {
        width: 92%;
        padding: 0;
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .contact-card {
        padding: 30px 20px;
    }

    .contact-photo img {
        max-width: 90%;
    }

    .contact-map iframe {
        height: 450px;
    }


    /* ===== Онлайн заявки ===== */

    .booking {
        width: 80%;
        margin: 50px auto;
        padding: 35px;
    }


    /* ===== Достижения ===== */

 .stats {
        width: 100%;
        padding: 0 20px;
    }

    .stats .section-title {
        text-align: center;
        font-size: 40px;
        margin-bottom: 35px;
    }

    .stats-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 22px;
    }

    .stat-card {
        width: 100%;
        padding: 25px 15px;
        text-align: center;
    }

    .stat-card h3 {
        font-size: 48px;
    }

    .stat-card p {
        font-size: 18px;
    }

    .stats {
        padding-bottom: 40px;
    }

    .stats .section-title {
        color: #2f80ed;
        -webkit-text-stroke: 0.6px white;
        text-shadow: 0 0 1px white;
    }

    .stat-card {
        padding-bottom: 40px;
    }


}

    /* ===== Наша жизнь ===== */

    .life-events {
        width: 92%;
        margin: 40px auto;
    }

    .life-event {
        padding: 30px;
        margin-bottom: 40px;
    }

    .life-event h2 {
        font-size: 34px;
    }

    .life-description {
        font-size: 18px;
    }

    .life-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

/* ===== Видео в Нашей жизни ===== */

.life-media video,
.life-video {
    width: 100%;
    height: auto;
    max-height: 600px;

    object-fit: contain;

    display: block;
    border-radius: 15px;
}
    /* ===== Отзывы ===== */

    .reviews {
        width: 92%;
        margin: 40px auto;
    }



}

/* ==================================================
   ФУТЕР — КОМПЬЮТЕР
   ================================================== */

.footer {
    background: #0b2d63;
    color: #ffffff;
    margin-top: 80px;
}

.footer-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 50px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    text-align: center;
}

.footer-block {
    text-align: left;
}

.footer-block h3 {
    color: #ffffff;
    font-size: 22px;
    margin-bottom: 20px;
}

.footer-block p {
    color: #d9e6ff;
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 10px;
}

.footer-block a {
    display: block;
    color: #d9e6ff;
    text-decoration: none;
    font-size: 16px;
    margin-bottom: 10px;
    transition: 0.3s;
}

.footer-block a:hover {
    color: #ffffff;
    padding-left: 8px;
}

.footer-copy {
    text-align: center;
    padding: 20px;
    background: #082b66;
    color: #d9e6ff;
    font-size: 14px;
}


/* ==================================================
   МАЛЕНЬКИЙ ТЕЛЕФОН
   ================================================== */

@media (max-width: 480px) {

    .footer {
        margin-top: 50px;
    }

    .footer-container {
        padding: 30px 20px;
        grid-template-columns: 1fr;
        gap: 25px;
        text-align: center;
    }

    .footer-block {
        text-align: center;
    }

    .footer-block h3 {
        font-size: 20px;
        margin-bottom: 15px;
    }

    .footer-block p,
    .footer-block a {
        font-size: 15px;
    }

    .footer-block a:hover {
        padding-left: 0;
    }

    .footer-copy {
        padding: 18px 15px;
        font-size: 13px;
    }
}


/* ==================================================
   ОБЫЧНЫЙ ТЕЛЕФОН
   ================================================== */

@media (min-width: 481px) and (max-width: 768px) {

    .footer {
        margin-top: 60px;
    }

    .footer-container {
        padding: 40px 25px;
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
        text-align: center;
    }

    .footer-block {
        text-align: center;
    }

    .footer-block h3 {
        font-size: 21px;
        margin-bottom: 17px;
    }

    .footer-block p,
    .footer-block a {
        font-size: 16px;
    }

    .footer-block a:hover {
        padding-left: 0;
    }

    .footer-copy {
        padding: 20px;
        font-size: 14px;
    }
}


/* ==================================================
   ПЛАНШЕТ
   ================================================== */

@media (min-width: 769px) and (max-width: 1000px) {

    .footer {
        margin-top: 70px;
    }

    .footer-container {
        padding: 45px 30px;
        grid-template-columns: repeat(2, 1fr);
        gap: 35px;
        text-align: center;
    }

    .footer-block {
        text-align: center;
    }

    .footer-block h3 {
        font-size: 22px;
        margin-bottom: 18px;
    }

    .footer-block p,
    .footer-block a {
        font-size: 16px;
    }

    .footer-block a:hover {
        padding-left: 0;
    }

    .footer-copy {
        padding: 20px;
    }
}



/* ==================================================
   ОТЗЫВЫ
   ================================================== */

.reviews-section {
    width: 90%;
    max-width: 1200px;
    margin: 50px auto;
}


/* ===== Карточка отзыва ===== */

.review-card {
    width: 100%;
    max-width: 1000px;
    margin: 30px auto;

    padding: 30px;

    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;

    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;

    box-shadow: 0 8px 25px rgba(0,0,0,.22);

    overflow: hidden;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.review-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(0,0,0,.25);
}


/* ===== Текст отзыва ===== */

.review-content {
    text-align: center;
}

.review-content h2 {
    color: #ffffff;
    font-size: 30px;
    margin-bottom: 20px;
}

.review-content p {
    color: #E5EBF7;
    font-size: 18px;
    line-height: 1.7;
}


/* ===== Фото отзыва ===== */

.review-image {
    width: 100%;
    max-width: 800px;
    margin: 25px auto 0;

    text-align: center;
    overflow: hidden;
    border-radius: 15px;
}

.review-image img {
    display: block;

    width: 100%;
    max-width: 800px;
    height: auto;

    max-height: 700px;

    margin: 0 auto;

    object-fit: contain;
    border-radius: 15px;

    transition: transform 0.4s ease;
}

.review-card:hover .review-image img {
    transform: scale(1.02);
}


/* ===== Если отзывов пока нет ===== */

.reviews-empty {
    width: 100%;
    max-width: 800px;

    margin: 50px auto;

    text-align: center;
}

.reviews-empty h2 {
    color: #0b3d91;
    font-size: 34px;
    margin-bottom: 15px;
}

.reviews-empty p {
    color: #2b4d8f;
    font-size: 20px;
    line-height: 1.6;
}



/* ==================================================
   МОБИЛЬНАЯ ВЕРСИЯ
   ================================================== */
   
   
   
   /* ===== Заголовки страниц ===== */

.page-header {
    text-align: center;
    margin: 50px auto;
    padding: 0 20px;
}

.page-header h1 {
    text-align: center;
    margin-bottom: 15px;
}

.page-header p {
    text-align: center;
    margin: 0 auto;
}


/* ===== Отступ от кнопки записи ===== */

.booking-section {
    margin-top: 20px;
    margin-bottom: 50px;
    text-align: center;
}



/* ===== Кнопки главной страницы ===== */

.hero .btn {
    margin-bottom: 20px;
}

.hero .booking-btn {
    margin-top: 0;
}


.contacts {
    gap: 40px;
}


/* ===== Карточки достижений на ПК ===== */

@media (min-width: 1001px) {

    .statistics {
        width: 90%;
        max-width: 1200px;
        margin: 40px auto;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    .statistics .card {
        width: 100%;
        max-width: none;
        margin: 0;
    }

}


/* ===== Видео в галерее — без обрезки ===== */

.gallery-video {
    display: block;
    width: 100%;
    height: 380px;
    object-fit: contain;
    background: #0d1d3a;
    border-radius: 15px;
}




/* ===== Блок формы отзывов ===== */

.review-form-section {
    width: 90%;
    max-width: 1200px;
    margin: 60px auto;
}

.review-form-card {
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
    padding: 40px;
    background: linear-gradient(145deg, #203A70, #14264D);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.22);
}

.review-form-card h2 {
    margin-bottom: 15px;
    text-align: center;
    color: #ffffff;
    font-size: 30px;
}

.review-form-card > p {
    margin-bottom: 25px;
    text-align: center;
    color: #dbeaff;
    font-size: 17px;
}

.review-form-card form p {
    margin-bottom: 18px;
}

.review-form-card label {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-weight: bold;
}

.review-form-card input,
.review-form-card textarea,
.review-form-card select {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    box-sizing: border-box;
}

.review-form-card textarea {
    min-height: 140px;
    resize: vertical;
}

.review-form-card .booking-btn {
    display: block;
    margin: 25px auto 0;
}

@media (max-width: 480px) {
    .review-image {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .review-image img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: 450px;
        object-fit: contain;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    .review-image {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .review-image img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: 550px;
        object-fit: contain;
    }
}

@media (min-width: 769px) and (max-width: 1000px) {
    .review-image {
        width: 100%;
        max-width: 900px;
        margin-left: auto;
        margin-right: auto;
        overflow: hidden;
    }

    .review-image img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        max-height: 600px;
        object-fit: contain;
    }
}

/* ===== Пустой блок отзывов ===== */

.reviews-no-content {
    width: 100%;
    max-width: 800px;
    margin: 50px auto;
    text-align: center;
}

.reviews-no-content h2 {
    color: #0b3d91;
    font-size: 34px;
    margin-bottom: 15px;
}

.reviews-no-content p {
    color: #2b4d8f;
    font-size: 20px;
    line-height: 1.6;
}



.footer-login {
    text-align: center;
    margin-top: 25px;
}

.footer-login a {
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
}

.footer-login a:hover {
    text-decoration: underline;
}


@media (max-width: 480px) {
    .footer-login {
        margin-top: 20px;
        text-align: center;
    }

    .footer-login a {
        font-size: 15px;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    .footer-login {
        margin-top: 22px;
        text-align: center;
    }

    .footer-login a {
        font-size: 16px;
    }
}

@media (min-width: 769px) and (max-width: 1000px) {
    .footer-login {
        margin-top: 25px;
        text-align: center;
    }

    .footer-login a {
        font-size: 16px;
    }
}


/* ===== Карточки контактов ===== */

.contacts-cards {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

@media (max-width: 480px) {
    .contacts-cards {
        width: 94%;
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    .contacts-cards {
        width: 94%;
        grid-template-columns: 1fr;
        gap: 25px;
    }
}

@media (min-width: 769px) and (max-width: 1000px) {
    .contacts-cards {
        width: 92%;
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }
}


.contact-card a {
    color: #ffffff;
    text-decoration: none;
}

.contact-card a:hover {
    color: #ffffff;
    text-decoration: underline;
}