@font-face {
  font-family: "Inter";
  src: url("/wp-content/uploads/aipress-sites/20260905_DybLcaL3/css/../fonts/Inter-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --ink: #0b1726;
  --ink-2: #13263a;
  --slate: #41566c;
  --muted: #6a7a8c;
  --line: #dce3e9;
  --paper: #ffffff;
  --soft: #f3f6f8;
  --red: #ad1018;
  --red-bright: #d31c25;
  --steel: #9bacb9;
  --shell: min(1280px, calc(100vw - 64px));
  --shadow: 0 24px 80px rgba(8, 25, 42, 0.14);
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: 106px;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Inter", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

img,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

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

button,
input,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid rgba(211, 28, 37, 0.62);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 999;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: #fff;
  background: var(--red);
  transform: translateY(-160%);
  transition: transform 0.2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.shell {
  width: var(--shell);
  margin-inline: auto;
}

.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 1px 0 rgba(11, 23, 38, 0.08);
  backdrop-filter: blur(18px);
}

.utility-bar {
  color: #e9eef2;
  background: var(--ink);
  font-size: 12px;
  letter-spacing: 0.02em;
}

.utility-bar__inner {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.utility-bar p {
  margin: 0;
}

.utility-bar__contact {
  display: flex;
  gap: 12px;
  align-items: center;
}

.utility-bar a {
  transition: color 0.2s ease;
}

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

.navigation {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}

.brand {
  flex: 0 0 auto;
  width: 112px;
}

.brand img {
  width: 100%;
  height: auto;
}

.desktop-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 1.55vw, 28px);
  margin-left: auto;
}

.desktop-nav a {
  position: relative;
  padding: 27px 0 24px;
  color: #263b4f;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.desktop-nav a::after {
  position: absolute;
  bottom: 18px;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  background: var(--red);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.25s ease;
}

.desktop-nav a:hover,
.desktop-nav a.is-current {
  color: var(--red);
}

.desktop-nav a:hover::after,
.desktop-nav a.is-current::after {
  transform: scaleX(1);
  transform-origin: left;
}

.navigation__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.language-picker {
  position: relative;
}

.language-picker__trigger {
  min-width: 54px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: var(--ink);
  border: 1px solid var(--line);
  background: #fff;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.language-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  min-width: 190px;
  padding: 9px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--shadow);
}

.language-menu a,
.language-menu > span {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 9px;
  color: var(--slate);
  font-size: 13px;
}

.language-menu a:hover,
.language-menu a.is-active {
  color: var(--red);
  background: var(--soft);
}

.language-menu > span {
  opacity: 0.56;
  cursor: not-allowed;
}

.language-menu small {
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.button {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 22px;
  color: #fff;
  border: 1px solid var(--red);
  background: var(--red);
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.button:hover {
  color: #fff;
  border-color: var(--red-bright);
  background: var(--red-bright);
  transform: translateY(-2px);
}

.button--compact {
  min-height: 42px;
  padding: 10px 16px;
  font-size: 12px;
}

.button--ghost {
  border-color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(8px);
}

.button--ghost:hover {
  border-color: #fff;
  background: #fff;
  color: var(--ink);
}

.menu-toggle {
  width: 44px;
  height: 42px;
  display: none;
  place-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
}

.menu-toggle span {
  width: 20px;
  height: 2px;
  display: block;
  margin: 2px auto;
  background: var(--ink);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-4px) rotate(-45deg);
}

.hero {
  position: relative;
  min-height: 880px;
  display: flex;
  overflow: hidden;
  align-items: center;
  color: #fff;
  background: var(--ink);
}

.hero__media,
.hero__overlay,
.hero__grid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero__media {
  object-fit: cover;
  object-position: center;
  filter: saturate(0.78) contrast(1.08);
}

.hero__overlay {
  background:
    linear-gradient(90deg, rgba(6, 17, 29, 0.97) 0%, rgba(6, 17, 29, 0.86) 40%, rgba(6, 17, 29, 0.34) 71%, rgba(6, 17, 29, 0.56) 100%),
    linear-gradient(0deg, rgba(6, 17, 29, 0.88) 0%, transparent 42%);
}

.hero__grid {
  opacity: 0.15;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.13) 1px, transparent 1px);
  background-size: 96px 96px;
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.8), transparent 80%);
}

.hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(290px, 0.55fr);
  gap: 80px;
  align-items: end;
  padding-top: 150px;
  padding-bottom: 170px;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.eyebrow > span {
  width: 42px;
  height: 24px;
  flex: 0 0 42px;
  background: url("/wp-content/uploads/2026/09/eyebrow-bolt.svg") center / contain no-repeat;
}

.eyebrow--light {
  color: #ff6970;
}

.hero h1 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(50px, 5.6vw, 88px);
  font-weight: 710;
  letter-spacing: -0.055em;
  line-height: 0.99;
}

.hero h1 em {
  color: #cdd7df;
  font-style: normal;
  font-weight: 420;
}

.hero__lead {
  max-width: 740px;
  margin: 30px 0 0;
  color: #d8e0e6;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.6;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.hero__proof {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin: 30px 0 0;
  padding: 0;
  color: #c6d1d9;
  font-size: 12px;
  list-style: none;
}

.hero__proof li {
  position: relative;
  padding-left: 14px;
}

.hero__proof li::before {
  position: absolute;
  top: 0.68em;
  left: 0;
  width: 4px;
  height: 4px;
  content: "";
  border-radius: 50%;
  background: #ff6970;
}

.hero__brief {
  padding: 26px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(5, 17, 29, 0.52);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(18px);
}

.hero__brief-label {
  margin: 0 0 16px;
  color: #ff6970;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero__brief-row {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: #b8c6d0;
  font-size: 12px;
}

.hero__brief-row strong {
  color: #fff;
  font-size: 13px;
}

.hero__brief > a {
  display: inline-block;
  margin-top: 18px;
  color: #fff;
  font-size: 12px;
  font-weight: 750;
}

.hero__brief > a span {
  color: #ff6970;
}

.hero__footer {
  position: absolute;
  z-index: 3;
  bottom: 0;
  left: 50%;
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  transform: translateX(-50%);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.metric {
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 22px 28px;
  border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.metric:first-child {
  padding-left: 0;
}

.metric strong {
  font-size: 27px;
  font-weight: 680;
  letter-spacing: -0.035em;
}

.metric span {
  margin-top: 2px;
  color: #9eafbc;
  font-size: 11px;
}

.video-control {
  min-width: 122px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px;
  color: #fff;
  border: 0;
  background: transparent;
  font-size: 11px;
  cursor: pointer;
}

.video-control__icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  font-size: 10px;
}

.section {
  padding: 116px 0;
}

.section--intro {
  background: #fff;
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 80px;
  align-items: end;
  margin-bottom: 52px;
}

.section-heading h2,
.about-copy h2,
.quality-copy h2,
.contact-copy h2 {
  margin: 0;
  font-size: clamp(38px, 4.2vw, 64px);
  font-weight: 680;
  letter-spacing: -0.048em;
  line-height: 1.06;
}

.section-heading > p {
  max-width: 480px;
  margin: 0 0 4px;
  color: var(--slate);
  font-size: 15px;
}

.industry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 320px;
  gap: 2px;
  background: var(--ink);
}

.industry-card {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: var(--ink);
}

.industry-card--large {
  grid-column: span 2;
}

.industry-card::before,
.industry-card::after {
  position: absolute;
  inset: 0;
  content: "";
  transition: transform 0.6s ease, opacity 0.4s ease;
}

.industry-card::before {
  background-image: var(--card-image);
  background-position: var(--card-position, center);
  background-size: cover;
  filter: saturate(0.65);
}

.industry-card::after {
  background: linear-gradient(180deg, rgba(7, 20, 33, 0.04), rgba(7, 20, 33, 0.92));
}

.industry-card:hover::before {
  transform: scale(1.045);
}

.industry-card__content {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 28px;
}

.industry-card__content > span {
  color: #ff6970;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.industry-card h3 {
  margin: 7px 0 6px;
  font-size: 24px;
  line-height: 1.2;
}

.industry-card p {
  max-width: 480px;
  margin: 0;
  color: #c9d4dc;
  font-size: 13px;
}

.industry-card a {
  display: inline-block;
  margin-top: 16px;
  font-size: 12px;
  font-weight: 750;
}

.section--products {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: var(--ink);
}

.section--products::before {
  position: absolute;
  top: 0;
  right: -15vw;
  width: 55vw;
  height: 55vw;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
  box-shadow: 0 0 0 120px rgba(255, 255, 255, 0.018), 0 0 0 240px rgba(255, 255, 255, 0.012);
}

.section--products .shell {
  position: relative;
  z-index: 1;
}

.section-heading--light > p {
  color: #adbdc8;
}

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

.product-card {
  overflow: hidden;
  color: var(--ink);
  background: #fff;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.product-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.product-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #fff;
}

.product-card__image img {
  width: 100%;
  height: 100%;
  padding: 14px;
  object-fit: contain;
  background: #fff;
  transition: transform 0.55s ease;
}

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

.product-card__body {
  min-height: 148px;
  padding: 22px 24px;
}

.product-card__body p {
  margin: 0 0 7px;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.product-card__body h3 {
  margin: 0 0 6px;
  font-size: 20px;
  line-height: 1.25;
}

.product-card__body span {
  color: var(--muted);
  font-size: 12px;
}

.product-spec-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  align-items: stretch;
  margin-top: 28px;
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.product-spec-strip > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 20px 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.product-spec-strip span {
  color: #8fa2b0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.product-spec-strip strong {
  margin-top: 3px;
  font-size: 15px;
}

.product-spec-strip > a {
  min-width: 160px;
  display: grid;
  place-items: center;
  padding: 22px;
  color: #fff;
  background: var(--red);
  font-size: 12px;
  font-weight: 750;
}

.capability-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.capability-card {
  min-height: 330px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  transition: color 0.3s ease, background 0.3s ease, transform 0.3s ease;
}

.capability-card:hover {
  color: #fff;
  background: var(--ink);
  transform: translateY(-6px);
}

.capability-card__icon {
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin: 0 auto 26px;
  border: 0;
  background: transparent;
  transition: transform 0.3s ease;
}

.capability-card__icon img {
  width: 76px;
  height: 76px;
  display: block;
  object-fit: contain;
}

.capability-card:hover .capability-card__icon {
  transform: translateY(-3px);
}

.capability-card h3 {
  margin: 0 0 14px;
  font-size: 21px;
  line-height: 1.25;
}

.capability-card p {
  margin: 0;
  color: var(--slate);
  font-size: 13px;
}

.capability-card:hover p {
  color: #b8c5cf;
}

.section--about {
  padding-top: 250px;
  background: var(--soft);
}

.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(48px, 7vw, 100px);
  align-items: center;
}

.about-visual {
  position: relative;
  isolation: isolate;
}

.about-visual::before {
  position: absolute;
  z-index: 0;
  top: -225px;
  left: 0;
  width: 320px;
  height: 213px;
  content: "";
  pointer-events: none;
  background: url("/wp-content/uploads/2026/09/fastener-group-lineart-white-v2.png") center / contain no-repeat;
  filter: drop-shadow(0 1px 0 rgba(11, 23, 38, 0.22));
}

.about-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1 / 1.08;
  object-fit: cover;
  background: #fff;
  box-shadow: var(--shadow);
}

.about-visual__label {
  position: absolute;
  z-index: 2;
  right: -28px;
  bottom: 30px;
  max-width: 300px;
  padding: 22px 26px;
  color: #fff;
  background: var(--ink);
  box-shadow: var(--shadow);
}

.about-visual__label strong,
.about-visual__label span {
  display: block;
}

.about-visual__label strong {
  font-size: 24px;
}

.about-visual__label span {
  margin-top: 3px;
  color: #b8c5cf;
  font-size: 11px;
}

.about-copy__lead {
  margin: 30px 0 14px;
  color: var(--ink);
  font-size: 19px;
  font-weight: 560;
}

.about-copy > p:not(.eyebrow):not(.about-copy__lead) {
  color: var(--slate);
}

.about-principles {
  margin: 30px 0;
  border-top: 1px solid #cfd8df;
}

.about-principles > div {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #cfd8df;
}

.about-principles strong {
  color: var(--red);
  font-size: 11px;
}

.about-principles span {
  color: var(--slate);
  font-size: 13px;
}

.text-link {
  display: inline-block;
  color: var(--red);
  font-size: 13px;
  font-weight: 800;
}

.section--quality {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #101f2f;
}

