:root {
  --ink: #071522;
  --ink-2: #0d2232;
  --paper: #f4f1ea;
  --paper-2: #fbfaf7;
  --white: #ffffff;
  --blue: #315bff;
  --blue-dark: #2445d1;
  --cyan: #20b8b5;
  --red: #d84a4a;
  --yellow: #d7a82f;
  --green: #248d67;
  --text: #172735;
  --muted: #5d6b77;
  --line: #d6dee3;
  --line-dark: #274154;
  --success: #176c4d;
  --danger: #a83232;
  --shadow-sm: 0 8px 24px rgba(7, 21, 34, 0.08);
  --shadow: 0 24px 70px rgba(7, 21, 34, 0.15);
  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 32px;
  --container: 1240px;
  --header-h: 86px;
  --font-display: "Aptos Display", "Segoe UI Variable Display", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Aptos", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 24px); }
body {
  margin: 0;
  background: var(--paper-2);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: .12em; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: rgba(49,91,255,.22); }

.skip-link {
  position: fixed;
  z-index: 9999;
  left: 18px;
  top: 12px;
  transform: translateY(-160%);
  padding: 10px 16px;
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  font-weight: 800;
  box-shadow: var(--shadow-sm);
}
.skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 3px solid var(--cyan);
  outline-offset: 4px;
}

