:root {
    --light-grey: #eeeeee;
    --primary: #0c87f9;
    --hover: #0871d1;
    --accents: #5cd8ff;
    --white: #ffffff;
    --black: #000000;
    --danger: #e63757;
    --background-color: #f7f8f9;
    --text-color: #283354;
    --text-color-secondary: #8c94a8;
    --header-mobile-text-secondary: #636f8f;
    --border-color: #dee2e6;
    --border-width: 1px;
    --header-height: 74px;
    --header-logo-width: 340px;
    --header-logo-width-mobile: 225px;
    --header-mobile-menu-width: 310px;
    --border-radius: 24px;
    --border-radius-small: 6px;
    --input-height: 50px;
}

@font-face {
    font-family: "Roboto";
    src: url("../font/Roboto-VariableFont_wdth,wght.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
}

body {
    background-color: var(--background-color);
    font-family: "Roboto", sans-serif;
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    height: 100%;
    font-weight: 500;
}

body,
html {
  height: 100%;
}

a {
  text-decoration: none;
  color: var(--text-color);
}

a:hover {
  color: var(--primary) !important;
}

main {
  flex: 1 0 auto;
  padding-top: var(--header-height);
}

:focus-visible {
  outline: none;
  box-shadow: none;
}

body.user-is-tabbing :focus-visible {
  outline-color: var(--primary) !important;
  outline-width: 1px !important;
  outline-style: solid !important;
}

.text-container {
    margin-top: 48px;
    margin-bottom: 48px;
    background-color: var(--white);
    padding: 48px 80px;
    border-radius: var(--border-radius);
}

.text-container h1 {
    text-align: center;
}

.text-container .wip {
    text-align: center;
}

.accordion-button {
    border: var(--border-color) 1px solid;
    box-shadow: none !important;
}

.accordion-body {
    border: var(--border-color) 1px solid;
    border-top: none;
    color: var(--text-color);
    padding-bottom: 16px;
    border-radius: 0 0 var(--border-radius-small) var(--border-radius-small);
}

.accordion-body img {
    width: 100%;
    margin: 15px 0;
}

.row {
    margin: 0 !important;
}

.yandexMap {
    width: 100%;
    height: 100%;
    border-radius: var(--border-radius);
}

.yandexMap-wrapper {
    height: 100%;
}

.header-wrapper h2 {
    margin: 0;
}

.header-wrapper {
  text-align: center;
  padding-top: 48px;
  padding-bottom: 48px;
}

.preheader {
  color: var(--primary);
  font-size: 14px;
  margin: 0;
  font-weight: bold;
}

.header {
  font-size: 32px;
  font-weight: 700;
}

.postheader {
    font-size: 20px;
    color: var(--text-color-secondary);
    margin-bottom: 0;
    font-weight: 400;
}

.card-body a {
  display: block;
}

.card-title.with-btn {
  justify-content: space-between;
  color: var(--primary);
  align-items: center;
  font-size: 20px;
}

.card-title p {
  font-size: 12px;
  margin: 0;
}

.table-card {
  border: 1px solid var(--light-grey);
  transition: transform 0.2s ease;
  background-color: var(--white);
}

.table-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 .125rem .25rem color-mix(in srgb, var(--black) 7%, transparent);
}

.card-text:hover {
  color: var(--primary);
}

.col {
  padding: 12px;
}

.col:first-child {
    padding-left: 0;
}

.col:last-child {
    padding-right: 0;
}

.nav-section {
  background-color: var(--white);
  z-index: 1050;
}

.navbar {
  height: var(--header-height);
  color: var(--text-color);
  background-color: var(--white);
}

.navbar-brand {
  width: var(--header-logo-width);
}

.burger-menu {
  font-size: 25px;
  border-radius: 8px;
}

.burger-menu:before {
  display: block;
  color: var(--primary);
}

.nav-link,
.nav-link:focus {
  color: inherit;
}

.nav-link:hover::after {
  background-color: var(--primary);
}

.nav-link:focus-visible {
  background-color: var(--white);
  color: var(--text-color);
}

.nav-link:focus {
  box-shadow: none;
}

