/*
Theme Name: Spacious pro-child
Theme URI: https://example.com/themes/spacious/
Description: Дочерняя тема Spacious-pro-child — NeboLUKS 6-B «Терракотовый Компакт»
Author: ThemeGrill
Author URI: https://example.com/wordpress-themes/
Template:     spacious-pro
Version: 1.2.0
Text Domain: spacious-pro-child
*/

/* ═══════════════════════════════════════════════════════════════
   NeboLUKS 6-B: ТЕРРАКОТОВЫЙ КОМПАКТ (30.07.2026)
   Палитра, типографика, кнопки, 22-век эффекты, секции
   ═══════════════════════════════════════════════════════════════ */

/* ─── 1. CSS Custom Properties (Brandbook 6-B) ─── */
:root {
  --nb-bg: #FBF7F0;
  --nb-bg-alt: #F3ECE0;
  --nb-bg-soft: #F8F2E8;
  --nb-warm: #EFE5D5;
  --nb-accent: #E07856;
  --nb-accent-light: #D9694A;
  --nb-accent-soft: #FBE7DE;
  --nb-text: #3A342E;
  --nb-heading: #2A241E;
  --nb-border: #E3D8C7;
  --nb-shadow: rgba(224,120,86,.20);
  --nb-radius: 13px;
  --nb-radius-btn: 50px;
  --nb-glass: rgba(251,247,240,.62);
}

/* ─── 2. Base / Reset ─── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Manrope', -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--nb-text);
  background: transparent;
  line-height: 1.6;
  position: relative;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: 'Unbounded', sans-serif;
  color: var(--nb-heading);
  line-height: 1.15;
  font-weight: 700;
}

h1 { font-size: clamp(26px, 4.4vw, 40px); letter-spacing: -.01em; }
h2 { font-size: clamp(21px, 3.4vw, 32px); margin-bottom: 10px; }
h3 { font-size: 20px; margin-bottom: 6px; font-family: 'Manrope', sans-serif; font-weight: 800; }

/* ─── 3. Typography helpers ─── */
.lead {
  font-size: clamp(16px, 1.9vw, 18px);
  color: #6b6157;
  max-width: 620px;
}

.eyebrow {
  display: inline-block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nb-accent);
  margin-bottom: 11px;
}

/* ─── 4. Layout ─── */
.wrap {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 22px;
}

section {
  position: relative;
  z-index: 1;
  padding: 48px 0;
}

.alt { background: var(--nb-bg-alt); }
.center { text-align: center; }
.center .lead { margin: 0 auto; }

/* ─── 5. 3D-портал (фон страницы) ─── */
html::before {
  content: "";
  position: fixed;
  inset: -50%;
  width: 200%;
  height: 200%;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 50%, transparent 58%, rgba(224,120,86,.045) 100%),
    radial-gradient(circle at 22% 28%, rgba(224,120,86,.10) 0%, transparent 40%),
    radial-gradient(circle at 78% 22%, rgba(217,105,74,.09) 0%, transparent 38%),
    radial-gradient(circle at 50% 82%, rgba(224,120,86,.08) 0%, transparent 40%),
    radial-gradient(circle at 12% 68%, rgba(217,105,74,.06) 0%, transparent 30%);
  animation: nbNebulaDrift 26s ease-in-out infinite alternate;
}

@keyframes nbNebulaDrift {
  0%   { transform: translate(0,0) rotate(0deg) scale(1); }
  50%  { transform: translate(1.2%,-1.2%) rotate(.8deg) scale(1.02); }
  100% { transform: translate(-1.2%,1%) rotate(-.8deg) scale(.98); }
}

@media (prefers-reduced-motion: reduce) {
  html::before { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════
   HEADER — ПОЛНОСТЬЮ ПЕРЕДЕЛАН
   ═══════════════════════════════════════════════════════════════ */

/* Скрываем старый header-meta (верхняя полоска с телефоном) */
#header-meta { display: none !important; }

/* Переопределяем весь header */
.site-header {
  background: rgba(255,255,255,.85) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--nb-border) !important;
  box-shadow: 0 1px 12px rgba(0,0,0,.04) !important;
}

.site-header .header-post-title-container { display: none !important; }

/* Убираем лишние обёртки spacious */
#header-text-nav-wrap,
#header-left-section,
#header-right-section {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}

#header-text-nav-container {
  padding: 6px 0 !important;
}

.inner-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 22px;
}

/* Логотип */
#header-logo-image {
  margin-right: 16px;
}

