/* solutions.css — global styles for /solution/* pages.
   Recovered from pre-strip /tmp/qc-*.html captures; per-page
   `.kt-solution-<key>` prefixes stripped so rules apply on every page.
   Generated by scripts/recover-solutions-css.js
*/

/* ── Solution page layout vars (no token overrides) ── */
.kt-solution, [class^="kt-solution-"] {
  --sol-max: 1280px;
  --sol-gap: 2rem;
  /* Map page-local aliases to global tokens */
  --kt-secondary: var(--kt-slate-deep);
  --kt-shadow-hover: var(--kt-shadow-card-hover);
}

/* ── Shared layout ───────────────────────────── */
.sol-container {
  max-width: var(--sol-max);
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.sol-surface-alt {
  background: var(--kt-surface-alt);
}

/* ── Section header ──────────────────────────── */
.sol-section-header {
  margin-bottom: 2.5rem;
  text-align: center;
}

.sol-section-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kt-navy);
  background: rgba(13, 27, 76, 0.07);
  border-radius: 100px;
  padding: 0.25rem 0.875rem;
  margin-bottom: 0.75rem;
}

.sol-section-title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--kt-navy);
  margin: 0 0 0.75rem;
  line-height: 1.3;
}

.sol-section-title::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: var(--kt-gold);
  margin-top: 0.875rem;
  border-radius: 2px;
}

.sol-section-header { text-align: center; }
.sol-section-header .sol-section-title::after { margin-left: auto; margin-right: auto; }

.sol-section-desc {
  color: var(--kt-secondary);
  font-size: 1.0625rem;
  max-width: 680px;
  margin-inline: auto;
  line-height: 1.65;
}

/* ── Shared buttons ──────────────────────────── */
.sol-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--kt-radius-md);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 200ms ease;
  cursor: pointer;
  border: 2px solid transparent;
}

.sol-btn--primary {
  background: var(--kt-navy);
  color: #fff;
  border-color: var(--kt-navy);
}

.sol-btn--primary:hover {
  background: var(--kt-navy-soft);
  border-color: var(--kt-navy-soft);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px -6px rgba(13,27,76,0.4);
}

.sol-btn--gold {
  background: var(--kt-gold);
  color: var(--kt-navy) !important;
  border-color: var(--kt-gold);
}

.sol-btn--gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.38);
  color: var(--kt-navy) !important;
  text-decoration: none;
}

.sol-btn--outline {
  background: transparent;
  color: #fff !important;
  border-color: rgba(255,255,255,0.55);
}

.sol-btn--outline:hover {
  border-color: var(--kt-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.sol-btn--ghost {
  background: transparent;
  color: var(--kt-teal);
  border-color: var(--kt-teal);
}

.sol-btn--ghost:hover {
  background: var(--kt-teal);
  color: #fff;
}

.sol-btn--teal {
  background: var(--kt-teal);
  color: #fff;
  border-color: var(--kt-teal);
}

.sol-btn--teal:hover {
  background: var(--kt-teal-dark);
  border-color: var(--kt-teal-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px -6px rgba(14,162,189,0.5);
}

.sol-btn--lg {
  padding: 0.875rem 2rem;
  font-size: 1rem;
}

/* ── HERO ────────────────────────────────────── */
.sol-hero {
  background:
  linear-gradient(135deg, rgba(13,27,76,0.92) 0%, rgba(26,45,109,0.88) 55%, rgba(13,59,90,0.92) 100%),
  url("/img/solutions/aerospace-defense/hero.jpg") center/cover no-repeat;
  color: #fff;
  padding: 5rem 0 4.5rem;
  overflow: hidden;
  position: relative;
}

.sol-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  position: relative;
}

.sol-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kt-gold);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.sol-hero__headline {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(1.625rem, 3.5vw, 2.375rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 1.25rem;
}

.sol-hero__subhead {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.82);
  margin-bottom: 2rem;
  max-width: 520px;
}

.sol-hero__ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.sol-hero__visual-inner {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--kt-radius-lg);
  padding: 2rem;
  backdrop-filter: blur(8px);
}

.sol-hero__icon-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.sol-hero__icon-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 0.5rem;
  border-radius: var(--kt-radius-md);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  transition: background 200ms;
}

.sol-hero__icon-cell:hover {
  background: rgba(255,255,255,0.1);
}

.sol-hero__icon-cell i {
  font-size: 1.75rem;
  color: var(--kt-gold);
}

.sol-hero__icon-cell span {
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  text-align: center;
}

/* ── KPI STRIP ───────────────────────────────── */
.sol-kpi-strip {
  background: var(--kt-navy);
  padding: 3rem 0;
  border-top: 3px solid var(--kt-gold);
}

.sol-kpi__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.1);
  border-radius: var(--kt-radius-md);
  overflow: hidden;
}

.sol-kpi__card {
  background: rgba(255,255,255,0.07);
  border-top: 2px solid transparent;
  padding: 2rem 1.5rem;
  text-align: center;
  transition: background 200ms;
}

.sol-kpi__card:hover {
  background: rgba(255,255,255,0.11);
  border-top-color: var(--kt-gold);
}

.sol-kpi__value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 800;
  color: var(--kt-gold);
  line-height: 1.2;
  margin-bottom: 0.5rem;
  font-variant-numeric: tabular-nums;
}

.sol-kpi__label {
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.72);
  line-height: 1.5;
}

/* ── CHALLENGES ──────────────────────────────── */
.sol-challenges {
  padding: 5rem 0;
}

.sol-challenges__intro {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--kt-secondary);
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: 2.5rem;
  text-align: center;
}

.sol-challenges__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.sol-challenges__item {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-left: 4px solid var(--kt-gold);
  border-radius: 0 var(--kt-radius-md) var(--kt-radius-md) 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--kt-secondary);
  box-shadow: var(--kt-shadow-card);
  transition: box-shadow 200ms, transform 200ms;
}

.sol-challenges__item:hover {
  box-shadow: var(--kt-shadow-hover);
  transform: translateX(3px);
}

.sol-challenges__bullet {
  flex-shrink: 0;
  color: var(--kt-teal);
  font-size: 1rem;
  margin-top: 0.125rem;
}

/* ── APPLICATIONS ────────────────────────────── */
.sol-applications {
  padding: 5rem 0;
}

.sol-app__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.sol-app__card {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-lg);
  overflow: hidden;
  box-shadow: var(--kt-shadow-card);
  transition: box-shadow 220ms, transform 220ms;
  display: flex;
  flex-direction: column;
  min-height: 300px;
}

.sol-app__card:hover {
  box-shadow: var(--kt-shadow-hover);
  transform: translateY(-3px);
  border-color: var(--kt-teal);
}

.sol-app__img-wrap {
  height: 180px;
  overflow: hidden;
  background: var(--kt-surface-alt);
  border-bottom: 1px solid var(--kt-border);
}

.sol-app__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 300ms ease;
}

.sol-app__card:hover .sol-app__img {
  transform: scale(1.04);
}

.sol-app__body {
  padding: 1.5rem 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sol-app__icon {
  width: 44px;
  height: 44px;
  background: var(--kt-teal-tint);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  flex-shrink: 0;
}

.sol-app__icon i {
  font-size: 1.5rem;
  color: var(--kt-teal-dark);
}

.sol-app__domain-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  color: var(--kt-teal-dark);
  filter: invert(38%) sepia(80%) saturate(500%) hue-rotate(162deg) brightness(90%);
}

.sol-app__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin: 0 0 0.625rem;
  line-height: 1.35;
}

.sol-app__desc {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--kt-secondary);
  flex-grow: 1;
  margin-bottom: 1rem;
}

.sol-app__link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--kt-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  transition: color 180ms;
}

.sol-app__link:hover {
  color: var(--kt-teal-dark);
  text-decoration: underline;
}

/* ── INSTRUMENTS ─────────────────────────────── */
.sol-instruments {
  padding: 5rem 0;
}

.sol-inst__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.sol-inst__card {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-lg);
  overflow: hidden;
  box-shadow: var(--kt-shadow-card);
  transition: box-shadow 220ms, transform 220ms;
  display: flex;
  flex-direction: column;
}

.sol-inst__card:hover {
  box-shadow: var(--kt-shadow-hover);
  transform: translateY(-3px);
}

.sol-inst__img-wrap {
  background: var(--kt-surface-alt);
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid var(--kt-border);
}

.sol-inst__img {
  max-width: 100%;
  max-height: 140px;
  object-fit: contain;
  transition: transform 300ms;
}

.sol-inst__card:hover .sol-inst__img {
  transform: scale(1.04);
}

.sol-inst__body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.sol-inst__model {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin: 0 0 0.5rem;
  line-height: 1.35;
}

.sol-inst__role {
  font-size: 0.825rem;
  color: var(--kt-secondary);
  line-height: 1.55;
  flex-grow: 1;
  margin-bottom: 8px;
}

.sol-inst__keyspecs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.sol-inst__keyspecs-chip {
  font-size: 11px;
  font-weight: 600;
  color: var(--kt-navy);
  background: rgba(13,27,76,0.06);
  border: 1px solid rgba(13,27,76,0.14);
  border-radius: 20px;
  padding: 2px 8px;
  white-space: nowrap;
}

.sol-inst__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--kt-teal);
  text-decoration: none;
  transition: gap 180ms, color 180ms;
  margin-top: auto;
}

.sol-inst__cta:hover {
  gap: 0.55rem;
  color: var(--kt-teal-dark);
}

/* ── CASE STUDIES ────────────────────────────── */
.sol-cases {
  padding: 5rem 0;
}

.sol-cases__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.sol-case__card {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-left: 4px solid var(--kt-gold);
  border-radius: 0 var(--kt-radius-lg) var(--kt-radius-lg) 0;
  padding: 1.75rem;
  box-shadow: var(--kt-shadow-card);
  transition: box-shadow 220ms;
}

.sol-case__card:hover {
  box-shadow: var(--kt-shadow-hover);
}

.sol-case__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.sol-case__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin: 0;
  line-height: 1.4;
  flex: 1;
}

.sol-case__badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.6rem;
  border-radius: 100px;
  white-space: nowrap;
  flex-shrink: 0;
}

.sol-case__badge--indicative {
  background: var(--kt-warning-bg);
  color: var(--kt-warning);
  border: 1px solid var(--kt-warning-border);
}

.sol-case__narrative {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--kt-secondary);
  margin: 0 0 1rem;
}

.sol-case__narrative--illustrative {
  font-style: italic;
  font-size: 0.85em;
  opacity: 0.8;
}

/* ── TECHNICAL SPECS ─────────────────────────── */
.sol-techspecs {
  padding: 5rem 0;
}

.sol-specs__wrap {
  overflow-x: auto;
  border-radius: var(--kt-radius-lg);
  border: 1px solid var(--kt-border);
  box-shadow: var(--kt-shadow-card);
}

.sol-specs__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  background: var(--kt-surface);
}

.sol-specs__table thead tr {
  background: var(--kt-navy);
  border-bottom: 2px solid var(--kt-gold);
}

.sol-specs__table th {
  padding: 0.875rem 1.125rem;
  text-align: left;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
}

.sol-specs__table tbody tr {
  border-bottom: 1px solid var(--kt-border);
  transition: background 180ms;
}

.sol-specs__table tbody tr:last-child {
  border-bottom: none;
}

.sol-specs__table tbody tr:hover {
  background: var(--kt-surface-alt);
}

.sol-specs__table td {
  padding: 0.875rem 1.125rem;
  vertical-align: top;
  line-height: 1.55;
}

.sol-specs__label {
  font-weight: 600;
  color: var(--kt-navy);
  min-width: 180px;
}

.sol-specs__value {
  color: var(--kt-secondary);
  font-variant-numeric: tabular-nums;
  max-width: 340px;
}

.sol-specs__note {
  font-size: 0.8125rem;
  color: var(--kt-slate);
  max-width: 260px;
}

/* ── KANTEK SERVICES ─────────────────────────── */
.sol-services {
  padding: 4.5rem 0;
}

.sol-svc__strip {
  display: flex;
  justify-content: center;
  gap: 3rem;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}

.sol-svc__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  min-width: 100px;
}

.sol-svc__icon {
  font-size: 2.25rem;
  color: var(--kt-navy);
}

.sol-svc__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--kt-navy);
  text-align: center;
}

/* Gov Procurement sub-section */
.sol-govpro {
  background: var(--kt-surface-alt);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-lg);
  padding: 2rem 2rem 1.5rem;
  margin-bottom: 2.5rem;
}

.sol-govpro__intro {
  font-size: 0.9375rem;
  color: var(--kt-secondary);
  line-height: 1.7;
  margin-bottom: 1.5rem;
  text-align: center;
  max-width: 820px;
  margin-inline: auto;
  margin-bottom: 1.5rem;
}

.sol-govpro__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.sol-govpro__item {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  padding: 1.25rem;
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-md);
  box-shadow: var(--kt-shadow-card);
}

.sol-govpro__icon {
  font-size: 1.5rem;
  color: var(--kt-gold);
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.sol-govpro__title {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin-bottom: 0.4rem;
  line-height: 1.35;
}

.sol-govpro__body {
  font-size: 0.8125rem;
  color: var(--kt-secondary);
  line-height: 1.6;
  margin: 0;
}

/* ── LONG-TERM SUPPORT ───────────────────────── */
.sol-lts {
  background: var(--kt-surface-alt);
  border: 1px solid var(--kt-border);
  border-left: 4px solid var(--kt-teal);
  border-radius: 0 var(--kt-radius-lg) var(--kt-radius-lg) 0;
  padding: 2rem 2rem 1.5rem;
  margin-bottom: 2rem;
}

.sol-lts__header {
  margin-bottom: 1.5rem;
}

.sol-lts__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin: 0.5rem 0 0.5rem;
  line-height: 1.35;
}

.sol-lts__intro {
  font-size: 0.9375rem;
  color: var(--kt-secondary);
  line-height: 1.7;
  margin: 0;
  max-width: 820px;
}

.sol-lts__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.sol-lts__item {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  padding: 1.25rem;
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-md);
  box-shadow: var(--kt-shadow-card);
}

.sol-lts__icon {
  font-size: 1.5rem;
  color: var(--kt-teal);
  flex-shrink: 0;
  margin-top: 0.125rem;
}

@media (max-width: 768px) {
  .sol-lts__grid {
  grid-template-columns: 1fr;
  }
}

.sol-services__cta-row {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ── INDUSTRIES ──────────────────────────────── */
.sol-industries {
  padding: 5rem 0;
}

.sol-industries__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-bottom: 3rem;
}

.sol-industry-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.125rem;
  background: var(--kt-surface);
  border: 1.5px solid var(--kt-navy);
  border-radius: 100px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--kt-navy);
  transition: background 200ms, color 200ms;
}

.sol-industry-chip i {
  color: var(--kt-teal);
  font-size: 0.875rem;
}

.sol-industry-chip:hover {
  background: var(--kt-navy);
  color: #fff;
}

.sol-industry-chip:hover i {
  color: var(--kt-gold);
}

.sol-industries__story {
  max-width: 820px;
  margin-inline: auto;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--kt-secondary);
  text-align: center;
  background: var(--kt-teal-tint);
  border-left: 4px solid var(--kt-teal);
  border-radius: 0 var(--kt-radius-md) var(--kt-radius-md) 0;
  padding: 1.5rem 2rem;
}

/* ── RESOURCES ───────────────────────────────── */
.sol-resources {
  padding: 5rem 0;
}

.sol-resources__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}

.sol-resources__item {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-md);
  transition: border-color 200ms, box-shadow 200ms;
}

.sol-resources__item:hover {
  border-color: var(--kt-teal);
  box-shadow: var(--kt-shadow-hover);
}

.sol-resources__link {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 1rem 1.25rem;
  text-decoration: none;
  color: var(--kt-navy);
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.45;
  transition: color 180ms;
}

.sol-resources__link:hover {
  color: var(--kt-teal-dark);
}

.sol-resources__link > i:first-child {
  flex-shrink: 0;
  font-size: 1.125rem;
  color: var(--kt-teal);
}

.sol-resources__link > span {
  flex-grow: 1;
}

.sol-resources__ext-icon {
  flex-shrink: 0;
  font-size: 0.875rem;
  color: var(--kt-secondary);
  opacity: 0.6;
}

