/* Mobile header (max 760px): logo, quote CTA and a hamburger menu.
   Shared by every template; the metal landing does not load styles.css,
   so this file styles the whole mobile header on its own. */
#header-mobile .mnav-actions,
#header-mobile .mnav-panel {
  display: none;
}

@media (max-width: 760px) {
  html {
    scroll-padding-top: 64px;
  }

  html body header#header-mobile.has-mnav {
    align-items: center !important;
    background: #080808 url("../images/header-bg.png") 20% center / 190% auto !important;
    border-bottom: 1px solid rgba(255, 255, 255, .18) !important;
    border-top: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 12px;
    height: 64px !important;
    justify-content: space-between !important;
    left: 0;
    margin: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 10px 0 16px !important;
    position: sticky !important;
    right: 0;
    top: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
  }

  html body.home header#header-mobile.has-mnav,
  html body.page-template-template-privacy header#header-mobile.has-mnav {
    position: fixed !important;
  }

  html body header#header-mobile.has-mnav::after {
    content: none !important;
    display: none !important;
  }

  html body header#header-mobile.has-mnav > .header-right {
    display: none !important;
  }

  html body header#header-mobile.has-mnav .header-left {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    min-width: 0;
    width: auto;
  }

  html body header#header-mobile.has-mnav .header-left a {
    display: flex;
  }

  html body header#header-mobile.has-mnav .header-left img.logo {
    display: block;
    height: 36px !important;
    max-height: none !important;
    max-width: 150px !important;
    padding: 0 !important;
    width: auto !important;
  }

  html body header#header-mobile.has-mnav .mnav-actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
  }

  #header-mobile .mnav-cta {
    align-items: center;
    background: #e87817;
    box-shadow: 0 2px 12px rgba(232, 120, 23, .35);
    box-sizing: border-box;
    color: #080808;
    display: inline-flex;
    font-family: "Bebas Neue", sans-serif;
    font-size: 20px;
    font-weight: 800;
    height: 44px;
    justify-content: center;
    letter-spacing: normal;
    line-height: 1;
    padding: 3px 18px 0;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
  }

  #header-mobile .mnav-cta:hover,
  #header-mobile .mnav-cta:focus-visible {
    background: #ff8a24;
    color: #080808;
  }

  #header-mobile .mnav-toggle {
    -webkit-appearance: none;
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
    height: 44px;
    justify-content: center;
    margin: 0;
    padding: 0;
    width: 44px;
  }

  #header-mobile .mnav-toggle:focus-visible {
    outline: 2px solid #e87817;
    outline-offset: 2px;
  }

  #header-mobile .mnav-toggle-bar {
    background: #fff;
    display: block;
    height: 2px;
    transition: transform .25s ease, opacity .2s ease;
    width: 24px;
  }

  #header-mobile.mnav-is-open .mnav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  #header-mobile.mnav-is-open .mnav-toggle-bar:nth-child(2) {
    opacity: 0;
  }

  #header-mobile.mnav-is-open .mnav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  html body header#header-mobile.has-mnav .mnav-panel:not([hidden]) {
    display: block;
  }

  #header-mobile .mnav-panel {
    background: #0b0b0b;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    box-sizing: border-box;
    color: #fff;
    font-family: "Bebas Neue", sans-serif;
    left: 0;
    max-height: calc(100vh - 64px);
    max-height: calc(100dvh - 64px);
    overflow-y: auto;
    padding: 4px 20px 24px;
    position: absolute;
    right: 0;
    top: 100%;
  }

  #header-mobile .mnav-link {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    color: #fff;
    display: flex;
    font-size: 24px;
    font-weight: 600;
    justify-content: space-between;
    letter-spacing: normal;
    line-height: 1.2;
    padding: 18px 0 16px;
    text-decoration: none;
    text-transform: uppercase;
  }

  #header-mobile .mnav-link::after {
    color: #e87817;
    content: "\2192";
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
  }

  #header-mobile .mnav-section {
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    padding: 18px 0;
  }

  #header-mobile .mnav-label {
    color: #e87817;
    font-family: "Bebas Neue", sans-serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: .6px;
    line-height: 1.2;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #header-mobile .mnav-contacts {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  #header-mobile .mnav-contacts li {
    color: #fff;
    font-family: "Bebas Neue", sans-serif;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: .34px;
    line-height: 1.5;
    margin: 0;
  }

  #header-mobile .mnav-contacts a {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: rgba(232, 120, 23, .7);
    text-underline-offset: 4px;
  }

  /* Contacts: LinkedIn next to the label and company details, as on the desktop contacts card. */
  #header-mobile .mnav-section-head {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 0 0 10px;
  }

  #header-mobile .mnav-section-head .mnav-label {
    margin: 0;
  }

  #header-mobile .mnav-linkedin {
    align-items: center;
    display: inline-flex;
    height: 40px;
    justify-content: flex-end;
    margin: -8px 0;
    width: 40px;
  }

  #header-mobile .mnav-linkedin img {
    display: block;
    height: 28px;
    width: 28px;
  }

  #header-mobile .mnav-company {
    border-top: 1px solid rgba(255, 255, 255, .14);
    list-style: none;
    margin: 14px 0 0;
    padding: 12px 0 0;
  }

  #header-mobile .mnav-company li {
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    font-family: "Bebas Neue", sans-serif;
    font-size: 20px;
    font-weight: 300;
    gap: 0 12px;
    justify-content: space-between;
    letter-spacing: .34px;
    line-height: 1.5;
    margin: 0;
  }

  #header-mobile .mnav-company li span:last-child {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
  }

  #header-mobile .mnav-langs {
    display: flex;
    gap: 8px;
    padding-top: 18px;
  }

  #header-mobile .mnav-langs a,
  #header-mobile .mnav-langs span {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .35);
    box-sizing: border-box;
    color: #fff;
    display: inline-flex;
    font-family: "Bebas Neue", sans-serif;
    font-size: 18px;
    font-weight: 600;
    height: 40px;
    justify-content: center;
    line-height: 1;
    min-width: 48px;
    padding: 3px 10px 0;
    text-decoration: none;
  }

  #header-mobile .mnav-langs .is-active {
    border-color: #e87817;
    color: #e87817;
  }

  /* Services: the four homepage services, first block of the menu. */
  #header-mobile .mnav-service-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  #header-mobile .mnav-service-list li {
    margin: 0;
  }

  #header-mobile .mnav-service {
    align-items: center;
    color: #fff;
    display: flex;
    font-size: 22px;
    font-weight: 600;
    gap: 12px;
    justify-content: space-between;
    letter-spacing: normal;
    line-height: 1.2;
    min-height: 44px;
    padding: 6px 0 4px;
    text-decoration: none;
    text-transform: uppercase;
  }

  #header-mobile .mnav-service::after {
    color: #e87817;
    content: "\2192";
    flex-shrink: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
  }

  /* Menu targets on the homepage land below the fixed 64px header. */
  html body.home #about,
  html body.home #services .service {
    scroll-margin-top: 64px;
  }

  /* Page offsets for the 64px header (scoped to the new header markup). */
  html body.home header#header-mobile.has-mnav ~ #fullpage {
    margin-top: 64px !important;
  }

  html body header#header-mobile.has-mnav ~ .main-privacy {
    padding-top: 64px !important;
  }

  html body header#header-mobile.has-mnav ~ .metal-printing-landing .lp-header {
    display: none !important;
  }
}