#header-logo-image img {
  max-height: 48px;
  width: auto;
}

/* Название компании рядом с лого */
.nb-site-title {
  font-family: 'Manrope', sans-serif !important;
  font-size: 18px;
  font-weight: 800;
  color: var(--nb-heading);
  text-decoration: none;
  letter-spacing: -.3px;
  white-space: nowrap;
}

.nb-site-title:hover {
  color: var(--nb-accent);
}

/* Правая часть хедера: город + телефон */
.nb-header-right {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}

/* Селектор города — веер */
.nb-city-selector {
  position: relative;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
}

.nb-city-current {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--nb-bg-alt);
  border-radius: 50px;
  color: var(--nb-text);
  transition: background .2s;
}

.nb-city-current:hover {
  background: var(--nb-border);
}

.nb-city-current::after {
  content: "▾";
  font-size: 10px;
  color: var(--nb-accent);
  transition: transform .25s ease;
}

.nb-city-selector.open .nb-city-current::after {
  transform: rotate(180deg);
}

.nb-city-fan {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 200px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border: 1px solid var(--nb-border);
  border-radius: var(--nb-radius);
  padding: 6px;
  box-shadow: 0 8px 30px rgba(0,0,0,.10);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px) scale(.96);
  transform-origin: top right;
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  z-index: 99999;
}

.nb-city-selector.open .nb-city-fan {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.nb-city-fan a {
  display: block;
  padding: 8px 14px;
  border-radius: 8px;
  color: var(--nb-text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: background .15s, color .15s;
}

.nb-city-fan a:hover {
  background: var(--nb-accent-soft);
  color: var(--nb-accent);
}

.nb-city-fan a.is-current {
  font-weight: 700;
  color: var(--nb-accent);
  background: var(--nb-accent-soft);
}

/* Телефон в хедере */
.nb-header-phone {
  font-family: 'Manrope', sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: var(--nb-heading);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s;
}

.nb-header-phone:hover {
  color: var(--nb-accent);
}

/* Навигационное меню spacious — скрываем (не нужно) */
#header-right-section .main-navigation,
#header-right-section .menu-toggle {
  display: none !important;
}

/* ─── 6. Кнопки (исправленный контраст) ─── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #fff !important;
  border-radius: var(--nb-radius-btn);
  padding: 15px 34px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .3px;
  text-decoration: none;
  box-shadow: 0 4px 14px var(--nb-shadow);
  transition: transform .3s ease, box-shadow .3s ease;
  border: none;
  cursor: pointer;
  min-height: 48px;
}

.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(224,120,86,.32);
  text-decoration: none;
  animation-play-state: paused;
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 4px 14px rgba(224,120,86,.20), 0 0 0 rgba(224,120,86,0); }
  50% { box-shadow: 0 4px 14px rgba(224,120,86,.20), 0 0 22px rgba(224,120,86,.45); }
}

@media (prefers-reduced-motion: reduce) { .btn { animation: none; } }

/* Ghost-кнопка: тёмный текст на светлом фоне для контраста */
.btn-ghost {
  background: transparent;
  color: var(--nb-heading) !important;
  border: 2px solid var(--nb-accent);
  box-shadow: none;
  animation: none;
}

.btn-ghost:hover {
  background: var(--nb-accent);
  color: #fff !important;
  animation: none;
}

/* Ghost-кнопка на голо-картах: более тёмный текст */
.nb-holo-card .btn-ghost {
  color: var(--nb-heading) !important;
  border-color: var(--nb-accent);
  background: rgba(255,255,255,.5);
}

.nb-holo-card .btn-ghost:hover {
  background: var(--nb-accent);
  color: #fff !important;
}

/* Кнопка "Позвонить" в hero — отдельный стиль */
.hero .phone-link + .btn {
  /* уже ок — терракотовый фон, белый текст */
}

.btn-sm {
  padding: 13px 24px;
  font-size: 15px;
  min-height: 44px;
}

/* Кнопки в ценообразовании (на голо-картах) — полная ширина */
.price .btn.btn-sm {
  width: 100%;
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #fff !important;
}

/* ─── 7. Голо-карты (glassmorphism) ─── */
.nb-holo-card {
  background: var(--nb-glass);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(224,120,86,.30);
  border-radius: var(--nb-radius);
  box-shadow: 0 3px 8px rgba(0,0,0,.04), 0 10px 26px rgba(224,120,86,.10);
  position: relative;
  overflow: hidden;
  padding: 22px;
  transition: transform .5s cubic-bezier(.34,1.56,.64,1), box-shadow .5s ease, border-color .4s ease;
}

/* E3: Districts — no backdrop blur for readability */
.districts .nb-holo-card {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.nb-holo-card:hover {
  transform: translateY(-8px);
  border-color: rgba(224,120,86,.55);
  box-shadow: 0 14px 40px rgba(224,120,86,.20), 0 0 26px rgba(217,105,74,.22);
}

/* ─── 8. Эффект печати (fade-in при скролле) ─── */
.nb-fade-in {
  opacity: 0;
  transform: translateY(30px) scale(.98);
  filter: blur(5px);
  transition: opacity .65s cubic-bezier(.16,1,.3,1),
              transform .65s cubic-bezier(.16,1,.3,1),
              filter .65s ease;
}

.nb-fade-in.nb-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  .nb-fade-in { opacity: 1 !important; transform: none !important; filter: none !important; transition: none; }
}

/* ─── 9. Header (шапка) — sticky ─── */
.site-header.sticky-header {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 20px rgba(0,0,0,.08);
}

/* ─── 10. HERO ─── */
.hero { padding: 44px 0 50px; }
.hero-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 34px; align-items: center; }
.hero h1 { margin-bottom: 14px; }
.hero h1 .city { color: var(--nb-accent); }
.hero .lead { margin-bottom: 18px; }

