/* === global === */
/* ================= ОБЩИЕ СТИЛИ ================= */
    :root {
      --dk-mobile-nav-height: 3.5rem;
      --dk-section-title-air: 0.5rem;
      --dk-navbar-outer-gap-desktop: 0.625rem;
    }

    body {
      font-family: 'Montserrat', sans-serif;
      color: #333;
    }
    .text-cyan {
      color: #00bfff !important; /* Фирменный голубой цвет */
    }
    .bg-cyan {
      background-color: #00bfff !important;
    }
    .btn-cyan {
      background-color: #00bfff;
      color: white;
      border: none;
      transition: background-color 0.2s, transform 0.2s;
    }
    .btn-cyan:hover {
      background-color: #009ce0;
      color: white;
      transform: translateY(-2px);
    }

    /* ================= ШАПКА (HEADER) ================= */
    @media (max-width: 991.98px) {
      body {
        padding-bottom: calc(var(--dk-mobile-nav-height) + 0.5rem + env(safe-area-inset-bottom, 0px));
      }
    }

    @media (min-width: 992px) {
      :root {
        --dk-section-title-air: 0.75rem;
      }

      .header-navbar {
        margin-block: var(--dk-navbar-outer-gap-desktop);
      }
    }

    .header-section {
      background-color: #eaf6fc;
      overflow-x: clip;
    }

    .header-vision-topbar {
      background-color: #fff;
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .header-vision-link {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      color: #111;
      text-decoration: none;
      font-size: 0.9rem;
      font-weight: 500;
      line-height: 1.2;
      transition: color 0.2s ease;
    }

    .header-vision-link:hover {
      color: #00bfff;
    }

    .header-vision-link__text {
      display: inline-block;
    }

    #glaz {
      display: block;
      width: 2rem;
      height: auto;
    }

    .header-categories-row {
      width: 100vw;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
    }

    @media (min-width: 992px) {
      .header-categories-row {
        width: auto;
        margin-left: 0;
        margin-right: 0;
      }
    }

    .header-categories-swiper-wrap {
      position: relative;
      padding-inline: 2.25rem;
    }

    .header-categories-swiper {
      overflow: hidden;
    }

    .header-categories-swiper .swiper-slide {
      width: auto;
    }

    .header-categories-swiper .header-category-pill {
      display: inline-flex;
      align-items: center;
      white-space: nowrap;
    }

    .header-categories-progress {
      position: relative;
      margin-top: 0.5rem;
      height: 4px;
      border-radius: 999px;
      background-color: rgba(111, 196, 249, 0.35);
      overflow: hidden;
    }

    .header-categories-progress .swiper-pagination-progressbar-fill {
      background-color: #00bfff;
      border-radius: inherit;
    }

    .header-categories-progress.swiper-pagination-lock {
      display: none;
    }

    .header-categories-nav {
      position: absolute;
      top: 1.05rem;
      width: 2rem;
      height: 2rem;
      border: none;
      border-radius: 50%;
      background-color: #fff;
      color: #00bfff;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
      z-index: 2;
      transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    }

    .header-categories-nav:hover {
      transform: translateY(-1px);
      box-shadow: 0 8px 16px rgba(0, 0, 0, 0.16);
    }

    .header-categories-nav-prev {
      left: 0;
    }

    .header-categories-nav-next {
      right: 0;
    }

    .header-categories-nav.swiper-button-disabled,
    .header-categories-nav.swiper-button-lock {
      opacity: 0;
      pointer-events: none;
    }

    @media (max-width: 575.98px) {
      .header-vision-link {
        font-size: 0.8rem;
      }

      .header-categories-swiper-wrap {
        padding-inline: 1.85rem;
      }

      .header-categories-nav {
        top: 0.95rem;
        width: 1.75rem;
        height: 1.75rem;
      }
    }

    .header-navbar,
    .header-navbar-mobile {
      background-color: #eaf6fc;
    }

    .header-navbar .nav-link,
    .header-navbar-mobile .nav-link {
      font-size: 1.1rem;
      font-weight: 500;
    }

    .header-navbar-mobile {
      --bs-navbar-padding-x: 0.75rem;
      left: 0;
      right: 0;
      bottom: env(safe-area-inset-bottom, 0px);
      padding-bottom: 0.5rem;
      padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
      padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
      z-index: 1030;
    }

    .header-navbar-mobile > .container-fluid {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      padding-left: 0;
      padding-right: 0;
    }

    .header-navbar-mobile .navbar-brand {
      min-width: 0;
      flex: 1 1 auto;
    }

    .header-navbar-mobile .navbar-toggler {
      flex-shrink: 0;
      margin-inline-start: auto;
    }

    .site-logo-mobile {
      height: 40px;
      width: auto;
      max-width: 160px;
      object-fit: contain;
    }

    .nav-link-custom {
      color: #000;
      font-size: 1.1rem;
      font-weight: 500;
      transition: color 0.2s ease-in-out;
    }
    .nav-link-custom:hover {
      color: #00bfff;
    }
    .phone-btn-header {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      color: #111;
      text-decoration: none;
      padding: 0.25rem 0;
      transition: color 0.2s ease;
    }
    .phone-btn-header:hover {
      color: #00bfff;
    }
    .phone-btn-header i {
      font-size: 0.95em;
      line-height: 1;
    }
    .header-category-pill {
      background-color: #6fc4f9;
      border: none;
      font-weight: 500;
      transition: all 0.2s;
    }
    .header-category-pill:hover {
      background-color: #55b7f8;
      color: white !important;
    }

    /* ================= HERO СЕКЦИЯ (Bootstrap Cover, полный экран) ================= */
    .hero-section {
      background: url('../images/hero2.png') center center / cover no-repeat;
      min-height: 100vh;
      min-height: 100svh;
      background-size: cover;
      background-position: center;
    }

    .hero-cover-inner {
      padding-top: 2rem;
      padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
    }

    .hero-cover-title {
      line-height: 1.15;
      text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
    }

    .hero-cover-lead {
      color: rgba(255, 255, 255, 0.92);
      font-weight: 400;
      line-height: 1.6;
    }

    .hero-typed-text {
      display: inline-block;
      vertical-align: baseline;
    }

    .hero-yandex-badge {
      bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    }

    @media (min-width: 768px) {
      .hero-cover-title {
        font-size: clamp(2.5rem, 5vw, 4rem);
      }

      .hero-yandex-badge {
        bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
      }
    }

    @media (max-width: 991.98px) {
      .hero-cover-inner {
        padding-bottom: calc(var(--dk-mobile-nav-height) + 5.5rem + env(safe-area-inset-bottom, 0px));
      }

      .hero-yandex-badge {
        bottom: calc(var(--dk-mobile-nav-height) + 0.75rem + env(safe-area-inset-bottom, 0px));
      }
    }

    /* Плавающие кнопки (FAB) */
    :root {
      --fab-right-offset: 1.25rem;
      --fab-size: 60px;
      --fab-stack-gap: 20px;
      --fab-desktop-bottom: 80px;
      --fab-mobile-bottom: calc(var(--dk-mobile-nav-height) + 0.5rem + env(safe-area-inset-bottom, 0px) + 16px);
    }

    .fab-max,
    .fab-phone {
      position: fixed;
      right: calc(var(--fab-right-offset) + env(safe-area-inset-right, 0px));
      width: var(--fab-size);
      height: var(--fab-size);
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
      z-index: 1000;
      transition: transform 0.3s;
      text-decoration: none;
      overflow: hidden;
    }

    .fab-phone {
      bottom: var(--fab-desktop-bottom);
    }

    .fab-max {
      bottom: calc(var(--fab-desktop-bottom) + var(--fab-size) + var(--fab-stack-gap));
      border-radius: 25%;
    }

    .fab-core {
      width: 100%;
      height: 100%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      z-index: 2;
    }

    .fab-max .fab-core {
      background-color: #fff;
      border-radius: 25%;
    }

    .fab-max img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .fab-phone .fab-core {
      background-color: #00bfff;
      color: #fff;
      box-shadow: 0 8px 20px rgba(0, 191, 255, 0.45);
      border-radius: 50%;
    }

    .fab-phone i {
      font-size: 1.5rem;
      line-height: 1;
    }

    .fab-max:hover,
    .fab-phone:hover {
      transform: scale(1.1);
    }

    .fab-phone:hover {
      color: white;
    }

    @media (max-width: 991.98px) {
      .fab-phone {
        bottom: var(--fab-mobile-bottom);
      }

      .fab-max {
        bottom: calc(var(--fab-mobile-bottom) + var(--fab-size) + var(--fab-stack-gap));
      }
    }

    @media (max-width: 575.98px) {
      :root {
        --fab-size: 56px;
        --fab-stack-gap: 16px;
      }
    }
    
    /* Кастомизация курсора Typed.js в hero */
    .hero-cover-title .typed-cursor {
      color: #00bfff;
      font-size: 1em;
      font-weight: 700;
    }

