/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 1599px) {
  .hm-introduction {
    padding: 64px 0 170px;
  }
  .hm-products {
    padding: 60px 0 48px;
  }
  .hm-intro-art,
  .hm-talk-art {
    height: 100px;
  }
}

@media (max-width: 1199px) {
  .nav-list {
    gap: 28px;
  }
  .nav-link {
    font-size: 17px;
  }

  .hm-banner-title {
    font-size: 50px;
  }
  .why-card {
    flex-basis: calc((100% - 40px) / 3);
  }
  .why-cards-grid {
    gap: 20px;
  }
  .hm-split {
    gap: 32px;
  }
  .hm-intro {
    padding-top: 64px;
  }
  .hm-intro-title {
    font-size: 27px;
  }
  .hm-intro-label {
    font-size: 22px;
  }
  .hm-products-grid {
    gap: 12px;
  }
  .hm-product-name {
    font-size: 14px;
  }

  .hm-custom-title {
    font-size: 30px;
  }
  .hm-custom-label {
    font-size: 22px;
  }
  .hm-heritage-inner {
    gap: 32px;
  }
  .hm-talk-title {
    font-size: 27px;
  }
}

/* Tablet & mobile: drawer navigation */
@media (max-width: 991px) {
  .header-inner {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .brand img {
    height: 50px;
  }

  .site-header.is-scrolled .brand img {
    height: 42px;
  }

  .site-header.is-scrolled .header-inner {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .nav-toggle {
    display: flex;
  }

  /* While the drawer is open, lift the button out of the header.
     position:fixed on the element itself escapes the header's stacking
     context, so it can neither be painted under the drawer nor dragged
     off-screen along with the header. */
  .nav-open .nav-toggle {
    position: fixed;
    top: 14px;
    right: 18px;
    z-index: 1100;
  }

  .site-nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1001;
    width: min(320px, 85vw);
    height: 100vh;
    height: 100dvh;
    padding: 96px 32px 32px;
    background: #ffffff;
    box-shadow: -8px 0 32px rgba(3, 49, 98, 0.15);
    transform: translateX(100%);
    visibility: hidden;
    overflow-y: auto;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0s linear 0.4s;
  }

  .nav-open .site-nav {
    transform: translateX(0);
    visibility: visible;
    transition-delay: 0s;
  }

  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .nav-link {
    display: block;
    padding: 14px 0;
    font-size: 18px;
    border-bottom: 1px solid #eceff3;
  }

  .nav-link::after {
    width: 40px;
    height: 3px;
    bottom: -1px;
  }

  .section {
    padding: 72px 0;
    scroll-margin-top: 60px; /* scrolled header height on tablet/mobile */
  }

  h1 {
    font-size: 40px;
  }
  h2 {
    font-size: 32px;
  }
  h3 {
    font-size: 24px;
  }

  .hm-banner {
    min-height: 0;
    background-position: top 0 right 35%;
  }
  /* photo darkens top-to-bottom on tablet/mobile since the copy spans the full width */
  .hm-banner::before {
    background: linear-gradient(
      180deg,
      rgba(0, 12, 28, 0.7) 0%,
      rgba(0, 12, 28, 0.7) 100%,
      rgba(0, 12, 28, 0.7) 100%
    );
  }

  .hm-banner-inner {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .hm-banner-content {
    max-width: 620px;
  }
  .hm-banner-title {
    font-size: 42px;
    margin-bottom: 22px;
  }
  .hm-banner-text {
    font-size: 17px;
  }
  .hm-banner-tagline {
    font-size: 18px;
    margin-bottom: 36px;
  }

  .why-cards-section {
    padding: 56px 0 32px;
  }
  .why-cards-title {
    font-size: 28px;
  }
  .why-cards-subtitle {
    font-size: 22px;
  }

  .why-card {
    flex-basis: calc((100% - 20px) / 2);
  }

  .why-cards-cta {
    margin-top: 40px;
  }
  .why-cards-art {
    height: 100px;
  }

  .hm-split {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .hm-intro {
    padding-top: 0;
    padding-bottom: 0;
    max-width: 560px;
  }

  /* .hm-intro-art { display: none; } */

  .hm-products,
  .hm-industries {
    padding: 56px 0 136px;
  }

  .hm-products-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hm-custom {
    min-height: 0;
    background-position: center right 20%;
  }

  .hm-custom::before {
    background: linear-gradient(
      180deg,
      rgba(0, 12, 28, 0.7) 0%,
      rgba(0, 12, 28, 0.72) 0%,
      rgba(0, 12, 28, 0.7) 100%
    );
  }

  .hm-custom-inner {
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .hm-custom-content {
    max-width: 620px;
  }
  .hm-custom-tagline {
    margin-bottom: 32px;
  }

  .hm-heritage {
    padding: 56px 0;
  }
  .hm-heritage-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .hm-heritage-content {
    max-width: 560px;
  }
  .hm-heritage-media {
    justify-self: center;
    max-width: 440px;
  }

  /* photo drops below the copy instead of sitting beside it */
  .hm-talk {
    min-height: 0;
    display: block;
    position: relative;
    background-position: right;
  }

  .hm-talk:before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.8);
    z-index: 1;
    pointer-events: none;
  }
  .hm-talk-inner {
    padding-top: 56px;
    padding-bottom: 40px;
  }
  .hm-talk-content {
    max-width: 620px;
  }
  .hm-talk-media {
    position: relative;
    width: 100%;
    height: 320px;
  }
  .hm-talk-media::before {
    background: linear-gradient(180deg, #eeedeb 0%, rgba(238, 237, 235, 0) 30%);
  }
  .hm-talk-art {
    display: none;
  }
  .hm-introduction {
    padding: 56px 0 160px;
  }
  .hm-introduction-art {
    height: 120px;
  }

  .about-banner,
  .products-banner {
    min-height: 0;
    background-position: center right;
  }

  .about-banner::before,
  .products-banner::before {
    background: linear-gradient(
      180deg,
      rgba(0, 12, 28, 0.7) 0%,
      rgba(0, 12, 28, 0.72) 100%,
      rgba(0, 12, 28, 0.7) 100%
    );
  }
  .products-banner {
    height: 390px;
  }

  .about-banner-inner,
  .products-banner-inner {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .about-banner-content {
    max-width: 620px;
  }
  .about-banner-title {
    font-size: 40px;
  }
  .products-banner-title {
    font-size: 38px;
  }

  .pd-section {
    padding: 48px 0 56px;
  }
  .pd-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .contact-section {
    padding: 32px 0 56px;
  }
  .contact-title {
    margin-bottom: 56px;
  }
  .contact-grid {
    gap: 65px 24px;
  }
}

@media (max-width: 767px) {
  .container {
    padding: 14px 16px;
  }

  .brand img {
    height: 44px;
  }

  .site-header.is-scrolled .brand img {
    height: 38px;
  }

  .site-nav {
    padding: 88px 24px 24px;
  }

  h1 {
    font-size: 32px;
  }
  h2 {
    font-size: 26px;
  }
  h3 {
    font-size: 22px;
  }
  h4 {
    font-size: 20px;
  }

  .hm-banner-inner {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .hm-banner-title {
    font-size: 34px;
  }
  .hm-banner-text {
    font-size: 16px;
    margin-bottom: 14px;
  }
  .hm-banner-tagline {
    font-size: 17px;
    margin-bottom: 28px;
  }

  .hm-banner-actions {
    gap: 12px;
  }
  .hm-banner-actions .btn {
    flex: 1 1 100%;
    justify-content: center;
  }

  .why-cards-section {
    padding: 36px 0 56px;
  }
  .why-cards-head {
    margin-bottom: 24px;
  }
  .why-cards-title {
    font-size: 24px;
  }
  .why-cards-subtitle {
    font-size: 20px;
  }

  .why-cards-grid {
    gap: 16px;
  }
  .why-card {
    flex-basis: 100%;
    padding: 22px 18px 24px;
  }

  .why-cards-cta {
    margin-top: 32px;
  }
  .why-cards-art {
    height: 70px;
  }

  .hm-products,
  .hm-industries {
    padding: 36px 0 60px;
  }

  .hm-intro-title {
    font-size: 24px;
  }
  .hm-intro-label {
    font-size: 20px;
  }

  .hm-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .hm-product-name {
    min-height: 50px;
    font-size: 13px;
  }

  .hm-industries-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .hm-custom-inner {
    padding-top: 44px;
    padding-bottom: 44px;
  }
  .hm-custom-title {
    font-size: 26px;
  }
  .hm-custom-label {
    font-size: 20px;
  }
  .hm-custom-tagline {
    font-size: 16px;
  }
  .hm-custom .btn {
    width: 100%;
    justify-content: center;
  }

  .hm-heritage {
    padding: 44px 0;
  }

  .hm-talk-inner {
    padding-top: 44px;
    padding-bottom: 32px;
  }
  .hm-talk-title {
    font-size: 24px;
  }
  .hm-talk-actions {
    gap: 12px;
  }
  .hm-talk-actions .btn {
    flex: 1 1 100%;
    justify-content: center;
  }
  .hm-talk-media {
    height: 240px;
  }

  .site-footer-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .site-footer-social {
    gap: 12px;
  }

  .hm-introduction {
    padding: 36px 0 40px;
  }
  .hm-introduction-text {
    margin-bottom: 26px;
  }
  .hm-introduction-art {
    height: auto;
  }

  .about-banner-inner,
  .products-banner-inner {
    padding-top: 24px;
    padding-bottom: 24px;
  }
  .about-banner-title {
    font-size: 32px;
  }
  .about-banner-text {
    font-size: 15px;
  }
  .products-banner-title {
    font-size: 30px;
  }

  .pd-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .contact-title {
        font-size: 34px;
        margin-bottom: 60px;
    }
  .contact-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 60px;
  }
  .products-banner {
    height: 290px;
  }
  .adrs-cnt {
    gap: 20px;
    padding: 40px 24px 44px;
  }
}