.section--quality::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.16;
  background-image: linear-gradient(rgba(255,255,255,0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.1) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: linear-gradient(90deg, transparent, #000 65%);
}

.quality-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.7fr);
  gap: clamp(56px, 8vw, 120px);
  align-items: center;
}

.quality-copy > p:not(.eyebrow) {
  max-width: 680px;
  margin: 26px 0 0;
  color: #afbec9;
}

.quality-list {
  margin: 36px 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  list-style: none;
}

.quality-list li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 16px;
  padding: 19px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.quality-list li > span {
  color: #ff6970;
  font-size: 10px;
  font-weight: 800;
}

.quality-list strong {
  display: block;
  font-size: 14px;
}

.quality-list p {
  margin: 3px 0 0;
  color: #9fb0bd;
  font-size: 12px;
}

.quality-panel {
  padding: 38px;
  color: var(--ink);
  background: #fff;
  box-shadow: var(--shadow);
}

.quality-panel__label {
  margin: 0 0 16px;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.quality-panel h3 {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
}

.quality-panel__items {
  display: grid;
  gap: 0;
  margin: 26px 0 30px;
  border-top: 1px solid var(--line);
}

.quality-panel__items span {
  position: relative;
  padding: 13px 0 13px 18px;
  border-bottom: 1px solid var(--line);
  color: var(--slate);
  font-size: 12px;
}

.quality-panel__items span::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
  height: 5px;
  content: "";
  border-radius: 50%;
  background: var(--red);
  transform: translateY(-50%);
}

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

.resource-card {
  min-height: 350px;
  display: flex;
  flex-direction: column;
  padding: 34px;
  border: 1px solid var(--line);
  background: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.resource-card:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow);
}

.resource-card > p {
  margin: 0;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.resource-card h3 {
  margin: 58px 0 18px;
  font-size: 24px;
  line-height: 1.28;
}

.resource-card > span {
  color: var(--slate);
  font-size: 13px;
}

.resource-card a {
  margin-top: auto;
  padding-top: 30px;
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
}

.contact {
  padding: 116px 0;
  color: #fff;
  background: var(--red);
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(420px, 0.72fr);
  gap: clamp(56px, 8vw, 120px);
  align-items: start;
}

.contact .eyebrow--light {
  color: #ffc4c7;
}

.contact-copy > p:not(.eyebrow) {
  max-width: 650px;
  margin: 26px 0 0;
  color: #f6d7d9;
}

.contact-details {
  display: grid;
  gap: 0;
  margin-top: 38px;
  border-top: 1px solid rgba(255, 255, 255, 0.32);
}

.contact-details > * {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.32);
}

.contact-details span {
  color: #ffc4c7;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-details strong {
  font-size: 13px;
  font-weight: 600;
}

.inquiry-form {
  padding: 34px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 28px 80px rgba(72, 0, 5, 0.28);
}

.inquiry-form__heading {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 16px;
  align-items: start;
  margin-bottom: 24px;
}

.inquiry-form__heading > span {
  color: var(--red);
  font-size: 11px;
  font-weight: 850;
}

.inquiry-form__heading h3 {
  margin: 0;
  font-size: 24px;
  line-height: 1.2;
}

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

.form-grid label,
.consent {
  display: grid;
  gap: 7px;
}

.form-grid label > span {
  color: var(--slate);
  font-size: 11px;
  font-weight: 650;
}

.form-grid__wide {
  grid-column: 1 / -1;
}

.form-grid input,
.form-grid textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #bdc8d1;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
}

.form-grid input {
  min-height: 42px;
  padding: 8px 0;
}

.form-grid textarea {
  padding: 10px 0;
  resize: vertical;
}

.form-grid input:focus,
.form-grid textarea:focus {
  outline: 0;
  border-color: var(--red);
  box-shadow: 0 1px 0 var(--red);
}

.consent {
  grid-template-columns: auto 1fr;
  align-items: start;
  margin: 20px 0;
  color: var(--muted);
  font-size: 10px;
}

.consent input {
  margin-top: 4px;
  accent-color: var(--red);
}

.form-status {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 10px;
}

.form-status:empty {
  display: none;
}

.site-footer {
  color: #fff;
  background: #08111d;
}

.site-footer__top {
  min-height: 160px;
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 34px;
  align-items: center;
}

.brand--footer {
  width: 132px;
}

.site-footer__top p {
  margin: 0;
  color: #9caeba;
  font-size: 13px;
}

.text-link--light {
  color: #fff;
}