/* ── RESOURCES — source attribution ─────────── */
.sol-resources__source {
  font-size: 0.81rem;
  color: var(--kt-secondary, #6b7280);
  margin-top: 1rem;
}

.sol-resources__source a {
  color: var(--kt-teal-dark, #0e7a92);
  text-decoration: none;
}

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

/* ── ARCHITECTURE COMPARISON (countering-drones) ── */
.sol-arch {
  background: var(--kt-surface-alt, #f7f9fc);
  padding: 4.5rem 0;
}

.sol-arch-table-wrap {
  overflow-x: auto;
  border-radius: var(--kt-radius-lg, 12px);
  border: 1px solid var(--kt-border, #e2e8f0);
  margin-bottom: 14px;
}

.sol-arch-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  background: var(--kt-surface, #ffffff);
}

.sol-arch-table thead th {
  background: var(--kt-navy, #1a3a5c);
  color: #fff;
  padding: 14px 18px;
  text-align: center;
  font-weight: 700;
  white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,0.12);
}

.sol-arch-table thead th:first-child {
  text-align: left;
  min-width: 140px;
}

.sol-arch-table thead th:last-child {
  border-right: none;
}

.sol-arch-th-sub {
  display: block;
  font-size: 0.9rem;
}

.sol-arch-th-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 400;
  color: rgba(255,255,255,0.60);
  margin-top: 2px;
}

.sol-arch-table tbody td {
  padding: 13px 18px;
  border-right: 1px solid var(--kt-border, #e2e8f0);
  border-bottom: 1px solid var(--kt-border, #e2e8f0);
  line-height: 1.4;
  text-align: center;
  color: var(--kt-slate, #475569);
}

.sol-arch-table tbody td:first-child {
  text-align: left;
  font-weight: 600;
  color: var(--kt-navy, #1a3a5c);
  background: var(--kt-surface-alt, #f7f9fc);
}

.sol-arch-table tbody td:last-child {
  border-right: none;
}

.sol-arch-table tbody tr:last-child td {
  border-bottom: none;
}

.sol-arch-yes {
  color: #1a7a3a !important;
  background: rgba(26,122,58,0.05) !important;
}

.sol-arch-no {
  color: #9e9e9e !important;
}

.sol-arch-partial {
  color: #8a6a00 !important;
  background: rgba(201,162,39,0.06) !important;
}

.sol-arch-note {
  font-size: 0.82rem;
  color: var(--kt-slate, #475569);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.sol-arch-note i {
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── COMPLIANCE (countering-drones) ───────────── */
.sol-compliance {
  background: var(--kt-surface, #ffffff);
  padding: 4.5rem 0;
}

.sol-compliance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 24px;
}

@media (max-width: 900px) {
  .sol-compliance-grid { grid-template-columns: 1fr; }
}

.sol-compliance-card {
  border: 1px solid var(--kt-border, #e2e8f0);
  border-top: 3px solid var(--kt-navy, #1a3a5c);
  border-radius: var(--kt-radius-lg, 12px);
  padding: 20px 18px;
  background: var(--kt-surface-alt, #f7f9fc);
}

.sol-compliance-card__code {
  font-size: 0.80rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--kt-navy, #1a3a5c);
  margin-bottom: 10px;
}

.sol-compliance-card__desc {
  font-size: 0.87rem;
  line-height: 1.65;
  color: var(--kt-slate, #475569);
  margin: 0;
}

.sol-compliance-notice {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: #fff8e1;
  border: 1px solid #f5c842;
  border-left: 4px solid var(--kt-gold, #c9a21e);
  border-radius: 0 var(--kt-radius-lg, 12px) var(--kt-radius-lg, 12px) 0;
  padding: 18px 22px;
}

.sol-compliance-notice i {
  font-size: 1.3rem;
  color: var(--kt-gold, #c9a21e);
  flex-shrink: 0;
  margin-top: 2px;
}

.sol-compliance-notice strong {
  display: block;
  font-size: 0.93rem;
  font-weight: 700;
  color: #5a4a00;
  margin-bottom: 5px;
}

.sol-compliance-notice p {
  font-size: 0.875rem;
  line-height: 1.65;
  color: #5a4a00;
  margin: 0;
}

/* ── RFQ ─────────────────────────────────────── */
.sol-rfq {
  padding: 5rem 0 6rem;
  background: linear-gradient(135deg, #F0F4FF 0%, #EAF7FA 100%);
  border-top: 3px solid var(--kt-teal);
}

.sol-rfq__inner {
  max-width: 860px;
  margin-inline: auto;
}

.sol-rfq__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.sol-rfq__form {
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-lg);
  padding: 2.5rem;
  box-shadow: 0 2px 12px rgba(13,27,76,0.07);
}

.sol-rfq__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.sol-rfq__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.sol-rfq__field--full {
  grid-column: 1 / -1;
  margin-bottom: 1.25rem;
}

.sol-rfq__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--kt-navy);
}

.sol-rfq__required {
  color: var(--kt-required);
}

.sol-rfq__input {
  padding: 0.625rem 0.875rem;
  border: 1.5px solid var(--kt-border);
  border-radius: var(--kt-radius-md);
  font-size: 0.9375rem;
  color: var(--kt-navy);
  background: #fff;
  width: 100%;
  transition: border-color 180ms, box-shadow 180ms;
  outline: none;
  font-family: inherit;
}

.sol-rfq__input:focus {
  border-color: var(--kt-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.15);
}

.sol-rfq__input::placeholder {
  color: var(--kt-slate);
}

.sol-rfq__select {
  appearance: auto;
  cursor: pointer;
}

.sol-rfq__textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.6;
}

.sol-rfq__field--checkbox {
  margin-bottom: 1.25rem;
}

.sol-rfq__checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--kt-navy);
  user-select: none;
}

.sol-rfq__checkbox {
  width: 1.125rem;
  height: 1.125rem;
  accent-color: var(--kt-teal);
  cursor: pointer;
  flex-shrink: 0;
}

.sol-rfq__checkbox-text {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.sol-rfq__checkbox-text i {
  color: var(--kt-teal);
  font-size: 1rem;
}

.sol-rfq__checkbox-hint {
  margin: 0.375rem 0 0 1.75rem;
  font-size: 0.8125rem;
  color: var(--kt-secondary);
  line-height: 1.55;
}

.sol-rfq__demo-fields {
  border-top: 1.5px dashed var(--kt-border);
  margin-top: 0;
  padding-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.sol-rfq__input[multiple] {
  height: auto;
  padding: 0.375rem 0.5rem;
}

.sol-rfq__input[multiple] option {
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}

.sol-rfq__submit-row {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.sol-rfq__privacy {
  font-size: 0.8125rem;
  color: var(--kt-secondary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.sol-rfq__privacy-link {
  color: var(--kt-teal);
  text-decoration: underline;
}

.sol-rfq__error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  background: var(--kt-error-bg);
  border: 1px solid var(--kt-error-border);
  border-radius: var(--kt-radius-md);
  font-size: 0.9rem;
  color: var(--kt-error);
}

.sol-rfq__success {
  text-align: center;
  padding: 3rem 2rem;
  background: var(--kt-surface);
  border: 1px solid var(--kt-border);
  border-radius: var(--kt-radius-lg);
}

.sol-rfq__success-icon {
  font-size: 3rem;
  color: var(--kt-success);
  margin-bottom: 1rem;
}

.sol-rfq__success-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--kt-navy);
  margin-bottom: 0.75rem;
}

.sol-rfq__success p {
  font-size: 1rem;
  color: var(--kt-secondary);
  line-height: 1.7;
  max-width: 520px;
  margin-inline: auto;
}

.sol-rfq__success-phone {
  margin-top: 1rem;
  font-weight: 600;
}

.sol-rfq__success-phone a {
  color: var(--kt-teal);
  text-decoration: none;
}

/* ── Audience Routing Bar ────────────────────── */
.sol-audience-bar {
  background: #eef4ff;
  border-left: 4px solid var(--kt-navy, #0D1B4C);
  padding: 10px 20px;
  font-size: 0.85rem;
  color: #333;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  max-width: 100%;
}

.sol-audience-bar i {
  color: #1a3a6e; margin-top: 2px; flex-shrink: 0;
}

.sol-audience-bar a {
  color: #1a3a6e; font-weight: 600; text-decoration: underline;
}

.sol-audience-bar a:hover {
  color: #0d6efd;
}

/* ── Responsive ──────────────────────────────── */
@media (max-width: 1024px) {
  .sol-inst__grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .sol-kpi__grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .sol-govpro__grid {
  grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .sol-hero__inner {
  grid-template-columns: 1fr;
  gap: 2.5rem;
  }
  .sol-app__grid {
  grid-template-columns: 1fr;
  }
  .sol-inst__grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .sol-challenges__list {
  grid-template-columns: 1fr;
  }
  .sol-resources__list {
  grid-template-columns: 1fr;
  }
  .sol-cases__grid {
  grid-template-columns: 1fr;
  }
  .sol-rfq__row {
  grid-template-columns: 1fr;
  }
  .sol-rfq__form {
  padding: 1.5rem;
  }
  .sol-svc__strip {
  gap: 2rem;
  }
  .sol-hero {
  padding: 3.5rem 0 3rem;
  }
  .sol-specs__table th:last-child,
  .sol-specs__note {
  display: none;
  }
}

@media (max-width: 480px) {
  .sol-hero__icon-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .sol-inst__grid {
  grid-template-columns: 1fr;
  }
  .sol-kpi__grid {
  grid-template-columns: 1fr;
  background: none;
  gap: 0.75rem;
  }
  .sol-kpi__card {
  border-radius: var(--kt-radius-md);
  background: rgba(255,255,255,0.08);
  }
  .sol-hero__ctas {
  flex-direction: column;
  }
  .sol-rfq__submit-row {
  flex-direction: column;
  align-items: flex-start;
  }
}

/* ============================================================
   SOLUTION PAGE — Scoped tokens + layout. Uses existing --kt-* from main.css.
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --aut-navy:    var(--kt-navy,    #0D1B4C);
  --aut-gold:    var(--kt-gold,    #C9A227);
  --aut-teal:    var(--kt-teal,    #0ea2bd);
  --aut-teal-dk: var(--kt-teal-dark, #0189a1);
  --aut-tint:    var(--kt-teal-tint, #EEF6F8);
  --aut-surface: var(--kt-surface, #fff);
  --aut-alt:     var(--kt-surface-alt, #F7F9FC);
  --aut-border:  var(--kt-border,  #E5E9F0);
  --aut-text:    var(--kt-slate-deep, #3a4753);
  --aut-muted:   var(--kt-slate,   #5a6c7d);
  --aut-radius:  8px;
  --aut-max:     1280px;
  color: var(--aut-text);
  font-family: "Open Sans", system-ui, sans-serif;
}

/* ── Shared container ─────────────────────────────────── */
.aut-container {
  max-width: var(--aut-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── HERO ─────────────────────────────────────────────── */
.aut-hero {
  background: linear-gradient(135deg, var(--aut-navy) 0%, #1A2D6D 55%, #0D3B5A 100%);
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}

.aut-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/img/solutions/automotive/hero.jpg") center/cover no-repeat;
  opacity: 0.14;
  pointer-events: none;
}

.aut-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .aut-hero-inner { grid-template-columns: 1fr 420px; }
}

.aut-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--aut-gold);
  margin-bottom: 16px;
}

.aut-hero-eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--aut-gold);
  flex-shrink: 0;
}

.aut-hero h1 {
  font-family: "Montserrat", "Poppins", sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 20px;
}

.aut-hero-subhead {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  margin: 0 0 36px;
  max-width: 640px;
}

.aut-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.aut-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: var(--aut-gold);
  color: var(--aut-navy) !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--aut-radius);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.aut-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201, 162, 39, 0.38);
  color: var(--aut-navy) !important;
  text-decoration: none;
}

.aut-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: transparent;
  color: #fff !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.55);
  border-radius: var(--aut-radius);
  transition: border-color 0.18s, background 0.18s;
}

.aut-btn-outline:hover {
  border-color: var(--aut-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.aut-hero-badge-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: flex-start;
}

@media (min-width: 900px) {
  .aut-hero-badge-col { align-items: flex-end; }
}

.aut-hero-badge {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-left: 3px solid var(--aut-gold);
  border-radius: var(--aut-radius);
  padding: 18px 24px;
  max-width: 360px;
  width: 100%;
}

.aut-hero-badge p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: 13.5px;
  line-height: 1.65;
}

.aut-hero-badge strong {
  color: #fff;
}

/* ── KPI STRIP ────────────────────────────────────────── */
.aut-kpi-strip {
  background: var(--aut-navy);
  padding: 0;
}

.aut-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 3px solid var(--aut-gold);
}

@media (min-width: 768px) {
  .aut-kpi-grid { grid-template-columns: repeat(4, 1fr); }
}

.aut-kpi-item {
  padding: 36px 28px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.aut-kpi-item:last-child {
  border-right: none;
}

.aut-kpi-value {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(22px, 3.5vw, 34px);
  font-weight: 800;
  color: var(--aut-gold);
  line-height: 1.1;
  margin-bottom: 8px;
  font-variant-numeric: tabular-nums;
}

.aut-kpi-label {
  font-size: 12.5px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
  max-width: 160px;
  margin-inline: auto;
}

/* ── SECTION COMMON ──────────────────────────────────── */
.aut-section {
  padding: 80px 0;
}

.aut-section--alt {
  background: var(--aut-alt);
}

.aut-section-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--aut-teal);
  margin-bottom: 10px;
  display: block;
}

.aut-section-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--aut-navy);
  margin: 0 0 12px;
}

.aut-section-intro {
  font-size: 16px;
  line-height: 1.75;
  color: var(--aut-muted);
  max-width: 680px;
}

/* ── CHALLENGES ──────────────────────────────────────── */
.aut-challenges-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 36px;
}

@media (min-width: 640px) {
  .aut-challenges-grid { grid-template-columns: 1fr 1fr; }
}

.aut-challenge-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px;
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-left: 3px solid var(--aut-teal);
  border-radius: var(--aut-radius);
}

.aut-challenge-icon {
  font-size: 20px;
  color: var(--aut-teal);
  flex-shrink: 0;
  margin-top: 2px;
}

.aut-challenge-text {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--aut-text);
  margin: 0;
}

/* ── APPLICATIONS ─────────────────────────────────────── */
.aut-apps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 640px) {
  .aut-apps-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .aut-apps-grid { grid-template-columns: repeat(4, 1fr); }
}

.aut-app-card {
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-radius: 10px;
  overflow: hidden;
  padding: 0;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s;
  display: flex;
  flex-direction: column;
  min-height: 280px;
}

.aut-app-img-wrap {
  height: 160px;
  overflow: hidden;
  background: var(--aut-alt);
  border-bottom: 1px solid var(--aut-border);
  flex-shrink: 0;
}

.aut-app-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 300ms ease;
}

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

.aut-app-icon-wrap,
.aut-app-name,
.aut-app-desc,
.aut-app-link {
  margin-inline: 24px;
}

.aut-app-icon-wrap {
  margin-top: 24px;
}

.aut-app-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px -8px rgba(13,27,76,0.14);
  border-color: var(--aut-teal);
}

.aut-app-icon-wrap {
  width: 48px;
  height: 48px;
  background: var(--aut-tint);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
}

.aut-app-icon-wrap i {
  font-size: 22px;
  color: var(--aut-teal-dk);
}

.aut-app-domain-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: invert(38%) sepia(80%) saturate(500%) hue-rotate(162deg) brightness(90%);
}

.aut-app-name {
  font-family: "Montserrat", sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--aut-navy);
  margin: 0 0 10px;
}

.aut-app-desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--aut-muted);
  margin: 0 0 16px;
  flex: 1;
}

.aut-app-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--aut-teal-dk);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap 0.15s;
}

.aut-app-link:hover {
  gap: 8px; text-decoration: none; color: var(--aut-navy);
}

/* ── INSTRUMENTS ─────────────────────────────────────── */
.aut-instruments-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 900px) {
  .aut-instruments-grid { grid-template-columns: repeat(4, 1fr); }
}

.aut-instr-card {
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  display: flex;
  flex-direction: column;
}

.aut-instr-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px -8px rgba(13,27,76,0.16);
}

.aut-instr-img-wrap {
  height: 160px;
  background: var(--aut-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow: hidden;
}

.aut-instr-img-wrap img {
  max-height: 128px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}

.aut-instr-body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.aut-instr-model {
  font-family: "Montserrat", sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--aut-navy);
  margin: 0 0 6px;
}

.aut-instr-role {
  font-size: 12px;
  line-height: 1.6;
  color: var(--aut-muted);
  margin: 0 0 8px;
  flex: 1;
}

.aut-instr-keyspecs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.aut-instr-keyspecs__chip {
  font-size: 11px;
  font-weight: 600;
  color: var(--aut-navy);
  background: rgba(13,27,76,0.07);
  border: 1px solid rgba(13,27,76,0.15);
  border-radius: 20px;
  padding: 2px 8px;
  white-space: nowrap;
}

.aut-instr-link {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--aut-teal-dk);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.15s;
}

.aut-instr-link:hover {
  gap: 8px; color: var(--aut-navy); text-decoration: none;
}

/* ── CASE STUDIES ────────────────────────────────────── */
.aut-cases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .aut-cases-grid { grid-template-columns: 1fr 1fr; }
}

.aut-case-card {
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-left: 4px solid var(--aut-gold);
  border-radius: var(--aut-radius);
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: box-shadow 0.18s ease;
}

.aut-case-card:hover {
  box-shadow: 0 8px 24px -6px rgba(13,27,76,0.12);
}

.aut-case-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--aut-gold);
}

.aut-case-title {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--aut-navy);
  margin: 0;
  line-height: 1.4;
}

.aut-case-narrative {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--aut-muted);
  margin: 0;
  flex: 1;
}

.aut-case-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--aut-teal-dk);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
}

.aut-case-link:hover {
  text-decoration: none; color: var(--aut-navy); gap: 8px;
}

/* ── TECHNICAL SPECS ─────────────────────────────────── */
.aut-specs-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
  font-size: 13.5px;
}

.aut-specs-table thead th {
  background: var(--aut-navy);
  color: #fff;
  padding: 12px 16px;
  text-align: left;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.aut-specs-table thead th:first-child {
  border-radius: 6px 0 0 0;
}

.aut-specs-table thead th:last-child {
  border-radius: 0 6px 0 0;
}

.aut-specs-table tbody tr:nth-child(even) td {
  background: var(--aut-alt);
}

.aut-specs-table tbody td {
  padding: 11px 16px;
  border-bottom: 1px solid var(--aut-border);
  vertical-align: top;
  line-height: 1.55;
  color: var(--aut-text);
}

.aut-specs-table tbody td:first-child {
  font-weight: 600;
  color: var(--aut-navy);
  white-space: nowrap;
  width: 26%;
}

.aut-specs-table tbody td:nth-child(2) {
  font-family: "JetBrains Mono", Consolas, monospace;
  font-size: 12.5px;
  color: var(--aut-navy);
  width: 34%;
}

.aut-specs-table tbody td:last-child {
  color: var(--aut-muted);
  font-size: 12.5px;
}

@media (max-width: 640px) {
  .aut-specs-table, .aut-specs-table thead, .aut-specs-table tbody,
  .aut-specs-table tr, .aut-specs-table th, .aut-specs-table td {
  display: block;
  }
  .aut-specs-table thead { display: none; }
  .aut-specs-table tbody tr {
  border: 1px solid var(--aut-border);
  border-radius: var(--aut-radius);
  margin-bottom: 12px;
  padding: 12px 14px;
  background: var(--aut-surface);
  }
  .aut-specs-table tbody tr:nth-child(even) td { background: transparent; }
  .aut-specs-table tbody td {
  border: none;
  padding: 4px 0;
  width: auto;
  white-space: normal;
  }
  .aut-specs-table tbody td:first-child {
  font-size: 12px;
  color: var(--aut-teal-dk);
  }
}

/* ── KANTEK SERVICES ─────────────────────────────────── */
.aut-services-strip {
  background: var(--aut-navy);
  padding: 56px 0;
}

.aut-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .aut-services-grid { grid-template-columns: repeat(4, 1fr); }
}

.aut-service-item {
  text-align: center;
}

.aut-service-icon {
  width: 60px;
  height: 60px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  border: 2px solid rgba(201,162,39,0.35);
  transition: background 0.18s, border-color 0.18s;
}

.aut-service-item:hover .aut-service-icon {
  background: rgba(201,162,39,0.15);
  border-color: var(--aut-gold);
}

.aut-service-icon i {
  font-size: 24px;
  color: var(--aut-gold);
}

.aut-service-label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  letter-spacing: 0.01em;
}

.aut-services-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
}

.aut-services-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.65);
}

/* ── INDUSTRIES ──────────────────────────────────────── */
.aut-industries-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.aut-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--aut-surface);
  border: 1.5px solid var(--aut-border);
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--aut-navy);
  transition: border-color 0.15s, background 0.15s;
}

.aut-chip:hover {
  border-color: var(--aut-teal);
  background: rgba(14,162,189,0.05);
}

.aut-chip i {
  font-size: 14px; color: var(--aut-teal);
}

/* ── RELATED LINKS ───────────────────────────────────── */
.aut-links-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 768px) {
  .aut-links-list { grid-template-columns: 1fr 1fr; }
}

.aut-links-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-radius: var(--aut-radius);
  font-size: 14px;
  font-weight: 500;
  color: var(--aut-navy);
  text-decoration: none;
  transition: border-color 0.15s, background 0.15s;
}

.aut-links-list li a:hover {
  border-color: var(--aut-teal);
  background: rgba(14,162,189,0.04);
  color: var(--aut-navy);
  text-decoration: none;
}

.aut-links-list li a i {
  font-size: 15px;
  color: var(--aut-teal);
  flex-shrink: 0;
}

.aut-links-list li a .aut-ext {
  margin-left: auto; font-size: 12px; color: var(--aut-muted);
}

/* ── INLINE RFQ FORM ─────────────────────────────────── */
.aut-rfq-section {
  background: linear-gradient(135deg, #F0F4FF 0%, #EAF7FA 100%);
  border-top: 3px solid var(--aut-teal);
  padding: 80px 0;
}

.aut-rfq-wrap {
  max-width: 760px;
  margin-inline: auto;
}

.aut-rfq-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 800;
  color: var(--aut-navy);
  margin: 0 0 8px;
}

.aut-rfq-sub {
  font-size: 15px;
  color: var(--aut-muted);
  margin: 0 0 36px;
}

.aut-rfq-form {
  background: var(--aut-surface);
  border: 1px solid var(--aut-border);
  border-radius: 12px;
  padding: 40px 40px 36px;
  box-shadow: 0 4px 20px rgba(13,27,76,0.06);
}

@media (max-width: 600px) {
  .aut-rfq-form { padding: 28px 20px; }
}

.aut-rfq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 600px) {
  .aut-rfq-row { grid-template-columns: 1fr; }
}

.aut-rfq-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.aut-rfq-group label {
  font-size: 13px;
  font-weight: 600;
  color: var(--aut-navy);
}

.aut-rfq-group input,
.aut-rfq-group select,
.aut-rfq-group textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--aut-border);
  border-radius: var(--aut-radius);
  font-size: 14px;
  color: var(--aut-text);
  background: #fff;
  transition: border-color 0.15s;
  font-family: inherit;
}

.aut-rfq-group input:focus,
.aut-rfq-group select:focus,
.aut-rfq-group textarea:focus {
  outline: none;
  border-color: var(--aut-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.aut-rfq-group textarea {
  resize: vertical; min-height: 96px;
}

.aut-rfq-selects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .aut-rfq-selects { grid-template-columns: 1fr; }
}

.aut-rfq-submit {
  width: 100%;
  padding: 14px;
  background: var(--aut-navy);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  border: none;
  border-radius: var(--aut-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background 0.18s, transform 0.18s;
  font-family: inherit;
  margin-top: 8px;
}

.aut-rfq-submit:hover {
  background: var(--aut-teal-dk);
  transform: translateY(-1px);
}

.aut-rfq-submit:disabled {
  opacity: 0.6; cursor: not-allowed;
}

.aut-rfq-thanks {
  display: none;
  text-align: center;
  padding: 48px 24px;
}

.aut-rfq-thanks .aut-thanks-icon {
  font-size: 52px;
  color: var(--aut-teal);
  margin-bottom: 16px;
}

.aut-rfq-thanks h3 {
  font-family: "Montserrat", sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--aut-navy);
  margin: 0 0 10px;
}

.aut-rfq-thanks p {
  font-size: 15px;
  color: var(--aut-muted);
  margin: 0;
}

.aut-privacy-note {
  font-size: 12px;
  color: var(--aut-muted);
  margin-top: 12px;
  text-align: center;
}

/* ── Audience Routing Bar ─── */
.aut-audience-bar {
  background: #eef4ff;
  border-left: 4px solid var(--aut-navy);
  padding: 10px 20px;
  font-size: 0.85rem;
  color: #333;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.aut-audience-bar i {
  color: var(--aut-navy); margin-top: 2px; flex-shrink: 0;
}

.aut-audience-bar a {
  color: var(--aut-navy); font-weight: 600; text-decoration: underline;
}

.aut-audience-bar a:hover {
  color: var(--aut-teal-dk);
}

/* ============================================================
   SOLUTION PAGE — (v2)
   All color via --kt-* tokens from main.css.
   No raw hex outside fallback-only token syntax.
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --_navy:       var(--kt-navy,       #0D1B4C);
  --_navy-soft:  var(--kt-navy-soft,  #1A2D6D);
  --_gold:       var(--kt-gold,       #C9A227);
  --_teal:       var(--kt-teal,       #0ea2bd);
  --_teal-dark:  var(--kt-teal-dark,  #0189a1);
  --_teal-tint:  var(--kt-teal-tint,  #EEF6F8);
  --_surface:    var(--kt-surface,    #fff);
  --_alt:        var(--kt-surface-alt,#F7F9FC);
  --_border:     var(--kt-border,     #E5E9F0);
  --_slate-deep: var(--kt-slate-deep, #3a4753);
  --_slate:      var(--kt-slate,      #5a6c7d);
  --_radius:     var(--kt-radius-md,  8px);
  --_radius-lg:  var(--kt-radius-lg,  12px);
  --_radius-xl:  var(--kt-radius-xl,  14px);
  --_dur:        var(--kt-dur,        220ms);
  --_ease:       var(--kt-ease,       ease);
  font-family: "Open Sans", system-ui, sans-serif;
  color: var(--_slate-deep);
}

/* ── Shared container ─────────────────────────────────── */
.ksol-container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── Shared section header ────────────────────────────── */
.ksol-section-hd {
  margin-bottom: 40px;
}

.ksol-section-hd__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--_gold);
  display: block;
  margin-bottom: 8px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.ksol-section-hd__title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--_navy);
  margin: 0 0 12px;
}

.ksol-section-hd__bar {
  width: 48px;
  height: 3px;
  background: var(--_gold);
  border-radius: 2px;
  margin-bottom: 14px;
}

.ksol-section-hd__sub {
  font-size: 0.94rem;
  color: var(--_slate);
  line-height: 1.7;
  max-width: 680px;
}

/* ── Shared CTA button styles ─────────────────────────── */
.ksol-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: var(--_radius);
  font-weight: 600;
  font-size: 0.93rem;
  text-decoration: none;
  transition: background var(--_dur) var(--_ease),
  color var(--_dur) var(--_ease),
  border-color var(--_dur) var(--_ease),
  box-shadow var(--_dur) var(--_ease);
  cursor: pointer;
  border: 2px solid transparent;
  font-family: "Montserrat", system-ui, sans-serif;
}

.ksol-btn--primary {
  background: var(--_teal);
  color: #fff;
  border-color: var(--_teal);
}

.ksol-btn--primary:hover {
  background: var(--_teal-dark);
  border-color: var(--_teal-dark);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(14,162,189,0.28);
}

.ksol-btn--outline-white {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.55);
}

.ksol-btn--outline-white:hover {
  background: rgba(255,255,255,0.10);
  border-color: #fff;
  color: #fff;
  text-decoration: none;
}

/* ============================================================
   1. HERO — full-bleed image background
   ============================================================ */
.ksol-hero {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  background: linear-gradient(135deg, var(--_navy) 0%, var(--_navy-soft) 55%, #0a3358 100%);
  overflow: hidden;
  padding: 88px 0 72px;
}

.ksol-hero__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}

/* Decorative icons cluster */
.ksol-hero__deco {
  position: absolute;
  right: clamp(20px, 5vw, 80px);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 24px;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}

.ksol-hero__deco i {
  font-size: 4rem;
  color: #fff;
  line-height: 1;
}

@media (max-width: 900px) {
  .ksol-hero__deco { display: none; }
}

.ksol-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .ksol-hero__inner { grid-template-columns: 1fr 380px; }
}

.ksol-hero__eyebrow {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--_gold);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.ksol-hero__eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--_gold);
  flex-shrink: 0;
}

.ksol-hero__h1 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 18px;
}

.ksol-hero__sub {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  max-width: 56ch;
  margin: 0 0 32px;
}

