/* ==========================================================================
   Laptop  (<=1440px)
   ========================================================================== */
@media (max-width: 1440px) {
  .container-xl {
    padding: 0 24px;
  }
}

/* ==========================================================================
   Tablet  (<=992px)
   ========================================================================== */
@media (max-width: 992px) {
  .site-header__top-inner {
    height: 60px;
    padding-right: 12px;
  }

  .site-header__bottom {
    background: transparent;
    border: none;
    height: 0;
  }

  .site-header__actions {
    display: none;
  }

  .brand .logo {
    width: 140px;
  }

  .brand__mark {
    font-size: 28px;
  }

  .topbar__search {
    display: none;
  }

  .topbar__search.is-active {
    display: flex !important;
    position: absolute;
    left: 60px;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    max-width: none;
    margin: 0;
    z-index: 10;
    background: #f2f4f6;
  }

  .main-nav {
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    padding: 8px 24px 24px;
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s var(--ease), transform 0.25s var(--ease), visibility 0.25s;
    overflow-y: auto;
  }

  .main-nav.is-open {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
  }

  .main-nav__list {
    flex-direction: column;
    gap: 0;
  }

  .main-nav__link {
    padding: 16px 0;
    border-bottom: 1px solid var(--color-border);
    width: 100%;
  }

  .main-nav__link::after {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .topbar__search-toggle {
    display: flex;
  }

  .hero__title {
    font-size: 38px;
  }

  .hero__footer {
    flex-direction: column;
    align-items: stretch;
  }

  .hero__badge {
    padding: 16px 24px;
    align-self: flex-start;
  }

  .hero__personas-block {
    padding: 20px 24px;
    justify-content: flex-start;
    gap: 24px;
  }

  .section-title {
    font-size: 28px;
  }

  .configurator-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .category-layout {
    grid-template-columns: 1fr;
  }

  .category-sidebar {
    display: none;
  }

  .category-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .systems-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .systems-grid .system-card:nth-child(4) {
    display: none;
  }

  .project-type-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .reference-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .testimonial-card {
    flex: 0 0 calc(50% - 14px);
  }

  .help-card {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "avatar body"
      "contacts contacts";
    row-gap: 24px;
  }

  .help-card__avatar {
    grid-area: avatar;
  }

  .help-card__body {
    grid-area: body;
  }

  .help-card__contacts {
    grid-area: contacts;
    flex-direction: row;
    gap: 40px;
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 36px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }
}

/* ==========================================================================
   Mobile  (<=768px)
   ========================================================================== */
@media (max-width: 768px) {
  .container-xl {
    padding: 0 20px;
  }

  .site-header__top-inner {
    height: 60px;
  }

  .main-nav {
    top: 60px;
  }

  .hero {
    min-height: 460px;
  }

  .hero__content {
    padding-top: 60px;
    padding-bottom: 40px;
  }

  .hero__title {
    font-size: 30px;
  }

  .hero__subtitle {
    font-size: 14px;
  }

  .btn-hero {
    font-size: 13.5px;
    padding: 12px 22px;
  }

  .hero__personas-block {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .hero__persona {
    width: 100%;
    justify-content: space-between;
    font-size: 13.5px;
  }

  .configurator-section,
  .category-section,
  .systems-section,
  .projects-types-section,
  .reference-section,
  .testimonials-section,
  .help-section {
    padding: 48px 0;
  }

  .section-title {
    font-size: 24px;
    margin-bottom: 20px;
  }

  .section-lead {
    margin-top: -8px;
    margin-bottom: 24px;
    font-size: 14px;
  }

  .configurator-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .configurator-card {
    padding: 22px 20px 26px;
  }

  .category-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .systems-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .systems-grid .system-card--all {
    grid-column: 1 / -1;
    padding: 18px;
  }

  .project-type-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .project-type-card__img {
    height: 200px;
  }

  .reference-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .reference-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .reference-card__img {
    height: 220px;
  }

  .testimonials-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .testimonial-card {
    flex: 0 0 100%;
  }

  .help-card {
    padding: 28px 24px;
    grid-template-columns: 1fr;
    grid-template-areas: "avatar" "body" "contacts";
    text-align: left;
  }

  .help-card__contacts {
    flex-direction: column;
    gap: 16px;
  }

  .newsletter-section {
    padding: 56px 0;
  }

  .newsletter-title {
    font-size: 22px;
  }

  .newsletter-form {
    flex-direction: column;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    row-gap: 30px;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .footer-legal {
    flex-direction: column;
    gap: 10px;
  }
}