.hero .btn { animation: pulseGlow 3s ease-in-out infinite; }
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  align-items: center;
  margin-bottom: 14px;
}

.phone-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 18px;
  color: var(--nb-heading);
  text-decoration: none;
}

.phone-link:hover { color: var(--nb-accent); }

.stars { color: var(--nb-accent); font-size: 18px; letter-spacing: 2px; }

/* Slider */
.slider {
  position: relative;
  border-radius: var(--nb-radius);
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(224,120,86,.16);
  aspect-ratio: 4/3;
  background: var(--nb-warm);
}

.slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
  opacity: 0;
  transition: opacity .8s ease;
}

.slide.active { opacity: 1; }

.slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slide .tag {
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 2;
  background: rgba(255,255,255,.85);
  color: var(--nb-accent);
  font-weight: 800;
  font-size: 13px;
  padding: 6px 14px;
  border-radius: 50px;
  backdrop-filter: blur(4px);
}

.slide .cap {
  position: relative;
  z-index: 2;
  margin: 18px;
  background: rgba(255,255,255,.92);
  border-radius: 11px;
  padding: 12px 16px;
  font-weight: 700;
  color: var(--nb-heading);
  font-size: 15px;
  backdrop-filter: blur(4px);
}

.slider-nav {
  display: flex;
  gap: 9px;
  margin-top: 13px;
  justify-content: center;
}

.slider-nav button {
  width: 38px;
  height: 12px;
  padding: 16px 3px;
  border-radius: 50px;
  border: none;
  background: var(--nb-border);
  cursor: pointer;
  transition: background .3s;
}

.slider-nav button.active { background: var(--nb-accent); }

/* District tags (чипы районов) */
.district-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.district-tags a {
  background: var(--nb-bg-alt);
  border: 1px solid var(--nb-border);
  border-radius: 50px;
  padding: 9px 16px;
  font-size: 14px;
  color: var(--nb-text);
  text-decoration: none;
  transition: all .3s;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  opacity: 0;
  transform: translateY(8px);
  animation: chipIn .5s ease forwards;
}

.district-tags a:hover {
  border-color: var(--nb-accent);
  color: var(--nb-accent);
  transform: translateY(-2px);
}

@keyframes chipIn { to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  .district-tags a { opacity: 1; transform: none; animation: none; }
}

/* ─── 11. TRUST BAR ─── */
.trustbar {
  padding: 22px 0;
  background: var(--nb-bg-soft);
  border-top: 1px solid var(--nb-border);
  border-bottom: 1px solid var(--nb-border);
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  text-align: center;
}

.trust-item .num {
  font-family: 'Unbounded', sans-serif;
  font-size: 25px;
  font-weight: 700;
  color: var(--nb-accent);
  line-height: 1;
}

.trust-item .lbl {
  font-size: 13px;
  color: #7a6f63;
  margin-top: 6px;
}

/* ─── 12. РАЙОНЫ ─── */
.districts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-top: 30px;
}

