/* ====== Базовые переменные бренда ====== */
:root{
  --brand-green:#1fa047;
  --brand-green-dark:#178a3a;
  --brand-blue:#1f3d75;
  --text:#2b2f33;
  --muted:#6c7681;
  --bg:#f5f8fb;
  --card-border:#e6eef6;
  --line:#cfeadd;
}

/* ====== Общие стили ====== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
}

/* ====== Навбар ====== */
.navbar{
  position: sticky;
  top: 0;
  z-index: 1030;
  background:#fff !important;
  border-bottom:1px solid var(--card-border);
  box-shadow: 0 2px 10px rgba(18,39,75,.04);
}
.navbar::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:4px;
  background:var(--brand-green);
}
.navbar .container{position:relative}
.navbar-brand{
  font-weight:700;
  color:var(--brand-blue);
  letter-spacing:.2px;
}
.navbar-brand:hover{color:var(--brand-blue)}
.navbar-nav .nav-link{
  color:#1f3d75;
  padding: .4rem .85rem;
  border-radius:10px;
  transition:all .2s ease;
  font-weight:400;
}
.navbar-nav .nav-link:hover{color:var(--brand-blue); background:#f0f5ff}
.navbar-nav .nav-link.nav-phone{
  color:#0f5132;
  background:rgba(45,188,104,.08);
  border:1px solid rgba(45,188,104,.25);
}
.navbar-toggler{
  border-color:#e2e8f0;
}
.navbar-toggler .navbar-toggler-icon{
  filter: hue-rotate(170deg) saturate(80%);
}

/* ====== Секции и заголовки ====== */
section{padding:40px 0; background:#fff}
#houses{padding-top:56px}

h2{
  color:var(--brand-blue);
  font-weight:700;
  text-align:center;
  margin-bottom:30px !important;
  letter-spacing:.2px;
}
h2.mb-4{margin-bottom:30px !important}
h2::before, h2::after{
  content:"";
  display:inline-block;
  vertical-align: middle;
  width:72px; height:0px;
  background:var(--brand-green);
  margin:0 14px;
  border-radius:3px;
}
h3{
  color:#1f3d75;
  font-weight:700;
  margin-bottom:12px;
}

/* ====== Вступительный ряд в «Наших проектах» ====== */
#houses .row.mb-5{
  border:1px solid var(--card-border);
  background:#fbfdff;
  border-radius:18px;
  padding:18px 20px;
  box-shadow:0 10px 24px rgba(30,56,120,.05);
}

/* ====== Карточки ====== */
.card{
  border:1px solid var(--card-border);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(26,78,155,.06);
  transition: transform .18s ease, box-shadow .18s ease;
  background:#fff;
}
.card:hover{
  transform: translateY(-3px);
  box-shadow:0 16px 38px rgba(26,78,155,.10);
}
.card-img-top{
  height:200px;
  object-fit:cover;
}
.card-title{
  color:#1f3d75;
  font-weight:700;
  margin-bottom:10px;
}

/* список характеристик в карточке */
.specs{
  margin:0; padding:0;
}
.specs li{
  position:relative;
  padding-left:22px;
  margin:4px 0;
  color:#1f3d75;
  font-size:0.965rem;
}
.specs li::before{
  content:"";
  position:absolute; left:0; top:.62em;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--brand-green);
  box-shadow:0 0 0 3px rgba(45,188,104,.18) inset;
}

/* ====== Кнопки ====== */
.btn{
  font-weight:700;
  border-radius:6px;
  padding:.48rem .9rem;
}
.btn-sm{padding:.38rem .75rem; border-radius:6px}
.btn-primary{
  background:var(--brand-green);
  border-color:var(--brand-green);
}
.btn-primary:hover{background:var(--brand-green-dark); border-color:var(--brand-green-dark)}
.btn-outline-secondary{
  color:var(--brand-blue);
  border-color:#c9d9f2;
  background:#fff;
}
.btn-outline-secondary:hover{
  color:#fff;
  background:var(--brand-blue);
  border-color:var(--brand-blue);
}

