


/* ============================================================

   DESIGN TOKENS — Edit these to retheme the entire site

   ============================================================ */

:root {

  --brand-red:       #C8102E;

  --brand-red-dark:  #a00d24;

  --brand-red-light: #fdf0f2;



  --black:      #171717;  /* Cognex exact: --fills---neutral-gray-darker */

  --dark:       #252525;  /* Cognex: --fills---neutral-gray-dark */

  --gray-mid:   #585858;  /* Cognex: --fills---neutral-gray-mid */

  --gray-light: #d9d9d9;  /* Cognex: --fills---neutral-gray-light */

  --gray-bg:    #f6f6f6;  /* Cognex: --fills---neutral-gray-lighter */

  --white:      #ffffff;



  --border-color: #ececec;



  --font-primary:   'Roboto', system-ui, Helvetica, Arial, sans-serif;

  --font-mono:      'Roboto Mono', monospace;



  /* Cognex exact type scale */

  --copy-large:     normal 400 18px/1.55 var(--font-primary);

  --copy-medium:    normal 400 16px/1.5  var(--font-primary);

  --copy-small:     normal 400 12px/1.5  var(--font-primary);

  --copy-button:    normal 500 14px/1    var(--font-primary);

  --copy-link:      normal 500 14px/1    var(--font-primary);



  --corner-xs:      6px;

  --corner-full:    1000px;



  --header-height-mobile: 64px;

  --header-height-desk:   125px;

  --container-max: 1320px;

}



/* ============================================================

   RESET & BASE

   ============================================================ */

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

html { scroll-behavior: smooth; }

body {

  font: var(--copy-medium);

  color: var(--black);

  background: var(--white);

  -webkit-font-smoothing: antialiased;

}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

ul { list-style: none; }

button { cursor: pointer; font-family: var(--font-primary); border: none; background: none; }



.container {

  width: 100%;

  max-width: var(--container-max);

  margin-inline: auto;

  padding-inline: 24px;

}



/* ============================================================

   SECTION 1 — UTILITY BAR (top black strip)

   ============================================================ */

/* ── EDIT: change links/phone in HTML below ── */

.utility-bar {

  background: var(--black);

  height: 38px;

  display: flex;

  align-items: center;

  justify-content: flex-end;

  gap: 0;

  font: var(--copy-small);

  color: rgba(255,255,255,0.7);

}

.utility-bar .container {

  display: flex;

  align-items: center;

  justify-content: flex-end;

  gap: 24px;

}

.utility-bar a { color: rgba(255,255,255,0.7); }

