:root{
  --bg:#060606;
  --surface:#141416;
  --surface-2:#1c1c1f;
  --accent:#2EEA6D;
  --accent-glow:rgba(46,234,109,.55);
  --accent-glow-soft:rgba(46,234,109,.25);
  --text:#F5F5F2;
  --muted:#8B8B92;
  --danger:#E2735C;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100vh;
  background:var(--bg);
  font-family:'Inter',sans-serif;
  color:var(--text);
}

/* ---------- Шапка / меню ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(6,6,6,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header-inner{
  max-width:1080px;
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  font-family:'Inter',sans-serif;
  font-weight:800;
  font-size:18px;
  color:var(--text);
  text-decoration:none;
  letter-spacing:-.01em;
}
.brand .dot{color:var(--accent);}

.nav-desktop{display:flex;gap:28px;}
.nav-desktop a{
  color:var(--muted);
  text-decoration:none;
  font-size:14.5px;
  font-weight:500;
  transition:color .2s ease;
}
.nav-desktop a:hover{color:var(--text);}
.nav-desktop a.active{color:var(--accent);}

.hamburger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:32px;height:32px;
  background:none;border:none;cursor:pointer;padding:0;
}
.hamburger span{
  display:block;width:100%;height:2px;
  background:var(--text);border-radius:2px;
  transition:transform .25s ease, opacity .25s ease;
}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  position:fixed;top:0;left:0;bottom:0;
  width:78%;max-width:300px;
  background:var(--surface);
  z-index:200;
  padding:22px 18px;
  transform:translateX(-100%);
  transition:transform .3s ease;
  display:flex;flex-direction:column;gap:4px;
  border-right:1px solid rgba(255,255,255,.06);
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{
  color:var(--text);
  text-decoration:none;
  font-size:16px;font-weight:600;
  padding:14px 12px;border-radius:10px;
  transition:background .2s ease, color .2s ease;
}
.mobile-menu a:hover{background:var(--surface-2);}
.mobile-menu a.active{background:var(--surface-2);color:var(--accent);}
.mobile-menu .close-btn{
  align-self:flex-end;background:none;border:none;
  color:var(--muted);font-size:26px;cursor:pointer;
  margin-bottom:8px;line-height:1;padding:6px;
}

.mobile-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.55);
  z-index:150;opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.mobile-overlay.open{opacity:1;pointer-events:auto;}

@media (max-width:860px){
  .nav-desktop{display:none;}
  .hamburger{display:flex;}
}

/* ---------- Общая разметка страницы ---------- */
main.page{
  min-height:calc(100vh - 66px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 20px;
}

.stage{width:100%;max-width:460px;text-align:center;}

h1{
  font-family:'Inter',sans-serif;
  font-weight:800;
  font-size:clamp(26px,6.4vw,38px);
  line-height:1.25;
  letter-spacing:-.01em;
  margin:0 0 44px;
  color:var(--text);
}

/* ---------- Кнопка-маяк ---------- */
.beacon{position:relative;width:160px;height:160px;margin:0 auto 36px;}

.ring{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid var(--accent-glow);
  box-shadow:0 0 18px var(--accent-glow-soft);
  animation:pulse 2.6s ease-out infinite;
  pointer-events:none;
}
.ring.r2{animation-delay:.85s;}
.ring.r3{animation-delay:1.7s;}
@keyframes pulse{
  0%{transform:scale(.7);opacity:.9;}
  100%{transform:scale(1.4);opacity:0;}
}

.circle-btn{
  position:absolute;inset:24px;border-radius:50%;
  border:2px solid var(--accent);
  background:rgba(46,234,109,.06);
  color:var(--accent);
  font-family:'Unbounded',sans-serif;
  font-weight:700;font-size:20px;letter-spacing:.02em;
  cursor:pointer;
  text-shadow:0 0 10px var(--accent-glow), 0 0 22px var(--accent-glow-soft);
  box-shadow:0 0 22px var(--accent-glow-soft), inset 0 0 18px rgba(46,234,109,.12);
  animation:breathe 2.6s ease-in-out infinite;
  transition:transform .2s ease;
}
.circle-btn:hover{transform:scale(1.04);}
.circle-btn:active{transform:scale(.97);}
.circle-btn:focus-visible{outline:2px solid var(--text);outline-offset:4px;}
.circle-btn.used{opacity:.4;pointer-events:none;animation:none;}
@keyframes breathe{
  0%,100%{box-shadow:0 0 22px var(--accent-glow-soft), inset 0 0 18px rgba(46,234,109,.12);}
  50%{box-shadow:0 0 40px var(--accent-glow), inset 0 0 24px rgba(46,234,109,.2);}
}

/* ---------- Чат ---------- */
.chat{
  background:var(--surface);
  border:1px solid rgba(255,255,255,.06);
  border-radius:20px;
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .5s ease, opacity .4s ease, margin .5s ease;
}
.chat.open{max-height:900px;opacity:1;margin-top:4px;overflow:visible;}

.chat-head{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-align:left;
}
.avatar{
  width:34px;height:34px;border-radius:50%;
  background:rgba(46,234,109,.12);
  color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:'Inter',sans-serif;font-weight:800;font-size:13px;
  flex-shrink:0;
}
.chat-head-name{font-size:14px;font-weight:600;color:var(--text);}
.chat-head-status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;}
.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent-glow);}

