:root{
  --accent:#24c7bf;
  --accent-dark:#11b1aa;
  --text:#252629;
  --muted:#6d6f73;
  --bg:#eef0f1;
  --card:#ffffff;
  --line:#dde1e4;
  --shadow:0 18px 40px rgba(27, 34, 40, .08);
  --radius:18px;
  --container:min(1240px, calc(100vw - 48px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.is-locked{
  overflow:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.container{width:var(--container);margin:0 auto}

/* TOPBAR */
.topbar{
  position:sticky;
  top:0;
  z-index:100;
  width:100%;
  background:#f3f5f6cc;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid #e2e5e7;
}

.topbar__inner{
  width:100%;
  min-height:64px;
  padding:0 34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.nav{
  display:flex;
  gap:28px;
  align-items:center;
  font-size:15px;
  font-weight:500;
}

.nav > a,.nav-item > a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 0;
  transition:color .2s ease, transform .2s ease;
}

.nav > a:hover,.nav-item:hover > a{color:var(--accent-dark);transform:translateY(-1px)}
.nav-item{position:relative}

.nav-item > a::after{
  content:"⌄";
  font-size:12px;
  line-height:1;
  opacity:.55;
  transform:translateY(-1px);
  transition:transform .2s ease, opacity .2s ease;
}

.nav-item:hover > a::after{transform:translateY(1px) rotate(180deg);opacity:1}

.dropdown{
  position:absolute;
  left:0;
  top:calc(100% + 10px);
  min-width:230px;
  background:#fff;
  border:1px solid #e7eaed;
  border-radius:14px;
  box-shadow:0 24px 50px rgba(22,30,37,.12);
  padding:10px;
  display:grid;
  gap:4px;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
  z-index:30;
}

.dropdown a{
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
  color:#3b3f45;
  transition:background .18s ease,color .18s ease, transform .18s ease;
}

.dropdown a:hover{background:#f1f7f7;color:var(--accent-dark);transform:translateX(4px)}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}

.small-info{
  display:flex;
  align-items:center;
  gap:24px;
  color:#666;
  font-size:13px;
  margin-left:auto;
  padding-right:10px;
}

.small-info__address,
.small-info__phone{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}

.small-info__address span,
.small-info__phone span{
  font-size:13px;
  color:#666;
}

.small-info__address b,
.small-info__phone b{
  font-size:18px;
  font-weight:800;
  color:#1c1d20;
  line-height:1.2;
}

.phone{
  font-size:18px;
  font-weight:800;
  color:#1c1d20;
  white-space:nowrap;
}

.burger{
  width:42px;
  height:42px;
  border:1px solid #8aa4d5;
  border-radius:10px;
  background:#fff;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.burger:hover{
  transform:translateY(-1px);
  background:#5e87dd;
  border-color:#5e87dd;
  box-shadow:0 10px 24px rgba(94,135,221,.24);
}

.burger span,.burger span::before,.burger span::after{
  display:block;
  width:18px;
  height:2px;
  background:#2b3958;
  border-radius:999px;
  content:"";
  position:relative;
  transition:background .2s ease;
}

.burger:hover span,
.burger:hover span::before,
.burger:hover span::after{
  background:#fff;
}

.burger span::before{position:absolute;top:-6px;left:0}
.burger span::after{position:absolute;top:6px;left:0}

/* MOBILE TOPBAR / HEADER */
.mobile-topbar,
.mobile-header,
.mobile-menu-overlay,
.mobile-menu-drawer,
.mobile-catalog-drawer{
  display:none;
}

/* HEADER */
.header{
  width:100%;
  background:#fff;
  border-bottom:1px solid #eceff1;
}

.header__inner{
  width:100%;
  min-height:64px;
  padding:0 34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.brand{
  display:flex;
  align-items:center;
  gap:18px;
}

.logo-box{
  width:250px;
  height:auto;
  object-fit:contain;
  display:block;
  flex:0 0 auto;
}

.brand__text b{
  display:block;
  font-size:20px;
}

.brand__text span{
  display:block;
  color:#7b7f83;
  font-size:13px;
}

.header-cats{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
}

.pill{
  background:#f2f3f5;
  border:1px solid #e4e6e9;
  border-radius:8px;
  padding:11px 16px;
  font-weight:700;
  font-size:14px;
  transition:transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.pill:hover{
  transform:translateY(-2px);
  background:#f6fbfb;
  border-color:#cfe6e4;
  box-shadow:0 10px 20px rgba(27,34,40,.06);
}

/* CONTACTS DRAWER */
.contacts-overlay{
  position:fixed;
  inset:0;
  background:rgba(17,22,29,.42);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
  z-index:180;
}

.contacts-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}

.contacts-drawer{
  position:fixed;
  top:0;
  right:0;
  width:min(560px, 100vw);
  height:100dvh;
  background:#f6f6f7;
  box-shadow:-24px 0 60px rgba(18,24,31,.16);
  transform:translateX(100%);
  transition:transform .32s ease;
  z-index:190;
  overflow:auto;
}

.contacts-drawer.is-open{
  transform:translateX(0);
}

/* MOBILE MENU DRAWER */
.mobile-menu-overlay{
  position:fixed;
  inset:0;
  background:rgba(17,22,29,.18);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
  z-index:181;
}

.mobile-menu-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}

.mobile-menu-drawer{
  position:fixed;
  inset:0;
  background:#f6f6f7;
  transform:translateX(100%);
  transition:transform .32s ease;
  z-index:191;
  overflow:auto;
}

.mobile-menu-drawer.is-open{
  transform:translateX(0);
}

.mobile-catalog-drawer{
  position:fixed;
  inset:0;
  background:#f6f6f7;
  transform:translateX(-100%);
  transition:transform .32s ease;
  z-index:191;
  overflow:auto;
}

.mobile-catalog-drawer.is-open{
  transform:translateX(0);
}

.mobile-menu-drawer__catalog--only{
  border-bottom:none;
  margin-bottom:0;
  padding-bottom:0;
}

.mobile-menu-drawer__close{
  position:absolute;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border:none;
  background:transparent;
  color:#6b6b6b;
  font-size:34px;
  line-height:1;
  cursor:pointer;
}

.mobile-menu-drawer__inner{
  padding:92px 30px 40px;
}

.mobile-menu-drawer__catalog{
  display:grid;
  gap:30px;
  padding-bottom:30px;
  margin-bottom:26px;
  border-bottom:1px solid #dddddd;
}

.mobile-menu-drawer__catalog a{
  font-size:28px;
  font-weight:700;
  color:#2a2b2f;
}

.mobile-menu-drawer__nav{
  display:grid;
  gap:18px;
}

.mobile-menu-drawer__nav > a,
.mobile-menu-drawer__nav summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:74px;
  font-size:28px;
  font-weight:700;
  color:#2a2b2f;
  cursor:pointer;
  list-style:none;
}

.mobile-menu-drawer__nav summary::-webkit-details-marker{
  display:none;
}

.mobile-menu-drawer__nav details{
  border:none;
}

.mobile-menu-drawer__nav details summary::after{
  content:"⌄";
  font-size:22px;
  transition:transform .2s ease;
}

.mobile-menu-drawer__nav details[open] summary::after{
  transform:rotate(180deg);
}

.mobile-submenu{
  display:grid;
  gap:14px;
  padding:0 0 12px 0;
}

.mobile-submenu a{
  font-size:20px;
  color:#5a5d63;
}

.contacts-drawer__close{
  position:absolute;
  top:18px;
  right:18px;
  width:44px;
  height:44px;
  border:none;
  border-radius:12px;
  background:#e9edf7;
  color:#2d3350;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.contacts-drawer__inner{
  padding:64px 36px 40px;
}

.contacts-drawer h2{
  margin:0 0 20px;
  font-size:42px;
  line-height:1;
  font-weight:900;
  color:#1f2023;
}

.contacts-block{
  margin-top:28px;
}

.contacts-label{
  font-size:20px;
  color:#74777d;
  margin-bottom:8px;
}

.contacts-phone{
  display:inline-block;
  font-size:30px;
  font-weight:900;
  color:#1d1f23;
}

.contacts-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:106px;
  margin-top:30px;
  border-radius:18px;
  background:#5e87dd;
  color:#fff;
  font-size:32px;
  font-weight:700;
  box-shadow:0 18px 34px rgba(94,135,221,.22);
  transition:transform .22s ease, background .22s ease;
}

.contacts-btn:hover{
  transform:translateY(-2px);
  background:#4f79d1;
}

.contacts-block p{
  margin:0 0 8px;
  font-size:28px;
  line-height:1.35;
  color:#2a2b2f;
}

.contacts-mail{
  display:inline-block;
  font-size:26px;
  color:#1ab8b1;
  text-decoration:underline;
  text-underline-offset:10px;
}

.contacts-block h3{
  margin:0 0 18px;
  font-size:28px;
  font-weight:900;
  color:#1f2023;
}

.payments{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.pay-card{
  width:96px;
  height:68px;
  border:2px solid #d8d8d8;
  border-radius:10px;
  background:#f7f7f7;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  font-weight:900;
  color:#111;
}

.pay-card--mir{
  color:#49b35c;
  font-size:20px;
}

.pay-card--sbp{
  color:#42b05d;
  font-size:32px;
}

.pay-card--alpha{
  color:#da2f23;
  font-size:30px;
}

/* BUTTONS / COMMON */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 28px;
  border:none;
  border-radius:10px;
  background:var(--accent);
  color:#fff;
  font-weight:800;
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:transform .22s ease, background .22s ease, box-shadow .22s ease, letter-spacing .22s ease;
  position:relative;
  overflow:hidden;
}

.btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.12) 40%, rgba(255,255,255,.35) 50%, transparent 62%);
  transform:translateX(-120%);
  transition:transform .5s ease;
}

