:root {
      --blue: #154a9c;
      --orange: #ff7a00;
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      font-family: 'Inter', sans-serif;
      color: #1a1a1a;
    }

    a {
      text-decoration: none;
      color: inherit;
    }

    /* ================= HEADER ================= */

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 64px;
  background: #e9edf5;
  z-index: 9999;
}
.header__inner {
  max-width: 1200px;
  margin: 0 auto;
  height: 64px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 0 12px;
}
    .logo {
      display: flex;
      flex-direction: column;
      gap: 2px;
      font-weight: 600;
      font-size: 16px;
      color: var(--blue);
      line-height: 1.1;
    }

    .logo__sub {
      font-size: 12px;
      font-weight: 400;
      color: #6b7a90;
    }

    .nav {
      display: flex;
      gap: 20px;
      font-size: 14px;
      font-weight: 500;
    }

    .header__right {
      display: flex;
      align-items: center;
      gap: 24px;
    }

    .phones {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .phone {
      font-weight: 600;
      color: var(--blue);
      font-size: 14px;
      line-height: 1.2;
    }

   .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 282px;
  height: 44px;
  padding: 11px 28px;
  background: #FF6900; /* спокойный */
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .25s ease;
}

.btn:hover {
  background: #F54900; /* яркий */
}

    .btn--header {
      width: 180px;
    }

    /* ===== Mobile icons ===== */

  .header__icons {
  display: none;
}
/* ===== DESKTOP: полностью убираем мобильные меню ===== */
.mobile-menu {
  display: none !important;
}
@media (max-width: 768px) {
  .mobile-menu {
    display: flex !important;
  }
}
    /* ================= HERO ================= */

    .hero {
      position: relative;
      width: 100%;
      height: 800px;
     
      color: #fff;
      background:
        linear-gradient(
          90deg,
          rgba(21,74,156,.95) 0%,
          rgba(21,74,156,.85) 60%,
          rgba(21,74,156,.6) 100%
        ),
        url('./hero.jpg') center / cover no-repeat;
    }

 
.hero__content {
  position: absolute;
  width: 788px;
  top: 174px;

  left: 50%;
  transform: translateX(-50%) translateX(-190px);

  display: flex;
  flex-direction: column;
}
    

    .hero__badge {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      height: 38px;
      padding: 11px 17px;
      border: 1px solid #ff6900;
      border-radius: 30px;
      background: rgba(255,105,0,.2);
      font-size: 12px;
      color: #ff6900;
      width: max-content;
      margin-bottom: 40px;
    }

.hero__badge-dot {
  width: 6px;
  height: 6px;
  background: #ff6900;
  border-radius: 50%;
  animation: badgePulse 1.5s ease-in-out infinite;
}

@keyframes badgePulse {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
  100% {
    opacity: 1;
  }
}

    h1 {
      font-weight: 400;
      line-height: 1.25;
      margin-bottom: 32px;
    }

    .hero__title-main {
      font-size: 60px;
      white-space: nowrap;
    }

    .hero__title-sub {
      font-size: 50px;
      color: var(--orange);
    }

    .hero__text {
      max-width: 460px;
      font-size: 20px;
      line-height: 1.3;
      opacity: .9;
      margin-bottom: 40px;
    }

    .hero__features {
      display: flex;
      gap: 70px;
      margin-bottom: 40px;
    }

    .hero__feature {
      position: relative;
      display: flex;
      align-items: center;
      padding-left: 18px;
      font-size: 16px;
      white-space: nowrap;
    }

    .hero__feature:last-child {
      white-space: normal;
      max-width: 170px;
    }

    .hero__feature::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 2px;
      height: 41px;
      background: #ff6900;
    }


   /* ================= SERVICES ================= */

.services {
  background: #f7f9fc;
  padding: 100px 0;
}

