.content-section {
  padding: 100px 0;
}

.content-section + .content-section {
  border-top: 1px solid var(--line);
}

.page-hero-inner p {
  max-width: 800px;
  margin: 22px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: 18px;
  line-height: 1.8;
  font-weight: 650;
}

.content-head {
  display: grid;
  grid-template-columns: minmax(190px, .32fr) minmax(0, 1fr);
  gap: 68px;
  align-items: start;
  margin-bottom: 58px;
}

.content-head > *,
.split-layout > *,
.list-panel article,
.equipment-row > *,
.contact-card {
  min-width: 0;
}

.content-head .label {
  color: var(--accent);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.content-head h2 {
  margin: 0;
  max-width: 940px;
  font-size: clamp(34px, 4.6vw, 60px);
  line-height: 1.1;
  font-weight: 950;
}

.split-layout {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(360px, .58fr);
  gap: 70px;
  align-items: stretch;
}

.split-copy {
  padding-top: 36px;
  border-top: 2px solid var(--ink);
}

.split-copy h2 {
  margin: 0 0 30px;
  font-size: clamp(32px, 4.2vw, 56px);
  line-height: 1.12;
  font-weight: 950;
}

.split-copy p {
  margin: 0 0 22px;
  color: var(--body);
  font-size: 17px;
  line-height: 1.95;
  font-weight: 650;
}

.split-visual {
  min-height: 520px;
  margin: 0;
  overflow: hidden;
  background: var(--mist);
}

.split-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.info-card {
  min-height: 260px;
  padding: 34px;
  background: #fff;
}

.info-card span {
  display: block;
  margin-bottom: 42px;
  color: var(--steel);
  font-size: 14px;
  font-weight: 950;
}

.info-card b {
  display: block;
  margin-bottom: 14px;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 920;
}

.info-card p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.85;
  font-weight: 650;
}

.process-list {
  display: grid;
  border-top: 2px solid var(--ink);
}

.process-row {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 48px;
  padding: 32px 0;
  border-bottom: 1px solid var(--line);
}

.process-row span {
  color: var(--steel);
  font-size: clamp(28px, 3.8vw, 50px);
  line-height: 1;
  font-weight: 950;
}

.process-row h3 {
  margin: 0 0 12px;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 900;
}

.process-row p {
  margin: 0;
  color: var(--body);
  font-size: 16px;
  line-height: 1.85;
  font-weight: 650;
}

.list-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.list-panel article {
  padding: 30px;
  background: #fff;
}

.list-panel b {
  display: block;
  margin-bottom: 10px;
  font-size: 20px;
  font-weight: 900;
}

.list-panel p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 650;
}

.equipment-table {
  margin-top: 46px;
  border-top: 2px solid var(--ink);
}

.equipment-row {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) minmax(150px, .28fr) minmax(150px, .3fr) minmax(0, .45fr);
  gap: 28px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.equipment-row.table-head {
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.equipment-row span {
  color: var(--body);
  font-size: 15px;
  line-height: 1.7;
  font-weight: 700;
}

.equipment-row span:first-child {
  color: var(--steel);
  font-weight: 900;
}

.equipment-page .content-head {
  margin-bottom: 44px;
}

.equipment-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 72px;
  background: var(--line);
}

.equipment-summary article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.equipment-summary span {
  display: inline-grid;
  place-items: center;
  min-width: 52px;
  height: 30px;
  margin-bottom: 34px;
  color: #fff;
  background: var(--steel);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
}

.equipment-summary b {
  display: block;
  margin-bottom: 14px;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 920;
}

.equipment-summary p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 650;
}

.equipment-gallery {
  display: grid;
  gap: 72px;
}

.equipment-team {
  display: grid;
  gap: 28px;
}

.team-heading {
  display: flex;
  align-items: stretch;
  width: min(360px, 100%);
  height: 42px;
  color: #fff;
  font-size: 15px;
  line-height: 1;
  font-weight: 950;
}

.team-heading span,
.team-heading b {
  display: flex;
  align-items: center;
  min-width: 0;
}

.team-heading span {
  flex: 0 0 auto;
  padding: 0 18px;
  border-radius: 5px 0 0 5px;
}

.team-heading b {
  flex: 1;
  padding: 0 22px;
  background: #b8babb;
  border-radius: 0 5px 5px 0;
  font-size: 14px;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.team-nc .team-heading span,
.team-nc .machine-card b {
  background: #ea6a27;
}

.team-edm .team-heading span,
.team-edm .machine-card b {
  background: #2daedf;
}

.team-finish .team-heading span,
.team-finish .machine-card b {
  background: #2bdf72;
}

.machine-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 44px;
}

.machine-grid-wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.machine-card {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #eef2f3;
  box-shadow: 0 1px 0 rgba(23, 29, 32, .08);
  transition: transform .22s ease, box-shadow .22s ease;
}