/* ====== «Ипотека» ====== */
#mortgage h3{
  color:#1f3d75;
}
.mortgage-program{
  display:flex; align-items:center; justify-content:center;
  height:100%;
  min-height:120px;
  border:2px dashed var(--brand-green);
  border-radius:16px;
  color:#1f3d75;
  font-weight:700;
  background:#f6fff9;
}

/* ====== «Умный дом» ====== */
#smart-home h3{
  color:#1f3d75; margin-top:22px;
}
#smart-home p{
  color:#1f3d75;
}

/* ====== Контакты и форма ====== */
#contacts p a{color:var(--brand-blue)}
#contact-form{
  border:1px solid var(--card-border);
  border-radius:16px;
  padding:16px;
  background:#fbfdff;
}
#agree + label{
  margin-left:6px;
}

/* ====== Модальные окна ====== */
.modal-content{
  border-radius:18px;
  border:1px solid var(--card-border);
  box-shadow:0 22px 60px rgba(26,78,155,.18);
}
.modal-header{
  border-bottom:1px solid var(--card-border);
}
.modal-title{color:#1f3d75; font-weight:700}

/* ====== Футер ====== */
footer{
  border-top:1px solid var(--card-border);
  
}
footer a{color:#1f3d75}
footer a:hover{color:var(--brand-blue)}

/* ====== Хелперы ====== */
.container{max-width:1140px}
.text-center .btn{margin:0 .25rem}

/* ====== Адаптив ====== */
@media (max-width: 991.98px){
  .navbar-nav .nav-link{padding:.5rem .7rem}
}
@media (max-width: 767.98px){
  h2::before, h2::after{width:44px}
  .card-img-top{height:180px}
  #houses .row.mb-5{padding:14px}
  section{padding:30px 0}
}
@media (max-width: 575.98px){
  h2{font-size:1.6rem}
  .card{border-radius:16px}
  .btn{border-radius:6px}
  .navbar-brand{font-size:1.05rem}
}
/* ===== MODULE C: Hero Carousel (листайщийся баннер) ===== */
.hero-banner{padding:18px 0; background:#ffffff}
.hero-aside{
  background:#fff;
  border:1px solid var(--card-border);
  border-radius:18px;
  padding:24px 22px;
  height:100%;
  box-shadow:0 8px 22px rgba(26,78,155,.06);
}
.hero-brand-title{
  font-weight:700; letter-spacing:.2px; color:#1f3d75; line-height:1.1;
}
.hero-brand-sub{
  font-size:.82rem; color:#6c757d; letter-spacing:.6px; text-transform:uppercase;
}
.hero-logo-ico{
  display:inline-flex; width:40px; height:40px; border-radius:12px;
  background:rgba(45,188,104,.1); align-items:center; justify-content:center;
  border:1px solid #d4ecdf;
}

.hero-quote {
    margin: -13px 0 37px;
    padding-left: 0;
}
.hero-quote p{
  color:#1f3d75; font-size:1.02rem; margin:0 0 6px;
}
.hero-quote footer{color:#6c757d}

.btn-outline-brand{
  border:1px solid #b9c9ea; color:var(--brand-blue); background:#fff;
}
.btn-outline-brand:hover{background:var(--brand-blue); color:#fff; border-color:var(--brand-blue)}

/* Правая колонка */
.hero-carousel{
  border-radius:22px;
  overflow:hidden;
  border:1px solid #dbe6f4;
  box-shadow:0 14px 34px rgba(26,78,155,.10);
  background:#fff;
  height: 492px;
}
.hero-img{
  aspect-ratio: 16/9;
  object-fit: cover;
  display:block;
  height: 492px;
}

/* Точки-индикаторы как в макете: маленькие круглые */
.hero-carousel .carousel-indicators{
  margin-bottom:10px;
}
.hero-carousel .carousel-indicators [data-bs-target]{
  width:8px; height:8px; border-radius:50%;
  background:#ffffff; border:1px solid rgba(44,62,80,.35);
  opacity:1; margin:0 4px;
}
.hero-carousel .carousel-indicators .active{
  background:var(--brand-blue);
  border-color:var(--brand-blue);
}

/* Кнопки-навигации: белые круги со стрелками */
.hero-ctrl{width:auto}
.ctrl-circle {
    display: flex
;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 35px;
    border-radius: 50%;
    background: transparent;
    border: 5px solid rgba(255, 255, 255, 0.95);
    color: #fff;
    box-shadow: 0 -1px 0 2px rgba(255, 255, 255, 0.18), 0 2px 8px rgba(0, 0, 0, 0.35);
    font-size: 31px;
    line-height: 3;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, transform .1s ease;
    backdrop-filter: saturate(120%) blur(0.5px);
    flex-direction: row;
    align-content: space-between;
}
.ctrl-circle:hover {
  border-color: #fff;
  box-shadow:
    0 0 0 3px rgba(255, 255, 255, 0.22),
    0 3px 10px rgba(0, 0, 0, 0.4);
}

.ctrl-circle:active {
  transform: scale(0.96);
  box-shadow:
    0 0 0 2px rgba(255, 255, 255, 0.2),
    0 1px 6px rgba(0, 0, 0, 0.35);
}

.carousel-control-prev .ctrl-circle{margin-left:10px}
.carousel-control-next .ctrl-circle{margin-right:10px}
.carousel-control-prev, .carousel-control-next{
  opacity:1;
  transition:transform .15s ease;
}
.carousel-control-prev:hover .ctrl-circle,
.carousel-control-next:hover .ctrl-circle{
  transform:translateY(-1px);
}

/* Адаптив баннера */
@media (max-width: 991.98px){
  .hero-banner{padding:12px 0}
  .hero-aside{padding:18px}
}
@media (max-width: 575.98px){
  .hero-img{aspect-ratio: 16/10}
  .ctrl-circle{width:34px; height:34px}
}
/* ===== MODULE D: Серия домов ===== */
.series-block{margin:8px 0; padding-bottom:6px}
.series-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:16px; padding:8px 0;
}
.series-title{color:#1f3d75; font-weight:700; font-size:1.6rem}
.series-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:#fff; border:1px solid #d4d9e3;
  box-shadow:0 6px 16px rgba(26,78,155,.08);
  cursor:pointer; transition:transform .2s ease;
}
.series-toggle:hover{transform:translateY(-2px)}
.series-toggle svg{transition:transform .25s ease}
.series-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}

.series-intro-img{width:160px; border-radius:12px; flex-shrink:0}
.series-intro-text{max-width:540px; color:#1f3d75; margin:0}

.price{margin:10px 0; font-weight:700; color:#1f3d75}
.price strong {font-weight:700}
/* Заголовок серии и кнопка */
.series-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:14px; padding:8px 0;
}
.series-title{color:#1f3d75; font-weight:700; font-size:1.6rem}
.series-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background:#fff; border:1px solid #d4d9e3;
  box-shadow:0 6px 16px rgba(26,78,155,.08);
  cursor:pointer; transition:.25s;
}
.series-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}

/* Карточки */
.house-card{
  border:1px solid #dde5f0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 6px 14px rgba(26,78,155,.08);
  transition:transform .2s;
}
.house-card:hover{transform:translateY(-3px)}
.house-img{
  height:180px; width:100%; object-fit:cover;
}
.card-body h5{color:#1f3d75; font-weight:700}
.specs li{
  position:relative; padding-left:18px; margin:3px 0; color:#1f3d75; font-size:.95rem;
}
.specs li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:9px; height:9px; border-radius:50%;
  background:var(--brand-green);
}
/* Заголовок серии */
.series-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:14px; padding:8px 0;
}
.series-title {color:#1f3d75; font-weight:700; font-size:1.6rem}
.series-toggle {
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background:#fff; border:1px solid #d4d9e3;
  box-shadow:0 6px 16px rgba(26,78,155,.08);
  cursor:pointer; transition:.25s;
}
.series-toggle[aria-expanded="true"] svg {transform:rotate(180deg)}

/* Вступительный блок */
.series-intro-img {
  width:160px; border-radius:12px; flex-shrink:0
}
.series-intro-text {
  max-width:540px; color:#1f3d75; margin:0
}

/* Карточки */
.house-card {
  border:1px solid #dde5f0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 6px 14px rgba(26,78,155,.08);
  transition:transform .2s ease;
  background:#fff;
  display:flex; flex-direction:column;
  height:100%;
}
.house-card:hover {transform:translateY(-3px)}
.house-img-wrap {height:200px; overflow:hidden}
.house-img {width:100%; height:100%; object-fit:cover}
.house-body {padding:14px 16px; display:flex; flex-direction:column; flex-grow:1}
.house-title {font-weight:700; color:#1f3d75; margin-bottom:8px}
.house-specs {list-style:none; padding:0; margin:0 0 10px; flex-grow:1}
.house-specs li {font-size:.95rem; margin:3px 0; padding-left:16px; position:relative; color:#1f3d75}
.house-specs li::before {
  content:""; width:8px; height:8px; border-radius:50%;
  background:var(--brand-green, #1fa047);
  position:absolute; left:0; top:6px
}
.house-price {font-weight:700; color:#1f3d75; margin:0 0 12px}
.house-price strong {font-weight:700}
.house-actions {display:flex; justify-content:space-between; gap:6px}
/* Отступы для секций */
.series-block {margin: 10px 0;}

/* Текст во вступлении */
.series-intro-text {
  max-width: 600px;
  color: #1f3d75;
  margin: 0;
  line-height: 1.6;
  font-size: 1rem;
}

/* Для карточек бань */
.house-desc {
  font-size: 0.95rem;
  color: #1f3d75;
  margin-bottom: 10px;
  flex-grow: 1;
}
/* Заголовок секции */
.section-header {

  border-bottom: 1px solid #cde5d8;
  margin-bottom: 24px;
  padding: 10px 0;
}
.section-title {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  color: #1f3d75;
}

/* Элементы "Умный дом" */
.smart-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 0;
}
.smart-img {
  width: 200px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.smart-content {
  flex: 1;
}
.smart-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #1f3d75;
  margin-bottom: 8px;
}
.smart-text {
  color: #1f3d75;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 12px;
}
.smart-item:last-child {
  border-bottom: none;
}
/* Шаги */
.steps-wrapper .step-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 10px;
}
.steps-wrapper h6 {
  font-weight: 700;
  margin-bottom: 6px;
  color: #1f3d75;
}
.steps-wrapper p {
  font-size: 0.9rem;
  color: #555;
  margin: 0;
}

/* Сетка ипотек */
.mortgage-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.mortgage-item {
  background: #f9f9f9;
  border-radius: 8px;
  text-align: center;
  padding: 8px;
  font-size: 0.9rem;
}
.mortgage-item img {
  width: 100%;
  border-radius: 6px;
  margin-bottom: 5px;
}
.bank-logo {
  height: 45px;
  object-fit: contain;
}

/* Форма */
.feedback-form {
  background: #e6f2fa;
  padding: 20px;
  border-radius: 10px;
}
.feedback-form .form-title {
  font-weight: 700;
  margin-bottom: 15px;
  color: #1f3d75;
}
/* Блоки секций */
.about-block, .contacts-block {
  margin: 20px 0;
}

/* Заголовки */
.section-header {

  border-bottom: 1px solid #cde5d8;
  margin-bottom: 24px;
  padding: 10px 0;
}
.section-title {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  color: #1f3d75;
}

/* Картинка "О нас" */
.about-block img {
  border-radius: 10px;
  max-height: 400px;
  object-fit: cover;
}

/* Контакты */
.contacts-block p {
  margin-bottom: 12px;
  font-size: 1rem;
  color: #1f3d75;
}

/* Форма */
.feedback-form {
  background: #e6f2fa;
  padding: 20px;
  border-radius: 10px;
}
.feedback-form .form-title {
  font-weight: 700;
  margin-bottom: 15px;
  color: #1f3d75;
}
/* Общие стили */
.custom-navbar {
  background: #fff;
  border-bottom: 2px solid #eaeaea;
  padding: 6px 0;
  z-index: 1000;
}

/* Верхняя и нижняя линии */
.custom-navbar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(to right, #0d6efd, #4da8ff);
}
.custom-navbar::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(to right, #1fa047, #178a3a);
}

/* Контейнер */
.custom-navbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

/* Левое и правое меню */
.custom-navbar .nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 20px;
}
.custom-navbar .nav .nav-link {
  text-decoration: none;
  color: #1f3d75;
  font-weight: 400;
}
.custom-navbar .nav .nav-link:hover {
  color: #1fa047;
}

/* Логотип по центру */
.navbar-logo img {
  height: 28px;
}

/* Телефон */
.nav-phone {
  font-weight: 700;
  color: #000 !important;
}

/* Фиксированное меню */
body {
  padding-top: 60px; /* отступ, чтобы контент не налезал на меню */
}
/* Мобильные экраны */
@media (max-width: 991px) {
  .custom-navbar .container {
    flex-direction: column;
    padding: 10px;
  }

  /* Логотип по центру */
  .navbar-logo {
    margin: 10px 0;
  }

  /* Левое и правое меню в один список */
  .custom-navbar .nav {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 0;
  }

  /* Телефон выделим */
  .custom-navbar .nav-phone {
    font-size: 1.1rem;
    font-weight: 700;
    color: #2dbc68 !important;
    margin-top: 8px;
  }

  /* Скрыть линии */
  .custom-navbar::before,
  .custom-navbar::after {
    height: 3px;
  }
}

/* Совсем маленькие экраны */
@media (max-width: 575px) {
  .custom-navbar {
    padding: 5px 0;
  }

  .navbar-logo img {
    height: 24px;
  }

  .custom-navbar .nav-link {
    font-size: 0.95rem;
  }
}

/* Мобильная версия — компактнее */
@media (max-width: 991px) {
  .custom-navbar .container {
    flex-direction: column;
    padding: 5px 10px;
  }

  /* Логотип по центру */
  .navbar-logo {
    margin: 5px 0;
  }
  .navbar-logo img {
    height: 22px; /* меньше логотип */
  }

  /* Пункты меню */
  .custom-navbar .nav {
    flex-direction: column;
    align-items: center;
    gap: 6px; /* меньше отступ */
  }
  .custom-navbar .nav .nav-link {
    font-size: 0.9rem;
    padding: 3px 0; /* компактнее */
  }

  /* Телефон выделен, но без большого разрыва */
  .custom-navbar .nav-phone {
    font-size: 1rem;
    font-weight: 700;
    margin-top: 4px;
    color: #2dbc68 !important;
  }

  /* Линии тоньше */
  .custom-navbar::before,
  .custom-navbar::after {
    height: 2px;
  }
}

/* Совсем маленькие (<576px) */
@media (max-width: 575px) {
  .custom-navbar .nav .nav-link {
    font-size: 0.85rem;
  }
  .custom-navbar .nav-phone {
    font-size: 0.95rem;
  }
}
/* Мобильное меню — компактная ширина */
@media (max-width: 768px) {
  .custom-navbar .container {
    flex-direction: column;
    align-items: center;
    max-width: 100%;   /* ограничиваем ширину меню */
    margin: 0 auto;     /* центрируем */
    padding: 8px 5px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  }

  /* Логотип */
  .navbar-logo {
    margin: 4px 0;
  }
  .navbar-logo img {
    height: 22px;
  }

  /* Ссылки */
  .custom-navbar .nav {
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }
  .custom-navbar .nav .nav-link {
    font-size: 0.85rem;
    padding: 2px 0;
  }

  /* Телефон */
  .custom-navbar .nav-phone {
    font-size: 0.9rem;
    font-weight: 700;
    margin-top: 2px;
    color: #2dbc68 !important;
  }
}/* Горизонтальное меню для мобильных */
@media (max-width: 768px) {
  .custom-navbar .container {
    flex-direction: column;
    padding: 6px 0;
  }

  /* Логотип по центру */
  .navbar-logo {
    margin: 6px 0;
  }
  .navbar-logo img {
    height: 22px;
  }

  /* Ссылки горизонтально */
  .custom-navbar .nav {
    flex-direction: row;
    justify-content: center;
    gap: 10px; /* расстояние между пунктами */
    flex-wrap: wrap; /* перенос если не влезает */
  }

  /* Ссылки компактные */
  .custom-navbar .nav .nav-link {
    font-size: 0.85rem;
    padding: 2px 4px;
  }

  /* Телефон вынесем отдельным элементом ниже */
  .custom-navbar .nav-phone {
    display: block;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 700;
    margin-top: 6px;
    color: #2dbc68 !important;
  }
}
/* Общий стиль секции */
#custom-projects .row {
  background: #fff; /* белый фон */
  border: 1px solid #ddd; /* тонкая рамка */
  border-left: 4px solid #1aa334; /* зелёная полоса слева */
  border-radius: 10px;
  padding: 20px;
  margin: 0 auto;
  max-width: 1100px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

/* Заголовок */
#custom-projects h5 {
  font-weight: 700;
  font-size: 1.25rem;
  margin-bottom: 10px;
}

/* Текст */
#custom-projects p {
  font-size: 0.95rem;
  color: #333;
  line-height: 1.5;
}

/* Картинка */
#custom-projects img {
  border-radius: 8px;
  object-fit: cover;
  width: 100%;
  height: auto;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Кнопки */
#custom-projects .btn {
  font-size: 0.9rem;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 6px;
  transition: 0.2s ease-in-out;
}

#custom-projects .btn-primary {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

#custom-projects .btn-primary:hover {
  background-color: #0b5ed7;
  border-color: #0a58ca;
}