/* === video === */
/* ================= СТИЛИ СЕКЦИИ С ВИДЕО ================= */
    .video-section {
      background-color: #ffffff; /* Задайте нужный фон, если он отличается */
    }
    
    .video-wrapper {
      border-radius: 16px; /* Аккуратные скругления */
      overflow: hidden;
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15); /* Объемная тень для выделения блока */
      /* Аппаратное ускорение, чтобы iframe не перекрывал скругленные углы в некоторых браузерах */
      transform: translateZ(0); 
    }
    
    .video-wrapper video {
      border: none;
      width: 100%;
      height: 100%;
      object-fit: cover;
      background-color: #000;
    }

/* === about === */
.about-clinic-section {
  background-color: #f7f8fa;
  color: #111;
}

.about-clinic-heading {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 calc(1rem + var(--dk-section-title-air));
  color: #111;
}

.about-clinic-lead {
  max-width: 48rem;
  margin: 0 auto;
  text-align: left;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #444;
}

.about-specialist-card {
  background-color: #fff;
  border: 1px solid #e8eaed;
  border-radius: 1rem;
  padding: 1.5rem;
  height: 100%;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.about-specialist-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
}

.about-specialist-card__icon {
  display: block;
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 0.75rem;
}

.about-specialist-card__title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #111;
  margin: 0 0 0.5rem;
}