.ksol-hero__ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* Right panel — trust badge */
.ksol-hero__aside {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ksol-hero__trust {
  background: rgba(201,162,39,0.12);
  border: 1.5px solid var(--_gold);
  border-radius: var(--_radius-lg);
  padding: 22px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.ksol-hero__trust-icon {
  font-size: 2.2rem;
  color: var(--_gold);
  flex-shrink: 0;
}

.ksol-hero__trust-text {
  font-size: 0.88rem;
  font-weight: 700;
  color: rgba(255,255,255,0.92);
  line-height: 1.5;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

.ksol-hero__stat-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ksol-hero__stat {
  background: rgba(255,255,255,0.06);
  border-left: 3px solid var(--_teal);
  border-radius: 0 var(--_radius) var(--_radius) 0;
  padding: 10px 16px;
}

.ksol-hero__stat strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  font-family: "Montserrat", system-ui, sans-serif;
}

.ksol-hero__stat span {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.60);
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

/* Audience routing bar */
.ksol-audience-bar {
  background: var(--_teal-tint);
  border-left: 4px solid var(--_navy);
  padding: 11px 20px;
  font-size: 0.84rem;
  color: var(--_slate-deep);
  display: flex;
  align-items: flex-start;
  gap: 9px;
  line-height: 1.6;
}

.ksol-audience-bar i {
  color: var(--_navy);
  margin-top: 2px;
  flex-shrink: 0;
  font-size: 1rem;
}

.ksol-audience-bar a {
  color: var(--_teal-dark);
  font-weight: 600;
  text-decoration: underline;
}

/* ============================================================
   2. KPI STRIP
   ============================================================ */
.ksol-kpi {
  background: var(--_alt);
  border-top: 3px solid var(--_gold);
  border-bottom: 1px solid var(--_border);
  padding: 48px 0;
}

.ksol-kpi__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

@media (max-width: 900px) {
  .ksol-kpi__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .ksol-kpi__grid { grid-template-columns: 1fr; }
}

.ksol-kpi__card {
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-radius: var(--_radius-lg);
  padding: 24px 16px;
  text-align: center;
  transition: box-shadow var(--_dur) var(--_ease);
}

.ksol-kpi__card:hover {
  box-shadow: var(--kt-shadow-card-hover, 0 4px 20px rgba(13,27,76,0.09));
}

.ksol-kpi__value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--_navy);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  margin-bottom: 8px;
}

.ksol-kpi__label {
  font-size: 0.80rem;
  color: var(--_slate);
  line-height: 1.5;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

/* ============================================================
   3. CHALLENGES
   ============================================================ */
.ksol-challenges {
  background: var(--_surface);
  padding: 72px 0;
}

.ksol-challenges__intro {
  font-size: 0.96rem;
  line-height: 1.75;
  color: var(--_slate);
  max-width: 760px;
  margin-bottom: 32px;
}

.ksol-challenges__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 840px;
}

.ksol-challenges__item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: var(--_alt);
  border-left: 4px solid var(--_gold);
  border-radius: 0 var(--_radius) var(--_radius) 0;
  padding: 15px 20px;
  font-size: 0.94rem;
  line-height: 1.65;
  color: var(--_slate-deep);
}

.ksol-challenges__item i {
  color: var(--_teal);
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}

/* ============================================================
   4. APPLICATIONS — with optional inline images
   ============================================================ */
.ksol-applications {
  background: var(--_alt);
  padding: 72px 0;
}

.ksol-app-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

@media (max-width: 900px) {
  .ksol-app-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 580px) {
  .ksol-app-grid { grid-template-columns: 1fr; }
}

.sol-app__card {
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-radius: var(--_radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color var(--_dur) var(--_ease),
  box-shadow var(--_dur) var(--_ease),
  transform var(--_dur) var(--_ease);
}

.sol-app__card:hover {
  border-color: var(--_teal);
  box-shadow: var(--kt-shadow-card-hover, 0 6px 24px rgba(13,27,76,0.09));
  transform: translateY(-2px);
}

.sol-app__img-wrap {
  height: 175px;
  overflow: hidden;
  background: var(--_navy);
  flex-shrink: 0;
}

.sol-app__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.85;
  transition: opacity var(--_dur) var(--_ease), transform 0.4s var(--_ease);
}

.sol-app__card:hover .sol-app__img {
  opacity: 1;
  transform: scale(1.03);
}

.sol-app__body {
  padding: 22px 20px 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.sol-app__icon {
  width: 40px;
  height: 40px;
  background: var(--_teal-tint);
  border-radius: var(--_radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  flex-shrink: 0;
}

.sol-app__icon i {
  font-size: 1.4rem;
  color: var(--_teal-dark);
}

.sol-app__domain-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: invert(38%) sepia(80%) saturate(500%) hue-rotate(162deg) brightness(90%);
}

.sol-app__name {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--_navy);
  margin: 0 0 10px;
}

.sol-app__desc {
  font-size: 0.855rem;
  line-height: 1.7;
  color: var(--_slate);
  flex: 1;
  margin: 0 0 16px;
}

.sol-app__link {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--_teal-dark);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: auto;
  transition: color var(--_dur) var(--_ease);
}

.sol-app__link:hover {
  color: var(--_navy);
  text-decoration: underline;
}

/* ============================================================
   4b. CASE STUDIES
   ============================================================ */
.ksol-cases {
  background: var(--_alt);
  padding: 72px 0;
}

.ksol-cases__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

@media (max-width: 760px) {
  .ksol-cases__grid { grid-template-columns: 1fr; }
}

.sol-case__card {
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-top: 3px solid var(--_gold);
  border-radius: var(--_radius-lg);
  padding: 24px 22px 20px;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--_dur) var(--_ease),
  transform var(--_dur) var(--_ease);
}

.sol-case__card:hover {
  box-shadow: var(--kt-shadow-card-hover, 0 6px 24px rgba(13,27,76,0.09));
  transform: translateY(-2px);
}

.sol-case__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
}

.sol-case__title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.97rem;
  font-weight: 700;
  color: var(--_navy);
  margin: 0;
  flex: 1;
  line-height: 1.45;
}

.sol-case__badge {
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 100px;
  padding: 2px 9px;
  white-space: nowrap;
  flex-shrink: 0;
}

.sol-case__badge--indicative {
  background: rgba(201,162,39,0.12);
  color: #7a5a00;
  border: 1px solid rgba(201,162,39,0.35);
}

.sol-case__narrative {
  font-size: 0.875rem;
  line-height: 1.75;
  color: var(--_slate);
  flex: 1;
  margin: 0 0 14px;
}

/* ============================================================
   5. RECOMMENDED INSTRUMENTS
   ============================================================ */
.ksol-instruments {
  background: var(--_surface);
  padding: 72px 0;
}

.ksol-instrument-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 340px));
  gap: 22px;
  margin-bottom: 28px;
}

@media (max-width: 640px) {
  .ksol-instrument-grid { grid-template-columns: 1fr; }
}

.ksol-inst-card {
  border: 1px solid var(--_border);
  border-radius: var(--_radius-lg);
  overflow: hidden;
  background: var(--_surface);
  display: flex;
  flex-direction: column;
  transition: border-color var(--_dur) var(--_ease),
  box-shadow var(--_dur) var(--_ease);
}

.ksol-inst-card:hover {
  border-color: var(--_teal);
  box-shadow: var(--kt-shadow-card-hover, 0 6px 24px rgba(13,27,76,0.10));
}

.ksol-inst-card__img-wrap {
  background: var(--_alt);
  height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--_border);
  overflow: hidden;
}

.ksol-inst-card__img {
  max-width: 100%;
  max-height: 150px;
  object-fit: contain;
  padding: 8px;
}

.ksol-inst-card__body {
  padding: 18px 18px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.ksol-inst-card__model {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--_navy);
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.ksol-inst-card__role {
  font-size: 0.81rem;
  color: var(--_slate);
  line-height: 1.55;
  flex: 1;
  margin: 0 0 10px;
}

.ksol-inst-specs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.ksol-inst-specs__chip {
  font-size: 11px;
  font-weight: 600;
  color: var(--_navy);
  background: rgba(13,27,76,0.06);
  border: 1px solid rgba(13,27,76,0.14);
  border-radius: 20px;
  padding: 2px 8px;
  white-space: nowrap;
}

.ksol-inst-card__cta {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--_teal-dark);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: color var(--_dur) var(--_ease);
}

.ksol-inst-card__cta:hover {
  color: var(--_navy);
  text-decoration: underline;
}

.ksol-inst-notice {
  background: #FFF8E1;
  border-left: 4px solid var(--_gold);
  border-radius: 0 var(--_radius) var(--_radius) 0;
  padding: 16px 20px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.88rem;
  color: #5a4a00;
  line-height: 1.6;
}

.ksol-inst-notice i {
  color: var(--_gold);
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: 2px;
}

/* ============================================================
   6. TECHNICAL SPECS TABLE
   ============================================================ */
.ksol-techspecs {
  background: var(--_surface);
  padding: 72px 0;
}

.ksol-specs-table-wrap {
  overflow-x: auto;
  border-radius: var(--_radius-lg);
  border: 1px solid var(--_border);
  margin-bottom: 14px;
}

.ksol-specs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  background: var(--_surface);
}

.ksol-specs-table thead th {
  background: var(--_navy);
  color: #fff;
  padding: 13px 18px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,0.12);
}

.ksol-specs-table thead th:last-child {
  border-right: none;
}

.ksol-specs-table tbody td {
  padding: 13px 18px;
  border-bottom: 1px solid var(--_border);
  border-right: 1px solid var(--_border);
  line-height: 1.5;
  vertical-align: top;
}

.ksol-specs-table tbody td:last-child {
  border-right: none;
}

.ksol-specs-table tbody tr:last-child td {
  border-bottom: none;
}

.ksol-specs-table tbody tr:nth-child(odd) {
  background: var(--_alt);
}

.ksol-specs-table__spec {
  font-weight: 700;
  color: var(--_navy);
  min-width: 160px;
}

.ksol-specs-table__value {
  color: var(--_slate-deep);
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.855rem;
  font-variant-numeric: tabular-nums;
}

.ksol-specs-table__note {
  color: var(--_slate);
  font-size: 0.82rem;
}

.ksol-specs-note {
  font-size: 0.82rem;
  color: var(--_slate);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.ksol-specs-note i {
  flex-shrink: 0; margin-top: 1px;
}

/* ============================================================
   ARDRONIS SUB-SYSTEM ARCHITECTURE TABLE
   ============================================================ */
.ksol-arch {
  background: var(--_alt);
  padding: 72px 0;
}

.ksol-arch-table-wrap {
  overflow-x: auto;
  border-radius: var(--_radius-lg);
  border: 1px solid var(--_border);
  margin-bottom: 14px;
}

.ksol-arch-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  background: var(--_surface);
}

.ksol-arch-table thead th {
  background: var(--_navy);
  color: #fff;
  padding: 14px 18px;
  text-align: center;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,0.12);
}

.ksol-arch-table thead th:first-child {
  text-align: left; min-width: 140px;
}

.ksol-arch-table thead th:last-child {
  border-right: none;
}

.ksol-arch-th-sub {
  display: block;
  font-size: 0.9rem;
}

.ksol-arch-th-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 400;
  color: rgba(255,255,255,0.60);
  margin-top: 2px;
}

.ksol-arch-table tbody td {
  padding: 13px 18px;
  border-right: 1px solid var(--_border);
  border-bottom: 1px solid var(--_border);
  line-height: 1.4;
  text-align: center;
  color: var(--_slate);
}

.ksol-arch-table tbody td:first-child {
  text-align: left;
  font-weight: 600;
  color: var(--_navy);
  background: var(--_alt);
}

.ksol-arch-table tbody td:last-child {
  border-right: none;
}

.ksol-arch-table tbody tr:last-child td {
  border-bottom: none;
}

.ksol-arch-yes {
  color: #1a7a3a !important; background: rgba(26,122,58,0.05) !important;
}

.ksol-arch-no {
  color: #9e9e9e !important;
}

.ksol-arch-partial {
  color: #8a6a00 !important; background: rgba(201,162,39,0.06) !important;
}

.ksol-arch-note {
  font-size: 0.82rem;
  color: var(--_slate);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.ksol-arch-note i {
  flex-shrink: 0; margin-top: 1px;
}

/* ============================================================
   KANTEK SERVICES STRIP (mid-page, navy bg)
   ============================================================ */
.ksol-services {
  background: var(--_navy);
  padding: 60px 0;
}

.ksol-services__header {
  text-align: center;
  margin-bottom: 40px;
}

.ksol-services__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--_gold);
  display: block;
  margin-bottom: 10px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.ksol-services__title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.ksol-services__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-bottom: 36px;
}

.ksol-svc-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--_radius-lg);
  padding: 26px 24px;
  min-width: 160px;
  flex: 1 1 160px;
  max-width: 220px;
  text-align: center;
  transition: background var(--_dur) var(--_ease),
  border-color var(--_dur) var(--_ease);
}

.ksol-svc-item:hover {
  background: rgba(255,255,255,0.10);
  border-color: var(--_gold);
}

.ksol-svc-item i {
  font-size: 2rem;
  color: var(--_gold);
}

.ksol-svc-item__label {
  font-size: 0.87rem;
  font-weight: 600;
  color: rgba(255,255,255,0.88);
  line-height: 1.35;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

.ksol-services__cta {
  text-align: center;
  font-size: 0.90rem;
  color: rgba(255,255,255,0.65);
}

.ksol-services__cta a {
  color: var(--_teal);
  font-weight: 600;
  text-decoration: none;
}

.ksol-services__cta a:hover {
  text-decoration: underline;
}

/* ============================================================
   7. SUCCESS STORY / CASE STUDIES
   ============================================================ */
.ksol-story {
  background: var(--_alt);
  padding: 64px 0;
}

.ksol-story__inner {
  max-width: 840px;
  margin: 0 auto;
  text-align: center;
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-left: 4px solid var(--_gold);
  border-radius: 0 var(--_radius-lg) var(--_radius-lg) 0;
  padding: 40px 48px;
}

@media (max-width: 640px) {
  .ksol-story__inner { padding: 28px 20px; }
}

.ksol-story__quote-icon {
  font-size: 2.8rem;
  color: var(--_gold);
  display: block;
  margin-bottom: 18px;
}

.ksol-story__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--_gold);
  display: block;
  margin-bottom: 14px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.ksol-story__text {
  font-size: 1.02rem;
  line-height: 1.8;
  color: var(--_slate-deep);
  font-style: italic;
  margin-bottom: 18px;
  border: none;
  padding: 0;
}

.ksol-story__cite {
  font-size: 0.86rem;
  color: var(--_slate);
  font-style: normal;
  font-weight: 600;
}

/* Success story callout in industries section */
.ksol-success-story {
  margin-top: 2.5rem;
  max-width: 820px;
  margin-inline: auto;
}

/* ============================================================
   8. TAIWAN COMPLIANCE
   ============================================================ */
.ksol-compliance {
  background: var(--_surface);
  padding: 72px 0;
}

.ksol-compliance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 24px;
}

@media (max-width: 900px) {
  .ksol-compliance-grid { grid-template-columns: 1fr; }
}

.ksol-compliance-card {
  border: 1px solid var(--_border);
  border-top: 3px solid var(--_navy);
  border-radius: var(--_radius-lg);
  padding: 20px 18px;
  background: var(--_alt);
}

.ksol-compliance-card__code {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.80rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--_navy);
  margin-bottom: 10px;
}

.ksol-compliance-card__desc {
  font-size: 0.87rem;
  line-height: 1.65;
  color: var(--_slate);
  margin: 0;
}

.ksol-compliance-notice {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: #fff8e1;
  border: 1px solid #f5c842;
  border-left: 4px solid var(--_gold);
  border-radius: 0 var(--_radius-lg) var(--_radius-lg) 0;
  padding: 18px 22px;
}

.ksol-compliance-notice i {
  font-size: 1.3rem;
  color: var(--_gold);
  flex-shrink: 0;
  margin-top: 2px;
}

.ksol-compliance-notice strong {
  display: block;
  font-size: 0.93rem;
  font-weight: 700;
  color: #5a4a00;
  margin-bottom: 5px;
}

.ksol-compliance-notice p {
  font-size: 0.875rem;
  line-height: 1.65;
  color: #5a4a00;
  margin: 0;
}

/* ============================================================
   9. INDUSTRIES TRUSTED
   ============================================================ */
.ksol-industries {
  background: var(--_alt);
  padding: 64px 0;
}

.ksol-industry-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ksol-industry-chip {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 999px;
  border: 2px solid var(--_navy);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--_navy);
  background: transparent;
  transition: background var(--_dur) var(--_ease),
  color var(--_dur) var(--_ease);
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

.ksol-industry-chip:hover {
  background: var(--_navy);
  color: #fff;
  cursor: default;
}

/* ============================================================
   10. RELATED RESOURCES
   ============================================================ */
.ksol-resources {
  background: var(--_surface);
  padding: 64px 0;
}

.ksol-resource-list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  max-width: 760px;
}

.ksol-resource-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.93rem;
  padding: 10px 0;
  border-bottom: 1px solid var(--kt-divider, #F0F2F6);
}

.ksol-resource-item:last-child {
  border-bottom: none;
}

.ksol-resource-item i.ksol-resource-icon {
  color: var(--_navy);
  font-size: 1rem;
  flex-shrink: 0;
}

.ksol-resource-item a {
  color: var(--_teal-dark);
  text-decoration: none;
  flex: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ksol-resource-item a:hover {
  text-decoration: underline;
  color: var(--_navy);
}

.ksol-resource-ext {
  font-size: 0.78rem;
  color: var(--_slate);
  flex-shrink: 0;
}

.ksol-resources__source {
  font-size: 0.81rem;
  color: var(--_slate);
}

.ksol-resources__source a {
  color: var(--_teal-dark);
}

/* ============================================================
   11. RFQ FORM
   ============================================================ */
.ksol-rfq {
  background: var(--_alt);
  padding: 80px 0;
}

.ksol-rfq__inner {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 56px;
  align-items: start;
}

@media (max-width: 900px) {
  .ksol-rfq__inner { grid-template-columns: 1fr; gap: 32px; }
}

.ksol-rfq__title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--_navy);
  margin-bottom: 14px;
}

.ksol-rfq__desc {
  font-size: 0.93rem;
  color: var(--_slate);
  line-height: 1.75;
  margin-bottom: 22px;
}

.ksol-rfq__promises {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ksol-rfq__promises li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 0.89rem;
  color: var(--_navy);
  font-weight: 600;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

.ksol-rfq__promises li i {
  color: var(--_teal);
  font-size: 1.05rem;
}

.ksol-rfq__form-wrap {
  background: var(--_surface);
  border: 1px solid var(--_border);
  border-radius: var(--_radius-lg);
  padding: 34px;
}

@media (max-width: 580px) {
  .ksol-rfq__form-wrap { padding: 20px; }
}

.ksol-rfq__thankyou {
  text-align: center;
  padding: 46px 22px;
}

.ksol-rfq__ty-icon {
  font-size: 2.8rem;
  color: #38a169;
  display: block;
  margin-bottom: 14px;
}

.ksol-rfq__thankyou h3 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--_navy);
  margin-bottom: 8px;
}

.ksol-rfq__thankyou p {
  font-size: 0.93rem;
  color: var(--_slate);
}

.ksol-rfq__form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ksol-form-row {
  display: flex;
  gap: 18px;
}

@media (max-width: 580px) {
  .ksol-form-row { flex-direction: column; gap: 18px; }
}

.ksol-form-row--2 > .ksol-form-group {
  flex: 1;
}

.ksol-form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ksol-form-label {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--_navy);
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

.ksol-required {
  color: #e53e3e;
}

.ksol-form-input,
.ksol-form-select,
.ksol-form-textarea {
  padding: 10px 13px;
  border: 1px solid var(--_border);
  border-radius: var(--_radius);
  font-size: 0.89rem;
  color: var(--_slate-deep);
  background: var(--_surface);
  transition: border-color var(--_dur) var(--_ease),
  box-shadow var(--_dur) var(--_ease);
  width: 100%;
  font-family: inherit;
}

