: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-top:92px;padding-bottom: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}
/* sizes */
.btn.tiny{padding:8px 10px;border-radius:10px;font-size:12px}
.btn.small{padding:8px 12px;border-radius:10px;font-size:13px}

/* 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{content-visibility:auto; contain-intrinsic-size: 400px 320px;}
.detail-gallery img{content-visibility:auto; contain-intrinsic-size: 800px 600px;}

/* Витрина: кадрируем без полос */
.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;
}

/* Глобальный lazy hint (JS выставит loading=lazy) */
img[loading="lazy"]{}

.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}

/* Каталог/деталь: инфо-чип и инфоблок */
.info-chip{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border:1px solid var(--line);border-radius:12px;
  background:rgba(212,175,55,.06);color:#e8e0c8;line-height:1.35
}
.info-chip .dot{
  width:18px;height:18px;border-radius:50%;
  border:1px solid var(--line);background:var(--panel);
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;opacity:.9
}
.info-chip .text{color:#e8e0c8}
.info-inline{
  display:flex;align-items:center;gap:10px;margin:10px 0 0;
  padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(212,175,55,.06)
}
.info-inline .text{color:#e8e0c8}

/* Прочее */
.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>');
}

/* NEW: Promo FAB (иконка подарка + индикатор) */
.fab-promo{
  position:relative;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23d4af37" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="9" width="17" height="11" rx="2"/><path d="M3.5 12h17"/><path d="M12 9v11"/><path d="M9.5 7c0-1.1.9-2 2-2 .8 0 1.5.5 1.8 1.3"/><path d="M14.5 7c0-1.1-.9-2-2-2-.8 0-1.5.5-1.8 1.3"/></svg>');
}
.fab-promo::after{
  content:"";
  position:absolute;
  top:8px;
  right:8px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(212,175,55,.25);
}

/* Компактная панель акций (promo-dock) */
.promo-dock{
  position:fixed;
  right:86px;
  bottom:18px;
  z-index:49;
  width:min(320px, 92vw);
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 10px 28px rgba(0,0,0,.45);
  padding:10px 12px;
  display:none;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease;
}
.promo-dock.show{
  display:block;
  opacity:1;
  transform:translateY(0);
}
.promo-dock__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.promo-dock__title{
  font-size:13px;
  font-weight:600;
}
.promo-dock__tag{
  font-size:11px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(212,175,55,.08);
  color:var(--gold);
}
.promo-dock__close{
  background:transparent;
  border:0;
  color:var(--muted);
  font-size:16px;
  line-height:1;
  cursor:pointer;
  padding:0 2px;
}
.promo-dock__list{
  list-style:none;
  margin:4px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.promo-dock__item{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:8px 8px;
  border-radius:10px;
  border:1px solid transparent;
  cursor:pointer;
}
.promo-dock__item:hover{
  border-color:var(--gold);
  background:rgba(212,175,55,.04);
}
.promo-dock__icon{
  width:26px;
  height:26px;
  border-radius:999px;
  background:rgba(212,175,55,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.promo-dock__icon-inner{
  width:16px;
  height:16px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23d4af37" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3.5" y="9" width="17" height="11" rx="2"/><path d="M3.5 12h17"/><path d="M12 9v11"/></svg>');
  background-repeat:no-repeat;
  background-position:center;
  background-size:100%;
}
.promo-dock__main{
  flex:1;
}
.promo-dock__name{
  margin:0 0 2px;
  font-size:13px;
}
.promo-dock__note{
  margin:0;
  font-size:12px;
  color:var(--muted);
}

@media (max-width:700px){
  .promo-dock{
    right:12px;
    left:12px;
    bottom:84px; /* не перекрывается FAB и safe-area */
  }
}

/* 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));}

  /* Герой: добавляем боковые отступы, чтобы текст не лип к краю */
  .hero .hero-content{
    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;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .site-header nav::-webkit-scrollbar{ display:none; }
  .site-header nav a{margin:0;flex:0 0 auto;padding:0 4px}

  /* Герой */
  .hero .hero-content{padding-top:64px; padding-bottom: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}
  .filters input, .filters select{font-size:16px}

  /* Детальная */
  .detail{grid-template-columns:1fr}

  /* Формы */
  .contact-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}

  /* Общие действия — столбцом и кликабельно на тачах */
  .actions{flex-direction:column}
  .actions .btn{width:100%}

  /* Больше «воздуха» секциям */
  .section{padding:28px 0}

  /* Низ страницы не перекрывается FAB */
  main.container{padding-bottom:84px}
}

@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%}
  /* Чуть компактнее заголовки и секции */
  .section{padding:24px 0}
  h2{font-size:20px;line-height:1.25;margin:0 0 10px}
  /* Слайдер сравнения — крупнее ручка для пальца */
  .ba-compare__handle{width:32px;height:32px}
}

@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}
  /* Контейнер капельку уже, чтобы не ловить горизонтальный скролл */
  .container{padding:0 14px}
}