.about-specialist-card__desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #6c757d;
  margin: 0;
}

/* === gallery === */
.gallery-section.about-clinic-gallery {
  background-color: #f7f8fa;
  padding-top: 0;
}

.about-gallery-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.about-gallery-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-color: #e8eaed;
  border-radius: var(--bs-border-radius-xl, 1rem);
}

/* === form === */
/* ================= СТИЛИ СЕКЦИИ "ФОРМА ЗАЯВКИ" ================= */
    .form-section {
      background-color: #f9f9f9; /* Светлый фон секции (или замените на свой) */
    }
    
    .contact-form-card {
      background-color: #ffffff;
      /* Та самая толстая голубая рамка без скруглений, как на макете */
      border: 12px solid #55b7f8; 
      padding: 3.5rem 3rem;
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); /* Мягкая тень для объема */
    }
  
    .form-title {
      font-size: 1.75rem;
      font-weight: 700;
      color: #000;
    }

    .form-section .form-title {
      margin-bottom: calc(1rem + var(--dk-section-title-air)) !important;
    }
  
    .form-subtitle {
      font-size: 1rem;
      color: #444;
      line-height: 1.5;
    }
  
    /* Оформление полей ввода (только нижняя линия) */
    .input-line-group {
      display: flex;
      align-items: center;
      border-bottom: 1px solid #dcdcdc;
      transition: border-color 0.2s ease;
    }
    
    .input-line-group:focus-within {
      border-bottom-color: #55b7f8; /* Синяя линия при фокусе */
    }
  
    .input-line {
      border: none;
      background: transparent;
      box-shadow: none !important;
      border-radius: 0;
      padding-left: 10px;
    }
    
    .input-line:focus {
      border: none;
      background: transparent;
    }
  
    /* Мелкий шрифт согласия с персиковым оттенком */
    .disclaimer-text {
      font-size: 0.75rem;
      color: #f0a08d; 
      line-height: 1.4;
    }
  
    /* Кнопка отправки */
    .btn-submit-form {
      background-color: #55b7f8;
      color: #000;
      font-size: 1rem;
      font-weight: 600;
      padding: 12px 40px;
      border: none;
      transition: all 0.2s;
    }
    
    .btn-submit-form:hover {
      background-color: #3fa5e9;
      transform: translateY(-2px);
      box-shadow: 0 6px 15px rgba(85, 183, 248, 0.4);
    }

    .signup-modal .modal-dialog {
      max-width: 560px;
    }

    .contact-form-card--modal {
      border-width: 8px;
      padding: 2rem 1.75rem;
      box-shadow: none;
      border-radius: 1rem;
    }

    .signup-modal .modal-header .btn-close {
      margin: 0;
    }

    .signup-modal .modal-body {
      padding-top: 0;
    }

    .signup-modal .alert {
      margin-bottom: 0;
    }

    @media (max-width: 576px) {
      .signup-modal .modal-dialog {
        margin: 0.75rem;
      }

      .contact-form-card--modal {
        border-width: 6px;
        padding: 1.5rem 1rem;
      }
    }

