:root{
  --bg:#111214;
  --panel:#17181b;
  --text:#e7e5e4;
  --muted:#a1a1aa;
  --gold:#d4af37;
  --line:#2a2b2f;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,Arial,sans-serif}
a{color:var(--text);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 16px}

/* Header */
.site-header{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(17,18,20,.9);backdrop-filter:saturate(120%) blur(6px);z-index:20}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-weight:800;letter-spacing:.3px;font-size:20px}
.site-header nav a{margin:0 10px;color:var(--muted);white-space:nowrap}
.site-header .cta{padding:8px 14px;border:1px solid var(--gold);color:var(--gold);border-radius:12px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:24px 0;margin-top:48px;color:var(--muted)}

/* Full-bleed секция */
.fullbleed{
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
}

/* Hero */
.hero{
  background:
    linear-gradient(180deg, rgba(212,175,55,.08), rgba(212,175,55,0) 45%),
    radial-gradient(1200px 420px at 25% 0, rgba(212,175,55,.14), rgba(0,0,0,0) 60%),
    url('/img/hero.jpg') center/cover no-repeat;
  border-bottom:1px solid var(--line);
}
.hero .hero-content{padding:92px 0 64px}
.hero h1{font-size:40px;margin:0 0 12px}
.hero p{color:var(--muted);max-width:700px}
.hero-actions{margin-top:20px;display:flex;gap:12px}

/* Buttons */
.btn{background:var(--gold);color:#111;padding:12px 16px;border-radius:12px;border:0;display:inline-block;font-weight:600}
.btn.ghost{background:transparent;border:1px solid var(--gold);color:var(--gold)}
.hero-actions .btn{min-width:220px;text-align:center}

/* Sections / Cards */
.section{padding:36px 0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:.2s transform}
.card:hover{transform:translateY(-2px)}

/* Витрина: кадрируем без полос */
.card-image{
  background:#000;
  aspect-ratio: 4 / 3;
  width:100%;
  display:block;
  overflow:hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.card-image img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.card-body{padding:14px}
.card-body h3{margin:0 0 6px}
.muted{color:var(--muted)}
.price, .price-big{color:var(--gold);font-weight:700}
.price-big{font-size:22px;margin:12px 0}

/* Filters */
.filters{display:grid;grid-template-columns:1fr 180px 180px 140px 140px 120px;gap:10px;margin:14px 0 20px}
.filters input, .filters select{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:10px;border-radius:12px}

/* Detail page */
.back{margin:16px 0}
.detail{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}
.detail-gallery img{width:100%;border-radius:14px;border:1px solid var(--line)}
.detail-gallery .thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.detail-gallery .thumbs img{
  width:100%;
  height:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:8px;
  border:1px solid var(--line);
}

.detail-info h1{margin-top:0}
.spec{list-style:none;padding:0;margin:12px 0;color:var(--muted)}
.included{list-style:disc;margin:12px 0 0 18px;line-height:1.7}

.chip-row{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);padding:8px 12px;border-radius:999px;background:var(--panel);color:var(--muted)}
.steps ol{line-height:1.9}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-form input, .contact-form textarea{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:10px;border-radius:12px}
.contact-form label{display:block;margin:8px 0 6px}
.consent{display:flex;align-items:center;gap:8px;margin:10px 0 14px}
.alert.ok{border:1px solid #2f8f46;background:#102115;color:#87ffb1;padding:10px;border-radius:12px}
.alert.info{border:1px solid rgba(212,175,55,.45);background:#16140d;color:#e8e0c8;padding:10px;border-radius:12px}

/* Пакеты */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}
.plan h3{margin:0 0 6px}
.plan .price{font-size:22px;color:var(--gold);font-weight:700;margin:8px 0 12px}
.plan ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.7}
.plan .btn{width:100%;margin-top:14px}

/* Мини-калькулятор */
.calc-mini{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px}

/* === Калькулятор / формы === */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.form-grid label{
  display:block;
  margin:6px 0;
  color:var(--muted);
}

/* БАЗОВЫЕ ПОЛЯ ФОРМЫ (исключаем checkbox/radio) */
.form-grid select,
.form-grid input:not([type=checkbox]):not([type=radio]),
.form-grid textarea,
.calc-mini input:not([type=checkbox]):not([type=radio]),
.calc-mini textarea{
  width:100%;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--text);
  padding:12px 14px;
  border-radius:12px;
  min-height:44px;
  font-size:16px;
  -webkit-appearance:none;
  appearance:none;
}
.form-grid textarea{min-height:90px}
.actions{display:flex;gap:10px;margin-top:12px}

/* ЧЕКБОКСЫ */
input[type=checkbox]{
  width:auto;
  min-height:auto;
  padding:0;
  background:transparent;
  border:0;
  accent-color: var(--gold);
}