.districts .nb-holo-card {
  padding: 20px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.districts .dphoto {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  object-fit: cover;
  flex: 0 0 auto;
  box-shadow: 0 4px 12px rgba(224,120,86,.18);
}

.districts .dtext { min-width: 0; }

.districts .dname {
  font-weight: 800;
  color: var(--nb-heading);
  font-size: 20px;
  margin-bottom: 5px;
}

.districts .dcase { font-size: 15px; color: #6b6157; }
.districts .dcase b { color: var(--nb-accent); }

/* ─── 13. УСЛУГИ (карточки) ─── */
.cards { display: grid; gap: 20px; margin-top: 30px; }
.cards.c3 { grid-template-columns: repeat(3, 1fr); }

.card-ico {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  background: var(--nb-accent-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 27px;
  margin-bottom: 16px;
}

.card-accent {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  object-fit: cover;
  opacity: .9;
  box-shadow: 0 3px 10px rgba(224,120,86,.2);
}

/* ─── 14. ГАЛЕРЕЯ ─── */
.gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 30px;
}

.gallery .ph {
  aspect-ratio: 1/1;
  border-radius: var(--nb-radius);
  overflow: hidden;
  position: relative;
  background: var(--nb-warm);
  transition: transform .4s, box-shadow .4s;
}

.gallery .ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: blur(8px);
  transition: filter .6s ease, transform .5s ease;
}

.gallery .ph.nb-visible img,
.gallery .ph img.loaded { filter: blur(0); }

.gallery .ph:hover {
  transform: translateY(-5px);
  box-shadow: 0 9px 30px rgba(224,120,86,.16), 0 0 22px rgba(217,105,74,.18);
}

.gallery .ph:hover img { transform: scale(1.05); }

.gallery .ph .lbl {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(transparent, rgba(42,36,30,.72));
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 22px 12px 10px;
}

/* ─── 15. ПРОЦЕСС (шаги) ─── */
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 30px;
  counter-reset: step;
}

.step {
  position: relative;
  padding: 26px 20px;
  overflow: hidden;
}

.step .step-ph {
  position: absolute;
  right: -10px;
  bottom: -10px;
  width: 70px;
  height: 70px;
  border-radius: 14px;
  object-fit: cover;
  opacity: .16;
  transform: rotate(-8deg);
}

.step::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  top: -14px;
  left: 20px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #fff;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px var(--nb-shadow);
  font-family: 'Unbounded', sans-serif;
  font-size: 14px;
  z-index: 2;
}

/* ─── 16. ЦЕНЫ ─── */
.price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 30px;
}

.price .amt {
  font-family: 'Unbounded', sans-serif;
  font-size: 29px;
  font-weight: 700;
  color: var(--nb-heading);
}

.price .amt small {
  font-size: 15px;
  font-weight: 600;
  color: #8a7d6e;
}

.price .price-ph {
  width: 100%;
  height: 120px;
  border-radius: 10px;
  object-fit: cover;
  margin-bottom: 14px;
  box-shadow: 0 4px 14px rgba(224,120,86,.14);
}

.price ul {
  list-style: none;
  margin: 14px 0;
  font-size: 15px;
}

.price li {
  padding: 7px 0;
  border-bottom: 1px dashed var(--nb-border);
  display: flex;
  gap: 8px;
}

.price li::before { content: "✓"; color: var(--nb-accent); font-weight: 800; }

/* ─── 17. ОТЗЫВЫ ─── */
.reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 30px;
}

.review .who {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 15px;
}

.review .ava {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 17px;
}

.review .name {
  font-weight: 800;
  color: var(--nb-heading);
  font-size: 15px;
}

.review .loc { font-size: 13px; color: #8a7d6e; }

/* ─── 18. FAQ ─── */
.faq-item {
  margin-bottom: 13px;
  border: 1px solid var(--nb-border);
  border-radius: var(--nb-radius);
  background: #fff;
  overflow: hidden;
}

.faq-item summary {
  padding: 17px 22px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--nb-heading);
  font-size: 16px;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
  content: "+";
  color: var(--nb-accent);
  font-size: 22px;
  font-weight: 800;
}

.faq-item[open] summary::after { content: "–"; }

.faq-item .ans {
  padding: 0 22px 18px;
  color: #6b6157;
  font-size: 15px;
}

/* ─── 19. КОНТАКТЫ ─── */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 30px;
  align-items: stretch;
}

.map-ph {
  position: relative;
  aspect-ratio: 16/10;
  border-radius: var(--nb-radius);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  box-shadow: 0 10px 30px rgba(224,120,86,.16);
}