.machine-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(23, 29, 32, .12);
}

.machine-card img {
  width: 100%;
  aspect-ratio: 1.55 / 1;
  object-fit: cover;
  background: var(--mist);
}

.machine-grid-wide .machine-card img {
  aspect-ratio: 1 / 1.1;
}

.machine-card b {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 12px 10px;
  color: #fff;
  font-size: 15px;
  line-height: 1.25;
  text-align: center;
  font-weight: 850;
}

.equipment-spec {
  margin-top: 90px;
}

.mold-intro {
  align-items: start;
}

.mold-capability {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.mold-capability article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.mold-capability span,
.mold-step span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
}

.mold-capability b {
  display: block;
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.2;
  font-weight: 920;
}

.mold-capability p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 650;
}

.mold-showcase {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.mold-showcase figure {
  min-width: 0;
  margin: 0;
  background: #fff;
  overflow: hidden;
}

.mold-showcase img {
  width: 100%;
  aspect-ratio: 1.38 / 1;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .28s ease;
}

.mold-showcase figure:hover img {
  transform: scale(1.06);
}

.mold-showcase figcaption {
  min-height: 56px;
  padding: 16px 18px;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.35;
  font-weight: 850;
}

.mold-process-map {
  counter-reset: mold-step;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-top: 2px solid var(--ink);
}

.mold-step {
  position: relative;
  min-width: 0;
  min-height: 178px;
  padding: 24px 22px;
  background: #fff;
}

.mold-step::after {
  content: "";
  position: absolute;
  top: 32px;
  right: 18px;
  width: 18px;
  height: 18px;
  border-top: 2px solid rgba(40, 90, 83, .42);
  border-right: 2px solid rgba(40, 90, 83, .42);
  transform: rotate(45deg);
}

.mold-step:nth-child(5n)::after,
.mold-step:last-child::after {
  display: none;
}

.mold-step b {
  display: block;
  margin: 36px 0 12px;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.25;
  font-weight: 920;
}

.mold-step p {
  margin: 0;
  color: var(--body);
  font-size: 13px;
  line-height: 1.55;
  font-weight: 750;
}

.mold-step.is-focus {
  color: #fff;
  background: var(--accent);
}

.mold-step.is-focus span,
.mold-step.is-focus b,
.mold-step.is-focus p {
  color: #fff;
}

.mold-step.is-focus::after {
  border-color: rgba(255, 255, 255, .6);
}

.mold-reference {
  margin: 52px 0 0;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
}

.mold-reference img {
  width: 100%;
  display: block;
  background: var(--mist);
}

.mold-reference figcaption {
  margin-top: 16px;
  color: var(--body);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 700;
}

.injection-intro {
  align-items: start;
}

.injection-capability,
.injection-flow {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.injection-capability article,
.injection-flow article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.injection-capability span,
.injection-flow span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
}

.injection-capability b,
.injection-flow b {
  display: block;
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.2;
  font-weight: 920;
}

.injection-capability p,
.injection-flow p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.8;
  font-weight: 650;
}

.injection-site-grid,
.injection-product-grid,
.injection-product-note {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.injection-site-head {
  grid-template-columns: minmax(150px, .22fr) minmax(0, 780px);
  gap: 46px;
  align-items: start;
  margin-bottom: 44px;
}

.injection-site-head h2 {
  max-width: 780px;
  font-size: clamp(34px, 3.2vw, 48px);
  line-height: 1.16;
}

.injection-site-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}

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

.injection-product-note {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 28px;
  border-top: 2px solid var(--ink);
}

.injection-site-grid figure,
.injection-product-grid figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #fff;
}

.injection-site-grid img,
.injection-product-grid img {
  width: 100%;
  object-fit: cover;
  background: var(--mist);
  transition: transform .28s ease;
}

.injection-site-grid img {
  aspect-ratio: 1.18 / .82;
}

.injection-product-grid img {
  aspect-ratio: 1.48 / 1;
  object-fit: contain;
  padding: 26px 24px 18px;
}

.injection-site-grid figure:hover img,
.injection-product-grid figure:hover img {
  transform: scale(1.05);
}

.injection-site-grid figcaption,
.injection-product-grid figcaption {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 16px;
  color: var(--ink);
  background: #fff;
  font-size: 16px;
  line-height: 1.35;
  text-align: center;
  font-weight: 850;
  border-top: 1px solid var(--line);
}

.injection-site-grid figcaption {
  justify-content: flex-start;
  color: var(--ink);
  background: #fff;
  border-top: 1px solid var(--line);
}

.injection-site-grid figure:first-child img {
  object-position: 50% 58%;
}

.injection-site-grid figure:nth-child(2) img,
.injection-site-grid figure:nth-child(3) img {
  object-position: center;
}