.utility-bar a:hover { color: #fff; }

.utility-bar .sales { color: #fff; font-weight: 500; }



/* ============================================================

   SECTION 2 — MAIN NAVIGATION

   ============================================================ */

/* ── EDIT: logo URL, nav links, CTA button text ── */

.main-nav {

  background: var(--white);

  border-bottom: 1px solid var(--border-color);

  position: sticky;

  top: 0;

  z-index: 200;

  height: 64px;

  display: flex;

  align-items: center;

}

.main-nav .container {

  display: flex;

  align-items: center;

  gap: 0;

  height: 100%;

  overflow: hidden;

}



/* Logo */

.nav-logo {

  display: flex;

  align-items: center;

  gap: 0;

  margin-right: 40px;

  flex-shrink: 0;

  text-decoration: none;

}

/* ── EDIT: replace with <img src="your-logo.png" alt="Brand"> ── */

.nav-logo-img {

  height: 24px;

  width: auto;

  max-width: 200px;

  display: block;

  object-fit: contain;

}



/* Search */

.nav-search {

  position: relative;

  flex: 1;

  max-width: 440px;

  margin-right: auto;

}

.nav-search input {

  width: 100%;

  height: 36px;

  border: 1px solid var(--border-color);

  border-radius: var(--corner-xs);

  padding: 0 12px 0 36px;

  font: var(--copy-medium);

  color: var(--black);

  background: var(--gray-bg);

  outline: none;

}

.nav-search input:focus { border-color: var(--brand-red); background: var(--white); }

.nav-search-icon {

  position: absolute;

  left: 10px; top: 50%;

  transform: translateY(-50%);

  color: var(--gray-mid);

  pointer-events: none;

}

.nav-search-icon svg { width: 16px; height: 16px; display: block; }



/* Nav links */

.nav-links {

  display: flex;

  align-items: center;

  height: 100%;

  margin-left: 24px;

}

.nav-link {

  height: 100%;

  display: flex;

  align-items: center;

  padding: 0 16px;

  font: var(--copy-medium);

  font-weight: 500;

  color: var(--black);

  border-bottom: 3px solid transparent;

  cursor: pointer;

  white-space: nowrap;

  transition: color .15s, border-color .15s;

}

.nav-link:hover { color: var(--brand-red); border-bottom-color: var(--brand-red); }



/* MyCognex account */

.nav-account {

  display: flex;

  align-items: center;

  gap: 6px;

  padding: 0 16px;

  font: var(--copy-medium);

  font-weight: 500;

  color: var(--black);

  cursor: pointer;

  white-space: nowrap;

  border: 1px solid var(--border-color);

  border-radius: var(--corner-full);

  height: 36px;

  margin-left: 8px;

}

.nav-account:hover { border-color: var(--brand-red); color: var(--brand-red); }



/* Hamburger (mobile) */

.nav-hamburger {

  display: none;

  flex-direction: column;

  gap: 5px;

  padding: 8px;

  margin-left: auto;

}

.nav-hamburger span {

  display: block;

  width: 24px;

  height: 2px;

  background: var(--black);

  transition: all .3s;

}



/* ============================================================

   SECTION 3 — HERO (split layout: text left, dark image right)

   ============================================================ */

/* ── EDIT: headline, subtext, CTA buttons, hero image ── */

.hero {

  display: grid;

  grid-template-columns: 1fr 1fr;

  min-height: 520px;

  overflow: hidden;

}



/* Left: white panel */

.hero-left {

  padding: 56px 64px 56px 0;

  display: flex;

  flex-direction: column;

  justify-content: center;

  background: var(--white);

}

.hero-left .container-inner {

  max-width: 580px;

  margin-left: auto;

  padding-left: 24px;

}

/* ── EDIT: main headline ── */

.hero-title {

  font-size: 48px;

  word-break: break-word;

  overflow-wrap: break-word;

  font-weight: 700;

  line-height: 1.05;

  color: var(--black);

  letter-spacing: -0.5px;

  margin-bottom: 20px;

}

/* ── EDIT: sub paragraph ── */

.hero-desc {

  font: var(--copy-large);

  color: var(--gray-mid);

  max-width: 480px;

  margin-bottom: 32px;

  line-height: 1.65;

}

.hero-ctas { display: flex; flex-direction: column; gap: 12px; max-width: 380px; }
.hero-lang-note { font-size: 12px; color: rgba(0,0,0,0.45); margin-top: 10px; max-width: 380px; line-height: 1.5; }
.hero-ctas .btn-primary,
.hero-ctas .btn-secondary { width: 100%; justify-content: center; }

/* ── Certification marks strip ── */
.hero-certs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 22px 0 30px;
}

.cert-item {
  display: flex;
  align-items: center;
}

/* Shared: img logos and inline SVGs */
.cert-logo {
  height: 26px;
  width: auto;
  display: block;
  filter: grayscale(1) opacity(0.38);
}

/* CE — geometric inline SVG */
.cert-logo--ce {
  height: 22px;
  fill: currentColor;
  color: #555;
}

/* ASTM & QUATEST are wide wordmarks */
.cert-logo--wide {
  height: 18px;
}

/* TAF / QUATEST / TIS — two-line text wordmarks */
.cert-logo--text {
  height: 30px;
  color: #444;
}

.cert-sep {
  width: 1px;
  height: 14px;
  background: #ddd;
  display: block;
  flex-shrink: 0;
}



/* CTA buttons — Cognex style: pill-shaped */

.btn-primary {

  display: inline-flex;

  align-items: center;

  gap: 8px;

  padding: 18px 32px;

  min-height: 58px;

  border-radius: var(--corner-full);

  background: var(--brand-red);

  color: #fff;

  font: var(--copy-button);

  font-size: 17px;

  white-space: nowrap;

  transition: background .15s;

}

.btn-primary:hover { background: var(--brand-red-dark); }

.btn-primary svg { width: 16px; height: 16px; }

.btn-time-accent { color: #ffd166; font-weight: 700; }



.btn-secondary {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 8px;

  padding: 14px 24px;

  min-height: 52px;

  border-radius: var(--corner-full);

  border: 1.5px solid var(--black);

  background: var(--black);

  color: #fff;

  font: var(--copy-button);

  font-size: 16px;

  white-space: normal;

  text-align: center;

  line-height: 1.35;

  transition: background .15s, color .15s;

}

.btn-secondary:hover { background: #333; }



/* Right: dark panel with product image */

/* Right: dark panel with product image */

/* 右侧容器设为相对定位 */

.hero-right {

  position: relative;

  background: var(--black);

  overflow: hidden;

  height: 100%;

}



.hero-img-slot {

  position: absolute;

  inset: 0;

  z-index: 1;

}



.hero-img-slot img {

  width: 100%;

  height: 100%;

  object-fit: cover;

}



/* ── 核心修改：黑色半透明底部条 ── */

.hero-caption-mini {

  position: absolute;

  bottom: 0;

  left: 0;

  right: 0;

  z-index: 10;

  

  /* 只有一行字的高度 */

  height: 48px; 

  padding: 0 24px;

  

  /* 背景与布局 */

  background: rgba(0, 0, 0, 0.65); /* 半透明黑 */

  backdrop-filter: blur(8px);    /* 高级毛玻璃 */

  display: flex;

  align-items: center;           /* 垂直居中 */

  justify-content: space-between;/* 左右分布 */

}



/* 标题样式：一行显示 */

.mini-title {

  margin: 0 !important;

  font-size: 14px !important;

  font-weight: 500;

  color: #ffffff;

  white-space: nowrap;

}



/* 圆点样式：移到最右侧 */

.mini-dots {

  display: flex;

  gap: 8px;

  align-items: center;

}



.dot {

  width: 6px;

  height: 6px;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.3);

}



.dot.active {

  background: var(--brand-red); /* 使用你的红色品牌色 */

}



/* --- 轮播图控制样式：加入到现有 CSS 末尾 --- */

.hero-img-slot {

  position: absolute;

  inset: 0;

  z-index: 1;

  overflow: hidden;

}



.hero-image {

  position: absolute; /* 替代原有布局，让三张图重叠 */

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  object-fit: cover;

  opacity: 0; /* 初始全部隐藏 */

  transition: opacity 0.8s ease-in-out; /* 切换时的平滑度 */

  z-index: 1;

}



.hero-image.active {

  opacity: 1; /* 只有带有 .active 类名的图才显示 */

  z-index: 2;

}



/* 确保文字和圆点始终在图片上方 */

.hero-caption-mini {

  position: absolute;

  z-index: 10;

  background: rgba(23, 23, 23, 0.8);

}



.dot {

  cursor: pointer;

  transition: background-color 0.3s;

}






/* ============================================================

   SECTION 4 — OUR PRODUCTS (image+title cards, horizontal row)

   ============================================================ */

/* ── EDIT: product names, images, links ── */

.section { padding: 56px 0; }

.section-gray { padding: 56px 0; background: var(--gray-bg); }



.section-header {

  display: flex;

  align-items: baseline;

  justify-content: space-between;

  margin-bottom: 32px;

}

.section-header h2 {

  font-size: 28px;

  font-weight: 700;

  color: var(--black);

  letter-spacing: -0.2px;

}

.section-header .view-all {

  font: var(--copy-link);

  color: var(--black);

  border: 1px solid var(--border-color);

  padding: 8px 18px;

  border-radius: var(--corner-xs);

  display: inline-flex;

  align-items: center;

  gap: 6px;

  white-space: nowrap;

}

.section-header .view-all:hover { border-color: var(--brand-red); color: var(--brand-red); }



/* Product cards */

.products-row {

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 20px;

}

.product-card {

  border: 1px solid var(--border-color);

  text-decoration: none;

  display: flex;

  flex-direction: column;

  cursor: pointer;

  transition: border-color .15s, box-shadow .15s;

  overflow: hidden;

}

.product-card:hover { border-color: var(--brand-red); box-shadow: 0 4px 20px rgba(0,0,0,0.09); }



/* View-all card */

.product-card-viewall {

  border: 1.5px dashed var(--border-color);

  background: var(--gray-bg);

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 12px;

  text-decoration: none;

  cursor: pointer;

  min-height: 220px;

  transition: border-color .15s, background .15s;

}

.product-card-viewall:hover { border-color: var(--brand-red); background: var(--brand-red-light); }

.product-card-viewall span {

  font-size: 14px;

  font-weight: 700;

  color: var(--black);

}

.product-card-viewall svg { color: var(--brand-red); }



/* ── EDIT: replace .product-img-placeholder with <img src="..." alt="..."> ── */

.product-img-area {

  width: 100%;

  aspect-ratio: 1 / 1;

  overflow: hidden;

  background: var(--gray-bg);

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

}

.product-img-area img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }

.product-card:hover .product-img-area img { transform: scale(1.04); }

.product-img-placeholder {

  width: 100%;

  height: 100%;

  border: 2px dashed var(--gray-light);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 11px;

  color: var(--gray-light);

  letter-spacing: 1px;

  text-transform: uppercase;

  text-align: center;

  padding: 8px;

}

.product-info {

  padding: 16px 16px 18px;

  display: flex;

  flex-direction: column;

  flex: 1;

}

.product-badge {

  display: inline-block;

  font-size: 10px;

  font-weight: 700;

  letter-spacing: 1px;

  text-transform: uppercase;

  padding: 3px 9px;

  border-radius: var(--corner-full);

  margin-bottom: 8px;

  width: fit-content;

  background: var(--black);

  color: #fff;

}

.product-card h3 {

  font-size: 16px;

  font-weight: 700;

  color: var(--black);

  line-height: 1.3;

  margin-bottom: 8px;

}

.product-desc {

  font-size: 13px;

  color: var(--gray-mid);

  line-height: 1.6;

  margin-bottom: 16px;

  flex: 1;

}

.product-price {

  font-size: 14px;

  font-weight: 700;

  color: ;

  margin-bottom: 12px;

  line-height: 1;

}

.product-price-from {

  font-size: 12px;

  font-weight: 400;

  color: var(--gray-mid);

  margin-right: 4px;

  vertical-align: middle;

}

.product-cta {

  font-size: 13px;

  font-weight: 600;

  color: var(--brand-red);

  display: inline-flex;

  align-items: center;

  gap: 4px;

  margin-top: auto;

}

.product-card:hover .product-cta { text-decoration: underline; }



/* ============================================================

   SECTION 5 — PRODUCT FINDER (3-step wizard)

   ============================================================ */

/* ── EDIT: industry list, application list ── */

.finder-wrap {

  background: var(--gray-bg);

  padding: 48px 0;

}

.finder-header {

  display: flex;

  align-items: baseline;

  justify-content: space-between;

  margin-bottom: 28px;

}

.finder-header h2 { font-size: 22px; font-weight: 700; color: var(--black); }

.finder-header a { font: var(--copy-link); color: var(--brand-red); }



.finder-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  border: 1px solid var(--border-color);

  background: var(--border-color);

  gap: 1px;

}