.ksol-form-input:focus,
.ksol-form-select:focus,
.ksol-form-textarea:focus {
  outline: none;
  border-color: var(--_teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.ksol-form-textarea {
  resize: vertical;
}

.ksol-form-footer {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.ksol-form-privacy {
  font-size: 0.77rem;
  color: var(--_slate);
}

.ksol-form-privacy a {
  color: var(--_teal-dark);
}

.ksol-form-error {
  background: #FFF5F5;
  border: 1px solid #FEB2B2;
  border-radius: var(--_radius);
  padding: 11px 15px;
  font-size: 0.875rem;
  color: #C53030;
}

.ksol-rfq-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  background: var(--_teal);
  color: #fff;
  border: 2px solid var(--_teal);
  border-radius: var(--_radius);
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.96rem;
  font-weight: 700;
  cursor: pointer;
  transition: background var(--_dur) var(--_ease),
  border-color var(--_dur) var(--_ease),
  box-shadow var(--_dur) var(--_ease);
}

.ksol-rfq-btn:hover {
  background: var(--_teal-dark);
  border-color: var(--_teal-dark);
  box-shadow: 0 4px 14px rgba(14,162,189,0.28);
}

.ksol-rfq-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

/* ==========================================================
   Solution Page v2: Critical Infrastructure
   Scope: All colors resolve through --kt-* tokens from main.css.
   No raw hex except #fff / transparent.
   ========================================================== */

/* ── Shared locals ────────────────────────────────────────── */
.kt-solution, [class^="kt-solution-"] {
  --kci-max-w: 1280px;
  --kci-pad-x: clamp(16px, 4vw, 40px);
  --kci-section-pad: 80px 0;
  --kci-section-pad-sm: 64px 0;
  --kci-dur: var(--kt-dur, 220ms);
  --kci-ease: var(--kt-ease, ease);
  --kci-radius-md: var(--kt-radius-md, 8px);
  --kci-radius-lg: var(--kt-radius-lg, 12px);
  --kci-radius-xl: var(--kt-radius-xl, 14px);
}

/* ── Layout container ─────────────────────────────────────── */
.kci-container {
  max-width: var(--kci-max-w);
  margin-inline: auto;
  padding-inline: var(--kci-pad-x);
}

/* ── Section header ───────────────────────────────────────── */
.kci-section-header {
  text-align: center;
  margin-bottom: 3rem;
}

.kci-section-tag {
  display: inline-block;
  background: rgba(201, 162, 39, 0.12);
  color: var(--kt-gold, #C9A227);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 0.75rem;
}

.kci-section-tag--light {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.kci-section-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--kt-navy, #0D1B4C);
  margin: 0.5rem 0;
  line-height: 1.25;
}

.kci-section-desc {
  font-family: "Open Sans", sans-serif;
  font-size: 1rem;
  color: var(--kt-slate, #5a6c7d);
  max-width: 640px;
  margin: 0.5rem auto 0;
  line-height: 1.7;
}

/* ── Buttons ──────────────────────────────────────────────── */
.kci-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--kci-radius-md);
  transition: all var(--kci-dur) var(--kci-ease);
  cursor: pointer;
  border: 2px solid transparent;
  white-space: nowrap;
}

.kci-btn--primary {
  background: var(--kt-teal, #0ea2bd);
  color: #fff !important;
  border-color: var(--kt-teal, #0ea2bd);
}

.kci-btn--primary:hover {
  background: var(--kt-teal-dark, #0189a1);
  border-color: var(--kt-teal-dark, #0189a1);
  transform: translateY(-2px);
  box-shadow: var(--kt-shadow-cta, 0 8px 24px rgba(14, 162, 189, 0.32));
  color: #fff !important;
  text-decoration: none;
}

.kci-btn--outline {
  background: transparent;
  color: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(255, 255, 255, 0.4);
}

.kci-btn--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
  color: #fff !important;
  transform: translateY(-2px);
  text-decoration: none;
}

.kci-btn--submit {
  min-width: 160px;
  justify-content: center;
  font-size: 1rem;
  padding: 15px 36px;
}

/* ======= SECTION 1: HERO ======= */
.kci-hero {
  position: relative;
  min-height: 440px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.kci-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.kci-hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.kci-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
  to right,
  rgba(13, 27, 76, 0.88) 0%,
  rgba(13, 27, 76, 0.72) 55%,
  rgba(13, 27, 76, 0.42) 100%
  );
}

.kci-hero__bg--gradient {
  background: linear-gradient(135deg, var(--kt-navy, #0D1B4C) 0%, var(--kt-navy-soft, #1A2D6D) 100%);
}

.kci-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: center;
  padding-top: 72px;
  padding-bottom: 72px;
  width: 100%;
}

.kci-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kt-gold, #C9A227);
  border: 1px solid rgba(201, 162, 39, 0.5);
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 1.25rem;
}

.kci-hero__headline {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

.kci-hero__subhead {
  font-family: "Open Sans", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.85);
  max-width: 56ch;
  margin-bottom: 2rem;
}

.kci-hero__ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.kci-hero__icon-cluster {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  opacity: 0.18;
  color: #fff;
  font-size: 4rem;
  line-height: 1;
  pointer-events: none;
  flex-shrink: 0;
}

/* ── Audience bar ─────────────────────────────────────────── */
.kci-audience-bar {
  background: var(--kt-teal-tint, #EEF6F8);
  border-left: 4px solid var(--kt-navy, #0D1B4C);
  padding: 10px 20px;
  font-size: 0.85rem;
  color: var(--kt-slate-deep, #3a4753);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.kci-audience-bar i {
  color: var(--kt-navy, #0D1B4C);
  margin-top: 2px;
  flex-shrink: 0;
}

.kci-audience-bar a {
  color: var(--kt-navy, #0D1B4C);
  font-weight: 600;
  text-decoration: underline;
}

.kci-audience-bar a:hover {
  color: var(--kt-teal-dark, #0189a1);
}

/* ======= SECTION 2: KPI STRIP ======= */
.kci-kpis {
  background: var(--kt-surface, #fff);
  padding: var(--kci-section-pad-sm);
  border-bottom: 1px solid var(--kt-border, #E5E9F0);
}

.kci-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.kci-kpi-card {
  text-align: center;
  padding: 1.5rem 1rem;
  background: #fff;
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  box-shadow: var(--kt-shadow-card, 0 2px 12px rgba(13, 27, 76, 0.05));
  transition: box-shadow var(--kci-dur) var(--kci-ease);
}

.kci-kpi-card:hover {
  box-shadow: var(--kt-shadow-card-hover, 0 6px 24px rgba(13, 27, 76, 0.1));
}

.kci-kpi-card__value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--kt-navy, #0D1B4C);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.kci-kpi-card__label {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 0.85rem;
  color: var(--kt-slate, #5a6c7d);
  font-weight: 500;
  line-height: 1.4;
}

.kci-kpi-card__source {
  font-size: 0.7rem;
  color: var(--kt-slate, #5a6c7d);
  opacity: 0.7;
  margin-top: 4px;
  letter-spacing: 0.02em;
}

/* ======= SECTION 3: CHALLENGES ======= */
.kci-challenges {
  padding: var(--kci-section-pad);
  background: var(--kt-surface-alt, #F7F9FC);
}

.kci-challenges-inner {
  max-width: 800px;
  margin: 0 auto;
}

.kci-challenges-intro {
  font-family: "Open Sans", sans-serif;
  font-size: 1.05rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.8;
  margin-bottom: 2rem;
  padding: 1.5rem 2rem;
  background: var(--kt-surface-alt, #F7F9FC);
  border-left: 4px solid var(--kt-gold, #C9A227);
  border-radius: 0 var(--kci-radius-md) var(--kci-radius-md) 0;
}

.kci-challenges-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.kci-challenge-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--kt-surface-alt, #F7F9FC);
  border-radius: var(--kci-radius-md);
  border: 1px solid var(--kt-border, #E5E9F0);
  transition: border-color var(--kci-dur) var(--kci-ease),
  box-shadow var(--kci-dur) var(--kci-ease);
}

.kci-challenge-item:hover {
  border-color: var(--kt-teal, #0ea2bd);
  box-shadow: 0 2px 12px rgba(14, 162, 189, 0.1);
}

.kci-challenge-icon {
  color: var(--kt-teal, #0ea2bd);
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.kci-challenge-item span {
  font-family: "Open Sans", sans-serif;
  font-size: 0.95rem;
  color: var(--kt-slate-deep, #3a4753);
  line-height: 1.6;
}

/* ======= SECTION 4: APPLICATIONS ======= */
.kci-applications {
  padding: var(--kci-section-pad);
  background: var(--kt-surface, #fff);
}

.kci-app-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.kci-app-card {
  background: var(--kt-surface, #fff);
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--kci-dur) var(--kci-ease),
  box-shadow var(--kci-dur) var(--kci-ease),
  border-color var(--kci-dur) var(--kci-ease);
}

.kci-app-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 36px rgba(13, 27, 76, 0.1));
  border-color: var(--kt-teal, #0ea2bd);
}

.kci-app-card__img-wrap {
  height: 160px;
  overflow: hidden;
  background: var(--kt-surface-alt, #F7F9FC);
  flex-shrink: 0;
}

.kci-app-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.4s ease;
}

.kci-app-card:hover .kci-app-card__img {
  transform: scale(1.04);
}

.kci-app-card__body {
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.kci-app-icon-wrap {
  width: 44px;
  height: 44px;
  background: var(--kt-teal-tint, #EEF6F8);
  border-radius: var(--kci-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: var(--kt-teal-dark, #0189a1);
  flex-shrink: 0;
  transition: background var(--kci-dur) var(--kci-ease);
}

.kci-app-card:hover .kci-app-icon-wrap {
  background: var(--kt-teal, #0ea2bd);
  color: #fff;
}

.kci-app-domain-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: invert(38%) sepia(80%) saturate(500%) hue-rotate(162deg) brightness(90%);
  transition: filter var(--kci-dur) var(--kci-ease);
}

.kci-app-card:hover .kci-app-domain-icon {
  filter: brightness(0) invert(1);
}

.kci-app-name {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 0.97rem;
  font-weight: 700;
  color: var(--kt-navy, #0D1B4C);
  margin-bottom: 0.75rem;
  line-height: 1.4;
}

.kci-app-desc {
  font-family: "Open Sans", sans-serif;
  font-size: 0.87rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.7;
  flex: 1;
  margin-bottom: 1.25rem;
}

.kci-app-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--kt-teal, #0ea2bd);
  text-decoration: none;
  transition: color var(--kci-dur) var(--kci-ease);
  margin-top: auto;
}

.kci-app-link:hover {
  color: var(--kt-teal-dark, #0189a1);
  text-decoration: underline;
}

/* ======= SECTION 5: INSTRUMENTS ======= */
.kci-instruments {
  padding: var(--kci-section-pad);
  background: var(--kt-surface-alt, #F7F9FC);
}

.kci-instrument-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.kci-instrument-card {
  background: var(--kt-surface-alt, #F7F9FC);
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--kci-dur) var(--kci-ease),
  box-shadow var(--kci-dur) var(--kci-ease),
  border-color var(--kci-dur) var(--kci-ease);
}

.kci-instrument-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 32px rgba(13, 27, 76, 0.1));
  border-color: var(--kt-teal, #0ea2bd);
}

.kci-instrument-card__img-wrap {
  background: var(--kt-surface, #fff);
  padding: 1.5rem;
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--kt-border, #E5E9F0);
  flex-shrink: 0;
}

.kci-instrument-card__img {
  max-height: 140px;
  max-width: 100%;
  object-fit: contain;
}

.kci-instrument-card__info {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.kci-instrument-model {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--kt-navy, #0D1B4C);
  margin-bottom: 0.6rem;
}

.kci-instrument-role {
  font-family: "Open Sans", sans-serif;
  font-size: 0.82rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.65;
  flex: 1;
  margin-bottom: 8px;
}

.kci-keyspecs-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.kci-keyspecs-chip {
  font-size: 11px;
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C);
  background: rgba(13, 27, 76, 0.06);
  border: 1px solid rgba(13, 27, 76, 0.14);
  border-radius: 20px;
  padding: 2px 8px;
  white-space: nowrap;
}

.kci-instrument-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--kt-teal, #0ea2bd);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: all var(--kci-dur) var(--kci-ease);
}

.kci-instrument-link:hover {
  color: var(--kt-teal-dark, #0189a1);
  border-bottom-color: var(--kt-teal-dark, #0189a1);
  gap: 8px;
}

/* ======= SECTION 6: CASE STUDIES ======= */
.kci-cases {
  padding: var(--kci-section-pad);
  background: var(--kt-surface, #fff);
}

.kci-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.kci-case-card {
  background: var(--kt-surface, #fff);
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  border-left: 4px solid var(--kt-gold, #C9A227);
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--kci-dur) var(--kci-ease),
  transform var(--kci-dur) var(--kci-ease);
}

.kci-case-card:hover {
  box-shadow: var(--kt-shadow-card-hover, 0 8px 32px rgba(13, 27, 76, 0.1));
  transform: translateY(-3px);
}

.kci-case-card__header {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.kci-case-card__award {
  font-size: 1.4rem;
  color: var(--kt-gold, #C9A227);
  flex-shrink: 0;
  margin-top: 2px;
}

.kci-case-card__title {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--kt-navy, #0D1B4C);
  line-height: 1.4;
  margin: 0;
}

.kci-case-card__narrative {
  font-family: "Open Sans", sans-serif;
  font-size: 0.88rem;
  color: var(--kt-slate-deep, #3a4753);
  line-height: 1.75;
  margin-bottom: 1.25rem;
  flex: 1;
}

.kci-case-card__quote {
  background: var(--kt-surface-alt, #F7F9FC);
  border-left: 3px solid var(--kt-teal, #0ea2bd);
  border-radius: 0 var(--kci-radius-md) var(--kci-radius-md) 0;
  padding: 1rem 1.25rem;
  margin: 0 0 1.25rem;
  font-style: italic;
}

.kci-case-card__quote p {
  font-family: "Open Sans", sans-serif;
  font-size: 0.85rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.7;
  margin: 0 0 0.5rem;
}

.kci-case-card__quote footer {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C);
  font-style: normal;
}

.kci-case-card__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--kt-teal, #0ea2bd);
  text-decoration: none;
  margin-top: auto;
  transition: color var(--kci-dur) var(--kci-ease);
}

.kci-case-card__link:hover {
  color: var(--kt-teal-dark, #0189a1);
  text-decoration: underline;
}

/* ======= SECTION 7: TECHNICAL SPECS ======= */
.kci-techspecs {
  padding: var(--kci-section-pad);
  background: var(--kt-surface-alt, #F7F9FC);
}

.kci-techspecs-table-wrap {
  overflow-x: auto;
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  box-shadow: var(--kt-shadow-card, 0 2px 12px rgba(13, 27, 76, 0.05));
}

.kci-techspecs-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Open Sans", sans-serif;
  font-size: 0.88rem;
}

.kci-techspecs-table thead tr {
  background: var(--kt-navy, #0D1B4C);
}

.kci-techspecs-table thead th {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  padding: 14px 20px;
  text-align: left;
}

.kci-techspecs-table tbody tr {
  border-bottom: 1px solid var(--kt-border-soft, #ECEFF4);
  transition: background var(--kci-dur) var(--kci-ease);
}

.kci-techspecs-table tbody tr:last-child {
  border-bottom: none;
}

.kci-techspecs-table tbody tr:hover {
  background: var(--kt-surface-alt, #F7F9FC);
}

.kci-techspecs-table tbody td {
  padding: 14px 20px;
  vertical-align: top;
  line-height: 1.6;
  color: var(--kt-slate-deep, #3a4753);
}

.kci-techspecs-table__spec {
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C) !important;
  min-width: 180px;
  white-space: nowrap;
}

.kci-techspecs-table__value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--kt-teal-dark, #0189a1) !important;
  min-width: 200px;
}

.kci-techspecs-table__note {
  color: var(--kt-slate, #5a6c7d) !important;
  font-size: 0.83rem;
}

/* ======= SECTION 8: KANTEK SERVICES ======= */
.kci-kantek-services {
  padding: var(--kci-section-pad-sm);
  background: var(--kt-surface, #fff);
}

.kci-services-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.kci-service-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 2rem 1rem;
  background: var(--kt-surface, #fff);
  border-radius: var(--kci-radius-lg);
  border: 1px solid var(--kt-border, #E5E9F0);
  text-align: center;
  transition: all var(--kci-dur) var(--kci-ease);
}

.kci-service-item:hover {
  border-color: var(--kt-gold, #C9A227);
  box-shadow: 0 6px 20px rgba(201, 162, 39, 0.12);
  transform: translateY(-2px);
}

.kci-service-icon {
  font-size: 2rem;
  color: var(--kt-navy, #0D1B4C);
}

.kci-service-label {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C);
}

/* ======= SECTION 9: INDUSTRIES ======= */
.kci-industries {
  padding: var(--kci-section-pad-sm);
  background: var(--kt-surface-alt, #F7F9FC);
}

.kci-industry-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

.kci-industry-chip {
  display: inline-block;
  padding: 10px 22px;
  background: var(--kt-surface-alt, #F7F9FC);
  border: 1.5px solid var(--kt-border, #E5E9F0);
  border-radius: 30px;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C);
  transition: all var(--kci-dur) var(--kci-ease);
  cursor: default;
}

.kci-industry-chip:hover {
  background: var(--kt-navy, #0D1B4C);
  border-color: var(--kt-navy, #0D1B4C);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(13, 27, 76, 0.14);
}

/* Success story callout */
.kci-success-story {
  margin-top: 2.5rem;
  max-width: 820px;
  margin-inline: auto;
  background: var(--kt-teal-tint, #EEF6F8);
  border-left: 4px solid var(--kt-teal, #0ea2bd);
  border-radius: 0 var(--kt-radius-md, 8px) var(--kt-radius-md, 8px) 0;
  padding: 1.25rem 1.75rem;
}

.kci-success-story__text {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--kt-slate-deep, #3a4753);
  margin: 0;
}

/* ======= SECTION 10: RESOURCES ======= */
.kci-resources {
  padding: var(--kci-section-pad-sm);
  background: var(--kt-surface, #fff);
}

.kci-resource-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 860px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}

.kci-resource-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  background: var(--kt-surface, #fff);
  border: 1px solid var(--kt-border, #E5E9F0);
  border-radius: var(--kci-radius-md);
  transition: all var(--kci-dur) var(--kci-ease);
}

.kci-resource-item:hover {
  border-color: var(--kt-gold, #C9A227);
  background: rgba(201, 162, 39, 0.04);
}

.kci-resource-icon {
  color: var(--kt-gold, #C9A227);
  font-size: 1rem;
  flex-shrink: 0;
}

.kci-resource-link {
  font-family: "Open Sans", sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--kt-navy, #0D1B4C);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color var(--kci-dur) var(--kci-ease);
  line-height: 1.4;
}

.kci-resource-link:hover {
  color: var(--kt-teal-dark, #0189a1);
}

.kci-resource-ext {
  font-size: 0.7rem;
  opacity: 0.6;
}

/* ======= SECTION 11: RFQ FORM ======= */
.kci-rfq {
  padding: var(--kci-section-pad);
  background: linear-gradient(135deg, var(--kt-navy, #0D1B4C) 0%, var(--kt-navy-soft, #1A2D6D) 100%);
}

.kci-rfq-inner {
  max-width: 860px;
  margin-inline: auto;
}

.kci-rfq-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.kci-rfq-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  font-weight: 700;
  color: #fff;
  margin: 0.75rem 0 0.5rem;
}

.kci-rfq-desc {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.7;
}

.kci-rfq-form-wrap {
  background: var(--kt-surface, #fff);
  border-radius: var(--kci-radius-xl);
  padding: 2.5rem;
}

.kci-rfq-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.kci-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.kci-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kci-form-group--full {
  grid-column: span 2;
}

.kci-form-label {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--kt-navy, #0D1B4C);
}

.kci-required {
  color: #d44;
}

.kci-form-input,
.kci-form-select,
.kci-form-textarea {
  padding: 11px 14px;
  font-family: "Open Sans", sans-serif;
  font-size: 0.92rem;
  color: var(--kt-slate-deep, #3a4753);
  background: var(--kt-surface-alt, #F7F9FC);
  border: 1.5px solid var(--kt-border, #E5E9F0);
  border-radius: var(--kci-radius-md);
  outline: none;
  transition: border-color var(--kci-dur) var(--kci-ease),
  box-shadow var(--kci-dur) var(--kci-ease);
}

.kci-form-input::placeholder,
.kci-form-textarea::placeholder {
  color: rgba(90, 108, 125, 0.5);
}

.kci-form-input:focus,
.kci-form-select:focus,
.kci-form-textarea:focus {
  border-color: var(--kt-teal, #0ea2bd);
  box-shadow: 0 0 0 3px rgba(14, 162, 189, 0.2);
  background: var(--kt-surface, #fff);
}

.kci-form-textarea {
  resize: vertical;
  min-height: 100px;
}

.kci-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}

.kci-form-privacy {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: var(--kt-slate, #5a6c7d);
  margin: 0;
}

.kci-form-privacy i {
  color: var(--kt-gold, #C9A227);
}

/* RFQ error state */
.kci-rfq-error {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--kt-error);
  background: var(--kt-error-bg);
  border: 1px solid var(--kt-error-border);
  border-radius: var(--kci-radius-md);
  padding: 10px 14px;
  margin-top: 12px;
  font-size: 0.9rem;
  line-height: 1.5;
}

.kci-rfq-error[hidden] {
  display: none;
}

.kci-rfq-error i {
  flex-shrink: 0; margin-top: 2px;
}

/* RFQ thank-you */
.kci-rfq-thankyou {
  text-align: center;
  padding: 2.5rem 1.5rem;
}

.kci-thankyou-icon {
  font-size: 3rem;
  color: #1a7a4a;
  margin-bottom: 1rem;
}

.kci-thankyou-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--kt-navy, #0D1B4C);
  margin-bottom: 0.75rem;
}

.kci-thankyou-text {
  font-family: "Open Sans", sans-serif;
  font-size: 0.97rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.7;
}

.kci-thankyou-text a {
  color: var(--kt-teal-dark, #0189a1);
  font-weight: 600;
  text-decoration: none;
}

/* ======= RESPONSIVE ======= */
@media (max-width: 1200px) {
  .kci-app-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-cases-grid {
  grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 1023px) {
  .kci-instrument-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-services-strip {
  grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .kci-hero__inner {
  grid-template-columns: 1fr;
  gap: 1.5rem;
  }
  .kci-hero__icon-cluster {
  display: none;
  }
  .kci-kpi-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-app-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-cases-grid {
  grid-template-columns: 1fr;
  }
  .kci-resource-list {
  grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .kci-kpi-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  }
  .kci-app-grid {
  grid-template-columns: 1fr;
  }
  .kci-instrument-grid {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-services-strip {
  grid-template-columns: repeat(2, 1fr);
  }
  .kci-form-row {
  grid-template-columns: 1fr;
  }
  .kci-form-group--full {
  grid-column: span 1;
  }
  .kci-rfq-form-wrap {
  padding: 1.5rem;
  }
  .kci-form-actions {
  flex-direction: column;
  align-items: stretch;
  }
  .kci-btn--submit {
  width: 100%;
  }
  .kci-hero__ctas {
  flex-direction: column;
  }
  .kci-hero__ctas .kci-btn {
  justify-content: center;
  }
}

@media (max-width: 480px) {
  .kci-instrument-grid {
  grid-template-columns: 1fr;
  }
  .kci-services-strip {
  grid-template-columns: 1fr;
  }
  .kci-kpi-grid {
  grid-template-columns: 1fr 1fr;
  }
  .kci-techspecs-table thead th,
  .kci-techspecs-table tbody td {
  padding: 10px 14px;
  }
}

.sol-automation {
  padding: 5rem 0;
}

.sol-auto__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.sol-auto__card {
  background: var(--kt-surface, #fff);
  border: 1px solid var(--kt-border, #E5E9F0);
  border-top: 4px solid var(--kt-teal, #0ea2bd);
  border-radius: var(--kt-radius-lg, 12px);
  padding: 1.75rem 1.5rem 1.5rem;
  box-shadow: var(--kt-shadow-card, 0 1px 3px rgba(13,27,76,0.06));
  transition: box-shadow var(--kt-dur, 220ms), transform var(--kt-dur, 220ms);
  display: flex;
  flex-direction: column;
}

.sol-auto__card:hover {
  box-shadow: var(--kt-shadow-card-hover, 0 8px 24px -8px rgba(13,27,76,0.18));
  transform: translateY(-2px);
}

.sol-auto__icon-wrap {
  width: 44px;
  height: 44px;
  background: rgba(14,162,189,0.1);
  border-radius: var(--kt-radius-md, 8px);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  flex-shrink: 0;
}

.sol-auto__icon-wrap i {
  font-size: 1.4rem;
  color: var(--kt-teal-dark, #0189a1);
}

.sol-auto__name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--kt-navy, #0D1B4C);
  margin: 0 0 0.75rem;
  line-height: 1.35;
}

.sol-auto__desc {
  font-size: 0.875rem;
  color: var(--kt-slate-deep, #3a4753);
  line-height: 1.7;
  flex-grow: 1;
  margin-bottom: 1rem;
}

.sol-auto__code {
  background: #0D1B4C;
  border-radius: var(--kt-radius-md, 8px);
  padding: 0.625rem 1rem;
  margin: 0 0 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sol-auto__code-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
}

.sol-auto__code-text {
  font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
  font-size: 0.8125rem;
  color: var(--kt-gold, #C9A227);
  word-break: break-all;
}

.sol-auto__link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--kt-teal, #0ea2bd);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  transition: color var(--kt-dur, 220ms);
}

.sol-auto__link:hover {
  color: var(--kt-teal-dark, #0189a1);
}

.sol-auto__license {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  background: rgba(14,162,189,0.06);
  border: 1px solid rgba(14,162,189,0.22);
  border-radius: var(--kt-radius-md, 8px);
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--kt-slate-deep, #3a4753);
}

.sol-auto__license-icon {
  color: var(--kt-teal, #0ea2bd);
  font-size: 1.125rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.sol-auto__license p {
  margin: 0;
}

.sol-auto__footer {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 1.5rem;
}

.sol-auto__cta-note {
  font-size: 0.875rem;
  color: var(--kt-slate, #5a6c7d);
  line-height: 1.65;
  max-width: 820px;
  padding: 1rem 1.25rem;
  background: var(--kt-surface, #fff);
  border-radius: var(--kt-radius-md, 8px);
  border-left: 3px solid var(--kt-gold, #C9A227);
  margin: 0;
}

@media (max-width: 1023px) {
  .sol-auto__grid {
  grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 599px) {
  .sol-auto__grid {
  grid-template-columns: 1fr;
  }
}

/* ============================================================
   SOLUTION PAGE — v2: Token-driven layout reusing existing --kt-* from main.css.
   Scoped prefix: snc-
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --snc-navy:    var(--kt-navy,        #0D1B4C);
  --snc-gold:    var(--kt-gold,        #C9A227);
  --snc-teal:    var(--kt-teal,        #0ea2bd);
  --snc-teal-dk: var(--kt-teal-dark,   #0189a1);
  --snc-tint:    var(--kt-teal-tint,   #EEF6F8);
  --snc-surface: var(--kt-surface,     #fff);
  --snc-alt:     var(--kt-surface-alt, #F7F9FC);
  --snc-border:  var(--kt-border,      #E5E9F0);
  --snc-border-s:var(--kt-border-soft, #ECEFF4);
  --snc-text:    var(--kt-navy,        #0D1B4C);
  --snc-body:    var(--kt-slate-deep,  #3a4753);
  --snc-muted:   var(--kt-slate,       #5a6c7d);
  --snc-radius:  var(--kt-radius-md,   8px);
  --snc-radius-l:var(--kt-radius-lg,   12px);
  --snc-shadow:  var(--kt-shadow-card, 0 2px 12px rgba(13,27,76,0.07));
  --snc-shadow-h:var(--kt-shadow-card-hover, 0 8px 28px rgba(13,27,76,0.14));
  --snc-dur:     var(--kt-dur,         220ms);
  --snc-ease:    var(--kt-ease,        ease);
  --snc-max:     1280px;
  color: var(--snc-body);
  font-family: "Open Sans", sans-serif;
}

/* ── Container ─────────────────────────────────────────────── */
.snc-container {
  max-width: var(--snc-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── HERO ──────────────────────────────────────────────────── */
.snc-hero {
  background: linear-gradient(135deg, var(--snc-navy) 0%, #1A2D6D 55%, #0D2A4A 100%);
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}

.snc-hero__bg {
  position: absolute;
  inset: 0;
  background-image: url("/img/solutions/networks-and-cybersecurity/hero.jpg");
  background-size: cover;
  background-position: center;
  opacity: 0.12;
  pointer-events: none;
}

.snc-hero__decor {
  position: absolute;
  top: 20px;
  right: 40px;
  display: flex;
  gap: 24px;
  opacity: 0.18;
  pointer-events: none;
}

.snc-hero__decor i {
  font-size: 4rem;
  color: #fff;
}

.snc-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .snc-hero-inner { grid-template-columns: 1fr 400px; }
}

.snc-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--snc-gold);
  margin-bottom: 16px;
}

.snc-hero-eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--snc-gold);
  flex-shrink: 0;
}

.snc-hero h1 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 20px;
}

.snc-hero h1 em {
  font-style: normal;
  color: var(--snc-gold);
}

.snc-hero-subhead {
  font-size: 17px;
  line-height: 1.75;
  color: rgba(255,255,255,0.85);
  margin: 0 0 36px;
  max-width: 56ch;
}

.snc-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.snc-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: var(--snc-gold);
  color: var(--snc-navy) !important;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--snc-radius);
  transition: transform var(--snc-dur) var(--snc-ease),
  box-shadow var(--snc-dur) var(--snc-ease);
}

.snc-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.38);
  color: var(--snc-navy) !important;
  text-decoration: none;
}

.snc-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: transparent;
  color: #fff !important;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.55);
  border-radius: var(--snc-radius);
  transition: border-color var(--snc-dur) var(--snc-ease),
  background var(--snc-dur) var(--snc-ease);
}

.snc-btn-outline:hover {
  border-color: var(--snc-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.snc-hero-badge-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.snc-hero-badge {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-left: 3px solid var(--snc-gold);
  border-radius: var(--snc-radius);
  padding: 18px 24px;
  max-width: 380px;
}

.snc-hero-badge p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: 13.5px;
  line-height: 1.65;
}

.snc-hero-badge strong {
  color: #fff;
}

/* ── KPI STRIP ─────────────────────────────────────────────── */
.snc-kpi-strip {
  background: var(--snc-navy);
  padding: 0;
}

.snc-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 3px solid var(--snc-gold);
}

@media (min-width: 768px) {
  .snc-kpi-grid { grid-template-columns: repeat(4, 1fr); }
}

.snc-kpi-item {
  padding: 36px 28px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.snc-kpi-item:last-child {
  border-right: none;
}

.snc-kpi-value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(22px, 3.5vw, 34px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--snc-gold);
  line-height: 1.1;
  margin-bottom: 8px;
}

.snc-kpi-label {
  font-size: 12.5px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
  max-width: 160px;
  margin-inline: auto;
}

.snc-kpi-source {
  font-size: 12px;
  color: rgba(255,255,255,0.82);
  line-height: 1.45;
  max-width: 200px;
  margin: 8px auto 0;
  border-top: 1px solid rgba(255,255,255,0.18);
  padding-top: 6px;
}

/* ── SECTION COMMON ────────────────────────────────────────── */
.snc-section {
  padding: 80px 0;
}

.snc-section--alt {
  background: var(--snc-alt);
}

.snc-section-eyebrow {
  display: block;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--snc-teal);
  margin-bottom: 10px;
}

.snc-section-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--snc-navy);
  margin: 0 0 12px;
}

.snc-section-intro {
  font-family: "Open Sans", sans-serif;
  font-size: 16px;
  line-height: 1.75;
  color: var(--snc-muted);
  max-width: 680px;
  margin: 0;
}

/* ── CHALLENGES ────────────────────────────────────────────── */
.snc-challenges-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 36px;
}

@media (min-width: 640px) {
  .snc-challenges-grid { grid-template-columns: 1fr 1fr; }
}

.snc-challenge-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px;
  background: var(--snc-surface);
  border: 1px solid var(--snc-border);
  border-left: 3px solid var(--snc-teal);
  border-radius: var(--snc-radius);
}

.snc-challenge-icon {
  font-size: 1rem;
  color: var(--snc-teal);
  flex-shrink: 0;
  margin-top: 3px;
}

.snc-challenge-text {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--snc-body);
  margin: 0;
}

/* ── APPLICATIONS ──────────────────────────────────────────── */
.snc-apps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 640px) {
  .snc-apps-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .snc-apps-grid { grid-template-columns: repeat(3, 1fr); }
}

.snc-app-card {
  background: var(--snc-surface);
  border: 1px solid var(--snc-border);
  border-radius: var(--snc-radius-l);
  overflow: hidden;
  transition: transform var(--snc-dur) var(--snc-ease),
  box-shadow var(--snc-dur) var(--snc-ease),
  border-color var(--snc-dur) var(--snc-ease);
  display: flex;
  flex-direction: column;
  box-shadow: var(--snc-shadow);
}

.snc-app-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--snc-shadow-h);
  border-color: var(--snc-teal);
}

.snc-app-img-wrap {
  height: 160px;
  overflow: hidden;
  flex-shrink: 0;
}

.snc-app-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.snc-app-body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.snc-app-icon-wrap {
  width: 44px;
  height: 44px;
  background: var(--snc-tint);
  border-radius: var(--snc-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  flex-shrink: 0;
}

.snc-app-icon-wrap i {
  font-size: 1.5rem;
  color: var(--snc-teal-dk);
}

.snc-app-name {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--snc-navy);
  margin: 0 0 10px;
}

.snc-app-desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--snc-muted);
  margin: 0 0 16px;
  flex: 1;
}

.snc-app-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--snc-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap var(--snc-dur) var(--snc-ease),
  color var(--snc-dur) var(--snc-ease);
}

.snc-app-link:hover {
  gap: 8px;
  color: var(--snc-teal-dk);
  text-decoration: none;
}

/* ── INSTRUMENTS ───────────────────────────────────────────── */
.snc-instr-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 900px) {
  .snc-instr-grid { grid-template-columns: repeat(4, 1fr); }
}

.snc-instr-card {
  background: var(--snc-surface);
  border: 1px solid var(--snc-border);
  border-radius: var(--snc-radius-l);
  overflow: hidden;
  transition: transform var(--snc-dur) var(--snc-ease),
  box-shadow var(--snc-dur) var(--snc-ease);
  display: flex;
  flex-direction: column;
  box-shadow: var(--snc-shadow);
}

.snc-instr-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--snc-shadow-h);
}

.snc-instr-img-wrap {
  height: 160px;
  background: var(--snc-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.snc-instr-img-wrap img {
  max-height: 128px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}

.snc-instr-body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.snc-instr-model {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--snc-navy);
  margin: 0 0 6px;
}

.snc-instr-role {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--snc-muted);
  margin: 0 0 14px;
  flex: 1;
}

.snc-instr-link {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--snc-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap var(--snc-dur) var(--snc-ease),
  color var(--snc-dur) var(--snc-ease);
}

.snc-instr-link:hover {
  gap: 8px;
  color: var(--snc-teal-dk);
  text-decoration: none;
}

.snc-instr-cta-row {
  margin-top: 32px;
  text-align: center;
}

/* ── CASE STUDIES ──────────────────────────────────────────── */
.snc-cases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .snc-cases-grid { grid-template-columns: 1fr 1fr; }
}

.snc-case-card {
  background: var(--snc-surface);
  border: 1.5px solid var(--snc-border);
  border-left: 4px solid var(--snc-gold);
  border-radius: var(--snc-radius);
  padding: 28px 28px 24px;
  box-shadow: var(--snc-shadow);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.snc-case-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--snc-navy);
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.snc-case-title i {
  font-size: 1rem;
  color: var(--snc-gold);
  flex-shrink: 0;
  margin-top: 3px;
}

.snc-case-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  background: #f0ad4e;
  color: #1a1f24;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 8px;
  vertical-align: middle;
  white-space: nowrap;
}

.snc-case-narrative {
  font-size: 14px;
  line-height: 1.75;
  color: var(--snc-body);
  margin: 0;
}

.snc-case-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--snc-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap var(--snc-dur) var(--snc-ease);
}

.snc-case-link:hover {
  gap: 8px; text-decoration: none; color: var(--snc-teal-dk);
}

/* ── TECHNICAL SPECS ───────────────────────────────────────── */
.snc-specs-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
  font-size: 14px;
}

.snc-specs-table thead th {
  background: var(--snc-navy);
  color: #fff;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 12px 16px;
  text-align: left;
}

.snc-specs-table tbody tr:nth-child(odd) {
  background: var(--snc-surface);
}

.snc-specs-table tbody tr:nth-child(even) {
  background: var(--snc-alt);
}

.snc-specs-table tbody td {
  padding: 11px 16px;
  border-bottom: 1px solid var(--snc-border-s);
  color: var(--snc-body);
  line-height: 1.5;
  vertical-align: top;
}

.snc-specs-table .snc-specs-table__spec {
  font-weight: 600;
  color: var(--snc-navy);
  min-width: 220px;
}

.snc-specs-table .snc-specs-table__value {
  font-variant-numeric: tabular-nums;
}

.snc-specs-table .snc-specs-table__note {
  font-size: 12.5px;
  color: var(--snc-muted);
  font-style: italic;
}

/* ── KANTEK SERVICES STRIP ─────────────────────────────────── */
.snc-services-strip {
  background: var(--snc-navy);
  padding: 64px 0;
}

.snc-services-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
}

.snc-services-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.62);
  max-width: 680px;
  margin-inline: auto;
}

.snc-services-sla {
  margin: 28px auto 32px;
  padding: 20px 24px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-left: 3px solid var(--snc-gold);
  border-radius: 0 var(--snc-radius) var(--snc-radius) 0;
  max-width: 820px;
}

.snc-services-sla__label {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--snc-gold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.snc-services-sla__text {
  margin: 0 0 14px;
  font-size: 13.5px;
  color: rgba(255,255,255,0.82);
  line-height: 1.7;
}

.snc-sla-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}

.snc-sla-table thead tr {
  background: rgba(201,162,39,0.12);
}

.snc-sla-table thead th {
  text-align: left;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(201,162,39,0.3);
  font-weight: 700;
  color: var(--snc-gold);
}

.snc-sla-table tbody td {
  padding: 7px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.snc-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  max-width: 960px;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .snc-services-grid { grid-template-columns: repeat(4, 1fr); }
}

.snc-service-item {
  text-align: center;
}

.snc-service-icon {
  width: 60px;
  height: 60px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  border: 2px solid rgba(201,162,39,0.35);
  transition: background var(--snc-dur) var(--snc-ease),
  border-color var(--snc-dur) var(--snc-ease);
}

.snc-service-item:hover .snc-service-icon {
  background: rgba(201,162,39,0.15);
  border-color: var(--snc-gold);
}

.snc-service-icon i {
  font-size: 1.5rem;
  color: var(--snc-gold);
}

.snc-service-label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
}

/* ── INDUSTRIES CHIPS ──────────────────────────────────────── */
.snc-industries-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.snc-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--snc-surface);
  border: 1.5px solid var(--snc-border);
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--snc-navy);
  transition: border-color var(--snc-dur) var(--snc-ease),
  background var(--snc-dur) var(--snc-ease);
}

.snc-chip:hover {
  border-color: var(--snc-teal);
  background: var(--snc-tint);
}

.snc-chip i {
  font-size: 1rem;
  color: var(--snc-gold);
}

/* ── SUCCESS STORY ─────────────────────────────────────────── */
.snc-success-story {
  margin-top: 2.5rem;
  max-width: 820px;
  margin-inline: auto;
  background: var(--snc-tint);
  border-left: 4px solid var(--snc-teal);
  border-radius: 0 var(--snc-radius, 8px) var(--snc-radius, 8px) 0;
  padding: 1.25rem 1.75rem;
}

.snc-success-story__text {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--snc-body);
  margin: 0;
}

/* ── RELATED LINKS ─────────────────────────────────────────── */
.snc-links-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 768px) {
  .snc-links-list { grid-template-columns: 1fr 1fr; }
}

.snc-links-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  background: var(--snc-surface);
  border: 1px solid var(--snc-border);
  border-radius: var(--snc-radius);
  font-size: 14px;
  font-weight: 500;
  color: var(--snc-navy);
  text-decoration: none;
  transition: border-color var(--snc-dur) var(--snc-ease),
  background var(--snc-dur) var(--snc-ease);
}

.snc-links-list li a:hover {
  border-color: var(--snc-teal);
  background: var(--snc-tint);
  color: var(--snc-navy);
  text-decoration: none;
}

.snc-links-list li a i {
  font-size: 15px; color: var(--snc-teal); flex-shrink: 0;
}

.snc-ext {
  margin-left: auto; font-size: 12px; color: var(--snc-muted);
}

/* ── INLINE RFQ ────────────────────────────────────────────── */
.snc-rfq-section {
  background: linear-gradient(135deg, #F0F4FF 0%, #EAF7FA 100%);
  border-top: 3px solid var(--snc-teal);
  padding: 80px 0;
}

.snc-rfq-wrap {
  max-width: 760px;
  margin-inline: auto;
}

.snc-rfq-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 800;
  color: var(--snc-navy);
  margin: 0 0 8px;
}

.snc-rfq-sub {
  font-size: 15px;
  color: var(--snc-muted);
  margin: 0 0 36px;
}

.snc-rfq-form-wrap {
  background: var(--snc-surface);
  border: 1px solid var(--snc-border);
  border-radius: var(--snc-radius-l);
  padding: 40px 40px 36px;
  box-shadow: 0 4px 20px rgba(13,27,76,0.06);
}

@media (max-width: 600px) {
  .snc-rfq-form-wrap { padding: 28px 20px; }
}

.snc-rfq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 600px) {
  .snc-rfq-row { grid-template-columns: 1fr; }
}

.snc-rfq-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.snc-rfq-group label {
  font-size: 13px;
  font-weight: 600;
  color: var(--snc-navy);
}

.snc-rfq-group input,
.snc-rfq-group select,
.snc-rfq-group textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--snc-border);
  border-radius: var(--snc-radius);
  font-size: 14px;
  color: var(--snc-body);
  background: #fff;
  transition: border-color var(--snc-dur) var(--snc-ease);
  font-family: inherit;
}

.snc-rfq-group input:focus,
.snc-rfq-group select:focus,
.snc-rfq-group textarea:focus {
  outline: none;
  border-color: var(--snc-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.snc-rfq-group textarea {
  resize: vertical; min-height: 96px;
}

.snc-rfq-selects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .snc-rfq-selects { grid-template-columns: 1fr; }
}

.snc-rfq-submit {
  width: 100%;
  padding: 14px;
  background: var(--snc-navy);
  color: #fff;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  border: none;
  border-radius: var(--snc-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background var(--snc-dur) var(--snc-ease),
  transform var(--snc-dur) var(--snc-ease);
  margin-top: 8px;
}

.snc-rfq-submit:hover {
  background: var(--snc-teal);
  transform: translateY(-1px);
}

.snc-rfq-submit:disabled {
  opacity: 0.6; cursor: not-allowed;
}

.snc-rfq-thanks {
  display: none;
  text-align: center;
  padding: 48px 24px;
}

.snc-rfq-thanks .snc-thanks-icon {
  font-size: 52px;
  color: var(--snc-teal);
  margin-bottom: 16px;
}

.snc-rfq-thanks h3 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--snc-navy);
  margin: 0 0 10px;
}

.snc-rfq-thanks p {
  font-size: 15px; color: var(--snc-muted); margin: 0;
}

.snc-privacy-note {
  font-size: 12px;
  color: var(--snc-muted);
  margin-top: 12px;
  text-align: center;
}

/* ============================================================
   SOLUTION PAGE — v2: token-driven, reuses --kt-* vars from main.css.
   Scoped to this page only — no --sol-* namespace.
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --s-navy:    var(--kt-navy,       #0D1B4C);
  --s-navy-s:  var(--kt-navy-soft,  #1A2D6D);
  --s-gold:    var(--kt-gold,       #C9A227);
  --s-teal:    var(--kt-teal,       #0ea2bd);
  --s-teal-d:  var(--kt-teal-dark,  #0189a1);
  --s-tint:    var(--kt-teal-tint,  #EEF6F8);
  --s-surface: var(--kt-surface,    #FFFFFF);
  --s-alt:     var(--kt-surface-alt,#F7F9FC);
  --s-border:  var(--kt-border,     #E5E9F0);
  --s-bsoft:   var(--kt-border-soft,#ECEFF4);
  --s-divider: var(--kt-divider,    #F0F2F6);
  --s-slate-d: var(--kt-slate-deep, #3a4753);
  --s-slate:   var(--kt-slate,      #5a6c7d);
  --s-r-md:    var(--kt-radius-md,  8px);
  --s-r-lg:    var(--kt-radius-lg,  12px);
  --s-r-xl:    var(--kt-radius-xl,  14px);
  --s-dur:     var(--kt-dur,        220ms);
  --s-ease:    var(--kt-ease,       ease);
  --s-max:     1280px;
  color: var(--s-slate-d);
  font-family: "Open Sans", sans-serif;
}

/* ── Container ────────────────────────────────────────────── */
.s-container {
  max-width: var(--s-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── HERO ─────────────────────────────────────────────────── */
.s-hero {
  background: linear-gradient(135deg, var(--s-navy) 0%, var(--s-navy-s) 60%, #0a3d4e 100%);
  padding: 88px 0 72px;
  position: relative;
  overflow: hidden;
}

.s-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/img/solutions/research-and-education/hero.jpg") center/cover no-repeat;
  opacity: 0.13;
  pointer-events: none;
}

/* Decorative icon cluster */
.s-hero::after {
  content: "";
  position: absolute;
  top: -40px;
  right: -60px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,162,39,0.07) 0%, transparent 70%);
  pointer-events: none;
}

.s-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .s-hero-inner { grid-template-columns: 1fr 400px; }
}

.s-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--s-gold);
  margin-bottom: 14px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.s-hero-eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--s-gold);
  flex-shrink: 0;
}

.s-hero h1 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 18px;
}

.s-hero h1 em {
  font-style: normal;
  color: var(--s-gold);
}

.s-hero-subhead {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  margin: 0 0 32px;
  max-width: 56ch;
}

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

.s-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: var(--s-gold);
  color: var(--s-navy) !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--s-r-md);
  transition: transform var(--s-dur) var(--s-ease), box-shadow var(--s-dur) var(--s-ease);
  font-family: "Montserrat", system-ui, sans-serif;
}

.s-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.36);
  color: var(--s-navy) !important;
  text-decoration: none;
}

.s-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: transparent;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: var(--s-r-md);
  transition: border-color var(--s-dur) var(--s-ease), background var(--s-dur) var(--s-ease);
  font-family: "Montserrat", system-ui, sans-serif;
}

.s-btn-outline:hover {
  border-color: var(--s-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.s-hero-badge-col {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

@media (min-width: 900px) {
  .s-hero-badge-col { align-items: flex-end; }
}

.s-hero-badge {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-left: 3px solid var(--s-gold);
  border-radius: 0 var(--s-r-md) var(--s-r-md) 0;
  padding: 16px 22px;
  max-width: 360px;
  width: 100%;
}

.s-hero-badge p {
  margin: 0; color: rgba(255,255,255,0.86); font-size: 13.5px; line-height: 1.65;
}

.s-hero-badge strong {
  color: #fff;
}

/* ── KPI STRIP ────────────────────────────────────────────── */
.s-kpi-strip {
  background: var(--s-navy);
  padding: 0;
}

.s-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 3px solid var(--s-gold);
}

@media (min-width: 768px) {
  .s-kpi-grid { grid-template-columns: repeat(4, 1fr); }
}

.s-kpi-item {
  padding: 32px 24px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.s-kpi-item:last-child {
  border-right: none;
}

.s-kpi-value {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(22px, 3.2vw, 32px);
  font-weight: 800;
  color: var(--s-gold);
  line-height: 1.1;
  margin-bottom: 7px;
  font-variant-numeric: tabular-nums;
}

.s-kpi-label {
  font-size: 12px;
  color: rgba(255,255,255,0.68);
  line-height: 1.5;
  max-width: 156px;
  margin-inline: auto;
}

/* ── SECTION COMMON ───────────────────────────────────────── */
.s-section {
  padding: 72px 0;
}

.s-section--alt {
  background: var(--s-alt);
}

.s-section-eyebrow {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--s-teal);
  display: block;
  margin-bottom: 8px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.s-section-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--s-navy);
  margin: 0 0 10px;
}

.s-section-heading::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--s-gold);
  margin-top: 10px;
}

.s-section-intro {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--s-slate);
  max-width: 680px;
  margin-top: 4px;
}

/* ── ACADEMIC DISCOUNT BANNER ─────────────────────────────── */
.s-academic-bar {
  background: var(--s-alt);
  border-top: 1px solid var(--s-bsoft);
  border-bottom: 1px solid var(--s-bsoft);
  padding: 28px 0 32px;
}

.s-academic-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 24px;
  justify-content: space-between;
}

.s-academic-copy {
  flex: 1; min-width: 280px;
}

.s-academic-copy h3 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0 0 6px;
}

.s-academic-copy p {
  font-size: 13px;
  color: var(--s-slate);
  line-height: 1.7;
  margin: 0 0 10px;
}

.s-academic-checklist {
  background: rgba(14,162,189,0.05);
  border: 1px solid rgba(14,162,189,0.18);
  border-radius: var(--s-r-md);
  padding: 12px 16px;
}

.s-academic-checklist p {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--s-teal);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 6px;
}

.s-academic-checklist ul {
  font-size: 12.5px;
  color: var(--s-slate);
  line-height: 1.8;
  margin: 0;
  padding-left: 18px;
}

.s-academic-checklist ul li.disqualified {
  color: var(--kt-error);
}

.s-academic-note {
  font-size: 11.5px;
  color: var(--s-slate);
  margin: 6px 0 0;
}

/* ── CHALLENGES ───────────────────────────────────────────── */
.s-challenges-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 32px;
}

@media (min-width: 640px) {
  .s-challenges-grid { grid-template-columns: 1fr 1fr; }
}

.s-challenge-item {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 18px 20px;
  background: var(--s-surface);
  border: 1px solid var(--s-border);
  border-left: 3px solid var(--s-teal);
  border-radius: var(--s-r-md);
}

.s-challenge-icon {
  font-size: 18px; color: var(--s-teal); flex-shrink: 0; margin-top: 2px;
}

.s-challenge-text {
  font-size: 14px; line-height: 1.65; color: var(--s-slate-d); margin: 0;
}

/* ── APPLICATIONS ─────────────────────────────────────────── */
.s-apps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 36px;
}

@media (min-width: 640px) {
  .s-apps-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .s-apps-grid { grid-template-columns: repeat(3, 1fr); }
}

.s-app-card {
  background: var(--s-surface);
  border: 1px solid var(--s-border);
  border-radius: var(--s-r-lg);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  transition: transform var(--s-dur) var(--s-ease),
  box-shadow var(--s-dur) var(--s-ease),
  border-color var(--s-dur) var(--s-ease);
}

.s-app-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 32px -8px rgba(13,27,76,0.14));
  border-color: var(--s-teal);
}

.s-app-icon-wrap {
  width: 44px;
  height: 44px;
  background: var(--s-tint);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  flex-shrink: 0;
}

.s-app-icon-wrap i {
  font-size: 1.5rem; color: var(--s-teal-d);
}

.s-app-name {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0 0 8px;
}

.s-app-desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--s-slate);
  margin: 0 0 14px;
  flex: 1;
}

.s-app-img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 14px;
}

.s-app-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--s-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap var(--s-dur) var(--s-ease), color var(--s-dur) var(--s-ease);
}

.s-app-link:hover {
  gap: 8px; color: var(--s-teal-d); text-decoration: none;
}

/* ── INSTRUMENTS ──────────────────────────────────────────── */
.s-instruments-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .s-instruments-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
  .s-instruments-grid { grid-template-columns: repeat(4, 1fr); }
}

.s-instr-card {
  background: var(--s-surface);
  border: 1px solid var(--s-border);
  border-radius: var(--s-r-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--s-dur) var(--s-ease),
  box-shadow var(--s-dur) var(--s-ease);
}

.s-instr-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 32px -8px rgba(13,27,76,0.16));
}

.s-instr-img-wrap {
  height: 148px;
  background: var(--s-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  overflow: hidden;
}

.s-instr-img-wrap img {
  max-height: 116px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}

.s-instr-body {
  padding: 16px 16px 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.s-instr-model {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0 0 5px;
}

.s-instr-role {
  font-size: 12px;
  line-height: 1.6;
  color: var(--s-slate);
  margin: 0 0 12px;
  flex: 1;
}

.s-instr-links {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; padding-top: 6px;
}

.s-instr-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--s-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: gap var(--s-dur) var(--s-ease), color var(--s-dur) var(--s-ease);
}

.s-instr-link:hover {
  gap: 7px; color: var(--s-teal-d); text-decoration: none;
}

.s-instr-link--pdf {
  color: var(--s-gold);
}

.s-instr-link--pdf:hover {
  color: var(--s-navy);
}

/* ── CASE STUDIES ─────────────────────────────────────────── */
.s-cases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .s-cases-grid { grid-template-columns: 1fr 1fr; }
}

.s-case-card {
  border: 1px solid var(--s-border);
  border-left: 4px solid var(--s-gold);
  border-radius: 0 var(--s-r-lg) var(--s-r-lg) 0;
  background: var(--s-surface);
  padding: 22px 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.s-case-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}

.s-case-badge {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 4px;
  background: #f0ad4e;
  color: var(--s-navy);
  flex-shrink: 0;
}

.s-case-badge--signed {
  background: rgba(14,162,189,0.12);
  color: var(--s-teal-d);
}

.s-case-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0;
  flex: 1;
}

.s-case-img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-radius: 6px;
}

.s-case-narrative {
  font-size: 13.5px;
  line-height: 1.72;
  color: var(--s-slate-d);
  margin: 0;
}

.s-case-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--s-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  align-self: flex-start;
  transition: gap var(--s-dur) var(--s-ease);
}

.s-case-link:hover {
  gap: 8px; color: var(--s-teal-d); text-decoration: none;
}

/* ── TECH SPECS TABLE ─────────────────────────────────────── */
.s-spec-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
  font-size: 13.5px;
  background: var(--s-surface);
  border-radius: var(--s-r-lg);
  overflow: hidden;
  box-shadow: var(--kt-shadow-card, 0 2px 12px rgba(13,27,76,0.06));
}