#custom-projects .btn-success {
  background-color: #1fa047;
  border-color: #1fa047;
}

#custom-projects .btn-success:hover {
  background-color: #178a3a;
  border-color: #178a3a;
}

/* Адаптивность */
@media (max-width: 768px) {
  #custom-projects .row {
    text-align: center;
  }
  #custom-projects .d-flex {
    justify-content: center;
  }
}


/* Футер */
#footer {
  background: #f2f2f2; /* серый фон */
  border-top: 1px solid #ccc;
  border-bottom: 3px solid #1aa334; /* зелёная линия снизу */
  font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
}

#footer .footer-logo {
  max-height: 90px;
}

/* Ссылки меню */
#footer .footer-nav li {
  margin-bottom: 6px;
}

#footer .footer-nav a {
  color: #1f3d75; /* тёмно-синий */
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  transition: color 0.2s ease;
}

#footer .footer-nav a:hover {
  color: #1aa334;
}

/* Реквизиты */
#footer .footer-info {
  font-size: 14px;
  line-height: 1.5;
  color: #1f3d75;
  font-weight: 700;
  padding: 14px;
}

/* Адаптивность */
@media (max-width: 768px) {
  #footer {
    text-align: center;
  }
  #footer .footer-nav {
    margin-top: 10px;
  }
  #footer .footer-info {
    margin-top: 15px;
  }
}
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    width: 100%;
    padding-right: 0px;
    padding-left: 0px;
    margin-right: auto;
    margin-left: auto;
}
@media (min-width: 1200px) {
    .col-xl-4 {
        flex: 0 0 auto;
        width: 35.333333%;
    }
    
    .col-xl-8 {
        flex: 0 0 auto;
        width: 64.666667%;
    }
    
    img.logoss {
        width: 100%;
        margin-left: -43px;
    }
}

