@media (max-width: 1080px) {
  :root { --container: min(100% - 64px, 1440px); }
  .card-grid, .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1439px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; }
  .catalog-shell, .product-shell { width: min(100% - 36px, 1500px); }
  .product-hero { grid-template-columns: 1fr; gap: 30px; }
  .product-gallery { min-height: min(88vw, 620px); }
  .product-info { padding-top: 0; }
}

@media (max-width: 860px) {
  :root { --container: min(100% - 40px, 1440px); --header-height: 72px; }
  .header__actions .button { display: none; }
  .site-logo img { height: 40px; }
  .menu-toggle { display: inline-block; }
  .nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    height: calc(100svh - var(--header-height));
    display: grid;
    align-content: start;
    gap: 0;
    padding: 28px 20px 40px;
    background: #ffffff;
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
    transform: translateX(100%);
    transition: transform var(--transition);
  }
  .nav.is-open { transform: translateX(0); }
  .nav a {
    padding: 18px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: clamp(27px, 7vw, 38px);
  }
  .nav a::after { display: none; }
  .nav__cta { display: inline-flex; width: fit-content; margin-top: 28px; padding: 14px 20px !important; border: 1px solid var(--color-dark) !important; background: var(--color-dark); color: var(--color-inverse) !important; font-size: 15px !important; }
  .project-page-intro { padding-top: calc(var(--header-height) + 72px); padding-bottom: 56px; }
  .section__head, .intro-grid, .split, .contact-grid, .detail-grid, .dialog__inner {
    grid-template-columns: 1fr;
  }
  .hero__content { padding-bottom: 42px; }
  .hero__image { object-position: 68% 58%; }
  .hero .lead { font-size: 18px; }
  .brand-grid { grid-template-columns: 1fr; }
  .dialog__media { min-height: 280px; max-height: 320px; padding: 24px; }
  .product-dialog .dialog__media { min-height: 280px; }
  .product-dialog { max-height: calc(100svh - 28px); overflow-y: auto; }
}

