@media (max-width: 1280px) {
  :root { --site-gutter: clamp(20px,2.8vw,42px); }
  .nav-cta { display:none; }
  .home-services-layout { grid-template-columns:1fr; }
  .home-services-photo { min-height:560px; }
  .service-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-list .service-mini:nth-child(even){border-right:1px solid var(--color-line)}
  .service-list .service-mini:nth-child(3n){border-right:0}
  .service-list .service-mini:nth-last-child(-n+3){border-bottom:0}
  .complex-layout { grid-template-columns:1fr; }
  .complex-copy { min-height:auto; }
  .about-home-grid { gap:70px; }
  .service-steps { grid-template-columns:1fr 1fr; }
  .service-step { border-bottom:1px solid var(--color-line); }
  .service-step:nth-child(2){border-right:0}
  .service-step:nth-last-child(-n+2){border-bottom:0}
}

@media (max-width: 1100px) {
  .reveal.from-left,
  .reveal.from-right { transform:translateY(32px); }
  .tech-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tech-item { min-height:190px; }
}

@media (max-width: 1024px) {
  .main-nav { gap:18px; }
  .nav-link { font-size:13px; }
  .section-head { grid-template-columns:1fr; gap:24px; }
  .section-head p { justify-self:start; }
  .engineering-strip-grid { grid-template-columns:1fr; }
  .engineering-strip-title { min-height:92px; border-right:0; border-bottom:1px solid var(--color-line); padding-right:0; }
  .about-home-grid,
  .home-contact-box,
  .service-intro-grid,
  .service-split,
  .about-page-grid,
  .contacts-grid { grid-template-columns:1fr; }
  .about-home-grid { gap:50px; }
  .service-related { grid-template-columns:1fr; }
  .contacts-info { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-card { grid-column:1/-1; }
  .blog-grid { grid-template-columns:1fr 1fr; }
  .service-intro-grid,
  .service-split { align-items:start; }
  .service-intro-photo { min-height:440px; }
  .service-split .photo-frame { min-height:440px; }
}

@media (max-width: 820px) {
  :root { --header-h:72px; --site-gutter:18px; }
  .site-header,
  .header-inner { height:72px; }
  .brand-logo { width:208px; }
  .menu-toggle { display:block; }
  .main-nav {
    position:fixed;
    left:12px;
    right:12px;
    top:80px;
    max-height:calc(100dvh - 92px);
    overflow:auto;
    overscroll-behavior:contain;
    background:rgba(21,35,38,.99);
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    box-shadow:0 24px 80px rgba(0,0,0,.28);
    padding:16px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
  }
  .main-nav.is-open { opacity:1; visibility:visible; transform:none; }
  .nav-link { padding:14px 10px; border-bottom:1px solid rgba(255,255,255,.08); font-size:15px; }
  .nav-link::after { display:none; }
  .main-nav .nav-cta { display:inline-flex; margin-top:12px; width:100%; }

  .hero-home { min-height:840px; }
  .hero-home .hero-media::after { background:linear-gradient(0deg,rgba(21,35,38,.98) 0%,rgba(21,35,38,.84) 58%,rgba(21,35,38,.48) 100%); }
  .hero-copy { padding-top:100px; }
  .hero-specs { grid-template-columns:1fr; gap:14px; }
  .hero-spec,
  .hero-spec:nth-child(2),
  .hero-spec:nth-child(3) { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); padding:0 0 14px; min-height:auto; }
  .hero-spec:last-child { border-bottom:0; }
  .hero-tech-label { display:none; }

  .engineering-strip-items { grid-template-columns:1fr; }
  .engineering-strip-item { border-right:0; border-bottom:1px solid var(--color-line); padding:28px 0; }
  .engineering-strip-item:last-child { border-bottom:0; }

  .service-list { grid-template-columns:1fr 1fr; }
  .service-list .service-mini:nth-child(3n){border-right:1px solid var(--color-line)}
  .service-list .service-mini:nth-child(even){border-right:0}
  .service-list .service-mini:nth-last-child(-n+3){border-bottom:1px solid var(--color-line)}
  .service-list .service-mini:nth-last-child(-n+2){border-bottom:0}

  .complex-mosaic { min-height:760px; grid-template-columns:1fr; grid-template-rows:1.2fr .8fr .8fr; }
  .complex-mosaic .photo-frame:first-child { grid-row:auto; }
  .card-grid { grid-template-columns:1fr 1fr; }
  .info-card:nth-child(3n){border-right:1px solid var(--color-line)}
  .info-card:nth-child(even){border-right:0}
  .info-card:nth-last-child(-n+3){border-bottom:1px solid var(--color-line)}
  .info-card:nth-last-child(-n+2){border-bottom:0}

  .cta-band-grid { grid-template-columns:1fr; gap:28px; }
  .cta-band .btn { justify-self:start; }
  .services-page-grid { grid-template-columns:1fr; }
  .service-feature-card { min-height:390px; }
  .requisites { grid-template-columns:1fr; }
  .requisite:nth-child(n){border-right:0;border-bottom:1px solid var(--color-line)}
  .requisite:last-child{border-bottom:0}

  .modal-panel { grid-template-columns:1fr; width:min(720px, calc(100vw - 28px)); max-height:calc(100dvh - 28px); }
  .modal-copy { padding:34px 28px; }
  .contact-form.is-compact { padding:30px 26px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { align-items:flex-start; flex-direction:column; padding:22px 0; }
}

@media (max-width: 620px) {
  :root { --site-gutter:14px; }
  .section { padding:82px 0; }
  .brand-logo { width:184px; }

  .hero-home { min-height:800px; }
  .hero-copy { padding-top:84px; }
  .hero-copy h1 { font-size:clamp(38px,11.5vw,54px); overflow-wrap:anywhere; hyphens:auto; }
  .hero-copy > p { font-size:17px; }
  .hero-actions { display:grid; }
  .hero-actions .btn { width:100%; }
  .hero-orbit,.hero-glow { display:none; }

  .home-services-photo { min-height:380px; }
  .service-list { grid-template-columns:1fr; }
  .service-list .service-mini:nth-child(n){border-right:0!important;border-bottom:1px solid var(--color-line)!important;min-height:190px;padding:26px}
  .service-list .service-mini:last-child{border-bottom:0!important}
  .complex-copy { padding:40px 26px; }
  .complex-mosaic { min-height:680px; gap:16px; }
  .card-grid,.tech-list,.service-steps { grid-template-columns:1fr; }
  .info-card:nth-child(n),.service-step:nth-child(n){border-right:0!important;border-bottom:1px solid var(--color-line)!important}
  .info-card:last-child,.service-step:last-child{border-bottom:0!important}
  .tech-item { min-height:auto; padding:26px; }
  .tech-item strong { margin-top:26px; margin-bottom:10px; }

  .home-contact-copy { padding:36px 24px; }
  .form-grid { grid-template-columns:1fr; }
  .field-wide { grid-column:auto; }
  .contact-form { padding:28px 20px; }

  .modal { padding:8px; align-items:end; }
  .modal-panel { width:calc(100vw - 16px); max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:22px 22px 12px 12px; overflow-x:hidden; overflow-y:auto; }
  .modal-copy { padding:30px 22px 24px; }
  .contact-form.is-compact { padding:24px 20px; }
  .modal-close { width:38px; height:38px; right:10px; top:10px; }

  .internal-hero { padding:78px 0 86px; }
  .internal-hero.has-photo {
    min-height:calc(100svh - var(--header-h));
    padding-top:72px;
    padding-bottom:calc(104px + env(safe-area-inset-bottom));
  }
  .internal-hero-media::after { background:linear-gradient(0deg,rgba(21,35,38,.97),rgba(21,35,38,.70)); }
  .internal-hero h1 {
    font-size:clamp(30px,8.6vw,40px);
    line-height:1.08;
    letter-spacing:-.025em;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
  }
  .blog-index-page .internal-hero h1,
  .services-index-page .internal-hero h1,
  .article-page-body .internal-hero h1 {
    font-size:clamp(29px,8.2vw,38px);
  }
  .internal-hero p { font-size:clamp(16px,4.5vw,19px); line-height:1.55; }
  .internal-hero-actions { gap:10px; }
  .internal-hero-actions .btn { max-width:100%; }

  .service-feature-card { min-height:350px; }
  .service-feature-content { left:22px; right:22px; bottom:22px; min-width:0; }
  .service-feature-content h2 { font-size:clamp(23px,7vw,32px); overflow-wrap:anywhere; word-break:normal; hyphens:auto; }

  .service-intro-photo {
    min-height:0;
    aspect-ratio:4 / 3;
  }
  .service-split .photo-frame {
    min-height:0;
    aspect-ratio:16 / 10;
  }
  .article-cover {
    min-height:0;
    aspect-ratio:16 / 9;
  }
  .photo-label {
    left:16px;
    right:16px;
    bottom:16px;
    max-width:calc(100% - 32px);
    padding:11px 13px;
    text-align:center;
    overflow-wrap:anywhere;
  }

  .cta-band { padding:34px 22px; }
  .cta-band-grid { gap:24px; }
  .cta-band h2 { font-size:clamp(27px,7.8vw,36px); line-height:1.08; overflow-wrap:anywhere; word-break:normal; hyphens:auto; }
  .cta-band p { font-size:15px; line-height:1.55; }
  .cta-band .btn { width:100%; justify-self:stretch; }

  .service-split > *, .service-intro-grid > * { min-width:0; max-width:100%; }
  .service-notes { padding:32px 22px; min-width:0; max-width:100%; }
  .service-notes h2 { font-size:clamp(27px,7.4vw,34px); line-height:1.1; overflow-wrap:anywhere; }
  .service-notes p,
  .service-notes .content-list li { font-size:15.5px; line-height:1.58; overflow-wrap:anywhere; word-break:normal; }
  .service-notes .content-list { gap:13px; margin-top:26px; }

  .article-page, .article-content, .article-card-body { min-width:0; max-width:100%; }
  .article-content h2 { font-size:clamp(27px,7.5vw,34px); line-height:1.12; overflow-wrap:anywhere; }
  .article-content h3, .article-content p, .article-content li, .article-note { overflow-wrap:anywhere; word-break:normal; }
  .article-content ul { max-width:100%; padding-left:1.15em; }

  .contacts-info { grid-template-columns:1fr; }
  .map-card { grid-column:auto; }
  .blog-grid { grid-template-columns:1fr; }
  .article-card-media { height:220px; }
  .article-content { font-size:16px; }
  .footer-grid { grid-template-columns:1fr; gap:38px; }
  .footer-brand { grid-column:auto; }

  .cookie-notice { left:14px; right:14px; bottom:14px; width:auto; max-width:none; grid-template-columns:1fr; gap:12px; padding:17px; border-radius:18px; }
  .cookie-notice-mark { width:34px; height:34px; }
  .cookie-notice-actions { align-items:stretch; }
  .cookie-notice-actions .cookie-accept { min-width:116px; }
}

@media (max-width: 390px) {
  .brand-logo { width:178px; }
  .header-inner { gap:14px; }
  .menu-toggle { width:44px; height:44px; flex:0 0 44px; }
  .internal-hero h1 { font-size:clamp(29px,8.5vw,34px); }
  .blog-index-page .internal-hero h1,
  .services-index-page .internal-hero h1,
  .article-page-body .internal-hero h1 { font-size:clamp(28px,8.1vw,32px); }
  .cookie-notice-actions { display:grid; grid-template-columns:1fr; }
  .cookie-notice-actions a { order:2; }
  .cookie-notice-actions .cookie-accept { width:100%; order:1; }
}

@media (max-width: 340px) {
  :root { --site-gutter:12px; }
  .brand-logo { width:164px; }
  .internal-hero h1 { font-size:28px; }
  .btn { padding-inline:17px; }
}


@media (max-width: 820px) {
  .hero-services-overview .internal-hero-media img { object-position:60% center; }
  .hero-blog-overview .internal-hero-media img { object-position:62% center; }
  .hero-contacts .internal-hero-media img { object-position:58% center; }
  .hero-article .internal-hero-media img { object-position:center center; }
  .hero-services-overview .internal-hero-media::after,
  .hero-blog-overview .internal-hero-media::after,
  .hero-contacts .internal-hero-media::after,
  .hero-article .internal-hero-media::after {
    background:linear-gradient(0deg,rgba(21,35,38,.98) 0%,rgba(21,35,38,.87) 52%,rgba(21,35,38,.58) 100%);
  }
}


/* Article bottom navigation */
@media (max-width: 430px) {
  .article-links {
    align-items:center;
    gap:16px;
  }
  .article-back-link,
  .article-project-link {
    min-height:34px;
    font-size:clamp(15px, 4.4vw, 18px);
  }
}

@media (max-width: 340px) {
  .article-links {
    display:grid;
    grid-template-columns:1fr;
    justify-items:start;
  }
}