.site-footer__bottom {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #7f929f;
  font-size: 10px;
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1180px) {
  :root {
    --shell: min(100% - 48px, 1100px);
  }

  .desktop-nav {
    gap: 13px;
  }

  .desktop-nav a {
    font-size: 11px;
  }

  .navigation .button--compact {
    display: none;
  }

  .hero__content {
    gap: 44px;
  }

  .hero__footer {
    grid-template-columns: repeat(4, 1fr);
  }

  .video-control {
    display: none;
  }

  .product-spec-strip {
    grid-template-columns: repeat(2, 1fr) auto;
  }

  .product-spec-strip > div:nth-child(2) {
    border-right: 0;
  }

  .product-spec-strip > div:nth-child(-n+2) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .product-spec-strip > a {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 980px) {
  html {
    scroll-padding-top: 78px;
  }

  .utility-bar,
  .desktop-nav,
  .navigation__actions .button--compact {
    display: none;
  }

  .navigation {
    min-height: 78px;
  }

  .brand {
    width: 100px;
  }

  .menu-toggle {
    display: block;
  }

  .hero {
    min-height: 930px;
  }

  .hero__content {
    grid-template-columns: 1fr;
    align-items: start;
    padding-top: 150px;
    padding-bottom: 230px;
  }

  .hero__brief {
    max-width: 520px;
  }

  .hero__footer {
    grid-template-columns: repeat(2, 1fr);
  }

  .metric {
    min-height: 90px;
    padding: 16px 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
  }

  .metric:first-child {
    padding-left: 20px;
  }

  .section-heading,
  .quality-layout,
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .section-heading > p {
    max-width: 680px;
  }

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

  .industry-card--large {
    grid-column: span 2;
  }

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

  .capability-card {
    min-height: 280px;
  }

  .about-layout {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 46px;
  }

  .quality-panel {
    max-width: 620px;
  }

  .resource-grid {
    grid-template-columns: 1fr;
  }

  .resource-card {
    min-height: 260px;
  }

  .resource-card h3 {
    margin-top: 35px;
  }

  .contact-layout {
    gap: 54px;
  }
}

@media (max-width: 720px) {
  :root {
    --shell: calc(100% - 32px);
  }

  .navigation__actions {
    gap: 7px;
  }

  .hero {
    min-height: 940px;
  }

  .hero__media {
    object-position: 58% center;
  }

  .hero__overlay {
    background: linear-gradient(90deg, rgba(6, 17, 29, 0.97), rgba(6, 17, 29, 0.68)), linear-gradient(0deg, rgba(6, 17, 29, 0.92), transparent 58%);
  }

  .hero__content {
    gap: 30px;
    padding-top: 130px;
    padding-bottom: 230px;
  }

  .hero h1 {
    font-size: clamp(44px, 12vw, 64px);
  }

  .hero__lead {
    font-size: 16px;
  }

  .hero__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .hero__actions .button {
    width: 100%;
  }

  .hero__proof {
    display: grid;
    gap: 8px;
  }

  .hero__brief {
    display: none;
  }

  .metric {
    padding: 13px 14px;
  }

  .metric:first-child {
    padding-left: 14px;
  }

  .metric strong {
    font-size: 20px;
  }

  .metric span {
    font-size: 9px;
  }

  .section,
  .contact {
    padding: 82px 0;
  }

  .section-heading {
    margin-bottom: 36px;
  }

  .section-heading h2,
  .about-copy h2,
  .quality-copy h2,
  .contact-copy h2 {
    font-size: clamp(36px, 10vw, 48px);
  }

  .industry-grid,
  .product-grid,
  .capability-grid,
  .about-layout,
  .resource-grid {
    grid-template-columns: 1fr;
  }

  .industry-grid {
    grid-auto-rows: 300px;
  }

  .industry-card--large {
    grid-column: auto;
  }

  .product-spec-strip {
    grid-template-columns: 1fr 1fr;
  }

  .product-spec-strip > div:nth-child(even) {
    border-right: 0;
  }

  .product-spec-strip > div {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .product-spec-strip > a {
    min-height: 62px;
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .capability-card {
    min-height: auto;
  }

  .capability-card__icon {
    margin-bottom: 24px;
  }

  .about-layout {
    gap: 56px;
  }

  .about-visual {
    max-width: calc(100% - 16px);
  }

  .section--about {
    padding-top: 176px;
  }

  .about-visual::before {
    top: -152px;
    left: 0;
    width: 220px;
    height: 147px;
  }

  .about-visual__label {
    right: -16px;
    bottom: 18px;
  }

  .quality-panel,
  .inquiry-form {
    padding: 28px 22px;
  }

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

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

  .form-grid__wide {
    grid-column: auto;
  }

  .contact-details > * {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .site-footer__top {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 44px 0;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    padding: 20px 0;
  }
}

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

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

  .reveal {
    opacity: 1;
    transform: none;
  }
}

/* Accessibility and light-palette refinement */
body {
  color: #122235;
  background: #fbfcfd;
  font-size: 18px;
}

.utility-bar {
  font-size: 13px;
}

.desktop-nav a {
  font-size: 14px;
}

.language-menu a,
.language-menu > span {
  font-size: 14px;
}

.button {
  min-height: 54px;
  padding: 14px 24px;
  font-size: 15px;
}

.button--compact {
  min-height: 46px;
  padding: 11px 18px;
  font-size: 14px;
}

.eyebrow {
  font-size: 12px;
}

.hero__media {
  filter: saturate(0.9) contrast(1.04) brightness(1.08);
}

.hero__overlay {
  background:
    linear-gradient(90deg, rgba(8, 22, 35, 0.9) 0%, rgba(8, 22, 35, 0.72) 42%, rgba(8, 22, 35, 0.16) 76%, rgba(8, 22, 35, 0.32) 100%),
    linear-gradient(0deg, rgba(8, 22, 35, 0.7) 0%, transparent 46%);
}

.hero__lead {
  color: #edf3f6;
  font-size: clamp(19px, 1.45vw, 23px);
}

.hero__proof {
  color: #e0e9ee;
  font-size: 14px;
}

.hero__brief-label {
  font-size: 11px;
}

.hero__brief-row {
  color: #d3dee5;
  font-size: 14px;
}

.hero__brief-row strong,
.hero__brief > a {
  font-size: 14px;
}

.metric span {
  color: #c1ced7;
  font-size: 13px;
}

.video-control {
  font-size: 13px;
}

.section-heading > p {
  color: #42576b;
  font-size: 17px;
}

.industry-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 360px;
  gap: 3px;
  background: #dfe6eb;
}

.industry-card--large {
  grid-column: auto;
}

.industry-card::before {
  filter: saturate(0.96) brightness(1.03);
}

.industry-card::after {
  background: linear-gradient(90deg, rgba(249, 252, 255, 0.98) 0%, rgba(240, 248, 254, 0.92) 34%, rgba(236, 246, 252, 0.42) 62%, rgba(255, 255, 255, 0) 84%);
}

.industry-card__content {
  right: auto;
  width: min(68%, 360px);
  padding: 30px;
  color: #102d49;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.72);
}

.industry-card h3 {
  color: #0b4f86;
  font-size: 27px;
}

.industry-card p {
  color: #304d66;
  font-size: 16px;
  line-height: 1.55;
}

.industry-card a {
  color: #075e9e;
  font-size: 14px;
}

.section--products {
  color: var(--ink);
  background: #edf2f5;
}

.section--products::before {
  border-color: rgba(19, 38, 58, 0.08);
  box-shadow: 0 0 0 120px rgba(19, 38, 58, 0.02), 0 0 0 240px rgba(19, 38, 58, 0.015);
}

.section--products .eyebrow--light {
  color: var(--red);
}

.section--products .section-heading--light > p {
  color: #42576b;
}

.product-card {
  border: 1px solid #d7e0e6;
  box-shadow: 0 12px 34px rgba(19, 38, 58, 0.08);
}

.product-card__body p {
  font-size: 12px;
}

.product-card__body h3 {
  font-size: 23px;
}

.product-card__body span {
  color: #516579;
  font-size: 15px;
}

.product-spec-strip {
  border-color: #cbd6de;
  background: #fff;
  box-shadow: 0 10px 30px rgba(19, 38, 58, 0.07);
}

.product-spec-strip > div {
  border-color: #d7e0e6;
}

.product-spec-strip span {
  color: #627486;
  font-size: 11px;
}

.product-spec-strip strong {
  color: var(--ink);
  font-size: 17px;
}

.capability-card h3 {
  font-size: 23px;
}

.capability-card p {
  color: #42576b;
  font-size: 16px;
}

.about-copy__lead {
  font-size: 22px;
}

.about-copy > p:not(.eyebrow):not(.about-copy__lead) {
  font-size: 17px;
}

.about-principles span {
  font-size: 15px;
}

.text-link {
  font-size: 15px;
}

.section--quality {
  color: var(--ink);
  background: #e7eef3;
}

.section--quality::before {
  opacity: 0.28;
  background-image:
    linear-gradient(rgba(19, 38, 58, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(19, 38, 58, 0.08) 1px, transparent 1px);
}

.section--quality .eyebrow--light {
  color: var(--red);
}

.quality-copy > p:not(.eyebrow) {
  color: #42576b;
  font-size: 17px;
}

.quality-list {
  border-color: #c4d0d9;
}

.quality-list li {
  border-color: #c4d0d9;
}

.quality-list strong {
  color: var(--ink);
  font-size: 16px;
}

.quality-list p {
  color: #52677a;
  font-size: 14px;
}

.quality-panel {
  border: 1px solid #d1dbe2;
  box-shadow: 0 24px 65px rgba(19, 38, 58, 0.14);
}

.quality-panel h3 {
  font-size: 30px;
}

.quality-panel__items span {
  font-size: 14px;
}

.resource-card > p {
  font-size: 11px;
}

.resource-card h3 {
  font-size: 27px;
}

.resource-card > span {
  color: #42576b;
  font-size: 16px;
}

.resource-card a {
  font-size: 14px;
}

.contact-copy > p:not(.eyebrow) {
  font-size: 18px;
}

.contact-details span {
  font-size: 11px;
}

.contact-details strong {
  font-size: 16px;
}

.inquiry-form__heading h3 {
  font-size: 27px;
}

.form-grid label > span {
  font-size: 13px;
}

.form-grid input,
.form-grid textarea {
  font-size: 16px;
}

.consent,
.form-status {
  font-size: 12px;
}

.site-footer__top p {
  font-size: 15px;
}

.site-footer__bottom {
  font-size: 12px;
}

@media (max-width: 980px) {
  .industry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 350px;
  }

  .industry-card--large {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  body {
    font-size: 17px;
  }

  .hero__lead {
    font-size: 18px;
  }

  .hero__proof {
    font-size: 14px;
  }

  .industry-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 330px;
  }

  .industry-card h3 {
    font-size: 26px;
  }

  .industry-card p {
    font-size: 16px;
  }

  .product-spec-strip > div {
    border-color: #d7e0e6;
  }
}

html[lang="zh-CN"] body {
  font-family: "Inter", "Microsoft YaHei", "PingFang SC", sans-serif;
  line-height: 1.75;
}

html[lang="zh-CN"] .hero h1,
html[lang="zh-CN"] .section-heading h2,
html[lang="zh-CN"] .about-copy h2,
html[lang="zh-CN"] .quality-copy h2,
html[lang="zh-CN"] .contact-copy h2 {
  letter-spacing: -0.035em;
}

html[lang="zh-CN"] .desktop-nav a {
  font-size: 15px;
}

html[lang="zh-CN"] .hero__brief-row {
  grid-template-columns: 86px 1fr;
}

html[lang="zh-CN"] .industry-card p,
html[lang="zh-CN"] .capability-card p,
html[lang="zh-CN"] .resource-card > span {
  line-height: 1.75;
}

@media (max-width: 720px) {
  html[lang="zh-CN"] .hero-zh-line {
    display: block;
  }
}

/* Sub-page shared layer: page-hero / float-widget (injected pages only) */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: 186px 0 110px;
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}

.page-hero::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(19, 38, 58, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(19, 38, 58, 0.07) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: linear-gradient(180deg, #000, transparent 85%);
}

.page-hero .shell {
  position: relative;
  z-index: 1;
}

.page-hero h1 {
  max-width: 900px;
  margin: 0;
  font-size: clamp(44px, 5vw, 72px);
  font-weight: 680;
  letter-spacing: -0.048em;
  line-height: 1.04;
}

.page-hero__lead {
  max-width: 680px;
  margin: 26px 0 0;
  color: #42576b;
  font-size: 19px;
}

.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.float-widget {
  position: fixed;
  z-index: 80;
  right: 22px;
  bottom: 22px;
  display: grid;
  gap: 10px;
}

.float-widget__item {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: var(--ink);
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease;
}

.float-widget__item:hover {
  background: var(--red);
  transform: translateY(-3px);
}

.float-widget__item svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

@media (max-width: 980px) {
  .page-hero {
    padding: 150px 0 84px;
  }
}

@media (max-width: 720px) {
  .page-hero {
    padding: 132px 0 64px;
  }

  .page-hero h1 {
    font-size: clamp(36px, 10vw, 52px);
  }

  .page-hero__lead {
    font-size: 17px;
  }

  .page-hero__actions .button {
    width: 100%;
  }

  .float-widget {
    right: 14px;
    bottom: 14px;
  }

  .float-widget__item {
    width: 44px;
    height: 44px;
  }
}

/* ==============================================
   About page (about.html) — page-level layer
   ============================================== */
.page-about .section-heading h2,
.page-about .contact-copy h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

.page-hero h1 em {
  color: #52677a;
  font-style: normal;
  font-weight: 430;
}

.button--line {
  color: var(--ink);
  background: transparent;
  border: 1px solid #b6c4ce;
}

.button--line:hover {
  color: #fff;
  border-color: var(--ink);
  background: var(--ink);
}

/* Block 1 · Page Hero with background image (index-hero dark palette) */
.page-hero--media {
  background: var(--ink);
  border-bottom-color: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.page-hero--media .page-hero h1 em,
.page-hero--media h1 em {
  color: #cdd7df;
}

.page-hero--media .page-hero__lead {
  color: rgba(226, 235, 242, 0.78);
}

.page-hero--media .button--line {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
}

.page-hero--media .button--line:hover {
  color: var(--ink);
  border-color: #fff;
  background: #fff;
}

.page-hero--media .page-hero__bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  filter: saturate(0.82) contrast(1.04) brightness(0.9);
}

.page-hero--media::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(90deg, rgba(11, 23, 38, 0.95) 0%, rgba(11, 23, 38, 0.82) 42%, rgba(11, 23, 38, 0.38) 76%, rgba(11, 23, 38, 0.16) 100%),
    linear-gradient(180deg, rgba(11, 23, 38, 0.3) 0%, rgba(11, 23, 38, 0) 40%, rgba(11, 23, 38, 0.6) 100%);
}

/* Block 2 · Company Profile typography */
.about-profile {
  background: var(--soft);
}

.about-profile .about-layout {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
}

.about-profile .about-copy h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

.about-profile .about-copy__lead {
  color: var(--slate);
  font-size: 16px;
  font-weight: 400;
}

.about-profile .about-copy > p:not(.eyebrow):not(.about-copy__lead) {
  font-size: 16px;
}

.about-profile .about-principles span {
  font-size: 14px;
}

.about-profile .about-visual::before {
  content: none;
}

/* Block 3 · Numbers strip */
.about-numbers {
  padding: 76px 0;
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.about-numbers__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.about-numbers__item {
  padding: 6px 40px;
  border-left: 1px solid var(--line);
}

.about-numbers__item:first-child {
  padding-left: 0;
  border-left: 0;
}

.about-numbers__label {
  display: block;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.about-numbers__item strong {
  display: block;
  margin-top: 14px;
  color: var(--ink);
  font-size: clamp(42px, 4.2vw, 60px);
  font-weight: 680;
  letter-spacing: -0.045em;
  line-height: 1;
}

.about-numbers__cap {
  display: block;
  margin-top: 10px;
  color: #627486;
  font-size: 13px;
}

/* Block 4 · Philosophy — image cards */
.about-philosophy {
  background: var(--soft);
}

.about-philosophy__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: clamp(48px, 6vw, 80px);
}

.about-think-card {
  position: relative;
  display: flex;
  align-items: flex-end;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--ink);
}

.about-think-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.about-think-card:hover img {
  transform: scale(1.04);
}

.about-think-card figcaption {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 88px 24px 24px;
  background: linear-gradient(180deg, rgba(11, 23, 38, 0) 0%, rgba(11, 23, 38, 0.72) 58%, rgba(11, 23, 38, 0.88) 100%);
}

.about-think-card figcaption span {
  display: block;
  color: #ff6970;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.about-think-card h3 {
  margin: 10px 0 6px;
  color: #fff;
  font-size: 18px;
  letter-spacing: -0.01em;
}

.about-think-card p {
  margin: 0;
  color: rgba(226, 235, 242, 0.72);
  font-size: 13.5px;
  line-height: 1.55;
}

.about-brandline {
  margin: clamp(44px, 5vw, 64px) 0 0;
}

/* Block 5 · Qualifications & Recognition — certificate ledger carousel */
.about-qual {
  background: #fff;
}

.about-cert-swiper {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.about-cert-slide {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: auto;
  padding: 34px 30px 30px;
  border-right: 1px solid var(--line);
  background: #fff;
}

.about-cert-slide__num {
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.about-cert-slide__fig {
  display: block;
  width: 100%;
  margin: 20px 0 14px;
}

.about-cert-slide__fig img {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.about-cert-slide__fig:hover img {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.about-cert-slide h3 {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.about-cert-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 26px;
}

.about-cert-count {
  color: #9aabb8;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.about-cert-count .swiper-pagination-current {
  color: var(--ink);
  font-size: 15px;
}

.about-cert-nav {
  display: flex;
  gap: 10px;
}

.about-cert-nav__btn {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--ink);
  background: transparent;
  border: 1px solid #b6c4ce;
  cursor: pointer;
  transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.about-cert-nav__btn svg {
  width: 18px;
  height: 18px;
}

.about-cert-nav__btn:hover:not(:disabled) {
  color: #fff;
  border-color: var(--red);
  background: var(--red);
}

.about-cert-nav__btn:disabled {
  opacity: 0.3;
  cursor: default;
}

/* Block 6 · Global Markets */
.about-markets {
  background: #fff;
  border-top: 1px solid var(--line);
}

.about-worldmap {
  position: relative;
  margin: 58px 0 22px;
}

.about-worldmap > img {
  display: block;
  width: 100%;
  height: auto;
}

.wm-marker {
  position: absolute;
  z-index: 1;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.about-worldmap.is-visible .wm-marker {
  opacity: 1;
}

.about-worldmap.is-visible .wm-marker:nth-of-type(1) { transition-delay: 0.1s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(2) { transition-delay: 0.16s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(3) { transition-delay: 0.22s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(4) { transition-delay: 0.28s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(5) { transition-delay: 0.34s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(6) { transition-delay: 0.4s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(7) { transition-delay: 0.46s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(8) { transition-delay: 0.52s; }
.about-worldmap.is-visible .wm-marker:nth-of-type(9) { transition-delay: 0.58s; }

.about-worldmap .wm-marker:nth-of-type(1) { --x: 53.7%; --y: 16.7%; }
.about-worldmap .wm-marker:nth-of-type(2) { --x: 22.8%; --y: 26.7%; }
.about-worldmap .wm-marker:nth-of-type(3) { --x: 88.8%; --y: 29.1%; }
.about-worldmap .wm-marker:nth-of-type(4) { --x: 52.3%; --y: 20.9%; }
.about-worldmap .wm-marker:nth-of-type(5) { --x: 53%; --y: 11.1%; }
.about-worldmap .wm-marker:nth-of-type(6) { --x: 49%; --y: 25.6%; }
.about-worldmap .wm-marker:nth-of-type(7) { --x: 60.4%; --y: 14.2%; }
.about-worldmap .wm-marker:nth-of-type(8) { --x: 65.3%; --y: 37%; }
.about-worldmap .wm-marker:nth-of-type(9) { --x: 78.8%; --y: 54.6%; }

.wm-marker::before {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  content: "";
}

.wm-marker--core::before {
  background: var(--red);
}

.wm-marker--core::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  border: 2px solid var(--red);
  border-radius: 50%;
  content: "";
  animation: wm-pulse 2.4s ease-out infinite;
}

.wm-marker--strategic::before {
  width: 11px;
  height: 11px;
  background: #fff;
  border: 2px solid var(--red);
}

.wm-marker--emerging::before {
  width: 8px;
  height: 8px;
  margin: 2px;
  background: var(--ink);
  opacity: 0.8;
}

.wm-marker > span {
  position: absolute;
  top: 50%;
  left: calc(100% + 10px);
  padding: 5px 10px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 22px rgba(19, 38, 58, 0.08);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transform: translateY(-50%);
}

.wm-marker--label-left > span {
  left: auto;
  right: calc(100% + 10px);
  transform: translateY(-50%);
}

.wm-marker--label-below > span {
  top: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%);
}

.wm-marker--label-above > span {
  top: auto;
  bottom: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%);
}

@keyframes wm-pulse {
  0% {
    transform: scale(0.5);
    opacity: 0.8;
  }

  70%,
  100% {
    transform: scale(2.4);
    opacity: 0;
  }
}

.about-tiers .about-tier-dot {
  width: 12px;
  height: 12px;
  margin-top: 5px;
  border-radius: 50%;
}

.about-tier-dot--core {
  background: var(--red);
}

.about-tier-dot--strategic {
  width: 11px;
  height: 11px;
  background: #fff;
  border: 2px solid var(--red);
}

.about-tier-dot--emerging {
  width: 8px;
  height: 8px;
  margin-top: 7px;
  background: var(--ink);
  opacity: 0.8;
}

.about-clients {
  margin: 30px 0 0;
  color: #42576b;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Block 7 · CTA — removed (contact module now injected above footer) */

@media (max-width: 980px) {
  .about-numbers__grid {
    grid-template-columns: 1fr 1fr;
    row-gap: 44px;
  }

  .about-numbers__item {
    padding: 0 0 0 28px;
  }

  .about-numbers__item:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .about-philosophy__grid {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

@media (max-width: 720px) {
  .page-hero--media::after {
    background:
      linear-gradient(90deg, rgba(11, 23, 38, 0.93) 0%, rgba(11, 23, 38, 0.88) 100%),
      linear-gradient(180deg, rgba(11, 23, 38, 0.32) 0%, rgba(11, 23, 38, 0.62) 100%);
  }

  .about-philosophy__grid {
    grid-template-columns: 1fr;
  }

  .about-cert-slide {
    padding: 26px 22px 24px;
  }

  .about-cert-nav__btn {
    width: 42px;
    height: 42px;
  }

  .wm-marker > span {
    padding: 4px 7px;
    font-size: 11px;
  }

  .about-clients {
    font-size: 11px;
    letter-spacing: 0.1em;
  }
}

/* Nav dropdown — semantic list navigation (visual parity with legacy flat nav) */
.nav-list {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.55vw, 28px);
  margin: 0;
  padding: 0;
  list-style: none;
}

#about-profile,
#about-philosophy,
#about-qual,
#about-markets,
#industries {
  scroll-margin-top: 124px;
}

/* ==============================================
   Business Areas page (industries.html) — page-level layer
   ============================================== */
#area-rail,
#area-aerospace,
#area-mining,
#area-marine,
#area-pumps,
#area-high-end {
  scroll-margin-top: 124px;
}

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

/* Block 2 · Area index strip */
.area-index {
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.area-index__nav {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.area-index__nav a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: 8px;
  row-gap: 5px;
  padding: 26px 24px 24px;
  border-left: 1px solid var(--line);
  transition: background 0.25s ease;
}

.area-index__nav a:first-child {
  padding-left: 0;
  border-left: 0;
}

.area-index__nav a > span {
  grid-column: 1 / -1;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.area-index__nav a strong {
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
}

.area-index__nav a em {
  color: #9aabb8;
  font-style: normal;
  font-weight: 400;
  transition: transform 0.25s ease, color 0.25s ease;
}

.area-index__nav a:hover {
  background: var(--soft);
}

.area-index__nav a:hover em {
  color: var(--red);
  transform: translateX(4px);
}

/* Block 3–8 · Area chapters */
.area-block {
  padding: clamp(72px, 8vw, 116px) 0;
  background: #fff;
}

.area-block--tint {
  background: var(--soft);
}

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

.area-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
  gap: clamp(48px, 6vw, 96px);
  align-items: center;
}

.area-block--flip .area-visual {
  order: 2;
}

.area-block--flip .area-copy {
  order: 1;
}

.area-visual {
  position: relative;
  isolation: isolate;
}

.area-visual__num {
  position: absolute;
  z-index: 0;
  top: -48px;
  left: -20px;
  color: #d7e1e8;
  font-size: clamp(120px, 13vw, 200px);
  font-weight: 680;
  letter-spacing: -0.05em;
  line-height: 1;
  user-select: none;
}

.area-block--tint .area-visual__num {
  color: #c9d8e2;
}

.area-block--flip .area-visual__num {
  left: auto;
  right: -20px;
}

.area-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 1 / 0.94;
  object-fit: cover;
  background: #fff;
  box-shadow: var(--shadow);
  filter: saturate(0.82) contrast(1.03);
}

.area-visual__label {
  position: absolute;
  z-index: 2;
  right: -28px;
  bottom: 34px;
  max-width: 300px;
  padding: 20px 24px;
  color: #fff;
  background: var(--ink);
  box-shadow: var(--shadow);
}

.area-block--flip .area-visual__label {
  right: auto;
  left: -28px;
}

.area-visual__label strong {
  display: block;
  font-size: 20px;
}

.area-visual__label span {
  display: block;
  margin-top: 3px;
  color: #b8c5cf;
  font-size: 11px;
}

.area-copy h2 {
  margin: 0;
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 680;
  letter-spacing: -0.048em;
  line-height: 1.08;
}

.area-copy__lead {
  max-width: 560px;
  margin: 22px 0 0;
  color: var(--slate);
  font-size: 17px;
}

.area-points {
  max-width: 580px;
  margin: 30px 0 26px;
  padding: 0;
  border-top: 1px solid #cfd8df;
  list-style: none;
}

.area-points li {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid #cfd8df;
}

.area-points li > span {
  padding-top: 2px;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.area-points li > div {
  color: var(--slate);
  font-size: 14px;
  line-height: 1.55;
}

.area-parts {
  margin-top: clamp(36px, 4.5vw, 56px);
}

.area-parts__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 6px;
}

.area-parts__label {
  margin: 0;
  color: rgba(11, 23, 38, 0.52);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.area-parts__head .text-link {
  font-size: 12px;
}

.area-parts__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.area-parts__grid li {
  border-top: 1px solid var(--line);
  padding: 16px 20px 0 0;
}

.area-parts__grid li span {
  display: block;
  margin-bottom: 8px;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.area-parts__grid li strong {
  display: block;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.35;
}

.area-parts__grid li em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  color: rgba(11, 23, 38, 0.55);
  font-size: 11.5px;
  line-height: 1.5;
}

/* Block 9 · Numbers band */
.area-numbers {
  position: relative;
  overflow: hidden;
  padding: 96px 0;
  color: #fff;
  background: var(--ink);
}

.area-numbers::before {
  position: absolute;
  top: 0;
  right: -15vw;
  width: 55vw;
  height: 55vw;
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
  box-shadow: 0 0 0 120px rgba(255, 255, 255, 0.018), 0 0 0 240px rgba(255, 255, 255, 0.012);
}

.area-numbers .shell {
  position: relative;
  z-index: 1;
}

.area-numbers .section-heading h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

@media (max-width: 1100px) {
  .area-index__nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .area-index__nav a {
    padding: 20px 18px;
  }

  .area-index__nav a:first-child {
    padding-left: 18px;
  }

  .area-index__nav a:nth-child(3n + 1) {
    padding-left: 0;
    border-left: 0;
  }

  .area-index__nav a:nth-child(n + 4) {
    border-top: 1px solid var(--line);
  }
}

@media (max-width: 980px) {
  .area-layout {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .area-block--flip .area-visual,
  .area-block--flip .area-copy {
    order: 0;
  }

  .area-visual {
    max-width: 620px;
  }

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

  .area-numbers {
    padding: 76px 0;
  }
}

@media (max-width: 720px) {
  .area-index__nav {
    grid-template-columns: 1fr 1fr;
  }

  .area-index__nav a:nth-child(3n + 1) {
    padding-left: 18px;
    border-left: 1px solid var(--line);
  }

  .area-index__nav a:nth-child(2n + 1) {
    padding-left: 0;
    border-left: 0;
  }

  .area-index__nav a:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .area-visual__num {
    top: -22px;
    left: -8px;
    font-size: 96px;
  }

  .area-block--flip .area-visual__num {
    left: auto;
    right: -8px;
  }

  .area-visual__label {
    right: 14px;
    bottom: 14px;
    padding: 15px 18px;
  }

  .area-block--flip .area-visual__label {
    left: auto;
    right: 14px;
  }

  .area-visual__label strong {
    font-size: 16px;
  }

  .area-points li > div {
    font-size: 13.5px;
  }

  .area-parts__grid li strong {
    font-size: 12.5px;
  }
}

@media (max-width: 560px) {
  .area-parts__head {
    flex-direction: column;
    gap: 4px;
  }

  .area-parts__grid {
    grid-template-columns: 1fr;
  }

  .area-parts__grid li {
    padding-right: 0;
  }
}

/* ==============================================
   Products page (products.html) — page-level layer
   ============================================== */
.page-products .section-heading h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

.section--sets {
  padding-bottom: 0;
}

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

.set-card {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  overflow: hidden;
  background: var(--ink);
  color: #fff;
}

.set-card__media {
  position: relative;
  min-height: 260px;
}

.set-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.set-card:hover .set-card__media img {
  transform: scale(1.045);
}

.set-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  padding: 42px 40px;
}

.set-card__label {
  margin: 0;
  color: var(--red);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.set-card__body h3 {
  margin: 0;
  font-size: 26px;
  font-weight: 640;
  letter-spacing: -0.02em;
  line-height: 1.18;
}

.set-card__comp {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14.5px;
  line-height: 1.6;
}

.section--types {
  padding-top: 96px;
}

.type-groups {
  margin-top: 72px;
  border-top: 1px solid var(--line);
}

.type-group {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 56px;
  padding: 60px 0;
  border-bottom: 1px solid var(--line);
}

.type-group__media {
  position: relative;
  align-self: start;
}

.type-group__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.type-group__num {
  position: absolute;
  top: -26px;
  left: -10px;
  z-index: 1;
  color: rgba(11, 23, 38, 0.1);
  font-size: 84px;
  font-weight: 720;
  letter-spacing: -0.04em;
  line-height: 1;
  pointer-events: none;
}

.type-group__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 24px;
  margin-bottom: 26px;
}

.type-group__head h3 {
  margin: 0;
  font-size: 24px;
  font-weight: 640;
  letter-spacing: -0.02em;
}

.type-group__evidence {
  margin: 0;
  color: #52677a;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.type-group__evidence::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 10px;
  background: var(--red);
}

.type-rows {
  margin: 0;
  padding: 0;
  list-style: none;
}

.type-rows li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 32px;
  padding: 15px 0;
  border-top: 1px solid var(--line);
  transition: padding-left 0.25s ease;
}

.type-rows li:first-child {
  border-top: 0;
  padding-top: 0;
}

.type-rows li:hover {
  padding-left: 8px;
}

.type-rows a {
  color: var(--ink);
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: color 0.2s ease;
}

.type-rows a:hover {
  color: var(--red);
}

.type-rows a::after {
  content: "\2192";
  margin-left: 8px;
  color: var(--red);
  font-weight: 400;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.type-rows li:hover a::after {
  opacity: 1;
}

.type-rows span {
  color: #52677a;
  font-size: 14px;
  text-align: right;
}

@media (max-width: 1100px) {
  .type-group {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 40px;
  }

  .type-group__num {
    font-size: 64px;
    top: -20px;
  }
}

@media (max-width: 980px) {
  .set-grid {
    grid-template-columns: 1fr;
  }

  .type-group {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 48px 0;
  }

  .type-group__media {
    max-width: 420px;
  }
}

@media (max-width: 720px) {
  .set-card {
    grid-template-columns: 1fr;
  }

  .set-card__media {
    min-height: 200px;
  }

  .set-card__body {
    padding: 30px 26px 34px;
  }

  .type-rows span {
    text-align: left;
  }
}

/* ==============================================
   Products page — catalogue layer (cat blocks + item grid)
   ============================================== */
.cat-block {
  padding: 64px 0;
  border-bottom: 1px solid var(--line);
}

.cat-block:first-of-type {
  border-top: 1px solid var(--line);
  margin-top: 64px;
}

.cat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 20px;
  margin-bottom: 32px;
}

.cat-head__num {
  color: rgba(11, 23, 38, 0.14);
  font-size: 44px;
  font-weight: 720;
  letter-spacing: -0.04em;
  line-height: 1;
}

.cat-head h3 {
  margin: 0;
  font-size: 28px;
  font-weight: 660;
  letter-spacing: -0.025em;
}

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

.page-products .product-card__body h3 a,
.page-detail .product-card__body h3 a {
  color: inherit;
  transition: color 0.2s ease;
}

.page-products .product-card__body h3 a:hover,
.page-detail .product-card__body h3 a:hover {
  color: var(--red);
}

.page-products .product-card__image a,
.page-detail .product-card__image a {
  display: block;
  overflow: hidden;
}

.cat-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 18px;
  margin: 36px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.cat-tags span {
  color: #52677a;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.cat-tags a {
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  transition: color 0.2s ease;
}

.cat-tags a:hover {
  color: var(--red);
}

@media (max-width: 1100px) {
  .item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .cat-block {
    padding: 48px 0;
  }

  .cat-block:first-of-type {
    margin-top: 48px;
  }

  .cat-head h3 {
    font-size: 24px;
  }
}

@media (max-width: 560px) {
  .item-grid {
    grid-template-columns: 1fr;
  }
}

/* ==============================================
   Product detail template (product-detail.html) — page-level layer
   ============================================== */
.detail-hero {
  padding: 186px 0 96px;
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}

.detail-hero .shell {
  position: relative;
}

.detail-hero__crumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 0 26px;
  color: #52677a;
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.5;
}

.detail-hero__crumb,
.detail-hero__crumb * {
  font-size: inherit;
  font-weight: inherit;
  font-style: normal;
}

.detail-hero__crumb ul,
.detail-hero__crumb li {
  display: contents;
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail-hero__crumb li + li::before {
  content: "/";
  margin: 0 10px 0 0;
  color: rgba(82, 103, 122, 0.5);
  font-weight: 400;
}

.detail-hero__crumb a {
  color: #52677a;
  transition: color 0.2s ease;
}

.detail-hero__crumb a:hover {
  color: var(--red);
}

.detail-hero__crumb span[aria-current] {
  color: var(--ink, #0a2342);
  font-weight: 600;
}

.detail-hero h1 {
  margin: 0;
  font-size: clamp(44px, 5vw, 72px);
  font-weight: 680;
  letter-spacing: -0.048em;
  line-height: 1.04;
}

.detail-hero .page-hero__lead {
  margin-top: 26px;
}

.detail-spec {
  padding: 64px 0;
}

.detail-spec .product-spec-strip {
  margin-top: 0;
}

.detail-apps {
  padding-top: 0;
}

.detail-apps__panel {
  margin-top: 64px;
  padding: 40px 44px 36px;
  background: #fff;
  border: 1px solid var(--line);
}

.detail-apps__panel .area-parts__head {
  margin-bottom: 22px;
}

.detail-apps__panel .type-rows a {
  font-size: 16px;
}

.detail-related {
  padding-top: 96px;
}

@media (max-width: 980px) {
  .detail-hero {
    padding: 150px 0 76px;
  }

  .detail-apps__panel {
    padding: 28px 24px;
  }
}

@media (max-width: 720px) {
  .detail-hero {
    padding: 132px 0 60px;
  }

  .detail-hero h1 {
    font-size: clamp(36px, 10vw, 52px);
  }

  .detail-apps__panel .type-rows span {
    text-align: left;
  }
}

/* ==============================================
   Products catalogue — sidebar + list + pager
   ============================================== */
.prod-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 64px;
  align-items: start;
  margin-top: 24px;
}

.prod-side {
  position: sticky;
  top: 130px;
}

.prod-side__label {
  margin: 0 0 14px;
  color: #52677a;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.prod-side__list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.prod-side__list li {
  border-bottom: 1px solid var(--line);
}

.prod-side__list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 2px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: color 0.2s ease, padding-left 0.25s ease;
}

.prod-side__list a:hover {
  color: var(--red);
  padding-left: 8px;
}

.prod-side__list a.is-current {
  color: var(--red);
}

.prod-side__list a.is-current::after {
  content: "\2192";
  font-weight: 400;
}

.prod-main .item-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

.pager a,
.pager__step,
.pager .page-numbers {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: 14.5px;
  font-weight: 600;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.pager a:hover {
  border-color: var(--ink);
}

.pager a.is-current,
.pager .page-numbers.current {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.pager__step.is-disabled,
.pager .page-numbers.dots {
  color: rgba(82, 103, 122, 0.45);
  border-color: var(--line);
}

@media (max-width: 1100px) {
  .prod-layout {
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 40px;
  }
}

@media (max-width: 980px) {
  .prod-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .prod-side {
    position: static;
  }

  .prod-side__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border-top: 0;
  }

  .prod-side__list li {
    border-bottom: 0;
  }

  .prod-side__list a {
    padding: 9px 14px;
    border: 1px solid var(--line);
    font-size: 13.5px;
  }

  .prod-side__list a:hover {
    padding-left: 14px;
  }

  .prod-side__list a.is-current {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
  }

  .prod-side__list a.is-current::after {
    content: "";
  }
}

@media (max-width: 560px) {
  .prod-main .item-grid {
    grid-template-columns: 1fr;
  }

  .pager {
    justify-content: center;
  }
}

/* ==============================================
   Product detail — split hero gallery + spec list
   ============================================== */
.detail-hero {
  padding: 176px 0 88px;
}

.detail-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}

.gallery__main {
  /* Caifu product gallery: square source-preserving layout */
  width: 100%;
  min-width: 0;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}

.gallery__main img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
}

.gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.gallery__thumb {
  padding: 0;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
  opacity: 0.55;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.gallery__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.gallery__thumb:hover {
  opacity: 0.85;
}

.gallery__thumb.is-active {
  opacity: 1;
  border-color: var(--ink);
}

.detail-hero__intro h1 {
  margin: 18px 0 0;
  font-size: clamp(36px, 4vw, 58px);
  font-weight: 680;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.detail-hero__desc {
  margin: 22px 0 0;
  color: #42576b;
  font-size: 17.5px;
  line-height: 1.65;
}

.detail-params {
  padding-top: 0;
}

.spec-list {
  max-width: 860px;
  margin: 56px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.spec-list li {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
}

.spec-list li span {
  color: #52677a;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.spec-list li strong {
  font-size: 16px;
  font-weight: 620;
  letter-spacing: -0.01em;
}

@media (max-width: 980px) {
  .detail-hero {
    padding: 150px 0 72px;
  }

  .detail-hero__layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .spec-list li {
    grid-template-columns: 160px minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .spec-list li {
    grid-template-columns: 1fr;
    gap: 6px;
  }

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

.product-spec-strip--config > label {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  min-width: 0;
  padding: 18px 22px 20px;
  border-right: 1px solid var(--line);
}

.product-spec-strip--config > label:nth-of-type(4) {
  border-right: 0;
}

.product-spec-strip--config .combo {
  position: relative;
}

.product-spec-strip--config .combo input[type="text"] {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: 0;
  margin: 0;
  padding: 0 24px 0 0;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  border-radius: 0;
  cursor: pointer;
}

.product-spec-strip--config .combo input[type="text"]::placeholder {
  color: #8fa2b0;
  font-weight: 500;
}

.product-spec-strip--config .combo input[type="text"]:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}

.product-spec-strip--config .combo::after {
  content: "▾";
  position: absolute;
  top: 50%;
  right: 4px;
  transform: translateY(-50%);
  color: #8fa2b0;
  font-size: 11px;
  pointer-events: none;
}

.combo__list {
  position: absolute;
  top: calc(100% + 10px);
  left: -22px;
  right: -22px;
  z-index: 40;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 18px 38px rgba(19, 38, 58, 0.14);
  max-height: 236px;
  overflow-y: auto;
}

.combo__list li {
  padding: 10px 22px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.combo__list li + li {
  border-top: 1px solid #edf1f4;
}

.combo__list li:hover,
.combo__list li.is-hover {
  background: #f2f6f8;
}

.combo__list li.is-active {
  color: var(--red);
}

.combo__list li.combo__empty {
  color: #8fa2b0;
  font-size: 12.5px;
  font-weight: 500;
  cursor: default;
}

.product-spec-strip--config > a {
  text-align: center;
}

.product-spec-strip--config > a:hover {
  filter: brightness(0.92);
}

.inquiry-form.is-flagged {
  outline: 2px solid var(--red);
  outline-offset: 6px;
}

#catalogue .product-spec-strip--config {
  margin-bottom: 76px;
}

.detail-config {
  padding: 20px 0 0;
}

.detail-config .product-spec-strip--config {
  margin-top: 0;
  margin-bottom: 88px;
}

@media (max-width: 1240px) {
  .product-spec-strip--config {
    grid-template-columns: repeat(2, 1fr);
  }

  .product-spec-strip--config > label {
    border-bottom: 1px solid var(--line);
  }

  .product-spec-strip--config > label:nth-of-type(even) {
    border-right: 0;
  }

  .product-spec-strip--config > a {
    grid-column: 1 / -1;
    min-height: 58px;
  }
}

@media (max-width: 560px) {
  .product-spec-strip--config {
    grid-template-columns: 1fr;
  }

  .product-spec-strip--config > label {
    border-right: 0;
  }
}

.product-spec-strip--config {
  position: relative;
  z-index: 30;
}

.section--products .product-spec-strip--config .combo__list {
  top: auto;
  bottom: calc(100% + 10px);
}

.product-spec-strip--config .combo::after {
  right: 2px;
  color: #52677a;
  font-size: 15px;
  font-weight: 700;
}

#catalogue {
  padding-top: 20px;
}

#catalogue .product-spec-strip--config {
  margin-bottom: 64px;
}

.prod-layout {
  margin-top: 0;
}

@media (min-width: 981px) {
  .prod-side {
    border-top: 2px solid var(--ink);
    padding-top: 18px;
  }

  .prod-side__label {
    margin: 0 0 10px;
  }

  .prod-side__list {
    counter-reset: cat;
    border-top: 0;
  }

  .prod-side__list li {
    border-bottom: 1px solid var(--line);
  }

  .prod-side__list a {
    position: relative;
    justify-content: flex-start;
    gap: 12px;
    padding: 13px 2px 13px 18px;
    color: #52677a;
    counter-increment: cat;
  }

  .prod-side__list a::before {
    content: counter(cat, decimal-leading-zero);
    color: #8fa2b0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .prod-side__list a::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 16px;
    background: var(--red);
    opacity: 0;
  }

  .prod-side__list a:hover {
    color: var(--ink);
    padding-left: 18px;
  }

  .prod-side__list a.is-current {
    color: var(--ink);
    font-weight: 750;
  }

  .prod-side__list a.is-current::before {
    color: var(--red);
  }

  .prod-side__list a.is-current::after {
    content: "";
    opacity: 1;
  }
}

@media (min-width: 1241px) {
  .detail-hero {
    padding-bottom: 64px;
  }
}

.detail-config .product-spec-strip--config {
  margin-bottom: 72px;
}

.detail-apps__panel {
  margin-top: 48px;
}

.detail-related {
  padding-top: 0;
}

.detail-apps .section-heading h2,
.detail-params .section-heading h2,
.detail-related .section-heading h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

.contact-band {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 72px;
  padding-top: 72px;
  border-top: 1px solid var(--line);
}

.contact-band h2 {
  margin: 0;
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 680;
  letter-spacing: -0.048em;
}

.contact-band__lead {
  margin: 18px 0 26px;
  max-width: 52ch;
  color: #52677a;
  font-size: 16.5px;
  line-height: 1.65;
}

.contact-band__list {
  margin: 0;
  padding: 0;
  list-style: none;
  align-self: start;
}

.contact-band__list li {
  border-bottom: 1px solid var(--line);
  padding: 16px 0;
}

.contact-band__list li:first-child {
  padding-top: 6px;
}

.contact-band__list a,
.contact-band__list div {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 20px;
  align-items: baseline;
}

.contact-band__list span {
  color: #8fa2b0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.contact-band__list strong {
  color: var(--ink);
  font-size: 15.5px;
  font-weight: 650;
  line-height: 1.5;
}

.contact-band__list a:hover strong {
  color: var(--red);
}

@media (max-width: 980px) {
  .contact-band {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-top: 56px;
  }

  .contact-band h2 {
    letter-spacing: -0.035em;
  }
}

.gallery {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  --swiper-theme-color: var(--ink);
  --swiper-navigation-color: var(--ink);
  --swiper-navigation-size: 15px;
}

.gallery__main.swiper {
  overflow: hidden;
}

.gallery__thumbs.swiper {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin-top: 12px;
}

.gallery__thumbs .swiper-slide {
  border: 1px solid var(--line);
  background: #fff;
  opacity: 0.5;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.gallery__thumbs .swiper-slide img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.gallery__thumbs .swiper-slide:hover {
  opacity: 0.85;
}

.gallery__thumbs .swiper-slide-thumb-active {
  opacity: 1;
  border-color: var(--ink);
}

.gallery .swiper-slide {
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  cursor: pointer;
}

.gallery__main .swiper-slide {
  height: 100%;
  cursor: default;
}

.gallery .swiper-slide img {
  -webkit-user-drag: none;
}

.gallery .swiper-slide:focus {
  outline: none;
}

/* ---- Detail gallery controls — inset square buttons ---- */
.gallery__main .swiper-button-next,
.gallery__main .swiper-button-prev {
  top: calc(50% - 22px);
  width: 44px;
  height: 44px;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  transform: none;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.gallery__main .swiper-button-prev {
  left: 16px;
  right: auto;
}

.gallery__main .swiper-button-next {
  right: 16px;
  left: auto;
}

.gallery-nav .swiper-navigation-icon {
  display: none;
}

.gallery-nav::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: 1.5px solid var(--ink);
  border-right: 1.5px solid var(--ink);
  transition: border-color 0.2s ease;
}

.gallery-nav.swiper-button-next::after {
  transform: rotate(45deg) translate(-2px, 2px);
}

.gallery-nav.swiper-button-prev::after {
  transform: rotate(-135deg) translate(-2px, 2px);
}

.gallery-nav:hover {
  background: var(--ink);
  border-color: var(--ink);
}

.gallery-nav:hover::after {
  border-color: #fff;
}

.gallery-nav:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.gallery-nav.swiper-button-disabled {
  opacity: 0;
  pointer-events: none;
}

.gallery__thumbs.swiper {
  margin-top: 10px;
}

.gallery__thumbs .swiper-slide-thumb-active {
  border-color: var(--ink);
  opacity: 1;
}

@media (max-width: 720px) {
  .gallery__main .swiper-button-next,
  .gallery__main .swiper-button-prev {
    top: calc(50% - 19px);
    width: 38px;
    height: 38px;
  }

  .gallery__main .swiper-button-prev {
    left: 10px;
  }

  .gallery__main .swiper-button-next {
    right: 10px;
  }
}

.combo__list li.combo__custom {
  color: var(--red);
  font-weight: 700;
}

.combo__list li.combo__custom:hover,
.combo__list li.combo__custom.is-hover {
  background: #faf1f1;
}

.area-numbers .product-spec-strip--config {
  position: relative;
  z-index: 30;
}

.area-numbers .product-spec-strip--config .combo__list {
  top: auto;
  bottom: calc(100% + 10px);
}

/* ---- Content-area editor output styles (spec-list + detail-apps panel) ----
   Both containers render WordPress editor content; the markup below is
   placeholder demo only. Styles are generic: table / p / h3 / ul / li / a / img */
.spec-list {
  max-width: none;
  border-top: 0;
}

.spec-list table,
.detail-apps__panel table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
}

.spec-list th,
.spec-list td,
.detail-apps__panel th,
.detail-apps__panel td {
  padding: 16px 24px 16px 0;
  border: 0;
  text-align: left;
  vertical-align: top;
}

.spec-list th:last-child,
.spec-list td:last-child,
.detail-apps__panel th:last-child,
.detail-apps__panel td:last-child {
  padding-right: 0;
}

.spec-list tr th,
.spec-list tr td,
.detail-apps__panel tr th,
.detail-apps__panel tr td {
  border-top: 1px solid var(--line);
}

.spec-list tr:last-child th,
.spec-list tr:last-child td,
.detail-apps__panel tr:last-child th,
.detail-apps__panel tr:last-child td {
  border-bottom: 1px solid var(--line);
}

.spec-list th {
  width: 220px;
  color: #52677a;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.spec-list td {
  font-size: 16px;
  font-weight: 620;
  letter-spacing: -0.01em;
}

.detail-apps__panel td {
  font-size: 15.5px;
  line-height: 1.55;
}

/* WordPress editor output scoped to the two content-area containers */
.spec-list p,
.detail-apps__panel p {
  margin: 0 0 12px;
  color: #42576b;
  font-size: 15.5px;
  line-height: 1.65;
}

.spec-list h3,
.spec-list h4,
.detail-apps__panel h3,
.detail-apps__panel h4 {
  margin: 18px 0 10px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.spec-list ul,
.spec-list ol,
.detail-apps__panel ul,
.detail-apps__panel ol {
  margin: 12px 0;
  padding: 0 0 0 22px;
  color: #42576b;
  font-size: 15px;
  line-height: 1.7;
}

.spec-list li,
.detail-apps__panel li {
  display: list-item;
  padding: 2px 0;
  border-bottom: 0;
}

.spec-list li span,
.detail-apps__panel li span {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: normal;
  text-transform: none;
}

.spec-list li strong,
.detail-apps__panel li strong,
.spec-list strong,
.detail-apps__panel strong {
  font-weight: 700;
}

.spec-list img,
.detail-apps__panel img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 12px 0;
}

.spec-list a,
.detail-apps__panel a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(11, 23, 38, 0.3);
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.spec-list a:hover,
.detail-apps__panel a:hover {
  color: var(--red);
  text-decoration-color: var(--red);
}

@media (max-width: 980px) {
  .spec-list th {
    width: 160px;
  }
}

@media (max-width: 560px) {
  .spec-list th,
  .spec-list td,
  .detail-apps__panel th,
  .detail-apps__panel td {
    padding: 12px 14px 12px 0;
  }

  .spec-list th {
    width: 112px;
    padding-right: 14px;
    font-size: 11px;
  }

  .spec-list td {
    font-size: 14.5px;
  }
}

/* ==============================================
   Quality page (quality.html) — page-level layer
   ============================================== */
.page-quality .section-heading h2,
.page-quality .quality-copy h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

/* Block 2 · Numbers strip — text value sizing for the traceability column */
.qz-numbers .about-numbers__item:last-child strong {
  font-size: clamp(28px, 2.7vw, 40px);
}

/* Block 3 · Engineering — specification rows */
.qz-engineering {
  background: #fff;
}

.qz-engineering .about-copy h2 {
  font-size: clamp(30px, 3.2vw, 46px);
}

.qz-spec {
  margin: 30px 0 26px;
  border-top: 1px solid var(--line);
}

.qz-spec__row {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}

.qz-spec__row strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.qz-spec__row span {
  color: #52677a;
  font-size: 14px;
  line-height: 1.5;
}

/* Block 4 · Manufacturing route — numbered ledger */
.qz-route {
  background: var(--soft);
}

.qz-route__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 48px;
  margin: clamp(44px, 5vw, 72px) 0 0;
  padding: 0;
  border-bottom: 1px solid #cfd8df;
  list-style: none;
}

.qz-route__grid li {
  padding: 26px 0 30px;
  border-top: 1px solid #cfd8df;
}

.qz-route__grid li span {
  display: block;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.qz-route__grid li h3 {
  margin: 12px 0 8px;
  font-size: 20px;
}

.qz-route__grid li p {
  margin: 0;
  color: #52677a;
  font-size: 14.5px;
  line-height: 1.6;
}

/* Block 5 · Testing — four evidence pillars */
.qz-test {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: clamp(44px, 5vw, 72px);
  border-top: 1px solid #c4d0d9;
  border-bottom: 1px solid #c4d0d9;
}

.qz-test__col {
  padding: 30px 32px 34px;
  border-left: 1px solid #c4d0d9;
}

.qz-test__col:first-child {
  padding-left: 0;
  border-left: 0;
}

.qz-test__col > span {
  display: block;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.qz-test__col h3 {
  margin: 12px 0 16px;
  font-size: 21px;
}

.qz-test__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.qz-test__list li {
  padding: 12px 0;
  border-top: 1px solid #c4d0d9;
}

.qz-test__list li:first-child {
  padding-top: 0;
  border-top: 0;
}

.qz-test__list strong {
  display: block;
  color: var(--ink);
  font-size: 14px;
  font-weight: 620;
  letter-spacing: -0.01em;
}

.qz-test__list span {
  display: block;
  margin-top: 3px;
  color: #52677a;
  font-size: 13px;
  line-height: 1.5;
}

.qz-figs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: clamp(40px, 4vw, 60px);
}

.qz-fig {
  margin: 0;
}

.qz-fig img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  filter: saturate(0.94) brightness(1.03);
}

.qz-fig figcaption {
  margin-top: 12px;
  color: #52677a;
  font-size: 13px;
}

.qz-pillars {
  margin: 34px 0 0;
  color: #42576b;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Block 6 · Four checkpoints and documented release */
.qz-release {
  background: #fff;
}

.qz-release .quality-layout {
  align-items: start;
}

.qz-steps li > span {
  color: var(--red);
}

.qz-out {
  display: block;
  margin-top: 8px;
  color: #6a7a8c;
  font-size: 12.5px;
  line-height: 1.5;
}

.qz-links {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-top: clamp(48px, 5vw, 72px);
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

/* Block 7 · Certificates & recognition */
.qz-certificates {
  background: var(--soft);
}

.qz-cert-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 20px;
  margin-top: clamp(44px, 5vw, 72px);
}

.qz-cert {
  padding: 22px 22px 26px;
  background: #fff;
  border: 1px solid var(--line);
}

.qz-cert__num {
  display: block;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.qz-cert__fig {
  display: block;
  margin: 16px 0 14px;
}

.qz-cert__fig img {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  object-position: top center;
  background: #fff;
  border: 1px solid var(--line);
}

.qz-cert h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.25;
}

.qz-cert p {
  margin: 8px 0 0;
  color: #52677a;
  font-size: 13px;
  line-height: 1.55;
}

.qz-cert-note {
  margin: 32px 0 0;
  color: #42576b;
  font-size: 14px;
}

@media (max-width: 1180px) {
  .qz-test {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .qz-test__col:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }

  .qz-test__col:nth-child(-n+2) {
    border-bottom: 1px solid #c4d0d9;
  }
}

@media (max-width: 980px) {
  .qz-route__grid {
    grid-template-columns: 1fr 1fr;
  }

  .qz-spec__row {
    grid-template-columns: 150px 1fr;
  }
}

@media (max-width: 720px) {
  .qz-route__grid {
    grid-template-columns: 1fr;
  }

  .qz-test {
    grid-template-columns: 1fr;
  }

  .qz-test__col,
  .qz-test__col:nth-child(-n+2) {
    padding: 26px 0;
    border-top: 1px solid #c4d0d9;
    border-bottom: 0;
    border-left: 0;
  }

  .qz-test__col:first-child {
    border-top: 0;
  }

  .qz-figs {
    grid-template-columns: 1fr;
  }

  .qz-spec__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .qz-links {
    gap: 18px;
  }
}

/* Quality page refinements — numbers alignment & testing heading */
.qz-numbers .about-numbers__label {
  line-height: 1.45;
  min-height: 2.9em;
}

.qz-testing .section-heading h2 {
  max-width: 540px;
}

/* Product detail refinements — section heading scale and rhythm */
.page-detail .section-heading {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin-bottom: 34px;
}

.page-detail .section-heading .eyebrow {
  margin-bottom: 14px;
}

.page-detail .section-heading h2 {
  font-size: clamp(30px, 3.2vw, 32px);
  font-weight: 680;
  letter-spacing: -0.03em;
  line-height: 1.16;
}

.page-detail .detail-apps__panel,
.page-detail .spec-list,
.page-detail .item-grid {
  margin-top: 0;
}

@media (max-width: 980px) {
  .page-detail .section-heading {
    margin-bottom: 28px;
  }
}

@media (max-width: 560px) {
  .page-detail .section-heading {
    margin-bottom: 24px;
  }
}

/* Product detail refinements — panel frame off, thumb inset */
.page-detail .detail-apps__panel {
  padding: 0;
  border: 0;
}

.gallery__thumbs .swiper-slide {
  padding: 6px;
}

@media (max-width: 560px) {
  .gallery__thumbs .swiper-slide {
    padding: 4px;
  }
}

/* Products sidebar — contact module below categories */
.prod-side__contact {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 2px solid var(--ink);
}

.prod-side__contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.prod-side__contact-list li + li {
  border-top: 1px solid var(--line);
}

.prod-side__contact-list div {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 12px;
  align-items: baseline;
  padding: 11px 0;
}

.prod-side__contact-list span {
  color: #8fa2b0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.prod-side__contact-list a {
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
  transition: color 0.2s ease;
}

.prod-side__contact-list a:hover {
  color: var(--red);
}

.prod-side__contact .text-link {
  margin-top: 14px;
  font-size: 13px;
}

.prod-side__list li:last-child {
  border-bottom: 0;
}

/* ==============================================
   Resources page (resources.html) — page-level layer
   ============================================== */
.res-hero__slogan {
  max-width: 620px;
  margin-top: 62px;
  padding-top: 26px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(226, 235, 242, 0.72);
  font-size: clamp(17px, 1.4vw, 20px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.6;
}

.res-switch {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.res-switch__inner {
  display: flex;
  justify-content: center;
  align-items: stretch;
}

.res-switch__tab {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 30px 34px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: color 0.25s ease;
}

.res-switch__tab::after {
  position: absolute;
  right: 34px;
  bottom: -1px;
  left: 34px;
  height: 2px;
  content: "";
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.res-switch__tab:hover {
  color: var(--ink);
}

.res-switch__tab[aria-current="page"] {
  color: var(--ink);
}

.res-switch__tab[aria-current="page"]::after {
  transform: scaleX(1);
}

.res-list {
  padding: 84px 0 116px;
}

.res-list__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-inline: -24px;
  padding: 0 24px 16px;
  border-bottom: 1px solid var(--ink);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.res-panel[hidden] {
  display: none;
}

.res-item {
  position: relative;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) 268px;
  gap: 56px;
  align-items: center;
  margin-inline: -24px;
  padding: 38px 24px;
  border-bottom: 1px solid var(--line);
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease, transform 0.55s ease, background 0.3s ease;
}

.res-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.res-item:hover {
  background: var(--soft);
}

.res-item__meta {
  display: grid;
  gap: 9px;
}

.res-item__date {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.res-item__tag {
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.res-item__format {
  color: var(--steel);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.res-item__title {
  margin: 0;
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 640;
  letter-spacing: -0.03em;
  line-height: 1.22;
}

.res-item__link::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: "";
}

.res-item__link:hover {
  color: var(--red);
}

.res-item__body > p {
  max-width: 640px;
  margin: 13px 0 0;
  color: var(--slate);
  font-size: 14.5px;
  line-height: 1.72;
}

.res-item__go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: gap 0.3s ease;
}

.res-item:hover .res-item__go {
  gap: 14px;
}

.res-item__go > span {
  transition: transform 0.3s ease;
}

.res-item:hover .res-item__go > span {
  transform: translateX(2px);
}

.res-item__thumb {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--soft);
}

.res-item__thumb-link {
  display: block;
  height: 100%;
}

.res-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(1.02);
  transition: transform 0.6s ease, filter 0.4s ease;
}

.res-item:hover .res-item__thumb img {
  transform: scale(1.05);
  filter: saturate(1) contrast(1.02);
}

.res-note {
  margin: 46px 0 0;
  color: var(--slate);
  font-size: 14.5px;
}

.res-note .text-link {
  font-size: 14.5px;
}

@media (max-width: 1180px) {
  .res-item {
    grid-template-columns: 160px minmax(0, 1fr) 224px;
    gap: 36px;
  }
}

@media (max-width: 980px) {
  .res-hero__slogan {
    margin-top: 44px;
  }

  .res-switch__tab {
    padding: 26px 22px;
    font-size: 12px;
  }

  .res-switch__tab::after {
    right: 22px;
    left: 22px;
  }

  .res-list {
    padding: 64px 0 92px;
  }

  .res-item {
    grid-template-columns: minmax(0, 1fr) 232px;
    gap: 30px;
    padding: 30px 24px;
  }

  .res-item__meta {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
  }
}

@media (max-width: 720px) {
  .res-switch__inner {
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .res-switch__inner::-webkit-scrollbar {
    display: none;
  }

  .res-switch__tab {
    padding: 20px 16px;
    font-size: 11px;
    white-space: nowrap;
  }

  .res-switch__tab::after {
    right: 16px;
    left: 16px;
  }

  .res-list__meta {
    margin-inline: -20px;
    padding-inline: 20px;
    font-size: 10px;
  }

  .res-item {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-inline: -20px;
    padding: 26px 20px;
  }

  .res-item__meta {
    grid-column: auto;
    grid-row: 1;
  }

  .res-item__thumb {
    grid-row: 2;
    aspect-ratio: 16 / 9;
  }

  .res-item__body {
    grid-row: 3;
  }

  .res-item:hover {
    background: transparent;
  }
}

/* Cert carousel: white background band (quality page sits on --soft) */
.about-cert-swiper {
  background: #fff;
}

/* ==============================================
   Article detail template (article.html) - page-level layer
   ============================================== */
.art-byline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 30px 0 0;
  color: rgba(226, 235, 242, 0.75);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.art-byline span {
  color: rgba(226, 235, 242, 0.38);
}

.art-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin: 26px 0 0;
  color: rgba(226, 235, 242, 0.55);
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.5;
}

.art-crumb,
.art-crumb * {
  font-size: 12px;
  font-weight: inherit;
  font-style: normal;
}

.art-crumb a {
  color: rgba(226, 235, 242, 0.75);
  transition: color 0.2s ease;
}

.art-crumb a:hover {
  color: #fff;
}

.art-crumb span[aria-current] {
  color: #fff;
  font-weight: 600;
}

.art-main {
  padding: 0 0 96px;
}

.art-body {
  width: 100%;
}

.art-body .art-lead {
  margin: 0 0 30px;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.75;
}

.art-body p {
  margin: 0 0 20px;
  color: var(--slate);
  font-size: 16.5px;
  line-height: 1.82;
}

.art-body strong {
  color: var(--ink);
  font-weight: 700;
}

.art-body .art-note {
  margin: -4px 0 30px;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.6;
}

.art-body table {
  margin: 0 0 10px;
}

.art-body table th {
  width: auto;
  padding: 13px 26px 13px 0;
  border-bottom: 2px solid var(--ink);
  color: #52677a;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  vertical-align: bottom;
}

.art-body table td {
  padding: 15px 26px 15px 0;
  font-size: 15.5px;
  font-weight: 560;
  letter-spacing: -0.01em;
  line-height: 1.5;
}

.art-body table th:last-child,
.art-body table td:last-child {
  padding-right: 0;
}

.art-related {
  padding-top: 76px;
}

.art-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.art-card {
  display: flex;
  flex-direction: column;
  background: #fff;
}

.art-card__media {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.art-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.02);
  transition: transform 0.5s ease;
}

.art-card:hover .art-card__media img {
  transform: scale(1.04);
}

.art-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  padding: 26px 28px 30px;
}

.art-card__meta {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.art-card__title {
  margin: 0;
  font-size: 19px;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.art-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.25s ease;
}

.art-card__title a:hover {
  color: var(--red);
}

.art-card__go {
  margin-top: auto;
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 700;
  transition: color 0.25s ease;
}

.art-card:hover .art-card__go {
  color: var(--red);
}

@media (max-width: 980px) {
  .art-main {
    padding: 0 0 80px;
  }

  .art-related {
    padding-top: 60px;
  }

  .art-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .art-main {
    padding: 0 0 64px;
  }

  .art-byline {
    margin-top: 22px;
    font-size: 11px;
  }

  .art-body .art-lead {
    font-size: 17.5px;
  }

  .art-body table th,
  .art-body table td {
    padding-right: 14px;
  }

  .art-card__body {
    padding: 22px 22px 26px;
  }
}

/* Resource library: refinement overrides (append-only) */
.res-list {
  padding-top: 0;
}

.res-list__meta {
  margin-top: 44px;
}

.res-item[hidden] {
  display: none;
}

.res-item__format {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
}

.pager[hidden] {
  display: none;
}

.res-list .pager {
  border-top: 0;
  padding-top: 0;
}

.res-list .res-item {
  opacity: 1;
  transform: none;
}

/* ===== AIPress form states ===== */

.aipress-form-submitting button[type="submit"] {
  opacity: 0.7;
  cursor: not-allowed;
  pointer-events: none;
}

.inquiry-form .is-invalid {
  border-color: #dc3545;
}

.inquiry-form .is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.15);
}

.form-status.aipress-form-message {
  padding: 12px 16px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.5;
  color: #155724;
}

.form-status.aipress-form-message--success {
  background-color: #d4edda;
  border-color: #c3e6cb;
  color: #155724;
}

.form-status.aipress-form-message--error {
  background-color: #f8d7da;
  border-color: #f5c6cb;
  color: #721c24;
}

/* ===== contact.html ===== */

.contact-band__note {
  margin: 22px 0 0;
  max-width: 46ch;
  color: #52677a;
  font-size: 14.5px;
  line-height: 1.65;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.contact-band__list li div,
.contact-band__list li a {
  grid-template-columns: 96px minmax(0, 1fr);
}

.contact-map-sec {
  padding-top: 0;
}

.contact-map {
  position: relative;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  min-height: 400px;
  background: #e7eef3;
  border: 1px solid var(--line);
  text-align: center;
  padding: 40px 24px;
}

.contact-map__pin {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 7px rgba(173, 16, 24, 0.14);
}

.contact-map__label {
  margin: 10px 0 0;
  color: #8fa2b0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.contact-map__addr {
  margin: 0;
  color: #52677a;
  font-size: 14px;
  line-height: 1.6;
  max-width: 52ch;
}

@media (max-width: 720px) {
  .contact-map {
    min-height: 300px;
  }

  .contact-band__list li div,
  .contact-band__list li a {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
  }
}

.industry-card .industry-card__image {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.65);
  transition: transform 0.6s ease;
}

.industry-card:hover .industry-card__image {
  transform: scale(1.045);
}

.industry-card:has(.industry-card__image)::before {
  background-image: none;
}

.industry-grid .industry-card:nth-child(1) .industry-card__image {
  object-position: 54% center;
}

.industry-grid .industry-card:nth-child(2) .industry-card__image {
  object-position: 56% center;
}

.industry-grid .industry-card:nth-child(3) .industry-card__image {
  object-position: 58% center;
}

.industry-grid .industry-card:nth-child(4) .industry-card__image,
.industry-grid .industry-card:nth-child(5) .industry-card__image,
.industry-grid .industry-card:nth-child(6) .industry-card__image {
  object-position: 60% center;
}

.about-visual .about-visual__lineart {
  position: absolute;
  z-index: 0;
  top: -225px;
  left: 0;
  width: 320px;
  height: 213px;
  margin: 0;
  aspect-ratio: auto;
  object-fit: contain;
  background: transparent;
  box-shadow: none;
  pointer-events: none;
  filter: drop-shadow(0 1px 0 rgba(11, 23, 38, 0.22));
}

.about-visual:has(.about-visual__lineart)::before {
  background-image: none;
}

/* Nav menu — spec structure: nav.main-nav > ul.nav-list > li.nav-item(.menu-item-has-children) > ul.sub-menu */
.main-nav .menu-item-has-children {
  position: relative;
}

.main-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 10px);
  min-width: 224px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  visibility: hidden;
  opacity: 0;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.main-nav .menu-item-has-children:hover .sub-menu,
.main-nav .menu-item-has-children:focus-within .sub-menu,
.main-nav .menu-item-has-children.is-open .sub-menu {
  visibility: visible;
  opacity: 1;
  transform: translate(-50%, 0);
}

.main-nav .sub-menu a {
  display: block;
  padding: 11px 20px;
  font-size: 13px;
  font-weight: 550;
  color: #263b4f;
  white-space: nowrap;
}

.main-nav .sub-menu a::after {
  content: none;
}

.main-nav .sub-menu a:hover {
  color: var(--red);
  background: var(--soft);
}

/* Language menu — same spec structure, panel overrides the dropdown shell */
.language-menu .sub-menu {
  position: static;
  transform: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  visibility: visible;
  opacity: 1;
  list-style: none;
}

.language-menu .nav-item > a,
.language-menu .nav-item > span {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 9px;
  color: var(--slate);
  font-size: 13px;
}

.language-menu .nav-item > a:hover,
.language-menu .nav-item > a.is-active {
  color: var(--red);
  background: var(--soft);
}

.language-menu .nav-item > span {
  opacity: 0.56;
  cursor: not-allowed;
}

/* Product card links — image link + title link, no anchor wrapping the whole card */
.section--products .product-card__image a {
  display: block;
  height: 100%;
  overflow: hidden;
}

.section--products .product-card__body h3 a {
  color: inherit;
  transition: color 0.2s ease;
}

.section--products .product-card__body h3 a:hover {
  color: var(--red);
}

/* Mobile navigation — .main-nav reused as the full-width panel (legacy .mobile-menu removed) */
@media (max-width: 980px) {
  body.menu-open .desktop-nav {
    position: absolute;
    z-index: 90;
    top: 100%;
    right: 0;
    left: 0;
    display: block;
    height: calc(100dvh - 78px);
    margin-left: 0;
    overflow-y: auto;
    padding: 24px max(24px, calc((100vw - var(--shell)) / 2));
    color: #fff;
    background: #08111d;
  }

  body.menu-open .desktop-nav .nav-list {
    display: block;
    gap: 0;
  }

  body.menu-open .desktop-nav .nav-item > a {
    display: block;
    padding: 15px 2px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 18px;
    font-weight: 650;
    white-space: normal;
  }

  body.menu-open .desktop-nav .nav-item > a::after {
    content: none;
  }

  body.menu-open .desktop-nav .sub-menu {
    position: static;
    display: block;
    min-width: 0;
    margin: 0;
    padding: 2px 0 10px 16px;
    visibility: visible;
    opacity: 1;
    background: transparent;
    border: 0;
    box-shadow: none;
    transform: none;
    transition: none;
  }

  body.menu-open .desktop-nav .sub-menu .nav-item > a {
    padding: 9px 2px;
    border-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    font-weight: 550;
  }

  /* 7c-mobile · 顶部主导航当前态（移动端 active panel）：
     主层 li 用左侧红色边线 + 浅色背景标识；
     子菜单 li 用 var(--red) + 加粗标识。复用 .desktop-nav 类选择器覆盖 mobile-only panel。*/
  body.menu-open .desktop-nav .nav-item.current-menu-item > a,
  body.menu-open .desktop-nav .nav-item.current-menu-ancestor > a,
  body.menu-open .desktop-nav .nav-item.current-menu-parent > a {
    color: var(--red);
    border-left: 2px solid var(--red);
    padding-left: 12px;
    background: rgba(228, 67, 75, 0.08);
  }

  body.menu-open .desktop-nav .sub-menu .nav-item.current-menu-item > a,
  body.menu-open .desktop-nav .sub-menu .nav-item.current-menu-ancestor > a,
  body.menu-open .desktop-nav .sub-menu .nav-item.current-menu-parent > a {
    color: var(--red);
    font-weight: 650;
  }
}

@media (max-width: 720px) {
  body.menu-open .desktop-nav .nav-item > a {
    font-size: 20px;
  }
}

.eyebrow > span.eyebrow-text {
  width: auto;
  height: auto;
  flex: 0 1 auto;
  background: none;
}

/**
 * Swiper 14.0.5
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: July 9, 2026
 */

:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}::slotted(svg),svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}}

/* ============================================================
   Refinement addendum · 2026-09-05 evening
   1) prod-side menu annotation: neutralize global .nav-list flex
   2) hero__brief inner annotation container: link compensation
   3) resource-card overlay link
   4) primary nav submenu caret
   ============================================================ */

/* 1 · prod-side category menu keeps vertical hairline list */
.prod-side__nav .nav-list {
  display: block;
  align-items: stretch;
  gap: 0;
}

@media (max-width: 980px) {
  .prod-side__nav .nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
  }
}

/* 2 · hero__brief inner annotation container */
.hero__brief__inner > a {
  display: inline-block;
  margin-top: 18px;
  color: #fff;
  font-size: 14px;
  font-weight: 750;
}

.hero__brief__inner > a span {
  color: #ff6970;
}

/* 3 · resource-card overlay link */
.resource-card {
  position: relative;
}

.resource-card .resource-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  margin: 0;
  padding: 0;
}

.resource-card > a:not(.resource-card__overlay) {
  position: relative;
  z-index: 3;
}

/* 4 · primary nav submenu caret */
.main-nav .menu-item-has-children::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  vertical-align: 3px;
  opacity: 0.65;
  transition: transform 0.2s ease;
}

.main-nav .menu-item-has-children.is-open::after {
  transform: rotate(225deg);
  opacity: 1;
}

/* 5 · detail hero spec line (list excerpt mapping, below post_title) */
.detail-hero__spec {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 0;
  color: #42576b;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
}

.detail-hero__spec::before {
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--red);
}