.finder-col {

  background: var(--white);

  padding: 28px 24px;

}

.finder-col.disabled { background: var(--gray-bg); }

.finder-step {

  font-size: 11px;

  font-weight: 600;

  letter-spacing: 1.5px;

  text-transform: uppercase;

  color: var(--gray-mid);

  margin-bottom: 4px;

}

.finder-divider { border: none; border-top: 1px solid var(--border-color); margin: 10px 0 20px; }

.finder-col h3 { font-size: 17px; font-weight: 700; color: var(--black); margin-bottom: 20px; }

.finder-col.disabled h3 { color: var(--gray-light); }



.finder-list { display: flex; flex-direction: column; gap: 0; }

.finder-item {

  font: var(--copy-medium);

  color: var(--gray-mid);

  padding: 10px 12px;

  border-left: 3px solid transparent;

  cursor: pointer;

  transition: all .15s;

  border-radius: 0 4px 4px 0;

}

.finder-item:hover { color: var(--black); background: var(--gray-bg); border-left-color: var(--brand-red); }

.finder-item.active { color: var(--black); background: var(--gray-bg); border-left-color: var(--brand-red); font-weight: 500; }



.finder-placeholder {

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 12px;

  min-height: 200px;

  color: var(--gray-light);

  text-align: center;

}

.finder-placeholder svg { width: 36px; height: 36px; }

.finder-placeholder p { font-size: 13px; line-height: 1.6; }



/* ============================================================

   SECTION 6 — APPLICATIONS / INDUSTRIES (tab + sidebar)

   ============================================================ */

/* ── EDIT: tab labels, sidebar items, content text, image ── */

.sol-tabs { display: flex; border-bottom: 1px solid var(--border-color); background: var(--white); }

.sol-tab {

  padding: 16px 28px;

  font-size: 15px;

  font-weight: 500;

  color: var(--gray-mid);

  border-bottom: 3px solid transparent;

  cursor: pointer;

  transition: all .15s;

}

.sol-tab.active { color: var(--black); border-bottom-color: var(--brand-red); }

.sol-tab:hover { color: var(--black); }



.sol-body {

  display: grid;

  grid-template-columns: 280px 1fr;

  border: 1px solid var(--border-color);

  border-top: none;

}

.sol-sidebar {

  border-right: 1px solid var(--border-color);

  padding: 8px 0;

}

.sol-sidebar-head {

  display: flex;

  align-items: center;

  justify-content: space-between;

  padding: 12px 24px;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 1.5px;

  text-transform: uppercase;

  color: var(--gray-mid);

}

.sol-sidebar-head a { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--brand-red); font-size: 12px; }

.sol-sidebar-head a:hover { text-decoration: underline; }

.sol-item {

  display: block;

  padding: 11px 24px;

  font: var(--copy-medium);

  color: var(--gray-mid);

  border-left: 3px solid transparent;

  cursor: pointer;

  transition: all .15s;

}

.sol-item:hover, .sol-item.active {

  color: var(--black);

  background: var(--gray-bg);

  border-left-color: var(--brand-red);

}



.sol-content { padding: 36px 40px; }

/* ── EDIT: application name, description ── */

.sol-content h3 { font-size: 22px; font-weight: 700; color: var(--black); margin-bottom: 10px; }

.sol-content > p { font: var(--copy-large); color: var(--gray-mid); margin-bottom: 24px; max-width: 520px; line-height: 1.65; }



/* View More button — dark style like Cognex */

.btn-dark-sm {

  display: inline-flex;

  align-items: center;

  gap: 8px;

  padding: 10px 20px;

  background: var(--black);

  color: #fff;

  font: var(--copy-button);

  border-radius: var(--corner-xs);

  transition: background .15s;

  margin-bottom: 28px;

}

.btn-dark-sm:hover { background: #333; }



/* ── EDIT: replace .sol-img-placeholder with <img> or video thumbnail ── */

.sol-img-placeholder {

  width: 100%;

  aspect-ratio: 16/9;

  background: var(--gray-bg);

  border: 1px dashed var(--border-color);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 12px;

  color: var(--gray-light);

  letter-spacing: 1px;

  text-transform: uppercase;

  position: relative;

}

.play-btn {

  width: 60px; height: 45px;

  background: var(--brand-red);

  border-radius: 8px;

  display: flex;

  align-items: center;

  justify-content: center;

  position: absolute;

}

.play-btn svg { width: 24px; height: 24px; fill: #fff; }



/* ============================================================

   SECTION 7 — CUSTOMER STORIES (image + bullets carousel)

   ============================================================ */

/* ── EDIT: company name, headline, benefit bullets, story link, image ── */

.story-card {

  border: 1px solid var(--border-color);

  background: var(--white);

  overflow: hidden;

}

.story-slide { display: none; }

.story-slide.active {

  display: grid;

  grid-template-columns: 1fr 1fr;

}



/* ── EDIT: replace .story-img-placeholder with <img> ── */

.story-img-area { overflow: hidden; }

.story-img-area img { width: 100%; height: 100%; object-fit: cover; }

.story-img-placeholder {

  width: 100%;

  height: 100%;

  min-height: 340px;

  background: var(--gray-bg);

  border-right: 1px dashed var(--border-color);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 12px;

  color: var(--gray-light);

  letter-spacing: 1px;

  text-transform: uppercase;

}



.story-body { padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; }

/* ── EDIT: story headline ── */

.story-body h3 { font-size: 20px; font-weight: 700; color: var(--black); margin-bottom: 28px; line-height: 1.35; }



.story-benefits { display: flex; flex-direction: column; gap: 20px; margin-bottom: 32px; }

.story-benefit { display: flex; align-items: flex-start; gap: 14px; }

.benefit-icon {

  width: 32px; height: 32px;

  border-radius: 50%;

  border: 1.5px solid var(--black);

  display: flex; align-items: center; justify-content: center;

  flex-shrink: 0;

}

.benefit-icon svg { width: 16px; height: 16px; }

/* ── EDIT: benefit title + description ── */

.benefit-text h4 { font-size: 14px; font-weight: 700; color: var(--black); margin-bottom: 3px; }

.benefit-text p  { font-size: 13px; color: var(--gray-mid); line-height: 1.55; }



.story-footer {

  display: flex;

  align-items: center;

  justify-content: space-between;

  border-top: 1px solid var(--border-color);

  padding-top: 20px;

  margin-top: auto;

}

.story-dots { display: flex; gap: 6px; }

.story-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gray-light); cursor: pointer; }

.story-dot.active { background: var(--brand-red); }

.story-nav-arrows { display: flex; gap: 6px; }

.story-arrow {

  width: 34px; height: 34px;

  border: 1px solid var(--border-color);

  border-radius: 0;

  display: flex; align-items: center; justify-content: center;

  cursor: pointer;

}

.story-arrow:hover { border-color: var(--black); }

