:root{
  --bg:#0b1220;
  --card:#101a33;
  --text:#eef2ff;
  --muted:#c6d0ff;
  --accent:#4f8cff;
  --ok:#22c55e;
  --shadow: 0 18px 60px rgba(0,0,0,.35);
  --radius: 18px;

  --fs-base: 16px;
  --fs-lead: 16px;
  --fs-list: 14px;
  --fs-micro: 13px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: var(--fs-base);
  background: radial-gradient(1200px 800px at 20% 0%, #13224c 0%, var(--bg) 55%);
  color:var(--text);
  line-height:1.5;
}



a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:0 18px}

.topbar{
  position:sticky; top:0; z-index:30;
  backdrop-filter: blur(10px);
  background: rgba(11,18,32,.72);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.topbar-inner{
  display:flex; gap:14px; align-items:center; justify-content:space-between;
  padding:12px 0;
}
.brand{display:flex; align-items:center; gap:12px; min-width:240px}





.logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 40px;
  height: 40px;
  border-radius: 14px;


  background: radial-gradient(circle at 30% 0, #111827 0, #020617 70%);


  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 28px rgba(0,0,0,.35);

  flex: 0 0 auto;
  overflow: hidden; /* чтобы большой SVG не вылезал за рамки */
}

/* сама картинка-логотип */
.logo img {
  display: block;
  width: 100%;   /* логотип вписывается в контейнер */
  height: 100%;
  object-fit: contain; /* вписать без искажений, с полями если надо */
}















.brand-title{font-weight:900}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}

.contact{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end;
  text-align:right;
}
.phone{
  font-weight:900; letter-spacing:.2px;
  padding:10px 12px; border-radius:14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
}
.hours{font-size:12px;color:var(--muted)}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px; border-radius:14px;
  text-decoration:none;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
  user-select:none; white-space:nowrap;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18);}
.btn.primary{
  background: linear-gradient(135deg, var(--accent), #88a8ff);
  border-color: rgba(255,255,255,.20);
  color:#07102a; font-weight:900;
}
.btn.ok{
  background: linear-gradient(135deg, var(--ok), #93f7b9);
  border-color: rgba(255,255,255,.20);
  color:#05210f; font-weight:900;
}

.hero{padding: 38px 0 18px;}
.grid{display:grid; grid-template-columns: 1.18fr .92fr; gap:18px; align-items:start}
@media (max-width: 920px){ .grid{grid-template-columns:1fr} .brand{min-width:auto} }

.card{
  background: rgba(16,26,51,.72);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.hero-card{padding:22px}
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12px; color:var(--muted);
  padding:6px 10px; border-radius:999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
}
h1{
  margin: 12px 0 10px;
  font-size: clamp(26px, 3.4vw, 44px);
  line-height:1.12;
  letter-spacing:-.3px;
}
.lead{margin:0 0 16px; color:var(--muted); font-size:var(--fs-lead); max-width:68ch}
.value{display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 18px}
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px; border-radius:999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--text);
  font-size: 13px;
}
.pill strong{font-weight:900}
.cta{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:8px}
.micro{margin-top:10px; font-size:var(--fs-micro); color:var(--muted)}

.side{padding:18px}
.side-title{font-weight:900; margin:2px 0 10px}
.list{margin:0; padding-left:18px; color:var(--muted); font-size:var(--fs-list)}
.list li{margin:8px 0}