.injection-product-note article {
  min-width: 0;
  padding: 28px 30px;
  background: #fff;
}

.injection-product-note span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.injection-product-note b {
  display: block;
  margin: 16px 0 10px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.22;
  font-weight: 920;
}

.injection-product-note p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.78;
  font-weight: 650;
}

.injection-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.clients-summary,
.clients-response {
  display: grid;
  gap: 1px;
  background: var(--line);
}

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

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

.clients-summary article,
.clients-response article {
  min-width: 0;
  padding: 32px;
  background: #fff;
}

.clients-summary span,
.clients-response span {
  display: block;
  margin-bottom: 30px;
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.clients-summary b,
.clients-response b {
  display: block;
  margin-bottom: 14px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.22;
  font-weight: 920;
}

.clients-summary p,
.clients-response p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.82;
  font-weight: 650;
}

.client-logo-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-top: 2px solid var(--ink);
}

.client-logo-grid figure {
  display: grid;
  grid-template-rows: 120px auto;
  min-width: 0;
  margin: 0;
  background: #fff;
  transition: background .22s ease, transform .22s ease;
}

.client-logo-grid figure:hover {
  background: #f5f8f7;
  transform: translateY(-3px);
}

.client-logo-grid img {
  align-self: center;
  justify-self: center;
  width: min(78px, 64%);
  max-height: 78px;
  object-fit: contain;
  filter: grayscale(.25);
  mix-blend-mode: multiply;
}

.client-logo-grid figcaption {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 0 18px 18px;
  color: var(--body);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 850;
  text-transform: uppercase;
}

.rnd-intro {
  align-items: start;
}

.rnd-keypoints,
.rnd-process {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.rnd-keypoints article,
.rnd-process article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.rnd-keypoints span,
.rnd-process span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
}

.rnd-keypoints b,
.rnd-process b {
  display: block;
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.2;
  font-weight: 920;
}

.rnd-keypoints p,
.rnd-process p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.82;
  font-weight: 650;
}

.rnd-visual-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  background: transparent;
}

.rnd-visual-grid figure {
  min-width: 0;
  margin: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 2px solid var(--ink);
  overflow: hidden;
}

.rnd-visual-grid img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  background: var(--mist);
  transition: transform .28s ease;
}

.rnd-visual-grid figure:first-child img {
  object-position: center;
}

.rnd-visual-grid figure:nth-child(2) img {
  object-position: center;
  background: #fff;
}

.rnd-visual-grid figure:hover img {
  transform: scale(1.025);
}

.rnd-visual-grid figcaption {
  display: grid;
  gap: 8px;
  min-height: 110px;
  padding: 24px 28px;
  background: #fff;
  border-top: 1px solid var(--line);
}

.rnd-visual-grid b {
  color: var(--ink);
  font-size: 22px;
  line-height: 1.25;
  font-weight: 920;
}

.rnd-visual-grid span {
  color: var(--body);
  font-size: 15px;
  line-height: 1.7;
  font-weight: 650;
}

.rnd-process {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}

.tryout-intro {
  align-items: start;
}

.tryout-keypoints,
.tryout-flow {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.tryout-keypoints article,
.tryout-flow article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.tryout-keypoints span,
.tryout-flow span,
.tryout-machine-card span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tryout-keypoints b,
.tryout-flow b {
  display: block;
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.2;
  font-weight: 920;
}

.tryout-keypoints p,
.tryout-flow p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.82;
  font-weight: 650;
}

.tryout-machine-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-top: 2px solid var(--ink);
}

.tryout-machine-card {
  display: grid;
  grid-template-rows: minmax(260px, auto) auto;
  min-width: 0;
  margin: 0;
  background: #fff;
  overflow: hidden;
}

.tryout-machine-card img {
  align-self: center;
  justify-self: center;
  width: 100%;
  height: 100%;
  max-height: 310px;
  object-fit: contain;
  padding: 28px;
  background: #f7faf9;
}

.tryout-machine-card figcaption {
  display: grid;
  gap: 10px;
  padding: 26px 30px 30px;
  border-top: 1px solid var(--line);
}

.tryout-machine-card b {
  color: var(--ink);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.05;
  font-weight: 950;
}

.tryout-machine-card em {
  color: var(--body);
  font-size: 18px;
  font-style: normal;
  font-weight: 850;
}

.tryout-site-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border-top: 2px solid var(--ink);
}

.tryout-site-grid figure {
  min-width: 0;
  margin: 0;
  background: #fff;
  overflow: hidden;
}

.tryout-site-grid img {
  width: 100%;
  aspect-ratio: 1.26 / 1;
  object-fit: cover;
  background: var(--mist);
  transition: transform .28s ease;
}

.tryout-site-grid figure:hover img {
  transform: scale(1.05);
}