.story-arrow svg { width: 16px; height: 16px; }

.btn-see-story {

  display: inline-flex;

  align-items: center;

  gap: 6px;

  padding: 10px 18px;

  background: var(--black);

  color: #fff;

  font: var(--copy-button);

  border-radius: var(--corner-xs);

}

.btn-see-story:hover { background: #333; }



/* ============================================================

   SECTION 8 — POPULAR RESOURCES (3-col card grid)

   ============================================================ */

/* ── EDIT: resource cards: image, category tag, title, excerpt ── */

.resources-grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 24px;

}

.resource-card {

  border: 1px solid var(--border-color);

  overflow: hidden;

  cursor: pointer;

  transition: border-color .15s;

  text-decoration: none;

  display: flex;

  flex-direction: column;

}

.resource-card:hover { border-color: var(--brand-red); }

.resource-card:hover .rc-title { color: var(--brand-red); }



/* ── EDIT: replace .rc-img-placeholder with <img> ── */

.rc-img { overflow: hidden; aspect-ratio: 16/9; background: var(--gray-bg); }

.rc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }

.resource-card:hover .rc-img img { transform: scale(1.03); }

.rc-img-placeholder {

  width: 100%;

  height: 100%;

  background: var(--gray-bg);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 11px;

  color: var(--gray-light);

  letter-spacing: 1px;

  text-transform: uppercase;

  min-height: 180px;

}



.rc-body { padding: 20px 20px 24px; flex: 1; display: flex; flex-direction: column; }

/* ── EDIT: category label (e.g., "White Paper", "Video", "Case Study") ── */

.rc-tag {

  font-size: 12px;

  font-weight: 400;

  font-family: var(--font-mono);

  color: var(--gray-mid);

  text-transform: uppercase;

  letter-spacing: 0.5px;

  padding-bottom: 10px;

  border-bottom: 1px solid var(--border-color);

  margin-bottom: 12px;

}

/* ── EDIT: resource headline ── */

.rc-title { font-size: 15px; font-weight: 700; color: var(--black); margin-bottom: 8px; line-height: 1.35; }

/* ── EDIT: excerpt ── */

.rc-desc { font-size: 13px; color: var(--gray-mid); line-height: 1.6; flex: 1; }



/* ============================================================

   SECTION 9 — LEAD GEN FORM (second CTA, full-width)

   ============================================================ */

/* ── EDIT: form headline, subtitle, field labels, CTA text ── */

.lead-form-section {

  background: var(--brand-red);

  padding: 64px 0;

}

.lead-form-inner {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 64px;

  align-items: center;

}

.lead-form-copy h2 {

  font-size: 32px;

  font-weight: 700;

  color: #fff;

  margin-bottom: 16px;

  line-height: 1.2;

}

.lead-form-copy p {

  font: var(--copy-large);

  color: rgba(255,255,255,0.75);

  line-height: 1.65;

  margin-bottom: 24px;

}

.lead-form-bullets { display: flex; flex-direction: column; gap: 12px; }

.lead-form-bullet {

  display: flex;

  align-items: center;

  gap: 10px;

  font-size: 14px;

  color: rgba(255,255,255,0.85);

}

.lead-form-bullet::before {

  content: '';

  display: block;

  width: 6px; height: 6px;

  border-radius: 50%;

  background: #fff;

  flex-shrink: 0;

}



.lead-form-box {

  background: rgba(255,255,255,0.12);

  border: 1px solid rgba(255,255,255,0.25);

  padding: 36px 32px;

  border-radius: var(--corner-xs);

}

/* Form fields */

.form-row { margin-bottom: 14px; }

.form-row label {

  display: block;

  font-size: 12px;

  font-weight: 500;

  letter-spacing: 0.5px;

  text-transform: uppercase;

  color: rgba(255,255,255,0.7);

  margin-bottom: 6px;

}

.form-row input,

.form-row select {

  width: 100%;

  height: 42px;

  padding: 0 14px;

  border: 1px solid rgba(255,255,255,0.2);

  border-radius: var(--corner-xs);

  background: rgba(255,255,255,0.1);

  color: #fff;

  font: var(--copy-medium);

  outline: none;

  appearance: none;

  -webkit-appearance: none;

}

.form-row input::placeholder { color: rgba(255,255,255,0.4); }

.form-row input:focus,

