:root{
  --pagebg:#070707;
  --text:#e9e9e9;
  --green:#1aa06a;
  --green2:#178a5c;
  --container:1180px;
}

/* TTNorms Medium (локально) */
@font-face{
  font-family:"TTNorms";
  src:
    url("/assets/fonts/TTNorms-Medium.woff2") format("woff2"),
    url("/assets/fonts/TTNorms-Medium.woff") format("woff");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Open Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:radial-gradient(1200px 600px at 50% 0%, #101010 0%, var(--pagebg) 50%, #050505 100%);
}
a{color:inherit; text-decoration:none}
.container{max-width:var(--container); margin:0 auto; padding:0 18px}

.h1, .h2, .cardBig__title, .modal__title{
  font-family:"TTNorms","Open Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-weight:500;
}

.header{
  position:sticky; top:0; z-index:50;
  background:linear-gradient(180deg, rgba(0,0,0,.92), rgba(0,0,0,.65));
  backdrop-filter: blur(8px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header__row{display:flex; align-items:center; gap:18px; padding:14px 0;}
.brand{display:flex; flex-direction:column; gap:8px; min-width:220px}
.brand__logo{width:120px; height:auto; display:block; filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}
.brand__addr{font-size:12px; color:rgba(255,255,255,.75)}
.nav{display:flex; gap:26px; align-items:center; margin-left:auto;}
.nav__link{font-size:13px; color:rgba(255,255,255,.82); transition:.2s ease;}
.nav__link:hover{color:#fff}
.header__cta{display:flex; align-items:center; gap:14px}
.phone{display:flex; align-items:center; gap:10px; font-size:13px; color:rgba(255,255,255,.9)}
.btn{
  border:0; cursor:pointer;
  font:600 12px/1 "Open Sans", sans-serif;
  padding:12px 18px;
  border-radius:999px;
  transition:.2s ease;
  display:inline-flex; align-items:center; justify-content:center;
}
.btn--green{background:linear-gradient(180deg, var(--green), var(--green2)); color:#fff; box-shadow:0 10px 26px rgba(26,160,106,.18);}
.btn--green:hover{transform:translateY(-1px)}
.btn--white{background:#fff; color:#222; padding:12px 22px;}
.btn--pill{padding:10px 20px; font-weight:700}
.btn--wide{width:100%}

.burger{
  display:none;
  width:42px; height:42px;
  background:transparent; border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  align-items:center; justify-content:center;
}
.burger span{display:block; width:18px; height:2px; background:rgba(255,255,255,.9); margin:3px 0; border-radius:2px;}
.mobile{display:none; border-top:1px solid rgba(255,255,255,.06); padding:14px 18px 18px;}
.mobile__link{display:block; padding:10px 0; color:rgba(255,255,255,.86);}
.mobile__btn{margin-top:10px; width:100%}

.hero{padding:44px 0 18px}
.h1{font-size:44px; text-align:center; margin:26px 0 10px;}
.subh1{text-align:center; color:rgba(255,255,255,.82); margin:0 0 22px; font-size:16px;}
.hero__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:22px; align-items:stretch; margin-top:18px;}
.hero__img{
  min-height:240px;
  border-radius:10px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(0,0,0,.0), rgba(0,0,0,.25)),
    url("/assets/img/hero.jpg") center/cover no-repeat;
  border:1px solid rgba(255,255,255,.06);
}
.hero__text{
  background:rgba(10,10,10,.6);
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  padding:18px 18px 16px;
  color:rgba(255,255,255,.88);
  font-size:13px;
  line-height:1.55;
}
.hero__text p{margin:0 0 12px}
.hero__text p:last-child{margin:0}

.section{padding:32px 0}
.h2{text-align:center; font-size:28px; margin:8px 0 18px;}
.h2--green{color:var(--green)}
.lead{text-align:center; font-size:18px; font-weight:600; color:#fff; margin:-6px 0 18px;}

.cards2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.cardBig{
  position:relative; min-height:500px; border-radius:10px; overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  background-image:var(--bgimg);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.cardBig__shade{position:absolute; inset:0; background:rgba(0,0,0,.3);}
.cardBig__content{position:absolute; left:18px; right:18px; inset:0;
  padding:32px; display:flex; flex-direction:column; gap:10px;}
.cardBig__title{font-size:34px; color:#fff;}
.cardBig__text{font-size:16px; color:rgba(255,255,255,.9); line-height:1.45; max-width:520px;}
.cardBig .btn{align-self:flex-start}

/* Slider */
.slider{
  position:relative;
  border-radius:10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  background:#0b0b0b;
  min-height:260px;
}
.slider__viewport{width:100%; height:100%;}
.slider__img{width:100%; height:260px; object-fit:cover; display:block;}
.slider__btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.35);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  line-height:1;
  backdrop-filter: blur(6px);
}
.slider__btn--prev{ left:10px; }
.slider__btn--next{ right:10px; }
.slider__dots{
  position:absolute;
  left:0; right:0; bottom:10px;
  display:flex;
  gap:6px;
  justify-content:center;
}
.slider__dot{
  width:8px; height:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
  cursor:pointer;
}
.slider__dot.is-active{ background:rgba(255,255,255,.85); }

.wood{display:grid; grid-template-columns:0.92fr 1.08fr; gap:22px; align-items:start; margin-top:10px;}
.wood__text{
  border-radius:10px; border:1px solid rgba(255,255,255,.06); background:rgba(10,10,10,.55);
  padding:16px 16px 14px; font-size:13px; line-height:1.55; color:rgba(255,255,255,.88);
}
.wood__note{margin:10px 0 10px; font-size:12px; color:rgba(255,255,255,.72);}
.list{margin:10px 0 0 18px; padding:0}
.list li{margin:6px 0}

.grid3{display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;}
.svc{text-align:center; padding:10px 10px 16px;}
.svc__img{
  height:160px;
  border-radius:8px;
  background-image:var(--bgimg);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  margin:0 auto 12px;
  border:1px solid rgba(255,255,255,.06);
}
.svc__title{font-size:13px; font-weight:600; margin:0 0 10px;}
.svc__price{display:inline-block; padding:8px 14px; border-radius:999px; background:linear-gradient(180deg, var(--green), var(--green2)); font-size:12px; color:#fff; box-shadow:0 10px 26px rgba(26,160,106,.16);}
.svc__hint{margin-top:10px; font-size:11px; color:rgba(255,255,255,.6);}

.promo__card{margin:12px auto 0; max-width:420px; text-align:center; padding:10px 14px 14px;}
.promo__icon{width:72px; height:72px; margin:0 auto 10px; border-radius:10px; display:flex; align-items:center; justify-content:center; border:2px solid rgba(26,160,106,.35); color:var(--green); font-size:28px;}
.promo__text{font-size:13px; color:#fff}
.promo__sub{margin-top:10px; font-size:12px; color:rgba(255,255,255,.65)}

.mapWrap{border-radius:10px; overflow:hidden; border:1px solid rgba(255,255,255,.06); background:#111;}
.mapWrap iframe{width:100%; height:120px; border:0; display:block;}

.footer{padding:18px 0; border-top:1px solid rgba(255,255,255,.06);}
.footer__note{text-align:center; font-size:13px; color:rgba(255,255,255,.86); line-height:1.55; margin:0 0 10px;}
.footer__row{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 0;}
.footerNav{display:flex; gap:22px; flex-wrap:wrap; justify-content:center}
.footerNav__link{font-size:12px; color:rgba(255,255,255,.78)}
.footerNav__link:hover{color:#fff}
.footer__cta{display:flex; align-items:center; gap:14px}
.footer__fineprint{padding-top:12px; font-size:10.5px; color:rgba(255,255,255,.55); line-height:1.45;}
.footer__fineprint div{margin-top:6px}

.modal{position:fixed; inset:0; z-index:100; display:none;}
.modal.is-open{display:block}
.modal__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.65);}
.modal__card{
  position:relative; width:min(520px, calc(100% - 28px)); margin:70px auto 0;
  border-radius:14px; background:linear-gradient(180deg, #101010, #0a0a0a);
  border:1px solid rgba(255,255,255,.10); padding:18px 18px 16px; box-shadow:0 18px 60px rgba(0,0,0,.5);
}
.modal__x{position:absolute; right:10px; top:10px; width:34px; height:34px; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:transparent; color:#fff; cursor:pointer;}
.form{display:flex; flex-direction:column; gap:12px}
.field span{display:block; font-size:12px; color:rgba(255,255,255,.75); margin:0 0 6px}
.field input{width:100%; padding:12px 12px; border-radius:12px; border:1px solid rgba(255,255,255,.12); background:#0b0b0b; color:#fff; outline:none;}
.field input:focus{border-color:rgba(26,160,106,.55)}
.form__hint{font-size:11px; color:rgba(255,255,255,.6); line-height:1.4; margin-top:4px;}

@media (max-width: 980px){
  .brand{min-width:auto}
  .nav{display:none}
  .burger{display:inline-flex; margin-left:auto}
  .header__cta{display:none}
  .mobile.is-open{display:block}
  .hero__grid{grid-template-columns:1fr;}
  .cards2{grid-template-columns:1fr}
  .wood{grid-template-columns:1fr}
  .mapWrap iframe{height:140px}
  .footer__row{flex-direction:column}
}

h2,h3,.h2{font-size:48px;line-height:1.2;}

.cardBig__content .btn{margin-top:auto;align-self:flex-start;}


/* Promo block (banya days) */
.promoBlock{padding:40px 0 20px;}
.promoBlock__grid{display:grid; grid-template-columns: 520px 1fr; gap:46px; align-items:center;}
.promoBlock__left{display:grid; gap:18px;}
.promoCard{
  position:relative;
  min-height:150px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  background-image:var(--bgimg);
  background-size:cover;
  background-position:center;
}
.promoCard__overlay{position:absolute; inset:0; background:rgba(0,0,0,.45);}
.promoCard__content{position:absolute; inset:0; padding:18px 20px; display:flex; flex-direction:column; justify-content:flex-start; gap:6px;}
.promoCard__content--right{align-items:flex-end; text-align:right;}
.promoCard__day{
  font-family:"TTNorms","Open Sans",sans-serif;
  font-size:22px;
  line-height:1.1;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.promoCard__who{font-weight:700; font-size:16px; color:rgba(255,255,255,.92);}
.promoCard__text{font-size:14px; line-height:1.35; color:rgba(255,255,255,.86); max-width:420px; margin-top:10px;}
.promoBlock__title{margin:0 0 16px; font-size:40px; line-height:1.15;}
.promoBlock__desc{font-size:16px; line-height:1.6; color:rgba(255,255,255,.78); max-width:520px;}
.promoBlock__phone{text-decoration:underline; color:rgba(255,255,255,.92);}
.promoBlock__btn{margin-top:22px; padding:14px 34px; font-size:14px;}

@media (max-width: 980px){
  .promoBlock__grid{grid-template-columns:1fr; gap:22px;}
  .promoBlock__title{font-size:34px;}
  .promoCard{min-height:140px;}
}
@media (max-width: 560px){
  .promoBlock__title{font-size:28px;}
  .promoCard__day{font-size:18px;}
  .promoCard__text{font-size:13px;}
}


/* Success state inside modal */
.formSuccess{
  text-align:center;
  padding:20px 10px;
}
.formSuccess__icon{
  width:64px;
  height:64px;
  margin:0 auto 14px;
  border-radius:50%;
  background:rgba(26,160,106,.15);
  color:#1aa06a;
  font-size:34px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.formSuccess__title{
  font-family:"TTNorms","Open Sans",sans-serif;
  font-weight:500;
  font-size:22px;
  margin-bottom:8px;
}
.formSuccess__text{
  font-size:14px;
  color:rgba(255,255,255,.7);
  margin-bottom:18px;
  line-height:1.5;
}

/* Adaptive typography */
@media (max-width: 980px){
  h2, h3, .h2{font-size:34px; line-height:1.15;}
  .h1{font-size:34px;}
  .cardBig__title{font-size:28px; line-height:1.15;}
  .cardBig__content{padding:22px;}
  .cardBig{min-height:420px;}
}

@media (max-width: 560px){
  h2, h3, .h2{font-size:28px; line-height:1.15;}
  .h1{font-size:30px;}
  .cardBig__title{font-size:24px;}
  .cardBig__text{font-size:15px; line-height:1.55;}
  .cardBig__content{padding:18px;}
  .cardBig{min-height:380px;}
}


.wood__prices{margin-top:10px;font-size:15px;color:rgba(255,255,255,.86);line-height:1.55;}

.wood__sub{display:inline-block;margin-top:6px;color:rgba(255,255,255,.86);font-size:15px;line-height:1.55;}