/* === Hero actions: на мобильных кнопки в колонку === */
@media (max-width:700px){
  .hero-actions{
    display:flex;
    flex-direction: column;
    gap:12px;
  }
  .hero-actions .btn{
    display:block;
    width:100%;
    min-width:0;
    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}

/* Итоги заявки */
.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; }
}

/* Пошаговая навигация на мобильных */
.stepper-actions{ display:none; }
@media (max-width:700px){
  .show-on-mobile{ display:block; }
  .hide-on-mobile{ display:none; }
  .js-step{ display:none; }
  .js-step.is-current{ display:block; }
  .stepper-actions{
    display:flex;
    gap:10px;
    margin-top:12px;
    position:sticky;
    bottom:0;
    background: linear-gradient(180deg, rgba(17,18,20,0) 0, rgba(17,18,20,1) 22px) , var(--bg);
    padding-top:12px;
    padding-bottom:6px;
  }
}

/* Комфорт слабых устройств */
@media (prefers-reduced-motion: reduce){ *{animation:none!important; transition:none!important} }

/* === Подсказки и напоминания === */

/* Coachmark для "До/После" — JS ставит left/top и управляет появлением (крупнее и центр по ручке) */
.ba-hint{
  position:absolute; z-index:5; pointer-events:auto;
  background: rgba(0,0,0,.78); color:#fff;
  border:1px solid rgba(255,255,255,.22);
  padding:10px 12px; border-radius:12px; font-size:14px; line-height:1.35; font-weight:500;
  backdrop-filter:saturate(120%) blur(6px);
  box-shadow:0 10px 28px rgba(0,0,0,.45);
  transform: translate(-50%, -130%);
  white-space:nowrap;
  opacity:0; transition: opacity .22s ease, transform .22s ease;
}
.ba-hint b{ color:#ffd975; font-weight:700; }
.ba-hint.show{ opacity:1; transform: translate(-50%,-138%); }

/* Пульс вокруг ручки */
.ba-hint__pulse{
  position:absolute; width:30px; height:30px; border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  left:50%; top:50%; transform:translate(-50%,-50%);
  animation: bah-pulse 1.2s ease-out infinite; pointer-events:none;
}
@keyframes bah-pulse{
  from{ opacity:.9; transform:translate(-50%,-50%) scale(1); }
  to  { opacity:0;  transform:translate(-50%,-50%) scale(1.28); }
}

/* Универсальные подсказки (каталог/деталь/герой/exit-intent) — крупнее и max-width */
.ui-hint{
  position:absolute; z-index:40; pointer-events:auto;
  background: rgba(23,24,27,.94); color:#e7e5e4;
  border:1px solid rgba(212,175,55,.35);
  padding:12px 14px; border-radius:12px; font-size:14px; line-height:1.45;
  box-shadow:0 12px 28px rgba(0,0,0,.45);
  opacity:0; transform: translateY(6px);
  transition: opacity .22s ease, transform .22s ease;
  max-width:360px;
}
.ui-hint.show{ opacity:1; transform: translateY(0); }

.ui-hint__arrow{ position:absolute; width:0; height:0; border:7px solid transparent; }

/* снизу элемента (стрелка вверх) */
.ui-hint.ui-hint--top .ui-hint__arrow{
  top:-7px; left:28px; border-bottom-color: rgba(212,175,55,.35);
}
.ui-hint.ui-hint--top .ui-hint__arrow::after{
  content:""; position:absolute; left:-7px; top:-6px;
  width:0;height:0;border:7px solid transparent;border-bottom-color: rgba(23,24,27,.94);
}
/* сверху элемента (стрелка вниз) */
.ui-hint.ui-hint--bottom .ui-hint__arrow{
  bottom:-7px; left:28px; border-top-color: rgba(212,175,55,.35);
}
.ui-hint.ui-hint--bottom .ui-hint__arrow::after{
  content:""; position:absolute; left:-7px; top:-8px;
  width:0;height:0;border:7px solid transparent;border-top-color: rgba(23,24,27,.94);
}

/* === Подсказки каталога и карточки (новые) === */
.catalog-hint{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 12px; border:1px solid var(--line); border-radius:12px;
  background:rgba(212,175,55,.06); margin:10px 0 16px;
}
.catalog-hint__text{ color:#e8e0c8; line-height:1.35 }
.catalog-hint__cta{
  padding:8px 10px; border:1px solid var(--gold); border-radius:10px;
  color:var(--gold); white-space:nowrap
}

.detail-hint{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 12px; border:1px solid var(--line); border-radius:12px;
  background:rgba(212,175,55,.06); margin:10px 0 14px;
}
.detail-hint__text{ color:#e8e0c8; line-height:1.35 }
.detail-hint__cta{
  padding:8px 10px; border:1px solid var(--gold); border-radius:10px;
  color:var(--gold); white-space:nowrap
}

@media (max-width:700px){
  .catalog-hint, .detail-hint{ flex-direction:column; align-items:flex-start }
  .catalog-hint__cta, .detail-hint__cta{ width:100%; text-align:center }
}

/* === Calc "спасатор" (напоминание) — для initCalcReminder из site.js === */
.calc-reminder{
  position: fixed;
  right: 18px;
  bottom: 90px;
  z-index: 45;
  width: min(90vw, 360px);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(0,0,0,.45);
  padding: 12px;
  display: none;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease;
}
.calc-reminder.visible{
  display: block;
  opacity: 1;
  transform: translateY(0);
}
.calc-reminder__text{ margin: 0 0 10px; color: var(--text); }
.calc-reminder__actions{ display: flex; gap: 8px; }
.calc-reminder__close{
  position: absolute; right: 8px; top: 6px;
  background: transparent; border: 0; color: var(--muted);
  font-size: 18px; line-height: 1; cursor: pointer;
}
@media (max-width:700px){
  .calc-reminder{ left: 12px; right: 12px; bottom: 84px; } /* не перекрывается FAB */
}
/* --- FIX: горизонтальные отступы для hero-текста на мобиле --- */
@media (max-width: 900px){
  /* усиливаем специфичность и перестраховываемся !important */
  .hero > .hero-content{
    padding-left: calc(16px + env(safe-area-inset-left)) !important;
    padding-right: calc(16px + env(safe-area-inset-right)) !important;
  }
}

@supports not (padding-left: calc(16px + env(safe-area-inset-left))){
  @media (max-width: 900px){
    .hero > .hero-content{
      padding-left: 16px !important;
      padding-right: 16px !important;
    }
  }
}
/* Coachmark (до/после) — мобильный вид */
@media (max-width:700px){
  .ba-hint{
    white-space: normal;                 /* перенос строк вместо обрезки */
    max-width: min(88vw, 360px);         /* влезает внутрь карточки */
    padding: 12px 14px;                  /* чуть больше воздуха */
    font-size: 14px;
    left: 50% !important;                /* безопасно по центру */
    transform: translate(-50%, -138%);   /* остаёмся "над" ручкой */
  }
}
/* === PROMO: Акция «Ваза в подарок» =============================== */
.promo-overlay{
  position: fixed; inset: 0; z-index: 70;
  display: none;
  background: rgba(0,0,0,.55);
  backdrop-filter: saturate(120%) blur(4px);
  opacity: 0;
  transition: opacity .18s ease;
}
.promo-overlay.show{ display:block; opacity:1; }

/* Карточка промо (десктоп — по центру) */
.promo-card{
  position: fixed; left:50%; top:50%;
  transform: translate(-50%,-50%) scale(.98);
  width: min(92vw, 640px);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.55);
  color: var(--text);
  opacity: 0;
  transition: transform .22s ease, opacity .22s ease;
  overflow: hidden;
}
.promo-overlay.show .promo-card{ opacity:1; transform: translate(-50%,-50%) scale(1); }

/* Внутренность */
.promo-inner{ display:grid; grid-template-columns: 1fr 1.1fr; gap: 0; }
.promo-media{
  background:#000; border-right:1px solid var(--line);
  min-height: 100%;
}
.promo-media img{
  display:block; width:100%; height:100%; object-fit:cover;
}
.promo-body{ padding:16px; }
.promo-title{ margin:0 0 10px; font-size:22px; line-height:1.25; }
.promo-note{ margin:10px 0 0; color: var(--muted); font-size:12px; line-height:1.35; }
.promo-actions{ display:flex; gap:10px; margin-top:14px; }
.promo-close{
  position:absolute; right:10px; top:8px;
  background:transparent; border:0; color:var(--muted);
  font-size:18px; cursor:pointer; line-height:1;
}

/* Мобилка — формат bottom-sheet */
@media (max-width:700px){
  .promo-card{
    left: 12px; right: 12px; top: auto; bottom: 0;
    transform: translateY(8px);
    width: auto;
    border-radius: 14px;
    margin-bottom: calc(12px + env(safe-area-inset-bottom));
  }
  .promo-overlay.show .promo-card{ transform: translateY(0); }
  .promo-inner{ grid-template-columns: 1fr; }
  .promo-media{ border-right:0; border-bottom:1px solid var(--line); aspect-ratio: 16/9; }
  .promo-title{ font-size:18px; }
  .promo-actions{ flex-direction:column; }
  .promo-actions .btn{ width:100%; }
}
/* === Советы и опыт (новый блок) ============================ */
.advice-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.advice-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .2s ease;
}
.advice-card:hover{
  transform:translateY(-2px);
}
.advice-card__img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  background:#000;
}
.advice-card__body{
  padding:14px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  flex-grow:1;
}
.advice-card__title{
  margin:0 0 6px;
  font-size:18px;
  line-height:1.3;
  color:var(--text);
}
.advice-card__meta{
  color:var(--muted);
  font-size:13px;
  margin-bottom:10px;
}
.advice-card__btn{
  display:inline-block;
  align-self:flex-start;
  font-size:14px;
  color:var(--gold);
  border:1px solid var(--gold);
  border-radius:10px;
  padding:8px 12px;
  transition:.15s background ease, .15s color ease;
}
.advice-card__btn:hover{
  background:var(--gold);
  color:#111;
}