/* Тумблеры */
.switch{
  display:flex;align-items:center;gap:10px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:10px 12px;min-height:44px
}
.switch input{display:none}
.switch .track{
  width:46px;height:26px;border-radius:999px;border:1px solid var(--line);
  background:#0f1012;position:relative;flex:0 0 auto;
}
.switch .thumb{
  position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;
  background:#444;transition:transform .15s ease, background .15s ease;
}
.switch input:checked + .track .thumb{
  transform:translateX(20px);background:var(--gold);
}
.switch span{color:var(--text)}

/* Шаги над формой */
.steps-bar{display:flex;gap:8px;margin:0 0 12px}
.step-pill{border:1px solid var(--line);color:var(--muted);padding:6px 10px;border-radius:999px;font-size:12px}
.step-pill.active{color:var(--text);border-color:#3a3b40}

/* Инпут файлов */
.form-grid input[type=file]{
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--muted);
  padding:10px;
  border-radius:12px;
  min-height:44px;
  font-size:14px;
}

/* Floating Action Buttons */
.fabs{
  position: fixed;
  right: 18px;
  bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 50;
}
.fab{
  width: 54px; height: 54px;
  border-radius: 50%;
  background: var(--panel);
  border: 1px solid var(--line);
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
  display: inline-block;
  transition: transform .15s ease;
  background-position: center; background-repeat: no-repeat; background-size: 60%;
}
.fab:hover{ transform: translateY(-2px); }
.fab-call{
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%23d4af37" viewBox="0 0 24 24"><path d="M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.02-.24 11.36 11.36 0 003.56.57 1 1 0 011 1v3.61a1 1 0 01-1 1A17 17 0 013 5a1 1 0 011-1h3.61a1 1 0 011 1 11.36 11.36 0 00.57 3.56 1 1 0 01-.24 1.02l-2.32 2.21z"/></svg>');
}
.fab-wa{
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%23d4af37" viewBox="0 0 24 24"><path d="M20.52 3.48A11.87 11.87 0 0012 0 12 12 0 002.05 18.05L0 24l6-2.05A12 12 0 0012 24a12 12 0 008.52-20.52zM12 22a10 10 0 01-5.1-1.4l-.37-.22-3.55 1.2 1.2-3.55-.22-.37A10 10 0 1122 12 10 10 0 0112 22zm5.5-7.3c-.3-.15-1.77-.86-2.05-.96s-.47-.15-.67.15-.76.96-.94 1.16-.35.22-.65.08a8.21 8.21 0 01-2.42-1.49 9 9 0 01-1.67-2.07c-.17-.3 0-.46.13-.61s.3-.35.45-.52a2 2 0 00.3-.52.56.56 0 00-.02-.52c-.06-.15-.67-1.61-.92-2.2s-.49-.51-.67-.52h-.57a1.1 1.1 0 00-.8.37 3.35 3.35 0 00-1.05 2.48 5.82 5.82 0 001.21 3.08 13.3 13.3 0 004.69 4.52c .56 .31 1.01 .5 1.36 .64a3.28 3.28 0 003.03 .19 2.48 2.48 0 001.62 -1.13 2 2 0 00 .14 -1.13c -.06 -.11 -.26 -.18 -.55 -.33z"/></svg>');
}
/* NEW: Email floating button */
.fab-mail{
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%23d4af37" viewBox="0 0 24 24"><path d="M20 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V6a2 2 0 00-2-2zm0 2l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"/></svg>');
}

/* Responsive (tablets & phones) */
@media (max-width:900px){
  /* Safe-area (iOS) */
  .site-header{padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right);}
  .site-header .container{padding-left: calc(16px + env(safe-area-inset-left)); padding-right: calc(16px + env(safe-area-inset-right));}

  /* Шапка -> на 2–3 строки, ничего не режется */
  .header-inner{flex-wrap:wrap;height:auto;padding:8px 0;row-gap:10px}
  .brand{font-size:18px;flex:1 1 auto;min-width:0}
  .site-header .cta{
    order:2;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:14px;padding:6px 10px;white-space:nowrap;
    max-width:100%;
  }
  .site-header nav{
    order:3;width:100%;
    display:flex;gap:12px;overflow-x:auto;padding:4px 0;margin:0 -4px;
  }
  .site-header nav a{margin:0;flex:0 0 auto;padding:0 4px}

  /* Герой */
  .hero .hero-content{padding:64px 0 44px}
  .hero h1{font-size:32px}

  /* Сетка и карточки */
  .grid{grid-template-columns:1fr 1fr}
  .card-body h3{font-size:18px;line-height:1.25;word-break:break-word;hyphens:auto}

  /* Фильтры — 2 колонки */
  .filters{grid-template-columns:1fr 1fr}

  /* Детальная */
  .detail{grid-template-columns:1fr}

  /* Формы */
  .contact-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}