.map-ph img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.map-ph .map-ov {
  position: relative;
  z-index: 2;
  margin: 16px;
  background: rgba(255,255,255,.92);
  border-radius: 11px;
  padding: 14px 16px;
  font-weight: 700;
  color: var(--nb-heading);
  font-size: 14px;
  text-align: left;
  backdrop-filter: blur(4px);
}

.contact-info p { margin-bottom: 10px; font-size: 15px; }
.contact-info strong { color: var(--nb-heading); }

/* ─── 20. Sticky CTA-бар (мобильный) ─── */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9998;
  background: rgba(251,247,240,.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--nb-border);
  padding: 11px 15px;
  gap: 11px;
  box-shadow: 0 -2px 16px rgba(0,0,0,.08);
}

.sticky-cta a {
  flex: 1;
  text-align: center;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 15px;
}

.sticky-cta .call {
  background: var(--nb-bg-alt);
  color: var(--nb-heading);
  border-radius: var(--nb-radius-btn);
  font-weight: 700;
}

.sticky-cta .calc {
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #fff;
  border-radius: var(--nb-radius-btn);
  font-weight: 700;
}

/* ─── 21. FOOTER ─── */
footer {
  background: var(--nb-bg-alt);
  border-top: 1px solid var(--nb-border);
  padding: 38px 0;
  color: #7a6f63;
  font-size: 14px;
  position: relative;
  z-index: 1;
}

footer a { color: var(--nb-accent); }

/* ─── 22. Sticky Phone (мобильная кнопка) ─── */
.nb-sticky-phone {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light));
  color: #FFF;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(224,120,86,.35);
  transition: transform .3s, box-shadow .3s;
}

.nb-sticky-phone:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 24px rgba(224,120,86,.45);
}

.nb-sticky-phone svg {
  width: 28px;
  height: 28px;
  fill: currentColor;
}

@media (max-width: 768px) {
  .nb-sticky-phone { display: flex; }
}

@media (max-width: 600px) {
  .nb-sticky-phone { bottom: 88px; }
}

/* ─── 23. Формы WPForms ─── */
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form textarea {
  border: 2px solid var(--nb-border);
  border-radius: var(--nb-radius);
  padding: 14px 16px;
  background: rgba(255,255,255,.9);
}

.wpforms-form input:focus,
.wpforms-form textarea:focus {
  border-color: var(--nb-accent);
  box-shadow: 0 0 0 3px rgba(224,120,86,.15);
}

/* ─── 24. Адаптивность ─── */

/* Планшет: 600-900px */
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .cards.c3,
  .price-grid,
  .reviews { grid-template-columns: 1fr 1fr; }
  .gallery { grid-template-columns: 1fr 1fr 1fr; }
  .districts { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .nb-site-title { font-size: 15px; }
  .nb-header-phone { font-size: 15px; }
}

/* Мобильный: < 600px */
@media (max-width: 600px) {
  section { padding: 38px 0; }
  .cards.c3,
  .price-grid,
  .reviews,
  .gallery,
  .districts,
  .steps { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .sticky-cta { display: flex; }
  body { padding-bottom: 74px; }
  .nb-site-title { display: none; }
  .nb-header-phone { font-size: 14px; }
  .nb-city-current { font-size: 12px; padding: 4px 10px; }
}

/* Малый мобильный: < 480px */
@media (max-width: 480px) {
  .btn { min-height: 44px; padding: 13px 28px; font-size: 15px; }
  .district-tags a { min-height: 44px; font-size: 13px; padding: 7px 13px; }
  .hero-actions { flex-direction: column; }
  .hero-actions .btn { width: 100%; }
  .phone-link { font-size: 16px; }
}

/* ─── 25. Подавление устаревших стилей родительской темы ─── */
.site-header .header-post-title-container { display: none !important; }
.breadcrumb { display: none !important; }
#main { padding-top: 0 !important; }
.page-header { display: none !important; }
.entry-title { display: none !important; }
#header-text { display: none !important; }
#header-right-sidebar { display: none !important; }

/* ─── 26. Кастомная верхняя панель (nb-top-bar) ─── */
.nb-top-bar {
  position: relative;
  z-index: 9999;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--nb-border);
}

.nb-top-bar .nb-site-title {
  font-family: 'Manrope', sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: var(--nb-heading);
  text-decoration: none;
  letter-spacing: -.3px;
  white-space: nowrap;
}

.nb-top-bar .nb-site-title:hover {
  color: var(--nb-accent);
}

.nb-top-bar .custom-logo {
  max-height: 40px;
  width: auto;
}

