/* ============ ОРГАНИЗМ · Главная страница ============ */
.veil{position:absolute;inset:0;pointer-events:none;}
.bgslot{position:absolute;inset:0;}
.bgslot img{width:100%;height:100%;object-fit:cover;display:block;}
#kontakty,#chat,#zapis{scroll-margin-top:72px;}

/* — Hero — */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;
  justify-content:center;background:var(--surface-dark);overflow:hidden;}
.hero .veil{background:rgba(10,10,10,.55);}
.hero-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  gap:var(--sp-8);text-align:center;padding:var(--sp-16) var(--gutter);}
.hero-in .h1{color:var(--surface);max-width:20ch;text-wrap:balance;}
.hero-logo{width:220px;height:auto;display:block;}

/* — Прайс — */
.price-list{max-width:640px;margin:0 auto;}
.price-row{display:flex;align-items:baseline;gap:var(--sp-4);padding:var(--sp-4) 0;}
.price-row .dots{flex:1;min-width:24px;border-bottom:1px solid var(--line);}
.price-row .price{font:500 18px/1 var(--font-mono);color:var(--ink);white-space:nowrap;}
.price-more{display:flex;justify-content:center;margin-top:var(--sp-8);}

/* — Фото-ленты — */
.strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:340px;background:var(--brand-hover);}
.strip.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.strip img{min-width:0;width:100%;height:100%;object-fit:cover;display:block;}

/* — О нас — */
.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;}
.about-card{position:relative;z-index:2;background:var(--surface-2);border-radius:var(--radius);
  padding:var(--sp-12);margin-right:-72px;box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4);}
.about-card .btn{margin-top:var(--sp-2);}
.about-offer{font:600 16px/1.4 var(--font-text);color:var(--ink);}
.about-photo{min-width:0;height:560px;}
.about-photo img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);display:block;}

/* — Отзывы — */
.rev-wrap{max-width:600px;margin:0 auto;}
.rev-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-6);}
.rev-head{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;}
.rev-score{font:600 40px/1 var(--font-display);color:var(--ink);}
.rev-item{border-top:1px solid var(--line);padding-top:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);}
.rev-meta{display:flex;align-items:center;gap:var(--sp-3);}
.rev-name{font:600 15px/1.2 var(--font-text);color:var(--ink);}
.rev-date{margin-left:auto;}
.rev-card .btn{align-self:center;}

/* — Промо-CTA — */
.promo{position:relative;background:var(--surface-dark);overflow:hidden;}
.promo .veil{background:rgba(10,10,10,.7);}
.promo-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:var(--sp-6);padding:var(--sp-24) var(--gutter);}
.promo-in .h2{color:var(--surface);max-width:24ch;text-wrap:balance;}
.promo-in .lead{color:rgba(255,255,255,.75);}
.promo-arrow{transform:translateX(56px);margin:-8px 0 -14px;}

/* — Контакты — */
.contacts-grid{display:grid;grid-template-columns:minmax(0,1fr) 560px;gap:var(--sp-16);align-items:start;}
.c-col{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start;}
.c-col .h2{margin-bottom:var(--sp-4);}
.c-row{margin:0;font:400 17px/1.6 var(--font-text);color:var(--ink-2);}
.c-row b{color:var(--ink);font-weight:600;}
.c-phone{font:500 19px/1.2 var(--font-mono);color:var(--ink);text-decoration:none;}
.c-phone:hover{color:var(--ink);text-decoration:underline;}
.c-vk{width:40px;height:40px;border-radius:50%;background:var(--brand);color:#FFFFFF;
  display:inline-flex;align-items:center;justify-content:center;font:700 13px/1 var(--font-text);
  text-decoration:none;margin-top:var(--sp-2);}