@media (max-width: 360px) {
  html body header#header-mobile.has-mnav {
    gap: 8px;
    padding: 0 6px 0 12px !important;
  }

  html body header#header-mobile.has-mnav .header-left img.logo {
    height: 32px !important;
  }

  #header-mobile .mnav-cta {
    font-size: 18px;
    padding: 3px 12px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  #header-mobile .mnav-toggle-bar {
    transition: none;
  }
}

/* 404 below 900px: the heading margin collapsed through <main> and left a white strip under the header. */
@media (max-width: 900px) {
  html body header#header-mobile.has-mnav ~ .main-404 {
    display: flow-root;
  }
}

/* Tablet and desktop (min 761px): one-row header that matches the desktop
   homepage/metal header at 1021-1180px (logo | 3D Metal Printing | Contacts | EN | CTA).
   #header-mobile is the visible header on home/LT/DE up to 1020px and on
   privacy/404 at every width; the metal landing uses .lp-header. */
@media (min-width: 761px) {
  html body header#header-mobile.has-mnav .header-right .dropdown-toggle img {
    display: none !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown .dropdown-toggle::after {
    color: #e87817;
    content: "\2304";
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    margin-left: 7px;
    transform: translateY(-2px);
  }

  html body header#header-mobile.has-mnav .header-right .dropdown-toggle {
    text-transform: uppercase;
  }

  html body header#header-mobile.has-mnav .header-right .header-main-cta {
    align-items: center;
    align-self: center;
    box-sizing: border-box;
    color: #080808;
    display: flex !important;
    font-family: "Bebas Neue", sans-serif;
    font-size: 20px !important;
    font-weight: 800;
    height: 54px !important;
    justify-content: center;
    letter-spacing: normal;
    line-height: 1.5;
    margin: 0 !important;
    min-height: 54px !important;
    min-width: 0 !important;
    padding: 0 10px !important;
    width: 210px !important;
  }
}