.form-row select:focus { border-color: #fff; background: rgba(255,255,255,0.15); }

.form-row select option { background: var(--black); color: #fff; }

.form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.form-submit {

  width: 100%;

  height: 48px;

  margin-top: 8px;

  background: #fff;

  color: var(--brand-red);

  font-size: 15px;

  font-weight: 700;

  letter-spacing: 0.3px;

  border-radius: var(--corner-full);

  transition: background .15s, color .15s;

  cursor: pointer;

  border: none;

}

.form-submit:hover { background: var(--black); color: #fff; }

.form-privacy {

  font-size: 11px;

  color: rgba(255,255,255,0.5);

  text-align: center;

  margin-top: 10px;

  line-height: 1.5;

}



/* ============================================================

   SECTION 10 — FOOTER (dark 3-column)

   ============================================================ */

/* ── EDIT: address, quick links, social icons, copyright ── */

footer {

  background: var(--black);

  padding: 56px 0 32px;

}

.footer-grid {

  display: grid;

  grid-template-columns: 1.6fr 1fr 1.4fr;

  gap: 56px;

  margin-bottom: 48px;

}



/* Footer logo */

.footer-logo-block { display: flex; flex-direction: column; gap: 0; }

/* ── EDIT: replace footer-logo-placeholder with <img src="...logo-white.png"> ── */

.footer-logo-placeholder {

  width: 160px;

  height: 36px;

  background: var(--brand-red);

  display: flex;

  align-items: center;

  justify-content: center;

  color: #fff;

  font-weight: 700;

  font-size: 16px;

  letter-spacing: 1px;

  text-transform: uppercase;

  margin-bottom: 20px;

}



/* ── EDIT: company address ── */

.footer-heading { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 12px; }

.footer-address { font-size: 14px; color: rgba(255,255,255,0.5); line-height: 1.8; margin-bottom: 20px; }

.btn-contact {

  display: inline-flex;

  align-items: center;

  gap: 6px;

  padding: 10px 20px;

  border: 1.5px solid rgba(255,255,255,0.3);

  color: #fff;

  font: var(--copy-button);

  border-radius: var(--corner-xs);

  transition: border-color .15s;

  background: transparent;

  cursor: pointer;

}

.btn-contact:hover { border-color: #fff; }



/* ── EDIT: quick links list ── */

.footer-links-col h4 {

  font-size: 12px;

  font-weight: 700;

  letter-spacing: 1.5px;

  text-transform: uppercase;

  color: rgba(255,255,255,0.4);

  margin-bottom: 16px;

}

.footer-link-list { display: flex; flex-direction: column; gap: 10px; }

.footer-link-list a {

  font-size: 14px;

  color: rgba(255,255,255,0.65);

}

.footer-link-list a:hover { color: #fff; }



/* Footer subscription form */

.footer-form-title { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 16px; }

.footer-form input,

.footer-form select {

  width: 100%;

  height: 40px;

  padding: 0 14px;

  border: 1px solid rgba(255,255,255,0.15);

  background: rgba(255,255,255,0.07);

  color: #fff;

  font: var(--copy-medium);

  margin-bottom: 10px;

  outline: none;

  appearance: none;

  border-radius: var(--corner-xs);

}

.footer-form input::placeholder { color: rgba(255,255,255,0.35); }

.footer-form input:focus,

.footer-form select:focus { border-color: rgba(255,255,255,0.4); }

.footer-form select option { background: var(--black); }

.footer-submit {

  width: 100%;

  height: 40px;

  background: var(--brand-red);

  color: #fff;

  font: var(--copy-button);

  font-size: 14px;

  border-radius: var(--corner-xs);

  border: none;

  cursor: pointer;

  transition: background .15s;

}

.footer-submit:hover { background: var(--brand-red-dark); }



/* Social icons */

.footer-socials { display: flex; gap: 10px; margin-top: 16px; }

.social-btn {

  width: 36px; height: 36px;

  border: 1px solid rgba(255,255,255,0.2);

  display: flex; align-items: center; justify-content: center;

  border-radius: var(--corner-xs);

  cursor: pointer;

  transition: border-color .15s;

}

.social-btn:hover { border-color: rgba(255,255,255,0.5); }

.social-btn svg { width: 18px; height: 18px; fill: rgba(255,255,255,0.65); }



/* Footer bottom bar */

.footer-bottom {

  border-top: 1px solid rgba(255,255,255,0.1);

  padding-top: 24px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 16px;

}

/* ── EDIT: copyright year, company name, ICP number ── */

.footer-bottom p { font-size: 12px; color: rgba(255,255,255,0.35); }

.footer-utility-links { display: flex; gap: 20px; flex-wrap: wrap; }

.footer-utility-links a { font-size: 12px; color: rgba(255,255,255,0.35); }

.footer-utility-links a:hover { color: rgba(255,255,255,0.7); }



/* ============================================================

   GLOBAL OVERFLOW PREVENTION

   ============================================================ */

html, body {

  overflow-x: hidden;

  max-width: 100%;

}

* { max-width: 100%; }



/* ============================================================

   MOBILE RESPONSIVE

   ============================================================ */

@media (max-width: 1200px) {

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

}

@media (max-width: 1024px) {

  .hero-title { font-size: 36px; }

  .nav-account { display: none; }

}



@media (max-width: 768px) {



  /* ── Utility bar: single line, minimal, no overflow ── */

  .utility-bar { height: auto; padding: 6px 0; }

  .utility-bar .container {

    flex-wrap: nowrap;

    gap: 0;

    justify-content: center;

    overflow: visible;

  }

  .utility-bar a,

  .utility-bar span { font-size: 11px; white-space: nowrap; padding: 0 8px; }

  /* Hide non-essential items on mobile */

  .utility-bar a:not(.sales-link):not(:first-child) { display: none; }

  .utility-bar .sales { display: block; text-align: center; padding: 0; }

  /* Show only Contact + Sales on mobile */



  /* ── Nav: clean sticky bar with logo + hamburger ── */

  .main-nav { height: var(--header-height-mobile); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }

  .main-nav .container {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-inline: 16px;

    gap: 12px;

    width: 100%;

    box-sizing: border-box;

  }

  .nav-logo { margin-right: 0; flex: 1; }

  .nav-logo-img { height: 22px; }

  .nav-search { display: none; }

  .nav-links { display: none; }

  .nav-account { display: none; }

  .nav-hamburger {

    display: flex;

    flex-shrink: 0;

    margin-left: 0;

    padding: 6px;

  }



  /* ── Hero: single column stacked ── */

  .hero {

    display: flex;

    flex-direction: column;

    min-height: auto;

  }

  .hero-left {

    padding: 36px 0 32px;

    order: 2;

  }

  .hero-left .container-inner {

    max-width: 100%;

    padding-inline: 20px;

    margin: 0;

  }

  .hero-title {

    font-size: 28px;

    letter-spacing: -0.3px;

    word-break: break-word;

    overflow-wrap: break-word;

    hyphens: auto;

  }

  .hero-desc {

    font-size: 15px;

    max-width: 100%;

  }

  .hero-ctas {

    flex-direction: column;

    gap: 10px;

    width: 100%;

  }

  .btn-primary,

  .btn-secondary {

    width: 100%;

    justify-content: center;

    box-sizing: border-box;

    white-space: normal;

    text-align: center;

    padding: 14px 20px;

  }

  .hero-right {

    order: 1;

    min-height: 240px;

  }

  .hero-caption { padding: 18px 20px; }

  .hero-caption h2 { font-size: 15px; }

  .hero-caption p { font-size: 13px; display: none; }



  /* ── Sections ── */

  .section, .section-gray { padding: 40px 0; }

  .section-header {

    flex-direction: column;

    gap: 12px;

    align-items: flex-start;

  }

  .section-header h2 { font-size: 22px; }



  /* ── Products grid: 2 columns on mobile ── */

  .products-row {

    grid-template-columns: repeat(2, 1fr);

    gap: 12px;

  }

  /* aspect-ratio: 1/1 handles square on all screen sizes */

  .product-info { padding: 12px 12px 14px; }

  .product-card-viewall { min-height: 130px; }

  .product-badge { font-size: 9px; padding: 2px 7px; }



  /* ── Product Finder: stacked ── */

  .finder-grid { grid-template-columns: 1fr; gap: 1px; }

  .finder-wrap { padding: 36px 0; }

  .finder-header { flex-direction: column; gap: 10px; align-items: flex-start; }



  /* ── Solutions ── */

  .sol-body { grid-template-columns: 1fr; }

  .sol-sidebar { border-right: none; border-bottom: 1px solid var(--border-color); }

  .sol-content { padding: 24px 20px; }



  /* ── Customer stories ── */

  .story-slide.active {

    display: flex;

    flex-direction: column;

  }

  .story-img-area { order: 1; }

  .story-img-placeholder { min-height: 220px; }

  .story-body { order: 2; padding: 24px 20px; }

  .story-footer { flex-wrap: wrap; gap: 12px; }

  .btn-see-story { width: 100%; justify-content: center; }



  /* ── Resources: 1 column ── */

  .resources-grid { grid-template-columns: 1fr; gap: 16px; }



  /* ── Lead form ── */

  .lead-form-section { padding: 44px 0; }

  .lead-form-inner { grid-template-columns: 1fr; gap: 28px; }

  .lead-form-copy h2 { font-size: 22px; }

  .form-2col { grid-template-columns: 1fr; }

  .lead-form-box { padding: 24px 20px; }



  /* ── Footer ── */

  footer { padding: 40px 0 24px; }

  .footer-grid { grid-template-columns: 1fr; gap: 28px; }

  .footer-bottom {

    flex-direction: column;

    align-items: flex-start;

    gap: 10px;

  }

  .footer-utility-links { flex-wrap: wrap; gap: 12px; }



  /* ── Container padding ── */

  .container { padding-inline: 16px; }

}



@media (max-width: 480px) {

  .utility-bar .util-link, .utility-bar .sales { display: none; } /* Hide non-essential, keep lang switcher */

  .hero-title { font-size: 24px; }

  .nav-logo-img { height: 20px; }

  .sol-tab { padding: 14px 16px; font-size: 14px; }

  .finder-header h2 { font-size: 18px; }

}



/* ============================================================

   MOBILE NAV OVERLAY (JS toggled)

   ============================================================ */

.mobile-nav-overlay {

  display: none;

  position: fixed;

  inset: 0;

  background: var(--white);

  z-index: 500;

  overflow-y: auto;

  padding: 0 24px 40px;

}

.mobile-nav-overlay.open { display: block; }

.mobile-nav-header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  height: 64px;

  border-bottom: 1px solid var(--border-color);

  margin-bottom: 16px;

}

.mobile-nav-close {

  width: 40px; height: 40px;

  display: flex; align-items: center; justify-content: center;

  border: 1px solid var(--border-color);

  border-radius: 50%;

  cursor: pointer;

  font-size: 20px;

  color: var(--black);

}

.mobile-nav-links { display: flex; flex-direction: column; }

.mobile-nav-links a {

  padding: 16px 0;

  font-size: 18px;

  font-weight: 500;

  color: var(--black);

  border-bottom: 1px solid var(--border-color);

  display: block;

}

.mobile-nav-cta {

  margin-top: 24px;

  display: flex;

  flex-direction: column;

  gap: 12px;

}



/* Utility bar — hide non-critical links on mobile via class */

@media (max-width: 768px) {

  .util-link { display: none !important; }

  .utility-bar .sales { font-size: 12px; }

}

@media (max-width: 480px) {

  .utility-bar .util-link, .utility-bar .sales { display: none; }

}





/* ── Product Finder: desktop/mobile toggle ── */

.finder-desktop { display: grid; }

.finder-mobile  { display: none; }



/* ── Mobile finder: compact dropdowns ── */

.finder-mobile-row {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 12px;

  margin-bottom: 16px;

}

.finder-mobile-step { display: flex; flex-direction: column; gap: 6px; }

.finder-mobile-label {

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 1px;

  text-transform: uppercase;

  color: var(--gray-mid);

}

.finder-select-wrap { position: relative; }

.finder-select {

  width: 100%;

  height: 44px;

  padding: 0 36px 0 14px;

  border: 1.5px solid var(--border-color);

  border-radius: var(--corner-xs);

  background: var(--white);

  font: var(--copy-medium);

  color: var(--black);

  appearance: none;

  -webkit-appearance: none;

  outline: none;

  cursor: pointer;

}

.finder-select:focus { border-color: var(--brand-red); }

.finder-select-arrow {

  position: absolute;

  right: 12px; top: 50%;

  transform: translateY(-50%);

  width: 12px; height: 12px;

  color: var(--gray-mid);

  pointer-events: none;

}



/* Result panel */

.finder-mobile-result {

  border: 1.5px solid var(--border-color);

  border-radius: var(--corner-xs);

  padding: 18px 20px;

  background: var(--white);

}

.fmr-pending {

  display: flex;

  align-items: center;

  gap: 12px;

  color: var(--gray-mid);

  font-size: 13px;

}

.fmr-pending svg { color: var(--gray-light); flex-shrink: 0; }

.fmr-card { display: flex; flex-direction: column; gap: 8px; }

.fmr-tag {

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 1px;

  text-transform: uppercase;

  color: var(--brand-red);

}

.fmr-name { font-size: 17px; font-weight: 700; color: var(--black); }

.fmr-desc { font-size: 13px; color: var(--gray-mid); line-height: 1.55; }

.fmr-cta {

  display: inline-flex;

  align-items: center;

  gap: 6px;

  font-size: 13px;

  font-weight: 600;

  color: var(--brand-red);

  margin-top: 4px;

}

.fmr-cta:hover { text-decoration: underline; }



@media (max-width: 768px) {

  .finder-desktop { display: none !important; }

  .finder-mobile  { display: block; }

  .finder-header h2 { font-size: 20px; }

}

@media (max-width: 480px) {

  .finder-mobile-row { grid-template-columns: 1fr; }

}



/* ═══════════════════════════════════════════════════════

   CUSTOM SOLUTIONS SECTION

   ═══════════════════════════════════════════════════════ */

.custom-section {

  padding: 72px 0;

  background: var(--white);

  border-top: 1px solid var(--border-color);

}

.custom-inner {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 64px;

  align-items: center;

}

.custom-tag {

  display: inline-flex;

  align-items: center;

  gap: 8px;

  font-size: 12px;

  font-weight: 700;

  letter-spacing: 2px;

  text-transform: uppercase;

  color: var(--brand-red);

  margin-bottom: 16px;

}

.custom-tag::before {

  content: '';

  display: block;

  width: 20px;

  height: 2px;

  background: var(--brand-red);

  flex-shrink: 0;

}

.custom-copy h2 {

  font-size: 34px;

  font-weight: 700;

  color: var(--black);

  line-height: 1.15;

  letter-spacing: -0.4px;

  margin-bottom: 16px;

}

.custom-copy h2 em {

  font-style: normal;

  color: var(--brand-red);

}

.custom-copy > p {

  font: var(--copy-large);

  color: var(--gray-mid);

  line-height: 1.65;

  margin-bottom: 32px;

  max-width: 480px;

}

.custom-capabilities {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 12px;

  margin-bottom: 36px;

}

.custom-cap {

  display: flex;

  align-items: flex-start;

  gap: 10px;

  padding: 14px 16px;

  border: 1px solid var(--border-color);

  border-radius: var(--corner-xs);

  transition: border-color .15s, background .15s;

}

.custom-cap:hover { border-color: var(--brand-red); background: var(--brand-red-light); }

.custom-cap-icon {

  width: 32px;

  height: 32px;

  background: var(--brand-red-light);

  border-radius: 6px;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

  margin-top: 1px;

}

.custom-cap-icon svg { width: 16px; height: 16px; color: var(--brand-red); }

.custom-cap h4 { font-size: 13px; font-weight: 700; color: var(--black); margin-bottom: 2px; line-height: 1.3; }

.custom-cap p  { font-size: 12px; color: var(--gray-mid); line-height: 1.45; }



.custom-ctas { display: flex; gap: 12px; flex-wrap: wrap; }



/* Right side: visual */

.custom-visual {

  position: relative;

}

.custom-vis-main {

  background: var(--black);

  border-radius: 12px;

  overflow: hidden;

  aspect-ratio: 4/3;

  display: flex;

  align-items: center;

  justify-content: center;

  position: relative;

}

/* ── EDIT: replace with actual image <img src="custom-solutions.jpg"> ── */

.custom-vis-placeholder {

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 12px;

  color: rgba(255,255,255,0.2);

  font-size: 12px;

  letter-spacing: 1px;

  text-transform: uppercase;

  width: 100%;

  height: 100%;

}

.custom-vis-placeholder svg { opacity: 0.3; width: 48px; height: 48px; }



/* Floating stat cards */

.custom-stat-cards {

  position: absolute;

  bottom: -20px;

  left: -20px;

  display: flex;

  flex-direction: column;

  gap: 8px;

}

.custom-stat {

  background: var(--white);

  border: 1px solid var(--border-color);

  border-radius: 10px;

  padding: 12px 18px;

  display: flex;

  align-items: center;

  gap: 12px;

  box-shadow: 0 4px 16px rgba(0,0,0,0.08);

  white-space: nowrap;

}

.custom-stat-num {

  font-size: 22px;

  font-weight: 700;

  color: var(--brand-red);

  line-height: 1;

}

.custom-stat-label {

  font-size: 12px;

  color: var(--gray-mid);

  line-height: 1.3;

}



/* Process steps strip */

.custom-process {

  display: flex;

  align-items: flex-start;

  gap: 0;

  margin-top: 40px;

  padding: 28px 24px 24px;

  background: var(--gray-bg);

  border: 1px solid var(--border-color);

  border-radius: var(--corner-xs);

  overflow: visible;

  position: relative;

}

.custom-process-step {

  display: flex;

  flex-direction: column;

  align-items: center;

  gap: 8px;

  flex: 1;

  padding: 0 8px;

  text-align: center;

  position: relative;

  z-index: 1;

}

/* Connector line: each step draws its left half, all-but-last draws right half */

.custom-process-step::before,

.custom-process-step::after {

  content: '';

  position: absolute;

  top: 20px; /* half of 40px circle */

  height: 0;

  border-top: 2px dashed var(--gray-light);

  z-index: 0;

}

/* Left half of connector (hidden on first step) */

.custom-process-step::before {

  left: 0;

  width: 50%;

}

/* Right half of connector (hidden on last step) */

.custom-process-step::after {

  right: 0;

  width: 50%;

}

.custom-process-step:first-child::before { display: none; }

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



.custom-process-num {

  width: 40px; height: 40px;

  border-radius: 50%;

  background: var(--brand-red);

  color: #fff;

  font-size: 16px;

  font-weight: 700;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

  position: relative;

  z-index: 2;

}

.custom-process-step h4 { font-size: 12px; font-weight: 700; color: var(--black); }

.custom-process-step p  { font-size: 11px; color: var(--gray-mid); line-height: 1.4; }



@media (max-width: 900px) {

  .custom-inner { grid-template-columns: 1fr; gap: 36px; }

  .custom-copy h2 { font-size: 26px; }

  .custom-stat-cards { position: static; flex-direction: row; flex-wrap: wrap; margin-top: 16px; }

  .custom-vis-main { aspect-ratio: 16/9; border-radius: 8px; }

}

@media (max-width: 600px) {

  .custom-capabilities { grid-template-columns: 1fr; }

  .custom-ctas { flex-direction: column; }

  .custom-ctas .btn-primary,

  .custom-ctas .btn-secondary { width: 100%; justify-content: center; }

  .custom-section { padding: 48px 0; }



  /* Mobile process: vertical timeline list */

  .custom-process {

    display: flex;

    flex-direction: column;

    gap: 0;

    padding: 4px 16px 4px;

    overflow: visible;

    background: transparent;

    border: none;

    margin-top: 28px;

  }

  .custom-process-step {

    display: grid;

    grid-template-columns: 22px 1fr;

    grid-template-rows: auto auto;

    column-gap: 12px;

    text-align: left;

    flex: none;

    padding: 0 0 18px;

    position: relative;

    align-items: start;

  }

  /* Kill horizontal desktop connectors */

  .custom-process-step::before { display: none !important; }

  /* Vertical connector line */

  .custom-process-step::after {

    display: block;

    position: absolute;

    left: 10px;   /* center of 22px circle */

    top: 22px;    /* below the circle */

    bottom: 0;

    width: 0;

    height: auto;

    border-top: none;

    border-left: 1px solid var(--gray-light);

  }

  .custom-process-step:last-child { padding-bottom: 4px; }

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

  .custom-process-num {

    grid-column: 1;

    grid-row: 1 / 3;

    width: 22px; height: 22px;

    font-size: 11px;

    font-weight: 700;

    align-self: start;

    margin-top: 1px;

    flex-shrink: 0;

  }

  .custom-process-step h4 {

    grid-column: 2;

    grid-row: 1;

    font-size: 13px;

    font-weight: 700;

    color: var(--black);

    line-height: 1.3;

    padding-top: 2px;

  }

  .custom-process-step p {

    grid-column: 2;

    grid-row: 2;

    font-size: 12px;

    color: var(--gray-mid);

    line-height: 1.5;

    margin-top: 2px;

  }

}



/* ═══════════════════════════════════════════════════════

   BRAND STANDARDS BAR

   ═══════════════════════════════════════════════════════ */

.brands-bar {

  background: var(--white);

  border-top: 1px solid var(--border-color);

  border-bottom: 1px solid var(--border-color);

  padding: 48px 0;

}

.brands-label {

  text-align: center;

  font-size: 15px;

  font-weight: 500;

  color: var(--gray-mid);

  max-width: 620px;

  margin: 0 auto 36px;



  line-height: 1.5;

}

.brands-row {

  display: grid;

  grid-template-columns: repeat(5, 1fr);

  gap: 36px 0;

  align-items: center;

  justify-items: center;

}

.brand-item {

  display: flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

  transition: opacity .2s;

}

.brand-item img {

  height: 32px;

  width: auto;

  display: block;

  filter: brightness(0) opacity(0.45);

  transition: filter .2s;

}

.brand-item:hover img { filter: brightness(0) opacity(0.75); }

@media (max-width: 768px) {

  .brands-bar { padding: 36px 0; }

  .brands-row { grid-template-columns: repeat(4, 1fr); gap: 28px 0; }

  .brand-item img { height: 24px; }

}

@media (max-width: 480px) {

  .brands-row { grid-template-columns: repeat(3, 1fr); gap: 24px 0; }

  .brand-item img { height: 22px; }

}



/* ═══════════════════════════════════════════════════════

   GLOBAL DELIVERY SECTION

   ═══════════════════════════════════════════════════════ */

.global-section {

  background: var(--gray-bg);

  padding: 80px 0;

  overflow: hidden;

}

.global-section > .container {

  max-width: none;

  padding-left: max(24px, calc((100vw - 1320px) / 2 + 24px));

  padding-right: 0;

}

.global-inner {

  display: grid;

  grid-template-columns: 1fr 44%;

  gap: 56px;

  align-items: stretch;

}

.global-eyebrow {

  display: inline-flex;

  align-items: center;

  gap: 10px;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 2.5px;

  text-transform: uppercase;

  color: var(--brand-red);

  margin-bottom: 20px;

}

.global-eyebrow::before {

  content: '';

  display: block;

  width: 24px; height: 2px;

  background: var(--brand-red);

  flex-shrink: 0;

}

.global-copy h2 {

  font-size: 38px;

  font-weight: 700;

  color: var(--black);

  line-height: 1.12;

  letter-spacing: -0.5px;

  margin-bottom: 16px;

}

.global-copy h2 em {

  font-style: normal;

  color: var(--brand-red);

}

.global-copy > p {

  font: var(--copy-large);

  color: var(--gray-mid);

  line-height: 1.7;

  max-width: 500px;

  margin-bottom: 36px;

}

.global-regions {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 12px;

}

.global-region {

  border: 1px solid var(--border-color);

  border-radius: var(--corner-xs);

  padding: 18px 16px 20px;

  background: var(--white);

  transition: border-color .2s, background .2s;

}

.global-region:hover {

  border-color: var(--brand-red);

  background: rgba(200,16,46,0.04);

}

.global-region-dot {

  width: 7px; height: 7px;

  border-radius: 50%;

  background: var(--brand-red);

  display: block;

  margin-bottom: 10px;

}

.global-region-name {

  font-size: 15px;

  font-weight: 700;

  color: var(--black);

  margin-bottom: 8px;

  line-height: 1.3;

}

.global-region-markets {

  font-size: 13px;

  color: rgba(0,0,0,0.55);

  line-height: 1.8;

}

.global-stats {

  display: flex;

  gap: 0;

  margin-top: 36px;

  padding-top: 28px;

  border-top: 1px solid var(--border-color);

}

.global-stat-item {

  flex: 1;

  display: flex;

  flex-direction: column;

  gap: 5px;

  padding-right: 16px;

  border-right: 1px solid var(--border-color);

  margin-right: 16px;

}

.global-stat-item:last-child { border-right: none; margin-right: 0; }

.global-stat-num {

  font-size: 38px;

  font-weight: 700;

  color: var(--black);

  letter-spacing: -1px;

  line-height: 1;

  font-variant-numeric: tabular-nums;

}

.global-stat-label {

  font-size: 13px;

  color: rgba(0,0,0,0.55);

  line-height: 1.5;

}

.global-img-slot {

  position: relative;

  overflow: hidden;

  border-radius: 0;

  margin-top: -80px;

  margin-bottom: -80px;

}

.global-img-slot img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }

.global-img-placeholder {

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  gap: 14px;

  color: rgba(255,255,255,0.18);

  font-size: 11px;

  letter-spacing: 1.5px;

  text-transform: uppercase;

  text-align: center;

  padding: 24px;

}

.global-img-placeholder svg { width: 44px; height: 44px; opacity: 0.2; }



@media (max-width: 1024px) {

  .global-inner { grid-template-columns: 1fr; gap: 40px; }

  .global-section > .container { padding-left: 0; padding-right: 0; max-width: var(--container-max); }

  .global-section .global-copy { padding-left: 24px; padding-right: 24px; }

  .global-img-slot { aspect-ratio: 16/8; margin-top: 0; margin-left: 0; margin-right: 0; margin-bottom: -80px; width: 100%; }

  .global-copy h2 { font-size: 30px; }

}

@media (max-width: 600px) {

  .global-section { padding: 52px 0; }

  .global-img-slot { margin-bottom: -52px; }

  .global-copy h2 { font-size: 24px; }



  /* 区域卡片：保持3列横排，压缩内边距和字号 */

  .global-regions { grid-template-columns: repeat(3, 1fr); gap: 8px; }

  .global-region { padding: 12px 10px 14px; }

  .global-region-dot { width: 6px; height: 6px; margin-bottom: 7px; }

  .global-region-name { font-size: 13px; margin-bottom: 5px; }

  .global-region-markets { font-size: 12px; line-height: 1.7; }



  /* 数字指标：4项横排，去掉竖分隔线 */

  .global-stats { flex-wrap: nowrap; gap: 0; }

  .global-stat-item {

    flex: 1;

    border-right: 1px solid rgba(255,255,255,0.08);

    margin-right: 0;

    padding-right: 0;

    padding: 0 8px;

    text-align: center;

  }

  .global-stat-item:first-child { padding-left: 0; }

  .global-stat-item:last-child { border-right: none; }

  .global-stat-num { font-size: 24px; }

  .global-stat-label { font-size: 12px; }

}



/* ============================================================
   SECTION -- INDUSTRIES WE SERVE
   Editorial line-grid. Internal dividers only, no outer frame.
   ============================================================ */

.industries-section {
  padding: 64px 0 72px;
  background: #fff;
}

.industries-section .section-header {
  margin-bottom: 0;
}

/* Internal dividers only — no outer border */
.industries-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 36px;
}

.ind-cell {
  border-right: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: 28px 24px 30px;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.ind-cell.is-visible { opacity: 1; }

/* No right border on last column */
.ind-cell:nth-child(4n) { border-right: none; }

/* No bottom border on last row (items 5–8 of 8) */
.ind-cell:nth-last-child(-n+4) { border-bottom: none; }

/* Subtle image slot */
.ind-img {
  width: 100%;
  height: 100px;
  margin-bottom: 18px;
  overflow: hidden;
  background: #f4f4f4;
}

.ind-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(35%) contrast(0.9);
  opacity: 0.8;
  display: block;
}

.ind-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.35;
  margin: 0 0 7px;
  letter-spacing: 0.01em;
}

.ind-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.62;
  margin: 0;
}