.c-vk:hover{background:var(--brand-hover);color:#FFFFFF;}
.c-map{position:relative;width:560px;max-width:100%;height:420px;border-radius:var(--radius);overflow:hidden;}
.c-map iframe{width:100%;height:100%;border:0;display:block;}

/* — Онлайн-чат: отдельная секция (свой фон + разделитель от «Контактов») — */
.chat-sec{background:var(--bg);border-top:1px solid var(--line);}
.chat-sub{color:var(--muted);margin-top:var(--sp-3);}

/* ============ Tablet 768–1279 ============ */
@media (max-width:1279px){
  .hero-logo{width:170px;}
  .strip,.strip.cols-4{grid-template-columns:repeat(3,minmax(0,1fr));height:auto;grid-auto-rows:260px;}
  .about-grid{grid-template-columns:minmax(0,4fr) minmax(0,6fr);}
  .about-card{padding:var(--sp-8);margin-right:-48px;}
  .about-photo{height:460px;}
  .contacts-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-8);}
  .c-map{width:100%;height:360px;}
}

/* ============ Mobile <768 ============ */
@media (max-width:767px){
  #kontakty,#chat,#zapis{scroll-margin-top:64px;}
  .hero{min-height:85vh;min-height:85svh;}
  .hero-logo{width:132px;}
  .hero-in{gap:var(--sp-6);padding:var(--sp-12) var(--gutter);}
  .hero-in .btn{width:100%;}
  .price-row{flex-direction:column;align-items:flex-start;gap:var(--sp-1);}
  .price-row .dots{display:none;}
  .price-row .price{font-size:16px;}
  .price-more .btn{width:100%;}
  .strip,.strip.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;grid-auto-rows:180px;}
  .about-grid{grid-template-columns:1fr;gap:var(--sp-6);}
  .about-photo{order:-1;height:300px;}
  .about-card{margin-right:0;padding:var(--sp-6);}
  .about-card .btn{width:100%;}
  .rev-card{padding:var(--sp-6);}
  .rev-card .btn{align-self:stretch;}
  .promo-in{padding:var(--sp-16) var(--gutter);}
  .promo-arrow{transform:translateX(36px) scale(.8);}
  .promo-in .btn{width:100%;}
  .contacts-grid{grid-template-columns:1fr;gap:var(--sp-8);}
  .c-map{height:320px;}
}

/* ============ ОНЛАЙН-ЧАТ · префикс .dirchat-* ============
   FAB чата поднят над круглой кнопкой записи, чтобы не перекрывать CTA страницы. */
.dirchat-fab{position:fixed;right:24px;bottom:100px;z-index:61;
  display:inline-flex;align-items:center;gap:var(--sp-3);height:56px;padding:0 var(--sp-6);
  border:none;border-radius:var(--radius-pill);background:var(--brand);color:var(--surface);
  font:500 16px/1 var(--font-text);cursor:pointer;box-shadow:var(--shadow-xl);transition:background .15s;}
.dirchat-fab:hover{background:var(--brand-hover);}
.dirchat-fab:focus-visible{outline:none;box-shadow:var(--shadow-xl), 0 0 0 3px var(--accent-ring);}
.dirchat-fab-ico{position:relative;width:20px;height:16px;border:2px solid currentColor;
  border-radius:6px 6px 6px 0;flex:none;}
.dirchat-fab-ico::after{content:'';position:absolute;left:-2px;bottom:-6px;width:2px;height:6px;background:currentColor;}
.dirchat-fab-s{display:none;}
.dirchat-panel{position:fixed;right:24px;bottom:168px;z-index:62;
  width:380px;height:min(560px, calc(100dvh - 200px));
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-xl);overflow:hidden;animation:dirchat-in .2s ease;}
.dirchat-panel[hidden]{display:none;}
@keyframes dirchat-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.dirchat-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);
  background:var(--surface);border-bottom:1px solid var(--line);}
.dirchat-av{width:32px;height:32px;font:600 14px/1 var(--font-text);flex:none;} /* модификатор .avatar */
.dirchat-head-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.dirchat-title{font:600 15px/1.2 var(--font-text);color:var(--ink);}
.dirchat-status{display:inline-flex;align-items:center;gap:var(--sp-2);
  font:500 13px/18px var(--font-text);color:var(--muted);}