/* Black mobile navigation for the public site. */
@media (max-width: 860px) {
  :root { --header-height: 72px; }
  .site-header, .site-header.is-scrolled, .site-header.is-open, .project-page-body .site-header, .projects-page .site-header { background: #050505; color: #fff; }
  .header__inner { width: 100%; padding-right: 14px; }
  .site-logo { width: 72px; margin-right: 0; padding: 0; }
  .site-logo img { height: 100%; }
  .menu-toggle { width: 44px; height: 44px; border: 0; color: #fff; }
  .menu-toggle span { width: 21px; height: 1.5px; margin: 7px auto; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .nav { top: var(--header-height); height: calc(100svh - var(--header-height)); padding: 30px 20px 42px; background: #050505; color: #fff; border-top-color: rgba(255,255,255,.12); transform: translateX(100%); }
  .nav a { padding: 15px 0; border-bottom-color: rgba(255,255,255,.14); color: #fff; font-size: clamp(31px, 8vw, 40px); font-weight: 550; letter-spacing: -.035em; text-transform: none; }
  .nav__trigger::before { float: right; width: 9px; height: 9px; margin-top: 12px; border-width: 1.5px; }
  .nav__trigger[aria-expanded="true"]::before { transform: rotate(225deg); }
  .nav__cta { background: #fff !important; color: #050505 !important; border: 0 !important; border-radius: var(--radius-sm); font-size: 14px !important; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
  .mega-menu { position: fixed; top: var(--header-height); height: calc(100svh - var(--header-height)); overflow-y: auto; background: #050505; transform: none; transition: opacity 220ms var(--ease-premium, ease); }
  .mega-menu__panel { padding: 30px 20px 48px; }
  .mega-menu__inner { width: 100%; }
  .mega-menu__label { font-size: 11px; }
  .mega-menu__grid { grid-template-columns: 1fr; gap: 22px; }
  .mega-menu__grid > div { gap: 12px; }
  .mega-menu__grid a { font-size: 17px; }
  .mega-menu__grid .mega-menu__all { font-size: 20px; }
  .hero { min-height: calc(100svh - var(--header-height)); margin-top: 0; }
  .hero::after { content: none; }
  .hero__content { padding-top: 74px; padding-bottom: 88px; }
  .hero__next { bottom: 21px; }
}

@media (max-width: 620px) {
  :root { --container: min(100% - 40px, 1440px); }
  .section { padding: 76px 0; }
  h1, .page-title { font-size: clamp(40px, 13vw, 58px); }
  h2 { font-size: clamp(31px, 10vw, 44px); }
  .hero__actions, .cta-band__inner { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .card-grid, .steps, .capability-grid, .process-grid, .footer-grid, .principles { grid-template-columns: 1fr; }
  .card-grid--solutions .solution-card:nth-child(even) { padding-top: 0; }
  .card-grid--solutions .solution-card .card-media { aspect-ratio: 4 / 3; }
  .metric { grid-template-columns: 1fr; gap: 6px; }
  .capability { min-height: 138px; }
  .step { min-height: 170px; }
  .step__num { margin-bottom: 24px; }
  .card-body { padding: 19px; }
  .dialog__content { padding: 22px; }
  .catalog-selects { grid-template-columns: 1fr; }
  .filters { gap: 8px; margin-bottom: 22px; }
  .filter-btn { min-height: 38px; padding: 7px 10px; font-size: 13px; }
  .product-card .card-media { height: 230px; padding: 24px; }
  .product-card--software .card-media { height: 116px; }
  .catalog-shell, .product-shell { width: min(100% - 28px, 1500px); }
  .catalog-header { padding: calc(var(--header-height) + 58px) 0 48px; }
  .catalog-header h1 { font-size: 48px; }
  .catalog-search { margin-bottom: 32px; }
  .catalog-search input { height: 56px; font-size: 16px; }
  .catalog-categories { gap: 22px; margin-bottom: 26px; }
  .catalog-toolbar { display: block; margin-bottom: 26px; }
  .catalog-toolbar__filters { display: grid; grid-template-columns: 1fr 1fr; align-items: end; margin-top: 20px; }
  .catalog-toolbar__filters select { width: 100%; }
  .catalog-reset { justify-self: start; }
  .product-grid { grid-template-columns: 1fr; gap: 32px; }
  .product-card__media { padding: 32px; }
  .product-hero { gap: 28px; }
  .product-gallery { min-height: 0; aspect-ratio: 1; padding: 34px; }
  .product-page--software .product-gallery { aspect-ratio: 1; }
  .product-local-nav { margin: 56px 0 36px; }
  .product-applications { grid-template-columns: 1fr; }
  .hero { min-height: 680px; }
  .hero h1 { font-size: clamp(42px, 12vw, 50px); }
  .hero__content { padding-top: calc(var(--header-height) + 56px); padding-bottom: 52px; }
  .page-hero { padding: calc(var(--header-height) + 72px) 0 72px; }
  .solution-page-intro { padding-top: calc(var(--header-height) + 32px); padding-bottom: 48px; }
  .solution-hero, .solution-hero > img { min-height: 64vw; }
  .breadcrumbs { padding-top: calc(var(--header-height) + 20px); }
  .principle, .principle + .principle { min-height: 0; padding: 28px 0; border-left: 0; }
  .contact-item strong { font-size: clamp(26px, 9vw, 40px); overflow-wrap: anywhere; }
  .footer-logo img { height: 56px; }
}

@media (max-width: 860px) {
  .featured-project { grid-template-columns: 1fr; }
  .featured-project__media { min-height: 54vw; }
  .projects-grid { gap: 56px 28px; }
  .project-card:nth-child(even) { padding-top: 42px; }
}

@media (max-width: 620px) {
  .projects-intro { padding-top: calc(var(--header-height) + 64px); padding-bottom: 62px; }
  .project-page-intro { padding-top: calc(var(--header-height) + 56px); padding-bottom: 48px; }
  .featured-project { margin-bottom: 64px; }
  .featured-project__media { min-height: 70vw; }
  .featured-project__copy { padding: 26px 20px 30px; }
  .featured-project__copy h2 { font-size: clamp(38px, 12vw, 52px); }
  .project-filters { gap: 20px; margin-bottom: 42px; }
  .projects-grid { grid-template-columns: 1fr; gap: 48px; }
  .project-card:nth-child(even) { padding-top: 0; }
  .project-card__copy { padding-top: 19px; }
  .project-card__copy h3 { font-size: clamp(28px, 9vw, 38px); }
  .project-page__media { aspect-ratio: 4 / 3; }
  .project-page-title { font-size: clamp(44px, 12vw, 58px); }
  .project-page-intro .breadcrumbs { margin-bottom: 42px; }
  .project-page-intro .project-location--large { margin-top: 8px; font-size: 18px; }
  .project-page-lead { margin-top: 28px; font-size: clamp(19px, 5.4vw, 22px); }
  .project-facts { display: grid; gap: 18px; margin-bottom: 58px; }
  .project-story__section { grid-template-columns: 1fr; gap: 20px; padding: 42px 0; }
  .project-story__label { gap: 12px; }
  .project-story__section--soft { margin-inline: -20px; padding-inline: 20px; }
  .breadcrumbs { margin-bottom: 34px; }
  .project-story__section { padding-bottom: 32px; margin-bottom: 32px; }
}

@media (max-width: 360px) {
  :root { --container: min(100% - 32px, 1440px); }
  .site-logo img { height: 38px; }
  .menu-toggle { width: 44px; height: 44px; }
  .card-body, .step, .capability { padding: 17px; }
}