.s-spec-table thead tr {
  background: var(--s-navy);
}

.s-spec-table thead th {
  padding: 13px 16px;
  text-align: left;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--s-gold);
}

.s-spec-table tbody tr {
  border-bottom: 1px solid var(--s-divider);
  transition: background var(--s-dur) var(--s-ease);
}

.s-spec-table tbody tr:last-child {
  border-bottom: none;
}

.s-spec-table tbody tr:hover {
  background: var(--s-alt);
}

.s-spec-table tbody td {
  padding: 12px 16px;
  vertical-align: top;
  line-height: 1.55;
}

.s-spec-table .s-spec-param {
  color: var(--s-navy); font-weight: 600;
}

.s-spec-table .s-spec-value {
  color: var(--s-teal-d);
  font-family: "Montserrat", system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.s-spec-table .s-spec-note {
  color: var(--s-slate); font-size: 12.5px;
}

/* ── KANTEK SERVICES (mid-page navy strip) ────────────────── */
.s-services-strip {
  background: var(--s-navy);
  padding: 56px 0 60px;
}

.s-services-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #fff;
  margin: 0 0 4px;
}

.s-services-sub {
  font-size: 14.5px; color: rgba(255,255,255,0.62);
}

.s-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin-top: 32px;
}

@media (min-width: 768px) {
  .s-services-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
  .s-services-grid { grid-template-columns: repeat(6, 1fr); }
}