.services__container {
  width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.services__badge {
  display: inline-block;
  padding: 8px 20px;
  background: rgba(255, 105, 0, 0.2);
  color: #ff6900;
  font-size: 12px;
  border-radius: 20px;
  margin-bottom: 24px;
}

.services__title {
  font-size: 36px;
  font-weight: 600;
  margin-bottom: 16px;
}

.services__subtitle {
  font-size: 16px;
  color: #6b7a90;
  max-width: 640px;
  margin: 0 auto 56px;
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.service-card {
 position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 32px 28px;
  text-align: left;
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
  transition: 
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
  border: 1px solid transparent;
  overflow: hidden;
}
.service-card::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: 100%;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s ease;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  border-color: var(--orange);
}
.service-card:hover::before {
  transform: scaleX(1);
}
.service-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--orange);
  color: #fff;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.service-card h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 12px;
}

.service-card p {
  font-size: 14px;
  line-height: 1.5;
  color: #6b7a90;
}

.services__footer {
  margin-top: 40px;
  font-size: 14px;
  text-align: center;
}
.services__footer-line {
  display: inline;
}
.services__footer-link {
  color: var(--orange);
  font-weight: 500;
}
.services__footer-text {
  color: #1a1a1a;
}
.services__footer a {
  color: var(--orange);
  font-weight: 500;
}
/* ================= WHY ================= */

.why {
  padding: 120px 0 100px;
  color: #fff;
  background: linear-gradient(
    122.24deg,
    #141C34 19.95%,
    #182F71 38.56%,
    #1B3584 46.27%,
    #182F71 55.35%,
    #141C34 75.5%
  );
}

.why__container {
  width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.why__badge {
  display: inline-block;
  padding: 8px 22px;
  background: rgba(255,105,0,.2);
  color: #ff6900;
  font-size: 12px;
  border-radius: 20px;
  margin-bottom: 24px;
}

.why__title {
  font-size: 36px;
  font-weight: 600;
  margin-bottom: 12px;
}

.why__subtitle {
  font-size: 16px;
  opacity: .8;
  max-width: 640px;
  margin: 0 auto 64px;
}

.why__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 64px;
}

.why-card {
  position: relative;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  padding: 28px 24px;
  text-align: left;
  overflow: hidden;
}
.why-card::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: #FF6900;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s ease;
}
.why-card:hover::after {
  transform: scaleX(1);
}

.why-card__icon {
  width: 44px;
  height: 44px;
  background: var(--orange);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 16px;
}

.why-card h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
}

.why-card p {
  font-size: 14px;
  line-height: 1.45;
  opacity: .85;
}

.why__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.why-stat__value {
  font-size: 28px;
  font-weight: 700;
  color: #ff6900;
  margin-bottom: 6px;
}

.why-stat__text {
  font-size: 14px;
  opacity: .85;
}
/* ================= PORTFOLIO ================= */

.portfolio {
  padding: 100px 0;
  background: #fff;
  text-align: center;
}

.portfolio__container {
  width: 1200px;
  margin: 0 auto;
}

.portfolio__badge {
  display: inline-block;
  padding: 8px 24px;
  background: rgba(255,105,0,.2);
  color: #ff6900;
  font-size: 12px;
  border-radius: 20px;
  margin-bottom: 24px;
}

.portfolio__title {
  font-size: 36px;
  font-weight: 600;
  margin-bottom: 12px;
}

.portfolio__subtitle {
  font-size: 16px;
  max-width: 620px;
  margin: 0 auto 48px;
}

/* ===== Slider ===== */

.portfolio__slider {
  position: relative;
  display: flex;
  align-items: center;
}

.portfolio__track-wrapper {
  overflow: hidden;
  width: 100%;
}

.portfolio__track {
  display: flex;
  transition: transform .4s ease;
}

.portfolio__slide {
 flex: 0 0 auto;
  width: calc((100% - 48px) / 3);
  margin-right: 24px;
}



.portfolio__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== Arrows ===== */

.portfolio__arrow {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1px solid #eee;
  background: #fff;
  color: var(--orange);
  font-size: 24px;
  cursor: pointer;
  position: absolute;
  top: 50%;


}

.portfolio__arrow--left {
  left: -60px;
}

.portfolio__arrow--right {
  right: -60px;
}

/* ===== Dots ===== */

.portfolio__dots {
  margin-top: 24px;
  display: none;
 
}

