*{
margin:0;
padding:0;
box-sizing:border-box;
}

html,
body{
scroll-behavior:smooth;
overflow-x:hidden;
max-width:100%;
}

body{
font-family:'Montserrat',sans-serif;
background:#f4f7f2;
color:#111;
line-height:1.6;
}

/* CONTAINER */

.container{
width:90%;
max-width:1220px;
margin:auto;
overflow:hidden;
}

section{
padding:30px 0;
}

/* HERO */
/* HERO */

.hero{
padding:70px 0 30px;
background:
linear-gradient(
180deg,
#f4f7f2 0%,
#edf6e2 100%
);
overflow:hidden;
}

.hero-layout{
display:flex;
align-items:center;
justify-content:space-between;
gap:60px;
flex-wrap:nowrap;
}

.hero-left{
flex:1;
min-width:0;
max-width:680px;
}

.hero-right{
width:380px;
flex-shrink:0;
display:flex;
justify-content:flex-end;
}

.tag{
display:inline-flex;
align-items:center;
padding:12px 22px;
background:#dfff8d;
border-radius:999px;
font-size:13px;
letter-spacing:2px;
margin-bottom:28px;
color:#111;
font-weight:700;
}

.hero h1{
font-size:74px;
line-height:0.98;
margin-bottom:26px;
font-weight:800;
color:#111;
letter-spacing:-2px;
}

.subtitle{
font-size:24px;
line-height:1.7;
color:#2f2f2f;
margin-bottom:38px;
max-width:720px;
font-weight:500;
}

.hero-buttons{
display:flex;
gap:16px;
flex-wrap:wrap;
}

.hero-image{
width:100%;
aspect-ratio:4/5;
object-fit:cover;
border-radius:36px;
display:block;
box-shadow:
0 30px 80px rgba(0,0,0,.12);
}

/* MOBILE HERO */

@media(max-width:900px){

.hero{
padding:34px 0 10px;
}

.hero-layout{
display:block;
}

.hero-right{
display:none;
}

.hero h1{
font-size:30px;
line-height:1.02;
margin-bottom:18px;
letter-spacing:-1px;
}

.subtitle{
font-size:15px;
line-height:1.5;
margin-bottom:28px;
}

.hero-buttons{
flex-direction:column;
}

.hero-buttons .btn{
width:100%;
text-align:center;
}

.tag{
font-size:11px;
padding:10px 16px;
margin-bottom:20px;
}

}

/* TITLES */

.section-title{
margin-bottom:38px;
}

.section-title span{
font-size:14px;
font-weight:800;
letter-spacing:2px;
color:#7ab800;
}

.section-title h2{
font-size:34px;
line-height:1.1;
margin-top:10px;
}

/* VIDEO */

.video-placeholder{
height:320px;
border-radius:28px;
background:
linear-gradient(
135deg,
#dff6a5,
#f3ffd0
);
display:flex;
align-items:center;
justify-content:center;
font-size:28px;
font-weight:700;
color:#222;
}

/* ABOUT */

.about-grid{
display:flex;
flex-wrap:wrap;
gap:20px;
}

.about-card{
flex:1 1 calc(20% - 20px);
min-width:180px;
background:white;
padding:28px 20px;
border-radius:24px;
text-align:center;
box-shadow:0 10px 30px rgba(0,0,0,.06);

display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
}

.about-icon{
width:64px;
height:64px;
margin-bottom:18px;
border-radius:18px;
background:#dfff8d;
display:flex;
align-items:center;
justify-content:center;
font-size:28px;
}

.about-card p{
font-size:15px;
line-height:1.45;
font-weight:600;
}

/* SCROLL BUTTONS */

.scroll-buttons{
display:flex;
gap:12px;
margin-top:22px;
}

.scroll-btn{
width:52px;
height:52px;
border:none;
border-radius:16px;
background:#111;
color:#b8ff00;
font-size:24px;
cursor:pointer;
transition:.25s;
flex-shrink:0;
}

.scroll-btn:hover{
transform:translateY(-2px);
}

/* PHOTO GALLERY */

.horizontal-scroll{
display:flex;
gap:24px;
overflow-x:auto;
padding-bottom:16px;
padding-right:5vw;
scrollbar-width:none;
scroll-behavior:smooth;
}