/* === faq === */
/* ================= СТИЛИ СЕКЦИИ "FAQ" ================= */
  .faq-section {
    background-color: #efefef; /* Светло-серый фон секции */
  }

  .accordion-custom {
    background-color: #ffffff;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); /* Легкая тень для всего блока */
  }

  .accordion-custom .accordion-item {
    border: none;
    border-bottom: 1px solid #e8e8e8; /* Тонкий разделитель между пунктами */
    border-radius: 0 !important;
    background-color: transparent;
  }

  .accordion-custom .accordion-item:last-child {
    border-bottom: none;
  }

  /* Стилизация самой кнопки-заголовка */
  .accordion-custom .accordion-button {
    background-color: #ffffff;
    color: #000000;
    font-size: 1.15rem;
    font-weight: 700;
    padding: 1.8rem 2rem;
    box-shadow: none !important; /* Убираем синее свечение Bootstrap при фокусе */
    transition: all 0.3s ease;
  }

  .accordion-custom .accordion-button:not(.collapsed) {
    color: #000000;
    background-color: #ffffff;
    box-shadow: none;
  }

  /* Кастомная иконка "плюс" вместо стандартного шеврона */
  .accordion-custom .accordion-button::after {
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4V20M4 12H20' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 1.5rem;
    transition: transform 0.3s ease;
  }

  /* Превращаем плюс в крестик при открытии */
  .accordion-custom .accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4V20M4 12H20' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
    transform: rotate(45deg);
  }

  .accordion-custom .accordion-body {
    padding: 0 2rem 1.8rem 2rem;
    font-size: 1rem;
    line-height: 1.6;
    color: #444444;
  }

/* === prices === */
.advantages-section {
        padding: 60px 0;
        background-color: #fff;
    }
    
    .advantages-lead-title {
        color: #5bc0de;
        font-size: 2rem;
        font-weight: 600;
        margin-bottom: 3rem;
        text-align: center;
    }
    
    .advantages-lead-subtitle {
        color: #5bc0de;
        font-size: 1.5rem;
        font-weight: 600;
        margin-top: -2rem;
        margin-bottom: 4rem;
        text-align: center;
    }
    
    .advantage-card {
        padding: 2rem;
        margin-bottom: 2rem;
        min-height: 280px;
    }
    
    .advantage-title {
        color: #5bc0de;
        font-size: 1.25rem;
        font-weight: 600;
        margin-bottom: 1.5rem;
    }
    
    .advantage-text {
        color: #333;
        font-size: 0.95rem;
        line-height: 1.8;
        margin-bottom: 0;
    }
    
    .icon-wrapper {
        display: flex;
        justify-content: flex-end;
        margin-bottom: 1.5rem;
    }
    
    .icon-wrapper svg {
        width: 60px;
        height: 60px;
        stroke: #333;
        stroke-width: 2;
        fill: none;
    }
    
    @media (max-width: 768px) {
        .advantage-card {
            min-height: auto;
            padding: 1.5rem;
        }
        
        .icon-wrapper {
            justify-content: flex-start;
            margin-bottom: 1rem;
        }
    }