.portfolio__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ddd;
  cursor: pointer;
}

.portfolio__dot.active {
  background: var(--orange);
}

/* ===== ABOUT ===== */

.about {
  padding: 100px 0;
  background: #F8FAFC;
}

/* КОНТЕЙНЕР */
.about__container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ===== БЕЙДЖ ===== */

.about__badge-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 48px;
}

.about__badge {
  padding: 8px 24px;
  background: rgba(255, 105, 0, 0.2);
  color: #ff6900;
  font-size: 12px;
  border-radius: 20px;
}

/* ===== GRID ===== */

.about__grid {
  display: grid;
  grid-template-columns: 588px 1fr;
  gap: 48px;
  align-items: center;
}

/* ===== IMAGE ===== */

.about__image img {
  width: 100%;
  max-width: 588px;
  height: 430px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

/* ===== CONTENT ===== */

.about__content {
  display: flex;
  flex-direction: column;
}

.about__title {
 max-width: 585px;
  font-size: 28px;
  line-height: 1.25;
  margin-bottom: 16px;
}

.about__text {
  font-size: 14px;
  line-height: 1.65;
  color: #444;
  margin-bottom: 24px;
}

/* ===== LIST ===== */

.about__list {
    
  list-style: none;
  margin-bottom: 28px;
  max-width: 640px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 0;
}
.about__text-block {
  max-width: 585px;  
}
.about__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  line-height: 1.4;
}

.about__icon {
  flex-shrink: 0;
}
/* ===== REVIEWS ===== */

.reviews {
  padding: 100px 0;
  background: #ffffff;
}

.reviews__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
    text-align: center;
}

/* badge */
.reviews__badge {
  display: inline-block;
  margin-bottom: 16px;
  padding: 8px 24px;
  background: rgba(255,105,0,.2);
  color: #ff6900;
  border-radius: 20px;
  font-size: 12px;
}

/* titles */
.reviews__title {
  font-size: 32px;
  margin-bottom: 12px;
}

.reviews__subtitle {
  max-width: none;     /* убираем ограничение */
  white-space: nowrap; /* одна строка */
  font-size: 14px;
  color: #555;
  margin-bottom: 48px;
}

/* slider */
.reviews__slider {
  overflow: visible;
  display: flex;
  justify-content: center;
   position: relative;
}

.reviews__track {
 display: flex;
  gap: 35px;
  transition: transform 0.3s ease;
  will-change: transform;
  touch-action: pan-y;
}
  .reviews__viewport {
    overflow: hidden;
      padding: 26px;
  margin: -24px;
  padding-left: 5;
  }
/* card */
/* ===== CARD ===== */

.review {
  position: relative;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 32px 24px 24px;
  
  display: flex;
  flex-direction: column;
  text-align: left;

  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
    flex: 0 0 calc((100% - 64px) / 3);
}
.review:hover {
  border-color: var(--orange);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}
.reviews__nav {
  all: unset;              /* ❗ СБРАСЫВАЕТ ВСЁ */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
   position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.reviews__nav svg {
  width: 48px;
  height: 48px;
  display: block;
}
.reviews__nav--prev{
  left: -100px;
}

.reviews__nav--next{
  right: -100px;
}
/* ===== QUOTE ICON ===== */

.review__icon {
  position: absolute;
  top: -22px;
  left: -22px;

  width: 44px;
  height: 44px;

  border-radius: 50%;
  overflow: hidden;
}

.review__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ===== STARS ===== */

.review__stars {
  position: absolute;
  top: 18px;      /* ↑ регулируй */
  left: 18px;
 
  transform: scale(1);
  transform-origin: left center;
}

/* ===== TEXT ===== */

.review__text {
 font-size: 13px;      /* меньше */
  line-height: 1.55;
  font-style: italic;
  color: #333;
margin-top: 30px;
  margin-bottom: 32px; /* ↓ линия ниже */

  min-height: 72px;    /* одинаковая высота */
}

/* ===== AUTHOR ===== */

.review__author {
  margin-top: auto;       /* прижимаем вниз */
  padding-top: 10px;      /* линия ниже */
  border-top: 1px solid #eee;
}

.review__author strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 0px;
}