@media (min-width: 1361px) {
  html body header#header-mobile.has-mnav .header-right .header-main-cta {
    margin: 0 15px !important;
    width: 230px !important;
  }
}

@media (min-width: 761px) and (max-width: 1020px) {
  html body header#header-mobile.has-mnav {
    align-items: stretch !important;
    background-position: center !important;
    background-size: cover !important;
    border-bottom: 1px solid #fff !important;
    border-top: 1px solid #fff !important;
    box-sizing: content-box !important;
    display: flex !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    height: 95px !important;
    justify-content: space-between !important;
    overflow: visible !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
    z-index: 1000 !important;
  }

  html body.home header#header-mobile.has-mnav {
    left: 0;
    position: fixed !important;
    top: 0 !important;
  }

  html body.home header#header-mobile.has-mnav ~ #fullpage {
    margin-top: 97px !important;
  }

  /* The metal landing shows .lp-header instead. */
  html body.page-template-template-metal-printing header#header-mobile.has-mnav {
    display: none !important;
  }

  /* Privacy: desktop spacing (fullPage scrolls to the first section, so no top padding on main). */
  html body header#header-mobile.has-mnav ~ .main-privacy {
    padding-top: 0 !important;
  }

  html body header#header-mobile.has-mnav ~ .main-privacy .privacy-policy {
    padding-top: 50px !important;
  }

  html body header#header-mobile.has-mnav::after {
    content: none !important;
    display: none !important;
  }

  html body header#header-mobile.has-mnav .header-left {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    grid-column: auto !important;
    grid-row: auto !important;
    min-width: 0;
    padding-left: 24px;
    width: auto !important;
  }

  html body header#header-mobile.has-mnav .header-left a {
    display: flex;
  }

  html body header#header-mobile.has-mnav .header-left img.logo {
    height: 56px !important;
    max-height: none !important;
    max-width: none !important;
    padding-left: 0 !important;
    width: auto !important;
  }

  html body header#header-mobile.has-mnav .header-right {
    align-items: stretch;
    display: flex !important;
    flex: 0 0 auto;
    font-size: 20px;
    height: auto !important;
    margin-left: auto;
  }

  html body header#header-mobile.has-mnav .header-right .iso-certificates {
    display: none !important;
  }

  html body header#header-mobile.has-mnav .header-right .header-metal-link {
    align-items: center;
    border-left: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
    box-sizing: border-box;
    display: flex !important;
    font-size: 20px !important;
    grid-column: auto !important;
    grid-row: auto !important;
    height: auto !important;
    justify-content: center;
    letter-spacing: normal;
    line-height: 1.5;
    margin: 0 !important;
    min-width: 0;
    padding: 0 14px !important;
    position: static !important;
    width: auto !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown {
    border-left: 0 !important;
    border-right: 1px solid #fff !important;
    box-sizing: border-box;
    display: flex !important;
    grid-column: auto !important;
    grid-row: auto !important;
    height: auto !important;
    min-width: 0;
    padding-right: 0 !important;
    position: relative !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown.contacts-dropdown {
    width: 150px !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown.language-dropdown {
    width: 95px !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown-toggle {
    height: 100% !important;
    width: 100% !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown-toggle span {
    font-size: 20px !important;
    line-height: 1.5;
    margin-top: 5px;
    padding-bottom: 4px;
  }

  html body header#header-mobile.has-mnav .header-right .contacts-dropdown .contacts-container {
    left: auto !important;
    max-height: calc(100vh - 97px);
    max-height: calc(100dvh - 97px);
    right: -1px !important;
    top: calc(100% + 1px) !important;
    width: 370px !important;
  }

  html body header#header-mobile.has-mnav .header-right .language-dropdown .language-container {
    left: -1px !important;
    top: calc(100% + 1px) !important;
    width: calc(100% + 1px) !important;
  }

  html body header#header-mobile.has-mnav .header-right .language-dropdown .language-container a {
    height: 60px;
    line-height: 60px;
  }

  html body header#header-mobile.has-mnav .header-main-cta-full {
    display: inline !important;
  }

  html body header#header-mobile.has-mnav .header-main-cta-short {
    display: none !important;
  }

  /* Metal landing header, same layout. */
  html body .metal-printing-landing .lp-header {
    box-sizing: content-box !important;
    height: auto !important;
    min-height: 0 !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-inner {
    align-items: stretch !important;
    box-sizing: border-box !important;
    gap: 0 !important;
    grid-template-columns: minmax(0, 1fr) auto 150px 95px 210px !important;
    grid-template-rows: 95px !important;
    height: 95px !important;
    min-height: 95px !important;
    padding: 0 0 0 24px !important;
    width: 100% !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-inner > * {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  html body .metal-printing-landing .lp-header .lp-logo-link {
    align-items: center;
    display: flex;
  }

  html body .metal-printing-landing .lp-header .lp-logo-link img {
    height: 56px !important;
    max-height: none !important;
    max-width: none !important;
    width: auto !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-metal-link {
    border-left: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
    font-size: 20px !important;
    justify-content: center !important;
    padding: 0 14px !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-nav-link,
  html body .metal-printing-landing .lp-header .lp-header-language {
    font-size: 20px !important;
  }

  html body .metal-printing-landing .lp-header .lp-contacts-dropdown[open] > .lp-header-nav-link::before {
    bottom: 29px !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-cta {
    align-self: center !important;
    box-sizing: border-box !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    height: 54px !important;
    justify-self: stretch !important;
    margin: 0 !important;
    min-height: 54px !important;
    min-width: 0 !important;
    padding: 0 10px !important;
    width: 100% !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-cta-full {
    display: inline !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-cta-short {
    display: none !important;
  }

  html body .metal-printing-landing .lp-header .lp-contacts-panel {
    left: auto !important;
    max-height: calc(100dvh - 97px) !important;
    right: 0 !important;
    top: calc(100% + 1px) !important;
  }
}

/* Narrow tablets: compact sizes and the short CTA label. */
@media (min-width: 761px) and (max-width: 899px) {
  html body header#header-mobile.has-mnav .header-left {
    padding-left: 16px;
  }

  html body header#header-mobile.has-mnav .header-left img.logo,
  html body .metal-printing-landing .lp-header .lp-logo-link img {
    height: 48px !important;
  }

  html body header#header-mobile.has-mnav .header-right .header-metal-link,
  html body .metal-printing-landing .lp-header .lp-header-metal-link {
    padding: 0 12px !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown.contacts-dropdown {
    width: 124px !important;
  }

  html body header#header-mobile.has-mnav .header-right .dropdown.language-dropdown {
    width: 76px !important;
  }

  html body header#header-mobile.has-mnav .header-right .header-main-cta {
    width: 140px !important;
  }

  html body header#header-mobile.has-mnav .header-main-cta-full,
  html body .metal-printing-landing .lp-header .lp-header-cta-full {
    display: none !important;
  }

  html body header#header-mobile.has-mnav .header-main-cta-short,
  html body .metal-printing-landing .lp-header .lp-header-cta-short {
    display: inline !important;
  }

  html body .metal-printing-landing .lp-header .lp-header-inner {
    grid-template-columns: minmax(0, 1fr) auto 124px 76px 140px !important;
    padding-left: 16px !important;
  }
}

/* Footer "Made by ITMA" credit: logo 40% smaller (78x28 -> 47x17). Size only,
   so the SVG paths and the hover wave animation stay untouched. */
html body footer.lp-footer .lp-itma-credit .lp-itma svg {
  height: 17px !important;
  width: 47px !important;
}

/* "Made by" label scaled with the smaller logo: cap height ~= ITMA letters. */
html body footer.lp-footer .lp-footer-bottom .lp-itma-credit {
  font-size: 15px !important;
  gap: 5px !important;
}