.horizontal-scroll::-webkit-scrollbar{
display:none;
}

.photo-card{
flex:0 0 38%;
max-width:38%;
border-radius:28px;
overflow:hidden;
border:4px solid #111;
background:white;
box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.photo-card img{
width:100%;
aspect-ratio:4/5;
object-fit:cover;
display:block;
}

/* REVIEWS */

.reviews-scroll{
display:flex;
gap:24px;
overflow-x:auto;
padding-bottom:16px;
padding-right:5vw;
scrollbar-width:none;
scroll-behavior:smooth;
}

.reviews-scroll::-webkit-scrollbar{
display:none;
}

.review-image-card{
flex:0 0 24%;
max-width:24%;
border-radius:28px;
overflow:hidden;
border:4px solid #111;
background:white;
box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.review-image-card img{
width:100%;
aspect-ratio:9/19.5;
object-fit:contain;
display:block;
background:#f4f4f4;
}

/* PRICING */

.pricing-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:24px;
}

.price-card{
background:white;
padding:40px;
border-radius:28px;
box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.price-card h3{
font-size:14px;
margin-bottom:18px;
line-height:1.3;
}

.price{
font-size:44px;
font-weight:800;
margin-bottom:20px;
color:#7ab800;
}

.price-card ul{
padding-left:20px;
}

.price-card li{
margin-bottom:10px;
}

.accent-card{
background:#111;
color:white;
}

/* CONTACTS */

.contacts{
background:#111;
color:white;
text-align:center;
}

.contacts h2{
font-size:46px;
margin-bottom:20px;
}

.contacts p{
max-width:700px;
margin:auto;
font-size:18px;
}

.contact-buttons{
display:flex;
justify-content:center;
gap:16px;
flex-wrap:wrap;
margin-top:34px;
}

.contact-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:18px 34px;
background:#b8ff00;
color:#111;
font-weight:700;
text-decoration:none;
border-radius:14px;
min-width:240px;
transition:.25s;
}

.contact-btn:hover{
transform:translateY(-2px);
}

.telegram-btn{
background:#1f1f1f;
color:white;
border:2px solid #b8ff00;
}

/* VIDEO SECTION */

.video-wrapper{
display:flex;
align-items:center;
gap:60px;
background:white;
padding:40px;
border-radius:32px;
box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.trainer-video{
width:340px;
aspect-ratio:3/4;
object-fit:cover;
border-radius:28px;
background:#000;
flex-shrink:0;
}

.video-text{
flex:1;
}

.video-text h3{
font-size:34px;
margin-bottom:18px;
line-height:1.15;
}

.video-text p{
font-size:18px;
line-height:1.7;
margin-bottom:24px;
color:#333;
max-width:650px;
}

.video-text ul{
padding-left:20px;
}

.video-text li{
margin-bottom:12px;
font-weight:600;
}

/* MOBILE */

@media(max-width:900px){

body{
overflow-x:hidden;
}

section{
padding:30px 0;
}

.section-title h2{
font-size:20px;
}

/* ABOUT MOBILE */

.about-grid{
gap:14px;
}

.about-card{
flex:0 0 calc(50% - 7px);
min-width:unset;
padding:22px 16px;
border-radius:20px;
min-height:150px;
}

.about-card:last-child{
flex:0 0 100%;
}

.about-icon{
width:52px;
height:52px;
font-size:22px;
margin-bottom:14px;
border-radius:14px;
}

.about-card p{
font-size:14px;
line-height:1.35;
}

/* PRICING MOBILE */

.pricing-grid{
grid-template-columns:1fr;
}

/* GALLERY MOBILE */

.photo-card{
flex:0 0 73%;
max-width:73%;
}

.review-image-card{
flex:0 0 46%;
max-width:46%;
}

.video-placeholder{
height:220px;
font-size:20px;
}

.contacts h2{
font-size:36px;
}

.scroll-btn{
width:46px;
height:46px;
font-size:20px;
}

.contact-buttons{
flex-direction:column;
align-items:center;
}

.contact-btn{
width:100%;
max-width:340px;
}

/* VIDEO MOBILE */

.video-wrapper{
flex-direction:column;
padding:24px;
gap:28px;
}

.trainer-video{
width:100%;
max-width:420px;
border-radius:24px;
}

.video-text{
display:none;
}

}