.review__author span {
  font-size: 12px;
  color: #888;
}


/* dots */
.reviews__dots {
  display: none;
  margin-top: 16px;
  justify-content: center;
  gap: 8px;
}

.dot {
  width: 6px;
  height: 6px;
  background: #ddd;
  border-radius: 50%;
}

.dot.active {
  background: #ff6900;
}
.contacts {
  padding: 100px 0;
  background: #fafafa;
}

.contacts__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  text-align: center;
}

/* badge */
.contacts__badge {
  display: inline-block;
  margin-bottom: 16px;
  padding: 8px 24px;
  background: rgba(255,105,0,.2);
  color: #ff6900;
  border-radius: 20px;
  font-size: 12px;
}

.contacts__title {
  font-size: 32px;
  margin-bottom: 12px;
}

.contacts__subtitle {
  font-size: 14px;
  color: #555;
  margin-bottom: 56px;
}

/* content */
.contacts__content {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 32px;
  align-items: flex-start;
  margin-bottom: 64px;
}

/* info */
.contacts__info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.contact-card {
  display: flex;
  gap: 16px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 16px;
  text-align: left;

  transition: border-color .25s ease, box-shadow .25s ease;
}

.contact-card:hover {
  border-color: var(--orange);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}


.contact-card__icon {
  width: 36px;
  height: 36px;
  background: rgba(255,105,0,.15);
  color: #ff6900;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}

.contact-card span {
  display: block;
  font-size: 12px;
  color:#A3A3A3;
;
  margin-top: 4px;
}

/* form */
.contacts__form {
  background: linear-gradient(135deg, #1b2f6b, #0f1e45);
  border-radius: 12px;
  padding: 32px;
  color: #fff;
  text-align: left;
}

.contacts__form label {
  display: block;
  font-size: 12px;
  margin-bottom: 16px;
}

.contacts__form input,
.contacts__form textarea {
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.1);
  color: #FFFFFF;
;
}
.contacts__policy.policy-error {
  outline: 2px solid #ff3b3b;
  outline-offset: 4px;
}

.contacts__form textarea {
  resize: none;
  height: 80px;
}

.contacts__policy {
display: inline-flex;          /* 🔥 ключ */
  align-items: baseline;         /* 🔥 выравнивание по тексту */
  gap: 10px;
  font-size: 12px;
  line-height: 1.4;
  cursor: pointer;
  user-select: none;
}
.contacts__checkbox {
 position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* квадрат */
.contacts__checkmark {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  background: rgba(255,255,255,0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: baseline;      /* 🔥 */
  flex-shrink: 0;
}
/* SVG будет внутри */
.contacts__checkmark svg {
 width: 12px;
  height: 12px;
  opacity: 0;
}

/* текст */
.contacts__policy-text a {
 color: #ff6900;
  text-decoration: none;
}
.contacts__policy-text {
  display: inline;
}
.contacts__checkbox:checked + .contacts__checkmark {
  background: #ff6900; /* оранжевый */
}

/* показываем SVG при checked */
.contacts__checkbox:checked + .contacts__checkmark svg {
  opacity: 1;
}

/* УБИРАЕМ ВСЮ ОБВОДКУ И OUTLINE */
.contacts__checkbox:focus + .contacts__checkmark,
.contacts__checkbox:active + .contacts__checkmark {
  outline: none;
  box-shadow: none;
}

.contacts__policy a {
  color: #ffb066;
}

.contacts__submit {
  width: 100%;
  margin-top: 16px;
  padding: 12px;
  border-radius: 6px;
  border: none;
  background: #ff6900;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}

/* map */
.contacts__map {
  margin-top: 48px ;
}

.map-placeholder {
  height: 280px;
  border-radius: 12px;
  background: #eaeaea;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
}
.map {
  width: 100%;
  height: 280px;
  border-radius: 12px;
  overflow: hidden;
}

.footer {
  background: linear-gradient(180deg, #0f1e45 0%, #0b1733 100%);
  width: 100%;
  color: #fff;
   position: static;
  bottom: auto;
}

/* Основная сетка */
.footer__container {
  max-width: 1200px;          /* или 1320px — под твой макет */
  margin: 0 auto;
  padding: 56px 20px 32px;    /* безопасные боковые отступы */
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px;
}

/* Бренд */
.footer__logo {
 color: #ff6900;
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 10px;
}

.footer__desc {
font-size: 12px;
  line-height: 1.5;
  color: #b7c1ff;
  margin-bottom: 40px;
}

.footer__legal {
  font-size: 13px;
  line-height: 1.7;
  color: #b7c1ff;
}

/* Навигация */
.footer__nav-block {
  text-align: center;
}

.footer__title {
font-size: 15px;
  font-weight: 600;       /* усиливаем */
  color: #d2dcff;        /* делаем ярче */
  margin-bottom: 18px;
}

.footer__nav {
  display: flex;
  justify-content: center; /* центрируем блок целиком */
}

.footer__nav-inner {
  text-align: left;        /* ❗ внутри — по левому краю */
}

.footer__nav-title {
  text-align: center;      /* ❗ заголовок по центру */
  font-size: 14px;
  margin-bottom: 16px;
}

.footer__nav-list {
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 64px;
  row-gap: 8px;
}

.footer__nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer__nav a {
  font-size: 12px;
  line-height: 1.6;
  color: #b7c1ff;
  text-decoration: none;
}
.footer__nav a:hover {
  color: #b7c1ff;
}
/* Контакты */
.footer__contacts {
  justify-self: end;
}

.footer__contact {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}

.footer__phones {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.footer__contacts a {
  font-size: 14px;
  line-height: 1.6;
  color: #b7c1ff;
}

/* Нижняя линия */
.footer__bottom {
 border-top: 1px solid rgba(255,255,255,.1);
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 20px 24px;
  display: flex;
  justify-content: space-between;
}
.footer__phones a {
  font-size: 15px;
  line-height: 1.6;
  font-weight: 500;
  color: #b7c1ff;
}
.footer__email {
  font-size: px;
  line-height: 1.6;
  font-weight: 500;
  color: #b7c1ff;
}
.footer__bottom a {
  font-size: 15px;
  color: #b7c1ff;               /* как вторичный текст */
  text-decoration: underline;  /* подчёркивание всегда */
  text-underline-offset: 3px;  /* аккуратный отступ */
}

.footer__bottom a:hover {
  color: #b7c1ff;               /* лёгкий hover, не белый */
}
.footer__contact-group {
  display: flex;
  align-items: flex-start;
  gap: 10px;                 /* расстояние иконка ↔ текст */
  margin-bottom: 18px;       /* расстояние между телефонами и почтой */
}
.footer__icon {
  width: 16px;
  height: 16px;
  margin-top: 3px; /* выравнивание по первой строке */
  flex-shrink: 0;
}
.footer__contact-group--phones .footer__icon {
  transform: translateY(12px);
}
html, body {
     max-width: 100%;
  overflow-x: hidden;
}
html {
  overflow-y: scroll;
}

   .scroll-top {
      position: fixed;
      right: 24px;
      bottom: 120px;
      width: 44px;
      height: 44px;
      background: var(--accent);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 18px;
    }
.header__icon--close {
  display: none;
  font-size: 26px;
  color: #1B378B;
}

/* Когда меню открыто */
.header.menu-open .header__icon--close {
  display: flex;
}

/* Прячем телефон и бургер */
.header.menu-open .header__icon--phone,
.header.menu-open .header__icon--burger {
  display: none;
}
/* ================= BACKDROP ================= */



.menu-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

/* ================= MODAL ================= */

.callback-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  pointer-events: none;
  transition: 0.25s ease;
  z-index: 950;
}

.callback-modal.active {
  opacity: 1;
  pointer-events: auto;
}

/* ================= BOX ================= */

.callback-modal__box {
  position: relative;
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 12px;
  padding: 28px 28px 32px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}

/* ================= CLOSE ================= */

.callback-modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 22px;
  color: #b5b5b5;
  background: none;
  border: none;
  cursor: pointer;
}

.callback-modal__close:hover {
  color: #1B378B;
}

/* ================= TEXT ================= */

.callback-modal__title {
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 600;
  color: #000;
}

.callback-modal__subtitle {
  margin: 0 0 20px;
  font-size: 14px;
  color: #6b6b6b;
}

/* ================= FORM ================= */

.callback-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.callback-field span {
  display: block;
  font-size: 14px;
  margin-bottom: 6px;
  color: #000;
}

.callback-field input {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border-radius: 8px;
  border: 1px solid #c7cff4;
  font-size: 14px;
}

.callback-field input:focus {
  outline: none;
  border-color: #1B378B;
}

/* ================= POLICY ================= */

.callback-policy {
  display: flex;
  gap: 10px;
  font-size: 13px;
  align-items: flex-start;
  cursor: pointer;
}

.callback-policy input {
  margin-top: 3px;
    position: absolute;
  opacity: 0;
  pointer-events: none;
}
.callback-policy__text {
  position: relative;
  padding-left: 26px;
  line-height: 1.4;
}
.callback-policy a {
  color: #1B378B;
  text-decoration: underline;
}

/* ================= SUBMIT ================= */

.callback-submit {
  margin-top: 10px;
  height: 44px;
  border-radius: 8px;
  background: #FF6900;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  border: none;
  cursor: pointer;
}

.callback-submit:hover {
  background: #e85f00;
}
.callback-policy__text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid #FF6900;
  background: transparent;
}

/* галочка появляется ТОЛЬКО если checked */
.callback-policy input:checked + .callback-policy__text::before {
    border: none;
  background: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'>\
<rect width='20' height='20' rx='4' fill='%23FF6900'/>\
<path d='M3.75 11.6667L7.52007 14.4314C7.95313 14.749 8.55972 14.6678 8.89403 14.2475L16.25 5' stroke='white' stroke-width='2' stroke-linecap='round'/>\
</svg>") no-repeat center / contain;
}

.calc-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  pointer-events: none;
  transition: 0.25s ease;
  z-index: 950;
}

.calc-modal.active {
  opacity: 1;
  pointer-events: auto;
}

/* ================= BOX ================= */

.calc-modal__box {
  position: relative;
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 12px;
  padding: 28px 28px 32px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}

/* ================= CLOSE ================= */

.calc-modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 22px;
  color: #b5b5b5;
  background: none;
  border: none;
  cursor: pointer;
}

.calc-modal__close:hover {
  color: #1B378B;
}

/* ================= TEXT ================= */

.calc-modal__title {
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 600;
  color: #000;
}

.calc-modal__subtitle {
  margin: 0 0 20px;
  font-size: 14px;
  color: #6b6b6b;
}

/* ================= FORM ================= */

.calc-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.calc-field span {
  display: block;
  font-size: 14px;
  margin-bottom: 6px;
  color: #000;
}

.calc-field input {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border-radius: 8px;
  border: 1px solid #c7cff4;
  font-size: 14px;
}

.calc-field input:focus {
  outline: none;
  border-color: #1B378B;
}

/* ================= POLICY ================= */

.calc-policy {
  display: flex;
  gap: 10px;
  font-size: 13px;
  align-items: flex-start;
  cursor: pointer;
}

.calc-policy input {
  margin-top: 3px;
    position: absolute;
  opacity: 0;
  pointer-events: none;
}
.calc-policy__text {
  position: relative;
  padding-left: 26px;
  line-height: 1.4;
}
.calc-policy a {
  color: #1B378B;
  text-decoration: underline;
}

/* ================= SUBMIT ================= */

.callback-submit {
  margin-top: 10px;
  height: 44px;
  border-radius: 8px;
  background: #FF6900;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  border: none;
  cursor: pointer;
}

.callback-submit:hover {
  background: #e85f00;
}
/* пустой чекбокс */
.calc-policy__text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: 2px solid #FF6900;
  background: transparent;
}