.detail-hero__intro h1 + .detail-hero__spec + .detail-hero__desc {
  margin-top: 16px;
}
/* 6 · anchor offset for footer contact section */
.contact {
  scroll-margin-top: 124px;
}

/* ============================================================
   WP dynamic menu class mapping · 2026-09-05
   AIPress Nav Walker 顶层 UL 固定输出 .nav-list（menu_class 不生效），
   动态菜单需在此对齐静态标注类的视觉；激活态映射 WP 的 .current-menu-item
   ============================================================ */

/* 6a · 语言菜单：纵向列表（全局 .nav-list 是横向 flex，会撑坏下拉） */
.language-menu .nav-list {
  display: block;
  gap: 0;
}

.language-menu a.current-menu-item,
.language-menu a.is-active {
  color: var(--red);
  background: var(--soft);
}

/* 6b · 侧栏产品菜单：.prod-side__list 全套视觉映射到动态 UL */
.prod-side__nav .nav-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.prod-side__nav .nav-list li {
  border-bottom: 1px solid var(--line);
}

.prod-side__nav .nav-list a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 2px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: color 0.2s ease, padding-left 0.25s ease;
}

.prod-side__nav .nav-list a:hover {
  color: var(--red);
  padding-left: 8px;
}

.prod-side__nav .nav-list a.current-menu-item,
.prod-side__nav .nav-list a.is-current {
  color: var(--red);
}

