/* ═══════════════════════════════════════════════
   RESPONSIVE — Media Queries
   ═══════════════════════════════════════════════ */

@media (max-width: 1400px) {
  .site-footer {
    grid-template-columns: minmax(0,1fr) 136px 84px;
    grid-template-rows: auto auto auto;
    gap: 34px 54px;
    min-height: 0;
  }
  .footer-review-card { grid-row: 2; grid-column: 1 / -1; width: 100%; height: 305px; background-position: center; }
  .footer-legal { grid-row: 3; grid-column: 1 / -1; flex-wrap: wrap; gap: 12px 28px; }
}

@media (max-width: 1180px) {
  .site-header { grid-template-columns: 1fr 1fr; gap: 18px; }
  .brand { width: 86px; padding: 0; justify-content: center; }
  .brand__name { display: none; }
  .main-nav { width: min(551px,100%); gap: 22px; padding: 0 24px; }
  .header-actions { width: 342px; gap: 20px; }
  .contact-button { width: 218px; }
  .services-cards { --services-gap: 14px; }
  .projects-section__top h2 { font-size: 38px; }
  .consult-section { grid-template-columns: 1fr; }
  .consult-section__image, .consult-form { min-height: auto; }
  .consult-section__image { aspect-ratio: 805 / 900; }
  .reviews-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .projects-page__banner { height: 260px; }
  .projects-page__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .questions-page__layout { grid-template-columns: minmax(0,1fr) 360px; }
  .questions-toc { width: 360px; }
  .questions-toc a { width: 100%; font-size: 15px; }
  .faq-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .telegram-banner__content { width: min(620px,58%); }
  .site-footer { grid-template-columns: minmax(0,1fr) 136px 84px; grid-template-rows: auto auto auto; gap: 34px 54px; min-height: 0; }
  .footer-review-card { grid-row: 2; grid-column: 1 / -1; width: 100%; height: 305px; background-position: center; }
  .footer-legal { grid-row: 3; grid-column: 1 / -1; flex-wrap: wrap; gap: 12px 28px; }
}

