:root {
  --navy: #0a0c2e;
  --ocean: #0e4d6e;
  --cyan: #0d9e9e;
  --sage: #3dbb8e;
  --lime: #8fd16a;
  --ink: #1e293b;
  --muted: #94a3b8;
  --line: #e2e8f0;
  --surface: #f8fafc;
  --surface-2: #e2e8f0;
  --white: #f8fafc;
  --shadow: 0 18px 48px rgba(10, 12, 46, 0.12);
  --radius: 8px;
  --max: 1400px;

  /* Palette-sheet aliases — same 10 tokens, named to match the brand reference sheet */
  --color-spectrum-1: var(--navy);   /* Deep Midnight Navy #0a0c2e */
  --color-spectrum-2: var(--ocean);  /* Ocean Teal-Blue    #0e4d6e */
  --color-spectrum-3: var(--cyan);   /* Vivid Cyan-Teal    #0d9e9e */
  --color-spectrum-4: var(--sage);   /* Sage Sea Green     #3dbb8e */
  --color-spectrum-5: var(--lime);   /* Fresh Lime Green   #8fd16a */
  --color-surface-0: var(--surface); /* Canvas White */
  --color-surface-1: var(--surface-2); /* Soft Border */
  --color-surface-2: var(--muted);   /* Muted Text */
  --color-surface-3: var(--ink);     /* Dark Body */
  --color-surface-4: #0f172a;        /* Midnight Slate — new, matches reference sheet */
  --slate: #0f172a;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "Inter", "DM Sans", Arial, sans-serif;
  color: var(--ink);
  background: var(--white);
  letter-spacing: 0;
}

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

a {
  color: inherit;
}

a,
button,
input,
select,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 3px solid rgba(13, 158, 158, 0.45);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -5rem;
  z-index: 1000;
  background: var(--navy);
  color: var(--white);
  padding: 0.75rem 1rem;
  border-radius: var(--radius);
}

.skip-link:focus {
  top: 1rem;
}

.site-header {
  position: static;
  z-index: 50;
  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
}

.nav-shell {
  max-width: var(--max);
  margin: 0 auto;
  min-height: 78px;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}

.brand img {
  width: 174px;
  height: auto;
}

.primary-nav {
  display: flex;
  justify-content: center;
  gap: 1.35rem;
}

.primary-nav a,
.nav-cta,
.text-link {
  text-decoration: none;
  font-weight: 700;
}

.primary-nav a {
  color: var(--ink);
  font-size: 0.95rem;
  padding: 0.6rem 0;
  border-bottom: 2px solid transparent;
}

.primary-nav a[aria-current="page"],
.primary-nav a:hover {
  color: var(--ocean);
  border-color: var(--cyan);
}

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: var(--radius);
  padding: 0.8rem 1.1rem;
  text-decoration: none;
  border: 1px solid transparent;
  font-weight: 800;
}
/* ===================================================
   AVEX Premium Get In Touch Button
=================================================== */

.nav-cta{
    position: relative;
    overflow: hidden;
    gap:16px;
    padding:14px 22px;
    border-radius:999px;
    transition:.35s ease;
}

.nav-cta:hover{
    transform:translateY(-2px);
    box-shadow:0 15px 35px rgba(14,77,110,.28);
}

.nav-cta-text{
    position:relative;
    display:block;
    height:22px;
    overflow:hidden;
}

.nav-cta-text span{
    display:block;
    transition:.4s cubic-bezier(.4,0,.2,1);
}

.text-hover{
    position:absolute;
    top:100%;
    left:0;
}

.nav-cta:hover .text-default{
    transform:translateY(-100%);
}

.nav-cta:hover .text-hover{
    transform:translateY(-100%);
}

.nav-cta-icon{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#ffffff;
    color:#0e4d6e;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.35s ease;
    flex-shrink:0;
}

.nav-cta:hover .nav-cta-icon{
    transform:rotate(-45deg);
}

.nav-cta,
.button.primary {
  background: var(--ocean);
  color: var(--white);
}

.button.secondary {
  background: var(--white);
  color: var(--navy);
  border-color: var(--line);
}

.button.light {
  background: var(--white);
  color: var(--navy);
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.nav-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px auto;
  background: var(--navy);
}

.section,
.subhero,
.detail-hero {
  padding: 5.5rem 0;
}

.section-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.hero {
  position: relative;
  min-height: 720px;
  color: var(--white);
  overflow: hidden;
}

.hero video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(4, 9, 24, 0.68);
}

.hero-content {
  position: relative;
  z-index: 2;
  min-height: 720px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 4rem;
  align-items: center;
}

.hero-copy h1,
.subhero h1,
.detail-hero h1 {
  margin: 0 0 1.2rem;
  font-size: 4rem;
  line-height: 1.02;
}

.hero-copy p,
.subhero p,
.detail-hero p {
  font-size: 1.15rem;
  line-height: 1.75;
  max-width: 700px;
}

.eyebrow {
  color: var(--cyan);
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 900;
  margin: 0 0 0.85rem;
  letter-spacing: 0;
}

.eyebrow.light {
  color: var(--lime);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2rem;
}

.hero-proof,
.media-panel,
.contact-form {
  background: rgba(10, 12, 46, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow);
}

.hero-proof {
  display: grid;
  gap: 1rem;
}

.hero-proof div,
.proof-grid div,
.metric-row div,
.side-facts,
.related-card,
.compact-card,
.service-card a,
.doc-section {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.hero-proof div {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.16);
  padding: 1rem;
}

.hero-proof strong {
  display: block;
  color: var(--lime);
  font-size: 1.7rem;
}

.hero-proof span {
  color: rgba(255, 255, 255, 0.78);
}

.logo-band {
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.logo-track ul {
  display: flex;
  align-items: center;
  gap: 3rem;
  width: max-content;
  margin: 0;
  padding: 1.4rem 0;
  list-style: none;
  animation: logo-marquee 42s linear infinite;
}

.logo-track img {
  width: 132px;
  max-height: 46px;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.62;
}

@keyframes logo-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.split,
.lifecycle-band,
.subhero,
.detail-hero {
  background: var(--surface);
}

.split-grid,
.subhero-grid,
.detail-hero-grid,
.feature-grid,
.content-grid,
.resource-grid,
.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
  gap: 3rem;
  align-items: center;
}

.services-command-hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(105deg, #0f172a 0%, #0a0c2e 42%, #0e4d6e 100%);
  color: var(--white);
}

.services-command-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 64px 64px;
  opacity: 0.45;
  pointer-events: none;
}

.services-command-hero::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 44%;
  background: #0e4d6e;
  opacity: 0.88;
  clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
}

.services-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(420px, 0.8fr);
  gap: 4rem;
  align-items: center;
}

.services-command-hero h1 {
  color: var(--white);
}

.services-command-hero p {
  color: rgba(255, 255, 255, 0.76);
}

.services-command-hero .button.primary {
  background: #3dbb8e;
  color: var(--white);
}

.services-command-hero .button.secondary {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--white);
}

.services-embedded-system {
  position: relative;
  min-height: 520px;
  padding: 1.25rem 0 1.25rem 2rem;
}

.system-route {
  position: absolute;
  inset: 1rem 0 1rem 1rem;
  background:
    linear-gradient(90deg, rgba(143, 209, 106, 0.22) 1px, transparent 1px),
    linear-gradient(180deg, rgba(143, 209, 106, 0.16) 1px, transparent 1px);
  background-size: 58px 58px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
}

.system-route::before,
.system-route::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 4%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, #8fd16a, #3dbb8e, transparent);
}

.system-route::before {
  top: 36%;
}

.system-route::after {
  top: 64%;
  opacity: 0.68;
}

.system-header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.system-header span,
.system-header strong {
  display: block;
}

.system-header span {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 900;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.system-header strong {
  color: var(--lime);
  font-size: 2.2rem;
  line-height: 1;
}

.system-flow,
.system-metrics {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0.85rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.system-flow {
  grid-template-columns: 1fr;
  margin-bottom: 1rem;
}

.system-flow li {
  position: relative;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 1rem;
  align-items: start;
  min-height: 94px;
  padding: 1rem;
  border-left: 4px solid #8fd16a;
  background: rgba(3, 45, 27, 0.55);
  backdrop-filter: blur(8px);
}

.system-flow span {
  color: var(--lime);
  font-weight: 900;
  font-size: 1rem;
}

.system-flow strong,
.system-flow small {
  display: block;
}

.system-flow strong {
  color: var(--white);
  font-size: 1.25rem;
  line-height: 1.1;
}

.system-flow small {
  margin-top: 0.32rem;
  color: rgba(255, 255, 255, 0.66);
  line-height: 1.35;
}

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

.system-metrics div {
  min-height: 96px;
  padding: 1rem;
  border: 1px solid rgba(143, 209, 106, 0.34);
  background: rgba(2, 63, 37, 0.68);
}

.system-metrics strong,
.system-metrics span {
  display: block;
}

.system-metrics strong {
  color: var(--lime);
  font-size: 1.75rem;
  line-height: 1;
}

.system-metrics span {
  margin-top: 0.45rem;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.35;
}

.feature-grid.reverse {
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1fr);
}

h2 {
  margin: 0 0 1rem;
  color: var(--navy);
  font-size: 2.35rem;
  line-height: 1.12;
}

h3 {
  margin: 0 0 0.75rem;
  color: var(--navy);
  font-size: 1.25rem;
  line-height: 1.25;
}

p {
  color: var(--muted);
  line-height: 1.7;
}

.section-heading {
  display: grid;
  gap: 0.45rem;
  align-items: start;
  max-width: 820px;
  margin: 0 auto 2.25rem 0;
}

.section-heading h2 {
  max-width: 780px;
  margin-bottom: 0;
}

.section-heading .eyebrow {
  margin-bottom: 0;
}

.section-heading > a {
  margin-top: 0.45rem;
}

.text-link {
  color: var(--ocean);
}

.metric-row,
.proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.metric-row div,
.proof-grid div {
  padding: 1.25rem;
}

.metric-row strong,
.proof-grid strong {
  display: block;
  color: var(--navy);
  font-size: 2rem;
  line-height: 1.1;
}

.metric-row span,
.proof-grid span {
  display: block;
  margin-top: 0.4rem;
  color: var(--muted);
  line-height: 1.5;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.service-card {
  display: flex;
}

.service-card a {
  width: 100%;
  padding: 1.2rem;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.service-card a:hover,
.service-card a:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--cyan);
}

.card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  margin-bottom: 1rem;
  padding: 0 0.55rem;
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--navy);
  font-weight: 900;
}

.card-icon.cyan { background: rgba(13, 158, 158, 0.13); color: var(--cyan); }
.card-icon.sage { background: rgba(61, 187, 142, 0.15); color: #168560; }
.card-icon.lime { background: rgba(143, 209, 106, 0.2); color: #437625; }
.card-icon.ocean { background: rgba(14, 77, 110, 0.13); color: var(--ocean); }

.service-card strong {
  display: block;
  margin-top: 1.2rem;
  color: var(--cyan);
  font-size: 1.55rem;
}

.service-card small {
  color: var(--muted);
}

.service-system {
  background:
    linear-gradient(180deg, #ffffff 0%, var(--surface) 100%);
}

.service-workbench {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}

.service-tabs {
  display: grid;
  gap: 0.7rem;
}

.service-tab {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 0.15rem 0.8rem;
  align-items: center;
  min-height: 84px;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  text-align: left;
  cursor: pointer;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease,
    box-shadow 180ms ease;
}

.service-tab .card-icon {
  grid-row: 1 / 3;
  margin: 0;
}

.service-tab strong,
.service-tab small {
  display: block;
}

.service-tab strong {
  color: var(--navy);
  line-height: 1.15;
}

.service-tab small {
  color: var(--muted);
  line-height: 1.35;
}

.service-tab.is-active,
.service-tab:hover {
  background: var(--navy);
  border-color: var(--navy);
  transform: translateX(4px);
  box-shadow: var(--shadow);
}

.service-tab.is-active strong,
.service-tab:hover strong {
  color: var(--white);
}

.service-tab.is-active small,
.service-tab:hover small {
  color: rgba(255, 255, 255, 0.72);
}

.service-stage {
  min-height: 540px;
}

.service-panel {
  display: none;
  min-height: 540px;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1fr);
  gap: 2rem;
  align-items: center;
  padding: 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, #0a0c2e 0%, #0a0c2e 48%, #0e4d6e 100%);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.service-panel.is-active {
  display: grid;
  animation: panel-rise 260ms ease both;
}

.service-panel h3 {
  color: var(--white);
  font-size: 1.9rem;
}

.service-panel p {
  color: rgba(255, 255, 255, 0.78);
}

.service-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1.25rem 0 1.55rem;
}

.service-chips span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.42rem 0.65rem;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.86);
  font-weight: 800;
}

.service-panel-visual {
  position: relative;
  min-height: 360px;
}

.service-panel-visual img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  border-radius: var(--radius);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.panel-signal {
  position: absolute;
  min-width: 138px;
  padding: 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  background: rgba(8, 16, 32, 0.86);
  color: var(--white);
  backdrop-filter: blur(12px);
}

.panel-signal.top {
  top: 1rem;
  left: 1rem;
}

.panel-signal.bottom {
  right: 1rem;
  bottom: 1rem;
}

.panel-signal strong,
.panel-signal span {
  display: block;
}

.panel-signal strong {
  color: var(--lime);
  font-size: 1.65rem;
  line-height: 1;
}

.panel-signal span {
  margin-top: 0.25rem;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 800;
}

@keyframes panel-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.motion-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
  gap: 3rem;
  align-items: center;
}

.motion-rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 2.2rem 0 0;
}

.motion-rail::before,
.motion-rail::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0.65rem;
  height: 6px;
  border-radius: 999px;
}

.motion-rail::before {
  background: #d9e8ed;
}

.motion-rail::after {
  width: 28%;
  right: auto;
  background: linear-gradient(90deg, var(--cyan), var(--lime));
  animation: rail-travel 5s ease-in-out infinite;
}

.motion-rail li {
  position: relative;
  min-height: 116px;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.motion-rail li::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: -1.8rem;
  width: 18px;
  height: 18px;
  border: 4px solid var(--white);
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 0 1px var(--line);
}

.motion-rail strong,
.motion-rail span {
  display: block;
}

.motion-rail strong {
  color: var(--navy);
  font-size: 1.1rem;
}

.motion-rail span {
  color: var(--muted);
  margin-top: 0.25rem;
}

@keyframes rail-travel {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(260%); }
}

.proof-tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.proof-tiles article {
  min-height: 145px;
  padding: 1.2rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.proof-tiles strong,
.proof-tiles span {
  display: block;
}

.proof-tiles strong {
  color: var(--navy);
  font-size: 1.25rem;
}

.proof-tiles span {
  margin-top: 0.6rem;
  color: var(--muted);
  line-height: 1.55;
}

.why-service-model,
.mapped-industries {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.mapped-industries {
  background: #69aef2;
}

.mapped-industries .section-heading h2,
.mapped-industries .section-heading .eyebrow {
  color: var(--white);
}

.why-service-model .section-heading {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.service-system .section-heading,
.mapped-industries .section-heading {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.service-industry-map {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.service-industry-card {
  min-height: 380px;
}

.industry-card-link {
  position: relative;
  display: flex;
  min-height: 380px;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  padding: 1.55rem;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: var(--radius);
  background: #f8fafc;
  color: var(--navy);
  text-decoration: none;
  box-shadow: 0 18px 42px rgba(6, 45, 87, 0.08);
  isolation: isolate;
  transition: border-color 260ms ease, box-shadow 260ms ease, transform 260ms ease;
}

.industry-card-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 0% 100%, rgba(255, 255, 255, 0.32), transparent 30%),
    linear-gradient(135deg, #e2e8f0 0%, #e2e8f0 58%, #e2e8f0 100%);
  clip-path: polygon(0 100%, 0 84%, 16% 100%);
  opacity: 0.72;
  transition: clip-path 560ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}

.industry-card-link::after {
  content: "";
  position: absolute;
  left: 2.55rem;
  bottom: 2.65rem;
  z-index: 4;
  width: 135%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--lime), rgba(31, 185, 175, 0.55), transparent);
  opacity: 0;
  transform: rotate(-43deg) scaleX(0);
  transform-origin: left center;
  transition: opacity 160ms ease, transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
}

.industry-card-link > :not(.industry-card-arrow) {
  position: relative;
  z-index: 2;
}

.industry-card-link:hover,
.industry-card-link:focus-visible {
  border-color: rgba(255, 255, 255, 0.86);
  box-shadow: 0 24px 54px rgba(6, 45, 87, 0.16);
  transform: translateY(-5px);
}

.industry-card-link:hover::before,
.industry-card-link:focus-visible::before {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 1;
  animation: industry-sheet-pull 620ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.industry-card-link:hover::after,
.industry-card-link:focus-visible::after {
  opacity: 1;
  transform: rotate(-43deg) scaleX(0.74);
}

.industry-card-kicker {
  display: block;
  max-width: 92%;
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  line-height: 1.35;
  text-transform: uppercase;
}

.service-industry-card h3 {
  max-width: 92%;
  margin: 0.65rem 0 0;
  color: #0b3467;
  font-size: 1.35rem;
  line-height: 1.15;
}

.industry-card-copy {
  max-height: 0;
  margin: 0;
  overflow: hidden;
  color: #173d66;
  font-size: 1rem;
  line-height: 1.55;
  opacity: 0;
  transform: translateY(8px);
  transition: max-height 240ms ease, margin 240ms ease, opacity 220ms ease, transform 220ms ease;
}

.industry-card-link:hover .industry-card-copy,
.industry-card-link:focus-visible .industry-card-copy {
  max-height: 160px;
  margin-top: 1.15rem;
  opacity: 1;
  transform: translateY(0);
}

.industry-card-services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition: max-height 240ms ease, margin 240ms ease, opacity 220ms ease, transform 220ms ease;
}

.industry-card-link:hover .industry-card-services,
.industry-card-link:focus-visible .industry-card-services {
  max-height: 120px;
  margin-top: 1rem;
  opacity: 1;
  transform: translateY(0);
}

.industry-card-services span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.32rem 0.55rem;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.66);
  color: var(--ocean);
  font-size: 0.82rem;
  font-weight: 900;
}

.industry-card-logo {
  width: 178px;
  margin-top: auto;
  transition: opacity 220ms ease, transform 220ms ease;
}

.industry-card-link:hover .industry-card-logo,
.industry-card-link:focus-visible .industry-card-logo {
  opacity: 0.14;
  transform: translateY(18px) scale(0.96);
}

.industry-card-arrow {
  position: absolute;
  left: 0.95rem;
  top: calc(100% - 4.15rem);
  z-index: 5;
  width: 3rem;
  height: 3rem;
  border: 1px solid rgba(143, 209, 106, 0.48);
  border-radius: 50%;
  background: rgba(7, 52, 103, 0.92);
  box-shadow: 0 14px 30px rgba(6, 45, 87, 0.16);
  opacity: 1;
  transform: scale(0.92);
  transition:
    box-shadow 260ms ease,
    background 260ms ease,
    border-color 260ms ease;
}

.industry-card-arrow::before,
.industry-card-arrow::after {
  content: "";
  position: absolute;
  background: #0b3467;
}

.industry-card-arrow::before {
  left: 0.82rem;
  top: 1.36rem;
  width: 1.38rem;
  height: 3px;
  transform: rotate(-45deg);
  transform-origin: right center;
  background: var(--lime);
}

.industry-card-arrow::after {
  right: 0.78rem;
  top: 0.72rem;
  width: 0.74rem;
  height: 0.74rem;
  border-top: 3px solid var(--lime);
  border-right: 3px solid var(--lime);
  background: transparent;
}

.industry-card-link:hover .industry-card-arrow,
.industry-card-link:focus-visible .industry-card-arrow {
  left: calc(100% - 4.1rem);
  top: 0.95rem;
  border-color: rgba(255, 255, 255, 0.74);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 36px rgba(6, 45, 87, 0.22);
  animation: industry-arrow-pull 620ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes industry-sheet-pull {
  0% {
    clip-path: polygon(0 100%, 0 84%, 16% 100%);
  }
  42% {
    clip-path: polygon(0 40%, 58% 100%, 0 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes industry-arrow-pull {
  0% {
    left: 0.95rem;
    top: calc(100% - 4.15rem);
    transform: scale(0.92);
  }
  42% {
    left: calc(50% - 1.5rem);
    top: calc(50% - 1.5rem);
    transform: scale(1.04);
  }
  100% {
    left: calc(100% - 4.1rem);
    top: 0.95rem;
    transform: scale(1);
  }
}

/* ---------- Homepage leadership: fixed profile with portrait-only rotation ---------- */

.fh-leadership .fh-leader-card {
  position: absolute;
  top: 120px;
  left: 0;
  right: 0;
  display: grid;
  width: min(1100px, calc(100% - 72px));
  height: 500px;
  grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
  overflow: visible;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 22px 70px rgba(10, 12, 46, 0.08);
  transform: none;
}

.fh-leadership [data-leadership-stage].is-scrolling-next {
  animation: fh-leader-scroll-next 760ms cubic-bezier(0.65, 0, 0.35, 1);
  will-change: transform, opacity;
}

.fh-leadership [data-leadership-stage].is-scrolling-previous {
  animation: fh-leader-scroll-previous 760ms cubic-bezier(0.65, 0, 0.35, 1);
  will-change: transform, opacity;
}

@keyframes fh-leader-scroll-next {
  0% { opacity: 1; transform: translateX(-50%); }
  44% { opacity: 0; transform: translateX(calc(-50% - 84px)); }
  45% { opacity: 0; transform: translateX(calc(-50% + 84px)); }
  100% { opacity: 1; transform: translateX(-50%); }
}

@keyframes fh-leader-scroll-previous {
  0% { opacity: 1; transform: translateX(-50%); }
  44% { opacity: 0; transform: translateX(calc(-50% + 84px)); }
  45% { opacity: 0; transform: translateX(calc(-50% - 84px)); }
  100% { opacity: 1; transform: translateX(-50%); }
}

.fh-leader-photo-stage {
  position: relative;
  z-index: 2;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border-radius: 8px 0 0 8px;
  outline: none;
  perspective: 1500px;
  cursor: pointer;
}

.fh-leader-photo-stage:focus-visible {
  box-shadow: 0 0 0 3px #0d9e9e;
}

.fh-leader-photo-turner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 780ms cubic-bezier(0.65, 0, 0.35, 1);
}

.fh-leader-photo-turner.is-details {
  tranSFORM;
}

.fh-leader-photo-face {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
  background: #0a0c2e;
  backface-visibility: hidden;
  transition: opacity 120ms linear 330ms;
}

.fh-leader-photo-back {
  display: grid;
  align-content: center;
  padding: 34px;
  color: #ffffff;
  opacity: 0;
  transform: none;
}

.fh-leader-photo-turner.is-details .fh-leader-photo-front {
  opacity: 0;
}

.fh-leader-photo-turner.is-details .fh-leader-photo-back {
  opacity: 1;
}

.fh-leader-photo-face > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
}

.fh-leader-photo-face::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 54%, rgba(4, 18, 14, 0.3));
  content: "";
  pointer-events: none;
}

.fh-leader-photo-back::after {
  display: none;
}

.fh-leader-photo-details {
  position: relative;
  z-index: 2;
}

.fh-leader-photo-details > p:first-child {
  margin: 0 0 12px;
  color: #8fd16a;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.figma-home .fh-leader-photo-details h3 {
  margin: 0;
  color: #ffffff;
  font-size: 31px;
  line-height: 37px;
}

.fh-leader-photo-details > p:not(:first-child) {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  line-height: 20px;
}

.fh-leader-photo-details dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.fh-leader-photo-details dl div {
  display: grid;
  gap: 5px;
}

.fh-leader-photo-details dt {
  color: rgba(255, 255, 255, 0.48);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.fh-leader-photo-details dd {
  margin: 0;
  color: #ffffff;
  font-size: 18px;
  font-weight: 750;
}

.fh-leader-photo-return {
  display: block;
  margin-top: 26px;
  color: #8fd16a;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.fh-leader-photo-face .fh-leader-number {
  z-index: 2;
}

.fh-leader-photo-face blockquote {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 20px;
  left: 16px;
  margin: 0;
  padding: 14px 16px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.94);
  color: #6b7f74;
  font-size: 11px;
  line-height: 18px;
}

.fh-leader-photo-face blockquote b {
  margin-right: 7px;
  color: #1a7a4a;
  font-size: 18px;
}

.fh-leader-copy-stack {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border-radius: 0 8px 8px 0;
  background: #0e4d6e;
}

.fh-leadership .fh-leader-copy {
  position: absolute;
  inset: 0;
  padding: 42px 52px 34px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 220ms ease, transform 280ms ease, visibility 0s linear 280ms;
}

.fh-leadership .fh-leader-copy.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  transition-delay: 70ms, 70ms, 0s;
}

.fh-leadership .fh-leader-bio {
  max-width: 64ch;
}

.fh-leadership .fh-leader-stats p {
  margin: 0;
}

.fh-leadership .fh-leadership-controls {
  position: absolute;
  top: 50%;
  right: -58px;
  bottom: auto;
  display: grid;
  justify-items: center;
  gap: 8px;
  transform: translateY(-50%);
}

.fh-leadership .fh-leadership-controls button {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 0;
  font-size: 21px;
}

@media (max-width: 980px) {
  .fh-leadership {
    height: auto;
    padding-bottom: 80px;
  }

  .fh-leadership [data-leadership-stage].is-scrolling-next {
    animation-name: fh-leader-scroll-next-compact;
  }

  .fh-leadership [data-leadership-stage].is-scrolling-previous {
    animation-name: fh-leader-scroll-previous-compact;
  }

  @keyframes fh-leader-scroll-next-compact {
    0% { opacity: 1; transform: translateX(0); }
    44% { opacity: 0; transform: translateX(-64px); }
    45% { opacity: 0; transform: translateX(64px); }
    100% { opacity: 1; transform: translateX(0); }
  }

  @keyframes fh-leader-scroll-previous-compact {
    0% { opacity: 1; transform: translateX(0); }
    44% { opacity: 0; transform: translateX(64px); }
    45% { opacity: 0; transform: translateX(-64px); }
    100% { opacity: 1; transform: translateX(0); }
  }

  .fh-leadership .fh-leader-card {
    position: relative;
    top: 90px;
    left: auto;
    width: min(700px, 100%);
    height: auto;
    margin: 56px auto 0;
    grid-template-columns: 1fr;
    transform: none;
  }
  .fh-leader-photo-stage {
    height: 520px;
    border-radius: 8px 8px 0 0;
  }
  .fh-leader-copy-stack {
    min-height: 480px;
    border-radius: 0 0 8px 8px;
  }
  .fh-leadership .fh-leadership-controls {
    top: 496px;
    right: 16px;
    transform: none;
  }
  .fh-leadership .fh-leadership-controls span {
    color: #ffffff;
  }
}

@media (max-width: 640px) {
  .fh-leader-photo-stage {
    height: 390px;
  }
  .fh-leader-copy-stack {
    min-height: 560px;
  }
  .fh-leadership .fh-leader-copy {
    padding: 34px 24px 38px;
  }
  .figma-home .fh-leader-copy h3 {
    font-size: 31px;
    line-height: 38px;
  }
  .fh-leader-strengths {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .fh-leader-stats {
    gap: 28px;
  }
  .fh-leader-stats strong {
    font-size: 20px;
  }
  .fh-leadership .fh-leadership-controls {
    top: 366px;
  }
}

@media (hover: none) {
  .industry-card-copy,
  .industry-card-services {
    max-height: none;
    opacity: 1;
    transform: none;
  }

  .industry-card-copy {
    margin-top: 1rem;
  }

  .industry-card-services {
    margin-top: 0.85rem;
  }

  .industry-card-logo {
    opacity: 0.18;
  }

  .industry-card-link::before {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    opacity: 1;
  }

  .industry-card-arrow {
    display: none;
  }
}

.service-industry-card p {
  margin-bottom: 0;
}

.feature-band,
.resource-strip {
  background: linear-gradient(180deg, var(--surface), #ffffff);
}

.feature-grid img,
.media-panel img,
.compact-card img,
.industry-panel img {
  width: 100%;
  border-radius: var(--radius);
  object-fit: cover;
}

.feature-grid img {
  max-height: 420px;
}

.metrology-image-panel {
  position: relative;
  min-height: 460px;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  background: #052a18;
  box-shadow: 0 32px 78px rgba(5, 21, 33, 0.18);
  isolation: isolate;
}

.metrology-image-panel img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: 48% 50%;
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.04);
  animation: metrology-photo-drift 9s ease-in-out infinite;
}

.metrology-image-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(143, 209, 106, 0.18) 1px, transparent 1px),
    linear-gradient(180deg, rgba(143, 209, 106, 0.1) 1px, transparent 1px);
  background-size: 54px 54px;
  mix-blend-mode: screen;
  opacity: 0.52;
}

.metrology-image-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(circle at 78% 22%, rgba(143, 209, 106, 0.28), transparent 24%),
    linear-gradient(120deg, rgba(5, 17, 32, 0.76) 0%, rgba(5, 17, 32, 0.38) 45%, rgba(0, 81, 43, 0.48) 100%);
}

.metrology-panel-door {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: 32%;
  pointer-events: none;
}

.metrology-panel-door.left {
  left: 0;
  background: linear-gradient(90deg, rgba(3, 45, 27, 0.92), rgba(3, 45, 27, 0.2));
  animation: metrology-door-left 6.5s ease-in-out infinite;
}

.metrology-panel-door.right {
  right: 0;
  background: linear-gradient(270deg, rgba(3, 45, 27, 0.9), rgba(3, 45, 27, 0.12));
  animation: metrology-door-right 6.5s ease-in-out infinite;
}

.metrology-scan-line {
  position: absolute;
  left: -15%;
  right: -15%;
  top: 45%;
  z-index: 4;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(143, 209, 106, 0.18), var(--lime), rgba(31, 185, 175, 0.76), transparent);
  box-shadow: 0 0 28px rgba(143, 209, 106, 0.42);
  animation: metrology-scan 4.8s ease-in-out infinite;
}

.metrology-readout {
  position: absolute;
  left: 1.1rem;
  bottom: 1.1rem;
  z-index: 5;
  max-width: 310px;
  padding: 1rem;
  border: 1px solid rgba(143, 209, 106, 0.32);
  border-left: 4px solid var(--lime);
  border-radius: var(--radius);
  background: rgba(5, 17, 32, 0.84);
  color: var(--white);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.22);
}

.metrology-readout span,
.metrology-readout strong,
.metrology-readout small {
  display: block;
}

.metrology-readout span {
  color: var(--lime);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.metrology-readout strong {
  margin-top: 0.25rem;
  font-size: 1.35rem;
  line-height: 1.15;
}

.metrology-readout small {
  margin-top: 0.45rem;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.95rem;
  line-height: 1.45;
}

.metrology-image-tags {
  position: absolute;
  right: 1rem;
  top: 1rem;
  z-index: 5;
  display: grid;
  gap: 0.5rem;
}

.metrology-image-tags span {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 0.38rem 0.62rem;
  border: 1px solid rgba(143, 209, 106, 0.28);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.14);
  color: var(--white);
  font-weight: 900;
  backdrop-filter: blur(10px);
}

@keyframes metrology-photo-drift {
  0%, 100% { transform: scale(1.04) translateX(0); }
  50% { transform: scale(1.08) translateX(-10px); }
}

@keyframes metrology-door-left {
  0%, 100% { transform: translateX(0); opacity: 0.72; }
  32%, 78% { transform: translateX(-64%); opacity: 0.34; }
}

@keyframes metrology-door-right {
  0%, 100% { transform: translateX(0); opacity: 0.72; }
  32%, 78% { transform: translateX(64%); opacity: 0.34; }
}

@keyframes metrology-scan {
  0%, 100% { transform: translateY(-92px); opacity: 0.35; }
  50% { transform: translateY(96px); opacity: 1; }
}

.signal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 1.3rem 0 1.6rem;
}

.signal-grid span {
  min-height: 56px;
  display: flex;
  align-items: center;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--ocean);
  font-weight: 900;
}

.media-panel {
  background: var(--navy);
  color: var(--white);
}

.media-panel figcaption {
  margin-top: 0.8rem;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.5;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 1.2rem 0 1.6rem;
}

.chip-row span,
.link-cloud a,
.mini-links a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.45rem 0.7rem;
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--ocean);
  text-decoration: none;
  font-weight: 800;
}

.compact-grid,
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.compact-card {
  overflow: hidden;
}

.compact-card img {
  aspect-ratio: 16 / 9;
  border-radius: 0;
}

.compact-card h3,
.compact-card p,
.compact-card a {
  margin-left: 1rem;
  margin-right: 1rem;
}

.compact-card a,
.related-card a,
.resource-grid a {
  display: inline-block;
  margin-bottom: 1rem;
  color: var(--ocean);
  font-weight: 800;
  text-decoration: none;
}

.panel-stack {
  margin-top: 1.4rem;
}

.detail-panel {
  display: none;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.5rem;
  background: var(--navy);
}

.detail-panel.is-active {
  display: grid;
}

.detail-panel h3,
.detail-panel p {
  color: var(--white);
}

.detail-panel .check-list li {
  color: rgba(255, 255, 255, 0.84);
  border-color: rgba(255, 255, 255, 0.12);
}

.check-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.check-list li {
  position: relative;
  padding-left: 1.35rem;
  line-height: 1.55;
  color: var(--ink);
}

.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.63rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--cyan);
}

.timeline {
  list-style: none;
  counter-reset: step;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.8rem;
}

.timeline li {
  counter-increment: step;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.9rem;
  align-items: start;
  padding: 1rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.timeline li::before {
  content: counter(step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: var(--radius);
  background: var(--navy);
  color: var(--white);
  font-weight: 900;
}

.timeline strong,
.timeline span {
  display: block;
}

.timeline span {
  color: var(--muted);
  margin-top: 0.2rem;
}

.link-cloud,
.mini-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.industry-layout {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.industry-tabs {
  display: grid;
  gap: 0.7rem;
}

.industry-tab {
  text-align: left;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1rem;
  cursor: pointer;
}

.industry-tab span,
.industry-tab small {
  display: block;
}

.industry-tab span {
  color: var(--navy);
  font-weight: 900;
}

.industry-tab small {
  color: var(--muted);
  margin-top: 0.25rem;
}

.industry-tab.is-active {
  background: var(--navy);
  border-color: var(--navy);
}

.industry-tab.is-active span {
  color: var(--white);
}

.industry-tab.is-active small {
  color: rgba(255, 255, 255, 0.72);
}

.industry-panel {
  display: none;
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1fr);
  gap: 1.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1rem;
}

.industry-panel.is-active {
  display: grid;
}

.industry-panel img {
  height: 100%;
  min-height: 360px;
}

.industry-panel .button {
  margin-top: 1rem;
}

.industry-map-visual,
.detail-live-visual {
  position: relative;
  margin: 0;
  overflow: hidden;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  background: var(--navy);
  color: var(--white);
  box-shadow: var(--shadow);
}

.industry-map-visual img,
.detail-live-visual img {
  width: 100%;
  aspect-ratio: 16 / 12;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  opacity: 0.9;
}

.industry-map-visual figcaption,
.detail-live-visual figcaption {
  margin-top: 0.8rem;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.5;
}

.map-node,
.status-stack,
.panel-signal {
  box-shadow: 0 18px 34px rgba(3, 9, 22, 0.2);
}

.map-node,
.status-stack {
  position: absolute;
  min-width: 142px;
  padding: 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  background: rgba(8, 16, 32, 0.86);
  backdrop-filter: blur(12px);
}

.map-node strong,
.map-node span,
.status-stack span,
.status-stack strong,
.status-stack small {
  display: block;
}

.map-node strong,
.status-stack strong {
  color: var(--lime);
  font-size: 1.35rem;
  line-height: 1;
}

.map-node span,
.status-stack span,
.status-stack small {
  margin-top: 0.28rem;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 800;
}

.node-a {
  top: 2rem;
  left: 2rem;
}

.node-b {
  right: 2rem;
  top: 38%;
}

.node-c {
  left: 28%;
  bottom: 3.4rem;
}

.live-scan {
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  top: 1.4rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--cyan), var(--lime), transparent);
  animation: scan-line 4.8s ease-in-out infinite;
}

.status-stack {
  left: 2rem;
  bottom: 4.6rem;
}

.sensor-marker {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid var(--lime);
  border-radius: 2px;
  background: rgba(8, 16, 32, 0.7);
  animation: sensor-blink 2.4s ease-in-out infinite;
}

.sensor-marker::before,
.sensor-marker::after {
  content: "";
  position: absolute;
  background: var(--lime);
}

.sensor-marker::before {
  left: 50%;
  top: -8px;
  width: 2px;
  height: 32px;
  transform: translateX(-50%);
}

.sensor-marker::after {
  left: -8px;
  top: 50%;
  width: 32px;
  height: 2px;
  transform: translateY(-50%);
}

.marker-one {
  right: 24%;
  top: 23%;
}

.marker-two {
  right: 14%;
  bottom: 34%;
  animation-delay: 0.8s;
}

.industry-radar {
  position: absolute;
  inset: 2rem;
  border: 1px solid rgba(143, 209, 106, 0.36);
  border-radius: var(--radius);
  background:
    linear-gradient(90deg, rgba(143, 209, 106, 0.12) 1px, transparent 1px),
    linear-gradient(180deg, rgba(143, 209, 106, 0.12) 1px, transparent 1px);
  background-size: 44px 44px;
  animation: grid-drift 7s linear infinite;
}

.route-line {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.5rem;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cyan), var(--lime), var(--cyan));
  animation: route-pulse 3.8s ease-in-out infinite;
}

@keyframes sensor-blink {
  0%, 100% { opacity: 0.48; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1); }
}

@keyframes grid-drift {
  from { background-position: 0 0; }
  to { background-position: 44px 44px; }
}

@keyframes route-pulse {
  0%, 100% { opacity: 0.42; transform: scaleX(0.7); transform-origin: left; }
  50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

.service-snapshot-grid,
.industry-terrain-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 1rem;
  align-items: stretch;
}

.snapshot-primary,
.capability-console,
.terrain-card,
.terrain-console,
.industry-service-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.snapshot-primary,
.terrain-card {
  padding: 1.5rem;
  background:
    linear-gradient(135deg, #081020 0%, var(--navy) 52%, var(--ocean) 100%);
}

.snapshot-primary h2,
.snapshot-primary p,
.terrain-card h2,
.terrain-card p {
  color: var(--white);
}

.snapshot-metrics {
  display: grid;
  gap: 1rem;
}

.snapshot-metrics article,
.terrain-console div:not(.mini-links) {
  min-height: 106px;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.snapshot-metrics strong,
.terrain-console strong {
  display: block;
  color: var(--cyan);
  font-size: 1.75rem;
  line-height: 1;
}

.snapshot-metrics span,
.terrain-console span {
  display: block;
  margin-top: 0.45rem;
  color: var(--muted);
  line-height: 1.45;
}

.capability-console,
.terrain-console {
  padding: 1.2rem;
}

.capability-console {
  grid-column: 1 / -1;
}

.capability-console h2 {
  font-size: 1.35rem;
}

.signal-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.signal-card {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.signal-card::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--cyan), var(--lime));
  transform: scaleX(0.45);
  transform-origin: left;
  transition: transform 180ms ease;
}

.signal-card:hover,
.signal-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(13, 158, 158, 0.48);
  box-shadow: var(--shadow);
}

.signal-card:hover::before,
.signal-card:focus-within::before {
  transform: scaleX(1);
}

.signal-card > span,
.signal-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 1rem;
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--ocean);
  font-weight: 900;
}

.signal-card h3 {
  font-size: 1.18rem;
}

.signal-card p {
  margin: 0 0 0.75rem;
  font-size: 0.96rem;
}

.signal-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.signal-card li {
  color: var(--muted);
  line-height: 1.42;
  font-size: 0.9rem;
}

.flow-lab {
  background:
    linear-gradient(180deg, var(--surface) 0%, #ffffff 100%);
}

.evidence-flow,
.industry-lifecycle-line,
.industry-phase-lane {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

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

.evidence-flow li,
.industry-lifecycle-line li,
.industry-phase-lane li {
  position: relative;
  min-height: 170px;
  padding: 1.1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
}

.evidence-flow li::after,
.industry-phase-lane li::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--cyan), var(--lime));
  animation: route-pulse 4.2s ease-in-out infinite;
}

.evidence-flow span,
.industry-lifecycle-line span,
.industry-phase-lane span {
  display: inline-flex;
  margin-bottom: 1rem;
  color: var(--cyan);
  font-weight: 900;
}

.evidence-flow strong,
.industry-lifecycle-line strong,
.industry-phase-lane strong {
  display: block;
  color: var(--navy);
  font-size: 1.12rem;
}

.evidence-flow p,
.industry-lifecycle-line p,
.industry-phase-lane p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

.insight-drawers {
  display: grid;
  gap: 0.75rem;
}

.insight-drawer {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
}

.insight-drawer summary {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 0.9rem;
  align-items: center;
  min-height: 76px;
  padding: 1rem 1.2rem;
  cursor: pointer;
  color: var(--navy);
  font-weight: 900;
}

.insight-drawer summary::marker {
  color: var(--cyan);
}

.insight-drawer summary span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--ocean);
}

.insight-drawer div {
  padding: 0 1.2rem 1.2rem 5.1rem;
}

.industry-signal-wall {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.industry-signal-tile {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  min-height: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
}

.industry-signal-tile img {
  width: 100%;
  height: 190px;
  min-height: 0;
  object-fit: cover;
  border-radius: 0;
}

.industry-signal-tile > div {
  display: grid;
  gap: 0.65rem;
  padding: 1rem;
}

.industry-signal-tile h3 {
  margin-bottom: 0;
  font-size: 1.16rem;
}

.industry-signal-tile p {
  margin: 0;
  line-height: 1.55;
}

.industry-signal-tile .mini-links {
  gap: 0.45rem;
}

.industry-signal-tile .mini-links a {
  min-height: 30px;
  padding: 0.32rem 0.55rem;
  font-size: 0.86rem;
}

.industry-signal-tile .signal-number {
  position: absolute;
  left: 0.9rem;
  top: 0.9rem;
  background: rgba(8, 16, 32, 0.82);
  color: var(--lime);
}

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

.service-match-grid {
  display: grid;
  gap: 0.75rem;
}

.service-match-row {
  display: grid;
  grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.service-match-row strong,
.service-match-row span {
  display: block;
}

.service-match-row strong {
  color: var(--navy);
}

.service-match-row span {
  margin-top: 0.25rem;
  color: var(--muted);
}

.match-key {
  display: grid;
  gap: 0.65rem;
}

.match-key span {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--muted);
  font-weight: 800;
}

.match-key i {
  width: 16px;
  height: 16px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--cyan), var(--lime));
}

.industry-panel-visual {
  position: relative;
  min-height: 360px;
}

.industry-panel-visual img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  border-radius: var(--radius);
}

.terrain-console {
  display: grid;
  gap: 1rem;
}

.terrain-console .mini-links {
  padding-top: 0.25rem;
}

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

.industry-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.industry-service-card {
  padding: 1.2rem;
}

.industry-service-card a {
  color: var(--ocean);
  font-weight: 800;
  text-decoration: none;
}

.sticky-subnav {
  position: sticky;
  top: 78px;
  z-index: 20;
  display: flex;
  justify-content: center;
  gap: 1rem;
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.sticky-subnav a {
  color: var(--ocean);
  font-weight: 800;
  text-decoration: none;
}

.content-grid {
  grid-template-columns: minmax(0, 1fr) 340px;
  align-items: start;
}

.prose {
  max-width: 780px;
}

.prose p,
.doc-section p {
  font-size: 1.05rem;
}

.side-facts,
.related-card {
  padding: 1.2rem;
}

.doc-sections {
  display: grid;
  gap: 1rem;
}

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

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

.doc-section {
  padding: 1.4rem;
}

.doc-section h2 {
  font-size: 1.7rem;
}

.hub-doc .doc-section h2 {
  font-size: 1.22rem;
}

.brief-grid .doc-section h2 {
  font-size: 1.35rem;
}

.doc-section p {
  margin-bottom: 0.8rem;
}

.resource-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.resource-grid article {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.25rem;
  background: var(--white);
}

.cta-band {
  background: var(--navy);
  color: var(--white);
}

.cta-band h2,
.cta-band p {
  color: var(--white);
}

.site-footer {
  background: #081020;
  color: rgba(255, 255, 255, 0.78);
  padding: 4rem 0 1.5rem;
}

.footer-grid {
  grid-template-columns: 1.3fr repeat(3, minmax(160px, 1fr));
  align-items: start;
}

.footer-logo {
  width: 180px;
  margin-bottom: 1rem;
  filter: brightness(0) invert(1);
}

.site-footer h2 {
  color: var(--white);
  font-size: 1rem;
}

.site-footer a {
  display: block;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
  margin-bottom: 0.55rem;
}

.footer-bottom {
  max-width: var(--max);
  margin: 2.5rem auto 0;
  padding: 1rem 1.5rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.contact-form {
  background: var(--white);
  border-color: var(--line);
  display: grid;
  gap: 1rem;
}

.contact-form label {
  display: grid;
  gap: 0.35rem;
  color: var(--navy);
  font-weight: 800;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.8rem;
  color: var(--ink);
  background: var(--white);
}

[data-reveal] {
  opacity: 1;
  transform: none;
  transition: opacity 520ms ease, transform 520ms ease;
  transition-delay: calc(var(--i, 0) * 70ms);
}

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

.sd-challenge-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.sd-challenge-card {
  position: relative;
  padding: 1.5rem 1.3rem 1.3rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.sd-challenge-card:hover,
.sd-challenge-card:focus-within {
  transform: translateY(-5px);
  border-color: rgba(13, 158, 158, 0.45);
  box-shadow: var(--shadow);
}

.sd-challenge-card .challenge-index {
  position: absolute;
  top: -0.5rem;
  right: 0.5rem;
  font-size: 3.6rem;
  font-weight: 900;
  color: var(--surface-2);
  line-height: 1;
  z-index: 0;
  transition: color 220ms ease;
}

.sd-challenge-card:hover .challenge-index {
  color: var(--surface);
}

.sd-challenge-card h3 {
  position: relative;
  z-index: 1;
  margin-bottom: 0.5rem;
  font-size: 1.12rem;
}

.sd-challenge-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.sd-approach-rail {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0 0 0 2.6rem;
  display: grid;
  gap: 1.5rem;
}

.sd-approach-rail::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 2px;
  background: linear-gradient(180deg, var(--cyan), var(--lime));
  opacity: 0.25;
}

.sd-approach-step {
  position: relative;
  opacity: 1;
  transform: none;
  transition: opacity 480ms ease, transform 480ms ease;
  transition-delay: calc(var(--i, 0) * 70ms);
}

.sd-approach-step.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.sd-approach-step .approach-index {
  position: absolute;
  left: -2.6rem;
  top: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 50%;
  border: 2px solid var(--line);
  background: var(--white);
  color: var(--ocean);
  font-weight: 900;
  font-size: 0.85rem;
  transition: border-color 320ms ease, background 320ms ease, color 320ms ease, transform 320ms ease;
}

.sd-approach-step.is-visible .approach-index {
  border-color: var(--cyan);
  background: var(--navy);
  color: var(--white);
  transform: scale(1.08);
}

.approach-body {
  padding: 1.1rem 1.3rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
}

.approach-body strong {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--navy);
  font-size: 1.08rem;
}

.approach-body ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.approach-body li {
  position: relative;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.approach-body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--cyan);
}

.capability-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1.3rem;
}

.capability-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--navy);
  font-weight: 800;
  font-size: 0.92rem;
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.capability-tab small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--ocean);
  font-size: 0.72rem;
}

.capability-tab.is-active,
.capability-tab:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
  transform: translateY(-2px);
}

.capability-tab.is-active small,
.capability-tab:hover small {
  background: rgba(255, 255, 255, 0.16);
  color: var(--white);
}

.capability-stage {
  min-height: 120px;
}

.capability-panel {
  display: none;
}

.capability-panel.is-active {
  display: block;
  animation: panel-rise 260ms ease both;
}

.capability-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.capability-chip-grid span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.5rem 0.8rem;
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--ocean);
  font-weight: 700;
  font-size: 0.92rem;
  opacity: 0;
  animation: chip-pop 320ms ease both;
  animation-delay: calc(var(--i, 0) * 35ms);
}

@keyframes chip-pop {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.standards-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.marquee-track {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: max-content;
  animation: marquee-scroll 26s linear infinite;
}

.standards-marquee:hover .marquee-track {
  animation-play-state: paused;
}

.marquee-track span {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 0.55rem 1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--navy);
  font-weight: 800;
  font-size: 0.9rem;
}

@keyframes marquee-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

.standards-note {
  max-width: 62ch;
  color: var(--muted);
}

.faq-list {
  display: grid;
  gap: 0.7rem;
  max-width: 860px;
}

.faq-item {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  overflow: hidden;
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 64px;
  padding: 1rem 1.2rem;
  cursor: pointer;
  color: var(--navy);
  font-weight: 800;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--surface-2);
  color: var(--ocean);
  font-size: 1.1rem;
  font-weight: 900;
  transition: transform 220ms ease, background 220ms ease, color 220ms ease;
}

.faq-item[open] summary::after {
  transform: rotate(45deg);
  background: var(--navy);
  color: var(--white);
}

.faq-item p {
  margin: 0;
  padding: 0 1.2rem 1.2rem;
  color: var(--muted);
  line-height: 1.6;
}

.sd-closing-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.sd-closing-inner h2 {
  margin-top: 0.4rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }

  [data-reveal],
  .sd-approach-step {
    opacity: 1;
    transform: none;
  }

  .capability-chip-grid span {
    opacity: 1;
  }
}

@media (max-width: 980px) {
  .nav-shell {
    grid-template-columns: auto auto;
  }

  .nav-toggle {
    display: block;
    justify-self: end;
  }

  .primary-nav,
  .nav-cta {
    display: none;
  }

  .primary-nav.is-open {
    display: grid;
    grid-column: 1 / -1;
    justify-content: stretch;
    gap: 0;
    padding-bottom: 1rem;
  }

  .primary-nav.is-open a {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--line);
  }

  .hero-content,
  .subhero-grid,
  .services-hero-layout,
  .detail-hero-grid,
  .split-grid,
  .service-workbench,
  .service-panel,
  .motion-layout,
  .feature-grid,
  .feature-grid.reverse,
  .content-grid,
  .industry-layout,
  .industry-panel,
  .service-snapshot-grid,
  .industry-terrain-grid,
  .service-match-row,
  .footer-grid,
  .resource-grid {
    grid-template-columns: 1fr;
  }

  .hero-content {
    min-height: 660px;
    gap: 2rem;
  }

  .hero-copy h1,
  .subhero h1,
  .detail-hero h1 {
    font-size: 2.65rem;
  }

  h2 {
    font-size: 2rem;
  }

  .card-grid,
  .compact-grid,
  .related-grid,
  .service-tabs,
  .proof-tiles,
  .hub-doc,
  .brief-grid,
  .signal-board,
  .industry-signal-wall,
  .evidence-flow,
  .industry-lifecycle-line,
  .industry-phase-lane,
  .industry-service-grid,
  .service-industry-map,
  .sd-challenge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-stage,
  .service-panel {
    min-height: auto;
  }

  .service-panel-visual,
  .service-panel-visual img {
    min-height: 320px;
    height: 320px;
  }

  .services-hero-layout {
    gap: 2.5rem;
  }

  .motion-rail {
    grid-template-columns: 1fr;
  }

  .motion-rail::before,
  .motion-rail::after {
    display: none;
  }

  .motion-rail li::before {
    top: 1rem;
    left: auto;
    right: 1rem;
  }

  .section-heading {
    display: block;
  }
}

@media (max-width: 640px) {
  .section,
  .subhero,
  .detail-hero {
    padding: 4rem 0;
  }

  .hero,
  .hero-content {
    min-height: 720px;
  }

  .hero-copy h1,
  .subhero h1,
  .detail-hero h1 {
    font-size: 2.3rem;
  }

  .card-grid,
  .compact-grid,
  .related-grid,
  .service-tabs,
  .proof-tiles,
  .hub-doc,
  .brief-grid,
  .signal-board,
  .industry-signal-wall,
  .evidence-flow,
  .industry-lifecycle-line,
  .industry-phase-lane,
  .industry-service-grid,
  .service-industry-map,
  .metric-row,
  .proof-grid,
  .sd-challenge-grid {
    grid-template-columns: 1fr;
  }

  .sd-approach-rail {
    padding-left: 2.2rem;
  }

  .sd-approach-step .approach-index {
    left: -2.2rem;
  }

  .detail-panel {
    grid-template-columns: 1fr;
  }

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

  .metrology-image-panel {
    min-height: 420px;
  }

  .metrology-readout {
    left: 0.85rem;
    right: 0.85rem;
    bottom: 0.85rem;
    max-width: none;
  }

  .metrology-image-tags {
    right: 0.85rem;
    top: 0.85rem;
    max-width: 54%;
  }

  .metrology-image-tags span {
    font-size: 0.82rem;
  }

  .service-panel {
    padding: 1rem;
  }

  .service-panel h3 {
    font-size: 1.75rem;
  }

  .service-panel-visual,
  .service-panel-visual img {
    min-height: 260px;
    height: 260px;
  }

  .system-metrics {
    grid-template-columns: 1fr;
  }

  .services-embedded-system {
    min-height: auto;
    padding: 1rem 0 0;
  }

  .system-header {
    display: none;
  }

  .industry-signal-tile {
    grid-template-columns: 1fr;
  }

  .industry-signal-tile img,
  .industry-panel-visual,
  .industry-panel-visual img {
    min-height: 240px;
  }

  .industry-map-visual,
  .detail-live-visual {
    display: grid;
    gap: 0.75rem;
  }

  .map-node,
  .status-stack {
    position: static;
    min-width: 0;
  }

  .live-scan,
  .sensor-marker,
  .industry-radar,
  .route-line {
    display: none;
  }

  .insight-drawer summary {
    grid-template-columns: 42px 1fr;
    padding: 0.9rem;
  }

  .insight-drawer div {
    padding: 0 0.9rem 1rem;
  }

  .sticky-subnav {
    overflow-x: visible;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));
  }

  .sticky-subnav a {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .footer-bottom {
    display: grid;
  }
}

/* =====================================================================
   Global footer: ghost wordmark, brand statement, right-aligned nav.
   ===================================================================== */

.footer2 {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1000px 400px at 85% 0%, rgba(14, 77, 110, 0.5), transparent 65%),
    #0a0c2e;
  color: #f8fafc;
}

.footer2-ghost {
  font-family: "Inter", "DM Sans", Arial, sans-serif;
  font-size: clamp(8rem, 23vw, 21rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 0.74;
  margin: -0.1em 0 0;
  padding: 0 1.5rem;
  color: rgba(255, 255, 255, 0.05);
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
}

.footer2-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) auto;
  gap: 3.5rem;
  align-items: start;
  padding-top: 1.5rem;
  padding-bottom: 4.5rem;
}

.footer2-brand img {
  width: 150px;
  height: auto;
  margin-bottom: 1.1rem;
}

.footer2-brand p {
  margin: 0;
  color: rgba(226, 238, 247, 0.6);
  font-size: 0.9rem;
  line-height: 1.65;
  max-width: 30ch;
}

.footer2-statement h2 {
  margin: 0 0 1.5rem;
  color: var(--white);
  font-family: "Inter", "DM Sans", Arial, sans-serif;
  font-size: clamp(1.6rem, 2.7vw, 2.35rem);
  line-height: 1.16;
  letter-spacing: -0.02em;
  max-width: 18ch;
}

.footer2-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--white);
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
}

.footer2-cta:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.footer2-cta-arrow {
  display: inline-block;
  transition: transform 200ms ease;
}

.footer2-cta:hover .footer2-cta-arrow {
  transform: translate(3px, -3px);
}

.footer2-nav {
  display: grid;
  gap: 0.9rem;
  justify-items: end;
  text-align: right;
}

.footer2-nav a {
  color: rgba(226, 238, 247, 0.72);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 600;
  transition: color 200ms ease;
}

.footer2-nav a:hover {
  color: var(--white);
}

.footer2-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer2-bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding-top: 1.35rem;
  padding-bottom: 1.35rem;
  font-size: 0.8rem;
  color: rgba(226, 238, 247, 0.5);
}

.footer2-legal {
  display: flex;
  gap: 1.7rem;
}

.footer2-legal a {
  color: rgba(226, 238, 247, 0.5);
  text-decoration: none;
  transition: color 200ms ease;
}

.footer2-legal a:hover {
  color: var(--white);
}

@media (max-width: 900px) {
  .footer2-grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .footer2-nav {
    justify-items: start;
    text-align: left;
  }
}

/* =====================================================================
   Services redesign: bento grids, sticky stack layers, scrollytelling,
   and tactile push buttons. Scoped to .sv-page (services hub) and
   .svc-page (service detail pages) so no other page is affected.
   ===================================================================== */

.sv-page,
.svc-page {
  --display-font: "Inter", "DM Sans", Arial, sans-serif;
  --grad-a: #35e0d0;
  --grad-b: #9fe07a;
}

.sv-page h1,
.sv-page h2,
.sv-page h3,
.svc-page h1,
.svc-page h2,
.svc-page h3 {
  font-family: var(--display-font);
  letter-spacing: -0.02em;
}

.sv-page ::selection,
.svc-page ::selection {
  background: var(--cyan);
  color: var(--white);
}

/* Align section headings with the grids below them (the global
   .section-heading rule pins them to the viewport edge) */
.sv-page .section-inner.section-heading,
.svc-page .section-inner.section-heading {
  max-width: var(--max);
  margin: 0 auto 2.25rem;
}

.sv-page .section-heading.sv-centered,
.svc-page .section-heading.sv-centered {
  justify-items: center;
  text-align: center;
  margin-bottom: 3rem;
}

.sv-page .section-heading.sv-centered h2,
.svc-page .section-heading.sv-centered h2 {
  margin-left: auto;
  margin-right: auto;
}

/* Headings inside dark sections must not inherit the global navy color */
.sv-stack-head h2,
.sv-layer-copy h3,
.sv-tile-feature-copy h3,
.svc-closing-inner h2 {
  color: var(--white);
}

.svc-chapter h2,
.svc-challenge h3 {
  color: var(--sc-ink);
}

/* ---------- Scoped scroll reveal ---------- */

.sv-page [data-reveal],
.svc-page [data-reveal] {
  opacity: 0;
  transform: translateY(26px);
}

.sv-page [data-reveal].is-visible,
.svc-page [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- Tactile push buttons ---------- */

.push-btn {
  position: relative;
  display: inline-block;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
  border-radius: 14px;
  -webkit-tap-highlight-color: transparent;
}

.push-btn .pb-edge {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: linear-gradient(
    to left,
    #04282f 0%,
    #075a60 8%,
    #075a60 92%,
    #04282f 100%
  );
}

.push-btn .pb-face {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 50px;
  padding: 0.9rem 1.6rem;
  border-radius: 14px;
  background: linear-gradient(180deg, #14b8b8, #0a8b8b);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 rgba(4, 40, 47, 0.35);
  color: var(--white);
  font-weight: 800;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  transform: translateY(-6px);
  transition: transform 200ms cubic-bezier(0.3, 0.7, 0.4, 1.5);
  will-change: transform;
}

.push-btn .pb-face::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.4) 50%, transparent 60%);
  transform: translateX(-130%);
}

.push-btn:hover .pb-face {
  transform: translateY(-9px);
}

.push-btn:hover .pb-face::before {
  transform: translateX(130%);
  transition: transform 650ms ease;
}

.push-btn:active .pb-face {
  transform: translateY(-1px);
  transition-duration: 60ms;
}

.push-btn .pb-arrow {
  display: inline-block;
  transition: transform 200ms ease;
}

.push-btn:hover .pb-arrow {
  transform: translateX(5px);
}

.push-btn:focus-visible {
  outline: 3px solid rgba(13, 158, 158, 0.6);
  outline-offset: 4px;
}

.push-btn.ghost-dark .pb-edge {
  background: rgba(255, 255, 255, 0.22);
}

.push-btn.ghost-dark .pb-face {
  background: rgba(10, 12, 46, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  color: var(--white);
}

.push-btn.light .pb-edge {
  background: rgba(4, 9, 24, 0.7);
}

.push-btn.light .pb-face {
  background: linear-gradient(180deg, #ffffff, #e8f1f1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -2px 0 rgba(10, 12, 46, 0.12);
  color: var(--navy);
}

.push-btn.layer .pb-edge {
  background: rgba(0, 0, 0, 0.55);
}

.push-btn.layer .pb-face {
  background: var(--layer-accent, var(--cyan));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), inset 0 -2px 0 rgba(0, 0, 0, 0.18);
  color: #06231f;
}

/* ---------- Services hub: hero ---------- */

.sv-hero {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: #0a0c2e;
  padding: 7rem 0 0;
}

.sv-hero-aurora {
  position: absolute;
  inset: -20%;
  pointer-events: none;
  filter: blur(70px);
}

.sv-hero-aurora::before,
.sv-hero-aurora::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.sv-hero-aurora::before {
  width: 55vw;
  height: 42vw;
  right: 2%;
  top: 6%;
  background: radial-gradient(closest-side, rgba(13, 158, 158, 0.5), transparent 70%);
  animation: sv-drift 16s ease-in-out infinite alternate;
}

.sv-hero-aurora::after {
  width: 42vw;
  height: 36vw;
  left: 4%;
  bottom: -4%;
  background: radial-gradient(closest-side, rgba(61, 187, 142, 0.32), transparent 70%);
  animation: sv-drift 20s ease-in-out infinite alternate-reverse;
}

@keyframes sv-drift {
  from { transform: translate3d(0, 0, 0) rotate(0deg); }
  to { transform: translate3d(-6%, 5%, 0) rotate(10deg); }
}

.sv-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 54px 54px;
  -webkit-mask-image: radial-gradient(820px 500px at 30% 22%, #000, transparent 76%);
  mask-image: radial-gradient(820px 500px at 30% 22%, #000, transparent 76%);
  animation: sv-grid-pan 28s linear infinite;
  pointer-events: none;
}

@keyframes sv-grid-pan {
  to { background-position: 54px 54px; }
}

.sv-noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity: 0.05;
  mix-blend-mode: overlay;
}

.sv-hero-ghost {
  position: absolute;
  right: -0.06em;
  bottom: 0.28em;
  font-family: var(--display-font);
  font-weight: 700;
  font-size: clamp(7rem, 17vw, 16rem);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.09);
  pointer-events: none;
  user-select: none;
}

.sv-hero-inner {
  position: relative;
  z-index: 2;
  padding-bottom: 5.5rem;
}

.sv-headline {
  margin: 0 0 1.5rem;
  font-size: clamp(2.6rem, 5.8vw, 4.8rem);
  line-height: 1.04;
  font-weight: 700;
  max-width: 16ch;
}

.sv-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.09em;
  margin-bottom: -0.09em;
}

.sv-headline .sv-w {
  display: inline-block;
  transform: translateY(115%);
  animation: sv-word-rise 750ms cubic-bezier(0.2, 0.75, 0.15, 1) forwards;
  animation-delay: calc(80ms * var(--wi) + 150ms);
}

@keyframes sv-word-rise {
  to { transform: translateY(0); }
}

.sv-grad {
  background: linear-gradient(92deg, var(--grad-a), var(--grad-b));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sv-lede {
  font-size: 1.16rem;
  line-height: 1.78;
  max-width: 620px;
  color: rgba(226, 238, 247, 0.82);
}

.sv-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.15rem;
  margin-top: 2.4rem;
}

.sv-ticker {
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  overflow: hidden;
  background: rgba(4, 9, 24, 0.5);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.sv-ticker-track {
  display: flex;
  align-items: center;
  gap: 1.7rem;
  width: max-content;
  padding: 1rem 0;
  animation: sv-ticker-move 32s linear infinite;
}

.sv-ticker:hover .sv-ticker-track {
  animation-play-state: paused;
}

.sv-ticker-track span {
  white-space: nowrap;
  text-transform: uppercase;
  font-family: var(--display-font);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(226, 238, 247, 0.72);
}

.sv-ticker-track i {
  width: 7px;
  height: 7px;
  background: linear-gradient(135deg, var(--grad-a), var(--grad-b));
  transform: rotate(45deg);
  flex: none;
}

@keyframes sv-ticker-move {
  to { transform: translateX(-50%); }
}

/* ---------- Services hub: bento board ---------- */

.sv-bento-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: minmax(150px, auto);
  gap: 1.05rem;
  perspective: 1600px;
}

.sv-tile {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid transparent;
  background:
    linear-gradient(var(--white), var(--white)) padding-box,
    linear-gradient(150deg, rgba(13, 158, 158, 0.55), rgba(220, 229, 236, 0.9) 38%, rgba(143, 209, 106, 0.45)) border-box;
  padding: 1.7rem;
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--lift, 0px));
  transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1.2), box-shadow 320ms ease;
}

.sv-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(13, 158, 158, 0.13), transparent 65%);
  opacity: 0;
  transition: opacity 300ms ease;
  pointer-events: none;
}

.sv-tile:hover {
  --lift: -6px;
  box-shadow: 0 24px 60px rgba(10, 12, 46, 0.16);
}

.sv-tile:hover::after {
  opacity: 1;
}

.sv-tile h3 {
  margin: 0 0 0.6rem;
  font-size: 1.35rem;
  line-height: 1.22;
}

.sv-tile p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.sv-tile-feature {
  grid-column: span 7;
  grid-row: span 2;
  min-height: 440px;
  padding: 0;
  color: var(--white);
  display: flex;
  align-items: flex-end;
  background: var(--navy);
}

.sv-tile-feature::after {
  background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, 0.1), transparent 65%);
}

.sv-tile-feature img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.03);
  transition: transform 1200ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.sv-tile-feature:hover img {
  transform: scale(1.1);
}

.sv-tile-feature-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, rgba(4, 9, 24, 0.02) 32%, rgba(4, 9, 24, 0.9) 84%);
}

.sv-tile-feature-copy {
  position: relative;
  z-index: 2;
  padding: 2.1rem;
  max-width: 34rem;
}

.sv-tile-feature-copy h3 {
  font-size: clamp(1.5rem, 2.4vw, 2rem);
}

.sv-tile-feature-copy p {
  color: rgba(230, 241, 249, 0.85);
  margin-bottom: 1.5rem;
}

.sv-tile-count {
  grid-column: span 5;
  background:
    linear-gradient(#0a0c2e, #0a0c2e) padding-box,
    linear-gradient(150deg, rgba(53, 224, 208, 0.6), rgba(10, 12, 46, 0.4) 45%, rgba(159, 224, 122, 0.5)) border-box;
  color: var(--white);
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 1rem;
}

.sv-tile-count strong {
  display: block;
  font-family: var(--display-font);
  font-size: clamp(3.2rem, 5.2vw, 4.6rem);
  line-height: 1;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, var(--grad-a), #0d9e9e);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.sv-tile-count div:last-child strong {
  background: linear-gradient(180deg, var(--grad-b), #4f9e3f);
  -webkit-background-clip: text;
  background-clip: text;
}

.sv-tile-count span {
  display: block;
  margin-top: 0.55rem;
  color: rgba(226, 238, 247, 0.72);
  font-weight: 600;
  max-width: 15ch;
}

.sv-tile-video {
  grid-column: span 5;
  padding: 0;
  min-height: 215px;
  background: var(--navy);
}

.sv-tile-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sv-tile-video-tag {
  position: absolute;
  left: 1.15rem;
  bottom: 1.15rem;
  z-index: 2;
  background: rgba(4, 9, 24, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--white);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.48rem 0.9rem;
  border-radius: 999px;
  backdrop-filter: blur(8px);
}

.sv-tile-life {
  grid-column: span 4;
}

.sv-life-rail {
  list-style: none;
  margin: 1.05rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.72rem;
}

.sv-life-rail li {
  display: grid;
  grid-template-columns: 14px auto 1fr;
  gap: 0.65rem;
  align-items: center;
}

.sv-life-rail strong {
  font-size: 0.95rem;
}

.sv-life-rail small {
  color: var(--muted);
  justify-self: end;
  text-align: right;
}

.sv-life-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--cyan);
  animation: sv-pulse 2.6s ease infinite;
  animation-delay: calc(var(--i) * 380ms);
}

@keyframes sv-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(13, 158, 158, 0.45); }
  50% { box-shadow: 0 0 0 7px rgba(13, 158, 158, 0); }
}

.sv-tile-marquee {
  grid-column: span 4;
}

.sv-mini-marquee {
  overflow: hidden;
  margin: 0.95rem 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.sv-mini-marquee ul {
  display: flex;
  gap: 0.55rem;
  width: max-content;
  list-style: none;
  margin: 0;
  padding: 0;
  animation: sv-ticker-move 22s linear infinite;
}

.sv-mini-marquee:hover ul {
  animation-play-state: paused;
}

.sv-mini-marquee li {
  white-space: nowrap;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.42rem 0.88rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--ocean);
  background: var(--surface);
}

.sv-tile-note {
  font-size: 0.92rem;
}

.sv-tile-cta {
  grid-column: span 4;
  background:
    linear-gradient(160deg, #e9f3f3, #ffffff) padding-box,
    linear-gradient(150deg, rgba(13, 158, 158, 0.55), rgba(220, 229, 236, 0.9) 38%, rgba(143, 209, 106, 0.45)) border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0.4rem;
}

.sv-tile-cta .push-btn {
  margin-top: 1.3rem;
}

/* ---------- Services hub: sticky stack layers ---------- */

.sv-stack-head {
  background: #0a0c2e;
  color: var(--white);
  padding: 6rem 0 4.5rem;
}

.sv-stack-head h2 {
  font-size: clamp(2rem, 3.6vw, 2.9rem);
  margin: 0 0 1rem;
  max-width: 26ch;
}

.sv-stack-head p {
  color: rgba(226, 238, 247, 0.72);
  max-width: 640px;
  line-height: 1.7;
  margin: 0;
}

.sv-stack {
  position: relative;
  background: #0a0c2e;
}

.sv-layer {
  position: sticky;
  top: 78px;
  min-height: calc(100vh - 78px);
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #f2f7fb;
  background:
    radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1.6px) 0 0 / 28px 28px,
    radial-gradient(900px 480px at 88% -10%, rgba(255, 255, 255, 0.07), transparent 62%),
    var(--layer-bg, var(--navy));
  border-radius: 32px 32px 0 0;
  box-shadow: 0 -30px 70px rgba(3, 6, 20, 0.5);
  transform-origin: top center;
  transform: translateY(calc(var(--peel, 0) * -20px)) scale(calc(1 - var(--peel, 0) * 0.05));
  filter: brightness(calc(1 - var(--peel, 0) * 0.32));
  will-change: transform, filter;
}

.sv-layer-handle {
  position: absolute;
  top: 1.1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 46px;
  height: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.3);
}

.sv-layer-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 3.5rem;
  align-items: center;
  width: 100%;
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.sv-layer-copy > :not(.sv-layer-bar) {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.sv-layer.is-live .sv-layer-copy > :not(.sv-layer-bar) {
  opacity: 1;
  transform: translateY(0);
}

.sv-layer.is-live .sv-layer-copy > :nth-child(2):not(.sv-layer-bar) { transition-delay: 70ms; }
.sv-layer.is-live .sv-layer-copy > :nth-child(3):not(.sv-layer-bar) { transition-delay: 140ms; }
.sv-layer.is-live .sv-layer-copy > :nth-child(4):not(.sv-layer-bar) { transition-delay: 210ms; }
.sv-layer.is-live .sv-layer-copy > :nth-child(5):not(.sv-layer-bar) { transition-delay: 280ms; }
.sv-layer.is-live .sv-layer-copy > :nth-child(6):not(.sv-layer-bar) { transition-delay: 350ms; }

.sv-layer-count {
  margin: 0 0 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-family: var(--display-font);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--layer-accent, var(--cyan));
}

.sv-layer-bar {
  display: block;
  width: 68px;
  height: 3px;
  border-radius: 999px;
  background: var(--layer-accent, var(--cyan));
  margin-bottom: 1.3rem;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 200ms;
}

.sv-layer.is-live .sv-layer-bar {
  transform: scaleX(1);
}

.sv-layer-copy h3 {
  margin: 0 0 1rem;
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  line-height: 1.12;
}

.sv-layer-copy > p:not(.sv-layer-count) {
  margin: 0 0 1.4rem;
  color: rgba(240, 247, 252, 0.8);
  line-height: 1.72;
  max-width: 52ch;
  font-size: 1.05rem;
}

.sv-layer-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.9rem;
}

.sv-layer-chips span {
  border: 1px solid rgba(255, 255, 255, 0.26);
  background: rgba(255, 255, 255, 0.05);
  border-radius: 999px;
  padding: 0.44rem 0.9rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(240, 247, 252, 0.92);
}

.sv-layer-media {
  margin: 0;
  position: relative;
  opacity: 0;
  transform: translateY(34px) scale(0.97);
  transition: opacity 700ms ease 120ms, transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 120ms;
}

.sv-layer.is-live .sv-layer-media {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.sv-layer-media img {
  width: 100%;
  aspect-ratio: 4 / 3.1;
  object-fit: cover;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 30px 70px rgba(3, 6, 20, 0.45);
}

.sv-layer-media figcaption {
  position: absolute;
  left: 1.15rem;
  bottom: 1.15rem;
  background: rgba(4, 9, 24, 0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 15px;
  padding: 0.78rem 1.05rem;
  display: grid;
}

.sv-layer-media figcaption strong {
  font-family: var(--display-font);
  font-size: 1.35rem;
  color: var(--layer-accent, var(--cyan));
}

.sv-layer-media figcaption span {
  font-size: 0.8rem;
  color: rgba(240, 247, 252, 0.72);
}

/* ---------- Services hub: industries bento ---------- */

.sv-ind-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.05rem;
}

.sv-ind-tile,
.svc-related-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid transparent;
  background:
    linear-gradient(var(--white), var(--white)) padding-box,
    linear-gradient(150deg, rgba(13, 158, 158, 0.45), rgba(220, 229, 236, 0.9) 40%, rgba(143, 209, 106, 0.4)) border-box;
  border-radius: 22px;
  padding: 1.9rem;
  padding-right: 4.6rem;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1.2), box-shadow 320ms ease;
}

.svc-related-tile {
  grid-column: span 6;
}

.sv-ind-tile::before,
.svc-related-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(300px circle at 85% 12%, rgba(56, 213, 213, 0.25), transparent 60%),
    linear-gradient(170deg, #0a0c2e, #0e4d6e);
  opacity: 0;
  transition: opacity 380ms ease;
}

.sv-ind-tile > *,
.svc-related-tile > * {
  position: relative;
  z-index: 1;
}

.sv-ind-tile h3,
.svc-related-tile h3,
.sv-ind-kicker,
.sv-ind-copy,
.sv-ind-chips span {
  transition: color 380ms ease, background 380ms ease, border-color 380ms ease;
}

.sv-ind-tile:hover,
.svc-related-tile:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px rgba(10, 12, 46, 0.28);
}

.sv-ind-tile:hover::before,
.svc-related-tile:hover::before {
  opacity: 1;
}

.sv-ind-tile:hover h3,
.svc-related-tile:hover h3 {
  color: var(--white);
}

.sv-ind-tile:hover .sv-ind-kicker,
.svc-related-tile:hover .sv-ind-kicker {
  color: #9fe07a;
}

.sv-ind-tile:hover .sv-ind-copy,
.svc-related-tile:hover .sv-ind-copy {
  color: rgba(226, 238, 247, 0.82);
}

.sv-ind-tile:hover .sv-ind-chips span,
.svc-related-tile:hover .sv-ind-chips span {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.28);
  color: #d8f3e9;
}

.sv-ind-arrow {
  position: absolute;
  top: 1.35rem;
  right: 1.35rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  font-size: 1.1rem;
  transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1.2), background 320ms ease, color 320ms ease, border-color 320ms ease;
}

.sv-ind-tile:hover .sv-ind-arrow,
.svc-related-tile:hover .sv-ind-arrow {
  background: var(--white);
  border-color: var(--white);
  color: var(--navy);
  transform: rotate(-45deg) scale(1.08);
}

.sv-ind-kicker {
  margin: 0 0 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-family: var(--display-font);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--ocean);
}

.sv-ind-tile h3,
.svc-related-tile h3 {
  margin: 0 0 0.55rem;
  font-size: 1.28rem;
}

.sv-ind-copy {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.sv-ind-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1.15rem;
}

.sv-ind-chips span {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.34rem 0.78rem;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--ocean);
}

/* ---------- Service detail: progress + hero ---------- */

.svc-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 200;
  background: transparent;
  pointer-events: none;
}

.svc-progress span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--grad-a), var(--grad-b));
  box-shadow: 0 0 12px rgba(53, 224, 208, 0.6);
}

.svc-hero {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: #0a0c2e;
  padding: 6rem 0 5.5rem;
}

.svc-hero .sv-hero-grid {
  -webkit-mask-image: radial-gradient(760px 460px at 70% 30%, #000, transparent 78%);
  mask-image: radial-gradient(760px 460px at 70% 30%, #000, transparent 78%);
}

.svc-hero::before {
  content: "";
  position: absolute;
  width: 60vw;
  height: 44vw;
  right: -12%;
  top: -18%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(13, 158, 158, 0.42), transparent 70%);
  filter: blur(60px);
  animation: sv-drift 18s ease-in-out infinite alternate;
  pointer-events: none;
}

.svc-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: 3.5rem;
  align-items: center;
}

.svc-hero-copy h1 {
  margin: 0 0 1.1rem;
  font-size: clamp(2.2rem, 4.5vw, 3.5rem);
  line-height: 1.08;
}

.svc-hero-copy > p {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.75;
  color: rgba(226, 238, 247, 0.82);
  max-width: 56ch;
}

.svc-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 2.5rem 0 0;
}

.svc-hero-stats div {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 16px;
  padding: 1.05rem;
  background: rgba(255, 255, 255, 0.045);
  backdrop-filter: blur(6px);
}

.svc-hero-stats dt {
  font-family: var(--display-font);
  font-size: 1.4rem;
  font-weight: 700;
  background: linear-gradient(92deg, var(--grad-a), var(--grad-b));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.svc-hero-stats dd {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: rgba(226, 238, 247, 0.7);
  line-height: 1.45;
}

.svc-hero-media {
  margin: 0;
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow: 0 30px 80px rgba(3, 6, 20, 0.55);
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 300ms ease;
}

.svc-hero-media img {
  width: 100%;
  aspect-ratio: 4 / 3.4;
  object-fit: cover;
}

.svc-hero-scan {
  position: absolute;
  inset: 0;
  height: 42%;
  background: linear-gradient(180deg, transparent, rgba(56, 213, 213, 0.3), transparent);
  animation: svc-scan 4.8s ease-in-out infinite;
  pointer-events: none;
}

@keyframes svc-scan {
  0%, 100% { transform: translateY(-70%); }
  50% { transform: translateY(180%); }
}

.svc-hero-media figcaption {
  position: absolute;
  left: 1.15rem;
  bottom: 1.15rem;
  background: rgba(4, 9, 24, 0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 15px;
  padding: 0.72rem 1.05rem;
  display: grid;
}

.svc-hero-media figcaption strong {
  font-family: var(--display-font);
  font-size: 1.3rem;
  color: var(--cyan);
}

.svc-hero-media figcaption span {
  font-size: 0.8rem;
  color: rgba(240, 247, 252, 0.72);
}

/* ---------- Service detail: scrollytelling ---------- */

.svc-scrolly {
  padding: 4.5rem 0;
  --sc-bg: #f5f8fa;
  --sc-ink: var(--ink);
  --sc-muted: var(--muted);
  --sc-card: #ffffff;
  --sc-line: var(--line);
  --sc-eyebrow: var(--ocean);
  --sc-accent: var(--cyan);
  background: var(--sc-bg);
  color: var(--sc-ink);
  transition: background-color 850ms ease, color 850ms ease;
}

.svc-scrolly[data-theme="navy"] {
  --sc-bg: #0a0c2e;
  --sc-ink: #f8fafc;
  --sc-muted: #a7b8cd;
  --sc-card: rgba(255, 255, 255, 0.05);
  --sc-line: rgba(255, 255, 255, 0.16);
  --sc-eyebrow: #38d5d5;
  --sc-accent: #38d5d5;
}

.svc-scrolly[data-theme="ocean"] {
  --sc-bg: #0e4d6e;
  --sc-ink: #f2f9ff;
  --sc-muted: #bcd7e6;
  --sc-card: rgba(255, 255, 255, 0.07);
  --sc-line: rgba(255, 255, 255, 0.22);
  --sc-eyebrow: #9fe07a;
  --sc-accent: #9fe07a;
}

.svc-scrolly .eyebrow {
  color: var(--sc-eyebrow);
  display: inline-block;
  position: relative;
  padding-bottom: 0.5rem;
}

.svc-scrolly .eyebrow::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--sc-accent);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 150ms;
}

.svc-chapter.is-live .eyebrow::after {
  transform: scaleX(1);
}

.svc-scrolly-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 3.5rem;
  align-items: start;
}

.svc-scrolly-media {
  position: relative;
  height: 100%;
}

.svc-media-frame {
  position: sticky;
  top: 110px;
  height: min(70vh, 620px);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid transparent;
  background:
    linear-gradient(#0b1024, #0b1024) padding-box,
    linear-gradient(160deg, rgba(53, 224, 208, 0.5), rgba(11, 16, 36, 0.6) 40%, rgba(159, 224, 122, 0.45)) border-box;
  color: #e2e8f0;
  box-shadow: 0 30px 80px rgba(3, 6, 20, 0.35);
}

.svc-media-layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(28px) scale(1.02);
  transition: opacity 650ms ease, transform 650ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.svc-media-layer.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.svc-media-layer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svc-media-caption {
  position: absolute;
  left: 1.15rem;
  bottom: 3.6rem;
  background: rgba(4, 9, 24, 0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 15px;
  padding: 0.72rem 1.05rem;
  display: grid;
}

.svc-media-caption strong {
  font-family: var(--display-font);
  font-size: 1.3rem;
  color: var(--cyan);
}

.svc-media-caption span {
  font-size: 0.8rem;
  color: rgba(240, 247, 252, 0.72);
}

.svc-media-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.3rem;
  background:
    radial-gradient(480px 300px at 85% 0%, rgba(13, 158, 158, 0.3), transparent 65%),
    #0b1024;
}

.svc-media-big {
  font-family: var(--display-font);
  font-size: clamp(4.5rem, 8vw, 7rem);
  line-height: 1;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, var(--grad-a), #0d9e9e);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.svc-media-panel > span {
  margin-top: 0.7rem;
  max-width: 22ch;
  color: rgba(234, 242, 251, 0.78);
  font-weight: 600;
  line-height: 1.5;
}

.svc-media-panel ul {
  list-style: none;
  margin: 1.7rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.svc-media-panel ul li {
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
  border-radius: 11px;
  padding: 0.58rem 0.85rem;
  font-size: 0.85rem;
  color: rgba(234, 242, 251, 0.85);
}

.svc-media-steps {
  display: flex;
  gap: 0.5rem;
  margin-top: 1.7rem;
}

.svc-media-steps i {
  width: 28px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
}

.svc-media-steps i:first-child {
  background: linear-gradient(90deg, var(--grad-a), var(--grad-b));
}

.svc-media-dots {
  position: absolute;
  left: 50%;
  bottom: 1.05rem;
  transform: translateX(-50%);
  display: flex;
  gap: 0.55rem;
  z-index: 3;
}

.svc-media-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(4, 9, 24, 0.5);
  padding: 0;
  cursor: pointer;
  transition: background 250ms ease, transform 250ms ease, border-color 250ms ease;
}

.svc-media-dot.is-active {
  background: var(--cyan);
  border-color: var(--cyan);
  transform: scale(1.3);
}

.svc-chapters {
  display: grid;
}

.svc-chapter {
  min-height: 62vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 2.5rem 0 5rem;
}

.svc-chapter:first-child {
  padding-top: 0.5rem;
}

.svc-chapter:last-child {
  padding-bottom: 1.5rem;
}

.svc-chapter h2 {
  margin: 0 0 1.1rem;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.18;
  max-width: 26ch;
}

.svc-lead,
.svc-lead-more {
  margin: 0 0 1rem;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--sc-muted);
  max-width: 60ch;
}

.svc-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.2rem;
}

.svc-chip-row span {
  border: 1px solid var(--sc-line);
  background: var(--sc-card);
  border-radius: 999px;
  padding: 0.46rem 0.92rem;
  font-size: 0.84rem;
  font-weight: 600;
}

.svc-challenge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.6rem;
}

.svc-challenge {
  position: relative;
  border: 1px solid var(--sc-line);
  background: var(--sc-card);
  border-radius: 18px;
  padding: 1.45rem;
  transition: transform 300ms cubic-bezier(0.2, 0.7, 0.2, 1.2), border-color 300ms ease, background 300ms ease;
}

.svc-challenge:hover {
  transform: translateY(-5px);
  border-color: var(--sc-accent);
}

.svc-challenge h3 {
  margin: 0 0 0.5rem;
  font-size: 1.03rem;
  line-height: 1.35;
}

.svc-challenge p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--sc-muted);
}

.svc-step-rail {
  list-style: none;
  margin: 1.7rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.1rem;
}

.svc-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.15rem;
  border-left: 2px solid var(--sc-line);
  padding: 0.45rem 0 0.45rem 1.25rem;
  transition: border-color 300ms ease;
}

.svc-step:hover {
  border-color: var(--sc-accent);
}

.svc-step-num {
  font-family: var(--display-font);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--sc-accent);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.svc-step strong {
  display: block;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}

.svc-step ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.95rem;
}

.svc-step ul li {
  font-size: 0.86rem;
  color: var(--sc-muted);
}

.svc-step ul li::before {
  content: "\2713\0020";
  color: var(--sc-accent);
  font-weight: 800;
}

/* ---------- Service detail: capabilities press-tabs ---------- */

.svc-capabilities .capability-tab {
  border-radius: 14px;
  box-shadow: 0 4px 0 rgba(10, 12, 46, 0.16);
  transform: translateY(-2px);
  transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease, color 150ms ease;
}

.svc-capabilities .capability-tab:active {
  transform: translateY(2px);
  box-shadow: 0 0 0 rgba(10, 12, 46, 0.16);
}

.svc-capabilities .capability-tab.is-active {
  box-shadow: 0 2px 0 rgba(10, 12, 46, 0.35);
}

.svc-capabilities .capability-panel.is-active .capability-chip-grid span {
  animation: svc-chip-pop 420ms cubic-bezier(0.2, 0.7, 0.2, 1.3) backwards;
  animation-delay: calc(var(--i, 0) * 28ms);
}

@keyframes svc-chip-pop {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.94);
  }
}

/* ---------- Service detail: related + closing ---------- */

.svc-related-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.05rem;
}

.svc-related-tile {
  grid-column: span 6;
}

.svc-closing {
  position: relative;
  overflow: hidden;
  background: #0a0c2e;
  color: var(--white);
  padding: 6.5rem 0;
}

.svc-closing::before {
  content: "";
  position: absolute;
  width: 52vw;
  height: 40vw;
  left: -10%;
  bottom: -30%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(61, 187, 142, 0.32), transparent 70%);
  filter: blur(60px);
  pointer-events: none;
}

.svc-closing-inner {
  position: relative;
  z-index: 2;
}

.svc-closing-inner h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.9rem, 3.5vw, 2.8rem);
  max-width: 26ch;
}

.svc-closing-inner p {
  margin: 0;
  color: rgba(226, 238, 247, 0.78);
  line-height: 1.75;
  max-width: 62ch;
}

/* ---------- Responsive ---------- */

@media (max-width: 1020px) {
  .sv-tile-feature {
    grid-column: span 12;
    grid-row: auto;
    min-height: 380px;
  }

  .sv-tile-count,
  .sv-tile-video,
  .sv-tile-life,
  .sv-tile-marquee,
  .sv-tile-cta {
    grid-column: span 6;
  }

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

  .svc-scrolly-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .svc-scrolly-media {
    height: auto;
  }

  .svc-media-frame {
    top: 90px;
    height: 38vh;
    z-index: 5;
  }

  .svc-chapter {
    min-height: 0;
    padding: 2.5rem 0 3.5rem;
  }

  .svc-chapter:first-child {
    padding-top: 2.5rem;
  }

  .svc-hero-grid,
  .sv-layer-inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .sv-layer {
    min-height: 0;
  }

  .sv-layer-inner {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  .sv-hero-ghost {
    display: none;
  }
}

@media (max-width: 680px) {
  .sv-tile,
  .sv-tile-count,
  .sv-tile-video,
  .sv-tile-life,
  .sv-tile-marquee,
  .sv-tile-cta {
    grid-column: span 12;
  }

  .sv-ind-grid {
    grid-template-columns: 1fr;
  }

  .svc-related-tile {
    grid-column: span 12;
  }

  .svc-challenge-grid {
    grid-template-columns: 1fr;
  }

  .svc-hero-stats {
    grid-template-columns: 1fr;
  }

  .sv-hero {
    padding-top: 4.5rem;
  }

  .svc-media-frame {
    height: 44vh;
  }

  .push-btn .pb-face {
    min-height: 46px;
    padding: 0.8rem 1.3rem;
  }
}

/* ---------- Figma-inspired services palette + bento motion refresh ---------- */

body:has(.sv-page),
body:has(.svc-page),
.sv-page,
.svc-page {
  --display-font: "Inter", "DM Sans", Arial, sans-serif;
  --sv-ink: #1e293b;
  --sv-muted: #75707c;
  --sv-blue: #0e4d6e;
  --sv-pink: #3dbb8e;
  --sv-lavender: #e2e8f0;
  --sv-purple: #0e4d6e;
  --sv-paper: #fffafd;
  --sv-panel: rgba(255, 255, 255, 0.88);
  --sv-line: rgba(28, 28, 35, 0.09);
  --sv-shadow: 0 30px 90px rgba(10, 12, 46, 0.16);
  --sv-deep: #0f172a;
  --grad-a: #0e4d6e;
  --grad-b: #3dbb8e;
  font-family: var(--display-font);
}

.sv-page,
.svc-page {
  color: var(--sv-ink);
  background:
    radial-gradient(800px 440px at 8% 10%, rgba(61, 187, 142, 0.18), transparent 62%),
    radial-gradient(900px 560px at 88% 22%, rgba(14, 77, 110, 0.14), transparent 64%),
    var(--sv-paper);
}

.sv-page h1,
.sv-page h2,
.sv-page h3,
.svc-page h1,
.svc-page h2,
.svc-page h3 {
  color: var(--sv-ink);
  font-weight: 760;
  letter-spacing: 0;
}

.sv-page p,
.svc-page p {
  color: var(--sv-muted);
}

.sv-page .eyebrow,
.svc-page .eyebrow,
.svc-page .sticky-subnav a {
  color: var(--sv-blue);
}

.sv-page .eyebrow.light,
.svc-page .eyebrow.light {
  color: var(--sv-blue);
}

.sv-grad,
.svc-hero-stats dt,
.svc-media-big {
  background: linear-gradient(92deg, var(--sv-blue), var(--sv-purple) 48%, var(--sv-pink));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.push-btn {
  border-radius: 18px;
}

.push-btn .pb-edge {
  border-radius: 18px;
  background: rgba(26, 31, 48, 0.16);
}

.push-btn .pb-face {
  min-height: 52px;
  border-radius: 18px;
  background: linear-gradient(135deg, #0e4d6e 0%, #3dbb8e 52%, #8fd16a 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.52), 0 14px 34px rgba(10, 12, 46, 0.22);
  color: #ffffff;
  transform: translateY(-5px);
}

.push-btn.ghost-dark .pb-face,
.push-btn.light .pb-face {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.62);
  color: var(--sv-ink);
  backdrop-filter: blur(14px);
}

.push-btn.layer .pb-face {
  background: linear-gradient(135deg, var(--layer-accent), rgba(255, 255, 255, 0.92));
  color: #0f172a;
}

.sv-hero {
  color: var(--sv-ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(245, 249, 251, 0.9) 44%, rgba(231, 241, 248, 0.92) 100%),
    radial-gradient(780px 420px at 18% 4%, rgba(223, 246, 239, 0.85), transparent 70%),
    radial-gradient(720px 420px at 82% 10%, rgba(191, 211, 255, 0.8), transparent 68%);
}

.sv-hero::after {
  content: "";
  position: absolute;
  left: max(1.25rem, calc((100vw - var(--max)) / 2));
  right: max(1.25rem, calc((100vw - var(--max)) / 2));
  top: 4.8rem;
  bottom: 5.7rem;
  border-radius: 44px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 34px 120px rgba(10, 12, 46, 0.16);
  pointer-events: none;
}

.sv-hero-aurora::before {
  background: radial-gradient(closest-side, rgba(61, 187, 142, 0.4), transparent 70%);
}

.sv-hero-aurora::after {
  background: radial-gradient(closest-side, rgba(14, 77, 110, 0.28), transparent 70%);
}

.sv-hero-grid {
  opacity: 0.42;
  background-image:
    linear-gradient(rgba(14, 77, 110, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14, 77, 110, 0.08) 1px, transparent 1px);
}

.sv-hero-inner {
  z-index: 3;
  padding-top: 4rem;
}

.sv-hero-ghost {
  color: rgba(14, 77, 110, 0.05);
  -webkit-text-stroke: 1px rgba(14, 77, 110, 0.1);
}

.sv-headline {
  max-width: 18ch;
}

.sv-lede {
  color: rgba(30, 41, 59, 0.64);
  font-size: clamp(1.08rem, 1.4vw, 1.25rem);
}

.sv-ticker {
  background: rgba(18, 26, 39, 0.92);
  border-color: rgba(255, 255, 255, 0.15);
}

.sv-ticker-track span {
  color: rgba(248, 250, 252, 0.72);
}

.sv-ticker-track i {
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sv-blue), var(--sv-pink));
  transform: none;
}

.sv-bento,
.svc-capabilities,
.sd-standards,
.detail-drawers-section,
.svc-related {
  background: var(--sv-paper);
}

.sv-bento-grid {
  gap: 1.28rem;
  grid-auto-rows: minmax(168px, auto);
}

.sv-tile {
  border-radius: 30px;
  border: 1px solid rgba(255, 255, 255, 0.66);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(245, 249, 251, 0.78)) padding-box,
    linear-gradient(145deg, rgba(255, 255, 255, 0.8), rgba(61, 187, 142, 0.22), rgba(20, 88, 173, 0.16)) border-box;
  box-shadow: 0 20px 70px rgba(10, 12, 46, 0.11);
}

.sv-tile::after {
  background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(61, 187, 142, 0.14), transparent 68%);
}

.sv-tile-feature {
  border-radius: 34px;
  background: #0f172a;
}

.sv-tile-feature-overlay {
  background:
    radial-gradient(580px 320px at 84% 0%, rgba(61, 187, 142, 0.22), transparent 60%),
    linear-gradient(200deg, rgba(255, 255, 255, 0) 16%, rgba(17, 24, 39, 0.84) 86%);
}

.sv-tile-feature-copy h3,
.sv-tile-feature-copy p,
.sv-stack-head h2,
.sv-stack-head p,
.sv-layer-copy h3,
.sv-layer-copy > p:not(.sv-layer-count),
.svc-closing-inner h2,
.svc-closing-inner p {
  color: #fffafd;
}

.sv-tile-count {
  background:
    radial-gradient(420px 260px at 100% 0%, rgba(61, 187, 142, 0.22), transparent 62%),
    linear-gradient(135deg, #0f172a, #0e4d6e 62%, #0f172a);
}

.sv-tile-count strong {
  background: linear-gradient(180deg, #ffffff, #9fc9ff);
  -webkit-background-clip: text;
  background-clip: text;
}

.sv-tile-count div:last-child strong {
  background: linear-gradient(180deg, #ffffff, #ff9bd4);
  -webkit-background-clip: text;
  background-clip: text;
}

.sv-tile-video,
.sv-stack-head,
.sv-stack,
.svc-closing {
  background: #0f172a;
}

.sv-life-dot {
  background: linear-gradient(135deg, var(--sv-blue), var(--sv-pink));
}

.sv-tile-marquee,
.sv-tile-life,
.sv-tile-cta {
  background: rgba(255, 255, 255, 0.8);
}

.sv-mini-marquee li,
.sv-layer-chips span,
.sv-ind-chips span,
.svc-chip-row span,
.capability-chip-grid span,
.marquee-track span {
  border-color: rgba(14, 77, 110, 0.12);
  background: rgba(255, 255, 255, 0.72);
  color: var(--sv-blue);
}

.sv-layer {
  color: #fffafd;
  border-radius: 42px 42px 0 0;
  background:
    radial-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1.7px) 0 0 / 32px 32px,
    radial-gradient(900px 480px at 88% -10%, rgba(255, 255, 255, 0.13), transparent 62%),
    linear-gradient(135deg, var(--layer-bg, #0f172a), #0f172a);
}

.sv-layer-media img {
  border-radius: 32px;
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.32);
}

.sv-layer-media figcaption,
.svc-media-caption,
.svc-hero-media figcaption {
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--sv-ink);
  border-color: rgba(255, 255, 255, 0.56);
}

.sv-layer-media figcaption strong,
.svc-media-caption strong,
.svc-hero-media figcaption strong {
  color: var(--sv-blue);
}

.sv-layer-media figcaption span,
.svc-media-caption span,
.svc-hero-media figcaption span {
  color: rgba(30, 41, 59, 0.58);
}

.sv-industries {
  background:
    linear-gradient(180deg, #f8fafc 0%, #e2e8f0 52%, #e2e8f0 100%);
}

.sv-industries .section-heading h2,
.sv-industries .section-heading .eyebrow {
  color: #ffffff;
}

.sv-ind-tile,
.svc-related-tile {
  min-height: 320px;
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(245, 249, 251, 0.86)) padding-box,
    linear-gradient(145deg, rgba(255, 255, 255, 0.78), rgba(20, 88, 173, 0.14), rgba(61, 187, 142, 0.2)) border-box;
  box-shadow: 0 22px 70px rgba(14, 77, 110, 0.13);
}

.sv-ind-tile::before,
.svc-related-tile::before {
  background:
    radial-gradient(460px circle at 0% 100%, rgba(255, 255, 255, 0.38), transparent 42%),
    linear-gradient(135deg, #dceeff 0%, #f2e8ff 52%, #ffd9ef 100%);
  clip-path: polygon(0 100%, 0 86%, 14% 100%);
  opacity: 0.86;
  transition: clip-path 620ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}

.sv-ind-tile::after,
.svc-related-tile::after {
  content: "";
  position: absolute;
  left: 2.55rem;
  bottom: 2.7rem;
  z-index: 1;
  width: 128%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--sv-blue), var(--sv-pink), transparent);
  opacity: 0;
  transform: rotate(-43deg) scaleX(0);
  transform-origin: left center;
  transition: opacity 180ms ease, transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-ind-tile:hover::before,
.svc-related-tile:hover::before {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 1;
}

.sv-ind-tile:hover::after,
.svc-related-tile:hover::after {
  opacity: 0.72;
  transform: rotate(-43deg) scaleX(0.72);
}

.sv-ind-tile:hover h3,
.svc-related-tile:hover h3,
.sv-ind-tile:hover .sv-ind-copy,
.svc-related-tile:hover .sv-ind-copy {
  color: var(--sv-ink);
}

.sv-ind-tile:hover .sv-ind-kicker,
.svc-related-tile:hover .sv-ind-kicker {
  color: var(--sv-blue);
}

.sv-ind-arrow {
  top: auto;
  right: auto;
  left: 1.15rem;
  bottom: 1.15rem;
  z-index: 3;
  background: #0e4d6e;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.72);
  transition:
    left 620ms cubic-bezier(0.22, 1, 0.36, 1),
    right 620ms cubic-bezier(0.22, 1, 0.36, 1),
    top 620ms cubic-bezier(0.22, 1, 0.36, 1),
    bottom 620ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 620ms cubic-bezier(0.22, 1, 0.36, 1),
    background 260ms ease,
    color 260ms ease;
}

.sv-ind-tile:hover .sv-ind-arrow,
.svc-related-tile:hover .sv-ind-arrow {
  left: calc(100% - 3.9rem);
  bottom: calc(100% - 3.9rem);
  background: #ffffff;
  color: var(--sv-blue);
  transform: rotate(-45deg) scale(1.08);
}

.sv-ind-kicker {
  color: var(--sv-blue);
}

.sv-ind-copy {
  color: rgba(30, 41, 59, 0.62);
}

.svc-hero {
  color: var(--sv-ink);
  background:
    linear-gradient(180deg, #ffffff 0%, #f8fafc 48%, #e2e8f0 100%),
    radial-gradient(780px 420px at 78% 6%, rgba(179, 209, 255, 0.75), transparent 70%);
}

.svc-hero::after {
  content: "";
  position: absolute;
  left: max(1.25rem, calc((100vw - var(--max)) / 2));
  right: max(1.25rem, calc((100vw - var(--max)) / 2));
  top: 3.8rem;
  bottom: 3.8rem;
  border-radius: 44px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: var(--sv-shadow);
  pointer-events: none;
}

.svc-hero::before {
  background: radial-gradient(closest-side, rgba(61, 187, 142, 0.28), transparent 70%);
}

.svc-hero-grid {
  z-index: 3;
}

.svc-hero-copy > p,
.svc-hero-stats dd {
  color: rgba(30, 41, 59, 0.62);
}

.svc-hero-stats div {
  border-color: rgba(14, 77, 110, 0.1);
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 16px 42px rgba(10, 12, 46, 0.08);
}

.svc-hero-media {
  border-radius: 34px;
  border-color: rgba(255, 255, 255, 0.7);
  box-shadow: var(--sv-shadow);
}

.svc-scrolly {
  padding: 5.5rem 0;
  --sc-bg: #fffafd;
  --sc-ink: var(--sv-ink);
  --sc-muted: var(--sv-muted);
  --sc-card: rgba(255, 255, 255, 0.78);
  --sc-line: rgba(14, 77, 110, 0.1);
  --sc-eyebrow: var(--sv-blue);
  --sc-accent: var(--sv-pink);
  background:
    radial-gradient(700px 360px at 15% 8%, rgba(61, 187, 142, 0.12), transparent 64%),
    var(--sc-bg);
}

.svc-scrolly[data-theme="navy"] {
  --sc-bg: #0f172a;
  --sc-ink: #fffafd;
  --sc-muted: rgba(248, 250, 252, 0.72);
  --sc-card: rgba(255, 255, 255, 0.08);
  --sc-line: rgba(255, 255, 255, 0.16);
  --sc-eyebrow: #3dbb8e;
  --sc-accent: #3dbb8e;
}

.svc-scrolly[data-theme="ocean"] {
  --sc-bg: #f8fafc;
  --sc-ink: var(--sv-ink);
  --sc-muted: rgba(30, 41, 59, 0.62);
  --sc-card: rgba(255, 255, 255, 0.82);
  --sc-line: rgba(14, 77, 110, 0.12);
  --sc-eyebrow: var(--sv-blue);
  --sc-accent: #7b66c2;
}

.svc-scrolly-grid {
  grid-template-columns: minmax(0, 5.3fr) minmax(0, 6.7fr);
}

.svc-media-frame {
  border-radius: 38px;
  border-color: rgba(255, 255, 255, 0.8);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(245, 249, 251, 0.78)) padding-box,
    linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(61, 187, 142, 0.24), rgba(20, 88, 173, 0.14)) border-box;
  color: var(--sv-ink);
  box-shadow: var(--sv-shadow);
  transform-origin: 50% 50%;
  transition: transform 850ms cubic-bezier(0.22, 1, 0.36, 1), border-radius 850ms cubic-bezier(0.22, 1, 0.36, 1), background 850ms ease;
}

.svc-scrolly[data-active-index="1"] .svc-media-frame {
  transform: translate3d(34px, 22px, 0) scale(0.92);
  border-radius: 30px;
}

.svc-scrolly[data-active-index="2"] .svc-media-frame {
  transform: translate3d(-20px, 34px, 0) scale(0.86);
  border-radius: 24px;
}

.svc-media-layer {
  transform: translateY(34px) scale(0.98);
  clip-path: inset(10% 10% 10% 10% round 30px);
  transition: opacity 680ms ease, transform 850ms cubic-bezier(0.22, 1, 0.36, 1), clip-path 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

.svc-media-layer.is-active {
  transform: translateY(0) scale(1);
  clip-path: inset(0 0 0 0 round 34px);
}

.svc-media-layer img {
  filter: saturate(1.04) contrast(1.02);
}

.svc-media-panel {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(420px 260px at 100% 0%, rgba(61, 187, 142, 0.18), transparent 62%),
    linear-gradient(145deg, #ffffff, #f8fafc 56%, #e2e8f0);
  color: var(--sv-ink);
}

.svc-media-layer .svc-panel-photo {
  position: absolute;
  right: 1.1rem;
  top: 1.1rem;
  width: 43%;
  aspect-ratio: 4 / 3;
  border-radius: 24px;
  object-fit: cover;
  box-shadow: 0 20px 54px rgba(10, 12, 46, 0.16);
}

.svc-media-layer .svc-panel-photo.wide {
  left: 1.1rem;
  right: 1.1rem;
  width: auto;
  height: 34%;
}

.svc-media-panel > span,
.svc-media-panel ul li,
.svc-step ul li,
.svc-challenge p {
  color: var(--sc-muted);
}

.svc-media-panel ul li {
  border-color: rgba(14, 77, 110, 0.1);
  background: rgba(255, 255, 255, 0.62);
}

.svc-chapters {
  gap: 16vh;
}

.svc-chapter {
  min-height: 56vh;
  padding: 2rem;
  border: 1px solid var(--sc-line);
  border-radius: 34px;
  background: var(--sc-card);
  box-shadow: 0 22px 70px rgba(10, 12, 46, 0.08);
  backdrop-filter: blur(14px);
  opacity: 0.62;
  transform: translateY(34px) scale(0.985);
  transition: opacity 650ms ease, transform 650ms cubic-bezier(0.22, 1, 0.36, 1), background 650ms ease, border-color 650ms ease;
}

.svc-chapter.is-live {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.svc-challenge {
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.7);
}

.svc-step {
  border-left-color: rgba(14, 77, 110, 0.16);
}

.svc-step-num {
  color: var(--sc-accent);
}

.svc-capabilities .capability-tab {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(14, 77, 110, 0.12);
}

.svc-capabilities .capability-tab.is-active,
.svc-capabilities .capability-tab:hover {
  background: linear-gradient(135deg, var(--sv-blue), var(--sv-purple) 50%, var(--sv-pink));
  border-color: transparent;
}

.svc-related-grid {
  gap: 1.28rem;
}

.svc-closing {
  background:
    radial-gradient(760px 420px at 12% 0%, rgba(61, 187, 142, 0.22), transparent 70%),
    #0f172a;
}

@media (max-width: 1020px) {
  .sv-hero::after,
  .svc-hero::after {
    left: 1rem;
    right: 1rem;
    border-radius: 32px;
  }

  .svc-scrolly[data-active-index] .svc-media-frame {
    transform: none;
  }

  .svc-chapters {
    gap: 2rem;
  }

  .svc-chapter {
    min-height: 0;
  }
}

@media (max-width: 680px) {
  .sv-hero::after,
  .svc-hero::after {
    display: none;
  }

  .sv-hero-inner {
    padding-top: 0;
  }

  .sv-headline {
    font-size: clamp(2.4rem, 15vw, 4rem);
  }

  .sv-tile,
  .sv-ind-tile,
  .svc-related-tile,
  .svc-chapter,
  .svc-media-frame,
  .svc-hero-media {
    border-radius: 24px;
  }

  .svc-panel-photo,
  .svc-panel-photo.wide {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    margin-bottom: 1rem;
  }
}

/* ---------- AVEX blue-green corrective pass ---------- */

body:has(.sv-page),
body:has(.svc-page),
.sv-page,
.svc-page {
  --display-font: "Inter", "DM Sans", Arial, sans-serif;
  --sv-ink: #1e293b;
  --sv-muted: #94a3b8;
  --sv-navy: #0a0c2e;
  --sv-navy-2: #0f172a;
  --sv-teal: #0d9e9e;
  --sv-mint: #3dbb8e;
  --sv-mint-soft: #e2e8f0;
  --sv-blue: #0e4d6e;
  --sv-blue-soft: #e2e8f0;
  --sv-green-dark: #0a0c2e;
  --sv-surface: #f8fafc;
  --sv-panel: #ffffff;
  --sv-line: rgba(10, 12, 46, 0.12);
  --sv-shadow: 0 24px 70px rgba(10, 12, 46, 0.12);
  --grad-a: var(--sv-teal);
  --grad-b: var(--sv-teal);
  color: var(--sv-ink);
  background: var(--white);
  font-family: var(--display-font);
}

.sv-page,
.svc-page {
  background: var(--white);
}

.sv-page h1,
.sv-page h2,
.sv-page h3,
.svc-page h1,
.svc-page h2,
.svc-page h3 {
  color: var(--sv-ink);
  font-weight: 760;
  letter-spacing: 0;
}

.sv-page p,
.svc-page p {
  color: var(--sv-muted);
}

.sv-page .eyebrow,
.svc-page .eyebrow {
  color: #0e4d6e;
}

.sv-grad,
.svc-hero-stats dt,
.svc-media-big {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  color: var(--sv-teal);
}

.push-btn .pb-edge {
  background: rgba(10, 12, 46, 0.18);
}

.push-btn .pb-face {
  background: var(--sv-teal);
  color: var(--white);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38), 0 14px 34px rgba(13, 158, 158, 0.2);
}

.push-btn .pb-face::before,
.push-btn .pb-arrow {
  display: none;
}

.push-btn.ghost-dark .pb-face,
.push-btn.light .pb-face {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--white);
  box-shadow: none;
}

.push-btn.layer .pb-face {
  background: var(--layer-accent, var(--sv-teal));
  color: var(--sv-navy);
}

.sv-hero {
  color: var(--white);
  background: var(--sv-navy);
}

.sv-hero::after,
.sv-hero-aurora,
.sv-noise {
  display: none;
}

.sv-hero-grid {
  opacity: 0.24;
  background-size: 72px 72px;
  background-image:
    linear-gradient(rgba(61, 187, 142, 0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(61, 187, 142, 0.12) 1px, transparent 1px);
  -webkit-mask-image: none;
  mask-image: none;
}

.sv-hero-ghost {
  color: rgba(61, 187, 142, 0.07);
  -webkit-text-stroke: 0;
}

.sv-hero .eyebrow,
.sv-hero .eyebrow.light,
.sv-stack-head .eyebrow,
.sv-layer-count,
.svc-closing .eyebrow {
  color: var(--sv-mint);
}

.sv-headline,
.sv-headline .sv-w:not(.sv-grad) {
  color: var(--white);
}

.sv-headline {
  max-width: 17ch;
}

.sv-lede {
  max-width: 760px;
  color: rgba(248, 250, 252, 0.82);
}

.sv-ticker {
  background: #0f172a;
  border-color: rgba(61, 187, 142, 0.22);
}

.sv-ticker-track span {
  color: rgba(248, 250, 252, 0.72);
}

.sv-ticker-track i {
  border-radius: 50%;
  background: var(--sv-mint);
  transform: none;
}

.sv-bento,
.sd-standards,
.detail-drawers-section,
.svc-related {
  background: var(--sv-surface);
}

.sv-tile {
  border-radius: 28px;
  border: 1px solid var(--sv-line);
  background: var(--sv-panel);
  box-shadow: 0 18px 52px rgba(10, 12, 46, 0.08);
}

.sv-tile::after {
  background: rgba(61, 187, 142, 0.08);
}

.sv-tile-feature,
.sv-tile-video,
.sv-tile-count {
  background: var(--sv-navy);
}

.sv-tile-feature-overlay {
  background: rgba(10, 12, 46, 0.62);
}

.sv-tile-feature-copy h3,
.sv-tile-feature-copy p,
.sv-tile-count span {
  color: rgba(255, 255, 255, 0.86);
}

.sv-tile-count strong,
.sv-tile-count div:last-child strong {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  color: var(--sv-mint);
}

.sv-life-dot {
  background: var(--sv-teal);
}

.sv-mini-marquee li,
.sv-layer-chips span,
.sv-ind-chips span,
.svc-chip-row span,
.capability-chip-grid span,
.marquee-track span {
  border-color: rgba(13, 158, 158, 0.24);
  background: rgba(255, 255, 255, 0.74);
  color: #0e4d6e;
}

.sv-stack-head,
.sv-stack,
.svc-closing {
  background: var(--sv-navy);
}

.sv-stack-head h2,
.sv-stack-head p,
.sv-layer-copy h3,
.sv-layer-copy > p:not(.sv-layer-count),
.svc-closing-inner h2,
.svc-closing-inner p {
  color: var(--white);
}

.sv-layer {
  border-radius: 34px 34px 0 0;
  background:
    radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1.7px) 0 0 / 34px 34px,
    var(--layer-bg, var(--sv-navy));
  box-shadow: 0 -24px 64px rgba(15, 23, 42, 0.48);
}

.sv-layer-bar {
  background: var(--layer-accent, var(--sv-teal));
}

.sv-layer-media img {
  border-radius: 26px;
  border-color: rgba(255, 255, 255, 0.16);
}

.sv-layer-media figcaption,
.svc-media-caption,
.svc-hero-media figcaption {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--sv-ink);
  border-color: rgba(10, 12, 46, 0.08);
}

.sv-layer-media figcaption strong,
.svc-media-caption strong,
.svc-hero-media figcaption strong {
  color: var(--sv-teal);
}

.sv-layer-media figcaption span,
.svc-media-caption span,
.svc-hero-media figcaption span {
  color: var(--sv-muted);
}

.sv-industries {
  position: relative;
  overflow: hidden;
  background: var(--white);
}

.sv-industries::before {
  content: "";
  position: absolute;
  left: -12%;
  top: 4rem;
  width: 124%;
  height: 72%;
  border: 1px solid rgba(13, 158, 158, 0.16);
  border-radius: 50%;
  pointer-events: none;
}

.sv-industries .section-inner {
  position: relative;
  z-index: 1;
}

.sv-industries .section-heading h2,
.sv-industries .section-heading .eyebrow {
  color: var(--sv-ink);
}

.sv-ind-grid {
  gap: 1.35rem;
}

.sv-ind-tile,
.svc-related-tile {
  min-height: 385px;
  border-radius: 28px;
  border: 1px solid rgba(10, 12, 46, 0.08);
  background: var(--card-bg, var(--sv-blue-soft));
  color: var(--card-ink, var(--sv-ink));
  box-shadow: 0 18px 48px rgba(10, 12, 46, 0.08);
  padding: 2.2rem;
  padding-right: 2.2rem;
  isolation: isolate;
}

.sv-ind-tile::before,
.svc-related-tile::before {
  content: "";
  position: absolute;
  right: -4rem;
  bottom: -5rem;
  width: 16rem;
  height: 16rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.13);
  opacity: 1;
  clip-path: none;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}

.sv-ind-tile::after,
.svc-related-tile::after {
  content: "";
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 7.5rem;
  height: 7.5rem;
  border: 2px solid currentColor;
  border-radius: 50%;
  opacity: 0.08;
  transform: none;
  background: none;
}

.sv-ind-tile:hover,
.svc-related-tile:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 70px rgba(10, 12, 46, 0.15);
}

.sv-ind-tile:hover::before,
.svc-related-tile:hover::before {
  transform: translate(-1.3rem, -1rem) scale(1.12);
}

.sv-ind-tile:hover::after,
.svc-related-tile:hover::after {
  opacity: 0.14;
  transform: none;
}

.sv-ind-tone-0 {
  --card-bg: #3dbb8e;
  --card-ink: #1e293b;
  --card-muted: rgba(30, 41, 59, 0.7);
  --card-label: rgba(30, 41, 59, 0.72);
}

.sv-ind-tone-1 {
  --card-bg: #0a0c2e;
  --card-ink: #ffffff;
  --card-muted: rgba(248, 250, 252, 0.78);
  --card-label: #3dbb8e;
}

.sv-ind-tone-2 {
  --card-bg: #f8fafc;
  --card-ink: #1e293b;
  --card-muted: #94a3b8;
  --card-label: #0e4d6e;
}

.sv-ind-tone-3 {
  --card-bg: #e2e8f0;
  --card-ink: #1e293b;
  --card-muted: #94a3b8;
  --card-label: #0e4d6e;
}

.sv-ind-tone-4 {
  --card-bg: #0e4d6e;
  --card-ink: #ffffff;
  --card-muted: rgba(248, 250, 252, 0.82);
  --card-label: #8fd16a;
}

.sv-ind-tone-5 {
  --card-bg: #0a0c2e;
  --card-ink: #ffffff;
  --card-muted: rgba(248, 250, 252, 0.76);
  --card-label: #3dbb8e;
}

.sv-ind-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 2.35rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.18);
}

.sv-ind-icon::before,
.sv-ind-icon::after {
  content: "";
  position: absolute;
  border: 2px solid currentColor;
  opacity: 0.52;
}

.sv-ind-icon::before {
  width: 22px;
  height: 24px;
  border-radius: 7px;
}

.sv-ind-icon::after {
  width: 12px;
  height: 2px;
  border-width: 2px 0 0;
  transform: translateY(9px);
}

.sv-ind-arrow {
  display: none;
}

.sv-ind-kicker,
.sv-ind-tile:hover .sv-ind-kicker,
.svc-related-tile:hover .sv-ind-kicker {
  color: var(--card-label, var(--sv-teal));
  opacity: 1;
}

.sv-ind-tile h3,
.svc-related-tile h3,
.sv-ind-tile:hover h3,
.svc-related-tile:hover h3 {
  color: var(--card-ink, var(--sv-ink));
}

.sv-ind-copy,
.sv-ind-tile:hover .sv-ind-copy,
.svc-related-tile:hover .sv-ind-copy {
  color: var(--card-muted, var(--sv-muted));
  opacity: 1;
}

.sv-ind-chips span {
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.16);
  color: var(--card-ink, #0e4d6e);
}

.sv-ind-tone-2 .sv-ind-chips span,
.sv-ind-tone-3 .sv-ind-chips span {
  border-color: rgba(10, 12, 46, 0.08);
  background: rgba(255, 255, 255, 0.66);
}

.sv-ind-link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-top: auto;
  font-weight: 760;
  color: var(--card-ink, var(--sv-ink));
  opacity: 0.96;
}

.svc-hero {
  color: var(--white);
  background: var(--sv-navy);
}

.svc-hero::before,
.svc-hero::after {
  display: none;
}

.svc-hero .sv-hero-grid {
  opacity: 0.18;
}

.svc-hero-copy h1,
.svc-hero-copy > p,
.svc-hero-stats dd {
  color: var(--white);
}

.svc-hero-copy > p,
.svc-hero-stats dd {
  opacity: 0.78;
}

.svc-hero-stats div {
  border-color: rgba(61, 187, 142, 0.2);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

.svc-hero-media {
  border-radius: 28px;
  border-color: rgba(61, 187, 142, 0.22);
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.4);
}

.svc-hero-scan {
  background: rgba(61, 187, 142, 0.18);
}

.svc-page .sticky-subnav {
  display: none;
}

.svc-scrolly {
  padding: 5.5rem 0;
  --sc-bg: var(--sv-surface);
  --sc-ink: var(--sv-ink);
  --sc-muted: var(--sv-muted);
  --sc-card: #ffffff;
  --sc-line: rgba(10, 12, 46, 0.12);
  --sc-eyebrow: #0e4d6e;
  --sc-accent: var(--sv-teal);
  background: var(--sc-bg);
  color: var(--sc-ink);
}

.svc-scrolly[data-theme="navy"] {
  --sc-bg: var(--sv-navy);
  --sc-ink: #ffffff;
  --sc-muted: #e2e8f0;
  --sc-card: #0f172a;
  --sc-line: rgba(255, 255, 255, 0.16);
  --sc-eyebrow: var(--sv-mint);
  --sc-accent: var(--sv-mint);
}

.svc-scrolly[data-theme="ocean"] {
  --sc-bg: #e2e8f0;
  --sc-ink: var(--sv-ink);
  --sc-muted: #94a3b8;
  --sc-card: #ffffff;
  --sc-line: rgba(10, 12, 46, 0.1);
  --sc-eyebrow: #0e4d6e;
  --sc-accent: var(--sv-blue);
}

.svc-scrolly .eyebrow {
  color: var(--sc-eyebrow);
}

.svc-scrolly .eyebrow::after {
  background: var(--sc-accent);
}

.svc-scrolly-grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 4.5rem;
}

.svc-media-frame {
  top: 150px;
  height: min(64vh, 680px);
  border-radius: 30px;
  border-color: var(--sc-line);
  background: var(--sc-card);
  color: var(--sc-ink);
  box-shadow: 0 26px 80px rgba(10, 12, 46, 0.16);
}

.svc-scrolly[data-active-index="1"] .svc-media-frame,
.svc-scrolly[data-active-index="2"] .svc-media-frame {
  transform: none;
  border-radius: 30px;
}

.svc-media-layer {
  clip-path: none;
}

.svc-media-layer.is-active {
  clip-path: none;
}

.svc-media-layer img {
  filter: saturate(1.02) contrast(1.02);
}

.svc-media-panel {
  background: var(--sc-card);
  color: var(--sc-ink);
}

.svc-panel-photo {
  border: 1px solid var(--sc-line);
  box-shadow: 0 18px 46px rgba(10, 12, 46, 0.12);
}

.svc-media-panel > span,
.svc-media-panel ul li,
.svc-step ul li,
.svc-challenge p {
  color: var(--sc-muted);
}

.svc-media-panel ul li {
  border-color: var(--sc-line);
  background: rgba(255, 255, 255, 0.72);
}

.svc-scrolly[data-theme="navy"] .svc-media-panel ul li {
  background: rgba(255, 255, 255, 0.08);
  color: #e2e8f0;
}

.svc-chapter {
  border: 1px solid var(--sc-line);
  border-radius: 28px;
  background: var(--sc-card);
  box-shadow: 0 20px 60px rgba(10, 12, 46, 0.08);
  opacity: 0.72;
}

.svc-chapter h2,
.svc-challenge h3,
.svc-step strong {
  color: var(--sc-ink);
}

.svc-chapter.is-live {
  opacity: 1;
}

.svc-scrolly[data-theme="navy"] .svc-challenge {
  background: #f8fafc;
}

.svc-scrolly[data-theme="navy"] .svc-challenge h3 {
  color: var(--sv-ink);
}

.svc-scrolly[data-theme="navy"] .svc-challenge p {
  color: #94a3b8;
}

.svc-step {
  border-left-color: var(--sc-line);
}

.svc-step-num {
  color: var(--sc-accent);
}

.svc-step ul li::before {
  color: var(--sc-accent);
}

.sd-standards .standards-grid > *,
.faq-item {
  border-color: rgba(10, 12, 46, 0.1);
  background: var(--white);
}

.svc-closing {
  background: var(--sv-navy);
}

.svc-closing::before {
  display: none;
}

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

  .svc-scrolly-grid {
    gap: 2.2rem;
  }

  .svc-media-frame {
    top: 112px;
    height: min(58vh, 560px);
  }
}

@media (max-width: 680px) {
  .sv-ind-grid {
    grid-template-columns: 1fr;
  }

  .sv-ind-tile,
  .svc-related-tile {
    min-height: 300px;
    border-radius: 24px;
  }

  .svc-scrolly {
    padding: 3rem 0;
  }

  .svc-media-frame {
    top: 92px;
    height: 42vh;
  }
}

/* ---------- Lighter green aesthetic refinement ---------- */

.sv-page,
.svc-page {
  --sv-cream: #f8fafc;
  --sv-mist: #f8fafc;
  --sv-mint-panel: #e2e8f0;
  --sv-sage-panel: #e2e8f0;
  --sv-celadon: #e2e8f0;
  --sv-green: #0d9e9e;
  --sv-green-2: #3dbb8e;
  --sv-green-deep: #0e4d6e;
  --sv-blue-ink: #0a0c2e;
  --sv-blue-soft: #f8fafc;
  --sv-surface: #f8fafc;
  background: var(--sv-cream);
}

.sv-page h1,
.sv-page h2,
.sv-page h3,
.svc-page h1,
.svc-page h2,
.svc-page h3 {
  color: var(--sv-blue-ink);
}

.sv-page .eyebrow,
.svc-page .eyebrow,
.sv-grad,
.svc-hero-stats dt,
.svc-media-big {
  color: var(--sv-green-deep);
}

.sv-hero {
  color: var(--sv-blue-ink);
  background: var(--sv-mist);
  isolation: isolate;
}

.sv-hero::before {
  display: none;
}

.sv-hero-inner {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  padding-top: clamp(4.5rem, 8vw, 7.5rem);
  padding-bottom: clamp(5.2rem, 8vw, 7.8rem);
}

.sv-hero-copy {
  position: relative;
  z-index: 2;
}

.sv-hero-photo {
  position: relative;
  z-index: 2;
  margin: 0;
  min-height: clamp(380px, 50vw, 620px);
  border-radius: 34px;
  overflow: hidden;
  border: 1px solid rgba(14, 77, 110, 0.16);
  background: var(--sv-mint-panel);
  box-shadow: 0 30px 80px rgba(14, 77, 110, 0.14);
  clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 300ms ease;
}

.sv-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 12, 46, 0.34), rgba(10, 12, 46, 0.06) 54%, rgba(61, 187, 142, 0.18)),
    linear-gradient(180deg, transparent 44%, rgba(10, 12, 46, 0.36));
  pointer-events: none;
}

.sv-hero-photo img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: 44% 50%;
  transform: scale(1.04);
}

.sv-hero-photo figcaption {
  position: absolute;
  left: clamp(1rem, 2.5vw, 1.6rem);
  bottom: clamp(1rem, 2.5vw, 1.6rem);
  z-index: 2;
  max-width: min(320px, 70%);
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 20px;
  padding: 1rem 1.15rem;
  background: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 42px rgba(10, 12, 46, 0.14);
}

.sv-hero-photo figcaption strong,
.sv-hero-photo figcaption span {
  display: block;
}

.sv-hero-photo figcaption strong {
  color: var(--sv-green-deep);
  font-size: 1rem;
  line-height: 1.25;
}

.sv-hero-photo figcaption span {
  margin-top: 0.25rem;
  color: #94a3b8;
  font-size: 0.88rem;
  line-height: 1.45;
}

.sv-hero-dock-wrap {
  position: relative;
  z-index: 8;
  display: flex;
  justify-content: center;
  margin-top: -1.15rem;
  padding-top: 1.9rem;
  padding-bottom: 4.8rem;
  pointer-events: none;
}

.container-items.sv-hero-dock {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: min(1040px, calc(100% - 2rem));
  min-height: 214px;
  padding: 4rem 2rem 3.1rem;
  overflow: visible;
  scrollbar-width: none;
  transform-style: preserve-3d;
  transform: perspective(1000px);
  pointer-events: auto;
}

.container-items.sv-hero-dock::-webkit-scrollbar {
  display: none;
}

.sv-dock-card {
  --dock-scale: 1;
  --dock-y: 0px;
  position: relative;
  flex: 0 0 68px;
  height: 92px;
  margin-left: 0;
  overflow: visible;
  border: 0;
  border-radius: 16px;
  color: var(--sv-blue-ink);
  text-decoration: none;
  cursor: pointer;
  transform-origin: center bottom;
  transform: translateY(var(--dock-y)) scale(var(--dock-scale));
  will-change: transform;
  transition:
    transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 420ms ease,
    z-index 420ms ease;
}

.sv-dock-card:first-child {
  margin-left: 0;
}

.sv-dock-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  object-fit: cover;
  box-shadow:
    0 14px 34px rgba(10, 12, 46, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.4);
  transform: scale(1.02);
  will-change: transform, filter;
  transition:
    transform 720ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 420ms ease,
    filter 420ms ease;
}

.sv-dock-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.02), rgba(10, 12, 46, 0.3));
  pointer-events: none;
}

.sv-dock-card span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.6rem);
  z-index: 3;
  width: max-content;
  max-width: min(20rem, calc(100vw - 2rem));
  transform: translateX(-50%) translateY(6px);
  padding: 0.42rem 0.82rem;
  border: 1px solid rgba(127, 205, 255, 0.44);
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(10, 12, 46, 0.12);
  color: var(--sv-blue-ink);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.18;
  text-align: center;
  white-space: normal;
  text-wrap: balance;
  overflow-wrap: anywhere;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 340ms ease,
    visibility 340ms ease,
    transform 720ms cubic-bezier(0.16, 1, 0.3, 1);
}

.sv-dock-card:hover,
.sv-dock-card:focus-visible {
  --dock-scale: 1.42;
  --dock-y: -16px;
  z-index: 30;
}

.sv-dock-card:hover img,
.sv-dock-card:focus-visible img {
  filter: saturate(1.08) contrast(1.04);
  box-shadow:
    0 24px 52px rgba(10, 12, 46, 0.2),
    0 0 0 1px rgba(127, 205, 255, 0.66),
    0 0 34px rgba(127, 205, 255, 0.48);
}

.sv-dock-card:hover span,
.sv-dock-card:focus-visible span {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.sv-dock-card:active img {
  transform: scale(0.98);
}

.sv-dock-card:hover + *,
.sv-dock-card:focus-visible + * {
  --dock-scale: 1.22;
  --dock-y: -9px;
  z-index: 18;
}

.sv-dock-card:hover + * + *,
.sv-dock-card:focus-visible + * + * {
  --dock-scale: 1.1;
  --dock-y: -4px;
  z-index: 12;
}

.sv-dock-card:has(+ *:hover),
.sv-dock-card:has(+ *:focus-visible) {
  --dock-scale: 1.22;
  --dock-y: -9px;
  z-index: 18;
}

.sv-dock-card:has(+ * + *:hover),
.sv-dock-card:has(+ * + *:focus-visible) {
  --dock-scale: 1.1;
  --dock-y: -4px;
  z-index: 12;
}

.sv-hero-grid {
  opacity: 0.18;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.16) 1px, transparent 1px);
}

.sv-hero-ghost {
  color: rgba(13, 158, 158, 0.08);
  z-index: 0;
  bottom: -0.08em;
  opacity: 0.55;
}

.sv-hero .eyebrow,
.sv-hero .eyebrow.light {
  color: var(--sv-green-deep);
}

.sv-headline,
.sv-headline .sv-w:not(.sv-grad) {
  color: var(--sv-blue-ink);
}

.sv-headline {
  max-width: 15ch;
}

.sv-lede {
  color: #94a3b8;
}

.sv-hero-actions .push-btn.ghost-dark .pb-face,
.svc-hero .push-btn.ghost-dark .pb-face,
.svc-closing .push-btn.ghost-dark .pb-face {
  background: rgba(255, 255, 255, 0.68);
  border-color: rgba(10, 12, 46, 0.12);
  color: var(--sv-blue-ink);
}

.sv-ticker {
  background: #ffffff;
  border-color: rgba(13, 158, 158, 0.18);
}

.sv-ticker-track span {
  color: #94a3b8;
}

.sv-bento,
.sv-industries,
.sd-standards,
.detail-drawers-section,
.svc-related {
  background: var(--sv-cream);
}

.sv-bento-grid {
  gap: 1.45rem;
}

.sv-tile {
  border-color: rgba(14, 77, 110, 0.12);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 18px 46px rgba(14, 77, 110, 0.08);
}

.sv-tile-feature {
  background: var(--sv-mint-panel);
  color: var(--sv-blue-ink);
}

.sv-tile-feature img {
  filter: saturate(0.94) contrast(0.98);
}

.sv-tile-feature-overlay {
  background: rgba(10, 12, 46, 0.18);
}

.sv-tile-feature-copy {
  max-width: 37rem;
}

.sv-tile-feature-copy h3 {
  color: #ffffff;
  text-shadow: 0 2px 16px rgba(10, 12, 46, 0.38);
}

.sv-tile-feature-copy p {
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 1px 12px rgba(10, 12, 46, 0.36);
}

.sv-tile-count {
  background: var(--sv-mint-panel);
  color: var(--sv-blue-ink);
}

.sv-tile-count strong,
.sv-tile-count div:last-child strong {
  color: var(--sv-green-deep);
}

.sv-tile-count span {
  color: #94a3b8;
}

.sv-tile-video {
  background: var(--sv-sage-panel);
}

.sv-tile-life,
.sv-tile-marquee,
.sv-tile-cta {
  background: #ffffff;
}

.sv-stack-head {
  background: var(--sv-cream);
  color: var(--sv-blue-ink);
  padding-bottom: 3.25rem;
}

.sv-stack-head h2 {
  color: var(--sv-blue-ink);
}

.sv-stack-head p {
  color: #94a3b8;
}

.sv-stack {
  background: var(--sv-cream);
}

.sv-layer {
  color: var(--sv-blue-ink);
  border-radius: 32px;
  margin: 0 auto 1.4rem;
  max-width: min(var(--max), calc(100vw - 3rem));
  min-height: calc(100vh - 118px);
  border: 1px solid rgba(14, 77, 110, 0.12);
  background:
    radial-gradient(rgba(14, 77, 110, 0.1) 1px, transparent 1.6px) 0 0 / 34px 34px,
    var(--layer-bg, var(--sv-mint-panel));
  box-shadow: 0 24px 70px rgba(14, 77, 110, 0.12);
}

.sv-layer-copy h3,
.sv-layer-copy > p:not(.sv-layer-count) {
  color: var(--sv-blue-ink);
}

.sv-layer-count {
  color: var(--layer-accent, var(--sv-green-deep));
}

.sv-layer-chips span {
  background: rgba(255, 255, 255, 0.7);
  color: var(--sv-green-deep);
}

.sv-layer .push-btn.layer .pb-face {
  background: var(--layer-accent, var(--sv-green));
  color: var(--white);
}

.sv-layer:nth-child(8) .sv-layer-copy h3,
.sv-layer:nth-child(8) .sv-layer-copy > p:not(.sv-layer-count) {
  color: #ffffff;
}

.sv-layer:nth-child(8) .sv-layer-chips span {
  background: rgba(255, 255, 255, 0.12);
  color: #e2e8f0;
}

.sv-industries::before {
  border-color: rgba(13, 158, 158, 0.14);
}

.sv-ind-tile,
.svc-related-tile {
  border-color: rgba(14, 77, 110, 0.12);
  box-shadow: 0 18px 42px rgba(14, 77, 110, 0.08);
}

.sv-ind-tone-0 {
  --card-bg: #e2e8f0;
  --card-ink: #0a0c2e;
  --card-muted: #42695f;
  --card-label: #0e4d6e;
}

.sv-ind-tone-1 {
  --card-bg: #e2e8f0;
  --card-ink: #0a0c2e;
  --card-muted: #42695f;
  --card-label: #0e4d6e;
}

.sv-ind-tone-2 {
  --card-bg: #f8fafc;
  --card-ink: #0a0c2e;
  --card-muted: #5c7180;
  --card-label: #0e4d6e;
}

.sv-ind-tone-3 {
  --card-bg: #f8fafc;
  --card-ink: #0a0c2e;
  --card-muted: #5c7180;
  --card-label: #0e4d6e;
}

.sv-ind-tone-4 {
  --card-bg: #3dbb8e;
  --card-ink: #0a0c2e;
  --card-muted: rgba(10, 12, 46, 0.68);
  --card-label: #075648;
}

.sv-ind-tone-5 {
  --card-bg: #0e4d6e;
  --card-ink: #ffffff;
  --card-muted: rgba(248, 250, 252, 0.82);
  --card-label: #e2e8f0;
}

.sv-ind-icon {
  background: rgba(255, 255, 255, 0.28);
}

.sv-ind-tone-5 .sv-ind-icon {
  background: rgba(255, 255, 255, 0.12);
}

.sv-ind-tone-5 h3,
.sv-ind-tone-5 .sv-ind-link {
  color: #ffffff;
}

.sv-ind-tone-5 .sv-ind-copy {
  color: rgba(248, 250, 252, 0.82);
}

.sv-ind-tone-5 .sv-ind-kicker {
  color: #e2e8f0;
}

.sv-ind-tone-5 .sv-ind-chips span {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

.sv-ind-tile::before,
.sv-ind-tile::after,
.svc-related-tile::before,
.svc-related-tile::after {
  display: none;
}

.sv-industries .sv-ind-tile::before,
.sv-industries .sv-ind-tile::after {
  content: "";
  position: absolute;
  display: block;
  width: 10%;
  height: 10%;
  background: rgba(177, 222, 255, 0.24);
  border: 0;
  opacity: 0.38;
  z-index: 0;
  transform: none;
  transition:
    width 520ms cubic-bezier(0.22, 1, 0.36, 1),
    height 520ms cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 520ms cubic-bezier(0.22, 1, 0.36, 1),
    background 280ms ease,
    opacity 280ms ease;
}

.sv-industries .sv-ind-tile::before {
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  border-radius: 0 28px 0 100%;
}

.sv-industries .sv-ind-tile::after {
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  border-radius: 0 100% 0 28px;
}

.sv-industries .sv-ind-tile {
  transition:
    transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1.2),
    box-shadow 320ms ease,
    border-color 320ms ease;
}

.sv-industries .sv-ind-tile:first-child {
  border-color: rgba(127, 205, 255, 0.52);
  box-shadow:
    0 22px 52px rgba(14, 77, 110, 0.08),
    0 0 0 1px rgba(127, 205, 255, 0.42),
    0 0 30px rgba(127, 205, 255, 0.28);
}

.sv-industries .sv-ind-grid:has(.sv-ind-tile:hover) .sv-ind-tile:first-child:not(:hover) {
  border-color: rgba(14, 77, 110, 0.12);
  box-shadow: 0 18px 42px rgba(14, 77, 110, 0.08);
}

.sv-industries .sv-ind-tile:hover {
  border-color: rgba(127, 205, 255, 0.7);
  box-shadow:
    0 24px 56px rgba(14, 77, 110, 0.1),
    0 0 0 1px rgba(127, 205, 255, 0.58),
    0 0 36px rgba(127, 205, 255, 0.42);
}

.sv-industries .sv-ind-tile:hover::before,
.sv-industries .sv-ind-tile:hover::after {
  width: 100%;
  height: 100%;
  border-radius: 28px;
  opacity: 1;
  z-index: 2;
}

.sv-industries .sv-ind-tile:hover::before {
  background: rgba(204, 238, 224, 0.96);
}

.sv-industries .sv-ind-tile:hover::after {
  background: rgba(239, 250, 246, 0.98);
}

.sv-industries .sv-ind-tile > :not(.sv-ind-link) {
  transition: opacity 240ms ease, transform 320ms ease;
}

.sv-industries .sv-ind-tile:hover > :not(.sv-ind-link) {
  opacity: 0;
  transform: translateY(-8px);
}

.sv-industries .sv-ind-link {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  margin: 0;
  min-height: 52px;
  padding: 0.85rem 1.35rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--sv-green);
  color: var(--white);
  box-shadow: 0 14px 34px rgba(13, 158, 158, 0.2);
  opacity: 0;
  transform: translate(-50%, -38%) scale(0.92);
  transition:
    opacity 260ms ease 120ms,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1) 80ms;
}

.sv-industries .sv-ind-tile:hover .sv-ind-link {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.svc-hero {
  color: var(--sv-blue-ink);
  background: var(--sv-mist);
}

.svc-hero-copy h1,
.svc-hero-copy > p,
.svc-hero-stats dd {
  color: var(--sv-blue-ink);
}

.svc-hero-copy > p,
.svc-hero-stats dd {
  opacity: 0.76;
}

.svc-hero-stats div {
  border-color: rgba(14, 77, 110, 0.12);
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 18px 42px rgba(14, 77, 110, 0.08);
}

.svc-hero .push-btn.ghost-dark .pb-face {
  background: #ffffff;
}

.svc-scrolly {
  --sc-bg: var(--sv-mist);
  background: var(--sc-bg);
}

.svc-scrolly[data-theme="navy"] {
  --sc-bg: #e2f4eb;
  --sc-ink: var(--sv-blue-ink);
  --sc-muted: #94a3b8;
  --sc-card: #ffffff;
  --sc-line: rgba(14, 77, 110, 0.14);
  --sc-eyebrow: #0e4d6e;
  --sc-accent: #0d9e9e;
}

.svc-scrolly[data-theme="ocean"] {
  --sc-bg: #f8fafc;
  --sc-accent: #0e4d6e;
}

.svc-media-frame,
.svc-chapter {
  box-shadow: 0 20px 56px rgba(14, 77, 110, 0.08);
}

.svc-scrolly[data-theme="navy"] .svc-challenge {
  background: #f7fcfa;
}

.svc-scrolly[data-theme="navy"] .svc-challenge h3 {
  color: var(--sv-blue-ink);
}

.svc-closing {
  background: var(--sv-mist);
  color: var(--sv-blue-ink);
}

.svc-closing-inner h2,
.svc-closing-inner p {
  color: var(--sv-blue-ink);
}

.svc-closing-inner p {
  opacity: 0.74;
}

.svc-closing .push-btn.ghost-dark .pb-face {
  background: #ffffff;
}

@media (max-width: 1020px) {
  .sv-hero-inner {
    grid-template-columns: 1fr;
    padding-top: 3.5rem;
  }

  .sv-hero-photo {
    min-height: 420px;
    clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  }

  .sv-headline {
    max-width: 11ch;
  }
}

@media (max-width: 680px) {
  .sv-hero-inner {
    padding-top: 2.5rem;
    padding-bottom: 3rem;
    gap: 1.8rem;
  }

  .sv-hero-photo {
    min-height: 300px;
    border-radius: 24px;
    clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
  }

  .sv-hero-photo figcaption {
    max-width: calc(100% - 2rem);
  }
}

/* =====================================================================
   Home page redesign: aurora hero accents, tactile stats, an
   instrument-style spotlight panel, and icon/tone industry tiles.
   Scoped to .home-page so no other page is affected.
   ===================================================================== */

.home-page {
  --display-font: "Inter", "DM Sans", Arial, sans-serif;
  --grad-a: #35e0d0;
  --grad-b: #9fe07a;
}

.home-page h1,
.home-page h2,
.home-page h3 {
  font-family: var(--display-font);
  letter-spacing: -0.02em;
}

@keyframes hp-fade-up {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Hero ---------- */

.home-page .hero-overlay {
  background: linear-gradient(100deg, rgba(4, 9, 24, 0.88) 0%, rgba(4, 9, 24, 0.74) 42%, rgba(4, 9, 24, 0.42) 100%);
}

.home-page .hero-aurora {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(46% 60% at 88% 6%, rgba(143, 209, 106, 0.28), transparent 70%),
    radial-gradient(38% 46% at 6% 96%, rgba(13, 158, 158, 0.28), transparent 70%);
  mix-blend-mode: screen;
}

.home-page .hero-grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(100deg, #000 0%, #000 45%, transparent 78%);
  mask-image: linear-gradient(100deg, #000 0%, #000 45%, transparent 78%);
}

.home-page .hero-content {
  position: relative;
  z-index: 2;
}

.home-page .hero-copy {
  animation: hp-fade-up 700ms ease both;
}

.home-page .hero-copy h1 {
  font-size: clamp(2.6rem, 4.6vw, 4.2rem);
}

.home-page .hero-proof {
  background: rgba(6, 10, 32, 0.72);
  backdrop-filter: blur(14px);
  border-color: rgba(255, 255, 255, 0.14);
  animation: hp-fade-up 700ms 160ms ease both;
}

.home-page .hero-proof div {
  position: relative;
  padding-left: 1.2rem;
}

.home-page .hero-proof div::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3rem;
  bottom: 0.3rem;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(var(--grad-a), var(--grad-b));
}

/* ---------- Buttons ---------- */

.home-page .hp-btn {
  position: relative;
  display: inline-block;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
  border-radius: 14px;
  -webkit-tap-highlight-color: transparent;
}

.home-page .hp-btn-edge {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: linear-gradient(to left, #04282f 0%, #075a60 8%, #075a60 92%, #04282f 100%);
}

.home-page .hp-btn-face {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 50px;
  padding: 0.9rem 1.6rem;
  border-radius: 14px;
  background: linear-gradient(180deg, #14b8b8, #0a8b8b);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 rgba(4, 40, 47, 0.35);
  color: var(--white);
  font-weight: 800;
  font-size: 0.98rem;
  transform: translateY(-6px);
  transition: transform 200ms cubic-bezier(0.3, 0.7, 0.4, 1.5);
  will-change: transform;
}

.home-page .hp-btn-face::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.4) 50%, transparent 60%);
  transform: translateX(-130%);
}

.home-page .hp-btn:hover .hp-btn-face {
  transform: translateY(-9px);
}

.home-page .hp-btn:hover .hp-btn-face::before {
  transform: translateX(130%);
  transition: transform 650ms ease;
}

.home-page .hp-btn:active .hp-btn-face {
  transform: translateY(-1px);
  transition-duration: 60ms;
}

.home-page .hp-btn-arrow {
  display: inline-block;
  transition: transform 200ms ease;
}

.home-page .hp-btn:hover .hp-btn-arrow {
  transform: translateX(5px);
}

.home-page .hp-btn:focus-visible {
  outline: 3px solid rgba(13, 158, 158, 0.6);
  outline-offset: 4px;
}

.home-page .hp-btn.ghost-dark .hp-btn-edge {
  background: rgba(255, 255, 255, 0.22);
}

.home-page .hp-btn.ghost-dark .hp-btn-face {
  background: rgba(10, 12, 46, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  color: var(--white);
}

/* ---------- Scoped scroll reveal ---------- */

.home-page [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 560ms ease, transform 560ms ease;
  transition-delay: calc(var(--i, 0) * 70ms);
}

.home-page [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- Services split + stats ---------- */

.home-page .metric-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--white);
}

.home-page .metric-row div {
  border: none;
  border-right: 1px solid var(--line);
  border-radius: 0;
  text-align: center;
}

.home-page .metric-row div:last-child {
  border-right: none;
}

.home-page .metric-row strong {
  font-family: var(--display-font);
  font-size: 2.35rem;
  background: linear-gradient(92deg, var(--grad-a), var(--grad-b));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- Service cards ---------- */

.home-page .service-card a {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.home-page .service-card a::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: var(--line);
  transition: background 220ms ease;
}

.home-page .service-card.cyan a::before { background: var(--cyan); }
.home-page .service-card.sage a::before { background: var(--sage); }
.home-page .service-card.ocean a::before { background: var(--ocean); }
.home-page .service-card.lime a::before { background: var(--lime); }

.home-page .service-card a:hover,
.home-page .service-card a:focus-visible {
  transform: translateY(-6px);
}

/* ---------- Metrology spotlight ---------- */

.home-page .feature-band.hp-spotlight {
  background: linear-gradient(180deg, #f5fbfa, #ffffff);
}

.home-page .metrology-image-panel {
  border-radius: 18px;
}

.home-page .metrology-image-tags span {
  font-size: 0.78rem;
}

/* ---------- Industry tiles ---------- */

.home-page .hp-ind-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.home-page .hp-ind-tile {
  position: relative;
  display: block;
  padding: 1.6rem 1.5rem 1.8rem;
  border: 1px solid var(--line);
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.home-page .hp-ind-tile:hover,
.home-page .hp-ind-tile:focus-visible {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.home-page .hp-ind-tile.tone-cyan { background: linear-gradient(160deg, #f8fafc, #ffffff 65%); }
.home-page .hp-ind-tile.tone-sage { background: linear-gradient(160deg, #f8fafc, #ffffff 65%); }
.home-page .hp-ind-tile.tone-ocean { background: linear-gradient(160deg, #e2e8f0, #ffffff 65%); }
.home-page .hp-ind-tile.tone-lime { background: linear-gradient(160deg, #f8fafc, #ffffff 65%); }

.home-page .hp-ind-tile.tone-cyan:hover { border-color: var(--cyan); }
.home-page .hp-ind-tile.tone-sage:hover { border-color: var(--sage); }
.home-page .hp-ind-tile.tone-ocean:hover { border-color: var(--ocean); }
.home-page .hp-ind-tile.tone-lime:hover { border-color: var(--lime); }

.home-page .hp-ind-kicker {
  color: var(--muted);
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  margin-bottom: 0.6rem;
}

.home-page .hp-ind-tile h3 {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

.home-page .hp-ind-copy {
  font-size: 0.95rem;
  margin-bottom: 1rem;
}

.home-page .hp-ind-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--ocean);
  font-weight: 800;
  font-size: 0.92rem;
}

.home-page .hp-ind-link::after {
  content: "\2192";
  transition: transform 180ms ease;
}

.home-page .hp-ind-tile:hover .hp-ind-link::after {
  transform: translateX(4px);
}

@media (max-width: 980px) {
  .home-page .hp-ind-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .home-page .metric-row {
    grid-template-columns: 1fr;
  }

  .home-page .metric-row div {
    border-right: none;
    border-bottom: 1px solid var(--line);
  }

  .home-page .metric-row div:last-child {
    border-bottom: none;
  }

  .home-page .hp-ind-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- AVEX sitewide aesthetic pass ---------- */

body:has(.avx-page),
.avx-page {
  --display-font: "Inter", "DM Sans", Arial, sans-serif;
  --avx-navy: #0a0c2e;
  --avx-navy-2: #0f172a;
  --avx-ink: #1e293b;
  --avx-muted: #5e6f7c;
  --avx-teal: #0d9e9e;
  --avx-mint: #3dbb8e;
  --avx-green: #0e4d6e;
  --avx-blue: #0e4d6e;
  --avx-mist: #f8fafc;
  --avx-cream: #f8fafc;
  --avx-surface: #f8fafc;
  --avx-line: rgba(10, 12, 46, 0.12);
  --avx-shadow: 0 24px 70px rgba(10, 12, 46, 0.12);
  --avx-shadow-strong: 0 34px 90px rgba(10, 12, 46, 0.18);
  font-family: var(--display-font);
  color: var(--avx-ink);
  background: var(--avx-cream);
}

.avx-page {
  overflow: clip;
}

.avx-page .button,
.avx-page .resource-grid a,
.avx-page .doc-section a,
.avx-page .industry-service-card a,
.avx-page .text-link {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 999px;
  transition:
    transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1.2),
    box-shadow 220ms ease,
    border-color 220ms ease,
    background 220ms ease,
    color 220ms ease;
}

.avx-page .button::before,
.avx-page .resource-grid a::before,
.avx-page .doc-section a::before,
.avx-page .industry-service-card a::before,
.avx-page .text-link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.32) 45%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .button:hover,
.avx-page .button:focus-visible,
.avx-page .resource-grid a:hover,
.avx-page .resource-grid a:focus-visible,
.avx-page .doc-section a:hover,
.avx-page .doc-section a:focus-visible,
.avx-page .industry-service-card a:hover,
.avx-page .industry-service-card a:focus-visible,
.avx-page .text-link:hover,
.avx-page .text-link:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 18px 42px rgba(13, 158, 158, 0.18);
}

.avx-page .button:hover::before,
.avx-page .button:focus-visible::before,
.avx-page .resource-grid a:hover::before,
.avx-page .resource-grid a:focus-visible::before,
.avx-page .doc-section a:hover::before,
.avx-page .doc-section a:focus-visible::before,
.avx-page .industry-service-card a:hover::before,
.avx-page .industry-service-card a:focus-visible::before,
.avx-page .text-link:hover::before,
.avx-page .text-link:focus-visible::before {
  transform: translateX(120%);
}

.avx-page .button:active,
.avx-page .resource-grid a:active,
.avx-page .doc-section a:active,
.avx-page .industry-service-card a:active,
.avx-page .text-link:active {
  transform: translateY(1px) scale(0.99);
  box-shadow: 0 8px 22px rgba(10, 12, 46, 0.1);
}

.avx-page .button.primary {
  background: var(--avx-teal);
  color: #ffffff;
  border-color: rgba(13, 158, 158, 0.35);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    0 14px 34px rgba(13, 158, 158, 0.2);
}

.avx-page .button.secondary {
  color: var(--avx-navy);
  border-color: rgba(10, 12, 46, 0.12);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.avx-page .button.light {
  color: var(--avx-navy);
  border-color: rgba(255, 255, 255, 0.38);
  background: rgba(255, 255, 255, 0.92);
}

.avx-page h1,
.avx-page h2,
.avx-page h3,
.svc-page .section-heading h2 {
  font-family: var(--display-font);
  color: var(--avx-navy);
  font-weight: 760;
  letter-spacing: 0;
}

.avx-page p {
  color: var(--avx-muted);
}

.avx-page .eyebrow,
.svc-page .section-heading .eyebrow {
  color: var(--avx-green);
  font-family: var(--display-font);
  font-weight: 760;
  letter-spacing: 0;
}

.home-page .section-heading,
.avx-page .section-heading,
.svc-page .section-inner.section-heading {
  margin: 0 auto 2.7rem;
  max-width: 860px;
  text-align: center;
  justify-items: center;
}

.home-page .section-heading h2,
.avx-page .section-heading h2,
.svc-page .section-heading h2 {
  margin-inline: auto;
  max-width: 820px;
}

.home-page .section-heading > a,
.avx-page .section-heading > a {
  margin-inline: auto;
}

.home-page .hero-content {
  grid-template-columns: 1fr;
  align-content: center;
  justify-items: center;
  gap: 2.3rem;
  text-align: center;
}

.home-page .hero-copy {
  max-width: 920px;
  margin-inline: auto;
}

.home-page .hero-copy h1 {
  margin-inline: auto;
  max-width: 16ch;
  color: #ffffff;
  text-wrap: balance;
}

.home-page .hero-copy p {
  margin-inline: auto;
  max-width: 780px;
  color: rgba(255, 255, 255, 0.82);
}

.home-page .hero-copy .eyebrow.light {
  color: var(--lime);
}

.home-page .hero-actions,
.avx-page .hero-actions,
.svc-page .sv-hero-actions {
  justify-content: center;
}

.home-page .hero-proof {
  width: min(100%, 1040px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: rgba(10, 12, 46, 0.48);
  border-color: rgba(61, 187, 142, 0.22);
  backdrop-filter: blur(18px);
}

.home-page .hero-proof div {
  position: relative;
  overflow: hidden;
  border-color: rgba(61, 187, 142, 0.18);
}

.home-page .hero-proof div::after {
  content: "";
  position: absolute;
  inset: auto 1rem 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--avx-teal), var(--avx-blue));
  transform: scaleX(0.35);
  transform-origin: left;
  transition: transform 300ms ease;
}

.home-page .hero-proof div:hover::after {
  transform: scaleX(1);
}

.home-page .split-grid > div:first-child,
.home-page .feature-grid > div:not(:has(img)),
.avx-page .split-grid > div:first-child,
.avx-page .resource-grid article {
  text-align: center;
}

.home-page .split-grid > div:first-child h2,
.home-page .split-grid > div:first-child p,
.home-page .feature-grid > div:not(:has(img)) h2,
.home-page .feature-grid > div:not(:has(img)) p,
.avx-page .split-grid > div:first-child h2,
.avx-page .split-grid > div:first-child p,
.avx-page .resource-grid article h2,
.avx-page .resource-grid article p {
  margin-inline: auto;
  text-wrap: balance;
}

.home-page .feature-grid .chip-row,
.avx-page .resource-grid article .hero-actions {
  justify-content: center;
}

.avx-page .subhero,
.avx-page .detail-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(251, 254, 252, 0.98), rgba(248, 250, 252, 0.96)),
    var(--avx-mist);
}

.avx-page .subhero::before,
.avx-page .detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.11) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 86%);
  mask-image: linear-gradient(180deg, #000, transparent 86%);
  animation: avx-grid-drift 18s linear infinite;
}

.avx-page .subhero::after,
.avx-page .detail-hero::after {
  content: "";
  position: absolute;
  inset: auto -10% -34% -10%;
  z-index: -1;
  height: 58%;
  background:
    linear-gradient(100deg, rgba(20, 88, 173, 0.12), rgba(13, 158, 158, 0.16)),
    rgba(234, 243, 251, 0.64);
  clip-path: polygon(0 24%, 100% 0, 100% 100%, 0 100%);
}

@keyframes avx-grid-drift {
  from { background-position: 0 0; }
  to { background-position: 72px 72px; }
}

.avx-page .subhero-grid,
.avx-page .detail-hero-grid {
  position: relative;
  z-index: 1;
  gap: clamp(2rem, 5vw, 5rem);
}

.avx-page .subhero-grid > div:first-child,
.avx-page .detail-hero-grid > div:first-child {
  text-align: center;
}

.avx-page .subhero h1,
.avx-page .detail-hero h1 {
  margin-inline: auto;
  max-width: 14ch;
  font-size: clamp(2.65rem, 5vw, 4.85rem);
  line-height: 0.98;
  text-wrap: balance;
}

.avx-page .subhero p,
.avx-page .detail-hero p {
  margin-inline: auto;
  max-width: 720px;
}

.avx-page .media-panel,
.avx-page .industry-map-visual,
.avx-page .detail-live-visual,
.avx-page .contact-form {
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition:
    transform 300ms ease,
    box-shadow 300ms ease,
    border-color 300ms ease;
}

.avx-page .media-panel,
.avx-page .industry-map-visual,
.avx-page .detail-live-visual {
  border-radius: 28px;
  border: 1px solid rgba(61, 187, 142, 0.22);
  background:
    linear-gradient(145deg, rgba(10, 12, 46, 0.98), rgba(16, 41, 66, 0.94));
  box-shadow: var(--avx-shadow-strong);
}

.avx-page .media-panel img,
.avx-page .industry-map-visual img,
.avx-page .detail-live-visual img {
  border-radius: 20px;
  filter: saturate(1.06) contrast(1.04);
}

.avx-page .media-panel:hover,
.avx-page .industry-map-visual:hover,
.avx-page .detail-live-visual:hover,
.avx-page .contact-form:hover {
  box-shadow: var(--avx-shadow-strong);
  border-color: rgba(13, 158, 158, 0.34);
}

.avx-page [data-reveal] {
  opacity: 1;
  transform: none;
  animation: avx-reveal-in 620ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
  animation-delay: calc(var(--i, 0) * 75ms);
  transition:
    opacity 620ms ease,
    transform 620ms cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: calc(var(--i, 0) * 75ms);
}

.avx-page [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes avx-reveal-in {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.avx-page .doc-sections {
  counter-reset: avx-doc;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}

.avx-page .doc-section {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  padding: 2rem;
  border-color: rgba(10, 12, 46, 0.09);
  border-radius: 28px;
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.95), rgba(246, 251, 248, 0.94)),
    #ffffff;
  box-shadow: 0 18px 52px rgba(10, 12, 46, 0.08);
  transition:
    transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1.2),
    box-shadow 280ms ease,
    border-color 280ms ease;
}

.avx-page .doc-section::before {
  counter-increment: avx-doc;
  content: counter(avx-doc, decimal-leading-zero);
  display: inline-grid;
  place-items: center;
  width: 3.1rem;
  height: 3.1rem;
  margin-bottom: 1.2rem;
  border-radius: 16px;
  background: rgba(13, 158, 158, 0.12);
  color: var(--avx-green);
  font-weight: 760;
}

.avx-page .doc-section::after {
  content: "";
  position: absolute;
  right: -4rem;
  bottom: -4.8rem;
  width: 15rem;
  height: 15rem;
  border: 1px solid rgba(13, 158, 158, 0.16);
  border-radius: 50%;
  background-image:
    linear-gradient(rgba(20, 88, 173, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 88, 173, 0.08) 1px, transparent 1px);
  background-size: 20px 20px;
  opacity: 0.72;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}

.avx-page .doc-section:hover,
.avx-page .doc-section:focus-within {
  transform: translateY(-7px);
  border-color: rgba(13, 158, 158, 0.28);
  box-shadow: var(--avx-shadow);
}

.avx-page .doc-section:hover::after,
.avx-page .doc-section:focus-within::after {
  transform: translate(-1.2rem, -0.8rem) scale(1.08);
  opacity: 1;
}

.avx-page .doc-section h2 {
  max-width: 20ch;
  font-size: clamp(1.45rem, 2vw, 2rem);
  line-height: 1.08;
  text-wrap: balance;
}

.avx-page .doc-section p,
.avx-page .doc-section li {
  font-size: 0.99rem;
  line-height: 1.65;
}

.avx-resources-page .doc-section:first-child {
  grid-column: span 2;
  min-height: 320px;
  background:
    linear-gradient(145deg, rgba(10, 12, 46, 0.96), rgba(16, 41, 66, 0.92)),
    var(--avx-navy);
}

.avx-resources-page .doc-section:first-child h2,
.avx-resources-page .doc-section:first-child p,
.avx-resources-page .doc-section:first-child li {
  color: #ffffff;
}

.avx-resources-page .doc-section:first-child::before {
  background: rgba(61, 187, 142, 0.18);
  color: var(--avx-mint);
}

.avx-page .resource-strip {
  background:
    linear-gradient(180deg, rgba(246, 251, 248, 0.96), rgba(234, 243, 251, 0.7)),
    var(--avx-surface);
}

.avx-page .resource-grid article,
.avx-page .proof-grid div,
.avx-page .metric-row div,
.avx-page .industry-signal-tile,
.avx-page .industry-service-card,
.avx-page .service-match-row,
.avx-page .terrain-console div:not(.mini-links),
.avx-page .insight-drawer {
  border-color: rgba(10, 12, 46, 0.09);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 16px 44px rgba(10, 12, 46, 0.07);
}

.avx-page .resource-grid article,
.avx-page .proof-grid div,
.avx-page .metric-row div,
.avx-page .industry-signal-tile,
.avx-page .industry-service-card,
.avx-page .service-match-row,
.avx-page .insight-drawer {
  transition:
    transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1.2),
    box-shadow 260ms ease,
    border-color 260ms ease;
}

.avx-page .resource-grid article:hover,
.avx-page .proof-grid div:hover,
.avx-page .metric-row div:hover,
.avx-page .industry-signal-tile:hover,
.avx-page .industry-service-card:hover,
.avx-page .service-match-row:hover,
.avx-page .insight-drawer:hover {
  transform: translateY(-6px);
  border-color: rgba(13, 158, 158, 0.26);
  box-shadow: var(--avx-shadow);
}

.avx-page .service-match-section {
  background:
    linear-gradient(180deg, rgba(251, 254, 252, 0.96), rgba(248, 250, 252, 0.96)),
    var(--avx-cream);
}

.avx-page .service-match-section .split-grid {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  text-align: center;
  gap: 1.3rem;
}

.avx-page .service-match-section .split-grid > div:first-child {
  max-width: 830px;
}

.avx-page .service-match-section .match-key {
  grid-template-columns: repeat(3, minmax(0, auto));
  justify-content: center;
  gap: 0.8rem;
}

.avx-page .service-match-section .match-key span {
  min-height: 38px;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(10, 12, 46, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 30px rgba(10, 12, 46, 0.05);
}

.avx-page .service-match-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.avx-page .service-match-row {
  --match-accent: var(--avx-teal);
  --match-accent-soft: rgba(61, 187, 142, 0.18);
  position: relative;
  display: block;
  min-height: 348px;
  padding: 2rem;
  overflow: hidden;
  border-radius: 30px;
  border: 1px solid rgba(61, 187, 142, 0.2);
  background:
    radial-gradient(340px 220px at 50% 3%, var(--match-accent-soft), transparent 70%),
    radial-gradient(260px 220px at 110% 92%, rgba(20, 88, 173, 0.2), transparent 70%),
    linear-gradient(145deg, rgba(7, 18, 36, 0.98), rgba(16, 41, 66, 0.96));
  box-shadow: 0 24px 70px rgba(10, 12, 46, 0.14);
  isolation: isolate;
}

.avx-page .service-match-row.tone-sage {
  --match-accent: #78d8ae;
  --match-accent-soft: rgba(120, 216, 174, 0.2);
}

.avx-page .service-match-row.tone-ocean {
  --match-accent: #74b6ff;
  --match-accent-soft: rgba(116, 182, 255, 0.2);
}

.avx-page .service-match-row.tone-lime {
  --match-accent: #a8e36f;
  --match-accent-soft: rgba(168, 227, 111, 0.18);
}

.avx-page .service-match-row::before {
  content: "";
  position: absolute;
  inset: 0.75rem;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  opacity: 0.72;
  transition:
    border-color 420ms ease,
    opacity 420ms ease,
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-row::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 92%);
  mask-image: linear-gradient(180deg, #000, transparent 92%);
  opacity: 0.72;
}

.avx-page .service-match-row:hover,
.avx-page .service-match-row:focus-within {
  transform: translateY(-8px);
  border-color: color-mix(in srgb, var(--match-accent) 44%, transparent);
  box-shadow: 0 34px 90px rgba(10, 12, 46, 0.2);
}

.avx-page .service-match-row:hover::before,
.avx-page .service-match-row:focus-within::before {
  border-color: color-mix(in srgb, var(--match-accent) 44%, transparent);
  opacity: 1;
  transform: scale(0.985);
}

.avx-page .service-match-icon {
  position: absolute;
  left: 50%;
  top: 2rem;
  z-index: 0;
  display: grid;
  place-items: center;
  width: 7.8rem;
  height: 7.8rem;
  border-radius: 30px;
  border: 1px solid color-mix(in srgb, var(--match-accent) 28%, transparent);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.04)),
    rgba(255, 255, 255, 0.04);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 22px 60px rgba(0, 0, 0, 0.22);
  transform: translateX(-50%);
  transition:
    top 700ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 700ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 420ms ease,
    border-color 420ms ease;
}

.avx-page .service-match-icon::before {
  content: "";
  position: absolute;
  inset: -1.45rem;
  border: 1px solid color-mix(in srgb, var(--match-accent) 22%, transparent);
  border-radius: 50%;
  opacity: 0.5;
}

.avx-page .service-match-icon::after {
  content: "";
  position: absolute;
  right: -1.05rem;
  top: 1.6rem;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: var(--match-accent);
  box-shadow: 0 0 34px color-mix(in srgb, var(--match-accent) 60%, transparent);
  opacity: 0.78;
}

.avx-page .service-match-icon span {
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 760;
  letter-spacing: 0;
}

.avx-page .service-match-content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding-top: 10.8rem;
  text-align: center;
  transition:
    transform 700ms cubic-bezier(0.22, 1, 0.36, 1),
    padding-top 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-content .eyebrow {
  color: var(--match-accent);
  margin-bottom: 0.55rem;
}

.avx-page .service-match-content h3 {
  color: #ffffff;
  font-size: clamp(1.3rem, 1.7vw, 1.65rem);
  line-height: 1.08;
  margin: 0 auto 0.7rem;
  max-width: 16ch;
  text-wrap: balance;
}

.avx-page .service-match-content p:not(.eyebrow) {
  color: rgba(226, 238, 247, 0.7);
  margin: 0 auto;
  max-width: 27ch;
  font-size: 0.96rem;
  line-height: 1.55;
}

.avx-page .service-match-links {
  justify-content: center;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  transition:
    max-height 520ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 520ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 320ms ease 80ms,
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-links a {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.82rem;
  backdrop-filter: blur(10px);
}

.avx-page .service-match-links a:hover,
.avx-page .service-match-links a:focus-visible {
  border-color: color-mix(in srgb, var(--match-accent) 45%, transparent);
  background: color-mix(in srgb, var(--match-accent) 18%, rgba(255, 255, 255, 0.08));
  color: #ffffff;
}

.avx-page .service-match-row:hover .service-match-icon,
.avx-page .service-match-row:focus-within .service-match-icon {
  top: calc(100% - 9.2rem);
  transform: translateX(-50%) scale(1.08);
  opacity: 0.48;
  border-color: color-mix(in srgb, var(--match-accent) 44%, transparent);
}

.avx-page .service-match-row:hover .service-match-content,
.avx-page .service-match-row:focus-within .service-match-content {
  padding-top: 1.4rem;
  transform: translateY(-0.2rem);
}

.avx-page .service-match-row:hover .service-match-links,
.avx-page .service-match-row:focus-within .service-match-links {
  max-height: 8.5rem;
  margin-top: 1rem;
  opacity: 1;
  transform: translateY(0);
}

.avx-page .resource-grid a,
.avx-page .doc-section a,
.avx-page .industry-service-card a,
.avx-page .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.45rem 0.78rem;
  color: var(--avx-green);
  background: rgba(13, 158, 158, 0.1);
  text-decoration: none;
  font-weight: 760;
}

.avx-page .industry-selector,
.avx-page .industry-market,
.avx-page .signal-board-section,
.avx-page .industry-services-section,
.avx-page .detail-drawers-section {
  background: var(--avx-cream);
}

.avx-page .industry-layout,
.avx-page .industry-panel,
.avx-page .industry-terrain-grid {
  border-radius: 30px;
}

.avx-page .industry-layout {
  align-items: stretch;
}

.avx-page .industry-tab {
  border-color: rgba(10, 12, 46, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 32px rgba(10, 12, 46, 0.05);
  transition: transform 220ms ease, background 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.avx-page .industry-tab:hover,
.avx-page .industry-tab:focus-visible {
  transform: translateX(5px);
  border-color: rgba(13, 158, 158, 0.28);
}

.avx-page .industry-tab.is-active {
  background:
    linear-gradient(145deg, var(--avx-navy), var(--avx-navy-2));
  border-color: rgba(61, 187, 142, 0.24);
  box-shadow: 0 18px 48px rgba(10, 12, 46, 0.16);
}

.avx-page .industry-panel {
  overflow: hidden;
  padding: 1.2rem;
  border-color: rgba(10, 12, 46, 0.09);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--avx-shadow);
}

.avx-page .industry-panel.is-active {
  animation: avx-panel-in 360ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes avx-panel-in {
  from { opacity: 0; transform: translateY(14px) scale(0.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.avx-page .industry-panel-visual,
.avx-page .industry-signal-tile {
  transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
}

.avx-page .industry-panel-visual img,
.avx-page .industry-signal-tile img {
  filter: saturate(1.06) contrast(1.03);
}

.avx-page .industry-signal-tile {
  overflow: hidden;
  border-radius: 28px;
}

.avx-page .industry-signal-tile .signal-number {
  background: rgba(10, 12, 46, 0.82);
  color: var(--avx-mint);
}

.avx-page .industry-lifecycle-line li,
.avx-page .industry-phase-lane li,
.avx-page .terrain-card {
  border-radius: 28px;
  border: 1px solid rgba(61, 187, 142, 0.18);
  box-shadow: 0 18px 52px rgba(10, 12, 46, 0.08);
}

.avx-page .terrain-card,
.avx-page .cta-band {
  background:
    linear-gradient(145deg, rgba(10, 12, 46, 0.98), rgba(16, 41, 66, 0.94)),
    var(--avx-navy);
}

.avx-page .terrain-card h2,
.avx-page .terrain-card p,
.avx-page .cta-band h2,
.avx-page .cta-band p {
  color: #ffffff;
}

.avx-page .sticky-subnav {
  top: 78px;
  border-bottom-color: rgba(10, 12, 46, 0.08);
  background: rgba(251, 254, 252, 0.82);
  box-shadow: 0 14px 34px rgba(10, 12, 46, 0.06);
}

.avx-page .sticky-subnav a {
  border-radius: 999px;
  padding: 0.42rem 0.72rem;
  color: var(--avx-green);
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.avx-page .sticky-subnav a:hover,
.avx-page .sticky-subnav a:focus-visible {
  transform: translateY(-2px);
  background: rgba(13, 158, 158, 0.12);
}

.avx-page .contact-form {
  padding: clamp(1.2rem, 3vw, 2rem);
  border-radius: 30px;
  border-color: rgba(10, 12, 46, 0.09);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(246, 251, 248, 0.92)),
    #ffffff;
  box-shadow: var(--avx-shadow-strong);
}

.avx-page .contact-form label {
  color: var(--avx-navy);
}

.avx-page .contact-form input,
.avx-page .contact-form select,
.avx-page .contact-form textarea {
  border-color: rgba(10, 12, 46, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.avx-page .contact-form input:focus,
.avx-page .contact-form select:focus,
.avx-page .contact-form textarea:focus {
  outline: none;
  border-color: rgba(13, 158, 158, 0.62);
  box-shadow: 0 0 0 4px rgba(13, 158, 158, 0.12);
  transform: translateY(-1px);
}

.svc-page .section-inner.section-heading,
.svc-page .svc-hero-copy,
.svc-page .svc-chapter > .eyebrow,
.svc-page .svc-chapter > h2 {
  text-align: center;
}

.svc-page .svc-hero-copy > p,
.svc-page .svc-hero-stats {
  margin-inline: auto;
}

@media (max-width: 980px) {
  .home-page .hero-proof,
  .avx-page .doc-sections,
  .avx-page .resource-grid,
  .avx-page .proof-grid {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .doc-section:first-child {
    grid-column: auto;
  }

  .avx-page .service-match-section .match-key,
  .avx-page .service-match-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avx-page .service-match-row {
    min-height: 330px;
  }
}

@media (max-width: 640px) {
  .home-page .hero-copy h1,
  .avx-page .subhero h1,
  .avx-page .detail-hero h1 {
    max-width: 12ch;
  }

  .avx-page .doc-section,
  .avx-page .contact-form,
  .avx-page .media-panel,
  .avx-page .industry-map-visual,
  .avx-page .detail-live-visual,
  .avx-page .industry-panel,
  .avx-page .industry-signal-tile {
    border-radius: 22px;
  }

  .avx-page .service-match-section .match-key,
  .avx-page .service-match-grid {
    grid-template-columns: 1fr;
  }

  .avx-page .service-match-section .match-key {
    justify-items: stretch;
  }

  .avx-page .service-match-section .match-key span {
    justify-content: center;
  }

  .avx-page .service-match-row {
    min-height: 390px;
    padding: 1.55rem;
  }

  .avx-page .service-match-content {
    padding-top: 9.8rem;
  }

  .avx-page .service-match-links {
    max-height: none;
    margin-top: 1rem;
    opacity: 1;
    transform: none;
  }

  .avx-page .service-match-row:hover .service-match-icon,
  .avx-page .service-match-row:focus-within .service-match-icon {
    top: calc(100% - 8.7rem);
  }
}

/* ---------- Industries bottom CTA: extended AVEX mark ---------- */

.avx-page .industry-mark-cta {
  padding: clamp(3.25rem, 6vw, 5rem) 0;
  background:
    radial-gradient(760px 360px at 20% 40%, rgba(13, 158, 158, 0.12), transparent 70%),
    radial-gradient(640px 320px at 86% 10%, rgba(14, 77, 110, 0.1), transparent 68%),
    linear-gradient(180deg, #f7fbff 0%, #f8fafc 100%);
}

.avx-page .industry-mark-shell {
  position: relative;
  min-height: clamp(290px, 26vw, 360px);
  overflow: hidden;
  border: 1px solid rgba(14, 77, 110, 0.11);
  border-radius: 30px;
  background:
    radial-gradient(660px 300px at 72% 10%, rgba(255, 255, 255, 0.88), transparent 62%),
    linear-gradient(135deg, #f8fafc 0%, #f8fafc 54%, #e2e8f0 100%);
  box-shadow: 0 24px 70px rgba(10, 12, 46, 0.11);
  isolation: isolate;
}

.avx-page .industry-mark-shell::before {
  display: none;
}

.avx-page .industry-mark-shell::after {
  display: none;
}

.avx-page .industry-mark-copy {
  position: relative;
  z-index: 3;
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: inherit;
  max-width: min(650px, 58vw);
  margin-left: auto;
  padding: clamp(2rem, 3.4vw, 3.2rem) clamp(2rem, 5vw, 5.1rem) clamp(2rem, 3.4vw, 3.2rem) 1.25rem;
  text-align: center;
}

.avx-page .industry-mark-copy::before {
  display: none;
}

.avx-page .industry-mark-copy .eyebrow {
  color: #0e4d6e;
}

.avx-page .industry-mark-copy h2 {
  margin: 0 auto 1rem;
  color: #0a0c2e;
  font-size: clamp(1.85rem, 3vw, 3rem);
  line-height: 1.04;
  max-width: 14ch;
  text-wrap: balance;
}

.avx-page .industry-mark-copy p:not(.eyebrow) {
  margin: 0 auto;
  max-width: 54ch;
  color: rgba(19, 33, 50, 0.72);
  font-size: clamp(0.98rem, 1.2vw, 1.08rem);
  line-height: 1.65;
}

.avx-page .industry-mark-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
  margin-top: 1.45rem;
}

.avx-page .industry-mark-actions .button {
  min-height: 50px;
  padding: 0.76rem 1.22rem;
  border-radius: 10px;
  box-shadow: none;
  transition:
    transform 260ms ease,
    background 260ms ease,
    color 260ms ease,
    border-color 260ms ease;
}

.avx-page .industry-mark-actions .button.primary {
  border-color: #0a0c2e;
  background: #0a0c2e;
  color: #ffffff;
}

.avx-page .industry-mark-actions .button.secondary {
  border-color: rgba(14, 77, 110, 0.28);
  background: rgba(255, 255, 255, 0.52);
  color: #0e4d6e;
  backdrop-filter: blur(10px);
}

.avx-page .industry-mark-actions .button:hover,
.avx-page .industry-mark-actions .button:focus-visible {
  transform: translateY(-3px);
}

@media (max-width: 980px) {
  .avx-page .industry-mark-shell {
    min-height: auto;
  }

  .avx-page .industry-mark-shell::before {
    clip-path: none;
  }

  .avx-page .industry-mark-shell::after {
    left: 50%;
    top: 50%;
    width: 26rem;
    opacity: 0.62;
    transform: translateX(-50%) rotate(-6deg);
  }

  .avx-page .industry-mark-copy {
    max-width: none;
    min-height: auto;
    margin: 0;
    padding: 2.65rem 1.8rem;
  }

  .avx-page .industry-mark-copy h2 {
    max-width: 15ch;
  }
}

@media (max-width: 640px) {
  .avx-page .industry-mark-cta {
    padding: 3.5rem 0;
  }

  .avx-page .industry-mark-shell {
    border-radius: 26px;
  }

  .avx-page .industry-mark-shell::before {
    inset: 0.75rem;
    border-radius: 22px;
  }

  .avx-page .industry-mark-copy {
    padding: 2.25rem 1.15rem;
  }

  .avx-page .industry-mark-copy h2 {
    font-size: clamp(1.75rem, 8vw, 2.25rem);
    max-width: 12ch;
  }

  .avx-page .industry-mark-copy p:not(.eyebrow) {
    font-size: 0.96rem;
    line-height: 1.58;
  }

  .avx-page .industry-mark-actions {
    display: grid;
    width: min(100%, 280px);
  }

  .avx-page .industry-mark-actions .button {
    width: 100%;
    justify-content: center;
  }
}

/* ---------- Service Matching icon cards: light Services palette ---------- */

.avx-page .service-match-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.45rem;
}

.avx-page .service-match-section {
  scroll-margin-top: 96px;
}

.avx-page .service-match-section .split-grid {
  grid-template-columns: minmax(0, 780px);
  justify-content: center;
  text-align: center;
}

.avx-page .service-match-section .split-grid > div:first-child {
  margin-inline: auto;
}

.avx-page .service-match-section .eyebrow {
  color: #1557b0;
}

.avx-page .service-match-row {
  --match-accent: #0e4d6e;
  --match-accent-2: #33a9e8;
  --match-card-a: #f8fafc;
  --match-card-b: #f8fafc;
  --match-card-c: #d8edff;
  --match-parallax: 0px;
  position: relative;
  display: block;
  min-height: 342px;
  padding: clamp(1.45rem, 2.1vw, 2.05rem);
  overflow: hidden;
  border: 1px solid rgba(20, 88, 173, 0.16);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.38) 34%, transparent 35%),
    radial-gradient(360px 220px at 86% 0%, color-mix(in srgb, var(--match-accent-2) 22%, transparent), transparent 72%),
    linear-gradient(150deg, var(--match-card-a), var(--match-card-b) 48%, var(--match-card-c));
  box-shadow:
    0 26px 70px rgba(10, 12, 46, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
  isolation: isolate;
  transition:
    border-color 420ms ease,
    box-shadow 520ms ease,
    transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-row.tone-sage {
  --match-accent: #116cbd;
  --match-accent-2: #49b7f0;
  --match-card-a: #ecf8ff;
  --match-card-b: #f8fafc;
  --match-card-c: #daf0ff;
}

.avx-page .service-match-row.tone-ocean {
  --match-accent: #1557b0;
  --match-accent-2: #2aa7df;
  --match-card-a: #ebf4ff;
  --match-card-b: #f7fbff;
  --match-card-c: #dcecff;
}

.avx-page .service-match-row.tone-lime {
  --match-accent: #1b73c8;
  --match-accent-2: #65c7f2;
  --match-card-a: #f0f9ff;
  --match-card-b: #f8fafc;
  --match-card-c: #dcefff;
}

.avx-page .service-match-row:nth-child(1) {
  --icon-float-x: 10px;
  --icon-float-y: -4px;
  --icon-float-duration: 7.8s;
  --icon-float-delay: -0.7s;
}

.avx-page .service-match-row:nth-child(2) {
  --icon-float-x: 13px;
  --icon-float-y: -5px;
  --icon-float-duration: 8.6s;
  --icon-float-delay: -2.2s;
}

.avx-page .service-match-row:nth-child(3) {
  --icon-float-x: 9px;
  --icon-float-y: -3px;
  --icon-float-duration: 7.2s;
  --icon-float-delay: -1.4s;
}

.avx-page .service-match-row:nth-child(4) {
  --icon-float-x: 12px;
  --icon-float-y: -4px;
  --icon-float-duration: 8.1s;
  --icon-float-delay: -3s;
}

.avx-page .service-match-row:nth-child(5) {
  --icon-float-x: 11px;
  --icon-float-y: -5px;
  --icon-float-duration: 7.6s;
  --icon-float-delay: -1.8s;
}

.avx-page .service-match-row:nth-child(6) {
  --icon-float-x: 14px;
  --icon-float-y: -4px;
  --icon-float-duration: 8.9s;
  --icon-float-delay: -2.8s;
}

.avx-page .service-match-row::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.66), rgba(255, 255, 255, 0.18) 42%, transparent 72%);
  opacity: 0.62;
  transform: none;
  transition:
    opacity 420ms ease;
}

.avx-page .service-match-row::after {
  content: "";
  position: absolute;
  inset: auto 1rem 1rem 1rem;
  z-index: 1;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--match-accent) 22%, transparent), transparent);
  opacity: 0.72;
  transition:
    transform 640ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 420ms ease;
}

.avx-page .service-match-row:hover,
.avx-page .service-match-row:focus-within {
  transform: translateY(calc(var(--match-parallax, 0px) - 8px));
  border-color: color-mix(in srgb, var(--match-accent) 34%, transparent);
  box-shadow:
    0 34px 84px rgba(10, 12, 46, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.avx-page .service-match-row:hover::before,
.avx-page .service-match-row:focus-within::before {
  opacity: 0.78;
}

.avx-page .service-match-row:hover::after,
.avx-page .service-match-row:focus-within::after {
  opacity: 1;
  transform: scaleX(0.82);
}

.avx-page .service-match-icon {
  position: absolute;
  right: clamp(0.65rem, 2vw, 1.35rem);
  top: clamp(1rem, 2vw, 1.45rem);
  z-index: 0;
  display: grid;
  place-items: center;
  width: clamp(9.7rem, 16vw, 12.6rem);
  height: clamp(9.7rem, 16vw, 12.6rem);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--match-accent);
  opacity: 0.28;
  transform: translate3d(0, var(--match-parallax, 0px), 0) rotate(-5deg) scale(1);
  transition:
    transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 420ms ease;
}

.avx-page .service-match-icon::before {
  display: none;
}

.avx-page .service-match-icon::after {
  display: none;
}

.avx-page .service-match-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 16px 24px color-mix(in srgb, var(--match-accent) 14%, transparent));
  transform-origin: center;
  animation: match-icon-float var(--icon-float-duration, 8s) ease-in-out infinite;
  animation-delay: var(--icon-float-delay, 0s);
  will-change: transform;
}

@keyframes match-icon-float {
  0%, 100% {
    transform: translate3d(calc(var(--icon-float-x, 10px) * -0.55), 0, 0) rotate(-1.2deg);
  }
  50% {
    transform: translate3d(var(--icon-float-x, 10px), var(--icon-float-y, -4px), 0) rotate(1.2deg);
  }
}

.avx-page .service-match-content {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: clamp(8rem, 12vw, 10.2rem);
  text-align: center;
  transition:
    transform 760ms cubic-bezier(0.22, 1, 0.36, 1),
    padding-top 760ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-content .eyebrow {
  color: #1768b8;
  margin-bottom: 0.55rem;
}

.avx-page .service-match-content h3 {
  color: var(--avx-navy);
  font-size: clamp(1.35rem, 1.75vw, 1.72rem);
  line-height: 1.08;
  margin: 0 auto 0.72rem;
  max-width: 16ch;
  text-wrap: balance;
}

.avx-page .service-match-links {
  justify-content: center;
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  transition:
    max-height 560ms cubic-bezier(0.22, 1, 0.36, 1),
    margin-top 560ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 340ms ease 90ms,
    transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-page .service-match-links a {
  border: 1px solid color-mix(in srgb, var(--match-accent) 16%, transparent);
  background: rgba(255, 255, 255, 0.78);
  color: #1557b0;
  box-shadow: 0 10px 24px rgba(10, 12, 46, 0.07);
  backdrop-filter: blur(10px);
  transition:
    transform 240ms ease,
    border-color 240ms ease,
    background 240ms ease,
    color 240ms ease;
}

.avx-page .service-match-links a:hover,
.avx-page .service-match-links a:focus-visible {
  border-color: color-mix(in srgb, var(--match-accent) 38%, transparent);
  background: color-mix(in srgb, var(--match-accent) 12%, #ffffff);
  color: var(--avx-navy);
  transform: translateY(-2px);
}

.avx-page .service-match-row:hover .service-match-icon,
.avx-page .service-match-row:focus-within .service-match-icon {
  transform: translate3d(-0.2rem, calc(var(--match-parallax, 0px) + 5.25rem), 0) rotate(1deg) scale(1.1);
  opacity: 0.34;
}

.avx-page .service-match-row:hover .service-match-content,
.avx-page .service-match-row:focus-within .service-match-content {
  padding-top: 1rem;
  transform: translateY(-0.2rem);
}

.avx-page .service-match-row:hover .service-match-links,
.avx-page .service-match-row:focus-within .service-match-links {
  max-height: 8.7rem;
  margin-top: 1rem;
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 980px) {
  .avx-page .service-match-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .avx-page .service-match-grid {
    grid-template-columns: 1fr;
  }

  .avx-page .service-match-row {
    min-height: 370px;
    padding: 1.55rem;
  }

  .avx-page .service-match-content {
    padding-top: 9.6rem;
  }

  .avx-page .service-match-links {
    max-height: none;
    margin-top: 1rem;
    opacity: 1;
    transform: none;
  }

  .avx-page .service-match-icon {
    width: 10.2rem;
    height: 10.2rem;
    opacity: 0.3;
  }
}

/* =====================================================================
   Resources page redesign: reading progress bar, sticky jump nav, an
   editorial blog rail, alternating case-study rows with a scroll
   parallax numeral, a manuscript-style white paper list, a horizontal
   featured-topics chapter rail, a click-through industry selector,
   and a roadmap ticker. Deliberately NOT a repeated card grid - each
   section uses its own layout metaphor.
   Scoped to .avx-resources-page so no other page is affected.
   ===================================================================== */

.avx-resources-page .res-stat-row {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border: 1px solid var(--avx-line);
  border-radius: 16px;
  background: var(--avx-cream);
  overflow: hidden;
}

.avx-resources-page .res-stat-row div {
  padding: 1.1rem 1rem;
  text-align: center;
  border-right: 1px solid var(--avx-line);
}

.avx-resources-page .res-stat-row div:last-child {
  border-right: none;
}

.avx-resources-page .res-stat-row strong {
  display: block;
  font-size: 1.9rem;
  color: var(--avx-teal);
}

.avx-resources-page .res-stat-row span {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.85rem;
  color: var(--avx-muted);
}

.avx-resources-page .res-progress {
  position: sticky;
  top: 78px;
  z-index: 21;
  height: 3px;
  background: var(--avx-line);
}

.avx-resources-page .res-progress span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--avx-teal), var(--avx-mint));
}

.avx-resources-page .res-subnav {
  position: sticky;
  top: calc(78px + 3px);
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.3rem;
  padding: 0.85rem 1rem;
  background: rgba(251, 254, 252, 0.92);
  border-bottom: 1px solid var(--avx-line);
  backdrop-filter: blur(14px);
}

.avx-resources-page .res-subnav a {
  color: var(--avx-green);
  font-weight: 700;
  font-size: 0.92rem;
  text-decoration: none;
  padding: 0.3rem 0;
  border-bottom: 2px solid transparent;
}

.avx-resources-page .res-subnav a:hover {
  border-color: var(--avx-teal);
}

.avx-resources-page .res-section {
  padding: 4.5rem 0;
}

.avx-resources-page .res-section-alt {
  background: var(--avx-surface);
}

/* ---------- Editorial journal (blogs) ---------- */

.avx-resources-page .res-journal-head {
  max-width: 640px;
}

.avx-resources-page .res-journal-feature {
  position: relative;
  display: block;
  overflow: hidden;
  margin-top: 2.5rem;
  padding: 2.5rem;
  border-radius: 20px;
  background: linear-gradient(150deg, var(--avx-navy) 0%, var(--avx-navy-2) 100%);
  text-decoration: none;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.avx-resources-page .res-journal-feature:hover {
  transform: translateY(-4px);
  box-shadow: var(--avx-shadow-strong);
}

.avx-resources-page .res-journal-feature-icon {
  margin-bottom: 1.2rem;
}

.avx-resources-page .res-journal-feature .res-journal-tag {
  position: relative;
  display: inline-flex;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(61, 187, 142, 0.18);
  color: var(--avx-mint);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.avx-resources-page .res-journal-feature h3 {
  position: relative;
  margin: 1rem 0 0.9rem;
  max-width: 24ch;
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  color: #ffffff;
}

.avx-resources-page .res-journal-feature p {
  position: relative;
  max-width: 60ch;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.02rem;
}

.avx-resources-page .res-journal-feature .res-journal-meta {
  position: relative;
  display: block;
  margin-top: 1.3rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.85rem;
  font-weight: 700;
}

/* ---------- Blog search + filter toolbar ---------- */

.avx-resources-page .res-journal-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-top: 2rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--avx-line);
  border-radius: 16px;
  background: var(--avx-cream);
  box-shadow: var(--avx-shadow);
}

.avx-resources-page .res-journal-search-box {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex: 1 1 240px;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--avx-line);
  border-radius: 999px;
  background: var(--avx-surface);
}

.avx-resources-page .res-journal-search-box svg {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--avx-muted);
}

.avx-resources-page .res-journal-search-box input {
  flex: 1;
  border: none;
  background: none;
  outline: none;
  font: inherit;
  color: var(--avx-navy);
}

.avx-resources-page .res-journal-toolbar select {
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--avx-line);
  border-radius: 999px;
  background: var(--avx-surface);
  color: var(--avx-navy);
  font-weight: 700;
  font-size: 0.92rem;
  font-family: inherit;
}

.avx-resources-page .res-journal-count {
  margin-left: auto;
  font-weight: 800;
  font-size: 0.86rem;
  color: var(--avx-teal);
  white-space: nowrap;
}

/* ---------- Blog card grid ---------- */

.avx-resources-page .res-blog-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.1rem;
  margin-top: 1.5rem;
}

.avx-resources-page .res-blog-card {
  position: relative;
  padding: 1.6rem 1.4rem 1.4rem;
  border-top: 3px solid var(--avx-teal);
  background: var(--avx-cream);
  box-shadow: var(--avx-shadow);
  border-radius: 4px 4px 14px 14px;
}

.avx-resources-page .res-blog-card.is-hidden {
  display: none;
}

.avx-resources-page .res-blog-tag {
  display: inline-flex;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.avx-resources-page .res-blog-tag.cyan { background: rgba(13, 158, 158, 0.14); color: var(--avx-green); }
.avx-resources-page .res-blog-tag.sage { background: rgba(61, 187, 142, 0.16); color: var(--avx-green); }
.avx-resources-page .res-blog-tag.ocean { background: rgba(20, 41, 66, 0.1); color: var(--avx-navy-2); }
.avx-resources-page .res-blog-tag.lime { background: rgba(143, 209, 106, 0.22); color: #3f6b22; }

.avx-resources-page .res-blog-card h4 {
  margin: 0.8rem 0 0.6rem;
  font-size: 1.03rem;
  line-height: 1.3;
  color: var(--avx-navy);
}

.avx-resources-page .res-blog-card h4 a {
  color: inherit;
  text-decoration: none;
}

.avx-resources-page .res-blog-card h4 a:hover {
  color: var(--avx-teal);
}

.avx-resources-page .res-blog-card p {
  font-size: 0.89rem;
  color: var(--avx-muted);
  margin-bottom: 1rem;
}

.avx-resources-page .res-blog-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding-top: 0.8rem;
  border-top: 1px dashed var(--avx-line);
}

.avx-resources-page .res-blog-meta {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--avx-teal);
  white-space: nowrap;
}

.avx-resources-page .res-blog-link {
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--avx-green);
  text-decoration: none;
  white-space: nowrap;
}

.avx-resources-page .res-blog-link span {
  display: inline-block;
  transition: transform 180ms ease;
}

.avx-resources-page .res-blog-link:hover span {
  transform: translateX(3px);
}

.avx-resources-page .res-blog-empty {
  margin-top: 1.5rem;
  text-align: center;
  color: var(--avx-muted);
}

/* ---------- Individual field note (blog post) page ---------- */

.avx-resources-page .res-insight {
  padding: 4rem 0 2rem;
}

.avx-resources-page .res-insight-inner {
  max-width: 720px;
}

.avx-resources-page .res-insight-back {
  display: inline-block;
  margin-bottom: 1.5rem;
  color: var(--avx-green);
  font-weight: 800;
  font-size: 0.9rem;
  text-decoration: none;
}

.avx-resources-page .res-insight-inner h1 {
  margin: 1rem 0 0.6rem;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  color: var(--avx-navy);
}

.avx-resources-page .res-insight-meta {
  color: var(--avx-muted);
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 2rem;
}

.avx-resources-page .res-insight-body p {
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--avx-ink);
  margin-bottom: 1.3rem;
}

.avx-resources-page .res-insight-body p:first-of-type {
  font-size: 1.2rem;
  color: var(--avx-navy);
  font-weight: 600;
}

.avx-resources-page .res-insight-service-card {
  display: block;
  margin-top: 2.5rem;
  padding: 1.8rem;
  border-radius: 18px;
  background: var(--avx-mist);
  border: 1px solid var(--avx-line);
  text-decoration: none;
  color: inherit;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.avx-resources-page .res-insight-service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--avx-shadow);
}

.avx-resources-page .res-insight-service-card h3 {
  margin: 0.6rem 0 0.5rem;
  color: var(--avx-navy);
}

.avx-resources-page .res-insight-service-card p {
  margin-bottom: 0.9rem;
  color: var(--avx-muted);
}

.avx-resources-page .res-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.avx-resources-page .res-related-note {
  display: block;
  padding: 1.4rem;
  border-radius: 14px;
  background: var(--avx-cream);
  border: 1px solid var(--avx-line);
  text-decoration: none;
  color: inherit;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.avx-resources-page .res-related-note:hover {
  transform: translateY(-4px);
  box-shadow: var(--avx-shadow);
}

.avx-resources-page .res-related-note h4 {
  margin-top: 0.7rem;
  font-size: 0.98rem;
  color: var(--avx-navy);
}

@media (max-width: 680px) {
  .avx-resources-page .res-related-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Case study rows (alternating, with a parallax numeral) ---------- */

.avx-resources-page .res-case-list {
  display: flex;
  flex-direction: column;
}

.avx-resources-page .res-case-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2rem 1.5rem;
  border-bottom: 1px solid var(--avx-line);
  text-decoration: none;
  color: inherit;
  transition: background 220ms ease;
}

.avx-resources-page .res-case-row:first-child {
  border-top: 1px solid var(--avx-line);
}

.avx-resources-page .res-case-row:nth-child(even) {
  flex-direction: row-reverse;
  text-align: right;
}

.avx-resources-page .res-case-row:hover {
  background: var(--avx-surface);
}

.avx-resources-page .res-case-num {
  flex: none;
  min-width: 4.5rem;
  font-family: var(--display-font);
  font-size: 3.4rem;
  font-weight: 800;
  line-height: 1;
  color: rgba(10, 12, 46, 0.09);
}

.avx-resources-page .res-case-body {
  flex: 1;
  display: block;
}

.avx-resources-page .res-case-tag {
  display: inline-flex;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: rgba(13, 158, 158, 0.14);
  color: var(--avx-green);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 0.6rem;
}

.avx-resources-page .res-case-body h3 {
  margin: 0 0 0.4rem;
  font-size: 1.15rem;
  color: var(--avx-navy);
}

.avx-resources-page .res-case-body p {
  margin: 0;
  font-size: 0.94rem;
  color: var(--avx-muted);
  max-width: 56ch;
}

.avx-resources-page .res-case-row:nth-child(even) .res-case-body p {
  margin-left: auto;
}

.avx-resources-page .res-case-arrow {
  flex: none;
  font-size: 1.3rem;
  color: var(--avx-teal);
  transition: transform 220ms ease;
}

.avx-resources-page .res-case-row:hover .res-case-arrow {
  transform: translateX(6px);
}

.avx-resources-page .res-case-row:nth-child(even):hover .res-case-arrow {
  transform: translateX(-6px);
}

/* ---------- White paper manuscript list ---------- */

.avx-resources-page .res-paper-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 880px;
}

.avx-resources-page .res-paper-list li {
  border-bottom: 1px solid var(--avx-line);
}

.avx-resources-page .res-paper-list li:first-child {
  border-top: 1px solid var(--avx-line);
}

.avx-resources-page .res-paper-list a {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.4rem 0.5rem;
  text-decoration: none;
  color: inherit;
  transition: padding-left 220ms ease, background 220ms ease;
}

.avx-resources-page .res-paper-list a:hover {
  padding-left: 1.1rem;
  background: var(--avx-surface);
}

.avx-resources-page .res-paper-num {
  flex: none;
  min-width: 2.2rem;
  font-family: var(--display-font);
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--avx-teal);
}

.avx-resources-page .res-paper-body {
  flex: 1;
  display: grid;
  gap: 0.3rem;
}

.avx-resources-page .res-paper-body strong {
  color: var(--avx-navy);
  font-size: 1.02rem;
}

.avx-resources-page .res-paper-body span {
  color: var(--avx-muted);
  font-size: 0.9rem;
}

.avx-resources-page .res-paper-status {
  flex: none;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: rgba(20, 41, 66, 0.08);
  color: var(--avx-navy-2);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* ---------- Featured topics chapter rail ---------- */

.avx-resources-page .res-chapter-rail {
  margin-top: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--avx-teal) transparent;
}

.avx-resources-page .res-chapter-track {
  display: flex;
  gap: 1.2rem;
  padding: 0.5rem 1.5rem 1.5rem;
  width: max-content;
}

.avx-resources-page .res-chapter-panel {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex: 0 0 300px;
  min-height: 360px;
  scroll-snap-align: start;
  padding: 1.8rem;
  border-radius: 20px;
  text-decoration: none;
  color: inherit;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.avx-resources-page .res-chapter-panel:hover {
  transform: translateY(-8px);
  box-shadow: var(--avx-shadow-strong);
}

.avx-resources-page .res-chapter-index {
  position: absolute;
  right: 1rem;
  top: -0.6rem;
  font-family: var(--display-font);
  font-size: 6rem;
  font-weight: 800;
  line-height: 1;
  color: rgba(10, 12, 46, 0.06);
}

.avx-resources-page .res-chapter-panel h3 {
  margin: 1.2rem 0 0.6rem;
  font-size: 1.2rem;
  color: var(--avx-navy);
}

.avx-resources-page .res-chapter-panel p {
  flex: 1;
  font-size: 0.92rem;
  color: var(--avx-muted);
  margin-bottom: 1rem;
}

.avx-resources-page .res-chapter-link {
  font-weight: 800;
  font-size: 0.88rem;
  color: var(--avx-green);
}

.avx-resources-page .res-chapter-link span {
  display: inline-block;
  transition: transform 180ms ease;
}

.avx-resources-page .res-chapter-panel:hover .res-chapter-link span {
  transform: translateX(4px);
}

.avx-resources-page .res-chapter-panel.tone-cyan { background: linear-gradient(160deg, #f8fafc, var(--avx-cream) 70%); }
.avx-resources-page .res-chapter-panel.tone-sage { background: linear-gradient(160deg, #f8fafc, var(--avx-cream) 70%); }
.avx-resources-page .res-chapter-panel.tone-ocean { background: linear-gradient(160deg, #e2e8f0, var(--avx-cream) 70%); }
.avx-resources-page .res-chapter-panel.tone-lime { background: linear-gradient(160deg, #f8fafc, var(--avx-cream) 70%); }

/* ---------- Industry click-through selector ---------- */

.avx-resources-page .res-industry-shell {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 2.5rem;
  align-items: start;
}

.avx-resources-page .res-industry-nav {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.avx-resources-page .res-industry-btn {
  text-align: left;
  padding: 0.9rem 1rem;
  border: none;
  border-left: 3px solid transparent;
  background: none;
  color: var(--avx-muted);
  font-weight: 700;
  font-size: 0.98rem;
  cursor: pointer;
  border-radius: 0 10px 10px 0;
  transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}

.avx-resources-page .res-industry-btn:hover {
  background: var(--avx-surface);
  color: var(--avx-navy);
}

.avx-resources-page .res-industry-btn.is-active {
  background: var(--avx-mist);
  border-color: var(--avx-teal);
  color: var(--avx-navy);
}

.avx-resources-page .res-industry-stage {
  position: relative;
  min-height: 260px;
  padding: 2rem;
  border-radius: 20px;
  background: var(--avx-cream);
  border: 1px solid var(--avx-line);
}

.avx-resources-page .res-industry-panel {
  display: none;
}

.avx-resources-page .res-industry-panel.is-active {
  display: block;
  animation: avx-reveal-in 420ms ease both;
}

.avx-resources-page .res-industry-phase {
  margin: 1rem 0 0.6rem;
  color: var(--avx-green);
  font-weight: 800;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.avx-resources-page .res-industry-stage p:not(.res-industry-phase) {
  font-size: 1.02rem;
  max-width: 56ch;
  margin-bottom: 1.2rem;
}

.avx-resources-page .res-card-link {
  display: inline-block;
  font-weight: 800;
  font-size: 0.88rem;
  color: var(--avx-green);
  text-decoration: none;
}

.avx-resources-page .res-card-link span {
  display: inline-block;
  transition: transform 180ms ease;
}

.avx-resources-page .res-card-link:hover span {
  transform: translateX(4px);
}

/* ---------- Why AVEX benefit list ---------- */

.avx-resources-page .res-why-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.avx-resources-page .res-why-list li {
  position: relative;
  padding: 1.1rem 1.2rem 1.1rem 3rem;
  border: 1px solid var(--avx-line);
  border-radius: 14px;
  background: var(--avx-cream);
  font-weight: 700;
  color: var(--avx-navy);
}

.avx-resources-page .res-why-list li::before {
  content: "\2713";
  position: absolute;
  left: 1.1rem;
  top: 1.05rem;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--avx-teal);
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---------- Coming soon ticker ---------- */

.avx-resources-page .res-coming-soon {
  background: var(--avx-navy);
}

.avx-resources-page .res-coming-soon .eyebrow {
  color: var(--avx-mint);
}

.avx-resources-page .res-coming-soon h2 {
  color: #ffffff;
}

.avx-resources-page .res-coming-soon p {
  color: rgba(255, 255, 255, 0.72);
}

.avx-resources-page .res-ticker {
  margin-top: 2rem;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.avx-resources-page .res-ticker-track {
  display: flex;
  align-items: center;
  gap: 1.7rem;
  width: max-content;
  padding: 1.1rem 0;
  animation: res-ticker-move 26s linear infinite;
}

.avx-resources-page .res-ticker-track span {
  white-space: nowrap;
  font-weight: 700;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.85);
}

.avx-resources-page .res-ticker-track i {
  width: 6px;
  height: 6px;
  background: var(--avx-mint);
  transform: rotate(45deg);
  flex: none;
}

@keyframes res-ticker-move {
  to { transform: translateX(-50%); }
}

@media (max-width: 1020px) {
  .avx-resources-page .res-stat-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avx-resources-page .res-stat-row div:nth-child(2) {
    border-right: none;
  }

  .avx-resources-page .res-industry-shell {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 1.5rem;
  }

  .avx-resources-page .res-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .avx-resources-page .res-stat-row {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .res-stat-row div {
    border-right: none;
    border-bottom: 1px solid var(--avx-line);
  }

  .avx-resources-page .res-stat-row div:last-child {
    border-bottom: none;
  }

  .avx-resources-page .res-subnav {
    justify-content: flex-start;
    overflow-x: auto;
    gap: 1rem;
  }

  .avx-resources-page .res-why-list {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .res-journal-feature {
    padding: 2.2rem 1.5rem 2rem;
  }

  .avx-resources-page .res-journal-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .avx-resources-page .res-journal-count {
    margin-left: 0;
  }

  .avx-resources-page .res-blog-grid {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .res-case-row,
  .avx-resources-page .res-case-row:nth-child(even) {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 0.8rem;
  }

  .avx-resources-page .res-case-row:nth-child(even) .res-case-body p {
    margin-left: 0;
  }

  .avx-resources-page .res-case-num {
    font-size: 2.2rem;
    min-width: auto;
  }

  .avx-resources-page .res-industry-shell {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .res-industry-nav {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .avx-resources-page .res-industry-btn {
    border-left: none;
    border-bottom: 2px solid transparent;
    border-radius: 8px;
  }

  .avx-resources-page .res-industry-btn.is-active {
    border-color: var(--avx-teal);
  }
}

/* =====================================================================
   Challenge constellation: scroll-driven 3D stack that compresses and
   raises one vertical content card from the deck.
   ===================================================================== */

.challenge-scene {
  --active-layer-color: var(--avx-mint);
  position: relative;
  overflow: clip;
  background:
    radial-gradient(760px 460px at 18% 18%, rgba(13, 158, 158, 0.2), transparent 70%),
    radial-gradient(620px 400px at 78% 70%, rgba(20, 88, 173, 0.22), transparent 72%),
    linear-gradient(180deg, #061f35 0%, #0a0c2e 48%, #071526 100%);
  color: #f8fafc;
}

.challenge-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.22;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(143, 209, 255, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143, 209, 255, 0.14) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 82%, transparent 100%);
}

.challenge-scene::after {
  content: "";
  position: absolute;
  inset: 7% -12% auto;
  height: 54%;
  opacity: 0.18;
  pointer-events: none;
  background:
    repeating-linear-gradient(115deg, transparent 0 34px, rgba(61, 187, 142, 0.16) 35px 36px),
    repeating-linear-gradient(25deg, transparent 0 44px, rgba(143, 209, 255, 0.14) 45px 46px);
  transform: skewY(-8deg);
}

.challenge-scene > * {
  position: relative;
  z-index: 1;
}

.challenge-scene .section-heading {
  margin-inline: auto;
  text-align: center;
}

.challenge-scene .section-heading h2 {
  margin-inline: auto;
  color: #ffffff;
}

.challenge-scene .eyebrow {
  color: #3dbb8e;
}

.challenge-scroll-stage {
  position: relative;
  height: calc(96vh + (var(--challenge-count, 5) * 58vh));
  min-height: 1120px;
}

.challenge-scroll-sticky {
  position: sticky;
  top: 78px;
  display: grid;
  min-height: calc(100vh - 78px);
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.34fr);
  gap: clamp(1.6rem, 4vw, 4rem);
  align-items: center;
}

.challenge-visual {
  position: relative;
  min-height: min(720px, calc(100vh - 120px));
  perspective: 1800px;
  transform-style: preserve-3d;
}

.challenge-stack-visual {
  position: absolute;
  left: clamp(1rem, 6vw, 5rem);
  top: 50%;
  width: clamp(360px, 42vw, 620px);
  height: clamp(460px, 55vw, 650px);
  transform: translateY(-50%);
  transform-style: preserve-3d;
  perspective: 1600px;
}

.challenge-layer {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(210px, 23vw, 325px);
  height: clamp(210px, 23vw, 325px);
  opacity: var(--layer-opacity, 1);
  transform:
    translate3d(-50%, calc(-50% + var(--layer-y, 0px)), 0)
    rotateX(58deg)
    rotateZ(45deg)
    scale(var(--layer-scale, 1));
  transform-style: preserve-3d;
  transition: opacity 260ms ease, filter 260ms ease;
  filter: saturate(var(--layer-saturation, 1));
  will-change: transform, opacity;
}

.challenge-layer-depth,
.challenge-layer-face {
  position: absolute;
  inset: 0;
  border: 2px solid rgba(6, 31, 53, 0.82);
  border-radius: 34px;
  background: var(--layer-color, #3dbb8e);
  backface-visibility: hidden;
}

.challenge-layer-depth {
  filter: brightness(calc(0.92 - (var(--d, 1) * 0.055)));
  transform: translateY(calc(var(--d, 1) * 9px)) translateZ(calc(var(--d, 1) * -2px));
}

.challenge-layer-face {
  z-index: 7;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #062135;
  background:
    radial-gradient(140px 120px at 24% 20%, rgba(255, 255, 255, 0.42), transparent 70%),
    linear-gradient(150deg, color-mix(in srgb, var(--layer-color) 92%, #ffffff), color-mix(in srgb, var(--layer-color) 74%, #ffffff));
  box-shadow:
    0 26px 58px rgba(1, 10, 22, 0.24),
    inset 0 2px 0 rgba(255, 255, 255, 0.5);
}

.challenge-layer-face::before {
  content: "";
  position: absolute;
  inset: 18%;
  border: 2px solid rgba(6, 31, 53, 0.32);
  border-radius: 26px;
}

.challenge-layer-module {
  position: absolute;
  display: grid;
  place-items: center;
  min-width: 58px;
  min-height: 48px;
  padding: 0.55rem 0.7rem;
  border: 2px solid rgba(6, 31, 53, 0.72);
  border-radius: 16px;
  background: color-mix(in srgb, var(--layer-color) 78%, #ffffff);
  box-shadow:
    0 8px 0 color-mix(in srgb, var(--layer-color) 58%, #061f35),
    0 18px 26px rgba(1, 10, 22, 0.18);
  color: #062135;
  font-family: var(--display-font);
  font-weight: 900;
  transform: rotateZ(-45deg) rotateX(-58deg);
}

.challenge-layer-module.module-a {
  left: 20%;
  top: 22%;
}

.challenge-layer-module.module-b {
  right: 20%;
  bottom: 22%;
}

.challenge-layer-title {
  position: absolute;
  left: 50%;
  bottom: 17%;
  width: 17ch;
  color: rgba(6, 31, 53, 0.74);
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.18;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%) rotateZ(-45deg) rotateX(-58deg);
}

.challenge-icon-svg {
  width: 25px;
  height: 25px;
}

.challenge-data-cubes {
  position: absolute;
  left: 46%;
  bottom: 0.5rem;
  width: 290px;
  height: 150px;
  transform: translateX(-50%);
}

.challenge-data-cubes span {
  position: absolute;
  width: var(--cube, 52px);
  height: var(--cube, 52px);
  border: 2px solid rgba(6, 31, 53, 0.82);
  background: #eff8ec;
  transform: rotateX(58deg) rotateZ(45deg);
  box-shadow:
    10px 10px 0 #d7ead5,
    20px 20px 0 #bdd9cd;
}

.challenge-data-cubes span:nth-child(1) { --cube: 62px; left: 8px; bottom: 4px; }
.challenge-data-cubes span:nth-child(2) { --cube: 44px; left: 112px; bottom: 0; }
.challenge-data-cubes span:nth-child(3) { --cube: 70px; right: 12px; bottom: 14px; }
.challenge-data-cubes span:nth-child(4) { --cube: 38px; left: 180px; top: 20px; }
.challenge-data-cubes span:nth-child(5) { --cube: 28px; left: 168px; bottom: 2px; }

.challenge-upright-card {
  --card-x: -160px;
  --card-y: 90px;
  --card-rx: 58deg;
  --card-ry: 0deg;
  --card-rz: 45deg;
  --card-scale: 0.72;
  --card-opacity: 0;
  position: absolute;
  right: clamp(0rem, 4vw, 3.5rem);
  top: 50%;
  z-index: 40;
  display: grid;
  width: clamp(310px, 32vw, 460px);
  min-height: clamp(390px, 44vw, 510px);
  padding: clamp(1.35rem, 2.5vw, 2rem);
  border: 1px solid color-mix(in srgb, var(--active-layer-color) 36%, rgba(143, 209, 255, 0.46));
  border-radius: 28px;
  background:
    radial-gradient(280px 220px at 18% 6%, color-mix(in srgb, var(--active-layer-color) 24%, transparent), transparent 70%),
    linear-gradient(155deg, rgba(248, 253, 255, 0.98), rgba(224, 243, 255, 0.94) 54%, rgba(214, 246, 240, 0.92));
  box-shadow:
    0 34px 80px rgba(1, 10, 22, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  opacity: var(--card-opacity);
  transform:
    translate3d(var(--card-x), calc(-50% + var(--card-y)), 0)
    rotateX(var(--card-rx))
    rotateY(var(--card-ry))
    rotateZ(var(--card-rz))
    scale(var(--card-scale));
  transform-origin: center bottom;
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

.challenge-upright-card::before {
  content: "";
  position: absolute;
  inset: 0.75rem;
  border: 1px solid rgba(14, 77, 110, 0.13);
  border-radius: 22px;
  pointer-events: none;
}

.challenge-upright-card::after {
  content: "";
  position: absolute;
  top: 1rem;
  left: 1.2rem;
  right: 1.2rem;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--active-layer-color), rgba(20, 88, 173, 0.18));
  pointer-events: none;
}

.challenge-upright-edge {
  position: absolute;
  inset: auto 18px -16px 18px;
  height: 30px;
  border-radius: 0 0 24px 24px;
  background: linear-gradient(180deg, rgba(137, 196, 235, 0.42), rgba(14, 77, 110, 0.2));
  transform: translateZ(-18px);
  pointer-events: none;
}

.challenge-panel {
  grid-area: 1 / 1;
  display: grid;
  align-content: center;
  min-height: 100%;
  visibility: hidden;
  opacity: 0;
  transform: translateY(18px) scale(0.985);
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.challenge-panel.is-active {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.challenge-panel-index {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 0.85rem;
  padding: 0.38rem 0.62rem;
  border: 1px solid color-mix(in srgb, var(--layer-color) 38%, transparent);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #0e4d6e;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0;
}

.challenge-panel h3 {
  margin: 0 0 0.85rem;
  color: #0a0c2e;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  line-height: 1.02;
  text-wrap: balance;
}

.challenge-panel p {
  margin: 0 0 1rem;
  color: rgba(19, 33, 50, 0.74);
  font-size: 1rem;
  line-height: 1.58;
}

.challenge-panel ul {
  display: grid;
  gap: 0.58rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.challenge-panel li {
  position: relative;
  padding-left: 1.25rem;
  color: #1e293b;
  font-weight: 760;
  line-height: 1.38;
}

.challenge-panel li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.48em;
  width: 8px;
  height: 8px;
  border-radius: 3px;
  background: var(--layer-color, #3dbb8e);
  transform: rotate(45deg);
}

.challenge-scroll-legend {
  display: grid;
  gap: 1rem;
}

.challenge-step {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  min-height: 58px;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(238, 248, 255, 0.48);
  text-align: left;
  font-family: var(--display-font);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    transform 260ms ease,
    color 260ms ease,
    background 260ms ease,
    border-color 260ms ease,
    opacity 260ms ease;
}

.challenge-step:hover,
.challenge-step:focus-visible,
.challenge-step.is-active {
  color: #ffffff;
  border-color: color-mix(in srgb, var(--layer-color) 42%, transparent);
  background: rgba(255, 255, 255, 0.08);
  transform: translateX(-6px);
}

.challenge-step-swatch {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--layer-color, #3dbb8e);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 10px 24px color-mix(in srgb, var(--layer-color) 28%, transparent);
}

@media (max-width: 1080px) {
  .challenge-scroll-sticky {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 1.2rem;
  }

  .challenge-visual {
    min-height: 620px;
  }

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

@media (max-width: 720px) {
  .challenge-scroll-stage {
    min-height: 1040px;
    height: calc(96vh + (var(--challenge-count, 5) * 52vh));
  }

  .challenge-scroll-sticky {
    top: 72px;
    min-height: calc(100vh - 72px);
  }

  .challenge-visual {
    min-height: 590px;
  }

  .challenge-stack-visual {
    left: 50%;
    top: 38%;
    width: 340px;
    height: 430px;
    transform: translate(-50%, -50%);
  }

  .challenge-layer {
    width: 190px;
    height: 190px;
  }

  .challenge-layer-module {
    min-width: 44px;
    min-height: 38px;
    border-radius: 12px;
    font-size: 0.78rem;
  }

  .challenge-layer-title {
    display: none;
  }

  .challenge-data-cubes {
    opacity: 0.62;
    transform: translateX(-50%) scale(0.78);
  }

  .challenge-upright-card {
    left: 50%;
    right: auto;
    top: 56%;
    width: min(88vw, 350px);
    min-height: 350px;
    padding: 1.2rem;
  }

  .challenge-panel h3 {
    font-size: clamp(1.35rem, 7vw, 2rem);
  }

  .challenge-panel p {
    font-size: 0.94rem;
  }

  .challenge-panel li {
    font-size: 0.9rem;
  }

  .challenge-scroll-legend {
    display: none;
  }
}

/* Reference-matched Challenge Constellation sequence. */
.challenge-scene {
  --challenge-ink: #073934;
  --challenge-paper: #eff9ed;
  overflow: clip;
  background: #06453d;
  color: #f8fafc;
}

.challenge-scene::before {
  opacity: 0.12;
  background-image:
    linear-gradient(rgba(221, 255, 237, 0.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(221, 255, 237, 0.14) 1px, transparent 1px);
  background-size: 84px 84px;
  mask-image: linear-gradient(180deg, transparent, #000 18%, #000 86%, transparent);
}

.challenge-scene::after {
  inset: auto 0 0;
  height: 1px;
  opacity: 1;
  background: rgba(224, 255, 238, 0.16);
  transform: none;
}

.challenge-scene .section-heading {
  padding-top: 0.5rem;
}

.challenge-scene .section-heading h2 {
  max-width: 760px;
}

.challenge-scene .eyebrow {
  color: #c7f65b;
}

.challenge-scroll-stage {
  height: calc(118vh + (var(--challenge-count, 5) * 68vh));
  min-height: 1240px;
  max-width: 1380px;
}

.challenge-scroll-sticky {
  top: 78px;
  min-height: calc(100vh - 78px);
  grid-template-columns: minmax(0, 1fr) minmax(220px, 270px);
  gap: clamp(1rem, 2.8vw, 3rem);
}

.challenge-visual {
  min-height: min(740px, calc(100vh - 104px));
  perspective: 1900px;
}

.challenge-stack-visual {
  left: clamp(-1.5rem, 2vw, 2rem);
  top: 50%;
  width: clamp(560px, 58vw, 760px);
  height: clamp(570px, 62vw, 700px);
  perspective: 1800px;
}

.challenge-layer,
.challenge-feature-layer {
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(250px, 27vw, 350px);
  height: clamp(250px, 27vw, 350px);
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

.challenge-layer {
  opacity: var(--layer-opacity, 1);
  transform:
    translate3d(-50%, calc(-50% + var(--layer-y, 0px)), 0)
    rotateX(60deg)
    rotateZ(45deg)
    scale(var(--layer-scale, 1));
  filter: saturate(var(--layer-saturation, 1));
}

.challenge-layer-depth,
.challenge-layer-face,
.challenge-feature-face {
  border: 3px solid var(--challenge-ink);
  border-radius: 38px;
}

.challenge-layer-depth {
  background: color-mix(in srgb, var(--layer-color) 74%, var(--challenge-ink));
  filter: brightness(calc(0.98 - (var(--d, 1) * 0.045)));
  transform: translateY(calc(var(--d, 1) * 8px)) translateZ(calc(var(--d, 1) * -2px));
}

.challenge-layer-face {
  display: block;
  overflow: hidden;
  background: color-mix(in srgb, var(--layer-color) 88%, #ffffff);
  box-shadow:
    0 30px 60px rgba(1, 25, 23, 0.2),
    inset 0 2px 0 rgba(255, 255, 255, 0.42);
}

.challenge-layer-face::before {
  inset: 14px;
  border: 1px solid rgba(7, 57, 52, 0.14);
  border-radius: 30px;
}

.challenge-layer-number {
  position: absolute;
  right: 24px;
  bottom: 20px;
  color: rgba(7, 57, 52, 0.36);
  font-family: var(--display-font);
  font-size: 0.92rem;
  font-weight: 900;
}

.challenge-feature-layer {
  z-index: 42;
  opacity: var(--feature-opacity, 0);
  transform:
    translate3d(-50%, calc(-50% + var(--feature-y, -260px)), 8px)
    rotateX(60deg)
    rotateZ(45deg)
    scale(var(--feature-scale, 0.9));
}

.challenge-feature-face {
  position: absolute;
  inset: 0;
  z-index: 7;
  overflow: visible;
  background: #c8f45c;
  box-shadow:
    0 34px 70px rgba(1, 25, 23, 0.28),
    inset 0 2px 0 rgba(255, 255, 255, 0.46);
}

.challenge-feature-face::before {
  content: "";
  position: absolute;
  inset: 15px;
  border: 2px solid rgba(7, 57, 52, 0.2);
  border-radius: 30px;
}

.challenge-control {
  position: absolute;
  display: grid;
  place-items: center;
  width: 70px;
  height: 58px;
  border: 3px solid var(--challenge-ink);
  border-radius: 17px;
  background: #d8fb78;
  color: var(--challenge-ink);
  box-shadow:
    0 9px 0 #8fb83f,
    0 17px 20px rgba(1, 25, 23, 0.2);
}

.challenge-control .challenge-icon-svg {
  width: 28px;
  height: 28px;
  stroke-width: 2.2;
}

.challenge-control.control-north { left: 50%; top: 9%; transform: translateX(-50%); }
.challenge-control.control-west { left: 10%; top: 50%; transform: translateY(-50%); }
.challenge-control.control-center { left: 50%; top: 50%; transform: translate(-50%, -50%); }
.challenge-control.control-east { right: 10%; top: 50%; transform: translateY(-50%); }
.challenge-control.control-south { left: 50%; bottom: 9%; transform: translateX(-50%); }

.challenge-control.control-center {
  width: 78px;
  height: 68px;
  align-content: center;
  line-height: 1;
}

.challenge-control strong,
.challenge-control small {
  display: block;
  letter-spacing: 0;
}

.challenge-control strong {
  font-size: 0.78rem;
}

.challenge-control small {
  margin-top: 4px;
  font-size: 0.52rem;
  font-weight: 900;
}

.challenge-data-cubes {
  left: 50%;
  bottom: -0.25rem;
  width: 310px;
  height: 160px;
  opacity: calc(1 - (var(--challenge-compress, 0) * 0.2));
}

.challenge-data-cubes span {
  border: 3px solid var(--challenge-ink);
  background: #eff8e8;
  box-shadow:
    9px 9px 0 #d8ead3,
    18px 18px 0 #afcec2;
}

.challenge-upright-card {
  right: clamp(0rem, 1vw, 1rem);
  width: clamp(350px, 34vw, 460px);
  min-height: clamp(470px, 43vw, 535px);
  padding: clamp(2rem, 3vw, 2.75rem);
  border: 3px solid var(--challenge-ink);
  border-radius: 26px;
  background: var(--challenge-paper);
  box-shadow:
    16px 18px 0 color-mix(in srgb, var(--active-layer-color) 48%, #0a6155),
    28px 38px 70px rgba(1, 22, 20, 0.34),
    inset 0 2px 0 rgba(255, 255, 255, 0.78);
  transform-origin: 50% 86%;
}

.challenge-upright-card::before {
  inset: 13px;
  border: 2px solid rgba(7, 57, 52, 0.14);
  border-radius: 18px;
}

.challenge-upright-card::after {
  content: "AVEX  /  CHALLENGE";
  top: 22px;
  left: 28px;
  right: 28px;
  height: auto;
  padding-bottom: 10px;
  border-bottom: 2px solid color-mix(in srgb, var(--active-layer-color) 58%, var(--challenge-ink));
  border-radius: 0;
  background: none;
  color: var(--challenge-ink);
  font-family: var(--display-font);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0;
}

.challenge-upright-edge {
  inset: auto 14px -21px 14px;
  height: 30px;
  border: 3px solid var(--challenge-ink);
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: color-mix(in srgb, var(--active-layer-color) 55%, #0a6155);
  transform: translateZ(-18px);
}

.challenge-panel {
  padding-top: 1.5rem;
  opacity: 0;
  transform: translateY(22px) scale(0.98);
  transition:
    opacity 300ms ease,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.challenge-panel.is-active {
  opacity: 1;
}

.challenge-panel-index {
  margin-bottom: 1.1rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: color-mix(in srgb, var(--layer-color) 72%, var(--challenge-ink));
  font-size: 0.82rem;
}

.challenge-panel h3 {
  margin-bottom: 1rem;
  color: var(--challenge-ink);
  font-size: clamp(1.65rem, 2.4vw, 2.35rem);
  line-height: 1.04;
}

.challenge-panel p {
  margin-bottom: 1.2rem;
  color: rgba(7, 57, 52, 0.75);
  line-height: 1.55;
}

.challenge-panel ul {
  gap: 0.62rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(7, 57, 52, 0.15);
}

.challenge-panel li {
  color: var(--challenge-ink);
  font-size: 0.94rem;
}

.challenge-panel li::before {
  width: 9px;
  height: 9px;
  border: 2px solid var(--challenge-ink);
  border-radius: 3px;
}

.challenge-scroll-legend {
  gap: 0.72rem;
}

.challenge-step {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 0.72rem;
  min-height: 54px;
  padding: 0.45rem 0.5rem;
  border: 0;
  border-left: 2px solid rgba(231, 255, 242, 0.12);
  border-radius: 0;
  background: transparent;
  color: rgba(241, 251, 247, 0.42);
  font-size: 0.72rem;
  line-height: 1.25;
}

.challenge-step:hover,
.challenge-step:focus-visible,
.challenge-step.is-active {
  border-color: var(--layer-color);
  background: rgba(255, 255, 255, 0.045);
  transform: translateX(-4px);
}

.challenge-step-swatch {
  width: 32px;
  height: 32px;
  border: 2px solid rgba(7, 57, 52, 0.8);
  border-radius: 8px;
  box-shadow:
    0 5px 0 color-mix(in srgb, var(--layer-color) 65%, var(--challenge-ink)),
    0 12px 20px rgba(1, 22, 20, 0.2);
}

@media (max-width: 1080px) {
  .challenge-scroll-sticky {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .challenge-visual {
    min-height: min(690px, calc(100vh - 150px));
  }

  .challenge-scroll-legend {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.4rem;
  }

  .challenge-step {
    grid-template-columns: 28px minmax(0, 1fr);
    font-size: 0.62rem;
  }

  .challenge-step-swatch {
    width: 24px;
    height: 24px;
  }
}

@media (max-width: 720px) {
  .challenge-scroll-stage {
    height: calc(110vh + (var(--challenge-count, 5) * 66vh));
    min-height: 1120px;
  }

  .challenge-scroll-sticky {
    top: 72px;
    min-height: calc(100vh - 72px);
  }

  .challenge-visual {
    min-height: 610px;
  }

  .challenge-stack-visual {
    left: 50%;
    top: 37%;
    width: 360px;
    height: 440px;
  }

  .challenge-layer,
  .challenge-feature-layer {
    width: 198px;
    height: 198px;
  }

  .challenge-layer-depth,
  .challenge-layer-face,
  .challenge-feature-face {
    border-width: 2px;
    border-radius: 25px;
  }

  .challenge-control {
    width: 42px;
    height: 36px;
    border-width: 2px;
    border-radius: 10px;
    box-shadow: 0 6px 0 #8fb83f, 0 11px 14px rgba(1, 25, 23, 0.2);
  }

  .challenge-control.control-center {
    width: 50px;
    height: 44px;
  }

  .challenge-control .challenge-icon-svg {
    width: 18px;
    height: 18px;
  }

  .challenge-control strong { font-size: 0.54rem; }
  .challenge-control small { font-size: 0.38rem; margin-top: 2px; }

  .challenge-upright-card {
    top: 54%;
    width: min(88vw, 350px);
    min-height: 390px;
    padding: 2.5rem 1.35rem 1.35rem;
    border-width: 2px;
    border-radius: 20px;
    box-shadow:
      10px 13px 0 color-mix(in srgb, var(--active-layer-color) 48%, #0a6155),
      20px 28px 48px rgba(1, 22, 20, 0.32);
  }

  .challenge-upright-card::after {
    top: 18px;
    left: 22px;
    right: 22px;
  }

  .challenge-upright-edge {
    display: none;
  }

  .challenge-panel h3 {
    font-size: clamp(1.35rem, 6.4vw, 1.85rem);
  }

  .challenge-panel p {
    font-size: 0.9rem;
  }

  .challenge-panel li {
    font-size: 0.84rem;
  }

  .challenge-scroll-legend {
    display: none;
  }
}

/* Single-object refinement: the top stack layer itself becomes the card. */
.challenge-scene {
  --challenge-ink: #0a0c2e;
  --challenge-paper: #e2e8f0;
  background: #f8fafc;
  color: #0a0c2e;
}

.challenge-scene::before {
  opacity: 0.64;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.09) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(180deg, transparent, #000 12%, #000 90%, transparent);
}

.challenge-scene::after {
  background: rgba(14, 77, 110, 0.16);
}

.challenge-scene .section-heading h2 {
  color: #0a0c2e;
}

.challenge-scene .eyebrow {
  color: #0e4d6e;
}

.challenge-scroll-sticky {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 270px);
}

.challenge-visual {
  perspective: 1900px;
}

.challenge-stack-visual {
  left: clamp(-2rem, 1vw, 1rem);
  width: clamp(590px, 60vw, 790px);
  perspective: 1900px;
  transform-style: flat;
}

.challenge-layer,
.challenge-transform-card {
  width: clamp(250px, 26vw, 338px);
  height: clamp(250px, 26vw, 338px);
}

.challenge-scene .challenge-layer {
  transition: none;
}

.challenge-layer-depth,
.challenge-layer-face,
.challenge-transform-face {
  border: 2px solid #0a0c2e;
  border-radius: 29px;
}

.challenge-layer-depth {
  background: color-mix(in srgb, var(--layer-color) 72%, #0a0c2e);
  filter: brightness(calc(1 - (var(--d, 1) * 0.055)));
  transform: translateY(calc(var(--d, 1) * 7px)) translateZ(calc(var(--d, 1) * -2px));
}

.challenge-layer-face {
  background: color-mix(in srgb, var(--layer-color) 82%, #ffffff);
  box-shadow:
    0 24px 48px rgba(10, 12, 46, 0.14),
    inset 0 2px 0 rgba(255, 255, 255, 0.48);
}

.challenge-layer-face::before {
  inset: 12px;
  border-color: rgba(10, 12, 46, 0.12);
  border-radius: 22px;
}

.challenge-layer-number {
  right: 20px;
  bottom: 17px;
  color: rgba(10, 12, 46, 0.3);
}

.challenge-transform-card {
  --card-width: clamp(250px, 26vw, 338px);
  --card-height: clamp(250px, 26vw, 338px);
  --controls-opacity: 1;
  --content-opacity: 0;
  position: absolute;
  left: 50%;
  right: auto;
  top: 50%;
  z-index: 50;
  display: block;
  width: var(--card-width);
  height: var(--card-height);
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 29px;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  transform:
    translate3d(calc(-50% + var(--card-x, 0px)), calc(-50% + var(--card-y, -190px)), var(--card-z, 12px))
    rotateX(var(--card-rx, 60deg))
    rotateY(var(--card-ry, 0deg))
    rotateZ(var(--card-rz, 45deg));
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
}

.challenge-transform-card::before,
.challenge-transform-card::after {
  content: none;
}

.challenge-transform-face {
  position: absolute;
  inset: 0;
  z-index: 8;
  overflow: hidden;
  background: linear-gradient(145deg, #f9fffd 0%, #effaf6 56%, #e8f6f4 100%);
  box-shadow:
    0 28px 64px rgba(10, 12, 46, 0.18),
    inset 0 2px 0 rgba(255, 255, 255, 0.74),
    inset 0 0 0 12px rgba(255, 255, 255, 0.24);
}

.challenge-transform-face::before {
  content: "";
  position: absolute;
  inset: 12px;
  z-index: 4;
  border: 1px solid rgba(14, 77, 110, 0.2);
  border-radius: 21px;
  pointer-events: none;
}

.challenge-controls {
  position: absolute;
  inset: 0;
  z-index: 3;
  opacity: var(--controls-opacity);
  transform: scale(var(--controls-scale, 1));
  transition: opacity 120ms linear;
}

.challenge-control {
  width: 66px;
  height: 56px;
  border: 2px solid #0a0c2e;
  border-radius: 15px;
  background: #ffffff;
  color: #0a0c2e;
  box-shadow:
    0 8px 0 #0e4d6e,
    0 15px 24px rgba(10, 12, 46, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.challenge-control.control-north { background: #3dbb8e; }
.challenge-control.control-west { background: #e2e8f0; }
.challenge-control.control-center { background: #0d9e9e; color: #0a0c2e; }
.challenge-control.control-east { background: #3dbb8e; }
.challenge-control.control-south { background: #e2e8f0; }

.challenge-control.control-center {
  width: 74px;
  height: 64px;
}

.challenge-card-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 3.3rem 2.4rem 2rem;
  opacity: var(--content-opacity);
  transform: translateY(var(--content-y, 18px));
  transition: opacity 120ms linear;
}

.challenge-card-content::before {
  content: var(--card-label, "AVEX  /  CHALLENGE");
  position: absolute;
  top: 1.35rem;
  left: 2.4rem;
  right: 2.4rem;
  padding-bottom: 0.65rem;
  border-bottom: 2px solid color-mix(in srgb, var(--active-layer-color) 65%, #0e4d6e);
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 0.65rem;
  font-weight: 900;
}

.challenge-lifecycle-anchor {
  position: absolute;
  top: var(--challenge-phase-split, 68%);
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.challenge-services-anchor {
  position: absolute;
  top: var(--service-phase-split, 75%);
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.challenge-legend-heading {
  display: grid;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
  padding: 0 0.5rem 1rem;
  border-bottom: 1px solid rgba(14, 77, 110, 0.16);
}

.challenge-legend-heading span {
  color: #0e4d6e;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.challenge-legend-heading strong {
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 1rem;
  line-height: 1.2;
}

.challenge-scroll-legend {
  position: relative;
  display: block;
  grid-column: 1 / -1;
  grid-row: 1;
  min-height: 520px;
  pointer-events: none;
}

.challenge-scroll-sticky {
  grid-template-columns: minmax(0, 1fr);
}

.challenge-visual {
  grid-column: 1;
  grid-row: 1;
}

.challenge-stack-visual {
  left: clamp(1.5rem, 4vw, 4rem);
}

.challenge-rail {
  --rail-y: 0px;
  --rail-opacity: 1;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 270px;
  display: grid;
  align-content: center;
  gap: 0.72rem;
  opacity: var(--rail-opacity);
  transform: translate3d(0, var(--rail-y), 0);
  will-change: transform, opacity;
}

.challenge-rail-primary {
  left: auto;
  right: 0;
}

.challenge-rail-lifecycle {
  left: 0;
  right: auto;
}

.challenge-rail-services {
  left: 0;
  right: auto;
  top: 42px;
  bottom: auto;
  width: 470px;
  min-height: 110px;
  align-content: start;
}

.challenge-rail-services .challenge-legend-heading {
  margin: 0;
  border-bottom-color: rgba(13, 158, 158, 0.3);
}

.challenge-rail-services .challenge-legend-heading span {
  color: #0d9e9e;
}

.mapped-service-deck {
  --service-deck-opacity: 0;
  position: absolute;
  inset: 0;
  z-index: 4;
  opacity: var(--service-deck-opacity);
  pointer-events: none;
}

.challenge-visual {
  z-index: 5;
  pointer-events: none;
}

.challenge-transform-card {
  pointer-events: auto;
}

.mapped-service-extract {
  --service-x: -510px;
  --service-y: 60px;
  --service-r: -2deg;
  --service-scale: 0.96;
  --service-opacity: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  align-content: start;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  width: 280px;
  height: 430px;
  padding: 1.55rem;
  border: 2px solid #0a0c2e;
  border-top: 7px solid var(--service-accent);
  border-radius: 24px;
  background: linear-gradient(145deg, #f9fffd 0%, #effaf6 58%, #e8f6f4 100%);
  color: #0a0c2e;
  box-shadow:
    0 18px 0 color-mix(in srgb, var(--service-accent) 62%, #0e4d6e),
    0 34px 70px rgba(10, 12, 46, 0.17);
  opacity: var(--service-opacity);
  overflow: hidden;
  text-decoration: none;
  transform: translate3d(calc(-50% + var(--service-x)), calc(-50% + var(--service-y)), 0) rotate(var(--service-r)) scale(var(--service-scale));
  transform-origin: center;
  will-change: transform, opacity;
}

.mapped-service-extract::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid color-mix(in srgb, var(--service-accent) 30%, transparent);
  border-radius: 15px;
  pointer-events: none;
}

.mapped-service-number,
.mapped-service-kicker,
.mapped-service-card-top,
.mapped-service-extract strong,
.mapped-service-extract p,
.mapped-service-action {
  position: relative;
  z-index: 1;
  opacity: var(--service-face-opacity, 1);
  transform: translateY(var(--service-face-y, 0));
  will-change: opacity, transform;
}

.mapped-service-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  min-width: 0;
}

.mapped-service-symbol {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 38px;
  flex: 0 0 auto;
  border: 2px solid #0a0c2e;
  border-radius: 10px;
  background: color-mix(in srgb, var(--service-accent, var(--layer-color, #0d9e9e)) 72%, #ffffff);
  color: #0a0c2e;
  box-shadow: 0 6px 0 color-mix(in srgb, var(--service-accent, var(--layer-color, #0d9e9e)) 68%, #0e4d6e);
  font-family: var(--display-font);
  font-size: 0.68rem;
  font-weight: 900;
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms ease;
}

.mapped-service-number {
  color: var(--service-accent);
  font-family: var(--display-font);
  font-size: 2.15rem;
  font-weight: 900;
  line-height: 1;
}

.mapped-service-kicker {
  margin-top: 1.3rem;
  color: #0e4d6e;
  font-size: 0.67rem;
  font-weight: 900;
  text-transform: uppercase;
}

.mapped-service-extract strong {
  margin-top: 0.55rem;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 1.36rem;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.mapped-service-extract p {
  display: -webkit-box;
  margin: 0.85rem 0 0;
  color: #94a3b8;
  overflow: hidden;
  font-size: 0.86rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.mapped-service-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  align-self: end;
  width: 100%;
  margin-top: auto;
  padding: 0.7rem 0.8rem;
  border: 1px solid #0a0c2e;
  border-radius: 8px;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 5px 0 var(--service-accent);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), background 200ms ease, color 200ms ease, box-shadow 200ms ease;
}

.mapped-service-action > span:last-child,
.mapped-service-link > span:last-child {
  font-size: 1rem;
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
}

.mapped-service-extract:hover,
.mapped-service-extract:focus-visible {
  outline: none;
  box-shadow:
    0 18px 0 color-mix(in srgb, var(--service-accent) 62%, #0e4d6e),
    0 38px 84px rgba(10, 12, 46, 0.24);
}

.mapped-service-extract:hover .mapped-service-symbol,
.mapped-service-extract:focus-visible .mapped-service-symbol {
  transform: translateY(-3px) rotate(-4deg);
  box-shadow: 0 9px 0 color-mix(in srgb, var(--service-accent) 68%, #0e4d6e);
}

.mapped-service-extract:hover .mapped-service-action,
.mapped-service-extract:focus-visible .mapped-service-action {
  background: var(--service-accent);
  color: #0a0c2e;
  transform: translateY(-3px);
  box-shadow: 0 8px 0 #0a0c2e;
}

.mapped-service-extract:hover .mapped-service-action > span:last-child,
.mapped-service-extract:focus-visible .mapped-service-action > span:last-child,
.mapped-service-link:hover > span:last-child,
.mapped-service-link:focus-visible > span:last-child {
  transform: translateX(4px);
}

.challenge-transform-card .mapped-service-panel {
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  align-content: stretch;
  justify-self: stretch;
  width: auto;
  min-width: 0;
  max-width: none;
  height: 100%;
  padding-top: 0;
  overflow: hidden;
}

.challenge-transform-card .mapped-service-panel .mapped-service-number {
  color: var(--layer-color);
}

.challenge-transform-card .mapped-service-panel h3 {
  max-width: 100%;
  margin: 0.55rem 0 0;
  font-size: 1.36rem;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.challenge-transform-card .mapped-service-panel p {
  display: -webkit-box;
  max-width: 100%;
  min-width: 0;
  margin: 0.8rem 0 0;
  color: #94a3b8;
  overflow: hidden;
  font-size: 0.84rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.mapped-service-panel .mapped-service-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-top: auto;
  padding: 0.7rem 0.8rem;
  border: 1px solid #0a0c2e;
  border-radius: 8px;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 5px 0 var(--layer-color);
  font-size: 0.74rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), background 200ms ease, color 200ms ease, box-shadow 200ms ease;
}

.mapped-service-panel .mapped-service-link:hover,
.mapped-service-panel .mapped-service-link:focus-visible {
  outline: none;
  background: var(--layer-color);
  color: #0a0c2e;
  transform: translateY(-3px);
  box-shadow: 0 8px 0 #0a0c2e;
}

.mapped-service-transition {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 2rem;
  color: #0a0c2e;
  opacity: var(--service-transition-opacity, 0);
  text-align: center;
  transform: translateY(var(--service-transition-y, 12px));
  pointer-events: none;
  will-change: opacity, transform;
}

.mapped-service-transition > span {
  color: #0e4d6e;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.mapped-service-transition > strong {
  display: grid;
  justify-items: center;
  width: 100%;
  margin-top: 0.75rem;
  font-family: var(--display-font);
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  line-height: 1.02;
}

.mapped-service-transition > strong > span {
  white-space: nowrap;
}

.mapped-service-transition > p {
  max-width: 24ch;
  margin: 0.8rem 0 0;
  color: #94a3b8;
  font-size: 0.82rem;
  line-height: 1.45;
}

.mapped-service-transition > div {
  display: flex;
  gap: 0.45rem;
  margin-top: 1.2rem;
}

.mapped-service-transition i {
  width: 21px;
  height: 17px;
  border: 2px solid #0a0c2e;
  border-radius: 5px;
  background: #0d9e9e;
  box-shadow: 0 4px 0 #0e4d6e;
}

.mapped-service-transition i:nth-child(2) { background: #3dbb8e; }
.mapped-service-transition i:nth-child(3) { background: #3dbb8e; }
.mapped-service-transition i:nth-child(4) { background: #0e4d6e; }

.challenge-scene.is-services-phase .challenge-transform-face {
  border-top-width: 7px;
  border-top-color: var(--active-layer-color);
}

.challenge-scene.is-services-phase .challenge-card-content {
  padding: 1.55rem;
}

.challenge-scene.is-services-phase .challenge-card-content::before {
  opacity: 0;
}

.challenge-route {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: clamp(210px, 24vw, 330px);
  height: 3px;
  pointer-events: none;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent 0%, rgba(14, 77, 110, 0.7) 12%, rgba(13, 158, 158, 0.78) 50%, rgba(14, 77, 110, 0.7) 88%, transparent 100%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72);
  will-change: opacity, transform;
}

.challenge-route::before {
  content: none;
}

.challenge-route span {
  position: absolute;
  top: 50%;
  width: 11px;
  height: 11px;
  border: 2px solid #0a0c2e;
  border-radius: 3px;
  background: #3dbb8e;
  box-shadow: 0 4px 0 #0e4d6e, 0 8px 16px rgba(10, 12, 46, 0.14);
  transform: translate(-50%, -50%) rotate(45deg);
}

.challenge-route span:nth-child(1) { left: 18%; }
.challenge-route span:nth-child(2) { left: 50%; background: #3dbb8e; }
.challenge-route span:nth-child(3) { left: 82%; background: #0d9e9e; }

.challenge-route-primary {
  right: 346px;
  opacity: var(--route-primary-opacity, 1);
}

.challenge-route-lifecycle {
  left: 346px;
  opacity: var(--route-lifecycle-opacity, 0);
}

@media (min-width: 901px) {
  .challenge-rail-lifecycle {
    transform: translate3d(0, calc(var(--rail-y) + 82px), 0);
  }

  .challenge-route-lifecycle {
    top: calc(50% + 82px);
  }
}

.challenge-rail .challenge-step,
.lifecycle-track-step {
  display: grid;
}

.challenge-rail-lifecycle .challenge-legend-heading {
  border-bottom-color: rgba(13, 158, 158, 0.3);
}

.challenge-rail-lifecycle .challenge-legend-heading span {
  color: #0d9e9e;
}

.challenge-transform-card .challenge-panel {
  min-height: 0;
  padding-top: 0.7rem;
}

.challenge-transform-card .challenge-panel h3 {
  color: #0a0c2e;
}

.challenge-transform-card .challenge-panel p {
  color: #94a3b8;
}

.challenge-transform-card .challenge-panel li {
  color: #0a0c2e;
}

.challenge-upright-edge {
  inset: auto 8px -12px 8px;
  z-index: 1;
  height: 18px;
  border: 2px solid #0a0c2e;
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: color-mix(in srgb, var(--active-layer-color) 64%, #0e4d6e);
  opacity: 1;
  transform: none;
}

.challenge-data-cubes {
  opacity: calc(1 - var(--challenge-compress, 0));
}

.challenge-data-cubes span {
  border: 2px solid #0a0c2e;
  background: #f8fafc;
  box-shadow:
    8px 8px 0 #e2e8f0,
    16px 16px 0 #9ecfbe;
}

.challenge-step {
  border-left-color: rgba(14, 77, 110, 0.16);
  color: rgba(10, 12, 46, 0.46);
}

.challenge-step:hover,
.challenge-step:focus-visible,
.challenge-step.is-active {
  color: #0a0c2e;
  border-color: var(--layer-color);
  background: rgba(204, 238, 224, 0.5);
}

.challenge-step-swatch {
  border-color: #0a0c2e;
  box-shadow:
    0 5px 0 color-mix(in srgb, var(--layer-color) 66%, #0a0c2e),
    0 12px 20px rgba(10, 12, 46, 0.13);
}

@media (max-width: 900px) {
  .challenge-scroll-sticky {
    grid-template-columns: 1fr;
  }

  .challenge-visual,
  .challenge-scroll-legend {
    grid-column: 1;
    grid-row: auto;
  }

  .challenge-scroll-legend {
    pointer-events: auto;
  }

  .challenge-rail,
  .challenge-rail-primary,
  .challenge-rail-lifecycle {
    left: 0;
    right: 0;
    width: auto;
  }

  .challenge-route {
    display: none;
  }

  .mapped-service-deck {
    display: none;
  }

  .challenge-rail-services {
    top: 0;
    width: auto;
    min-height: 0;
  }

  .challenge-scroll-legend {
    min-height: 148px;
  }

  .challenge-rail {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-content: start;
    gap: 0.4rem;
  }

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

  .challenge-legend-heading {
    grid-column: 1 / -1;
    margin-bottom: 0;
    padding-bottom: 0.55rem;
  }
}

@media (max-width: 720px) {
  .challenge-stack-visual {
    left: 50%;
    top: 37%;
    width: 360px;
    transform: translate(-50%, -50%);
  }

  .challenge-layer,
  .challenge-transform-card {
    width: 198px;
    height: 198px;
  }

  .challenge-transform-card {
    width: var(--card-width);
    height: var(--card-height);
  }

  .challenge-layer-depth,
  .challenge-layer-face,
  .challenge-transform-face {
    border-radius: 22px;
  }

  .challenge-transform-face::before {
    inset: 10px;
    border-radius: 15px;
  }

  .challenge-card-content {
    padding: 3rem 1.35rem 1.25rem;
  }

  .challenge-card-content::before {
    top: 1.2rem;
    left: 1.35rem;
    right: 1.35rem;
  }

  .challenge-control {
    width: 42px;
    height: 36px;
    border-radius: 10px;
  }

  .challenge-control.control-center {
    width: 50px;
    height: 44px;
  }

  .challenge-transform-card .challenge-panel h3 {
    font-size: clamp(1.35rem, 6.4vw, 1.85rem);
  }

  .challenge-scroll-legend {
    display: grid;
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0.75rem;
    gap: 0.2rem;
  }

  .challenge-rail {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.2rem;
  }

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

  .challenge-legend-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding-inline: 0;
  }

  .challenge-legend-heading strong {
    max-width: 24ch;
    font-size: 0.72rem;
    text-align: right;
  }

  .challenge-step {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    min-height: 34px;
    padding: 0.25rem;
    border-left: 0;
    border-bottom: 2px solid rgba(14, 77, 110, 0.14);
  }

  .challenge-step > span:last-child {
    display: none;
  }

  .challenge-step-swatch {
    width: 24px;
    height: 24px;
  }

  .challenge-rail .challenge-step,
  .challenge-rail .lifecycle-track-step {
    display: grid;
  }
}

/* =====================================================================
   Service detail card deck (Why it matters / The problems we remove /
   How AVEX runs it). A constant lede sits on the left; on the right a
   stack of image+text cards peels back one behind another as the reader
   scrolls (GSAP-looping-card style). Invisible tall triggers below the
   sticky stage drive the active index through the shared [data-scrolly]
   observer; each card's [data-dist] (0 = front, 1-3 = stacked behind,
   past = discarded) is turned into the fan here.
   ===================================================================== */

.svc-deck-scene,
.svc-deck-scene[data-theme] {
  background:
    radial-gradient(720px 360px at 82% 8%, rgba(13, 158, 158, 0.08), transparent 68%),
    linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
}

.svc-deck-grid {
  display: grid;
  grid-template-columns: minmax(0, 4.6fr) minmax(0, 5.4fr);
  gap: 4rem;
  align-items: start;
}

.svc-deck-lede {
  position: sticky;
  top: 20vh;
}

.svc-deck-lede .eyebrow {
  color: var(--sc-eyebrow);
}

.svc-deck-lede h2 {
  margin: 0 0 1.2rem;
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.06;
  color: var(--sv-blue-ink, #0a2540);
  text-wrap: balance;
}

.svc-deck-lede-lead {
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--sc-muted);
  max-width: 44ch;
}

.svc-deck-lede-more {
  margin-top: 0.9rem;
  color: var(--sc-muted);
  line-height: 1.7;
  max-width: 44ch;
}

.svc-deck-dots {
  display: flex;
  gap: 0.6rem;
  margin-top: 2rem;
}

.svc-deck-dot {
  width: 34px;
  height: 6px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(10, 37, 64, 0.16);
  cursor: pointer;
  transition: background 300ms ease, width 300ms ease;
}

.svc-deck-dot.is-active {
  width: 52px;
  background: linear-gradient(90deg, #0d9e9e, #0e4d6e);
}

.svc-deck-col {
  position: relative;
}

.svc-deck-stage {
  position: sticky;
  top: 16vh;
  height: min(70vh, 620px);
  perspective: 1700px;
}

.svc-deck-card {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: 1.1rem;
  border-radius: 26px;
  background: #1a1c21;
  box-shadow: 0 34px 80px rgba(3, 12, 24, 0.4);
  transition: transform 680ms cubic-bezier(0.22, 1, 0.36, 1), opacity 520ms ease, filter 520ms ease;
  transform-origin: 12% 14%;
  will-change: transform;
}

.svc-deck-card[data-dist="0"] {
  transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  opacity: 1;
  filter: none;
  z-index: 30;
}

.svc-deck-card[data-dist="1"] {
  transform: translate3d(-40px, -34px, 0) rotate(-4deg) scale(0.96);
  opacity: 0.94;
  filter: brightness(0.6);
  z-index: 20;
}

.svc-deck-card[data-dist="2"] {
  transform: translate3d(-72px, -62px, 0) rotate(-7deg) scale(0.92);
  opacity: 0.6;
  filter: brightness(0.4);
  z-index: 10;
}

.svc-deck-card[data-dist="3"] {
  transform: translate3d(-98px, -84px, 0) rotate(-10deg) scale(0.88);
  opacity: 0.3;
  filter: brightness(0.3);
  z-index: 5;
}

.svc-deck-card[data-dist="past"] {
  transform: translate3d(48px, 66px, 0) rotate(4deg) scale(0.96);
  opacity: 0;
  filter: none;
  z-index: 0;
  pointer-events: none;
}

.svc-deck-card-media {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 16px;
}

.svc-deck-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svc-deck-card-body {
  flex: 0 0 auto;
  padding: 1.5rem 0.6rem 0.7rem;
}

.svc-deck-card-body h3 {
  margin: 0 0 0.7rem;
  font-size: 1.18rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
}

.svc-deck-card-body p {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.55;
  color: rgba(226, 232, 240, 0.68);
}

.svc-deck-triggers {
  position: relative;
  z-index: -1;
}

.svc-deck-trigger {
  display: block;
  height: 78vh;
}

.svc-deck-trigger:first-child {
  height: 40vh;
}

@media (max-width: 900px) {
  .svc-deck-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .svc-deck-lede {
    position: static;
  }

  .svc-deck-dots {
    display: none;
  }

  .svc-deck-col {
    position: static;
  }

  .svc-deck-stage {
    position: static;
    height: auto;
    perspective: none;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .svc-deck-card,
  .svc-deck-card[data-dist] {
    position: static;
    transform: none;
    opacity: 1;
    filter: none;
    pointer-events: auto;
    height: 460px;
  }

  .svc-deck-triggers {
    display: none;
  }
}

/* =====================================================================
   Lifecycle handoff: the final challenge card travels into a four-card
   document-driven stack, paced by scroll in both directions.
   ===================================================================== */

.lifecycle-scene {
  position: relative;
  overflow: clip;
  background: #0a0c2e;
  color: #ffffff;
}

.lifecycle-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.18;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(61, 187, 142, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(61, 187, 142, 0.16) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent);
}

.lifecycle-scroll-stage {
  position: relative;
  height: calc(108vh + (var(--lifecycle-count, 4) * 72vh));
  min-height: 2500px;
}

.lifecycle-sticky {
  position: sticky;
  top: 78px;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: center;
  min-height: calc(100vh - 78px);
}

.lifecycle-copy .eyebrow {
  color: #3dbb8e;
}

.lifecycle-copy h2 {
  max-width: 12ch;
  margin: 0;
  color: #ffffff;
  font-family: var(--display-font);
  font-size: clamp(2.3rem, 4vw, 4.2rem);
  line-height: 0.98;
  text-wrap: balance;
}

.lifecycle-nav {
  display: grid;
  gap: 0.35rem;
  margin-top: 2.25rem;
}

.lifecycle-jump {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  min-height: 48px;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-left: 2px solid rgba(255, 255, 255, 0.12);
  background: transparent;
  color: rgba(226, 241, 238, 0.45);
  text-align: left;
  cursor: pointer;
  transition: color 220ms ease, background 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.lifecycle-jump > span {
  color: #3dbb8e;
  font-size: 0.75rem;
  font-weight: 900;
}

.lifecycle-jump strong {
  font-size: 0.75rem;
  line-height: 1.2;
  text-transform: uppercase;
}

.lifecycle-jump:hover,
.lifecycle-jump:focus-visible,
.lifecycle-jump.is-active {
  border-color: #3dbb8e;
  background: rgba(61, 187, 142, 0.08);
  color: #ffffff;
  transform: translateX(4px);
}

.lifecycle-visual {
  position: relative;
  min-height: min(720px, calc(100vh - 110px));
  perspective: 1600px;
  transform-style: preserve-3d;
}

.lifecycle-carrier {
  --carrier-x: -360px;
  --carrier-y: -240px;
  --carrier-r: -8deg;
  --carrier-scale: 0.76;
  --carrier-opacity: 0;
  --carrier-from-opacity: 1;
  --carrier-to-opacity: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  width: clamp(390px, 40vw, 540px);
  height: clamp(400px, 42vw, 520px);
  border: 2px solid #0a0c2e;
  border-radius: 28px;
  background: linear-gradient(145deg, #f9fffd 0%, #effaf6 56%, #e8f6f4 100%);
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.34);
  opacity: var(--carrier-opacity);
  transform: translate3d(calc(-50% + var(--carrier-x)), calc(-50% + var(--carrier-y)), 0) rotateZ(var(--carrier-r)) scale(var(--carrier-scale));
  transform-origin: center;
  will-change: transform, opacity;
}

.lifecycle-carrier::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(14, 77, 110, 0.22);
  border-radius: 20px;
}

.lifecycle-carrier-edge,
.lifecycle-card-edge {
  position: absolute;
  left: 9px;
  right: 9px;
  bottom: -14px;
  z-index: -1;
  height: 22px;
  border: 2px solid #0a0c2e;
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background: #0d9e9e;
}

.lifecycle-carrier-from,
.lifecycle-carrier-to {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  padding: clamp(2rem, 4vw, 3.5rem);
}

.lifecycle-carrier-from { opacity: var(--carrier-from-opacity); }
.lifecycle-carrier-to { opacity: var(--carrier-to-opacity); }

.lifecycle-carrier-from span,
.lifecycle-carrier-to span {
  color: #0e4d6e;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lifecycle-carrier-from small,
.lifecycle-carrier-to small {
  margin: 0.8rem 0;
  color: #0d9e9e;
  font-weight: 900;
}

.lifecycle-carrier-from strong,
.lifecycle-carrier-to strong {
  max-width: 16ch;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: clamp(1.65rem, 3vw, 2.7rem);
  line-height: 1.02;
}

.lifecycle-scene .industry-phase-lane {
  position: absolute;
  inset: 0;
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.avx-page .lifecycle-scene .lifecycle-card {
  --phase-x: -260px;
  --phase-y: -220px;
  --phase-r: -7deg;
  --phase-scale: 0.9;
  --phase-opacity: 0;
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  align-content: start;
  width: clamp(430px, 44vw, 600px);
  height: clamp(285px, 28vw, 350px);
  min-height: 0;
  padding: clamp(1.6rem, 3vw, 2.35rem);
  border: 2px solid #0a0c2e;
  border-left: 9px solid var(--phase-accent);
  border-radius: 24px;
  background: var(--phase-surface);
  box-shadow: 0 28px 76px rgba(0, 0, 0, 0.3);
  color: #0a0c2e;
  opacity: var(--phase-opacity);
  overflow: visible;
  transform: translate3d(calc(-50% + var(--phase-x)), calc(-50% + var(--phase-y)), 30px) rotateZ(var(--phase-r)) scale(var(--phase-scale));
  transform-origin: center;
  will-change: transform, opacity;
}

.avx-page .lifecycle-scene .lifecycle-card::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid color-mix(in srgb, var(--phase-accent) 34%, transparent);
  border-radius: 15px;
  pointer-events: none;
}

.avx-page .lifecycle-scene .lifecycle-card::after {
  display: none;
}

.avx-page .lifecycle-scene .lifecycle-card .lifecycle-card-number {
  display: block;
  width: fit-content;
  margin: 0 0 1rem;
  color: var(--phase-accent);
  font-size: 0.82rem;
  font-weight: 900;
}

.avx-page .lifecycle-scene .lifecycle-card > strong {
  position: relative;
  z-index: 1;
  max-width: 18ch;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  line-height: 1.02;
}

.avx-page .lifecycle-scene .lifecycle-card > p {
  position: relative;
  z-index: 1;
  max-width: 52ch;
  margin: 1rem 0 0;
  color: #94a3b8;
  font-size: 0.98rem;
  line-height: 1.55;
}

.avx-page .lifecycle-scene .lifecycle-card-mark {
  position: absolute;
  right: 1.75rem;
  bottom: 1.35rem;
  color: color-mix(in srgb, var(--phase-accent) 48%, transparent);
  font-family: var(--display-font);
  font-size: 0.7rem;
  font-weight: 900;
}

.avx-page .lifecycle-scene .lifecycle-card-edge {
  display: block;
  margin: 0;
  color: transparent;
  background: var(--phase-accent);
}

@media (max-width: 980px) {
  .lifecycle-sticky {
    grid-template-columns: 1fr;
    align-content: center;
    gap: 1rem;
  }
  .lifecycle-copy h2 { max-width: 18ch; font-size: clamp(1.9rem, 5vw, 3rem); }
  .lifecycle-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1rem; }
  .lifecycle-jump { grid-template-columns: 1fr; gap: 0.2rem; }
  .lifecycle-visual { min-height: 590px; }
}

@media (max-width: 640px) {
  .lifecycle-scroll-stage { height: calc(108vh + (var(--lifecycle-count, 4) * 68vh)); min-height: 2300px; }
  .lifecycle-sticky { top: 72px; min-height: calc(100vh - 72px); padding-inline: 1rem; }
  .lifecycle-copy .eyebrow { margin-bottom: 0.45rem; }
  .lifecycle-copy h2 { font-size: 1.7rem; }
  .lifecycle-jump strong { display: none; }
  .lifecycle-jump { min-height: 36px; justify-items: center; padding: 0.3rem; border-left: 0; border-bottom: 2px solid rgba(255,255,255,0.12); }
  .lifecycle-visual { min-height: 560px; }
  .lifecycle-carrier { width: min(84vw, 340px); height: 390px; }
  .avx-page .lifecycle-scene .lifecycle-card { width: min(88vw, 350px); height: 300px; padding: 1.45rem; border-left-width: 7px; border-radius: 20px; }
  .avx-page .lifecycle-scene .lifecycle-card > strong { font-size: 1.42rem; }
  .avx-page .lifecycle-scene .lifecycle-card > p { margin-top: 0.7rem; font-size: 0.86rem; line-height: 1.42; }
}

/* ---------- Services hub: scroll-scrubbed 3D looping deck ---------- */

.sv-loop-section {
  --loop-ink: #0a0c2e;
  position: relative;
  overflow: clip;
  color: #0a0c2e;
  background: #f8fafc;
}

.sv-loop-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.68;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.09) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent);
}

.sv-loop-scroll {
  position: relative;
  height: calc(100vh + (var(--service-count, 8) * 70vh));
  min-height: 4300px;
}

.sv-loop-sticky {
  position: sticky;
  top: 78px;
  min-height: calc(100vh - 78px);
  display: grid;
  align-items: center;
}

.sv-loop-stage {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(460px, 1.12fr);
  gap: clamp(3rem, 7vw, 7.5rem);
  align-items: center;
  width: 100%;
  min-height: min(760px, calc(100vh - 108px));
  padding-block: 2.25rem;
}

.sv-loop-copy {
  position: relative;
  z-index: 4;
  align-self: center;
  max-width: 610px;
}

.sv-loop-copy .eyebrow {
  margin-bottom: 1rem;
  color: #3dbb8e;
}

.sv-loop-copy h2 {
  display: flex;
  align-items: end;
  max-width: 12ch;
  min-height: 2.05em;
  margin: 0;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: clamp(2.7rem, 3.8vw, 3.65rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.sv-loop-copy > p:not(.eyebrow) {
  max-width: 56ch;
  min-height: 6.8em;
  margin: 1.55rem 0 0;
  color: #94a3b8;
  font-size: 1rem;
  line-height: 1.7;
}

.sv-loop-copy.is-swapping [data-loop-heading],
.sv-loop-copy.is-swapping [data-loop-description],
.sv-loop-copy.is-swapping [data-loop-title] {
  animation: sv-loop-copy-in 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.sv-loop-copy.is-swapping [data-loop-description] { animation-delay: 45ms; }
.sv-loop-copy.is-swapping [data-loop-title] { animation-delay: 85ms; }

@keyframes sv-loop-copy-in {
  from { opacity: 0.15; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.sv-loop-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 1.15rem;
  max-width: 520px;
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(13, 158, 158, 0.3);
}

.sv-loop-status > span {
  color: #3dbb8e;
  font-family: var(--display-font);
  font-size: 0.78rem;
  font-weight: 900;
}

.sv-loop-status b {
  font-size: 1.25rem;
}

.sv-loop-status > strong {
  min-width: 0;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 1.05rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.sv-loop-progress {
  width: min(100%, 520px);
  height: 3px;
  margin-top: 0.9rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(10, 12, 46, 0.12);
}

.sv-loop-progress i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3dbb8e, #3dbb8e);
  transform: scaleX(var(--loop-progress, 0));
  transform-origin: left center;
  will-change: transform;
}

.sv-loop-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.42rem;
  width: min(100%, 520px);
  margin-top: 1.25rem;
}

.sv-loop-nav button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  min-width: 0;
  height: 38px;
  padding: 0 0.55rem;
  border: 1px solid rgba(10, 12, 46, 0.14);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
  color: #647783;
  cursor: pointer;
  font-family: var(--display-font);
  font-size: 0.64rem;
  font-weight: 900;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.sv-loop-nav button i {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border: 1px solid rgba(10, 12, 46, 0.3);
  border-radius: 2px;
  background: var(--nav-accent, #3dbb8e);
  box-shadow: 0 2px 0 rgba(10, 12, 46, 0.15);
  transform: rotate(45deg);
}

.sv-loop-nav button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sv-loop-nav button:hover,
.sv-loop-nav button:focus-visible,
.sv-loop-nav button[aria-current="true"] {
  border-color: var(--nav-accent, #3dbb8e);
  background: var(--nav-accent, #3dbb8e);
  color: #0a0c2e;
  outline: none;
  transform: translateY(-2px);
}

.sv-loop-viewport {
  position: relative;
  min-height: min(690px, calc(100vh - 118px));
  perspective: 1450px;
  perspective-origin: 58% 48%;
  transform-style: preserve-3d;
}

.sv-loop-deck {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
}

.sv-loop-card {
  --loop-x: 0px;
  --loop-y: 0px;
  --loop-z: -420px;
  --loop-scale: 0.88;
  --loop-rotate: 0deg;
  --loop-opacity: 0;
  --loop-brightness: 0.62;
  position: absolute;
  left: 58%;
  top: 50%;
  width: clamp(320px, 27vw, 390px);
  height: clamp(490px, 42vw, 565px);
  color: var(--loop-ink);
  opacity: var(--loop-opacity);
  filter: brightness(var(--loop-brightness));
  text-decoration: none;
  pointer-events: none;
  transform:
    translate3d(calc(-50% + var(--loop-x)), calc(-50% + var(--loop-y)), var(--loop-z))
    rotateY(var(--loop-rotate))
    scale(var(--loop-scale));
  transform-style: preserve-3d;
  transform-origin: center;
  will-change: transform, opacity, filter;
}

.sv-loop-card.is-front {
  pointer-events: auto;
}

.sv-loop-card-edge {
  position: absolute;
  inset: 12px -12px -16px 12px;
  z-index: 0;
  border: 2px solid #06172c;
  border-radius: 24px;
  background: color-mix(in srgb, var(--card-accent) 68%, #0e4d6e);
  box-shadow: 0 34px 72px rgba(10, 12, 46, 0.2);
  transform: translateZ(-8px);
}

.sv-loop-card-shell {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  padding: 1.15rem;
  overflow: hidden;
  border: 2px solid #06172c;
  border-top: 7px solid var(--card-accent);
  border-radius: 24px;
  background: var(--card-surface);
  box-shadow: inset 0 0 0 10px rgba(255, 255, 255, 0.28);
  transform: translateZ(0);
}

.sv-loop-card-shell::before {
  content: "";
  position: absolute;
  inset: 11px;
  border: 1px solid color-mix(in srgb, var(--card-accent) 28%, transparent);
  border-radius: 15px;
  pointer-events: none;
}

.sv-loop-card-top,
.sv-loop-card-media,
.sv-loop-card-body {
  position: relative;
  z-index: 1;
}

.sv-loop-card-top {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding: 0.35rem 0.45rem 0.85rem;
}

.sv-loop-card-top > span {
  color: #0e4d6e;
  font-size: 0.66rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-loop-card-media {
  height: clamp(145px, 13vw, 188px);
  margin: 0;
  overflow: hidden;
  border: 2px solid #06172c;
  border-radius: 14px;
  background: #0e4d6e;
}

.sv-loop-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(10, 12, 46, 0.58));
  pointer-events: none;
}

.sv-loop-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.02);
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms ease;
}

.sv-loop-card-media figcaption {
  position: absolute;
  inset: auto 0.75rem 0.65rem;
  z-index: 2;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  color: #ffffff;
}

.sv-loop-card-media figcaption span {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 36px;
  padding-inline: 0.45rem;
  border: 2px solid #06172c;
  border-radius: 8px;
  background: var(--card-accent);
  color: #06172c;
  box-shadow: 0 5px 0 #0e4d6e;
  font-family: var(--display-font);
  font-size: 0.68rem;
  font-weight: 900;
}

.sv-loop-card-media figcaption strong {
  font-family: var(--display-font);
  font-size: 1rem;
}

.sv-loop-card-body {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  min-height: 0;
  padding: 1rem 0.45rem 0.35rem;
}

.sv-loop-card-kicker {
  margin: 0;
  color: #0e4d6e;
  font-size: 0.64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-loop-card-body h3 {
  margin: 0.4rem 0 0;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.sv-loop-card-copy {
  display: -webkit-box;
  margin: 0.7rem 0 0;
  overflow: hidden;
  color: #94a3b8;
  font-size: 0.82rem;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.sv-loop-card-chips {
  display: flex;
  gap: 0.38rem;
  min-width: 0;
  margin-top: 0.75rem;
  overflow: hidden;
}

.sv-loop-card-chips span {
  min-width: 0;
  max-width: 50%;
  overflow: hidden;
  padding: 0.3rem 0.55rem;
  border: 1px solid color-mix(in srgb, var(--card-accent) 36%, transparent);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
  color: #0e4d6e;
  font-size: 0.62rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sv-loop-card-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.75rem;
  padding: 0.68rem 0.8rem;
  border: 1px solid #0a0c2e;
  border-radius: 8px;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 5px 0 var(--card-accent);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  transition: transform 200ms ease, color 200ms ease, background 200ms ease, box-shadow 200ms ease;
}

.sv-loop-card-action > span:last-child {
  font-size: 1rem;
  transition: transform 200ms ease;
}

.sv-loop-card.is-front:hover .sv-loop-card-media img,
.sv-loop-card.is-front:focus-visible .sv-loop-card-media img {
  filter: saturate(1) contrast(1.04);
  transform: scale(1.045);
}

.sv-loop-card.is-front:hover .sv-loop-card-action,
.sv-loop-card.is-front:focus-visible .sv-loop-card-action {
  background: var(--card-accent);
  color: #0a0c2e;
  box-shadow: 0 8px 0 #0a0c2e;
  transform: translateY(-3px);
}

.sv-loop-card.is-front:hover .sv-loop-card-action > span:last-child,
.sv-loop-card.is-front:focus-visible .sv-loop-card-action > span:last-child {
  transform: translateX(4px);
}

.sv-loop-card:focus-visible {
  outline: 3px solid #3dbb8e;
  outline-offset: 8px;
}

.sv-loop-card.is-dark .sv-loop-card-shell {
  box-shadow: inset 0 0 0 10px rgba(255, 255, 255, 0.06);
}

.sv-loop-card.is-dark .sv-loop-card-top > span,
.sv-loop-card.is-dark .sv-loop-card-kicker {
  color: #a9ead3;
}

.sv-loop-card.is-dark .sv-loop-card-body h3 {
  color: #ffffff;
}

.sv-loop-card.is-dark .sv-loop-card-copy {
  color: rgba(226, 242, 238, 0.78);
}

.sv-loop-card.is-dark .sv-loop-card-chips span {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.1);
  color: #e2e8f0;
}

@media (max-width: 980px) {
  .sv-loop-scroll { min-height: 4000px; }
  .sv-loop-stage {
    grid-template-columns: minmax(0, 0.78fr) minmax(390px, 1.22fr);
    gap: 1.5rem;
  }
  .sv-loop-copy h2 { font-size: clamp(2.35rem, 5.5vw, 3.6rem); }
  .sv-loop-copy > p:not(.eyebrow) { font-size: 0.9rem; }
  .sv-loop-viewport { min-height: 620px; }
  .sv-loop-card { left: 56%; width: 330px; height: 510px; }
}

@media (max-width: 760px) {
  .sv-loop-scroll { height: calc(100vh + (var(--service-count, 8) * 76vh)); min-height: 4650px; }
  .sv-loop-sticky { top: 72px; min-height: calc(100vh - 72px); }
  .sv-loop-stage {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0.6rem;
    align-content: center;
    min-height: calc(100vh - 72px);
    padding: 1rem;
  }
  .sv-loop-copy { align-self: end; max-width: none; }
  .sv-loop-copy .eyebrow { margin-bottom: 0.35rem; }
  .sv-loop-copy h2 { max-width: none; font-size: 1.8rem; line-height: 1; }
  .sv-loop-copy h2 { min-height: 2em; }
  .sv-loop-copy > p:not(.eyebrow) { display: none; min-height: 0; }
  .sv-loop-status { margin-top: 0.65rem; padding-top: 0.55rem; }
  .sv-loop-status > strong { font-size: 0.86rem; }
  .sv-loop-progress { margin-top: 0.5rem; }
  .sv-loop-nav { margin-top: 0.65rem; }
  .sv-loop-nav button { height: 31px; padding-inline: 0.4rem; font-size: 0.54rem; }
  .sv-loop-viewport { min-height: 500px; perspective-origin: 50% 45%; }
  .sv-loop-card { left: 51%; width: min(78vw, 310px); height: min(450px, 52vh); }
  .sv-loop-card-top { padding-bottom: 0.55rem; }
  .sv-loop-card-media { height: 120px; }
  .sv-loop-card-body { padding-top: 0.7rem; }
  .sv-loop-card-body h3 { font-size: 1.15rem; }
  .sv-loop-card-copy { margin-top: 0.5rem; font-size: 0.74rem; -webkit-line-clamp: 2; }
  .sv-loop-card-chips { display: none; }
  .sv-loop-card-action { margin-top: 0.55rem; }
}

/* ---------- Services hub: interactive industry environment modules ---------- */

.sv-industries {
  position: relative;
  overflow: clip;
  padding-block: 7rem 8.5rem;
  background: #f8fafc;
}

.sv-industries::before {
  content: "";
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  opacity: 0.68;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.09) 1px, transparent 1px);
  background-size: 76px 76px;
  mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent);
}

.sv-industries .section-heading {
  position: relative;
  z-index: 2;
}

.sv-industries .section-heading h2 {
  max-width: 25ch;
  color: #0a0c2e;
}

.sv-industries .section-heading .eyebrow {
  color: #0e4d6e;
}

.sv-industries .sv-ind-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.45rem;
  align-items: start;
  margin-top: 3.5rem;
}

.sv-industries .sv-ind-tile {
  --card-accent: #0d9e9e;
  position: relative;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  min-width: 0;
  min-height: 575px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--card-accent);
  color: var(--card-ink, #0a0c2e);
  box-shadow: 0 24px 56px rgba(10, 12, 46, 0.12);
  clip-path: polygon(0 0, calc(100% - 46px) 0, 100% 46px, 100% 100%, 0 100%);
  isolation: isolate;
  text-decoration: none;
  translate: 0 0;
  transition: translate 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease, filter 320ms ease;
}

.sv-industries .sv-ind-tile:nth-child(2),
.sv-industries .sv-ind-tile:nth-child(5) {
  margin-top: 2.5rem;
}

.sv-industries .sv-ind-tile::before,
.sv-industries .sv-ind-tile::after {
  content: "";
  position: absolute;
  display: block;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  opacity: 1;
  clip-path: polygon(0 0, calc(100% - 46px) 0, 100% 46px, 100% 100%, 0 100%);
  transform: none;
  transition: none;
  pointer-events: none;
}

.sv-industries .sv-ind-tile::before {
  inset: 0;
  z-index: 0;
  background: var(--card-accent);
}

.sv-industries .sv-ind-tile::after {
  inset: 2px;
  z-index: 0;
  background: var(--card-bg, #e2e8f0);
}

.sv-ind-tone-0 { --card-accent: #0d9e9e; }
.sv-ind-tone-1 { --card-accent: #3dbb8e; }
.sv-ind-tone-2 { --card-accent: #3dbb8e; }
.sv-ind-tone-3 { --card-accent: #0e4d6e; }
.sv-ind-tone-4 { --card-accent: #0a0c2e; }
.sv-ind-tone-5 { --card-accent: #8fd16a; }

.sv-ind-topline,
.sv-ind-media,
.sv-ind-body {
  position: relative;
  z-index: 2;
}

.sv-ind-topline {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding: 1rem 1.15rem 0.85rem;
}

.sv-ind-topline > span {
  color: var(--card-label, #0e4d6e);
  font-size: 0.64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-ind-media {
  height: 175px;
  margin: 0 1.15rem;
  overflow: hidden;
  border: 2px solid #0a0c2e;
  background: #0e4d6e;
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 0 100%);
}

.sv-ind-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 32%, rgba(10, 12, 46, 0.72));
  pointer-events: none;
}

.sv-ind-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.02);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), filter 280ms ease;
}

.sv-ind-media figcaption {
  position: absolute;
  inset: auto 0.85rem 0.75rem;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #ffffff;
}

.sv-ind-media figcaption > strong {
  display: -webkit-box;
  max-width: 28ch;
  overflow: hidden;
  font-size: 0.65rem;
  line-height: 1.25;
  text-transform: uppercase;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.sv-ind-node {
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border: 2px solid #0a0c2e;
  border-radius: 7px;
  background: var(--card-accent);
  box-shadow: 0 5px 0 #0e4d6e;
  transform: rotate(0deg);
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 260ms ease;
}

.sv-ind-node::before,
.sv-ind-node::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: #0a0c2e;
  transform: translate(-50%, -50%);
}

.sv-ind-node::before { width: 14px; height: 2px; }
.sv-ind-node::after { width: 2px; height: 14px; }

.sv-ind-body {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  min-height: 0;
  padding: 1.25rem 1.15rem 1.15rem;
}

.sv-industries .sv-ind-kicker {
  margin: 0;
  color: var(--card-label, #0e4d6e);
  font-size: 0.64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-industries .sv-ind-tile h3 {
  max-width: 22ch;
  margin: 0.5rem 0 0;
  color: var(--card-ink, #0a0c2e);
  font-family: var(--display-font);
  font-size: 1.35rem;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.sv-industries .sv-ind-copy {
  display: -webkit-box;
  margin: 0.75rem 0 0;
  overflow: hidden;
  color: var(--card-muted, #94a3b8);
  font-size: 0.88rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.sv-industries .sv-ind-chips {
  display: flex;
  flex-wrap: wrap;
  align-content: end;
  gap: 0.4rem;
  margin: 1rem 0 0;
}

.sv-industries .sv-ind-chips span {
  min-width: 0;
  max-width: 100%;
  padding: 0.32rem 0.58rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--card-accent) 34%, transparent);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  color: #0b695e;
  font-size: 0.66rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
  transform: translateY(0);
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease;
}

.sv-industries .sv-ind-link {
  position: relative;
  left: auto;
  top: auto;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-top: 1rem;
  min-height: 0;
  padding: 0.72rem 0.85rem;
  border: 1px solid #0a0c2e;
  border-radius: 8px;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 5px 0 var(--card-accent);
  font-size: 0.7rem;
  font-weight: 900;
  opacity: 1;
  text-transform: uppercase;
  transform: none;
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.sv-industries .sv-ind-link > span:last-child {
  font-size: 1rem;
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-industries .sv-ind-tile:hover,
.sv-industries .sv-ind-tile:focus-visible {
  border: 0;
  outline: none;
  box-shadow: 0 34px 74px rgba(10, 12, 46, 0.2);
  filter: saturate(1.04);
  translate: 0 -9px;
}

.sv-industries .sv-ind-tile:hover::before,
.sv-industries .sv-ind-tile:hover::after,
.sv-industries .sv-ind-tile:focus-visible::before,
.sv-industries .sv-ind-tile:focus-visible::after {
  inset: 0;
  width: auto;
  height: auto;
  border-radius: 0;
  opacity: 1;
  z-index: 0;
  background: var(--card-accent);
  transform: none;
}

.sv-industries .sv-ind-tile:hover::after,
.sv-industries .sv-ind-tile:focus-visible::after {
  inset: 2px;
  background: var(--card-bg, #e2e8f0);
}

.sv-industries .sv-ind-tile:hover > :not(.sv-ind-link),
.sv-industries .sv-ind-tile:focus-visible > :not(.sv-ind-link) {
  opacity: 1;
  transform: none;
}

.sv-industries .sv-ind-tile:hover .sv-ind-media img,
.sv-industries .sv-ind-tile:focus-visible .sv-ind-media img {
  filter: saturate(1) contrast(1.04);
  transform: scale(1.055);
}

.sv-industries .sv-ind-tile:hover .sv-ind-node,
.sv-industries .sv-ind-tile:focus-visible .sv-ind-node {
  box-shadow: 0 8px 0 #0a0c2e;
  transform: translateY(-3px) rotate(45deg);
}

.sv-industries .sv-ind-tile:hover .sv-ind-chips span,
.sv-industries .sv-ind-tile:focus-visible .sv-ind-chips span {
  background: rgba(255, 255, 255, 0.94);
  color: #07584f;
  transform: translateY(-3px);
}

.sv-industries .sv-ind-tile:hover .sv-ind-chips span:nth-child(2),
.sv-industries .sv-ind-tile:focus-visible .sv-ind-chips span:nth-child(2) { transition-delay: 35ms; }
.sv-industries .sv-ind-tile:hover .sv-ind-chips span:nth-child(3),
.sv-industries .sv-ind-tile:focus-visible .sv-ind-chips span:nth-child(3) { transition-delay: 70ms; }

.sv-industries .sv-ind-tile:hover .sv-ind-link,
.sv-industries .sv-ind-tile:focus-visible .sv-ind-link {
  background: var(--card-accent);
  color: #0a0c2e;
  box-shadow: 0 8px 0 #0a0c2e;
  transform: translateY(-3px);
}

.sv-industries .sv-ind-tile:hover .sv-ind-link > span:last-child,
.sv-industries .sv-ind-tile:focus-visible .sv-ind-link > span:last-child {
  transform: translateX(5px);
}

@media (max-width: 980px) {
  .sv-industries .sv-ind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-industries .sv-ind-tile:nth-child(2),
  .sv-industries .sv-ind-tile:nth-child(5) { margin-top: 0; }
  .sv-industries .sv-ind-tile:nth-child(even) { margin-top: 2rem; }
}

@media (max-width: 640px) {
  .sv-industries { padding-block: 5rem; }
  .sv-industries .sv-ind-grid { grid-template-columns: 1fr; gap: 1.15rem; margin-top: 2.25rem; }
  .sv-industries .sv-ind-tile,
  .sv-industries .sv-ind-tile:nth-child(even) { min-height: 540px; margin-top: 0; }
  .sv-ind-media { height: 165px; }
}

/* ---------- Industries hub: scroll-linked environment selector ---------- */

.avx-industries-page .industry-selector-scene {
  --selector-bg: #0a0c2e;
  position: relative;
  overflow: clip;
  padding: 0;
  background: linear-gradient(145deg, #06172d 0%, #0a2440 58%, #082036 100%);
  color: #ffffff;
}

.avx-industries-page .industry-selector-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.22;
  background-image:
    linear-gradient(rgba(143, 209, 106, 0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(61, 187, 142, 0.1) 1px, transparent 1px);
  background-size: 92px 92px;
  mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
  pointer-events: none;
}

.industry-selector-scroll {
  position: relative;
  min-height: calc((var(--industry-count, 6) * 82vh) + 72vh);
}

/*
.industry-selector-sticky {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(460px, 1.14fr);
  gap: 5rem;
  align-items: center;
  min-height: 100svh;
  padding-block: 5.5rem 4rem;
}
*/
.industry-selector-sticky {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;

  /* More balanced columns */
grid-template-columns:
    48%
    52%;

  /* Reduce empty middle space */
  gap:1.5rem;

  align-items: center;
  min-height: 100svh;

  /* Equal outer spacing */
  padding:0.5rem 2rem 6rem;
}

.industry-selector-copy {
  min-width: 0;
}

.industry-selector-heading .eyebrow {
  margin: 0 0 0.85rem;
  color: #8fd16a;
}

.industry-selector-heading h2 {
  max-width: 15ch;
  margin: 0;
  color: #ffffff;
  font-family: var(--display-font);
  font-size: 2.35rem;
  line-height: 1.04;
}

.industry-contexts {
 width:100%;
    max-width:970px;
  position: relative;
  min-height: 300px;
  margin-top: 2rem;
}

.industry-context {
     width:100%;
    max-width:970px;
  position: absolute;
  inset: 0;
  display: grid;
  align-content: start;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 420ms ease, transform 520ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 520ms;
}

.industry-context.is-active {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition-delay: 70ms, 70ms, 0s;
}

.industry-context-label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  color: rgba(169, 234, 211, 0.76);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.industry-context-label span {
  width: 42px;
  height: 2px;
  background: #3dbb8e;
  transform-origin: left center;
  animation: industry-context-line 2.2s ease-in-out infinite;
}

.industry-context h3 {
  max-width: 15ch;
  margin: 0.65rem 0 0;
  color: #ffffff;
  font-family: var(--display-font);
  font-size: 2rem;
  line-height: 1.05;
}

.industry-context-copy {
  max-width: 54ch;
  margin: 1rem 0 0;
  color: rgba(226, 242, 238, 0.82);
  font-size: 0.94rem;
  line-height: 1.6;
}

.industry-context ul {
  display: grid;
  gap: 0.5rem;
  max-width: 56ch;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
}

.industry-context li {
  position: relative;
  padding-left: 1.2rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.78rem;
  line-height: 1.45;
}

.industry-context li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 7px;
  height: 7px;
  border: 1px solid #3dbb8e;
  background: #3dbb8e;
  transform: rotate(45deg);
}

.industry-context-foot {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin-top: 1.2rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.industry-context-foot strong {
  color: #8fd16a;
  font-family: var(--display-font);
  font-size: 1.15rem;
}

.avx-industries-page .industry-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 1.25rem;
  border-top: 1px solid rgba(143, 209, 106, 0.2);
}

.avx-industries-page .industry-tab {
  position: relative;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  min-width: 0;
  min-height: 54px;
  padding: 0.75rem 0.65rem;
  border: 0;
  border-bottom: 1px solid rgba(143, 209, 106, 0.16);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: rgba(255, 255, 255, 0.52);
  cursor: pointer;
  text-align: left;
  transition: color 220ms ease, background 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industry-tab:nth-child(odd) {
  border-right: 1px solid rgba(143, 209, 106, 0.16);
}

.avx-industries-page .industry-tab::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 2px;
  background: #3dbb8e;
  transition: width 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industry-tab:hover,
.avx-industries-page .industry-tab:focus-visible,
.avx-industries-page .industry-tab.is-active {
  border-color: rgba(143, 209, 106, 0.16);
  border-radius: 0;
  background: rgba(143, 209, 106, 0.06);
  box-shadow: none;
  color: #ffffff;
  transform: none;
}

.avx-industries-page .industry-tab:focus-visible {
  outline: 2px solid #3dbb8e;
  outline-offset: -2px;
}

.avx-industries-page .industry-tab.is-active::after {
  width: 100%;
}

.industry-tab-mark {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(143, 209, 106, 0.34);
  border-radius: 6px;
  background: rgba(61, 187, 142, 0.1);
  color: #8fd16a;
  font-size: 0.55rem;
  font-weight: 900;
  box-shadow: 0 3px 0 rgba(61, 187, 142, 0.28);
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease;
}

.industry-tab:hover .industry-tab-mark,
.industry-tab:focus-visible .industry-tab-mark,
.industry-tab.is-active .industry-tab-mark {
  background: #3dbb8e;
  color: #0a0c2e;
  transform: translateY(-2px) rotate(4deg);
}

.avx-industries-page .industry-tab > span:last-child {
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-size: 0.68rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.industry-card-stage {
  position: relative;
  width: 100%;
  height: min(690px, calc(100svh - 7rem));
  /*min-height: 570px;*/
  perspective: 1400px;
}

.industry-stage-glow {
  position: absolute;
  inset: 8% 2% 2% 8%;
  border: 1px solid rgba(61, 187, 142, 0.38);
  border-radius: 8px;
  box-shadow:
    0 0 36px rgba(61, 187, 142, 0.28),
    0 0 96px rgba(143, 209, 106, 0.18),
    inset 0 0 44px rgba(61, 187, 142, 0.08);
  animation: industry-stage-breathe 4.6s ease-in-out infinite;
  pointer-events: none;
}

.avx-industries-page .industry-panels {
  position: absolute;
  inset: 0 1.5rem 2.5rem 0;
}

.industry-model-card {
  --model-accent: #3dbb8e;
  --model-soft: #e2e8f0;
  position: absolute;
  inset: 0;
  z-index: var(--stack-z, 1);
  display: block;
  min-width: 0;
  padding: 0;
  pointer-events: none;
  opacity: var(--stack-opacity, 0);
  transform: translate3d(var(--stack-x, 0), var(--stack-y, 0), 0) scale(var(--stack-scale, 1));
  transform-origin: center bottom;
  transition: transform 680ms cubic-bezier(0.22, 1, 0.36, 1), opacity 420ms ease, filter 420ms ease;
}

.industry-model-card.tone-sage { --model-accent: #8fd16a; --model-soft: #e4f8ed; }
.industry-model-card.tone-ocean { --model-accent: #3dbb8e; --model-soft: #e5f4fb; }
.industry-model-card.tone-lime { --model-accent: #b7ef65; --model-soft: #eff9df; }

.industry-model-card.is-active {
  pointer-events: auto;
  filter: saturate(1.04);
}

.industry-model-edge {
  position: absolute;
  inset: 10px -10px -12px 10px;
  border: 2px solid #0a0c2e;
  border-radius: 8px;
  background: var(--model-accent);
  box-shadow: 0 28px 72px rgba(0, 8, 24, 0.34), 0 0 30px color-mix(in srgb, var(--model-accent) 24%, transparent);
}

.industry-model-shell {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(200px, 0.9fr) minmax(0, 1.1fr);
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 1.15rem;
  border: 2px solid #0a0c2e;
  border-radius: 8px;
  background: #f8fafc;
  color: #0a0c2e;
  box-shadow: inset 0 0 0 8px rgba(61, 187, 142, 0.07);
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 360ms ease;
}

.industry-model-card.is-active:hover .industry-model-shell,
.industry-model-card.is-active:focus-within .industry-model-shell {
  transform: translateY(-5px);
  box-shadow: inset 0 0 0 8px rgba(61, 187, 142, 0.1), 0 0 34px color-mix(in srgb, var(--model-accent) 18%, transparent);
}

.industry-model-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0 0.85rem;
  color: #0e4d6e;
  font-size: 0.66rem;
  font-weight: 900;
  text-transform: uppercase;
}

.industry-model-topline strong {
  display: grid;
  place-items: center;
  width: 42px;
  height: 32px;
  border: 1px solid #0a0c2e;
  border-radius: 6px;
  background: var(--model-accent);
  color: #0a0c2e;
  box-shadow: 0 4px 0 #0e4d6e;
  font-size: 0.65rem;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 240ms ease;
}

.industry-model-card.is-active:hover .industry-model-topline strong,
.industry-model-card.is-active:focus-within .industry-model-topline strong {
  box-shadow: 0 7px 0 #0a0c2e;
  transform: translateY(-3px) rotate(5deg);
}

.industry-model-media {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border: 2px solid #0a0c2e;
  border-radius: 6px;
  background: #0e4d6e;
}

.industry-model-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.02) 20%, rgba(10, 12, 46, 0.82) 100%);
  pointer-events: none;
}

.industry-model-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(1.04);
  transform: scale(1.01);
  transition: transform 760ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms ease;
}

.industry-model-card.is-active:hover .industry-model-media img,
.industry-model-card.is-active:focus-within .industry-model-media img {
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.065);
}

.industry-model-media figcaption {
  position: absolute;
  left: 1rem;
  right: 4rem;
  bottom: 0.9rem;
  z-index: 2;
  color: #ffffff;
}

.industry-model-media figcaption span,
.industry-model-media figcaption strong {
  display: block;
}

.industry-model-media figcaption span {
  color: #a9ead3;
  font-size: 0.6rem;
  font-weight: 850;
  text-transform: uppercase;
}

.industry-model-media figcaption strong {
  margin-top: 0.25rem;
  font-family: var(--display-font);
  font-size: 1.35rem;
  line-height: 1.05;
}

.industry-model-pulse {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 3;
  width: 16px;
  height: 16px;
  border: 3px solid #0a0c2e;
  border-radius: 50%;
  background: var(--model-accent);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--model-accent) 58%, transparent);
  animation: industry-model-pulse 2.4s ease-out infinite;
}

.industry-model-body {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-height: 0;
  padding: 1.15rem 0 0;
}

.industry-model-body > p {
  margin: 0;
  color: #0e4d6e;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
}

.industry-model-body h3 {
  max-width: 19ch;
  margin: 0.45rem 0 0;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 1.75rem;
  line-height: 1.06;
  overflow-wrap: anywhere;
}

.industry-model-services {
  display: flex;
  flex-wrap: wrap;
  align-content: end;
  gap: 0.4rem;
  margin-top: 0.85rem;
  overflow: hidden;
}

.industry-model-services span {
  max-width: 100%;
  padding: 0.38rem 0.6rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--model-accent) 64%, #0e4d6e);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #0e4d6e;
  font-size: 0.62rem;
  font-weight: 820;
  text-overflow: ellipsis;
  white-space: nowrap;
  transform: translateY(0);
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease;
}

.industry-model-card.is-active:hover .industry-model-services span,
.industry-model-card.is-active:focus-within .industry-model-services span {
  background: #ffffff;
  transform: translateY(-3px);
}

.industry-model-card.is-active:hover .industry-model-services span:nth-child(2),
.industry-model-card.is-active:focus-within .industry-model-services span:nth-child(2) { transition-delay: 40ms; }
.industry-model-card.is-active:hover .industry-model-services span:nth-child(3),
.industry-model-card.is-active:focus-within .industry-model-services span:nth-child(3) { transition-delay: 80ms; }
.industry-model-card.is-active:hover .industry-model-services span:nth-child(4),
.industry-model-card.is-active:focus-within .industry-model-services span:nth-child(4) { transition-delay: 120ms; }

.industry-card-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-top: 1rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid #0a0c2e;
  border-radius: 6px;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 5px 0 var(--model-accent);
  font-size: 0.68rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.industry-card-action > span:last-child {
  font-size: 1.1rem;
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.industry-card-action:hover,
.industry-card-action:focus-visible {
  outline: none;
  background: var(--model-accent);
  color: #0a0c2e;
  box-shadow: 0 8px 0 #0a0c2e;
  transform: translateY(-3px);
}

.industry-card-action:hover > span:last-child,
.industry-card-action:focus-visible > span:last-child {
  transform: translateX(6px);
}

.industry-stage-status {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(143, 209, 106, 0.28);
  border-radius: 6px;
  background: rgba(6, 23, 45, 0.92);
  color: rgba(255, 255, 255, 0.58);
  box-shadow: 0 12px 34px rgba(0, 8, 24, 0.28);
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
}

.industry-stage-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8fd16a;
  box-shadow: 0 0 12px rgba(143, 209, 106, 0.8);
}

.industry-stage-status strong {
  max-width: 16ch;
  overflow: hidden;
  color: #ffffff;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes industry-stage-breathe {
  0%, 100% { opacity: 0.58; box-shadow: 0 0 30px rgba(61, 187, 142, 0.22), 0 0 74px rgba(143, 209, 106, 0.12); }
  50% { opacity: 1; box-shadow: 0 0 44px rgba(61, 187, 142, 0.34), 0 0 110px rgba(143, 209, 106, 0.2); }
}

@keyframes industry-model-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--model-accent) 54%, transparent); }
  72%, 100% { box-shadow: 0 0 0 15px transparent; }
}

@keyframes industry-context-line {
  0%, 100% { transform: scaleX(0.55); opacity: 0.55; }
  50% { transform: scaleX(1); opacity: 1; }
}

@media (max-width: 1100px) {
  .industry-selector-sticky {
    grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1.18fr);
    gap: 2.5rem;
  }
  .industry-selector-heading h2 { font-size: 2rem; }
  .industry-context h3 { font-size: 1.75rem; }
  .industry-card-stage { min-height: 540px; }
  .industry-model-body h3 { font-size: 1.5rem; }
}

@media (max-width: 820px) {
  .industry-selector-scroll { min-height: 0; }
  .industry-selector-sticky {
    position: relative;
    grid-template-columns: 1fr;
    gap: 2.25rem;
    min-height: 0;
    padding-block: 6.4rem 5rem;
  }
  .industry-selector-heading h2 { max-width: 20ch; }
  .industry-contexts { min-height: 285px; }
  .industry-card-stage { width: min(100%, 590px); height: 620px; min-height: 0; margin-inline: auto; }
}

@media (max-width: 560px) {
  .industry-selector-sticky { padding-block: 6.2rem 4.5rem; }
  .industry-selector-heading h2 { font-size: 1.75rem; }
  .industry-contexts { min-height: 350px; }
  .industry-context h3 { font-size: 1.65rem; }
  .industry-context-copy { font-size: 0.86rem; }
  .industry-card-stage { height: 585px; }
  .avx-industries-page .industry-panels { right: 0.65rem; }
  .industry-model-shell { padding: 0.85rem; }
  .industry-model-media { min-height: 175px; }
  .industry-model-body h3 { font-size: 1.35rem; }
  .industry-model-services span:nth-child(n + 4) { display: none; }
  .industry-stage-status { display: none; }
}

/* ---------- Industry selector: soft editorial card track ---------- */

.avx-industries-page .industry-selector-scene {
  overflow: visible;
  background: linear-gradient(120deg, #0a0c2e, #0e4d6e 45%, #0d9e9e 100%);
}
}

.avx-industries-page .industry-selector-scene::before {
  display: none;
}

.avx-industries-page .industry-selector-scroll {
  min-height: 0;
}

.avx-industries-page .industry-selector-sticky {
  position: relative;
  top: auto;
  grid-template-columns: minmax(360px, 1.25fr) minmax(420px, 0.95fr);
  gap: 5rem;
  align-items: center;
  min-height: 0;
  padding-block: 0;
}

.avx-industries-page .industry-selector-copy{
  width: 100%;
    position: sticky;
    top: 2rem;              /* move higher */
    display: grid;

    align-content: start;   /* move content to top */

    padding-top: 1rem;
    padding-bottom: 0;
}

.avx-industries-page .industry-selector-heading .eyebrow {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 1rem;
  padding: 0.5rem 0.8rem;
  border-radius: 999px;
  background: rgba(143, 209, 106, 0.2);
  color: var(--avx-green);
  font-family: "Inter", Arial, sans-serif;
}

.avx-industries-page .industry-selector-heading h2 {
  max-width: 30ch;
  color: var(--avx-navy);
  font-family: "Inter", Arial, sans-serif;
  font-size: 2.55rem;
  font-weight: 650;
  line-height: 1.07;
}

.avx-industries-page .industry-contexts {
  min-height: 275px;
  margin-top: 2.25rem;
}

.avx-industries-page .industry-context-label {
  color: var(--avx-green);
  font-size: 0.66rem;
}

.avx-industries-page .industry-context-label span {
  background: var(--avx-teal);
  animation: none;
}

.avx-industries-page .industry-context h3 {
  max-width: 16ch;
  margin-top: 0.7rem;
  color: var(--avx-navy);
  font-size: 2rem;
  font-weight: 650;
  line-height: 1.08;
}

.avx-industries-page .industry-context-copy {
  max-width: 52ch;
  color: #94a3b8;
  font-size: 0.92rem;
  line-height: 1.65;
}

.avx-industries-page .industry-context ul {
  gap: 0.45rem;
  margin-top: 1rem;
}

.avx-industries-page .industry-context li {
  padding-left: 1.05rem;
  color: #30495c;
  font-size: 0.76rem;
}

.avx-industries-page .industry-context li::before {
  top: 0.48rem;
  width: 6px;
  height: 2px;
  border: 0;
  background: var(--avx-teal);
  transform: none;
}

.avx-industries-page .industry-context-foot {
  margin-top: 1rem;
  color: #7b8a97;
}

.avx-industries-page .industry-context-foot strong {
  color: var(--avx-green);
}

.industry-context-action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  width: fit-content;
  margin-top: 1rem;
  padding: 0.72rem 0.9rem;
  border: 1px solid var(--avx-navy);
  border-radius: 6px;
  background: var(--avx-navy);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 850;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease, box-shadow 220ms ease;
}

.industry-context-action > span:last-child {
  font-size: 1rem;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.industry-context-action:hover,
.industry-context-action:focus-visible {
  outline: none;
  background: var(--avx-green);
  box-shadow: 0 9px 24px rgba(13, 158, 158, 0.2);
  transform: translateY(-3px);
}

.industry-context-action:hover > span:last-child,
.industry-context-action:focus-visible > span:last-child {
  transform: translateX(5px);
}

.avx-industries-page .industry-tabs {
  display: none;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1.25rem;
  border: 0;
}

.avx-industries-page .industry-tab,
.avx-industries-page .industry-tab:nth-child(odd) {
  display: block;
  width: auto;
  min-height: 34px;
  padding: 0.48rem 0.7rem;
  border: 1px solid rgba(10, 12, 46, 0.11);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #637482;
  box-shadow: none;
  transition: color 220ms ease, border-color 220ms ease, background 220ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industry-tab::after {
  display: none;
}

.avx-industries-page .industry-tab:hover,
.avx-industries-page .industry-tab:focus-visible {
  border-color: rgba(13, 158, 158, 0.42);
  border-radius: 999px;
  background: #ffffff;
  color: var(--avx-navy);
  transform: translateY(-2px);
}

.avx-industries-page .industry-tab.is-active {
  border-color: var(--avx-navy);
  border-radius: 999px;
  background: var(--avx-navy);
  color: #ffffff;
}

.avx-industries-page .industry-tab > span:last-child {
  max-width: 17ch;
  font-size: 0.64rem;
}

/*
.avx-industries-page .industry-card-stage {
  width: 100%;
  height: auto;
  min-height: 0;
  padding-block: 8rem;
  perspective: none;
}
*/
.avx-industries-page .industry-card-stage {
    width: 100%;
    min-height: 100vh;

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

    padding: 0;
    perspective: none;
}

/*
.avx-industries-page .industry-panels {
  position: relative;
  inset: auto;
  display: grid;
  gap: 3.5rem;
}
*/
.avx-industries-page .industry-panels {
    position: relative;
    inset: auto;

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

    width: 100%;
    height: 100%;
}

.avx-industries-page .industry-model-card {
  position: relative;
  inset: auto;
  z-index: 1;
  display: block;
  width: 100%;
  min-height: 760px;
  padding: 0;
  pointer-events: auto;
  opacity: 0.62;
  filter: saturate(0.84);
  transform: translateY(34px) scale(0.988);
  transition: opacity 520ms ease, transform 720ms cubic-bezier(0.22, 1, 0.36, 1), filter 520ms ease;
}

.avx-industries-page .industry-model-card.is-active {
  z-index: 2;
  opacity: 1;
  filter: saturate(1);
  transform: translateY(0) scale(1);
}

.avx-industries-page .industry-model-edge {
  inset: -12px 20px 20px -12px;
  border: 0;
  border-top: 8px solid color-mix(in srgb, var(--model-accent) 62%, #ffffff);
  border-left: 8px solid color-mix(in srgb, var(--model-accent) 62%, #ffffff);
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
  opacity: 0.48;
  filter: blur(6px);
  transition: opacity 520ms ease, filter 520ms ease;
}

.avx-industries-page .industry-model-card.is-active .industry-model-edge {
  opacity: 0.9;
  filter: blur(4px);
}

.avx-industries-page .industry-model-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) 235px;
  min-height: 760px;
  padding: 1.8rem 1.9rem 0;
  overflow: hidden;
  border: 1px solid rgba(10, 12, 46, 0.09);
  border-radius: 8px;
  background: #ffffff;
  color: var(--avx-navy);
  box-shadow: 0 22px 70px rgba(10, 12, 46, 0.09);
  transition: box-shadow 420ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industry-model-card.is-active:hover .industry-model-shell,
.avx-industries-page .industry-model-card.is-active:focus-within .industry-model-shell {
  box-shadow: 0 30px 90px rgba(10, 12, 46, 0.13), 0 0 44px color-mix(in srgb, var(--model-accent) 12%, transparent);
  transform: translateY(-4px);
}

.avx-industries-page .industry-model-topline {
  padding: 0 0 1.35rem;
  color: #70818e;
  font-size: 0.61rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.avx-industries-page .industry-model-topline > span {
  max-width: 34ch;
}

.avx-industries-page .industry-model-topline strong {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--model-accent) 18%, #ffffff);
  color: var(--avx-green);
  box-shadow: none;
}

.avx-industries-page .industry-model-card.is-active:hover .industry-model-topline strong,
.avx-industries-page .industry-model-card.is-active:focus-within .industry-model-topline strong {
  box-shadow: 0 10px 24px color-mix(in srgb, var(--model-accent) 24%, transparent);
  transform: translateY(-2px) rotate(4deg);
}

.avx-industries-page .industry-model-body {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  align-content: start;
  padding: 0;
}

.avx-industries-page .industry-model-body > p:first-child {
  color: var(--avx-green);
  font-size: 0.63rem;
}

.avx-industries-page .industry-model-body h3 {
  max-width: 17ch;
  margin-top: 0.55rem;
  color: var(--avx-navy);
  font-size: 2.2rem;
  font-weight: 620;
  line-height: 1.06;
}

.avx-industries-page .industry-model-summary {
  max-width: 48ch;
  margin: 0.9rem 0 0;
  color: #647582;
  font-size: 0.9rem;
  font-weight: 450;
  line-height: 1.6;
  text-transform: none;
}

.avx-industries-page .industry-model-services {
  align-content: start;
  margin-top: 1.1rem;
}

.avx-industries-page .industry-model-services span {
  padding: 0.36rem 0.58rem;
  border-color: rgba(10, 12, 46, 0.1);
  background: #f5faf7;
  color: #486258;
  font-size: 0.59rem;
}

.avx-industries-page .industry-model-card.is-active:hover .industry-model-services span,
.avx-industries-page .industry-model-card.is-active:focus-within .industry-model-services span {
  background: color-mix(in srgb, var(--model-accent) 10%, #ffffff);
}

.avx-industries-page .industry-card-action {
  align-self: end;
  width: fit-content;
  margin: 1rem 0 1.45rem;
  padding: 0.5rem 0;
  border: 0;
  border-bottom: 1px solid rgba(10, 12, 46, 0.26);
  border-radius: 0;
  background: transparent;
  color: var(--avx-navy);
  box-shadow: none;
  font-size: 0.66rem;
}

.avx-industries-page .industry-card-action > span:last-child {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-left: 0.55rem;
  border-radius: 50%;
  background: var(--model-accent);
  color: var(--avx-navy);
}

.avx-industries-page .industry-card-action:hover,
.avx-industries-page .industry-card-action:focus-visible {
  background: transparent;
  color: var(--avx-green);
  box-shadow: none;
  transform: translateY(-2px);
}

.avx-industries-page .industry-model-media {
  min-height: 0;
  height: 235px;
  margin: 0 -1.9rem;
  border: 0;
  border-radius: 0;
  background: #f8fafc;
}

.avx-industries-page .industry-model-media::after {
  background: linear-gradient(180deg, transparent 45%, rgba(10, 12, 46, 0.54));
}

.avx-industries-page .industry-model-media img {
  filter: saturate(0.86) contrast(1.01);
}

.avx-industries-page .industry-model-card.is-active:hover .industry-model-media img,
.avx-industries-page .industry-model-card.is-active:focus-within .industry-model-media img {
  filter: saturate(1) contrast(1.02);
  transform: scale(1.035);
}

.avx-industries-page .industry-model-media figcaption {
  left: 1.9rem;
  right: 1.9rem;
  bottom: 1.25rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.avx-industries-page .industry-model-media figcaption span {
  color: rgba(255, 255, 255, 0.72);
}

.avx-industries-page .industry-model-media figcaption strong {
  max-width: 28ch;
  color: #ffffff;
  font-size: 0.78rem;
  font-weight: 650;
  text-align: right;
}

.avx-industries-page .industry-model-pulse,
.avx-industries-page .industry-stage-status,
.avx-industries-page .industry-stage-glow,
.avx-industries-page .industry-tab-mark {
  display: none;
}

@media (max-width: 1060px) {
  .avx-industries-page .industry-selector-sticky {
    grid-template-columns: minmax(320px, 1.15fr) minmax(400px, 0.85fr);
    gap: 3.5rem;
  }
  .avx-industries-page .industry-selector-heading h2 { font-size: 2.15rem; }
  .avx-industries-page .industry-model-body h3 { font-size: 1.85rem; }
}

@media (max-width: 820px) {
  /* Fix: the base/desktop rules for .industry-selector-scroll and
     .industry-selector-sticky (scroll-jacking "cards rise into a stack" effect)
     were unconditional, not desktop-only. On mobile this left the scroll track
     ~5x viewport-height tall and the sticky wrapper pinned + vertically centered
     at min-height:100svh, so the stacked card content (taller than one screen)
     overflowed above the viewport and rendered on top of the hero/header.
     Fully disable the sticky/pin/scroll-jack behavior below 821px. */
  .avx-industries-page .industry-selector-scroll {
    min-height: 0;
  }
  .avx-industries-page .industry-selector-sticky {
    position: relative;
    top: auto;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    min-height: 0;
    gap: 1rem;
  }
  .avx-industries-page .industry-selector-copy {
    position: relative;
    top: auto;
    min-width: 0;
    min-height: 0;
    padding: 6.5rem 0 2rem;
  }
  .avx-industries-page .industry-card-stage {
    width: min(100%, 620px);
    min-width: 0;
    /* Fix: the unconditional base rule for this selector sets
       display:flex; align-items:center; min-height:100vh; which
       vertically CENTERS the (now much taller, stacked-in-flow)
       .industry-panels inside it — that's what pushed the card
       stack up and over the hero. Let it flow normally on mobile. */
    display: block;
    align-items: normal;
    justify-content: normal;
    min-height: 0;
    height: auto;
    margin-inline: auto;
    padding-block: 2rem 6rem;
  }
  .avx-industries-page .industry-model-card { min-height: 630px; opacity: 1; transform: none; }
  .avx-industries-page .industry-model-shell { min-height: 630px; }

  /* Fix: .industry-panels was still a row-direction flex container here (from its
     base/default rule), so every .industry-model-card squeezed side-by-side into
     one row instead of stacking. Force a normal vertical stack on mobile/tablet. */
  .avx-industries-page .industry-panels {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 2rem;
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
  }
  .fh-services-selector .industry-model-card,
  .fh-services-selector .industry-model-card.is-active {
    position: relative;
    inset: auto;
    width: 100%;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    filter: none;
  }
}

@media (max-width: 560px) {
  .avx-industries-page .industry-selector-heading h2 { font-size: 1.8rem; }
  .avx-industries-page .industry-contexts { min-height: 340px; }
  .avx-industries-page .industry-model-card { min-height: 620px; }
  .avx-industries-page .industry-model-shell {
    grid-template-rows: auto minmax(0, 1fr) 205px;
    min-height: 620px;
    padding: 1.35rem 1.25rem 0;
  }
  .avx-industries-page .industry-model-body h3 { font-size: 1.65rem; }
  .avx-industries-page .industry-model-media { height: 205px; margin-inline: -1.25rem; }
  .avx-industries-page .industry-model-media figcaption { left: 1.25rem; right: 1.25rem; }
  .avx-industries-page .industry-model-media figcaption strong { max-width: 20ch; }
}

/* Cumulative selector motion: cards rise into the stack as scrolling advances. */

@media (min-width: 821px) {
  .avx-industries-page .industry-selector-scene {
    overflow: clip;
  }

  .avx-industries-page .industry-selector-scroll {
    min-height: calc((var(--industry-count, 6) * 82vh) + 72vh);
  }

  .avx-industries-page .industry-selector-sticky {
    position: sticky;
    top: 0;
    align-items: start;
    min-height: 100svh;
    padding-block: 6rem 3rem;
  }

  .avx-industries-page .industry-selector-copy {
    position: relative;
    top: auto;
    /*min-height: 0;*/
    padding-block: 0;
  }

  .avx-industries-page .industry-card-stage {
    height: min(720px, calc(100svh - 8rem));
    min-height: 590px;
    padding-block: 0;
  }

  .avx-industries-page .industry-panels {
    position: absolute;
    inset: 0 0.8rem 1rem 0;
    display: block;
  }

  .avx-industries-page .industry-model-card {
    position: absolute;
    inset: 0;
    z-index: var(--stack-z, 1);
    min-height: 0;
    pointer-events: none;
    opacity: var(--stack-opacity, 1);
    filter: saturate(var(--stack-saturation, 1));
    transform: translate3d(var(--stack-x, 0), var(--stack-y, 0), 0) scale(var(--stack-scale, 1));
    transform-origin: center top;
    transition: filter 260ms ease, opacity 260ms ease;
    will-change: transform;
  }

  .avx-industries-page .industry-model-card.is-active {
    z-index: var(--stack-z, 1);
    pointer-events: auto;
    opacity: var(--stack-opacity, 1);
    filter: saturate(var(--stack-saturation, 1));
    transform: translate3d(var(--stack-x, 0), var(--stack-y, 0), 0) scale(var(--stack-scale, 1));
  }

  .avx-industries-page .industry-model-shell {
    min-height: 0;
    height: 100%;
  }
}

/* ---------- Market signals: expandable operating spectrum ---------- */

.avx-industries-page .industry-market {
  padding-block: 8rem 9rem;
  background: var(--avx-cream);
}

.avx-industries-page .industry-market .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.52fr);
  column-gap: 5rem;
  align-items: end;
}

.avx-industries-page .industry-market .section-heading .eyebrow,
.avx-industries-page .industry-market .section-heading h2 {
  grid-column: 1;
}

.avx-industries-page .industry-market .section-heading > p:last-child {
  grid-column: 2;
  grid-row: 1 / span 2;
  max-width: 42ch;
  margin: 0;
  color: #687a87;
  line-height: 1.65;
}

.industry-signal-spectrum {
  margin-top: 3.5rem;
  border-top: 1px solid rgba(10, 12, 46, 0.15);
}

.industry-signal-row {
  --signal-accent: #3dbb8e;
  border-bottom: 1px solid rgba(10, 12, 46, 0.15);
  background: transparent;
  transition: background 360ms ease, box-shadow 360ms ease;
}

.industry-signal-row.tone-sage { --signal-accent: #8fd16a; }
.industry-signal-row.tone-ocean { --signal-accent: #3dbb8e; }
.industry-signal-row.tone-lime { --signal-accent: #b7ef65; }

.industry-signal-row[open] {
  background: color-mix(in srgb, var(--signal-accent) 7%, #ffffff);
  box-shadow: inset 3px 0 0 var(--signal-accent);
}

.industry-signal-row summary {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(180px, 0.9fr) minmax(120px, 0.7fr) minmax(240px, 1.2fr) 34px;
  gap: 1.3rem;
  align-items: center;
  min-height: 104px;
  padding: 1.1rem 1rem;
  cursor: pointer;
  list-style: none;
}

.industry-signal-row summary::-webkit-details-marker { display: none; }

.signal-emitter {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(10, 12, 46, 0.14);
  border-radius: 50%;
  background: #ffffff;
  color: var(--avx-navy);
  font-size: 0.58rem;
  font-weight: 900;
}

.signal-emitter i {
  position: absolute;
  inset: -5px;
  border: 1px solid color-mix(in srgb, var(--signal-accent) 62%, transparent);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.72);
}

.industry-signal-row:hover .signal-emitter i,
.industry-signal-row[open] .signal-emitter i {
  animation: market-signal-ring 1.8s ease-out infinite;
}

.signal-identity small,
.signal-identity strong {
  display: block;
}

.signal-identity small {
  overflow: hidden;
  color: #7a8b97;
  font-size: 0.58rem;
  font-weight: 800;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.signal-identity strong {
  margin-top: 0.3rem;
  color: var(--avx-navy);
  font-family: var(--display-font);
  font-size: 1.05rem;
  line-height: 1.1;
}

.signal-trace {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  height: 38px;
  overflow: hidden;
}

.signal-trace::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(10, 12, 46, 0.14);
}

.signal-trace i {
  position: relative;
  z-index: 1;
  width: 3px;
  height: 8px;
  background: color-mix(in srgb, var(--signal-accent) 70%, #0e4d6e);
  transform-origin: center;
  transition: height 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.signal-trace i:nth-child(2) { height: 20px; }
.signal-trace i:nth-child(3) { height: 30px; }
.signal-trace i:nth-child(4) { height: 15px; }
.signal-trace i:nth-child(5) { height: 25px; }

.industry-signal-row:hover .signal-trace i:nth-child(odd),
.industry-signal-row[open] .signal-trace i:nth-child(odd) { height: 34px; }

.signal-trace b {
  position: absolute;
  left: -8px;
  top: calc(50% - 4px);
  z-index: 2;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--signal-accent);
  box-shadow: 0 0 16px color-mix(in srgb, var(--signal-accent) 76%, transparent);
}

.industry-signal-row:hover .signal-trace b,
.industry-signal-row[open] .signal-trace b {
  animation: market-signal-run 2.4s linear infinite;
}

.signal-pressure {
  color: #94a3b8;
  font-size: 0.79rem;
  line-height: 1.5;
}

.signal-toggle {
  position: relative;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(10, 12, 46, 0.16);
  border-radius: 50%;
  background: #ffffff;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease;
}

.signal-toggle::before,
.signal-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 1px;
  background: var(--avx-navy);
  transform: translate(-50%, -50%);
}

.signal-toggle::after { transform: translate(-50%, -50%) rotate(90deg); }

.industry-signal-row[open] .signal-toggle {
  background: var(--signal-accent);
  transform: rotate(45deg);
}

.signal-detail {
  display: grid;
  grid-template-columns: minmax(260px, 0.74fr) minmax(0, 1fr);
  gap: 2.5rem;
  align-items: stretch;
  padding: 0 1rem 1.5rem 5.3rem;
  animation: market-detail-in 480ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.signal-detail figure {
  min-height: 220px;
  margin: 0;
  overflow: hidden;
  border-radius: 6px;
}

.signal-detail img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.02);
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1), filter 320ms ease;
}

.industry-signal-row:hover .signal-detail img {
  filter: saturate(1) contrast(1.02);
  transform: scale(1.035);
}

.signal-response {
  display: grid;
  align-content: center;
  padding-right: 2rem;
}

.signal-response > p {
  margin: 0;
  color: var(--avx-green);
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
}

.signal-response h3 {
  max-width: 38ch;
  margin: 0.55rem 0 0;
  color: var(--avx-navy);
  font-family: var(--display-font);
  font-size: 1.35rem;
  line-height: 1.28;
}

.signal-services {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1rem;
}

.signal-services span {
  padding: 0.36rem 0.58rem;
  border: 1px solid rgba(10, 12, 46, 0.1);
  border-radius: 999px;
  background: #ffffff;
  color: #4c6259;
  font-size: 0.62rem;
  font-weight: 780;
}

.signal-response > a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: fit-content;
  margin-top: 1.25rem;
  padding: 0.65rem 0.8rem;
  border-radius: 6px;
  background: var(--avx-navy);
  color: #ffffff;
  font-size: 0.65rem;
  font-weight: 850;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease;
}

.signal-response > a:hover,
.signal-response > a:focus-visible {
  outline: none;
  background: var(--avx-green);
  transform: translateY(-3px);
}

@keyframes market-signal-run {
  from { left: -8px; }
  to { left: calc(100% - 8px); }
}

@keyframes market-signal-ring {
  0% { opacity: 0.7; transform: scale(0.72); }
  100% { opacity: 0; transform: scale(1.35); }
}

@keyframes market-detail-in {
  from { opacity: 0; transform: translateY(-14px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Lifecycle rhythm: expanding readiness aperture ---------- */

.avx-industries-page .industry-rhythm {
  position: relative;
  overflow: clip;
  padding: 0;
  background: #f8fafc;
}

.rhythm-scroll {
  min-height: calc((var(--rhythm-count, 4) * 72vh) + 72vh);
}

.rhythm-sticky {
  position: sticky;
  top: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  align-content: center;
  min-height: 100svh;
  padding-block: 7rem 4rem;
}

.avx-industries-page .industry-rhythm .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 4rem;
  align-items: end;
  margin-bottom: 2.5rem;
}

.avx-industries-page .industry-rhythm .section-heading .eyebrow {
  grid-column: 1;
}

.avx-industries-page .industry-rhythm .section-heading h2 {
  grid-column: 1 / -1;
  max-width: 24ch;
  margin: 0;
  color: var(--avx-navy);
  font-size: 2.45rem;
  line-height: 1.06;
}

.rhythm-aperture {
  position: relative;
}

.avx-industries-page .industry-lifecycle-line {
  display: flex;
  grid-template-columns: none;
  gap: 0;
  height: 430px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-top: 1px solid rgba(10, 12, 46, 0.14);
  border-bottom: 1px solid rgba(10, 12, 46, 0.14);
  list-style: none;
}

.avx-industries-page .rhythm-step {
  flex: 0.72 1 0;
  min-width: 0;
  border: 0;
  border-right: 1px solid rgba(10, 12, 46, 0.12);
  border-radius: 0;
  background: #e5f7ef;
  box-shadow: none;
  transition: flex 720ms cubic-bezier(0.22, 1, 0.36, 1), background 420ms ease;
}

.avx-industries-page .rhythm-step:nth-child(2) { background: #e2e8f0; }
.avx-industries-page .rhythm-step:nth-child(3) { background: #e3f1f8; }
.avx-industries-page .rhythm-step:nth-child(4) { background: #e2e8f0; border-right: 0; }

.avx-industries-page .rhythm-step.is-active {
  flex: 3.2 1 0;
  background: var(--avx-navy);
}

.rhythm-step > button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 1.5rem;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: var(--avx-navy);
  cursor: pointer;
  text-align: left;
}

.rhythm-step-label {
  position: absolute;
  left: 50%;
  bottom: 1.5rem;
  color: #45635b;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: translateX(-50%) rotate(180deg);
  transition: left 520ms ease, color 320ms ease, transform 520ms ease, writing-mode 0s linear 360ms;
}

.rhythm-step.is-active .rhythm-step-label {
  left: 1.75rem;
  top: 1.5rem;
  bottom: auto;
  color: #8fd16a;
  writing-mode: horizontal-tb;
  transform: none;
  transition-delay: 0s;
}

.rhythm-step-copy {
  position: absolute;
  left: 1.75rem;
  right: 2rem;
  bottom: 2rem;
  display: grid;
  align-content: end;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 260ms ease, transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.avx-industries-page .rhythm-step .rhythm-step-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.rhythm-step.is-active .rhythm-step-copy {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 230ms;
}

.rhythm-step-copy small {
  color: rgba(169, 234, 211, 0.72);
  font-size: 0.62rem;
  font-weight: 850;
  text-transform: uppercase;
}

.rhythm-step-copy strong {
  margin-top: 0.55rem;
  color: #ffffff;
  font-family: var(--display-font);
  font-size: 2.45rem;
  line-height: 1;
}

.rhythm-step-copy > span {
  display: block;
  max-width: 48ch;
  margin-top: 1rem;
  color: rgba(226, 242, 238, 0.76);
  font-size: 0.9rem;
  line-height: 1.65;
}

.rhythm-step > button > i {
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 0;
  background: #3dbb8e;
  box-shadow: 0 0 20px rgba(61, 187, 142, 0.5);
  transition: height 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.rhythm-step.is-active > button > i { height: 100%; }

.rhythm-progress {
  height: 3px;
  margin-top: 1.4rem;
  overflow: hidden;
  background: rgba(10, 12, 46, 0.1);
}

.rhythm-progress span {
  display: block;
  width: var(--rhythm-progress, 0%);
  height: 100%;
  background: linear-gradient(90deg, #3dbb8e, #3dbb8e, #8fd16a);
  transition: width 80ms linear;
}

@media (max-width: 900px) {
  .industry-signal-row summary {
    grid-template-columns: 48px minmax(160px, 0.9fr) minmax(90px, 0.6fr) minmax(200px, 1fr) 32px;
    gap: 0.8rem;
  }
  .signal-detail { padding-left: 1rem; }
}

@media (max-width: 720px) {
  .avx-industries-page .industry-market { padding-block: 6rem; }
  .avx-industries-page .industry-market .section-heading { grid-template-columns: 1fr; gap: 1rem; }
  .avx-industries-page .industry-market .section-heading > p:last-child { grid-column: 1; grid-row: auto; }
  .industry-signal-row summary { grid-template-columns: 46px minmax(0, 1fr) 32px; }
  .signal-trace,
  .signal-pressure { display: none; }
  .signal-detail { grid-template-columns: 1fr; gap: 1.25rem; padding: 0 0.8rem 1.2rem; }
  .signal-detail figure,
  .signal-detail img { min-height: 190px; }
  .signal-response { padding: 0 0.4rem 0.4rem; }

  .rhythm-scroll { min-height: 0; }
  .rhythm-sticky { position: relative; min-height: 0; padding-block: 6rem; }
  .avx-industries-page .industry-rhythm .section-heading { grid-template-columns: 1fr; gap: 0; }
  .avx-industries-page .industry-rhythm .section-heading h2 { font-size: 1.85rem; }
  .avx-industries-page .industry-lifecycle-line { display: grid; height: auto; }
  .avx-industries-page .rhythm-step { min-height: 82px; border-right: 0; border-bottom: 1px solid rgba(10, 12, 46, 0.12); }
  .avx-industries-page .rhythm-step.is-active { min-height: 260px; }
  .rhythm-step-label,
  .rhythm-step.is-active .rhythm-step-label {
    left: 1.2rem;
    top: 1rem;
    bottom: auto;
    writing-mode: horizontal-tb;
    transform: none;
  }
  .rhythm-step-copy { left: 1.2rem; right: 1.2rem; bottom: 1.3rem; }
  .rhythm-step-copy strong { font-size: 1.8rem; }
  .rhythm-progress { display: none; }
}

/* ---------- Industries hero: immersive operating horizon ---------- */

.avx-industries-page .industries-hero {
  position: relative;
  display: grid;
  align-items: center;
  min-height: min(720px, calc(100svh - 7rem));
  overflow: hidden;
  background: #0a0c2e;
  color: #ffffff;
  isolation: isolate;
}

.industries-hero-media {
  position: absolute;
  inset: 0;
  z-index: -2;
  margin: 0;
}

.industries-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(5, 20, 38, 0.94) 0%, rgba(5, 20, 38, 0.76) 46%, rgba(5, 20, 38, 0.16) 76%, rgba(5, 20, 38, 0.08) 100%),
    linear-gradient(180deg, rgba(5, 20, 38, 0.08), rgba(5, 20, 38, 0.52));
}

.industries-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 50%;
  filter: saturate(0.92) contrast(1.04);
  transform: scale(1.02);
  animation: industries-hero-drift 14s ease-in-out infinite alternate;
}

.industries-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-block: 6rem 10rem;
}

.industries-hero-content .eyebrow {
  color: #8fd16a;
}

.industries-hero-content h1 {
  margin: 0;
  color: #ffffff;
  font-family: var(--display-font);
  font-size: 5rem;
  line-height: 0.92;
}

.industries-hero-content h2 {
  max-width: 17ch;
  margin: 1rem 0 0;
  color: #ffffff;
  font-size: 2.15rem;
  line-height: 1.06;
}

.industries-hero-content > p:not(.eyebrow) {
  max-width: 62ch;
  margin: 1.25rem 0 0;
  color: rgba(235, 247, 242, 0.76);
  font-size: 0.98rem;
  line-height: 1.7;
}

.industries-hero-content .hero-actions {
  margin-top: 1.75rem;
}

.industries-hero-content .button.secondary {
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  backdrop-filter: blur(10px);
}

.industries-hero-horizon {
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  width: calc(100% - 2rem);
  max-width: var(--section-width, 1180px);
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(6, 23, 45, 0.64);
  transform: translateX(-50%);
  backdrop-filter: blur(14px);
}

.industries-hero-horizon a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0.6rem;
  align-items: center;
  min-width: 0;
  min-height: 82px;
  padding: 0.85rem 0.7rem;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.66);
  text-decoration: none;
  transition: background 260ms ease, color 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.industries-hero-horizon a:last-child { border-right: 0; }

.industries-hero-horizon a:hover,
.industries-hero-horizon a:focus-visible {
  outline: none;
  background: rgba(61, 187, 142, 0.16);
  color: #ffffff;
  transform: translateY(-4px);
}

.industries-hero-horizon a span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(143, 209, 106, 0.5);
  border-radius: 50%;
  color: #8fd16a;
  font-size: 0.52rem;
  font-weight: 900;
}

.industries-hero-horizon a strong {
  overflow: hidden;
  font-size: 0.61rem;
  line-height: 1.25;
  text-overflow: ellipsis;
}

@keyframes industries-hero-drift {
  from { transform: scale(1.02) translateX(0); }
  to { transform: scale(1.065) translateX(-1.2%); }
}

/* ---------- Service matching: illuminated relationship matrix ---------- */

.avx-industries-page .service-match-section {
  padding-block: 8rem 9rem;
  background: #f5fbf7;
}

.service-match-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(280px, 0.48fr);
  gap: 5rem;
  align-items: end;
}

.service-match-heading h2 {
  max-width: 23ch;
  margin: 0.45rem 0 0;
  color: var(--avx-navy);
  font-size: 2.5rem;
  line-height: 1.06;
}

.service-match-intro > p {
  max-width: 43ch;
  margin: 0;
  color: #687a87;
  line-height: 1.65;
}

.service-matrix {
  margin-top: 3.5rem;
  overflow-x: auto;
  border-top: 1px solid rgba(10, 12, 46, 0.17);
  border-bottom: 1px solid rgba(10, 12, 46, 0.17);
  scrollbar-width: thin;
}

.service-matrix-head,
.service-matrix-row {
  display: grid;
  grid-template-columns: 290px minmax(680px, 1fr);
  min-width: 970px;
}

.service-matrix-head {
  min-height: 70px;
  border-bottom: 1px solid rgba(10, 12, 46, 0.13);
  color: #748591;
  font-size: 0.6rem;
  font-weight: 900;
  text-transform: uppercase;
}

.service-matrix-head > span,
.service-matrix-head > div > span {
  display: grid;
  place-items: center;
}

.service-matrix-head > span { justify-items: start; padding-left: 1rem; }

.service-matrix-head > div,
.service-matrix-cells {
  display: grid;
  grid-template-columns: repeat(8, minmax(76px, 1fr));
}

.service-matrix-head > div > span {
  border-left: 1px solid rgba(10, 12, 46, 0.09);
  color: var(--avx-green);
  font-size: 0.58rem;
}

.service-matrix-row {
  position: relative;
  min-height: 92px;
  border-bottom: 1px solid rgba(10, 12, 46, 0.1);
  transition: background 260ms ease;
}

.service-matrix-row:last-child { border-bottom: 0; }

.service-matrix-row::after {
  content: "";
  position: absolute;
  left: 290px;
  right: 0;
  top: 50%;
  height: 1px;
  z-index: 0;
  background: linear-gradient(90deg, transparent, rgba(61, 187, 142, 0.5), transparent);
  opacity: 0;
  transform: scaleX(0.2);
  transition: opacity 260ms ease, transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.service-matrix-row:hover,
.service-matrix-row:focus-within {
  background: rgba(61, 187, 142, 0.055);
}

.service-matrix-row:hover::after,
.service-matrix-row:focus-within::after {
  opacity: 1;
  transform: scaleX(1);
}

.service-matrix-industry {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  padding: 1rem;
  color: var(--avx-navy);
  text-decoration: none;
}

.service-matrix-industry strong,
.service-matrix-industry small { display: block; }

.service-matrix-industry strong {
  font-family: var(--display-font);
  font-size: 0.92rem;
}

.service-matrix-industry small {
  margin-top: 0.28rem;
  overflow: hidden;
  color: #7b8b96;
  font-size: 0.56rem;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.service-matrix-cell {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  border-left: 1px solid rgba(10, 12, 46, 0.08);
}

.service-matrix-cell > i,
.service-matrix-cell > a {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
}

.service-matrix-cell > i {
  width: 5px;
  height: 5px;
  background: rgba(10, 12, 46, 0.13);
}

.service-matrix-cell > a {
  position: relative;
  border: 1px solid rgba(13, 158, 158, 0.28);
  background: rgba(61, 187, 142, 0.1);
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms ease, box-shadow 220ms ease;
}

.service-matrix-cell > a i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--avx-teal);
  box-shadow: 0 0 0 5px rgba(61, 187, 142, 0.12);
}

.service-matrix-row:hover .service-matrix-cell.is-mapped > a,
.service-matrix-row:focus-within .service-matrix-cell.is-mapped > a {
  background: #ffffff;
  box-shadow: 0 0 24px rgba(13, 158, 158, 0.26);
  transform: scale(1.12);
}

.service-matrix-cell.is-mapped::after {
  content: attr(data-service-name);
  position: absolute;
  left: 50%;
  bottom: calc(50% + 27px);
  z-index: 5;
  width: max-content;
  max-width: 150px;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  background: var(--avx-navy);
  color: #ffffff;
  font-size: 0.55rem;
  font-weight: 760;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 6px);
  transition: opacity 180ms ease, transform 220ms ease;
}

.service-matrix-cell.is-mapped:hover::after,
.service-matrix-cell.is-mapped:focus-within::after {
  opacity: 1;
  transform: translate(-50%, 0);
}

.service-matrix-key {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-width: 970px;
  padding: 0.9rem 1rem;
  border-top: 1px solid rgba(10, 12, 46, 0.1);
  color: #94a3b8;
  font-size: 0.62rem;
}

.service-matrix-key span { display: flex; align-items: center; gap: 0.5rem; }
.service-matrix-key i { width: 8px; height: 8px; border-radius: 50%; background: var(--avx-teal); }

/* ---------- Common triggers: AVEX convergence lanes ---------- */

.avx-industries-page .common-trigger-scene {
  padding-block: 8rem;
  overflow: hidden;
  background: #06443a;
  color: #ffffff;
}

.trigger-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(540px, 1.28fr);
  gap: 6rem;
  align-items: center;
}

.trigger-copy .eyebrow { color: #9ee9c6; }

.trigger-copy h2 {
  max-width: 16ch;
  margin: 0.5rem 0 0;
  color: #ffffff;
  font-size: 2.55rem;
  line-height: 1.05;
}

.trigger-copy > p:last-child {
  max-width: 50ch;
  margin: 1.25rem 0 0;
  color: rgba(231, 249, 241, 0.72);
  line-height: 1.7;
}

.trigger-convergence {
  position: relative;
  padding-block: 2.5rem;
}

.trigger-convergence::before {
  content: "";
  position: absolute;
  left: 42%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(158, 233, 198, 0.22);
}

.trigger-pivot {
  position: absolute;
  left: 42%;
  top: 50%;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: #ffffff;
  color: var(--avx-navy);
  box-shadow: 0 0 0 12px rgba(61, 187, 142, 0.1), 0 0 46px rgba(61, 187, 142, 0.24);
  transform: translate(-50%, -50%);
}

.trigger-pivot span,
.trigger-pivot small { display: block; text-align: center; }
.trigger-pivot span { font-size: 0.72rem; font-weight: 900; }
.trigger-pivot small { color: var(--avx-green); font-size: 0.48rem; font-weight: 850; text-transform: uppercase; }

.trigger-lane {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 110px minmax(120px, 0.75fr) minmax(230px, 1.25fr);
  gap: 1rem;
  align-items: center;
  width: 100%;
  min-height: 94px;
  padding: 0.7rem 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: transparent;
  color: #ffffff;
  cursor: pointer;
  text-align: left;
}

.trigger-lane strong {
  font-family: var(--display-font);
  font-size: 0.95rem;
  transition: color 220ms ease, transform 260ms ease;
}

.trigger-lane i {
  position: relative;
  display: block;
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
}

.trigger-lane i b {
  position: absolute;
  left: 0;
  top: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #8fd16a;
  box-shadow: 0 0 16px rgba(143, 209, 106, 0.8);
  opacity: 0.45;
}

.trigger-lane span {
  color: rgba(231, 249, 241, 0.48);
  font-size: 0.75rem;
  line-height: 1.55;
  transform: translateX(0);
  transition: color 260ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.trigger-lane.is-active strong { color: #9ee9c6; transform: translateX(5px); }
.trigger-lane.is-active span { color: rgba(255, 255, 255, 0.9); transform: translateX(6px); }
.trigger-lane.is-active i { background: linear-gradient(90deg, #8fd16a, rgba(255, 255, 255, 0.28)); }
.trigger-lane.is-active i b { opacity: 1; animation: trigger-node-run 1.8s ease-in-out infinite alternate; }

@keyframes trigger-node-run {
  from { left: 0; }
  to { left: calc(100% - 9px); }
}

/* ---------- Resources: two-way editorial gateway ---------- */

.avx-industries-page .industry-resource-gateway {
  padding-block: 8rem;
  background: var(--avx-cream);
}

.resource-gateway-shell {
  display: flex;
  min-height: 520px;
  padding: 0;
  overflow: hidden;
  border-top: 1px solid rgba(10, 12, 46, 0.16);
  border-bottom: 1px solid rgba(10, 12, 46, 0.16);
}

.resource-gateway-panel {
  position: relative;
  flex: 0 0 50%;
  min-width: 0;
  overflow: hidden;
  color: #ffffff;
  text-decoration: none;
  isolation: isolate;
  transition: flex 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.resource-gateway-panel + .resource-gateway-panel { border-left: 1px solid rgba(255, 255, 255, 0.28); }
.resource-gateway-cases { background: #0a0c2e; }
.resource-gateway-papers { background: #0e4d6e; }

.resource-gateway-panel figure {
  position: absolute;
  inset: 0;
  z-index: -2;
  margin: 0;
  opacity: 0.42;
  clip-path: inset(38% 0 0 34%);
  transition: opacity 520ms ease, clip-path 720ms cubic-bezier(0.22, 1, 0.36, 1), transform 720ms ease;
}

.resource-gateway-panel figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(10, 12, 46, 0.92), rgba(10, 12, 46, 0.08));
}

.resource-gateway-papers figure::after { background: linear-gradient(135deg, rgba(14, 77, 110, 0.94), rgba(14, 77, 110, 0.08)); }

.resource-gateway-panel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.resource-gateway-panel > div {
  display: grid;
  align-content: end;
  min-height: 520px;
  max-width: 590px;
  padding: 3rem;
}

.resource-gateway-panel .eyebrow { color: #9ee9c6; }

.resource-gateway-panel h2 {
  max-width: 17ch;
  margin: 0.65rem 0 0;
  color: #ffffff;
  font-size: 2.15rem;
  line-height: 1.07;
}

.resource-gateway-panel p:not(.eyebrow) {
  max-width: 50ch;
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.6;
}

.resource-gateway-panel > div > span {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: fit-content;
  min-width: 170px;
  margin-top: 1.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.46);
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.resource-gateway-panel > div > span i {
  font-style: normal;
  transition: transform 240ms ease;
}

.resource-gateway-panel:hover,
.resource-gateway-panel:focus-visible { flex-basis: 62%; outline: none; }
.resource-gateway-panel:hover figure,
.resource-gateway-panel:focus-visible figure { opacity: 0.72; clip-path: inset(0 0 0 18%); }
.resource-gateway-panel:hover img,
.resource-gateway-panel:focus-visible img { transform: scale(1.04); }
.resource-gateway-panel:hover > div > span i,
.resource-gateway-panel:focus-visible > div > span i { transform: translateX(6px); }

/* ---------- Final industry CTA: kinetic support ribbon ---------- */

.avx-industries-page .industry-mark-cta {
  position: relative;
  overflow: hidden;
  padding: 0 0 7rem;
  background: #0a0c2e;
}

.industry-mark-marquee {
  overflow: hidden;
  padding: 1.1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(169, 234, 211, 0.34);
  font-family: var(--display-font);
  font-size: 1.15rem;
  font-weight: 800;
  white-space: nowrap;
}

.industry-mark-marquee span {
  display: inline-block;
  min-width: max-content;
  animation: industry-mark-marquee 22s linear infinite;
}

.avx-industries-page .industry-mark-shell {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: 6rem;
  align-items: center;
  min-height: 470px;
  padding: 5.5rem 0 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.avx-industries-page .industry-mark-copy {
  display: block;
  min-height: 0;
  max-width: 650px;
  margin: 0;
  padding: 0;
  text-align: left;
}

.avx-industries-page .industry-mark-copy .eyebrow { color: #8fd16a; }

.avx-industries-page .industry-mark-copy h2 {
  max-width: 13ch;
  margin: 0.55rem 0 0;
  color: #ffffff;
  font-size: 3.2rem;
  line-height: 1.02;
}

.avx-industries-page .industry-mark-copy p:not(.eyebrow) {
  max-width: 56ch;
  margin: 1.2rem 0 0;
  color: rgba(226, 242, 238, 0.72);
  font-size: 1rem;
}

.avx-industries-page .industry-mark-actions { justify-content: flex-start; }

.avx-industries-page .industry-mark-actions .button.primary {
  border-color: #3dbb8e;
  background: #3dbb8e;
  color: #0a0c2e;
}

.avx-industries-page .industry-mark-actions .button.secondary {
  border-color: rgba(255, 255, 255, 0.3);
  background: transparent;
  color: #ffffff;
}

.industry-mark-route {
  position: relative;
  height: 280px;
  border-top: 1px solid rgba(143, 209, 106, 0.24);
  border-bottom: 1px solid rgba(143, 209, 106, 0.24);
}

.industry-mark-route::before,
.industry-mark-route::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(61, 187, 142, 0.48), transparent);
}

.industry-mark-route::before { top: 34%; }
.industry-mark-route::after { top: 68%; }

.industry-mark-route i {
  position: absolute;
  width: 13px;
  height: 13px;
  border: 2px solid #0a0c2e;
  border-radius: 50%;
  background: #3dbb8e;
  box-shadow: 0 0 0 6px rgba(143, 209, 106, 0.12), 0 0 24px rgba(143, 209, 106, 0.42);
}

.industry-mark-route i:nth-child(1) { left: 12%; top: calc(34% - 6px); }
.industry-mark-route i:nth-child(2) { left: 49%; top: calc(68% - 6px); background: #3dbb8e; }
.industry-mark-route i:nth-child(3) { right: 11%; top: calc(34% - 6px); background: #8fd16a; }

.industry-mark-route span {
  position: absolute;
  left: 0;
  top: calc(34% - 4px);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.74);
  animation: industry-route-run 4.8s ease-in-out infinite;
}

@keyframes industry-route-run {
  0% { left: 0; top: calc(34% - 4px); }
  46% { left: 49%; top: calc(68% - 4px); }
  100% { left: calc(100% - 9px); top: calc(34% - 4px); }
}

@keyframes industry-mark-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (max-width: 1000px) {
  .industries-hero-horizon { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .industries-hero-horizon a { min-height: 58px; }
  .industries-hero-content { padding-bottom: 12rem; }
  .trigger-layout { grid-template-columns: 1fr; gap: 3.5rem; }
  .trigger-copy h2 { max-width: 20ch; }
  .avx-industries-page .industry-mark-shell { grid-template-columns: 1fr; gap: 3rem; }
  .industry-mark-route { height: 190px; }
}

@media (max-width: 720px) {
  .avx-industries-page .industries-hero { min-height: min(720px, calc(100svh - 5rem)); align-items: start; }
  .industries-hero-media img { object-position: 66% 50%; }
  .industries-hero-content { padding-block: 6.5rem 7rem; }
  .industries-hero-content h1 { font-size: 3.5rem; }
  .industries-hero-content h2 { font-size: 1.65rem; }
  .industries-hero-horizon { display: flex; overflow-x: auto; }
  .industries-hero-horizon a { flex: 0 0 165px; }

  .avx-industries-page .service-match-section { padding-block: 6rem; }
  .service-match-intro { grid-template-columns: 1fr; gap: 1rem; }
  .service-match-heading h2 { font-size: 1.85rem; }
  .service-matrix { margin-top: 2.5rem; }

  .avx-industries-page .common-trigger-scene { padding-block: 6rem; }
  .trigger-copy h2 { font-size: 1.9rem; }
  .trigger-convergence::before,
  .trigger-pivot { display: none; }
  .trigger-lane { grid-template-columns: 1fr; gap: 0.65rem; padding: 1rem 0; }
  .trigger-lane i { width: 100%; }

  .avx-industries-page .industry-resource-gateway { padding-block: 6rem; }
  .resource-gateway-shell { display: grid; }
  .resource-gateway-panel + .resource-gateway-panel { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.24); }
  .resource-gateway-panel > div { min-height: 430px; padding: 2rem; }
  .resource-gateway-panel h2 { font-size: 1.75rem; }

  .avx-industries-page .industry-mark-cta { padding-bottom: 5rem; }
  .avx-industries-page .industry-mark-shell { padding-top: 4rem; }
  .avx-industries-page .industry-mark-copy h2 { font-size: 2.25rem; }
  .industry-mark-route { height: 150px; }
}

/* ---------- Industries hero: vertical environment rail ---------- */

.avx-industries-page .industries-hero {
  min-height: min(760px, calc(100svh - 5rem));
}

.avx-industries-page .industries-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(255px, 300px);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  width: 100%;
  min-height: inherit;
  padding-block: 5rem;
}

.avx-industries-page .industries-hero-content {
  width: min(100%, 720px);
  padding: 0;
}

.avx-industries-page .industries-hero-content .hero-actions {
  justify-content: flex-start;
}

.avx-industries-page .industries-hero-horizon {
  position: relative;
  left: auto;
  bottom: auto;
  display: block;
  width: 100%;
  max-width: none;
  height: 376px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(151, 226, 206, 0.25);
  border-radius: 8px;
  background: rgba(5, 25, 47, 0.62);
  box-shadow: 0 28px 70px rgba(0, 9, 27, 0.34);
  transform: none;
  backdrop-filter: blur(16px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 91%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 9%, #000 91%, transparent 100%);
}

.industries-hero-horizon-track {
  display: flex;
  flex-direction: column;
  animation: industries-vertical-loop 19s linear infinite;
  will-change: transform;
}

.avx-industries-page .industries-hero-horizon:hover .industries-hero-horizon-track,
.avx-industries-page .industries-hero-horizon:focus-within .industries-hero-horizon-track {
  animation-play-state: paused;
}

.avx-industries-page .industries-hero-horizon a {
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 18px;
  flex: 0 0 62px;
  gap: 0.8rem;
  align-items: center;
  min-height: 62px;
  padding: 0.7rem 1rem;
  border-right: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(239, 250, 247, 0.72);
  transition: color 260ms ease, background 260ms ease, padding 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industries-hero-horizon a::after {
  content: "\2197";
  color: #8fd16a;
  font-size: 0.95rem;
  opacity: 0;
  transform: translate(-5px, 5px);
  transition: opacity 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industries-hero-horizon a:hover,
.avx-industries-page .industries-hero-horizon a:focus-visible {
  padding-left: 1.2rem;
  background: rgba(61, 187, 142, 0.15);
  color: #ffffff;
  transform: none;
}

.avx-industries-page .industries-hero-horizon a:hover::after,
.avx-industries-page .industries-hero-horizon a:focus-visible::after {
  opacity: 1;
  transform: translate(0, 0);
}

.avx-industries-page .industries-hero-horizon a span {
  width: 34px;
  height: 34px;
  border-color: rgba(143, 209, 106, 0.56);
  background: rgba(61, 187, 142, 0.08);
  font-size: 0.58rem;
  transition: background 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .industries-hero-horizon a:hover span,
.avx-industries-page .industries-hero-horizon a:focus-visible span {
  background: #3dbb8e;
  color: #0a0c2e;
  transform: rotate(-7deg) translateY(-2px);
}

.avx-industries-page .industries-hero-horizon a strong {
  font-size: 0.73rem;
  line-height: 1.25;
  text-overflow: clip;
  white-space: normal;
}

@keyframes industries-vertical-loop {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

/* ---------- Industries actions: tactile motion ---------- */

.avx-industries-page .button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: border-color 240ms ease, box-shadow 240ms ease, color 240ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .button::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: -80%;
  bottom: -80%;
  left: -45%;
  width: 30%;
  background: rgba(255, 255, 255, 0.28);
  transform: rotate(18deg) translateX(-220%);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .button:hover,
.avx-industries-page .button:focus-visible {
  outline: none;
  box-shadow: 0 13px 28px rgba(0, 12, 32, 0.22);
  transform: translateY(-3px);
}

.avx-industries-page .button:hover::after,
.avx-industries-page .button:focus-visible::after {
  transform: rotate(18deg) translateX(650%);
}

.avx-industries-page .button:active {
  box-shadow: 0 5px 12px rgba(0, 12, 32, 0.2);
  transform: translateY(0);
}

/* ---------- Common triggers: four-card operating moments ---------- */

.avx-industries-page .common-trigger-cards {
  padding-block: 8rem;
  background: #f8fafc;
}

.avx-industries-page .common-trigger-cards .split-grid {
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.common-trigger-cards .split-grid > div:first-child h2 {
  max-width: 16ch;
  margin: 0.5rem 0 1.15rem;
  color: #0a0c2e;
  font-size: clamp(2rem, 3.7vw, 3.35rem);
  line-height: 1.02;
}

.common-trigger-cards .split-grid > div:first-child > p:last-child {
  max-width: 47ch;
  color: #617580;
  line-height: 1.75;
}

.common-trigger-cards .proof-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.common-trigger-cards .proof-grid div {
  position: relative;
  min-height: 190px;
  overflow: hidden;
  padding: 1.55rem;
  border: 1px solid rgba(10, 12, 46, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 16px 38px rgba(29, 71, 70, 0.08);
  transition: border-color 260ms ease, box-shadow 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.common-trigger-cards .proof-grid div::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 58px;
  height: 7px;
  background: #3dbb8e;
  transform-origin: right;
  transition: width 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.common-trigger-cards .proof-grid div:nth-child(2)::before { background: #3dbb8e; }
.common-trigger-cards .proof-grid div:nth-child(3)::before { background: #8fd16a; }
.common-trigger-cards .proof-grid div:nth-child(4)::before { background: #0d9e9e; }

.common-trigger-cards .proof-grid div:hover {
  border-color: rgba(20, 127, 116, 0.38);
  box-shadow: 0 24px 48px rgba(29, 71, 70, 0.14);
  transform: translateY(-5px);
}

.common-trigger-cards .proof-grid div:hover::before { width: 100%; }

.common-trigger-cards .proof-grid strong {
  margin-top: 1.8rem;
  font-size: 1.35rem;
}

.common-trigger-cards .proof-grid span {
  margin-top: 0.8rem;
  font-size: 0.9rem;
  line-height: 1.65;
}

/* ---------- Lifecycle rhythm: scroll-driven readiness route ---------- */

.avx-industries-page .industry-rhythm {
  background: #f5fbf7;
}

.avx-industries-page .industry-rhythm .rhythm-scroll {
  min-height: calc((var(--rhythm-count, 4) * 68vh) + 78vh);
}

.avx-industries-page .industry-rhythm .rhythm-sticky {
  top: 78px;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: calc(100svh - 78px);
  padding-block: 2.2rem 2rem;
}

.avx-industries-page .industry-rhythm .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr);
  gap: 3rem;
  align-items: end;
  margin-bottom: 1.25rem;
}

.avx-industries-page .industry-rhythm .section-heading .eyebrow {
  align-self: start;
  margin-top: 0.45rem;
}

.avx-industries-page .industry-rhythm .section-heading h2 {
  grid-column: 2;
  max-width: 27ch;
  font-size: clamp(2rem, 3.25vw, 2.9rem);
}

.avx-industries-page .rhythm-aperture {
  display: grid;
  grid-template-rows: auto 3px minmax(0, 1fr);
}

.avx-industries-page .industry-lifecycle-line {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  height: auto;
  overflow: visible;
  border: 0;
  background: transparent;
}

.avx-industries-page .industry-lifecycle-line .rhythm-gate {
  position: relative;
  min-width: 0;
  min-height: 0;
  height: 68px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  list-style: none;
}

.avx-industries-page .rhythm-gate button {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 0.7rem;
  align-items: center;
  width: 100%;
  min-height: 58px;
  padding: 0.65rem 0.9rem 0.65rem 0;
  border: 0;
  background: transparent;
  color: #698077;
  cursor: pointer;
  text-align: left;
}

.avx-industries-page .rhythm-gate button i {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  border: 2px solid #9eb8af;
  border-radius: 50%;
  background: #f5fbf7;
  box-shadow: 0 0 0 7px #f5fbf7;
  transition: border-color 260ms ease, background 260ms ease, box-shadow 320ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .rhythm-gate button i::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: inherit;
  background: #ffffff;
  opacity: 0;
  transform: scale(0.3);
  transition: opacity 220ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .rhythm-gate button span {
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  transition: color 240ms ease, transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .rhythm-gate button[aria-selected="true"] {
  color: #0a0c2e;
}

.avx-industries-page .rhythm-gate button[aria-selected="true"] i {
  border-color: #0a0c2e;
  background: #3dbb8e;
  box-shadow: 0 0 0 7px #f5fbf7, 0 0 0 9px rgba(61, 187, 142, 0.2), 0 0 28px rgba(61, 187, 142, 0.48);
  transform: scale(1.08);
}

.avx-industries-page .rhythm-gate button[aria-selected="true"] i::after {
  opacity: 1;
  transform: scale(1);
}

.avx-industries-page .rhythm-gate button[aria-selected="true"] span {
  transform: translateX(4px);
}

.avx-industries-page .industry-rhythm .rhythm-progress {
  position: relative;
  z-index: 1;
  height: 2px;
  margin: -30px calc(12.5% - 12px) 0 11px;
  overflow: visible;
  background: #c9ddd6;
}

.avx-industries-page .industry-rhythm .rhythm-progress span {
  display: block;
  width: var(--rhythm-progress, 0%);
  height: 100%;
  background: #3dbb8e;
  box-shadow: 0 0 12px rgba(61, 187, 142, 0.5);
}

.rhythm-panel-stage {
  position: relative;
  min-height: 340px;
  margin-top: 1.65rem;
  overflow: hidden;
  border-top: 1px solid rgba(10, 12, 46, 0.14);
  border-bottom: 1px solid rgba(10, 12, 46, 0.14);
  background: #0a0c2e;
  box-shadow: 0 26px 60px rgba(10, 12, 46, 0.13);
}

.avx-industries-page .rhythm-step {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  gap: 4rem;
  align-items: center;
  min-width: 0;
  padding: clamp(2rem, 4vw, 4rem);
  border: 0;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transform: translateY(28px);
  transition: opacity 360ms ease, transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .rhythm-step::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 4px;
  height: 100%;
  background: #3dbb8e;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1) 120ms;
}

.avx-industries-page .rhythm-step.is-active {
  z-index: 2;
  background: transparent;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.avx-industries-page .rhythm-step.is-active::before {
  transform: scaleY(1);
}

.avx-industries-page .rhythm-step .rhythm-step-copy {
  position: static;
  display: grid;
  align-content: center;
  align-items: start;
  opacity: 1;
  transform: none;
}

.avx-industries-page .rhythm-step-copy small {
  color: #8fd16a;
  font-size: 0.65rem;
  letter-spacing: 0;
}

.avx-industries-page .rhythm-step-copy strong {
  margin-top: 0.75rem;
  color: #ffffff;
  font-size: clamp(2.5rem, 5vw, 4.6rem);
}

.avx-industries-page .rhythm-step-copy > span {
  max-width: 48ch;
  margin-top: 1.25rem;
  color: rgba(148, 163, 184, 0.76);
  font-size: 0.98rem;
  line-height: 1.72;
}

.rhythm-system {
  position: relative;
  display: grid;
  grid-template-columns: minmax(80px, 1fr) 60px minmax(80px, 1fr) 60px minmax(80px, 1fr);
  align-items: center;
}

.rhythm-system::before {
  content: "";
  position: absolute;
  left: 5%;
  right: 5%;
  top: 50%;
  height: 1px;
  background: rgba(143, 209, 106, 0.25);
}

.rhythm-system span {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  max-width: 118px;
  margin-inline: auto;
  border: 1px solid rgba(143, 209, 106, 0.38);
  border-radius: 50%;
  background: #0b2949;
  color: #e2e8f0;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
  box-shadow: 0 0 0 10px rgba(11, 41, 73, 0.72);
  transform: scale(0.72);
  opacity: 0;
  transition: opacity 340ms ease, transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.rhythm-system i {
  position: relative;
  z-index: 2;
  height: 1px;
  overflow: visible;
  background: #3dbb8e;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 520ms ease;
}

.rhythm-system i::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #3dbb8e;
  box-shadow: 0 0 14px rgba(143, 209, 106, 0.7);
}

.rhythm-step.is-active .rhythm-system span {
  opacity: 1;
  transform: scale(1);
}

.rhythm-step.is-active .rhythm-system span:nth-of-type(2) { transition-delay: 150ms; }
.rhythm-step.is-active .rhythm-system span:nth-of-type(3) { transition-delay: 300ms; }
.rhythm-step.is-active .rhythm-system i { transform: scaleX(1); transition-delay: 230ms; }
.rhythm-step.is-active .rhythm-system i:nth-of-type(2) { transition-delay: 380ms; }

/* ---------- Resources: field evidence and technical briefs ---------- */

.avx-industries-page .industry-resource-gateway {
  padding-block: 8rem;
  background: #0a0c2e;
}

.resource-gateway-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(260px, 0.45fr);
  gap: 3rem;
  align-items: end;
  margin-bottom: 2.6rem;
}

.resource-gateway-heading .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: -2.2rem;
}

.resource-gateway-heading h2 {
  max-width: 22ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(2rem, 3.8vw, 3.4rem);
  line-height: 1.04;
}

.resource-gateway-heading > p:last-child {
  margin: 0;
  color: rgba(226, 242, 238, 0.68);
  line-height: 1.7;
}

.avx-industries-page .resource-gateway-shell {
  display: flex;
  gap: 0;
  min-height: 610px;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.avx-industries-page .resource-gateway-panel {
  position: relative;
  display: block;
  flex: 1 1 50%;
  min-height: 610px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: none;
  transition: flex-basis 620ms cubic-bezier(0.22, 1, 0.36, 1), filter 360ms ease;
}

.avx-industries-page .resource-gateway-panel + .resource-gateway-panel {
  border-left: 1px solid rgba(255, 255, 255, 0.24);
  background: #0e4d6e;
}

.avx-industries-page .resource-gateway-panel:hover,
.avx-industries-page .resource-gateway-panel:focus-visible {
  box-shadow: none;
  outline: none;
  transform: none;
}

.avx-industries-page .resource-gateway-panel > div {
  min-height: 0;
  max-width: none;
  padding: 0;
}

.avx-industries-page .resource-gateway-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #0a0c2e;
}

.avx-industries-page .resource-gateway-papers .resource-gateway-visual {
  background: #0e4d6e;
}

.avx-industries-page .resource-gateway-panel figure {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  opacity: 0.68;
  clip-path: none;
  transition: opacity 420ms ease, transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .resource-gateway-panel figure::after {
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.14) 0%, rgba(10, 12, 46, 0.4) 52%, rgba(10, 12, 46, 0.98) 100%);
}

.avx-industries-page .resource-gateway-papers figure::after {
  background: linear-gradient(180deg, rgba(14, 77, 110, 0.18) 0%, rgba(14, 77, 110, 0.5) 52%, rgba(6, 58, 54, 0.98) 100%);
}

.avx-industries-page .resource-gateway-panel:hover figure,
.avx-industries-page .resource-gateway-panel:focus-visible figure {
  opacity: 0.75;
  clip-path: none;
  transform: scale(1.035);
}

.avx-industries-page .resource-record-label {
  position: absolute;
  left: 1.4rem;
  top: 1.35rem;
  z-index: 3;
  display: inline-flex;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0.42rem 0.62rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 4px;
  color: #ffffff;
  font-size: 0.6rem;
  font-weight: 900;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.resource-case-route {
  position: absolute;
  left: 1.4rem;
  right: 1.4rem;
  bottom: 43%;
  z-index: 3;
  display: grid;
  grid-template-columns: auto minmax(50px, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  color: #ffffff;
  font-size: 0.66rem;
  font-weight: 850;
  text-transform: uppercase;
}

.resource-case-route i {
  position: relative;
  height: 1px;
  overflow: visible;
  background: rgba(255, 255, 255, 0.56);
}

.resource-case-route i::after {
  content: "";
  position: absolute;
  left: 0;
  top: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #8fd16a;
  box-shadow: 0 0 16px rgba(143, 209, 106, 0.9);
  transition: left 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.resource-gateway-cases:hover .resource-case-route i::after,
.resource-gateway-cases:focus-visible .resource-case-route i::after {
  left: calc(100% - 9px);
}

.resource-paper-stack {
  position: absolute;
  right: 1.5rem;
  top: 10rem;
  bottom: auto;
  z-index: 3;
  width: min(62%, 280px);
  height: 128px;
}

.resource-paper-stack i {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: 5px;
  background: rgba(238, 252, 247, 0.12);
  backdrop-filter: blur(7px);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.resource-paper-stack i:nth-child(1) { transform: translate(-28px, -22px); }
.resource-paper-stack i:nth-child(2) { transform: translate(-14px, -11px); }
.resource-paper-stack span {
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  bottom: 1rem;
  color: #ffffff;
  font-size: 0.62rem;
  font-weight: 850;
  text-transform: uppercase;
}

.resource-gateway-papers:hover .resource-paper-stack i:nth-child(1),
.resource-gateway-papers:focus-visible .resource-paper-stack i:nth-child(1) { transform: translate(-38px, -30px); }
.resource-gateway-papers:hover .resource-paper-stack i:nth-child(2),
.resource-gateway-papers:focus-visible .resource-paper-stack i:nth-child(2) { transform: translate(-19px, -15px); }

.avx-industries-page .resource-gateway-copy {
  position: absolute;
  inset: auto 0 0;
  z-index: 4;
  display: grid;
  align-content: end;
  min-height: 330px;
  padding: 2.5rem;
  background: linear-gradient(180deg, transparent, rgba(10, 12, 46, 0.98) 34%);
}

.avx-industries-page .resource-gateway-papers .resource-gateway-copy {
  background: linear-gradient(180deg, transparent, rgba(6, 58, 54, 0.98) 34%);
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy .eyebrow {
  color: #9ee9c6;
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy h2 {
  max-width: 22ch;
  margin-top: 0.5rem;
  color: #ffffff;
  font-size: clamp(1.65rem, 2.6vw, 2.25rem);
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy p:not(.eyebrow) {
  max-width: 46ch;
  color: rgba(148, 163, 184, 0.72);
}

.avx-industries-page .resource-gateway-action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  align-self: end;
  width: min(100%, 230px);
  min-width: 0;
  margin-top: 1.6rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.resource-gateway-papers .resource-gateway-action {
  background: rgba(255, 255, 255, 0.08);
}

.avx-industries-page .resource-gateway-action i {
  font-style: normal;
  transition: transform 240ms ease;
}

.avx-industries-page .resource-gateway-panel:hover .resource-gateway-action i,
.avx-industries-page .resource-gateway-panel:focus-visible .resource-gateway-action i {
  transform: translateX(6px);
}

@media (hover: hover) and (min-width: 721px) {
  .avx-industries-page .resource-gateway-shell:has(.resource-gateway-panel:hover) .resource-gateway-panel,
  .avx-industries-page .resource-gateway-shell:has(.resource-gateway-panel:focus-visible) .resource-gateway-panel {
    flex-basis: 36%;
  }

  .avx-industries-page .resource-gateway-shell .resource-gateway-panel:hover,
  .avx-industries-page .resource-gateway-shell .resource-gateway-panel:focus-visible {
    flex-basis: 64%;
  }
}

@media (max-width: 900px) {
  .avx-industries-page .industries-hero-layout {
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 2.5rem;
  }

  .avx-industries-page .common-trigger-cards .split-grid {
    grid-template-columns: 1fr;
  }

  .avx-industries-page .rhythm-step {
    grid-template-columns: minmax(0, 0.8fr) minmax(300px, 1.2fr);
    gap: 2rem;
  }
}

@media (max-width: 720px) {
  .avx-industries-page .industries-hero {
    min-height: auto;
  }

  .avx-industries-page .industries-hero-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.25rem;
    min-height: 0;
    padding-block: 6rem 3.5rem;
  }

  .avx-industries-page .industries-hero-content {
    padding: 0;
  }

  .avx-industries-page .industries-hero-horizon {
    display: block;
    width: 100%;
    height: 248px;
    overflow: hidden;
  }

  .avx-industries-page .industries-hero-horizon a {
    display: grid;
    flex: 0 0 62px;
  }

  .avx-industries-page .common-trigger-cards {
    padding-block: 6rem;
  }

  .common-trigger-cards .proof-grid {
    grid-template-columns: 1fr;
  }

  .common-trigger-cards .proof-grid div {
    min-height: 165px;
  }

  .avx-industries-page .industry-rhythm .rhythm-scroll {
    min-height: 0;
  }

  .avx-industries-page .industry-rhythm .rhythm-sticky {
    position: relative;
    top: auto;
    min-height: 0;
    padding-block: 6rem;
  }

  .avx-industries-page .industry-rhythm .section-heading {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .avx-industries-page .industry-rhythm .section-heading h2 {
    grid-column: 1;
  }

  .avx-industries-page .industry-lifecycle-line {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .avx-industries-page .rhythm-gate button {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0.55rem;
    padding-inline: 0.15rem;
    text-align: center;
  }

  .avx-industries-page .rhythm-gate button span {
    font-size: 0.55rem;
  }

  .avx-industries-page .industry-rhythm .rhythm-progress {
    display: block;
    margin-right: calc(12.5% - 9px);
    margin-left: 9px;
  }

  .rhythm-panel-stage {
    min-height: 520px;
  }

  .avx-industries-page .rhythm-step,
  .avx-industries-page .rhythm-step.is-active {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.2rem;
    min-height: 0;
    padding: 2rem 1.4rem;
  }

  .rhythm-system {
    grid-template-columns: minmax(58px, 1fr) 28px minmax(58px, 1fr) 28px minmax(58px, 1fr);
  }

  .rhythm-system span {
    max-width: 82px;
    font-size: 0.5rem;
  }

  .resource-gateway-heading {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .resource-gateway-heading .eyebrow {
    grid-column: 1;
    margin-bottom: 0;
  }

  .avx-industries-page .resource-gateway-shell {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .avx-industries-page .resource-gateway-panel {
    flex: none;
    min-height: 565px;
  }

  .avx-industries-page .resource-gateway-panel + .resource-gateway-panel {
    border-top: 1px solid rgba(10, 12, 46, 0.14);
  }

  .avx-industries-page .resource-gateway-copy {
    padding: 1.65rem;
  }
}

/* ---------- Final lifecycle concept: circular readiness dial ---------- */

.avx-industries-page .industry-rhythm {
  --rhythm-angle: -90deg;
  background: #f8fafc;
}

.avx-industries-page .industry-rhythm .rhythm-sticky {
  padding-block: 2.4rem;
}

.avx-industries-page .industry-rhythm .section-heading {
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
  gap: 2rem;
  margin-bottom: 1.25rem;
}

.avx-industries-page .industry-rhythm .section-heading h2 {
  grid-column: 2;
  max-width: 26ch;
  font-size: clamp(2.1rem, 3.2vw, 3rem);
}

.avx-industries-page .rhythm-aperture {
  display: grid;
  grid-template-columns: minmax(340px, 0.82fr) minmax(440px, 1.18fr);
  grid-template-rows: auto;
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  min-height: 460px;
}

.avx-industries-page .rhythm-panel-stage {
  position: relative;
  min-height: 410px;
  margin: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.avx-industries-page .rhythm-panel-stage .rhythm-step,
.avx-industries-page .rhythm-panel-stage .rhythm-step.is-active {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
  align-content: center;
  min-height: 0;
  padding: 1.5rem 0 1.5rem 2.2rem;
  background: transparent;
  box-shadow: none;
}

.avx-industries-page .rhythm-panel-stage .rhythm-step::before {
  left: 0;
  top: 1.5rem;
  width: 3px;
  height: calc(100% - 3rem);
  background: #3dbb8e;
}

.avx-industries-page .rhythm-panel-stage .rhythm-step-copy small {
  color: #0d9e9e;
}

.avx-industries-page .rhythm-panel-stage .rhythm-step-copy strong {
  color: #0a0c2e;
  font-size: clamp(3.25rem, 6vw, 5.3rem);
}

.avx-industries-page .rhythm-panel-stage .rhythm-step-copy > span {
  max-width: 42ch;
  color: #94a3b8;
  font-size: 0.98rem;
}

.avx-industries-page .rhythm-panel-stage .rhythm-system {
  width: min(100%, 460px);
  grid-template-columns: minmax(72px, 1fr) 44px minmax(72px, 1fr) 44px minmax(72px, 1fr);
}

.avx-industries-page .rhythm-panel-stage .rhythm-system::before {
  background: rgba(10, 12, 46, 0.16);
}

.avx-industries-page .rhythm-panel-stage .rhythm-system span {
  max-width: 92px;
  border-color: rgba(20, 127, 116, 0.35);
  background: #ffffff;
  color: #0a0c2e;
  box-shadow: 0 0 0 8px #f8fafc;
}

.rhythm-dial {
  position: relative;
  isolation: isolate;
  width: min(38vw, 430px);
  aspect-ratio: 1;
  margin-inline: auto;
  border: 1px solid rgba(10, 12, 46, 0.16);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.42);
  box-shadow: 0 30px 80px rgba(31, 75, 68, 0.12), inset 0 0 0 24px rgba(255, 255, 255, 0.34);
}

.rhythm-dial::before,
.rhythm-dial::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.rhythm-dial::before {
  inset: 11%;
  border: 1px dashed rgba(20, 127, 116, 0.22);
  animation: rhythm-orbit-spin 30s linear infinite;
}

.rhythm-dial::after {
  inset: 23%;
  border: 1px solid rgba(143, 209, 106, 0.32);
  box-shadow: 0 0 44px rgba(61, 187, 142, 0.12);
}

.avx-industries-page .rhythm-dial .industry-lifecycle-line {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: block;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  background: transparent;
}

.avx-industries-page .rhythm-dial .rhythm-gate {
  position: absolute;
  width: max-content;
  height: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(1) { left: 50%; top: 0; transform: translate(-50%, -50%); }
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(2) { right: 0; top: 50%; transform: translate(50%, -50%); }
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(3) { left: 50%; bottom: 0; transform: translate(-50%, 50%); }
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(4) { left: 0; top: 50%; transform: translate(-50%, -50%); }

.avx-industries-page .rhythm-dial .rhythm-gate button {
  display: inline-flex;
  grid-template-columns: none;
  gap: 0.55rem;
  align-items: center;
  width: auto;
  min-height: 40px;
  padding: 0.4rem 0.65rem;
  border: 0;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  white-space: nowrap;
}

.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(1) button,
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(3) button {
  position: relative;
  width: 136px;
  min-width: 136px;
}

.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(1) button i,
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(3) button i {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
}

.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(1) button span,
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(3) button span {
  position: absolute;
  left: calc(50% + 20px);
  top: 50%;
  transform: translateY(-50%);
}

.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(1) button[aria-selected="true"] i,
.avx-industries-page .rhythm-dial .rhythm-gate:nth-child(3) button[aria-selected="true"] i {
  transform: translate(-50%, -50%) scale(1.08);
}

.avx-industries-page .rhythm-dial .rhythm-gate button i {
  width: 16px;
  height: 16px;
  margin: 0;
  border-color: #0e4d6e;
  background: #e8f7f2;
  box-shadow: 0 0 0 5px rgba(61, 187, 142, 0.1);
}

.avx-industries-page .rhythm-dial .rhythm-gate button i::after {
  inset: 3px;
  background: #0d9e9e;
  opacity: 1;
  transform: scale(1);
}

.avx-industries-page .rhythm-dial .rhythm-gate button[aria-selected="true"] {
  color: #0a0c2e;
}

.avx-industries-page .rhythm-dial .rhythm-gate button[aria-selected="true"] i {
  border-color: #0a0c2e;
  background: #3dbb8e;
  box-shadow: 0 0 0 6px rgba(61, 187, 142, 0.18), 0 0 24px rgba(61, 187, 142, 0.58);
}

.avx-industries-page .rhythm-dial .rhythm-gate button[aria-selected="true"] i::after {
  background: #ffffff;
}

.rhythm-dial-core {
  position: absolute;
  inset: 31%;
  z-index: 3;
  display: grid;
  place-content: center;
  border: 1px solid rgba(10, 12, 46, 0.15);
  border-radius: 50%;
  background: #0a0c2e;
  color: #ffffff;
  text-align: center;
  box-shadow: 0 18px 50px rgba(10, 12, 46, 0.2);
}

.rhythm-dial-core span {
  color: #8fd16a;
  font-size: 0.55rem;
  font-weight: 900;
  text-transform: uppercase;
}

.rhythm-dial-core strong {
  margin-top: 0.25rem;
  font-size: 0.86rem;
  line-height: 1;
}

.avx-industries-page .rhythm-dial .rhythm-progress {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  display: block;
  width: 50%;
  height: 2px;
  margin: 0;
  overflow: visible;
  background: transparent;
  transform: rotate(var(--rhythm-angle));
  transform-origin: left center;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-industries-page .rhythm-dial .rhythm-progress span {
  position: relative;
  display: block;
  width: 100%;
  height: 2px;
  background: #3dbb8e;
  box-shadow: 0 0 14px rgba(61, 187, 142, 0.52);
}

.avx-industries-page .rhythm-dial .rhythm-progress span::after {
  display: none;
}

@keyframes rhythm-orbit-spin {
  to { transform: rotate(360deg); }
}

/* ---------- Final resource concept: alternating editorial index ---------- */

.avx-industries-page .industry-resource-gateway {
  padding-block: 8rem;
  background: #f6faf7;
}

.avx-industries-page .resource-gateway-heading h2 {
  color: #0a0c2e;
}

.avx-industries-page .resource-gateway-heading > p:last-child {
  color: #94a3b8;
}

.avx-industries-page .resource-gateway-shell {
  display: block;
  min-height: 0;
  overflow: visible;
  border-top: 1px solid rgba(10, 12, 46, 0.18);
  border-bottom: 0;
}

.avx-industries-page .resource-gateway-panel,
.avx-industries-page .resource-gateway-panel + .resource-gateway-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 34%);
  min-height: 310px;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid rgba(10, 12, 46, 0.18);
  border-radius: 0;
  background: transparent;
  color: #0a0c2e;
  box-shadow: none;
  transform: none;
  transition: grid-template-columns 620ms cubic-bezier(0.22, 1, 0.36, 1), background 320ms ease;
}

.avx-industries-page .resource-gateway-panel:hover,
.avx-industries-page .resource-gateway-panel:focus-visible {
  background: #f8fafc;
  box-shadow: none;
  transform: none;
}

.avx-industries-page .resource-gateway-panel:hover {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 42%);
}

.avx-industries-page .resource-gateway-panel.resource-gateway-papers {
  grid-template-columns: minmax(300px, 34%) minmax(0, 1fr);
}

.avx-industries-page .resource-gateway-panel.resource-gateway-papers:hover {
  grid-template-columns: minmax(360px, 42%) minmax(0, 1fr);
}

.avx-industries-page .resource-gateway-panel > div {
  min-height: 310px;
}

.avx-industries-page .resource-gateway-panel .resource-gateway-visual {
  position: relative;
  inset: auto;
  grid-column: 2;
  grid-row: 1;
  min-height: 310px;
}

.avx-industries-page .resource-gateway-panel.resource-gateway-papers .resource-gateway-visual {
  grid-column: 1;
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy {
  position: relative;
  inset: auto;
  grid-column: 1;
  grid-row: 1;
  align-content: center;
  min-height: 310px;
  padding: 2.4rem 3rem 2.4rem 0;
  background: transparent;
}

.avx-industries-page .resource-gateway-panel.resource-gateway-papers .resource-gateway-copy {
  grid-column: 2;
  padding: 2.4rem 0 2.4rem 3rem;
  background: transparent;
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy .eyebrow {
  color: #0d9e9e;
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy h2 {
  max-width: 24ch;
  color: #0a0c2e;
  font-size: clamp(1.7rem, 2.8vw, 2.55rem);
}

.avx-industries-page .resource-gateway-panel .resource-gateway-copy p:not(.eyebrow) {
  max-width: 54ch;
  color: #94a3b8;
}

.avx-industries-page .resource-gateway-action,
.avx-industries-page .resource-gateway-papers .resource-gateway-action {
  width: fit-content;
  min-width: 190px;
  margin-top: 1.25rem;
  padding: 0.75rem 0;
  border: 0;
  border-bottom: 1px solid rgba(10, 12, 46, 0.36);
  border-radius: 0;
  background: transparent;
  color: #0a0c2e;
}

.avx-industries-page .resource-gateway-panel figure {
  opacity: 0.76;
}

.avx-industries-page .resource-gateway-panel figure::after {
  background: linear-gradient(90deg, rgba(10, 12, 46, 0.64), rgba(10, 12, 46, 0.06));
}

.avx-industries-page .resource-gateway-papers figure::after {
  background: linear-gradient(90deg, rgba(14, 77, 110, 0.7), rgba(14, 77, 110, 0.08));
}

.avx-industries-page .resource-case-route {
  bottom: 1.5rem;
}

.avx-industries-page .resource-paper-stack {
  top: 50%;
  bottom: auto;
  transform: translateY(-42%);
}

@media (max-width: 900px) {
  .avx-industries-page .rhythm-aperture {
    grid-template-columns: minmax(280px, 0.8fr) minmax(360px, 1.2fr);
    gap: 2rem;
  }

  .rhythm-dial {
    width: min(42vw, 380px);
  }
}

@media (max-width: 720px) {
  .avx-industries-page .industry-rhythm .section-heading {
    display: block;
    margin-bottom: 2.5rem;
    text-align: center;
  }

  .avx-industries-page .industry-rhythm .section-heading h2 {
    margin-inline: auto;
  }

  .avx-industries-page .rhythm-aperture {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 5.75rem;
  }

  .rhythm-dial {
    grid-row: 1;
    width: min(76vw, 330px);
  }

  .avx-industries-page .rhythm-panel-stage {
    grid-row: 2;
    min-height: 440px;
  }

  .avx-industries-page .rhythm-panel-stage .rhythm-step,
  .avx-industries-page .rhythm-panel-stage .rhythm-step.is-active {
    padding: 1.25rem 0 1.25rem 1.4rem;
  }

  .avx-industries-page .rhythm-panel-stage .rhythm-step-copy strong {
    font-size: 3.25rem;
  }

  .avx-industries-page .rhythm-panel-stage .rhythm-system {
    grid-template-columns: minmax(58px, 1fr) 24px minmax(58px, 1fr) 24px minmax(58px, 1fr);
  }

  .avx-industries-page .rhythm-dial .rhythm-gate button {
    min-height: 34px;
    padding: 0.3rem 0.45rem;
  }

  .avx-industries-page .rhythm-dial .rhythm-gate button span {
    font-size: 0.5rem;
  }

  .avx-industries-page .resource-gateway-panel,
  .avx-industries-page .resource-gateway-panel + .resource-gateway-panel,
  .avx-industries-page .resource-gateway-panel.resource-gateway-papers {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .avx-industries-page .resource-gateway-panel .resource-gateway-visual,
  .avx-industries-page .resource-gateway-panel.resource-gateway-papers .resource-gateway-visual {
    grid-column: 1;
    grid-row: 1;
    min-height: 230px;
  }

  .avx-industries-page .resource-gateway-panel .resource-gateway-copy,
  .avx-industries-page .resource-gateway-panel.resource-gateway-papers .resource-gateway-copy {
    grid-column: 1;
    grid-row: 2;
    min-height: 0;
    padding: 1.8rem 0 2.2rem;
  }
}

/* ---------- Market signals: industry operating handoffs ---------- */

.avx-industries-page .industry-signal-row summary {
  grid-template-columns: 54px minmax(180px, 0.86fr) minmax(220px, 0.8fr) minmax(240px, 1.2fr) 34px;
}

.signal-model {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr);
  gap: 0.25rem;
  align-items: center;
  min-width: 0;
}

.signal-model > span {
  display: grid;
  justify-items: center;
  gap: 0.32rem;
  min-width: 0;
}

.signal-model i {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border: 1px solid color-mix(in srgb, var(--signal-accent) 56%, #94a3b8);
  border-radius: 5px;
  background: color-mix(in srgb, var(--signal-accent) 10%, #ffffff);
  color: #0a0c2e;
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 4px 0 color-mix(in srgb, var(--signal-accent) 34%, #e2e8f0);
  transition: background 260ms ease, box-shadow 260ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.signal-model small {
  max-width: 100%;
  overflow: hidden;
  color: #94a3b8;
  font-size: 0.5rem;
  font-weight: 850;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.signal-model b {
  color: color-mix(in srgb, var(--signal-accent) 72%, #0a0c2e);
  font-size: 1.1rem;
  font-weight: 500;
  opacity: 0.52;
  transform: translateY(-0.55rem);
  transition: opacity 240ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.industry-signal-row:hover .signal-model i,
.industry-signal-row[open] .signal-model i {
  background: color-mix(in srgb, var(--signal-accent) 24%, #ffffff);
  box-shadow: 0 7px 0 color-mix(in srgb, var(--signal-accent) 48%, #e2e8f0), 0 12px 24px color-mix(in srgb, var(--signal-accent) 16%, transparent);
  transform: translateY(-3px);
}

.industry-signal-row:hover .signal-model > span:nth-of-type(2) i,
.industry-signal-row[open] .signal-model > span:nth-of-type(2) i { transition-delay: 70ms; }
.industry-signal-row:hover .signal-model > span:nth-of-type(3) i,
.industry-signal-row[open] .signal-model > span:nth-of-type(3) i { transition-delay: 140ms; }

.industry-signal-row:hover .signal-model b,
.industry-signal-row[open] .signal-model b {
  opacity: 1;
  transform: translate(2px, -0.55rem);
}

/* ---------- Industry selector: card-attached gradient perimeter ---------- */

.avx-industries-page .industry-model-edge {
  inset: -5px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--model-accent) 82%, #ffffff) 0%,
    color-mix(in srgb, var(--model-accent) 42%, #3dbb8e) 32%,
    rgba(143, 209, 106, 0.16) 66%,
    transparent 88%
  );
  box-shadow: 0 0 22px color-mix(in srgb, var(--model-accent) 22%, transparent);
  opacity: 0.38;
  filter: blur(9px);
  transform: none;
  transition: opacity 420ms ease, filter 420ms ease, box-shadow 420ms ease;
}

.avx-industries-page .industry-model-card.is-active .industry-model-edge {
  opacity: 0.78;
  filter: blur(7px);
  box-shadow: 0 0 30px color-mix(in srgb, var(--model-accent) 30%, transparent);
}

.avx-industries-page .industry-model-shell {
  border: 2px solid transparent;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--model-accent) 84%, #ffffff) 0%,
      color-mix(in srgb, var(--model-accent) 44%, #3dbb8e) 28%,
      rgba(143, 209, 106, 0.28) 58%,
      rgba(10, 12, 46, 0.1) 100%
    ) border-box;
  box-shadow: 0 22px 70px rgba(10, 12, 46, 0.09), 0 0 24px color-mix(in srgb, var(--model-accent) 10%, transparent);
}

.avx-industries-page .industry-model-card.is-active:hover .industry-model-shell,
.avx-industries-page .industry-model-card.is-active:focus-within .industry-model-shell {
  box-shadow: 0 30px 90px rgba(10, 12, 46, 0.13), 0 0 38px color-mix(in srgb, var(--model-accent) 20%, transparent);
}

@media (max-width: 900px) {
  .avx-industries-page .industry-signal-row summary {
    grid-template-columns: 48px minmax(160px, 0.9fr) minmax(120px, 0.7fr) minmax(200px, 1fr) 32px;
  }

  .signal-model small { display: none; }
  .signal-model b { transform: none; }
}

@media (max-width: 720px) {
  .avx-industries-page .industry-signal-row summary {
    grid-template-columns: 46px minmax(0, 1fr) 32px;
  }

  .signal-model { display: none; }
}

/* =====================================================================
   Services opening: precision laboratory and connected service blueprint.
   ===================================================================== */

.sv-page .sv-hero {
  position: relative;
  min-height: min(790px, calc(100svh - 90px));
  padding: 0;
  overflow: hidden;
  background: #f8fafc;
  color: #0a0c2e;
  isolation: isolate;
}

.sv-page .sv-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(248, 250, 252, 0.98) 0%, rgba(248, 250, 252, 0.91) 35%, rgba(248, 250, 252, 0.28) 58%, transparent 76%);
  pointer-events: none;
}

.sv-page .sv-hero-grid {
  position: absolute;
  inset: auto 0 116px;
  z-index: 3;
  height: 54px;
  opacity: 0.52;
  background:
    linear-gradient(180deg, transparent 26px, rgba(14, 77, 110, 0.18) 27px, transparent 28px),
    repeating-linear-gradient(90deg, transparent 0 58px, rgba(14, 77, 110, 0.22) 58px 59px, transparent 59px 118px);
  -webkit-mask-image: linear-gradient(90deg, #000 4%, rgba(0,0,0,0.76) 58%, transparent 92%);
  mask-image: linear-gradient(90deg, #000 4%, rgba(0,0,0,0.76) 58%, transparent 92%);
  pointer-events: none;
}

.sv-page .sv-hero-inner {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  min-height: min(790px, calc(100svh - 90px));
  padding-block: clamp(4.5rem, 9vh, 7rem) 11rem;
}

.sv-page .sv-hero-photo {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #f8fafc;
  box-shadow: none;
  clip-path: none;
  transform: none;
}

.sv-page .sv-hero-photo::after { display: none; }

.sv-page .sv-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% center;
  filter: saturate(0.84) contrast(1.01);
  transform: scale(1.015);
  animation: sv-lab-drift 18s ease-in-out infinite alternate;
}

.sv-page .sv-hero-photo figcaption {
  position: absolute;
  right: clamp(1.4rem, 4vw, 4rem);
  bottom: 9.6rem;
  left: auto;
  top: auto;
  z-index: 5;
  width: min(290px, 26vw);
  max-width: none;
  padding: 0.9rem 0 0;
  border-top: 1px solid rgba(10, 12, 46, 0.24);
  background: transparent;
  box-shadow: none;
}

.sv-page .sv-hero-photo figcaption strong {
  display: block;
  color: #0e4d6e;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-page .sv-hero-photo figcaption span {
  display: block;
  margin-top: 0.35rem;
  color: #94a3b8;
  font-size: 0.78rem;
  line-height: 1.5;
}

.sv-page .sv-hero-copy {
  position: relative;
  z-index: 5;
  width: min(54%, 620px);
}

.sv-page .sv-hero .eyebrow,
.sv-page .sv-hero .eyebrow.light { color: #0d9e9e; }

.sv-page .sv-headline {
  max-width: 11ch;
  margin: 0;
  color: #0a0c2e;
  font-size: clamp(3.3rem, 5.5vw, 5.7rem);
  line-height: 0.96;
  letter-spacing: 0;
}

.sv-page .sv-headline .sv-line {
  overflow: visible;
  margin-bottom: 0.04em;
  padding-bottom: 0;
}

.sv-page .sv-headline .sv-w:not(.sv-grad) { color: #0a0c2e; }
.sv-page .sv-headline .sv-grad { color: #0d9e9e; }

.sv-page .sv-lede {
  max-width: 600px;
  margin-top: 1.45rem;
  color: #94a3b8;
  font-size: 0.98rem;
  line-height: 1.72;
}

.sv-page .sv-hero-actions { margin-top: 1.75rem; }

.sv-page .sv-hero-actions .push-btn.ghost-dark .pb-face {
  border-color: rgba(10, 12, 46, 0.22);
  background: rgba(255, 255, 255, 0.76);
  color: #0a0c2e;
  backdrop-filter: blur(10px);
}

.sv-page .sv-hero-index-wrap {
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 8;
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  width: min(var(--section-width, 1180px), calc(100% - 2rem));
  min-height: 118px;
  border-top: 1px solid rgba(10, 12, 46, 0.16);
  background: rgba(245, 251, 248, 0.8);
  transform: translateX(-50%);
  backdrop-filter: blur(16px);
}

.sv-page .sv-hero-index-wrap > p {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  margin: 0;
  padding: 1.1rem 1.4rem 1.1rem 0;
  border-right: 1px solid rgba(10, 12, 46, 0.13);
}

.sv-page .sv-hero-index-wrap > p span {
  color: #0d9e9e;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-page .sv-hero-index-wrap > p strong {
  color: #0a0c2e;
  font-size: 0.78rem;
  line-height: 1.4;
}

.sv-page .sv-hero-index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sv-page .sv-hero-service {
  position: relative;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  min-width: 0;
  padding: 0.72rem 0.85rem;
  border-right: 1px solid rgba(10, 12, 46, 0.1);
  border-bottom: 1px solid rgba(10, 12, 46, 0.1);
  color: #94a3b8;
  transition: color 220ms ease, background 220ms ease;
}

.sv-page .sv-hero-service:nth-child(n + 5) { border-bottom: 0; }
.sv-page .sv-hero-service:nth-child(4n) { border-right: 0; }

.sv-page .sv-hero-service i {
  display: grid;
  place-items: center;
  width: 27px;
  aspect-ratio: 1;
  border: 1px solid rgba(14, 77, 110, 0.25);
  color: #0e4d6e;
  font-size: 0.48rem;
  font-style: normal;
  font-weight: 900;
  transition: color 220ms ease, background 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-page .sv-hero-service span {
  overflow: hidden;
  font-size: 0.61rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sv-page .sv-hero-service:hover,
.sv-page .sv-hero-service:focus-visible {
  background: rgba(255, 255, 255, 0.78);
  color: #0a0c2e;
  outline: none;
}

.sv-page .sv-hero-service:hover i,
.sv-page .sv-hero-service:focus-visible i {
  background: #0d9e9e;
  color: #0a0c2e;
  transform: translateY(-3px);
}

@keyframes sv-lab-drift {
  from { transform: scale(1.015) translateX(0); }
  to { transform: scale(1.045) translateX(-0.65%); }
}

/* ---------- One connected AVEX service blueprint ---------- */

.sv-page .sv-bento {
  position: relative;
  padding-block: 7.5rem 8.5rem;
  overflow: hidden;
  background: #f8fafc;
}

.sv-page .sv-bento::before {
  content: "AVEX / SERVICE ARCHITECTURE";
  position: absolute;
  right: -0.05em;
  top: 1.5rem;
  color: rgba(10, 12, 46, 0.035);
  font-size: clamp(4rem, 10vw, 9rem);
  font-weight: 950;
  white-space: nowrap;
  pointer-events: none;
}

.sv-page .sv-bento .section-heading {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(170px, 0.38fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: end;
  margin-bottom: 2.8rem;
  text-align: left;
}

.sv-page .sv-bento .section-heading .eyebrow { align-self: start; margin-top: 0.45rem; }

.sv-page .sv-bento .section-heading h2 {
  max-width: 21ch;
  margin: 0;
  color: #0a0c2e;
  font-size: clamp(2.35rem, 4vw, 3.8rem);
  line-height: 1.03;
}

.sv-system-board {
  --active-accent: #0d9e9e;
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(285px, 0.38fr) minmax(0, 0.62fr);
  min-height: 610px;
  overflow: hidden;
  border: 1px solid rgba(10, 12, 46, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 26px 80px rgba(10, 12, 46, 0.1);
}

.sv-system-readout {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem, 4vw, 3.4rem);
  overflow: hidden;
  background: #0a0c2e;
  color: #ffffff;
}

.sv-system-readout::after {
  content: "";
  position: absolute;
  right: -72px;
  bottom: -72px;
  width: 190px;
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--active-accent) 45%, transparent);
  transform: rotate(45deg);
  transition: border-color 300ms ease, transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-system-board:has(.sv-system-node:hover) .sv-system-readout::after,
.sv-system-board:has(.sv-system-node:focus-visible) .sv-system-readout::after { transform: rotate(135deg); }

.sv-system-readout-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(148, 163, 184, 0.62);
  font-size: 0.63rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-system-readout-head i {
  width: 9px;
  aspect-ratio: 1;
  background: var(--active-accent);
  box-shadow: 0 0 18px color-mix(in srgb, var(--active-accent) 60%, transparent);
  transform: rotate(45deg);
  transition: background 260ms ease, box-shadow 260ms ease;
}

.sv-system-readout > p[data-system-label] {
  margin: auto 0 0.8rem;
  color: var(--active-accent);
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-system-readout h3 {
  max-width: 10ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.3rem, 4.3vw, 4.3rem);
  line-height: 0.96;
}

.sv-system-readout > p[data-system-copy] {
  max-width: 33ch;
  min-height: 5.4em;
  margin: 1.35rem 0 2rem;
  color: rgba(148, 163, 184, 0.68);
  font-size: 0.95rem;
  line-height: 1.65;
}

.sv-system-readout > a {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  color: #ffffff;
  font-size: 0.71rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-system-readout > a span:last-child {
  color: var(--active-accent);
  font-size: 1.25rem;
  transition: transform 220ms ease;
}

.sv-system-readout > a:hover span:last-child,
.sv-system-readout > a:focus-visible span:last-child { transform: translateX(6px); }

.sv-system-map {
  position: relative;
  min-width: 0;
  padding: 1.3rem 2rem 2rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(13, 158, 158, 0.08), transparent 38%),
    #f8fafc;
}

.sv-system-map-head {
  position: relative;
  z-index: 4;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(10, 12, 46, 0.12);
  color: #94a3b8;
  font-size: 0.61rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sv-system-map-head strong { color: #0e4d6e; }

.sv-system-nodes {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: 150px 150px;
  row-gap: 128px;
  column-gap: 0.7rem;
  align-content: center;
  min-height: 500px;
  padding: 0.8rem 0;
}

.sv-system-node {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.35rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
}

.sv-system-node::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: 73px;
  background: rgba(10, 12, 46, 0.18);
  transition: background 260ms ease, box-shadow 260ms ease;
}

.sv-system-node:nth-child(-n + 4)::after { top: calc(100% + 7px); }
.sv-system-node:nth-child(n + 5)::after { bottom: calc(100% + 7px); }

.sv-system-node > span {
  display: grid;
  place-items: center;
  width: 58px;
  aspect-ratio: 1;
  border: 2px solid #0a0c2e;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 7px 0 color-mix(in srgb, var(--node-accent) 70%, #0a0c2e), 0 13px 24px rgba(10, 12, 46, 0.11);
  color: #0a0c2e;
  font-size: 0.72rem;
  font-weight: 950;
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), background 260ms ease, box-shadow 260ms ease;
}

.sv-system-node > strong {
  max-width: 13ch;
  color: inherit;
  font-size: 0.68rem;
  line-height: 1.28;
  text-align: center;
}

.sv-system-node:hover,
.sv-system-node:focus-visible,
.sv-system-node.is-active {
  color: #0a0c2e;
  outline: none;
}

.sv-system-node:hover > span,
.sv-system-node:focus-visible > span,
.sv-system-node.is-active > span {
  background: var(--node-accent);
  box-shadow: 0 4px 0 color-mix(in srgb, var(--node-accent) 65%, #0a0c2e), 0 18px 34px color-mix(in srgb, var(--node-accent) 26%, transparent);
  transform: translateY(3px);
}

.sv-system-node:hover::after,
.sv-system-node:focus-visible::after,
.sv-system-node.is-active::after {
  background: var(--node-accent);
  box-shadow: 0 0 12px color-mix(in srgb, var(--node-accent) 55%, transparent);
}

.sv-system-backbone {
  position: absolute;
  left: 7%;
  right: 7%;
  top: 50%;
  z-index: 2;
  height: 1px;
  background: rgba(10, 12, 46, 0.2);
}

.sv-system-backbone i {
  position: absolute;
  top: -3px;
  left: 0;
  width: 7px;
  aspect-ratio: 1;
  background: var(--active-accent);
  box-shadow: 0 0 16px color-mix(in srgb, var(--active-accent) 70%, transparent);
  transform: rotate(45deg);
  animation: sv-backbone-travel 5s ease-in-out infinite;
}

.sv-system-core {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  width: min(430px, 63%);
  padding: 0.95rem 1.1rem;
  border: 1px solid rgba(10, 12, 46, 0.2);
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 16px 38px rgba(10, 12, 46, 0.1);
  color: #0a0c2e;
  transform: translate(-50%, -50%);
}

.sv-system-core > span {
  display: block;
  color: #0e4d6e;
  font-size: 0.68rem;
  font-weight: 950;
  text-align: center;
  text-transform: uppercase;
}

.sv-system-core > div {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 0.7rem;
  border-top: 1px solid rgba(10, 12, 46, 0.12);
}

.sv-system-core b {
  position: relative;
  padding-top: 0.65rem;
  color: #94a3b8;
  font-size: 0.52rem;
  text-align: center;
  text-transform: uppercase;
}

.sv-system-core b::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -3px;
  width: 6px;
  aspect-ratio: 1;
  background: #0d9e9e;
  transform: translateX(-50%) rotate(45deg);
}

@keyframes sv-backbone-travel {
  0%, 100% { left: 0; opacity: 0; }
  12%, 88% { opacity: 1; }
  50% { left: 100%; }
}

@media (max-width: 980px) {
  .sv-page .sv-hero-copy { width: min(64%, 590px); }
  .sv-page .sv-headline { font-size: clamp(3.2rem, 7vw, 5rem); }
  .sv-page .sv-hero-photo img { object-position: 65% center; }
  .sv-page .sv-hero-photo figcaption { display: none; }

  .sv-system-board { grid-template-columns: minmax(250px, 0.34fr) minmax(0, 0.66fr); }
  .sv-system-map { padding-inline: 1rem; }
  .sv-system-node > strong { font-size: 0.58rem; }
}

@media (max-width: 760px) {
  .sv-page .sv-hero { min-height: 900px; }
  .sv-page .sv-hero::after { background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(248, 250, 252, 0.9) 52%, rgba(248, 250, 252, 0.3) 77%, transparent 100%); }
  .sv-page .sv-hero-inner { align-items: flex-start; min-height: 900px; padding-block: 4.4rem 17rem; }
  .sv-page .sv-hero-copy { width: 100%; }
  .sv-page .sv-headline { max-width: 9ch; font-size: clamp(3rem, 13vw, 4.3rem); }
  .sv-page .sv-lede { max-width: 44ch; font-size: 0.9rem; }
  .sv-page .sv-hero-photo img { object-position: 72% bottom; }
  .sv-page .sv-hero-grid { bottom: 190px; }

  .sv-page .sv-hero-index-wrap {
    grid-template-columns: 1fr;
    width: calc(100% - 1rem);
  }
  .sv-page .sv-hero-index-wrap > p { display: none; }
  .sv-page .sv-hero-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-page .sv-hero-service:nth-child(n + 5) { border-bottom: 1px solid rgba(10, 12, 46, 0.1); }
  .sv-page .sv-hero-service:nth-child(2n) { border-right: 0; }
  .sv-page .sv-hero-service:nth-child(n + 7) { border-bottom: 0; }

  .sv-page .sv-bento { padding-block: 6rem; }
  .sv-page .sv-bento .section-heading { grid-template-columns: 1fr; gap: 0.5rem; }
  .sv-page .sv-bento .section-heading h2 { font-size: 2.35rem; }

  .sv-system-board { display: block; }
  .sv-system-readout { min-height: 430px; }
  .sv-system-map { min-height: 690px; }
  .sv-system-nodes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(4, 120px);
    row-gap: 22px;
    min-height: 610px;
    padding: 2rem 0 8rem;
  }
  .sv-system-node::after,
  .sv-system-backbone { display: none; }
  .sv-system-core { top: auto; bottom: 1.5rem; width: calc(100% - 2rem); transform: translateX(-50%); }
}

/* ---------- Services hero: full-image field with a liquid service reel ---------- */

.sv-page .sv-hero {
  min-height: min(830px, calc(100svh - 78px));
  background: #f8fafc;
}

.sv-page .sv-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.68;
  background-image:
    linear-gradient(rgba(13, 158, 158, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 158, 158, 0.09) 1px, transparent 1px);
  background-size: 76px 76px;
  pointer-events: none;
}

.sv-page .sv-hero::after {
  display: none;
}

.sv-page .sv-hero-grid,
.sv-page .sv-hero-index-wrap { display: none; }

.sv-page .sv-hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  min-height: min(830px, calc(100svh - 78px));
  padding-block: clamp(4.5rem, 8vh, 6.5rem);
  z-index: auto;
}

.sv-page .sv-hero-photo {
  left: calc((100vw - 100%) / -2);
  right: auto;
  width: 100vw;
  max-width: none;
  clip-path: none;
  transform: none;
}

.sv-page .sv-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background:
    linear-gradient(90deg, rgba(248, 250, 252, 0.96) 0%, rgba(248, 250, 252, 0.83) 54%, rgba(248, 250, 252, 0.22) 100%),
    linear-gradient(180deg, rgba(248, 250, 252, 0.08) 55%, rgba(248, 250, 252, 0.48) 100%);
  pointer-events: none;
}

.sv-page .sv-hero-photo img {
  object-position: center;
  filter: saturate(0.88) contrast(1.05);
}

.sv-page .sv-hero-photo figcaption { display: none; }

.sv-page .sv-hero-copy {
  width: 100%;
  max-width: 720px;
}

.sv-page .sv-hero .eyebrow,
.sv-page .sv-hero .eyebrow.light { color: #0d9e9e; }

.sv-page .sv-headline {
  display: flex;
  flex-direction: column;
  max-width: 16ch;
  color: #0a0c2e;
  font-size: clamp(3.25rem, 4.7vw, 4.9rem);
  text-wrap: balance;
}

.sv-page .sv-headline .sv-w:not(.sv-grad) { color: #0a0c2e; }
.sv-page .sv-headline .sv-grad { color: #0d9e9e; }

.sv-page .sv-headline .sv-line {
  display: block;
  overflow: visible;
  margin: 0 0 0.08em;
  padding: 0;
  transform: translateY(18px);
  opacity: 1;
  animation: sv-headline-line-in 760ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.sv-page .sv-headline .sv-line:first-child {
  color: #0a0c2e;
  -webkit-text-fill-color: #0a0c2e;
}

.sv-page .sv-headline .sv-line.sv-grad {
  background: none;
  color: #0d9e9e;
  -webkit-background-clip: border-box;
  -webkit-text-fill-color: #0d9e9e;
}

.sv-page .sv-headline .sv-line:nth-child(2) { animation-delay: 120ms; }

@keyframes sv-headline-line-in {
  to { transform: translateY(0); }
}

.sv-page .sv-lede {
  max-width: 570px;
  color: #94a3b8;
}

.sv-page .sv-hero-actions .push-btn.ghost-dark .pb-face {
  border-color: rgba(10, 12, 46, 0.2);
  background: rgba(255, 255, 255, 0.7);
  color: #0a0c2e;
  backdrop-filter: blur(12px);
}

.sv-hero-reel {
  position: relative;
  z-index: 6;
  display: block;
  width: min(100%, 760px);
  height: 124px;
  min-height: 0;
  margin-top: 1.45rem;
  padding: 0.55rem 0;
  overflow: hidden;
  border-top: 1px solid rgba(14, 77, 110, 0.18);
  border-bottom: 1px solid rgba(14, 77, 110, 0.13);
  background: rgba(226, 232, 240, 0.4);
  box-shadow: 0 18px 50px rgba(10, 12, 46, 0.08);
  backdrop-filter: blur(12px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.sv-reel-lane {
  min-width: 0;
  overflow: hidden;
}

.sv-reel-track {
  display: flex;
  flex-direction: row;
  width: max-content;
  will-change: transform;
  animation: sv-reel-flow-horizontal 42s linear infinite;
}

.sv-hero-reel:hover .sv-reel-track,
.sv-hero-reel:focus-within .sv-reel-track { animation-play-state: paused; }

.sv-reel-item {
  position: relative;
  flex: 0 0 150px;
  width: 150px;
  height: 104px;
  margin: 0 11px 0 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  background: #0e4d6e;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.2);
  transform: translateZ(0);
  transition: border-color 260ms ease, box-shadow 260ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-reel-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(4, 20, 36, 0.92) 100%);
  pointer-events: none;
}

.sv-reel-item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(34, 181, 145, 0.34);
  mix-blend-mode: multiply;
  pointer-events: none;
  transition: opacity 300ms ease;
}

.sv-reel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.02);
  transition: filter 320ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sv-reel-item > span {
  position: absolute;
  left: 0.8rem;
  right: 0.8rem;
  bottom: 0.8rem;
  z-index: 2;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  color: #ffffff;
}

.sv-reel-item i {
  display: grid;
  place-items: center;
  width: 30px;
  aspect-ratio: 1;
  border: 1px solid rgba(143, 209, 106, 0.64);
  background: rgba(10, 12, 46, 0.72);
  color: #8fd16a;
  font-size: 0.5rem;
  font-style: normal;
  font-weight: 950;
}

.sv-reel-item strong {
  overflow: hidden;
  font-size: 0.67rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sv-reel-item:hover,
.sv-reel-item:focus-visible {
  z-index: 3;
  border-color: #8fd16a;
  box-shadow: 0 22px 50px rgba(15, 23, 42, 0.34), 0 0 0 1px rgba(143, 209, 106, 0.22);
  outline: none;
  transform: translateY(-4px) scale(1.025);
}

.sv-reel-item:hover::before,
.sv-reel-item:focus-visible::before { opacity: 0.08; }

.sv-reel-item:hover img,
.sv-reel-item:focus-visible img {
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.07);
}

@keyframes sv-reel-flow-horizontal {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (max-width: 980px) {
  .sv-page .sv-hero-inner {
    gap: 0;
  }
  .sv-page .sv-headline { font-size: clamp(3rem, 7vw, 4.8rem); }
  .sv-hero-reel { width: min(100%, 700px); height: 116px; }
  .sv-reel-item { flex-basis: 138px; width: 138px; height: 96px; margin-right: 10px; }
}

@media (max-width: 760px) {
  .sv-page .sv-hero { min-height: 920px; }
  .sv-page .sv-hero::after {
    display: none;
  }
  .sv-page .sv-hero-photo {
    left: calc((100vw - 100%) / -2);
    width: 100%;
    clip-path: none;
  }
  .sv-page .sv-hero-photo::after {
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(248, 250, 252, 0.82) 52%, rgba(248, 250, 252, 0.48) 100%);
  }
  .sv-page .sv-hero-inner {
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    min-height: 920px;
    padding-block: 4.5rem 3rem;
  }
  .sv-page .sv-headline { max-width: 9.5ch; font-size: clamp(3rem, 13vw, 4.25rem); }
  .sv-page .sv-lede { font-size: 0.88rem; }
  .sv-hero-reel {
    width: 100%;
    height: 106px;
    min-height: 0;
    margin-top: 1.25rem;
  }
  .sv-reel-item { flex-basis: 126px; width: 126px; height: 86px; margin-right: 9px; }
  .sv-reel-item strong { font-size: 0.59rem; }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  .sv-page .sv-hero-photo img,
  .sv-system-backbone i,
  .sv-reel-track,
  .sv-page .sv-headline .sv-line {
    animation: none;
  }

  .sv-page .sv-headline .sv-line { opacity: 1; transform: none; }

  .sv-page .sv-hero-service,
  .sv-page .sv-hero-service i,
  .sv-system-node,
  .sv-system-node > span,
  .sv-reel-item,
  .sv-reel-item img {
    transition: none;
  }

  .rhythm-dial::before {
    animation: none;
  }

  .avx-industries-page .rhythm-dial .rhythm-progress,
  .avx-industries-page .rhythm-panel-stage .rhythm-step,
  .avx-industries-page .resource-gateway-panel,
  .avx-industries-page .resource-gateway-panel figure,
  .resource-case-route i::after,
  .resource-paper-stack i {
    transition: none;
  }

  .industries-hero-media img,
  .industries-hero-horizon-track {
    animation: none;
  }

  .avx-industries-page .button,
  .avx-industries-page .button::after,
  .avx-industries-page .industries-hero-horizon a,
  .avx-industries-page .industries-hero-horizon a::after,
  .avx-industries-page .industries-hero-horizon a span,
  .common-trigger-cards .proof-grid div,
  .common-trigger-cards .proof-grid div::before {
    transition: none;
  }

  .sv-hero-grid,
  .sv-hero-aurora::before,
  .sv-hero-aurora::after,
  .svc-hero::before,
  .sv-ticker-track,
  .sv-mini-marquee ul,
  .sv-life-dot,
  .svc-hero-scan {
    animation: none;
  }

  .home-page .hero-copy,
  .home-page .hero-proof,
  .metrology-panel-door,
  .metrology-scan-line,
  .metrology-image-panel img {
    animation: none;
  }

  .home-page .hp-btn-face,
  .home-page .hp-btn-arrow {
    transition: none;
  }

  .home-page [data-reveal] {
    opacity: 1;
    transform: none;
  }

  .sv-headline .sv-w {
    transform: none;
    animation: none;
  }

  .sv-layer {
    transform: none;
    filter: none;
  }

  .sv-layer-copy > :not(.sv-layer-bar),
  .sv-layer-media,
  .sv-layer-bar {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .sv-loop-scroll {
    height: auto;
    min-height: 0;
  }

  .sv-loop-sticky {
    position: static;
    min-height: 0;
  }

  .sv-loop-stage {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-block: 5rem;
  }

  .sv-loop-viewport {
    min-height: 0;
  }

  .sv-loop-deck {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
  }

  .sv-loop-card {
    position: relative;
    inset: auto;
    width: 100%;
    height: 540px;
    opacity: 1;
    filter: none;
    pointer-events: auto;
    transform: none;
  }

  .sv-loop-nav,
  .sv-loop-progress,
  .sv-loop-status {
    display: none;
  }

  .svc-media-layer,
  .svc-chapter,
  .svc-scrolly,
  .svc-deck-card,
  .push-btn .pb-face,
  .sv-tile,
  .sv-ind-tile,
  .svc-related-tile,
  .svc-hero-media {
    transition: none;
  }

  .svc-capabilities .capability-panel.is-active .capability-chip-grid span {
    animation: none;
  }

  .avx-page .service-match-icon svg {
    animation: none;
    transform: none;
  }

  .challenge-scroll-stage {
    height: auto;
    min-height: auto;
  }

  .challenge-scroll-sticky {
    position: static;
    min-height: auto;
  }

  .challenge-layer,
  .challenge-upright-card,
  .challenge-panel,
  .challenge-step {
    transition: none;
  }

  .challenge-visual {
    min-height: auto;
  }

  .challenge-layer,
  .challenge-data-cubes,
  .challenge-controls {
    display: none;
  }

  .challenge-stack-visual {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    transform: none;
  }

  .challenge-upright-card {
    position: relative;
    inset: auto;
    width: min(100%, 620px);
    height: 500px;
    min-height: 500px;
    margin: 2rem auto;
    opacity: 1;
    transform: none;
  }

  .challenge-card-content {
    opacity: 1;
    transform: none;
  }

  .lifecycle-scroll-stage {
    height: auto;
    min-height: auto;
  }

  .lifecycle-sticky {
    position: static;
    display: block;
    min-height: auto;
    padding-block: 4rem;
  }

  .lifecycle-nav,
  .lifecycle-carrier {
    display: none;
  }

  .lifecycle-visual {
    min-height: auto;
    margin-top: 2.25rem;
  }

  .lifecycle-scene .industry-phase-lane {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .avx-page .lifecycle-scene .lifecycle-card {
    position: relative;
    inset: auto;
    width: auto;
    height: auto;
    min-height: 280px;
    opacity: 1;
    transform: none;
  }

  @media (max-width: 640px) {
    .lifecycle-scene .industry-phase-lane {
      grid-template-columns: 1fr;
    }

    .sv-loop-deck {
      grid-template-columns: 1fr;
    }
  }

  .sv-page [data-reveal],
  .svc-page [data-reveal] {
    opacity: 1;
    transform: none;
  }
}

/* ---------- Figma landing page (frame 1:2) ---------- */

.figma-home-body {
  margin: 0;
  background: var(--surface);
  font-family: "Inter", "DM Sans", Arial, sans-serif;
}

.figma-home-body main {
  overflow: hidden;
}

body.figma-home-body .figma-home-header {
  position: relative;
  height: 77px;
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  box-shadow: none;
  backdrop-filter: none;
}

.figma-home-header .nav-shell {
  width: 100%;
  max-width: none;
  min-height: 77px;
  padding: 0 124px 0 159px;
  grid-template-columns: 161px 1fr 172px;
  gap: 72px;
}

.figma-home-header .brand img {
  width: 161px;
}

.figma-home-header .primary-nav {
  gap: 38px;
  justify-content: center;
}

.figma-home-header .primary-nav a {
  padding: 0;
  border: 0;
  color: #0a0c2e;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.figma-home-header .primary-nav a:hover,
.figma-home-header .primary-nav a:focus-visible {
  color: #0d9e9e;
}

body.figma-home-body .figma-home-header .nav-cta {
  width: 172px;
  min-height: 48px;
  padding: 12px 18px;
  border: 0;
  border-radius: 8px;
  background: #0f172a;
  box-shadow: none;
  color: #ffffff;
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  white-space: nowrap;
}

body.figma-home-body .figma-home-header .nav-cta::before {
  display: none;
}

body.figma-home-body .figma-home-header .nav-cta:hover,
body.figma-home-body .figma-home-header .nav-cta:focus-visible {
  transform: none;
  background: #0a0c2e;
  box-shadow: none;
}

.figma-home {
  width: 100%;
  background: var(--surface);
  color: #0a0c2e;
  font-family: "Inter", "DM Sans", Arial, sans-serif;
}

.figma-home h1,
.figma-home h2,
.figma-home h3,
.figma-home p {
  margin-top: 0;
  font-family: "Inter", "DM Sans", Arial, sans-serif;
  letter-spacing: 0;
}

.figma-home a {
  text-decoration: none;
}

.fh-hero {
  height: 597px;
  overflow: hidden;
  background: var(--navy);
}

.fh-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fh-logo-strip {
  height: 148px;
  overflow: hidden;
  background: var(--surface-2);
}

.fh-logo-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fh-inner {
  width: min(1240px, calc(100% - 40px));
  margin: 0 auto;
}

.fh-industries {
  height: 998px;
  padding-top: 68px;
  background: var(--surface);
}

.fh-section-title p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
  color: #0d9e9e;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
}

.fh-section-title p span {
  display: block;
  width: 32px;
  height: 1px;
  background: currentColor;
}

.figma-home .fh-section-title h1,
.figma-home .fh-section-title h2 {
  margin: 0;
  color: #8fd16a;
  font-size: 26px;
  font-weight: 700;
  line-height: 30px;
}

.fh-industry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px 16px;
  margin-top: 48px;
}

.fh-industry-card {
  position: relative;
  display: block;
  min-width: 0;
  height: 346px;
  padding: 32px;
  overflow: hidden;
  border-radius: 20px;
  color: #0f172a;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.fh-industry-card:nth-child(n+4) {
  height: 374px;
}

.fh-industry-card:hover,
.fh-industry-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 18px 42px rgba(10, 12, 46, 0.12);
}

.fh-card-icon {
  position: relative;
  z-index: 3;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
}

.fh-card-icon img {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.fh-card-watermark {
  position: absolute;
  z-index: 1;
  top: 20px;
  right: 20px;
  width: 96px;
  height: 96px;
  object-fit: contain;
  opacity: 0.13;
}

.fh-card-copy {
  position: relative;
  z-index: 3;
  margin-top: 0;
}

.fh-card-copy .fh-card-kicker {
  margin: 0;
  padding-top: 27px;
  padding-bottom: 10px;
  color: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 16.5px;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.figma-home .fh-card-copy h2 {
  margin: 0;
  color: inherit;
  font-size: 22px;
  font-weight: 700;
  line-height: 27.5px;
}

.fh-card-copy > p:last-child {
  margin: 14px 0 0;
  color: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 23.1px;
}

.fh-card-link {
  position: absolute;
  z-index: 3;
  left: 32px;
  bottom: 32px;
  color: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 21px;
  opacity: 0.88;
}

.fh-card-link b {
  font-weight: 400;
}

.fh-pharma {
  background: #2d2c49;
  color: #ffffff;
}

.fh-pharma-photo,
.fh-pharma-shade {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 227px;
}

.fh-pharma-photo {
  object-fit: cover;
}

.fh-pharma-shade {
  z-index: 1;
  height: 100%;
  background: linear-gradient(180deg, rgba(1, 1, 30, 0.76) 0%, rgba(1, 1, 30, 0.68) 60%, rgba(45, 44, 73, 0.94) 76%, #2d2c49 100%);
}

.fh-pharma .fh-card-icon {
  background: rgba(255, 255, 255, 0.35);
}

.fh-pharma .fh-card-kicker,
.fh-pharma .fh-card-copy > p:last-child {
  color: #8fd16a;
}

.fh-biotech {
  background: #0d1f3c;
  color: #04c9a8;
}

.fh-biotech .fh-card-icon {
  background: rgba(4, 201, 168, 0.18);
}

.fh-biotech .fh-card-copy h2 {
  color: #ffffff;
}

.fh-medical {
  background: #d9f1f3;
  color: #0a1628;
}

.fh-medical .fh-card-icon {
  background: rgba(10, 107, 85, 0.1);
}

.fh-medical .fh-card-kicker {
  color: #0a6b55;
}

.fh-medical .fh-card-copy > p:last-child {
  color: #64748b;
}

.fh-environment {
  background: #f0f5ff;
  color: #0a1628;
}

.fh-environment .fh-card-icon {
  background: rgba(180, 83, 9, 0.1);
}

.fh-environment .fh-card-kicker {
  color: #b45309;
}

.fh-environment .fh-card-copy > p:last-child {
  color: #64748b;
}

.fh-animal {
  background: #0d9e9e;
  color: #ffffff;
}

.fh-animal .fh-card-icon {
  background: rgba(255, 255, 255, 0.18);
}

.fh-animal .fh-card-kicker {
  color: #277eff;
}

.fh-animal .fh-card-copy > p:last-child {
  color: rgba(255, 255, 255, 0.85);
}

.fh-epc {
  background: #8fd16a;
  color: #ffffff;
}

.fh-epc .fh-card-icon {
  background: rgba(255, 255, 255, 0.18);
}

.fh-epc .fh-card-kicker,
.fh-epc .fh-card-copy > p:last-child {
  color: #f5f4f6;
}

.fh-services {
  height: 786px;
  background: #ffffff;
}

.fh-services-inner {
  position: relative;
  width: min(1086px, calc(100% - 40px));
  height: 100%;
  margin: 0 auto;
}

.fh-services-title {
  position: absolute;
  top: 88px;
  left: 5px;
}

.fh-services-title p {
  margin-bottom: 16px;
}

.fh-services-copy {
  position: absolute;
  top: 180px;
  left: 0;
  width: 480px;
}

.figma-home .fh-services-copy h3 {
  margin: 48px 0 32px;
  color: #111111;
  font-size: 50px;
  font-weight: 700;
  line-height: 57px;
}

.fh-services-copy p {
  margin: 0 0 40px;
  color: #7a7a7a;
  font-size: 16px;
  line-height: 26px;
}

.fh-services-copy > a {
  display: inline-flex;
  min-width: 137px;
  min-height: 47px;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  background: #1b1b1b;
  color: #ffffff;
  font-size: 16px;
  font-weight: 500;
}

.fh-service-card {
  position: absolute;
  z-index: 1;
  top: 172px;
  right: -14px;
  width: 577px;
  height: 536px;
}

.fh-stack-edge {
  position: absolute;
  top: 0;
  left: 0;
  width: 520px;
  height: 520px;
  border: 13px solid transparent;
  border-right: 0;
  border-bottom: 0;
  border-radius: 28px 0 0;
  background: linear-gradient(90deg, #f4baf3, rgba(244, 186, 243, 0)) border-box;
  -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.fh-stack-edge.edge-one { transform: translate(0, -66px); }
.fh-stack-edge.edge-two { transform: translate(-18px, -34px); }
.fh-stack-edge.edge-three { transform: translate(-36px, -3px); }

.fh-service-card-body {
  position: absolute;
  z-index: 4;
  inset: 0;
  padding: 50px 52px;
  border-left: 13px solid #c2b8ff;
  background: #ffffff;
  overflow: hidden;
}

.figma-home .fh-service-card-body h3 {
  margin: 0 0 76px;
  color: #1b1b1b;
  font-size: 29px;
  font-weight: 400;
  line-height: 36px;
}

.fh-service-card-body > img {
  position: absolute;
  top: 47px;
  right: 72px;
  width: 73px;
  height: 73px;
  object-fit: contain;
}

.fh-service-card-body p {
  max-width: 386px;
  margin: 0 0 24px;
  color: #4b4b4b;
  font-size: 13px;
  line-height: 25px;
  text-align: justify;
}

.fh-service-card-body > a {
  position: absolute;
  top: 166px;
  right: 18px;
  color: #0d9e9e;
  font-size: 20px;
}

.fh-leadership {
  position: relative;
  height: 776px;
  overflow: hidden;
  background-color: #0e4d6e4d;
  /*background: linear-gradient(180deg, rgba(14, 77, 110, 0.06), var(--surface) 55%) , url("../images/figma-home/leadership-bg.svg") center / cover no-repeat;*/
}

.fh-leadership-inner {
  position: relative;
  width: min(1206px, calc(100% - 40px));
  height: 100%;
  margin: 0 auto;
  padding-top: 64px;
}

.fh-leadership-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.fh-leadership-heading .fh-section-title p {
  color: #8aa0ba;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
}

.fh-leadership-heading .fh-section-title p span {
  width: 36px;
  height: 1.5px;
  background: #0a1628;
}

.figma-home .fh-leadership-heading .fh-section-title h2 {
  color: #0d2b1e;
  font-size: 26px;
  line-height: 43px;
}

.fh-leadership-heading > a {
  margin: 0 0 5px;
  color: #006c49;
  font-size: 14px;
  font-weight: 500;
}

.fh-leadership-heading > a span {
  margin-left: 8px;
  font-size: 17px;
}

.fh-leader-card {
  position: absolute;
  top: 210px;
  left: 50%;
  display: grid;
  width: 1024px;
  height: 451px;
  grid-template-columns: 340px 684px;
  overflow: hidden;
  border-radius: 16px;
  background: #ffffff;
  transform: translateX(-50%);
}

.fh-leader-photo {
  position: relative;
  height: 451px;
  overflow: hidden;
}

.fh-leader-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fh-leader-number {
  position: absolute;
  top: 12px;
  left: 16px;
  color: #1a7a4a;
  font-family: "DM Sans", sans-serif;
  font-size: 80px;
  font-weight: 700;
  line-height: 80px;
  opacity: 0.1;
}

.fh-leader-photo blockquote {
  position: absolute;
  right: 16px;
  bottom: 20px;
  left: 16px;
  margin: 0;
  padding: 12px 16px;
  border-radius: 10px;
  background: #ffffff;
  color: #6b7f74;
  font-size: 11px;
  line-height: 18px;
}

.fh-leader-photo blockquote b {
  margin-right: 7px;
  color: #1a7a4a;
  font-size: 18px;
}

.fh-leader-copy {
  padding: 40px 48px 0;
}

.fh-leader-school {
  margin: 0 0 18px;
  color: #6b7f74;
  font-size: 11px;
  font-weight: 600;
  line-height: 15px;
  text-transform: uppercase;
  letter-spacing: 1.1px;
}

.figma-home .fh-leader-copy h3 {
  margin: 0;
  color: #0d2b1e;
  font-size: 38px;
  font-weight: 700;
  line-height: 48px;
}

.fh-leader-role {
  margin: 0;
  color: #1a7a4a;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 23px;
}

.fh-leader-bio {
  margin: 18px 0 24px;
  color: #6b7f74;
  font-size: 13px;
  line-height: 21px;
}

.fh-leader-strengths {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.fh-leader-strengths > div {
  display: flex;
  gap: 12px;
}

.fh-leader-strengths > div > span {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  background: #e8f5ed;
  color: #1a7a4a;
  font-size: 15px;
  font-weight: 700;
}

.fh-leader-strengths p {
  margin: 0;
  color: #6b7f74;
  font-size: 11px;
  line-height: 17px;
}

.fh-leader-strengths strong {
  display: block;
  margin-bottom: 2px;
  color: #0d2b1e;
  font-size: 12px;
  line-height: 18px;
}

.fh-leader-stats {
  display: flex;
  gap: 58px;
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px solid #d8e1dc;
}

.fh-leader-stats span,
.fh-leader-stats strong {
  display: block;
}

.fh-leader-stats span {
  margin-bottom: 4px;
  color: #6b7f74;
  font-size: 10px;
  font-weight: 600;
  line-height: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.fh-leader-stats strong {
  color: #0d2b1e;
  font-family: "DM Sans", sans-serif;
  font-size: 24px;
  line-height: 32px;
}

.fh-leader-next {
  position: absolute;
  top: 424px;
  right: 37px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  background: #ffffff;
  color: #111111;
  font-size: 35px;
  line-height: 1;
}

.fh-careers {
  position: relative;
  height: 1032px;
  overflow: hidden;
  background: linear-gradient(163deg, rgba(61, 187, 142, 0.1) 0%, var(--surface) 55%, rgba(143, 209, 106, 0.14) 100%);
}

.fh-careers-rings,
.fh-careers-rings::before {
  position: absolute;
  left: 50%;
  width: 800px;
  height: 800px;
  border: 1px solid rgba(27, 111, 219, 0.1);
  border-radius: 50%;
  content: "";
  transform: translateX(-50%);
}

.fh-careers-rings {
  top: -180px;
}

.fh-careers-rings::before {
  top: 110px;
  width: 560px;
  height: 560px;
}

.fh-careers-copy {
  position: relative;
  z-index: 2;
  padding-top: 64px;
  text-align: center;
}

.fh-hiring {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 28px;
  padding: 7px 15px;
  border: 1px solid rgba(27, 111, 219, 0.16);
  border-radius: 999px;
  background: rgba(27, 111, 219, 0.07);
  color: #1b6fdb;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 1.1px;
}

.fh-hiring span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #1b6fdb;
}

.figma-home .fh-careers-copy h2 {
  margin: 0 0 24px;
  color: #06122b;
  font-size: 72px;
  font-weight: 700;
  line-height: 72px;
}

.fh-careers-copy > p:not(.fh-hiring) {
  max-width: 520px;
  margin-right: auto;
  margin-left: auto;
  color: #4e6080;
  font-size: 16px;
  line-height: 28px;
}

.fh-career-benefits {
  display: flex;
  flex-direction: column;
  max-width: 480px;
  margin-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.fh-career-benefits a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 2px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  text-decoration: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13.5px;
  transition: padding-left .2s ease, color .2s ease;
}
.fh-career-benefits a b {
  font-weight: 700;
  color: #fff;
  transition: color .2s ease;
}
.fh-career-benefits a:hover {
  padding-left: 8px;
  color: var(--lime);
}
.fh-career-benefits a:hover b {
  color: var(--lime);
}
.fh-career-loc {
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
  font-size: 12px;
  margin-left: 8px;
}
.fh-career-arrow {
  color: rgba(255, 255, 255, 0.65);
  font-size: 14px;
  flex: 0 0 auto;
}

.fh-career-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 40px;
}

.fh-career-actions a {
  display: inline-flex;
  min-width: 137px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 12px 28px;
  border: 1px solid rgba(27, 111, 219, 0.18);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  color: #173263;
  font-size: 13px;
  font-weight: 600;
}

.fh-career-actions a.primary {
  min-width: 187px;
  border-color: #0e162a;
  background: #0e162a;
  box-shadow: 0 10px 24px rgba(27, 111, 219, 0.16);
  color: #ffffff;
}

.fh-career-gallery {
  position: absolute;
  z-index: 3;
  right: 96px;
  bottom: 0;
  left: 96px;
  display: grid;
  grid-template-columns: 340px 1fr 320px;
  gap: 16px;
  align-items: end;
}

.fh-career-gallery > img,
.fh-career-team-photo {
  overflow: hidden;
  border-radius: 20px 20px 0 0;
}

.fh-career-gallery > img {
  width: 100%;
  height: 320px;
  object-fit: cover;
}

.fh-career-team-photo {
  position: relative;
  height: 260px;
}

.fh-career-team-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fh-open-roles {
  position: absolute;
  z-index: 2;
  top: -20px;
  left: 20px;
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 13px 17px;
  border: 1px solid rgba(27, 111, 219, 0.13);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.fh-open-roles > span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: rgba(27, 111, 219, 0.1);
  color: #1b6fdb;
}

.fh-open-roles p,
.fh-open-roles strong {
  display: block;
  margin: 0;
}

.fh-open-roles p {
  color: #7181a0;
  font-size: 11px;
  line-height: 15px;
}

.fh-open-roles strong {
  color: #0d1b38;
  font-size: 13px;
  line-height: 18px;
}

.fh-ticker {
  height: 57px;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: #0e162a;
  color: rgba(255, 255, 255, 0.82);
}

.fh-ticker-track {
  display: flex;
  width: max-content;
  height: 100%;
  align-items: center;
  gap: 28px;
  animation: fh-marquee 32s linear infinite;
}

.fh-ticker span {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.fh-ticker i {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  background: #287eff;
  transform: rotate(45deg);
}

@keyframes fh-marquee {
  to { transform: translateX(-50%); }
}

.fh-footer {
  position: relative;
  height: 579px;
  overflow: hidden;
  background: #101c35;
  color: #ffffff;
  font-family: "Inter", sans-serif;
}

.fh-footer-ghost {
  position: absolute;
  top: -18px;
  left: -4px;
  color: rgba(255, 255, 255, 0.07);
  font-size: 300px;
  font-weight: 700;
  line-height: 1;
}

.fh-footer-main {
  position: relative;
  z-index: 2;
  display: grid;
  width: calc(100% - 164px);
  margin: 0 auto;
  padding-top: 185px;
  grid-template-columns: 1fr 1.25fr 140px;
  gap: 80px;
}

/* index.html only - identified by the unique .index-page marker on <body>,
   NOT .figma-home-body (that class is shared by 13+ other pages too, which
   was the actual bug: every Services/Industries detail page was incorrectly
   getting the homepage's larger spacing, overflowing the footer's fixed
   height and crowding the nav links into the bottom bar). */
.index-page .fh-footer-main {
  padding-top: 290px;
}

/* Site-wide - header is no longer sticky (base rule above is now
   position:static everywhere), and the "is-scrolled" effect (shrinks
   header height and logo once scrollY > 14px) was designed for when the
   header stays pinned at the top so it visibly compacts while stuck
   there. Now that the header scrolls away normally on every page, that
   shrink still fires from the scroll listener and is visible as a
   size-reduction flicker in the instant before the header scrolls out of
   view. Neutralized here so the header never shrinks anywhere on the
   site - it just scrolls away at its normal size. */
.site-header.is-scrolled,
.site-header.is-scrolled .nav-shell {
  min-height: 77px !important;
}

.site-header.is-scrolled .brand img {
  width: 161px !important;
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.95) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}

.fh-footer-brand img {
  width: 192px;
  height: auto;
  filter: brightness(0) invert(1);
}

.fh-footer-brand p {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  line-height: 21px;
}

.fh-footer-statement h2 {
  margin: 0 0 22px;
  color: #ffffff;
  font-size: 40px;
  font-weight: 700;
  line-height: 50px;
}

.fh-footer-statement a {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  font-weight: 600;
}

.fh-footer-statement a span {
  margin-left: 8px;
  font-size: 18px;
}

.fh-footer-nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 4px;
}

.fh-footer-nav a {
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  font-weight: 500;
}

.fh-footer-bottom {
  position: absolute;
  right: 82px;
  bottom: 26px;
  left: 82px;
  display: flex;
  justify-content: space-between;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.35);
  font-size: 11px;
  line-height: 15px;
}

.fh-footer-bottom div {
  display: flex;
  gap: 28px;
}

@media (max-width: 1180px) {
  .figma-home-header .nav-shell {
    padding: 0 28px;
    grid-template-columns: 161px 1fr 172px;
    gap: 28px;
  }

  .figma-home-header .primary-nav {
    gap: 22px;
  }

  .fh-career-gallery {
    right: 40px;
    left: 40px;
    grid-template-columns: minmax(220px, 0.8fr) 1.3fr minmax(220px, 0.8fr);
  }
}

@media (max-width: 980px) {
  .figma-home-body .figma-home-header {
    height: 72px;
  }

  .figma-home-header .nav-shell {
    min-height: 72px;
    grid-template-columns: 1fr auto;
  }

  .figma-home-header .brand img {
    width: 150px;
  }

  body.figma-home-body .figma-home-header .nav-toggle {
    display: block;
    grid-column: 2;
    grid-row: 1;
    border-color: #e2e8f0;
    background: #ffffff;
  }

  .figma-home-header .primary-nav {
    position: absolute;
    z-index: 20;
    top: 72px;
    right: 20px;
    left: 20px;
    display: none;
    flex-direction: column;
    gap: 0;
    padding: 16px 20px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(10, 12, 46, 0.14);
  }

  .figma-home-header .primary-nav.is-open {
    display: flex;
  }

  .figma-home-header .primary-nav a {
    padding: 11px 0;
  }

  .figma-home-header .nav-cta {
    display: none;
  }

  .fh-industries {
    height: auto;
    padding: 64px 0;
  }

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

  .fh-industry-card,
  .fh-industry-card:nth-child(n+4) {
    height: 374px;
  }

  .fh-services {
    height: auto;
    padding: 72px 0;
  }

  .fh-services-inner {
    display: grid;
    height: auto;
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .fh-services-title,
  .fh-services-copy,
  .fh-service-card {
    position: relative;
    inset: auto;
    width: 100%;
  }

  .fh-services-copy {
    top: auto;
  }

  .figma-home .fh-services-copy h3 {
    margin-top: 16px;
  }

  .fh-service-card {
    max-width: 577px;
    margin: 52px auto 0;
  }

  .fh-leadership {
    height: auto;
    padding-bottom: 72px;
  }

  .fh-leadership-inner {
    padding-top: 64px;
  }

  .fh-leader-card {
    position: relative;
    top: auto;
    left: auto;
    width: min(100%, 700px);
    height: auto;
    margin: 64px auto 0;
    grid-template-columns: 1fr;
    transform: none;
  }

  .fh-leader-photo {
    height: 520px;
  }

  .fh-leader-copy {
    padding: 42px 38px 48px;
  }

  .fh-leader-next {
    display: none;
  }

  .fh-careers {
    height: auto;
    padding-bottom: 0;
  }

  .figma-home .fh-careers-copy h2 {
    font-size: 58px;
    line-height: 60px;
  }

  .fh-career-gallery {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    width: calc(100% - 40px);
    margin: 96px auto 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .fh-career-gallery > img {
    height: 280px;
  }

  .fh-career-team-photo {
    height: 240px;
  }

  .fh-footer {
    height: auto;
    min-height: 650px;
  }

  .fh-footer-main {
    width: calc(100% - 80px);
    padding: 280px 0 120px;
    grid-template-columns: 1fr 1fr;
  }

  .fh-footer-nav {
    display: none;
  }
}

@media (max-width: 640px) {
  .figma-home-header .nav-shell {
    padding: 0 20px;
  }

  .fh-hero {
    height: 340px;
  }

  .fh-hero img {
    object-position: 36% center;
  }

  .fh-logo-strip {
    height: 96px;
  }

  .fh-logo-strip img {
    width: auto;
    max-width: none;
    object-fit: cover;
  }

  .fh-inner,
  .fh-services-inner,
  .fh-leadership-inner {
    width: calc(100% - 32px);
  }

  .figma-home .fh-section-title h1,
  .figma-home .fh-section-title h2 {
    font-size: 30px;
    line-height: 38px;
  }

  .fh-industry-grid {
    grid-template-columns: 1fr;
    margin-top: 36px;
  }

  .fh-industry-card,
  .fh-industry-card:nth-child(n+4) {
    height: 374px;
    padding: 28px;
  }

  .fh-card-link {
    left: 28px;
    bottom: 28px;
  }

  .figma-home .fh-services-copy h3 {
    font-size: 42px;
    line-height: 48px;
  }

  .fh-service-card {
    height: 540px;
  }

  .fh-service-card-body {
    padding: 42px 30px;
  }

  .fh-service-card-body > img {
    top: 34px;
    right: 28px;
    width: 58px;
    height: 58px;
  }

  .figma-home .fh-service-card-body h3 {
    max-width: 210px;
    font-size: 25px;
  }

  .fh-service-card-body p {
    text-align: left;
  }

  .fh-leadership-heading {
    align-items: flex-start;
    gap: 24px;
  }

  .fh-leadership-heading > a {
    display: none;
  }

  .fh-leader-photo {
    height: 420px;
  }

  .fh-leader-copy {
    padding: 36px 24px 42px;
  }

  .figma-home .fh-leader-copy h3 {
    font-size: 31px;
    line-height: 40px;
  }

  .fh-leader-bio br,
  .fh-leader-strengths br,
  .fh-leader-photo blockquote br {
    display: none;
  }

  .fh-leader-strengths {
    grid-template-columns: 1fr;
  }

  .fh-careers-copy {
    padding: 64px 20px 0;
  }

  .figma-home .fh-careers-copy h2 {
    font-size: 38px;
    line-height: 42px;
  }

  .fh-careers-copy > p:not(.fh-hiring) br {
    display: none;
  }

  .fh-career-benefits {
    align-items: center;
    flex-direction: column;
  }

  .fh-career-actions {
    align-items: center;
    flex-direction: column;
  }

  .fh-career-actions a,
  .fh-career-actions a.primary {
    width: min(100%, 260px);
  }

  .fh-career-gallery {
    margin-top: 72px;
    grid-template-columns: 1fr;
  }

  .fh-career-gallery > img,
  .fh-career-team-photo {
    height: 300px;
    border-radius: 16px;
  }

  .fh-career-team-photo {
    order: -1;
  }

  .fh-footer {
    min-height: 720px;
  }

  .fh-footer-ghost {
    top: 20px;
    font-size: 150px;
  }

  .fh-footer-main {
    width: calc(100% - 40px);
    padding: 220px 0 130px;
    grid-template-columns: 1fr;
    gap: 56px;
  }

  .fh-footer-statement h2 {
    font-size: 30px;
    line-height: 39px;
  }

  .fh-footer-brand p br,
  .fh-services-copy p br {
    display: none;
  }

  .fh-footer-bottom {
    right: 20px;
    bottom: 24px;
    left: 20px;
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }

  .fh-footer-bottom div {
    flex-wrap: wrap;
    gap: 12px 20px;
  }
}

/* ---------- Figma identity: sitewide typography and brand marks ---------- */

:root {
  --site-font: "Inter", "DM Sans", Arial, sans-serif;
  --site-heading: #0a0c2e;
  --site-label: #0d9e9e;
}

body,
button,
input,
select,
textarea {
  font-family: var(--site-font);
}

body *,
body *::before,
body *::after {
  letter-spacing: 0;
}

.brand img {
  width: 161px;
  height: 37px;
  object-fit: contain;
}

.footer2-brand img {
  width: 189px;
  height: 43px;
  object-fit: contain;
}

.fh-footer-brand img {
  width: 189px;
  height: 43px;
  object-fit: contain;
  filter: none;
}

body:not(.figma-home-body) main h1,
body:not(.figma-home-body) main h2,
body:not(.figma-home-body) main h3,
body:not(.figma-home-body) .footer2 h2 {
  font-family: var(--site-font);
  font-weight: 700;
  letter-spacing: 0;
}

body:not(.figma-home-body) main h1 {
  font-size: 72px;
  line-height: 1;
  text-wrap: balance;
}

body:not(.figma-home-body) main .section-heading h2,
body:not(.figma-home-body) main .industry-selector-heading h2,
body:not(.figma-home-body) main .resource-gateway-heading h2,
body:not(.figma-home-body) main .sv-stack-head h2 {
  color: var(--site-heading);
  font-size: 36px;
  font-weight: 700;
  line-height: 45px;
  text-wrap: balance;
}

body:not(.figma-home-body) main h3 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
}

body:not(.figma-home-body) main .eyebrow {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 12px;
  color: var(--site-label);
  font-family: var(--site-font);
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 0;
}

body:not(.figma-home-body) main .eyebrow::before {
  display: block;
  width: 32px;
  height: 1px;
  flex: 0 0 auto;
  background: currentColor;
  content: "";
}

body:not(.figma-home-body) main .section-heading .eyebrow {
  margin-right: auto;
  margin-left: auto;
}

body:not(.figma-home-body) .footer2 {
  font-family: var(--site-font);
}

@media (max-width: 980px) {
  body:not(.figma-home-body) main h1 {
    font-size: 54px;
  }
}

@media (max-width: 640px) {
  .brand img {
    width: 150px;
    height: auto;
  }

  body:not(.figma-home-body) main h1 {
    font-size: 40px;
    line-height: 1.05;
  }

  body:not(.figma-home-body) main .section-heading h2,
  body:not(.figma-home-body) main .industry-selector-heading h2,
  body:not(.figma-home-body) main .resource-gateway-heading h2,
  body:not(.figma-home-body) main .sv-stack-head h2 {
    font-size: 30px;
    line-height: 38px;
  }
}

/* ---------- Cohesive shell and homepage interaction pass ---------- */

.site-body {
  overflow-x: clip;
}

.figma-home-body main {
  overflow: visible;
}

.site-body .figma-home-header {
  position: relative;
  top: auto;
  height: 77px;
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  box-shadow: none;
  backdrop-filter: none;
}

.site-body .figma-home-header .nav-cta {
  width: 151px;
  min-height: 48px;
  padding: 12px 18px;
  border: 0;
  border-radius: 8px;
  background: #0f172a;
  box-shadow: none;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}

.site-body .figma-home-header .nav-cta::before {
  display: none;
}

.site-body .figma-home-header .nav-cta:hover,
.site-body .figma-home-header .nav-cta:focus-visible {
  transform: none;
  background: #0a0c2e;
  box-shadow: none;
}

.figma-home-header .primary-nav a {
  position: relative;
}

.figma-home-header .primary-nav a[aria-current="page"] {
  border: 0;
  color: #0d9e9e;
}

.figma-home-header .primary-nav a[aria-current="page"]::after {
  position: absolute;
  right: 0;
  bottom: -12px;
  left: 0;
  height: 2px;
  background: #0d9e9e;
  content: "";
}

.fh-hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fh-logo-marquee,
.fh-logo-marquee ul {
  height: 100%;
}

.fh-logo-marquee {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.fh-logo-marquee ul {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 68px;
  margin: 0;
  padding: 0 34px;
  list-style: none;
  animation: fh-client-marquee 34s linear infinite;
  will-change: transform;
}

.fh-logo-marquee li {
  display: grid;
  width: 128px;
  height: 108px;
  flex: 0 0 128px;
  place-items: center;
}

.fh-logo-marquee img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none;
  opacity: 1;
}

.fh-logo-marquee:hover ul {
  animation-play-state: paused;
}

@keyframes fh-client-marquee {
  to { transform: translateX(-33.3333%); }
}

.fh-industries {
  height: auto;
  padding: 68px 0 72px;
}

.fh-industry-card,
.fh-industry-card:nth-child(n+4) {
  height: 350px;
  padding: 0;
  border-radius: 4px;
  background: #0a0c2e;
  box-shadow: none;
  isolation: isolate;
}

.fh-card-photo,
.fh-card-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fh-card-photo {
  z-index: -2;
  object-fit: cover;
  transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fh-card-shade {
  z-index: -1;
  background: rgba(4, 12, 25, 0.12);
  transition: background 360ms ease;
}

.fh-card-title {
  position: absolute;
  right: 24px;
  bottom: 26px;
  left: 24px;
  display: flex;
  min-height: 84px;
  flex-direction: column;
  justify-content: center;
  padding: 15px 24px 17px;
  border-bottom: 7px solid #8fd16a;
  background: rgba(32, 39, 48, 0.94);
  color: #ffffff;
  transition: opacity 260ms ease, transform 360ms ease;
}

.fh-card-title small,
.fh-card-reveal small {
  color: #8fd16a;
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  text-transform: uppercase;
}

.fh-card-title strong {
  margin-top: 3px;
  font-size: 18px;
  line-height: 23px;
}

.fh-card-reveal {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 38px;
  color: #ffffff;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 320ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fh-card-reveal strong {
  max-width: 14ch;
  margin-top: 8px;
  font-size: 27px;
  line-height: 32px;
}

.fh-card-reveal > span {
  max-width: 31ch;
  margin-top: 13px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 21px;
}

.fh-card-reveal b {
  margin-top: 24px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.fh-card-reveal i {
  margin-left: 6px;
  font-style: normal;
}

.fh-industry-card:hover,
.fh-industry-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 20px 44px rgba(10, 12, 46, 0.16);
}

.fh-industry-card:hover .fh-card-photo,
.fh-industry-card:focus-visible .fh-card-photo {
  transform: scale(1.055);
}

.fh-industry-card:hover .fh-card-shade,
.fh-industry-card:focus-visible .fh-card-shade {
  background: rgba(4, 12, 25, 0.76);
}

.fh-industry-card:hover .fh-card-title,
.fh-industry-card:focus-visible .fh-card-title {
  opacity: 0;
  transform: translateY(12px);
}

.fh-industry-card:hover .fh-card-reveal,
.fh-industry-card:focus-visible .fh-card-reveal {
  opacity: 1;
  transform: none;
}

.fh-services-scene {
  position: relative;
  height: calc(100vh + (var(--home-service-count, 6) * 56vh));
  min-height: 3300px;
  background: #ffffff;
}

.fh-services-scroll {
  height: 100%;
}

.fh-services-sticky {
  position: sticky;
  top: 0;
  display: grid;
  width: min(1200px, calc(100% - 64px));
  min-height: 100vh;
  margin: 0 auto;
  padding: 72px 0;
  grid-template-columns: minmax(290px, 0.78fr) minmax(480px, 1.22fr);
  gap: clamp(48px, 7vw, 104px);
  align-items: center;
}

.fh-services-intro > h3 {
  max-width: 12ch;
  margin: 46px 0 22px;
  color: #0a0c2e;
  font-size: 45px;
  font-weight: 700;
  line-height: 50px;
}

.fh-services-intro > p {
  max-width: 43ch;
  margin: 0;
  color: #667085;
  font-size: 15px;
  line-height: 25px;
}

.fh-services-intro > a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
  color: #0d9e9e;
  font-size: 14px;
  font-weight: 700;
}

.fh-services-nav {
  display: grid;
  gap: 4px;
  margin-top: 34px;
}

.fh-services-nav button {
  display: grid;
  min-height: 39px;
  padding: 8px 10px;
  border: 0;
  border-left: 2px solid #e2e8f0;
  background: transparent;
  color: #8b94a5;
  grid-template-columns: 32px 1fr;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: color 220ms ease, border-color 220ms ease, background 220ms ease;
}

.fh-services-nav button span {
  color: #0d9e9e;
  font-size: 10px;
}

.fh-services-nav button:hover,
.fh-services-nav button[aria-selected="true"] {
  border-color: #0d9e9e;
  background: #effcfc;
  color: #0a0c2e;
}

.fh-service-showcase-stage {
  position: relative;
  height: min(690px, calc(100vh - 116px));
  min-height: 540px;
}

.fh-service-showcase-card {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 6px;
  background: #0a0c2e;
  box-shadow: 0 30px 70px rgba(10, 12, 46, 0.22);
  opacity: var(--home-service-opacity, 1);
  transform: translate(var(--home-service-x, 0), var(--home-service-y, 0)) rotate(var(--home-service-r, 0deg)) scale(var(--home-service-scale, 1));
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), opacity 420ms ease, filter 420ms ease;
  z-index: var(--home-service-z, 1);
  will-change: transform, opacity;
}

.fh-service-showcase-card > img,
.fh-service-showcase-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fh-service-showcase-card > img {
  object-fit: cover;
}

.fh-service-showcase-shade {
  background: linear-gradient(180deg, rgba(4, 12, 25, 0.12), rgba(4, 12, 25, 0.84));
}

.fh-service-showcase-title,
.fh-service-showcase-copy {
  position: absolute;
  right: 34px;
  bottom: 34px;
  left: 34px;
  color: #ffffff;
  transition: opacity 280ms ease, transform 380ms ease;
}

.fh-service-showcase-title {
  padding: 20px 24px 22px;
  border-bottom: 7px solid #8fd16a;
  background: rgba(23, 32, 45, 0.94);
}

.fh-service-showcase-title small,
.fh-service-showcase-copy small {
  color: #8fd16a;
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  text-transform: uppercase;
}

.figma-home .fh-service-showcase-title h3 {
  margin: 5px 0 0;
  color: #ffffff;
  font-size: 24px;
  line-height: 30px;
}

.fh-service-showcase-copy {
  max-width: 500px;
  padding: 34px;
  background: rgba(10, 12, 46, 0.9);
  opacity: 0;
  transform: translateY(18px);
}

.figma-home .fh-service-showcase-copy h3 {
  margin: 8px 0 14px;
  color: #ffffff;
  font-size: 31px;
  line-height: 38px;
}

.fh-service-showcase-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 14px;
  line-height: 23px;
}

.fh-service-showcase-copy a {
  display: inline-flex;
  gap: 9px;
  margin-top: 22px;
  color: #8fd16a;
  font-size: 13px;
  font-weight: 700;
}

.fh-service-showcase-card.is-active .fh-service-showcase-title {
  opacity: 0;
  transform: translateY(16px);
}

.fh-service-showcase-card.is-active .fh-service-showcase-copy {
  opacity: 1;
  transform: none;
}

.fh-service-showcase-card.is-past {
  pointer-events: none;
}

.fh-service-progress {
  position: absolute;
  right: 0;
  bottom: -28px;
  left: 0;
  height: 3px;
  overflow: hidden;
  background: #e2e8f0;
}

.fh-service-progress span {
  display: block;
  width: var(--home-service-progress, 0%);
  height: 100%;
  background: linear-gradient(90deg, #0d9e9e, #8fd16a);
  transition: width 180ms linear;
}

.fh-leadership {
  height: 850px;
}

.fh-leadership-stage {
   position:relative;
    width:min(1024px, calc(100% - 40px));
    height:520px;
    margin:56px auto 0;
    perspective:1800px;
    transform-style:preserve-3d;
}

.fh-leadership-stage.is-turning {
  animation: fh-leadership-turn 760ms cubic-bezier(0.65, 0, 0.35, 1);
}

@keyframes fh-leadership-turn {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(180deg) scale(0.95); }
  100% { transform: rotateY(360deg); }
}

.fh-executive-card {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.fh-executive-card.is-active {
  opacity: 1;
  pointer-events: auto;
}

.fh-executive-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(10, 12, 46, 0.16);
  outline: none;
  transform-style: preserve-3d;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fh-executive-card-inner:hover,
.fh-executive-card-inner:focus-visible {
  transform: none;
}

.fh-executive-face {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 8px;
  backface-visibility: hidden;
}

.fh-executive-front {
  background: #0a0c2e;
}

.fh-executive-front > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
}

.fh-executive-front::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 38%, rgba(4, 12, 25, 0.86));
  content: "";
}

.fh-executive-index {
  position: absolute;
  z-index: 2;
  top: 24px;
  left: 28px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 72px;
  font-weight: 700;
  line-height: 1;
}

.fh-executive-front > div {
  position: absolute;
  z-index: 2;
  right: 32px;
  bottom: 30px;
  left: 32px;
  padding: 24px 28px;
  border-bottom: 7px solid #8fd16a;
  background: rgba(16, 28, 53, 0.94);
  color: #ffffff;
}

.fh-executive-front p,
.fh-executive-front h3,
.fh-executive-front span {
  margin: 0;
  color: inherit;
}

.fh-executive-front p {
  color: #8fd16a;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.figma-home .fh-executive-front h3 {
  margin-top: 5px;
  color: #ffffff;
  font-size: 34px;
  line-height: 40px;
}

.fh-executive-front span {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 13px;
}

.fh-executive-back {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 76px 84px;
  background: #101c35;
  color: #ffffff;
  transform: rotateY(180deg);
}

.fh-executive-label {
  margin: 0 0 18px;
  color: #8fd16a;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.figma-home .fh-executive-back h3 {
  max-width: 18ch;
  margin: 0;
  color: #ffffff;
  font-size: 38px;
  line-height: 46px;
}

.fh-executive-back > p:not(.fh-executive-label) {
  max-width: 62ch;
  margin: 22px 0 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  line-height: 24px;
}

.fh-executive-back dl {
  display: flex;
  gap: 72px;
  margin: 34px 0 0;
}

.fh-executive-back dl div {
  display: grid;
  gap: 4px;
}

.fh-executive-back dt {
  color: rgba(255, 255, 255, 0.42);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.fh-executive-back dd {
  margin: 0;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
}

.fh-executive-back a {
  margin-top: 34px;
  color: #8fd16a;
  font-size: 13px;
  font-weight: 700;
}

.fh-leadership-controls {
  position: absolute;
  right: 88px;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.fh-leadership-controls button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid #d8e1dc;
  background: #ffffff;
  color: #0a0c2e;
  cursor: pointer;
}

.fh-leadership-controls button:hover,
.fh-leadership-controls button:focus-visible {
  border-color: #0d9e9e;
  color: #0d9e9e;
}

.fh-leadership-controls span {
  color: #718096;
  font-size: 11px;
  font-weight: 700;
}

.fh-leadership-controls i {
  color: #0d9e9e;
  font-style: normal;
}

.fh-open-roles p small {
  display: block;
  color: #7181a0;
  font-size: 11px;
  font-weight: 500;
  line-height: 15px;
}

.fh-footer-ghost span {
  display: inline-block;
  animation: fh-bounce-letter 1.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) infinite;
}

.fh-footer-ghost span:nth-child(2) { animation-delay: 120ms; }
.fh-footer-ghost span:nth-child(3) { animation-delay: 240ms; }
.fh-footer-ghost span:nth-child(4) { animation-delay: 360ms; }

@keyframes fh-bounce-letter {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-18px); }
  60% { transform: translateY(-8px); }
  80% { transform: translateY(-3px); }
}

@media (max-width: 980px) {
  .site-body .figma-home-header {
    height: 72px;
  }

  .site-body .figma-home-header .nav-toggle {
    display: block;
    grid-column: 2;
    grid-row: 1;
    border-color: #e2e8f0;
    background: #ffffff;
  }

  .site-body .figma-home-header .nav-cta {
    display: none;
  }

  .fh-services-scene {
    height: auto;
    min-height: 0;
    padding: 72px 0 84px;
  }

  .fh-services-sticky {
    position: static;
    width: min(100% - 40px, 760px);
    min-height: 0;
    padding: 0;
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .fh-services-intro > h3 {
    max-width: 15ch;
  }

  .fh-services-nav {
    display: none;
  }

  .fh-service-showcase-stage {
    display: flex;
    height: auto;
    min-height: 0;
    gap: 18px;
    overflow-x: auto;
    padding: 12px 4px 28px;
    perspective: none;
    scroll-snap-type: x mandatory;
  }

  .fh-service-showcase-card,
  .fh-service-showcase-card.is-past {
    position: relative;
    inset: auto;
    width: min(82vw, 560px);
    height: 500px;
    flex: 0 0 min(82vw, 560px);
    opacity: 1;
    filter: none;
    pointer-events: auto;
    transform: none;
    scroll-snap-align: start;
  }

  .fh-service-showcase-card .fh-service-showcase-title {
    opacity: 0;
  }

  .fh-service-showcase-card .fh-service-showcase-copy {
    opacity: 1;
    transform: none;
  }

  .fh-service-progress {
    display: none;
  }

  .fh-leadership {
    height: 850px;
  }

  .fh-leadership-stage {
    height: 560px;
  }
}

@media (max-width: 640px) {
  .fh-logo-marquee ul {
    gap: 42px;
  }

  .fh-logo-marquee li {
    width: 104px;
    flex-basis: 104px;
  }

  .fh-industry-card,
  .fh-industry-card:nth-child(n+4) {
    height: 330px;
  }

  .fh-card-title {
    right: 18px;
    bottom: 18px;
    left: 18px;
  }

  .fh-card-reveal {
    padding: 28px;
  }

  .fh-services-intro > h3 {
    margin-top: 32px;
    font-size: 36px;
    line-height: 41px;
  }

  .fh-service-showcase-card,
  .fh-service-showcase-card.is-past {
    width: 86vw;
    height: 470px;
    flex-basis: 86vw;
  }

  .fh-service-showcase-title,
  .fh-service-showcase-copy {
    right: 18px;
    bottom: 18px;
    left: 18px;
  }

  .fh-service-showcase-copy {
    padding: 24px;
  }

  .figma-home .fh-service-showcase-copy h3 {
    font-size: 25px;
    line-height: 31px;
  }

  .fh-leadership {
    position: relative;
    min-height: 700px;
    height: auto;
    padding: 80px 0;
}

  .fh-leadership-stage {
    width: 100%;
    height: 500px;
    margin-top: 42px;
  }

  .fh-executive-front > div {
    right: 16px;
    bottom: 16px;
    left: 16px;
    padding: 19px 20px;
  }

  .figma-home .fh-executive-front h3 {
    font-size: 27px;
    line-height: 33px;
  }

  .fh-executive-back {
    padding: 42px 28px;
  }

  .figma-home .fh-executive-back h3 {
    font-size: 29px;
    line-height: 36px;
  }

  .fh-executive-back dl {
    gap: 28px;
  }

  .fh-leadership-controls {
    position: static;
    justify-content: flex-end;
    margin-top: 16px;
  }
}

@media (hover: none) {
  .fh-industry-card .fh-card-shade {
    background: rgba(4, 12, 25, 0.66);
  }

  .fh-industry-card .fh-card-title {
    opacity: 0;
  }

  .fh-industry-card .fh-card-reveal {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fh-logo-marquee ul,
  .fh-ticker-track,
  .fh-footer-ghost span,
  .fh-leadership-stage.is-turning,
  .fh-leadership [data-leadership-stage].is-scrolling-next,
  .fh-leadership [data-leadership-stage].is-scrolling-previous {
    animation: none;
  }

  .fh-executive-card-inner,
  .fh-leader-photo-turner,
  .fh-service-showcase-card,
  .fh-card-photo,
  .fh-card-reveal {
    transition-duration: 1ms;
  }
}

@media (max-width: 980px) {
  .fh-leadership {
    height: auto;
    min-height: 0;
    padding-bottom: 80px;
  }
}

@media (max-width: 640px) {
  .fh-leadership {
    height: auto;
    padding-bottom: 64px;
  }
  .fh-leadership .fh-leadership-controls > span {
    display: none;
  }
}

/* ---------- Homepage services: minimal visual cards from supplied reference ---------- */

.fh-services-selector .fh-service-reference-card {
  --service-edge-a: #0d9e9e;
  --service-edge-b: #3dbb8e;
  padding: 0;
}

.fh-services-selector .fh-service-reference-card.tone-sage {
  --service-edge-a: #3dbb8e;
  --service-edge-b: #8fd16a;
}

.fh-services-selector .fh-service-reference-card.tone-ocean {
  --service-edge-a: #0e4d6e;
  --service-edge-b: #0d9e9e;
}

.fh-services-selector .fh-service-reference-card.tone-lime {
  --service-edge-a: #0d9e9e;
  --service-edge-b: #8fd16a;
}

.fh-services-selector .fh-service-reference-edge {
  position: absolute;
  inset: -8px 0 0 -8px;
  z-index: -1;
  border-radius: 8px;
  
    /*
    linear-gradient(90deg,
      color-mix(in srgb, var(--service-edge-a) 62%, #ffffff) 0%,
      color-mix(in srgb, var(--service-edge-b) 50%, #ffffff) 42%,
      transparent 96%) top left / 100% 8px no-repeat,
    linear-gradient(180deg,
      color-mix(in srgb, var(--service-edge-a) 62%, #ffffff) 0%,
      color-mix(in srgb, var(--service-edge-b) 46%, #ffffff) 42%,
      transparent 96%) top left / 8px 100% no-repeat;
      */
    background:
    linear-gradient(
        90deg,
        #2C3660 0%,
        #0E4D6E 28%,
        #0D9E9E 56%,
        rgba(61, 187, 142, 0.55) 78%,
        rgba(143, 209, 106, 0.12) 100%
    ) top left / 100% 8px no-repeat,

    linear-gradient(
        180deg,
        #2C3660 0%,
        #0E4D6E 28%,
        #0D9E9E 56%,
        rgba(61, 187, 142, 0.55) 78%,
        rgba(143, 209, 106, 0.12) 100%
    ) top left / 8px 100% no-repeat;

    
  
  box-shadow: -5px -5px 22px color-mix(in srgb, var(--service-edge-a) 10%, transparent);
  opacity: 0.94;
  filter: blur(0.7px);
  transition: opacity 320ms ease, filter 320ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fh-services-selector .fh-service-reference-shell {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  /*border: 1px solid rgba(10, 12, 46, 0.06);*/
  border-radius: 8px;
  background: #ffffff;
  /*box-shadow: 0 24px 70px rgba(10, 12, 46, 0.075);*/
  color: #0a0c2e;
  text-decoration: none;
  transition: box-shadow 360ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.fh-services-selector .fh-service-reference-copy {
  position: relative;
  z-index: 2;
  padding: 58px 54px 0;
}

.figma-home .fh-services-selector .fh-service-reference-copy h3 {
  max-width: 18ch;
  margin: 0;
  color: #0a0c2e;
  font-family: var(--display-font);
  font-size: 2rem;
  font-weight: 450;
  line-height: 1.16;
}

.fh-services-selector .fh-service-reference-copy p {
  max-width: 63ch;
  margin: 14px 0 0;
  color: #70818e;
  font-size: 1.08rem;
  font-weight: 420;
  line-height: 1.45;
}

.fh-services-selector .fh-service-reference-visual {
  position: relative;
  display: grid;
  min-height: 0;
  margin: 0;
  place-items: center;
  overflow: hidden;
  background: #ffffff;
}

.fh-services-selector .fh-service-reference-visual.is-object img {
  width: 78%;
  height: 78%;
  object-fit: contain;
  object-position: center;
  filter: saturate(0.94) contrast(1.01);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms ease;
}

.fh-services-selector .fh-service-ui-grid {
  display: grid;
  width: calc(100% - 80px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.fh-services-selector .fh-service-ui-tile {
  display: grid;
  min-width: 0;
  min-height: 112px;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 17px;
  border: 1px solid rgba(10, 12, 46, 0.045);
  border-radius: 8px;
  background: #f7f9f8;
  color: #0a0c2e;
  box-shadow: 0 8px 22px rgba(10, 12, 46, 0.035);
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease, background 320ms ease;
}

.fh-services-selector .fh-service-ui-tile.is-dark {
  border-color: #0a0c2e;
  background: #0a0c2e;
  color: #ffffff;
  box-shadow: 0 14px 28px rgba(10, 12, 46, 0.16);
  transform: rotate(-1.8deg);
}

.fh-services-selector .fh-service-ui-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--service-edge-b) 56%, #ffffff);
  color: #0a0c2e;
  font-size: 0.72rem;
  font-weight: 800;
}

.fh-services-selector .fh-service-ui-tile:nth-child(3) .fh-service-ui-icon {
  background: color-mix(in srgb, var(--service-edge-a) 42%, #ffffff);
}

.fh-services-selector .fh-service-ui-tile:nth-child(4) .fh-service-ui-icon {
  background: color-mix(in srgb, #0d9e9e 42%, #ffffff);
}

.fh-services-selector .fh-service-ui-tile.is-dark .fh-service-ui-icon {
  background: #8fd16a;
  color: #0a0c2e;
}

.fh-services-selector .fh-service-ui-tile > span:last-child {
  min-width: 0;
}

.fh-services-selector .fh-service-ui-tile strong,
.fh-services-selector .fh-service-ui-tile small {
  display: block;
}

.fh-services-selector .fh-service-ui-tile strong {
  overflow-wrap: anywhere;
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.28;
}

.fh-services-selector .fh-service-ui-tile small {
  margin-top: 6px;
  color: #899491;
  font-size: 0.66rem;
  line-height: 1.3;
}

.fh-services-selector .fh-service-ui-tile.is-dark small {
  color: rgba(255, 255, 255, 0.58);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-reference-shell,
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-reference-shell {
  box-shadow: 0 32px 88px rgba(10, 12, 46, 0.12);
  transform: translateY(-4px);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-reference-edge,
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-reference-edge {
  opacity: 1;
  filter: blur(0);
  transform: translate(-3px, -3px);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-ui-tile:nth-child(1),
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-ui-tile:nth-child(1) {
  transform: translateY(-4px);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-ui-tile:nth-child(2),
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-ui-tile:nth-child(2) {
  transform: translateY(-5px) rotate(-0.6deg);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-ui-tile:nth-child(3),
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-ui-tile:nth-child(3) {
  transform: translateY(-2px) rotate(0.8deg);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-ui-tile:nth-child(4),
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-ui-tile:nth-child(4) {
  transform: translateY(-4px);
}

.fh-services-selector .fh-service-reference-card.is-active:hover .fh-service-reference-visual.is-object img,
.fh-services-selector .fh-service-reference-card.is-active:focus-within .fh-service-reference-visual.is-object img {
  filter: saturate(1) contrast(1.03);
  transform: scale(1.04) rotate(-1deg);
}

@media (max-width: 560px) {
  .fh-services-selector .fh-service-reference-card,
  .fh-services-selector .fh-service-reference-card.is-active {
    min-height: 660px;
    height: 660px;
  }
  .fh-services-selector .fh-service-reference-shell {
    height: 660px;
  }
  .fh-services-selector .fh-service-reference-copy {
    padding: 38px 30px 0;
  }
  .figma-home .fh-services-selector .fh-service-reference-copy h3 {
    font-size: 1.7rem;
  }
  .fh-services-selector .fh-service-reference-copy p {
    font-size: 0.94rem !important;
    max-width: none;
  }
  .fh-services-selector .fh-service-ui-grid {
    width: calc(100% - 40px);
    gap: 10px;
  }
  .fh-services-selector .fh-service-ui-tile {
    min-height: 102px;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    padding: 12px;
  }
  .fh-services-selector .fh-service-ui-icon {
    width: 34px;
    height: 34px;
    font-size: 0.64rem;
  }
  .fh-services-selector .fh-service-ui-tile strong {
    font-size: 0.7rem;
  }
  .fh-services-selector .fh-service-ui-tile small {
    font-size: 0.6rem;
  }
  .fh-services-selector .fh-service-reference-visual.is-object img {
    width: 84%;
    height: 84%;
  }
}

/* Fix: at true small-phone widths the 2-column tile grid above still leaves
   each tile only ~80px wide, and after subtracting the icon column + gap +
   tile padding, the label column shrinks to a few px — text wraps one
   character per line. Below 420px, stack the tiles in a single column so
   each tile gets the card's full width instead of half of it. */
@media (max-width: 420px) {
  .fh-services-selector .fh-service-reference-copy {
    padding: 30px 20px 0;
  }
  .fh-services-selector .fh-service-ui-grid {
    width: calc(100% - 40px);
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .fh-services-selector .fh-service-ui-tile {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 0;
  }
}

/* ---------- Homepage industries: integrated AVEX editorial grid ---------- */

.figma-home .fh-industries {
  position: relative;
  height: auto;
  padding: 104px 0 112px;
  overflow: hidden;
  background: var(--surface);
}

.figma-home .fh-industries::before {
  position: absolute;
  top: 0;
  right: 5%;
  left: 5%;
  height: 1px;
  
  
  background:none;
  content: "";
}

.fh-industries-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.56fr);
  gap: 5rem;
  align-items: end;
  padding-bottom: 34px;
  border-bottom: 1px solid rgba(10, 12, 46, 0.1);
}

.figma-home .fh-industries .fh-section-title h1 {
  font-size: 44px;
  line-height: 1.08;
}

.fh-industries-intro {
  display: grid;
  justify-items: start;
  gap: 18px;
}

.fh-industries-intro p {
  max-width: 52ch;
  margin: 0;
  color: #647582;
  font-size: 14px;
  line-height: 1.7;
}

.fh-industries-intro a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(10, 12, 46, 0.28);
  color: #0e4d6e;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
  text-transform: uppercase;
}

.fh-industries-intro a span {
  color: #0d9e9e;
  font-size: 16px;
  transition: transform 220ms ease;
}

.fh-industries-intro a:hover span,
.fh-industries-intro a:focus-visible span {
  transform: translateX(4px);
}

.figma-home .fh-industry-grid {
  gap: 24px;
  margin-top: 40px;
}

.figma-home .fh-industry-card,
.figma-home .fh-industry-card:nth-child(n+4) {
  --industry-card-accent: #3dbb8e;
  height: 280px;
  isolation: isolate;
  border: 0;
  border-radius: 8px;
  background: #e8efef;
  box-shadow: 0 16px 42px rgba(10, 12, 46, 0.09);
}

.figma-home .fh-industry-card:nth-child(3n + 2) { --industry-card-accent: #0d9e9e; }
.figma-home .fh-industry-card:nth-child(3n) { --industry-card-accent: #8fd16a; }

.figma-home .fh-industry-card::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 30%, rgba(10, 12, 46, 0.08) 54%, rgba(10, 12, 46, 0.84) 100%);
  content: "";
  pointer-events: none;
}

.figma-home .fh-industry-card::after {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.2),
    inset 0 -3px 0 var(--industry-card-accent);
  content: "";
  pointer-events: none;
}

.figma-home .fh-card-photo {
  z-index: 0;
  filter: saturate(0.94) contrast(1.02);
  transform: scale(1.012);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 360ms ease;
}

.figma-home .fh-card-shade {
  z-index: 2;
  background: linear-gradient(105deg, rgba(10, 12, 46, 0.97) 0%, rgba(14, 77, 110, 0.94) 62%, rgba(13, 158, 158, 0.84) 100%);
  opacity: 1;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 460ms cubic-bezier(0.22, 1, 0.36, 1);
}

.figma-home .fh-card-title {
  z-index: 3;
  right: 30px;
  bottom: 28px;
  left: 30px;
  display: block;
  min-height: 0;
  padding: 1px 0 2px 15px;
  border: 0;
  border-left: 3px solid var(--industry-card-accent);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #ffffff;
  text-shadow: 0 2px 14px rgba(10, 12, 46, 0.48);
}

.figma-home .fh-card-title small {
  color: color-mix(in srgb, var(--industry-card-accent) 72%, #ffffff);
  font-size: 9px;
}

.figma-home .fh-card-title strong {
  display: block;
  max-width: 22ch;
  margin-top: 5px;
  color: #ffffff;
  font-size: 19px;
  line-height: 1.28;
}

.figma-home .fh-card-reveal {
  z-index: 3;
  justify-content: flex-end;
  padding: 34px;
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 260ms ease 230ms, transform 420ms cubic-bezier(0.22, 1, 0.36, 1) 210ms;
}

.figma-home .fh-card-reveal small {
  color: #8fd16a;
}

.figma-home .fh-industry-card:hover,
.figma-home .fh-industry-card:focus-visible {
  border: 0;
  box-shadow: 0 26px 62px rgba(10, 12, 46, 0.16);
  transform: translateY(-5px);
}

.figma-home .fh-industry-card:hover .fh-card-photo,
.figma-home .fh-industry-card:focus-visible .fh-card-photo {
  filter: saturate(1.04) contrast(1.04);
  transform: scale(1.055);
}

/*
.figma-home .fh-industry-card:hover .fh-card-shade,
.figma-home .fh-industry-card:focus-visible .fh-card-shade {
  background: linear-gradient(105deg, rgba(10, 12, 46, 0.97) 0%, rgba(14, 77, 110, 0.94) 62%, rgba(13, 158, 158, 0.84) 100%);
  transform: scaleX(1);
}
*/

.figma-home .fh-industry-card:hover .fh-card-shade,
.figma-home .fh-industry-card:focus-visible .fh-card-shade{
    background: var(--industry-hover);
    transform: scaleX(1);
}

.figma-home .fh-industry-card:hover .fh-card-reveal,
.figma-home .fh-industry-card:focus-visible .fh-card-reveal {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 900px) {
  .fh-industries-heading {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .figma-home .fh-industry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .figma-home .fh-industries {
    padding: 74px 0 82px;
  }
  .figma-home .fh-industries .fh-section-title h1 {
    font-size: 34px;
  }
  .figma-home .fh-industry-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 30px;
  }
  .figma-home .fh-industry-card,
  .figma-home .fh-industry-card:nth-child(n+4) {
    height: 350px;
  }
}

@media (hover: none) {
  .figma-home .fh-industry-card .fh-card-shade {
    background: linear-gradient(105deg, rgba(10, 12, 46, 0.97) 0%, rgba(14, 77, 110, 0.94) 62%, rgba(13, 158, 158, 0.84) 100%);
    transform: scaleX(1);
    transition: none;
  }
  .figma-home .fh-industry-card .fh-card-title {
    opacity: 0;
  }
  .figma-home .fh-industry-card .fh-card-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Homepage service context: consistent image-led discipline states. */

.fh-home-service-selector-scope .industry-contexts {
  min-height: 382px;
}

.fh-home-service-selector-scope .industry-context-visual {
  position: relative;
  display: block;
  width: min(100%, 970px); 
  height: 420px;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #0a0c2e;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.18),
    0 22px 48px rgba(10, 12, 46, 0.14);
  color: #ffffff;
  text-decoration: none;
}

.fh-home-service-selector-scope .industry-context-visual::before {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #0d9e9e, #3dbb8e 58%, rgba(143, 209, 106, 0));
  content: "";
  pointer-events: none;
}

.fh-home-service-selector-scope .industry-context-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.88) contrast(1.04);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 300ms ease;
}

.fh-home-service-selector-scope .industry-context-visual-shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10, 12, 46, 0.06) 0%, rgba(10, 12, 46, 0.04) 34%, rgba(10, 12, 46, 0.94) 100%),
    linear-gradient(90deg, rgba(10, 12, 46, 0.32), transparent 62%);
  pointer-events: none;
  transition: opacity 300ms ease;
}

.fh-home-service-selector-scope .industry-context-visual-code {
  position: absolute;
  z-index: 2;
  top: 18px;
  right: 18px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 50%;
  background: rgba(13, 158, 158, 0.88);
  box-shadow: 0 8px 24px rgba(10, 12, 46, 0.2);
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  backdrop-filter: blur(8px);
}

.fh-home-service-selector-scope .industry-context-visual-copy {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: grid;
  gap: 7px;
}

.fh-home-service-selector-scope .industry-context-visual-copy small {
  color: #8fd16a;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

.fh-home-service-selector-scope .industry-context-visual-copy strong {
  max-width: 15ch;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: clamp(25px, 2.4vw, 25px);
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.05;
}

.fh-home-service-selector-scope .industry-context.has-visual:hover .industry-context-visual img,
.fh-home-service-selector-scope .industry-context-visual:focus-visible img {
  filter: saturate(1) contrast(1.04);
  transform: scale(1.045);
}

.fh-home-service-selector-scope .industry-context-visual:focus-visible {
  outline: 3px solid rgba(13, 158, 158, 0.48);
  outline-offset: 4px;
}

.fh-home-service-selector-scope .industry-context.has-visual .industry-context-action {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  width: fit-content;
  min-height: 48px;
  margin-top: 14px;
  padding: 0 2px 10px;
  border: 0;
  border-bottom: 1px solid rgba(14, 77, 110, 0.24);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #8fd16a;
}

.fh-home-service-selector-scope .industry-context.has-visual .industry-context-action span:first-child {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.fh-home-service-selector-scope .industry-context.has-visual .industry-context-action span:last-child {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #0d9e9e;
  color: #ffffff;
  transition: background 200ms ease, transform 200ms ease;
}

.fh-home-service-selector-scope .industry-context.has-visual .industry-context-action:hover {
  background: transparent;
  color: #ffffff;
  transform: none;
}

.fh-home-service-selector-scope .industry-context.has-visual .industry-context-action:hover span:last-child {
  background: #8fd16a;
  color: #0a0c2e;
  transform: translateX(3px);
}

@media (max-width: 560px) {
  .fh-home-service-selector-scope .industry-contexts {
    min-height: 400px;
  }

  .fh-home-service-selector-scope .industry-context-visual {
    height: 260px;
  }

  .fh-home-service-selector-scope .industry-context-visual-copy {
    right: 20px;
    bottom: 21px;
    left: 20px;
  }

  .fh-home-service-selector-scope .industry-context-visual-copy strong {
    font-size: 25px;
  }
}

.fh-prefooter-gap {
  /*height: 64px;*/
  background: var(--surface);
}

@media (max-width: 640px) {
  .fh-prefooter-gap {
    height: 40px;
  }
}

/* ---------- Homepage careers and editorial resources ---------- */

.figma-home .fh-careers {
  height: 820px;
  min-height: 820px;
  border-top: 1px solid rgba(14, 77, 110, 0.12);
  border-bottom: 1px solid rgba(14, 77, 110, 0.12);
  /*background-color: #8fd16a;*/
  background: #137c88;
  /*background: linear-gradient(163deg, rgba(61, 187, 142, 0.1) 0%, var(--surface) 55%, rgba(143, 209, 106, 0.14) 100%);*/
}

.figma-home .fh-careers-rings {
  display: none;
}

.figma-home .fh-careers-copy {
  width: min(1240px, calc(100% - 80px));
  margin-inline: auto;
  padding: 104px min(52vw, 670px) 70px 0;
  text-align: left;
}

.figma-home .fh-hiring {
  margin-bottom: 22px;
  border-color: rgba(13, 158, 158, 0.2);
  border-radius: 6px;
  background: rgba(13, 158, 158, 0.08);
  color: #0e4d6e;
}

.figma-home .fh-hiring span {
  background: #3dbb8e;
  box-shadow: 0 0 0 4px rgba(61, 187, 142, 0.12);
}

.figma-home .fh-careers-copy h2 {
  max-width: 610px;
  margin-bottom: 22px;
  color: #0a0c2e;
  font-size: 26px;
  line-height: 1.02;
}

.figma-home .fh-careers-copy > p:not(.fh-hiring) {
  max-width: 550px;
  margin-inline: 0;
  color: #536c68;
  line-height: 1.7;
}

.figma-home .fh-career-benefits {
  display: flex;
  flex-direction: column;
  max-width: 480px;
  margin-top: 28px;
}

.figma-home .fh-career-actions {
  justify-content: flex-start;
  margin-top: 34px;
}

.figma-home .fh-career-actions a {
  border-color: rgba(14, 77, 110, 0.18);
  border-radius: 6px;
  color: #0e4d6e;
}

.figma-home .fh-career-actions a.primary {
  border-color: #0e4d6e;
  background: #0e4d6e;
  box-shadow: 0 12px 28px rgba(14, 77, 110, 0.18);
  color: #ffffff;
}

.figma-home .fh-career-gallery {
  top: 72px;
  right: max(40px, calc((100% - 1240px) / 2));
  bottom: 72px;
  left: auto;
  width: min(48vw, 620px);
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  grid-template-rows: minmax(0, 1fr) minmax(0, 0.78fr);
  gap: 12px;
  align-items: stretch;
}

.figma-home .fh-career-gallery > img,
.figma-home .fh-career-team-photo {
  height: 100%;
  border-radius: 8px;
  box-shadow: 0 24px 54px rgba(10, 12, 46, 0.12);
}

.figma-home .fh-career-gallery > img:first-child {
  grid-row: 1 / 3;
}

.figma-home .fh-career-team-photo {
  grid-column: 2;
  grid-row: 1;
}

.figma-home .fh-career-gallery > img:last-child {
  grid-column: 2;
  grid-row: 2;
}

.figma-home .fh-open-roles {
  top: 18px;
  left: 18px;
  border-color: rgba(13, 158, 158, 0.2);
  border-radius: 6px;
  box-shadow: 0 14px 32px rgba(10, 12, 46, 0.14);
}

.figma-home .fh-open-roles > span {
  background: rgba(61, 187, 142, 0.14);
  color: #0e4d6e;
}

.fh-insights {
  padding: 0px 0 120px;
  overflow: hidden;
  background: #0a0c2e;
  color: #ffffff;
}

.fh-insights-inner {
  width: min(1240px, calc(100% - 80px));
  margin-inline: auto;
}

.fh-insights-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.55fr);
  gap: 72px;
  align-items: end;
}

.fh-insights .fh-section-title p {
  color: #3dbb8e;
}

.figma-home .fh-insights .fh-section-title h2 {
  max-width: 620px;
  color: #ffffff;
  font-size: 26px !important;
  line-height: 1.04;
}

.fh-insights-heading > div:last-child > p {
  margin: 0 0 20px;
  color: rgba(226, 232, 240, 0.7);
  font-size: 14px;
  line-height: 1.65;
}

.fh-insights-heading > div:last-child > a {
  display: inline-flex;
  gap: 16px;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(143, 209, 106, 0.58);
  color: #8fd16a;
  font-size: 13px;
  font-weight: 700;
}

.fh-insight-field {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(2, 280px);
  gap: 14px;
  margin-top: 54px;
}

.fh-insight-story {
  position: relative;
  grid-column: 8 / 13;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #ffffff;
  isolation: isolate;
}

.fh-insight-story:nth-child(2) { grid-row: 1; }
.fh-insight-story:nth-child(3) { grid-row: 2; }

.fh-insight-story.is-featured {
  grid-column: 1 / 8;
  grid-row: 1 / 3;
}

.fh-insight-story > img,
.fh-insight-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fh-insight-story > img {
  z-index: -2;
  object-fit: cover;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms ease;
}

.fh-insight-shade {
  z-index: -1;
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.05), rgba(10, 12, 46, 0.92) 82%);
}

.fh-insight-story.is-featured .fh-insight-shade {
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.02) 12%, rgba(10, 12, 46, 0.94) 90%);
}

.fh-insight-index {
  position: absolute;
  top: 22px;
  right: 22px;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
}

.fh-insight-story-copy {
  position: absolute;
  right: 28px;
  bottom: 28px;
  left: 28px;
  display: grid;
  gap: 10px;
}

.fh-insight-story-copy small {
  color: #8fd16a;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.fh-insight-story-copy strong {
  max-width: 22ch;
  color: #ffffff;
  font-size: 22px;
  line-height: 1.12;
}

.fh-insight-story.is-featured .fh-insight-story-copy strong {
  max-width: 19ch;
  font-size: 36px;
}

.fh-insight-story-copy > span {
  max-width: 58ch;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  line-height: 1.55;
}

.fh-insight-story:not(.is-featured) .fh-insight-story-copy > span {
  display: none;
}

.fh-insight-story-copy b {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  width: fit-content;
  margin-top: 4px;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
}

.fh-insight-story-copy b i {
  color: #3dbb8e;
  font-style: normal;
  transition: transform 260ms ease;
}

.fh-insight-story:hover > img,
.fh-insight-story:focus-visible > img {
  filter: saturate(1.08);
  transform: scale(1.045);
}

.fh-insight-story:hover .fh-insight-story-copy b i,
.fh-insight-story:focus-visible .fh-insight-story-copy b i {
  transform: translateX(5px);
}

@media (max-width: 1100px) {
  .figma-home .fh-careers {
    height: auto;
    min-height: 0;
    padding-bottom: 80px;
  }

  .figma-home .fh-careers-copy {
    width: min(100% - 48px, 760px);
    padding: 82px 0 0;
  }

  .figma-home .fh-career-gallery {
    position: relative;
    inset: auto;
    width: min(100% - 48px, 900px);
    height: 540px;
    margin: 64px auto 0;
  }

  .fh-insights-heading {
    gap: 42px;
  }
}

@media (max-width: 720px) {
  .figma-home .fh-careers-copy {
    width: calc(100% - 32px);
    padding-top: 68px;
  }

  .figma-home .fh-careers-copy h2 {
    font-size: 40px;
    line-height: 1.06;
  }

  .figma-home .fh-career-benefits {
    max-width: 100%;
  }

  .figma-home .fh-career-actions {
    align-items: stretch;
  }

  .figma-home .fh-career-gallery {
    width: calc(100% - 32px);
    height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .figma-home .fh-career-gallery > img,
  .figma-home .fh-career-team-photo,
  .figma-home .fh-career-gallery > img:first-child,
  .figma-home .fh-career-gallery > img:last-child {
    grid-column: 1;
    grid-row: auto;
    height: 300px;
  }

  .figma-home .fh-career-team-photo {
    grid-column: 1;
    grid-row: auto;
    order: -1;
  }

  .fh-insights {
    padding: 78px 0 86px;
  }

  .fh-insights-inner {
    width: calc(100% - 32px);
  }

  .fh-insights-heading {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .figma-home .fh-insights .fh-section-title h2 {
    font-size: 26px !important;
  }

  .fh-insight-field {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 12px;
    margin-top: 38px;
  }

  .fh-insight-story,
  .fh-insight-story.is-featured,
  .fh-insight-story:nth-child(2),
  .fh-insight-story:nth-child(3) {
    grid-column: 1;
    grid-row: auto;
    min-height: 360px;
  }

  .fh-insight-story.is-featured {
    min-height: 460px;
  }

  .fh-insight-story.is-featured .fh-insight-story-copy strong {
    font-size: 30px;
  }
}

/* ---------- Interactive careers lanes ---------- */

.figma-home .fh-career-gallery {
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  grid-template-rows: none;
  gap: 9px;
  align-items: stretch;
}

.figma-home .fh-career-frame {
  position: relative;
  min-height: 0;
  flex: 1 1 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(10, 12, 46, 0.12);
  border-radius: 8px;
  background: #0a0c2e;
  box-shadow: 0 22px 48px rgba(10, 12, 46, 0.12);
  transition: flex-grow 620ms cubic-bezier(0.22, 1, 0.36, 1), filter 360ms ease;
}

.figma-home .fh-career-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 34%, rgba(10, 12, 46, 0.82));
  opacity: 0.46;
  pointer-events: none;
  transition: opacity 320ms ease;
}

.figma-home .fh-career-frame > img,
.figma-home .fh-career-team-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.figma-home .fh-career-frame:first-child > img { object-position: center 30%; }
.figma-home .fh-career-frame:last-child > img { object-position: center 24%; }

.figma-home .fh-career-frame figcaption {
  position: absolute;
  z-index: 3;
  right: 24px;
  bottom: 20px;
  left: 24px;
  display: grid;
  gap: 4px;
  color: #ffffff;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 280ms ease 80ms, transform 420ms cubic-bezier(0.22, 1, 0.36, 1) 80ms;
}

.figma-home .fh-career-frame figcaption small {
  color: #8fd16a;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.figma-home .fh-career-frame figcaption strong {
  font-size: 18px;
  line-height: 1.15;
}

.figma-home .fh-career-frame:hover,
.figma-home .fh-career-frame:focus-within {
  flex-grow: 2.15;
}

.figma-home .fh-career-gallery:has(.fh-career-frame:hover) .fh-career-frame:not(:hover) {
  filter: saturate(0.62) brightness(0.82);
}

.figma-home .fh-career-frame:hover::after,
.figma-home .fh-career-frame:focus-within::after {
  opacity: 0.9;
}

.figma-home .fh-career-frame:hover > img,
.figma-home .fh-career-frame:focus-within > img {
  transform: scale(1.035);
}

.figma-home .fh-career-frame:hover figcaption,
.figma-home .fh-career-frame:focus-within figcaption {
  opacity: 1;
  transform: translateY(0);
}

.figma-home .fh-career-team-photo {
  grid-column: auto;
  grid-row: auto;
  height: auto;
}

/* ---------- Auto-scrolling AVEX desk ---------- */

.fh-insights {
  padding: 30px 0 84px;
  overflow: hidden;
  background: #f5fbf7;
  color: var(--navy);
}

.fh-insights-scroll {
  position: relative;
  height: auto;
  min-height: 0;
}

.fh-insights-sticky {
  position: relative;
  display: grid;
  grid-template-rows: auto 490px auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(13, 158, 158, 0.075) 1px, transparent 1px),
    #f5fbf7;
  background-size: 160px 100%;
}

.fh-insights-heading {
  align-items: center;
}

.figma-home .fh-insights .fh-section-title h2 {
  color: #0a0c2e;
  font-size: 26px !important;
}

.fh-insights-heading > div:last-child > p {
  color: #64748b;
}

.fh-insights-heading > div:last-child > a {
  border-bottom-color: rgba(13, 158, 158, 0.45);
  color: #0e4d6e;
}

.fh-insight-viewport {
  width: 100%;
  min-height: 0;
  margin-top: 28px;
  overflow: hidden;
}

.fh-insight-track {
  display: flex;
  gap: 18px;
  width: max-content;
  padding: 8px max(40px, calc((100vw - 1240px) / 2)) 24px;
  transform: translate3d(var(--home-insight-x, 0px), 0, 0);
  transition: transform 920ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.fh-insight-story,
.fh-insight-story:nth-child(2),
.fh-insight-story:nth-child(3),
.fh-insight-story.is-featured {
  grid-column: auto;
  grid-row: auto;
  flex: 0 0 340px;
  width: 340px;
  height: 448px;
  min-height: 448px;
  display: flex;
  flex-direction: column;
  border-color: rgba(14, 77, 110, 0.12);
  background: #ffffff;
  box-shadow: 0 16px 36px rgba(10, 12, 46, 0.08);
  color: #0a0c2e;
  opacity: 0.76;
  filter: none;
  transform: translateY(16px) scale(0.985);
  transition: opacity 420ms ease, box-shadow 420ms ease, transform 560ms cubic-bezier(0.22, 1, 0.36, 1), border-color 320ms ease;
}

.fh-insight-story:nth-child(5n + 1) {
  flex-basis: 420px;
  width: 420px;
}

.fh-insight-story:nth-child(3n + 2) {
  transform: translateY(28px) scale(0.985);
}

.fh-insight-story.is-active,
.fh-insight-story:hover,
.fh-insight-story:focus-visible {
  border-color: rgba(13, 158, 158, 0.42);
  box-shadow: 0 24px 54px rgba(10, 12, 46, 0.14);
  opacity: 1;
  transform: translateY(0) scale(1);
}

.fh-insight-story.fh-insight-tone-2 { background: #eef8f7; }
.fh-insight-story.fh-insight-tone-3 { background: #f1f6fa; }
.fh-insight-story.fh-insight-tone-4 { background: #f1f9ec; }

.fh-insight-media {
  position: relative;
  display: block;
  flex: 0 0 46%;
  min-height: 0;
  overflow: hidden;
  border-bottom: 1px solid rgba(14, 77, 110, 0.1);
}

.fh-insight-media > img,
.fh-insight-media > .fh-insight-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.fh-insight-media > img {
  z-index: 0;
  object-fit: cover;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms ease;
}

.fh-insight-media > .fh-insight-shade,
.fh-insight-story.is-featured .fh-insight-media > .fh-insight-shade {
  z-index: 1;
  background: linear-gradient(180deg, rgba(10, 12, 46, 0.02), rgba(10, 12, 46, 0.24));
}

.fh-insight-media .fh-insight-index {
  z-index: 2;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.78);
  color: #0a0c2e;
  backdrop-filter: blur(8px);
}

.fh-insight-story .fh-insight-story-copy {
  position: relative;
  inset: auto;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 9px;
  min-height: 0;
  padding: 21px 22px 20px;
}

.fh-insight-story .fh-insight-story-copy small {
  color: #0d9e9e;
}

.fh-insight-story-copy strong,
.fh-insight-story.is-featured .fh-insight-story-copy strong {
  max-width: 22ch;
  color: #0a0c2e;
  font-size: 23px;
  line-height: 1.08;
}

.fh-insight-story-copy > span,
.fh-insight-story:not(.is-featured) .fh-insight-story-copy > span {
  display: block;
  max-height: 0;
  overflow: hidden;
  color: #64748b;
  opacity: 0;
  transform: translateY(8px);
  transition: max-height 440ms ease, opacity 280ms ease, transform 420ms ease;
}

.fh-insight-story.is-active .fh-insight-story-copy > span,
.fh-insight-story:hover .fh-insight-story-copy > span,
.fh-insight-story:focus-visible .fh-insight-story-copy > span {
  max-height: 58px;
  opacity: 1;
  transform: translateY(0);
}

.fh-insight-story .fh-insight-story-copy b {
  margin-top: auto;
  color: #0e4d6e;
}

.fh-insight-story:hover .fh-insight-media > img,
.fh-insight-story:focus-visible .fh-insight-media > img {
  filter: saturate(1.06);
  transform: scale(1.045);
}

.fh-insight-status {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  color: rgba(10, 12, 46, 0.52);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.fh-insight-status > span i {
  color: #0d9e9e;
  font-style: normal;
}

.fh-insight-status > div {
  height: 2px;
  overflow: hidden;
  background: rgba(14, 77, 110, 0.14);
}

.fh-insight-status > div b {
  display: block;
  width: var(--home-insight-progress, 0%);
  height: 100%;
  background: linear-gradient(90deg, #0d9e9e, #3dbb8e, #8fd16a);
}

/* ---------- Resources journal: image-led editorial system ---------- */

.avx-resources-page .res-journal {
  padding: 110px 0 120px;
  background: #f7fbfa;
}

.avx-resources-page .res-journal-head {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.58fr) auto;
  gap: 54px;
  align-items: end;
  max-width: none;
}

.avx-resources-page .res-journal-head h2 {
  max-width: 620px;
  margin-bottom: 0;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 0.96;
}

.avx-resources-page .res-journal-head > p {
  margin: 0;
  color: #64748b;
  line-height: 1.7;
}

.res-journal-volume {
  display: flex;
  gap: 12px;
  align-items: end;
  padding-left: 24px;
  border-left: 2px solid #3dbb8e;
}

.res-journal-volume strong {
  color: #0a0c2e;
  font-size: 54px;
  line-height: 0.8;
}

.res-journal-volume small {
  color: #0e4d6e;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}

.avx-resources-page .res-journal-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
  min-height: 460px;
  margin-top: 58px;
  padding: 0;
  border: 1px solid rgba(10, 12, 46, 0.16);
  border-radius: 8px;
  background: #0a0c2e;
}

.res-journal-feature-media {
  position: relative;
  min-height: 460px;
  overflow: hidden;
}

.res-journal-feature-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 55%, rgba(10, 12, 46, 0.62));
}

.res-journal-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.res-journal-feature-media i {
  position: absolute;
  z-index: 2;
  top: 24px;
  left: 24px;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: 50%;
  color: #ffffff;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.res-journal-feature-copy {
  display: grid;
  align-content: center;
  padding: 48px;
}

.avx-resources-page .res-journal-feature h3 {
  font-size: clamp(2rem, 3.4vw, 3.5rem);
  line-height: 1.02;
}

.avx-resources-page .res-journal-feature:hover img {
  transform: scale(1.04);
}

.avx-resources-page .res-journal-toolbar {
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(10, 12, 46, 0.07);
}

.avx-resources-page .res-journal-search-box,
.avx-resources-page .res-journal-toolbar select {
  border-radius: 6px;
}

.avx-resources-page .res-blog-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: 16px;
  margin-top: 24px;
}

.avx-resources-page .res-blog-card {
  display: flex;
  min-width: 0;
  min-height: 490px;
  padding: 0;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid rgba(14, 77, 110, 0.14);
  border-top: 1px solid rgba(14, 77, 110, 0.14);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(10, 12, 46, 0.07);
  transition: border-color 300ms ease, box-shadow 340ms ease, transform 340ms cubic-bezier(0.22, 1, 0.36, 1);
}

.avx-resources-page .res-blog-card:nth-child(8n + 1) {
  grid-column: span 2;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
}

.res-blog-media {
  position: relative;
  display: block;
  min-height: 230px;
  overflow: hidden;
  background: #0e4d6e;
}

.res-blog-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(10, 12, 46, 0.52));
}

.res-blog-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1), filter 320ms ease;
}

.res-blog-media > span {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 14px;
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
}

.res-blog-card-copy {
  display: grid;
  flex: 1;
  align-content: start;
  padding: 24px;
}

.avx-resources-page .res-blog-card h4 {
  margin-top: 14px;
  font-size: 1.2rem;
  line-height: 1.18;
}

.avx-resources-page .res-blog-card p {
  line-height: 1.6;
}

.avx-resources-page .res-blog-foot {
  margin-top: auto;
}

.avx-resources-page .res-blog-card:hover {
  border-color: rgba(13, 158, 158, 0.36);
  box-shadow: 0 28px 58px rgba(10, 12, 46, 0.13);
  transform: translateY(-6px);
}

.avx-resources-page .res-blog-card:hover .res-blog-media img {
  filter: saturate(1.08);
  transform: scale(1.045);
}

@media (max-width: 1000px) {
  .avx-resources-page .res-journal-head {
    grid-template-columns: 1fr 1fr;
  }

  .res-journal-volume {
    grid-column: 1 / -1;
    width: fit-content;
  }

  .avx-resources-page .res-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .figma-home .fh-career-gallery {
    display: flex;
    height: auto;
  }

  .figma-home .fh-career-frame,
  .figma-home .fh-career-team-photo {
    flex: none;
    width: 100%;
    height: 290px;
    order: initial;
  }

  .figma-home .fh-career-frame figcaption {
    opacity: 1;
    transform: none;
  }

  .fh-insights {
    padding: 76px 0 88px;
  }

  .fh-insights-scroll {
    height: auto;
    min-height: 0;
  }

  .fh-insights-sticky {
    position: static;
    display: block;
    min-height: 0;
    padding: 0;
    overflow: hidden;
  }

  .fh-insight-viewport {
    margin-top: 38px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .fh-insight-viewport::-webkit-scrollbar { display: none; }

  .fh-insight-track {
    gap: 12px;
    padding: 0 16px 20px;
    transform: none !important;
  }

  .fh-insight-story,
  .fh-insight-story:nth-child(5n + 1),
  .fh-insight-story:nth-child(3n + 2) {
    flex: 0 0 min(84vw, 340px);
    width: min(84vw, 340px);
    height: 460px;
    min-height: 460px;
    scroll-snap-align: center;
    opacity: 1;
    filter: none;
    transform: none;
  }

  .fh-insight-story-copy > span,
  .fh-insight-story:not(.is-featured) .fh-insight-story-copy > span {
    max-height: 84px;
    opacity: 1;
    transform: none;
  }

  .fh-insight-status { display: none; }

  .avx-resources-page .res-journal {
    padding: 78px 0 88px;
  }

  .avx-resources-page .res-journal-head {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .res-journal-volume { grid-column: 1; }

  .avx-resources-page .res-journal-feature {
    grid-template-columns: 1fr;
    min-height: 0;
    margin-top: 42px;
  }

  .res-journal-feature-media { min-height: 280px; }
  .res-journal-feature-copy { padding: 30px 24px 34px; }

  .avx-resources-page .res-blog-grid {
    grid-template-columns: 1fr;
  }

  .avx-resources-page .res-blog-card,
  .avx-resources-page .res-blog-card:nth-child(8n + 1) {
    grid-column: 1;
    display: flex;
    min-height: 0;
  }

  .res-blog-media { min-height: 240px; }
}

/* ---------- About experience ---------- */

.about-experience {
  overflow: clip;
  background: #f8fafc;
  color: #0a0c2e;
}

.about-experience h1,
.about-experience h2,
.about-experience h3,
.about-experience p {
  letter-spacing: 0;
}

.about-kicker {
  margin: 0;
  color: #8fd16a;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.about-kicker.is-dark {
  color: #0d9e9e;
}

.about-text-action {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  width: fit-content;
  padding: 10px 0;
  border-bottom: 1px solid rgba(10, 12, 46, 0.24);
  color: #0a0c2e;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
}

.about-text-action i {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #0d9e9e;
  color: #ffffff;
  font-style: normal;
  transition: background 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-text-action:hover i,
.about-text-action:focus-visible i {
  background: #0e4d6e;
  transform: translateX(4px);
}

.about-text-action.is-light {
  border-color: rgba(255, 255, 255, 0.34);
  color: #ffffff;
}

.about-hero {
  position: relative;
  height: calc(86svh - 150px);
  min-height: 570px !important;
  max-height: 760px;
  overflow: hidden;
  background: #0a0c2e;
  color: #ffffff;
}

.about-hero-image,
.about-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.about-hero-image {
  object-fit: cover;
  object-position: center;
  animation: about-hero-drift 16s ease-in-out infinite alternate;
}

.about-hero-shade {
  background:
    linear-gradient(90deg, rgba(10, 12, 46, 0.96) 0%, rgba(10, 12, 46, 0.82) 32%, rgba(10, 12, 46, 0.18) 68%, rgba(10, 12, 46, 0.05) 100%),
    linear-gradient(180deg, rgba(10, 12, 46, 0.08), rgba(10, 12, 46, 0.46));
}

.about-hero-copy {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  height: calc(100% - 70px);
}

.about-hero-copy h1 {
  max-width: 9ch;
  margin: 18px 0 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 86px;
  font-weight: 500;
  line-height: 0.86;
}

.about-hero-copy h1 span {
  display: block;
  color: #3dbb8e;
  font-size: 42px;
  line-height: 1.1;
}

.about-hero-statement {
  max-width: 520px;
  margin: 26px 0 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.15;
}

.about-hero-lead {
  max-width: 520px;
  margin: 16px 0 20px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 14px;
  line-height: 1.65;
}

.about-hero-rail {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-height: 70px;
  padding: 16px 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(10, 12, 46, 0.72);
  backdrop-filter: blur(14px);
}

.about-hero-rail span {
  color: rgba(255, 255, 255, 0.86);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.about-hero-rail i {
  width: 62px;
  height: 1px;
  background: linear-gradient(90deg, #0d9e9e, #8fd16a);
}

.about-story {
  padding: 118px 0 132px;
  background: #ffffff;
}

.about-story-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.72fr);
  gap: 110px;
  align-items: center;
}

.about-story-copy h2,
.about-principles-heading h2,
.about-values-heading h2,
.about-environments-heading h2 {
  margin: 18px 0 0;
  color: #0a0c2e;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 54px;
  font-weight: 500;
  line-height: 1.02;
}

.about-story-intro {
  max-width: 640px;
  margin: 30px 0 0;
  color: #0e4d6e;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 24px;
  line-height: 1.35;
}

.about-story-copy > p:not(.about-kicker):not(.about-story-intro) {
  max-width: 680px;
  margin: 22px 0;
  color: #64748b;
  font-size: 15px;
  line-height: 1.75;
}

.about-story-visual {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #f8fafc;
  box-shadow: 0 26px 60px rgba(10, 12, 46, 0.12);
}

.about-story-visual img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 58% center;
}

.about-story-visual figcaption {
  position: absolute;
  right: 12px;
  bottom: 12px;
  left: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(10, 12, 46, 0.88);
  backdrop-filter: blur(12px);
}

.about-story-visual figcaption span {
  display: grid;
  gap: 4px;
  padding: 15px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.about-story-visual figcaption small {
  color: #8fd16a;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.about-story-visual figcaption strong {
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
}

.about-continuum {
  padding: 118px 0 126px;
  background: #0a0c2e;
  color: #ffffff;
}

.about-continuum-heading {
  display: grid;
  grid-template-columns: 0.62fr 1.25fr 0.8fr;
  gap: 54px;
  align-items: end;
}

.about-continuum-heading h2 {
  margin: 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 50px;
  font-weight: 500;
  line-height: 1.03;
}

.about-continuum-heading > p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14px;
  line-height: 1.7;
}

.about-continuum-route {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 86px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.about-continuum-route::before {
  position: absolute;
  top: -1px;
  left: 0;
  width: 25%;
  height: 2px;
  background: linear-gradient(90deg, #0d9e9e, #8fd16a);
  content: "";
  animation: about-route-scan 8s ease-in-out infinite;
}

.about-continuum-route article {
  position: relative;
  min-height: 310px;
  padding: 42px 28px 38px;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  transition: background 300ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-continuum-route article:last-child {
  border-right: 0;
}

.about-continuum-route article:hover {
  background: rgba(14, 77, 110, 0.32);
  transform: translateY(-8px);
}

.about-route-node {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #8fd16a;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.about-route-node::before {
  width: 9px;
  height: 9px;
  background: #0d9e9e;
  content: "";
  transform: rotate(45deg);
}

.about-continuum-route h3 {
  margin: 50px 0 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.12;
}

.about-continuum-route p {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
  line-height: 1.65;
}

.about-manifesto {
  position: relative;
  overflow: hidden;
  padding: 120px 0;
  background: #0e4d6e;
  color: #ffffff;
}

.about-manifesto::after {
  position: absolute;
  inset: 0 0 0 50%;
  background: #0d9e9e;
  content: "";
  opacity: 0.72;
}

.about-manifesto-ghost {
  position: absolute;
  z-index: 1;
  right: -34px;
  bottom: -100px;
  color: rgba(255, 255, 255, 0.07);
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 330px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.about-manifesto-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.about-manifesto-grid article {
  position: relative;
  padding: 0 70px 0 0;
}

.about-manifesto-grid article + article {
  padding: 0 0 0 70px;
  border-left: 1px solid rgba(255, 255, 255, 0.24);
}

.about-manifesto-grid article::before {
  display: block;
  width: 74px;
  height: 4px;
  margin-bottom: 28px;
  background: linear-gradient(90deg, #8fd16a, rgba(143, 209, 106, 0.12));
  content: "";
}

.about-manifesto-grid article + article::before {
  background: linear-gradient(90deg, #ffffff, rgba(255, 255, 255, 0.12));
}

.about-manifesto-grid .about-kicker {
  display: inline-flex;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(10, 12, 46, 0.12);
  color: #ffffff;
}

.about-manifesto-grid h2 {
  margin: 22px 0 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.12;
  text-wrap: balance;
}

.about-manifesto-grid article > p:last-child {
  max-width: 540px;
  margin: 28px 0 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 1.7;
}

.about-principles {
  padding: 126px 0 138px;
  background: #ffffff;
}

.about-principles-layout {
  display: grid;
  grid-template-columns: minmax(360px, 0.8fr) minmax(0, 1.2fr);
  gap: 110px;
  align-items: start;
}

.about-principles-heading {
  position: sticky;
  top: 110px;
}

.about-principles-heading h2 {
  font-size: 46px;
}

.about-principles-heading figure {
  position: relative;
  margin: 46px 0 0;
  overflow: hidden;
  border-radius: 8px;
}

.about-principles-heading figure::after {
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(180deg, transparent, rgba(10, 12, 46, 0.82));
  content: "";
}

.about-principles-heading figure img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.about-principles-heading figcaption {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 16px;
  left: 18px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.about-principles-index {
  border-top: 1px solid rgba(10, 12, 46, 0.16);
}

.about-principles-index details {
  border-bottom: 1px solid rgba(10, 12, 46, 0.16);
  transition: background 280ms ease;
}

.about-principles-index details[open] {
  background: linear-gradient(90deg, rgba(13, 158, 158, 0.08), transparent 72%);
}

.about-principles-index summary {
  display: grid;
  grid-template-columns: 1fr 32px;
  gap: 20px;
  align-items: center;
  min-height: 92px;
  padding: 20px 16px;
  color: #0a0c2e;
  cursor: pointer;
  list-style: none;
}

.about-principles-index summary::-webkit-details-marker {
  display: none;
}

.about-principles-index summary span {
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.2;
}

.about-principles-index summary i {
  position: relative;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(14, 77, 110, 0.24);
  border-radius: 50%;
}

.about-principles-index summary i::before,
.about-principles-index summary i::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 1px;
  background: #0e4d6e;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 220ms ease;
}

.about-principles-index summary i::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.about-principles-index details[open] summary i::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.about-principles-index details > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  padding: 0 76px 32px 16px;
}

.about-principles-index details p {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

.about-principles-index details small {
  align-self: end;
  color: #0d9e9e;
  font-size: 9px;
  font-weight: 800;
  text-align: right;
  text-transform: uppercase;
}

.about-environments {
  padding: 112px 0 0;
  background: #0a0c2e;
  color: #ffffff;
}

.about-environments-heading {
  display: grid;
  grid-template-columns: 0.45fr 1.25fr 0.5fr;
  gap: 48px;
  align-items: end;
  padding-bottom: 60px;
}

.about-environments-heading h2 {
  margin: 0;
  color: #ffffff;
  font-size: 48px;
}

.about-environments-heading .about-text-action {
  justify-self: end;
}

.about-environment-field {
  display: flex;
  height: 520px;
  overflow: hidden;
}

.about-environment-field > a {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  color: #ffffff;
  text-decoration: none;
  transition: flex-grow 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-environment-field > a + a {
  border-left: 2px solid #0a0c2e;
}

.about-environment-field > a:hover,
.about-environment-field > a:focus-visible {
  flex-grow: 1.55;
  outline: none;
}

.about-environment-field img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.76) contrast(1.05);
  transition: filter 400ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-environment-field > a:hover img,
.about-environment-field > a:focus-visible img {
  filter: saturate(1) contrast(1.02);
  transform: scale(1.035);
}

.about-environment-field > a::after {
  position: absolute;
  inset: 26% 0 0;
  background: linear-gradient(180deg, transparent, rgba(10, 12, 46, 0.92));
  content: "";
}

.about-environment-field > a > span {
  position: absolute;
  z-index: 2;
  right: 34px;
  bottom: 34px;
  left: 34px;
  display: grid;
  gap: 8px;
}

.about-environment-field small {
  color: #8fd16a;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.about-environment-field strong {
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 29px;
  font-weight: 500;
  line-height: 1.08;
}

.about-environment-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 18px max(24px, calc((100vw - 1180px) / 2));
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: #0e4d6e;
  color: rgba(255, 255, 255, 0.74);
  font-size: 12px;
}

.about-environment-foot a {
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.about-environment-foot i {
  color: #8fd16a;
  font-style: normal;
}

.about-values {
  padding: 112px 0 118px;
  background: #f8fafc;
}

.about-values-heading {
  display: grid;
  grid-template-columns: 0.45fr 1.55fr;
  gap: 48px;
  align-items: end;
}

.about-values-heading h2 {
  max-width: 780px;
  margin: 0;
  font-size: 48px;
}

.about-values-marquee {
  margin-top: 72px;
  overflow: hidden;
  border-top: 1px solid rgba(10, 12, 46, 0.15);
  border-bottom: 1px solid rgba(10, 12, 46, 0.15);
}

.about-values-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: about-values-scroll 32s linear infinite;
}

.about-values-track span {
  padding: 25px 28px;
  color: #0a0c2e;
  font-family: "Inter", "DM Sans", sans-serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.about-values-track i {
  width: 12px;
  height: 12px;
  margin: 0 4px;
  background: #0d9e9e;
  transform: rotate(45deg);
}

.about-values-proof {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 90px;
  align-items: end;
  padding-top: 58px;
}

.about-values-proof p {
  margin: 0;
  color: #0e4d6e;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 25px;
  line-height: 1.4;
}

.about-values-proof span {
  padding-top: 18px;
  border-top: 2px solid #0d9e9e;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.about-founders {
  padding: 112px 0 124px;
  border-top: 1px solid rgba(14, 77, 110, 0.12);
  background: linear-gradient(180deg, #f8fafc 0%, #f2fbf8 100%);
}

.about-founders-heading {
  display: grid;
  grid-template-columns: minmax(150px, 0.45fr) minmax(0, 1.1fr) minmax(260px, 0.55fr);
  gap: 48px;
  align-items: end;
}

.about-founders-heading h2 {
  margin: 0;
  color: #0a0c2e;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.04;
}

.about-founders-heading > p:last-child {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

.about-founder-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 58px;
}

.about-founder {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(14, 77, 110, 0.14);
  border-top: 4px solid #0d9e9e;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 22px 48px rgba(10, 12, 46, 0.08);
  transition: border-color 280ms ease, box-shadow 320ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-founder:nth-child(2) { border-top-color: #3dbb8e; }
.about-founder:nth-child(3) { border-top-color: #8fd16a; }

.about-founder figure {
  position: relative;
  aspect-ratio: 4 / 4.65;
  margin: 0;
  overflow: hidden;
  background: #e8f6f4;
}

.about-founder figure::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 36%;
  background: linear-gradient(180deg, transparent, rgba(10, 12, 46, 0.52));
  pointer-events: none;
}

.about-founder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.about-founder figure > span {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 16px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
}

.about-founder > div {
  min-height: 170px;
  padding: 24px 24px 28px;
}

.about-founder small {
  color: #0d9e9e;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.about-founder h3 {
  margin: 10px 0 8px;
  color: #0a0c2e;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.08;
}

.about-founder p {
  margin: 0;
  color: #64748b;
  font-size: 13px;
  line-height: 1.55;
}

.about-founder:hover {
  border-color: rgba(13, 158, 158, 0.34);
  box-shadow: 0 30px 62px rgba(10, 12, 46, 0.13);
  transform: translateY(-6px);
}

.about-founder:hover img {
  transform: scale(1.035);
}

.about-closing {
  position: relative;
  min-height: 620px;
  overflow: hidden;
  background: #0a0c2e;
  color: #ffffff;
}

.about-closing > img,
.about-closing > span {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.about-closing > img {
  object-fit: cover;
  object-position: center;
}

.about-closing > span {
  background: linear-gradient(90deg, rgba(10, 12, 46, 0.96), rgba(10, 12, 46, 0.72) 54%, rgba(10, 12, 46, 0.2));
}

.about-closing-copy {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  min-height: 620px;
}

.about-closing-copy h2 {
  max-width: 880px;
  margin: 22px 0 0;
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 52px;
  font-weight: 500;
  line-height: 1.1;
}

.about-closing-copy > p:not(.about-kicker) {
  max-width: 600px;
  margin: 26px 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 15px;
  line-height: 1.7;
}

.about-closing-copy .button {
  width: fit-content;
}

@keyframes about-hero-drift {
  from { transform: scale(1); }
  to { transform: scale(1.025); }
}

@keyframes about-route-scan {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(300%); }
}

@keyframes about-values-scroll {
  to { transform: translateX(-50%); }
}

@media (max-width: 1080px) {
  .about-hero-copy h1 { font-size: 72px; }
  .about-story-layout { gap: 64px; }
  .about-story-copy h2 { font-size: 46px; }
  .about-continuum-heading { grid-template-columns: 0.5fr 1.4fr 0.8fr; gap: 36px; }
  .about-continuum-heading h2 { font-size: 42px; }
  .about-continuum-route article { padding-inline: 20px; }
  .about-principles-layout { gap: 64px; }
  .about-environments-heading { grid-template-columns: 0.35fr 1.35fr 0.55fr; gap: 28px; }
  .about-environment-field strong { font-size: 24px; }
}

@media (max-width: 820px) {
  .about-hero { height: 680px; min-height: 0; }
  .about-hero-image { object-position: 58% center; }
  .about-hero-shade { background: linear-gradient(90deg, rgba(10, 12, 46, 0.94), rgba(10, 12, 46, 0.48)); }
  .about-hero-copy { align-content: end; padding-bottom: 110px; }
  .about-hero-copy h1 { font-size: 62px; }
  .about-hero-copy h1 span { font-size: 34px; }
  .about-hero-rail { gap: 12px; padding-inline: 18px; }
  .about-hero-rail i { width: 24px; }
  .about-story { padding: 88px 0; }
  .about-story-layout { grid-template-columns: 1fr; }
  .about-story-visual { width: min(100%, 520px); margin-inline: auto; }
  .about-continuum { padding: 88px 0; }
  .about-continuum-heading { grid-template-columns: 1fr; }
  .about-continuum-heading h2 { font-size: 40px; }
  .about-continuum-route { grid-template-columns: 1fr 1fr; }
  .about-continuum-route article:nth-child(2) { border-right: 0; }
  .about-continuum-route article:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  .about-manifesto { padding: 88px 0; }
  .about-manifesto::after { inset: 50% 0 0; }
  .about-manifesto-grid { grid-template-columns: 1fr; gap: 64px; }
  .about-manifesto-grid article,
  .about-manifesto-grid article + article { padding: 0; border: 0; }
  .about-manifesto-grid article + article { padding-top: 64px; border-top: 1px solid rgba(255, 255, 255, 0.24); }
  .about-principles { padding: 92px 0; }
  .about-principles-layout { grid-template-columns: 1fr; }
  .about-principles-heading { position: relative; top: auto; }
  .about-principles-heading figure { width: min(100%, 620px); }
  .about-environments-heading { grid-template-columns: 1fr; align-items: start; }
  .about-environments-heading .about-text-action { justify-self: start; }
  .about-environment-field { height: 430px; }
  .about-environment-field > a > span { right: 20px; bottom: 22px; left: 20px; }
  .about-environment-field strong { font-size: 21px; }
  .about-values-heading,
  .about-values-proof { grid-template-columns: 1fr; gap: 28px; }
  .about-founders-heading { grid-template-columns: 1fr; gap: 24px; align-items: start; }
  .about-founder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-closing-copy h2 { font-size: 42px; }
}

@media (max-width: 560px) {
  .about-hero { height: 650px; }
  .about-hero-image { object-position: 68% center; }
  .about-hero-shade { background: linear-gradient(180deg, rgba(10, 12, 46, 0.2), rgba(10, 12, 46, 0.94) 72%); }
  .about-hero-copy { padding-bottom: 92px; }
  .about-hero-copy h1 { font-size: 50px; }
  .about-hero-copy h1 span { font-size: 28px; }
  .about-hero-statement { font-size: 22px; }
  .about-hero-lead { max-width: 36ch; font-size: 13px; }
  .about-hero-rail { justify-content: flex-start; gap: 9px; overflow: hidden; }
  .about-hero-rail span { font-size: 8px; }
  .about-hero-rail i { width: 10px; flex: 0 0 10px; }
  .about-story-copy h2,
  .about-principles-heading h2,
  .about-values-heading h2,
  .about-environments-heading h2 { font-size: 36px; }
  .about-story-intro { font-size: 20px; }
  .about-continuum-route { grid-template-columns: 1fr; }
  .about-continuum-route article { min-height: 0; padding: 32px 18px; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  .about-continuum-route h3 { margin-top: 28px; }
  .about-continuum-route::before { width: 100%; animation: none; }
  .about-manifesto-grid h2 { font-size: 31px; }
  .about-manifesto-ghost { font-size: 190px; }
  .about-principles-index summary { min-height: 76px; padding-inline: 8px; }
  .about-principles-index summary span { font-size: 21px; }
  .about-principles-index details > div { grid-template-columns: 1fr; padding: 0 48px 28px 8px; }
  .about-principles-index details small { text-align: left; }
  .about-environments { padding-top: 82px; }
  .about-environment-field { display: grid; height: auto; }
  .about-environment-field > a { min-height: 330px; }
  .about-environment-field > a + a { border-top: 2px solid #0a0c2e; border-left: 0; }
  .about-environment-foot { align-items: flex-start; flex-direction: column; gap: 10px; }
  .about-values { padding: 82px 0; }
  .about-values-track span { padding: 20px 20px; font-size: 23px; }
  .about-values-proof p { font-size: 21px; }
  .about-founders { padding: 82px 0 90px; }
  .about-founders-heading h2 { font-size: 36px; }
  .about-founder-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 40px; }
  .about-founder figure { aspect-ratio: 4 / 4.25; }
  .about-closing { min-height: 590px; }
  .about-closing > img { object-position: 52% center; }
  .about-closing-copy { min-height: 590px; }
  .about-closing-copy h2 { font-size: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .about-hero-image,
  .about-continuum-route::before,
  .about-values-track {
    animation: none;
  }
}

.about-experience,
.about-experience h1,
.about-experience h2,
.about-experience h3,
.about-experience p,
.about-experience a,
.about-experience button,
.about-experience summary,
.about-experience small,
.about-experience strong,
.about-experience span {
  font-family: "Inter", "DM Sans", Arial, sans-serif;
}

/* ---------- Shared header contract ---------- */

body.site-body > header.site-header.figma-home-header {
  position: relative;
  top: auto;
  height: 81px;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 0;
  box-shadow: 0 12px 34px rgba(10, 12, 46, 0.08);
  backdrop-filter: none;
}

body.site-body > header.site-header.figma-home-header::after {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, #0a0c2e 0%, #0e4d6e 24%, #0d9e9e 58%, #3dbb8e 80%, rgba(143, 209, 106, 0.18) 100%);
  content: "";
  pointer-events: none;
}

body.site-body > header.figma-home-header .nav-shell {
  width: 100%;
  max-width: none;
  min-height: 81px;
  padding: 0 124px 0 159px;
  grid-template-columns: 161px 1fr 172px;
  gap: 72px;
}

body.site-body > header.figma-home-header .brand {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  transition: opacity 220ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.site-body > header.figma-home-header .brand img {
  display: block;
  width: 161px;
  height: auto;
}

body.site-body > header.figma-home-header .brand:hover,
body.site-body > header.figma-home-header .brand:focus-visible {
  opacity: 0.88;
  transform: translateY(-1px);
}

body.site-body > header.figma-home-header .brand:focus-visible {
  outline: 2px solid rgba(13, 158, 158, 0.42);
  outline-offset: 6px;
}

body.site-body > header.figma-home-header .primary-nav {
  gap: 38px;
  justify-content: center;
}

body.site-body > header.figma-home-header .primary-nav a {
  position: relative;
  padding: 10px 6px;
  border: 0;
  color: #070a3d;
  font-family: "Inter", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 20px;
  transition: color 220ms ease;
}

body.site-body > header.figma-home-header .primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: 3px;
  left: 0;
  height: 2px;
  border-radius: 2px;
  background: #116997;
  content: "";
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.site-body > header.figma-home-header .primary-nav a:hover,
body.site-body > header.figma-home-header .primary-nav a:focus-visible,
body.site-body > header.figma-home-header .primary-nav a[aria-current="page"] {
  color: #116997;
}

body.site-body > header.figma-home-header .primary-nav a:hover::after,
body.site-body > header.figma-home-header .primary-nav a:focus-visible::after,
body.site-body > header.figma-home-header .primary-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left center;
}

body.site-body > header.figma-home-header .primary-nav a:focus-visible {
  outline: none;
}

body.site-body > header.figma-home-header .nav-cta {
  width: 172px;
  min-height: 48px;
  padding: 12px 18px;
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: #0e4d6e;
  box-shadow: 0 10px 24px rgba(14, 77, 110, 0.22), inset 0 1px rgba(255, 255, 255, 0.14);
  color: #ffffff;
  font-family: "DM Sans", "Inter", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  white-space: nowrap;
  transition: background 220ms ease, box-shadow 220ms ease, transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.site-body > header.figma-home-header .nav-cta::before {
  display: none;
}

body.site-body > header.figma-home-header .nav-cta::after {
  display: inline-grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #8fd16a;
  content: "\2197";
  font-size: 12px;
  line-height: 1;
  transition: background 220ms ease, transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.site-body > header.figma-home-header .nav-cta:hover,
body.site-body > header.figma-home-header .nav-cta:focus-visible {
  background: #0a0c2e;
  box-shadow: 0 14px 30px rgba(10, 12, 46, 0.24), inset 0 1px rgba(255, 255, 255, 0.16);
  transform: translateY(-2px);
}

body.site-body > header.figma-home-header .nav-cta:hover::after,
body.site-body > header.figma-home-header .nav-cta:focus-visible::after {
  background: rgba(61, 187, 142, 0.2);
  transform: translate(1px, -1px);
}

@media (max-width: 1180px) {
  body.site-body > header.figma-home-header .nav-shell {
    padding: 0 28px;
    grid-template-columns: 161px 1fr 172px;
    gap: 28px;
  }

  body.site-body > header.figma-home-header .primary-nav {
    gap: 22px;
  }
}

@media (max-width: 980px) {
  body.site-body > header.site-header.figma-home-header {
    height: 72px;
  }

  body.site-body > header.figma-home-header .nav-shell {
    min-height: 72px;
    padding: 0 20px;
    grid-template-columns: 1fr auto;
    gap: 20px;
  }

  body.site-body > header.figma-home-header .brand img {
    width: 150px;
  }

  body.site-body > header.figma-home-header .nav-toggle {
    display: block;
    grid-column: 4;
    grid-row: 1;
    width: 44px;
    height: 44px;
    border-color: rgba(14, 77, 110, 0.18);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(10, 12, 46, 0.08);
  }

  body.site-body > header.figma-home-header .nav-toggle span {
    background: #0e4d6e;
  }

  body.site-body > header.figma-home-header .primary-nav {
    position: absolute;
    z-index: 20;
    top: 72px;
    right: 20px;
    left: 20px;
    display: none;
    width: auto;
    margin-inline: 0;
    flex-direction: column;
    gap: 0;
    padding: 16px 20px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(10, 12, 46, 0.14);
    transform: none;
  }

  body.site-body > header.figma-home-header .primary-nav.is-open {
    display: flex;
  }

  body.site-body > header.figma-home-header .primary-nav a {
    padding: 12px 8px;
    border-bottom: 1px solid rgba(14, 77, 110, 0.08);
    transform: none;
  }

  body.site-body > header.figma-home-header .primary-nav a::after {
    top: 50%;
    right: auto;
    bottom: auto;
    left: 0;
    width: 3px;
    height: 22px;
    transform: translateY(-50%) scaleY(0);
  }

  body.site-body > header.figma-home-header .primary-nav a:hover::after,
  body.site-body > header.figma-home-header .primary-nav a:focus-visible::after,
  body.site-body > header.figma-home-header .primary-nav a[aria-current="page"]::after {
    transform: translateY(-50%) scaleY(1);
  }

  body.site-body > header.figma-home-header .nav-cta {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.site-body > header.figma-home-header .brand,
  body.site-body > header.figma-home-header .primary-nav a,
  body.site-body > header.figma-home-header .nav-cta,
  body.site-body > header.figma-home-header .nav-cta::after {
    transition: none;
  }
}

/* ===== Reduce Service Card Height ===== */

.industry-card-stage{
  min-width: 520px;
    height:500px !important;
    min-height:500px !important;
}

@media (max-width: 768px) {
  .industry-card-stage{
    min-width: 0;
    width: 100%;
  }
  /* Fix: the unconditional rule above forces height:500px!important on the
     homepage discipline-selector stage. On mobile that stage now holds all
     6 stacked cards in normal flow (not absolute/centered), so a fixed
     500px height clips/misplaces them. Scoped to .avx-industries-page only
     so other pages reusing .industry-card-stage keep their fixed height. */
  .avx-industries-page .industry-card-stage {
    height: auto !important;
    min-height: 0 !important;
  }
}

@media (max-width: 560px) {
  .industry-card-stage{
    height: 585px !important;
    min-height: 585px !important;
  }
}

.fh-service-reference-shell{
    padding:36px 42px !important;
}

.fh-service-reference-copy{
    padding:0 !important;
}

.fh-service-ui-grid{
    gap:10px !important;
}

.fh-service-ui-tile{
    min-height:86px !important;
    padding:14px !important;
}
.figma-home .fh-industries {
    position: relative;
    height: auto;
    padding: 70px 0 112px;
    overflow: hidden;
    background:#0a0c2e;
}

body.site-body > header.figma-home-header .nav-cta {
    width: auto !important;
    min-height: 42px !important ;
    padding: 8px 16px !important ;
    gap: 8px !important ;

    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 8px !important;
    background: #0e4d6e;
    box-shadow: 0 8px 18px rgba(14,77,110,.18) ,
                inset 0 1px rgba(255,255,255,.18) !important;

    color: #fff;
    font-size: 15px !important;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
}

.figma-home .fh-services-selector .fh-service-reference-copy h3 {
    font-size: 20px !important;
    font-weight: 550;
    /*line-height: 36px;*/
}

.fh-services-selector .fh-service-reference-copy p {
    max-width: 52ch;
    margin: 14px 0 0;
    color: #70818e;
    font-size: 1.15rem !important;
    font-weight: 220 !important;
    line-height: 1.5;
}


.figma-home .fh-industry-card:nth-child(1){
    --industry-hover: rgba(1, 1, 30, 0.90);
}


.figma-home .fh-industry-card:nth-child(2){
    --industry-hover: rgba(13, 31, 60, 0.90);
}

.figma-home .fh-industry-card:nth-child(3){
    --industry-hover: rgba(76, 180, 135, 0.90);
}
.figma-home .fh-industry-card:nth-child(4){
    --industry-hover: rgba(14, 77, 110, 0.90);
}

.figma-home .fh-industry-card:nth-child(5){
    --industry-hover: rgba(13, 158, 158, 0.90);
}

.figma-home .fh-industry-card:nth-child(6){
    --industry-hover: rgba(143, 209, 106, 0.90);
}

/* ==========================================================================
   AVEX MOTION & UI UPGRADE LAYER
   Scope: shared header/footer (site-wide) + homepage sections.
   Palette unchanged: navy #0a0c2e Â· ocean #0e4d6e Â· cyan #0d9e9e Â·
   sage #3dbb8e Â· lime #8fd16a. Appended last so it wins the cascade.
   ========================================================================== */

:root {
  --avx-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --avx-ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
}

/* ---------- 1. Header: sticky, condensing, frosted, with scroll progress -- */

body.site-body > header.site-header.figma-home-header {
  position: sticky;
  top: 0;
  z-index: 90;
  height: auto;
  min-height: 81px;
  background: rgba(255, 255, 255, 0.97);
  transition:
    min-height 320ms var(--avx-ease),
    background 320ms ease,
    box-shadow 320ms ease,
    backdrop-filter 320ms ease;
}

body.site-body > header.site-header.figma-home-header .nav-shell {
  transition: min-height 320ms var(--avx-ease);
}

body.site-body > header.site-header.figma-home-header.is-scrolled {
  min-height: 64px;
  background: rgba(255, 255, 255, 0.86);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  box-shadow: 0 18px 44px rgba(10, 12, 46, 0.13);
}

body.site-body > header.site-header.figma-home-header.is-scrolled .nav-shell {
  min-height: 64px;
}

body.site-body > header.figma-home-header .brand img {
  transition: width 320ms var(--avx-ease);
}

body.site-body > header.site-header.figma-home-header.is-scrolled .brand img {
  width: 138px;
}

/* Static gradient rule recedes; the live progress bar becomes the line. */
body.site-body > header.site-header.figma-home-header::after {
  opacity: 0.22;
  transition: opacity 320ms ease;
}

.figma-home-header .nav-progress {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, #0e4d6e 0%, #0d9e9e 42%, #3dbb8e 74%, #8fd16a 100%);
  box-shadow: 0 0 12px rgba(13, 158, 158, 0.45);
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
  will-change: transform;
}

/* ---------- 2. Mobile nav: smooth drop-in -------------------------------- */

@media (max-width: 980px) {
  body.site-body > header.site-header.figma-home-header,
  body.site-body > header.site-header.figma-home-header.is-scrolled {
    min-height: 72px;
  }

  body.site-body > header.site-header.figma-home-header.is-scrolled .nav-shell {
    min-height: 72px;
  }

  body.site-body > header.figma-home-header .primary-nav.is-open {
    animation: avx-nav-drop 340ms var(--avx-ease) both;
  }

  body.site-body > header.figma-home-header .primary-nav.is-open a {
    animation: avx-nav-item 420ms var(--avx-ease) both;
  }

  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(1) { animation-delay: 40ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(2) { animation-delay: 80ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(3) { animation-delay: 120ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(4) { animation-delay: 160ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(5) { animation-delay: 200ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(6) { animation-delay: 240ms; }
  body.site-body > header.figma-home-header .primary-nav.is-open a:nth-child(7) { animation-delay: 280ms; }
}

@keyframes avx-nav-drop {
  from { opacity: 0; transform: translateY(-10px) scale(0.985); }
  to { opacity: 1; transform: none; }
}

@keyframes avx-nav-item {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: none; }
}

/* ---------- 3. Hero: cinematic overlay with orchestrated entrance -------- */

.figma-home .fh-hero {
  position: relative;
  height: clamp(560px, 82vh, 740px);
  background: #0a0c2e;
}

.figma-home .fh-hero video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.fh-motion-ready .fh-hero video {
  animation: avx-hero-kenburns 26s var(--avx-ease-soft) both;
}

@keyframes avx-hero-kenburns {
  from { transform: scale(1.1); }
  to { transform: scale(1); }
}

.fh-hero-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(78deg, rgba(6, 9, 34, 0.86) 0%, rgba(8, 14, 42, 0.62) 38%, rgba(10, 12, 46, 0.16) 68%, rgba(10, 12, 46, 0.05) 100%),
    linear-gradient(0deg, rgba(6, 9, 34, 0.55) 0%, rgba(6, 9, 34, 0) 32%);
  pointer-events: none;
}

.fh-hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(1240px, calc(100% - 40px));
  height: 100%;
  margin: 0 auto;
  flex-direction: column;
  justify-content: center;
  padding-bottom: 30px;
}

.fh-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: #8fd16a;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 16px;
  text-transform: uppercase;
}

.fh-hero-eyebrow span {
  display: block;
  width: 40px;
  height: 1px;
  background: currentColor;
}

.figma-home .fh-hero-title {
  margin: 0 0 22px;
  color: #ffffff;
  font-size: clamp(34px, 4.6vw, 58px);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.12;
}

.fh-hero-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
}

.fh-hero-line > span {
  display: block;
}

.fh-hero-sub {
  max-width: 52ch;
  margin: 0 0 34px;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.65;
}

.fh-hero-actions {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.figma-home .fh-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 26px;
  border-radius: 8px;
  background: linear-gradient(120deg, #0d9e9e 0%, #3dbb8e 100%);
  box-shadow: 0 14px 34px rgba(13, 158, 158, 0.34), inset 0 1px rgba(255, 255, 255, 0.28);
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  transition: transform 300ms var(--avx-ease), box-shadow 300ms ease, filter 300ms ease;
}

.figma-home .fh-hero-cta span {
  transition: transform 300ms var(--avx-ease);
}

.figma-home .fh-hero-cta:hover,
.figma-home .fh-hero-cta:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 20px 44px rgba(13, 158, 158, 0.46), inset 0 1px rgba(255, 255, 255, 0.3);
  filter: brightness(1.05);
}

.figma-home .fh-hero-cta:hover span,
.figma-home .fh-hero-cta:focus-visible span {
  transform: translate(2px, -2px);
}

.figma-home .fh-hero-ghost {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 4px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 15px;
  font-weight: 600;
  transition: color 240ms ease;
}

.figma-home .fh-hero-ghost span {
  transition: transform 300ms var(--avx-ease);
}

.figma-home .fh-hero-ghost:hover,
.figma-home .fh-hero-ghost:focus-visible {
  color: #8fd16a;
}

.figma-home .fh-hero-ghost:hover span,
.figma-home .fh-hero-ghost:focus-visible span {
  transform: translateX(5px);
}

.fh-hero-scrollcue {
  position: absolute;
  z-index: 2;
  bottom: 26px;
  left: 50%;
  display: block;
  width: 24px;
  height: 38px;
  border: 1.5px solid rgba(255, 255, 255, 0.45);
  border-radius: 13px;
  transform: translateX(-50%);
}

.fh-hero-scrollcue i {
  position: absolute;
  top: 7px;
  left: 50%;
  width: 3px;
  height: 8px;
  border-radius: 3px;
  background: #8fd16a;
  transform: translateX(-50%);
  animation: avx-scrollcue 2.1s ease-in-out infinite;
}

@keyframes avx-scrollcue {
  0% { opacity: 0; transform: translate(-50%, 0); }
  28% { opacity: 1; }
  62% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, 12px); }
}

/* Hero entrance choreography (runs once motion JS is ready) */
body.fh-motion-ready .fh-hero-eyebrow,
body.fh-motion-ready .fh-hero-sub,
body.fh-motion-ready .fh-hero-actions,
body.fh-motion-ready .fh-hero-scrollcue {
  animation: avx-fade-up 900ms var(--avx-ease) both;
}

body.fh-motion-ready .fh-hero-eyebrow { animation-delay: 220ms; }

body.fh-motion-ready .fh-hero-line > span {
  animation: avx-line-rise 950ms var(--avx-ease) both;
}

body.fh-motion-ready .fh-hero-line:nth-child(1) > span { animation-delay: 360ms; }
body.fh-motion-ready .fh-hero-line:nth-child(2) > span { animation-delay: 480ms; }
body.fh-motion-ready .fh-hero-sub { animation-delay: 700ms; }
body.fh-motion-ready .fh-hero-actions { animation-delay: 840ms; }
body.fh-motion-ready .fh-hero-scrollcue { animation-delay: 1250ms; }

@keyframes avx-line-rise {
  from { opacity: 0.001; transform: translateY(112%); }
  to { opacity: 1; transform: none; }
}

@keyframes avx-fade-up {
  from { opacity: 0; transform: translateY(22px); filter: blur(5px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}

/* ---------- 4. Logo strip: caption + edge fades -------------------------- */

.figma-home .fh-logo-strip {
  height: auto;
  padding: 0px 0;
  background-color: #e9e9e9;
}

.fh-logo-caption {
  margin: 0 0 16px;
  color: #64748b;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  line-height: 16px;
  text-align: center;
  text-transform: uppercase;
}

/* ---------- 5. Scroll-reveal system (data-fx) ----------------------------- */

body.fh-motion-ready .figma-home [data-fx] {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 780ms var(--avx-ease),
    transform 780ms var(--avx-ease);
  transition-delay: calc(var(--fx-i, 0) * 95ms);
  will-change: opacity, transform;
}

body.fh-motion-ready .figma-home [data-fx].fx-in {
  opacity: 1;
  transform: none;
}

/* Eyebrow rule draws itself when its section arrives */
body.fh-motion-ready .figma-home [data-fx] .fh-section-title p span {
  width: 0;
  transition: width 700ms var(--avx-ease) 250ms;
}

body.fh-motion-ready .figma-home [data-fx].fx-in .fh-section-title p span {
  width: 32px;
}

/* Careers: benefit chips pop in sequence after the copy lands */
body.fh-motion-ready .figma-home .fh-careers-copy .fh-career-benefits span,
body.fh-motion-ready .figma-home .fh-careers-copy .fh-career-benefits a {
  opacity: 0;
  transform: translateY(14px) scale(0.96);
  transition: opacity 520ms var(--avx-ease), transform 520ms var(--avx-ease);
}

body.fh-motion-ready .figma-home .fh-careers-copy.fx-in .fh-career-benefits span,
body.fh-motion-ready .figma-home .fh-careers-copy.fx-in .fh-career-benefits a {
  opacity: 1;
  transform: none;
}

.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(1),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(1) { transition-delay: 380ms; }
.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(2),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(2) { transition-delay: 470ms; }
.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(3),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(3) { transition-delay: 560ms; }
.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(4),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(4) { transition-delay: 650ms; }
.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(5),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(5) { transition-delay: 740ms; }
.figma-home .fh-careers-copy.fx-in .fh-career-benefits span:nth-child(6),
.figma-home .fh-careers-copy.fx-in .fh-career-benefits a:nth-child(6) { transition-delay: 830ms; }

/* ---------- 6. Hover micro-interactions ----------------------------------- */

.figma-home .fh-industry-card {
  transition: transform 420ms var(--avx-ease), box-shadow 420ms ease;
}

.figma-home .fh-industry-card:hover,
.figma-home .fh-industry-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(10, 12, 46, 0.22);
}

.figma-home .fh-industry-card:hover .fh-card-photo,
.figma-home .fh-industry-card:focus-visible .fh-card-photo {
  transform: scale(1.07);
}

.figma-home .fh-insight-media img {
  transition: transform 700ms var(--avx-ease);
}

.figma-home .fh-insight-story:hover .fh-insight-media img,
.figma-home .fh-insight-story:focus-visible .fh-insight-media img {
  transform: scale(1.06);
}

.figma-home .fh-career-frame img {
  transition: transform 700ms var(--avx-ease);
}

.figma-home .fh-career-frame:hover img {
  transform: scale(1.05);
}

.figma-home .fh-industries-intro a span,
.figma-home .fh-leadership-heading a span,
.figma-home .fh-insights-heading a span {
  display: inline-block;
  transition: transform 300ms var(--avx-ease);
}

.figma-home .fh-industries-intro a:hover span,
.figma-home .fh-leadership-heading a:hover span,
.figma-home .fh-insights-heading a:hover span {
  transform: translateX(5px);
}

/* ---------- 7. Footer & ticker (site-wide) -------------------------------- */

.fh-ticker:hover .fh-ticker-track {
  animation-play-state: paused;
}

.fh-ticker i {
  animation: avx-diamond-pulse 2.6s ease-in-out infinite;
}

@keyframes avx-diamond-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(40, 126, 255, 0.4); }
  50% { opacity: 0.65; box-shadow: 0 0 0 5px rgba(40, 126, 255, 0); }
}

body.fh-motion-ready .fh-footer-ghost span {
  display: inline-block;
  opacity: 0;
  transform: translateY(70px);
  transition: opacity 900ms var(--avx-ease), transform 900ms var(--avx-ease);
}

.fh-footer.is-inview .fh-footer-ghost span {
  opacity: 1;
  transform: none;
}

.fh-footer.is-inview .fh-footer-ghost span:nth-child(1) { transition-delay: 80ms; }
.fh-footer.is-inview .fh-footer-ghost span:nth-child(2) { transition-delay: 190ms; }
.fh-footer.is-inview .fh-footer-ghost span:nth-child(3) { transition-delay: 300ms; }
.fh-footer.is-inview .fh-footer-ghost span:nth-child(4) { transition-delay: 410ms; }

body.fh-motion-ready .fh-footer-brand,
body.fh-motion-ready .fh-footer-statement,
body.fh-motion-ready .fh-footer-nav {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 800ms var(--avx-ease), transform 800ms var(--avx-ease);
}

.fh-footer.is-inview .fh-footer-brand { transition-delay: 160ms; opacity: 1; transform: none; }
.fh-footer.is-inview .fh-footer-statement { transition-delay: 280ms; opacity: 1; transform: none; }
.fh-footer.is-inview .fh-footer-nav { transition-delay: 400ms; opacity: 1; transform: none; }

.fh-footer-nav a {
  position: relative;
  width: fit-content;
  transition: color 220ms ease, transform 280ms var(--avx-ease);
}

.fh-footer-nav a::before {
  position: absolute;
  top: 50%;
  left: -14px;
  width: 8px;
  height: 1.5px;
  background: #8fd16a;
  content: "";
  opacity: 0;
  transform: translateY(-50%) scaleX(0);
  transform-origin: left center;
  transition: opacity 220ms ease, transform 280ms var(--avx-ease);
}

.fh-footer-nav a:hover,
.fh-footer-nav a:focus-visible {
  color: #ffffff;
  transform: translateX(14px);
}

.fh-footer-nav a:hover::before,
.fh-footer-nav a:focus-visible::before {
  opacity: 1;
  transform: translateY(-50%) scaleX(1);
}

.fh-footer-statement a {
  transition: color 220ms ease;
}

.fh-footer-statement a span {
  display: inline-block;
  transition: transform 300ms var(--avx-ease);
}

.fh-footer-statement a:hover,
.fh-footer-statement a:focus-visible {
  color: #8fd16a;
}

.fh-footer-statement a:hover span,
.fh-footer-statement a:focus-visible span {
  transform: translate(3px, -3px);
}

.fh-footer-bottom a {
  transition: color 220ms ease;
}

.fh-footer-bottom a:hover,
.fh-footer-bottom a:focus-visible {
  color: rgba(255, 255, 255, 0.85);
}

/* ---------- 8. Reduced motion: switch everything off ----------------------- */

@media (prefers-reduced-motion: reduce) {
  body.site-body > header.site-header.figma-home-header,
  body.site-body > header.site-header.figma-home-header .nav-shell,
  body.site-body > header.figma-home-header .brand img,
  .figma-home-header .nav-progress {
    transition: none;
  }

  body.fh-motion-ready .fh-hero video,
  body.fh-motion-ready .fh-hero-eyebrow,
  body.fh-motion-ready .fh-hero-line > span,
  body.fh-motion-ready .fh-hero-sub,
  body.fh-motion-ready .fh-hero-actions,
  body.fh-motion-ready .fh-hero-scrollcue,
  body.site-body > header.figma-home-header .primary-nav.is-open,
  body.site-body > header.figma-home-header .primary-nav.is-open a,
  .fh-hero-scrollcue i,
  .fh-ticker i {
    animation: none;
  }

  .figma-home [data-fx],
  .figma-home [data-fx] .fh-section-title p span,
  .figma-home .fh-careers-copy .fh-career-benefits span,
  .figma-home .fh-careers-copy .fh-career-benefits a,
  .fh-footer-ghost span,
  .fh-footer-brand,
  .fh-footer-statement,
  .fh-footer-nav,
  .figma-home .fh-industry-card,
  .figma-home .fh-card-photo,
  .figma-home .fh-insight-media img,
  .figma-home .fh-career-frame img {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .figma-home [data-fx] .fh-section-title p span {
    width: 32px;
  }
}



/* ===== Leadership Stability Patch ===== */
.fh-leadership{
  position:relative !important;
  min-height:760px !important;
  height:auto !important;
  overflow:visible !important;
}

.fh-leadership-stage,
[data-leadership-stage]{
  position:relative !important;
  width:min(1100px,calc(100% - 72px)) !important;
  margin:56px auto 0 !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}

.fh-leadership .fh-leader-card{
  position:relative !important;
  top:20px !important;
  left:auto !important;
  right:auto !important;
  margin:0 auto !important;
  width:100% !important;
  max-width:1100px !important;
  transform:none !important;
}

.fh-leadership [data-leadership-stage].is-scrolling-next,
.fh-leadership [data-leadership-stage].is-scrolling-previous{
  animation:none !important;
  transform:none !important;
}

@media (max-width:980px){
  .fh-leadership{
    min-height:auto !important;
  }
  .fh-leadership-stage,
  [data-leadership-stage]{
    width:100% !important;
    margin-top:32px !important;
  }
}

/* =========================================================
   ABOUT PAGE — ENGINEERING INTEGRITY
   AVEX Consulting
========================================================= */

.about-integrity{
    position:relative;
    padding:120px 0;
    background:
        radial-gradient(circle at top right,rgba(143,209,106,.08),transparent 35%),
        linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
    overflow:hidden;
}

.about-integrity::before{
    content:"";
    position:absolute;
    top:0;
    left:50%;
    width:90%;
    height:1px;
    transform:translateX(-50%);
    background:linear-gradient(
        90deg,
        transparent,
        rgba(8,108,84,.35),
        transparent
    );
}

.about-integrity-grid{
    max-width:1280px;
    margin:auto;
    padding:0 40px;

    display:grid;
    grid-template-columns:380px 1fr;
    gap:90px;
    align-items:center;
}

/* LEFT */

.integrity-visual{
    position:relative;
    width:360px;
    height:360px;
    margin:auto;
}

.integrity-image{

    width:100%;
    height:100%;

    border-radius:50%;
    overflow:hidden;

    border:10px solid #fff;

    box-shadow:
        0 30px 70px rgba(10,12,46,.14);
}

.integrity-image img{

    width:100%;
    height:100%;
    object-fit:cover;
}

/* rotating ring */

.integrity-ring{

    position:absolute;

    inset:-22px;

    border-radius:50%;

    border:2px dashed rgba(8,108,84,.35);

    animation:integrityRotate 22s linear infinite;
}

.integrity-ring span{

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:flex-start;

    padding-top:12px;

    color:#086C54;

    font-size:11px;

    font-weight:700;

    letter-spacing:4px;

    text-transform:uppercase;
}

@keyframes integrityRotate{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

/* RIGHT */

.integrity-content small{

    display:inline-flex;

    align-items:center;

    gap:12px;

    color:#086C54;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;
}

.integrity-content small::before{

    content:"";

    width:48px;

    height:2px;

    background:#8FD16A;
}

.integrity-content h2{

    margin:22px 0;

    font-size:64px;

    line-height:1.05;

    color:#0A0C2E;

    max-width:700px;
}

.integrity-content p{

    max-width:680px;

    font-size:18px;

    color:#65748b;

    line-height:1.9;
}

/* COUNTERS */

.integrity-stats{

    margin-top:55px;

    display:grid;

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

    gap:24px;
}

.integrity-stat{

    background:#fff;

    border:1px solid rgba(8,108,84,.08);

    border-radius:18px;

    padding:28px;

    box-shadow:0 20px 45px rgba(10,12,46,.06);

    transition:.35s;
}

.integrity-stat:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 60px rgba(10,12,46,.12);
}

.integrity-stat h3{

    margin:0;

    font-size:52px;

    color:#086C54;

    font-weight:800;
}

.integrity-stat span{

    display:block;

    margin-top:10px;

    color:#64748b;

    line-height:1.6;
}

/* FLOATING CERTIFICATION CARDS */

.integrity-floating{

    position:absolute;

    right:-30px;

    top:40px;

    display:grid;

    gap:18px;
}

.integrity-card{

    padding:18px 24px;

    background:rgba(255,255,255,.9);

    backdrop-filter:blur(18px);

    border-radius:16px;

    box-shadow:0 18px 45px rgba(10,12,46,.12);

    border:1px solid rgba(255,255,255,.6);

    animation:floatCard 6s ease-in-out infinite;
}

.integrity-card:nth-child(2){

    animation-delay:2s;
}

.integrity-card:nth-child(3){

    animation-delay:4s;
}

.integrity-card strong{

    display:block;

    color:#0A0C2E;

    font-size:16px;
}

.integrity-card span{

    color:#086C54;

    font-size:13px;

    font-weight:600;
}

@keyframes floatCard{

    0%{

        transform:translateY(0px);

    }

    50%{

        transform:translateY(-10px);

    }

    100%{

        transform:translateY(0px);

    }

}

/* CTA */

.integrity-button{

    display:inline-flex;

    align-items:center;

    gap:14px;

    margin-top:48px;

    padding:18px 34px;

    background:#086C54;

    color:#fff;

    border-radius:999px;

    text-decoration:none;

    font-weight:700;

    transition:.35s;
}

.integrity-button:hover{

    background:#0A0C2E;

    transform:translateY(-3px);
}

/* MOBILE */

@media(max-width:991px){

.about-integrity-grid{

grid-template-columns:1fr;

gap:60px;

text-align:center;

}

.integrity-content h2{

font-size:46px;

margin:auto;

}

.integrity-content p{

margin:auto;

}

.integrity-visual{

width:280px;

height:280px;

}

.integrity-floating{

position:relative;

right:auto;

top:auto;

margin:40px auto 0;

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

}

.integrity-stats{

grid-template-columns:1fr;

}

}

@media(max-width:576px){

.about-integrity{

padding:80px 0;

}

.integrity-content h2{

font-size:38px;

}

.integrity-floating{

grid-template-columns:1fr;

}

}
.about-integrity [data-reveal]{

opacity:0;

transform:translateY(40px);

transition:.8s cubic-bezier(.2,.8,.2,1);

}

.about-integrity [data-reveal].active{

opacity:1;

transform:none;

}

.highlight-grid{

display:grid;

grid-template-columns:
320px
1fr
320px;

align-items:center;

gap:80px;
}
.avxheading13{
  color: #0E4D6E !important;
}
.avxheading14{
  color: #0D9E9E;
}

/* ===================================================
   Consolidated sitewide blocks (moved out of individual
   pages during the July 2026 cleanup - previously copy-
   pasted inline into every page's <head>/<body>).
=================================================== */

.avx-megas{
      --m-ink: var(--ink, #0a0c2e);
      --m-ocean: var(--ocean, #0e7a6d);
      --m-cyan: var(--cyan, #0d9e9e);
      --m-sage: #3dbb8e;
      --m-line: var(--line, rgba(10,12,46,.12));
      --m-mint: #e9f3ef;
      --m-ease: cubic-bezier(.22,1,.36,1);
      --m-spring: cubic-bezier(.34,1.4,.5,1);
      position:absolute; left:0; right:0; top:100%;
      z-index:60; font-family:inherit;
    }
    .avx-mega{position:absolute;left:0;right:0;top:0;pointer-events:none}
    .avx-mega.show{pointer-events:auto}
    .avx-mega-panel{
      width:min(1160px, calc(100% - 3rem));
      margin:.45rem auto 0;
      background:#fff;border:1px solid var(--m-line);border-radius:6px;
      box-shadow:0 40px 90px rgba(10,12,46,.22);overflow:clip;
      display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);
      opacity:0;visibility:hidden;transform:translateY(-14px) scale(.985);transform-origin:top center;
      transition:opacity .35s var(--m-ease), transform .45s var(--m-ease), visibility 0s .45s;
    }
    .avx-mega.show .avx-mega-panel{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--m-ease), transform .45s var(--m-ease)}
    .avx-caret{display:inline-block;width:8px;height:8px;margin-left:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s var(--m-ease);vertical-align:middle}
    [aria-expanded="true"] .avx-caret{transform:rotate(225deg) translateY(-1px)}
    /* ---------- shared panel pieces ---------- */
    .avx-mega-l{padding:clamp(1.6rem,3vw,2.2rem)}
    .avx-mega-h{margin:0 0 1.2rem;font-weight:800;font-size:1.15rem;letter-spacing:-.01em;color:var(--m-ink)}
    .avx-mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
    .avx-mega-card{display:flex;align-items:center;gap:.85rem;padding:.85rem .95rem;border:1px solid var(--m-line);border-radius:6px;text-decoration:none;background:#fff;opacity:0;transform:translateY(10px);transition:border-color .3s, box-shadow .35s, transform .35s var(--m-spring), opacity .3s}
    .avx-mega.show .avx-mega-card{opacity:1;transform:none;transition:border-color .3s, box-shadow .35s, transform .45s var(--m-ease) calc(var(--d,0)*45ms), opacity .4s ease calc(var(--d,0)*45ms)}
    .avx-mega.show .avx-mega-card:hover{border-color:rgba(13,158,158,.5);transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,12,46,.1);transition-delay:0s}
    .avx-mega-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(13,158,158,.12),rgba(61,187,142,.12));border:1px solid rgba(13,158,158,.25)}
    .avx-mega-ic svg{width:20px;height:20px;stroke:var(--m-ocean);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
    .avx-mega-card b{display:block;font-weight:800;font-size:.88rem;line-height:1.25;color:var(--m-ink)}
    .avx-mega-card span span{display:block;margin-top:.15rem;font-weight:500;font-size:.72rem;line-height:1.3;color:#55607a}
    .avx-mega-all{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.7rem .7rem .7rem 1.15rem;border-radius:999px;background:#f2f5f9;text-decoration:none;font-weight:700;font-size:.9rem;color:var(--m-ink);transition:background .3s}
    .avx-mega-all:hover{background:var(--m-mint)}
    .avx-mega-all i{font-style:normal;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--m-cyan),var(--m-sage));color:#fff;transition:transform .4s var(--m-spring)}
    .avx-mega-all:hover i{transform:rotate(45deg)}
    .avx-mega-r{background:var(--m-mint);padding:clamp(1.6rem,3vw,2.2rem);display:flex;flex-direction:column;gap:1rem}
    .avx-mega-pills{display:flex;flex-wrap:wrap;gap:.5rem}
    .avx-mega-pills a{padding:.5rem .95rem;border-radius:999px;background:#fff;border:1px solid rgba(10,12,46,.08);text-decoration:none;font-weight:600;font-size:.8rem;color:var(--m-ink);transition:all .3s}
    .avx-mega-pills a:hover{background:var(--m-ink);color:#fff;border-color:var(--m-ink)}
    .avx-mega-promo{position:relative;margin-top:auto;border-radius:16px;background:radial-gradient(120% 140% at 100% 0%,rgba(13,158,158,.5),transparent 55%),#0a0c2e;color:#f8fafc;padding:1.4rem;overflow:clip}
    .avx-mega-promo h4{margin:0 0 .8rem;font-weight:800;font-size:1.05rem;line-height:1.3;letter-spacing:-.01em}
    .avx-mega-row{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
    .avx-mega-avs{display:flex}
    .avx-mega-avs img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #0a0c2e;margin-left:-9px}
    .avx-mega-avs img:first-child{margin-left:0}
    .avx-mega-row p{margin:0;font-weight:500;font-size:.74rem;line-height:1.45;color:rgba(203,213,225,.9)}
    .avx-mega-promo > a{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.2rem;border-radius:999px;background:#fff;color:#0a0c2e;text-decoration:none;font-weight:800;font-size:.82rem;transition:transform .35s var(--m-spring), box-shadow .35s}
    .avx-mega-promo > a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.35)}
    /* insights list (industries panel right rail) */
    .avx-mega-ins{display:grid;gap:.5rem}
    .avx-mega-ins a{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem .95rem;border-radius:12px;background:#fff;border:1px solid rgba(10,12,46,.08);text-decoration:none;font-weight:600;font-size:.8rem;line-height:1.35;color:var(--m-ink);transition:border-color .3s, transform .3s var(--m-spring)}
    .avx-mega-ins a i{font-style:normal;flex:0 0 auto;color:var(--m-ocean);transition:transform .3s var(--m-spring)}
    .avx-mega-ins a:hover{border-color:rgba(13,158,158,.45);transform:translateY(-2px)}
    .avx-mega-ins a:hover i{transform:translateX(4px)}
    @media (max-width: 960px){ .avx-megas{display:none} }
    @media (prefers-reduced-motion: reduce){
      .avx-mega-panel,.avx-mega-card,.avx-mega-all i,.avx-caret{transition:none}
    }

    /* Mobile drawer accordion for "Operational Solutions" / "Life Sciences".
       The .avx-mega-panel overlay above is desktop-only (display:none <=960px);
       this is the inline stacked-list alternative shown in the mobile drawer
       when the trigger's caret is tapped, built from the same link data.
       Hidden unconditionally by default — only shown (via .is-open) inside
       the mobile breakpoint, so it never appears on desktop. */
    .mnav-sub {
      display: none;
    }
    @media (max-width: 960px) {
      .mnav-sub {
        flex-direction: column;
        margin: 0 0 0.4rem;
        padding-left: 0.9rem;
        border-left: 2px solid rgba(13, 158, 158, 0.35);
      }
      .mnav-sub.is-open {
        display: flex;
      }
      .mnav-sub a {
        padding: 0.6rem 0;
        border-bottom: 1px solid rgba(10, 12, 46, 0.07);
        color: var(--m-ink, #0a0c2e);
        font-size: 0.92rem;
        font-weight: 600;
        text-decoration: none;
      }
      .mnav-sub a:last-child {
        border-bottom: 0;
      }
    }

:root{--navy:#0a0c2e;--cyan:#0d9e9e;--sage:#3dbb8e;--lime:#8fd16a;--teal:#0e7a6d;--mint:#e9f3ef;--paper:#fbfcfb;--muted:#55607a;--line:rgba(10,12,46,.1);--ease:cubic-bezier(.22,1,.36,1);--spring:cubic-bezier(.34,1.4,.5,1)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--navy);font-family:Inter,Arial,sans-serif}
.wrap{width:min(1180px,calc(100% - 3.5rem));margin:0 auto}
h1,h2,h3{font-family:"DM Sans",sans-serif;font-weight:800;letter-spacing:-.025em;margin:0}
.kicker{display:inline-flex;align-items:center;gap:.65rem;font-family:"DM Sans",sans-serif;font-size:13px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--teal);margin:0 0 1rem}
.kicker::before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--cyan),var(--sage));font-size:13px;}
 
.rf{padding:clamp(4.5rem,9vw,7rem) 0}
.rf-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,4rem);align-items:center}
.rf h2{font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.22;max-width:19ch}
.rf-lede{margin:1.2rem 0 0;color:var(--muted);line-height:1.8;max-width:44ch}
 
.rf-cards{position:relative;display:flex;flex-direction:column;gap:.85rem}
.rf-card{position:relative;border-radius:18px;padding:1.5rem 1.6rem 1.5rem 3.6rem;transition:transform .5s var(--spring)}
.rf-card:hover{transform:translateX(4px)}
.rf-card .rf-ic{position:absolute;left:1.4rem;top:1.5rem;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.rf-card .rf-ic svg{width:14px;height:14px;stroke-width:3;fill:none}
.rf-not{background:#fff;border:1px solid var(--line)}
.rf-not .rf-ic{background:rgba(85,96,122,.12)}
.rf-not .rf-ic svg{stroke:var(--muted)}
.rf-not b{display:block;font-family:"DM Sans",sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.rf-not p{margin:.35rem 0 0;color:rgba(85,96,122,.75);text-decoration:line-through;text-decoration-color:rgba(85,96,122,.4);font-family:"DM Sans",sans-serif;font-weight:700;font-size:1.05rem}
.rf-arrow{align-self:center;width:20px;height:20px;color:var(--teal)}
.rf-arrow svg{width:100%;height:100%;stroke:currentColor;stroke-width:2.4;fill:none}
.rf-yes{background:var(--navy);color:#fff;box-shadow:0 20px 44px rgba(10,12,46,.18)}
.rf-yes .rf-ic{background:linear-gradient(135deg,var(--cyan),var(--sage))}
.rf-yes .rf-ic svg{stroke:#04121a}
.rf-yes b{display:block;font-family:"DM Sans",sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bright,#67e8f9)}
.rf-yes p{margin:.35rem 0 0;font-family:"DM Sans",sans-serif;font-weight:800;font-size:1.15rem;line-height:1.35}
 
.rf-quote{margin-top:1.6rem;padding:1.2rem 1.4rem;border-left:3px solid var(--sage);background:var(--mint);border-radius:0 14px 14px 0;font-family:"DM Sans",sans-serif;font-weight:700;font-size:1rem;line-height:1.55;color:var(--navy)}
 
@media(max-width:860px){.rf-grid{grid-template-columns:1fr}}

/* ======================================================
   EXPERIENCE
====================================================== */

.experience{

padding:110px 0;

background:
radial-gradient(circle at top left,
rgba(13,158,158,.06),
transparent 45%),
#fff;

scroll-margin-top:120px;

}

.experience-heading{

text-align:center;

max-width:760px;

margin:auto auto 70px;

}

.experience-heading h2{

font-size:clamp(2rem,4vw,3rem);

margin-top:12px;

}

.experience-heading p{

margin-top:20px;

line-height:1.8;

color:var(--muted);

}

.experience-grid{

display:grid;

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

gap:28px;

}

.exp-card{

padding:45px 30px;

background:#fff;

border:1px solid rgba(10,12,46,.08);

border-radius:22px;

text-align:center;

transition:.45s;

position:relative;

overflow:hidden;

}

.exp-card:before{

content:"";

position:absolute;

left:0;

top:0;

width:100%;

height:4px;

background:linear-gradient(90deg,
var(--cyan),
var(--sage),
var(--lime));

transform:scaleX(0);

transition:.5s;

}

.exp-card:hover{

transform:translateY(-8px);

box-shadow:0 30px 60px rgba(10,12,46,.12);

}

.exp-card:hover:before{

transform:scaleX(1);

}

.exp-number{

font-family:"DM Sans";

font-weight:900;

font-size:64px;

line-height:1;

margin-bottom:18px;

background:linear-gradient(
90deg,
var(--cyan),
var(--sage));

-webkit-background-clip:text;

color:transparent;

}

.exp-number small{

font-size:30px;

}

.exp-card h3{

font-size:22px;

margin-bottom:14px;

}

.exp-card p{

font-size:15px;

line-height:1.8;

color:var(--muted);

}

@media(max-width:991px){

.experience-grid{

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

}

}

@media(max-width:575px){

.experience-grid{

grid-template-columns:1fr;

}

}

.avx-megas{
      --m-ink: var(--ink, #0a0c2e);
      --m-ocean: var(--ocean, #0e7a6d);
      --m-cyan: var(--cyan, #0d9e9e);
      --m-sage: #3dbb8e;
      --m-line: var(--line, rgba(10,12,46,.12));
      --m-mint: #e9f3ef;
      --m-ease: cubic-bezier(.22,1,.36,1);
      --m-spring: cubic-bezier(.34,1.4,.5,1);
      position:absolute; left:0; right:0; top:100%;
      z-index:60; font-family:inherit;
    }
    .avx-mega{position:absolute;left:0;right:0;top:0;pointer-events:none}
    .avx-mega.show{pointer-events:auto}
    .avx-mega-panel{
      width:min(1160px, calc(100% - 3rem));
      margin:.45rem auto 0;
      background:#fff;border:1px solid var(--m-line);border-radius:6px;
      box-shadow:0 40px 90px rgba(10,12,46,.22);overflow:clip;
      display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);
      opacity:0;visibility:hidden;transform:translateY(-14px) scale(.985);transform-origin:top center;
      transition:opacity .35s var(--m-ease), transform .45s var(--m-ease), visibility 0s .45s;
    }
    .avx-mega.show .avx-mega-panel{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--m-ease), transform .45s var(--m-ease)}
    .avx-caret{display:inline-block;width:8px;height:8px;margin-left:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s var(--m-ease);vertical-align:middle}
    [aria-expanded="true"] .avx-caret{transform:rotate(225deg) translateY(-1px)}
    /* ---------- shared panel pieces ---------- */
    .avx-mega-l{padding:clamp(1.6rem,3vw,2.2rem)}
    .avx-mega-h{margin:0 0 1.2rem;font-weight:800;font-size:1.15rem;letter-spacing:-.01em;color:var(--m-ink)}
    .avx-mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
    .avx-mega-card{display:flex;align-items:center;gap:.85rem;padding:.85rem .95rem;border:1px solid var(--m-line);border-radius:14px;text-decoration:none;background:#fff;opacity:0;transform:translateY(10px);transition:border-color .3s, box-shadow .35s, transform .35s var(--m-spring), opacity .3s}
    .avx-mega.show .avx-mega-card{opacity:1;transform:none;transition:border-color .3s, box-shadow .35s, transform .45s var(--m-ease) calc(var(--d,0)*45ms), opacity .4s ease calc(var(--d,0)*45ms)}
    .avx-mega.show .avx-mega-card:hover{border-color:rgba(13,158,158,.5);transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,12,46,.1);transition-delay:0s}
    .avx-mega-ic{flex:0 0 auto;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(13,158,158,.12),rgba(61,187,142,.12));border:1px solid rgba(13,158,158,.25)}
    .avx-mega-ic svg{width:20px;height:20px;stroke:var(--m-ocean);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
    .avx-mega-card b{display:block;font-weight:800;font-size:.88rem;line-height:1.25;color:var(--m-ink)}
    .avx-mega-card span span{display:block;margin-top:.15rem;font-weight:500;font-size:.72rem;line-height:1.3;color:#55607a}
    .avx-mega-all{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.7rem .7rem .7rem 1.15rem;border-radius:999px;background:#f2f5f9;text-decoration:none;font-weight:700;font-size:.9rem;color:var(--m-ink);transition:background .3s}
    .avx-mega-all:hover{background:var(--m-mint)}
    .avx-mega-all i{font-style:normal;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--m-cyan),var(--m-sage));color:#fff;transition:transform .4s var(--m-spring)}
    .avx-mega-all:hover i{transform:rotate(45deg)}
    .avx-mega-r{background:var(--m-mint);padding:clamp(1.6rem,3vw,2.2rem);display:flex;flex-direction:column;gap:1rem}
    .avx-mega-pills{display:flex;flex-wrap:wrap;gap:.5rem}
    .avx-mega-pills a{padding:.5rem .95rem;border-radius:999px;background:#fff;border:1px solid rgba(10,12,46,.08);text-decoration:none;font-weight:600;font-size:.8rem;color:var(--m-ink);transition:all .3s}
    .avx-mega-pills a:hover{background:var(--m-ink);color:#fff;border-color:var(--m-ink)}
    .avx-mega-promo{position:relative;margin-top:auto;border-radius:16px;background:radial-gradient(120% 140% at 100% 0%,rgba(13,158,158,.5),transparent 55%),#0a0c2e;color:#f8fafc;padding:1.4rem;overflow:clip}
    .avx-mega-promo h4{margin:0 0 .8rem;font-weight:800;font-size:1.05rem;line-height:1.3;letter-spacing:-.01em}
    .avx-mega-row{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
    .avx-mega-avs{display:flex}
    .avx-mega-avs img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #0a0c2e;margin-left:-9px}
    .avx-mega-avs img:first-child{margin-left:0}
    .avx-mega-row p{margin:0;font-weight:500;font-size:.74rem;line-height:1.45;color:rgba(203,213,225,.9)}
    .avx-mega-promo > a{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.2rem;border-radius:999px;background:#fff;color:#0a0c2e;text-decoration:none;font-weight:800;font-size:.82rem;transition:transform .35s var(--m-spring), box-shadow .35s}
    .avx-mega-promo > a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.35)}
    /* insights list (industries panel right rail) */
    .avx-mega-ins{display:grid;gap:.5rem}
    .avx-mega-ins a{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem .95rem;border-radius:12px;background:#fff;border:1px solid rgba(10,12,46,.08);text-decoration:none;font-weight:600;font-size:.8rem;line-height:1.35;color:var(--m-ink);transition:border-color .3s, transform .3s var(--m-spring)}
    .avx-mega-ins a i{font-style:normal;flex:0 0 auto;color:var(--m-ocean);transition:transform .3s var(--m-spring)}
    .avx-mega-ins a:hover{border-color:rgba(13,158,158,.45);transform:translateY(-2px)}
    .avx-mega-ins a:hover i{transform:translateX(4px)}
    @media (max-width: 960px){ .avx-megas{display:none} }
    @media (prefers-reduced-motion: reduce){
      .avx-mega-panel,.avx-mega-card,.avx-mega-all i,.avx-caret{transition:none}
    }

    /* Nav restructure (Aug 2026): Life Sciences panel now has 5 cards in a
       2-column grid — let the odd last card span the full width. */
    .avx-mega[data-mega="industries"] .avx-mega-grid .avx-mega-card:nth-child(5){grid-column:1 / -1}

/* ==========================================================================
   Nav restructure (Aug 2026) — header alignment fix.
   The renamed labels ("Operational Services", "Project Experiences", …) are
   two words each and were wrapping onto a second line, which broke the
   header's vertical alignment and pushed the mega-menu caret below its link.
   Keep each label on one line, let the row breathe by scaling the gap and
   the shell's side padding with the viewport instead of using fixed values.
   ========================================================================== */
body.site-body > header.figma-home-header .nav-shell {
  padding: 0 clamp(24px, 6vw, 124px) 0 clamp(24px, 7vw, 159px);
  gap: clamp(16px, 3vw, 72px);
}

body.site-body > header.figma-home-header .primary-nav {
  gap: clamp(14px, 2.9vw, 42px);
  flex-wrap: nowrap;
  align-items: center;
}

body.site-body > header.figma-home-header .primary-nav a {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

/* Caret sits inline with its label rather than dropping to the next line. */
body.site-body > header.figma-home-header .primary-nav a .avx-caret {
  flex: 0 0 auto;
  vertical-align: baseline;
}

/* Tightest desktop band — trim type slightly before anything can collide. */
@media (min-width: 981px) and (max-width: 1320px) {
  body.site-body > header.figma-home-header .primary-nav {
    gap: 13px;
  }
  body.site-body > header.figma-home-header .primary-nav a {
    font-size: 13px;
  }
}

/* Mobile drawer stacks — restore normal wrapping/alignment there. */
@media (max-width: 980px) {
  body.site-body > header.figma-home-header .primary-nav {
    flex-wrap: wrap;
  }
  body.site-body > header.figma-home-header .primary-nav a {
    white-space: normal;
  }
}
/* Fix: the "About Avex" mega-menu panel only has 2 cards + one link in its
   left column (.avx-mega-l), much shorter than the right column's "Who we
   are" + promo box. Since .avx-mega-panel is a CSS grid, its two columns
   stretch to equal height by default (align-items:stretch), so the About
   panel's left column was left with a large dead white gap below "View
   company overview" instead of shrinking to fit its shorter content. The
   Operational Solutions and Life Sciences menus aren't affected — their
   6-card grids are already tall enough to fill the space naturally.
   Scoped to just the About panel: centers its shorter content vertically
   within the stretched height instead of leaving empty space at the
   bottom. Appended last so it wins over any earlier duplicate .avx-mega-l
   rules in this file regardless of source order. */
.avx-mega[data-mega="about"] .avx-mega-l {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.avx-mega[data-mega="about"] .avx-mega-grid,
.avx-mega[data-mega="about"] .avx-mega-all {
  flex: 0 0 auto;
}