.container2, .container-fluid2, .container-lg2, .container-md2, .container-sm2, .container-xl2, .container-xxl2 {
    width: 100%;
    padding-right: 0px;
    padding-left: 0px;
    margin-right: auto;
    margin-left: auto;
}

.container2 {
    max-width: 1140px;
}
.h-100 {
    height: 492px !important;
}

.hero-aside {
  display: flex;
  flex-direction: column;  /* содержимое в колонку */
  height: 100%;           /* чтобы занял всю высоту */
  padding: 20px;
  background: #f8f9fa;    /* светлый фон, если нужно */
}

.hero-aside .hero-logo {
  flex-shrink: 0; /* логотип остаётся сверху */
}

.hero-aside .hero-quote {
  flex-shrink: 0; /* цитата фиксируется выше кнопок */
              margin-top: 94px;
            margin-bottom: 55px;
  font-style: italic;
  color: #333;
}

/* блок с кнопками уходит в самый низ */
.hero-aside .d-flex {
  margin-top: auto; 
}

/* стили для кнопок */
.btn-outline-brand {
  border: 2px solid #1aa334;
  color: #1aa334;
  background: transparent;
}

.btn-outline-brand:hover {
  background: #1aa334;
  color: #fff;
}

.mt-4 {
               margin-top: 105px !important;
}/* === HERO: белый фон и ровные колонки === */
.hero-banner{
  background:#fff;        /* весь блок на белом */
  padding:30px 0;
}