.messages{
  padding:18px;display:flex;flex-direction:column;gap:10px;
  max-height:380px;overflow-y:auto;text-align:left;
}

.bubble{
  max-width:82%;padding:10px 14px;border-radius:16px;
  font-size:14.5px;line-height:1.5;animation:rise .35s ease;
}
@keyframes rise{
  from{opacity:0;transform:translateY(6px);}
  to{opacity:1;transform:translateY(0);}
}
.bubble.guide{background:var(--surface-2);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start;}
.bubble.user{background:var(--accent);color:#04140A;font-weight:500;border-bottom-right-radius:4px;align-self:flex-end;}

.typing{
  align-self:flex-start;display:flex;gap:4px;
  padding:12px 14px;background:var(--surface-2);
  border-radius:16px;border-bottom-left-radius:4px;
}
.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite ease-in-out;}
.typing span:nth-child(2){animation-delay:.2s;}
.typing span:nth-child(3){animation-delay:.4s;}
@keyframes blink{0%,80%,100%{opacity:.25;}40%{opacity:1;}}

.composer{display:flex;align-items:center;gap:8px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.06);}
.composer.hidden{display:none;}
.composer input{
  flex:1;background:var(--surface-2);border:1px solid transparent;border-radius:999px;
  color:var(--text);font-family:'Inter',sans-serif;font-size:14.5px;
  padding:11px 16px;outline:none;transition:border-color .2s ease;
}
.composer input::placeholder{color:var(--muted);}
.composer input:focus{border-color:var(--accent);}
.composer input.invalid{border-color:var(--danger);}

.send-btn{
  width:40px;height:40px;flex-shrink:0;border-radius:50%;border:none;
  background:var(--accent);color:#04140A;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:transform .15s ease, opacity .15s ease;
}
.send-btn:hover{transform:scale(1.05);}
.send-btn:disabled{opacity:.4;cursor:default;transform:none;}
.send-btn svg{width:17px;height:17px;}

.error-text{font-size:12px;color:var(--danger);padding:0 18px 12px;text-align:left;display:none;}
.error-text.show{display:block;}

/* ---------- Простые контентные страницы (отзывы/контакты) ---------- */
.content{max-width:640px;width:100%;text-align:left;}
.content h1{text-align:center;margin-bottom:8px;}
.content .lead{text-align:center;color:var(--muted);margin:0 0 40px;font-size:15px;}

.review-card{
  background:var(--surface);border:1px solid rgba(255,255,255,.06);
  border-radius:16px;padding:20px 22px;margin-bottom:16px;
}
.review-card .stars{color:var(--accent);font-size:14px;margin-bottom:8px;letter-spacing:2px;}
.review-card p{margin:0 0 10px;font-size:14.5px;line-height:1.6;color:var(--text);}
.review-card .author{font-size:13px;color:var(--muted);}

.contact-list{display:flex;flex-direction:column;gap:14px;}
.contact-item{
  display:flex;align-items:center;gap:14px;
  background:var(--surface);border:1px solid rgba(255,255,255,.06);
  border-radius:14px;padding:16px 18px;
  text-decoration:none;color:var(--text);
  transition:border-color .2s ease;
}
.contact-item:hover{border-color:var(--accent);}
.contact-icon{
  width:38px;height:38px;border-radius:50%;
  background:rgba(46,234,109,.12);color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;flex-shrink:0;
}
.contact-label{font-size:12px;color:var(--muted);margin:0 0 2px;}
.contact-value{font-size:15px;font-weight:600;margin:0;}
