@font-face {
  font-family: 'Montserrat';
  font-display: swap;
  font-style: normal;
  font-weight: 400 800;
  src: url('../fonts/montserrat-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Montserrat';
  font-display: swap;
  font-style: normal;
  font-weight: 400 800;
  src: url('../fonts/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --tm-ink: #050505;
  --tm-graphite: #111315;
  --tm-steel: #315778;
  --tm-orange: #f25a00;
  --tm-white: #fff;
  --tm-mist: #f1f2f3;
  --tm-muted: #a7abb0;
  --tm-container: 1180px;
  --tm-section-space: clamp(64px, 7vw, 104px);
  --tm-gutter: clamp(20px, 4vw, 56px);
  --tm-font: 'Montserrat', Arial, sans-serif;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  font-family: var(--tm-font);
  font-size: 1rem;
  line-height: 1.65;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
}

button,
input,
select,
textarea {
  font-family: var(--tm-font);
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
  font-family: var(--tm-font);
}

body.admin-bar .site-header {
  top: 32px;
}

img {
  height: auto;
  max-width: 100%;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background: var(--tm-white);
  clip: auto !important;
  clip-path: none;
  color: var(--tm-ink);
  display: block;
  font-size: 1rem;
  height: auto;
  left: 16px;
  padding: 12px 18px;
  top: 16px;
  width: auto;
  z-index: 100000;
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--tm-orange);
  outline-offset: 4px;
}

.site-header {
  background: var(--tm-ink);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--tm-white);
  position: relative;
  z-index: 100;
}

.site-header__inner {
  gap: clamp(18px, 3vw, 42px);
  min-height: 76px;
}

.site-brand {
  flex: 0 0 auto;
  font-family: var(--tm-font);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 1;
  margin: 0;
}

.site-brand a {
  text-decoration: none;
}

.site-brand span {
  color: var(--tm-orange);
}

.site-header .wp-block-navigation {
  margin-left: auto;
}

.site-header .wp-block-navigation-item__content,
.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
  color: var(--tm-white);
}

.site-header .wp-block-navigation-item__content {
  text-decoration: none;
}

.site-header .wp-block-navigation-item__content:hover {
  color: var(--tm-orange);
}

.site-header .wc-block-mini-cart,
.site-header .wp-block-woocommerce-customer-account {
  display: none !important;
}

.tm-button .wp-block-button__link,
.site-header__cta .wp-block-button__link {
  border: 1px solid var(--tm-orange);
  border-radius: 0;
  font-size: 0.9375rem;
  transition: background-color 160ms ease, color 160ms ease;
}

.tm-button .wp-block-button__link:hover,
.site-header__cta .wp-block-button__link:hover {
  background: var(--tm-white);
  border-color: var(--tm-white);
  color: var(--tm-ink);
}

.tm-section {
  padding-bottom: var(--tm-section-space);
  padding-top: var(--tm-section-space);
}

.tm-section-title {
  font-size: clamp(2.25rem, 3.5vw, 3.5rem);
  margin-bottom: clamp(36px, 4vw, 60px);
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-top: 0;
  max-width: 900px;
}

.tm-kicker {
  color: var(--tm-orange);
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.tm-hero {
  background: var(--tm-ink);
  min-height: clamp(620px, 64vw, 820px);
}

.tm-hero .wp-block-cover__background {
  display: none;
}

.tm-hero .wp-block-cover__image-background {
  object-position: center center;
}

.tm-hero__content {
  padding-bottom: clamp(76px, 10vw, 136px);
  padding-top: clamp(70px, 9vw, 120px);
}

.tm-hero__copy {
  margin-left: 0 !important;
  margin-right: auto !important;
  max-width: 640px;
}

.tm-hero h1 {
  font-size: clamp(3rem, 5vw, 4.75rem);
  line-height: 1.02;
  margin: 0;
  max-width: 640px;
  text-wrap: balance;
}

.tm-hero__lead {
  color: #e5e6e7;
  font-size: clamp(1.0625rem, 1.35vw, 1.25rem);
  line-height: 1.55;
  margin: 28px 0 36px;
  max-width: 510px;
}

.tm-intro {
  min-height: clamp(520px, 54vw, 700px);
}

.tm-intro .wp-block-cover__background {
  background: rgba(35, 66, 92, 0.22) !important;
}

.tm-intro .wp-block-cover__inner-container {
  display: flex;
  justify-content: flex-end;
}

.tm-intro__card {
  background: rgba(255, 255, 255, 0.96);
  color: var(--tm-graphite);
  margin-left: auto !important;
  margin-right: clamp(0px, 4vw, 48px) !important;
  max-width: 590px;
  padding: clamp(32px, 5vw, 60px);
}

.tm-intro__card h2 {
  font-size: clamp(2rem, 3vw, 3.1rem);
  margin-top: 0;
}

.tm-intro__card p,
.tm-capability-copy p,
.tm-task p,
.tm-quality p,
.tm-engineering p,
.tm-form-section p {
  font-size: clamp(1rem, 1.1vw, 1.0625rem);
  line-height: 1.65;
}

.tm-capabilities {
  background: var(--tm-ink);
  color: var(--tm-white);
}

.tm-capability-row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  gap: clamp(30px, 6vw, 92px);
  padding: 0 0 clamp(48px, 6vw, 80px);
}