.s-service-item {
  text-align: center;
}

.s-service-icon {
  width: 56px;
  height: 56px;
  background: rgba(255,255,255,0.07);
  border: 2px solid rgba(201,162,39,0.32);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
  transition: background var(--s-dur) var(--s-ease), border-color var(--s-dur) var(--s-ease);
}

.s-service-item:hover .s-service-icon {
  background: rgba(201,162,39,0.14);
  border-color: var(--s-gold);
}

.s-service-icon i {
  font-size: 22px; color: var(--s-gold);
}

.s-service-label {
  font-size: 13px; font-weight: 600; color: rgba(255,255,255,0.88);
}

/* Success story block */
.s-story-block {
  margin: 28px auto 0;
  padding: 20px 26px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-left: 4px solid var(--s-gold);
  border-radius: 0 var(--s-r-md) var(--s-r-md) 0;
  max-width: 820px;
}

.s-story-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.s-story-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--s-gold);
}

.s-story-illustrative {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  background: #f0ad4e;
  color: #1a1f24;
  padding: 2px 8px;
  border-radius: 4px;
}

.s-story-disclaimer {
  font-size: 11px;
  color: rgba(255,255,255,0.42);
  font-style: italic;
  margin: 0 0 8px;
}

.s-story-text {
  font-size: 13.5px;
  color: rgba(255,255,255,0.82);
  line-height: 1.75;
  margin: 0;
}

/* ISO 17025 calibration block */
.s-cal-block {
  margin: 40px auto 0;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.14);
  border-left: 3px solid var(--s-gold);
  border-radius: var(--s-r-md);
  padding: 26px 30px;
  max-width: 820px;
}

.s-cal-inner {
  display: flex; align-items: flex-start; gap: 18px; flex-wrap: wrap;
}

.s-cal-inner-icon {
  flex-shrink: 0;
}

.s-cal-inner-icon i {
  font-size: 34px; color: var(--s-gold);
}

.s-cal-content {
  flex: 1; min-width: 240px;
}

.s-cal-content h3 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 10px;
}

.s-cal-content p {
  font-size: 13px; line-height: 1.75; color: rgba(255,255,255,0.77); margin: 0 0 10px;
}

.s-cal-content ul {
  font-size: 12.5px; color: rgba(255,255,255,0.7); line-height: 1.8; margin: 0 0 12px; padding-left: 18px;
}

.s-cal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  color: rgba(255,255,255,0.77);
  margin-bottom: 12px;
}

.s-cal-table thead tr {
  border-bottom: 1px solid rgba(255,255,255,0.14);
}

.s-cal-table th {
  text-align: left; padding: 5px 10px 5px 0; font-weight: 700; color: var(--s-gold); white-space: nowrap;
}

.s-cal-table td {
  padding: 6px 10px 6px 0; border-bottom: 1px solid rgba(255,255,255,0.07);
}

.s-cal-table tr:last-child td {
  border-bottom: none;
}

.s-cal-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--s-gold);
  text-decoration: none;
  transition: gap var(--s-dur) var(--s-ease);
}

.s-cal-cta:hover {
  gap: 10px; text-decoration: none; color: var(--s-gold);
}

/* ── INDUSTRIES ───────────────────────────────────────────── */
.s-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

.s-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  background: var(--s-surface);
  border: 1.5px solid var(--s-border);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  color: var(--s-navy);
  transition: border-color var(--s-dur) var(--s-ease), background var(--s-dur) var(--s-ease);
}

.s-chip:hover {
  border-color: var(--s-teal); background: rgba(14,162,189,0.05);
}

.s-chip i {
  font-size: 13px; color: var(--s-teal);
}

/* ── RELATED LINKS ────────────────────────────────────────── */
.s-links-list {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

@media (min-width: 768px) {
  .s-links-list { grid-template-columns: 1fr 1fr; }
}

.s-links-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 15px;
  background: var(--s-surface);
  border: 1px solid var(--s-border);
  border-radius: var(--s-r-md);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--s-navy);
  text-decoration: none;
  transition: border-color var(--s-dur) var(--s-ease), background var(--s-dur) var(--s-ease);
}

.s-links-list li a:hover {
  border-color: var(--s-teal);
  background: rgba(14,162,189,0.04);
  color: var(--s-navy);
  text-decoration: none;
}

.s-links-list li a i {
  font-size: 14px; color: var(--s-teal); flex-shrink: 0;
}

.s-links-list li a .s-ext {
  margin-left: auto; font-size: 11.5px; color: var(--s-slate);
}

/* ── RELATED SOLUTIONS RAIL ───────────────────────────────── */
.s-related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 28px;
}

@media (min-width: 768px) {
  .s-related-grid { grid-template-columns: repeat(3, 1fr); }
}

.s-related-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: var(--s-surface);
  border: 1.5px solid var(--s-border);
  border-radius: var(--s-r-md);
  text-decoration: none;
  color: inherit;
  transition: border-color var(--s-dur) var(--s-ease), box-shadow var(--s-dur) var(--s-ease);
}

.s-related-card:hover {
  border-color: var(--s-teal);
  box-shadow: var(--kt-shadow-card, 0 4px 16px rgba(13,27,76,0.08));
  text-decoration: none;
  color: inherit;
}

.s-related-card i {
  font-size: 1.5rem; color: var(--s-teal); flex-shrink: 0; margin-top: 2px;
}

.s-related-card-title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0 0 5px;
}

.s-related-card-desc {
  font-size: 12.5px; line-height: 1.6; color: var(--s-slate); margin: 0;
}

/* ── INLINE RFQ ───────────────────────────────────────────── */
.s-rfq-section {
  background: var(--s-alt);
  border-top: 3px solid var(--s-teal);
  padding: 72px 0;
}

.s-rfq-wrap {
  max-width: 760px; margin-inline: auto;
}

.s-rfq-heading {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(19px, 2.6vw, 26px);
  font-weight: 800;
  color: var(--s-navy);
  margin: 0 0 7px;
}

.s-rfq-sub {
  font-size: 14.5px; color: var(--s-slate); margin: 0 0 30px;
}

.s-rfq-form {
  background: var(--s-surface);
  border: 1px solid var(--s-border);
  border-radius: var(--s-r-lg);
  padding: 36px 36px 32px;
  box-shadow: var(--kt-shadow-card, 0 4px 20px rgba(13,27,76,0.06));
}

@media (max-width: 600px) {
  .s-rfq-form { padding: 24px 18px; }
}

.s-rfq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 600px) {
  .s-rfq-row { grid-template-columns: 1fr; }
}

.s-rfq-group {
  display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px;
}

.s-rfq-group label {
  font-size: 12.5px; font-weight: 700; color: var(--s-navy);
}

.s-rfq-group input,
.s-rfq-group select,
.s-rfq-group textarea {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid var(--s-border);
  border-radius: var(--s-r-md);
  font-size: 14px;
  color: var(--s-slate-d);
  background: #fff;
  transition: border-color var(--s-dur) var(--s-ease);
  font-family: inherit;
}

.s-rfq-group input:focus,
.s-rfq-group select:focus,
.s-rfq-group textarea:focus {
  outline: none;
  border-color: var(--s-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.s-rfq-group textarea {
  resize: vertical; min-height: 88px;
}

.s-rfq-selects {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px;
}

@media (max-width: 600px) {
  .s-rfq-selects { grid-template-columns: 1fr; }
}

.s-rfq-submit {
  width: 100%;
  padding: 13px;
  background: var(--s-navy);
  color: #fff;
  font-size: 14.5px;
  font-weight: 700;
  border: none;
  border-radius: var(--s-r-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background var(--s-dur) var(--s-ease), transform var(--s-dur) var(--s-ease);
  font-family: inherit;
  margin-top: 6px;
}

.s-rfq-submit:hover {
  background: var(--s-teal); transform: translateY(-1px);
}

.s-rfq-submit:disabled {
  opacity: 0.6; cursor: not-allowed;
}

.s-rfq-thanks {
  display: none;
  text-align: center;
  padding: 44px 20px;
}

.s-rfq-thanks .s-thanks-icon {
  font-size: 48px; color: var(--s-teal); margin-bottom: 14px;
}

.s-rfq-thanks h3 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 21px;
  font-weight: 700;
  color: var(--s-navy);
  margin: 0 0 8px;
}

.s-rfq-thanks p {
  font-size: 14.5px; color: var(--s-slate); margin: 0;
}

.s-privacy-note {
  font-size: 11.5px; color: var(--s-slate); margin-top: 10px; text-align: center;
}

/* ============================================================
   SOLUTION PAGE — Scoped tokens + layout. Uses existing --kt-* from main.css.
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --sst-navy:      var(--kt-navy,        #0D1B4C);
  --sst-navy-soft: var(--kt-navy-soft,   #1A2D6D);
  --sst-gold:      var(--kt-gold,        #C9A227);
  --sst-teal:      var(--kt-teal,        #0ea2bd);
  --sst-teal-dark: var(--kt-teal-dark,   #0189a1);
  --sst-teal-tint: var(--kt-teal-tint,   #EEF6F8);
  --sst-surface:   var(--kt-surface,     #FFFFFF);
  --sst-alt:       var(--kt-surface-alt, #F7F9FC);
  --sst-border:    var(--kt-border,      #E5E9F0);
  --sst-text:      var(--kt-slate-deep, #3a4753);
  --sst-muted:     var(--kt-slate,       #5a6c7d);
  --sst-radius:    var(--kt-radius-md,   8px);
  --sst-radius-lg: var(--kt-radius-lg,   12px);
  --sst-max:       1280px;
  color: var(--sst-text);
  font-family: "Open Sans", system-ui, sans-serif;
}

/* ── Shared container ──────────────────────────────────── */
.sst-container {
  max-width: var(--sst-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── HERO ─────────────────────────────────────────────── */
.sst-hero {
  background: linear-gradient(135deg, var(--sst-navy) 0%, var(--sst-navy-soft) 55%, #0D3B5A 100%);
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}

.sst-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/img/solutions/satellite-testing/hero.jpg") center/cover no-repeat;
  opacity: 0.14;
  pointer-events: none;
}

.sst-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .sst-hero-inner { grid-template-columns: 1fr 400px; }
}

.sst-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sst-gold);
  margin-bottom: 16px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.sst-hero-eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--sst-gold);
  flex-shrink: 0;
}

.sst-hero h1 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 20px;
}

.sst-hero-subhead {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  margin: 0 0 36px;
  max-width: 56ch;
}

.sst-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.sst-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: var(--sst-gold);
  color: var(--sst-navy) !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--sst-radius);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.sst-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.38);
  color: var(--sst-navy) !important;
  text-decoration: none;
}

.sst-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: transparent;
  color: #fff !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.55);
  border-radius: var(--sst-radius);
  transition: border-color 0.18s, background 0.18s;
}

.sst-btn-outline:hover {
  border-color: var(--sst-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.sst-hero-badge-col {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.sst-hero-badge {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-left: 3px solid var(--sst-gold);
  border-radius: var(--sst-radius);
  padding: 16px 20px;
}

.sst-hero-badge p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: 13.5px;
  line-height: 1.65;
}

.sst-hero-badge strong {
  color: #fff;
}

/* ── KPI STRIP ────────────────────────────────────────── */
.sst-kpi-strip {
  background: var(--sst-navy);
  padding: 0;
}

.sst-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 3px solid var(--sst-gold);
}

@media (min-width: 768px) {
  .sst-kpi-grid { grid-template-columns: repeat(4, 1fr); }
}

.sst-kpi-item {
  padding: 36px 24px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.sst-kpi-item:last-child {
  border-right: none;
}

.sst-kpi-value {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(18px, 3vw, 30px);
  font-weight: 800;
  color: var(--sst-gold);
  line-height: 1.2;
  margin-bottom: 8px;
  font-variant-numeric: tabular-nums;
  word-break: break-word;
}

.sst-kpi-label {
  font-size: 12.5px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
  max-width: 180px;
  margin-inline: auto;
}

/* ── SECTION COMMON ──────────────────────────────────── */
.sst-section {
  padding: 80px 0;
}

.sst-section--alt {
  background: var(--sst-alt);
}

.sst-section-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sst-teal);
  margin-bottom: 10px;
  display: block;
  font-family: "Montserrat", system-ui, sans-serif;
}

.sst-section-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--sst-navy);
  margin: 0 0 12px;
}

.sst-section-intro {
  font-size: 16px;
  line-height: 1.75;
  color: var(--sst-muted);
  max-width: 680px;
}

/* ── CHALLENGES ──────────────────────────────────────── */
.sst-challenges-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 36px;
}

@media (min-width: 640px) {
  .sst-challenges-grid { grid-template-columns: 1fr 1fr; }
}

.sst-challenge-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px;
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-left: 3px solid var(--sst-teal);
  border-radius: var(--sst-radius);
}

.sst-challenge-icon {
  font-size: 20px;
  color: var(--sst-teal);
  flex-shrink: 0;
  margin-top: 2px;
}

.sst-challenge-text {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--sst-text);
  margin: 0;
}

/* ── APPLICATIONS ─────────────────────────────────────── */
.sst-apps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 640px) {
  .sst-apps-grid { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .sst-apps-grid { grid-template-columns: repeat(4, 1fr); }
}

.sst-app-card {
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-radius: 10px;
  padding: 28px 22px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s;
  display: flex;
  flex-direction: column;
}

.sst-app-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px -8px rgba(13,27,76,0.14);
  border-color: var(--sst-teal);
}

.sst-app-icon-wrap {
  width: 44px;
  height: 44px;
  background: var(--sst-teal-tint);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  flex-shrink: 0;
}

.sst-app-icon-wrap i {
  font-size: 22px;
  color: var(--sst-teal-dark);
}

.sst-app-name {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--sst-navy);
  margin: 0 0 10px;
}

.sst-app-desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--sst-muted);
  margin: 0 0 16px;
  flex: 1;
}

.sst-app-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sst-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap 0.15s, color 0.15s;
}

.sst-app-link:hover {
  gap: 8px; text-decoration: none; color: var(--sst-teal-dark);
}

/* ── INSTRUMENTS ─────────────────────────────────────── */
.sst-instruments-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 900px) {
  .sst-instruments-grid { grid-template-columns: repeat(4, 1fr); }
}

.sst-instr-card {
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  display: flex;
  flex-direction: column;
}

.sst-instr-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px -8px rgba(13,27,76,0.16);
}

.sst-instr-img-wrap {
  height: 160px;
  background: var(--sst-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow: hidden;
}

.sst-instr-img-wrap img {
  max-height: 128px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}

.sst-instr-body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sst-instr-model {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--sst-navy);
  margin: 0 0 6px;
}

.sst-instr-role {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--sst-muted);
  margin: 0 0 12px;
  flex: 1;
}

.sst-instr-link {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--sst-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.15s;
}

.sst-instr-link:hover {
  gap: 8px; color: var(--sst-navy); text-decoration: none;
}

/* ── CASE STUDIES ─────────────────────────────────────── */
.sst-case-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  margin-top: 40px;
}

@media (min-width: 800px) {
  .sst-case-grid { grid-template-columns: 1fr 1fr; }
}

.sst-case-card {
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-left: 4px solid var(--sst-teal);
  border-radius: 0 10px 10px 0;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sst-case-img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: var(--sst-radius);
  display: block;
}

.sst-case-title {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--sst-navy);
  margin: 0 0 4px;
}

.sst-case-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(240,173,78,0.18);
  color: #7a5800;
  border: 1px solid rgba(201,162,39,0.4);
  border-radius: 4px;
  padding: 2px 8px;
  margin-left: 8px;
  vertical-align: middle;
}

.sst-case-notice {
  font-size: 11.5px;
  color: var(--sst-muted);
  font-style: italic;
  margin: 0;
}

.sst-case-text {
  font-size: 14px;
  line-height: 1.75;
  color: var(--sst-muted);
  margin: 0;
  flex: 1;
}

.sst-case-link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sst-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
}

.sst-case-link:hover {
  gap: 8px; color: var(--sst-teal-dark); text-decoration: none;
}

/* ── TECHNICAL SPECS TABLE ────────────────────────────── */
.sst-specs-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 36px;
  font-size: 14px;
}

.sst-specs-table thead tr {
  background: var(--sst-navy);
  color: #fff;
}

.sst-specs-table thead th {
  padding: 12px 16px;
  text-align: left;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.sst-specs-table tbody tr {
  border-bottom: 1px solid var(--sst-border);
  transition: background 0.15s;
}

.sst-specs-table tbody tr:hover {
  background: var(--sst-teal-tint);
}

.sst-specs-table td {
  padding: 12px 16px;
  vertical-align: top;
  line-height: 1.55;
}

.sst-specs-table td:first-child {
  font-weight: 700;
  color: var(--sst-navy);
  width: 28%;
  white-space: nowrap;
}

.sst-specs-table td:nth-child(2) {
  font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
  font-variant-numeric: tabular-nums;
  color: var(--sst-text);
  width: 32%;
}

.sst-specs-table td:last-child {
  color: var(--sst-muted);
  font-size: 13px;
}

@media (max-width: 640px) {
  .sst-specs-table td:first-child { white-space: normal; }
  .sst-specs-table { font-size: 13px; }
}

/* ── KANTEK SERVICES STRIP ────────────────────────────── */
.sst-services-strip {
  background: var(--sst-navy);
  padding: 56px 0;
}

.sst-services-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  letter-spacing: -0.015em;
}

