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

:root,[data-theme="dark"]{
    --bg:#0a0a0a;--bg2:#111111;--bg3:#1a1a1a;
    --accent:#04b852;--accent2:#03a048;--accent-rgb:4,184,82;
    --text:#ffffff;--text2:#bbbbbb;--border:rgba(4,184,82,0.12);
    --card-shadow:0 8px 30px rgba(0,0,0,0.5);
    --hero-gradient:linear-gradient(135deg,var(--accent),#00e676);
    --font:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --r:8px;--r2:50px;--tr:0.3s ease;--w:1140px
}

[data-theme="light"]{
    --bg:#f5f5f7;--bg2:#ffffff;--bg3:#ffffff;
    --accent:#04b852;--accent2:#03a048;--accent-rgb:4,184,82;
    --text:#1a1a1a;--text2:#666666;--border:rgba(4,184,82,0.2);
    --card-shadow:0 4px 20px rgba(0,0,0,0.08);
    --hero-gradient:linear-gradient(135deg,var(--accent),#00e676)
}

[data-theme="vip"]{
    --bg:#0a0e1a;--bg2:#0d1229;--bg3:#131d3d;
    --accent:#fac64d;--accent2:#e0b040;--accent-rgb:250,198,77;
    --text:#ffffff;--text2:#b0b8d0;--border:rgba(250,198,77,0.15);
    --card-shadow:0 8px 30px rgba(0,0,0,0.5);
    --hero-gradient:linear-gradient(135deg,var(--accent),#ffe08a)
}

html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background var(--tr),color var(--tr)}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none;font-weight:500;transition:color var(--tr)}
a:hover{color:var(--accent2)}
h2,h5{line-height:1.3;font-weight:700}
.skip-link{position:fixed;top:-100px;left:10px;z-index:9999;background:var(--accent);color:#000;padding:8px 16px;border-radius:0 0 5px 5px;font-weight:700;transition:top 0.3s}
.skip-link:focus{top:0}
.btn{display:inline-block;padding:14px 36px;border-radius:var(--r2);font-weight:700;font-size:16px;cursor:pointer;border:2px solid transparent;text-align:center;transition:all var(--tr)}
.btn--primary{background:var(--accent);color:#000}
.btn--primary:hover{background:var(--accent2);color:#000;transform:translateY(-2px);box-shadow:0 8px 25px rgba(var(--accent-rgb),0.35)}
.btn--outline{border-color:var(--accent);color:var(--accent)}
.btn--outline:hover{background:var(--accent);color:#000}
.btn-wrapper{position:relative;display:inline-block}
.section-title{font-size:36px;text-align:center;margin-bottom:60px;position:relative;letter-spacing:-0.5px;color:var(--accent)}
.section-title::after{content:'';display:block;width:60px;height:3px;background:var(--accent);margin:18px auto 0;border-radius:2px}

.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--bg);border-bottom:2px solid var(--accent);padding:12px 0;transition:all var(--tr)}
.header__inner{max-width:var(--w);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;color:var(--accent);cursor:default;user-select:none;letter-spacing:-0.5px}
.logo__icon{font-size:28px;filter:drop-shadow(0 0 8px rgba(var(--accent-rgb),0.5))}
.logo__text{pointer-events:none}
.nav__list{display:flex;list-style:none;gap:24px}
.nav__link{font-weight:500;font-size:15px;padding:8px 0;position:relative;color:var(--text);transition:color var(--tr)}
.nav__link:hover{color:var(--accent)}
.nav__link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent);transition:width var(--tr)}
.nav__link:hover::after{width:100%}
.nav__link.btn--appointment{color:var(--accent);font-weight:700}
.nav__link.btn--appointment:hover{color:var(--accent2)}
.nav__link.btn--appointment::after{display:none}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:5px}
.burger__line{width:25px;height:2px;background:var(--text);border-radius:3px}