/* Скрываем старый header-meta и дублирующий spacious header */
#header-meta { display: none !important; }
#header-text-nav-container { display: none !important; }

/* Селектор города в топ-баре */
.nb-top-bar .nb-city-selector { position: relative; }
.nb-top-bar .nb-city-current {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--nb-bg-alt);
  border-radius: 50px;
  color: var(--nb-text);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s;
  user-select: none;
}
.nb-top-bar .nb-city-current:hover { background: var(--nb-border); }
.nb-top-bar .nb-city-current::after {
  content: "▾";
  font-size: 10px;
  color: var(--nb-accent);
  transition: transform .25s ease;
}
.nb-top-bar .nb-city-selector.open .nb-city-current::after { transform: rotate(180deg); }

.nb-top-bar .nb-city-fan {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 200px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border: 1px solid var(--nb-border);
  border-radius: var(--nb-radius);
  padding: 6px;
  box-shadow: 0 8px 30px rgba(0,0,0,.10);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px) scale(.96);
  transform-origin: top right;
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  z-index: 99999;
}
.nb-top-bar .nb-city-selector.open .nb-city-fan {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.nb-top-bar .nb-city-fan a {
  display: block;
  padding: 8px 14px;
  border-radius: 8px;
  color: var(--nb-text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: background .15s, color .15s;
}
.nb-top-bar .nb-city-fan a:hover {
  background: var(--nb-accent-soft);
  color: var(--nb-accent);
}
.nb-top-bar .nb-city-fan a.is-current {
  font-weight: 700;
  color: var(--nb-accent);
  background: var(--nb-accent-soft);
}

.nb-top-bar .nb-header-phone {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 800;
  color: var(--nb-heading);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s;
}
.nb-top-bar .nb-header-phone:hover { color: var(--nb-accent); }

@media (max-width: 600px) {
  .nb-top-bar .nb-site-title { display: none; }
  .nb-top-bar .nb-header-phone { font-size: 14px; }
  .nb-top-bar .nb-city-current { font-size: 12px; padding: 4px 10px; }
}

/* ═══ Блок A: Убить синий (наследие v1) ═══ */
.nebolucs-cta { display: none !important; }
.nebolucs-footer-contacts { background: var(--nb-bg-alt) !important; color: var(--nb-text) !important; }
.nebolucs-footer-contacts h3, .nebolucs-footer-contacts a { color: var(--nb-accent) !important; }
.pum-content .wpforms-submit { background: linear-gradient(135deg, var(--nb-accent), var(--nb-accent-light)) !important; }
blockquote { border-left-color: var(--nb-accent) !important; }


/* ═══════════════════════════════════════════
   UNIFIED GALLERY — wp-block-gallery Grid
   ═══════════════════════════════════════════ */

/* Gallery grid: adaptive columns (override WP flex) */
.wp-block-gallery {
    display: grid !important;
    flex-wrap: nowrap !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin: 24px 0;
    padding: 0;
    list-style: none !important;
}

/* Reset nested image widths from WP core */
.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
    width: auto !important;
    margin: 0 !important;
}

/* Gallery figure wrapper */
.wp-block-gallery .wp-block-image,
.wp-block-gallery figure {
    margin: 0;
    overflow: hidden;
    border-radius: 6px;
    position: relative;
    cursor: pointer;
}

/* Gallery images */
.wp-block-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4/3;
    border-radius: 6px;
    transition: transform 0.35s ease, filter 0.35s ease;
}

/* Hover: zoom + slight darken */
.wp-block-gallery figure:hover img {
    transform: scale(1.05);
    filter: brightness(0.85);
}

/* Standalone images (wp-block-image outside gallery) — cursor hint */
.wp-block-image:not(.wp-block-gallery .wp-block-image) figure {
    cursor: pointer;
    border-radius: 6px;
    overflow: hidden;
    transition: filter 0.3s;
}
.wp-block-image:not(.wp-block-gallery .wp-block-image) figure:hover img {
    filter: brightness(0.9);
}

/* Gallery captions: hidden in grid, shown only in lightbox overlay */
.wp-block-gallery figcaption {
    display: none !important;
}
.wp-block-gallery .blocks-gallery-item__caption {
    display: none !important;
}

/* Tablet: 2-3 columns */
@media (max-width: 900px) {
    .wp-block-gallery {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
}

@media (max-width: 768px) {
    .wp-block-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
    }
}

/* Mobile: single column */
@media (max-width: 480px) {
    .wp-block-gallery {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}