.ind-cta {
  display: inline-block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 500;
  color: var(--brand-red);
}

/* Tablet: 4-col → 3-col, reset nth-child, recalculate last row */
@media (max-width: 1024px) {
  .industries-grid { grid-template-columns: repeat(3, 1fr); }

  .ind-cell:nth-child(4n)       { border-right: 1px solid var(--border-color); }
  .ind-cell:nth-child(3n)       { border-right: none; }

  .ind-cell:nth-last-child(-n+4) { border-bottom: 1px solid var(--border-color); }
  .ind-cell:nth-last-child(-n+2) { border-bottom: none; }
}

/* Mobile: stays 3-col per spec */
@media (max-width: 768px) {
  .ind-cell { padding: 20px 16px 22px; }
  .ind-img  { height: 76px; margin-bottom: 14px; }
  .industries-section { padding: 48px 0 56px; }
  .ind-name { font-size: 13px; }
  .ind-desc { font-size: 12px; line-height: 1.55; }
}

@media (max-width: 480px) {
  .ind-img  { height: 56px; }
  .ind-name { font-size: 12px; }
  .ind-desc { display: none; }
}

/* -- END: INDUSTRIES WE SERVE -- */


/* ============================================================
   PRODUCT CATEGORIES — clickable grid, German industrial style
   ============================================================ */