/* Очень узкие экраны: уводим CTA на отдельную строку на 100% ширины */
@media (max-width:430px){
  .header-inner{flex-wrap:wrap;row-gap:10px}
  .site-header .cta{
    order:2;
    display:block;
    width:100%;
    flex:0 0 100%;
    text-align:center;
    padding:8px 12px;
    font-size:14px;
  }
  .site-header nav{order:3;width:100%}
}

@media (max-width:360px){
  .site-header .cta{font-size:13px;padding:6px 10px}
  .hero h1{font-size:28px}
  .grid{grid-template-columns:1fr}
  .card-body h3{font-size:16px}
}

/* === Hero actions: на мобильных кнопки в колонку === */
@media (max-width:700px){
  .hero-actions{
    display:flex;
    flex-direction: column;  /* принудительно столбиком */
    gap:12px;
  }
  .hero-actions .btn{
    display:block;           /* перебиваем inline-block */
    width:100%;              /* на всю ширину */
    min-width:0;             /* снимаем 220px */
    text-align:center;
  }
}

/* ======== ДО/ПОСЛЕ ======== */
.ba-grid-xl{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
}
@media (max-width:700px){
  .ba-grid-xl{ grid-template-columns:1fr; }
}

.ba-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}

.ba-body{ padding:12px }

/* compare box */
.ba-compare{
  position:relative;
  aspect-ratio: 4 / 3;
  background:#000;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  --pos:40%;
  touch-action:none; /* не даём странице скроллиться во время свайпа */
}
.ba-compare__img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: contain;
  object-position: center;
  background:#000;
  user-select:none; pointer-events:none;
}
.ba-compare__img--top{
  clip-path: polygon(0 0, var(--pos) 0, var(--pos) 100%, 0 100%);
}

.ba-compare__line{
  position:absolute; top:0; bottom:0; left:var(--pos);
  width:1px; background:rgba(255,255,255,.45);
  pointer-events:none;
  transition:left .15s ease;
}

.ba-compare__handle{
  position:absolute; top:50%; left:var(--pos);
  transform:translate(-50%,-50%);
  width:28px; height:28px; border-radius:50%;
  border:1px solid var(--line); background:var(--panel);
  box-shadow:0 2px 10px rgba(0,0,0,.45);
  cursor: ew-resize;
  transition:left .15s ease, transform .15s ease;
}
.ba-compare__handle:focus{ outline:2px solid var(--gold); outline-offset:2px; }
.ba-compare__handle:hover{ transform:translate(-50%,-50%) scale(1.04); }

/* badges */
.ba-badge{
  position:absolute; top:8px; padding:4px 8px;
  border-radius:999px; font-size:12px; line-height:1;
  background:rgba(0,0,0,.55); color:#fff;
  border:1px solid rgba(255,255,255,.2);
  z-index:2;
}
.ba-badge--left{ left:8px; }
.ba-badge--right{ right:8px; }

/* === ДОБАВЛЕНО: группы полей, подсказки, радио, степпер и итоги === */
.fieldset{
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  background:var(--panel);
  margin:14px 0;
}
.legend{
  padding:0 8px;
  font-weight:700;
  color:var(--text);
  margin-left:6px;
}

.help{
  margin:6px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

.radio-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.radio{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:transparent;
}
.radio input[type=radio]{accent-color: var(--gold);}

.note{
  margin:8px 0 0;
  padding:10px 12px;
  border:1px solid rgba(212,175,55,.35);
  background:#16140d;
  color:#e8e0c8;
  border-radius:12px;
  font-size:14px;
}

/* мобайл-степпер */
.show-on-mobile{ display:none; }
.hide-on-mobile{ display:block; }
.stepper-mobile{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;margin:8px 0 12px;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);
}
.stepper-dots{display:flex;gap:6px;align-items:center}
.stepper-dot{
  width:8px;height:8px;border-radius:50%;
  background:#3a3b40;opacity:.8;flex:0 0 auto;
}
.stepper-dot.active{background:var(--gold);opacity:1}
.stepper-label{color:var(--muted);font-size:13px}
@media (max-width:700px){
  .show-on-mobile{ display:block; }
  .hide-on-mobile{ display:none; }
}

/* Итоги заявки */
.summary-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
}
.summary-card h4{
  margin:0 0 8px;
  font-size:16px;
}
.summary-list{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:6px 12px;
  font-size:14px;
}
.summary-list dt{ opacity:.75; }
.summary-list dd{ margin:0; text-align:right; }
@media (max-width:600px){
  .summary-list{ grid-template-columns: 1fr; }
  .summary-list dd{ text-align:left; }
}