.prod-side__nav .nav-list a.current-menu-item::after,
.prod-side__nav .nav-list a.is-current::after {
  content: "\2192";
  font-weight: 400;
}

@media (max-width: 980px) {
  .prod-side__nav .nav-list li {
    border-bottom: 0;
  }

  .prod-side__nav .nav-list a {
    padding: 9px 14px;
    border: 1px solid var(--line);
    font-size: 13.5px;
  }

  .prod-side__nav .nav-list a:hover {
    padding-left: 14px;
  }

  .prod-side__nav .nav-list a.current-menu-item {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
  }

  .prod-side__nav .nav-list a.current-menu-item::after {
    content: "";
  }
}


/* 7 · WP 菜单当前态映射修正（2026-09-05 晚）：current-menu-item 在 <li> 上，不在 <a> 上 */
.prod-side__nav .nav-list li.current-menu-item > a {
  color: var(--red);
}

.prod-side__nav .nav-list li.current-menu-item > a::after {
  content: "\2192";
  font-weight: 400;
}

.language-menu .nav-list li.current-menu-item > a {
  color: var(--red);
  background: var(--soft);
}

@media (max-width: 980px) {
  .prod-side__nav .nav-list li.current-menu-item > a {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
  }

  .prod-side__nav .nav-list li.current-menu-item > a::after {
    content: "";
  }
}

