:root{--wrap:1080px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.35;color:#111;background:#fff}
a,a:visited{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:16px}

.top{border-bottom:1px solid #eee;background:#fff;position:sticky;top:0;z-index:10}
.topbar{display:flex;gap:14px;align-items:center;justify-content:space-between}
.brand{font-weight:800;text-decoration:none;white-space:nowrap}
.nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.nav a{padding:8px 10px;border-radius:10px}
.nav a:hover{background:#f2f2f2}
.top-right{display:flex;gap:10px;align-items:center}
.hours{font-size:13px;color:#555;white-space:nowrap}

.hero{background:#f7f7f7;border-bottom:1px solid #eee}
.lead{font-size:16px;color:#333;margin:0 0 12px 0}
.cta{display:flex;gap:10px;flex-wrap:wrap}

.btn{display:inline-block;padding:10px 14px;border-radius:10px;border:1px solid #ddd;text-decoration:none;color:#111;background:#fff}
.btn.primary{background:#111;color:#fff;border-color:#111}
.btn.small{padding:8px 10px;border-radius:10px;font-size:14px}

.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.card{display:block;border:1px solid #eee;border-radius:14px;padding:14px;text-decoration:none;color:#111;background:#fff}
.card-title{font-weight:700;margin-bottom:6px}
.muted{color:#666;font-size:14px}

.foot{border-top:1px solid #eee;background:#fff;margin-top:18px}

h1{margin:10px 0 0 0;font-size:28px}
h2{margin:18px 0 10px 0;font-size:20px}

@media(max-width:980px){
  .top-right{display:none}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .grid{grid-template-columns:1fr}
  h1{font-size:24px}
}
/* dropdown (hero "Написать") */
.dd{position:relative;display:inline-block}
.dd-menu{
  position:absolute;top:44px;left:0;
  min-width:190px;
  background:#fff;
  border:1px solid #eee;
  border-radius:12px;
  box-shadow:0 10px 28px rgba(0,0,0,.10);
  padding:6px;
  display:none;
  z-index:30;
}
.dd.open .dd-menu{display:block}
.dd-item{display:block;padding:10px 10px;border-radius:10px}
.dd-item:hover{background:#f2f2f2}
/* price list */
.plist{display:grid;gap:10px}
.pitem{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid #eee;border-radius:14px;padding:12px 14px;background:#fff}
.pname{font-weight:700}
.pprice{font-weight:800;white-space:nowrap}
.pgo{font-size:14px;color:#555;text-decoration:none;padding:8px 10px;border-radius:10px;border:1px solid #eee}
.pgo:hover{background:#f2f2f2}
@media(max-width:700px){
  .pitem{grid-template-columns:1fr;gap:8px}
  .pgo{width:max-content}
}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.step{display:flex;gap:12px;align-items:flex-start;border:1px solid #eee;border-radius:14px;padding:12px 14px;background:#fff}
.badge{width:34px;height:34px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#111;color:#fff;font-weight:800;flex:0 0 34px}
.step-title{font-weight:800;margin-bottom:4px}
@media(max-width:900px){.steps{grid-template-columns:1fr}}
/* FAQ */
.faq{display:grid;gap:10px}
.faq-item{border:1px solid #eee;border-radius:14px;padding:10px 12px;background:#fff}
.faq-q{cursor:pointer;font-weight:800}
.faq-a{margin-top:8px}
/* Hero upgrade */
.hero{background:linear-gradient(180deg,#f7f7f7, #ffffff);border-bottom:1px solid #eee}
.hero-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:start}
.pill{display:inline-block;background:#111;color:#fff;padding:6px 10px;border-radius:999px;font-size:12px;margin-bottom:10px}
.usp{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.usp-item{border:1px solid #eee;border-radius:14px;padding:10px 12px;background:#fff}
.hero-card{border:1px solid #eee;border-radius:16px;padding:14px;background:#fff}
.hero-card-title{font-weight:900;margin-bottom:10px}
.hero-links{display:grid;gap:8px}
.hero-links a{padding:10px 12px;border:1px solid #eee;border-radius:12px}
.hero-links a:hover{background:#f2f2f2}
@media(max-width:980px){
  .hero-wrap{grid-template-columns:1fr}
  .usp{grid-template-columns:1fr}
}
/* Lead form */
.form-card{padding:16px}
.lead-form{display:grid;gap:12px}
.form-row{display:grid;gap:6px}
.form-label{font-weight:700;font-size:14px}
.form-input{width:100%;border:1px solid #ddd;border-radius:12px;padding:10px 12px;font:inherit}
.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:4px}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gal-item{margin:0;border:1px solid #eee;border-radius:14px;overflow:hidden;background:#fff}
.gal-item img{width:100%;height:170px;object-fit:cover;display:block}
.gal-item figcaption{padding:8px 10px}
@media(max-width:980px){.gal{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.gal{grid-template-columns:1fr}.gal-item img{height:220px}}
/* 2GIS map */
.map-card{border:1px solid #eee;border-radius:16px;overflow:hidden;background:#fff}
.map-card > div{width:100%}
/* === header polish (override) === */
:root{ --accent:#01c105; }

.top .topbar{
  display:flex;
  align-items:center;
  gap:16px;
}

.top a.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  white-space:nowrap;
}
.top .brand-mark{
  width:46px;
  height:46px;
  display:block;
  border-radius:12px;
}
.top .brand-text{
  display:none; /* текст убрали — в лого и так есть */
}

/* nav desktop: без переноса и без скроллбара */
.top nav.nav{
  display:flex;
  align-items:center;
  flex:1;
  min-width:0;
  justify-content:center;
  gap:18px;
  flex-wrap:nowrap;
  white-space:nowrap;
  overflow:visible;
}
.top nav.nav a{
  text-decoration:none;
  font-weight:600;
  color:#111827;
  padding:10px 10px;
  border-radius:12px;
}
.top nav.nav a:hover{
  background: rgba(1,193,5,.10);
}

.top nav.nav a.active{ background: rgba(1,193,5,.14); }
/* right: часы сверху, кнопка снизу */
.top .top-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  white-space:nowrap;
}
.top .hours{
  font-size:13px;
  color:#6b7280;
}

/* mobile: меню листается, но без видимой полосы */
@media (max-width: 760px){
  .top nav.nav{
    justify-content:flex-start;
    overflow-x:auto;
    scrollbar-width:none;         /* Firefox */
    -ms-overflow-style:none;      /* old Edge */
    gap:14px;
  }
  .top nav.nav::-webkit-scrollbar{ display:none; } /* Chrome/Safari */
}

@media (max-width: 520px){
  .top .hours{ display:none; } /* на телефоне не мешаем меню */
}

/* mobile tighten nav */
@media (max-width: 520px){
  .top .brand-mark{width:42px;height:42px}
  .top nav.nav a{padding:8px 8px;font-size:14px}
}

/* nav active (polish) */
.top nav.nav a.active{
  background: rgba(1,193,5,.16);
  box-shadow: inset 0 0 0 1px rgba(1,193,5,.25);
}
.top nav.nav a.active:hover{
  background: rgba(1,193,5,.20);
}

/* === mobile burger nav === */
.nav-toggle{ display:none; }
.nav-burger{ display:none; }

.nav-burger{
  width:44px; height:44px;
  border-radius:12px;
  display:flex;
  align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow: inset 0 0 0 1px rgba(17,24,39,.10);
  background:#fff;
}
.nav-burger span{
  position:relative;
  display:block;
  width:20px; height:2px;
  background:#111827;
}
.nav-burger span:before,
.nav-burger span:after{
  content:"";
  position:absolute; left:0;
  width:20px; height:2px;
  background:#111827;
}
.nav-burger span:before{ top:-6px; }
.nav-burger span:after{ top:6px; }

/* desktop: nav-cta hidden */
.top nav.nav .nav-cta{ display:none; }

@media (max-width: 760px){
  /* header row stays compact */
  .top .topbar{
    position:relative;
    flex-wrap:nowrap;
  }

  .top .nav-burger{
    display:flex;
    margin-left:auto;
  }

  /* hide right block in header; show it inside dropdown */
  .top .top-right{ display:none; }

  /* dropdown panel */
  .top nav.nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:calc(100% + 10px);
    z-index:1000;

    padding:12px;
    border-radius:16px;
    background:#fff;
    box-shadow: 0 18px 40px rgba(17,24,39,.12);
    border: 1px solid rgba(17,24,39,.10);

    justify-content:flex-start;
    overflow:auto;
    max-height:70vh;

    /* reset desktop behavior */
    flex:unset;
    gap:6px;
    white-space:normal;
  }

  .topbar .nav-toggle:checked ~ nav.nav{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }

  .top nav.nav a{
    display:block;
    width:100%;
    text-align:left;
    padding:12px 12px;
    border-radius:12px;
  }

  .top nav.nav .nav-cta{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid rgba(17,24,39,.10);
  }
  .top nav.nav .nav-cta .hours{ display:block; }
}

/* === force desktop header (hide burger) === */
@media (min-width: 761px){
  .top .nav-burger{ display:none !important; }
  .top nav.nav{
    position:static !important;
    display:flex !important;
    flex-direction:row !important;
    gap:18px !important;
    overflow:visible !important;
    max-height:none !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }
  .top .top-right{ display:flex !important; }
  .top nav.nav .nav-cta{ display:none !important; }
}

/* === header sticky polish === */
.top{
  position: sticky;
  top: 0;
  z-index: 2000;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid rgba(17,24,39,.08);
}
.top.is-scrolled{
  box-shadow: 0 10px 30px rgba(17,24,39,.08);
}
.top .topbar{
  padding-top: 10px;
  padding-bottom: 10px;
}


/* home icon in nav */
.top nav.nav a.home{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  padding:0;
}

/* === modals (contact/status) === */
.btn.blue{ background:#4F76E6; color:#fff; }
.btn.blue:hover{ filter:brightness(.96); }
.btn.block{ width:100%; justify-content:center; }

.top .top-actions{ display:flex; gap:10px; align-items:center; }

/* modal core (не display:none, чтобы виджеты могли инициализироваться) */
.modal{
  display:block;
  position:fixed; inset:0;
  z-index:4000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition: opacity .16s ease, visibility .16s ease;
}
.modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
body.modal-open{ overflow:hidden; }

.modal-backdrop{
  position:absolute; inset:0;
  background:rgba(17,24,39,.35); /* лёгкое затемнение */
}

.modal-dialog{
  position:relative;
  margin: 10vh auto 0;
  width: min(520px, calc(100% - 24px));
  background:#fff;
  border-radius:18px;
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
  overflow:hidden;
  transform: translateY(10px) scale(.985);
  transition: transform .18s ease;
}
.modal.is-open .modal-dialog{ transform: translateY(0) scale(1); }

@media (max-width: 520px){
  .modal-dialog{ margin: 9vh auto 0; width: calc(100% - 18px); border-radius:16px; }
}

.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  background: #fff;
  border-bottom:1px solid rgba(17,24,39,.08);
}
.modal-title{ font-weight:900; font-size:16px; color:#111827; }
.modal-x{
  width:40px; height:40px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(17,24,39,.04);
  cursor:pointer;
  font-size:22px;
  line-height:38px;
}
.modal-x:hover{ background:rgba(17,24,39,.07); }

.modal-body{ padding:18px; }

/* contact buttons */
.cbtn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  height:58px;
  border-radius:999px;
  font-weight:900;
  font-size:18px;
  text-decoration:none;
  color:#fff;
  margin: 12px 0;
  box-shadow: 0 10px 22px rgba(0,0,0,.10);
}
.cbtn:before{
  content:"";
  width:20px; height:20px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.18));
}
.cbtn.wa{ background:#18c34a; }
.cbtn.tg{ background:#229ED9; }
.cbtn.mx{ background:#1E88E5; }
.cbtn.ph{ background:#2f2f2f; }
.cbtn:hover{ filter:brightness(.97); }

.cbtn.wa:before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.7 14.5c-.2.6-1.2 1.1-1.8 1.2-.5.1-1.2.2-3.8-.9-3-1.2-4.8-4.2-5-4.5-.2-.3-1.2-1.6-1.2-3 0-1.4.8-2.1 1.1-2.4.3-.3.7-.4.9-.4h.7c.2 0 .5 0 .7.6l.9 2.2c.1.3.1.5 0 .7-.1.2-.2.3-.3.5l-.3.4c-.1.2-.2.4 0 .7.2.3.8 1.3 1.8 2.1 1.2 1 2.2 1.3 2.6 1.4.3.1.5.1.7-.1l.9-1.1c.2-.2.4-.3.6-.2l2.4 1.1c.3.1.5.2.6.4.1.2.1.6 0 1.2Z'/%3E%3C/svg%3E"); }
.cbtn.tg:before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M21.9 4.6 2.9 12.2c-1 .4-1 1.8.1 2.1l4.9 1.5 1.9 5.7c.3.9 1.5 1 2 .2l2.8-4 5.1 3.7c.8.6 2 .1 2.2-.9l3.2-15.1c.2-1.1-.8-2-1.9-1.6ZM9.3 14.9l9.7-8.2-7.4 9.3-.3 3.1-1.6-4.2-3.6-1.1 3.2-1.3Z'/%3E%3C/svg%3E"); }
.cbtn.mx:before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M4 4h16a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-4.5 3a.8.8 0 0 1-1.3-.7V6a2 2 0 0 1 2-2Zm4 6h8v2H8v-2Zm0-3h12v2H8V7Zm0 6h6v2H8v-2Z'/%3E%3C/svg%3E"); }
.cbtn.ph:before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6.6 10.8c1.5 3 3.6 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.2 1.2.4 2.5.7 3.9.7.6 0 1 .4 1 1V21c0 .6-.4 1-1 1C10.3 22 2 13.7 2 3c0-.6.4-1 1-1h3.6c.6 0 1 .4 1 1 0 1.4.2 2.7.7 3.9.1.4 0 .8-.2 1.1l-2.5 2.8Z'/%3E%3C/svg%3E"); }

/* livesklad container */
#livesklad-widget{ min-height: 260px; }


/* === modal fit (desktop/mobile) === */
.modal-backdrop{ background:rgba(17,24,39,.42); } /* чуть темнее, но не тяжело */

#modal-contact .modal-dialog{ width:min(560px, calc(100% - 24px)); }
#modal-contact .cbtn{ height:56px; font-size:17px; }

#modal-status .modal-dialog.modal-status{ width:min(560px, calc(100% - 24px)); }
#modal-status .modal-body{ padding:16px 18px 20px; }
#modal-status #livesklad-widget{ width:100%; min-height:280px; }

@media (max-width: 520px){
  #modal-status .modal-dialog.modal-status{ width:calc(100% - 18px); margin:8vh auto 0; }
  #modal-status #livesklad-widget{ min-height:300px; }
}

/* === modal compact v2 (hakmaster style) === */
#modal-contact .modal-dialog,
#modal-status  .modal-dialog{
  width:min(480px, calc(100% - 24px));
  border-radius:16px;
}

#modal-contact .modal-head,
#modal-status  .modal-head{
  padding:12px 14px;
}

#modal-contact .modal-title,
#modal-status  .modal-title{
  font-size:15px;
}

#modal-contact .modal-x,
#modal-status  .modal-x{
  width:36px;height:36px;
  border-radius:12px;
  font-size:20px;
}

/* contact: 2x2 grid on desktop */
#modal-contact .modal-body{
  padding:14px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
#modal-contact .cbtn{
  margin:0;
  height:52px;
  border-radius:16px;
  font-size:16px;
  font-weight:800;
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}
#modal-contact .cbtn:before{ width:18px;height:18px; }
#modal-contact .cbtn.ph{ grid-column: 1 / -1; }

/* mobile: single column */
@media (max-width: 520px){
  #modal-contact .modal-dialog,
  #modal-status  .modal-dialog{
    width:calc(100% - 18px);
  }
  #modal-contact .modal-body{
    grid-template-columns: 1fr;
  }
  #modal-contact .cbtn.ph{ grid-column:auto; }
}

/* status: tidy body + widget height */
#modal-status .modal-body{ padding:14px; }
#modal-status #livesklad-widget{ min-height:260px; width:100%; }


/* === modal polish v3 (premium) === */
.modal-backdrop{ background:rgba(17,24,39,.46); }

.modal-dialog{
  border:1px solid rgba(17,24,39,.10);
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
}

.modal-head{
  border-bottom:0 !important;
  padding:14px 16px 10px !important;
  position:relative;
}

.modal-title{
  width:100%;
  text-align:center;
  font-weight:900;
  letter-spacing:.2px;
}

.modal-x{
  position:absolute;
  right:12px; top:10px;
  width:34px !important;
  height:34px !important;
  border-radius:12px !important;
  background:rgba(17,24,39,.05) !important;
}

#modal-contact .modal-body{ padding:12px 14px 14px !important; }

#modal-contact .cbtn{
  height:50px !important;
  border-radius:14px !important;
  font-size:15.5px !important;
  box-shadow: 0 8px 16px rgba(0,0,0,.10) !important;
}

#modal-contact .cbtn.wa{ background:linear-gradient(180deg,#22c55e,#16a34a); }
#modal-contact .cbtn.tg{ background:linear-gradient(180deg,#2aa7e6,#1d8fd0); }
#modal-contact .cbtn.mx{ background:linear-gradient(180deg,#2a91ef,#1f76c8); }
#modal-contact .cbtn.ph{ background:linear-gradient(180deg,#3a3a3a,#242424); }


/* === contact modal v4: white text + phone in right column === */
#modal-contact .cbtn{
  color:#fff !important;
}
#modal-contact .cbtn *{
  color:#fff !important;
}

/* grid: WA | TG ; MAX | PHONE */
#modal-contact .cbtn.ph{
  grid-column: 2 / 3 !important;
}

/* mobile: one column */
@media (max-width: 520px){
  #modal-contact .cbtn.ph{ grid-column: auto !important; }
}

/* === livesklad widget theme === */
#livesklad-widget button,
#livesklad-widget .btn,
#livesklad-widget [type="submit"]{
  background:#01c105 !important;
  border-color:#01c105 !important;
  color:#fff !important;
}
#livesklad-widget button:hover,
#livesklad-widget .btn:hover,
#livesklad-widget [type="submit"]:hover{
  filter:brightness(.95) !important;
}
#livesklad-widget input:focus,
#livesklad-widget select:focus{
  outline:none !important;
  box-shadow: 0 0 0 3px rgba(1,193,5,.18) !important;
  border-color:#01c105 !important;
}
#livesklad-widget table th{
  background: rgba(1,193,5,.10) !important;
}

/* === header buttons theme + mobile visibility === */
.btn.contact{
  background: linear-gradient(180deg,#22c55e,#16a34a);
  color:#fff;
}
.btn.contact:hover{ filter:brightness(.97); }

.btn.status{
  background: rgba(17,24,39,.92);
  color:#fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
}
.btn.status:hover{ filter:brightness(.97); }

/* status modal width = contact modal width */
#modal-status .modal-dialog{ width:min(480px, calc(100% - 24px)) !important; }

/* mobile: не скрываем top-right (кнопки остаются в шапке) */
@media (max-width: 760px){
  .top .topbar{ flex-wrap:wrap !important; }
  .top .top-right{
    display:flex !important;
    width:100%;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    margin-top:10px;
  }
  .top .top-right .hours{ display:none !important; }
  .top .top-actions{ width:100%; justify-content:flex-end; }
  .top .top-actions .btn{ padding:10px 12px; }
}

/* === mobile header layout v2 === */
@media (max-width: 760px){
  .top .topbar{
    flex-wrap:wrap !important;
    gap:12px !important;
  }

  /* row 1: brand left, burger right */
  .top a.brand{ order:1; }
  .top .nav-burger{ order:2; margin-left:auto !important; }

  /* row 2: actions full width */
  .top .top-right{
    order:3;
    width:100% !important;
    margin-top:4px !important;
    justify-content:flex-start !important;
  }
  .top .top-right .hours{ display:none !important; }

  .top .top-actions{
    width:100% !important;
    display:grid !important;
    grid-template-columns: 1fr 1fr;
    gap:10px;
  }
  .top .top-actions .btn{
    width:100% !important;
    justify-content:center !important;
    padding:12px 10px !important;
    border-radius:14px !important;
  }
}

/* very small phones: stack buttons */
@media (max-width: 380px){
  .top .top-actions{ grid-template-columns: 1fr !important; }
}

/* mobile: center text in header buttons */
@media (max-width: 760px){
  .top .top-actions .btn{
    text-align:center !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
}

/* === hero polish (hakmaster) === */
.hero .pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background: rgba(1,193,5,.12);
  color:#111827;
  font-weight:700;
}
.hero .lead{
  font-size:20px;
  line-height:1.25;
  font-weight:900;
  margin:14px 0 10px;
}
.hero .usp{
  margin-top:14px;
}
.hero .usp-item{
  border-radius:16px;
}
.hero .hero-cta{
  display:flex;
  gap:12px;
  margin-top:18px;
  align-items:center;
}
.hero .hero-cta .btn{
  height:52px;
  padding:0 18px;
  border-radius:16px;
  font-weight:900;
}
.hero .hero-cta .btn.status{
  background: rgba(17,24,39,.92);
  color:#fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10);
}
.hero .hero-cta .btn.status:hover{ filter:brightness(.97); }

@media (max-width: 760px){
  .hero .lead{ font-size:18px; }
  .hero .hero-cta{
    display:grid;
    grid-template-columns: 1fr;
    gap:10px;
  }
  .hero .hero-cta .btn{ width:100%; justify-content:center; }
}

/* === hero main CTA (marketing) === */
.hero .hero-cta{ margin-top:18px; }
.hero .hero-main{
  background: linear-gradient(180deg,#22c55e,#01c105);
  color:#fff !important;
  box-shadow: 0 16px 34px rgba(1,193,5,.22), inset 0 0 0 1px rgba(255,255,255,.18);
  border:0 !important;
  border-radius:18px !important;
  height:56px !important;
  padding:0 22px !important;
  font-weight:900 !important;
  letter-spacing:.2px;
}
.hero .hero-main:hover{ filter:brightness(.97); transform: translateY(-1px); }
.hero .hero-main:active{ transform: translateY(0); }

@media (max-width: 760px){
  .hero .hero-main{ width:100%; justify-content:center; }
}

/* === hero layout fix: left + right on desktop === */
@media (min-width: 981px){
  .hero .hero-wrap{ 
    display:grid !important;
    grid-template-columns: 1fr 360px;
    gap:24px;
    align-items:start;
  }
  .hero .hero-left{ min-width:0; }
  .hero .hero-right{ width:auto; }
  .hero .hero-card{ position:sticky; top:92px; } /* аккуратно, т.к. шапка sticky */
}

/* mobile/tablet: stack */
@media (max-width: 980px){
  .hero .hero-wrap{ display:block !important; }
  .hero .hero-card{ position:static; }
}

/* === hero final columns fix (2 cols from 761px) === */
@media (min-width: 761px){
  .hero .hero-wrap{
    display:grid !important;
    grid-template-columns: 1fr 360px !important;
    gap:24px !important;
    align-items:start !important;
  }
  .hero .hero-left{ grid-column:1; min-width:0; }
  .hero .hero-right{ grid-column:2; }
  .hero .hero-card{ position:sticky; top:92px; }
}
@media (max-width: 760px){
  .hero .hero-wrap{ display:block !important; }
  .hero .hero-card{ position:static; }
}

/* === FORCE: hero right column stays on the right (flex beats grid) === */
@media (min-width: 761px){
  .hero .wrap.hero-wrap{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:24px !important;
  }
  .hero .wrap.hero-wrap .hero-left{
    flex: 1 1 auto !important;
    min-width:0 !important;
  }
  .hero .wrap.hero-wrap .hero-right{
    flex: 0 0 360px !important;
    width:360px !important;
  }
  .hero .wrap.hero-wrap .hero-card{
    position:sticky !important;
    top:92px !important;
  }
}

@media (max-width: 760px){
  .hero .wrap.hero-wrap{
    display:block !important;
  }
  .hero .wrap.hero-wrap .hero-right{
    width:auto !important;
  }
  .hero .wrap.hero-wrap .hero-card{
    position:static !important;
  }
}

/* === HERO: stable 2-col from 761px, stack only <760px === */
@media (min-width: 981px){
  .hero .wrap.hero-wrap{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:24px !important;
  }
  .hero .wrap.hero-wrap .hero-left{ flex:1 1 auto !important; min-width:0 !important; }
  .hero .wrap.hero-wrap .hero-right{ flex:0 0 360px !important; width:360px !important; }
  .hero .wrap.hero-wrap .hero-card{ position:sticky !important; top:92px !important; }
}

@media (min-width: 761px) and (max-width: 980px){
  .hero .wrap.hero-wrap{
    display:flex !important;         /* перебивает любые display:block в этом диапазоне */
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:18px !important;
  }
  .hero .wrap.hero-wrap .hero-left{ flex:1 1 auto !important; min-width:0 !important; }
  .hero .wrap.hero-wrap .hero-right{ flex:0 0 340px !important; width:340px !important; }
  .hero .wrap.hero-wrap .hero-card{ position:static !important; top:auto !important; }
}

@media (max-width: 760px){
  .hero .wrap.hero-wrap{ display:block !important; }
  .hero .wrap.hero-wrap .hero-right{ width:auto !important; }
  .hero .wrap.hero-wrap .hero-card{ position:static !important; }
}

/* === HERO HARD FIX: right block ALWAYS on the right on desktop === */
@media (min-width: 761px){
  section.hero > .wrap.hero-wrap:not(.hero-one){
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-start !important;
    gap:24px !important;
  }
  section.hero > .wrap.hero-wrap:not(.hero-one) > .hero-left{
    flex: 1 1 auto !important;
    min-width:0 !important;
  }
  section.hero > .wrap.hero-wrap:not(.hero-one) > .hero-right{
    flex: 0 0 360px !important;
    width:360px !important;
    max-width:360px !important;
  }
}

/* mobile: stack */
@media (max-width: 760px){
  section.hero > .wrap.hero-wrap:not(.hero-one){
    display:block !important;
  }
  section.hero > .wrap.hero-wrap:not(.hero-one) > .hero-right{
    width:auto !important;
    max-width:none !important;
  }
}

/* === hero CTA polish (center + premium) === */
.hero .hero-cta{
  display:flex !important;
  justify-content:center !important;
}

.hero .hero-main{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width: fit-content !important;
  min-width: 340px;
  max-width: 460px;
  white-space: nowrap;
  border-radius: 18px !important;
  box-shadow: 0 14px 30px rgba(1,193,5,.20), inset 0 0 0 1px rgba(255,255,255,.16) !important;
}

.hero .hero-main:after{
  content:"→";
  margin-left:12px;
  font-weight:900;
  opacity:.95;
}

@media (max-width: 760px){
  .hero .hero-main{
    width:100% !important;
    min-width:0;
    max-width:none;
  }
  .hero .hero-main:after{ content:""; margin-left:0; }
}

/* === HERO CTA align + premium (final) === */
@media (min-width: 761px){
  .hero .hero-cta{
    justify-content:flex-start !important; /* слева на десктопе/планшете */
  }
}
@media (max-width: 760px){
  .hero .hero-cta{
    justify-content:center !important;     /* по центру на телефоне */
  }
}

.hero .hero-main{
  position:relative;
  overflow:hidden;
  min-width: 320px;
  max-width: 420px;

  background: linear-gradient(180deg,#22c55e 0%, #01c105 100%) !important;
  box-shadow:
    0 14px 28px rgba(1,193,5,.18),
    inset 0 0 0 1px rgba(255,255,255,.18) !important;

  transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.hero .hero-main::before{
  content:"";
  position:absolute;
  top:-60%;
  left:-40%;
  width:60%;
  height:220%;
  transform: rotate(20deg);
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.20) 50%, rgba(255,255,255,0) 100%);
  opacity:.55;
  transition: left .35s ease;
  pointer-events:none;
}

.hero .hero-main:hover{
  transform: translateY(-1px);
  filter: brightness(.98);
  box-shadow:
    0 18px 34px rgba(1,193,5,.22),
    inset 0 0 0 1px rgba(255,255,255,.20) !important;
}
.hero .hero-main:hover::before{ left:110%; }

@media (max-width: 760px){
  .hero .hero-main{
    max-width:none;
    min-width:0;
  }
}

/* === hero right image (page themed) === */
@media (min-width: 761px){
  .hero .hero-wrap.hero-has-side{
    display:flex !important;
    align-items:flex-start !important;
    gap:24px !important;
  }
  .hero .hero-wrap.hero-has-side .hero-left{ flex:1 1 auto !important; min-width:0 !important; }
  .hero .hero-wrap.hero-has-side .hero-right{ flex:0 0 360px !important; width:360px !important; }
}

.hero .hero-card.hero-media{
  padding:0 !important;
  overflow:hidden;
}
.hero .hero-side-img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* mobile: скрываем только КАРТИНКУ справа, чтобы не лезла к заголовку */
@media (max-width: 760px){
  .hero .hero-wrap.hero-has-image .hero-right{ display:none !important; }
}

/* === trust / reviews blocks === */
.block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px 0}
.block-head h2{margin:0}

.trust-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:14px;
}
.trust-card{
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  padding:16px 16px 14px;
  box-shadow: 0 10px 24px rgba(17,24,39,.04);
}
.trust-title{font-weight:900;color:#111827;margin:0 0 6px 0}
.trust-text{line-height:1.35}

.reviews-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:14px;
}
.review-card{
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  padding:16px 16px 14px;
}
.review-title{font-weight:900;color:#111827;margin:0 0 6px 0}
.review-text{line-height:1.35}

/* responsive */
@media (max-width: 980px){
  .trust-grid,.reviews-grid{grid-template-columns: 1fr; gap:12px;}
}

/* === TRUST / REVIEWS (hakmaster premium) === */
.block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.block-head h2{margin:0}

.trust-grid,.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}

.trust-card,.review-card{
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  padding:16px 16px 14px;
  box-shadow: 0 10px 24px rgba(17,24,39,.04);
}

.trust-title,.review-title{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:#111827;
  margin:0 0 6px 0;
}

.trust-title:before{
  content:"";
  width:10px;height:10px;border-radius:999px;
  background:#01c105;
  box-shadow:0 0 0 4px rgba(1,193,5,.14);
}

.review-title:before{
  content:"★";
  font-weight:900;
  color:#01c105;
}

.trust-text,.review-text{line-height:1.35}

@media (max-width: 980px){
  .trust-grid,.reviews-grid{grid-template-columns:1fr; gap:12px;}
}

/* === simple block premium (list->cards + optional side image) === */
.simple-block{ display:grid; grid-template-columns: 1fr; gap:14px; }
.simple-card h2{ margin:0 0 10px 0; }
.simple-card ul{
  list-style:none;
  padding:0;
  margin:12px 0 0 0;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}
.simple-card li{
  position:relative;
  padding:12px 14px 12px 44px;
  border-radius:16px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
}
.simple-card li:before{
  content:"";
  position:absolute;
  left:14px; top:14px;
  width:18px; height:18px;
  border-radius:999px;
  background:#01c105;
  box-shadow: 0 0 0 4px rgba(1,193,5,.14);
}
.simple-card li:after{
  content:"";
  position:absolute;
  left:20px; top:19px;
  width:8px; height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform: rotate(-45deg);
}

/* side image */
.simple-side{ padding:0 !important; overflow:hidden; }
.simple-side img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* desktop/tablet: show image column */
@media (min-width: 981px){
  .simple-block.has-side{ grid-template-columns: 1fr 360px; align-items:start; }
}

/* stack on small screens */
@media (max-width: 980px){
  .simple-card ul{ grid-template-columns: 1fr; }
}
/* hide side image on phones (чтобы не лезло) */
@media (max-width: 760px){
  .simple-block.has-side .simple-side{ display:none; }
}

/* === simple side_box (premium) === */
.simple-sidebox{
  padding:16px 16px 14px !important;
  border:1px solid rgba(17,24,39,.08);
  border-radius:18px;
  background: linear-gradient(180deg, rgba(1,193,5,.06), rgba(255,255,255,1));
}
.simple-sidebox .sidebox-title{
  font-weight:900;
  color:#111827;
  margin:0 0 10px 0;
}
.simple-sidebox .sidebox-items{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.simple-sidebox .sidebox-item{
  position:relative;
  padding-left:34px;
  line-height:1.35;
  color:#111827;
}
.simple-sidebox .sidebox-item:before{
  content:"";
  position:absolute;
  left:0; top:2px;
  width:22px; height:22px;
  border-radius:999px;
  background:#01c105;
  box-shadow: 0 0 0 4px rgba(1,193,5,.14);
}
.simple-sidebox .sidebox-item:after{
  content:"";
  position:absolute;
  left:7px; top:10px;
  width:8px; height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform: rotate(-45deg);
}

/* === steps premium === */
.steps-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}

.step-card{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px 16px 14px;
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  box-shadow: 0 10px 24px rgba(17,24,39,.04);
}

.step-num{
  flex:0 0 auto;
  min-width:44px;
  height:44px;
  border-radius:14px;
  background: rgba(1,193,5,.12);
  color:#0f5132;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  letter-spacing:.6px;
  box-shadow: inset 0 0 0 1px rgba(1,193,5,.18);
}

.step-title{
  font-weight:900;
  color:#111827;
  margin:0 0 6px 0;
}

.step-text{ line-height:1.35; }

@media (max-width: 980px){
  .steps-grid{ grid-template-columns: 1fr; gap:12px; }
  .step-num{ min-width:42px; height:42px; border-radius:13px; }
}

/* === price_from premium === */
.plist-card{ padding:8px !important; }
.plist{ display:flex; flex-direction:column; }
.pitem{
  display:grid;
  grid-template-columns: 1fr auto auto;
  gap:12px;
  align-items:center;
  padding:14px 12px;
  border-radius:16px;
}
.pitem + .pitem{ border-top:1px solid rgba(17,24,39,.08); border-top-left-radius:0; border-top-right-radius:0; }
.pname-title{ font-weight:900; color:#111827; }
.pname-note{ margin-top:4px; line-height:1.3; }
.pprice{
  font-weight:900;
  color:#111827;
  white-space:nowrap;
  padding-left:10px;
}
.pgo{
  white-space:nowrap;
  text-decoration:none;
  color:#01c105;
  font-weight:800;
}
.pgo:hover{ filter:brightness(.9); }

@media (max-width: 760px){
  .pitem{
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "name price"
      "go go";
    align-items:start;
  }
  .pname{ grid-area:name; }
  .pprice{ grid-area:price; }
  .pgo{ grid-area:go; margin-top:6px; }
}

/* === contacts premium === */
.contacts-card{ padding:16px !important; }
.contacts-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:16px; align-items:start; }
.c-row{ display:grid; grid-template-columns: 90px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid rgba(17,24,39,.08); }
.c-row:last-child{ border-bottom:0; }
.c-k{ color:#6b7280; font-weight:700; font-size:13px; }
.c-v{ color:#111827; font-weight:800; }
.c-v a{ color:#111827; text-decoration:none; }
.c-v a:hover{ text-decoration:underline; }

.contacts-actions{ margin-top:14px; display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
.contacts-actions .cbtn{
  height:48px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  text-decoration:none;
  color:#fff;
  box-shadow: 0 8px 16px rgba(0,0,0,.10);
}
.contacts-actions .cbtn:hover{ filter:brightness(.97); }
.contacts-actions .cbtn.wa{ background:linear-gradient(180deg,#22c55e,#16a34a); }
.contacts-actions .cbtn.tg{ background:linear-gradient(180deg,#2aa7e6,#1d8fd0); }
.contacts-actions .cbtn.mx{ background:linear-gradient(180deg,#2a91ef,#1f76c8); }
.contacts-actions .cbtn.ph{ background:linear-gradient(180deg,#3a3a3a,#242424); }
.contacts-actions .cbtn.rt{ background:rgba(17,24,39,.92); box-shadow: inset 0 0 0 1px rgba(255,255,255,.10); }

.contacts-note{
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(1,193,5,.06), #fff);
  padding:16px;
}
.contacts-note-title{ font-weight:900; color:#111827; margin:0 0 6px 0; }

@media (max-width: 980px){
  .contacts-grid{ grid-template-columns:1fr; }
  .contacts-actions{ grid-template-columns:1fr; }
  .c-row{ grid-template-columns: 1fr; }
  .c-k{ margin-bottom:2px; }
}

/* === typography (remove Arial-blur) === */
html, body{
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}
h1,h2,h3{ letter-spacing: .1px; }
.card b, .c-v, .trust-title, .review-title, .step-title, .pname-title{ font-weight: 800; } /* меньше “жира” */

/* === contacts layout polish === */
.contacts-card{ padding:16px !important; }
.contacts-grid{ display:grid; grid-template-columns: 1.25fr .75fr; gap:16px; align-items:start; }

.c-row{ display:grid; grid-template-columns: 96px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid rgba(17,24,39,.08); }
.c-row:last-child{ border-bottom:0; }

.c-k{ color:#6b7280; font-weight:650; font-size:13px; }
.c-v{ color:#111827; font-weight:780; }
.c-v a{ color:#111827; text-decoration:none; }
.c-v a:hover{ text-decoration:underline; }

.contacts-right{ display:flex; flex-direction:column; gap:12px; }
.contacts-hint{ margin-top:-2px; }

.contacts-actions{
  margin-top:0;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.contacts-actions .cbtn{
  height:46px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:850;
  text-decoration:none;
  color:#fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.10); /* меньше “бучит” */
}
.contacts-actions .cbtn:hover{ filter:brightness(.97); }

@media (max-width: 980px){
  .contacts-grid{ grid-template-columns:1fr; }
  .contacts-actions{ grid-template-columns:1fr; }
  .c-row{ grid-template-columns: 1fr; }
  .c-k{ margin-bottom:2px; }
}

/* === site background accent (not plain white) === */
body{
  background: #f6f7f9;
}
main{
  background: linear-gradient(180deg, rgba(1,193,5,.035) 0px, rgba(246,247,249,1) 260px);
}

/* === contacts quick card === */
.contacts-right{ display:flex; flex-direction:column; gap:12px; }
.contacts-quick{
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(1,193,5,.07), #fff);
  padding:16px;
}
.contacts-quick-title{
  font-weight:900;
  color:#111827;
  margin:0 0 6px 0;
}

.contacts-actions.in-quick{
  margin-top:14px;
}

/* route button if present: full width */
.contacts-actions.in-quick .cbtn.rt{
  grid-column: 1 / -1;
}

@media (max-width: 980px){
  .contacts-actions.in-quick .cbtn.rt{ grid-column:auto; }
}

/* === prices categories === */
.pcat-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:14px;
}
.pcat-card{
  display:block;
  text-decoration:none;
  color:inherit;
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  padding:16px 16px 14px;
  box-shadow: 0 10px 24px rgba(17,24,39,.04);
  transition: transform .15s ease, filter .15s ease;
}
.pcat-card:hover{ transform: translateY(-1px); filter:brightness(.98); }
.pcat-title{ font-weight:900; color:#111827; margin:0 0 6px 0; }
.pcat-hint{ line-height:1.35; margin:0 0 10px 0; }
.pcat-go{ font-weight:900; color:#01c105; }

@media (max-width: 980px){
  .pcat-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .pcat-grid{ grid-template-columns: 1fr; }
}

/* === prices categories: make it visually obvious === */
.pcat-grid{ margin-top:10px; }
.pcat-card{
  outline: 0;
}
.pcat-card:focus-visible{
  box-shadow: 0 0 0 4px rgba(1,193,5,.18);
}

.wrap > .pcat-grid{ padding-bottom:6px; }

/* extra spacing around the block-head on ceny */
.pcat-grid{ scroll-margin-top: 110px; }

/* === anchor offsets for sticky header === */
#lead-form, #contacts{ scroll-margin-top: 110px; }

/* === reviews chip === */
.reviews-left{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.review-chip{
  font-weight:900;
  font-size:13px;
  color:#0f5132;
  background: rgba(1,193,5,.12);
  border:1px solid rgba(1,193,5,.20);
  padding:6px 10px;
  border-radius:999px;
}

/* === theme accents (less white, more premium) === */

/* subtle section separation */
section.wrap{ padding-top: 6px; padding-bottom: 6px; }
section.wrap + section.wrap{ margin-top: 8px; }

/* steps: stronger accent */
.step-card{
  background: linear-gradient(180deg, rgba(1,193,5,.045), #fff) !important;
}
.step-num{
  background: linear-gradient(180deg, rgba(34,197,94,.22), rgba(1,193,5,.10)) !important;
  color:#0f5132 !important;
  box-shadow:
    inset 0 0 0 1px rgba(1,193,5,.22),
    0 10px 22px rgba(1,193,5,.08) !important;
}

/* trust/reviews: slightly tinted cards */
.trust-card{
  background: linear-gradient(180deg, rgba(1,193,5,.035), #fff) !important;
}
.review-card{
  background: linear-gradient(180deg, rgba(1,193,5,.02), #fff) !important;
}

/* prices: accent price + hover */
.pitem:hover{
  background: rgba(1,193,5,.03);
}
.pprice{
  color:#0f5132 !important;
}
.pgo{
  color:#0f5132 !important;
}

/* hero usp cards a bit richer */
.usp-item{
  background: linear-gradient(180deg, rgba(1,193,5,.02), #fff);
}

/* === lead form premium section === */
.lead-shell{
  border-radius:22px;
  padding:18px;
  background: linear-gradient(180deg, rgba(1,193,5,.08), rgba(255,255,255,0) 220px);
  border:1px solid rgba(17,24,39,.06);
}
.lead-head{ margin:0 0 14px 0; }
.lead-head h2{ margin:0; }

.lead-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:14px;
  align-items:start;
}

.lead-card{ padding:16px !important; }
.lead-actions{ gap:12px; }
.lead-submit{
  background: linear-gradient(180deg,#22c55e,#01c105) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:14px !important;
  height:46px;
  padding:0 18px;
  font-weight:900;
  box-shadow: 0 14px 28px rgba(1,193,5,.18), inset 0 0 0 1px rgba(255,255,255,.18);
}
.lead-submit:hover{ filter:brightness(.97); }

.lead-info{ padding:16px !important; background: linear-gradient(180deg, rgba(1,193,5,.06), #fff); }
.lead-info-title{ font-weight:900; color:#111827; margin:0 0 10px 0; }
.lead-info-list{ display:flex; flex-direction:column; gap:10px; }
.lead-info-item{
  position:relative;
  padding-left:34px;
  font-weight:800;
  color:#111827;
}
.lead-info-item:before{
  content:"";
  position:absolute; left:0; top:2px;
  width:22px; height:22px; border-radius:999px;
  background:#01c105;
  box-shadow:0 0 0 4px rgba(1,193,5,.14);
}
.lead-info-item:after{
  content:"";
  position:absolute; left:7px; top:10px;
  width:8px; height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform: rotate(-45deg);
}

@media (max-width: 980px){
  .lead-grid{ grid-template-columns:1fr; }
}

/* === FAQ premium (2 columns) === */
.faq-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.faq-item{
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(1,193,5,.02), #fff);
  padding:0;
  overflow:hidden;
}
.faq-q{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  font-weight:900;
  color:#111827;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.faq-q::-webkit-details-marker{ display:none; }

.faq-q:after{
  content:"▸";
  color:#01c105;
  font-weight:900;
  transform: rotate(0deg);
  transition: transform .15s ease;
}
.faq-item[open] .faq-q:after{ transform: rotate(90deg); }

.faq-a{
  padding:0 16px 14px 16px;
  line-height:1.45;
}

.faq-item:hover{
  box-shadow: 0 10px 24px rgba(17,24,39,.05);
}

@media (max-width: 980px){
  .faq-grid{ grid-template-columns: 1fr; }
}

/* === contacts left premium (tiles) === */
.contacts-left{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  align-content:start;
}
.c-row{
  grid-template-columns: 1fr !important;
  gap:6px !important;
  padding:14px 14px 12px !important;
  border:1px solid rgba(17,24,39,.08) !important;
  border-radius:18px !important;
  background: linear-gradient(180deg, rgba(1,193,5,.02), #fff) !important;
  box-shadow: 0 10px 24px rgba(17,24,39,.03);
}
.c-row:last-child{ border-bottom:1px solid rgba(17,24,39,.08) !important; } /* чтобы не ломалось от старого правила */
.c-k{
  font-size:13px !important;
  font-weight:800 !important;
  color:#111827 !important;
  display:flex;
  align-items:center;
  gap:10px;
}
.c-k:before{
  content:"";
  width:10px;height:10px;border-radius:999px;
  background:#01c105;
  box-shadow:0 0 0 4px rgba(1,193,5,.14);
  flex:0 0 auto;
}
.c-v{ font-weight:850 !important; }

/* mini card "how to find" spans full width */
.contacts-find{
  grid-column: 1 / -1;
  border-radius:18px;
  border:1px solid rgba(17,24,39,.08);
  background:#fff;
  padding:14px;
}
.contacts-find-title{ font-weight:900; color:#111827; margin:0 0 6px 0; }

/* responsive: one column */
@media (max-width: 980px){
  .contacts-left{ grid-template-columns:1fr; }
}

/* === footer === */
.foot{ margin-top:28px; padding:26px 0 18px; background:#fff; border-top:1px solid rgba(17,24,39,.08); }
.foot-grid{ display:grid; grid-template-columns: 1.1fr .9fr .9fr; gap:18px; align-items:start; }
.foot-col{ display:flex; flex-direction:column; gap:8px; }
.foot-brand{ font-weight:900; color:#111827; }
.foot-title{ font-weight:900; color:#111827; margin-bottom:2px; }
.foot a{ color:#111827; text-decoration:none; font-weight:800; }
.foot a:hover{ text-decoration:underline; }
.foot-social{ display:flex; gap:8px; margin-top:6px; }
.foot-social .fs{
  width:42px; height:36px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-weight:900; color:#fff; text-decoration:none;
  box-shadow: 0 8px 16px rgba(0,0,0,.08);
}
.foot-social .wa{ background:linear-gradient(180deg,#22c55e,#16a34a); }
.foot-social .tg{ background:linear-gradient(180deg,#2aa7e6,#1d8fd0); }
.foot-social .mx{ background:linear-gradient(180deg,#2a91ef,#1f76c8); }

.foot-bottom{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(17,24,39,.08); display:flex; justify-content:space-between; gap:12px; align-items:center; }
.foot-links{ display:flex; gap:10px; align-items:center; }

@media (max-width: 980px){
  .foot-grid{ grid-template-columns: 1fr; }
  .foot-bottom{ flex-direction:column; align-items:flex-start; }
}

/* === policy page === */
.policy-card{ padding:18px !important; }
.policy-card h1{ margin:0 0 10px 0; }
.policy-card h2{ margin:18px 0 8px 0; }
.policy-card p, .policy-card li{ line-height:1.55; }
.policy-card ol{ padding-left:18px; }

/* === footer dark premium === */
.foot{
  background:#0b0f14 !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
}
.foot *{ color: rgba(255,255,255,.86); }
.foot .muted{ color: rgba(255,255,255,.60) !important; }

.foot a{ color: rgba(255,255,255,.86) !important; }
.foot a:hover{ color:#fff !important; }

.foot-grid{ gap:26px !important; }
.foot-title{ color:#fff !important; }

.foot-social .fs{
  box-shadow:none !important;
  border:1px solid rgba(255,255,255,.14);
}
.foot-social .wa{ background:linear-gradient(180deg,#22c55e,#16a34a) !important; border-color:rgba(255,255,255,.12) !important; }
.foot-social .tg{ background:linear-gradient(180deg,#2aa7e6,#1d8fd0) !important; border-color:rgba(255,255,255,.12) !important; }
.foot-social .mx{ background:linear-gradient(180deg,#2a91ef,#1f76c8) !important; border-color:rgba(255,255,255,.12) !important; }

.foot-bottom{
  border-top:1px solid rgba(255,255,255,.10) !important;
}
.foot-links .muted{ color: rgba(255,255,255,.35) !important; }

/* make "Связаться" column tighter */
.foot-col:last-child a{ font-weight:800; }

/* === accent boost (better on different monitors) === */

/* stronger green backgrounds */
.hero .pill,
.review-chip{
  background: rgba(1,193,5,.18) !important;
  border-color: rgba(1,193,5,.28) !important;
}

.step-card{
  background: linear-gradient(180deg, rgba(1,193,5,.075), #fff) !important;
  border-color: rgba(1,193,5,.14) !important;
}
.step-num{
  background: linear-gradient(180deg, rgba(34,197,94,.30), rgba(1,193,5,.16)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(1,193,5,.28),
    0 12px 26px rgba(1,193,5,.12) !important;
}

/* trust/reviews cards a bit more visible */
.trust-card{
  background: linear-gradient(180deg, rgba(1,193,5,.06), #fff) !important;
  border-color: rgba(1,193,5,.14) !important;
}
.review-card{
  background: linear-gradient(180deg, rgba(1,193,5,.045), #fff) !important;
}

/* green dot markers stronger */
.trust-title:before,
.c-k:before{
  box-shadow: 0 0 0 5px rgba(1,193,5,.18) !important;
}

/* section background accent stronger */
main{
  background: linear-gradient(180deg, rgba(1,193,5,.06) 0px, rgba(246,247,249,1) 260px) !important;
}

/* lead section stronger */
.lead-shell{
  background: linear-gradient(180deg, rgba(1,193,5,.12), rgba(255,255,255,0) 240px) !important;
  border-color: rgba(1,193,5,.14) !important;
}

/* === typography: Inter + less bold === */
:root{
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

html, body{
  font-family: var(--font-sans) !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

/* заголовки спокойнее */
h1{ font-weight: 800 !important; letter-spacing: -.01em; }
h2, h3{ font-weight: 700 !important; letter-spacing: -.01em; }

/* убираем “пережир” в карточках/кнопках */
b, strong{ font-weight: 600 !important; }
.btn, .cbtn{ font-weight: 700 !important; }

.trust-title, .review-title, .step-title, .pname-title, .pcat-title,
.modal-title, .contacts-note-title, .lead-info-title{
  font-weight: 700 !important;
}

.c-v, .pprice{ font-weight: 700 !important; }

/* === typography: Manrope (self-host) === */
html, body{
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1{ font-weight: 800 !important; letter-spacing: -.01em; }
h2,h3{ font-weight: 700 !important; letter-spacing: -.01em; }
.btn, .cbtn{ font-weight: 700 !important; }
b, strong{ font-weight: 600 !important; }

/* === typography: Manrope (local) === */
html, body{
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1{ font-weight: 800 !important; letter-spacing: -.01em; }
h2,h3{ font-weight: 700 !important; letter-spacing: -.01em; }

.btn, .cbtn{ font-weight: 700 !important; }
b, strong{ font-weight: 600 !important; }

/* === typography: Golos Text (local) === */
html, body{
  font-family: "Golos Text", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1{ font-weight: 800 !important; letter-spacing: -.01em; }
h2,h3{ font-weight: 700 !important; letter-spacing: -.01em; }
.btn, .cbtn{ font-weight: 700 !important; }
b, strong{ font-weight: 600 !important; }

/* === typography FINAL: Manrope === */
html, body{
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1{ font-weight: 800 !important; }
h2,h3{ font-weight: 700 !important; }
.btn, .cbtn{ font-weight: 700 !important; }
b, strong{ font-weight: 600 !important; }

/* === gallery premium + lightbox === */
.gal{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:12px;
}
.gal-item{ margin:0; }
.gal-btn{
  border:0;
  padding:0;
  width:100%;
  background:transparent;
  cursor:pointer;
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}
.gal-btn img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .2s ease, filter .2s ease;
}
.gal-btn:hover img{ transform: scale(1.02); filter: brightness(.98); }
.gal-item figcaption{ margin-top:8px; }

@media (max-width: 980px){
  .gal{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px){
  .gal{ grid-template-columns: 1fr; }
}

/* lightbox */
.lb{
  position:fixed; inset:0;
  z-index:5000;
  display:none;
}
.lb.is-open{ display:block; }
.lb-backdrop{
  position:absolute; inset:0;
  background: rgba(17,24,39,.62);
}
.lb-panel{
  position:relative;
  width:min(980px, calc(100% - 24px));
  margin: 7vh auto 0;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  backdrop-filter: blur(10px) saturate(140%);
  overflow:hidden;
}
.lb-imgwrap{ position:relative; }
.lb-img{
  display:block;
  width:100%;
  height:auto;
  max-height: 72vh;
  object-fit: contain;
  background: rgba(0,0,0,.18);
}
.lb-cap{
  padding:10px 14px;
  color: rgba(255,255,255,.86);
  font-weight:700;
}

.lb-x{
  position:absolute;
  top:10px; right:10px;
  width:40px; height:40px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.28);
  color:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:38px;
}

.lb-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:44px; height:44px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.28);
  color:#fff;
  cursor:pointer;
  font-size:22px;
}
.lb-prev{ left:10px; }
.lb-next{ right:10px; }

@media (max-width: 520px){
  .lb-panel{ width: calc(100% - 18px); margin: 9vh auto 0; }
  .lb-nav{ width:40px;height:40px;border-radius:14px; }
}

/* === landing spacing (more air between blocks) === */
section.wrap{
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}
section.wrap + section.wrap{
  margin-top: 18px !important;
}

/* tighter on phones */
@media (max-width: 760px){
  section.wrap{
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  section.wrap + section.wrap{
    margin-top: 12px !important;
  }
}


/* HM_FORM_NOTE_v1 */
.form-note {
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(1,193,5,.06);
}
.form-consent {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.35;
}


/* HM_FORM_NOTE_v2 */
.form-note {
  margin: 10px 0 12px 0;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(1,193,5,.22);
  background: rgba(1,193,5,.09);
  font-size: 13px;
}


/* HM_404_v1 */
.notfound .notfound-card {
  border-radius: 22px;
  padding: 26px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.75);
  box-shadow: 0 14px 50px rgba(0,0,0,.06);
}
.notfound-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:12px;
  letter-spacing:.08em;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(1,193,5,.22);
  background: rgba(1,193,5,.09);
}
.notfound-title { margin:14px 0 8px 0; }
.notfound-text  { margin:0 0 16px 0; opacity:.85; }
.notfound-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin: 10px 0 16px 0;
}
.notfound-links {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 8px;
}
.notfound-link {
  display:inline-flex;
  padding:8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.06);
  text-decoration: none;
}


/* HM_404_v2 */
.notfound {
  padding: 44px 0 90px; /* чтобы футер не “прилипал” */
}
.notfound .container {
  display:flex;
  justify-content:center;
}
.notfound-card {
  width: 100%;
  max-width: 1040px;
  border-radius: 22px;
  padding: 26px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  box-shadow: 0 14px 50px rgba(0,0,0,.06);
}
.notfound-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:12px;
  letter-spacing:.08em;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(1,193,5,.22);
  background: rgba(1,193,5,.09);
}
.notfound-grid {
  display:grid;
  grid-template-columns: 1.35fr .85fr;
  gap: 18px;
  margin-top: 12px;
}
.notfound-title { margin: 2px 0 8px 0; }
.notfound-text  { margin: 0 0 14px 0; opacity: .88; }
.notfound-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin: 10px 0 10px 0;
}
.notfound-hint { font-size: 13px; }
.notfound-side {
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(0,0,0,.02);
  padding: 14px;
}
.notfound-side-title {
  font-weight: 800;
  margin: 2px 0 10px 0;
}
.notfound-chips {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.notfound-chip {
  display:inline-flex;
  align-items:center;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.08);
  text-decoration: none;
  background: #fff;
}
@media (max-width: 900px) {
  .notfound-grid { grid-template-columns: 1fr; }
}


/* HM_A11Y_v1 */
/* Toggle button (fixed) */
#a11y-toggle-fab {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 9999;
  border-radius: 999px;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
  color: #111;
  font-weight: 900;
  font-size: 14px;
  line-height: 1;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  cursor: pointer;
}
#a11y-toggle-fab:focus {
  outline: 3px solid rgba(1,193,5,.55);
  outline-offset: 2px;
}

/* A11Y mode */
html.a11y {
  font-size: 20px;
}
html.a11y body {
  background: #ffffff !important;
  color: #000000 !important;
}
html.a11y * {
  text-shadow: none !important;
  box-shadow: none !important;
}
html.a11y a {
  color: #000000 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  font-weight: 800;
}
html.a11y .muted {
  color: #111 !important;
  opacity: 1 !important;
}
html.a11y .btn,
html.a11y button,
html.a11y input,
html.a11y textarea,
html.a11y select {
  font-size: 18px !important;
  border-width: 2px !important;
}
html.a11y .card,
html.a11y .section,
html.a11y header,
html.a11y footer {
  background: #fff !important;
}
html.a11y img {
  filter: none !important;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}


/* HM_A11Y_HEAD_v1 */
/* убрать плавающую кнопку (мешает на телефоне) */
#a11y-toggle-fab { display:none !important; }

.a11y-head { position: relative; display:flex; align-items:center; margin-left: 10px; }
.a11y-head__btn {
  display:flex; align-items:center; gap:10px;
  border-radius: 999px;
  padding: 8px 10px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  font-weight: 900;
  cursor: pointer;
}
.a11y-head__aa {
  width: 28px; height: 28px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: 999px;
  background: rgba(1,193,5,.10);
  border: 1px solid rgba(1,193,5,.22);
  font-weight: 950;
}
@media (max-width: 520px) {
  .a11y-head__txt { display:none; }
  .a11y-head__btn { padding: 8px; }
}

.a11y-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: 280px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: 0 18px 60px rgba(0,0,0,.14);
  padding: 12px;
  z-index: 9999;
}
.a11y-panel__row { margin: 10px 0; }
.a11y-panel__label { font-weight: 900; margin-bottom: 8px; }
.a11y-panel__hint { margin-top: 10px; font-size: 12px; opacity: .75; }

.a11y-switch { display:flex; gap:10px; align-items:center; font-weight: 900; }
.a11y-switch input { width: 18px; height: 18px; }

.a11y-seg { display:flex; gap:8px; }
.a11y-seg__btn {
  flex:1;
  border-radius: 12px;
  padding: 10px 8px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  font-weight: 900;
  cursor: pointer;
}
.a11y-seg__btn.is-active {
  border-color: rgba(1,193,5,.45);
  background: rgba(1,193,5,.10);
}

html.a11y { font-size: 18px; }
html.a11y.a11y-font-115 { font-size: 20px; }
html.a11y.a11y-font-130 { font-size: 22px; }

html.a11y.a11y-contrast body {
  background:#fff !important;
  color:#000 !important;
}
html.a11y.a11y-contrast * {
  box-shadow:none !important;
  text-shadow:none !important;
}
html.a11y.a11y-contrast a {
  color:#000 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}


/* HM_A11Y_HEAD_TUNE_v1 */
/* A11Y в шапке — как обычная кнопка */
.a11y-head {
  display:inline-flex;
  align-items:center;
  margin: 0 10px 0 0; /* слева от "Связаться" */
}
.a11y-head__btn {
  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
}
.a11y-head__aa {
  width: 26px; height: 26px;
  background: rgba(1,193,5,.10);
}
/* на мобилке оставим только Aa */
@media (max-width: 520px) {
  .a11y-head__txt { display:none; }
}


/* HM_TOPMETA_v1 */
.topmeta {
  padding: 8px 0 6px;
}
.topmeta-right {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 12px;
}
.topmeta .hours {
  font-size: 13px;
  opacity: .75;
  white-space: nowrap;
}
/* чтоб кнопка a11y не растягивала строку */
.topmeta .a11y-head { margin: 0; }


/* HM_TOPMETA_V2 */
.topmeta {
  padding: 8px 0 6px;
}
.topmeta-right {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 12px;
}
.topmeta .hours {
  font-size: 13px;
  opacity: .75;
  white-space: nowrap;
}
/* чтобы панель никогда не ломала шапку */
.a11y-panel[hidden] { display:none !important; }


/* HM_A11Y_BAR_v1 */
/* A11Y bar (non-sticky) */
.a11y-bar {
  background: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.a11y-bar__wrap {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 12px;
  padding: 8px 0;
}
.a11y-bar__label {
  font-weight: 900;
  font-size: 13px;
  opacity: .72;
  white-space: nowrap;
}

/* panel should never “fall into” header layout */
#a11y-panel[hidden] { display:none !important; }

/* Mobile: less text */
@media (max-width: 520px) {
  .a11y-bar__label { display:none; }
  .a11y-head__txt { display:none; }
}


/* HM_A11Y_MENU_FIX_v1 */
/* 1) В A11Y режиме не даём меню разъезжаться */
html.a11y .topbar .nav {
  gap: 12px !important;          /* компактнее */
  flex-wrap: wrap;               /* если не влезает — перенос */
}
html.a11y .topbar .nav a {
  font-size: 16px !important;    /* фиксируем пункты меню, не раздуваем */
  padding: 8px 8px !important;
  white-space: nowrap;
}
html.a11y .top-right .top-actions .btn {
  font-size: 16px !important;    /* кнопки справа тоже не раздуваем */
  padding: 8px 10px !important;
}

/* если совсем узко (планшеты/малые десктопы) — пусть меню будет горизонтальным скроллом, но аккуратно */
@media (max-width: 1100px) {
  html.a11y .topbar .nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  html.a11y .topbar .nav::-webkit-scrollbar { display:none; }
}

/* 2) Мобилка: НЕ скрываем "Версия для слабовидящих", скрываем только слово "Настройки" */
@media (max-width: 520px) {
  .a11y-bar__label { display:inline-flex !important; }
  .a11y-head__txt { display:none !important; } /* оставим только "Aa" */
}


/* HM_MOBILE_TOP_ACTIONS_v1 */
@media (max-width: 640px) {
  /* порядок элементов в .topbar: бренд -> топ-кнопки -> бургер */
  .topbar { gap: 10px; }

  .topbar .top-right { order: 2; margin-left: 6px; }
  .topbar .nav-toggle { order: 3; }
  .topbar .nav-burger { order: 4; margin-left: auto; }

  /* кнопки в иконки (текст прячем, но aria-label остаётся) */
  .top-actions .btn.small {
    width: 40px;
    height: 40px;
    padding: 0 !important;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0; /* скрываем текст */
  }

  .top-actions .btn.contact.small::before {
    content: "💬";
    font-size: 18px;
    line-height: 1;
  }
  .top-actions .btn.status.small::before {
    content: "🔧";
    font-size: 18px;
    line-height: 1;
  }

  /* чуть компактнее расстояния */
  .top-actions { gap: 8px; }
}

/* HM_MOBILE_TOP_ACTIONS_v2 */
@media (max-width: 640px) {
  /* не даём шапке разваливаться в колонку */
  .topbar {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }

  /* блок с кнопками не растягиваем */
  .topbar .top-right {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 8px 0 8px !important;
  }
  .topbar .top-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
  }

  /* круги 40x40 — перебиваем все возможные ширины */
  .topbar .top-actions a.btn.small {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important; /* текст скрываем */
    line-height: 0 !important;
  }

  /* иконки */
  .topbar .top-actions a.btn.contact.small::before {
    content: "💬";
    font-size: 18px;
    line-height: 1;
  }
  .topbar .top-actions a.btn.status.small::before {
    content: "🔧";
    font-size: 18px;
    line-height: 1;
  }

  /* бургер вправо */
  .topbar .nav-burger { margin-left: auto !important; }
}

/* HM_A11Y_CONTRAST_FIX_v1 */
html.a11y .btn,
html.a11y button,
html.a11y .chip,
html.a11y .badge {
  color: #000 !important;
}

/* тёмные кнопки/плашки — делаем читаемыми */
html.a11y .btn.status,
html.a11y .btn.status.small,
html.a11y .btn.btn-dark,
html.a11y .btn.dark,
html.a11y .dark,
html.a11y .bg-dark {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}

/* зелёные/синие кнопки — держим контраст (белый текст) */
html.a11y .btn.contact,
html.a11y .btn.contact.small {
  color: #fff !important;
}

/* ссылки в чёрном + подчёркивание уже есть, но усилим */
html.a11y a {
  text-decoration-thickness: 2px !important;
}

/* чтобы текст на тёмных блоках не “проваливался” */
html.a11y .muted {
  color: #111 !important;
}

/* HM_A11Y_CONTACT_MODAL_FIX_v1 */
/* В A11Y режиме: в модалке "Связаться" делаем кнопки читаемыми */
html.a11y .modal a.btn,
html.a11y .modal button.btn,
html.a11y [data-modal="contact"] a.btn,
html.a11y [data-modal="contact"] button.btn {
  color: #fff !important;
  text-decoration: none !important;      /* убираем чёрное подчёркивание на кнопках */
}

/* если есть тёмная кнопка "Позвонить/Маршрут" — там тоже белый текст */
html.a11y .modal a.btn.status,
html.a11y [data-modal="contact"] a.btn.status,
html.a11y .modal a.btn.dark,
html.a11y [data-modal="contact"] a.btn.dark,
html.a11y .modal a.btn-call,
html.a11y [data-modal="contact"] a.btn-call {
  color: #fff !important;
}

/* подчёркивание оставляем только для обычных ссылок в тексте, не для кнопок */
html.a11y .modal a:not(.btn),
html.a11y [data-modal="contact"] a:not(.btn) {
  text-decoration: underline !important;
}

/* HM_A11Y_CONTACT_CBTN_FIX_v1 */
/* В A11Y режиме кнопки в модалке "Связаться" должны оставаться кнопками, а не "чёрными подчёркнутыми ссылками" */
html.a11y #modal-contact a.cbtn,
html.a11y #modal-contact a.cbtn:visited,
html.a11y #modal-contact a.cbtn:hover,
html.a11y #modal-contact a.cbtn:active {
  color: #fff !important;
  text-decoration: none !important;
}

/* если внутри есть <u>/<span> и т.п. — тоже без подчёркивания */
html.a11y #modal-contact a.cbtn * {
  color: inherit !important;
  text-decoration: none !important;
}

/* обычные текстовые ссылки в модалке (если есть) — подчёркивание оставим */
html.a11y #modal-contact a:not(.cbtn) {
  text-decoration: underline !important;
}

/* HM_A11Y_MODAL_CONTACT_FIX_v2 */
/* В A11Y режиме: всё, что выглядит как кнопка в модалке "Связаться", должно читаться */
html.a11y #modal-contact a.cbtn,
html.a11y #modal-contact a.btn,
html.a11y #modal-contact button.cbtn,
html.a11y #modal-contact button.btn,
html.a11y #modal-contact a[class*="cbtn"],
html.a11y #modal-contact a[class*="btn"] {
  color: #fff !important;
  text-decoration: none !important;
}

/* если внутри есть span/u/etc с принудительным цветом/подчёркиванием — ломаем это */
html.a11y #modal-contact a.cbtn *,
html.a11y #modal-contact a.btn *,
html.a11y #modal-contact a[class*="cbtn"] *,
html.a11y #modal-contact a[class*="btn"] * {
  color: inherit !important;
  text-decoration: none !important;
}

/* обычные текстовые ссылки (если вдруг есть) — оставим подчёркнутыми */
html.a11y #modal-contact a:not(.cbtn):not(.btn):not([class*="cbtn"]):not([class*="btn"]) {
  text-decoration: underline !important;
}

/* HM_A11Y_MODAL_CONTACT_FIX_v3 */
/* В A11Y режиме модалка "Связаться": кнопки должны быть белыми и без подчёркивания */
html.a11y #modal-contact a.cbtn,
html.a11y #modal-contact a.cbtn:visited,
html.a11y #modal-contact a.cbtn:hover,
html.a11y #modal-contact a.cbtn:active {
  color: #fff !important;
  text-decoration: none !important;
}
html.a11y #modal-contact a.cbtn * {
  color: inherit !important;
  text-decoration: none !important;
}

/* На всякий случай: глобально для кнопок cbtn в A11Y (чтобы не перебивалось правилом html.a11y a {...}) */
html.a11y a.cbtn {
  color: #fff !important;
  text-decoration: none !important;
}