/* галочка появляется ТОЛЬКО если checked */
.calc-policy input:checked + .calc-policy__text::before {
    border: none;
  background: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'>\
<rect width='20' height='20' rx='4' fill='%23FF6900'/>\
<path d='M3.75 11.6667L7.52007 14.4314C7.95313 14.749 8.55972 14.6678 8.89403 14.2475L16.25 5' stroke='white' stroke-width='2' stroke-linecap='round'/>\
</svg>") no-repeat center / contain;
}


.thanks {
  width: 100%;
  min-height: 800px;
}

.thanks-png {
  width: 100%;
  height: 100%;
  background:
    linear-gradient(
      90deg,
      rgba(21,74,156,.95) 0%,
      rgba(21,74,156,.85) 60%,
      rgba(21,74,156,.6) 100%
    ),
    url('./hero1.jpg') center / 100% 100% no-repeat;
}

.thanks__content {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 240px;   /* ↓ опускаем */
  padding-left: 55px; /* ← сдвигаем */
  color: #fff;
}

.thanks-screen.active {
  opacity: 1;
  pointer-events: auto;
}
.thanks__content h1 {
  font-family: 'Inter', sans-serif;
  font-size: 48px;
  font-weight: 400;
  font-style: normal;
  line-height: 130%;
  letter-spacing: 0;
  margin-bottom: 8px; 
}