/* === prosthetics === */
/* Стили для секции цен */
    .prices-section {
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    .prices-header-bg {
        background-color: #e6f7ff; /* Светло-голубой фон шапки */
        padding: 40px 0;
        margin-bottom: 40px;
    }

    .price-item {
        border-bottom: 1px solid #dee2e6;
        padding: 30px 0;
        display: flex;
        flex-direction: column;
    }

    @media (min-width: 768px) {
        .price-item {
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
        }
    }

    .price-offer-title {
        font-weight: 600;
        font-size: 1.5rem;
        margin-bottom: 10px;
    }

    .price-offer-title--accent {
        color: #f4a692; /* Оранжевый цвет для некоторых заголовков */
    }

    .price-offer-desc {
        color: #555;
        font-size: 0.95rem;
        margin-bottom: 0;
    }

    .price-value {
        font-weight: 600;
        font-size: 1.25rem;
        margin-right: 15px;
        white-space: nowrap;
    }

    .btn-signup {
        background-color: #e63e32; /* Красный цвет кнопки */
        color: white;
        border-radius: 50px;
        padding: 10px 25px;
        font-weight: 500;
        border: none;
        transition: background-color 0.3s;
        white-space: nowrap;
    }

    .btn-signup:hover {
        background-color: #c93024;
        color: white;
    }

    .info-block strong {
        display: block;
        margin-top: 5px;
    }

/* === services === */
/* Стили для секции цен на протезирование */
    .prosthetics-pricing-section {
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    .prosthetics-header-bg {
        background-color: #e6f7ff; /* Светло-голубой фон */
        padding: 30px 20px;
        border-bottom: 1px solid #dee2e6;
    }

    .main-title-orange {
        color: #f4a692; /* Оранжевый заголовок */
        font-weight: 600;
        margin-bottom: calc(30px + var(--dk-section-title-air));
    }

    .info-text strong {
        display: block;
        font-weight: 700;
        color: #000;
    }

    .price-item-row {
        border-bottom: 1px solid #dee2e6;
        padding: 35px 0;
        display: flex;
        flex-direction: column;
    }

    @media (min-width: 768px) {
        .price-item-row {
            flex-direction: row;
            align-items: center;
            justify-content: space-between;
        }
    }

    .service-info {
        margin-bottom: 15px;
        flex: 1;
    }

    @media (min-width: 768px) {
        .service-info {
            margin-bottom: 0;
            padding-right: 20px;
        }
    }

    .service-name {
        font-size: 1.5rem;
        font-weight: 700;
        color: #212529;
        margin-bottom: 5px;
    }

    .prosthetics-item-desc {
        font-size: 0.9rem;
        color: #555;
        margin-top: 5px;
    }

    .price-action-group {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 20px;
    }

    .price-tag {
        font-size: 1.25rem;
        font-weight: 600;
        white-space: nowrap;
    }

    .btn-signup-red {
        background-color: #e63e32;
        color: white;
        border-radius: 50px;
        padding: 10px 30px;
        font-weight: 500;
        border: none;
        transition: background-color 0.2s;
        white-space: nowrap;
    }

    .btn-signup-red:hover {
        background-color: #c93024;
        color: white;
    }

/* === carousel === */
.services-section {
        background-color: #f4f5f7; /* Светло-серый фон как на макете */
        padding: 60px 0;
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    .services-section-heading {
        color: #66c1d9; /* Голубой цвет заголовка */
        font-weight: 600;
        margin-bottom: calc(50px + var(--dk-section-title-air));
        font-size: 2rem;
    }

    .service-card {
        text-align: center;
        padding: 20px;
        margin-bottom: 30px;
        transition: transform 0.3s ease;
    }

    .service-card:hover {
        transform: translateY(-5px);
    }

    .service-area-icon {
        width: 80px;
        height: auto;
        margin: 0 auto 20px;
        display: block;
        object-fit: contain;
    }

    /* Стили для иконок (SVG, legacy) */
    .service-icon {
        width: 100px;
        height: 100px;
        margin: 0 auto 20px;
        display: block;
    }
    
    .service-icon path, .service-icon circle, .service-icon rect, .service-icon line {
        stroke: #4a9c9c; /* Цвет обводки иконок */
        stroke-width: 2;
        fill: none;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    
    /* Специфичные цвета для элементов внутри иконок */
    .icon-fill-white { fill: #fff; }
    .icon-fill-pink { fill: #e8aeb2; stroke: none; } /* Для десны в хирургии */
    .icon-skin { fill: #f0d9b5; stroke: none; } /* Для кожи врача */
    .icon-blue-shirt { fill: #8ecae6; stroke: none; }

    .services-area-card-title {
        color: #66c1d9;
        font-weight: 600;
        font-size: 1.25rem;
        margin-bottom: 15px;
    }

    .services-area-card-desc {
        color: #555;
        font-size: 0.95rem;
        line-height: 1.6;
        margin: 0;
    }

/* === specialists === */
/* Стили для карусели */
    .custom-carousel {
        max-width: 1000px; /* Ограничиваем ширину как на макете */
        margin: 0 auto;
        position: relative;
    }

    .custom-carousel .carousel-inner {
        border-radius: 8px; /* Скругление углов картинки (опционально) */
        overflow: hidden;
    }

    .custom-carousel .carousel-item {
        aspect-ratio: 5 / 3;
    }

    .custom-carousel .carousel-item img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        display: block;
    }

    /* Стили для стрелок навигации */
    .custom-carousel .carousel-control-prev,
    .custom-carousel .carousel-control-next {
        width: 40px;
        height: 40px;
        top: 50%;
        transform: translateY(-50%);
        background-color: #f0f0f0; /* Светло-серый фон кружка */
        border-radius: 50%;
        opacity: 1;
        z-index: 5;
    }

    .custom-carousel .carousel-control-prev {
        left: -20px; /* Выносим немного за пределы или оставляем внутри */
    }
    
    .custom-carousel .carousel-control-next {
        right: -20px;
    }

    /* Иконки стрелок (черные) */
    .custom-carousel .carousel-control-prev-icon,
    .custom-carousel .carousel-control-next-icon {
        background-image: none; /* Убираем стандартный SVG Bootstrap */
        font-size: 1.5rem;
        color: #333;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    /* Эмуляция иконок через псевдоэлементы или текст, если нужно строго как на макете */
    .custom-carousel .carousel-control-prev-icon::after {
        content: "<";
    }
    .custom-carousel .carousel-control-next-icon::after {
        content: ">";
    }

    /* Стили для индикаторов (точек) */
    .custom-carousel .carousel-indicators {
        bottom: -40px; /* Опускаем точки под картинку */
        margin-bottom: 0;
    }

    .custom-carousel .carousel-indicators button {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background-color: #ccc; /* Серый цвет неактивной точки */
        border: none;
        margin: 0 5px;
        opacity: 1;
        transition: background-color 0.3s;
    }

    .custom-carousel .carousel-indicators button.active {
        background-color: #333; /* Темный цвет активной точки */
    }

    /* Адаптив для мобильных, чтобы стрелки не уезжали за экран */
    @media (max-width: 768px) {
        .custom-carousel .carousel-control-prev {
            left: 10px;
        }
        .custom-carousel .carousel-control-next {
            right: 10px;
        }
        .custom-carousel .carousel-control-prev,
        .custom-carousel .carousel-control-next {
            background-color: rgba(255, 255, 255, 0.8); /* Полупрозрачный фон на мобильном */
        }
    }

/* === partners === */
.specialists-section {
        padding: 60px 0;
        background-color: #f8f9fa; /* Светло-серый фон как на макете */
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }

    .specialists-lead-title {
        font-weight: 700;
        font-size: 2rem;
        margin-bottom: calc(1rem + var(--dk-section-title-air));
        color: #212529;
    }

    .specialists-lead-subtitle {
        color: #6c757d;
        font-size: 1.1rem;
        margin-bottom: 3rem;
        font-weight: 400;
    }

    .specialist-card {
        margin-bottom: 30px;
        transition: transform 0.3s ease;
    }
    
    .specialist-card:hover {
        transform: translateY(-5px);
    }

    .specialist-img {
        width: 100%;
        object-fit: cover;
        object-position: center top;
        border-radius: 4px;
        margin-bottom: 20px;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    }

    .specialist-img--card {
        aspect-ratio: 3 / 4;
        height: auto;
    }

    .specialist-img--page {
        aspect-ratio: 3 / 4;
        height: auto;
        max-height: 560px;
    }

    .specialist-name {
        font-size: 1.15rem;
        font-weight: 700;
        color: #212529;
        margin-bottom: 5px;
        line-height: 1.4;
    }

    .specialist-role {
        font-size: 0.9rem;
        color: #888;
        margin-bottom: 20px;
    }

    .specialist-details-heading {
        font-size: 1rem;
        font-weight: 500;
        margin-bottom: 10px;
        color: #333;
    }

    .specialist-details-text {
        font-size: 0.9rem;
        color: #555;
        line-height: 1.6;
        list-style-position: inside;
        padding-left: 0;
    }
    
    .specialist-details-text li {
        margin-bottom: 5px;
    }

/* === contacts === */
/* Стили для секции партнеров */
    .partners-section {
        padding: 50px 0;
        background-color: #ffffff;
    }

    .partners-title {
        font-size: 1.5rem;
        font-weight: 600;
        margin-bottom: calc(40px + var(--dk-section-title-air));
        color: #000;
    }

    /* Настройка карусели */
    .partners-carousel {
        position: relative;
        padding: 0 60px; /* Отступы для стрелок */
    }

    .partners-carousel .carousel-inner {
        overflow: hidden;
    }

    /* Контейнер для логотипов в слайде */
    .partner-logos-row {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 40px; /* Расстояние между логотипами */
        flex-wrap: wrap;
        padding: 20px 0;
    }

    .partner-logo {
        max-height: 60px; /* Ограничение высоты логотипа */
        width: auto;
        filter: grayscale(100%); /* Делаем логотипы серыми для единообразия (опционально) */
        opacity: 0.8;
        transition: all 0.3s;
    }

    .partner-logo:hover {
        filter: grayscale(0%);
        opacity: 1;
    }

    /* Стили для стрелок навигации */
    .partners-carousel .carousel-control-prev,
    .partners-carousel .carousel-control-next {
        width: 40px;
        height: 40px;
        top: 50%;
        transform: translateY(-50%);
        background-color: #f0f0f0;
        border-radius: 50%;
        opacity: 1;
        z-index: 5;
    }

    .partners-carousel .carousel-control-prev {
        left: 0;
    }

    .partners-carousel .carousel-control-next {
        right: 0;
    }

    /* Иконки стрелок (черные) */
    .partners-carousel .carousel-control-prev-icon,
    .partners-carousel .carousel-control-next-icon {
        background-image: none;
        font-size: 1.2rem;
        color: #333;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .partners-carousel .carousel-control-prev-icon::after {
        content: "<";
    }
    .partners-carousel .carousel-control-next-icon::after {
        content: ">";
    }
    
    @media (max-width: 768px) {
        .partner-logos-row {
            gap: 20px;
        }
        .partner-logo {
            max-height: 40px;
        }
    }

/* === footer === */
.contacts-section {
        padding: 60px 0;
        background-color: #fff;
    }

    .contact-title {
        font-size: 2rem;
        font-weight: 700;
        margin-bottom: calc(2rem + var(--dk-section-title-air));
        color: #000;
    }

    .prices-section > .container > .text-center > h2 {
        margin-bottom: calc(2.25rem + var(--dk-section-title-air)) !important;
    }

    .contact-info-block {
        margin-bottom: 2rem;
    }

    .contact-label {
        font-weight: 700;
        display: inline-block;
        margin-right: 5px;
    }

    .contact-text {
        font-size: 1.1rem;
        font-weight: 600;
        margin-bottom: 1.5rem;
        line-height: 1.5;
    }

    .email-link {
        color: #e08e76; /* Оранжевый цвет почты как на макете */
        text-decoration: none;
        font-weight: 600;
        transition: color 0.3s;
    }

    .email-link:hover {
        color: #c97a62;
        text-decoration: underline;
    }

    .map-container {
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 10px 30px rgba(0,0,0,0.1);
        height: 100%;
        min-height: 400px;
    }

    .map-container iframe {
        width: 100%;
        height: 400px;
        border: 0;
    }

    @media (max-width: 991px) {
        .map-container {
            min-height: 300px;
            margin-top: 30px;
        }
    }

/* === section14 === */
/* Стили для футера */
    .footer-section {
        background-color: #e6f7ff; /* Светло-голубой фон */
        padding: 40px 0;
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        color: #000;
    }

    /* Логотип */
    .footer-logo {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
        font-weight: 800;
        font-size: 1.5rem;
        color: #000;
        text-decoration: none;
    }

    .footer-logo-icon {
        background-color: #4da6ff;
        color: white;
        padding: 5px 10px;
        border-radius: 8px;
        margin-right: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .footer-logo-sub {
        font-size: 0.6rem;
        display: block;
        color: #4da6ff;
        font-weight: 600;
        margin-left: 45px; /* Выравнивание под текстом DK-SMILE */
        margin-top: -5px;
        letter-spacing: 1px;
    }

    .copyright-text {
        color: #888;
        font-size: 0.9rem;
        line-height: 1.5;
    }

    /* Навигация */
    .footer-nav ul {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        justify-content: center; /* Центрируем меню */
        gap: 60px; /* Расстояние между пунктами */
    }

    .footer-nav a {
        text-decoration: none;
        color: #000;
        font-weight: 700;
        font-size: 1.1rem;
        transition: color 0.3s;
    }

    .footer-nav a:hover {
        color: #4da6ff;
    }

    .footer-rosminzdrav {
        display: inline-block;
        line-height: 0;
        margin-top: 1rem;
    }

    .footer-rosminzdrav img {
        max-width: 214px;
        width: 100%;
        height: auto;
    }

    /* Адаптивность */
    @media (max-width: 991px) {
        .footer-nav ul {
            gap: 20px;
            margin-bottom: 30px;
        }
        .text-lg-start {
            text-align: center !important;
            margin-bottom: 20px;
        }
        .footer-logo-sub {
            margin-left: 0;
            text-align: center;
            display: block;
            width: 100%;
        }
        .footer-logo {
            justify-content: center;
        }

        .footer-rosminzdrav {
            display: block;
            text-align: center;
            margin-top: 1.5rem;
        }
    }

    /* Логотип DK-SMILE */
    .logo-link .site-logo {
        height: 56px;
        width: auto;
        max-width: 100%;
        object-fit: contain;
        flex-shrink: 0;
    }

    .footer-logo .site-logo {
        width: auto;
        height: 40px;
        object-fit: contain;
    }

    /* Список услуг */
    .services-list-horizontal {
        margin-top: 2rem;
        display: grid;
        gap: 1.25rem;
    }

    .service-card-horizontal {
        display: flex;
        gap: 1.25rem;
        padding: 1rem;
        border-radius: 12px;
        border: 1px solid #e9ecef;
        background-color: #fff;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
        transition: transform 0.3s ease;
    }

    .service-card-horizontal:hover {
        transform: translateY(-4px);
    }

    .service-card-horizontal-media {
        width: 280px;
        min-width: 280px;
        border-radius: 10px;
        overflow: hidden;
        display: block;
        align-self: stretch;
    }

    .service-card-horizontal-media img {
        width: 100%;
        height: 100%;
        min-height: 200px;
        object-fit: cover;
        display: block;
    }

    .service-card-horizontal-body {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .service-card-horizontal-title {
        margin-bottom: 0.75rem;
        font-size: 1.3rem;
        font-weight: 700;
        line-height: 1.3;
    }

    .service-card-horizontal-title a {
        color: #212529;
    }

    .service-card-horizontal-lead {
        margin-bottom: 0.75rem;
        color: #4f5b67;
        font-weight: 500;
    }

    .service-card-horizontal-text {
        margin-bottom: 1rem;
        color: #6c757d;
    }

    .service-card-horizontal-link {
        margin-top: auto;
        display: inline-flex;
        width: fit-content;
        font-weight: 600;
        color: #66c1d9;
        text-decoration: none;
    }

    .service-card-horizontal-link:hover {
        color: #3ca8c3;
    }

    @media (max-width: 767.98px) {
        .service-card-horizontal {
            flex-direction: column;
        }

        .service-card-horizontal-media {
            width: 100%;
            min-width: 100%;
        }

        .service-card-horizontal-media img {
            min-height: 220px;
        }
    }

    /* Страницы услуг */
    .service-page-content {
        font-size: 1rem;
        line-height: 1.65;
        color: #444;
    }

    .service-page-content p {
        margin-bottom: 1.25rem;
    }

    .service-page-content ul {
        margin-bottom: 1.25rem;
        padding-left: 1.5rem;
    }

    .service-page-content li {
        margin-bottom: 0.5rem;
    }

    .service-page-content img {
        max-width: 100%;
        height: auto;
    }

    .service-page-hero img {
        width: 100%;
        max-height: 420px;
        object-fit: cover;
    }