.dropdown-item.active,
.dropdown-item:hover {
  color: var(--primary);
  background-color: var(--white);
}

.dropdown-menu {
  background-color: var(--white);
  border: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  display: block;
  pointer-events: none;
  top: 30px;
}

.dropdown-menu.show {
  opacity: 1;
  pointer-events: auto;
  top: 30px;
  margin: 0;
}

.dropdown {
  padding-right: 16px;
}

.dropdown-toggle:after {
  background-color: var(--text-color);
  display: inline-block;
  position: absolute;
  top: calc(50% - 6px);
  height: 12px;
  width: 12px;
}

.btn-primary {
  background-color: var(--primary);
  color: var(--white);
  border: none;
}

.btn-secondary {
    background-color: var(--text-color-secondary);
    color: var(--white);
    border: none;
}

.btn-primary:hover {
  background-color: var(--hover);
}

.fw-bold {
  font-weight: 700;
}

.modal {
  --bs-modal-width: 800px;
}

.contact-modal-dialog {
  display: flex;
  justify-content: center;
}

.contact-modal-content {
  height: 350px;
  width: 600px;
  background-image: url(../src/popup.webp);
}

.modal-contact-close-button {
  align-self: end;
  background-color: transparent;
  border: none;
  font-size: 20px;
}

.modal-contact-close-button::before {
  color: var(--white);
}

.contact-modal-content-wrapper {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  padding-left: 45%;
}

.contact-modal-body {
  display: flex;
  flex-direction: column;
}

.backed {
  background-color: var(--white);
  border-radius: var(--border-radius);
  border: var(--border-width) solid var(--border-color);
}

.footer {
  background-color: var(--white);
  flex-shrink: 0;
  z-index: 1030;
}

.pagination-wrapper {
  display: flex;
  justify-content: center;
}

.pagination {
  border-radius: var(--border-radius);
  border: var(--border-width) solid var(--border-color);
  overflow: hidden;
}

.page-link {
  color: var(--text-color);
  border: none;
}

.page-link:hover,
.page-link.active,
.page-link:focus-visible {
  background-color: var(--white);
  color: var(--primary);
}

.page-link:focus {
  box-shadow: none;
}

.page-link {
  cursor: pointer;
}

.blue-card button, .blue-card a.btn {
  border-color: var(--white);
  color: var(--white);
  display: flex;
  align-items: center;
}

.blue-card button:hover, .blue-card a.btn:hover {
  border-color: var(--white);
  color: var(--text-color) !important;
  background-color: var(--white);
}

.blue-card {
  color: var(--white);
}

.blue-card a,
.blue-card a:hover {
  text-decoration: none;
  color: var(--white) !important;
}

.contact-modal-button {
  height: 45px;
  font-size: 18px;
}

.contact-modal-button span::before {
  height: 35px;
  width: 35px;
  background-color: var(--white);
  margin-top: 5px;
  margin-right: 15px;
}

.contact-modal-button:hover span::before {
  background-color: var(--text-color);
}

.contact-modal-content-wrapper h3 {
  font-size: 26px;
  margin: 0;
}

.contact-modal-content-wrapper p {
  margin: 0;
}

.mid {
  font-size: 20px;
  font-weight: 200;
}

.small {
  font-size: 18px;
}

.accordion-item {
    border: none;
}

a.last-of-list, .footer .accordion-button.collapsed.last-of-list, .navbar .accordion-button.collapsed.last-of-list {
    border-bottom: none !important;
}

.footer .accordion-button, .navbar .accordion-button {
    font-weight: 500;
    border-bottom-right-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    color: var(--text-color);
    border: 0;
    border-bottom: var(--border-color) 1px solid;
}

.footer .accordion-body, .navbar .accordion-body {
    text-align: left;
    padding-bottom: 0;
    color: var(--header-mobile-text-secondary);
    border: none;
}

.footer .accordion-body a, .navbar .accordion-body a {
    color: var(--header-mobile-text-secondary);
}

.footer .accordion-button::after, .navbar .accordion-button::after {
    background-image: none !important;
    background-color: var(--border-color);
}