.tm-capability-row + .tm-capability-row {
  padding-top: clamp(48px, 6vw, 80px);
}

.tm-capability-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.tm-capability-row figure {
  margin: 0;
}

.tm-capability-row img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  width: 100%;
}

.tm-capability-copy h3 {
  font-size: clamp(2rem, 2.8vw, 2.9rem);
  line-height: 1.08;
  margin-top: 0;
}

.tm-capability-copy p {
  color: #d3d5d7;
  max-width: 540px;
}

.tm-rule {
  background: var(--tm-orange);
  display: block;
  height: 3px;
  margin: 26px 0;
  width: 46px;
}

.tm-tasks {
  background: var(--tm-white);
}

.tm-task-grid {
  gap: 0;
}

.tm-task {
  border-left: 1px solid #b8bbbe;
  padding: 0 clamp(24px, 3vw, 42px);
}

.tm-task:first-child {
  border-left: 0;
  padding-left: 0;
}

.tm-task:last-child {
  padding-right: 0;
}

.tm-task h3 {
  font-size: clamp(1.35rem, 1.7vw, 1.75rem);
  line-height: 1.2;
  margin-top: 0;
}

.tm-quality {
  min-height: clamp(560px, 53vw, 700px);
}

.tm-quality .wp-block-cover__background {
  background: rgba(0, 0, 0, 0.06) !important;
}

.tm-quality__copy {
  margin-left: 0 !important;
  margin-right: auto !important;
  max-width: 520px;
  padding-bottom: 76px;
  padding-top: 76px;
}

.tm-quality h2 {
  font-size: clamp(2.25rem, 3.6vw, 3.5rem);
  line-height: 1.08;
  margin-top: 0;
}

.tm-quality p {
  color: #d2d4d6;
}

.tm-process {
  background: var(--tm-white);
}

.tm-process-grid {
  align-items: flex-start;
  gap: clamp(20px, 2.5vw, 42px);
}

.tm-process-step {
  border-top: 1px solid #aeb2b6;
  padding-top: 20px;
}

.tm-process-step strong {
  color: var(--tm-orange);
  display: block;
  font-family: var(--tm-font);
  font-size: 1.125rem;
  margin-bottom: 20px;
}

.tm-process-step h3 {
  font-size: 1.0625rem;
  line-height: 1.25;
  margin: 0 0 10px;
}

.tm-process-step p {
  color: #4e5357;
  font-size: 0.9375rem;
  line-height: 1.55;
}

.tm-equipment {
  background: var(--tm-mist);
}

.tm-equipment-grid {
  gap: clamp(40px, 6vw, 96px);
}

.tm-machine {
  align-items: center;
  border-left: 1px solid #afb3b6;
  gap: clamp(22px, 3vw, 42px);
  padding-left: clamp(24px, 3vw, 42px);
}

.tm-machine:first-child {
  border-left: 0;
  padding-left: 0;
}

.tm-machine figure {
  margin: 0;
}

.tm-machine img {
  aspect-ratio: 2 / 3;
  max-height: 430px;
  object-fit: contain;
  width: 100%;
}

.tm-machine h3 {
  font-size: clamp(1.75rem, 2.2vw, 2.35rem);
  line-height: 1.12;
  margin-top: 0;
}

.tm-machine-specs {
  color: #555b60;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.tm-engineering {
  background-color: var(--tm-steel);
  background-image: url('../images/engineering-blueprint.webp');
  background-position: right center;
  background-repeat: no-repeat;
  background-size: min(58vw, 820px) auto;
  color: var(--tm-white);
  padding-bottom: clamp(54px, 7vw, 88px);
  padding-top: clamp(54px, 7vw, 88px);
}

.tm-engineering h2,
.tm-engineering p {
  margin-left: 0 !important;
  margin-right: auto !important;
}

.tm-engineering h2 {
  font-size: clamp(2.1rem, 3.4vw, 3.35rem);
  line-height: 1.08;
  margin-bottom: 22px;
  margin-top: 0;
  max-width: 660px;
}