.tryout-site-grid figcaption {
  min-height: 46px;
  padding: 14px 18px;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.2;
  font-weight: 900;
  border-top: 1px solid var(--line);
}

.tryout-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}

.measurement-intro {
  align-items: start;
}

.measurement-keypoints,
.measurement-flow {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.measurement-keypoints article,
.measurement-flow article {
  min-width: 0;
  padding: 30px;
  background: #fff;
}

.measurement-keypoints span,
.measurement-flow span,
.measurement-type-head span {
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.measurement-keypoints b,
.measurement-flow b {
  display: block;
  margin: 18px 0 12px;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.2;
  font-weight: 920;
}

.measurement-keypoints p,
.measurement-flow p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.82;
  font-weight: 650;
}

.measurement-type-grid {
  display: grid;
  gap: 52px;
}

.measurement-type-grid.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.measurement-type-grid article {
  min-width: 0;
}

.measurement-type-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 18px;
  border-bottom: 2px solid var(--ink);
}

.measurement-type-head b {
  color: var(--ink);
  font-size: clamp(24px, 3.4vw, 42px);
  line-height: 1.08;
  text-align: right;
  font-weight: 950;
}

.measurement-type-grid.compact .measurement-type-head {
  display: grid;
  gap: 12px;
  align-items: start;
  padding-bottom: 14px;
}

.measurement-type-grid.compact .measurement-type-head b {
  max-width: 520px;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
  text-align: left;
}

.measurement-page .content-head h2 {
  max-width: 860px;
  font-size: clamp(32px, 3.7vw, 50px);
}

.measurement-page .content-head.compact h2 {
  font-size: clamp(30px, 3.2vw, 44px);
}

.measurement-system-card {
  display: grid;
  grid-template-rows: auto auto;
  min-width: 0;
  margin-top: 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
}

.measurement-media-set {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  grid-template-rows: repeat(2, 180px);
  gap: 12px;
  padding: 12px;
  background: #f4f7f7;
}

.measurement-media-set img {
  min-width: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .28s ease;
}

.measurement-media-set .is-main {
  grid-row: 1 / 3;
}

.measurement-media-set.is-portable {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 196px 168px;
}

.measurement-media-set.is-portable .is-main {
  grid-column: 1 / 3;
  grid-row: 1;
  object-fit: cover;
}

.measurement-system-card:hover .measurement-media-set img {
  transform: scale(1.015);
}

.measurement-system-copy {
  min-height: 118px;
  padding: 22px 24px;
  border-top: 1px solid var(--line);
}

.measurement-system-copy strong {
  display: block;
  margin-bottom: 10px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.2;
  font-weight: 920;
}

.measurement-system-copy p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.78;
  font-weight: 650;
}

.measurement-photo-grid,
.measurement-report-grid {
  display: grid;
  gap: 1px;
  background: var(--line);
}

.measurement-photo-grid {
  grid-template-columns: 1.1fr .7fr .55fr;
}

.measurement-photo-grid.portable {
  grid-template-columns: .72fr 1.15fr .82fr;
}

.measurement-photo-grid img,
.measurement-report-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: var(--mist);
}

.measurement-photo-grid img {
  aspect-ratio: 1 / .82;
}

.measurement-photo-grid.fixed img:nth-child(3) {
  object-position: center;
}

.measurement-report-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}

.measurement-report-grid.compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  background: transparent;
  border-top: 0;
}

.measurement-report-grid figure {
  min-width: 0;
  margin: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 2px solid var(--ink);
}

.measurement-report-grid img {
  aspect-ratio: 1.1 / .82;
  object-fit: contain;
  padding: 10px;
}

.measurement-report-grid figcaption {
  min-height: 44px;
  padding: 12px 14px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.3;
  font-weight: 900;
  border-top: 1px solid var(--line);
}

.measurement-flow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
}

.content-head.compact {
  grid-template-columns: minmax(160px, .24fr) minmax(0, 1fr);
  margin-bottom: 28px;
  padding-top: 56px;
  border-top: 2px solid var(--ink);
}

