.courses-section-title{

max-width:1040px;
margin:40px auto 30px;

padding:0 16px;
text-align:center;

}

/* строка иконка + текст */

.courses-title-row{

display:flex;
align-items:center;
justify-content:center;

gap:14px;

}

/* круг с иконкой */

.title-icon{

width:42px;
height:42px;

border-radius:50%;

background:#19b6b0;

display:flex;
align-items:center;
justify-content:center;

color:white;
font-size:18px;

box-shadow:0 6px 14px rgba(0,0,0,.12);
transition:transform .3s ease;

}
.title-icon:hover{
transform:translateY(-3px);
}

/* текст заголовка */

.courses-title-row h2{

font-size:32px;
font-weight:700;
margin:0;

color:#222;

}

/* декоративная линия */

.title-line{

width:70px;
height:3px;

background:#19b6b0;

margin:14px auto 0;

border-radius:2px;

}





.courses-grid{

max-width:1200px;
margin:0 auto;

display:grid;
grid-template-columns:repeat(3, 1fr);

gap:20px;
padding:0 16px;

}

@media (max-width:900px){

.courses-grid{
grid-template-columns:repeat(2,1fr);
max-width:700px;
}

}

/* мобильный */

@media (max-width:600px){


.courses-title-row{

flex-direction:column;

}

.courses-title-row h2{
font-size:24px;
}

.title-icon{
margin-bottom:8px;
}


.courses-grid{
grid-template-columns:1fr;
max-width:360px;
}

}

.course-card{

position:relative;
width:100%;

aspect-ratio:492 / 239;

border-radius:12px;
overflow:hidden;
position:relative;
overflow:hidden;

transition:transform .35s ease, box-shadow .35s ease;
transition:transform .6s ease;

}

.course-card:hover{

transform:translateY(-6px);

box-shadow:
0 10px 25px rgba(0,0,0,0.15),
0 4px 10px rgba(0,0,0,0.08);
transform:scale(1.06);
}

.course-card img{

position:absolute;
top:0;
left:0;

width:100%;
height:100%;

object-fit:contain;
transition:transform .6s ease;
}

.course-card:hover img{

transform:scale(1.01);

}

.course-card::after{

content:"";

position:absolute;
top:0;
left:-120%;

width:60%;
height:100%;

background:linear-gradient(
120deg,
transparent,
rgba(255,255,255,0.35),
transparent
);

transform:skewX(-20deg);

transition:left .7s ease;

}

.course-card:hover::after{

left:140%;

}

.course-card.loaded img{
opacity:1;
}

.course-placeholder{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
display:flex;
flex-direction:column;
justify-content:center;
padding:18px;
color:white;
font-weight:600;
background:linear-gradient(135deg,#19b6b0,#0e9aa5);
}

.course-title{
font-size:18px;
margin-bottom:6px;
}

.course-hours{
font-size:14px;
opacity:.9;
}
.schedule-pro {
  padding: 100px 0;
}

.schedule-wrapper {
  margin-top: 40px;
  padding: 30px;
  border-radius: 24px;

  background: linear-gradient(120deg, #0f2a2a, #19b6b0, #0f2a2a);
  background-size: 200% 200%;
  animation: gradientFlow 8s ease infinite;

  box-shadow: 0 25px 80px rgba(0,0,0,0.4);
}

/* список */
.schedule-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

/* карточка */
.schedule-card {
  display: grid;
  grid-template-columns: 140px 1fr 150px 160px;
  align-items: center;

  padding: 20px;
  border-radius: 16px;

  background: rgba(0,0,0,0.55);
  color: #fff;
  text-decoration: none;

  position: relative;
  overflow: hidden;
  transition: 0.3s;
}

/* shimmer */
.schedule-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 60%;
  height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.25), transparent);
  transform: skewX(-20deg);
}

.schedule-card:hover::after {
  animation: shimmer 0.8s;
}

.schedule-card:hover {
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}

/* дата */
.schedule-date {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #19b6b0;
  font-weight: 600;
}

/* название */
.schedule-title {
  font-size: 16px;
}

.schedule-title.red {
  color: #ff4d4d;
}

/* время */
.schedule-time {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #ff914d;
  font-weight: 600;
}