/* контейнер по ширине макета (можно убрать, если используешь .container) */
.container2{max-width:1240px;margin:0 auto;padding:0 16px;}

/* колонки одинаковой высоты */
.hero-banner .row{align-items:stretch;}
@media (min-width:992px){
  /* правая колонка делается flex, чтобы слайдер растягивался по высоте */
  .hero-banner .row > [class*="col-"]:last-child{display:flex;}
}

/* Левый aside – без карточки/тени, кнопки прижаты вниз */
.hero-aside{
  display:flex;flex-direction:column;height:100%;
  background:#fff;border:none;border-radius:0;box-shadow:none;
  padding:28px 24px;
}
.hero-logo img.logoss{width:100%}

.hero-quote{margin:18px 0 24px 0;color:#1f3d75;}
.hero-quote p{font-weight:700;font-size:18px;line-height:1.4;margin:0 0 14px;}
.hero-quote footer{font-size:14px;color:#6c757d;}
/* тонкая линия под цитатой как в макете */
.hero-quote::after{content:"";display:block;height:1px;background:#e6edf5;margin-top:12px;}

/* кнопки у самого низа aside */
.hero-aside .d-flex{margin-top:auto;}
.btn-outline-brand{border:2px solid #1f3d75;color:#1f3d75;background:transparent;}
.btn-outline-brand:hover{background:#1f3d75;color:#fff;}

/* Правая колонка: слайдер заполняет высоту колонки, без теней/карт */
.hero-carousel{flex:1;border-radius:12px;overflow:hidden;background:#fff;box-shadow:none;border:none;}
.hero-carousel .carousel-inner,
.hero-carousel .carousel-item{height:100%;}
.hero-carousel .carousel-item img.hero-img{
  width:100%;height:100%;object-fit:cover;border-radius:12px;
}

/* Стрелки и точки аккуратные */
.hero-ctrl{opacity:1;}
        .hero-ctrl .ctrl-circle {
            display: flex;
            align-items: center;
            justify-content: center;
            padding-bottom: 7px;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            background: #ffffff17;
            color: #ffffff;
            font-size: 32px;
            line-height: 1;
            border: 1px solid #cfd8ea;
            box-shadow: -1 6px 16px rgb(31 61 117 / 0%);
            transition: .2s;
        }
.hero-ctrl .ctrl-circle:hover{background:#1aa334;color:#fff;}

.carousel-indicators{margin-bottom:10px;}
.carousel-indicators [data-bs-target]{
  width:9px;height:9px;border-radius:50%;background:#d7dee9;opacity:1;border:0;
}
.carousel-indicators .active{background:#1aa334;}

/* Логотип — у верхнего левого края */
.hero-aside .hero-logo{
  align-items: flex-start;     /* вверх */
  justify-content: flex-start; /* влево */
  margin: 0 0 12px 0;
}
.hero-aside .hero-logo .logoss{
  display: block;
  margin: 0;                   /* без отступов вокруг логотипа */
}

/* Цитата: убираем линию под текстом/автором */
.hero-quote{ border: 0 !important; }
.hero-quote::after{ content: ""; display: none !important; }

/* Автор — по правому краю */
.hero-quote footer{
  display: block;
  text-align: right;
  margin-top: 6px;
              border: 0px;
}

/* Кнопки — внизу блока */
.hero-aside .d-flex{ margin-top: auto; }

/* Секция-колонка */
.hero-aside{
  position: relative;
  /* сверху даём место под логотип (его высота + отступ) */
  padding: 68px 24px 24px 24px; /* 56px лого + ~12px отступ */
  background:#fff;
}

/* Логотип строго в левом верхнем углу внутри aside */
.hero-aside .hero-logo{
  position: absolute;
  top: 12px;
  left: 12px;
  margin: 0;
  padding: 0;
}

.hero-aside .hero-logo .logoss{
  display: block;
  max-height: 56px;
  height: auto;
  width: auto;
}

/* Кнопки остаются прижатыми к низу */
.hero-aside .d-flex{ margin-top: auto; }

/* Адаптив: чуть меньше отступ под лого на очень узких экранах */
@media (max-width: 576px){
  .hero-aside{ padding-top: 60px; } /* уменьшили запас сверху */
  .hero-aside .hero-logo .logoss{ max-height: 48px; }
}
/* Общий текстовый блок условий */
.mortgage-terms{
  background:#f8fbff;
  border:1px solid #e6edf5;
  border-radius:8px;
  padding:14px 16px;
}
.terms-list, .terms-benefits{ margin-left:18px; }
.terms-list li, .terms-benefits li{ margin-bottom:4px; }

/* Список программ — компактно и читабельно */
.programs-list{
  margin:0;
  padding-left:18px;
}
.programs-list li{ margin-bottom:4px; }

/* Логотипы банков */
.bank-logo{ height:125px; object-fit:contain; }

/* Карточка калькулятора */
.mortgage-calc{
  background:#fff;
  border:1px solid #e6edf5;
  border-radius:10px;
  padding:16px 18px;
}

/* Вывод результатов */
.calc-line{
  display:flex;
  justify-content:space-between;
  gap:8px;
  border-bottom:1px dashed #e6edf5;
  padding:4px 0;
}
.calc-total{ font-size:1.05rem; }
/* Блок футера */
#footer{
  background:#e9e9ea;              /* светло-серый фон, как на дизайне */
  border-top:2px solid #87b6e6;    /* тонкая синяя линия сверху */
  border-bottom:3px solid #1aa334; /* зелёная линия снизу */
  padding-top:16px; padding-bottom:16px;
  font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
}

/* Логотип слева */
#footer .footer-logo{ max-height:148px; height:auto; }

/* Центр: вертикальное меню */
#footer .footer-nav li{ margin:-1px 0; }
#footer .footer-nav a{
  color:#1f3d75;                   /* тёмно-синий текст */
  font-weight:700;
  font-size:17px;                  /* крупнее, как на макете */
  text-decoration:underline;
  transition:color .15s ease;
}
#footer .footer-nav a:hover{ color:#1aa334; }

/* Справа: реквизиты столбиком */
#footer .footer-info{
  color:#1f3d75;
  font-weight:700;
  font-size:16px;                  /* чуть меньше, чем меню */
  line-height:1.35;
}

/* Мобильная адаптация */
@media (max-width: 768px){
  #footer{ text-align:center; }
  #footer .footer-nav{ margin-top:8px; }
  #footer .footer-info{ margin-top:10px; }
}
@media (min-width: 768px) {
    .text-md-start {
        text-align: left !important;
        margin-top: 18px;
    }
}


	
@media (min-width: 768px) { 
  .hero-logo.d-flex.align-items-center.mb-3 {
    margin-top: 27px !important;
  }
}

/* Переключатель тарифов */
.tariff-selector {
  display: flex;
  gap: 0;
  justify-content: flex-start;
  margin-bottom: 16px;
  border-bottom: 2px solid #e0e0e0;
}

.modal-body .project-description {
  margin-top: 0.75rem !important;
}

.tariff-btn {
  padding: 10px 30px;
  border: none;
  background: transparent;
  color: #6c757d;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: color 0.3s ease, border-bottom-color 0.3s ease;
  font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  position: relative;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
}

.tariff-btn::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 3px;
  background-color: #1fa047;
  transition: width 0.3s ease;
}

.tariff-btn:hover {
  color: #1fa047;
}

.tariff-btn.active {
  color: #1fa047;
  font-weight: 600;
  border-bottom-color: #1fa047;
}

.tariff-btn.active::after {
  width: 100%;
}

.tariff-btn:active {
  transform: scale(0.98);
}