.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.container--narrow { width: min(860px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: clamp(72px, 9vw, 128px) 0; }
.section--tight { padding: clamp(50px, 7vw, 84px) 0; }
.section--ink { background: var(--ink); color: var(--white); }
.section--paper { background: var(--paper); }
.section--white { background: var(--white); }
.section--blue { background: var(--blue); color: var(--white); }
.section--gradient {
  background:
    radial-gradient(circle at 88% 8%, rgba(32,184,181,.17), transparent 34%),
    linear-gradient(135deg, var(--ink) 0%, #102b40 100%);
  color: var(--white);
}

/* Contrast safeguards for text placed on dark or image-backed surfaces. */
.section--ink .text-muted,
.section--gradient .text-muted,
.section--blue .text-muted { color:#d4e0e6; }
.section--blue p { color:#f0f4ff; }
.section--blue .eyebrow { color:#ffffff; }
.section--ink a:not(.button),
.section--gradient a:not(.button) { text-decoration-color:rgba(255,255,255,.55); }
.card--dark .text-link { color:#8ce2df; }
.card--dark .card__label { color:#8ce2df; }
.specialist-finder .eyebrow,
.cta-band .eyebrow,
.quote-panel .eyebrow { color:#87dfdc; }
.specialist-finder .text-white-muted,
.cta-band .text-white-muted { color:#dbe5ea; }
.cta-band .lead { color:#dbe5ea; }
.site-footer .footer-links a { color:#d2dde3; }
.site-footer .footer-bottom { color:#9eb1bc; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--blue);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .16em;
  line-height: 1.2;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 34px; height: 3px; border-radius: 999px; background: currentColor; }
.section--ink .eyebrow, .section--gradient .eyebrow, .hero .eyebrow { color: #7fdcd9; }
.kicker { margin: 0 0 12px; color: var(--muted); font-weight: 750; }
.display,
h1, h2, h3, h4 { color: inherit; font-family: var(--font-display); line-height: 1.04; letter-spacing: -.035em; text-wrap: balance; }
h1 { margin: 0; font-size: clamp(2.8rem, 6.2vw, 5.9rem); font-weight: 850; }
h2 { margin: 0; font-size: clamp(2.15rem, 4.4vw, 4.35rem); font-weight: 840; }
h3 { margin: 0; font-size: clamp(1.35rem, 2.4vw, 2rem); font-weight: 820; line-height: 1.16; }
h4 { margin: 0; font-size: 1.08rem; font-weight: 850; line-height: 1.25; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }
.lead { max-width: 760px; color: inherit; font-size: clamp(1.18rem, 2vw, 1.45rem); line-height: 1.48; }
.prose { max-width: 760px; }
.prose > * + * { margin-top: 1.2em; }
.prose h2 { margin-top: 1.55em; font-size: clamp(1.8rem, 3vw, 2.75rem); }
.prose h3 { margin-top: 1.45em; font-size: 1.5rem; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .55em; }
.prose blockquote { margin: 2em 0; padding: 20px 24px; border-left: 4px solid var(--blue); background: var(--paper); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.text-muted { color: var(--muted); }
.text-white-muted { color: #c9d5dc; }
.text-blue { color: var(--blue); }
.max-680 { max-width: 680px; }
.max-820 { max-width: 820px; }

.site-header {
  position: fixed;
  z-index: 1000;
  inset: 0 0 auto;
  height: var(--header-h);
  color: var(--white);
  background: rgba(4,16,27,.88);
  border-bottom: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(18px) saturate(150%);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-header.is-scrolled { background: rgba(7,21,34,.95); box-shadow: 0 8px 28px rgba(0,0,0,.2); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 13px; color: var(--white); text-decoration: none; flex: 0 0 auto; }
.brand-mark { position: relative; width: 44px; height: 44px; border: 2px solid var(--blue); border-radius: 13px; }
.brand-mark::before, .brand-mark::after { content:""; position:absolute; border-radius:999px; }
.brand-mark::before { width: 23px; height: 4px; background: var(--cyan); left: 8px; top: 19px; transform: rotate(-58deg); }
.brand-mark::after { width: 8px; height: 8px; background: var(--white); right: 8px; top: 8px; }
.brand-text { display: grid; line-height: .96; letter-spacing: .09em; text-transform: uppercase; font-size: .72rem; font-weight: 900; }
.brand-text strong { margin-top: 4px; font-size: .92rem; letter-spacing: .035em; }
.site-nav { display: flex; align-items: center; gap: 4px; }
.site-nav a { padding: 11px 12px; border-radius: 8px; color: #dae4ea; font-size: .91rem; font-weight: 760; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current="page"] { background: rgba(255,255,255,.09); color: var(--white); }
.site-nav .nav-cta { margin-left: 8px; background: var(--blue); color: var(--white); padding-inline: 17px; }
.site-nav .nav-cta:hover, .site-nav .nav-cta[aria-current="page"] { background: var(--blue-dark); }
.nav-toggle {
  display: none;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,.1);
  color: var(--white);
  align-items: center;
  justify-content: center;
}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after { content:""; display:block; width:24px; height:2px; background:currentColor; transition: transform .25s ease, opacity .2s ease; }
.nav-toggle span { margin: 5px 0; }
.nav-toggle[aria-expanded="true"] span { opacity: 0; }
.nav-toggle[aria-expanded="true"]::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"]::after { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: min(940px, 100svh);
  padding: calc(var(--header-h) + clamp(54px, 8vh, 96px)) 0 clamp(66px, 8vh, 96px);
  overflow: hidden;
  color: var(--white);
  background-color: #06131e;
  background-image:
    linear-gradient(90deg, rgba(3,13,23,.94) 0%, rgba(3,13,23,.88) 34%, rgba(3,13,23,.62) 54%, rgba(3,13,23,.32) 76%, rgba(3,13,23,.20) 100%),
    linear-gradient(180deg, rgba(3,13,23,.18) 0%, rgba(3,13,23,.04) 48%, rgba(3,13,23,.72) 100%),
    url('../images/hero-group-composite.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
@supports (background-image: image-set(url("../images/hero-group-composite.webp") type("image/webp"))) {
  .hero {
    background-image:
      linear-gradient(90deg, rgba(3,13,23,.94) 0%, rgba(3,13,23,.88) 34%, rgba(3,13,23,.62) 54%, rgba(3,13,23,.32) 76%, rgba(3,13,23,.20) 100%),
      linear-gradient(180deg, rgba(3,13,23,.18) 0%, rgba(3,13,23,.04) 48%, rgba(3,13,23,.72) 100%),
      image-set(
        url('../images/hero-group-composite.avif') type('image/avif'),
        url('../images/hero-group-composite.webp') type('image/webp'),
        url('../images/hero-group-composite.jpg') type('image/jpeg')
      );
  }
}
.hero::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:.25;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to bottom, black 0%, transparent 80%);
}
.hero::after {
  content:"";
  position:absolute;
  z-index:-1;
  left:0;
  right:0;
  bottom:0;
  height:34%;
  pointer-events:none;
  background:linear-gradient(to bottom, transparent, rgba(3,13,23,.64));
}
.hero-grid {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,900px);
  align-items:center;
}
.hero-copy {
  max-width:900px;
  padding:clamp(28px,3.4vw,46px);
  border:1px solid rgba(255,255,255,.15);
  border-left:4px solid #5f86ff;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(5,17,29,.88),rgba(5,17,29,.64));
  box-shadow:0 30px 90px rgba(0,0,0,.30);
  backdrop-filter:blur(8px) saturate(125%);
}
.hero h1 {
  max-width:840px;
  font-size:clamp(3rem,5.8vw,5.5rem);
  text-shadow:0 4px 26px rgba(0,0,0,.46);
}
.hero h1 span { display:block; color:#91e3e0; }
.hero .lead {
  margin-top:26px;
  max-width:760px;
  color:#edf4f7;
  text-shadow:0 2px 18px rgba(0,0,0,.38);
}
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:34px; }
.hero .button--secondary { background:rgba(255,255,255,.06); }
.hero-proof {
  display:flex;
  flex-wrap:wrap;
  gap:11px 25px;
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.20);
  color:#e0e9ed;
  font-size:.91rem;
  font-weight:700;
}
.hero-proof span { display:inline-flex; align-items:center; gap:9px; }
.hero-proof span::before {
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 5px rgba(32,184,181,.14);
}
.hero-disciplines {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:22px;
}
.hero-disciplines span {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(4,16,27,.64);
  color:#f5f8fa;
  font-size:.75rem;
  font-weight:850;
  line-height:1.15;
  letter-spacing:.045em;
  text-transform:uppercase;
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.hero-disciplines span::before {
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--blue);
}
.hero-disciplines span:nth-child(2)::before { background:var(--red); }
.hero-disciplines span:nth-child(3)::before { background:var(--yellow); }
.hero-disciplines span:nth-child(4)::before { background:var(--green); }

.page-hero {
  position:relative;
  min-height: 560px;
  padding: calc(var(--header-h) + 92px) 0 92px;
  overflow:hidden;
  color:var(--white);
  background:
    radial-gradient(circle at 80% 30%, rgba(49,91,255,.24), transparent 35%),
    linear-gradient(135deg, var(--ink), #143248);
}
.page-hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg, rgba(4,16,27,.985) 0%, rgba(4,16,27,.90) 48%, rgba(4,16,27,.42) 78%, rgba(4,16,27,.30) 100%); }
.page-hero--image { background-size:cover; background-position:center; }
.page-hero__inner { position:relative; z-index:2; max-width:850px; }
.page-hero h1 { font-size:clamp(2.8rem,6vw,5.65rem); }
.page-hero h1 { text-shadow:0 4px 24px rgba(0,0,0,.48); }
.page-hero .lead { margin-top:24px; color:#eef4f7; text-shadow:0 2px 16px rgba(0,0,0,.42); }
.page-hero .hero-actions { margin-top:30px; }
.page-hero--lancing { background-image:url('../images/company-lancing.jpg'); }
.page-hero--automation { background-image:url('../images/company-automation.jpg'); background-position:center 48%; }
.page-hero--guarding { background-image:url('../images/company-guarding.jpg'); }
.page-hero--sortation { background-image:url('../images/company-sortation.jpg'); background-position:center 48%; }
.page-hero--lancing::after { background:linear-gradient(90deg,rgba(4,16,27,.99) 0%,rgba(4,16,27,.91) 53%,rgba(4,16,27,.40) 100%); }
.company-accent { --accent: var(--blue); }
.company-accent--automation { --accent: var(--red); }
.company-accent--guarding { --accent: var(--yellow); }
.company-accent--sortation { --accent: var(--green); }
.company-accent .eyebrow { color:var(--accent); }

.breadcrumbs { margin:0 0 26px; color:#b9c9d2; font-size:.83rem; font-weight:700; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:7px; align-items:center; list-style:none; padding:0; margin:0; }
.breadcrumbs li:not(:last-child)::after { content:"/"; margin-left:7px; color:#7790a0; }
.breadcrumbs a { color:#dce7ec; }
.breadcrumbs--dark { color:var(--muted); }
.breadcrumbs--dark a { color:var(--blue); }

.button {
  display:inline-flex;
  min-height:49px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 20px;
  border:1px solid transparent;
  border-radius:9px;
  background:var(--blue);
  color:var(--white);
  font-weight:850;
  line-height:1.2;
  text-decoration:none;
  transition: transform .2s var(--ease), background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.button::after { content:"→"; transition:transform .2s var(--ease); }
.button:hover { background:var(--blue-dark); transform:translateY(-2px); box-shadow:0 12px 28px rgba(49,91,255,.22); text-decoration:none; }
.button:hover::after { transform:translateX(3px); }
.button--secondary { background:transparent; border-color:rgba(255,255,255,.32); color:var(--white); }
.button--secondary:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.5); box-shadow:none; }
.button--dark { background:var(--ink); }
.button--dark:hover { background:#142d40; box-shadow:0 12px 28px rgba(7,21,34,.2); }
.button--quiet { background:transparent; border-color:var(--line); color:var(--ink); }
.button--quiet:hover { background:var(--paper); border-color:#bfcbd3; box-shadow:none; }
.button--small { min-height:42px; padding:10px 14px; font-size:.88rem; }
.text-link { display:inline-flex; align-items:center; gap:7px; color:var(--blue); font-weight:850; text-decoration:none; }
.text-link::after { content:"→"; transition:transform .2s ease; }
.text-link:hover::after { transform:translateX(4px); }

.section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); gap:48px; align-items:end; margin-bottom:48px; }
.section-heading p { margin:0; color:var(--muted); font-size:1.08rem; }
.section--ink .section-heading p, .section--gradient .section-heading p { color:#bdccd4; }
.grid { display:grid; gap:24px; }
.grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.split { display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr); gap:clamp(44px,8vw,108px); align-items:center; }
.split--reverse > :first-child { order:2; }
.split--reverse > :last-child { order:1; }

.card {
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--white);
  box-shadow:0 1px 0 rgba(7,21,34,.02);
}
.card--padded { padding:clamp(24px,3vw,36px); }
.card--dark { background:#10283a; color:var(--white); border-color:#28465a; }
.card--dark p { color:#bdccd4; }
.card__image { aspect-ratio:16/10; overflow:hidden; background:#e9eef1; }
.card__image img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); }
.card:hover .card__image img { transform:scale(1.035); }
.card__body { padding:27px; }
.card__body p { color:var(--muted); margin-top:13px; }
.card__body .text-link { margin-top:6px; }
.card__label { display:inline-flex; align-items:center; gap:8px; margin-bottom:13px; color:var(--blue); font-size:.76rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.card__label::before { content:""; width:9px; height:9px; border-radius:50%; background:currentColor; }
.card--lancing { --accent:var(--blue); }
.card--automation { --accent:var(--red); }
.card--guarding { --accent:var(--yellow); }
.card--sortation { --accent:var(--green); }
.company-card { border-top:5px solid var(--accent); transition:transform .25s var(--ease),box-shadow .25s ease; }
.company-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.company-card .card__label { color:var(--accent); }
.company-card .company-card__footer { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:.84rem; font-weight:750; }
.company-card .company-card__footer strong { color:var(--ink); }

.metric-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line-dark); border-radius:var(--radius); overflow:hidden; }
.metric { padding:28px; background:#10283a; }
.metric + .metric { border-left:1px solid var(--line-dark); }
.metric strong { display:block; color:var(--white); font-size:clamp(1.45rem,2.4vw,2.15rem); line-height:1; letter-spacing:-.04em; }
.metric span { display:block; margin-top:9px; color:#abc0cb; font-size:.87rem; }

.capability-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--white); }
.flow-step { position:relative; min-height:280px; padding:30px 25px; }
.flow-step + .flow-step { border-left:1px solid var(--line); }
.flow-step__number { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--paper); color:var(--blue); font-weight:900; }
.flow-step h3 { margin-top:42px; font-size:1.45rem; }
.flow-step p { margin-top:12px; color:var(--muted); font-size:.94rem; }
.flow-step:not(:last-child)::after { content:"→"; position:absolute; z-index:2; right:-18px; top:45px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--ink); color:white; }

.icon-card { padding:28px; }
.icon-card__icon { display:grid; place-items:center; width:48px; height:48px; border-radius:12px; background:rgba(49,91,255,.1); color:var(--blue); font-size:1.35rem; font-weight:900; }
.icon-card h3 { margin-top:25px; font-size:1.42rem; }
.icon-card p { margin-top:12px; color:var(--muted); }

.media-frame { position:relative; overflow:hidden; min-height:480px; border-radius:var(--radius-lg); background:#dce4e8; box-shadow:var(--shadow); }
.media-frame img { width:100%; height:100%; min-height:480px; object-fit:cover; }
.media-frame__tag { position:absolute; left:20px; bottom:20px; max-width:280px; padding:14px 16px; border-radius:10px; background:rgba(7,21,34,.88); color:white; font-weight:800; line-height:1.3; backdrop-filter:blur(10px); }
.media-frame--product { background:linear-gradient(140deg,#eef2f4,#fff); display:grid; place-items:center; }
.media-frame--product img { object-fit:contain; padding:32px; }

.check-list, .plain-list { list-style:none; padding:0; margin:24px 0 0; }
.check-list li { position:relative; padding-left:31px; }
.check-list li + li { margin-top:12px; }
.check-list li::before { content:"✓"; position:absolute; left:0; top:.05em; display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:rgba(32,184,181,.14); color:var(--success); font-size:.78rem; font-weight:900; }
.plain-list li { padding:15px 0; border-bottom:1px solid var(--line); }
.plain-list li:first-child { border-top:1px solid var(--line); }

.specialist-finder { display:grid; grid-template-columns:minmax(0,.85fr) minmax(430px,1.15fr); gap:38px; padding:clamp(30px,5vw,58px); border-radius:var(--radius-lg); background:var(--ink); color:white; box-shadow:var(--shadow); }
.finder-controls { display:grid; gap:14px; align-content:start; }
.finder-controls label { font-weight:850; }
.finder-controls select { width:100%; min-height:56px; padding:12px 46px 12px 15px; border:1px solid #365469; border-radius:9px; background:#102a3d; color:white; }
.finder-result { min-height:250px; padding:30px; border:1px solid #2d4b60; border-radius:var(--radius); background:#10283a; }
.finder-result__label { color:#83dedb; font-size:.76rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.finder-result h3 { margin-top:15px; }
.finder-result p { margin-top:14px; color:#c2d0d7; }
.finder-result .button { margin-top:18px; }

.pathway { display:grid; grid-template-columns:180px minmax(0,1fr); gap:30px; align-items:start; padding:32px 0; border-top:1px solid var(--line); }
.pathway:last-child { border-bottom:1px solid var(--line); }
.pathway__index { font-size:.78rem; font-weight:900; letter-spacing:.14em; color:var(--blue); text-transform:uppercase; }
.pathway__stages { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.pathway__stages span { padding:7px 10px; border-radius:999px; background:var(--paper); color:var(--muted); font-size:.8rem; font-weight:800; }

.timeline { position:relative; display:grid; gap:0; }
.timeline::before { content:""; position:absolute; left:23px; top:18px; bottom:18px; width:2px; background:var(--line); }
.timeline__item { position:relative; display:grid; grid-template-columns:48px minmax(0,1fr); gap:22px; padding:0 0 34px; }
.timeline__item:last-child { padding-bottom:0; }
.timeline__marker { position:relative; z-index:2; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--blue); color:white; font-weight:900; }
.timeline__content { padding-top:4px; }
.timeline__content p { margin-top:8px; color:var(--muted); }

.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:white; }
table { width:100%; border-collapse:collapse; min-width:720px; }
th,td { padding:17px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
th { background:var(--ink); color:white; font-size:.83rem; letter-spacing:.05em; text-transform:uppercase; }
tr:last-child td { border-bottom:0; }

.quote-panel { padding:clamp(32px,5vw,60px); border-radius:var(--radius-lg); background:var(--blue); color:white; }
.quote-panel blockquote { margin:0; font-size:clamp(1.65rem,3.5vw,3rem); line-height:1.22; letter-spacing:-.03em; font-weight:800; }
.quote-panel footer { margin-top:25px; color:#dce4ff; }

.notice { padding:18px 20px; border:1px solid #eccf82; border-radius:10px; background:#fff7df; color:#5f4c18; }
.notice strong { color:#3e310f; }
.notice--info { border-color:#b6c8ff; background:#edf1ff; color:#2a3971; }
.notice--dark { border-color:#31546b; background:#10283a; color:#c5d3da; }
.badge { display:inline-flex; align-items:center; gap:8px; padding:7px 10px; border-radius:999px; background:var(--paper); color:var(--muted); font-size:.76rem; font-weight:850; }
.badge--blue { background:rgba(49,91,255,.1); color:var(--blue); }

.article-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:74px; align-items:start; }
.article-meta { display:flex; flex-wrap:wrap; gap:10px 24px; margin:24px 0 0; color:#bdccd4; font-size:.88rem; }
.article-aside { position:sticky; top:calc(var(--header-h) + 30px); }
.article-aside .card { padding:24px; }
.article-aside ul { list-style:none; padding:0; margin:16px 0 0; }
.article-aside li + li { margin-top:10px; }
.article-aside a { color:var(--blue); font-weight:760; }

.form-shell { display:grid; grid-template-columns:minmax(0,.75fr) minmax(430px,1.25fr); gap:38px; }
.form-panel { padding:clamp(25px,4vw,46px); border:1px solid var(--line); border-radius:var(--radius); background:white; box-shadow:var(--shadow-sm); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.field { display:grid; gap:7px; }
.field--full { grid-column:1/-1; }
.field label, .field legend { font-weight:820; font-size:.91rem; }
.field .hint { color:var(--muted); font-size:.78rem; }
.field input, .field select, .field textarea {
  width:100%;
  min-height:50px;
  padding:11px 13px;
  border:1px solid #b8c5cd;
  border-radius:8px;
  background:#fff;
  color:var(--text);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.field textarea { min-height:160px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(49,91,255,.12); outline:0; }
.checkbox { display:flex; gap:10px; align-items:flex-start; }
.checkbox input { width:20px; height:20px; margin-top:3px; flex:0 0 auto; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:22px; }
.form-note { color:var(--muted); font-size:.82rem; }
.hp-field { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.contact-routes { display:grid; gap:13px; margin-top:28px; }
.contact-route { padding:18px 20px; border:1px solid #2b475a; border-radius:10px; background:#10283a; }
.contact-route strong { display:block; color:white; }
.contact-route span { display:block; margin-top:3px; color:#aec0ca; font-size:.9rem; }

.download-card { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px; border:1px solid var(--line); border-radius:var(--radius-sm); background:white; }
.download-card + .download-card { margin-top:12px; }
.download-card p { margin:5px 0 0; color:var(--muted); font-size:.9rem; }

.cta-band { position:relative; overflow:hidden; padding:clamp(50px,7vw,84px); border-radius:var(--radius-lg); background:var(--ink); color:white; }
.cta-band::before { content:""; position:absolute; width:380px; height:380px; border-radius:50%; right:-120px; top:-190px; border:90px solid rgba(49,91,255,.35); }
.cta-band__inner { position:relative; z-index:2; display:flex; align-items:end; justify-content:space-between; gap:40px; }
.cta-band .lead { margin-top:18px; color:#dbe5ea; }

.site-footer { background:#06121c; color:#c0ced5; padding:68px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.3fr repeat(3,minmax(0,.7fr)); gap:48px; }
.footer-brand p { max-width:360px; margin-top:20px; color:#9db0bb; font-size:.93rem; }
.footer-title { margin:0 0 15px; color:white; font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; font-weight:900; }
.footer-links { list-style:none; padding:0; margin:0; }
.footer-links li + li { margin-top:9px; }
.footer-links a { color:#bac9d1; text-decoration:none; font-size:.91rem; }
.footer-links a:hover { color:white; text-decoration:underline; }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; margin-top:54px; padding-top:22px; border-top:1px solid #203a4d; color:#8198a5; font-size:.78rem; }
.footer-bottom__links { display:flex; flex-wrap:wrap; gap:16px; }

.cookie-banner { position:fixed; z-index:1500; right:18px; bottom:18px; left:auto; top:auto; max-width:500px; padding:22px; border:1px solid #365267; border-radius:var(--radius); background:rgba(7,21,34,.97); color:white; box-shadow:0 24px 70px rgba(0,0,0,.35); transform:translateY(calc(100% + 40px)); opacity:0; transition:transform .35s var(--ease),opacity .35s ease; }
.cookie-banner.is-visible { transform:translateY(0); opacity:1; }
.cookie-banner h2 { font-size:1.32rem; }
.cookie-banner p { margin-top:9px; color:#bdccd4; font-size:.9rem; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }
.cookie-button { min-height:42px; padding:10px 13px; border:1px solid #405e72; border-radius:8px; background:transparent; color:white; font-size:.84rem; font-weight:830; }
.cookie-button--accept { border-color:var(--blue); background:var(--blue); }
.cookie-link { margin-top:12px; display:inline-block; color:#89dcda; font-size:.82rem; }
.cookie-modal { position:fixed; z-index:1600; inset:0; display:none; place-items:center; padding:20px; background:rgba(1,9,15,.74); }
.cookie-modal.is-open { display:grid; }
.cookie-dialog { width:min(600px,100%); max-height:min(780px,calc(100svh - 40px)); overflow:auto; padding:28px; border-radius:var(--radius); background:white; color:var(--text); box-shadow:var(--shadow); }
.cookie-dialog__head { display:flex; align-items:start; justify-content:space-between; gap:20px; }
.cookie-dialog h2 { font-size:1.65rem; }
.cookie-close { width:42px; height:42px; border:1px solid var(--line); border-radius:8px; background:white; font-size:1.2rem; }
.consent-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.consent-row p { margin:4px 0 0; color:var(--muted); font-size:.85rem; }
.switch { position:relative; width:50px; height:28px; flex:0 0 auto; }
.switch input { position:absolute; opacity:0; }
.switch span { position:absolute; inset:0; border-radius:999px; background:#aebbc3; transition:.2s ease; }
.switch span::after { content:""; position:absolute; width:22px; height:22px; left:3px; top:3px; border-radius:50%; background:white; transition:.2s ease; box-shadow:0 2px 4px rgba(0,0,0,.2); }
.switch input:checked + span { background:var(--blue); }
.switch input:checked + span::after { transform:translateX(22px); }
.switch input:disabled + span { background:var(--success); opacity:.7; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }


@media (min-width: 1081px) and (max-height: 820px) {
  .hero {
    min-height:100svh;
    padding-top:calc(var(--header-h) + 30px);
    padding-bottom:34px;
  }
  .hero-copy { padding:24px 30px; }
  .hero h1 { font-size:clamp(3rem,5.2vw,4.65rem); }
  .hero .lead { margin-top:18px; font-size:1.12rem; }
  .hero-actions { margin-top:24px; }
  .hero-proof { margin-top:22px; padding-top:18px; }
  .hero-disciplines { margin-top:16px; }

  .page-hero {
    min-height:calc(100svh - 1px);
    padding-top:calc(var(--header-h) + 48px);
    padding-bottom:42px;
  }
  .page-hero h1 { font-size:clamp(3rem,5vw,4.45rem); }
  .page-hero .lead { margin-top:17px; font-size:1.12rem; }
  .page-hero .hero-actions { margin-top:24px; }
  .page-hero .breadcrumbs { margin-bottom:18px; }
}

@media (max-width: 1080px) {
  :root { --header-h: 76px; }
  .nav-toggle { display:flex; flex-direction:column; }
  .site-nav { position:fixed; inset:var(--header-h) 0 auto; display:grid; gap:4px; padding:16px 20px 24px; background:rgba(7,21,34,.98); border-top:1px solid #203a4d; transform:translateY(-120%); opacity:0; visibility:hidden; transition:.28s var(--ease); }
  .site-nav.is-open { transform:translateY(0); opacity:1; visibility:visible; }
  .site-nav a { padding:13px 14px; }
  .site-nav .nav-cta { margin:8px 0 0; text-align:center; }
  .hero { min-height:760px; background-position:58% center; }
  .hero-grid { grid-template-columns:minmax(0,860px); }
  .hero-copy { max-width:860px; }
  .grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .capability-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .flow-step:nth-child(3) { border-left:0; border-top:1px solid var(--line); }
  .flow-step:nth-child(4) { border-top:1px solid var(--line); }
  .flow-step:nth-child(2)::after { display:none; }
  .specialist-finder, .form-shell { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1.3fr repeat(2,minmax(0,.7fr)); }
  .footer-grid > :last-child { grid-column:2/4; }
}

@media (max-width: 820px) {
  body { font-size:16px; }
  .container, .container--narrow { width:min(100% - 30px,var(--container)); }
  .section-heading { grid-template-columns:1fr; gap:20px; }
  .grid--3 { grid-template-columns:1fr; }
  .split { grid-template-columns:1fr; }
  .split--reverse > :first-child, .split--reverse > :last-child { order:initial; }
  .metric-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric:nth-child(3) { border-left:0; border-top:1px solid var(--line-dark); }
  .metric:nth-child(4) { border-top:1px solid var(--line-dark); }
  .article-layout { grid-template-columns:1fr; gap:44px; }
  .article-aside { position:static; }
  .cta-band__inner { display:grid; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-grid > :last-child { grid-column:auto; }
  .footer-bottom { display:grid; }
  .pathway { grid-template-columns:1fr; gap:10px; }
}

@media (max-width: 620px) {
  .brand-text { font-size:.62rem; }
  .brand-text strong { font-size:.78rem; }
  .brand-mark { width:40px; height:40px; }
  .hero {
    min-height:720px;
    padding-top:calc(var(--header-h) + 42px);
    background-position:61% center;
    background-image:
      linear-gradient(90deg,rgba(3,13,23,.98) 0%,rgba(3,13,23,.94) 66%,rgba(3,13,23,.70) 100%),
      linear-gradient(180deg,rgba(3,13,23,.28),rgba(3,13,23,.76)),
      url('../images/hero-group-composite.jpg');
  }
  .hero-copy { padding:24px 19px; border-radius:16px; }
  .hero h1 { font-size:clamp(2.45rem,12vw,3.5rem); }
  .hero .lead { margin-top:20px; font-size:1.05rem; line-height:1.48; }
  .hero-actions { margin-top:25px; }
  .hero-actions, .form-actions { align-items:stretch; flex-direction:column; }
  .hero-actions .button, .form-actions .button { width:100%; }
  .hero-proof { display:none; }
  .hero-disciplines { display:grid; grid-template-columns:1fr 1fr; margin-top:22px; padding-top:18px; border-top:1px solid rgba(255,255,255,.20); }
  .hero-disciplines span { padding:7px 9px; font-size:.66rem; }
  .page-hero { min-height:520px; padding-top:calc(var(--header-h) + 68px); }
  .page-hero::after { background:linear-gradient(90deg,rgba(4,16,27,.98),rgba(4,16,27,.86)); }
  .grid--2, .grid--4, .capability-flow, .metric-strip, .form-grid { grid-template-columns:1fr; }
  .flow-step + .flow-step { border-left:0; border-top:1px solid var(--line); }
  .flow-step:not(:last-child)::after { display:none; }
  .metric + .metric { border-left:0; border-top:1px solid var(--line-dark); }
  .media-frame, .media-frame img { min-height:350px; }
  .specialist-finder { padding:26px 20px; }
  .finder-result { padding:24px 20px; }
  .download-card { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand, .footer-grid > :last-child { grid-column:auto; }
  .cookie-banner { right:10px; bottom:10px; left:10px; top:auto; max-width:none; }
  .cookie-actions { display:grid; }
  .cookie-button { width:100%; }
}


@media (max-width: 620px) {
  @supports (background-image: image-set(url("../images/hero-group-composite.webp") type("image/webp"))) {
    .hero {
      background-image:
        linear-gradient(90deg,rgba(3,13,23,.98) 0%,rgba(3,13,23,.94) 66%,rgba(3,13,23,.70) 100%),
        linear-gradient(180deg,rgba(3,13,23,.28),rgba(3,13,23,.76)),
        image-set(
          url('../images/hero-group-composite.avif') type('image/avif'),
          url('../images/hero-group-composite.webp') type('image/webp'),
          url('../images/hero-group-composite.jpg') type('image/jpeg')
        );
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

@media print {
  .site-header, .site-footer, .cookie-banner, .cookie-modal, .hero-actions, .nav-toggle { display:none!important; }
  body { background:white; color:black; }
  .hero, .page-hero, .section--ink, .section--gradient { color:black; background:white; min-height:0; padding:30px 0; }
  .page-hero::after, .hero::before, .hero::after { display:none; }
  .hero-grid { grid-template-columns:1fr; }
  a { color:black; }
}

/* ======================================================================
   REFERENCE-LED CORPORATE VISUAL SYSTEM
   Matches the approved Oxford Science Group homepage direction while
   retaining the accessible, responsive and content-rich site structure.
   ====================================================================== */

:root {
  --ink: #00172d;
  --ink-2: #082a48;
  --paper: #f4f6f8;
  --paper-2: #ffffff;
  --white: #ffffff;
  --blue: #0877dc;
  --blue-dark: #055cad;
  --cyan: #2b9cff;
  --text: #14263b;
  --muted: #5c6b7b;
  --line: #dfe5ea;
  --line-dark: #173a5a;
  --shadow-sm: 0 8px 24px rgba(0, 23, 45, .08);
  --shadow: 0 22px 60px rgba(0, 23, 45, .14);
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 18px;
  --container: 1460px;
  --header-h: 88px;
  --font-display: "Inter Display", "Inter", "Segoe UI Variable Display", "Segoe UI", Arial, sans-serif;
  --font-body: "Inter", "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
}

body {
  background: #fff;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
}

.container { width: min(var(--container), calc(100% - 64px)); }
.container--narrow { width: min(900px, calc(100% - 64px)); }
.section { padding: clamp(68px, 7vw, 104px) 0; }
.section--tight { padding: clamp(48px, 5vw, 72px) 0; }

h1, h2, h3, h4, .display {
  font-family: var(--font-display);
  letter-spacing: -.035em;
}
h1 { font-weight: 760; }
h2 { font-size: clamp(2rem, 3.6vw, 3.5rem); font-weight: 740; }
h3 { font-weight: 720; }
.lead { font-size: clamp(1.08rem, 1.5vw, 1.3rem); }

.button {
  min-height: 50px;
  padding: 13px 23px;
  border-radius: 5px;
  border-width: 1px;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.button::after { font-size: 1rem; }

/* Header and group lock-up */
.site-header {
  height: var(--header-h);
  background: #00172d;
  border-bottom: 1px solid rgba(255,255,255,.10);
  backdrop-filter: none;
  box-shadow: none;
}
.site-header.is-scrolled {
  background: rgba(0, 23, 45, .98);
  box-shadow: 0 10px 30px rgba(0, 10, 24, .20);
}
.header-inner { gap: 22px; }
.brand {
  gap: 11px;
  min-width: 360px;
  color: #fff;
  text-decoration: none;
}
.brand:hover { text-decoration: none; }
.brand-symbol {
  width: 53px;
  height: 53px;
  flex: 0 0 53px;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.22));
}
.brand-wordmark {
  display: grid;
  min-width: 198px;
  color: #fff;
  font-family: var(--font-display);
  line-height: .9;
  letter-spacing: .015em;
  text-transform: uppercase;
}
.brand-wordmark strong {
  font-size: 1.65rem;
  font-weight: 780;
  letter-spacing: .015em;
}
.brand-wordmark span {
  margin-top: 5px;
  font-size: 1.32rem;
  font-weight: 700;
  letter-spacing: .012em;
}
.brand-tagline {
  margin-left: 2px;
  padding-left: 15px;
  border-left: 1px solid rgba(255,255,255,.38);
  color: #fff;
  font-size: .71rem;
  font-weight: 500;
  line-height: 1.18;
}
.brand--footer { min-width: 0; }
.brand--footer .brand-symbol { width: 47px; height: 47px; flex-basis: 47px; }
.brand--footer .brand-wordmark { min-width: 184px; }
.brand--footer .brand-wordmark strong { font-size: 1.45rem; }
.brand--footer .brand-wordmark span { font-size: 1.14rem; }

.site-nav { gap: 0; }
.site-nav a {
  padding: 12px 11px;
  border-radius: 0;
  color: #fff;
  font-size: .84rem;
  font-weight: 580;
  white-space: nowrap;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] {
  background: transparent;
  color: #fff;
}
.site-nav a:not(.nav-cta)::after {
  content: "";
  display: block;
  width: 0;
  height: 2px;
  margin: 8px auto -10px;
  background: #258df0;
  transition: width .2s ease;
}
.site-nav a:not(.nav-cta):hover::after,
.site-nav a:not(.nav-cta)[aria-current="page"]::after { width: 100%; }
.site-nav .nav-link--chevron {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.site-nav .nav-link--chevron::before {
  content: "";
  order: 2;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.site-nav .nav-cta {
  min-width: 159px;
  margin-left: 17px;
  padding: 15px 24px;
  border-radius: 5px;
  background: linear-gradient(180deg, #0b7de8, #0565c6);
  box-shadow: 0 10px 25px rgba(0, 94, 197, .28);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-align: center;
  text-transform: uppercase;
}
.site-nav .nav-cta:hover,
.site-nav .nav-cta[aria-current="page"] {
  background: linear-gradient(180deg, #188bf6, #075db3);
  box-shadow: 0 13px 28px rgba(0, 94, 197, .36);
}
.site-nav .nav-cta::after { display: none !important; }

/* Reference-led homepage hero */
.hero {
  min-height: 560px;
  padding: calc(var(--header-h) + 145px) 0 45px;
  align-items: flex-start;
  color: #fff;
  background-color: #00172d;
  background-image: url('../images/hero-group-composite-reference.jpg');
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
@supports (background-image: image-set(url('../images/hero-group-composite-reference.webp') type('image/webp'))) {
  .hero {
    background-image: image-set(
      url('../images/hero-group-composite-reference.avif') type('image/avif'),
      url('../images/hero-group-composite-reference.webp') type('image/webp'),
      url('../images/hero-group-composite-reference.jpg') type('image/jpeg')
    );
  }
}
.hero::before {
  inset: 0;
  z-index: 0;
  opacity: 1;
  background:
    linear-gradient(90deg, rgba(0,16,35,.20) 0%, rgba(0,16,35,.04) 54%, rgba(0,16,35,.16) 100%),
    linear-gradient(180deg, rgba(0,12,27,.02) 0%, rgba(0,18,40,.16) 42%, rgba(0,23,50,.96) 100%);
  background-size: auto;
  mask-image: none;
}
.hero::after {
  z-index: 1;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 38px;
  background: #fff;
  clip-path: polygon(0 62%, 100% 0, 100% 100%, 0 100%);
}
.hero-inner {
  position: relative;
  z-index: 2;
}
.hero-content {
  max-width: 1040px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.hero h1 {
  max-width: none;
  margin: 0;
  color: #fff;
  font-size: clamp(3.25rem, 4.2vw, 4.25rem);
  font-weight: 770;
  line-height: 1.02;
  letter-spacing: -.045em;
  text-shadow: 0 4px 25px rgba(0,0,0,.55);
}
.hero-intro {
  max-width: 970px;
  margin: 11px 0 0;
  color: #fff;
  font-size: clamp(1.08rem, 1.55vw, 1.32rem);
  font-weight: 460;
  line-height: 1.35;
  text-shadow: 0 3px 18px rgba(0,0,0,.58);
}
.hero-value-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1040px;
  margin-top: 21px;
}
.hero-value {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 14px;
  padding: 0 24px;
  color: #fff;
}
.hero-value:first-child { padding-left: 0; }
.hero-value + .hero-value { border-left: 1px solid rgba(255,255,255,.27); }
.hero-value svg {
  width: 39px;
  height: 39px;
  flex: 0 0 39px;
  color: #1c94ff;
  overflow: visible;
}
.hero-value div { min-width: 0; }
.hero-value strong,
.hero-value span { display: block; }
.hero-value strong {
  font-size: .92rem;
  font-weight: 680;
  line-height: 1.2;
}
.hero-value span {
  margin-top: 4px;
  color: #fff;
  font-size: .82rem;
  font-weight: 420;
  line-height: 1.28;
}
.hero .hero-actions {
  gap: 29px;
  margin-top: 20px;
}
.hero .button {
  min-width: 255px;
  justify-content: center;
}
.hero .button--secondary {
  border-color: rgba(255,255,255,.72);
  background: rgba(0,20,44,.36);
}
.hero .button--secondary:hover { background: rgba(255,255,255,.10); }

/* Compact six-company presentation */
.home-companies-section {
  position: relative;
  z-index: 3;
  padding: 11px 0 24px;
  background: #fff;
}
.home-companies-intro {
  max-width: 880px;
  margin: 0 auto 17px;
  text-align: center;
}
.home-companies-intro h2 {
  color: #092342;
  font-size: clamp(1.85rem, 2.5vw, 2.35rem);
  font-weight: 730;
  line-height: 1.12;
}
.home-companies-intro p {
  margin: 7px 0 0;
  color: #263d55;
  font-size: .94rem;
  line-height: 1.45;
}
.home-company-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px;
}
.home-company-card {
  --brand: #0b6fc9;
  --wordmark: #113765;
  display: grid;
  min-width: 0;
  grid-template-rows: 56px 114px minmax(112px, 1fr);
  overflow: hidden;
  border: 1px solid #e6eaee;
  border-top: 2px solid var(--brand);
  border-radius: 6px;
  background: #f7f8f9;
  box-shadow: 0 5px 16px rgba(0, 23, 45, .07);
  transition: transform .2s ease, box-shadow .2s ease;
}
.home-company-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(0, 23, 45, .12);
}
.home-company-card--lancing { --brand: #0a3f80; --wordmark: #0a3f80; }
.home-company-card--automation { --brand: #0878da; --wordmark: #0b315b; }
.home-company-card--guarding { --brand: #f06416; --wordmark: #24282c; }
.home-company-card--sortation { --brand: #17a365; --wordmark: #158e58; }
.home-company-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 7px 12px 6px;
  background: #fff;
  color: var(--brand);
  text-decoration: none;
}
.home-company-logo:hover { text-decoration: none; }
.company-symbol {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}
.home-company-wordmark {
  display: grid;
  min-width: 0;
  line-height: .95;
  text-transform: uppercase;
}
.home-company-wordmark strong {
  overflow: hidden;
  color: var(--wordmark);
  font-size: clamp(1.15rem, 1.55vw, 1.46rem);
  font-weight: 780;
  letter-spacing: .015em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-company-wordmark span {
  margin-top: 5px;
  color: var(--brand);
  font-size: clamp(.61rem, .75vw, .72rem);
  font-weight: 760;
  letter-spacing: .025em;
  white-space: nowrap;
}
.home-company-image {
  display: block;
  overflow: hidden;
  background: #dbe3e9;
  text-decoration: none;
}
.home-company-image picture,
.home-company-image img {
  width: 100%;
  height: 100%;
}
.home-company-image img {
  object-fit: cover;
  transition: transform .45s ease;
}
.home-company-card:hover .home-company-image img { transform: scale(1.035); }
.home-company-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 10px 11px 11px;
}
.home-company-body p {
  margin: 0 0 11px;
  color: #263746;
  font-size: .82rem;
  line-height: 1.46;
}
.home-company-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 36px;
  margin-top: auto;
  padding: 8px 13px;
  border-radius: 4px;
  background: var(--brand);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,.12);
}
.home-company-button::after {
  content: "›";
  font-size: 1.55rem;
  font-weight: 300;
  line-height: .5;
  transition: transform .2s ease;
}
.home-company-button:hover {
  filter: brightness(1.07);
  text-decoration: none;
}
.home-company-button:hover::after { transform: translateX(3px); }
.home-benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
  padding: 10px 20px;
  border: 1px solid #e3e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(0,23,45,.035);
}
.home-benefit {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 13px;
  padding: 0 22px;
}
.home-benefit:first-child { padding-left: 0; }
.home-benefit + .home-benefit { border-left: 1px solid #edf0f2; }
.home-benefit svg {
  width: 39px;
  height: 39px;
  flex: 0 0 39px;
  color: #0b315b;
}
.home-benefit strong,
.home-benefit span { display: block; }
.home-benefit strong {
  color: #0b2747;
  font-size: .86rem;
  font-weight: 720;
  line-height: 1.2;
}
.home-benefit span {
  margin-top: 2px;
  color: #344a61;
  font-size: .78rem;
  line-height: 1.25;
}

/* Bring the rest of the site into the same restrained corporate system. */
.section-heading { gap: 42px; margin-bottom: 42px; }
.section-heading p { font-size: 1rem; }
.card {
  border-radius: 9px;
  border-color: #e0e5e9;
  box-shadow: 0 8px 25px rgba(0,23,45,.07);
}
.card__body { padding: 24px; }
.card__image { aspect-ratio: 16 / 9; }
.page-hero {
  min-height: 450px;
  padding-top: calc(var(--header-h) + 95px);
  padding-bottom: 70px;
  background-color: #00172d;
}
.page-hero::after {
  background: linear-gradient(90deg, rgba(0,18,38,.98) 0%, rgba(0,18,38,.88) 49%, rgba(0,18,38,.48) 80%, rgba(0,18,38,.32) 100%);
}
.page-hero h1 {
  max-width: 940px;
  font-size: clamp(2.7rem, 4.9vw, 4.75rem);
  font-weight: 750;
}
.page-hero .lead { max-width: 800px; }
.site-footer { background: #001326; }

@media (min-width: 1100px) {
  .hero h1 { white-space: nowrap; }
}

@media (max-width: 1360px) {
  .brand { min-width: 286px; }
  .brand-tagline { display: none; }
  .site-nav a { padding-inline: 9px; font-size: .8rem; }
  .site-nav .nav-cta { min-width: 144px; margin-left: 10px; padding-inline: 19px; }
  .home-company-grid { gap: 22px; }
}

@media (max-width: 1180px) {
  :root { --header-h: 78px; }
  .container { width: min(var(--container), calc(100% - 40px)); }
  .brand { min-width: 0; }
  .brand-symbol { width: 47px; height: 47px; flex-basis: 47px; }
  .brand-wordmark { min-width: 184px; }
  .brand-wordmark strong { font-size: 1.48rem; }
  .brand-wordmark span { font-size: 1.14rem; }
  .nav-toggle { display: flex; flex-direction: column; }
  .site-nav {
    position: fixed;
    inset: var(--header-h) 0 auto;
    display: grid;
    gap: 3px;
    max-height: calc(100svh - var(--header-h));
    overflow-y: auto;
    padding: 16px 20px 24px;
    border-top: 1px solid #173a5a;
    background: rgba(0,23,45,.99);
    transform: translateY(-120%);
    opacity: 0;
    visibility: hidden;
    transition: .28s var(--ease);
  }
  .site-nav.is-open { transform: translateY(0); opacity: 1; visibility: visible; }
  .site-nav a { padding: 13px 14px; font-size: .92rem; }
  .site-nav a:not(.nav-cta)::after { display: none; }
  .site-nav .nav-cta { width: 100%; margin: 8px 0 0; text-align: center; }
  .hero {
    min-height: 650px;
    padding-top: calc(var(--header-h) + 150px);
  }
  .hero h1 { white-space: normal; }
  .hero-value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0; max-width: 760px; }
  .hero-value:nth-child(3) { border-left: 0; padding-left: 0; }
  .home-company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-company-card { grid-template-rows: 60px 150px minmax(115px,1fr); }
}

@media (max-width: 820px) {
  .container, .container--narrow { width: min(100% - 30px, var(--container)); }
  .hero {
    min-height: 720px;
    padding-top: calc(var(--header-h) + 125px);
    padding-bottom: 60px;
    background-position: 46% top;
  }
  .hero::before {
    background:
      linear-gradient(90deg, rgba(0,18,38,.56), rgba(0,18,38,.24)),
      linear-gradient(180deg, rgba(0,16,35,.08) 0%, rgba(0,20,44,.48) 39%, rgba(0,23,50,.98) 100%);
  }
  .hero h1 { font-size: clamp(2.75rem, 8vw, 3.8rem); }
  .hero-intro { max-width: 700px; }
  .hero-value { padding-right: 16px; }
  .hero .button { min-width: 0; }
  .home-companies-section { padding-top: 18px; }
  .home-company-grid { gap: 18px; }
  .home-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 0; }
  .home-benefit:nth-child(3) { border-left: 0; padding-left: 0; }
}

@media (max-width: 620px) {
  :root { --header-h: 72px; }
  .header-inner { gap: 12px; }
  .brand { gap: 8px; }
  .brand-symbol { width: 40px; height: 40px; flex-basis: 40px; }
  .brand-wordmark { min-width: 150px; }
  .brand-wordmark strong { font-size: 1.18rem; }
  .brand-wordmark span { margin-top: 4px; font-size: .92rem; }
  .hero {
    min-height: 780px;
    padding-top: calc(var(--header-h) + 112px);
    padding-bottom: 62px;
    background-position: 47% top;
    background-image: url('../images/hero-group-composite-reference.jpg');
  }
  @supports (background-image: image-set(url('../images/hero-group-composite-reference.webp') type('image/webp'))) {
    .hero {
      background-image: image-set(
        url('../images/hero-group-composite-reference.avif') type('image/avif'),
        url('../images/hero-group-composite-reference.webp') type('image/webp'),
        url('../images/hero-group-composite-reference.jpg') type('image/jpeg')
      );
    }
  }
  .hero::before {
    background:
      linear-gradient(90deg, rgba(0,18,38,.72), rgba(0,18,38,.48)),
      linear-gradient(180deg, rgba(0,16,35,.10) 0%, rgba(0,20,44,.60) 34%, rgba(0,23,50,.99) 100%);
  }
  .hero::after { height: 25px; }
  .hero h1 { font-size: clamp(2.45rem, 12vw, 3.25rem); line-height: 1.04; }
  .hero-intro { margin-top: 13px; font-size: 1rem; line-height: 1.45; }
  .hero-value-grid { grid-template-columns: 1fr 1fr; gap: 15px 0; margin-top: 24px; }
  .hero-value { align-items: flex-start; gap: 9px; padding: 0 10px; }
  .hero-value:first-child,
  .hero-value:nth-child(3) { padding-left: 0; }
  .hero-value svg { width: 31px; height: 31px; flex-basis: 31px; }
  .hero-value strong { font-size: .78rem; }
  .hero-value span { font-size: .7rem; }
  .hero .hero-actions { gap: 11px; margin-top: 25px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .home-companies-intro h2 { font-size: 1.7rem; }
  .home-company-grid { grid-template-columns: 1fr; }
  .home-company-card { grid-template-rows: 60px 165px minmax(108px,1fr); }
  .home-company-wordmark strong { font-size: 1.35rem; }
  .home-company-wordmark span { font-size: .7rem; }
  .home-benefits { grid-template-columns: 1fr; padding: 12px 16px; }
  .home-benefit { padding: 9px 0; }
  .home-benefit + .home-benefit { border-left: 0; border-top: 1px solid #edf0f2; }
  .page-hero { min-height: 480px; padding-top: calc(var(--header-h) + 75px); }
}

@media print {
  .home-companies-section { padding: 20px 0; }
  .hero-value-grid, .home-benefits { display: none; }
}

/* Corporate registration and documentary-image update — 8 August 2026 */
.footer-bottom { align-items: flex-start; }
.footer-company-line {
  flex: 1 1 720px;
  max-width: 920px;
  line-height: 1.55;
}
.footer-bottom__links { flex: 0 0 auto; }
.legal-details-list li { padding-bottom: 13px; }
.legal-details-list li + li { padding-top: 13px; border-top: 1px solid var(--line); }
.company-record-link { display: inline-flex; margin-top: 20px; }
.image-credit-table th { min-width: 190px; }
.image-credit-table td { vertical-align: top; }
.image-credit-table a { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .footer-company-line { max-width: none; }
  .footer-bottom__links { gap: 12px; }
  .image-credit-table table { min-width: 720px; }
}

/* Six-company portfolio extension: Oxford Vision Systems and Oxford Traceability */
.company-accent--vision{--accent:#1594ff}.company-accent--traceability{--accent:#7657d8}.card--vision{--accent:#1594ff}.card--traceability{--accent:#7657d8}.home-company-card--vision{--brand:#1594ff;--wordmark:#0b315b}.home-company-card--traceability{--brand:#7657d8;--wordmark:#0b315b}.footer-contact a{color:#dcecf5;font-weight:650}.footer-contact a:hover{color:#fff}.home-company-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.capability-flow{grid-template-columns:repeat(6,minmax(0,1fr))}.contact-route a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}@media(max-width:1180px){.home-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capability-flow{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.home-company-grid,.capability-flow{grid-template-columns:1fr}}