.thanks__subtitle {
      font-family: 'Inter', sans-serif;
  font-size: 39px;
  font-weight: 400;
  font-style: normal;
  line-height: 130%;
  letter-spacing: 0;
  margin-bottom: 22px; 
  color: #FF6900;
}

.thanks__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 220px;      /* 👈 ширина как в референсе */
  height: 48px;

  padding: 0 40px;      /* 👈 дополнительная ширина */
  background: #FF6900;
  color: #fff;

  border-radius: 8px;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.3px;
}
/* ===== 404 PAGE ===== */

.error-404 {
  min-height: calc(100vh - 160px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;
}

.error-404__container {
  text-align: center;
  padding: 40px 16px;
}

.error-404__code {
  font-size: 180px;
  font-weight: 700;
  color: #1B378B;
  line-height: 1;
  margin-bottom: 12px;
}

.error-404__title {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #111;
}

.error-404__text {
  font-size: 14px;
  color: #666;
  margin-bottom: 24px;
}

.error-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 180px;
  height: 44px;
  padding: 0 32px;

  background: #FF6900;
  color: #fff;
  border-radius: 8px;
  text-decoration: none;

  font-size: 14px;
  font-weight: 600;
}

.error-404__btn:hover {
  opacity: 0.9;
}
/* ================== Ошибки полей ================== */
.callback-modal input.input-error,
.callback-modal textarea.input-error,
.calc-modal input.input-error,
.calc-modal textarea.input-error,
.contacts__form input.input-error,
.contacts__form textarea.input-error {
    border-color: #ff3b3b;
    box-shadow: 0 0 0 1px rgba(255, 59, 59, 0.2);
}