.btn:hover{
  transform:translateY(-3px) scale(1.01);
  background:var(--accent-dark);
  box-shadow:0 22px 45px rgba(17,177,170,.24);
  letter-spacing:.01em;
}

.btn:hover::before{transform:translateX(120%)}
.btn:active{transform:translateY(-1px) scale(.995)}

.eyebrow,.reviews-link a,.blog-link a,.map-link a,.catalog-card,.profile-card,.review-card,.blog-card{
  transition:transform .22s ease, color .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.eyebrow:hover,.reviews-link a:hover,.blog-link a:hover,.map-link a:hover{
  color:var(--accent-dark);
  transform:translateY(-1px);
}

/* FOOTER */
.footer{
  background:#f2f4f5;
  border-top:1px solid #e1e5e8;
  padding:54px 0 26px;
}

.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
.footer h3{margin:0 0 18px;font-size:18px}
.footer p,.footer a{margin:0 0 8px;color:#666a70;font-size:16px}
.footer .phone{font-size:28px}

.pay-row{
  display:flex;
  gap:12px;
  margin-top:18px;
  flex-wrap:wrap;
}

.pay{
  width:38px;
  height:24px;
  border:1px solid #d9dfe3;
  border-radius:5px;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:800;
  color:#6b7076;
}

.copyright{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:24px;
  margin-top:28px;
  border-top:1px solid #dde2e5;
  color:#959aa0;
  font-size:14px;
}

.float-up{
  position:fixed;
  right:24px;
  bottom:24px;
  width:42px;
  height:42px;
  border:none;
  border-radius:10px;
  background:#fff;
  box-shadow:var(--shadow);
  cursor:pointer;
  font-size:20px;
}

/* RESPONSIVE */
@media (max-width: 1180px){
  .topbar__inner,
  .header__inner{
    flex-wrap:wrap;
    padding:10px 24px;
    min-height:auto;
  }

  .small-info{
    width:100%;
    justify-content:space-between;
    padding-right:0;
    gap:20px;
  }

  .header-cats{justify-content:flex-start}
  .footer-grid{grid-template-columns:1fr}
}




@media (max-width: 760px){
  :root{--container:min(100vw - 28px, 1000px)}

  .nav,
  .header-cats,
  .small-info,
  .brand{
    display:none;
  }

  .topbar__inner,
  .header__inner{
    min-height:auto;
    padding:0;
  }

  .topbar{
    background:#f3f5f6;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  .mobile-topbar{
    display:grid;
    grid-template-columns:56px 1fr 56px;
    align-items:center;
    gap:16px;
    width:100%;
    padding:14px 18px;
  }

  .mobile-topbar__center{
    text-align:center;
  }

  .mobile-topbar__center span{
    display:block;
    font-size:16px;
    color:#6e7176;
    line-height:1.15;
    margin-bottom:6px;
  }

  .mobile-topbar__center b{
    display:block;
    font-size:24px;
    line-height:1.1;
    font-weight:900;
    color:#2b2c30;
  }

  .mobile-menu-btn{
    width:56px;
    height:56px;
    border:1px solid #d7dde3;
    border-radius:14px;
    background:#fff;
    display:grid;
    place-items:center;
    padding:0;
    box-shadow:0 8px 20px rgba(27,34,40,.06);
  }

  .mobile-menu-btn--fill{
    background:linear-gradient(180deg,#29d0c8 0%, #18beb6 100%);
    border-color:#18beb6;
    box-shadow:0 8px 20px rgba(24,190,182,.18);
  }

  .mobile-menu-btn span,
  .mobile-menu-btn span::before,
  .mobile-menu-btn span::after{
    display:block;
    width:22px;
    height:3px;
    border-radius:999px;
    content:"";
    position:relative;
    background:#45474d;
  }

  .mobile-menu-btn--fill span,
  .mobile-menu-btn--fill span::before,
  .mobile-menu-btn--fill span::after{
    background:#fff;
  }

  .mobile-menu-btn span::before{
    position:absolute;
    top:-8px;
    left:0;
  }

  .mobile-menu-btn span::after{
    position:absolute;
    top:8px;
    left:0;
  }

  .header{
    border-bottom:none;
  }

  .mobile-header{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    width:100%;
    padding:42px 20px 48px;
    background:#fff;
  }

  .mobile-header__logo{
    width:220px;
    max-width:70%;
    height:auto;
    margin-bottom:26px;
  }

  .mobile-header__phone{
    display:block;
    font-size:48px;
    line-height:1;
    font-weight:900;
    color:#2a2b2f;
    margin-bottom:14px;
  }

  .mobile-header__text{
    margin:0;
    max-width:760px;
    font-size:24px;
    line-height:1.2;
    color:#707277;
  }

  .mobile-header__call{
    margin-top:22px;
    font-size:28px;
    font-weight:900;
    color:#24c7bf;
    border-bottom:2px dashed #24c7bf;
    padding-bottom:4px;
  }

  .contacts-drawer{
    width:100vw;
  }

  .contacts-drawer__inner{
    padding:64px 22px 30px;
  }

  .contacts-drawer h2{
    font-size:30px;
  }

  .contacts-phone,
  .contacts-block p,
  .contacts-mail{
    font-size:20px;
  }

  .contacts-btn{
    min-height:78px;
    font-size:22px;
  }

  .mobile-menu-overlay,
  .mobile-menu-drawer,
  .mobile-catalog-drawer{
    display:block;
  }

  .footer .phone{
    font-size:32px;
  }
}