.sst-services-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.65);
}

.sst-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .sst-services-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
  .sst-services-grid { grid-template-columns: repeat(6, 1fr); }
}

.sst-service-item {
  text-align: center;
}

.sst-service-icon {
  width: 60px;
  height: 60px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  border: 2px solid rgba(201,162,39,0.35);
  transition: background 0.18s, border-color 0.18s;
}

.sst-service-item:hover .sst-service-icon {
  background: rgba(201,162,39,0.15);
  border-color: var(--sst-gold);
}

.sst-service-icon i {
  font-size: 24px;
  color: var(--sst-gold);
}

.sst-service-label {
  font-size: 13.5px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
}

.sst-services-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 40px;
}

.sst-btn-svc-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  background: var(--sst-gold);
  color: var(--sst-navy) !important;
  font-size: 14px;
  font-weight: 700;
  border-radius: var(--sst-radius);
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.sst-btn-svc-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.38);
  color: var(--sst-navy) !important;
  text-decoration: none;
}

.sst-btn-svc-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: transparent;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  border: 2px solid rgba(255,255,255,0.35);
  border-radius: var(--sst-radius);
  text-decoration: none;
  transition: border-color 0.18s, background 0.18s;
}

.sst-btn-svc-outline:hover {
  border-color: var(--sst-gold);
  background: rgba(201,162,39,0.08);
  color: #fff !important;
  text-decoration: none;
}

/* ── INDUSTRIES CHIPS ────────────────────────────────── */
.sst-industries-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.sst-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--sst-surface);
  border: 1.5px solid var(--sst-border);
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--sst-navy);
  transition: border-color 0.15s, background 0.15s;
}

.sst-chip:hover {
  border-color: var(--sst-teal);
  background: rgba(14,162,189,0.05);
}

.sst-chip i {
  font-size: 14px; color: var(--sst-teal);
}

/* ── RELATED RESOURCES ───────────────────────────────── */
.sst-links-list {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 768px) {
  .sst-links-list { grid-template-columns: 1fr 1fr; }
}

.sst-links-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-radius: var(--sst-radius);
  font-size: 14px;
  font-weight: 500;
  color: var(--sst-navy);
  text-decoration: none;
  transition: border-color 0.15s, background 0.15s;
}

.sst-links-list li a:hover {
  border-color: var(--sst-teal);
  background: rgba(14,162,189,0.04);
  color: var(--sst-navy);
  text-decoration: none;
}

.sst-links-list li a i {
  font-size: 15px;
  color: var(--sst-teal);
  flex-shrink: 0;
}

.sst-links-list li a .sst-ext {
  margin-left: auto;
  font-size: 11.5px;
  color: var(--sst-muted);
  white-space: nowrap;
}

/* ── INLINE RFQ ──────────────────────────────────────── */
.sst-rfq-section {
  background: linear-gradient(135deg, #F0F4FF 0%, #EAF7FA 100%);
  border-top: 3px solid var(--sst-teal);
  padding: 80px 0;
}

.sst-rfq-wrap {
  max-width: 760px;
  margin-inline: auto;
}

.sst-rfq-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 800;
  color: var(--sst-navy);
  margin: 0 0 8px;
}

.sst-rfq-sub {
  font-size: 15px;
  color: var(--sst-muted);
  margin: 0 0 36px;
}

.sst-rfq-form {
  background: var(--sst-surface);
  border: 1px solid var(--sst-border);
  border-radius: 12px;
  padding: 40px 40px 36px;
  box-shadow: 0 4px 20px rgba(13,27,76,0.06);
}

@media (max-width: 600px) {
  .sst-rfq-form { padding: 28px 20px; }
}

.sst-rfq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 600px) {
  .sst-rfq-row { grid-template-columns: 1fr; }
}

.sst-rfq-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.sst-rfq-group label {
  font-size: 13px;
  font-weight: 600;
  color: var(--sst-navy);
}

.sst-rfq-group input,
.sst-rfq-group select,
.sst-rfq-group textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--sst-border);
  border-radius: var(--sst-radius);
  font-size: 14px;
  color: var(--sst-text);
  background: #fff;
  transition: border-color 0.15s;
  font-family: inherit;
}

.sst-rfq-group input:focus,
.sst-rfq-group select:focus,
.sst-rfq-group textarea:focus {
  outline: none;
  border-color: var(--sst-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.sst-rfq-group textarea {
  resize: vertical; min-height: 96px;
}

.sst-rfq-selects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .sst-rfq-selects { grid-template-columns: 1fr; }
}

.sst-rfq-submit {
  width: 100%;
  padding: 14px;
  background: var(--sst-navy);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  border: none;
  border-radius: var(--sst-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background 0.18s, transform 0.18s;
  font-family: inherit;
  margin-top: 8px;
}

.sst-rfq-submit:hover {
  background: var(--sst-teal);
  transform: translateY(-1px);
}

.sst-rfq-submit:disabled {
  opacity: 0.6; cursor: not-allowed;
}

.sst-rfq-thanks {
  display: none;
  text-align: center;
  padding: 48px 24px;
}

.sst-rfq-thanks .sst-thanks-icon {
  font-size: 52px;
  color: var(--sst-teal);
  margin-bottom: 16px;
}

.sst-rfq-thanks h3 {
  font-family: "Montserrat", sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--sst-navy);
  margin: 0 0 10px;
}

.sst-rfq-thanks p {
  font-size: 15px;
  color: var(--sst-muted);
  margin: 0;
}

.sst-privacy-note {
  font-size: 12px;
  color: var(--sst-muted);
  margin-top: 12px;
  text-align: center;
}

/* ── Audience routing bar ───────────────────────────── */
.sst-audience-bar {
  background: var(--sst-teal-tint);
  border-left: 4px solid var(--sst-navy);
  padding: 10px 20px;
  font-size: 0.85rem;
  color: #333;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.sst-audience-bar i {
  color: var(--sst-navy); margin-top: 2px; flex-shrink: 0;
}

.sst-audience-bar a {
  color: var(--sst-navy); font-weight: 600; text-decoration: underline;
}

.sst-audience-bar a:hover {
  color: var(--sst-teal-dark);
}

/* ============================================================
   SOLUTION PAGE — v2: Uses --kt-* tokens from main.css. No raw hex except #fff/transparent.
   ============================================================ */
.kt-solution, [class^="kt-solution-"] {
  --sgs-navy:    var(--kt-navy,        #0D1B4C);
  --sgs-gold:    var(--kt-gold,        #C9A227);
  --sgs-teal:    var(--kt-teal,        #0ea2bd);
  --sgs-teal-dk: var(--kt-teal-dark,   #0189a1);
  --sgs-tint:    var(--kt-teal-tint,   #EEF6F8);
  --sgs-surface: var(--kt-surface,     #fff);
  --sgs-alt:     var(--kt-surface-alt, #F7F9FC);
  --sgs-border:  var(--kt-border,      #E5E9F0);
  --sgs-divider: var(--kt-divider,     #F0F2F6);
  --sgs-text:    var(--kt-navy,        #0D1B4C);
  --sgs-body:    var(--kt-slate-deep,  #3a4753);
  --sgs-muted:   var(--kt-slate,       #5a6c7d);
  --sgs-radius:  var(--kt-radius-md,   8px);
  --sgs-radius-lg: var(--kt-radius-lg, 12px);
  --sgs-max:     1280px;
  --sgs-dur:     var(--kt-dur,         220ms);
  --sgs-ease:    var(--kt-ease,        ease);
  color: var(--sgs-body);
  font-family: "Open Sans", sans-serif;
}

/* ── Shared container ──────────────────────────────────────── */
.sgs-wrap {
  max-width: var(--sgs-max);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

/* ── HERO ──────────────────────────────────────────────────── */
.sgs-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0 80px;
  background: linear-gradient(135deg, var(--sgs-navy) 0%, #1A2D6D 100%);
}

.sgs-hero__bg {
  position: absolute;
  inset: 0;
  background-image: url("/img/solutions/government-security/hero.jpg");
  background-size: cover;
  background-position: center;
  opacity: 0.13;
  pointer-events: none;
}

.sgs-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}

@media (min-width: 900px) {
  .sgs-hero__inner { grid-template-columns: 1fr 380px; }
}

.sgs-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sgs-gold);
  margin-bottom: 16px;
  font-family: "Montserrat", system-ui, sans-serif;
}

.sgs-hero__eyebrow::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--sgs-gold);
  flex-shrink: 0;
}

.sgs-hero h1 {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 20px;
}

.sgs-hero__subhead {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  margin: 0 0 36px;
  max-width: 56ch;
}

.sgs-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.sgs-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: var(--sgs-gold);
  color: var(--sgs-navy) !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--sgs-radius);
  transition: transform var(--sgs-dur) var(--sgs-ease),
  box-shadow var(--sgs-dur) var(--sgs-ease);
}

.sgs-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,162,39,0.38);
  color: var(--sgs-navy) !important;
  text-decoration: none;
}

.sgs-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: transparent;
  color: #fff !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.55);
  border-radius: var(--sgs-radius);
  transition: border-color var(--sgs-dur), background var(--sgs-dur);
}

.sgs-btn-outline:hover {
  border-color: var(--sgs-gold);
  background: rgba(201,162,39,0.08);
  text-decoration: none;
  color: #fff !important;
}

.sgs-hero__badge-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.sgs-hero__badge {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-left: 3px solid var(--sgs-gold);
  border-radius: var(--sgs-radius);
  padding: 18px 24px;
}

.sgs-hero__badge p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: 13.5px;
  line-height: 1.65;
}

.sgs-hero__badge strong {
  color: #fff;
}

/* Hero decorative icons */
.sgs-hero__deco {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  gap: 14px;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}

.sgs-hero__deco i {
  font-size: 4rem; color: #fff;
}

/* ── KPI STRIP ──────────────────────────────────────────────── */
.sgs-kpi {
  background: var(--sgs-navy);
  padding: 0;
}

.sgs-kpi__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 3px solid var(--sgs-gold);
}

@media (min-width: 768px) {
  .sgs-kpi__grid { grid-template-columns: repeat(4, 1fr); }
}

.sgs-kpi__item {
  padding: 36px 28px;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.sgs-kpi__item:last-child {
  border-right: none;
}

.sgs-kpi__value {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--sgs-gold);
  line-height: 1.1;
  margin-bottom: 8px;
}

.sgs-kpi__label {
  font-size: 12.5px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
  max-width: 160px;
  margin-inline: auto;
}

/* ── SECTION SHARED ─────────────────────────────────────────── */
.sgs-section {
  padding: 80px 0;
}

.sgs-section--alt {
  background: var(--sgs-alt);
}

.sgs-sec-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sgs-teal);
  margin-bottom: 10px;
  display: block;
}

.sgs-sec-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--sgs-navy);
  margin: 0 0 12px;
}

.sgs-sec-intro {
  font-size: 16px;
  line-height: 1.75;
  color: var(--sgs-muted);
  max-width: 720px;
}

/* ── CHALLENGES ─────────────────────────────────────────────── */
.sgs-challenges {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 36px;
}

@media (min-width: 640px) {
  .sgs-challenges { grid-template-columns: 1fr 1fr; }
}

.sgs-challenge {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 22px;
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-left: 3px solid var(--sgs-teal);
  border-radius: var(--sgs-radius);
}

.sgs-challenge i {
  font-size: 1rem;
  color: var(--sgs-teal);
  flex-shrink: 0;
  margin-top: 2px;
}

.sgs-challenge p {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--sgs-text);
  margin: 0;
}

/* ── APPLICATIONS ───────────────────────────────────────────── */
.sgs-apps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 640px) {
  .sgs-apps { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
  .sgs-apps { grid-template-columns: repeat(3, 1fr); }
}

.sgs-app-card {
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-radius: var(--sgs-radius-lg);
  overflow: hidden;
  transition: transform var(--sgs-dur) var(--sgs-ease),
  box-shadow var(--sgs-dur) var(--sgs-ease),
  border-color var(--sgs-dur);
  display: flex;
  flex-direction: column;
}

.sgs-app-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 32px -8px rgba(13,27,76,0.14));
  border-color: var(--sgs-teal);
}

.sgs-app-card__img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
  background: var(--sgs-alt);
}

.sgs-app-card__body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sgs-app-card__icon {
  width: 44px;
  height: 44px;
  background: var(--sgs-tint);
  border-radius: var(--sgs-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  flex-shrink: 0;
}

.sgs-app-card__icon i {
  font-size: 1.5rem;
  color: var(--sgs-teal-dk);
}

.sgs-app-card__name {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--sgs-navy);
  margin: 0 0 10px;
}

.sgs-app-card__desc {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--sgs-muted);
  margin: 0 0 16px;
  flex: 1;
}

.sgs-app-card__link {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sgs-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  transition: gap var(--sgs-dur), color var(--sgs-dur);
}

.sgs-app-card__link:hover {
  gap: 8px; color: var(--sgs-navy); text-decoration: none;
}

/* ── INSTRUMENTS ────────────────────────────────────────────── */
.sgs-instrs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media (min-width: 900px) {
  .sgs-instrs { grid-template-columns: repeat(4, 1fr); }
}

.sgs-instr {
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-radius: var(--sgs-radius-lg);
  overflow: hidden;
  transition: transform var(--sgs-dur) var(--sgs-ease),
  box-shadow var(--sgs-dur) var(--sgs-ease);
  display: flex;
  flex-direction: column;
}

.sgs-instr:hover {
  transform: translateY(-3px);
  box-shadow: var(--kt-shadow-card-hover, 0 12px 32px -8px rgba(13,27,76,0.16));
}

.sgs-instr__img {
  height: 160px;
  background: var(--sgs-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.sgs-instr__img img {
  max-height: 128px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}

.sgs-instr__body {
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sgs-instr__model {
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--sgs-navy);
  margin: 0 0 6px;
}

.sgs-instr__role {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--sgs-muted);
  margin: 0 0 14px;
  flex: 1;
}

.sgs-instr__links {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 8px;
}

.sgs-instr__link {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--sgs-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap var(--sgs-dur), color var(--sgs-dur);
}

.sgs-instr__link:hover {
  gap: 8px; color: var(--sgs-navy); text-decoration: none;
}

.sgs-instr__link--pdf {
  color: var(--sgs-gold);
}

.sgs-instr__link--pdf:hover {
  color: var(--sgs-navy);
}

/* ── CASE STUDIES ───────────────────────────────────────────── */
.sgs-cases {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 40px;
}

@media (min-width: 768px) {
  .sgs-cases { grid-template-columns: 1fr 1fr; }
}

.sgs-case {
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-left: 4px solid var(--sgs-gold);
  border-radius: var(--sgs-radius);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sgs-case__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sgs-case__badge--real {
  color: var(--sgs-teal);
}

.sgs-case__badge--illus {
  color: #855f00;
  background: #fff3cd;
  padding: 2px 8px;
  border-radius: 4px;
}

.sgs-case__title {
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--sgs-navy);
  margin: 0;
}

.sgs-case__notice {
  font-size: 11.5px;
  color: var(--sgs-muted);
  font-style: italic;
  margin: 0;
}

.sgs-case__body {
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--sgs-body);
  margin: 0;
  flex: 1;
}

.sgs-case__link {
  font-size: 12px;
  font-weight: 600;
  color: var(--sgs-teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
}

.sgs-case__link:hover {
  color: var(--sgs-navy); text-decoration: none;
}

/* ── TECH SPECS ─────────────────────────────────────────────── */
.sgs-spec-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
  font-size: 13.5px;
}

.sgs-spec-table thead th {
  background: var(--sgs-navy);
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: left;
  padding: 10px 16px;
}

.sgs-spec-table tbody tr {
  border-bottom: 1px solid var(--sgs-divider);
  transition: background var(--sgs-dur);
}

.sgs-spec-table tbody tr:hover {
  background: var(--sgs-alt);
}

.sgs-spec-table tbody td {
  padding: 11px 16px;
  vertical-align: top;
  line-height: 1.55;
}

.sgs-spec-table td:first-child {
  font-weight: 600;
  color: var(--sgs-navy);
  white-space: nowrap;
}

.sgs-spec-table td:nth-child(2) {
  font-variant-numeric: tabular-nums;
  color: var(--sgs-text);
  font-weight: 600;
}

.sgs-spec-table td:last-child {
  color: var(--sgs-muted);
  font-size: 12.5px;
}

/* ── KANTEK SERVICES (navy strip) ───────────────────────────── */
.sgs-services {
  background: var(--sgs-navy);
  padding: 64px 0;
}

.sgs-services__heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
}

.sgs-services__sub {
  font-size: 15px;
  color: rgba(255,255,255,0.65);
}

.sgs-services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .sgs-services__grid { grid-template-columns: repeat(4, 1fr); }
}

.sgs-svc {
  text-align: center;
}

.sgs-svc__icon {
  width: 60px;
  height: 60px;
  background: rgba(255,255,255,0.08);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  border: 2px solid rgba(201,162,39,0.35);
  transition: background var(--sgs-dur), border-color var(--sgs-dur);
}

.sgs-svc:hover .sgs-svc__icon {
  background: rgba(201,162,39,0.15);
  border-color: var(--sgs-gold);
}

.sgs-svc__icon i {
  font-size: 1.5rem; color: var(--sgs-gold);
}

.sgs-svc__label {
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
}

/* SLA table inside services strip */
.sgs-sla {
  margin: 28px auto 20px;
  max-width: 820px;
  padding: 20px 24px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-left: 3px solid var(--sgs-gold);
  border-radius: 0 var(--sgs-radius) var(--sgs-radius) 0;
}

.sgs-sla__eyebrow {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sgs-gold);
  margin-bottom: 10px;
}

.sgs-sla__body {
  font-size: 13.5px;
  color: rgba(255,255,255,0.82);
  line-height: 1.7;
  margin: 0 0 12px;
}

.sgs-sla__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}

.sgs-sla__table thead tr {
  background: rgba(201,162,39,0.12);
}

.sgs-sla__table th {
  text-align: left;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(201,162,39,0.3);
  font-weight: 700;
  color: var(--sgs-gold);
}

.sgs-sla__table td {
  padding: 7px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

/* ── INDUSTRIES ─────────────────────────────────────────────── */
.sgs-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.sgs-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--sgs-surface);
  border: 1.5px solid var(--sgs-border);
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--sgs-navy);
  transition: border-color var(--sgs-dur), background var(--sgs-dur);
}

.sgs-chip:hover {
  border-color: var(--sgs-teal);
  background: rgba(14,162,189,0.05);
}

.sgs-chip i {
  font-size: 14px; color: var(--sgs-teal);
}

/* ── SUCCESS STORY ──────────────────────────────────────────── */
.sgs-success-story {
  margin-top: 2.5rem;
  max-width: 820px;
  margin-inline: auto;
  background: var(--sgs-tint);
  border-left: 4px solid var(--sgs-teal);
  border-radius: 0 var(--sgs-radius, 8px) var(--sgs-radius, 8px) 0;
  padding: 1.25rem 1.75rem;
}

.sgs-success-story__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--sgs-navy);
  margin: 0 0 0.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
}

.sgs-success-story__notice {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--sgs-muted);
  font-style: italic;
}

.sgs-success-story__body {
  font-size: 0.9375rem;
  line-height: 1.75;
  color: var(--sgs-body);
  margin: 0;
}

/* ── RELATED RESOURCES ──────────────────────────────────────── */
.sgs-links {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 768px) {
  .sgs-links { grid-template-columns: 1fr 1fr; }
}

.sgs-links li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-radius: var(--sgs-radius);
  font-size: 14px;
  font-weight: 500;
  color: var(--sgs-navy);
  text-decoration: none;
  transition: border-color var(--sgs-dur), background var(--sgs-dur);
}

.sgs-links li a:hover {
  border-color: var(--sgs-teal);
  background: rgba(14,162,189,0.04);
  color: var(--sgs-navy);
  text-decoration: none;
}

.sgs-links li a i {
  font-size: 15px; color: var(--sgs-teal); flex-shrink: 0;
}

.sgs-links li a .sgs-ext {
  margin-left: auto; font-size: 12px; color: var(--sgs-muted);
}

/* ── RFQ FORM ───────────────────────────────────────────────── */
.sgs-rfq-section {
  background: linear-gradient(135deg, #F0F4FF 0%, #EAF7FA 100%);
  border-top: 3px solid var(--sgs-teal);
  padding: 80px 0;
}

.sgs-rfq-wrap {
  max-width: 760px; margin-inline: auto;
}

.sgs-rfq-heading {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 800;
  color: var(--sgs-navy);
  margin: 0 0 8px;
}

.sgs-rfq-sub {
  font-size: 15px; color: var(--sgs-muted); margin: 0 0 36px;
}

.sgs-rfq-form {
  background: var(--sgs-surface);
  border: 1px solid var(--sgs-border);
  border-radius: var(--sgs-radius-lg);
  padding: 40px 40px 36px;
  box-shadow: var(--kt-shadow-card, 0 4px 20px rgba(13,27,76,0.06));
}

@media (max-width: 600px) {
  .sgs-rfq-form { padding: 28px 20px; }
}

.sgs-rfq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 600px) {
  .sgs-rfq-row { grid-template-columns: 1fr; }
}

.sgs-rfq-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.sgs-rfq-group label {
  font-size: 13px; font-weight: 600; color: var(--sgs-navy);
}

.sgs-rfq-group input,
.sgs-rfq-group select,
.sgs-rfq-group textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--sgs-border);
  border-radius: var(--sgs-radius);
  font-size: 14px;
  color: var(--sgs-text);
  background: #fff;
  transition: border-color var(--sgs-dur);
  font-family: inherit;
}

.sgs-rfq-group input:focus,
.sgs-rfq-group select:focus,
.sgs-rfq-group textarea:focus {
  outline: none;
  border-color: var(--sgs-teal);
  box-shadow: 0 0 0 3px rgba(14,162,189,0.12);
}

.sgs-rfq-group textarea {
  resize: vertical; min-height: 96px;
}

.sgs-rfq-selects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 600px) {
  .sgs-rfq-selects { grid-template-columns: 1fr; }
}

.sgs-rfq-submit {
  width: 100%;
  padding: 14px;
  background: var(--sgs-navy);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  border: none;
  border-radius: var(--sgs-radius);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background var(--sgs-dur), transform var(--sgs-dur);
  font-family: inherit;
  margin-top: 8px;
}

.sgs-rfq-submit:hover {
  background: var(--sgs-teal); transform: translateY(-1px);
}

.sgs-rfq-submit:disabled {
  opacity: 0.6; cursor: not-allowed;
}

.sgs-rfq-thanks {
  display: none;
  text-align: center;
  padding: 48px 24px;
}