/* 7c · 顶部主导航当前态（2026-09-06 夜补）：
   静态 .desktop-nav a.is-current 规则保留为 hover 过渡；
   WP 动态菜单的当前态锚点在 <li>（current-menu-item / current-menu-ancestor / current-menu-parent），
   需把 li 上的 active 映射到 <a> 上以复用 .desktop-nav a::after 的下划线。
   desktop-nav 与 main-nav 两个选择器都列上，覆盖旧 / 新模板命名 */
.desktop-nav .nav-list li.current-menu-item > a,
.desktop-nav .nav-list li.current-menu-ancestor > a,
.desktop-nav .nav-list li.current-menu-parent > a,
.main-nav .nav-list li.current-menu-item > a,
.main-nav .nav-list li.current-menu-ancestor > a,
.main-nav .nav-list li.current-menu-parent > a {
  color: var(--red);
}

.desktop-nav .nav-list li.current-menu-item > a::after,
.desktop-nav .nav-list li.current-menu-ancestor > a::after,
.desktop-nav .nav-list li.current-menu-parent > a::after,
.main-nav .nav-list li.current-menu-item > a::after,
.main-nav .nav-list li.current-menu-ancestor > a::after,
.main-nav .nav-list li.current-menu-parent > a::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* 8 · 面包屑占位符映射：aipress_breadcrumbs() 输出 <ul><li>，用 display:contents 透传给 flex 容器 */
.art-crumb ul,
.art-crumb li {
  display: contents;
  margin: 0;
  padding: 0;
  list-style: none;
}