/* Текст ошибок */
.callback-modal .error-text,
.calc-modal .error-text,
.contacts__form .error-text {
    font-size: 12px;
    line-height: 1.3;
    color: #ff3b3b;
    margin-top: 6px;
    display: none;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .2s ease, transform .2s ease;
}

/* Показываем текст ошибки */
.callback-modal input.input-error + .error-text,
.callback-modal textarea.input-error + .error-text,
.callback-modal .callback-policy.input-error .error-text,

.calc-modal input.input-error + .error-text,
.calc-modal textarea.input-error + .error-text,
.calc-modal .calc-policy.input-error .error-text,

.contacts__form input.input-error + .error-text,
.contacts__form textarea.input-error + .error-text,
.contacts__form .contacts__policy.input-error .error-text {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* ================== Успешные поля ================== */
.callback-modal input:not(.input-error):not(:placeholder-shown),
.callback-modal textarea:not(.input-error):not(:placeholder-shown),

.calc-modal input:not(.input-error):not(:placeholder-shown),
.calc-modal textarea:not(.input-error):not(:placeholder-shown),

.contacts__form input:not(.input-error):not(:placeholder-shown),
.contacts__form textarea:not(.input-error):not(:placeholder-shown) {
    border-color: #4caf50;
    box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.2);
}