.content-head.compact h2 {
  font-size: clamp(28px, 3.4vw, 42px);
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.contact-card {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 260px;
  padding: 34px;
  background: #fff;
  border: 1px solid var(--line);
}

.contact-card.is-primary {
  color: #fff;
  background: var(--steel);
  border-color: var(--steel);
}

.contact-card small {
  display: block;
  margin-bottom: 24px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contact-card.is-primary small {
  color: rgba(255, 255, 255, .68);
}

.contact-card h2 {
  margin: 0 0 24px;
  font-size: clamp(26px, 3.2vw, 42px);
  line-height: 1.12;
  font-weight: 950;
}

.contact-lines {
  display: grid;
  gap: 12px;
  margin-top: auto;
}

.contact-lines p {
  margin: 0;
  color: var(--body);
  font-size: 15px;
  line-height: 1.65;
  font-weight: 700;
}

.contact-card.is-primary .contact-lines p {
  color: rgba(255, 255, 255, .86);
}

.contact-lines b {
  color: var(--ink);
  font-weight: 900;
}

.contact-card.is-primary .contact-lines b {
  color: #fff;
}

html[lang="en"] .content-head h2,
html[lang="en"] .split-copy h2,
html[lang="en"] .info-card b,
html[lang="en"] .process-row h3,
html[lang="en"] .mold-capability b,
html[lang="en"] .mold-showcase figcaption,
html[lang="en"] .mold-step b,
html[lang="en"] .injection-capability b,
html[lang="en"] .injection-site-grid figcaption,
html[lang="en"] .injection-product-grid figcaption,
html[lang="en"] .injection-product-note b,
html[lang="en"] .injection-flow b,
html[lang="en"] .clients-summary b,
html[lang="en"] .clients-response b,
html[lang="en"] .rnd-keypoints b,
html[lang="en"] .rnd-visual-grid b,
html[lang="en"] .rnd-process b,
html[lang="en"] .tryout-keypoints b,
html[lang="en"] .tryout-machine-card b,
html[lang="en"] .tryout-flow b,
html[lang="en"] .measurement-keypoints b,
html[lang="en"] .measurement-type-head b,
html[lang="en"] .measurement-flow b,
html[lang="en"] .contact-card h2 {
  word-break: normal;
}

html[lang="en"] .content-head h2 {
  max-width: 1060px;
  font-size: clamp(32px, 4vw, 54px);
}

html[lang="en"] .split-copy h2 {
  font-size: clamp(30px, 3.5vw, 48px);
}

html[lang="en"] .split-copy p,
html[lang="en"] .info-card p,
html[lang="en"] .process-row p,
html[lang="en"] .list-panel p,
html[lang="en"] .mold-capability p,
html[lang="en"] .mold-step p,
html[lang="en"] .injection-capability p,
html[lang="en"] .injection-product-note p,
html[lang="en"] .injection-flow p,
html[lang="en"] .clients-summary p,
html[lang="en"] .clients-response p,
html[lang="en"] .rnd-keypoints p,
html[lang="en"] .rnd-visual-grid span,
html[lang="en"] .rnd-process p,
html[lang="en"] .tryout-keypoints p,
html[lang="en"] .tryout-flow p,
html[lang="en"] .measurement-keypoints p,
html[lang="en"] .measurement-flow p,
html[lang="en"] .contact-lines p {
  word-break: normal;
  overflow-wrap: normal;
}

@media (max-width: 980px) {
  .content-head,
  .split-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .card-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .equipment-summary,
  .machine-grid,
  .mold-showcase,
  .injection-site-grid,
  .injection-product-grid,
  .injection-product-note,
  .injection-flow,
  .clients-summary,
  .clients-response,
  .rnd-visual-grid,
  .rnd-process,
  .tryout-machine-grid,
  .tryout-site-grid,
  .tryout-flow,
  .measurement-type-grid.compact,
  .measurement-photo-grid,
  .measurement-photo-grid.portable,
  .measurement-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .measurement-report-grid,
  .measurement-report-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-logo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .mold-process-map {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .mold-step:nth-child(5n)::after {
    display: block;
  }

  .mold-step:nth-child(3n)::after,
  .mold-step:last-child::after {
    display: none;
  }
}

@media (max-width: 720px) {
  body[data-page="mold"],
  body[data-page="injection"] {
    overflow-x: hidden;
  }

  .content-section {
    padding: 72px 0;
  }

  .content-head {
    margin-bottom: 38px;
  }

  .content-head.compact {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .split-visual {
    min-height: 320px;
  }

  .process-row,
  .equipment-row,
  .list-panel {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .info-card,
  .contact-card,
  .list-panel article {
    padding: 26px 22px;
  }

  .equipment-summary,
  .machine-grid,
  .machine-grid-wide,
  .mold-showcase,
  .mold-process-map,
  .injection-site-grid,
  .injection-product-grid,
  .injection-product-note,
  .injection-flow,
  .clients-summary,
  .clients-response,
  .rnd-visual-grid,
  .rnd-process,
  .tryout-machine-grid,
  .tryout-site-grid,
  .tryout-flow,
  .measurement-type-grid.compact,
  .measurement-photo-grid,
  .measurement-photo-grid.portable,
  .measurement-flow {
    grid-template-columns: 1fr;
  }

  .measurement-report-grid,
  .measurement-report-grid.compact {
    grid-template-columns: 1fr;
  }

  .measurement-type-head {
    display: grid;
    gap: 12px;
  }

  .measurement-type-head b {
    text-align: left;
  }

  .client-logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mold-step {
    min-height: 0;
  }

  .mold-step::after,
  .mold-step:nth-child(3n)::after,
  .mold-step:nth-child(5n)::after {
    display: block;
    top: auto;
    right: 26px;
    bottom: 18px;
    transform: rotate(135deg);
  }

  .mold-step:last-child::after {
    display: none;
  }

  .mold-page .split-copy,
  .mold-page .mold-capability,
  .mold-page .content-head,
  .mold-page .mold-showcase,
  .mold-page .mold-process-map,
  .mold-page .mold-reference {
    width: min(100%, calc(100vw - 32px));
    max-width: 100%;
  }

  .mold-page .page-hero-inner p,
  .mold-page .split-copy p,
  .mold-page .content-head h2 {
    width: min(100%, calc(100vw - 32px));
    max-width: 100%;
  }

  .mold-page .container,
  .mold-page .page-hero-inner {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
  }

  .injection-page .container,
  .injection-page .page-hero-inner,
  .clients-page .container,
  .clients-page .page-hero-inner,
  .rnd-page .container,
  .rnd-page .page-hero-inner,
  .tryout-page .container,
  .tryout-page .page-hero-inner,
  .measurement-page .container,
  .measurement-page .page-hero-inner {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
  }

  .mold-page .page-hero-inner p,
  .mold-page .split-copy h2,
  .mold-page .split-copy p,
  .mold-page .content-head h2,
  .mold-page .mold-capability b,
  .mold-page .mold-capability p,
  .mold-page .mold-showcase figcaption,
  .mold-page .mold-step b,
  .mold-page .mold-step p {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .injection-page .page-hero-inner p,
  .injection-page .split-copy h2,
  .injection-page .split-copy p,
  .injection-page .content-head h2,
  .injection-page .injection-capability b,
  .injection-page .injection-capability p,
  .injection-page .injection-site-grid figcaption,
  .injection-page .injection-product-grid figcaption,
  .injection-page .injection-product-note b,
  .injection-page .injection-product-note p,
  .injection-page .injection-flow b,
  .injection-page .injection-flow p {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .clients-page .page-hero-inner p,
  .clients-page .content-head h2,
  .clients-page .clients-summary b,
  .clients-page .clients-summary p,
  .clients-page .clients-response b,
  .clients-page .clients-response p,
  .clients-page .client-logo-grid figcaption {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .rnd-page .page-hero-inner p,
  .rnd-page .split-copy h2,
  .rnd-page .split-copy p,
  .rnd-page .content-head h2,
  .rnd-page .rnd-keypoints b,
  .rnd-page .rnd-keypoints p,
  .rnd-page .rnd-visual-grid b,
  .rnd-page .rnd-visual-grid span,
  .rnd-page .rnd-process b,
  .rnd-page .rnd-process p {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .tryout-page .page-hero-inner p,
  .tryout-page .split-copy h2,
  .tryout-page .split-copy p,
  .tryout-page .content-head h2,
  .tryout-page .tryout-keypoints b,
  .tryout-page .tryout-keypoints p,
  .tryout-page .tryout-machine-card b,
  .tryout-page .tryout-machine-card em,
  .tryout-page .tryout-flow b,
  .tryout-page .tryout-flow p {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .measurement-page .page-hero-inner p,
  .measurement-page .split-copy h2,
  .measurement-page .split-copy p,
  .measurement-page .content-head h2,
  .measurement-page .measurement-keypoints b,
  .measurement-page .measurement-keypoints p,
  .measurement-page .measurement-system-copy strong,
  .measurement-page .measurement-system-copy p,
  .measurement-page .measurement-type-head b,
  .measurement-page .measurement-report-grid figcaption,
  .measurement-page .measurement-flow b,
  .measurement-page .measurement-flow p {
    max-width: calc(100vw - 32px) !important;
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: anywhere !important;
  }

  .rnd-page .page-hero-inner p,
  .rnd-page .split-copy h2,
  .rnd-page .split-copy p,
  .rnd-page .content-head h2,
  .rnd-page .rnd-keypoints p,
  .rnd-page .rnd-visual-grid span,
  .rnd-page .rnd-process p {
    width: min(320px, calc(100vw - 48px)) !important;
  }

  .tryout-page .page-hero-inner p,
  .tryout-page .split-copy h2,
  .tryout-page .split-copy p,
  .tryout-page .content-head h2,
  .tryout-page .tryout-keypoints p,
  .tryout-page .tryout-flow p {
    width: min(320px, calc(100vw - 48px)) !important;
  }

  .measurement-page .page-hero-inner p,
  .measurement-page .split-copy h2,
  .measurement-page .split-copy p,
  .measurement-page .content-head h2,
  .measurement-page .measurement-keypoints p,
  .measurement-page .measurement-system-copy p,
  .measurement-page .measurement-flow p {
    width: min(320px, calc(100vw - 48px)) !important;
  }

  .rnd-page .split-copy h2,
  .rnd-page .content-head h2,
  .tryout-page .split-copy h2,
  .tryout-page .content-head h2,
  .measurement-page .split-copy h2,
  .measurement-page .content-head h2 {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }

  .measurement-system-card {
    grid-template-rows: auto auto;
  }

  .measurement-media-set {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .measurement-media-set.is-portable {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .measurement-media-set .is-main {
    grid-row: auto;
  }

  .measurement-media-set.is-portable .is-main {
    grid-column: auto;
    grid-row: auto;
  }

  .measurement-media-set img {
    height: 220px;
  }

  .clients-page .page-hero-inner p,
  .clients-page .content-head h2,
  .clients-page .clients-summary p,
  .clients-page .clients-response p {
    width: min(320px, calc(100vw - 48px)) !important;
  }

  .clients-page .content-head h2 {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }

  .injection-page .page-hero-inner p,
  .injection-page .split-copy h2,
  .injection-page .split-copy p,
  .injection-page .content-head h2,
  .injection-page .injection-capability p,
  .injection-page .injection-product-note p,
  .injection-page .injection-flow p {
    width: min(320px, calc(100vw - 48px)) !important;
  }

  .injection-page .split-copy h2,
  .injection-page .content-head h2 {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }

  html[lang="ko"] .injection-page .split-copy h2,
  html[lang="ko"] .injection-page .content-head h2,
  html[lang="ko"] .injection-page .injection-capability b,
  html[lang="ko"] .injection-page .injection-product-note b,
  html[lang="ko"] .injection-page .injection-flow b {
    width: min(360px, calc(100vw - 48px)) !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  .mold-reference {
    margin-top: 36px;
    padding: 12px;
  }

  .equipment-page .content-head h2 {
    width: min(300px, calc(100vw - 56px));
    max-width: 100%;
    font-size: 26px;
    line-height: 1.22;
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  .equipment-summary {
    margin-bottom: 52px;
  }

  .equipment-summary article {
    padding: 26px 22px;
  }

  .equipment-summary b,
  .equipment-summary p,
  .machine-card b,
  .mold-capability b,
  .mold-capability p,
  .mold-showcase figcaption,
  .mold-step b,
  .mold-step p,
  .injection-capability b,
  .injection-capability p,
  .injection-site-grid figcaption,
  .injection-product-grid figcaption,
  .injection-product-note b,
  .injection-product-note p,
  .injection-flow b,
  .injection-flow p,
  .clients-summary b,
  .clients-summary p,
  .clients-response b,
  .clients-response p,
  .client-logo-grid figcaption,
  .rnd-keypoints b,
  .rnd-keypoints p,
  .rnd-visual-grid b,
  .rnd-visual-grid span,
  .rnd-process b,
  .rnd-process p,
  .tryout-keypoints b,
  .tryout-keypoints p,
  .tryout-machine-card b,
  .tryout-machine-card em,
  .tryout-flow b,
  .tryout-flow p,
  .measurement-keypoints b,
  .measurement-keypoints p,
  .measurement-type-head b,
  .measurement-report-grid figcaption,
  .measurement-flow b,
  .measurement-flow p,
  .mold-page .split-copy p,
  .mold-page .page-hero-inner p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  .equipment-gallery {
    gap: 54px;
  }

  .team-heading {
    width: 100%;
  }

  .team-heading span {
    padding: 0 14px;
  }

  .team-heading b {
    padding: 0 16px;
  }

  .machine-card img,
  .machine-grid-wide .machine-card img {
    aspect-ratio: 1.48 / 1;
  }

  .page-hero-inner p,
  .content-head h2,
  .split-copy h2,
  .split-copy p,
  .info-card b,
  .info-card p,
  .process-row h3,
  .process-row p,
  .equipment-row span,
  .contact-card h2,
  .contact-lines p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  .content-head h2,
  .split-copy h2 {
    font-size: clamp(28px, 8vw, 36px);
    line-height: 1.16;
  }

  .page-hero-inner p {
    font-size: 16px;
    line-height: 1.7;
  }

  html[lang="en"] .page-hero-inner p,
  html[lang="en"] .content-head h2,
  html[lang="en"] .split-copy h2,
  html[lang="en"] .split-copy p,
  html[lang="en"] .info-card b,
  html[lang="en"] .info-card p,
  html[lang="en"] .process-row h3,
  html[lang="en"] .process-row p,
  html[lang="en"] .equipment-row span,
  html[lang="en"] .mold-capability b,
  html[lang="en"] .mold-capability p,
  html[lang="en"] .mold-showcase figcaption,
  html[lang="en"] .mold-step b,
  html[lang="en"] .mold-step p,
  html[lang="en"] .injection-capability b,
  html[lang="en"] .injection-capability p,
  html[lang="en"] .injection-site-grid figcaption,
  html[lang="en"] .injection-product-grid figcaption,
  html[lang="en"] .injection-product-note b,
  html[lang="en"] .injection-product-note p,
  html[lang="en"] .injection-flow b,
  html[lang="en"] .injection-flow p,
  html[lang="en"] .clients-summary b,
  html[lang="en"] .clients-summary p,
  html[lang="en"] .clients-response b,
  html[lang="en"] .clients-response p,
  html[lang="en"] .client-logo-grid figcaption,
  html[lang="en"] .rnd-keypoints b,
  html[lang="en"] .rnd-keypoints p,
  html[lang="en"] .rnd-visual-grid b,
  html[lang="en"] .rnd-visual-grid span,
  html[lang="en"] .rnd-process b,
  html[lang="en"] .rnd-process p,
  html[lang="en"] .tryout-keypoints b,
  html[lang="en"] .tryout-keypoints p,
  html[lang="en"] .tryout-machine-card b,
  html[lang="en"] .tryout-machine-card em,
  html[lang="en"] .tryout-flow b,
  html[lang="en"] .tryout-flow p,
  html[lang="en"] .measurement-keypoints b,
  html[lang="en"] .measurement-keypoints p,
  html[lang="en"] .measurement-type-head b,
  html[lang="en"] .measurement-report-grid figcaption,
  html[lang="en"] .measurement-flow b,
  html[lang="en"] .measurement-flow p,
  html[lang="en"] .contact-card h2,
  html[lang="en"] .contact-lines p {
    word-break: normal;
  }

  html[lang="en"] .mold-page .page-hero-inner p,
  html[lang="en"] .mold-page .split-copy p,
  html[lang="en"] .mold-page .mold-capability p,
  html[lang="en"] .mold-page .mold-showcase figcaption,
  html[lang="en"] .mold-page .mold-step b,
  html[lang="en"] .mold-page .mold-step p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  html[lang="en"] .injection-page .page-hero-inner p,
  html[lang="en"] .injection-page .split-copy p,
  html[lang="en"] .injection-page .injection-capability p,
  html[lang="en"] .injection-page .injection-site-grid figcaption,
  html[lang="en"] .injection-page .injection-product-grid figcaption,
  html[lang="en"] .injection-page .injection-product-note p,
  html[lang="en"] .injection-page .injection-flow b,
  html[lang="en"] .injection-page .injection-flow p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  html[lang="en"] .clients-page .page-hero-inner p,
  html[lang="en"] .clients-page .content-head h2,
  html[lang="en"] .clients-page .clients-summary b,
  html[lang="en"] .clients-page .clients-summary p,
  html[lang="en"] .clients-page .clients-response b,
  html[lang="en"] .clients-page .clients-response p,
  html[lang="en"] .clients-page .client-logo-grid figcaption {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  html[lang="en"] .rnd-page .page-hero-inner p,
  html[lang="en"] .rnd-page .split-copy p,
  html[lang="en"] .rnd-page .content-head h2,
  html[lang="en"] .rnd-page .rnd-keypoints b,
  html[lang="en"] .rnd-page .rnd-keypoints p,
  html[lang="en"] .rnd-page .rnd-visual-grid b,
  html[lang="en"] .rnd-page .rnd-visual-grid span,
  html[lang="en"] .rnd-page .rnd-process b,
  html[lang="en"] .rnd-page .rnd-process p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  html[lang="en"] .tryout-page .page-hero-inner p,
  html[lang="en"] .tryout-page .split-copy p,
  html[lang="en"] .tryout-page .content-head h2,
  html[lang="en"] .tryout-page .tryout-keypoints b,
  html[lang="en"] .tryout-page .tryout-keypoints p,
  html[lang="en"] .tryout-page .tryout-machine-card b,
  html[lang="en"] .tryout-page .tryout-machine-card em,
  html[lang="en"] .tryout-page .tryout-flow b,
  html[lang="en"] .tryout-page .tryout-flow p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }

  html[lang="en"] .measurement-page .page-hero-inner p,
  html[lang="en"] .measurement-page .split-copy p,
  html[lang="en"] .measurement-page .content-head h2,
  html[lang="en"] .measurement-page .measurement-keypoints b,
  html[lang="en"] .measurement-page .measurement-keypoints p,
  html[lang="en"] .measurement-page .measurement-type-head b,
  html[lang="en"] .measurement-page .measurement-report-grid figcaption,
  html[lang="en"] .measurement-page .measurement-flow b,
  html[lang="en"] .measurement-page .measurement-flow p {
    word-break: break-all;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 540px) {
  .content-head h2,
  .split-copy h2,
  .contact-card h2 {
    max-width: calc(100vw - 32px);
    font-size: 30px;
    line-height: 1.18;
  }

  .contact-lines p,
  .equipment-row span {
    max-width: calc(100vw - 76px);
  }
}