/* кнопка */
.schedule-btn {
  text-align: center;
  padding: 10px 15px;
  border-radius: 10px;

  background: linear-gradient(135deg, #19b6b0, #0f8f8a);
  color: #fff;
  font-weight: 600;

  transition: 0.3s;
}

.schedule-card:hover .schedule-btn {
  transform: scale(1.05);
}

/* кнопка все */
.schedule-all {
  margin-top: 25px;
  text-align: center;
}

.schedule-all-btn {
  display: inline-block;
  padding: 14px 30px;
  border-radius: 12px;

  background: linear-gradient(135deg, #19b6b0, #0f8f8a);
  color: #fff;
  text-decoration: none;
  font-weight: 600;

  transition: 0.3s;
}

.schedule-all-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(25,182,176,0.4);
}

/* анимации */
@keyframes shimmer {
  100% { left: 150%; }
}

@keyframes gradientFlow {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

/* адаптив */
@media (max-width: 900px) {
  .schedule-card {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .schedule-btn {
    width: 100%;
  }
.schedule-pro {
  padding: 30px 0;
}
}
.fade-up{
opacity:0;
transform:translateY(40px) scale(.98);
transition:
opacity .6s ease,
transform .6s cubic-bezier(.2,.8,.2,1);
will-change:transform, opacity;
}

/* когда появился */
.fade-up.show{
opacity:1;
transform:translateY(0) scale(1);
}
.reviews-premium{
padding:60px 15px;
max-width:1200px;
margin:auto;
position:relative;
}

.reviews-head{
text-align:center;
margin-bottom:30px;
}

.reviews-head h2{
font-size:28px;
margin-bottom:6px;
}

.reviews-head p{
opacity:.6;
font-size:14px;
}

/* swiper */
.reviews-slider{
overflow:visible;
padding:20px 0 50px;
}

/* карточка */
.review-card{
width:320px;
border-radius:20px;
overflow:hidden;
background:#fff;
cursor:pointer;
transition:.4s;
box-shadow:0 10px 30px rgba(0,0,0,0.1);
}

.review-card img{
width:100%;
display:block;
}

/* эффекты */
swiper-slide{
display:flex;
justify-content:center;
opacity:.4;
transform:scale(.85);
filter:blur(2px);
transition:.5s;
}

swiper-slide.swiper-slide-active{
opacity:1;
transform:scale(1);
filter:none;
z-index:2;
}

swiper-slide.swiper-slide-prev,
swiper-slide.swiper-slide-next{
opacity:.7;
transform:scale(.92);
filter:blur(1px);
}

/* glow */
swiper-slide.swiper-slide-active .review-card{
box-shadow:
0 30px 80px rgba(43,179,163,0.4),
0 10px 30px rgba(0,0,0,0.2);
}

/* стрелки */
.reviews-nav{
position:absolute;
top:50%;
left:0;
width:100%;
transform:translateY(-50%);
display:flex;
justify-content:space-between;
pointer-events:none;
z-index:10;
}

.nav-prev,
.nav-next{
pointer-events:auto;
width:44px;
height:44px;
border-radius:50%;
background:#fff;
display:flex;
align-items:center;
justify-content:center;
cursor:pointer;
box-shadow:0 10px 30px rgba(0,0,0,0.15);
}

/* fade края */
.reviews-premium::before,
.reviews-premium::after{
content:"";
position:absolute;
top:0;
width:120px;
height:100%;
z-index:5;
pointer-events:none;
}

.reviews-premium::before{
left:0;
background:linear-gradient(to right,#f5f5f5,transparent);
}
.reviews-footer{
display:flex;
justify-content:center;
align-items:center;
margin-top:20px;
}
.reviews-premium::after{
right:0;
background:linear-gradient(to left,#f5f5f5,transparent);
}

/* мобилка */
@media(max-width:768px){
.reviews-slider {
  padding: 10px 0 20px;
}

.reviews-premium {
  padding: 20px 15px;
}

.review-card{
width:260px;
}

.reviews-nav{
display:none;
}

.reviews-slider{
padding-left:15px;
}

}



@media(max-width:768px){

.reviews-slider{
padding-left:16px;
padding-right:0;
}

/* уменьшаем сам слайд */
swiper-slide{
width:75% !important;
}

/* карточка чуть уже */
.review-card{
width:100%;
}

/* убираем сильный blur чтобы видно было соседей */
swiper-slide{
filter:none;
opacity:.7;
}

swiper-slide.swiper-slide-active{
opacity:1;
}

}

/* === АДАПТАЦИЯ ПОД ОТЗЫВЫ === */

.reviews-title{
margin-bottom:35px;
text-align:center;
}

.reviews-title .courses-title-row{
justify-content:center;
gap:12px;
}

.reviews-title h2{
font-size:28px;
}

/* подзаголовок */
.reviews-sub{
margin-top:10px;
font-size:14px;
opacity:.6;
}

/* чуть другой цвет иконки */
.reviews-title .title-icon{
background:linear-gradient(135deg,#2bb3a3,#4fd1c5);
color:#fff;
}


/* === КНОПКА ПРЕМИУМ === */

.reviews-btn{
position:relative;
display:inline-flex;
align-items:center;
gap:10px;
padding:16px 26px;
border-radius:16px;
background:linear-gradient(135deg,#2bb3a3,#4fd1c5);
color:#fff;
text-decoration:none;
font-size:15px;
font-weight:500;
overflow:hidden;
transition:.3s;
}

/* glow */
.reviews-btn::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(120deg,transparent,rgba(255,255,255,0.4),transparent);
opacity:0;
transition:.5s;
}

/* hover эффект */
.reviews-btn:hover{
transform:translateY(-3px);
box-shadow:0 15px 40px rgba(43,179,163,0.4);
}

.reviews-btn:hover::before{
opacity:1;
animation:shine 1s linear;
}

@keyframes shine{
0%{transform:translateX(-100%)}
100%{transform:translateX(100%)}
}

/* стрелка */
.reviews-btn::after{
content:"→";
font-size:16px;
transition:.3s;
}

.reviews-btn:hover::after{
transform:translateX(5px);
}
.fc-pro{
  padding: 56px 15px 20px;
}

.fc-container{
  max-width: 1100px;
  margin: 0 auto;
}

.fc-layout{
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 22px;
}

.fc-card{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 24px;
  padding: 22px 20px;
  box-shadow:
    0 18px 45px rgba(0,0,0,.06),
    0 6px 18px rgba(0,0,0,.03);
  transition: transform .25s ease, box-shadow .25s ease;
}

.fc-card:hover{
  transform: translateY(-4px);
  box-shadow:
    0 24px 54px rgba(0,0,0,.10),
    0 8px 22px rgba(0,0,0,.05);
}

.fc-hero{
  padding: 24px 22px;
}

.fc-hero p,
.fc-card p{
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: #4e5d66;
}

.fc-split{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.fc-mini-title{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.fc-mini-title i{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(25,182,176,.10);
  color: #19b6b0;
  font-size: 16px;
  flex-shrink: 0;
}

.fc-mini-title span{
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: #1e2a30;
}

.fc-card:not(.fc-hero):not(.fc-big) .fc-mini-title span{
  font-size: 17px;
}

.fc-big{
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.fc-mini-title--chips{
  margin-bottom: 0;
}

.fc-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.fc-item{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f6fafb;
  border: 1px solid rgba(25,182,176,.08);
  transition: .2s ease;
}

.fc-item:hover{
  background: #eef8f8;
  transform: translateY(-2px);
}

.fc-item i{
  width: 30px;
  height: 30px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(25,182,176,.12);
  color: #19b6b0;
  font-size: 13px;
  flex-shrink: 0;
}

.fc-item span{
  font-size: 14px;
  font-weight: 600;
  color: #304048;
  line-height: 1.4;
}

@media (min-width: 768px){
  .fc-pro{
    padding: 70px 20px 30px;
  }

  .fc-card{
    padding: 26px 24px;
  }

  .fc-split{
    grid-template-columns: 1fr 1fr;
  }

  .fc-grid{
    grid-template-columns: repeat(2, 1fr);
  }

  .fc-hero p,
  .fc-card p{
    font-size: 16px;
  }
}

@media (min-width: 1100px){
  .fc-grid{
    grid-template-columns: repeat(3, 1fr);
  }
}