/* В нижней части блока — кнопка для лид-магнита */
.advice-strip-footer{
  margin-top:18px;
  text-align:right;
}
.advice-strip-footer .btn{
  background:transparent;
  color:var(--gold);
  border:1px solid var(--gold);
  border-radius:12px;
  padding:10px 16px;
  font-weight:600;
  transition:.15s background ease;
}
.advice-strip-footer .btn:hover{
  background:var(--gold);
  color:#111;
}

/* Мобильная адаптация блока "Советы и опыт" */
@media (max-width:900px){
  .advice-strip{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:600px){
  .advice-strip{
    grid-template-columns:1fr;
  }
  .advice-card__title{font-size:17px;}
  .advice-card__meta{font-size:12px;}
  .advice-card__btn{width:100%;text-align:center;}
  .advice-strip-footer{text-align:center;}
}

/* === Админка: тулбар ссылок в редакторе советов ================== */
.admin-editor-toolbar{
  margin:12px 0 8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(23,24,27,.9);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.admin-editor-toolbar__label{
  font-size:13px;
  color:var(--muted);
  margin-right:4px;
}
.admin-editor-toolbar .btn.tiny{
  font-size:12px;
  padding:6px 10px;
}

/* Ссылки в блоке "Полезно дальше" визуально кликабельные */
.article-next a{
  text-decoration: underline;
  text-underline-offset: 2px;
}

.advice-body a{
  color: var(--gold);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 1px;
  transition: border-color .15s ease, color .15s ease, opacity .15s ease;
}
.advice-body a:hover{
  color: #f5d97a;
  border-bottom-color: #f5d97a;
  opacity: .95;
}

/* === Карточки "Наши работы" — показываем фото целиком без обрезки === */

.work-card .work-card__image{
  /* отменяем фиксированное соотношение сторон и фон, заданные для .card-image */
  aspect-ratio: auto;
  padding-top: 0;
  height: auto;
  background: none;
}

.work-card .work-card__image img{
  display: block;
  width: 100%;
  height: auto !important;   /* перебиваем height:100% у .card-image img */
  object-fit: contain;       /* фото не режется, видно целиком */
}

/* плейсхолдер, если фото нет */
.work-card__image.work-card__image--empty{
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--muted);
  background: linear-gradient(135deg, #1f1f23, #151519);
}