

/* reset */
*{box-sizing: border-box;}
html,body{height:100%;}
body{
    margin: 0;
    color: var(--black);
    background: #fff;
    font-family: var(--font-main);
    font-style: normal;
    font-weight: 400;
    font-size: var(--fs-body);
    line-height: 1.4;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

/* images */
img{max-width:100%;height:auto;display:block;}

/* container */
.container{
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0;
}


/* hero */
.hero{
    padding:3.5vw 0;
    position:relative;
    color:var(--text);
}
.hero-bg-overlay{
    position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;
}

.hero-inner{
    display:grid;
    grid-template-columns: 1.25fr auto;
    align-items:start;
    gap:clamp(24px, 2.5vw, 48px);
    position:relative;
    z-index:2;
    padding:0;
    margin:0 auto;
}
.hero-image img{
    max-height:clamp(302.5px, 31.51vw, 605px);
    max-width:clamp(350px, 36.458vw, 700px);
    border-radius:20px;
    box-shadow:var(--shadow-image);
}

.hero-text{ display:flex; flex-direction:column; justify-content:space-between; height:100%; width: 100%; gap: min(0.9vw, 19px); }
.hero-text li { padding-left: 0}
.hero-text h1{
    color:var(--text);
    font-family:var(--font-stem);
    font-size:var(--fs-hero-h1);
    font-weight:400;
    line-height:normal;
}
.hero-text h1 p{ font-size:var(--fs-hero-sub); margin:0; }
.hero-text p{ font-size:var(--fs-body); line-height:1.5; font-weight:400; }
.hero-desc{ max-width:760px; }
.hero-actions{ display:flex; gap: min(30px, 1.5625vw); }

/* buttons */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:10px 0;
    border-radius:var(--btn-radius);
    border:1px solid transparent;
    cursor:pointer;
    font-family: Stem-Medium;
    font-weight:400;
    font-size:var(--fs-btn);
    transition:all ease-in-out .2s;
    opacity:1 !important;
    line-height:normal;
    white-space: nowrap;
}
.btn-primary{
    color:var(--blue-2);
    background:#FFF;
    box-shadow:0 4px 4px 0 rgba(0,0,0,0.25);
    font-style:normal;
}
.btn-primary:hover{ background:#FCEDC6; }

.btn-outline{
    border-width:3px;
    background:transparent;
    border-color:var(--text);
    color:var(--text);
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}
.btn-outline:hover{
    border-color:#FCEDC6;
    color:#FCEDC6;
}

/* master classes / swiper */
.master-classes{  background:#fff;      padding-inline: 3.90625vw;}
.master-classes .container.no-mgr{ margin:0 0 0 7.8125vw  /* 150/19.2 */; padding:0; max-width:unset; }
@media (max-width: 1700px){
    .master-classes .container.no-mgr{ margin:0; }

}
.master-swiper{ position:relative; padding-bottom:36px; }
.swiper-slide{ height:auto; }
@media (max-width:600px){
    .swiper-slide{ height:auto !important; display:flex; }
}
.swiper-wrapper{ align-items:stretch; }
.swiper-pagination{ display: none !important; }
.swiper-button-prev, .swiper-button-next{
    color:var(--blue-2);
    font-family: var(--font-main);
    font-style: normal;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    font-size: 16px;
    margin: 0;
    padding: 0;
    outline: none !important;
    font-weight: 500;
    box-sizing: border-box;
    position: absolute;
    margin-top: calc(0px - (var(--swiper-navigation-size)/ 2));
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    left: auto;
    color: var(--blue-2);
    width: 60px;
    height: 60px;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    background-image: url(img/arrow-right.svg);
    border-radius: 100%;
    filter: drop-shadow(0px 10px 20px rgba(0, 0, 0, 0.05));
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    border-width: 0;
}

.swiper-button-prev{background-image: url(img/arrow-left.svg); left: 0; right: auto}
.swiper-nav .swiper-button-prev, .swiper-nav .swiper-button-next{ position:absolute; top:42%; }

/* class card */
.class-card{
    background:#fff;
    border-radius:clamp(12px, 1.5625vw, 30px);
    box-shadow:var(--shadow-card);
    overflow:hidden;
    max-width: clamp(180px, 20vw, 440px); /* 1280 target ~290 */
    display:flex;
    flex-direction:column;
    height:100%;
    width:100%;
    flex:1;
}
.class-card__img{
    object-fit:cover;
    flex-shrink:0;
    height: clamp(163.125px, 16.98vw, 326px);
}
.class-card__wrapper{
    padding:clamp(15px, 1.563vw, 30px);
    display:flex;
    flex-direction:column;
    gap:10px;
    height:100%;
}

.class-card__wrapper > * {
    margin: 0;
}
.class-card__title{
    font-family:"Stem-Regular";
    font-weight:700;
    font-size:var(--fs-title-small); /* 22 at 1280 */
    color:var(--stem-blue);
    line-height:normal;
    padding-right:9px;
    flex:1;
}
.class-card__meta{ color:var(--black); flex-shrink:0; }
.class-card__meta b{ font-weight:700; }

/* btn-small */
.btn-small{
    height:clamp(40px, 3.125vw, 60px);
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    align-self:stretch;
    border-radius:var(--btn-radius);
    border:1px solid var(--stem-blue);
    background:#FFF;
    box-shadow:0 0 4px 0 rgba(0,0,0,0.25);
    color:var(--stem-blue);
    font-family:var(--font-main);
    font-size:var(--fs-btn);
    font-weight:400;
    line-height:normal;
    flex-shrink:0;
    margin-top:auto;
    transition:all ease-in-out .2s;
    padding:0; /* убрано */
}
.btn-small:hover{ background:var(--stem-blue); color:#fff; }

/* schedule / calendar */
.schedule{  background:#fff;         padding: 3.90625vw /* 50/12.8 */;
}
.footer{ padding-inline: 3.90625vw}
.calendar{ display:grid; grid-template-columns:repeat(7,1fr); gap:min(20px, 1.042vw); }

.calendar-head{
    color:var(--stem-blue);
    font-family:'Stem-Medium';
    font-size:var(--fs-hero-h1); /* large calendar header */
    font-style:normal;
    line-height:normal;
    display:flex;
    justify-content:center;
    align-items:center;
    gap: max(1.823vw, 10px);
    margin-bottom: clamp(20px, 1.5625vw, 30px);
}

.calendar-head .cal-nav{ width:clamp(12.5px, 2.604vw, 50px); height:clamp(12.5px, 2.604vw, 50px); display:flex; justify-content:center; align-items:center; }
.calendar-head .cal-nav svg{ height: 100%}


.calendar-day{
    font-family:var(--font-main);
    border:2px solid var(--stem-blue);
    border-radius:10px;
    height: clamp(90px, 7vw, 120px); /* 90 at 1280 */
    padding:10px;
    display:flex;
    flex-direction:column;
    justify-content: space-between;

}
.calendar-day.empty{ opacity:0.3; }

.calendar-day span{
    align-self:stretch;
    color:#1E1E1E;
    font-style:normal;
    font-weight:500;
    font-size: min(16px, 0.833vw);
    line-height: min(17px, 0.885vw);
}

@media (max-width: 1500px){
    .calendar-day span{
        font-size: clamp(12px, 0.9375vw, 14px);
        line-height: clamp(13px, 1.015625vw, 15.234px) /* 108.333% */;
    }
}

.calendar-day.has-not .calendar-date{ color:var(--stem-blue); }

.calendar-day.weekend{ background:var(--stem-blue); color:#fff; }
.calendar-day.weekend .calendar-date{ color:#FFF; }

.calendar-date{
    font-size: var(--fs-datedate); /* varies, smaller on mobile */
    font-style:normal;
    font-weight:700;
    line-height:normal;
    align-self:end;
    color:#FFF;
}
.calendar-day.one-event{ border: unset; box-shadow: 0 4px 15px 0 rgba(0, 0, 0, 0.25);}

.calendar-events{ display:flex; flex-direction:column; gap:6px; }
.event{ display:flex; gap:8px; align-items:center; background:#fff; border-radius:var(--btn-radius); padding:6px; }
.event img{ width:44px; height:30px; border-radius:8px; object-fit:cover; }
.event span{ font-size:13px; line-height:1.2; }

/* calendar loader */
#calendar-wrapper{ position:relative; }
.calendar-loader{
    position:absolute;
    inset:0;
    background:rgba(255,255,255,0.85);
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    z-index:10;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
}
.calendar-loader.active{ opacity:1; pointer-events:all; }
.calendar-loader .spinner{
    width:50px; height:50px;
    border:5px solid var(--stem-blue);
    border-top-color:transparent;
    border-radius:50%;
    animation:spin .9s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* gallery */
.gallery-students-swiper img{ border-radius:20px; }
.gallery{ padding:24px 0 60px; background:#fff; }
.gallery-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.gallery-item img{ border-radius:14px; aspect-ratio:1; object-fit:cover; }

/* course-card */
.course-card{
    display:flex;
    flex-direction:row;
    max-width:100%;
    border-radius:var(--radius);
    background-color:#fff;
    box-shadow:0 8px 32px rgba(0,0,0,0.1);
    overflow:hidden;
    padding:50px;
    gap:55px;
}
.course-card h3, .course-card h4{ margin:0; color:var(--stem-blue); }

.course-card__column-first{
    display:flex;
    flex-direction:column;
    gap:30px;
    width:834px;
    max-height: fit-content;
}
.course-card__title{
    align-self:stretch;
    color:var(--stem-blue);
    font-family:var(--font-stem);
    font-size:var(--fs-title-large); /* 34 at 1280, scales down */
    font-style:normal;
    font-weight:400;
    line-height:normal;
}

.course-card__meta-wrapper{
    display:flex;
    flex-direction:column;
    font-size:var(--fs-body);
    color:var(--black);
    line-height:normal;
}
.course-card__meta-wrapper .course-card__meta-item strong{ font-weight:700; }

.course-card__description-title{
    color:var(--stem-blue);
    font-family:var(--font-stem);
    font-weight:400;
    font-size:var(--fs-title-small); /* 22 at 1280 */
    margin-bottom:15px !important;
}

.course-card__description ul{
    color:#1E1E1E;
    font-family:var(--font-main);
    font-size:var(--fs-body);
    font-weight:400;
    padding-left:35px;
}
.course-card__description li{ padding:0 !important; line-height:normal; }

.course-card__teacher{
    display:flex;
    align-items:flex-start;
    gap:20px;
    width:724px;
}
.course-card__teacher img{
    width:150px;
    height:150px;
    border-radius:var(--btn-radius);
    object-fit:cover;
}
.course-card__teacher_text-wrapper{ display:flex; flex-direction:column; }

.course-card__teacher-title{
    color:var(--stem-blue);
    font-family:var(--font-stem);
    font-weight:400;
    font-size:var(--fs-title-small); /* 22 at 1280 */
    line-height:normal;
    margin-bottom:2px;
}
.course-card__teacher-description{ color:#1E1E1E; font-size:var(--fs-body); line-height:normal; }

/* Teachers section (multiple teachers) */
.course-card__teachers {
    display: flex;
    flex-direction: column;
    gap: 1%;
}

/* dates block */
.course-card__dates{ display:flex; flex-direction:column; }
.course-card__dates-title{
    color:var(--stem-blue);
    font-family:var(--font-stem);
    font-size:var(--fs-title-small); /* 22 at 1280 */
    line-height:normal;
    margin-bottom:10px;
}
.course-card__dates-wrapper{ display:flex; gap:15px; flex-wrap: wrap}
.course-card__dates-item{ display:flex; flex-direction:column; justify-content:center; align-items:center; border-radius:var(--btn-radius); cursor: pointer;  padding:10px 0; }
.course-card__dates-item:hover {
    background-color: #f0f8ff;
    transition: all 0.2s ease;
}

.course-card__dates-item.bordered{ border:2px solid var(--stem-blue); padding:10px 31px; }

.course-card__dates-item-date{
    font-weight:600;
    margin-bottom:4px;
    font-size:var(--fs-datedate); /* responsive */
    color:#1E1E1E;
}
.course-card__dates-item-time{ font-size:var(--fs-datetime); color:var(--black); }

/* right column */
.course-card__column-second{ display:flex; flex-direction:column; align-items: center; width: min(635px, 33.073vw) }
.course-card__image{
    border-radius:30px;
    margin-bottom:20px;
    object-fit:cover;

    height: 100%;
    width: 33.073vw;
    flex-shrink: 1;
    min-height: 0;
}

/* form */
.course-card form{ width:100%; display:flex; flex-direction:column; gap:15px; }

.course-card form input[type="text"]{
    display:flex;
    padding:20px 15px;
    justify-content:space-between;
    align-items:center;
    align-self:stretch;
    border-radius:var(--btn-radius);
    border:1px solid var(--stem-blue);
    font-family:var(--font-main);
    font-size:var(--fs-body);
    font-style:normal;
    font-weight:400;
    line-height:normal;
}
.course-card form input[type="text"]:focus{ border-color:#1a365d; }
.course-card form input[type="text"]::placeholder{ color:rgba(30,30,30,0.5); }

.course-card form input[type="submit"]{
    height:clamp(40px, 3.125vw, 60px);
    display:flex;
    padding:10px 155px;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex:1 0 0;
    border-radius:var(--btn-radius);
    background:var(--stem-blue);
    box-shadow:0 4px 4px 0 rgba(0,0,0,0.25);
    color:#FFF;
    font-family:var(--font-stem);
    font-size:var(--fs-btn-submit); /* exact per designer */
    font-style:normal;
    font-weight:400;
    line-height:normal;
    transition:all ease-in-out .2s;
}
.course-card form input[type="submit"]:hover{ background:#FCEDC6; color:var(--stem-blue); }

/* fancybox fix */
.fancybox-content:has(.course-card){
    padding:0 !important;
    background:unset !important;
}

.gallery {
    padding-inline: 3.90625vw;
}

/* --------- responsive breakpoints (extra tuning) --------- */

/* 1600px and below — slightly reduce paddings & image sizes */
@media (max-width:1600px){
    .hero{ padding-inline: 3.90625vw  /* 50/12.8 */; }
    .hero-image img{ max-height:32.5vw; max-width: 31.125vw }
    .course-card{ padding:40px; gap:40px; }
    .course-card__column-first{ width:700px; }
    .course-card__image{ width:520px; }
    .class-card__img{ height:200px; }
}

/* 1400px and below — one-column hero, reduce gallery/calendar columns */
@media (max-width:1400px){
    /*.hero-inner{ grid-template-columns:1fr; }*/
    /*.calendar{ grid-template-columns:repeat(5,1fr); }*/
    .gallery-grid{ grid-template-columns:repeat(4,1fr); }

    .course-card{
        /*flex-direction:column;*/
        padding:30px;
    }
    .course-card__column-first,
    .course-card__teacher{ width:100%; }
    .course-card__image{ width:100%; }
}

/* 1200px and below — tighten text & buttons */
@media (max-width:1200px){
    .btn, .btn-small, .course-card form input[type="submit"]{ font-size: clamp(14px,1.1vw,16px); padding:10px 20px; }
    .course-card__description-title, .course-card__teacher-title, .course-card__dates-title{ font-size: clamp(18px,1.4vw,22px); }
    .course-card__dates-item-date{ font-size: clamp(14px,1.2vw,20px); }
}

/* 1024px and below — mobile nav, reduce calendar/gallery columns */
@media (max-width:1024px) {

    .container {
        padding: 0 16px;
    }

    /*.main-nav{*/
    /*    position:fixed;*/
    /*    inset:173px 0 auto 0;*/
    /*    background:var(--blue-2);*/
    /*    padding:16px;*/
    /*    transform:translateY(-10px);*/
    /*    opacity:0;*/
    /*    visibility:hidden;*/
    /*    transition:.2s;*/
    /*    display: none;*/
    /*}*/
    /*.main-nav.open{ transform:none; opacity:1; visibility:visible; }*/
    /*.main-nav .menu{ flex-direction:column; gap:12px; }*/
    /*.main-nav .sub-menu{*/
    /*    position:static;*/
    /*    min-width:auto;*/
    /*    padding:8px;*/
    /*    background:rgba(255,255,255,0.1);*/
    /*    border-radius:var(--btn-radius);*/
    /*    box-shadow:none;*/
    /*    opacity:1;*/
    /*    visibility:visible;*/
    /*    transform:none;*/
    /*}*/
    /*.main-nav .sub-menu a{ color:#1E1E1E; }*/

    /*.header-contacts{ display:none; }*/
    /*.calendar{ grid-template-columns:repeat(4,1fr); }*/
    .gallery-grid {
        grid-template-columns:repeat(3, 1fr);
    }

    .hero {
        padding: 80px 0;
    }

    .hero-inner {
        display: flex;
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
    }

    .hero-text h1 {
        font-size: clamp(26px, 3vw, 40px);
    }

    .hero-image img {
        max-width: 60%;
        max-height: 100%;
        justify-self: center;
    }

    .course-card {
        padding: 24px;
        gap: 20px;
    }

    .class-card {
        max-width: 320px;
    }


}

/* 768px and below — stacked layouts, further font reductions */
@media (max-width:768px){

        .hero{ padding:7.813vw 0; }
    .hero-text h1{ font-size: 5vw; }
    .hero-text h1 p{ font-size: 4vw}
    .hero-text p{ font-size: clamp(14px,2.5vw,16px); line-height:1.4; }

    .course-card__title{ font-size: clamp(20px,3.2vw,30px); }
    .course-card__teacher img{ width:100px; height:100px; }
    .class-card__img{ height:180px; }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .calendar{ grid-template-columns:repeat(3,1fr); }
    .calendar .empty, .calendar .has-not {display: none}

    .calendar-day {height: 30vw}

    .course-card {
        flex-direction: column;
    }
    .course-card__column-second{  align-items: unset; }
    .gallery {
        padding-inline: 0;
    }

    /* right column */
    .course-card__column-second{ width: 100% }

    .course-card__dates-wrapper {
        flex-wrap: nowrap;
        width: max-content;
    }

    .course-card__dates-main-wrapper {
        overflow: scroll;
    }

}

/* 640px and below — mobile grid tightening */
@media (max-width:640px){
    .calendar{ grid-template-columns:repeat(2,1fr); }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .class-card__wrapper{ padding:10px; gap: 0 }
    .class-card__img{ height:40.3125vw;}
    .class-card__title{margin-bottom: 1vw}
    .class-card .btn-small {margin-top: 0.85vw}
    .btn{border-radius: 2vw}
    .btn-small{height: unset;padding: 2vw}
    .course-card{ width: 92.5vw }
}

/* 480px and below — small devices (target 400px sizes) */
@media (max-width:600px){
    /* designer specified many exact values for 400px — we approximate with clamps */
    body, .hero-text p, .btn { font-size: 4vw; } /* as requested */
    .class-card__title { font-size: 3.5vw; line-height: normal } /* designer 14 at 400 */
    .class-card__meta { font-size: 3vw; line-height: normal } /* designer 14 at 400 */
    .cal-title, .course-card__description-title, .course-card__teacher-title { font-size: 5vw; }
    .course-card__dates-title { font-size: 5.5vw; }
    .course-card__title { font-size: 6vw; }
    .course-card__teacher-description { font-size: 3.5vw; }
    .calendar-day span, .course-card__dates-item-date { font-size: 3vw; }
    .course-card__dates-item-time { font-size: 2.5vw; }
    .course-card form input[type="submit"] { font-size: 4.40275vw; height: auto }
    .course-card form input[type="text"] { padding-block: 3vw }

    .hero{ padding:7.5vw 0; }
    .hero-inner, .hero-text{gap:2.5vw;}
    .hero-image img{ max-height:92.5vw; }
    .course-card{ padding:3.75vw; gap:4vw; }
    .course-card__column-first, .course-card__column-second{ width:100%; gap: 3.75vw}
    .course-card__image{ width:100%; border-radius: 2vw; margin-bottom: 0}
    .class-card{ max-width:72.5vw; } /* specified by designer for 1280 but keep reasonable on tiny screens */
    .hero-actions{ flex-direction: column }
    .btn-outline{ border-width: 1px;  box-shadow: 0 0.20825vw 0.20825vw 0 rgba(0, 0, 0, 0.25);}
}

/* small tweaks to keep things stable */
@media (min-width:1700px){
    /* keep original ideal layout for very large screens */
    .container{ max-width:1620px; }
    .hero{ padding:150px 0; }''
    .course-card{ padding:50px; gap:55px; }
}

/* utility */
.hidden{ display:none !important; }
.visible{ display:block !important; }

section {
    padding-top: min(90px, 4.6875vw);
}

/* Archive page*/
.schools-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.school-card {
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}

.school-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.school-card__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.school-card__title {
    padding: 1rem;
    margin: 0;
    font-size: 1.2rem;
}

.wpcf7-spinner {
    display: none;
}

form.submitting .wpcf7-spinner {
    display: inline-block;
}
.wpcf7 form.invalid .wpcf7-response-output {
    color: red;
}

.course-card .wpcf7 {
    width: 100%;
}

.hero-text strong {
    font-weight: bolder;
}

ol > li ul li {
    padding-left: 20px;
    list-style-type: disc;
}




/* Стили для секции мастер-класса */
.master-class-offer {
    background: #035F47;
    color: #ffffff;
    padding: 3.90625vw /* 50/12.8 */;

    ol > li ul li {
        list-style-type: none;
    }
}
.master-class-offer .container {
    /* max-width: 1200px; */
}

/* Стили для параграфов */
.master-class-offer p {
    font-size: 26px;
    line-height: 1.6;
    margin-bottom: 24px;
    font-weight: 300;
}

.master-class-offer p:last-child {
    margin-bottom: 0;
    font-weight: 500;
    padding: 24px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    border-left: 4px solid #fbbf24;
}

/* Стили для span элементов */
.master-class-offer > .container > span:first-child {
    display: block;
    font-size: 32px;
    line-height: 1.6;
    margin-bottom: 32px;
    font-weight: 500;
}

/* Стили для заголовков strong */
.master-class-offer strong {
    display: block;
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 20px;
    margin-top: 32px;
    color: #fbbf24;
}

/* Стили для нумерованного списка (ol) */
.master-class-offer ol {
    padding-left: 32px;
    margin: 32px 0;
    counter-reset: item;
    list-style: none;
}

.master-class-offer ol > li {
    position: relative;
    padding-left: 16px;
    margin-bottom: 24px;
    line-height: 1.6;
    font-size: 26px;
    counter-increment: item;
}

.master-class-offer ol > li::before {
    content: counter(item) ".";
    position: absolute;
    left: -32px;
    top: 0;
    color: #fbbf24;
    font-weight: bold;
    font-size: 26px;
}

/* Стили для маркированного списка (ul) */
.master-class-offer ul {
    list-style: none;
    padding: 0;
    margin: 16px 0 16px 0;
}

.master-class-offer ul li {
    position: relative;
    padding-left: 32px;
    margin-bottom: 12px;
    line-height: 1.6;
    font-size: 26px;
}

.master-class-offer ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #34d399;
    font-weight: bold;
    font-size: 26px;
}

/* Вложенный ul внутри ol */
.master-class-offer ol ul {
    margin-top: 16px;
    margin-bottom: 0;
}

.master-class-offer ol ul li {
    font-size: 24px;
    margin-bottom: 8px;
}

.master-class-offer ol ul li::before {
    font-size: 24px;
}

/* Последний текстовый элемент */
.master-class-offer > .container > span:last-child {
    display: block;
    font-size: 32px;
    line-height: 1.6;
    margin-top: 32px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    border-left: 4px solid #fbbf24;
    font-weight: 500;
}

/* Адаптив для планшетов */
@media (max-width: 1024px) {
    .master-class-offer {
        padding: 48px 0;
    }
    .master-class-offer > .container > span:first-child,
    .master-class-offer > .container > span:last-child {
        font-size: 26px;
    }
    .master-class-offer p,
    .master-class-offer strong,
    .master-class-offer ol > li,
    .master-class-offer ul li {
        font-size: 22px;
    }
    .master-class-offer ol > li::before,
    .master-class-offer ul li::before {
        font-size: 22px;
    }
    .master-class-offer ol ul li {
        font-size: 20px;
    }
    .master-class-offer ol ul li::before {
        font-size: 20px;
    }
}

/* Адаптив для мобильных */
@media (max-width: 768px) {
    .master-class-offer > .container > span:first-child,
    .master-class-offer > .container > span:last-child {
        font-size: 20px;
    }
    .master-class-offer p,
    .master-class-offer strong,
    .master-class-offer ol > li,
    .master-class-offer ul li {
        font-size: 18px;
    }
    .master-class-offer ol {
        padding-left: 24px;
    }
    .master-class-offer ol > li {
        padding-left: 12px;
    }
    .master-class-offer ol > li::before {
        left: -24px;
        font-size: 18px;
    }
    .master-class-offer ul li {
        padding-left: 28px;
        margin-bottom: 8px;
    }
    .master-class-offer ul li::before {
        font-size: 18px;
    }
    .master-class-offer ol ul li {
        font-size: 16px;
    }
    .master-class-offer ol ul li::before {
        font-size: 16px;
    }
    .master-class-offer p:last-child,
    .master-class-offer > .container > span:last-child {
        padding: 20px;
        margin-top: 24px;
    }
}