.sgs-rfq-thanks .sgs-thanks-icon {
  font-size: 52px; color: var(--sgs-teal); margin-bottom: 16px;
}

.sgs-rfq-thanks h3 {
  font-family: "Montserrat", sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--sgs-navy);
  margin: 0 0 10px;
}

.sgs-rfq-thanks p {
  font-size: 15px; color: var(--sgs-muted); margin: 0;
}

.sgs-privacy-note {
  font-size: 12px; color: var(--sgs-muted); margin-top: 12px; text-align: center;
}

/* ── REGULATORY DISCLAIMER ──────────────────────────────────── */
.sgs-disclaimer {
  padding: 40px 0 48px;
  background: var(--sgs-alt);
}

.sgs-disclaimer__box {
  border: 1px solid var(--sgs-border);
  border-left: 4px solid var(--sgs-gold);
  border-radius: var(--sgs-radius);
  padding: 22px 26px;
  max-width: 900px;
}

.sgs-disclaimer__eyebrow {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sgs-muted);
  margin-bottom: 8px;
}

.sgs-disclaimer__body {
  font-size: 13px;
  line-height: 1.8;
  color: var(--sgs-muted);
  margin: 0;
}

.sgs-disclaimer__body strong {
  color: var(--sgs-body);
}

/* ── .kt-sol-recommend ────────────────────────────────────────────────────── */
.kt-sol-recommend {
  background: var(--kt-surface-alt, #F7F9FC);
  border-top: 1px solid var(--kt-border-soft, #ECEFF4);
  border-bottom: 1px solid var(--kt-border-soft, #ECEFF4);
  padding: 10px 0;          /* top variant: narrower to reduce visual weight */
}

/* Cross-sell (bottom) instance gets slightly more breathing room */
.kt-sol-recommend--crosssell {
  padding: 16px 0;
  border-top: 2px solid var(--kt-border-soft, #ECEFF4);
  background: var(--kt-surface-alt, #F7F9FC);
}

.kt-sol-recommend__inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
  overflow: hidden;
}

.kt-sol-recommend__label {
  font-family: "Montserrat", system-ui, sans-serif;
  /* top: 10px → lighter footprint; crosssell: 11px */
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--kt-gold, #C9A227);
  white-space: nowrap;
  flex-shrink: 0;
}

.kt-sol-recommend--crosssell .kt-sol-recommend__label {
  font-size: 11px;
}

.kt-sol-recommend__divider {
  width: 1px;
  height: 18px;
  background: var(--kt-border, #E5E9F0);
  flex-shrink: 0;
}

.kt-sol-recommend__scroll {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;     /* Firefox */
  -ms-overflow-style: none;  /* IE/Edge */
  padding-bottom: 2px;       /* prevent clip on focus ring */
  flex: 1;
  min-width: 0;
  /* No scroll-snap on top bar — intent-driven personas should not feel
  momentum snapping when they accidentally brush the bar */
}

.kt-sol-recommend--crosssell .kt-sol-recommend__scroll {
  gap: 8px;
}

.kt-sol-recommend__scroll::-webkit-scrollbar {
  display: none;
}

/* Chips: top bar uses slightly smaller, lighter style */
.kt-sol-recommend__chip {
  display: inline-flex;
  align-items: center;
  /* top: reduced padding/font-size → less visual weight */
  padding: 4px 11px;
  background: var(--kt-surface, #FFFFFF);
  border: 1px solid var(--kt-border, #E5E9F0);
  border-radius: 100px;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--kt-navy, #0D1B4C);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: border-color var(--kt-dur, 220ms) var(--kt-ease, ease),
  background var(--kt-dur, 220ms) var(--kt-ease, ease),
  color var(--kt-dur, 220ms) var(--kt-ease, ease),
  box-shadow var(--kt-dur, 220ms) var(--kt-ease, ease);
}

/* Cross-sell chips: restore fuller size for a more prominent cross-sell */
.kt-sol-recommend--crosssell .kt-sol-recommend__chip {
  padding: 6px 14px;
  font-size: 12.5px;
  border-width: 1.5px;
}

.kt-sol-recommend__chip:hover,
.kt-sol-recommend__chip:focus-visible {
  border-color: var(--kt-teal, #0ea2bd);
  background: var(--kt-teal-tint, #EEF6F8);
  color: var(--kt-navy, #0D1B4C);
  text-decoration: none;
  outline: none;
  box-shadow: var(--kt-ring-focus, 0 0 0 3px rgba(14, 162, 189, 0.25));
}

/* Scroll-affordance wrapper: fade + arrow indicator */
.kt-sol-recommend__fade-r {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
}

/* Right-fade gradient to hint at overflow content */
.kt-sol-recommend__fade-r::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  background: linear-gradient(to right, transparent, var(--kt-surface-alt, #F7F9FC));
  pointer-events: none;
  z-index: 1;
}

.kt-sol-recommend--crosssell .kt-sol-recommend__fade-r::after {
  background: linear-gradient(to right, transparent, var(--kt-surface-alt, #F7F9FC));
}

/* Right-arrow scroll affordance indicator.
   Hidden via JS once the user has scrolled (see inline script below).
   Shown only when the scroll area actually overflows. */
.kt-sol-recommend__scroll-hint {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: var(--kt-surface, #fff);
  border: 1px solid var(--kt-border, #E5E9F0);
  border-radius: 50%;
  color: var(--kt-teal, #0ea2bd);
  font-size: 11px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms ease;
}

/* Show the arrow only when the scroll container overflows */
.kt-sol-recommend__fade-r[data-overflows="true"] .kt-sol-recommend__scroll-hint {
  opacity: 1;
}

/* Hide arrow once the user has scrolled to the end */
.kt-sol-recommend__fade-r[data-at-end="true"] .kt-sol-recommend__scroll-hint {
  opacity: 0;
}

@media (max-width: 480px) {
  .kt-sol-recommend__label { display: none; }
  .kt-sol-recommend__divider { display: none; }
}

/* ── .kt-sol-workflow ─────────────────────────────────────────────────────── */
.kt-sol-workflow {
  background: var(--kt-navy, #0D1B4C);
  padding: 72px 0 80px;
  position: relative;
  overflow: hidden;
}

/* Subtle texture overlay */
.kt-sol-workflow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(201, 162, 39, 0.06) 0%, transparent 65%);
  pointer-events: none;
}

.kt-sol-workflow__container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
  position: relative;
  z-index: 1;
}

/* Section header */
.kt-sol-workflow__header {
  text-align: center;
  margin-bottom: 56px;
}

.kt-sol-workflow__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kt-gold, #C9A227);
  display: block;
  margin-bottom: 10px;
}

.kt-sol-workflow__title {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: clamp(20px, 2.6vw, 28px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: #fff;
  margin: 0 0 10px;
}

.kt-sol-workflow__subtitle {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
  max-width: 52ch;
  margin-inline: auto;
  line-height: 1.7;
}

/* Stepper track */
.kt-sol-workflow__track {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
}

/* Connector line — runs through the center of the number badges */
.kt-sol-workflow__track::before {
  content: "";
  position: absolute;
  top: 36px; /* half badge height (72px / 2) */
  left: calc(100% / 10);   /* starts at first badge center */
  right: calc(100% / 10);  /* ends at last badge center */
  height: 1px;
  background: linear-gradient(
  to right,
  transparent 0%,
  rgba(201, 162, 39, 0.35) 8%,
  rgba(201, 162, 39, 0.35) 92%,
  transparent 100%
  );
  pointer-events: none;
  z-index: 0;
}

/* Individual step */
.kt-sol-workflow__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 12px;
  position: relative;
  z-index: 1;
}

/* Circular badge: number + icon stacked */
.kt-sol-workflow__badge {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(201, 162, 39, 0.45);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  margin-bottom: 20px;
  transition: background var(--kt-dur, 220ms) var(--kt-ease, ease),
  border-color var(--kt-dur, 220ms) var(--kt-ease, ease),
  transform var(--kt-dur, 220ms) var(--kt-ease, ease);
  flex-shrink: 0;
}

.kt-sol-workflow__step:hover .kt-sol-workflow__badge {
  background: rgba(201, 162, 39, 0.14);
  border-color: var(--kt-gold, #C9A227);
  transform: translateY(-3px);
}

.kt-sol-workflow__num {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: rgba(201, 162, 39, 0.75);
  line-height: 1;
}

.kt-sol-workflow__icon {
  font-size: 1.6rem; /* 2rem spec, tightened inside 72px badge */
  color: var(--kt-gold, #C9A227);
  line-height: 1;
}

/* Labels and description */
.kt-sol-workflow__label {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px;
  line-height: 1.3;
}

.kt-sol-workflow__desc {
  font-family: "Open Sans", sans-serif;
  font-size: 12.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.58);
  margin: 0;
  max-width: 18ch;
  margin-inline: auto;
}

/* CTA row below the stepper */
.kt-sol-workflow__cta-row {
  margin-top: 52px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.kt-sol-workflow__btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 28px;
  background: var(--kt-gold, #C9A227);
  color: var(--kt-navy, #0D1B4C) !important;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--kt-radius-md, 8px);
  transition: transform var(--kt-dur, 220ms) var(--kt-ease, ease),
  box-shadow var(--kt-dur, 220ms) var(--kt-ease, ease);
}

.kt-sol-workflow__btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201, 162, 39, 0.38);
  color: var(--kt-navy, #0D1B4C) !important;
  text-decoration: none;
}

.kt-sol-workflow__btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: transparent;
  color: #fff !important;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: var(--kt-radius-md, 8px);
  transition: border-color var(--kt-dur, 220ms) var(--kt-ease, ease),
  background var(--kt-dur, 220ms) var(--kt-ease, ease);
}

.kt-sol-workflow__btn-outline:hover {
  border-color: var(--kt-gold, #C9A227);
  background: rgba(201, 162, 39, 0.08);
  text-decoration: none;
  color: #fff !important;
}

/* ── Responsive: tablet (3+2) ─────────────────────────────── */
@media (max-width: 1023px) and (min-width: 600px) {
  .kt-sol-workflow__track {
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 0;
  }
  .kt-sol-workflow__track::before { display: none; }
}

/* ── Responsive: mobile (1-col) ───────────────────────────── */
@media (max-width: 599px) {
  .kt-sol-workflow {
  padding: 56px 0 64px;
  }
  .kt-sol-workflow__track {
  grid-template-columns: 1fr;
  gap: 0;
  }
  .kt-sol-workflow__track::before { display: none; }
  .kt-sol-workflow__step {
  flex-direction: row;
  text-align: left;
  gap: 20px;
  padding: 0 0 28px;
  align-items: flex-start;
  }
  .kt-sol-workflow__badge {
  margin-bottom: 0;
  flex-shrink: 0;
  }
  .kt-sol-workflow__label {
  margin-bottom: 4px;
  }
  .kt-sol-workflow__desc {
  max-width: none;
  margin-inline: 0;
  }
  /* Vertical connector line on mobile */
  .kt-sol-workflow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: calc(clamp(16px, 4vw, 40px) + 35px); /* badge center */
  top: 72px;
  bottom: 0;
  width: 1px;
  background: rgba(201, 162, 39, 0.28);
  }
}



/* section header polish — more visual definition */
.sol-section-tag { margin-bottom: 1rem; }
.sol-section-desc { max-width: 720px; margin: 1rem auto 0; font-size: 0.95rem; color: var(--kt-slate, #4a5568); }


/* ============================================================
   APPLICATIONS — Dark Premium variant (Gallery Style 05)
   SpaceX / Apple Pro Display look: navy section, dark cards,
   teal accent rule + cyan-glow hover. Trigger by adding the
   .sol-applications--dark modifier class on the <section>.
   ============================================================ */

.sol-applications--dark {
  background: var(--kt-navy) !important;
  color: #fff;
  padding: 5rem 0;
  --sol-dark-navy-2: #142152;
  --sol-dark-navy-3: #1a2860;
}

.sol-applications--dark .sol-section-tag {
  color: var(--kt-teal, #0ea2bd);
  background: rgba(14, 162, 189, 0.14);
  border: 1px solid rgba(14, 162, 189, 0.32);
}

.sol-applications--dark .sol-section-title { color: #fff; }
.sol-applications--dark .sol-section-title::after { background: var(--kt-teal, #0ea2bd); }
.sol-applications--dark .sol-section-desc { color: rgba(255,255,255,0.7); }

.sol-applications--dark .sol-app__card {
  background: var(--sol-dark-navy-2);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  box-shadow: none;
  overflow: hidden;
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}

.sol-applications--dark .sol-app__card:hover {
  border-color: var(--kt-teal, #0ea2bd);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(14, 162, 189, 0.32);
}

.sol-applications--dark .sol-app__img-wrap {
  background: linear-gradient(180deg, var(--sol-dark-navy-3), var(--sol-dark-navy-2));
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow: hidden;
  position: relative;
}

.sol-applications--dark .sol-app__img {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  width: 100%;
  height: 100%;
  filter: brightness(1.02);
}

.sol-applications--dark .sol-app__body { padding: 1.25rem 1.5rem 1.5rem; }

.sol-applications--dark .sol-app__icon {
  width: 40px;
  height: 40px;
  background: rgba(14, 162, 189, 0.14);
  color: var(--kt-teal, #0ea2bd);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.875rem;
}

.sol-applications--dark .sol-app__icon i { color: var(--kt-teal, #0ea2bd); font-size: 1.125rem; }
.sol-applications--dark .sol-app__domain-icon { filter: brightness(0) invert(1); opacity: 0.85; }

.sol-applications--dark .sol-app__name {
  position: relative;
  color: #fff;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  margin: 0 0 0.5rem;
}

.sol-applications--dark .sol-app__name::before {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--kt-teal, #0ea2bd);
  margin-bottom: 0.75rem;
}

.sol-applications--dark .sol-app__desc { color: rgba(255,255,255,0.65); font-size: 0.85rem; line-height: 1.55; margin: 0 0 1rem; }

.sol-applications--dark .sol-app__link {
  color: var(--kt-teal, #0ea2bd);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.sol-applications--dark .sol-app__link:hover { color: #fff; }


/* Dark Premium — 4 columns on desktop, collapse on smaller viewports */
.sol-applications--dark .sol-app__grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

@media (max-width: 1100px) {
  .sol-applications--dark .sol-app__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
  .sol-applications--dark .sol-app__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .sol-applications--dark .sol-app__grid { grid-template-columns: 1fr; }
}

.sol-applications--dark .sol-app__img-wrap { height: 170px; }


/* ============================================================
   CASE STUDIES — Dark Premium variant (matches Gallery Style 05)
   Navy section, dark-2 cards, gold left-border kept as a case-study
   identity element, teal CTA. Trigger with .sol-cases--dark.
   ============================================================ */

.sol-cases--dark {
  background: var(--kt-navy) !important;
  color: #fff;
  --sol-dark-navy-2: #142152;
  --sol-dark-navy-3: #1a2860;
}

.sol-cases--dark .sol-section-tag {
  color: var(--kt-gold, #C9A227);
  background: rgba(201, 162, 39, 0.14);
  border: 1px solid rgba(201, 162, 39, 0.32);
}

.sol-cases--dark .sol-section-title { color: #fff; }
.sol-cases--dark .sol-section-title::after { background: var(--kt-gold); }
.sol-cases--dark .sol-section-desc { color: rgba(255, 255, 255, 0.7); }

.sol-cases--dark .sol-case__card {
  background: var(--sol-dark-navy-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 4px solid var(--kt-gold);
  border-radius: 0 8px 8px 0;
  box-shadow: none;
  transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}

.sol-cases--dark .sol-case__card:hover {
  border-color: rgba(255, 255, 255, 0.18);
  border-left-color: var(--kt-gold);
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.32);
}

.sol-cases--dark .sol-case__title { color: #fff; }
.sol-cases--dark .sol-case__narrative { color: rgba(255, 255, 255, 0.7); }

.sol-cases--dark .sol-case__card .sol-app__link {
  color: var(--kt-teal, #0ea2bd);
}
.sol-cases--dark .sol-case__card .sol-app__link:hover { color: #fff; }
.sol-cases--dark .sol-case__source { color: rgba(255, 255, 255, 0.55); }


/* ── recommend-banner — current-page indicator ───────── */
/* The chip representing the current solution page renders as a dark
   navy pill with white text — a "you are here" anchor. Keeps the
   <a> tag so screen readers + middle-click still work, but the
   :hover state is suppressed so it never feels like an off-page link. */
.kt-sol-recommend__chip.is-current {
  background: var(--kt-navy, #0D1B4C);
  color: #fff;
  border-color: var(--kt-navy, #0D1B4C);
  font-weight: 600;
  cursor: default;
  position: relative;
  z-index: 1;
}
.kt-sol-recommend__chip.is-current:hover,
.kt-sol-recommend__chip.is-current:focus-visible {
  background: var(--kt-navy, #0D1B4C);
  color: #fff;
  border-color: var(--kt-navy, #0D1B4C);
  /* Subtle gold-ring focus instead of teal, so the current pill
     remains visually distinct from hoverable siblings */
  box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.32);
}
.kt-sol-recommend__chip.is-current .bi { font-size: 0.85em; margin-right: 2px; opacity: 0.9; }
.kt-sol-recommend--crosssell .kt-sol-recommend__chip.is-current {
  background: var(--kt-navy, #0D1B4C);
  color: #fff;
}

/* ============================================================
   RESEARCH-AND-EDUCATION — sol-* canonical aliases + utilities
   ============================================================ */

/* Academic bar highlight text (replaces inline color) */
.sol-academic-highlight {
  color: var(--s-teal, var(--kt-teal, #0ea2bd));
}

/* Academic bar program link (replaces inline color+weight) */
.sol-academic-link {
  color: var(--s-teal, var(--kt-teal, #0ea2bd));
  text-decoration: none;
  font-weight: 600;
}
.sol-academic-link:hover {
  text-decoration: underline;
  color: var(--s-teal-d, var(--kt-teal-dark, #0189a1));
}

/* Academic bar CTA button override for flex-shrink */
.sol-academic-cta {
  flex-shrink: 0;
}

/* Instruments catalog CTA row */
.sol-inst__catalog-cta {
  margin-top: 32px;
  text-align: center;
}

/* RFQ honeypot — visually hidden from humans */
.sol-rfq__honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
  pointer-events: none;
}

/* ── sol-* aliases for page-specific blocks (R&E page) ──── */
/* These mirror the s-* rules above so the EJS can use sol-* class names */
.sol-academic-bar        { background: var(--s-alt); border-top: 1px solid var(--s-bsoft); border-bottom: 1px solid var(--s-bsoft); padding: 28px 0 32px; }
.sol-academic-inner      { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; justify-content: space-between; }
.sol-academic-copy       { flex: 1; min-width: 280px; }
.sol-academic-copy h3    { font-family: "Montserrat", system-ui, sans-serif; font-size: 15.5px; font-weight: 700; color: var(--s-navy); margin: 0 0 6px; }
.sol-academic-copy p     { font-size: 13px; color: var(--s-slate); line-height: 1.7; margin: 0 0 10px; }
.sol-academic-checklist  { background: rgba(14,162,189,0.05); border: 1px solid rgba(14,162,189,0.18); border-radius: var(--s-r-md); padding: 12px 16px; }
.sol-academic-checklist p { font-size: 11.5px; font-weight: 700; color: var(--s-teal); text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 6px; }
.sol-academic-checklist ul { font-size: 12.5px; color: var(--s-slate); line-height: 1.8; margin: 0; padding-left: 18px; }
.sol-academic-checklist ul li.disqualified { color: var(--kt-error); }
.sol-academic-note       { font-size: 11.5px; color: var(--s-slate); margin: 6px 0 0; }

.sol-story-block         { margin: 28px auto 0; padding: 20px 26px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-left: 4px solid var(--s-gold); border-radius: 0 var(--s-r-md) var(--s-r-md) 0; max-width: 820px; }
.sol-story-meta          { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.sol-story-tag           { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--s-gold); }
.sol-story-illustrative  { font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; background: #f0ad4e; color: #1a1f24; padding: 2px 8px; border-radius: 4px; }
.sol-story-disclaimer    { font-size: 11px; color: rgba(255,255,255,0.42); font-style: italic; margin: 0 0 8px; }
.sol-story-text          { font-size: 13.5px; color: rgba(255,255,255,0.82); line-height: 1.75; margin: 0; }

.sol-cal-block           { margin: 40px auto 0; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-left: 3px solid var(--s-gold); border-radius: var(--s-r-md); padding: 26px 30px; max-width: 820px; }
.sol-cal-inner           { display: flex; align-items: flex-start; gap: 18px; flex-wrap: wrap; }
.sol-cal-inner-icon      { flex-shrink: 0; }
.sol-cal-inner-icon i    { font-size: 34px; color: var(--s-gold); }
.sol-cal-content         { flex: 1; min-width: 240px; }
.sol-cal-content h3      { font-family: "Montserrat", system-ui, sans-serif; font-size: 16px; font-weight: 700; color: #fff; margin: 0 0 10px; }
.sol-cal-content p       { font-size: 13px; line-height: 1.75; color: rgba(255,255,255,0.77); margin: 0 0 10px; }
.sol-cal-content ul      { font-size: 12.5px; color: rgba(255,255,255,0.7); line-height: 1.8; margin: 0 0 12px; padding-left: 18px; }
.sol-cal-table           { width: 100%; border-collapse: collapse; font-size: 12.5px; color: rgba(255,255,255,0.77); margin-bottom: 12px; }
.sol-cal-table thead tr  { border-bottom: 1px solid rgba(255,255,255,0.14); }
.sol-cal-table th        { text-align: left; padding: 5px 10px 5px 0; font-weight: 700; color: var(--s-gold); white-space: nowrap; }
.sol-cal-table td        { padding: 6px 10px 6px 0; border-bottom: 1px solid rgba(255,255,255,0.07); }
.sol-cal-table tr:last-child td { border-bottom: none; }
.sol-cal-cta             { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--s-gold); text-decoration: none; transition: gap var(--s-dur) var(--s-ease); }
.sol-cal-cta:hover       { gap: 10px; text-decoration: none; color: var(--s-gold); }

.sol-related-grid        { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 28px; }
@media (min-width: 768px) { .sol-related-grid { grid-template-columns: repeat(3, 1fr); } }
.sol-related-card        { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; background: var(--s-surface); border: 1.5px solid var(--s-border); border-radius: var(--s-r-md); text-decoration: none; color: inherit; transition: border-color var(--s-dur) var(--s-ease), box-shadow var(--s-dur) var(--s-ease); }
.sol-related-card:hover  { border-color: var(--s-teal); box-shadow: var(--kt-shadow-card, 0 4px 16px rgba(13,27,76,0.08)); text-decoration: none; color: inherit; }
.sol-related-card i      { font-size: 1.5rem; color: var(--s-teal); flex-shrink: 0; margin-top: 2px; }
.sol-related-card-title  { font-family: "Montserrat", system-ui, sans-serif; font-size: 14px; font-weight: 700; color: var(--s-navy); margin: 0 0 5px; }
.sol-related-card-desc   { font-size: 12.5px; line-height: 1.6; color: var(--s-slate); margin: 0; }