/* ================== Чекбоксы ================== */
.callback-modal .callback-policy input[type="checkbox"],
.calc-modal .calc-policy input[type="checkbox"],
.contacts__form .contacts__policy input[type="checkbox"] {
    accent-color: #ccc;
    transition: accent-color .2s ease;
}

.callback-modal .callback-policy.input-error input[type="checkbox"],
.calc-modal .calc-policy.input-error input[type="checkbox"],
.contacts__form .contacts__policy.input-error input[type="checkbox"] {
    accent-color: #ff3b3b;
}

.callback-modal .callback-policy input[type="checkbox"]:checked:not(.input-error),
.calc-modal .calc-policy input[type="checkbox"]:checked:not(.input-error),
.contacts__form .contacts__policy input[type="checkbox"]:checked:not(.input-error) {
    accent-color: #4caf50;
}

/* ================== Политика ================== */
.callback-modal .callback-policy.input-error,
.calc-modal .calc-policy.input-error,
.contacts__form .contacts__policy.input-error {
    color: #ff3b3b;
}

.callback-modal .callback-policy.input-error a,
.calc-modal .calc-policy.input-error a,
.contacts__form .contacts__policy.input-error a {
    color: #ff3b3b;
    text-decoration: underline;
}

/* Текст ошибок под чекбоксом */
.callback-modal .callback-policy .error-text,
.calc-modal .calc-policy .error-text,
.contacts__form .contacts__policy .error-text {
    margin-top: 6px;
    font-size: 12px;
    color: #ff3b3b;
}

/* ===== MOBILE ===== */
@media (max-width: 768px) {
  .error-404__code {
    font-size: 96px;
  }

  .error-404__title {
    font-size: 18px;
  }

  .error-404__text {
    font-size: 13px;
  }
}
.policy-page {
      padding: 40px 20px 80px;
      
    }

    .policy-container {
      max-width: 820px;
      margin: 0 auto;
    }

    /* Breadcrumbs */
    .breadcrumbs {
      font-size: 12px;
      color: #8a8a8a;
      margin-bottom: 32px;
      padding-top: 36px;
    }

    .breadcrumbs a {
      color: #8a8a8a;
    }

    /* Title */
    .policy-title {
      text-align: center;
      font-size: 28px;
      font-weight: 700;
      margin-bottom: 48px;
    }

    /* Sections */
    .policy-section {
      margin-bottom: 32px;
    }

    .policy-section h2 {
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 12px;
      text-transform: uppercase;
    }

    .policy-section p {
      font-size: 14px;
      line-height: 1.6;
      margin-bottom: 10px;
    }

    .policy-section ul {
      padding-left: 18px;
      margin: 10px 0 0;
    }

    .policy-section li {
      font-size: 14px;
      line-height: 1.6;
      margin-bottom: 6px;
    }

    /* Footer spacing helper */
    .policy-spacer {
      height: 60px;
    }
    .cookie-container {
        max-width: 820px;
      margin: 0 auto;
    }
    .cookie {
        padding: 40px 20px 80px;
    }
    .cookie-title {
      text-align: center;
      font-size: 28px;
      font-weight: 700;
      margin-bottom: 48px;
    }

    /* Sections */
    .cookie-section {
      margin-bottom: 32px;
    }

    .cookie-section h2 {
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 12px;
      text-transform: uppercase;
    }

    .cookie-section p {
      font-size: 14px;
      line-height: 1.6;
      margin-bottom: 10px;
    }

    .cookie-section ul {
      padding-left: 18px;
      margin: 10px 0 0;
    }

    .cookie-section li {
      font-size: 14px;
      line-height: 1.6;
      margin-bottom: 6px;
    }
    .cookie-spacer {
      height: 60px;
    }
   .breadcrumbscookie {
      font-size: 12px;
      color: #8a8a8a;
      margin-bottom: 32px;
      padding-top: 36px;
    }
    .breadcrumbscookie a {
      color: #8a8a8a;
    }

