
:root {
  --ink: #13263a;
  --ink-soft: #4a6073;
  --navy: #061a2d;
  --navy-2: #0a2d49;
  --blue: #007f98;
  --blue-dark: #00677d;
  --cyan: #42d3d7;
  --ice: #edf8fa;
  --soft: #f6f8fb;
  --line: #d4e1e8;
  --white: #ffffff;
  --success: #147a56;
  --warning: #9a5a00;
  --radius: 20px;
  --radius-sm: 10px;
  --shadow: 0 22px 60px rgba(6, 26, 45, .14);
  --shadow-sm: 0 10px 28px rgba(6, 26, 45, .09);
  --container: 1240px;
  --transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; }
a { color: var(--blue-dark); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--blue); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { color: var(--navy); font-weight: 760; line-height: 1.12; letter-spacing: -.025em; margin: 0 0 .75rem; }
h1 { font-size: clamp(2.35rem, 5vw, 4.75rem); max-width: 18ch; }
h2 { font-size: clamp(1.85rem, 3vw, 3rem); }
h3 { font-size: clamp(1.15rem, 1.8vw, 1.45rem); }
p { margin: 0 0 1.1rem; }
ul, ol { margin-top: 0; }
address { font-style: normal; }
::selection { background: #cbeeff; color: var(--navy); }

.skip-link {
  position: fixed;
  top: .5rem;
  left: .5rem;
  z-index: 10000;
  transform: translateY(-160%);
  padding: .75rem 1rem;
  background: var(--white);
  color: var(--navy);
  border: 2px solid var(--blue);
  border-radius: var(--radius-sm);
  font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; }

.container { width: min(calc(100% - 2.5rem), var(--container)); margin-inline: auto; }
.container--narrow { max-width: 860px; }
.container--article { max-width: 900px; }
.section { padding: clamp(4.25rem, 8vw, 7.5rem) 0; }
.section--soft { background: var(--soft); }
.section--dark { background: var(--navy); color: #dbe7f0; }
.section--dark h2, .section--dark h3, .section--dark a:not(.button) { color: var(--white); }
.section--dark .lead, .section--dark p { color: #d5e0e9; }
.section--video { background: linear-gradient(135deg, var(--navy), #113b62); color: var(--white); }
.section--video h2, .section--video p { color: var(--white); }
.section-action { display: flex; justify-content: center; margin-top: 2rem; }

.eyebrow {
  display: block;
  margin: 0 0 .75rem;
  color: var(--blue-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.eyebrow--light { color: #80d9ed; }
.lead { color: var(--ink-soft); font-size: clamp(1.08rem, 1.7vw, 1.35rem); line-height: 1.6; }
.section-heading { max-width: 790px; margin-bottom: 2.25rem; }
.section-heading > p:last-child { color: var(--ink-soft); font-size: 1.05rem; }
.section-heading--split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr); gap: 2rem; align-items: end; max-width: none; }
.section-heading--spaced { margin-top: 3rem; }

.topbar { background: #041120; color: #dce8f1; font-size: .82rem; }
.topbar__inner { min-height: 42px; display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; }
.topbar p { margin: 0; }
.topbar a { color: var(--white); text-decoration: none; }
.topbar__links { display: flex; gap: 1.25rem; white-space: nowrap; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(217,227,234,.8);
  backdrop-filter: blur(16px);
  transition: box-shadow var(--transition);
}
.site-header.is-scrolled { box-shadow: 0 8px 30px rgba(7,26,47,.08); }
.site-header__inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { flex: 0 0 auto; }
.brand img { width: 272px; height: auto; }
.primary-nav { display: flex; align-items: center; gap: 1.4rem; }
.primary-nav > a { color: var(--ink); font-size: .94rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.primary-nav > a:hover, .primary-nav > a[aria-current="page"] { color: var(--blue-dark); }
.nav-toggle { display: none; border: 0; background: transparent; color: var(--navy); padding: .5rem; }
.nav-toggle__label { font-weight: 800; margin-right: .6rem; }
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after {
  width: 24px; height: 2px; background: currentColor; display: inline-block; position: relative; transition: transform var(--transition);
}
.nav-toggle__bars::before, .nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -7px; }
.nav-toggle__bars::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { top: 0; transform: rotate(-45deg); }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .8rem 1.25rem;
  border: 2px solid var(--blue);
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: transform var(--transition), background var(--transition), border-color var(--transition), color var(--transition);
}
.button:hover { transform: translateY(-2px); background: var(--blue-dark); border-color: var(--blue-dark); color: var(--white); }
.button--outline { background: transparent; color: var(--blue-dark); border-color: #8db8d1; }
.button--outline:hover { background: var(--navy); border-color: var(--navy); color: var(--white); }
.button--light { background: var(--white); border-color: var(--white); color: var(--navy); }
.button--light:hover { background: #dff7fc; border-color: #dff7fc; color: var(--navy); }
.button--ghost-light { background: transparent; border-color: rgba(255,255,255,.55); color: var(--white); }
.button--ghost-light:hover { background: var(--white); border-color: var(--white); color: var(--navy); }
.button--small { min-height: 40px; padding: .62rem 1rem; font-size: .9rem; }
.button--nav { min-height: 42px; padding: .65rem 1.1rem; color: var(--white) !important; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.text-link { display: inline-flex; gap: .35rem; font-weight: 800; text-decoration: none; }

.breadcrumbs { margin-bottom: 2rem; font-size: .86rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35rem .65rem; list-style: none; margin: 0; padding: 0; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: .65rem; color: #8190a0; }
.breadcrumbs a { color: var(--ink-soft); text-decoration: none; }

.home-hero { position: relative; min-height: min(780px, 82vh); display: grid; align-items: center; overflow: hidden; background: var(--navy); color: var(--white); }
.home-hero__video, .home-hero__scrim { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-hero__video { object-fit: cover; }
.home-hero__scrim { background: linear-gradient(90deg, rgba(4,17,32,.94) 0%, rgba(4,17,32,.77) 52%, rgba(4,17,32,.34) 100%), linear-gradient(0deg, rgba(4,17,32,.7), transparent 55%); }
.home-hero__content { position: relative; z-index: 2; padding-block: clamp(5rem, 11vw, 9rem); }
.home-hero h1 { color: var(--white); max-width: 15ch; }
.home-hero__content > p:not(.eyebrow):not(.media-credit) { max-width: 730px; font-size: clamp(1.1rem, 2vw, 1.42rem); color: #e6f0f7; }
.media-credit { margin-top: 1.5rem; font-size: .76rem; color: #c3d2df; }

.trust-strip { background: var(--navy-2); color: var(--white); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-strip__grid > div { padding: 1.4rem 1.2rem; border-right: 1px solid rgba(255,255,255,.13); }
.trust-strip__grid > div:last-child { border-right: 0; }
.trust-strip strong, .trust-strip span { display: block; }
.trust-strip strong { font-size: 1.05rem; }
.trust-strip span { color: #bdcad6; font-size: .82rem; }

.page-hero, .machine-hero, .contact-hero, .simple-hero { background: linear-gradient(180deg, var(--ice), var(--white)); padding: clamp(3.5rem, 7vw, 6.5rem) 0; }
.page-hero__grid, .machine-hero__grid, .contact-hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.page-hero__copy h1 { max-width: 18ch; }
.simple-hero h1 { max-width: 22ch; }
.simple-hero .lead { max-width: 760px; }
.machine-hero__grid { grid-template-columns: minmax(360px, .95fr) minmax(0, 1.05fr); }
.machine-hero__copy h1 { font-size: clamp(2.25rem, 4.3vw, 4.25rem); }
.accuracy-note { margin-top: 1.25rem; color: var(--ink-soft); font-size: .87rem; }

.media-frame { margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.media-frame img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--white); }
.media-frame figcaption { padding: .75rem 1rem; color: var(--ink-soft); background: #f7fafc; border-top: 1px solid var(--line); font-size: .72rem; line-height: 1.45; overflow-wrap: anywhere; }
.media-frame figcaption a { color: inherit; }
.media-frame--hero { transform: rotate(1.2deg); }
.media-frame--feature img { aspect-ratio: 16 / 11; }
.media-frame--product img { aspect-ratio: 1 / 1; }
.media-frame--card { border: 0; border-radius: 0; box-shadow: none; }
.media-frame--card img { aspect-ratio: 4 / 3; }
.remote-media.is-fallback { object-fit: cover; }

.card-grid { display: grid; gap: 1.25rem; }
.card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.link-card, .route-card, .source-site-card {
  padding: 1.55rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.link-card:hover, .route-card:hover, .source-site-card:hover { transform: translateY(-4px); border-color: #a8cbdc; box-shadow: var(--shadow); }
.link-card h3 a, .route-card h3 a, .source-site-card h3 a { color: var(--navy); text-decoration: none; }
.link-card p, .route-card p, .source-site-card p { color: var(--ink-soft); font-size: .95rem; }

.machine-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.35rem; }
.machine-card { overflow: hidden; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition); }
.machine-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.machine-card__image { display: block; background: var(--white); }
.machine-card__body { padding: 1.35rem; }
.machine-card h3 a { color: var(--navy); text-decoration: none; }
.machine-card p:not(.eyebrow) { color: var(--ink-soft); font-size: .93rem; }
.section--dark .machine-card p:not(.eyebrow) { color: var(--ink-soft); }
.section--dark .machine-card h3 a { color: var(--navy); }

.split-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.split-feature--reverse > :first-child { order: 2; }
.split-feature--reverse > :last-child { order: 1; }
.split-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: start; }
.product-detail-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); gap: clamp(2.5rem, 6vw, 6rem); }

.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.check-list li { position: relative; padding-left: 2rem; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: -.05rem; display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 50%; background: #dff6ed; color: var(--success); font-size: .8rem; font-weight: 900; }
.section--dark .check-list li::before { background: rgba(54,183,215,.17); color: #8ee3f2; }

.numbered-list { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 1rem; }
.numbered-list li { display: grid; grid-template-columns: 2.25rem 1fr; gap: 1rem; align-items: start; }
.numbered-list li > span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--cyan); color: var(--navy); font-weight: 900; }
.numbered-list p { margin: .2rem 0 0; }
.numbered-list--named h3 { margin: 0 0 .35rem; }

.spec-callout, .selection-note, .notice-panel, .dark-card, .contact-card, .address-card, .sticky-card, .key-takeaways {
  padding: clamp(1.5rem, 3vw, 2.3rem);
  border-radius: var(--radius);
}
.spec-callout { background: linear-gradient(135deg, var(--navy), #123d64); color: #e0ebf3; box-shadow: var(--shadow); }
.spec-callout h2 { color: var(--white); }
.spec-callout .text-link { color: #91e3f2; }
.selection-note, .notice-panel, .key-takeaways { background: var(--ice); border: 1px solid #cfe4ee; }
.notice-panel { margin-bottom: 2rem; }
.notice-panel h2 { font-size: 1.55rem; }
.dark-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); }
.dark-card h2 { color: var(--white); }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); }
.table-wrap--wide { margin-top: 2rem; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .9rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
tr:last-child th, tr:last-child td { border-bottom: 0; }
th { color: var(--navy); font-weight: 800; }
.spec-table th { width: 38%; background: #f4f8fb; }
.source-table { min-width: 900px; font-size: .82rem; }
.source-table thead { background: var(--navy); color: var(--white); }
.source-table thead th { color: var(--white); }
.source-table td:nth-child(3) { max-width: 600px; overflow-wrap: anywhere; }

.source-links { margin-top: 2.5rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--soft); }
.source-links h2 { font-size: 1.35rem; }
.source-links ul { display: flex; flex-wrap: wrap; gap: .65rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.source-links li a, .network-links a { display: inline-flex; padding: .55rem .8rem; border-radius: 999px; background: var(--white); border: 1px solid var(--line); font-size: .86rem; font-weight: 700; text-decoration: none; }
.network-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }

.video-shell { overflow: hidden; border-radius: var(--radius); border: 1px solid rgba(255,255,255,.2); background: #000; box-shadow: var(--shadow); }
.video-shell video { width: 100%; max-height: 680px; }

.article-layout, .form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.article-body { min-width: 0; }
.article-section { padding-top: 2.7rem; margin-top: 2.7rem; border-top: 1px solid var(--line); }
.article-section:first-child { margin-top: 0; }
.article-section h2 { font-size: clamp(1.65rem, 2.5vw, 2.3rem); }
.article-checklist { padding: 2rem; background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); }
.article-sidebar, .form-sidebar { min-width: 0; }
.sticky-card { position: sticky; top: 120px; background: var(--navy); color: #dce8f0; box-shadow: var(--shadow); }
.sticky-card h2 { color: var(--white); font-size: 1.65rem; }
.sticky-card .text-link { display: flex; margin-top: 1.2rem; color: #8ee3f2; }
.sticky-card .check-list { margin-bottom: 1.5rem; }

.faq-list { display: grid; gap: .75rem; }
.faq-list details { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); box-shadow: 0 4px 15px rgba(7,26,47,.05); }
.faq-list summary { position: relative; cursor: pointer; list-style: none; padding: 1.2rem 3rem 1.2rem 1.25rem; color: var(--navy); font-weight: 800; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); color: var(--blue); font-size: 1.55rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-answer { padding: 0 1.25rem 1.15rem; color: var(--ink-soft); }
.faq-answer p { margin: 0; }

.cta-band { padding: clamp(3.5rem, 7vw, 6rem) 0; background: linear-gradient(120deg, var(--blue-dark), var(--navy)); color: var(--white); }
.cta-band__inner { display: flex; justify-content: space-between; align-items: center; gap: 3rem; }
.cta-band h2 { color: var(--white); max-width: 18ch; }
.cta-band p:not(.eyebrow) { max-width: 710px; color: #dce8f1; }
.cta-band .button-row { flex: 0 0 auto; }

.contact-hero__grid { align-items: start; }
.contact-card { background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.contact-card h2 { font-size: 1.65rem; }
.contact-card strong { color: var(--navy); }
.enquiry-form { padding: clamp(1.4rem, 3vw, 2.3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow-sm); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin-bottom: 1.4rem; }
.field { display: grid; gap: .4rem; }
.field--full { grid-column: 1 / -1; }
.field label { color: var(--navy); font-size: .9rem; font-weight: 800; }
.field input, .field textarea, .field select { width: 100%; min-height: 48px; padding: .75rem .85rem; border: 1px solid #adbdc9; border-radius: 8px; background: var(--white); color: var(--ink); }
.field textarea { resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,120,201,.12); outline: 0; }
.checkbox-field { display: flex; grid-template-columns: auto 1fr; align-items: start; }
.checkbox-field input { width: 1.2rem; min-height: 1.2rem; margin-top: .25rem; }
.hp-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-note { margin-top: 1rem; color: var(--ink-soft); font-size: .82rem; }
.form-alert { padding: 1rem; margin-bottom: 1.25rem; border-radius: var(--radius-sm); background: #fff0f0; border: 1px solid #e8b5b5; color: #7f2424; }

.directory-group { padding-top: 3rem; margin-top: 3rem; border-top: 1px solid var(--line); }
.directory-group:first-of-type { margin-top: 0; }
.domain-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.domain-card { padding: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.domain-card h3 { font-size: 1rem; overflow-wrap: anywhere; }
.domain-card h3 a { color: var(--navy); text-decoration: none; }
.domain-card p { margin: 0; color: var(--ink-soft); font-size: .82rem; }

.sitemap-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.sitemap-group { padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); }
.sitemap-group h2 { font-size: 1.45rem; }
.sitemap-group ul { columns: 2; column-gap: 2rem; padding-left: 1.15rem; }
.sitemap-group li { break-inside: avoid; margin-bottom: .45rem; }

.status-page { min-height: 65vh; display: grid; align-items: center; padding: 5rem 0; background: linear-gradient(180deg, var(--ice), var(--white)); }
.status-card { padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); text-align: center; }
.status-card h1 { max-width: 20ch; margin-inline: auto; }
.status-card .lead { max-width: 680px; margin-inline: auto; }
.status-card .button-row { justify-content: center; }
.status-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 50%; background: #dff6ed; color: var(--success); font-size: 2rem; font-weight: 900; }
.status-code { margin: 0; color: var(--blue); font-size: clamp(4rem, 14vw, 8rem); font-weight: 900; line-height: 1; }

.site-footer { padding-top: 4.5rem; background: #041120; color: #c8d5df; }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr .8fr .8fr 1fr; gap: 2.5rem; }
.site-footer h2 { color: var(--white); font-size: 1.05rem; letter-spacing: 0; }
.site-footer a { color: #e1edf4; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.site-footer__brand img { margin-bottom: 1.4rem; width: 272px; }
.site-footer__brand p { max-width: 430px; }
.footer-small { color: #91a4b4; font-size: .78rem; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 2rem; align-items: center; margin-top: 3.5rem; padding: 1.4rem 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 1rem; }

.back-to-top { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 800; display: none; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--navy); color: var(--white); box-shadow: var(--shadow); font-weight: 900; }
.back-to-top.is-visible { display: grid; }
.mobile-actions { display: none; }

@media (max-width: 1080px) {
  .primary-nav { gap: .85rem; }
  .primary-nav > a { font-size: .86rem; }
  .site-header__inner { gap: 1rem; }
  .brand img { width: 230px; }
  .machine-grid, .card-grid--3, .domain-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  body { font-size: 16px; padding-bottom: 58px; }
  .topbar p { display: none; }
  .topbar__inner { justify-content: flex-end; }
  .site-header__inner { min-height: 72px; }
  html.js .nav-toggle { display: inline-flex; align-items: center; }
  .primary-nav { position: absolute; top: 100%; left: 0; right: 0; display: grid; gap: 0; padding: 1rem 1.25rem 1.35rem; background: var(--white); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .primary-nav > a { padding: .8rem .4rem; }
  html.js .primary-nav { display: none; }
  html.js .primary-nav.is-open { display: grid; }
  .button--nav { margin-top: .5rem; }
  .page-hero__grid, .machine-hero__grid, .contact-hero__grid, .split-feature, .split-content, .product-detail-grid, .article-layout, .form-layout { grid-template-columns: 1fr; }
  .page-hero__media { max-width: 650px; }
  .machine-hero__media { order: 2; }
  .machine-hero__copy { order: 1; }
  .split-feature--reverse > :first-child, .split-feature--reverse > :last-child { order: initial; }
  .section-heading--split { grid-template-columns: 1fr; gap: .5rem; }
  .trust-strip__grid { grid-template-columns: repeat(2, 1fr); }
  .trust-strip__grid > div:nth-child(2) { border-right: 0; }
  .trust-strip__grid > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.13); }
  .article-sidebar, .form-sidebar { order: -1; }
  .sticky-card { position: static; }
  .cta-band__inner { display: block; }
  .cta-band .button-row { margin-top: 1.5rem; }
  .mobile-actions { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200; display: grid; grid-template-columns: 1fr 1.3fr; min-height: 58px; background: var(--navy); box-shadow: 0 -5px 25px rgba(7,26,47,.2); }
  .mobile-actions a { display: grid; place-items: center; color: var(--white); font-weight: 800; text-decoration: none; }
  .mobile-actions a:last-child { background: var(--blue); }
  .back-to-top { bottom: 72px; }
}

@media (max-width: 640px) {
  .container { width: min(calc(100% - 1.5rem), var(--container)); }
  .section { padding: 4rem 0; }
  .home-hero { min-height: 680px; }
  .home-hero__scrim { background: linear-gradient(90deg, rgba(4,17,32,.93), rgba(4,17,32,.68)), linear-gradient(0deg, rgba(4,17,32,.78), transparent); }
  .topbar__links { width: 100%; justify-content: space-between; gap: .5rem; }
  .topbar__inner { min-height: 38px; }
  .brand img { width: 210px; }
  .button-row { display: grid; grid-template-columns: 1fr; }
  .button-row .button { width: 100%; }
  .card-grid--2, .card-grid--3, .machine-grid, .domain-grid, .sitemap-grid, .site-footer__grid, .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .trust-strip__grid { grid-template-columns: 1fr 1fr; }
  .trust-strip__grid > div { padding: 1rem .75rem; }
  .sitemap-group ul { columns: 1; }
  .site-footer__bottom { display: block; }
  .site-footer__bottom nav { margin-top: 1rem; }
  .media-frame--hero { transform: none; }
  .breadcrumbs { overflow-x: auto; padding-bottom: .3rem; }
  .breadcrumbs ol { flex-wrap: nowrap; width: max-content; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .home-hero__video { display: none; }
  .home-hero { background: linear-gradient(120deg, var(--navy), #184a73); }
}

@media print {
  .topbar, .site-header, .site-footer, .mobile-actions, .back-to-top, .cta-band, .button-row, .article-sidebar, .form-sidebar { display: none !important; }
  body { color: #000; font-size: 11pt; padding: 0; }
  a { color: #000; text-decoration: underline; }
  .section, .page-hero, .machine-hero, .simple-hero { padding: 1rem 0; }
  .container { width: 100%; max-width: none; }
  .media-frame { box-shadow: none; }
}

/* --------------------------------------------------------------------------
   Customer-first visual refresh — 13 July 2026
   -------------------------------------------------------------------------- */
:root {
  --accent: #ffb703;
  --accent-dark: #d88e00;
  --accent-soft: #fff3c4;
  --steel: #e7eef2;
}

body {
  background:
    radial-gradient(circle at 8% 0%, rgba(66, 211, 215, .08), transparent 30rem),
    var(--white);
}

h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }

.container { width: min(calc(100% - 2.25rem), var(--container)); }
.section { padding: clamp(3.1rem, 5.2vw, 5.25rem) 0; }
.section-heading { margin-bottom: clamp(1.55rem, 3vw, 2.15rem); }
.section-heading--spaced { margin-top: 2.25rem; }
.section-action { margin-top: 1.6rem; }

.topbar {
  background: linear-gradient(90deg, #03101d, #0a2d49);
  color: #f4fbff;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.topbar__inner { min-height: 40px; }
.topbar a { color: #fff; font-weight: 750; }

.site-header {
  background: rgba(255,255,255,.97);
  border-bottom-color: rgba(160,184,198,.55);
}
.site-header__inner { min-height: 80px; }
.brand img { width: 310px; }
.primary-nav { gap: 1.15rem; }
.primary-nav > a {
  position: relative;
  color: #173047;
  font-weight: 780;
}
.primary-nav > a:not(.button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -.45rem;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  transition: right var(--transition);
}
.primary-nav > a:not(.button):hover::after,
.primary-nav > a:not(.button)[aria-current="page"]::after { right: 0; }

.button {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--navy);
  box-shadow: 0 8px 22px rgba(216,142,0,.2);
}
.button:hover {
  background: #ffd04a;
  border-color: #ffd04a;
  color: var(--navy);
  box-shadow: 0 12px 28px rgba(216,142,0,.28);
}
.button--outline {
  background: #fff;
  border-color: #87aabb;
  color: var(--navy);
  box-shadow: none;
}
.button--outline:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.button--light { background: #fff; border-color: #fff; color: var(--navy); box-shadow: none; }
.button--light:hover { background: var(--accent); border-color: var(--accent); color: var(--navy); }
.button--ghost-light { background: rgba(6,26,45,.18); border-color: rgba(255,255,255,.76); color: #fff; box-shadow: none; }
.button--ghost-light:hover { background: #fff; border-color: #fff; color: var(--navy); }
.button--nav { background: var(--accent); border-color: var(--accent); color: var(--navy) !important; }
.button--nav:hover { background: #ffd04a; border-color: #ffd04a; color: var(--navy) !important; }

.eyebrow {
  color: var(--blue-dark);
  letter-spacing: .13em;
}
.eyebrow--light { color: #8cecf0; }

.home-hero {
  min-height: clamp(570px, 72vh, 690px);
  isolation: isolate;
  background: linear-gradient(120deg, #061a2d, #0a3b59);
}
.home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 18%, rgba(66,211,215,.25), transparent 30%),
    linear-gradient(115deg, rgba(2,12,23,.92) 0%, rgba(4,24,40,.76) 52%, rgba(4,24,40,.28) 100%);
}
.home-hero__video {
  object-fit: cover;
  object-position: center 52%;
  filter: saturate(.94) contrast(1.05) brightness(.82);
}
.home-hero__scrim { display: none; }
.home-hero__content {
  z-index: 2;
  padding-block: clamp(3.75rem, 7vw, 5.75rem);
}
.home-hero__panel {
  width: min(780px, 100%);
  padding: clamp(1.55rem, 3.6vw, 2.65rem);
  border: 1px solid rgba(255,255,255,.23);
  border-left: 5px solid var(--accent);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(4,18,31,.88), rgba(6,35,55,.67));
  box-shadow: 0 24px 70px rgba(0,0,0,.3);
  backdrop-filter: blur(8px);
}
.home-hero h1 {
  max-width: 17ch;
  font-size: clamp(2.45rem, 5.15vw, 4.9rem);
  color: #fff;
  text-shadow: 0 3px 20px rgba(0,0,0,.38);
}
.home-hero__panel > p:not(.eyebrow) {
  max-width: 690px;
  color: #edf8fc;
  font-size: clamp(1.05rem, 1.65vw, 1.28rem);
  text-shadow: 0 2px 10px rgba(0,0,0,.34);
}
.hero-checks {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}
.hero-checks li {
  position: relative;
  padding: .55rem .8rem .55rem 2rem;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-size: .86rem;
  font-weight: 760;
}
.hero-checks li::before {
  content: "✓";
  position: absolute;
  left: .72rem;
  color: var(--accent);
  font-weight: 900;
}

.trust-strip {
  background: linear-gradient(90deg, #071b2d, #0b3856);
  box-shadow: inset 0 1px rgba(255,255,255,.08);
}
.trust-strip__grid > div { padding: 1.15rem 1.2rem; }
.trust-strip strong { color: #fff; font-size: 1.08rem; }
.trust-strip span { color: #cfe1ea; }

.page-hero, .machine-hero, .contact-hero, .simple-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(2.75rem, 5vw, 4.65rem) 0;
  background:
    radial-gradient(circle at 92% 10%, rgba(66,211,215,.2), transparent 28rem),
    linear-gradient(145deg, #edf8fa 0%, #f8fbfc 65%, #fff 100%);
  border-bottom: 1px solid #dce8ed;
}
.page-hero::after, .machine-hero::after, .contact-hero::after, .simple-hero::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -85px;
  width: 260px;
  height: 260px;
  border: 34px solid rgba(0,127,152,.07);
  border-radius: 50%;
  pointer-events: none;
}
.page-hero__grid, .machine-hero__grid, .contact-hero__grid {
  gap: clamp(2rem, 4.5vw, 4.5rem);
}
.breadcrumbs { margin-bottom: 1.35rem; }

.section--soft {
  background:
    linear-gradient(180deg, rgba(237,248,250,.78), rgba(246,248,251,.92));
  border-block: 1px solid #e1ebef;
}
.section--dark {
  position: relative;
  background:
    radial-gradient(circle at 90% 10%, rgba(66,211,215,.14), transparent 30rem),
    linear-gradient(135deg, #061a2d, #0b3858);
  color: #eef7fb;
}
.section--dark h2, .section--dark h3, .section--dark h4 { color: #fff; }
.section--dark p, .section--dark li, .section--dark .lead { color: #dcebf2; }
.section--dark .eyebrow { color: #8cecf0; }
.section--video {
  background:
    radial-gradient(circle at 15% 10%, rgba(255,183,3,.14), transparent 26rem),
    linear-gradient(135deg, #051725, #0a3552);
}

.link-card, .route-card, .source-site-card, .domain-card {
  position: relative;
  overflow: hidden;
  border-color: #d0dee5;
  background: linear-gradient(160deg, #fff 0%, #fbfdfe 100%);
}
.link-card::before, .route-card::before, .source-site-card::before, .domain-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--blue), var(--cyan), var(--accent));
}
.link-card:hover, .route-card:hover, .source-site-card:hover, .domain-card:hover {
  transform: translateY(-5px);
  border-color: #8fb9c8;
}
.link-card h3 a, .route-card h3 a, .source-site-card h3 a, .domain-card h3 a { color: var(--navy); }
.text-link { color: var(--blue-dark); }
.text-link::after { content: ""; }

.machine-grid { gap: 1.15rem; }
.machine-card {
  position: relative;
  border-color: #cedde4;
  border-top: 4px solid var(--blue);
  background: #fff;
}
.machine-card__image {
  display: grid;
  place-items: center;
  min-height: 265px;
  background:
    radial-gradient(circle at 50% 45%, #fff 0%, #f5f9fb 72%);
  border-bottom: 1px solid #e2ebef;
}
.machine-card__body { padding: 1.25rem; }
.machine-card h3 { font-size: clamp(1.12rem, 1.55vw, 1.36rem); }
.machine-card .media-frame { width: 100%; }
.machine-card .media-frame img {
  width: 100%;
  height: 265px;
  aspect-ratio: auto;
  object-fit: contain !important;
  object-position: center center !important;
  padding: 1rem;
}
.section--dark .machine-card { color: var(--ink); }
.section--dark .machine-card p:not(.eyebrow) { color: var(--ink-soft); }
.section--dark .machine-card .eyebrow { color: var(--blue-dark); }
.section--dark .machine-card h3 a { color: var(--navy); }

.media-frame {
  border-color: #cfdee5;
  background: linear-gradient(145deg, #fff, #f7fafb);
}
.media-frame img {
  width: 100%;
  object-fit: contain !important;
  object-position: center center !important;
  background: linear-gradient(145deg, #fff, #f7fafb);
  padding: clamp(.35rem, .9vw, .75rem);
}
.media-frame--hero { transform: none; box-shadow: 0 22px 60px rgba(6,26,45,.16); }
.media-frame--hero img { max-height: 520px; }
.media-frame--feature img { max-height: 520px; }
.media-frame--product img { max-height: 560px; }
.remote-media.is-fallback { object-fit: contain !important; }

.split-feature, .split-content, .product-detail-grid {
  gap: clamp(2rem, 4.5vw, 4.75rem);
}
.numbered-list { margin-top: 1.45rem; gap: .8rem; }
.numbered-list li > span { background: var(--accent); color: var(--navy); }
.article-section { padding-top: 2.1rem; margin-top: 2.1rem; }
.article-checklist { padding: 1.55rem; }
.directory-group { padding-top: 2.25rem; margin-top: 2.25rem; }
.source-links { margin-top: 2rem; }
.source-links li a, .network-links a {
  border-color: #bfd1da;
  color: var(--navy);
  background: #fff;
}
.source-links li a:hover, .network-links a:hover {
  border-color: var(--blue);
  background: var(--ice);
}

.spec-callout {
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 90% 5%, rgba(66,211,215,.18), transparent 16rem),
    linear-gradient(135deg, var(--navy), #0b3a5a);
}
.selection-note, .notice-panel, .key-takeaways {
  background: linear-gradient(145deg, #edf8fa, #f8fbfc);
}
.sticky-card {
  top: 104px;
  background:
    radial-gradient(circle at 100% 0%, rgba(66,211,215,.18), transparent 16rem),
    linear-gradient(145deg, #061a2d, #0a3552);
}

.video-shell {
  background: #02090e;
  border-color: rgba(255,255,255,.26);
}
.video-shell video {
  width: 100%;
  max-height: 590px;
  object-fit: contain;
  object-position: center;
  background: #02090e;
}

.faq-list details { border-color: #cedde4; }
.faq-list summary { color: var(--navy); }
.faq-list summary::after { color: var(--blue-dark); }

.cta-band {
  padding: clamp(3rem, 5vw, 4.65rem) 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(66,211,215,.2), transparent 28rem),
    linear-gradient(120deg, #00677d, #061a2d 72%);
}
.cta-band h2, .cta-band p { color: #fff; }

.contact-card, .enquiry-form { border-color: #c8d9e1; }
.field input, .field textarea, .field select {
  border-color: #93acb9;
  color: #10263a;
  background: #fff;
}
.field input::placeholder, .field textarea::placeholder { color: #667b8b; opacity: 1; }

.site-footer {
  padding-top: 3.4rem;
  background:
    radial-gradient(circle at 8% 0%, rgba(66,211,215,.12), transparent 26rem),
    #03101d;
  color: #d5e3ea;
}
.site-footer__grid { gap: 2.15rem; }
.site-footer__brand img { width: 310px; margin-bottom: 1.1rem; }
.site-footer h2 { color: #fff; }
.site-footer a { color: #edf8fc; }
.site-footer a:hover { color: var(--accent); }
.footer-small { color: #a9becb; }
.site-footer__bottom { margin-top: 2.6rem; }

.back-to-top { background: var(--accent); color: var(--navy); }
.mobile-actions { background: var(--navy); }
.mobile-actions a:last-child { background: var(--accent); color: var(--navy); }

@media (max-width: 1080px) {
  .brand img { width: 260px; }
  .primary-nav { gap: .72rem; }
}

@media (max-width: 860px) {
  .site-header__inner { min-height: 72px; }
  .primary-nav {
    background: #fff;
    border-top: 1px solid var(--line);
  }
  .primary-nav > a:not(.button)::after { display: none; }
  .page-hero__grid, .machine-hero__grid, .contact-hero__grid { gap: 2rem; }
  .machine-card__image, .machine-card .media-frame img { min-height: 235px; height: 235px; }
}

@media (max-width: 640px) {
  .container { width: min(calc(100% - 1.25rem), var(--container)); }
  .section { padding: 3.15rem 0; }
  .home-hero { min-height: 610px; }
  .home-hero__content { padding-block: 2.4rem; }
  .home-hero__panel { padding: 1.35rem; border-radius: 18px; }
  .home-hero h1 { font-size: clamp(2.25rem, 12vw, 3.35rem); }
  .hero-checks { display: grid; grid-template-columns: 1fr; }
  .hero-checks li { width: 100%; }
  .brand img { width: 235px; }
  .trust-strip__grid > div { padding: .9rem .7rem; }
  .trust-strip strong { font-size: .95rem; }
  .trust-strip span { font-size: .76rem; }
  .page-hero, .machine-hero, .contact-hero, .simple-hero { padding: 2.65rem 0; }
  .media-frame--hero img, .media-frame--feature img, .media-frame--product img { max-height: 390px; }
  .machine-card__image, .machine-card .media-frame img { min-height: 220px; height: 220px; }
  .cta-band__inner { gap: 1.25rem; }
  .site-footer { padding-top: 2.8rem; }
}

/* Header and full-video hero refresh — 13 July 2026, revision 4 */
:root { --header-stack: 118px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, .985);
  border-bottom: 1px solid #c8d8e1;
  box-shadow: 0 8px 26px rgba(5, 29, 48, .08);
  backdrop-filter: blur(14px);
}
.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  pointer-events: none;
  background: linear-gradient(90deg, var(--blue) 0%, var(--cyan) 54%, var(--accent) 100%);
  opacity: .88;
}
.site-header__inner {
  min-height: 78px;
  gap: clamp(1rem, 2.2vw, 2.15rem);
}
.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: .42rem 0;
  text-decoration: none;
}
.brand img {
  width: 292px;
  height: auto;
  max-width: 100%;
}
.primary-nav {
  justify-content: flex-end;
  gap: clamp(.72rem, 1.15vw, 1.16rem);
}
.primary-nav > a {
  font-size: clamp(.83rem, .82vw, .94rem);
  letter-spacing: -.005em;
}
.primary-nav .button--nav {
  min-height: 46px;
  padding-inline: 1.25rem;
  border-radius: 999px;
}

.home-hero.home-hero--background {
  position: relative;
  display: grid;
  align-items: center;
  width: 100%;
  height: min(720px, calc(100svh - var(--header-stack, 118px)));
  min-height: 420px;
  max-height: 720px;
  overflow: hidden;
  isolation: isolate;
  background: #041321 url("../img/hero-sa1-poster.jpg") center center / cover no-repeat;
}
@supports not (height: 100svh) {
  .home-hero.home-hero--background {
    height: min(720px, calc(100vh - var(--header-stack, 118px)));
  }
}
.home-hero--background::before { display: none; }
.home-hero--background .home-hero__video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  filter: saturate(.93) contrast(1.04) brightness(.82);
  background: #041321;
}
.home-hero--background .home-hero__scrim {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(90deg, rgba(2, 13, 24, .94) 0%, rgba(2, 17, 29, .81) 43%, rgba(2, 17, 29, .38) 70%, rgba(2, 17, 29, .16) 100%),
    linear-gradient(0deg, rgba(2, 13, 24, .68) 0%, transparent 44%),
    radial-gradient(circle at 82% 22%, rgba(35, 196, 207, .16), transparent 34rem);
}
.home-hero--background .home-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-block: clamp(1.35rem, 4.2vh, 3rem);
}
.home-hero--background .home-hero__panel {
  width: min(690px, 66vw);
  padding: clamp(1.35rem, 2.6vw, 2.25rem) clamp(1.3rem, 2.8vw, 2.45rem);
  border: 0;
  border-left: 5px solid var(--accent);
  border-radius: 0 18px 18px 0;
  background: linear-gradient(90deg, rgba(2, 14, 26, .84), rgba(2, 20, 34, .58));
  box-shadow: 0 22px 58px rgba(0, 0, 0, .24);
  backdrop-filter: blur(5px);
}
.home-hero--background .eyebrow {
  margin-bottom: .65rem;
  color: #8cecf0;
  font-size: .76rem;
  letter-spacing: .15em;
}
.home-hero--background h1 {
  max-width: 15.5ch;
  margin-bottom: .8rem;
  color: #fff;
  font-size: clamp(2.55rem, 4.75vw, 4.45rem);
  line-height: 1.015;
  letter-spacing: -.045em;
  text-shadow: 0 3px 20px rgba(0, 0, 0, .42);
}
.home-hero--background .home-hero__panel > p:not(.eyebrow) {
  max-width: 630px;
  margin-bottom: 0;
  color: #eef8fc;
  font-size: clamp(1rem, 1.42vw, 1.18rem);
  line-height: 1.52;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .42);
}
.home-hero--background .hero-checks {
  gap: .55rem;
  margin-top: 1rem;
}
.home-hero--background .hero-checks li {
  padding: .47rem .72rem .47rem 1.85rem;
  border-color: rgba(255, 255, 255, .24);
  background: rgba(255, 255, 255, .11);
  font-size: .78rem;
  line-height: 1.2;
}
.home-hero--background .hero-checks li::before { left: .65rem; }
.home-hero--background .button-row {
  gap: .7rem;
  margin-top: 1.15rem;
}
.home-hero--background .button {
  min-height: 46px;
  padding: .72rem 1.05rem;
  font-size: .9rem;
}

@media (max-width: 1120px) and (min-width: 861px) {
  .brand img { width: 245px; }
  .site-header__inner { gap: .8rem; }
  .primary-nav { gap: .58rem; }
  .primary-nav > a { font-size: .78rem; }
  .primary-nav .button--nav { padding-inline: .95rem; }
  .home-hero--background .home-hero__panel { width: min(650px, 66vw); }
  .home-hero--background h1 { font-size: clamp(2.35rem, 4.7vw, 3.8rem); }
}

@media (min-width: 861px) and (max-height: 650px) {
  .home-hero.home-hero--background {
    min-height: 390px;
    max-height: none;
  }
  .home-hero--background .home-hero__content { padding-block: 1rem; }
  .home-hero--background .home-hero__panel { padding-block: 1.15rem; }
  .home-hero--background .eyebrow { margin-bottom: .4rem; }
  .home-hero--background h1 {
    margin-bottom: .55rem;
    font-size: clamp(2.1rem, 6.3vh, 3.25rem);
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    font-size: .9rem;
    line-height: 1.4;
  }
  .home-hero--background .hero-checks { margin-top: .65rem; }
  .home-hero--background .button-row { margin-top: .7rem; }
}

@media (max-width: 860px) {
  .site-header__inner { min-height: 70px; }
  .brand img { width: 232px; }
  .nav-toggle { min-height: 44px; }
  .primary-nav {
    top: calc(100% + 2px);
    padding-top: .7rem;
  }
  .home-hero.home-hero--background {
    height: calc(100svh - var(--header-stack, 110px) - 58px);
    min-height: 360px;
    max-height: none;
  }
  @supports not (height: 100svh) {
    .home-hero.home-hero--background {
      height: calc(100vh - var(--header-stack, 110px) - 58px);
    }
  }
  .home-hero--background .home-hero__scrim {
    background:
      linear-gradient(90deg, rgba(2, 13, 24, .91), rgba(2, 17, 29, .63)),
      linear-gradient(0deg, rgba(2, 13, 24, .76), rgba(2, 13, 24, .12) 70%);
  }
  .home-hero--background .home-hero__content {
    display: flex;
    align-items: center;
    padding-block: .9rem;
  }
  .home-hero--background .home-hero__panel {
    width: min(670px, 100%);
    margin: 0;
    padding: 1.2rem 1.3rem;
    border-radius: 0 16px 16px 0;
    background: linear-gradient(90deg, rgba(2, 14, 26, .84), rgba(2, 20, 34, .52));
  }
  .home-hero--background h1 {
    max-width: 16ch;
    font-size: clamp(2.2rem, 7.5vw, 3.35rem);
  }
}

@media (max-width: 640px) {
  .topbar__inner { min-height: 38px; }
  .topbar__links { gap: .8rem; }
  .topbar__links a { font-size: .72rem; }
  .site-header__inner { min-height: 68px; }
  .brand img { width: 218px; }
  .nav-toggle__label { display: none; }
  .home-hero.home-hero--background {
    height: calc(100svh - var(--header-stack, 106px) - 58px);
    min-height: 350px;
  }
  @supports not (height: 100svh) {
    .home-hero.home-hero--background {
      height: calc(100vh - var(--header-stack, 106px) - 58px);
    }
  }
  .home-hero--background .home-hero__video { object-position: 54% center; }
  .home-hero--background .home-hero__content { padding-block: .65rem; }
  .home-hero--background .home-hero__panel {
    padding: 1rem;
    border-left-width: 4px;
    border-radius: 0 14px 14px 0;
  }
  .home-hero--background .eyebrow {
    margin-bottom: .42rem;
    font-size: .64rem;
  }
  .home-hero--background h1 {
    margin-bottom: .55rem;
    font-size: clamp(1.9rem, 9.5vw, 2.65rem);
    line-height: 1.02;
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    font-size: .84rem;
    line-height: 1.38;
  }
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background .button-row {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: .5rem;
    margin-top: .75rem;
  }
  .home-hero--background .button {
    width: 100%;
    min-height: 42px;
    padding: .55rem .5rem;
    font-size: .76rem;
  }
}

@media (max-width: 860px) and (max-height: 700px) {
  .home-hero.home-hero--background { min-height: 330px; }
  .home-hero--background .home-hero__panel { padding-block: .75rem; }
  .home-hero--background .eyebrow { margin-bottom: .3rem; }
  .home-hero--background h1 {
    margin-bottom: .4rem;
    font-size: clamp(1.7rem, 7.1vw, 2.3rem);
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    font-size: .78rem;
    line-height: 1.3;
  }
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background .button-row { margin-top: .5rem; }
}

@media (max-width: 640px) and (max-height: 590px) {
  .home-hero.home-hero--background { min-height: 300px; }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { display: none; }
  .home-hero--background h1 { font-size: clamp(1.55rem, 8.2vw, 1.95rem); }
}

@media (max-width: 860px) and (orientation: landscape) and (max-height: 520px) {
  .home-hero.home-hero--background {
    height: calc(100svh - var(--header-stack, 108px) - 58px);
    min-height: 220px;
  }
  .home-hero--background .home-hero__content { padding-block: .4rem; }
  .home-hero--background .home-hero__panel {
    width: min(650px, 82%);
    padding: .65rem .9rem;
  }
  .home-hero--background .eyebrow,
  .home-hero--background .home-hero__panel > p:not(.eyebrow),
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background h1 {
    max-width: 18ch;
    margin-bottom: .4rem;
    font-size: clamp(1.45rem, 5.4vw, 2rem);
  }
  .home-hero--background .button-row {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    margin-top: .35rem;
  }
  .home-hero--background .button {
    width: auto;
    min-height: 38px;
    padding: .42rem .7rem;
    font-size: .72rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero--background .home-hero__video { display: none; }
  .home-hero.home-hero--background {
    background: #041321 url("../img/hero-sa1-poster.jpg") center center / cover no-repeat;
  }
}

/* ======================================================================
   Homepage hero: integrated copy and exact visible-viewport fit
   ====================================================================== */
:root {
  --visible-viewport-height: 100dvh;
  --mobile-actions-height: 0px;
}

.home-hero.home-hero--background {
  height: clamp(
    1px,
    calc(var(--visible-viewport-height, 100dvh) - var(--header-stack, 118px) - var(--mobile-actions-height, 0px)),
    720px
  );
  min-height: 0;
  max-height: 720px;
  align-items: center;
}

.home-hero--background .home-hero__video {
  object-position: 55% center;
  filter: saturate(.96) contrast(1.06) brightness(.88);
}

.home-hero--background .home-hero__scrim {
  display: block;
  background:
    linear-gradient(90deg,
      rgba(1, 10, 19, .91) 0%,
      rgba(2, 15, 27, .79) 34%,
      rgba(2, 17, 29, .49) 58%,
      rgba(2, 17, 29, .16) 82%,
      rgba(2, 17, 29, .04) 100%),
    linear-gradient(0deg,
      rgba(1, 10, 19, .44) 0%,
      rgba(1, 10, 19, .08) 52%,
      rgba(1, 10, 19, .18) 100%);
}

.home-hero--background .home-hero__content {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  padding-block: clamp(1.1rem, 3.4vh, 2.5rem);
}

.home-hero--background .home-hero__panel {
  position: relative;
  width: min(650px, 58vw);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.home-hero--background .eyebrow {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 .7rem;
  color: #d8fbfc;
  font-size: .76rem;
  line-height: 1.25;
  letter-spacing: .14em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .72);
}

.home-hero--background .eyebrow::before {
  content: "";
  width: 2.25rem;
  height: 3px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 18px rgba(255, 183, 3, .42);
}

.home-hero--background h1 {
  max-width: 14.5ch;
  margin: 0 0 .8rem;
  color: #fff;
  font-size: clamp(2.45rem, 4.35vw, 4.05rem);
  line-height: 1.01;
  letter-spacing: -.047em;
  text-wrap: balance;
  text-shadow:
    0 3px 18px rgba(0, 0, 0, .82),
    0 1px 2px rgba(0, 0, 0, .96);
}

.home-hero--background .home-hero__panel > p:not(.eyebrow) {
  max-width: 590px;
  margin: 0;
  color: #f2f9fc;
  font-size: clamp(.98rem, 1.3vw, 1.13rem);
  line-height: 1.48;
  text-shadow:
    0 2px 12px rgba(0, 0, 0, .9),
    0 1px 2px rgba(0, 0, 0, 1);
}

.home-hero--background .hero-checks {
  gap: .5rem;
  margin-top: .95rem;
}

.home-hero--background .hero-checks li {
  padding: .43rem .72rem .43rem 1.85rem;
  border-color: rgba(255, 255, 255, .3);
  background: rgba(2, 17, 29, .42);
  color: #fff;
  font-size: .77rem;
  line-height: 1.2;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
  backdrop-filter: blur(3px);
}

.home-hero--background .button-row {
  gap: .65rem;
  margin-top: 1rem;
}

.home-hero--background .button {
  min-height: 44px;
  padding: .68rem 1rem;
  font-size: .87rem;
}

@media (max-width: 1120px) and (min-width: 861px) {
  .home-hero--background .home-hero__panel { width: min(610px, 61vw); }
  .home-hero--background h1 { font-size: clamp(2.25rem, 4.6vw, 3.55rem); }
}

@media (min-width: 861px) and (max-height: 720px) {
  .home-hero--background .home-hero__content { padding-block: .85rem; }
  .home-hero--background .eyebrow { margin-bottom: .45rem; font-size: .68rem; }
  .home-hero--background h1 {
    margin-bottom: .55rem;
    font-size: clamp(2.15rem, 6.3vh, 3.25rem);
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    font-size: .9rem;
    line-height: 1.4;
  }
  .home-hero--background .hero-checks { margin-top: .65rem; }
  .home-hero--background .button-row { margin-top: .7rem; }
}

@media (min-width: 861px) and (max-height: 590px) {
  .home-hero--background .eyebrow,
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background h1 {
    max-width: 16ch;
    font-size: clamp(1.95rem, 7.4vh, 2.75rem);
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    max-width: 540px;
    font-size: .82rem;
    line-height: 1.32;
  }
  .home-hero--background .button { min-height: 39px; padding-block: .47rem; }
}

@media (min-width: 861px) and (max-height: 480px) {
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { display: none; }
  .home-hero--background h1 { max-width: 18ch; margin-bottom: .45rem; }
  .home-hero--background .button-row { margin-top: .35rem; }
}

@media (max-width: 860px) {
  :root { --mobile-actions-height: 58px; }

  .home-hero.home-hero--background {
    min-height: 0;
    max-height: none;
  }

  .home-hero--background .home-hero__video {
    display: block;
    object-position: 56% center;
  }

  .home-hero--background .home-hero__scrim {
    background:
      linear-gradient(90deg,
        rgba(1, 10, 19, .92) 0%,
        rgba(2, 15, 27, .75) 58%,
        rgba(2, 17, 29, .32) 100%),
      linear-gradient(0deg,
        rgba(1, 10, 19, .62) 0%,
        rgba(1, 10, 19, .06) 64%,
        rgba(1, 10, 19, .19) 100%);
  }

  .home-hero--background .home-hero__content {
    padding-block: clamp(.75rem, 2.4vh, 1.35rem);
  }

  .home-hero--background .home-hero__panel {
    width: min(620px, 94%);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .home-hero--background h1 {
    max-width: 14ch;
    font-size: clamp(2.05rem, 7.6vw, 3.15rem);
  }
}

@media (max-width: 640px) {
  .home-hero--background .home-hero__video { object-position: 58% center; }

  .home-hero--background .home-hero__panel { width: 100%; }

  .home-hero--background .eyebrow {
    margin-bottom: .42rem;
    font-size: .62rem;
  }

  .home-hero--background .eyebrow::before { width: 1.6rem; }

  .home-hero--background h1 {
    max-width: 13ch;
    margin-bottom: .55rem;
    font-size: clamp(1.82rem, 9vw, 2.55rem);
    line-height: 1.015;
  }

  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    max-width: 34rem;
    font-size: .82rem;
    line-height: 1.36;
  }

  .home-hero--background .hero-checks { display: none; }

  .home-hero--background .button-row {
    display: grid;
    grid-template-columns: 1.18fr .82fr;
    gap: .45rem;
    margin-top: .7rem;
  }

  .home-hero--background .button {
    width: 100%;
    min-height: 40px;
    padding: .5rem .45rem;
    font-size: .73rem;
  }
}

@media (max-width: 640px) and (max-height: 650px) {
  .home-hero--background .eyebrow { display: none; }
  .home-hero--background h1 {
    max-width: 14ch;
    margin-bottom: .42rem;
    font-size: clamp(1.65rem, 8.2vw, 2.1rem);
  }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) {
    font-size: .75rem;
    line-height: 1.28;
  }
  .home-hero--background .button-row { margin-top: .48rem; }
}

@media (max-width: 640px) and (max-height: 560px) {
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { display: none; }
  .home-hero--background h1 { max-width: 15ch; }
}

@media (max-width: 860px) and (orientation: landscape) and (max-height: 520px) {
  .home-hero.home-hero--background {
    min-height: 0;
    max-height: none;
  }

  .home-hero--background .home-hero__video { object-position: 58% center; }

  .home-hero--background .home-hero__content { padding-block: .35rem; }

  .home-hero--background .home-hero__panel {
    width: min(610px, 78%);
    padding: 0;
  }

  .home-hero--background .eyebrow,
  .home-hero--background .home-hero__panel > p:not(.eyebrow),
  .home-hero--background .hero-checks { display: none; }

  .home-hero--background h1 {
    max-width: 20ch;
    margin-bottom: .32rem;
    font-size: clamp(1.35rem, 4.8vw, 1.9rem);
    line-height: 1;
  }

  .home-hero--background .button-row {
    display: flex;
    flex-wrap: nowrap;
    gap: .42rem;
    margin-top: .25rem;
  }

  .home-hero--background .button {
    width: auto;
    min-height: 34px;
    padding: .34rem .62rem;
    font-size: .67rem;
  }
}

/* Keep the hero copy on the same centred content grid as the header. */
.home-hero--background .home-hero__content {
  width: min(calc(100% - 2rem), 1200px);
  margin-inline: auto;
}

@media (prefers-reduced-motion: reduce) {
  .home-hero--background .home-hero__video { display: none; }
}

/* Small-screen containment for footer branding */
.site-footer__grid > * { min-width: 0; }
@media (max-width: 640px) {
  .site-footer__brand img {
    width: 100%;
    max-width: 260px;
  }
}

/* ======================================================================
   Revision 8 — customer-first contrast, refined branding and form security
   ====================================================================== */
:root {
  --ink: #10263a;
  --ink-soft: #3e5669;
  --navy: #041827;
  --navy-2: #082f48;
  --blue: #007f98;
  --blue-dark: #005f73;
  --cyan: #48d6db;
  --accent: #ffbd16;
  --accent-dark: #d88b00;
  --soft: #f3f7f9;
  --ice: #eaf7f8;
  --line: #cad9e1;
  --radius: 18px;
  --shadow: 0 22px 60px rgba(4, 24, 39, .16);
  --shadow-sm: 0 10px 28px rgba(4, 24, 39, .1);
}

html { color-scheme: light; }
body { color: var(--ink); }
main p, main li { color: var(--ink-soft); }
h1, h2, h3, h4 { color: var(--navy); }
.eyebrow { color: #00596c; }
.lead { color: #314b5f; }

/* Refined wordmark placement */
.site-header__inner {
  min-height: 78px;
  gap: clamp(.85rem, 2vw, 2rem);
}
.brand {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  padding: .25rem 0;
}
.brand img {
  width: 318px;
  height: auto;
  max-height: 66px;
  object-fit: contain;
  object-position: left center;
}
.site-footer__brand img {
  width: 318px;
  max-width: 100%;
  height: auto;
}

/* Strong, reliable text contrast on every dark treatment */
.section--dark,
.section--video,
.cta-band,
.site-footer,
.topbar,
.sticky-card,
.spec-callout {
  color: #eef7fb;
}
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4,
.section--video h1, .section--video h2, .section--video h3, .section--video h4,
.cta-band h1, .cta-band h2, .cta-band h3,
.site-footer h2, .site-footer h3,
.sticky-card h2, .sticky-card h3,
.spec-callout h2, .spec-callout h3 {
  color: #fff;
}
.section--dark p, .section--dark li, .section--dark .lead,
.section--video p, .section--video li, .section--video .lead,
.cta-band p, .cta-band li,
.site-footer p, .site-footer li,
.sticky-card p, .sticky-card li,
.spec-callout p, .spec-callout li {
  color: #dcebf2;
}
.section--dark .eyebrow, .section--video .eyebrow, .cta-band .eyebrow,
.sticky-card .eyebrow, .spec-callout .eyebrow { color: #9af0f2; }
.section--dark .link-card,
.section--dark .route-card,
.section--dark .source-site-card,
.section--dark .machine-card,
.section--dark .domain-card {
  color: var(--ink);
}
.section--dark .link-card p,
.section--dark .route-card p,
.section--dark .source-site-card p,
.section--dark .machine-card p,
.section--dark .domain-card p { color: var(--ink-soft); }
.section--dark .link-card h3,
.section--dark .route-card h3,
.section--dark .source-site-card h3,
.section--dark .machine-card h3,
.section--dark .domain-card h3,
.section--dark .link-card h3 a,
.section--dark .route-card h3 a,
.section--dark .source-site-card h3 a,
.section--dark .machine-card h3 a,
.section--dark .domain-card h3 a { color: var(--navy); }

/* Hero video remains full background; copy is feathered into the scene, not boxed. */
.home-hero.home-hero--background {
  position: relative;
  display: grid;
  align-items: center;
  width: 100%;
  height: min(720px, calc(var(--visible-viewport-height, 100dvh) - var(--header-stack, 118px) - var(--mobile-actions-height, 0px)));
  min-height: 0;
  max-height: 720px;
  overflow: hidden;
  isolation: isolate;
  background: #03111d url("../img/hero-sa1-poster.jpg") center center / cover no-repeat;
}
@supports not (height: 100dvh) {
  .home-hero.home-hero--background {
    height: min(720px, calc(100vh - var(--header-stack, 118px) - var(--mobile-actions-height, 0px)));
  }
}
.home-hero--background .home-hero__video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 58% center;
  filter: saturate(.94) contrast(1.07) brightness(.82);
  background: #03111d;
}
.home-hero--background .home-hero__scrim {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg,
      rgba(0, 8, 15, .96) 0%,
      rgba(1, 13, 23, .89) 31%,
      rgba(1, 16, 28, .68) 52%,
      rgba(1, 16, 28, .28) 77%,
      rgba(1, 16, 28, .12) 100%),
    linear-gradient(0deg,
      rgba(0, 8, 15, .58) 0%,
      rgba(0, 8, 15, .08) 52%,
      rgba(0, 8, 15, .24) 100%);
}
.home-hero--background .home-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  width: min(calc(100% - 2.25rem), var(--container));
  height: 100%;
  margin-inline: auto;
  padding-block: clamp(.9rem, 3vh, 2.25rem);
}
.home-hero--background .home-hero__panel {
  position: relative;
  isolation: isolate;
  width: min(680px, 60vw);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.home-hero--background .home-hero__panel::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -3rem -7rem -3rem -18vw;
  pointer-events: none;
  background: radial-gradient(ellipse at 43% 50%, rgba(0, 8, 15, .78) 0%, rgba(0, 10, 18, .62) 45%, rgba(0, 10, 18, .3) 63%, transparent 78%);
}
.home-hero--background .eyebrow {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 .68rem;
  color: #c8fbfc;
  font-size: .76rem;
  line-height: 1.25;
  letter-spacing: .14em;
  text-shadow: 0 2px 10px rgba(0,0,0,.95);
}
.home-hero--background .eyebrow::before {
  content: "";
  width: 2.25rem;
  height: 3px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 18px rgba(255,189,22,.48);
}
.home-hero--background h1 {
  max-width: 14.6ch;
  margin: 0 0 .82rem;
  color: #fff;
  font-size: clamp(2.5rem, 4.45vw, 4.2rem);
  line-height: 1.01;
  letter-spacing: -.048em;
  text-shadow: 0 4px 24px rgba(0,0,0,.98), 0 1px 2px #000;
}
.home-hero--background .home-hero__panel > p:not(.eyebrow) {
  max-width: 610px;
  margin: 0;
  color: #f6fbfd;
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.48;
  font-weight: 540;
  text-shadow: 0 3px 16px rgba(0,0,0,.98), 0 1px 2px #000;
}
.home-hero--background .hero-checks {
  gap: .5rem;
  margin-top: .95rem;
}
.home-hero--background .hero-checks li {
  padding: .46rem .75rem .46rem 1.9rem;
  border: 1px solid rgba(255,255,255,.38);
  background: rgba(0,12,22,.62);
  color: #fff;
  font-size: .78rem;
  line-height: 1.2;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  backdrop-filter: blur(4px);
}
.home-hero--background .button-row { gap: .65rem; margin-top: 1.05rem; }
.home-hero--background .button { min-height: 45px; padding: .68rem 1rem; font-size: .87rem; }
.home-hero--background .button--light {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--navy);
  box-shadow: 0 10px 28px rgba(0,0,0,.28);
}
.home-hero--background .button--light:hover { background: #ffd154; border-color: #ffd154; color: var(--navy); }
.home-hero--background .button--ghost-light {
  background: rgba(0,12,22,.62);
  border-color: rgba(255,255,255,.82);
  color: #fff;
}

/* Readable cards and controls */
.link-card p, .route-card p, .source-site-card p, .domain-card p,
.machine-card p:not(.eyebrow), .faq-answer, .section-heading > p:last-child {
  color: #3b5365;
}
.link-card, .route-card, .source-site-card, .domain-card, .machine-card,
.contact-card, .enquiry-form, .address-card, .selection-note, .notice-panel,
.key-takeaways {
  background-color: #fff;
}
.field input, .field textarea, .field select {
  border-color: #8199a8;
  color: #10263a;
  background: #fff;
}
.field input::placeholder, .field textarea::placeholder { color: #5d7281; opacity: 1; }
.field input:focus, .field textarea:focus, .field select:focus {
  border-color: #006f86;
  box-shadow: 0 0 0 4px rgba(0,127,152,.16);
}
.checkbox-field label { color: #243e52; }
.form-security-note {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin: 1rem 0 0;
  padding: .85rem 1rem;
  border: 1px solid #c5dce3;
  border-radius: 12px;
  background: #edf8fa;
  color: #28495d;
  font-size: .84rem;
}
.form-security-note::before {
  content: "✓";
  display: grid;
  place-items: center;
  flex: 0 0 1.45rem;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 50%;
  background: #d8f4e9;
  color: #0c6b49;
  font-weight: 900;
}
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Customer-oriented related-equipment links */
.network-links a {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .12rem;
  min-height: 76px;
  padding: 1rem 1.1rem;
  text-decoration: none;
}
.network-link__label { color: var(--navy); font-size: .98rem; font-weight: 850; }
.network-link__domain { color: #526c7d; font-size: .76rem; font-weight: 650; overflow-wrap: anywhere; }
.network-links a:hover .network-link__label { color: var(--blue-dark); }

/* Slightly tighter rhythm without cramped copy */
.section { padding: clamp(3rem, 5vw, 5rem) 0; }
.page-hero, .machine-hero, .contact-hero, .simple-hero { padding: clamp(2.6rem, 4.6vw, 4.35rem) 0; }
.article-section { padding-top: 1.9rem; margin-top: 1.9rem; }
.cta-band { padding: clamp(2.8rem, 4.6vw, 4.35rem) 0; }

@media (max-width: 1120px) and (min-width: 861px) {
  .brand img { width: 260px; max-height: 58px; }
  .primary-nav { gap: .55rem; }
  .primary-nav > a { font-size: .78rem; }
  .home-hero--background .home-hero__panel { width: min(610px, 62vw); }
  .home-hero--background h1 { font-size: clamp(2.3rem, 4.7vw, 3.65rem); }
}

@media (min-width: 861px) and (max-height: 720px) {
  .home-hero--background .home-hero__content { padding-block: .75rem; }
  .home-hero--background .eyebrow { margin-bottom: .42rem; font-size: .68rem; }
  .home-hero--background h1 { margin-bottom: .52rem; font-size: clamp(2.1rem, 6.1vh, 3.2rem); }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { font-size: .9rem; line-height: 1.36; }
  .home-hero--background .hero-checks { margin-top: .6rem; }
  .home-hero--background .button-row { margin-top: .65rem; }
}
@media (min-width: 861px) and (max-height: 590px) {
  .home-hero--background .eyebrow, .home-hero--background .hero-checks { display: none; }
  .home-hero--background h1 { max-width: 16ch; font-size: clamp(1.9rem, 7.2vh, 2.7rem); }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { max-width: 530px; font-size: .8rem; line-height: 1.28; }
  .home-hero--background .button { min-height: 38px; padding-block: .44rem; }
}
@media (min-width: 861px) and (max-height: 480px) {
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { display: none; }
  .home-hero--background h1 { max-width: 18ch; margin-bottom: .35rem; }
  .home-hero--background .button-row { margin-top: .28rem; }
}

@media (max-width: 860px) {
  :root { --mobile-actions-height: 58px; }
  .site-header__inner { min-height: 70px; }
  .brand img { width: 248px; max-height: 56px; }
  .home-hero.home-hero--background { min-height: 0; max-height: none; }
  .home-hero--background .home-hero__video { display: block; object-position: 61% center; }
  .home-hero--background .home-hero__scrim {
    background:
      linear-gradient(90deg, rgba(0,8,15,.96) 0%, rgba(1,14,25,.84) 56%, rgba(1,16,28,.46) 100%),
      linear-gradient(0deg, rgba(0,8,15,.7) 0%, rgba(0,8,15,.1) 62%, rgba(0,8,15,.28) 100%);
  }
  .home-hero--background .home-hero__content { width: min(calc(100% - 1.5rem), var(--container)); padding-block: clamp(.65rem, 2vh, 1.15rem); }
  .home-hero--background .home-hero__panel { width: min(620px, 94%); }
  .home-hero--background .home-hero__panel::before { inset: -2rem -3.5rem -2rem -5rem; }
  .home-hero--background h1 { max-width: 14ch; font-size: clamp(2rem, 7.5vw, 3.1rem); }
}

@media (max-width: 640px) {
  .brand img { width: 220px; max-height: 50px; }
  .home-hero--background .home-hero__content { width: min(calc(100% - 1.1rem), var(--container)); }
  .home-hero--background .home-hero__panel { width: 100%; }
  .home-hero--background .home-hero__panel::before { inset: -2rem -2rem -2rem -2rem; background: radial-gradient(ellipse at 35% 50%, rgba(0,8,15,.86), rgba(0,10,18,.52) 58%, transparent 82%); }
  .home-hero--background .eyebrow { margin-bottom: .4rem; font-size: .61rem; }
  .home-hero--background .eyebrow::before { width: 1.5rem; }
  .home-hero--background h1 { max-width: 13ch; margin-bottom: .5rem; font-size: clamp(1.78rem, 8.9vw, 2.5rem); }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { max-width: 33rem; font-size: .81rem; line-height: 1.34; }
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background .button-row { display: grid; grid-template-columns: 1.16fr .84fr; gap: .42rem; margin-top: .68rem; }
  .home-hero--background .button { width: 100%; min-height: 40px; padding: .48rem .42rem; font-size: .72rem; }
  .network-links { grid-template-columns: 1fr 1fr; }
  .network-links a { min-height: 72px; padding: .85rem; }
}

@media (max-width: 640px) and (max-height: 650px) {
  .home-hero--background .eyebrow { display: none; }
  .home-hero--background h1 { max-width: 14ch; margin-bottom: .38rem; font-size: clamp(1.6rem, 8vw, 2.05rem); }
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { font-size: .74rem; line-height: 1.25; }
  .home-hero--background .button-row { margin-top: .43rem; }
}
@media (max-width: 640px) and (max-height: 560px) {
  .home-hero--background .home-hero__panel > p:not(.eyebrow) { display: none; }
  .home-hero--background h1 { max-width: 15ch; }
}
@media (max-width: 860px) and (orientation: landscape) and (max-height: 520px) {
  .home-hero--background .home-hero__content { padding-block: .3rem; }
  .home-hero--background .home-hero__panel { width: min(610px, 78%); }
  .home-hero--background .eyebrow,
  .home-hero--background .home-hero__panel > p:not(.eyebrow),
  .home-hero--background .hero-checks { display: none; }
  .home-hero--background h1 { max-width: 20ch; margin-bottom: .28rem; font-size: clamp(1.3rem, 4.7vw, 1.85rem); }
  .home-hero--background .button-row { display: flex; flex-wrap: nowrap; gap: .38rem; margin-top: .2rem; }
  .home-hero--background .button { width: auto; min-height: 34px; padding: .32rem .58rem; font-size: .66rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero--background .home-hero__video { display: none; }
}