@media (max-width: 900px) {
  .site-header { grid-template-columns: auto auto; align-items: start; min-height: 105px; }
  .main-nav {
    position: absolute;
    top: calc(100% + 8px);
    right: var(--page-pad); left: var(--page-pad);
    display: grid;
    justify-content: stretch;
    gap: 0;
    min-height: 0;
    padding: 12px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity 180ms ease, transform 180ms ease;
  }
  .site-header.is-open .main-nav { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .main-nav__link { height: 48px; justify-content: center; }
  .main-nav__link::after { display: none; }
  .language-selector, .contact-button { display: none; }
  .menu-button { display: inline-flex; }
  .hero-copy { grid-template-columns: 1fr; gap: 24px; }
  .hero-copy h1, .hero-copy p { width: 100%; }
  .hero-copy p { justify-self: start; height: auto; padding-top: 0; overflow: visible; }
  .services-cards { --services-gap: 14px; }
  .projects-section__top { align-items: flex-start; flex-direction: column; gap: 18px; }
  .projects-section__actions { width: min(415px,100%); max-width: 100%; }
  .projects-grid { grid-template-columns: 1fr; }
  .projects-page__grid { grid-template-columns: 1fr; }
  .questions-page__layout { grid-template-columns: 1fr; }
  .questions-toc { position: static; width: 100%; height: auto; order: -1; }
  .consult-form h2 { font-size: 42px; }
  .interest-tags { flex-wrap: wrap; gap: 10px; }
  .interest-tag { width: auto; }
  .consult-inputs { grid-template-columns: 1fr; }
  .reviews-section__top { align-items: flex-start; flex-direction: column; }
  .reviews-show-all { width: 188px; height: 58px; border-radius: 14px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .faq-section h2 { font-size: 42px; }
  .faq-grid { grid-template-columns: 1fr; }
  .telegram-banner { background-position: 58% center; }
  .telegram-banner__content { width: min(560px,72%); }
  .telegram-banner h2 { font-size: 30px; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 30px 26px; padding-top: 24px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-review-card { height: 260px; }
  .footer-legal { align-items: flex-start; flex-direction: column; gap: 14px; white-space: normal; }
  .footer-legal__dot { display: none; }
}

@media (max-width: 560px) {
  :root { --page-pad: 14px; }
  .brand { width: auto; height: 56px; padding: 0 18px; border-radius: 16px; gap: 12px; }
  .brand__logo { width: 30px; height: 30px; }
  .brand__name { display: inline; font-size: 12px; }
  .hero-copy { margin-top: 28px; }
  .hero-copy__scribble { display: none; }
  .hero-copy__title-small { font-size: 22px; line-height: 28px; white-space: normal; }
  .hero-copy__title-large { font-size: 34px; line-height: 38px; white-space: normal; }
  .services-cards { --service-card-size: 100cqi; }
  .service-card__description { height: 168px; padding: 26px 24px; gap: 12px; }
  .service-card__description h2 { font-size: 22px; }
  .service-card__description p { font-size: 13px; line-height: 1.45; }
  .projects-section { margin-top: 18px; }
  .projects-page { margin-top: 16px; }
  .projects-page__back { margin-bottom: 14px; font-size: 14px; }
  .projects-page__banner { height: 210px; border-radius: 17px; }
  .projects-page__grid { gap: 18px; margin-top: 37px; }
  .projects-page__grid::before { top: -19px; }
  .questions-page { margin-top: 16px; }
  .questions-page__back { margin-bottom: 14px; font-size: 14px; }
  .questions-page__layout, .questions-page__content { gap: 18px; }
  .policy-card, .questions-toc { padding: 18px; border-radius: 14px; }
  .policy-card h2 { margin-bottom: 12px; font-size: 18px; line-height: 23px; }
  .policy-card p, .policy-card li { font-size: 14px; line-height: 19px; }
  .questions-toc h2 { margin-bottom: 16px; padding-bottom: 16px; font-size: 24px; }
  .questions-toc a { grid-template-columns: 28px minmax(0,1fr); width: 100%; height: 40px; padding: 0 14px; font-size: 14px; }
  .projects-section__top h2 { font-size: 34px; }
  .projects-section__actions { width: 100%; height: 58px; }
  .filter-button, .show-all-button { height: 58px; font-size: 14px; }
  .filter-selector { width: calc(100% - 150px); height: 58px; flex-basis: calc(100% - 150px); }
  .filter-button { gap: 10px; padding: 0 12px; }
  .filter-menu { left: 0; right: auto; width: min(278px, calc(100vw - 28px)); }
  .filter-scrollbar { left: min(262px, calc(100vw - 44px)); right: auto; }
  .show-all-button { width: 150px; padding: 0 16px; border-radius: 14px; }
  .load-more-projects { height: 70px; font-size: 14px; border-radius: 14px; }
  .consult-section { gap: 18px; margin-top: 18px; }
  .consult-form h2 { font-size: 34px; }
  .consult-field-group h3, .consult-budget h3, .budget-slider__top { font-size: 18px; }
  .consult-field-group p, .consult-budget p, .consult-form__note,
  .consult-inputs input, .consult-message textarea, .consult-message button, .interest-tag { font-size: 14px; }
  .interest-tag { height: 40px; gap: 10px; padding: 0 18px; }
  .consult-message { height: 220px; }
  .consult-submit { height: 70px; margin-top: 34px; font-size: 17px; border-radius: 14px; }
  .reviews-section { margin-top: 18px; padding-bottom: 48px; }
  .reviews-section__top h2 { font-size: 34px; }
  .reviews-show-all { width: 150px; font-size: 14px; }
  .review-card { height: auto; min-height: auto; padding: 18px; }
  .review-card__head { grid-template-columns: 48px minmax(0,1fr); gap: 14px; }
  .review-card__avatar { width: 48px; height: 48px; }
  .review-card__stars { grid-column: 1 / -1; gap: 10px; }
  .review-card h3 { font-size: 24px; }
  .review-card__text { font-size: 16px; }
  .review-card__bottom { align-items: flex-start; flex-direction: column; margin-top: 34px; }
  .review-card__tag { width: 162px; height: 40px; font-size: 14px; }
  .section-separator { margin-top: 18px; }
  .faq-section { margin-top: 18px; }
  .faq-section h2 { font-size: 34px; }
  .faq-grid { gap: 14px; margin-top: 18px; }
  .faq-item summary { grid-template-columns: minmax(0,1fr) 52px; min-height: 72px; padding: 0 14px; font-size: 16px; }
  .faq-item__plus { width: 52px; height: 52px; }
  .faq-item__plus { background-size: 35px 35px; }
  .faq-item__plus::before, .faq-item__plus::after { width: 22px; height: 2px; }
  .faq-item p { margin: 8px 58px 18px 14px; font-size: 14px; }
  .telegram-banner { min-height: 320px; margin-top: 18px; background-position: 62% center; }
  .telegram-banner__content { width: 100%; padding: 28px 24px; }
  .telegram-banner__brand { gap: 16px; }
  .telegram-banner__brand img { width: 68px; height: 68px; }
  .telegram-banner__brand span { font-size: 24px; }
  .telegram-banner h2 { max-width: 380px; margin-top: 24px; font-size: 24px; }
  .telegram-banner__button { width: 190px; height: 58px; margin-top: 28px; font-size: 14px; border-radius: 14px; }
  .site-footer { grid-template-columns: 1fr; gap: 26px; margin-top: 18px; padding-top: 18px; }
  .footer-brand { gap: 14px; }
  .footer-brand__logo { width: 42px; height: 42px; }
  .footer-brand__name { font-size: 20px; }
  .footer-brand__text p, .footer-nav { font-size: 14px; }
  .footer-legal { font-size: 17px; }
  .footer-brand__text p { line-height: 1.2; white-space: normal; }
  .footer-socials { gap: 16px; margin-top: 28px; }
  .footer-nav { gap: 16px; }
  .footer-review-card { grid-column: 1; height: 220px; }
  .footer-review-card__button { width: 150px; height: 58px; border-radius: 14px; }
}