.catalog .mini.product .photo { aspect-ratio: 4 / 3; } /* под фото агрегатов обычно лучше, чем 16/10 */
.catalog .mini .meta {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.catalog .mini .list { margin-top: 10px; }

.btn.sm{
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 13px;
}

/* Фото (плейсхолдер) */
.photo{
  position:relative;
  border-radius: 16px;
  overflow:hidden;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  aspect-ratio: 16 / 10;
  margin-bottom: 12px;
}
.photo img{
  width:100%; height:100%; object-fit: cover; display:block;
  filter: saturate(1.05) contrast(1.02);
}
.photo .ph{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  padding: 14px;
  text-align:center;
  color: var(--muted);
  font-size: 13px;
  background: linear-gradient(135deg, rgba(79,140,255,.18), rgba(255,255,255,.02));
}
.photo.has-img .ph{display:none}

.section{padding: 18px 0}
.section h2{margin:0 0 12px; font-size:20px; letter-spacing:-.2px}

.chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.chip{
  appearance:none;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  color: var(--text);
  padding:8px 10px;
  border-radius:999px;
  font-size:13px;
  cursor:pointer;
}
.chip.active{background: rgba(79,140,255,.22); border-color: rgba(79,140,255,.40)}
.note{
  margin-top:12px; color:var(--muted); font-size:13px;
  padding:12px; border-radius:16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
}

.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
@media (max-width: 920px){ .cards{grid-template-columns:1fr} }
.mini{
  padding:14px 14px 12px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
}
.mini .t{font-weight:900; margin:0 0 6px}
.mini .d{margin:0; color:var(--muted); font-size:13px}

.steps{display:grid; grid-template-columns:repeat(6,1fr); gap:10px}
@media (max-width:1100px){ .steps{grid-template-columns:repeat(3,1fr)} }
@media (max-width:640px){ .steps{grid-template-columns:1fr} }
.step{
  padding:12px 12px 10px; border-radius:16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
}
.num{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:10px;
  background: rgba(79,140,255,.25);
  border: 1px solid rgba(79,140,255,.35);
  font-weight:900; margin-bottom:10px;
}
.step .t{font-weight:900; margin:0 0 6px}
.step .d{margin:0; color:var(--muted); font-size:13px}

details{
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding: 12px 12px;
}
details + details{margin-top:10px}
summary{cursor:pointer; font-weight:900}
details p{margin:10px 0 0; color:var(--muted); font-size:13px}

.footer{
  padding: 24px 0 78px;
  color: var(--muted);
  font-size: 12px;
  border-top: 1px solid rgba(255,255,255,.10);
  margin-top: 12px;
}
.footer-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:14px}
@media (max-width:920px){ .footer-grid{grid-template-columns:1fr} }

.sticky{
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  padding:10px 12px;
  background: rgba(11,18,32,.78);
  border-top: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
}
.sticky-inner{
  max-width:1100px; margin:0 auto;
  display:flex; gap:10px; align-items:center; justify-content:space-between;
}
.sticky small{color:var(--muted)}
@media (min-width: 921px){ .sticky{display:none} }

@media (prefers-reduced-motion: reduce){
  .btn{transition:none}
  .btn:hover{transform:none}
}

/* ===== Responsive navigation and touch targets ===== */
html{
  scroll-behavior:smooth;
  overflow-x:clip;
}
body{min-width:0}
.brand > div:last-child{min-width:0}
.brand-title,.brand-sub{overflow-wrap:anywhere}
.phone a{display:block}
.btn,.chip{min-height:44px}
.chip{padding:10px 12px}

@media (max-width: 640px){
  .container{padding-inline:12px}
  .topbar-inner{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:8px 0;
  }
  .brand{
    width:100%;
    min-width:0;
    gap:10px;
  }
  .logo{
    width:44px;
    height:44px;
    border-radius:13px;
  }
  .brand-title{
    font-size:14px;
    line-height:1.25;
  }
  .brand-sub{
    font-size:11px;
    line-height:1.35;
  }
  .contact{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    text-align:center;
  }
  .contact > div{
    grid-column:1 / -1;
    min-width:0;
  }
  .contact > .btn:only-of-type{
    grid-column:1 / -1;
  }
  .phone{
    width:100%;
    padding:8px 10px;
  }
  .contact .btn{
    width:100%;
    min-width:0;
    padding:10px 8px;
    white-space:normal;
    line-height:1.25;
    font-size:13px;
  }
  .hero{padding:22px 0 12px}
  .hero-card,.side{padding:16px}
  .kicker{white-space:normal}
  h1{font-size:clamp(28px,10vw,36px)}
  .pill{padding:9px 10px}
  .sticky-inner > div{min-width:0}
  .sticky-inner .btn{flex:0 0 auto}
}

@media (max-width: 420px){
  .hours{display:none}
  .contact > div{grid-column:auto}
  .contact > .btn:only-of-type{grid-column:auto}
  .phone{height:100%;display:flex;align-items:center;justify-content:center}
  .phone a{font-size:14px}
  .sticky-inner > div{display:none}
  .sticky-inner .btn{width:100%}
}


/* ===== Breadcrumbs and keyboard focus ===== */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:0 0 10px;
  color:var(--muted);
  font-size:12px;
}
.breadcrumbs a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
}
.breadcrumbs a:hover{border-bottom-color:currentColor}
.breadcrumbs [aria-current="page"]{color:var(--text)}

:where(a,button,summary):focus-visible{
  outline:3px solid rgba(147,197,253,.85);
  outline-offset:3px;
}

@media (max-width:420px){
  .contact > div{grid-column:1 / -1}
  .contact > .btn:only-of-type{grid-column:1 / -1}
}