/* 9 · 面包屑分隔符：aipress_breadcrumbs() 无硬编码分隔符，用伪元素补 "/" */
/*    产品详情（浅底，深文字）分隔符用灰；文章详情（深底，浅文字）分隔符用浅蓝 */
.art-crumb li + li::before {
  content: "/";
  margin: 0 10px 0 10px;
  color: rgba(226, 235, 242, 0.35);
}

.detail-hero__crumb li + li::before {
  content: "/";
  margin: 0 10px 0 10px;
  color: rgba(82, 103, 122, 0.5);
}

/* Caifu product category navigation: six categories and a rail flyout. */
.main-nav .cf-products-menu > .sub-menu {
  width: 318px;
  z-index: 100;
}
.main-nav .cf-products-menu .sub-menu a {
  padding: 13px 22px;
  font-size: 14px;
  line-height: 1.5;
  white-space: normal;
}
.main-nav .cf-products-menu .cf-rail-category > a {
  padding-right: 48px;
}
.main-nav .cf-products-menu .cf-rail-category::after {
  position: absolute;
  top: 23px;
  right: 23px;
  margin: 0;
  transform: rotate(-45deg);
  pointer-events: none;
}
.main-nav .cf-products-menu .cf-nav-toggle {
  display: none;
}
@media (min-width: 981px) {
  /* Override the legacy descendant selector: only the hovered level opens. */
  .main-nav .cf-products-menu .cf-rail-category > .sub-menu {
    top: -9px;
    left: 100%;
    right: auto;
    width: 314px;
    margin-left: -1px;
    z-index: 101;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: none;
    transition: none;
  }
  .main-nav .cf-products-menu .cf-rail-category:hover > .sub-menu,
  .main-nav .cf-products-menu .cf-rail-category:focus-within > .sub-menu,
  .main-nav .cf-products-menu .cf-rail-category.is-open > .sub-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .main-nav .cf-products-menu .cf-rail-category.cf-flyout-left > .sub-menu {
    left: auto;
    right: 100%;
    margin-left: 0;
    margin-right: -1px;
  }
  .main-nav .cf-products-menu .cf-rail-category.cf-flyout-left::after {
    transform: rotate(135deg);
  }
  .main-nav .cf-products-menu .cf-rail-category:hover > a,
  .main-nav .cf-products-menu .cf-rail-category:focus-within > a {
    color: var(--red);
    background: var(--soft);
  }
  .main-nav .cf-products-menu.cf-nav-dismissed .sub-menu {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
.main-nav .cf-products-menu a:focus-visible,
.main-nav .cf-products-menu .cf-nav-toggle:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: -3px;
}
@media (max-width: 980px) {
  body.menu-open .main-nav .cf-products-menu > .sub-menu,
  body.menu-open .main-nav .cf-products-menu .cf-rail-category > .sub-menu {
    position: static;
    transform: none;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: none;
  }
  body.menu-open .main-nav .cf-products-menu > .sub-menu {
    width: auto;
  }
  body.menu-open .main-nav .cf-products-menu .cf-rail-category > .sub-menu {
    width: auto;
    padding-left: 18px;
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    margin-left: 2px;
  }
  body.menu-open .main-nav .cf-products-menu .cf-rail-subcategory > a {
    font-size: 13px;
    line-height: 1.6;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced::after,
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced .cf-rail-category::after {
    content: none;
  }
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced > a,
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced .cf-rail-category > a {
    padding-right: 50px;
  }
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced > .sub-menu,
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced .cf-rail-category > .sub-menu {
    display: none;
  }
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced.cf-mobile-open > .sub-menu,
  body.menu-open .main-nav .cf-products-menu.cf-nav-enhanced .cf-rail-category.cf-mobile-open > .sub-menu {
    display: block;
  }
  body.menu-open .main-nav .cf-products-menu .cf-nav-toggle {
    position: absolute;
    top: 1px;
    right: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #fff;
    background: transparent;
    cursor: pointer;
  }
  body.menu-open .main-nav .cf-products-menu > .cf-nav-toggle {
    top: 8px;
  }
  body.menu-open .main-nav .cf-products-menu .cf-nav-toggle::before {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
  }
  body.menu-open .main-nav .cf-products-menu .cf-nav-toggle[aria-expanded="true"]::before {
    transform: rotate(225deg);
  }
}