.theme-switcher{position:relative}
.theme-switcher__btn{background:var(--bg3);border:1px solid var(--accent);cursor:pointer;color:var(--accent);padding:8px;border-radius:8px;transition:all var(--tr);display:flex;align-items:center;justify-content:center}
.theme-switcher__btn:hover{background:var(--accent);color:#000}
.theme-switcher__dropdown{position:absolute;top:calc(100% + 10px);right:0;background:var(--accent);border-radius:var(--r);padding:8px;min-width:170px;display:none;flex-direction:column;gap:4px;z-index:10;box-shadow:0 10px 40px rgba(0,0,0,0.6)}
.theme-switcher__dropdown.open{display:flex}
.theme-switcher__option{display:flex;align-items:center;gap:12px;background:none;border:1px solid rgba(0,0,0,0.2);color:#000;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:14px;transition:all var(--tr);width:100%;text-align:left;font-weight:600}
.theme-switcher__option:hover{border-color:#000;background:rgba(0,0,0,0.1)}
.theme-switcher__option.active{border-color:#000;background:rgba(0,0,0,0.2)}
.theme-dot{width:16px;height:16px;border-radius:50%;display:inline-block;flex-shrink:0;border:2px solid #000}

.hero{background:var(--bg2);padding:140px 0 80px;overflow:hidden;transition:background var(--tr);border-bottom:2px solid var(--accent)}
.hero__slider{max-width:var(--w);margin:0 auto;position:relative}
.hero__track{display:flex;transition:transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94)}
.hero__slide{min-width:100%;padding:0 24px}
.hero__slide-row{display:flex;align-items:center;gap:60px}
.hero__content{flex:1}
.hero__title{font-size:44px;font-weight:800;color:var(--text);margin-bottom:20px;line-height:1.15;letter-spacing:-1px}
.hero__title span{background:var(--hero-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero__text{font-size:18px;color:var(--text2);margin-bottom:35px;line-height:1.7}
.hero__image{flex:1;border-radius:var(--r);overflow:hidden;background:var(--bg3);min-height:450px;display:flex;align-items:center;justify-content:center;border:1px solid var(--accent);transition:all var(--tr)}
.hero__image img{width:100%;height:450px;object-fit:cover}
.hero__dots{display:flex;gap:10px;justify-content:center;margin-top:30px;background:var(--bg);padding:14px 30px;border-radius:var(--r2);width:fit-content;margin-left:auto;margin-right:auto;border:1px solid var(--accent)}
.hero__dot{width:10px;height:10px;background:var(--text2);border:none;cursor:pointer;transform:rotate(45deg);transition:all var(--tr)}
.hero__dot.active{background:var(--accent);transform:rotate(45deg) scale(1.4);box-shadow:0 0 10px var(--accent)}

.services{padding:100px 0 80px;background:var(--bg)}
.services__inner{max-width:var(--w);margin:0 auto;padding:0 24px}
.services__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:60px;flex-wrap:wrap;gap:20px}
.services__phones{display:flex;gap:24px;font-size:15px;color:var(--text2)}
.services__phones a{font-weight:700;color:var(--accent);font-size:16px}
.services__phones a:hover{color:var(--accent2)}
.services__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.service-card{background:var(--bg3);border-radius:var(--r);overflow:hidden;border:1px solid var(--border);text-align:center;transition:all 0.35s ease;cursor:default}
.service-card:hover{border-color:var(--accent);transform:translateY(-6px);box-shadow:0 0 30px rgba(var(--accent-rgb),0.2)}
.service-card__img{width:100%;height:200px;object-fit:cover;display:block;transition:transform 0.8s ease}
.service-card:hover .service-card__img{transform:scale(1.08)}
.service-card__title{font-size:18px;margin:20px 0 4px;font-weight:600;color:var(--accent)}
.service-card__desc{color:var(--text2);font-size:14px;margin-bottom:20px}

.about{padding:100px 0;background:var(--accent);color:#000}
.about__inner{max-width:var(--w);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:60px}
.about__images{display:flex;gap:20px;flex:1}
.about__img{width:50%;aspect-ratio:1;object-fit:cover;border-radius:20px;transition:transform 1.1s ease}
.about__img:hover{transform:scale(1.02)}
.about__content{flex:1}
.about__title{font-size:34px;font-weight:700;margin-bottom:18px;color:#000}
.about__desc{font-size:18px;margin-bottom:30px;color:rgba(0,0,0,0.7)}
.about .btn--outline{border-color:#000;color:#000}
.about .btn--outline:hover{background:#000;color:var(--accent)}

.reviews{padding:100px 0;background:var(--bg2)}
.reviews__inner{max-width:var(--w);margin:0 auto;padding:0 24px}
.reviews__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.review-card{background:var(--bg3);border-radius:var(--r);padding:35px;border:1px solid var(--border);transition:all var(--tr);display:flex;flex-direction:column}
.review-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 0 25px rgba(var(--accent-rgb),0.15)}
.review-card__stars{color:var(--accent);font-size:20px;margin-bottom:18px;letter-spacing:3px}
.review-card p{font-size:15px;margin-bottom:24px;line-height:1.7;color:var(--text2);flex:1}
.review-card__author{display:flex;align-items:center;gap:14px}
.review-card__avatar{width:42px;height:42px;border-radius:50%;background:var(--accent);color:#000;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px}
.review-card strong{font-size:16px;color:var(--accent)}

.news{padding:100px 0;background:var(--bg)}
.news__inner{max-width:var(--w);margin:0 auto;padding:0 24px}
.news__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.news-card{background:var(--bg3);border-radius:var(--r);overflow:hidden;transition:all var(--tr);display:flex;flex-direction:column;border:1px solid var(--border)}
.news-card:hover{transform:translateY(-6px);box-shadow:0 0 30px rgba(var(--accent-rgb),0.2);border-color:var(--accent)}
.news-card__img{width:100%;height:200px;object-fit:cover;display:block}
.news-card__body{padding:24px;flex:1;display:flex;flex-direction:column}
.news-card__title{font-size:20px;margin-bottom:10px;font-weight:600;color:var(--accent)}
.news-card__desc{font-size:14px;color:var(--text2);margin-bottom:16px;flex:1;line-height:1.6}
.news-card__date{font-size:13px;color:var(--accent);font-weight:700;margin-top:auto}

.faq{padding:100px 0;background:var(--bg2)}
.faq__inner{max-width:780px;margin:0 auto;padding:0 24px}
.faq__list{display:flex;flex-direction:column;gap:8px}
.faq__item{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all var(--tr);background:var(--bg3)}
.faq__item:hover{border-color:var(--accent)}
.faq__item summary{padding:18px 50px 18px 24px;cursor:pointer;font-weight:600;position:relative;list-style:none;user-select:none;font-size:16px;color:var(--accent)}
.faq__item summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--accent);font-weight:300;transition:all var(--tr)}
.faq__item[open] summary{background:var(--accent);color:#000}
.faq__item[open] summary::after{content:'−';color:#000;transform:translateY(-50%) rotate(180deg)}
.faq__answer{padding:24px;color:var(--text2);line-height:1.7;font-size:15px}
.faq__answer p{margin:0}

.contacts{padding:100px 0;text-align:center;background:var(--accent);color:#000}
.contacts__inner{max-width:550px;margin:0 auto;padding:0 24px}
.contacts .section-title{color:#000}
.contacts .section-title::after{background:#000}
.contacts__phones{display:flex;flex-direction:column;gap:14px;margin:35px 0}
.contacts__phone{font-size:26px;font-weight:700;color:#000;transition:all var(--tr)}
.contacts__phone:hover{color:#000;opacity:0.7;transform:translateY(-2px)}
.contacts__hours{color:rgba(0,0,0,0.7);margin-bottom:18px;font-size:15px}
.contacts__email{color:rgba(0,0,0,0.7);font-size:15px}

.footer{background:var(--bg);padding:40px 0;text-align:center;border-top:2px solid var(--accent)}
.footer__inner{max-width:var(--w);margin:0 auto;padding:0 24px}
.footer__brand{font-size:22px;font-weight:700;margin-bottom:8px;color:var(--accent)}
.footer__text{color:var(--text2);font-size:14px;margin-bottom:12px}
.footer__copy{color:var(--text2);font-size:12px;opacity:0.5}

.scroll-top{position:fixed;bottom:30px;right:30px;width:46px;height:46px;border-radius:50%;background:var(--accent);color:#000;border:none;font-size:20px;cursor:pointer;z-index:999;opacity:0;visibility:hidden;transition:all var(--tr);font-weight:700;box-shadow:0 0 20px rgba(var(--accent-rgb),0.4)}
.scroll-top.show{opacity:1;visibility:visible}
.scroll-top:hover{background:var(--accent2);transform:translateY(-3px);box-shadow:0 0 30px rgba(var(--accent-rgb),0.6)}

.popup{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity 0.2s ease}
.popup.show{opacity:1;pointer-events:auto}
.popup__bubble{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--accent);color:#000;padding:24px 28px;border-radius:16px;min-width:320px;max-width:360px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,0.5);animation:bubbleIn 0.3s ease}
.popup__close{position:absolute;top:8px;right:12px;background:none;border:none;color:#000;font-size:24px;cursor:pointer;line-height:1;opacity:0.6;transition:opacity var(--tr);font-weight:700}
.popup__close:hover{opacity:1}
.popup__text{font-size:17px;margin-bottom:16px;font-weight:700;line-height:1.3}
.popup__form{display:flex;flex-direction:column;gap:12px}
.popup__input{width:100%;padding:12px 16px;border:2px solid rgba(0,0,0,0.2);border-radius:10px;font-size:15px;font-family:var(--font);background:rgba(0,0,0,0.08);color:#000;outline:none;transition:border var(--tr)}
.popup__input::placeholder{color:rgba(0,0,0,0.5)}
.popup__input:focus{border-color:#000}
.popup__textarea{resize:vertical;min-height:80px}
.popup__submit{width:100%;padding:14px;background:#000;color:var(--accent);border:none;border-radius:var(--r2);font-size:16px;font-weight:700;cursor:pointer;transition:all var(--tr)}
.popup__submit:hover{background:rgba(0,0,0,0.85)}
.popup__submit:disabled{opacity:0.6;cursor:not-allowed}
.popup__success{display:none;font-size:15px;font-weight:500;line-height:1.5;color:#000;text-align:center;padding:10px 0}
.popup__success.show{display:block}

@keyframes bubbleIn{
    from{opacity:0;transform:translate(-50%,-50%) scale(0.95)}
    to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}

@media(max-width:1024px){
    .services__grid{grid-template-columns:repeat(3,1fr)}
    .services__grid .service-card:last-child{display:none}
}
@media(max-width:991px){
    .burger{display:flex}
    .nav{position:fixed;top:0;right:-300px;width:300px;height:100vh;background:var(--bg3);padding:80px 30px;transition:right 0.3s ease;z-index:999;border-left:2px solid var(--accent)}
    .nav.open{right:0}
    .nav__list{flex-direction:column;gap:28px}
    .nav__link{color:var(--text)!important;font-size:18px;font-weight:500}
    .hero__slide-row{flex-direction:column;gap:40px}
    .hero__image{min-height:320px}
    .hero__image img{height:320px}
    .hero__title{font-size:32px}
    .hero{text-align:center}
    .hero__content{display:flex;flex-direction:column;align-items:center}
    .about__inner{flex-direction:column-reverse;text-align:center;gap:40px}
    .about__images{width:100%}
    .reviews__grid{grid-template-columns:1fr}
    .news__grid{grid-template-columns:1fr}
    .services__grid{grid-template-columns:repeat(2,1fr)}
    .services__grid .service-card:last-child{display:block}
    .contacts__phone{font-size:22px}
}
@media(max-width:600px){
    .section-title{font-size:28px;margin-bottom:40px}
    .hero{padding:120px 0 50px}
    .hero__title{font-size:26px}
    .hero__image{min-height:240px}
    .hero__image img{height:240px}
    .about__images{flex-direction:column}
    .about__img{width:100%}
    .services__header{flex-direction:column;text-align:center}
    .services__grid{grid-template-columns:1fr 1fr;gap:12px}
    .services__grid .service-card:nth-child(5){display:none}
    .service-card__img{height:150px}
    .service-card__title{font-size:15px}
    .service-card__desc{font-size:12px}
    .reviews__grid{grid-template-columns:1fr}
    .news__grid{grid-template-columns:1fr}
    .footer__brand{font-size:18px}
    .theme-switcher__dropdown{right:-40px}
    .popup__bubble{min-width:280px;max-width:300px}
}