.cat-section {
  background: var(--white);
  padding: 88px 0 96px;
  border-top: 1px solid var(--border-color);
}
.cat-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
  padding: 0 24px;
}
.cat-eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--brand-red);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.cat-eyebrow::before { content: "§ "; opacity: 0.55; }
.cat-header h2 {
  font-size: clamp(26px, 3.2vw, 36px);
  font-weight: 700;
  color: var(--black);
  line-height: 1.22;
  letter-spacing: -0.012em;
  margin: 0 0 18px;
}
.cat-header p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--gray-mid);
  margin: 0;
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--border-color);
  border-left: 1px solid var(--border-color);
}

.cat-item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 168px;
  padding: 26px 22px 24px;
  border-right: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  text-decoration: none;
  color: var(--black);
  background: var(--white);
  transition: background 0.18s ease, color 0.18s ease;
}

.cat-item:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: -2px;
}

.cat-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--gray-mid);
  letter-spacing: 0.14em;
  transition: color 0.18s ease;
}

.cat-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.32;
  letter-spacing: -0.005em;
  margin-top: 22px;
  color: var(--black);
  transition: color 0.18s ease;
}

.cat-arrow {
  position: absolute;
  bottom: 22px;
  right: 22px;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gray-mid);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.18s ease, transform 0.18s ease, color 0.18s ease;
}

