/* MODX site — responsive overrides for phone / tablet / desktop */

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  overflow-x: hidden;
}

img,
video,
iframe {
  max-width: 100%;
}

/* Logo */
#sp-logo .logo img {
  max-width: 100%;
  height: auto;
}

#sp-logobar table {
  width: 100% !important;
  max-width: 100%;
}

#sp-logobar table td {
  width: auto !important;
}

#sp-logobar .logobar-soisk,
#sp-logobar .logobar-rabot {
  text-align: right;
}

/* Mobile contacts (logobar is hidden on xs) */
#sp-mobile-contacts {
  display: none;
  padding: 12px 0;
  border-bottom: 1px solid #e8e8e8;
  background: #fafafa;
}

#sp-mobile-contacts .mobile-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  text-align: center;
  font-size: 14px;
  line-height: 1.4;
}

#sp-mobile-contacts .mobile-contact-grid strong {
  display: block;
  margin-bottom: 4px;
}

#sp-mobile-contacts a {
  color: #0285ca;
}

/* Header / hamburger */
#sp-header .sp-megamenu-wrapper {
  position: relative;
}

#offcanvas-toggler {
  display: none;
  float: right;
  line-height: 50px;
  font-size: 22px;
  color: #333;
  padding: 0 15px;
  text-decoration: none;
}

#offcanvas-toggler:hover,
#offcanvas-toggler:focus {
  color: #0285ca;
  text-decoration: none;
}

/* Main content */
#sp-main-body,
#sp-component .sp-column {
  overflow-wrap: anywhere;
  word-wrap: break-word;
}

#sp-main-body img,
#sp-component img,
.custom img {
  max-width: 100%;
  height: auto;
}

#sp-main-body table,
.custom table {
  max-width: 100%;
}

/* News table */
.category.table {
  width: 100%;
  table-layout: fixed;
}

.category.table td.list-title a {
  word-break: break-word;
}

/* Vacancy list */
.itemlayer {
  overflow-x: hidden;
}

.itemlist_title h3 {
  word-break: break-word;
}

/* Hot vacancies */
.jobokay_latest_responsive .joboffer.col-sm-3 {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
}

/* Map */
.map-responsive {
  position: relative;
  width: 100%;
  max-width: 100%;
  padding-bottom: 62%;
  height: 0;
  overflow: hidden;
  margin: 0 auto;
}

.map-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

/* Footer */
.contact_line {
  word-break: break-word;
}

/* Cookie banner — see cookie-consent.css */

/* Tablet */
@media (max-width: 991px) {
  #offcanvas-toggler {
    display: inline-block !important;
  }

  #sp-menu .sp-column {
    min-height: 50px;
  }

  body {
    font-size: 17px !important;
  }

  .jobokay_latest_responsive .joboffer.col-sm-3 {
    width: 50%;
    flex: 0 0 50%;
  }
}

/* Phone */
@media (max-width: 767px) {
  #sp-mobile-contacts {
    display: block;
  }

  #sp-logo {
    text-align: center;
    margin-bottom: 8px;
  }

  #sp-logo .logo img.visible-xs,
  #sp-logo .logo img.sp-default-logo {
    max-width: 240px;
  }

  body {
    font-size: 16px !important;
  }

  h1,
  #sp-page-title .sp-page-title h2 {
    font-size: 22px !important;
  }

  h2 {
    font-size: 20px !important;
  }

  h3,
  .itemlist_title h3 {
    font-size: 18px !important;
  }

  #sp-page-title .sp-page-title {
    padding: 30px 15px !important;
  }

  #sp-page-title .sp-page-title h2,
  #sp-page-title .breadcrumb {
    float: none !important;
    text-align: left;
  }

  #sp-bottom {
    padding: 40px 0 !important;
  }

  #sp-footer1,
  #sp-footer2 {
    width: 100%;
    margin-bottom: 20px;
  }

  #sp-footer ul.nav {
    text-align: left;
  }

  .contact_line {
    font-size: 14px;
  }

  .jobokay_latest_responsive {
    display: block !important;
  }

  .jobokay_latest_responsive .joboffer.col-sm-3 {
    width: 100% !important;
    flex: 0 0 100% !important;
    display: block !important;
    margin-bottom: 20px;
    padding: 0 0 16px;
  }

  .jobokay_latest_responsive li:last-child {
    text-align: center;
    padding-top: 8px;
  }

  .offcanvas-menu {
    width: 85%;
    max-width: 320px;
  }

  #sp-mobile-contacts .mobile-contact-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body {
    font-size: 15px !important;
  }

  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  #jobokay_search_container #filter-bar .btn-group {
    width: 100% !important;
    max-width: 100% !important;
    border-right: 1px solid #b8b8b8 !important;
    margin-bottom: 0;
  }

  #jobokay_search_container #filter-bar .btn-group#jobsearch_buttons {
    width: 100% !important;
    max-width: 100% !important;
  }

  #jobokay_search_container #filter-bar .btn-group select,
  #jobokay_search_container #filter-bar .btn-group input#filter_search {
    min-width: 0;
  }
}

/* Desktop hot vacancies */
@media (min-width: 992px) {
  .jobokay_latest_responsive .joboffer.col-sm-3 {
    width: 25%;
    flex: 0 0 25%;
  }
}