.dirchat-dot{--dirchat-ok-ring:color-mix(in srgb, var(--ok) 35%, transparent);
  width:10px;height:10px;border-radius:50%;flex:none;}
.dirchat-dot.is-work{background:var(--ok);animation:dirchat-pulse 2s ease-out infinite;}
.dirchat-dot.is-off{background:var(--warn);}
@keyframes dirchat-pulse{0%{box-shadow:0 0 0 0 var(--dirchat-ok-ring);}70%{box-shadow:0 0 0 7px transparent;}100%{box-shadow:0 0 0 0 transparent;}}
.dirchat-x{appearance:none;border:none;background:none;width:48px;height:48px;flex:none;
  display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);
  color:var(--muted);font:400 20px/1 var(--font-text);cursor:pointer;transition:background .15s,color .15s;}
.dirchat-x:hover{background:var(--surface-2);color:var(--ink);}
.dirchat-x:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring);}
.dirchat-plaque{padding:var(--sp-2) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--line);}
.dirchat-tag{text-transform:none;letter-spacing:.02em;} /* модификатор атома .tag */
.dirchat-feed{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4);
  display:flex;flex-direction:column;gap:var(--sp-3);background:var(--bg);}
.dirchat-row{display:flex;align-items:flex-end;gap:var(--sp-2);}
.dirchat-row.is-u{justify-content:flex-end;}
.dirchat-bubble{max-width:82%;padding:var(--sp-3) var(--sp-4);font:400 17px/1.5 var(--font-text);border-radius:var(--radius);}
.dirchat-row.is-a .dirchat-bubble{background:var(--surface);border:1px solid var(--line);
  color:var(--ink-2);border-bottom-left-radius:var(--radius-xs);}
.dirchat-row.is-u .dirchat-bubble{background:var(--brand-soft);color:var(--ink);border-bottom-right-radius:var(--radius-xs);}
.dirchat-bubble mark{background:var(--warn-soft);color:inherit;border-radius:2px;padding:0 2px;}
.dirchat-form{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);}
.dirchat-form[hidden]{display:none;}
.dirchat-form .ffield-inset{max-width:none;}
.dirchat-form .consent{max-width:none;}
.dirchat-cta{width:100%;}
.dirchat-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;opacity:0;}
.dirchat-composer{margin:var(--sp-3) var(--sp-4) var(--sp-4);height:56px;max-width:none;flex:none;}
.dirchat-composer input{font-size:17px;}
.dirchat-composer input::placeholder{color:var(--muted-2);}
.dirchat-send{flex:none;height:100%;border:none;border-left:1px solid var(--line);background:var(--surface);
  color:var(--ink);padding:0 var(--sp-4);font:500 15px/1 var(--font-text);cursor:pointer;transition:background .15s;}
.dirchat-send:hover{background:var(--surface-2);}
.dirchat-send:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--accent-ring);}
.dirchat-toastwrap{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--sp-6);z-index:70;}
.dirchat-toastwrap[hidden]{display:none;}
.dirchat-inline{max-width:640px;margin:0 auto;display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;}
.dirchat-inline .dirchat-head{flex-wrap:wrap;}
.dirchat-inline .dirchat-feed{height:clamp(320px, 50vh, 480px);flex:none;}
@media (max-width:640px){
  .dirchat-fab{right:16px;}
  .dirchat-fab-l{display:none;}
  .dirchat-fab-s{display:inline;}
  .dirchat-panel{top:0;left:0;right:0;bottom:0;width:auto;height:100dvh;border-radius:0;border:none;}
}
@media (prefers-reduced-motion:reduce){
  .dirchat-dot.is-work{animation:none;}
  .dirchat-panel{animation:none;}
  .dirchat-fab,.dirchat-send,.dirchat-x{transition:none;}
}
