/* Design tokens aligned to Memmert (Inter, 16px base, 1.3 body, 96/48/24 side margins). */
:root {
  --ink: #191515;
  --muted: rgba(25, 21, 21, 0.6);
  --line: rgba(25, 21, 21, 0.15);
  --paper: #fff;
  --mist: #f3f3f1;
  --deep: #191515;
  --red: #e30715;
  --red-hover: #c20612;
  --wrap: 1320px;
  --gutter: 96px;
  --gap: 32px;
  --header: 5rem;
  --top: 2rem;
  --chrome: calc(var(--top) + var(--header));
  /* Memmert --website-padding-top / --margin-top-bottom-website-desktop */
  --space-section: 5.5rem; /* 88px */
  --space-block: 3rem; /* 48px */
  /* Memmert .c-hero-slider + --hero-slider-top */
  --hero-height: 51.7rem;
  --hero-pull: 9rem; /* 144px */
  /* Memmert media / CTA / logo / product-hero module heights */
  --quote-band-height: 34.8125rem;
  --solutions-band-height: 50.625rem;
  --logo-strip-pad-y: 6rem; /* 96px --margin-side-website-desktop */
  --logo-strip-viewport: 8rem;
  --product-hero-media-max: 31.5rem;
  --font: Inter, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --fs-body: 1rem;
  --lh-body: 1.3;
  --fs-h1: clamp(2.25rem, 5vw, 4rem);
  --fs-h2: clamp(1.5rem, 3.5vw, 3rem);
  --fs-h3: clamp(1.25rem, 2vw, 1.75rem);
  --fw-heading: 600;
  --radius-btn: 4px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 130px; font-size: 16px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, p, blockquote { margin: 0; }
h1, .h1 {
  font-size: var(--fs-h1);
  font-weight: var(--fw-heading);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
h2, .h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-heading);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
h3, .h3 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-heading);
  line-height: 1.2;
  letter-spacing: -0.01em;
}
p { line-height: var(--lh-body); }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { cursor: pointer; }
.skip { position: absolute; left: 16px; top: 0; z-index: 80; padding: 8px 12px; background: #fff; transform: translateY(calc(-100% - 8px)); }
.skip:focus { top: 12px; transform: none; }
.wrap { width: min(var(--wrap), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.kicker { color: var(--muted); font-size: 0.875rem; letter-spacing: 0.04em; margin-bottom: 0.625rem; }
.lede { max-width: 40rem; color: var(--muted); margin-top: 1rem; font-size: 1.125rem; line-height: var(--lh-body); }
/* Above the homepage hero (which pulls up under the header). Otherwise the
   hero steals clicks on the open product mega menu. */
.chrome { position: sticky; top: 0; z-index: 50; background: #fff; }
.topbar { height: var(--top); background: #3c3c3c; border-bottom: 0; font-size: 0.75rem; line-height: 1; color: #fff; }
.topbar-inner, .header-inner, .top-right, .topbar nav { display: flex; align-items: center; }
.topbar-inner { height: 100%; justify-content: space-between; gap: 24px; }
.top-left { min-width: 0; flex: 1; display: flex; align-items: center; height: 100%; }
.ticker { display: flex; align-items: center; height: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #fff; line-height: 1; }
.ticker-label { font-weight: 400; margin-right: 0.35em; }
.ticker a { color: inherit; }
.ticker a:hover { text-decoration: underline; }
.top-right { gap: 0; flex-shrink: 0; height: 100%; }
.service-top { display: flex; align-items: center; gap: 1.15rem; height: 100%; margin-right: 1.15rem; }
.service-top a { display: inline-flex; align-items: center; height: 100%; margin: 0; padding: 0; border: 0; color: #fff; line-height: 1; }
.service-top a:hover, .footer-legal a:hover, .mega a:hover { text-decoration: underline; }
.topbar a { margin-right: 0; color: #fff; }
.search-btn, .icon-btn, .burger { border: 0; background: transparent; padding: 0; color: #333; }
.search-btn { display: inline-flex; align-items: center; gap: 6px; height: 100%; font-size: 0.75rem; font-weight: 400; line-height: 1; cursor: pointer; min-height: auto; text-decoration: none; color: #fff; }
.lang-menu { position: relative; margin-left: 1.15rem; display: flex; align-items: center; height: 100%; }
.lang-menu summary { list-style: none; cursor: pointer; color: #fff; display: inline-flex; align-items: center; gap: 6px; height: 100%; font-size: 0.75rem; font-weight: 400; line-height: 1; min-height: 0; margin: 0; padding: 0; }
.lang-menu summary::-webkit-details-marker { display: none; }
.lang-flag { display: block; width: 20px; height: 14px; flex-shrink: 0; border-radius: 1px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.lang-chevron { display: block; flex-shrink: 0; opacity: .85; }
.lang-menu > div { position: absolute; right: 0; top: calc(100% + 8px); min-width: 168px; padding: 6px 0; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(0,0,0,.06); z-index: 70; }
.lang-menu a { display: flex; align-items: center; gap: 8px; margin: 0; padding: 7px 14px; color: var(--ink); font-size: 0.8125rem; }
.lang-menu a .lang-name { color: rgba(25, 21, 21, .62); }
.lang-menu a.is-current { font-weight: 600; }
.lang-menu a:hover { background: var(--mist); text-decoration: none; }
html[lang="zh-CN"] body { font-family: Inter, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif; }
.site-header { position: relative; height: var(--header); border-bottom: 1px solid var(--line); background: #fff; }
.header-inner { height: 100%; gap: 12px; }
.logo { display: flex; align-items: center; gap: 0; margin-right: auto; text-decoration: none; color: #093395; }
.logo-img {
  display: block;
  width: auto;
  height: 1.75rem;
  max-width: 9.5rem;
  object-fit: contain;
  object-position: left center;
  background: transparent;
}
.logo-img-on-dark { display: none; }
.logo-svg, .logo-mark, .logo strong, .logo small { display: none; }
#main-nav > ul { display: flex; align-items: stretch; height: var(--header); gap: 8px; }
#main-nav > ul > li { display: flex; align-items: center; }
#main-nav > ul > li > a { display: flex; align-items: center; height: 100%; padding: 0 12px; font-size: 1rem; font-weight: 400; line-height: 1.3; }
#main-nav > ul > li > a.is-current { box-shadow: inset 0 -2px 0 #111; }
.has-mega { position: static; }
.mega { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--mist); border-top: 1px solid var(--line); box-shadow: 0 18px 40px rgba(0,0,0,.08); padding: 28px 0 36px; z-index: 40; }
.mega.mega--products {
  padding: 0;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(44px);
  -webkit-backdrop-filter: blur(44px);
  border-top: 1px solid rgba(17, 17, 17, 0.06);
  box-shadow: none;
}
.product-mega {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  column-gap: 2.5rem;
  row-gap: 2.75rem;
  padding: 1.75rem 0 2rem;
}
.product-mega__column {
  min-width: 0;
  padding: 0;
  border: 0;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: 100%;
}
.product-mega__column h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.75rem;
  padding-top: 0.65rem;
  border-top: 2px solid var(--red);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  color: #191515;
  min-height: 0;
}
.product-mega__column h3::before { content: none; display: none; }
.product-mega__heading { color: inherit; text-decoration: none; font: inherit; }
.product-mega__heading:hover { text-decoration: underline; }
.product-mega__badge {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0.1rem 0.45rem;
  border-radius: 2px;
  background: var(--red);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.3;
}
.product-mega__items {
  display: grid;
  gap: 0.75rem;
  flex: 1 1 auto;
  align-content: start;
  margin: 0;
  padding: 0;
}
.product-mega__item {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  column-gap: 0.5rem;
  align-items: start;
  min-width: 0;
  padding: 0;
  color: #191515;
}
.product-mega__chevron {
  width: 12px;
  height: 12px;
  margin-top: 0.28rem;
  position: relative;
  flex-shrink: 0;
  pointer-events: none;
}
.product-mega__chevron::before {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid rgba(25, 21, 21, 0.35);
  border-top: 1.5px solid rgba(25, 21, 21, 0.35);
  transform: rotate(45deg);
  margin-left: 1px;
}
.product-mega__item:hover .product-mega__chevron::before,
.product-mega__item:focus-within .product-mega__chevron::before { border-color: #191515; }
.product-mega__copy {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}
.product-mega__name {
  display: inline;
  color: #191515;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none !important;
}
.product-mega__name:hover,
.product-mega__name:focus-visible {
  color: #191515;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}
.product-mega__new,
.product-row__new,
.pd-new {
  display: inline;
  margin-left: 0.35em;
  color: var(--red);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  vertical-align: baseline;
}
.product-row__new { font-size: 0.7em; }
.pd-new { font-size: 0.55em; }
.product-mega__series {
  display: block;
  margin: 0;
  color: rgba(25, 21, 21, 0.55);
  font-size: 0.8125rem;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.3;
}
.product-mega__series--note { color: rgba(25, 21, 21, 0.55); }
.product-mega__series-link {
  color: inherit;
  font: inherit;
  text-decoration: none !important;
  cursor: pointer;
}
.product-mega__series-link:hover,
.product-mega__series-link:focus-visible {
  color: #191515;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}
.product-mega__sep {
  color: rgba(25, 21, 21, 0.35);
  pointer-events: none;
}
.product-mega__checks {
  display: grid;
  gap: 0.35rem;
  margin: 14px 0 0;
  padding: 12px 12px;
  list-style: none;
  background: #f6f6f6;
  border-radius: 2px;
}
.product-mega__checks li {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  column-gap: 0.4rem;
  align-items: start;
  color: #444;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.product-mega__checks li span {
  color: var(--red);
  font-weight: 700;
}
.product-mega__custom {
  display: grid;
  gap: 0.75rem;
  flex: 1 1 auto;
  align-content: start;
}
.product-mega__custom-title {
  color: #191515;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
}
.product-mega__custom-title:hover { text-decoration: underline; }
.product-mega__custom-lead {
  margin: 0;
  color: rgba(25, 21, 21, 0.55);
  font-size: 0.8125rem;
  line-height: 1.3;
}
.product-mega__more {
  display: inline-block;
  margin-top: auto;
  flex: 0 0 auto;
  align-self: flex-start;
  padding: 1rem 0 0 calc(12px + 0.5rem);
  border-top: 0;
  color: #191515;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
}
.product-mega__more span {
  color: var(--red);
  margin-left: 0.3em;
  white-space: nowrap;
}
.product-mega__more:hover { color: #191515; text-decoration: underline; }
.mega--products a:hover { text-decoration: none; }
.has-mega:hover .mega, .has-mega:focus-within .mega { display: block; }
.mega-grid { display: grid; gap: 28px 40px; align-items: start; }
.mega-grid.cols-1 { grid-template-columns: 1fr; }
.mega-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mega-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mega-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega-col h3 { margin: 0 0 12px; font-size: 1.0625rem; font-weight: 700; letter-spacing: 0; color: var(--ink); line-height: 1.3; }
.mega-col ul { display: grid; gap: 2px; }
.mega-col a { display: block; padding: 6px 0; color: #666; text-decoration: none; }
.mega-col a:hover { color: var(--ink); text-decoration: none; }
.mega-item { display: grid; grid-template-columns: 12px minmax(0, 1fr); column-gap: 6px; align-items: baseline; }
.mega-chevron { width: 12px; height: 12px; position: relative; top: 1px; }
.mega-chevron::before { content: ""; display: block; width: 6px; height: 6px; border-right: 1.5px solid #999; border-top: 1.5px solid #999; transform: rotate(45deg); margin-left: 1px; }
.mega-copy { display: grid; gap: 1px; min-width: 0; }
.mega-label { color: var(--ink); font-size: 0.9375rem; font-weight: 400; line-height: 1.35; }
.mega-model { color: var(--muted); font-size: 0.8125rem; line-height: 1.3; }
.mega-new { margin-left: 6px; color: var(--red); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.burger { display: none; margin-left: 8px; width: 42px; height: 42px; }
.burger .bar { display: block; width: 18px; height: 1.5px; margin: 4px auto; background: currentColor; }
.hero {
  --hero-height: 51.7rem; /* Memmert .c-hero-slider desktop */
  position: relative;
  z-index: 0;
  min-height: var(--hero-height);
  height: var(--hero-height);
  margin-bottom: calc(-1 * var(--hero-pull));
  background: #111;
  color: #fff;
  overflow: hidden;
  transform: translateY(calc(-1 * var(--hero-pull)));
}
@media (max-width: 991.98px) {
  .hero { --hero-height: 30.625rem; }
}
@media (max-width: 575.98px) {
  .hero { --hero-height: 50.75rem; }
}
/* Mega hangs over the hero; keep hero from stealing those clicks. */
body.has-hero:has(.has-mega:hover) .hero,
body.has-hero:has(.has-mega:focus-within) .hero,
body.has-hero.nav-open .hero { pointer-events: none; }
.slide { display: none; position: absolute; inset: 0; height: 100%; align-items: flex-end; padding: 40px 0 56px; background: #111; }
.slide-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.slide-photo { background: center / cover no-repeat var(--img); }
.slide::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(to bottom, #000 0%, transparent 100%); mix-blend-mode: multiply; opacity: .5; pointer-events: none; z-index: 0; }
.slide.is-active { display: flex; z-index: 2; }
.slide .wrap { position: relative; z-index: 1; display: grid; justify-items: start; gap: 18px; width: min(52rem, 90vw); max-width: none; height: auto; margin: 0; margin-left: max(var(--gutter), calc((100% - var(--wrap)) / 2)); padding: 0; background: transparent; color: #fff; border-radius: 0; box-shadow: none; }
/* Latin titles run longer than Chinese; keep a shared readable default (was 6.75rem and overflowed EN). */
.slide h1 { max-width: min(52rem, 90vw); color: var(--title-color, #fff); opacity: var(--title-opacity, 1); font-size: var(--title-size, clamp(2.5rem, 4.8vw, 3.75rem)); font-weight: 600; letter-spacing: -0.03em; line-height: 1.12; text-wrap: balance; }
html[lang="zh-CN"] .slide h1 { font-size: var(--title-size, 3.5rem); line-height: 1.15; letter-spacing: -0.02em; }
.slide .sub { max-width: 36rem; margin: 0; color: var(--text-color, #fff); opacity: var(--text-opacity, 1); font-size: var(--text-size, 1.125rem); line-height: 1.4; }
.slide .btn { margin-top: 0; min-height: 3.5rem; padding-inline: 20px; background: var(--btn-bg, var(--red)); color: var(--btn-color, #fff); }
.slide .btn:hover { background: var(--red-hover); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; align-items: center; }
.slide .hero-actions .btn { margin-top: 0; }
.slide .hero-actions .btn-secondary {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,.85);
}
.slide .hero-actions .btn-secondary:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
}
.text-link { display: inline-flex; align-items: center; gap: 0.35em; margin-top: 18px; color: var(--ink); border-bottom: 1px solid rgba(227, 7, 21, .35); padding-bottom: 2px; font-weight: 500; transition: border-color 0.15s ease; }
.text-link::after { content: "→"; color: var(--red); font-weight: 400; }
.text-link:hover { border-bottom-color: var(--red); color: var(--ink); }
.hero-progress {
  position: absolute;
  /* Memmert .c-hero-slider__progress inset-top 144px */
  top: var(--hero-pull);
  left: 50%;
  right: auto;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(var(--wrap), calc(100% - 2 * var(--gutter)));
  height: 16px;
  padding: 0;
  transform: translateX(-50%);
}
.hero-arrows {
  position: absolute;
  /* Memmert .c-hero-slider__controls inset-top 154px */
  top: calc(var(--hero-pull) + 0.625rem);
  left: max(var(--gutter), calc((100% - min(var(--wrap), calc(100% - 2 * var(--gutter)))) / 2));
  z-index: 4;
  display: flex;
  align-items: center;
  height: 40px;
  gap: 0;
}
/* Memmert-style segment bar: equal flex segments for N slides (incl. 6) */
.bullets { display: flex; gap: 8px; width: 100%; }
.bullet {
  position: relative;
  height: 0.25rem;
  flex: 1 1 0;
  min-width: 0;
  border: 0;
  border-radius: 48px;
  background: rgba(255,255,255,.3);
  padding: 0;
  overflow: hidden;
  cursor: pointer;
}
.bullet__progress {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: #fff;
}
.bullet.is-active { background: rgba(255,255,255,.3); }
.bullet.is-active .bullet__progress {
  animation: hero-bullet-progress var(--hero-interval, 7s) linear forwards;
}
@keyframes hero-bullet-progress {
  from { width: 0; }
  to { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .bullet.is-active .bullet__progress { animation: none; width: 100%; }
}
.round {
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.round:hover,
.round:focus-visible {
  background: transparent;
  opacity: 0.75;
  outline: none;
}
.round svg { display: block; }
body.has-hero .chrome { position: sticky; top: -2rem; z-index: 100; background: transparent; }
body.has-hero .topbar { background: #3c3c3c; color: #fff; }
body.has-hero .ticker, body.has-hero .ticker a { color: #fff; }
body.has-hero .service-top a { color: #fff; border-left-color: transparent; }
body.has-hero .topbar a, body.has-hero .search-btn, body.has-hero .lang-menu summary { color: #fff; }
body.has-hero .lang-menu > div,
body.has-hero .lang-menu > div a { color: var(--ink); background: #fff; }
body.has-hero .lang-menu > div a .lang-name { color: rgba(25, 21, 21, .62); }
body.has-hero .lang-menu > div a:hover { background: var(--mist); color: var(--ink); text-decoration: none; }
body.has-hero .site-header { background: transparent; border-bottom: 0; color: #fff; }
body.has-hero #main-nav > ul > li > a { color: #fff; font-weight: 600; }
body.has-hero:not(.is-scrolled):not(.nav-open) .logo-img { display: none; }
body.has-hero:not(.is-scrolled):not(.nav-open) .logo-img-on-dark { display: block; }
body.has-hero #main-nav > ul > li > a.is-current { box-shadow: inset 0 -2px 0 #fff; }
body.has-hero .burger { color: #fff; }
body.has-hero .mega { background: var(--mist); }
body.has-hero .mega.mega--products { background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(44px); -webkit-backdrop-filter: blur(44px); box-shadow: none; border-top: 1px solid rgba(17, 17, 17, 0.06); }
body.has-hero .mega, body.has-hero .mega a { color: #666; }
body.has-hero .mega-col h3, body.has-hero .mega-label { color: var(--ink); }
body.has-hero .mega-model { color: var(--muted); }
body.has-hero .mega-new { color: var(--red); }
body.has-hero.is-scrolled .chrome, body.has-hero.nav-open .chrome { background: #fff; }
body.has-hero.is-scrolled #main-nav > ul > li > a.is-current,
body.has-hero.nav-open #main-nav > ul > li > a.is-current { box-shadow: inset 0 -2px 0 #111; }
body.has-hero.is-scrolled .topbar, body.has-hero.nav-open .topbar { background: #3c3c3c; color: #fff; }
body.has-hero.is-scrolled .ticker, body.has-hero.is-scrolled .ticker a,
body.has-hero.nav-open .ticker, body.has-hero.nav-open .ticker a { color: #fff; }
body.has-hero.is-scrolled .service-top a, body.has-hero.nav-open .service-top a { color: #fff; border-left-color: transparent; }
body.has-hero.is-scrolled .topbar a, body.has-hero.is-scrolled .search-btn, body.has-hero.is-scrolled .lang-menu summary,
body.has-hero.nav-open .topbar a, body.has-hero.nav-open .search-btn, body.has-hero.nav-open .lang-menu summary { color: #fff; }
body.has-hero.is-scrolled .site-header, body.has-hero.nav-open .site-header { background: #fff; border-bottom: 1px solid var(--line); color: var(--ink); }
body.has-hero.is-scrolled #main-nav > ul > li > a, body.has-hero.nav-open #main-nav > ul > li > a { color: var(--ink); }
body.has-hero.is-scrolled .logo-img,
body.has-hero.nav-open .logo-img { display: block; }
body.has-hero.is-scrolled .logo-img-on-dark,
body.has-hero.nav-open .logo-img-on-dark { display: none; }
body.has-hero.is-scrolled .burger, body.has-hero.nav-open .burger { color: #111; }
.section { padding: var(--space-section) 0; }
.section.tight { padding-top: 0; }
.section.tight-sm { padding-top: 0.75rem; }
/* Memmert threecolumn + website-padding-top */
.pillars {
  position: relative;
  z-index: 2;
  background: #fff;
  padding: var(--space-section) 0 var(--space-block);
}
.pillars-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; column-gap: clamp(2.5rem, 5vw, 4.5rem); }
.pillars-grid > * { background: transparent; border: 0; box-shadow: none; padding: 0; }

/* Partner / trust logo strip */
.logo-strip {
  position: relative;
  z-index: 2;
  background: #fff;
  padding: 3.5rem 0;
  border-bottom: 1px solid var(--line);
  opacity: 0.92;
}
.logo-strip .wrap {
  display: flex;
  justify-content: center;
}
.logo-strip__banner {
  display: block;
  width: 100%;
  max-width: 1080px;
  height: auto;
  object-fit: contain;
}
.logo-strip__list {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 1.5rem;
}
.logo-strip__item {
  margin: 0;
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 72px;
}
.logo-strip__item img {
  display: block;
  max-height: 64px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

/* Continuous scroll marquee — Memmert .c-logo-slider (padding-block 96px, viewport 8rem) */
.logo-strip--marquee {
  padding: var(--logo-strip-pad-y) 0;
}
.logo-strip--marquee .wrap {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  display: block;
}
.logo-strip__viewport {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.logo-strip--marquee .logo-strip__viewport {
  min-height: var(--logo-strip-viewport);
  display: flex;
  align-items: center;
}
.logo-strip__track {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 0;
  animation: logo-marquee 45s linear infinite;
}
.logo-strip--marquee:hover .logo-strip__track {
  animation-play-state: paused;
}
.logo-strip--marquee .logo-strip__list {
  flex-wrap: nowrap;
  width: max-content;
  justify-content: flex-start;
  gap: 0;
  padding: 0 0.5rem;
}
.logo-strip--marquee .logo-strip__item {
  flex: 0 0 auto;
  min-width: 0;
  padding: 0 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--logo-strip-viewport);
}
.logo-strip--marquee .logo-strip__item img {
  max-height: 72px;
  max-width: 210px;
  width: auto;
  height: auto;
}
@keyframes logo-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .logo-strip__track { animation: none; }
  .logo-strip--marquee .wrap {
    max-width: var(--wrap, 1320px);
    margin-inline: auto;
    padding-inline: var(--gutter, 24px);
  }
  .logo-strip--marquee .logo-strip__viewport {
    mask-image: none;
    -webkit-mask-image: none;
  }
  .logo-strip--marquee .logo-strip__track {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }
  .logo-strip--marquee .logo-strip__list[aria-hidden="true"] { display: none; }
  .logo-strip--marquee .logo-strip__list {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 1.5rem;
  }
}
@media (max-width: 720px) {
  .logo-strip:not(.logo-strip--marquee) {
    padding: 1.25rem 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .logo-strip:not(.logo-strip--marquee) .wrap {
    min-width: min(100%, 640px);
    justify-content: flex-start;
  }
  .logo-strip__banner {
    max-width: none;
    width: 640px;
  }
  .logo-strip--marquee .logo-strip__item { padding: 0 1.35rem; height: 7rem; }
  .logo-strip--marquee .logo-strip__item img { max-height: 56px; max-width: 160px; }
  .logo-strip--marquee .logo-strip__viewport { min-height: 7.5rem; }
  .logo-strip__track { animation-duration: 32s; }
}
.pillars h1, .section h2, .page-intro h1, .band h2, .cta h2, .feature h2, .articles-head {
  font-weight: var(--fw-heading);
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.pillars h1 { font-size: var(--fs-h3); margin-bottom: 0.75rem; }
html[lang="zh-CN"] .pillars h1 { font-size: var(--fs-h3); }
.pillars p { color: var(--muted); max-width: 28rem; margin: 0; font-size: 1rem; line-height: var(--lh-body); letter-spacing: 0; }
.feature-copy > p:not(.feature-type):not(.feature-pill), .band p, .cta p { color: var(--muted); max-width: 28rem; font-size: 1rem; line-height: var(--lh-body); }
/* Memmert key figures sit under threecolumn with ~48–88px vertical rhythm */
.stats-section {
  padding-top: var(--space-block);
  padding-bottom: var(--space-section);
}
.stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem;
  column-gap: 3rem;
  align-items: start;
}
.stats > .stat-item { display: none; } /* legacy flat layout unused */
.stat-col { min-width: 0; padding: 0; border: 0; }
.stat-col.is-empty { min-height: 1px; }
.stat-item { margin: 0; }
.stat-item .stat-value {
  margin: 0;
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.stat-item hr {
  display: block;
  width: 100%;
  height: 0;
  margin: 0.85rem 0 0.7rem;
  border: 0;
  border-top: 1px solid var(--line);
}
.stat-item .stat-label {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: var(--lh-body);
}
.stat-col .stat-item + .stat-item {
  margin-top: 2.25rem;
  padding-top: 0;
  border-top: 0;
}
.note { margin-top: 1.75rem; color: #8a8a8a; font-size: 13px; line-height: 1.5; max-width: 52rem; }
/* Quote band: white column to top/bottom edges, with two equal slits. */
.quote-band {
  --quote-slit: 0.55rem;   /* 上下对称细缝 */
  --quote-cap: 1.15rem;    /* 贴边白条 */
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  height: var(--quote-band-height);
  min-height: var(--quote-band-height);
  margin-block: 0;
  padding: 0;
  overflow: hidden;
  background: #c8c4be;
  border: 0;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
}
.quote-band__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.quote-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
  filter: none;
  transform: none;
}
/* Left white column — fills section height to the edges */
.quote-band__col {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  width: min(100%, var(--panel-width, 30rem));
  max-width: var(--panel-width, 30rem);
  margin: 0;
  margin-left: max(var(--gutter), calc((100% - var(--wrap)) / 2));
  /* Match band height so white reaches top/bottom edges */
  height: 100%;
  min-height: 0;
}
.quote-band__cap {
  flex: 0 0 var(--quote-cap);
  background: #fff;
}
.quote-band__slit {
  flex: 0 0 var(--quote-slit);
  background: transparent; /* 缝：露出背景图 */
}
.quote-band__panel {
  position: relative;
  box-sizing: border-box;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.85rem;
  margin: 0;
  background: #fff;
  padding: 1.5rem 2rem;
  border: 0;
  box-shadow: none;
  min-height: 0;
  overflow: hidden;
}
.quote-band--case {
  height: auto;
  min-height: 34.8125rem;
}
.quote-band--case .quote-band__col {
  width: min(100%, var(--panel-width, 34rem));
  max-width: var(--panel-width, 34rem);
  height: auto;
  align-self: stretch;
}
.quote-band--case .quote-band__panel {
  justify-content: flex-start;
  gap: 0.7rem;
  padding: 1.35rem 1.75rem 1.5rem;
  overflow: visible;
}
.quote-band--case .quote-band__mark {
  height: 1.35rem;
}
.quote-band--case h2 {
  font-size: clamp(1.45rem, 2vw, 1.85rem);
}
.quote-band--case .quote-band__facts {
  gap: 0.7rem;
}
.quote-band--case .quote-band__fact {
  gap: 0.2rem;
}
.quote-band--case .quote-band__fact p {
  font-size: 0.9rem;
  line-height: var(--lh-body);
}
.quote-band--case .quote-band__by {
  font-size: 0.92rem;
  margin-top: 0;
}
.quote-band--case .quote-band__cta {
  margin-top: 0.35rem;
  min-height: 2.75rem;
}
.quote-band__mark {
  width: auto;
  height: 1.65rem;
  max-width: 8.5rem;
  object-fit: contain;
  object-position: left center;
  margin: 0;
}
.panel-mark-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}
.panel-mark-link:hover {
  opacity: 0.85;
}
.quote-band h2 {
  font-size: clamp(1.6rem, 2.3vw, 2.15rem);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.02em;
  margin: 0;
  color: #191515;
}
.quote-band blockquote {
  position: relative;
  max-width: none;
  margin: 0;
  padding: 0;
  font-size: 1.0625rem;
  font-weight: 400;
  font-style: normal;
  line-height: var(--lh-body);
  color: #191515;
}
.quote-band__marks {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 2rem;
  line-height: 1;
  color: #191515;
}
.quote-band__facts {
  display: grid;
  gap: 0.95rem;
}
.quote-band__fact { display: grid; gap: 0.3rem; }
.quote-band__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8a8580;
}
.quote-band__fact p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #191515;
}
.quote-band__by {
  margin: 0.1rem 0 0;
  color: #191515;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
}
.quote-band__cta {
  margin-top: 0.55rem;
  align-self: start;
  width: var(--cta-width, auto);
  min-width: 10.5rem;
  min-height: 3rem;
  padding-inline: 1.35rem;
  border-radius: 2px;
}
/* Custom-solution band: content module + featured equipment */
.trio-band {
  display: grid;
  grid-template-columns: minmax(20rem, 34%) minmax(0, 1fr);
  min-height: clamp(22rem, 42vh, 28rem);
  margin-block: 0;
  overflow: hidden;
  background: #fff;
  border-block: 1px solid rgba(17, 17, 17, 0.08);
}
.trio-band__side {
  position: relative;
  display: block;
  min-height: 100%;
  overflow: hidden;
  text-decoration: none;
  color: #111;
  background: #fff;
}
.trio-band__side img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;
  transition: transform 0.45s ease;
}
.trio-band__side:hover img {
  transform: scale(1.03);
}
.trio-band__caption {
  position: absolute;
  left: 1.25rem;
  bottom: 1.25rem;
  z-index: 1;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #111;
}
.trio-band__side--right .trio-band__caption {
  left: auto;
  right: 1.25rem;
}
.trio-band__panel {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.15rem;
  background: #fff;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
}
.trio-band__mark {
  width: auto;
  height: 1.55rem;
  max-width: 8rem;
  object-fit: contain;
  object-position: left center;
  margin: 0;
}
.trio-band__panel h2 {
  margin: 0;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #191515;
}
.trio-band__panel p {
  margin: 0;
  max-width: 22rem;
  font-size: 1rem;
  line-height: var(--lh-body);
  color: #191515;
}
.trio-band__cta {
  margin-top: 0.35rem;
  align-self: start;
  width: auto;
  min-width: 10rem;
  border-radius: 2px;
}
.by { color: var(--muted); margin: 0; }
.section h2 { font-size: var(--fs-h2); margin-bottom: 1.25rem; }
html[lang="zh-CN"] .section h2 { font-size: var(--fs-h2); }
.section h3, .feature h3, .pd-highlight h3 { font-size: var(--fs-h3); line-height: 1.2; }
html[lang="zh-CN"] .section h3 { font-size: var(--fs-h3); }
.articles { padding: var(--space-section) 0; }
.articles-head {
  margin: 0 0 2.75rem;
  max-width: 48rem;
  color: var(--ink);
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem 2rem;
  margin: 0 0 2.25rem;
  align-items: stretch;
}
.news-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  background: transparent;
}
.news-card[hidden] { display: none !important; }
.news-card__image {
  margin: 0 0 0.75rem;
  overflow: hidden;
  border-radius: 0;
  background: transparent;
}
.news-card__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: 0;
  background: transparent;
}
.news-card__title {
  margin: 0 0 0.4rem;
  color: var(--ink);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-card__link {
  color: inherit;
  text-decoration: none;
}
.news-card__link::after { content: ""; position: absolute; inset: 0; }
.news-card:hover .news-card__link,
.news-card:focus-within .news-card__link {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}
.news-card__footer {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
}
.news-card__pub-date { margin: 0; }
.news-card__category {
  margin: 0 0 0 0.35em;
  padding: 0 0 0 0.55em;
  border: 0;
  border-left: 1px solid currentColor;
}
.news-card__category--solo {
  margin-left: 0;
  padding-left: 0;
  border-left: 0;
}
.news-card__category::before { content: none; }
/* Ghost more — must beat .btn-secondary’s solid ink border */
.btn.btn-secondary.news-more,
.btn.news-more,
.news-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin: 0;
  min-height: 2.75rem;
  padding: 0 1.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-btn);
  background: transparent;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  box-shadow: none;
}
.btn.btn-secondary.news-more:hover,
.btn.news-more:hover,
.news-more:hover {
  background: transparent;
  border-color: var(--ink);
  color: var(--ink);
}
.product a:hover h3, .download:hover strong { text-decoration: underline; }
.feature { padding: var(--space-section) 0; background: #fff; }
.feature.is-mist { background: var(--mist); }
.feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.feature.is-reverse .feature-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.95fr);
}
.feature.is-reverse .feature-visual { order: -1; }
.feature-copy {
  display: grid;
  gap: 1rem;
  align-content: center;
  justify-items: start;
}
.badges { display: flex; gap: 0.65rem; flex-wrap: wrap; margin: 0; }
.product-badge {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.85rem;
  border-radius: 4px;
  background: #ececec;
  color: #444;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
}
.feature.is-mist .product-badge {
  background: transparent;
  border: 1px solid #c4c4c4;
  border-radius: 999px;
  color: #191515;
  font-weight: 600;
}
.feature-pill {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0.35rem 0.9rem;
  border: 1px solid #c4c4c4;
  border-radius: 999px;
  color: #191515;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  background: transparent;
}
.feature-type {
  margin: 0;
  color: #555;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.4;
}
.feature h2 {
  margin: 0;
  font-size: clamp(1.85rem, 3.2vw, 2.75rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #111;
  max-width: 14ch;
}
.feature-copy > p:not(.feature-type):not(.feature-pill) {
  margin: 0;
  max-width: 34rem;
  color: #555;
  font-size: 1rem;
  line-height: 1.45;
}
.feature-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 0.5rem;
}
.feature-actions .btn {
  margin-top: 0;
  min-height: 2.85rem;
  padding: 0 1.35rem;
  border-radius: 4px;
  font-size: 0.95rem;
  font-weight: 600;
}
.feature-actions .btn-secondary {
  background: #fff;
  color: #111;
  border: 1px solid #c8c8c8;
}
.feature-actions .btn-secondary:hover {
  background: #fff;
  border-color: #111;
}
.feature-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  max-height: none;
  overflow: visible;
  background: transparent;
}
.feature.is-reverse .feature-visual {
  justify-content: flex-start;
}
.feature-visual img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 34rem;
  object-fit: contain;
  display: block;
}
.feature-media-badges {
  position: absolute;
  left: 0;
  bottom: 12%;
  z-index: 2;
  display: grid;
  gap: 0.4rem;
  justify-items: start;
  pointer-events: none;
}
.feature-media-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.15rem;
  padding: 0.35rem 0.85rem;
  border-radius: 2px;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
.feature-media-badge.is-ink { background: #191515; }
.feature-media-badge.is-green { background: #2e9b3c; }
.feature-media-badge.is-red { background: var(--red); }
.feature-media-badge.is-gray { background: #6b6b6b; }
.story-side { display: grid; gap: 18px; align-content: start; }
.story-visual { min-height: 280px; background: var(--mist) var(--img) center / cover no-repeat; }
.case.has-photo { grid-template-columns: 100px 1fr 240px; align-items: center; }
.case-photo { height: 150px; background: #eee var(--img) center / cover no-repeat; }
.honors { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 8px 0 28px; }
.honors figure { margin: 0; background: var(--mist); }
.honors img { width: 100%; height: 220px; object-fit: contain; background: var(--mist); }
.honors figcaption { padding: 8px 2px 0; color: var(--muted); font-size: 13px; }
.band { background: var(--mist); padding: var(--space-section) 0; }
.band h2 { font-size: var(--fs-h2); margin-bottom: 0.75rem; }
/* Memmert .cta-content-element padding-block: website-padding-top (88px) */
.cta { padding: var(--space-section) 0; }
.cta h2 { font-size: var(--fs-h1); margin-bottom: 0.75rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; margin-top: 1.25rem; padding: 0 1.25rem; border: 0; border-radius: var(--radius-btn); background: var(--red); color: #fff; font-size: 1.125rem; font-weight: 600; line-height: 1; text-decoration: none; transition: background-color 0.15s ease; box-shadow: none; }
.btn:hover { background: var(--red-hover); color: #fff; }
.btn-secondary { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.btn-secondary:hover { background: var(--mist); color: var(--ink); border-color: var(--ink); }
.btn.btn-secondary.news-more,
.btn.news-more {
  border-color: var(--line);
  font-weight: 400;
  font-size: 1rem;
  margin-top: 0;
  background: transparent;
}
.btn.btn-secondary.news-more:hover,
.btn.news-more:hover {
  background: transparent;
  border-color: var(--ink);
}
.btn-dark { background: #111; color: #fff; }
.btn-dark:hover { background: #333; }
.page-intro { padding: var(--space-section) 0 0.5rem; }
.page-intro h1 { font-size: var(--fs-h1); max-width: 48rem; }
.page-products .page-intro { display: none; }
.page-service .page-intro { padding: 3.25rem 0 0.75rem; }
.page-service .page-intro h1 {
  font-size: clamp(2rem, 3.6vw, 2.75rem);
  letter-spacing: -0.02em;
  max-width: 40rem;
}
.page-service .page-intro .lede {
  max-width: 38rem;
  margin-top: 0.85rem;
  font-size: 1.05rem;
}
.crumbs { color: #888; font-size: 13px; margin-bottom: 16px; }
.crumbs a:hover { text-decoration: underline; }
/* Product spotlight — Memmert c-product-hero (withMargin): media max-height 31.5rem, top spacing 48px */
.product-spotlight { padding: var(--space-block) 0 0; }
.spotlight-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  /* Vertically center both columns inside the mist module */
  align-items: center;
  min-height: 0;
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(2rem, 5vw, 5rem);
  background: var(--mist);
  border: 1px solid rgba(25, 21, 21, 0.15);
  border-radius: 4px;
  overflow: hidden;
}
.spotlight-media {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 100%;
  min-height: 0;
  max-height: var(--product-hero-media-max);
  overflow: visible;
  position: relative;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
}
.spotlight-image,
.spotlight-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: var(--product-hero-media-max);
  object-fit: contain;
  object-position: center center;
  position: relative;
  top: 0;
  will-change: transform;
  background: transparent;
  /* Memmert-style floating cutout on the mist panel */
  filter: drop-shadow(0 18px 24px rgba(17, 17, 17, 0.12));
}
.spotlight-media--empty {
  min-height: 16rem;
  background: var(--mist);
}
.spotlight-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1.5rem;
  min-width: 0;
  height: auto;
  align-self: center;
  padding: 0 0 0 clamp(1.5rem, 3vw, 3rem);
  box-sizing: border-box;
  will-change: transform;
}
.spotlight-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 3rem;
  padding: 9px 16px;
  border: 1px solid rgba(25, 21, 21, 0.15);
  border-radius: 32px;
  background: #fff;
  color: #191515;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.3;
}
.spotlight-badge[hidden] { display: none !important; }
.spotlight-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  width: 100%;
}
.spotlight-title,
.spotlight-body h2 {
  margin: 0;
  color: #191515;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.spotlight-desc,
.spotlight-body p {
  margin: 0;
  max-width: 34rem;
  color: rgba(25, 21, 21, 0.6);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.3;
}
.spotlight-desc[hidden] { display: none !important; }
.spotlight-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0;
  width: 100%;
}
.spotlight-actions .btn {
  margin-top: 0;
  min-height: 3rem;
  padding: 0 1.25rem;
  border-radius: 4px;
  font-size: 1.125rem;
  font-weight: 600;
}
.spotlight-actions .btn-secondary {
  background: #fff;
  color: #191515;
  border: 1px solid rgba(25, 21, 21, 0.15);
}
.spotlight-actions .btn-secondary:hover {
  background: rgba(25, 21, 21, 0.04);
  border-color: rgba(25, 21, 21, 0.15);
  color: #191515;
}

/* Memmert: image slides in from left; copy (incl. description) from bottom */
@keyframes spotlight-slide-x {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}
@keyframes spotlight-slide-y {
  from { transform: translateY(30%); }
  to { transform: translateY(0); }
}
@keyframes spotlight-slide-x-mobile {
  from { transform: translateX(-10%); }
  to { transform: translateX(0); }
}
@keyframes spotlight-slide-y-mobile {
  from { transform: translateY(10%); }
  to { transform: translateY(0); }
}
.spotlight-card.is-animating .spotlight-image {
  animation: spotlight-slide-x 600ms cubic-bezier(0.62, 0.16, 0.13, 1.01) both;
}
.spotlight-card.is-animating .spotlight-body {
  animation: spotlight-slide-y 600ms cubic-bezier(0.62, 0.16, 0.13, 1.01) both;
}
@media (prefers-reduced-motion: reduce) {
  .spotlight-card.is-animating .spotlight-image,
  .spotlight-card.is-animating .spotlight-body { animation: none; }
}
.catalog-section { padding-top: 0; padding-bottom: 2rem; }
.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0;
  padding: 2rem 0 0.5rem;
  border-bottom: 0;
}
.catalog-filters .catalog-count {
  margin: 0 0 0 auto;
  color: rgba(25, 21, 21, 0.45);
  font-size: 0.9375rem;
}
.catalog-filters .filter-clear {
  margin-left: 0.5rem;
  color: rgba(25, 21, 21, 0.55);
}
.filter-label {
  color: rgba(25, 21, 21, 0.6);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
}
.filter-label::after { content: none; }
.filter-dd { position: relative; }
.filter-dd > summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0.35rem 0.5rem;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  color: #191515;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.4;
}
.filter-dd > summary::-webkit-details-marker { display: none; }
.filter-dd > summary svg {
  flex: 0 0 auto;
  color: #666;
  transition: transform 0.15s ease;
}
.filter-dd[open] > summary {
  color: #111;
  font-weight: 600;
}
.filter-dd[open] > summary svg { transform: rotate(180deg); }
.filter-panel {
  position: absolute;
  top: calc(100% + 14px);
  left: 0;
  z-index: 8;
  min-width: 220px;
  padding: 0;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 2px;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.filter-options {
  display: grid;
  gap: 0;
  padding: 14px 16px 10px;
}
.filter-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  color: #222;
  font-size: 0.95rem;
  font-weight: 400;
  cursor: pointer;
  user-select: none;
}
.filter-opt input {
  appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 auto;
  border: 1.5px solid #bbb;
  border-radius: 2px;
  background: #fff;
  cursor: pointer;
}
.filter-opt input:checked {
  border-color: #111;
  background:
    linear-gradient(#111, #111) center / 8px 8px no-repeat,
    #fff;
  box-shadow: inset 0 0 0 2px #fff;
}
.filter-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px 14px;
  border-top: 1px solid #ececec;
}
.filter-reset {
  border: 0;
  background: transparent;
  padding: 0;
  color: #777;
  font-size: 0.95rem;
  cursor: pointer;
}
.filter-reset:hover { color: #111; }
.filter-apply {
  border: 0;
  border-radius: 4px;
  background: var(--red);
  color: #fff;
  min-height: 2.25rem;
  padding: 0 18px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
}
.filter-apply:hover { background: var(--red-hover); }
.catalog-anchor {
  position: relative;
  top: -1px;
  display: block;
  height: 0;
  overflow: hidden;
}
.pd-intro { padding-bottom: 0; }
.pd-hero { padding-top: 12px; }
.pd-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
}
.pd-hero-media {
  min-height: 420px;
  border-radius: 8px;
  background-color: transparent;
  background-image: var(--img);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 18px 24px rgba(17, 17, 17, 0.12));
}
.pd-hero-grid--no-image { grid-template-columns: minmax(0, 1fr); }
.pd-hero-body { display: grid; justify-items: start; gap: 16px; }
.pd-kicker {
  margin: 0;
  color: #888;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pd-hero-body h1 {
  margin: 0;
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.pd-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  margin-top: 8px;
}
.pd-actions .btn,
.pd-actions .btn-secondary { margin-top: 0; }
.pd-actions .text-link { margin-top: 0; }
.pd-highlights h2,
.pd-overview h2,
.pd-related-section h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 600;
  margin-bottom: 22px;
}
.pd-highlight-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.pd-highlight {
  padding-top: 18px;
  border-top: 2px solid #111;
}
.pd-highlight h3 {
  margin: 0 0 10px;
  font-size: 1.35rem;
  font-weight: 600;
}
.pd-highlight p {
  margin: 0;
  color: var(--muted);
  line-height: var(--lh-body);
}
.pd-overview-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 48px;
  align-items: start;
}
.pd-overview p + p { margin-top: 14px; }
.pd-specs {
  display: grid;
  gap: 14px;
  margin-bottom: 22px;
}
.pd-spec {
  display: grid;
  gap: 4px;
  padding-bottom: 12px;
  border-bottom: 1px solid #ececec;
}
.pd-spec strong {
  color: #888;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pd-spec span {
  color: #111;
  font-size: 1.125rem;
  font-weight: 600;
}
.pd-tags { justify-content: flex-start; }
.pd-related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.pd-related {
  display: grid;
  gap: 12px;
  color: inherit;
  text-decoration: none;
}
.pd-related:hover strong { color: var(--red); }
.pd-related-media {
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  background-color: transparent;
  background-image: var(--img);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 10px 14px rgba(17, 17, 17, 0.1));
}
.pd-related-copy { display: grid; gap: 4px; }
.pd-related-copy strong { font-size: 1rem; font-weight: 600; }
.pd-related-copy em { color: #888; font-style: normal; font-size: 0.875rem; }
.pd-cta { padding-top: 64px; }
/* Memmert-style product list: full-width rows, not a card grid. */
.product-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 1.5rem;
  padding: 0 0 3rem;
  border-top: 0;
}
.product-row {
  position: relative;
  display: grid;
  grid-template-columns: clamp(9.375rem, 15vw, 13.4375rem) minmax(0, 1fr) minmax(0, 1fr) 1.5rem;
  column-gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
  min-width: 0;
  padding: 1.5rem 0;
  border: 0;
  border-bottom: 1px solid rgba(25, 21, 21, 0.15);
  color: inherit;
  text-decoration: none;
  background: transparent;
  transition: background-color 0.15s ease;
}
.product-row[hidden] { display: none !important; }
.product-row:hover { background: transparent; }
.product-row.is-spotlight .product-copy strong { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.product-row:hover .product-copy strong { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.product-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  height: auto;
  align-self: end;
  border-radius: 0;
  background-color: transparent;
  background-image: var(--img);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.25s ease;
  transform-origin: center;
  filter: drop-shadow(0 10px 14px rgba(17, 17, 17, 0.1));
}
.product-thumb--empty { background: var(--mist); filter: none; }
.product-row:hover .product-thumb { transform: scale(1.02); }
.product-copy {
  display: grid;
  gap: 0.5rem;
  min-width: 0;
  align-content: center;
  max-width: 25rem;
  padding-right: 0.5rem;
}
.product-copy strong {
  color: var(--ink);
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--lh-body);
}
.product-row__blurb,
.product-copy span {
  color: var(--muted);
  font-size: 1rem;
  line-height: var(--lh-body);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.product-tags li {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  min-height: 0;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(25, 21, 21, 0.15);
  border-radius: 32px;
  background: transparent;
  color: #191515;
  font-size: 0.875rem;
  line-height: 1.2;
  white-space: nowrap;
}
.tag-ico { display: inline-flex; color: #666; }
.tag-ico svg { width: 14px; height: 14px; }
.product-go {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0;
  border-radius: 0;
  background: transparent;
  color: #bbb;
  box-shadow: none;
}
.product-row:hover .product-go { color: #666; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.toolbar { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin: 28px 0; flex-wrap: wrap; }
.filters { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.filters button { border: 0; background: transparent; padding: 6px 0; color: #444; border-bottom: 1px solid transparent; }
.filters button.is-active { color: #111; border-bottom-color: #111; }
.catalog-group { margin-top: 36px; }
.catalog-group h2 { font-size: 28px; font-weight: 500; margin-bottom: 18px; }
.product-grid, .industries, .cards { display: grid; gap: 28px 24px; }
.product-grid { grid-template-columns: repeat(3, 1fr); }
.product-fig { height: 220px; margin-bottom: 16px; border-radius: 4px; background: #f4f4f4 var(--img) center / contain no-repeat; }
.product h3, .industry h3, .cards h3 { font-size: 1.25rem; font-weight: 500; letter-spacing: -0.02em; }
.product p, .industry p, .cards p, .step p, .faq p { color: var(--muted); }
.card-meta { margin: 0.35rem 0 0; font-size: 0.875rem; color: var(--muted); }
.cards article .text-link { display: inline-block; margin-top: 0.85rem; }
.product .kicker { margin: 0 0 4px; }
.empty { color: var(--muted); }
.industries { grid-template-columns: repeat(3, 1fr); }
.industry { padding-top: 16px; border-top: 1px solid #111; }
.idx { display: block; margin-bottom: 12px; color: #888; font-size: 13px; letter-spacing: 0.08em; }
.case { display: grid; grid-template-columns: 88px 1fr; gap: 20px; padding: 26px 0; border-top: 1px solid var(--line); }
.cases .case:last-child { border-bottom: 1px solid var(--line); }
.case h3 { font-size: 26px; font-weight: 500; margin-bottom: 8px; }
.story { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 48px; }
.story h2 { font-size: clamp(32px, 3vw, 44px); margin-bottom: 16px; }
.story p + p { margin-top: 14px; }
.story-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.story-stats strong { display: block; font-size: 32px; font-weight: 500; }
.story-stats span { color: var(--muted); }
.timeline li, .download { display: grid; grid-template-columns: 88px 1fr; gap: 22px; padding: 22px 0; border-top: 1px solid var(--line); }
.download { grid-template-columns: 1fr auto; align-items: center; }
.timeline h3 { font-size: 22px; font-weight: 500; }
.timeline p, .download span { color: var(--muted); }
.chain, .steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin-top: 1.5rem; }
.steps { grid-template-columns: repeat(5, 1fr); }
.chain li, .step { border-top: 1px solid #111; padding-top: 14px; font-size: 1rem; font-weight: 500; line-height: 1.35; }
.chain span, .step em { display: block; margin-bottom: 10px; color: #888; font-style: normal; font-size: 12px; letter-spacing: 0.06em; }
.cards { grid-template-columns: repeat(3, 1fr); }
.creds { display: flex; flex-wrap: wrap; gap: 8px; }
.creds li { padding: 8px 12px; border: 0; background: var(--mist); font-size: 14px; }
.faq details, .prose details { border-top: 1px solid var(--line); padding: 16px 0; }
.faq summary, .prose summary { cursor: pointer; font-size: 18px; font-weight: 500; }
.contact-desk {
  display: grid;
  grid-template-columns: minmax(260px, 22vw) minmax(0, 1fr);
  /* Memmert contacts block ≈ viewport minus header chrome */
  height: calc(100svh - 5rem);
  min-height: 36rem;
  max-height: 58rem;
  background: #f4f4f4;
  border-bottom: 0;
}
.contact-side {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  min-width: 0;
  padding: 2.25rem 1.5rem 2.75rem 1.75rem;
  background: #f4f4f4;
  overflow: auto;
  border-right: 0;
}
.contact-side h1 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.65rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: #191515;
}
.contact-lead {
  display: none;
}
.contact-search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 6px;
  background: #e9e9e9;
}
.contact-search-icon {
  width: 16px;
  height: 16px;
  flex: none;
  border: 1.6px solid #666;
  border-radius: 50%;
  position: relative;
}
.contact-search-icon::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 1.6px;
  background: #666;
  right: -5px;
  bottom: -1px;
  transform: rotate(45deg);
  transform-origin: left center;
}
.contact-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 12px 0;
  outline: none;
  font-size: 15px;
  color: #333;
}
.contact-search input::placeholder { color: #888; }
.contact-regions { margin-top: 2px; }
.contact-region {
  border: 0;
  border-top: 1px solid rgba(17, 17, 17, 0.12);
  padding: 0;
  margin: 0;
}
.contact-region:last-child { border-bottom: 1px solid rgba(17, 17, 17, 0.12); }
.contact-region summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  list-style: none;
  cursor: pointer;
  padding: 0.95rem 0;
  color: #191515;
}
.contact-region summary::-webkit-details-marker { display: none; }
.contact-region-head {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}
.contact-region-title {
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
}
.contact-region-preview {
  font-size: 0.86rem;
  font-weight: 400;
  line-height: 1.4;
  color: #777;
}
.contact-chevron {
  width: 10px;
  height: 10px;
  border-right: 1.6px solid #111;
  border-bottom: 1.6px solid #111;
  transform: rotate(45deg);
  transition: transform .18s ease;
  flex: none;
  margin-top: 0.45rem;
}
.contact-region[open] .contact-chevron {
  transform: rotate(225deg);
  margin-top: 0.7rem;
}
.contact-region-body { padding: 0 0 1rem; }
.contact-office + .contact-office {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(25, 21, 21, .08);
}
.contact-office h3 {
  margin: 0 0 6px;
  font-size: 0.98rem;
  font-weight: 600;
}
.contact-office-body {
  display: grid;
  gap: 4px;
  color: #6a6a6a;
  font-size: 0.9rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.contact-office-body a {
  color: var(--ink);
  width: fit-content;
  max-width: 100%;
  border-bottom: 1px solid transparent;
}
.contact-office-body a:hover { border-bottom-color: #111; }
.contact-office.is-active h3 { color: var(--red); }
.contact-office.is-active h3:empty + .contact-office-body > :first-child {
  color: var(--red);
  font-weight: 600;
}
.contact-office.is-hidden { display: none; }
.contact-region.is-empty { display: none; }
.contact-map {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  height: 100%;
  /* Keep Americas / Australia pins inside; leave room for the float dock on the right. */
  padding: 1.35rem 4.75rem 1.35rem 1.75rem;
  background: #f4f4f4;
  overflow: hidden;
}
.contact-map-stage {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  aspect-ratio: 1200 / 567.0;
  flex: none;
  transform: none;
}
.contact-map-art {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  user-select: none;
}
.contact-countries { pointer-events: auto; }
.contact-country {
  fill: #cfcfcb;
  stroke: #f4f4f4;
  stroke-width: 0.35;
  cursor: pointer;
  transition: fill 0.15s ease;
}
.contact-country:hover,
.contact-country.is-hover {
  fill: #bdbdb8;
}
.contact-country.has-office {
  fill: #c4c4c0;
}
.contact-country.has-office:hover,
.contact-country.has-office.is-active,
.contact-country.is-active {
  fill: #a8a8a4;
}
.contact-map-tip {
  position: absolute;
  z-index: 5;
  min-width: 220px;
  max-width: min(320px, 70vw);
  padding: 14px 16px;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(0,0,0,.12);
  color: #222;
  pointer-events: none;
}
.contact-map-tip[hidden] { display: none !important; }
.contact-map-tip strong {
  display: block;
  margin-bottom: 8px;
  font-size: 1rem;
  font-weight: 700;
}
.contact-map-tip .tip-office + .tip-office {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #eee;
}
.contact-map-tip .tip-office b {
  display: block;
  font-size: 0.92rem;
}
.contact-map-tip .tip-office span,
.contact-map-tip .tip-office a {
  display: block;
  color: #666;
  font-size: 0.82rem;
  line-height: var(--lh-body);
  word-break: break-word;
}
.contact-map-tip .tip-office a { color: #222; width: fit-content; }
.contact-map-tip .tip-empty {
  color: #888;
  font-size: 0.85rem;
}
.contact-pin {
  position: absolute;
  z-index: 4;
  width: 12px;
  height: 12px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 3px rgba(227, 7, 21, 0.18);
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.contact-pin:hover,
.contact-pin.is-active {
  transform: translate(-50%, -50%) scale(1.3);
  box-shadow: 0 0 0 10px rgba(227, 7, 21, .16);
}
.solutions-band {
  --solutions-slit: 0.55rem; /* 上下对称细缝，露出背景 */
  --solutions-cap: 1.15rem;  /* 贴边白条，与 Contact us 一致 */
  position: relative;
  isolation: isolate;
  height: var(--solutions-band-height);
  min-height: var(--solutions-band-height);
  overflow: hidden;
  background: #111;
}
.solutions-band__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.solutions-band__media img,
.solutions-band__media .solutions-band__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
}
.solutions-band__video {
  pointer-events: none;
}
.solutions-band__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: inherit;
  margin-inline: 0;
  padding: 0;
  padding-left: max(var(--gutter), calc((100% - var(--wrap)) / 2));
}
.solutions-band__col {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  width: min(100%, var(--panel-width, 28rem));
  max-width: var(--panel-width, 28rem);
  min-height: inherit;
  margin-left: 0;
}
.solutions-band__cap {
  flex: 0 0 var(--solutions-cap);
  background: #fff;
}
.solutions-band__slit {
  flex: 0 0 var(--solutions-slit);
  background: transparent;
}
.solutions-band__card {
  box-sizing: border-box;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 1.15rem;
  width: 100%;
  min-height: 0;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  background: #fff;
  box-shadow: none;
}
.solutions-band__mark {
  width: auto;
  height: 1.65rem;
  max-width: 8.5rem;
  object-fit: contain;
  object-position: left center;
  margin: 0;
}
.solutions-band__card h2 {
  margin: 0;
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #111;
}
.solutions-band__card p {
  margin: 0;
  max-width: 24rem;
  font-size: 1.02rem;
  line-height: var(--lh-body);
  color: #222;
}
.solutions-band__cta {
  margin-top: 0.35rem;
  min-width: 10rem;
  width: var(--cta-width, auto);
  min-height: 2.85rem;
  border-radius: 3px;
  font-size: 0.95rem;
  text-transform: none;
}
.solutions-band--split {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: stretch;
  min-height: clamp(22rem, 40vh, 28rem);
  background: #fff;
}
.solutions-band--split .solutions-band__media {
  position: relative;
  inset: auto;
  min-height: 100%;
  background: #f0f0f0;
}
.solutions-band--split .solutions-band__media img {
  object-position: center;
}
.solutions-band--split .solutions-band__inner {
  width: auto;
  max-width: none;
  margin: 0;
  min-height: 100%;
  padding: clamp(2.25rem, 4.5vw, 3.5rem) clamp(1.75rem, 4vw, 3.25rem);
  align-items: center;
}
.solutions-band--split .solutions-band__card {
  width: 100%;
  max-width: 28rem;
  padding: 0;
  box-shadow: none;
}
.contact-invite.quote-band {
  height: var(--quote-band-height);
  min-height: var(--quote-band-height);
}
.contact-invite .quote-band__col {
  height: 100%;
  min-height: 0;
}
.contact-invite .quote-band__media img {
  object-position: center right;
}
.contact-invite .quote-band__panel p {
  margin: 0;
  max-width: 24rem;
  font-size: 1.0625rem;
  line-height: var(--lh-body);
  color: #191515;
}
.contact-inquiry-cta {
  background: #fff;
  padding: var(--space-section) 0;
  border-top: 1px solid rgba(17, 17, 17, 0.06);
}
.contact-inquiry-cta__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
}
.contact-inquiry-cta__copy {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  max-width: 36rem;
}
.contact-inquiry-cta__copy h2 {
  margin: 0;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #191515;
}
.contact-inquiry-cta__copy p {
  margin: 0;
  color: #666;
  font-size: 1rem;
  line-height: var(--lh-body);
}
.inquiry-page {
  background: #fff;
  padding: 2.75rem 0 5rem;
}
.inquiry-page.section { padding-top: 2.75rem; padding-bottom: 5rem; }
.inquiry-page__wrap {
  width: 100%;
  max-width: 44rem;
  margin-inline: auto;
}
.inquiry-page__title {
  margin: 0 0 1.75rem;
  font-size: clamp(1.75rem, 2.8vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: #191515;
}
.inquiry-page .crumbs {
  margin: 0 0 0.85rem;
  color: #888;
  font-size: 0.82rem;
  line-height: 1.4;
}
.inquiry-intro {
  margin: -0.35rem 0 1.75rem;
  display: grid;
  gap: 0.85rem;
}
.inquiry-intro__lead {
  margin: 0;
  color: #444;
  font-size: 1.02rem;
  line-height: 1.65;
}
.inquiry-intro__need {
  margin: 0;
  padding: 0.95rem 1.1rem;
  background: #f7f7f7;
  border-left: 3px solid var(--red);
}
.inquiry-intro__need strong {
  display: block;
  margin-bottom: 0.45rem;
  color: #191515;
  font-size: 0.95rem;
}
.inquiry-intro__need ul {
  margin: 0;
  padding-left: 1.15rem;
  color: #444;
  font-size: 0.92rem;
  line-height: var(--lh-body);
}
.inquiry-intro__need li + li { margin-top: 0.2rem; }
.inquiry-intro__hint {
  margin: 0;
  color: #666;
  font-size: 0.9rem;
  line-height: 1.5;
}
.inquiry-intro__back { margin: 0.15rem 0 0; }
.inquiry-form {
  display: grid;
  gap: 0;
}
.inquiry-form__body {
  display: grid;
  gap: 2.25rem;
}
.inquiry-section {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  min-inline-size: 0;
}
.inquiry-section > legend {
  display: block;
  width: 100%;
  margin: 0 0 1rem;
  padding: 0;
  color: #191515;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  float: none;
}
.inquiry-products {
  display: grid;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
}
.inquiry-products__count {
  margin: 0 0 0.35rem;
  color: #191515;
  font-size: 1rem;
  font-weight: 400;
}
.inquiry-products__count strong { color: #191515; font-weight: 600; }
.inquiry-products__empty {
  margin: 0.75rem 0 0;
  color: #666;
  font-size: 0.92rem;
  line-height: 1.5;
}
.inquiry-products__browse { margin: 0.35rem 0 0; }
.inquiry-products__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #d8d8d8;
}
.inquiry-products__list li {
  display: grid;
  grid-template-columns: 4.75rem minmax(0, 1fr) 2rem;
  align-items: center;
  gap: 0 1.15rem;
  padding: 0.9rem 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #d8d8d8;
}
.inquiry-products__thumb {
  display: block;
  width: 4.75rem;
  aspect-ratio: 1;
  background: #f3f3f3 var(--img) center / contain no-repeat;
  text-decoration: none;
}
.inquiry-products__thumb--empty { background-color: #efefef; }
.inquiry-products__name {
  color: #191515;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.35;
  text-decoration: none;
  min-width: 0;
}
.inquiry-products__name:hover { text-decoration: underline; }
.inquiry-products__remove {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #191515;
  cursor: pointer;
}
.inquiry-products__remove:hover { color: var(--red); }
.inquiry-field {
  display: grid;
  gap: 0.4rem;
  margin: 0 0 1rem;
}
.inquiry-field:last-child { margin-bottom: 0; }
.inquiry-label {
  display: block;
  color: #333;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.35;
}
.inquiry-req {
  color: var(--red);
  font-weight: 700;
  margin-left: 0.15em;
}
.inquiry-control {
  width: 100%;
  min-height: 42px;
  padding: 0.55rem 0.75rem;
  border: 1px solid #cfcfcf;
  border-radius: 0;
  background: #fff;
  color: #191515;
  font: inherit;
  font-size: 0.98rem;
  line-height: 1.4;
}
.inquiry-control--lg {
  min-height: 7.5rem;
  resize: vertical;
}
.inquiry-control:focus {
  outline: none;
  border-color: #191515;
  box-shadow: 0 0 0 1px #191515;
}
select.inquiry-control {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #666 50%), linear-gradient(135deg, #666 50%, transparent 50%);
  background-position: calc(100% - 16px) calc(50% - 3px), calc(100% - 11px) calc(50% - 3px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 2rem;
}
.inquiry-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1.25rem;
}
.inquiry-field--full { grid-column: 1 / -1; }
.inquiry-source {
  margin-top: 1.75rem;
  padding-top: 0.25rem;
}
.inquiry-source__title {
  margin: 0 0 1rem;
  color: #191515;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.inquiry-source__list {
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}
.inquiry-check {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.65rem;
  color: #555;
  font-size: 0.95rem;
  line-height: 1.4;
  cursor: pointer;
}
.inquiry-check input {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0.12rem 0 0;
  flex: 0 0 auto;
  accent-color: #191515;
}
.inquiry-check--block {
  display: flex;
  margin-top: 0.35rem;
  max-width: 40rem;
}
.inquiry-page__hint {
  margin: 1.75rem 0 1rem;
  color: #555;
  font-size: 0.9rem;
}
.inquiry-form__actions { margin: 0; }
.inquiry-form__actions .btn { min-width: 10rem; }
.inquiry-form .form-success { margin-top: 1.25rem; }
.form { display: grid; gap: 16px; }
.form label { display: grid; gap: 6px; font-size: 14px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form input, .form select, .form textarea { width: 100%; border: 0; border-bottom: 1px solid #ccc; padding: 10px 0; background: transparent; border-radius: 0; }
.form textarea { min-height: 120px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-bottom-color: #111; }
.form.contact-form .form-fields { display: grid; gap: 18px; }
.form.contact-form label { gap: 8px; font-size: 13px; color: #555; }
.form.contact-form input, .form.contact-form select, .form.contact-form textarea { border: 0; border-radius: 8px; background: #f3f3f1; padding: 12px 14px; }
.form.contact-form textarea { min-height: 140px; }
.form.contact-form input:focus, .form.contact-form select:focus, .form.contact-form textarea:focus { outline: 2px solid rgba(25, 21, 21, .2); outline-offset: 0; border-bottom: 0; background: #eee; }
.hp { position: absolute; left: -9999px; }
.form-success { padding: 18px 0; font-size: 18px; }
.prose p + p { margin-top: 14px; }
.site-footer {
  background: #fff;
  padding: 3.25rem 0 2.75rem;
  color: #666;
}
.footer-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem 3rem;
}
.footer-meta {
  display: grid;
  gap: 0.85rem;
  min-width: 0;
}
.footer-copy {
  margin: 0;
  font-size: 0.875rem;
  line-height: var(--lh-body);
  color: #555;
}
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.15rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #888;
}
.footer-legal a {
  color: inherit;
  text-decoration: none;
}
.footer-legal a:hover {
  color: #333;
  text-decoration: underline;
}
.footer-social {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: none;
}
.footer-social__link {
  display: inline-flex;
  line-height: 0;
  opacity: 0.95;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.footer-social__link:hover {
  opacity: 1;
  transform: translateY(-1px);
}
.footer-social__link.is-static {
  cursor: default;
}
.footer-social__link svg {
  display: block;
  border-radius: 4px;
}
.float-dock {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right, 0px));
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  z-index: 45;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  pointer-events: none;
}
.float-dock__btn {
  pointer-events: auto;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  text-decoration: none;
}
.float-dock__btn:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28);
}
.float-dock__btn:active {
  transform: translateY(0) scale(0.98);
}
.float-dock__btn svg {
  display: block;
}
.float-dock__btn--whatsapp { background: #25d366; }
.float-dock__btn--phone { background: #2f80ed; }
.float-dock__btn--email { background: #e53935; }
.search-overlay { position: fixed; inset: 0; z-index: 60; background: rgba(255,255,255,.98); padding: 72px 0; }
.search-overlay .close-search { position: absolute; top: 20px; right: 24px; border: 0; background: transparent; font-size: 16px; }
#search-input { width: min(860px, 100%); border: 0; border-bottom: 1px solid #111; font-size: clamp(28px, 4vw, 40px); padding: 8px 0; outline: none; background: transparent; }
.search-hit { display: block; padding: 16px 0; border-bottom: 1px solid var(--line); }
.search-hit:hover strong { text-decoration: underline; }
.search-hit span { display: block; color: var(--muted); font-size: 14px; }
:focus-visible { outline: 2px solid #111; outline-offset: 3px; }

/* Section backgrounds */
.section.on-mist { background: var(--mist); }
.section.on-deep { background: #111; color: #fff; }
.section.on-deep .kicker,
.section.on-deep .lede,
.section.on-deep p { color: rgba(255, 255, 255, .72); }
.section.on-deep h2,
.section.on-deep h3 { color: #fff; }

/* Catalog toolbar */
.catalog-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  margin-bottom: 8px;
  padding: 12px 0 16px;
  border-bottom: 1px solid var(--line);
}
.catalog-toolbar .filter-count {
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.4;
}

/* Case studies grid */
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.case-card {
  display: grid;
  gap: 0;
  color: inherit;
  text-decoration: none;
  background: var(--paper);
}
.case-card[hidden] { display: none !important; }
.case-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background-color: transparent;
  background-image: var(--img);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 12px 16px rgba(17, 17, 17, 0.1));
}
.case-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
  transition: transform 0.25s ease;
  filter: drop-shadow(0 12px 16px rgba(17, 17, 17, 0.1));
}
.case-card:hover .case-card__media img { transform: scale(1.03); }
.case-card__tag {
  display: inline-block;
  margin: 1rem 0 0.5rem;
  color: var(--muted);
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.case-card__body {
  display: grid;
  gap: 0.5rem;
  padding: 0 0 1rem;
}
.case-card__body strong {
  display: block;
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
}
.case-card__body em {
  display: block;
  color: var(--muted);
  font-style: normal;
  font-size: 0.875rem;
}
.case-card__body p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.case-card__media--empty { background: var(--mist); }
.catalog-count, .download-count {
  margin-left: auto;
  color: var(--muted);
  font-size: 0.9375rem;
}
.catalog-filters .filter-clear,
.cases-filters .filter-clear,
.download-filters .filter-clear {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  border: 0;
  border-bottom: none;
  background: transparent;
  margin: 0;
  padding: 0;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  vertical-align: middle;
}
.catalog-filters .filter-label,
.cases-filters .filter-label,
.download-filters .filter-label {
  display: inline-flex;
  align-items: center;
  line-height: 1.4;
}
.section-label {
  margin: 0 0 1.5rem;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 600;
}
.cases-toolbar { padding-bottom: 0; }
.page-cases .cases-block h2 { font-size: 1.25rem; margin-bottom: 1rem; }
.download-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: #fff;
  color: #666;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  line-height: 1.3;
  white-space: nowrap;
}
.download-item.is-pending { opacity: 0.72; }
.service-entry__meta {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  color: var(--muted);
  font-size: 0.875rem;
}
.service-entry__meta strong { color: var(--ink); font-weight: 600; }
.contact-split-section { padding-top: var(--space-section); padding-bottom: 0; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.quote-band__facts { display: grid; gap: 0.95rem; }
.quote-band__facts p { margin: 0; font-size: 0.98rem; line-height: 1.5; }
.quote-band__facts strong { display: block; margin-bottom: 0.25rem; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: #8a8580; font-weight: 600; }

@media (max-width: 1024px) {
  .case-grid, .service-entries, .path-split, .contact-split { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .case-grid, .service-entries, .path-split, .contact-split { grid-template-columns: 1fr; }
  .catalog-count, .download-count { margin-left: 0; width: 100%; }
}


/* Case filters */
.cases-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 32px;
  margin-bottom: 4px;
  padding: 14px 0 18px;
  border-bottom: 1px solid var(--line);
}

/* Download desk */
.download-desk { display: grid; gap: 0; }
.download-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.download-search {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 280px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 4px;
  background: var(--mist);
}
.download-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 10px 0;
  outline: none;
  font-size: 0.9375rem;
}
.download-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 32px;
  margin-bottom: 4px;
  padding: 14px 0 18px;
  border-bottom: 1px solid var(--line);
}
.download-count {
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.4;
}
.download-item {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(12rem, 0.85fr);
  gap: 10px 28px;
  align-items: start;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.download-item[hidden] { display: none !important; }
.download-item:hover { background: var(--mist); margin-inline: -12px; padding-inline: 12px; }
.download-item__main {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}
.download-item strong {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  color: #191515;
}
.download-item__note {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}
.download-item .download-item__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-content: flex-start;
  gap: 6px;
  margin-top: 0.15rem;
}
@media (max-width: 768px) {
  .download-item {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
  .download-item .download-item__meta { justify-content: flex-start; }
}

/* Service entries */
.service-entries {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}
.service-entry {
  display: grid;
  gap: 0.75rem;
  padding: 2rem 0;
  border-top: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.service-entry h3 {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.25;
}
.service-entry p {
  margin: 0;
  color: var(--muted);
  line-height: var(--lh-body);
}
.service-entry:hover h3 { color: var(--red); }

/* Memmert-style service & support desk */
.service-desk {
  padding: 0 0 clamp(3rem, 6vw, 5rem);
}
.service-desk__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(14rem, 0.75fr);
  column-gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: start;
}
.service-desk__main {
  min-width: 0;
}
.service-desk__section {
  padding: clamp(2rem, 4vw, 3rem) 0;
  border-bottom: 1px solid var(--line);
}
.service-desk__section:first-child { padding-top: 0.5rem; }
.service-desk__section:last-child { border-bottom: 0; }
.service-desk__section h2 {
  margin: 0 0 0.85rem;
  font-size: clamp(2rem, 3.2vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
html[lang="zh-CN"] .service-desk__section h2 {
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
}
.service-desk__section > p {
  margin: 0 0 1.5rem;
  max-width: 40rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: var(--lh-body);
}
.service-desk__buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
}
.service-desk__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.35rem;
  padding: 0.7rem 1rem;
  background: var(--red);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  transition: background .15s ease;
}
.service-desk__btn:hover {
  background: var(--red-hover);
  color: #fff;
}
.service-desk__side {
  position: sticky;
  top: calc(var(--chrome, 6rem) + 1rem);
  min-width: 0;
  padding-top: 0.35rem;
}
.service-desk__side > h2 {
  margin: 0 0 1.1rem;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.service-desk__nav {
  display: grid;
  border-top: 1px solid var(--line);
}
.service-desk__nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.35;
}
.service-desk__nav-link:hover { color: var(--red); }
.service-desk__chev {
  flex: none;
  color: var(--muted);
}
.service-desk__nav-link:hover .service-desk__chev { color: var(--red); }
@media (max-width: 960px) {
  .service-desk__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .service-desk__side { position: static; order: -1; }
}
@media (max-width: 640px) {
  .service-desk__buttons { grid-template-columns: 1fr; }
}

/* Application path split */
.path-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.path-card {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  padding: clamp(1.75rem, 2.8vw, 2.35rem) clamp(1.5rem, 2.5vw, 2rem);
  background: var(--mist);
  color: inherit;
  text-decoration: none;
}
.path-card h3 {
  margin: 0;
  font-size: clamp(1.625rem, 2.4vw, 2.125rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: #111;
}
.path-card p {
  margin: 0;
  max-width: 28rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: var(--lh-body);
}
.path-card .text-link {
  margin-top: 0.85rem;
  font-size: 1rem;
  font-weight: 500;
}
.path-card:hover h3 { color: var(--ink); }

/* Contact split */
.contact-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}
.contact-split .contact-card {
  display: grid;
  gap: 1rem;
  padding: 2.5rem;
  background: var(--mist);
}
.contact-split .contact-card h3 {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 600;
}
.contact-split .contact-card p {
  margin: 0;
  color: var(--muted);
  line-height: var(--lh-body);
}

@media (max-width: 980px) {
  :root {
    --gutter: 48px;
    --gap: 24px;
    --space-section: 2.5rem;
    --space-block: 2.5rem;
    --fs-h1: clamp(2.25rem, 6vw, 3rem);
    --fs-h2: clamp(1.5rem, 4vw, 2.25rem);
  }
  .burger { display: inline-block; padding: 8px; }
  #main-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); max-height: calc(100svh - 114px); overflow: auto; padding: 8px 20px 24px; }
  #main-nav.is-open { display: block; }
  #main-nav > ul, #main-nav > ul > li, #main-nav > ul > li > a { display: block; height: auto; }
  #main-nav > ul > li > a { padding: 12px 0; }
  .mega, .has-mega:hover .mega, .has-mega:focus-within .mega { display: block; position: static; box-shadow: none; padding: 0 0 8px 12px; border: 0; }
  /* keep .mega.mega--products semi-white+blur on all pages; only stack layout below */
  .product-mega { grid-template-columns: 1fr 1fr; padding: 1rem 0 1.25rem; column-gap: 1.5rem; row-gap: 2rem; }
  .product-mega__column { padding: 0; height: auto; min-height: 0; }
  .product-mega__column h3 { margin-bottom: 0.75rem; font-size: 1rem; font-weight: 600; min-height: 0; }
  .product-mega__items { gap: 0.75rem; flex: 1 1 auto; }
  .product-mega__name,
  .product-mega__custom-title,
  .product-mega__more { font-size: 0.9375rem; font-weight: 400; }
  .product-mega__series,
  .product-mega__custom-lead { font-size: 0.8125rem; }
  .product-mega__more { margin-top: auto; padding-top: 1rem; white-space: normal; }
  .mega-grid, .pillars-grid, .feature-grid, .story, .product-grid, .industries, .cards, .footer-grid, .form-row, .news-grid, .pd-hero-grid, .pd-overview-grid, .pd-highlight-grid, .pd-related-grid { grid-template-columns: 1fr 1fr; }
  .contact-desk { grid-template-columns: 1fr; min-height: 0; }
  .contact-side { padding: 32px 24px; max-height: none; }
  .contact-map { min-height: 360px; order: -1; }
  .contact-invite.quote-band,
  .contact-invite .quote-band__col {
    min-height: 0;
  }
  .solutions-band {
    min-height: 0;
  }
  .solutions-band__inner {
    width: calc(100% - 2 * var(--gutter));
    padding: 0;
    min-height: 0;
  }
  .solutions-band__col {
    width: 100%;
    margin-left: 0;
    min-height: 0;
  }
  .solutions-band__slit,
  .solutions-band__cap {
    display: none;
  }
  .solutions-band__card {
    width: 100%;
    padding: 2.5rem 0;
  }
  .solutions-band__media {
    position: relative;
    inset: auto;
    min-height: 16rem;
    order: -1;
  }
  .solutions-band {
    display: flex;
    flex-direction: column;
  }
  .solutions-band__inner {
    order: 1;
  }
  .solutions-band--split {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .solutions-band--split .solutions-band__media {
    min-height: 0;
    aspect-ratio: 16 / 10;
    order: -1;
  }
  .solutions-band--split .solutions-band__inner {
    width: 100%;
    padding: 2.25rem var(--gutter) 2.75rem;
  }
  .spotlight-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: center;
    padding: 1.75rem 1.5rem;
    min-height: 0;
  }
  .spotlight-media { min-height: 0; max-height: 20rem; order: 2; padding: 0; }
  .spotlight-body { padding: 0; gap: 1.25rem; order: 1; justify-content: flex-start; }
  .spotlight-title,
  .spotlight-body h2 { font-size: 1.75rem; }
  .spotlight-desc,
  .spotlight-body p { font-size: 1rem; }
  .spotlight-card.is-animating .spotlight-image {
    animation-name: spotlight-slide-x-mobile;
  }
  .spotlight-card.is-animating .spotlight-body {
    animation-name: spotlight-slide-y-mobile;
  }
  .pd-hero-media { min-height: 260px; }
  .pd-related-grid { grid-template-columns: 1fr 1fr; }
  .product-list { display: flex; flex-direction: column; gap: 0; }
  .product-row {
    grid-template-columns: 8.5rem minmax(0, 1fr) 1.5rem;
    column-gap: 1.35rem;
    row-gap: 0.85rem;
    padding: 1.35rem 0;
  }
  .product-thumb { width: 8.5rem; aspect-ratio: 1; }
  .product-tags { grid-column: 2 / 3; }
  .product-go { grid-column: 3; grid-row: 1; align-self: center; }
  .catalog-find { margin-left: 0; width: 100%; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 2.5rem; }
  .stat-col.is-empty { display: none; }
  .stats > .stat-item { display: none; }
  .stat-col { padding: 0; border: 0; }
  .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-entries { grid-template-columns: 1fr 1fr; }
  .path-split, .contact-split { grid-template-columns: 1fr 1fr; }
  .quote-band {
    height: auto;
    min-height: 0;
    flex-direction: column;
  }
  .quote-band--case {
    min-height: 0;
  }
  .quote-band--case .quote-band__col {
    width: 100%;
    max-width: none;
  }
  .quote-band--case .quote-band__panel {
    padding: 2rem var(--gutter);
  }
  .trio-band {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .trio-band__side {
    min-height: 14rem;
  }
  .trio-band__side--right .trio-band__caption {
    left: 1.25rem;
    right: auto;
  }
  .trio-band__panel {
    order: -1;
    padding: 2rem var(--gutter);
  }
  .quote-band__media {
    position: relative;
    inset: auto;
    order: 2;
    /* Memmert .media-full-width__media max-height mobile */
    min-height: 16rem;
    max-height: 27.25rem;
  }
  .quote-band__col {
    order: 1;
    width: 100%;
    max-width: none;
    margin-left: 0;
    min-height: 0;
  }
  .quote-band__cap,
  .quote-band__slit {
    display: none;
  }
  .quote-band__panel {
    padding: 2rem var(--gutter);
    border-bottom: 0;
  }
  .quote-band h2 { font-size: 1.65rem; }
  .quote-band__cta { min-width: 0; width: 100%; }
  .chain, .steps { grid-template-columns: 1fr 1fr; }
  .service-top { display: none; }
  .hero {
    /* Keep Memmert responsive heights; only reduce header pull on small screens */
    min-height: var(--hero-height);
    height: var(--hero-height);
    margin-bottom: calc(-1 * var(--chrome));
    transform: translateY(calc(-1 * var(--chrome)));
  }
  .slide { padding: 32px 0; }
  .slide h1 { font-size: var(--title-size, clamp(2rem, 7vw, 2.85rem)); line-height: 1.15; }
  html[lang="zh-CN"] .slide h1 { font-size: var(--title-size, 2.5rem); }
  .slide .wrap { width: min(52rem, calc(100% - 2 * var(--gutter))); margin: 0 var(--gutter); margin-left: var(--gutter); }
  .hero-progress {
    top: auto;
    bottom: 16px;
    left: 50%;
    right: auto;
    width: min(var(--wrap), calc(100% - 2 * var(--gutter)));
    height: 16px;
    padding: 0;
    transform: translateX(-50%);
  }
  .hero-arrows {
    top: auto;
    bottom: calc(16px + 28px);
    left: max(var(--gutter), calc((100% - min(var(--wrap), calc(100% - 2 * var(--gutter)))) / 2));
  }
}
@media (max-width: 640px) {
  :root {
    --gutter: 24px;
    --gap: 16px;
    --space-section: 2rem;
    --space-block: 2rem;
    --fs-h1: 2.25rem;
    --fs-h2: 1.5rem;
    --fs-h3: 1.25rem;
  }
  .case-grid, .service-entries, .path-split, .contact-split { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr; gap: 0; }
  .stat-col { padding: 0; border: 0; }
  .stat-col .stat-item + .stat-item { margin-top: 1.75rem; }
  .stat-col + .stat-col { margin-top: 1.75rem; }
}
@media (max-width: 680px) {
  .product-mega { grid-template-columns: 1fr; column-gap: 0; row-gap: 1.5rem; }
  .mega-grid, .pillars-grid, .stats, .feature-grid, .story, .product-grid, .industries, .cards, .footer-grid, .form-row, .chain, .steps, .story-stats, .case, .case.has-photo, .timeline li, .honors, .news-grid, .pd-hero-grid, .pd-overview-grid, .pd-highlight-grid, .pd-related-grid { grid-template-columns: 1fr; }
  .contact-inquiry-cta__inner { flex-direction: column; align-items: flex-start; }
  .inquiry-grid { grid-template-columns: 1fr; }
  .stats { gap: 0; }
  .stat-col { padding: 0; border: 0; }
  .stat-col.is-empty { display: none; }
  .stat-col + .stat-col { margin-top: 1.75rem; }
  .product-list { padding-top: 0.5rem; }
  .product-row {
    grid-template-columns: 5.75rem minmax(0, 1fr) 1.25rem;
    column-gap: 0.9rem;
    row-gap: 0.7rem;
    padding: 1.15rem 0;
  }
  .product-thumb { width: 5.75rem; }
  .product-copy { padding-right: 0; }
  .product-copy strong { font-size: 1.0625rem; }
  .product-row__blurb,
  .product-copy span { font-size: 0.875rem; }
  .product-tags { grid-column: 1 / -1; }
  .product-go { width: 1.25rem; height: 1.25rem; }
  .spotlight-actions { width: 100%; }
  .spotlight-actions .btn { width: 100%; }
  .footer-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }
  .footer-social { order: -1; }
  .float-dock {
    right: 0.75rem;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    gap: 0.6rem;
  }
  .float-dock__btn {
    width: 2.85rem;
    height: 2.85rem;
  }
  .legal { display: block; }
  .legal nav { margin-top: 8px; }
  .feature h2 { max-width: none; }
  .feature-visual { min-height: 14rem; justify-content: center; }
  .feature-visual img { max-height: 20rem; }
  .feature.is-reverse .feature-visual { order: 0; justify-content: center; }
  .feature-media-badges { left: 0.75rem; bottom: 8%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .product-row:hover .product-thumb,
  .case-card:hover .case-card__media img { transform: none; }
}

/* News desk */
.news-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 2rem;
  padding-bottom: 0;
  border-bottom: 0;
}
.news-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.news-chip {
  border: 0;
  background: transparent;
  padding: 0.5625rem 1rem;
  border-radius: 4.25rem;
  font-size: 1rem;
  font-weight: 400;
  color: rgba(25, 21, 21, 0.6);
  cursor: pointer;
}
.news-chip:hover { background: #f5f5f5; color: rgba(25, 21, 21, 0.75); }
.news-chip.is-on {
  background: #f0f0f0;
  color: #111;
  font-weight: 600;
}
.news-featured {
  margin-bottom: 2.5rem;
}
.news-featured .news-card {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2rem;
  align-items: center;
  padding-bottom: 0;
  min-height: 0;
}
.news-featured .news-card__image { margin: 0; }
.news-featured .news-card__image img { height: min(360px, 42vw); aspect-ratio: auto; }
.news-featured .news-card__title {
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  min-height: 0;
}
.news-grid--desk { margin-bottom: 2rem; }
.news-more-btn { display: inline-flex; margin: 0 auto; }
.news-card__image--empty {
  min-height: 0;
  aspect-ratio: 16 / 10;
  background: var(--mist);
  border-radius: 4px;
}

/* Article / reading */
.reading-wrap { max-width: 42rem; }
.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 12px 0 16px;
  color: var(--muted);
  font-size: 0.9375rem;
}
.article-cat {
  color: var(--ink);
  font-weight: 600;
}
.article-toc {
  margin: 0 0 2rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.article-toc strong {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.article-toc ol { display: grid; gap: 0.4rem; }
.article-toc a:hover { text-decoration: underline; }
.article-hero {
  margin: 0 0 2rem;
  background: var(--mist);
  border-radius: 4px;
  overflow: hidden;
}
.article-hero img {
  width: 100%;
  max-height: 28rem;
  object-fit: contain;
  background: var(--mist);
  display: block;
}
.article-figure {
  margin: 1.5rem 0;
  background: var(--mist);
  border-radius: 4px;
  overflow: hidden;
}
.article-figure img {
  width: 100%;
  max-height: 36rem;
  object-fit: contain;
  display: block;
  background: var(--mist);
}
.article-content p + p { margin-top: 1rem; }
.article-updated { color: var(--muted); font-size: 0.875rem; margin-bottom: 1rem; }
.article-back { margin-top: 2.5rem; }
.prose.reading h2 { margin: 2rem 0 0.75rem; font-size: 1.375rem; }

/* Case detail */
.case-detail__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
.case-detail__media {
  min-height: 320px;
  background: var(--mist) var(--img) center / cover no-repeat;
}
.case-detail__facts { display: grid; gap: 1.75rem; }
.case-fact h2 {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.case-fact p { margin: 0; font-size: 1.0625rem; line-height: var(--lh-body); }
.pd-apps {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 1rem;
}
.pd-apps li {
  padding: 10px 16px;
  background: var(--mist);
  font-size: 0.9375rem;
}

/* Contact / inquiry dynamic form panels */
.form-dynamic {
  display: grid;
  gap: 14px;
  margin: 4px 0 8px;
}
.form-dynamic[hidden] {
  display: none !important;
}
.contact-promise {
  margin-top: 12px;
  color: var(--muted);
  font-size: 0.9375rem;
}
.timeline-more {
  margin-top: 1.5rem;
  border-top: 1px solid var(--line);
  padding-top: 1rem;
}
.timeline-more summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--ink);
}
.timeline-more .timeline { margin-top: 1.25rem; }

/* Credentials grid */
.cred-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 2.5rem;
  margin-top: 1.75rem;
}
.cred-card {
  display: grid;
  gap: 0.45rem;
  align-content: start;
  padding: 1.35rem 0 1.5rem;
  border-top: 1px solid var(--line);
}
.cred-card h3 {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
}
.cred-card__year {
  color: var(--muted);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}
.cred-proof summary {
  cursor: pointer;
  width: fit-content;
  color: var(--ink);
  font-size: 0.8125rem;
  font-weight: 600;
}
.cred-proof summary:hover { text-decoration: underline; }
.cred-proof img {
  margin-top: 0.75rem;
  max-height: 280px;
  width: auto;
  object-fit: contain;
  background: var(--mist);
}
.partners-section h2 { margin-bottom: 0; }
.partners {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  margin: 1.75rem 0 0;
  align-items: stretch;
  background: var(--line);
  border: 1px solid var(--line);
}
.partner {
  margin: 0;
  display: grid;
  place-items: center;
  min-height: 88px;
  padding: 1rem 1.1rem;
  background: var(--mist);
}
.partner img {
  max-height: 40px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
  background: transparent;
  filter: grayscale(1);
  opacity: 0.78;
  transition: opacity .2s ease, filter .2s ease;
}
.partner:hover img {
  filter: grayscale(0);
  opacity: 1;
}
.partner figcaption { display: none; }
.creds--names {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 1.25rem;
  color: var(--muted);
  font-size: 0.9375rem;
}

/* Why choose */
.why-section h2 { margin-bottom: 0; }
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem 2.5rem;
  margin-top: 1.75rem;
}
.why-card {
  display: grid;
  gap: 0.65rem;
  align-content: start;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}
.why-card__value {
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.75rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.why-card h3 {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
}
.why-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: var(--lh-body);
}

/* About page — Memmert Why-Memmert: main column + sticky TOC */
.page-about .crumbs { display: none; }
.about-desk {
  padding: 0 0 clamp(3rem, 6vw, 5rem);
}
.about-desk__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(14rem, 0.72fr);
  column-gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: start;
  padding-top: clamp(2.5rem, 4vw, 3.75rem);
}
.about-desk__main { min-width: 0; }
.about-desk__main > .page-intro {
  padding: 0 0 1.75rem;
}
.about-desk__main > .page-intro > .wrap {
  width: 100%;
  max-width: none;
  margin: 0;
}
.page-about .page-intro h1 {
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.12;
  max-width: 22ch;
}
html[lang="zh-CN"] .page-about .page-intro h1 {
  max-width: 16em;
  font-size: clamp(2rem, 3.6vw, 2.85rem);
}
.page-about .page-intro .lede {
  margin-top: 1.15rem;
  max-width: 40rem;
  font-size: 1.0625rem;
  line-height: var(--lh-body);
  color: #3f3f3f;
}
.about-desk__main > .section {
  padding: clamp(2.25rem, 4vw, 3.25rem) 0;
  border-top: 1px solid var(--line);
}
.about-desk__main > .section:first-of-type { border-top: 0; }
.about-desk__main > .section > .wrap {
  width: 100%;
  max-width: none;
  margin: 0;
}
.page-about .section > .wrap > h2,
.page-about .why-section h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
html[lang="zh-CN"] .page-about .section > .wrap > h2,
html[lang="zh-CN"] .page-about .why-section h2 {
  font-size: clamp(1.65rem, 2.8vw, 2.15rem);
}
.page-about .story {
  gap: clamp(1.75rem, 3vw, 2.75rem);
}
.page-about .story .kicker {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(17, 17, 17, 0.55);
}
.page-about .story h2 {
  margin: 0 0 1.1rem;
  font-size: clamp(1.85rem, 3vw, 2.65rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
  max-width: 18em;
}
html[lang="zh-CN"] .page-about .story h2 {
  font-size: clamp(1.7rem, 2.9vw, 2.25rem);
}
.page-about .story p {
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.6;
  color: #3f3f3f;
}
.page-about .story p + p { margin-top: 0.95rem; }
.page-about .story-visual {
  min-height: 280px;
  aspect-ratio: 4 / 3;
  background-color: #eee;
}
.page-about .story-stats {
  gap: 1.35rem 1.5rem;
  margin-top: 0.25rem;
}
.page-about .story-stats strong {
  font-size: clamp(1.75rem, 2.4vw, 2.25rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.page-about .story-stats span {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--muted);
}
.page-about .why-card {
  padding-top: 1.15rem;
}
.page-about .why-card__value {
  font-size: clamp(1.75rem, 2.6vw, 2.35rem);
  font-weight: 600;
}
.page-about .why-card h3 {
  font-size: 1.125rem;
  font-weight: 600;
}
.page-about .why-card p {
  font-size: 0.9375rem;
  line-height: var(--lh-body);
}
.page-about .timeline li {
  grid-template-columns: 7.5rem 1fr;
  gap: 1.75rem;
  padding: 1.25rem 0;
}
.page-about .timeline strong {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.page-about .timeline h3 {
  font-size: 1.125rem;
  font-weight: 600;
}
.page-about .timeline p {
  margin-top: 0.35rem;
  font-size: 0.975rem;
  line-height: var(--lh-body);
  color: #3f3f3f;
}
.page-about .timeline-more summary {
  font-size: 0.9375rem;
}
.about-toc {
  position: sticky;
  top: calc(var(--chrome, 6rem) + 1rem);
  min-width: 0;
  padding-top: 0.2rem;
}
.about-toc > h2 {
  margin: 0 0 1.1rem;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.about-toc__nav {
  display: grid;
  border-top: 1px solid var(--line);
}
.about-toc__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1.35;
}
.about-toc__link:hover { color: var(--red); }
.about-toc__chev {
  flex: none;
  color: var(--muted);
}
.about-toc__link:hover .about-toc__chev { color: var(--red); }
@media (max-width: 960px) {
  .about-desk__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-top: 2rem;
  }
  .about-toc {
    position: static;
    order: -1;
  }
  .page-about .page-intro h1 { max-width: none; }
}
.path-split--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.product-entries {
  padding-top: 2.25rem;
  padding-bottom: 0;
}
.page-products .product-entries .path-card {
  min-height: 12.5rem;
}
.page-products .product-spotlight { padding-top: 3rem; }
.page-products .catalog-section { padding-top: 0; }
.page-products .filter-label {
  font-size: 1rem;
  font-weight: 500;
  color: rgba(25, 21, 21, 0.6);
}
.page-products .filter-dd > summary {
  font-size: 1.25rem;
  font-weight: 400;
  color: #191515;
}
.page-products .catalog-filters {
  gap: 0.25rem 0.5rem;
  padding: 2rem 0 0.5rem;
}
.process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 2rem;
  margin-top: 1.5rem;
}
.process-card {
  display: grid;
  gap: 0.75rem;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.process-card h3 {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 600;
}
.process-card:hover h3 { color: var(--red); }
.process-card p {
  margin: 0.35rem 0 0;
  color: var(--muted, #666);
  font-size: 0.9rem;
  line-height: var(--lh-body);
}

@media (max-width: 900px) {
  .cred-grid, .why-grid, .path-split--3, .process-grid { grid-template-columns: 1fr 1fr; }
  .chain, .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .partners { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-about .timeline li { grid-template-columns: 5.5rem 1fr; gap: 1.1rem; }
  .page-about .story { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .cred-grid, .why-grid, .path-split--3, .process-grid { grid-template-columns: 1fr; }
  .chain, .steps { grid-template-columns: 1fr 1fr; }
  .partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner { min-height: 72px; }
}

@media (max-width: 900px) {
  .news-featured .news-card,
  .case-detail__grid { grid-template-columns: 1fr; }
  .news-featured .news-card__image img { height: 220px; }
}


/* Product detail standard slots */
.pd-slot-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--line);
}
.pd-slot-nav a {
  display: inline-block;
  padding: 0.65rem 0;
  color: var(--muted);
  text-decoration: none;
  font-size: 0.92rem;
  border-bottom: 2px solid transparent;
}
.pd-slot-nav a:hover,
.pd-slot-nav a:focus {
  color: var(--ink);
  border-bottom-color: var(--brand, #e30715);
}
.pd-section-anchor { scroll-margin-top: 6rem; }


/* product mega panel lock — all pages, all breakpoints */
.mega.mega--products {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(44px);
  -webkit-backdrop-filter: blur(44px);
  border-top: 1px solid rgba(17, 17, 17, 0.06);
  box-shadow: none;
  pointer-events: auto;
  z-index: 60;
}

/* Memmert-style utility pages: careers / trade fairs / blog / imprint */
.page-careers .crumbs,
.page-trade-fairs .crumbs,
.page-legal .crumbs,
.page-blog .crumbs { display: none; }
.page-trade-fairs .page-intro { padding: 3.5rem 0 1.25rem; }
.page-trade-fairs .page-intro h1 {
  font-size: clamp(2rem, 3.6vw, 2.75rem);
  font-weight: 600;
  max-width: 48rem;
}
.page-trade-fairs .page-intro .lede {
  max-width: 46rem;
  margin-top: 1rem;
  font-size: 1.0625rem;
  line-height: var(--lh-body);
  color: #3f3f3f;
}
/* Blog listing — Memmert has no page H1, starts with featured cards */
.page-blog .page-intro { display: none; }

.page-applications .news-desk {
  padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
  padding-bottom: clamp(3.5rem, 7vw, 5.5rem);
}
.page-applications .apps-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 28px;
  margin: 0 0 2rem;
  padding: 0 0 1.25rem;
  background: transparent;
  border-bottom: 0;
}
.page-applications .apps-filters .filter-label,
.page-applications .apps-filters .filter-dd > summary {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  color: rgba(25, 21, 21, 0.55);
}
.page-applications .apps-filters .filter-dd > summary {
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
}
.page-applications .apps-filters .filter-dd > summary svg {
  width: 10px;
  height: 8px;
  opacity: 0.55;
}
.page-applications .news-card__title {
  min-height: 2.6em;
}
.page-applications .news-card__footer { margin-top: 0; }
.news-pagination {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.35rem 0.85rem;
  width: 100%;
  margin: 2rem 0 0;
  padding: 0;
  clear: both;
}
.news-pagination[hidden] { display: none !important; }
.news-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(25, 21, 21, 0.45);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}
.news-pagination__btn.is-active {
  color: #191515;
  font-weight: 700;
}
.news-pagination__btn:hover {
  color: #191515;
}
.news-pagination__prev,
.news-pagination__next {
  min-width: 1.5rem;
  font-size: 1.125rem;
}

/* Imprint / Site Notice — Memmert frame-type-text scale */
.page-legal .page-intro {
  padding: clamp(2.5rem, 4vw, 3.75rem) 0 0;
}
.page-legal .page-intro h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(2.25rem, 4vw, 3.5rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #111;
}

/* Careers banner — Memmert full-bleed photo carousel */
.page-banner {
  --hero-height: min(72svh, 38rem);
  position: relative;
  z-index: 0;
  min-height: var(--hero-height);
  height: var(--hero-height);
  margin-bottom: calc(-1 * var(--chrome));
  color: #fff;
  overflow: hidden;
  transform: translateY(calc(-1 * var(--chrome)));
  background: #111;
}
body.has-hero:has(.has-mega:hover) .page-banner,
body.has-hero:has(.has-mega:focus-within) .page-banner,
body.has-hero.nav-open .page-banner { pointer-events: none; }
.page-banner .slide {
  align-items: flex-end;
  padding: 40px 0 4.5rem;
}
.page-banner .slide h1 {
  max-width: 18ch;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
}
.page-banner .slide .btn {
  min-height: 3.25rem;
  padding: 0.85rem 1.75rem;
  border-radius: 0;
}

.career-values { padding-top: 4.5rem; padding-bottom: 2rem; }
.career-values__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem 4.5rem;
}
.career-value h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.5rem, 2.4vw, 1.85rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.career-value p {
  margin: 0;
  max-width: 34rem;
  color: #3f3f3f;
  font-size: 1.0625rem;
  line-height: 1.6;
}
.page-careers .job-board { padding-top: 2rem; }
.page-careers .job-board > .wrap > h2 {
  font-size: clamp(1.75rem, 2.8vw, 2.25rem);
  margin-bottom: 0.85rem;
}
.page-careers .cta {
  background: var(--mist);
  margin-top: 1.5rem;
}

/* Trade fairs — horizontal exhibition rows */
.fair-list { padding-top: 1.5rem; }
.fair-list__items { display: grid; gap: 0; }
.fair-item {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  gap: 1.75rem;
  align-items: center;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line);
}
.fair-item:last-child { border-bottom: 1px solid var(--line); }
.fair-item__media {
  width: 10rem;
  height: 5.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--mist);
  overflow: hidden;
}
.fair-item__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.65rem;
}
.fair-item__media--empty { background: linear-gradient(135deg, #ececec, #f7f7f7); }
.fair-item__body h3 {
  margin: 0 0 0.45rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.fair-item__body p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: var(--lh-body);
}
.fair-item__links { margin-top: 0.7rem; }
.fair-item__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--red);
  font-size: 0.9375rem;
  font-weight: 500;
}
.fair-item__link:hover { text-decoration: underline; }
.fair-item__link::after { content: "↗"; font-size: 0.85em; }

/* Careers — job table */
.job-board { padding-top: 1.25rem; }
.job-board > .wrap > h2 { margin-bottom: 0.75rem; font-size: 1.5rem; }
.job-table-wrap { overflow-x: auto; margin-top: 1.25rem; border-top: 1px solid var(--line); }
.job-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.job-table th,
.job-table td {
  text-align: left;
  padding: 0.95rem 1rem 0.95rem 0;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.job-table th {
  color: var(--muted);
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}
.job-table td:first-child { font-weight: 600; min-width: 11rem; }
.job-table a { color: var(--ink); }
.job-table a:hover { color: var(--red); text-decoration: underline; }
.page-careers .cards { margin-top: 0.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.page-careers .cards article {
  padding: 1.25rem 0;
  border-top: 0;
}
.page-careers .cards h3 { font-size: 1.05rem; margin-bottom: 0.4rem; }
.page-careers .cta { margin-top: 1rem; }

/* Imprint — Memmert site-notice body (H1 3.5rem / H3 2.75rem) */
.page-legal .imprint-wrap {
  max-width: none;
}
.page-legal .prose.imprint {
  padding: 0.35rem 0 clamp(4rem, 8vw, 6rem);
}
.page-legal .prose.imprint h3,
html[lang="zh-CN"] .page-legal .prose.imprint h3 {
  margin: 1.15em 0 0.5em;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #111;
}
.page-legal .prose.imprint h3:first-child {
  margin-top: 1em;
}
.page-legal .prose.imprint p {
  margin: 0 0 0.75rem;
  max-width: 52rem;
  color: #111;
  font-size: 1rem;
  font-weight: 400;
  line-height: var(--lh-body);
}
.page-legal .prose.imprint p + p { margin-top: 0; }
.page-legal .prose.imprint a:not(.text-link) {
  color: #111;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.page-legal .prose.imprint a:not(.text-link):hover {
  color: var(--red);
}
.page-legal .prose.imprint .text-link { display: none; }

/* Blog — Memmert news-hero (2fr/1fr) + auto-fit 3-col list */
.page-blog .news-desk {
  padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
  padding-bottom: clamp(3.5rem, 7vw, 5.5rem);
}
.news-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem 1rem;
  margin-bottom: 3rem;
}
.news-hero .news-hero__item--top { min-height: 0; }
.news-hero .news-hero__item--top .news-card__image {
  margin-bottom: 1rem;
}
.news-hero .news-hero__item--top .news-card__image img {
  min-height: 14rem;
}
.news-grid--desk {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(325px, 100%), 1fr));
  gap: 2rem;
}
.page-blog .news-filters {
  margin-bottom: 2rem;
}
.page-blog .news-filters .filter-label {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  color: rgba(25, 21, 21, 0.6);
}
.page-blog .news-filters .catalog-count {
  margin: 0 0 0 auto;
  color: rgba(25, 21, 21, 0.6);
  font-size: 0.9375rem;
}
.page-blog .news-card__footer { margin-top: 0; }
.page-blog .news-more-btn {
  display: flex;
  margin: 0.5rem auto 0;
  min-height: 3rem;
  padding: 0.75rem 1.75rem;
  border-radius: 0;
}

@media (min-width: 768px) {
  .news-hero {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 1rem;
  }
  .news-hero .news-hero__item--top {
    grid-column: 1 / -1;
  }
}
@media (min-width: 1200px) {
  .news-hero {
    grid-template-columns: 2fr 1fr;
    gap: 1rem 2rem;
  }
  .news-hero .news-hero__item--top {
    grid-column: 1;
    grid-row: span 2;
    display: flex;
    flex-direction: column;
  }
  .news-hero .news-hero__item--top .news-card__image {
    flex: 1;
  }
  .news-hero .news-hero__item--top .news-card__image img {
    height: 100%;
    min-height: 24rem;
    aspect-ratio: auto;
  }
}

@media (max-width: 900px) {
  .fair-item { grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1.1rem; }
  .fair-item__media { width: 7.5rem; height: 4.5rem; }
  .page-careers .cards { grid-template-columns: 1fr 1fr; }
  .career-values__grid { grid-template-columns: 1fr; gap: 2rem; }
  .page-banner { --hero-height: min(62svh, 28rem); }
  .page-banner .slide { padding-bottom: 3rem; }
  .page-banner .slide h1 { max-width: none; font-size: clamp(2rem, 8vw, 2.75rem); }
}
@media (max-width: 640px) {
  .fair-item { grid-template-columns: 1fr; }
  .fair-item__media { width: 100%; height: 5rem; }
  .page-careers .cards { grid-template-columns: 1fr; }
  .job-table th:nth-child(2),
  .job-table td:nth-child(2) { display: none; }
}

/* —— Memmert type/spacing lock (cascade helpers) —— */
.footer,
.footer p,
.footer a,
.filter-label,
.filter-dd > summary,
.catalog-count,
.download-count,
.text-link,
.product-mega__name,
.product-mega__more,
.product-mega__series {
  line-height: var(--lh-body);
}
.footer { font-size: 0.9375rem; }
.filter-label,
.catalog-count,
.download-count {
  font-size: 1rem;
  color: var(--muted);
}
.filter-dd > summary {
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--ink);
}


/* News prose rich-text extensions */
.article-heading--large {
  font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem);
  font-weight: 750;
  letter-spacing: -0.01em;
  margin: 1.35em 0 .55em;
}
.prose .article-list,
.reading-wrap .article-list {
  margin: .75rem 0 1rem;
  padding-left: 1.35rem;
  display: grid;
  gap: .35rem;
}
.prose .article-list li,
.reading-wrap .article-list li {
  line-height: 1.65;
}
.prose p strong,
.reading-wrap p strong,
.prose .article-list strong,
.reading-wrap .article-list strong {
  font-weight: 700;
}
.prose p em,
.reading-wrap p em,
.prose .article-list em,
.reading-wrap .article-list em {
  font-style: italic;
}
.prose .rt-size-sm,
.reading-wrap .rt-size-sm { font-size: 0.875em; }
.prose .rt-size-lg,
.reading-wrap .rt-size-lg { font-size: 1.15em; }
.prose .rt-size-xl,
.reading-wrap .rt-size-xl { font-size: 1.35em; }
.prose .rt-font-serif,
.reading-wrap .rt-font-serif {
  font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", serif;
}
.prose .rt-font-heiti,
.reading-wrap .rt-font-heiti {
  font-family: "Heiti SC", "STHeiti", "SimHei", "PingFang SC", sans-serif;
}


/* Knife 4: case body prose + figures (cover stays in case-detail__media) */
.case-detail__prose {
  max-width: 48rem;
  margin: 0 auto;
}
.case-detail-prose {
  padding-top: 0;
}
.case-detail__facts .article-figure,
.case-fact .article-figure,
.case-detail__prose .article-figure {
  margin: 1.1rem 0;
}
.case-detail__facts .article-figure img,
.case-fact .article-figure img,
.case-fact img,
.case-detail__prose .article-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 0.35rem;
}