.tm-engineering p {
  max-width: 560px;
}

.tm-form-section {
  background: var(--tm-ink);
  color: var(--tm-white);
}

.tm-form-layout {
  gap: clamp(48px, 8vw, 112px);
}

.tm-form-section h2 {
  font-size: clamp(2.25rem, 3.6vw, 3.75rem);
  line-height: 1.08;
  margin-top: 0;
}

.tm-form-note {
  color: var(--tm-muted);
  font-size: 0.8125rem !important;
  line-height: 1.55 !important;
}

.site-footer {
  background: var(--tm-ink);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--tm-white);
  padding-bottom: 34px;
  padding-top: 34px;
}

.site-footer a {
  color: #d1d3d5;
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--tm-orange);
}

.site-footer__contact,
.site-footer__legal {
  font-size: 0.875rem;
  line-height: 1.55;
}

.tm-content {
  padding-bottom: var(--tm-section-space);
  padding-top: var(--tm-section-space);
}

.tm-content h1 {
  font-size: clamp(2.6rem, 4.5vw, 4.25rem);
}

@media (max-width: 980px) {
  .site-header__inner {
    flex-wrap: nowrap !important;
  }

  .site-header__cta {
    display: none !important;
  }

  .tm-hero {
    min-height: 700px;
  }

  .tm-hero .wp-block-cover__image-background {
    object-position: 64% center;
    opacity: 0.62;
  }

  .tm-capability-row,
  .tm-equipment-grid,
  .tm-form-layout {
    grid-template-columns: 1fr !important;
  }

  .tm-process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    row-gap: 44px;
  }

  .tm-equipment-grid {
    gap: 64px;
  }

  .tm-machine {
    border-left: 0;
    border-top: 1px solid #afb3b6;
    padding-left: 0;
    padding-top: 40px;
  }

  .tm-machine:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

@media (max-width: 700px) {
  body.admin-bar .site-header {
    top: 46px;
  }

  .site-header__inner {
    min-height: 64px;
  }

  .site-brand {
    font-size: 1.75rem;
  }

  .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--tm-ink) !important;
    color: var(--tm-white) !important;
    padding: 24px;
  }

  .tm-section {
    padding-bottom: 64px;
    padding-top: 64px;
  }

  .tm-section-title {
    font-size: 2rem;
    margin-bottom: 36px;
  }

  .tm-hero {
    align-items: flex-end;
    min-height: 700px;
  }

  .tm-hero .wp-block-cover__image-background {
    height: 48%;
    object-fit: cover;
    object-position: 72% center;
    opacity: 1;
    top: auto;
  }

  .tm-hero__content {
    padding-bottom: 330px;
    padding-top: 64px;
  }

  .tm-hero h1 {
    font-size: clamp(2.35rem, 10.5vw, 3.1rem);
    line-height: 1.04;
  }

  .tm-hero__lead {
    font-size: 1rem;
    margin: 22px 0 28px;
  }

  .tm-intro {
    min-height: 650px;
  }

  .tm-intro .wp-block-cover__inner-container {
    align-items: flex-end;
  }

  .tm-intro__card {
    margin: 0 !important;
    padding: 28px;
  }

  .tm-intro__card h2 {
    font-size: 2rem;
  }

  .tm-capability-row,
  .tm-task-grid,
  .tm-process-grid,
  .tm-machine {
    grid-template-columns: 1fr !important;
  }

  .tm-capability-row:nth-of-type(2) .tm-capability-copy {
    order: 2;
  }

  .tm-capability-copy h3 {
    font-size: 2rem;
  }

  .tm-task {
    border-left: 0;
    border-top: 1px solid #b8bbbe;
    padding: 28px 0;
  }

  .tm-task:first-child {
    border-top: 0;
    padding-top: 0;
  }

  .tm-quality__copy {
    padding-bottom: 64px;
    padding-top: 64px;
  }

  .tm-quality h2 {
    font-size: 2.25rem;
  }

  .tm-process-grid {
    row-gap: 34px;
  }

  .tm-process-step p,
  .tm-machine-specs {
    font-size: 1rem;
  }

  .tm-machine {
    gap: 24px;
  }

  .tm-engineering {
    background-position: 130% center;
    background-size: 88vw auto;
  }

  .tm-engineering h2 {
    font-size: 2.15rem;
  }

  .tm-engineering p {
    max-width: 76%;
  }

  .tm-form-section h2 {
    font-size: 2.25rem;
  }

  .tm-form-layout {
    min-width: 0;
    width: 100%;
  }

  .site-footer__inner {
    align-items: flex-start !important;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