.cat-item:hover {
  background: var(--brand-red);
  color: var(--white);
}
.cat-item:hover .cat-num,
.cat-item:hover .cat-title,
.cat-item:hover .cat-arrow { color: var(--white); }
.cat-item:hover .cat-arrow {
  opacity: 1;
  transform: translateX(0);
}

/* Tablet — 2 columns */
@media (max-width: 980px) {
  .cat-section { padding: 64px 0 72px; }
  .cat-header { margin-bottom: 40px; }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .cat-item { min-height: 132px; padding: 22px 20px 20px; }
}

/* Mobile — single column, tighter */
@media (max-width: 600px) {
  .cat-section { padding: 48px 0 56px; }
  .cat-grid { grid-template-columns: 1fr; }
  .cat-item {
    min-height: 0;
    padding: 18px 18px 18px 20px;
    flex-direction: row;
    align-items: center;
    gap: 14px;
  }
  .cat-num {
    flex: 0 0 auto;
    min-width: 38px;
    font-size: 10px;
  }
  .cat-title {
    flex: 1;
    margin-top: 0;
    font-size: 15px;
  }
  .cat-arrow {
    position: static;
    opacity: 1;
    transform: none;
    flex: 0 0 auto;
  }
  .cat-header h2 { font-size: 24px; }
  .cat-header p { font-size: 14px; }
}

/* -- END: PRODUCT CATEGORIES -- */