.accordion-button:not(.collapsed) {
    color: var(--text-color);
    background-color: var(--white);
    box-shadow: none;
}

.accordion-button:focus {
    box-shadow: none;
}

.footer .accordion-wrapper, .navbar .accordion-wrapper {
    text-align: center;
}

.info-tech-2025 {
    font-weight: 500;
    background-color: var(--white);
    color: var(--text-color-secondary);
    text-align: center;
}

.info-tech-2025 p {
    margin-top: 15px;
    margin-bottom: 25px;
}

.header-mobile-close-custom {
  border: none;
  background-color: transparent;
  font-size: 25px;
}

.header-mobile-close-custom::before {
  color: var(--text-color);
}

.mobile-menu-item {
  padding: 12px 16px;
  border-bottom: var(--border-color) 1px solid;
}

.contact-button.mobile-menu-item {
  margin-top: 12px;
  border-bottom: none;
  margin-left: 16px;
}

.offcanvas-header {
  justify-content: space-between;
  padding-bottom: 0;
  padding-left: 32px;
}

.offcanvas-body {
  padding-top: 0;
}

.offcanvas {
  color: var(--text-color);
  font-weight: 500;
  width: var(--header-mobile-menu-width) !important;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.contact-upper-block {
    padding-left: 110px;
}

.contact-bottom-block {
  display: flex;
}

input::placeholder {
    font-family: "Manrope", sans-serif;
    color: var(--text-color);
}

.partners .col:has(img) {
    max-width: 20%;
    margin: 20px 0;
}

@media only screen and (min-width: 1200px) {
  .mobile {
    display: none !important;
  }

  .small-desktop {
    display: none !important;
  }
}

@media only screen and (max-width: 1200px) and (min-width: 1024px) {
    .mobile {
        display: none !important;
    }

    .navbar .desktop {
        display: none !important;
    }
}

@media only screen and (max-width: 1024px) {
  :root {
    --border-radius-btn-mobile: 12px;
  }

  .btn {
    border-radius: var(--border-radius-btn-mobile);
  }

  .desktop {
    display: none !important;
  }

  .text-container {
    padding: 30px;
    border-radius: 0;
    min-width: 100% !important;
  }

  .navbar-brand {
    width: var(--header-logo-width-mobile) !important;
    padding-top: 8px;
  }

  section {
    padding-left: 25px;
    padding-right: 25px;
  }

  body {
    font-weight: 400;
  }

  .col {
    padding: 0;
    flex: none;
  }

  .preheader {
    font-size: 12px;
  }

  .header {
    font-size: 20px;
  }

  .postheader {
    font-size: 14px;
  }

  .table-card {
    margin-bottom: 20px;
  }

  .row:last-child .col:last-child .table-card {
    margin-bottom: 0;
  }

  .container.blue-card:has( .btn.mobile) {
    padding-left: 20px;
    height: fit-content;
    background-image: none !important;
    padding: 0;
  }

  .blue-card .btn.mobile {
      height: 70px;
      justify-content: center;
      width: 100%;
  }

  .contact-modal-content {
    height: 222px;
    width: 340px;
    background-image: url(../src/popup-mobile.webp) !important;
  }

  .contact-modal-content-wrapper h3 {
    font-size: 18px;
  }

  .contact-modal-content-wrapper {
    padding: 0;
  }

  .small  {
    font-size: 12px;
  }

  .mid {
    font-size: 14px;
  }

  .contact-modal-button {
    font-size: 14px;
    height: 35px;
    margin-bottom: 20px;
    margin-top: 10px;
    line-height: 14px;
  }

  .contact-modal-button span::before {
    height: 25px;
    width: 25px;
    margin-right: 7px;
  }

  .contact-info-container {
    padding-right: 20px;
    padding-left: 20px;
    line-height: 15px;
  }

  .contact-info-container:first-child {
    border-right: var(--white) 1px solid;
  }

  .navbar .container {
	padding: 0;
  }

  .header-wrapper {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .text-container {
    margin: 10px 0;
  }

  .yandexMap-wrapper {
    height: 500px;
  }

  .container:has(.table-card), .container:has(.news-card) {
	padding: 0;
  }
}