/*
 * FreightVanta English Global homepage
 * Direct HTML/CSS implementation of the customer-supplied homepage source.
 * This stylesheet is deliberately scoped to the English homepage so the
 * independent German, French, Spanish, Italian and Dutch templates keep
 * their own visual systems.
 */

body.fv-reference-home {
  --fv-navy-950: #050f1f;
  --fv-navy-900: #0a1b33;
  --fv-navy-850: #0e2240;
  --fv-navy-800: #12294a;
  --fv-navy-700: #1b375e;
  --fv-navy-600: #2a4a76;
  --fv-navy-500: #3d5f8f;
  --fv-navy-300: #9db0c9;
  --fv-navy-200: #c3d0e0;
  --fv-navy-100: #dfe7f1;
  --fv-signal-700: #1552b8;
  --fv-signal-600: #1a64d6;
  --fv-signal-500: #2f7df6;
  --fv-signal-300: #7fb2ff;
  --fv-orange: #ff7a1a;
  --fv-orange-light: #ff9142;
  --fv-mist-50: #f5f8fc;
  --fv-mist-100: #eaf1f9;
  --fv-mist-150: #e4edf8;
  --fv-mist-200: #d7e3f1;
  --fv-mist-300: #bccfe5;
  background: #fff;
  color: var(--fv-navy-800);
  font-family: "IBM Plex Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.fv-reference-home .skip-link { z-index: 200; }
body.fv-reference-home *,
body.fv-reference-home *::before,
body.fv-reference-home *::after { box-sizing: border-box; }
body.fv-reference-home ::selection { background: #b3d1ff; color: var(--fv-navy-900); }
body.fv-reference-home :focus-visible { outline: 3px solid var(--fv-signal-500); outline-offset: 3px; }
body.fv-reference-home [id] { scroll-margin-top: 6rem; }

.fv-ref-shell { width: min(100% - 40px, 1280px); margin-inline: auto; }
.fv-ref-eyebrow { display:inline-flex; align-items:center; gap:12px; margin:0; color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace; font-size:12px; font-weight:600; letter-spacing:.16em; line-height:1.35; text-transform:uppercase; }
.fv-ref-eyebrow::before { width:28px; height:1px; background:currentColor; content:""; opacity:.72; }
.fv-ref-h2 { max-width:19ch; margin:0; color:var(--fv-navy-900); font-family:"Barlow Semi Condensed", "Arial Narrow", "IBM Plex Sans", sans-serif; font-size:clamp(2.2rem, 1.5rem + 2.35vw, 3.5rem); font-weight:700; letter-spacing:-.025em; line-height:1.02; text-wrap:balance; }
.fv-ref-arrow { display:inline-block; font-size:1.12em; line-height:1; transition:transform .18s ease; }
a:hover .fv-ref-arrow { transform:translateX(3px); }

/* Announcement and navigation */
.fv-ref-announcement { min-height:36px; display:flex; align-items:center; background:var(--fv-navy-950); border-bottom:1px solid rgba(255,255,255,.1); color:var(--fv-navy-200); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; letter-spacing:.03em; }
.fv-ref-announcement .fv-ref-shell { padding-block:8px; }
.fv-ref-header { position:sticky; top:0; z-index:80; background:var(--fv-navy-900); box-shadow:0 1px 0 rgba(255,255,255,.07); color:#fff; }
.fv-ref-header-inner { min-height:76px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:28px; }
.fv-ref-brand { display:inline-flex; align-items:center; gap:10px; color:#fff; text-decoration:none; }
.fv-ref-brand-mark { position:relative; width:30px; height:28px; display:inline-flex; align-items:flex-end; gap:3px; transform:skewX(-17deg); }
.fv-ref-brand-mark i { display:block; width:7px; background:var(--fv-signal-500); }
.fv-ref-brand-mark i:nth-child(1) { height:11px; opacity:.72; }.fv-ref-brand-mark i:nth-child(2) { height:18px; }.fv-ref-brand-mark i:nth-child(3) { height:25px; background:var(--fv-orange); }
.fv-ref-brand-copy { display:grid; gap:1px; }
.fv-ref-brand-copy strong { font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:23px; font-weight:700; letter-spacing:-.025em; line-height:1; }
.fv-ref-brand-copy strong span { color:var(--fv-signal-300); }.fv-ref-brand-copy small { color:var(--fv-navy-300); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:8px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.fv-ref-nav { display:flex; align-items:center; justify-content:center; gap:25px; min-width:0; }
.fv-ref-nav > a, .fv-ref-nav summary, .fv-ref-language summary { display:flex; align-items:center; gap:6px; min-height:44px; color:var(--fv-navy-100); cursor:pointer; font-size:14px; font-weight:600; list-style:none; text-decoration:none; transition:color .16s ease; }
.fv-ref-nav > a:hover, .fv-ref-nav summary:hover, .fv-ref-language summary:hover { color:#fff; }
.fv-ref-nav summary::-webkit-details-marker, .fv-ref-language summary::-webkit-details-marker, .fv-ref-mobile summary::-webkit-details-marker { display:none; }
.fv-ref-nav details { position:relative; }.fv-ref-nav summary::after, .fv-ref-language summary::after { border:solid currentColor; border-width:0 1.5px 1.5px 0; content:""; display:block; height:6px; margin-top:-3px; transform:rotate(45deg); width:6px; }.fv-ref-nav details[open] summary::after, .fv-ref-language[open] summary::after { margin-top:3px; transform:rotate(225deg); }
.fv-ref-mega { position:absolute; top:calc(100% + 16px); left:-158px; width:min(870px, calc(100vw - 40px)); display:grid; grid-template-columns:minmax(0,1.65fr) minmax(240px,.72fr); gap:38px; padding:32px; background:#fff; box-shadow:0 28px 56px -24px rgba(5,15,31,.55); color:var(--fv-navy-900); }
.fv-ref-mega::before { position:absolute; top:-16px; left:0; right:0; height:16px; content:""; }
.fv-ref-menu-kicker { margin:0 0 13px; color:var(--fv-navy-500); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.fv-ref-mega-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 18px; margin:0; padding:0; list-style:none; }
.fv-ref-mega-list a { display:block; padding:10px 11px; color:var(--fv-navy-900); text-decoration:none; }.fv-ref-mega-list a:hover { background:var(--fv-mist-50); }.fv-ref-mega-list b { display:block; font-size:14px; }.fv-ref-mega-list small { display:block; margin-top:3px; color:var(--fv-navy-500); font-size:12px; line-height:1.35; }
.fv-ref-mega-aside { padding-left:31px; border-left:1px solid var(--fv-mist-200); }.fv-ref-mega-aside h2 { margin:0; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:27px; line-height:1.02; }.fv-ref-mega-aside p { margin:13px 0 21px; color:var(--fv-navy-600); font-size:14px; line-height:1.55; }
.fv-ref-header-cta, .fv-ref-button-primary, .fv-ref-button-dark, .fv-ref-button-outline, .fv-ref-button-ghost { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:12px 18px; border:1px solid transparent; border-radius:3px; font-size:14px; font-weight:700; line-height:1.1; text-align:center; text-decoration:none; transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; }
.fv-ref-header-cta, .fv-ref-button-primary { background:var(--fv-orange); box-shadow:inset 0 -2px 0 rgba(5,15,31,.16); color:var(--fv-navy-950); }.fv-ref-header-cta:hover, .fv-ref-button-primary:hover { background:var(--fv-orange-light); color:var(--fv-navy-950); }.fv-ref-button-dark { background:var(--fv-navy-900); color:#fff; }.fv-ref-button-dark:hover { background:var(--fv-navy-700); color:#fff; }.fv-ref-button-outline { border-color:var(--fv-navy-300); background:#fff; color:var(--fv-navy-900); }.fv-ref-button-outline:hover { border-color:var(--fv-navy-900); color:var(--fv-navy-900); }.fv-ref-button-ghost { border-color:rgba(255,255,255,.36); color:#fff; }.fv-ref-button-ghost:hover { border-color:#fff; background:rgba(255,255,255,.06); color:#fff; }
.fv-ref-header-actions { display:flex; align-items:center; gap:14px; }.fv-ref-language { position:relative; }.fv-ref-language summary { font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:12px; letter-spacing:.04em; }.fv-ref-language-menu { position:absolute; top:calc(100% + 15px); right:0; width:252px; padding:9px; background:#fff; box-shadow:0 28px 56px -20px rgba(5,15,31,.55); color:var(--fv-navy-900); }.fv-ref-language-menu b { display:block; padding:10px 11px 6px; color:var(--fv-navy-500); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }.fv-ref-language-menu a { display:flex; align-items:center; justify-content:space-between; padding:10px 11px; color:var(--fv-navy-700); font-size:13px; font-weight:600; text-decoration:none; }.fv-ref-language-menu a:hover, .fv-ref-language-menu a[aria-current="page"] { background:var(--fv-mist-100); color:var(--fv-navy-900); }.fv-ref-language-menu small { color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; }
.fv-ref-mobile { display:none; position:relative; }.fv-ref-mobile summary { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.3); color:#fff; cursor:pointer; list-style:none; }.fv-ref-mobile summary span, .fv-ref-mobile summary::before, .fv-ref-mobile summary::after { width:18px; height:1.5px; display:block; background:currentColor; content:""; }.fv-ref-mobile summary span { margin-block:-7px 7px; }.fv-ref-mobile-menu { position:absolute; top:calc(100% + 12px); right:0; width:min(360px, calc(100vw - 32px)); padding:12px; background:var(--fv-navy-950); box-shadow:0 24px 50px rgba(5,15,31,.4); }.fv-ref-mobile-menu a { display:block; padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.1); color:#fff; font-size:15px; font-weight:600; text-decoration:none; }.fv-ref-mobile-menu a:last-child { border-bottom:0; }

/* Hero */
.fv-ref-home { overflow:hidden; }
.fv-ref-hero { position:relative; isolation:isolate; overflow:hidden; background:var(--fv-navy-950); color:#fff; }.fv-ref-hero::before, .fv-ref-operation::before { position:absolute; z-index:-1; inset:0; background-image:linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px),linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px); background-size:72px 72px; content:""; -webkit-mask-image:radial-gradient(ellipse at 72% 26%, #000 14%, transparent 70%); mask-image:radial-gradient(ellipse at 72% 26%, #000 14%, transparent 70%); }
.fv-ref-hero-grid { display:grid; grid-template-columns:minmax(0,.91fr) minmax(440px,1.09fr); gap:clamp(44px,7vw,104px); align-items:center; min-height:590px; padding-block:clamp(62px,8vw,112px); }.fv-ref-hero-copy { position:relative; z-index:2; }.fv-ref-hero .fv-ref-eyebrow { color:var(--fv-signal-300); }.fv-ref-hero h1 { max-width:10.6ch; margin:22px 0 0; color:#fff; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:clamp(3.15rem, 2.15rem + 3.25vw, 5.1rem); font-weight:700; letter-spacing:-.035em; line-height:.94; text-wrap:balance; }.fv-ref-hero-lead { max-width:575px; margin:25px 0 0; color:var(--fv-navy-100); font-size:17px; line-height:1.68; }.fv-ref-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }.fv-ref-hero-note { max-width:490px; margin:30px 0 0; padding-left:17px; border-left:2px solid var(--fv-signal-500); color:var(--fv-navy-200); font-size:13px; line-height:1.55; }
.fv-ref-hero-visual { position:relative; margin:0; min-height:400px; overflow:hidden; background:#0e2240; box-shadow:0 22px 42px -22px rgba(0,0,0,.5); }.fv-ref-hero-visual::after { position:absolute; inset:0; background:linear-gradient(110deg, rgba(5,15,31,.03), rgba(5,15,31,.4)); content:""; pointer-events:none; }.fv-ref-hero-visual img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center; }.fv-ref-route-strip { position:absolute; z-index:1; right:0; bottom:0; left:0; min-height:88px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; align-items:center; padding:15px 18px; background:rgba(5,15,31,.88); backdrop-filter:blur(7px); }.fv-ref-route-strip::before { position:absolute; top:31px; left:9%; right:9%; height:1px; background:rgba(255,255,255,.24); content:""; }.fv-ref-route-stop { position:relative; display:grid; justify-items:center; gap:10px; color:var(--fv-navy-200); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:600; letter-spacing:.1em; text-align:center; text-transform:uppercase; }.fv-ref-route-stop i { position:relative; z-index:1; display:block; width:10px; height:10px; border:2px solid var(--fv-orange); border-radius:50%; background:var(--fv-navy-950); }.fv-ref-route-stop:first-child i { background:var(--fv-orange); }.fv-ref-route-stop:last-child i { width:12px; height:12px; background:var(--fv-orange); box-shadow:0 0 0 5px rgba(255,122,26,.17); }

/* Coverage */
.fv-ref-coverage { border-bottom:1px solid var(--fv-mist-200); background:var(--fv-mist-50); }.fv-ref-coverage .fv-ref-shell { min-height:78px; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:stretch; gap:0; }.fv-ref-coverage a { min-width:0; display:inline-flex; align-items:center; justify-content:center; text-align:center; gap:9px; padding:9px clamp(15px,2vw,29px); border-right:1px solid var(--fv-mist-200); color:var(--fv-navy-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; font-weight:600; letter-spacing:.03em; text-decoration:none; }.fv-ref-coverage a:last-child { border-right:0; }.fv-ref-coverage i { width:7px; height:7px; flex:none; background:var(--fv-orange); border-radius:50%; }.fv-ref-coverage a:hover { color:var(--fv-signal-700); }

/* Service selector */
.fv-ref-services { padding-block:clamp(74px,9vw,132px); background:#fff; }.fv-ref-section-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.66fr); gap:clamp(36px,9vw,116px); align-items:end; }.fv-ref-section-head > p { max-width:540px; margin:0 0 3px; color:var(--fv-navy-600); font-size:17px; line-height:1.66; }.fv-ref-service-selector { display:grid; grid-template-columns:250px minmax(0,1fr); gap:clamp(30px,5vw,70px); margin-top:clamp(42px,5vw,68px); }.fv-ref-service-tabs { display:flex; flex-direction:column; align-self:start; padding-right:25px; border-right:1px solid var(--fv-mist-200); }.fv-ref-service-tabs button { position:relative; min-height:49px; padding:8px 0; border:0; border-left:2px solid transparent; background:transparent; color:var(--fv-navy-500); cursor:pointer; font-size:14px; font-weight:650; line-height:1.3; text-align:left; transition:color .16s ease, border-color .16s ease, padding .16s ease; }.fv-ref-service-tabs button[aria-selected="true"] { padding-left:14px; border-left-color:var(--fv-orange); color:var(--fv-navy-900); }.fv-ref-service-tabs button:hover { color:var(--fv-signal-700); }.fv-ref-service-panels { min-width:0; }.fv-ref-service-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(285px,.95fr); gap:clamp(30px,5vw,64px); min-height:410px; align-items:stretch; }.fv-ref-service-panel[hidden] { display:none; }.fv-ref-service-panel-copy { display:flex; flex-direction:column; justify-content:center; padding-block:16px; }.fv-ref-panel-label { margin:0; color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }.fv-ref-service-panel h3 { max-width:12ch; margin:16px 0 0; color:var(--fv-navy-900); font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:clamp(2rem,1.3rem + 1.8vw,3rem); font-weight:700; letter-spacing:-.02em; line-height:1.02; }.fv-ref-service-panel-copy > p:not(.fv-ref-panel-label) { max-width:49ch; margin:18px 0 0; color:var(--fv-navy-600); font-size:16px; line-height:1.7; }.fv-ref-service-tags { display:flex; flex-wrap:wrap; gap:8px; margin:23px 0 0; padding:0; list-style:none; }.fv-ref-service-tags li { padding:7px 10px; border:1px solid var(--fv-mist-300); border-radius:2px; background:#fff; color:var(--fv-navy-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; font-weight:600; }.fv-ref-service-panel-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:29px; padding-top:22px; border-top:1px solid var(--fv-mist-200); }.fv-ref-text-link { display:inline-flex; align-items:center; gap:7px; color:var(--fv-signal-700); font-size:14px; font-weight:700; text-decoration:underline; text-decoration-color:rgba(21,82,184,.35); text-underline-offset:4px; }.fv-ref-text-link:hover { color:var(--fv-signal-600); text-decoration-color:currentColor; }.fv-ref-service-panel figure { position:relative; min-height:350px; margin:0; overflow:hidden; background:var(--fv-mist-100); }.fv-ref-service-panel figure img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }.fv-ref-service-panel figcaption { position:absolute; right:0; bottom:0; padding:11px 14px; background:rgba(5,15,31,.89); color:var(--fv-navy-100); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:600; letter-spacing:.11em; }

/* Operating proof and process */
.fv-ref-operation { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(75px,9vw,132px); background:var(--fv-navy-950); color:#fff; }.fv-ref-operation-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1fr); gap:clamp(50px,10vw,138px); }.fv-ref-operation .fv-ref-eyebrow { color:var(--fv-signal-300); }.fv-ref-operation .fv-ref-h2 { color:#fff; }.fv-ref-pullquote { max-width:480px; margin:34px 0 0; padding-left:20px; border-left:2px solid var(--fv-signal-500); color:var(--fv-navy-100); font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:clamp(1.35rem,1rem + 1vw,1.75rem); font-weight:600; line-height:1.18; }.fv-ref-operation-link { display:inline-flex; align-items:center; gap:8px; margin-top:32px; color:var(--fv-signal-300); font-size:14px; font-weight:700; text-decoration:underline; text-decoration-color:rgba(127,178,255,.43); text-underline-offset:4px; }.fv-ref-operation-list { position:relative; margin:0; padding:0; list-style:none; }.fv-ref-operation-list::before { position:absolute; top:11px; bottom:23px; left:7px; width:1px; background:linear-gradient(var(--fv-navy-200), rgba(255,255,255,0)); content:""; opacity:.42; }.fv-ref-operation-list li { position:relative; padding:0 0 42px 43px; }.fv-ref-operation-list li:last-child { padding-bottom:0; }.fv-ref-operation-list i { position:absolute; top:5px; left:0; width:15px; height:15px; border:3px solid var(--fv-orange); border-radius:50%; background:var(--fv-navy-950); }.fv-ref-operation-list h3 { margin:0; color:#fff; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:26px; font-weight:700; letter-spacing:-.015em; line-height:1.05; }.fv-ref-operation-list p { max-width:575px; margin:12px 0 0; color:var(--fv-navy-200); font-size:16px; line-height:1.68; }
.fv-ref-process { padding-block:clamp(74px,9vw,132px); background:var(--fv-mist-50); }.fv-ref-process .fv-ref-section-head { grid-template-columns:minmax(0,1fr) minmax(300px,.74fr); }.fv-ref-process-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; margin:72px 0 0; padding:0; list-style:none; }.fv-ref-process-steps li { position:relative; padding-top:44px; }.fv-ref-process-steps li:not(:last-child)::after { position:absolute; top:7px; right:-32px; width:32px; height:1px; background:var(--fv-mist-300); content:""; }.fv-ref-process-steps li::before { position:absolute; top:0; left:0; width:15px; height:15px; border-radius:50%; background:var(--fv-orange); box-shadow:0 0 0 5px var(--fv-mist-50); content:""; }.fv-ref-process-steps small { color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:13px; font-weight:700; letter-spacing:.08em; }.fv-ref-process-steps h3 { margin:14px 0 0; color:var(--fv-navy-900); font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:25px; font-weight:700; letter-spacing:-.015em; line-height:1.05; }.fv-ref-process-steps p { margin:12px 0 0; color:var(--fv-navy-600); font-size:15px; line-height:1.62; }.fv-ref-process-close { max-width:795px; display:flex; gap:14px; align-items:flex-start; margin:73px 0 0; padding-top:30px; border-top:1px solid var(--fv-mist-300); color:var(--fv-navy-800); font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:23px; font-weight:600; line-height:1.2; }.fv-ref-process-close i { width:35px; height:35px; flex:none; display:grid; place-items:center; border:1px solid var(--fv-signal-600); border-radius:50%; color:var(--fv-signal-700); font-family:Arial,sans-serif; font-size:18px; font-style:normal; }

/* Industries, resources and FAQ */
.fv-ref-industries { padding-block:clamp(74px,9vw,132px); background:#fff; }.fv-ref-industries-grid { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(310px,.78fr); gap:clamp(45px,7vw,94px); }.fv-ref-industries-lead > p { max-width:620px; margin:19px 0 0; color:var(--fv-navy-600); font-size:17px; line-height:1.66; }.fv-ref-industry-figure { position:relative; margin:38px 0 0; overflow:hidden; background:var(--fv-mist-100); }.fv-ref-industry-figure img { display:block; width:100%; aspect-ratio:16/11; object-fit:cover; }.fv-ref-industry-figure figcaption { position:absolute; bottom:0; left:0; display:inline-flex; align-items:center; gap:9px; padding:12px 15px; background:rgba(5,15,31,.91); color:var(--fv-navy-100); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.fv-ref-industry-figure figcaption i { width:7px; height:7px; border-radius:50%; background:var(--fv-signal-500); }.fv-ref-industry-list { margin:0; padding:0; border-top:1px solid var(--fv-mist-200); list-style:none; }.fv-ref-industry-list li { border-bottom:1px solid var(--fv-mist-200); }.fv-ref-industry-list a { position:relative; display:block; padding:24px 3px; color:var(--fv-navy-900); text-decoration:none; transition:padding .18s ease, background .18s ease; }.fv-ref-industry-list a:hover { padding-inline:13px; background:var(--fv-mist-50); }.fv-ref-industry-list h3 { margin:0; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:26px; font-weight:700; letter-spacing:-.015em; line-height:1.05; }.fv-ref-industry-list p { max-width:440px; margin:8px 0 0; color:var(--fv-navy-600); font-size:14px; line-height:1.55; }.fv-ref-industry-list span { display:inline-flex; align-items:center; gap:6px; margin-top:13px; color:var(--fv-signal-700); font-size:13px; font-weight:700; }
.fv-ref-resources { padding-block:clamp(74px,9vw,132px); background:var(--fv-mist-50); }.fv-ref-resources-top { display:grid; grid-template-columns:minmax(0,1.12fr) auto; gap:40px; align-items:end; }.fv-ref-resources-top .fv-ref-h2 { max-width:20ch; }.fv-ref-resources-top p:last-child { max-width:650px; margin:18px 0 0; color:var(--fv-navy-600); font-size:17px; line-height:1.66; }.fv-ref-resource-grid { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr); gap:48px; margin-top:56px; }.fv-ref-feature-story { color:var(--fv-navy-900); text-decoration:none; }.fv-ref-feature-story figure { position:relative; margin:0; overflow:hidden; background:var(--fv-mist-200); }.fv-ref-feature-story img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .32s ease; }.fv-ref-feature-story:hover img { transform:scale(1.025); }.fv-ref-feature-story figcaption { position:absolute; right:0; bottom:0; padding:11px 13px; background:var(--fv-navy-950); color:var(--fv-navy-100); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }.fv-ref-story-copy { padding:23px 3px 0; }.fv-ref-story-copy small { color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }.fv-ref-story-copy h3 { max-width:19ch; margin:10px 0 0; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:32px; font-weight:700; letter-spacing:-.02em; line-height:1.03; }.fv-ref-story-copy p { margin:11px 0 0; color:var(--fv-navy-600); font-size:15px; line-height:1.6; }.fv-ref-story-copy strong { display:inline-flex; gap:6px; margin-top:17px; color:var(--fv-signal-700); font-size:14px; }.fv-ref-resource-list { margin:0; padding:0; border-top:1px solid var(--fv-mist-300); list-style:none; }.fv-ref-resource-list li { border-bottom:1px solid var(--fv-mist-300); }.fv-ref-resource-list a { display:block; padding:21px 0; color:var(--fv-navy-900); text-decoration:none; }.fv-ref-resource-list a:hover h3 { color:var(--fv-signal-700); }.fv-ref-resource-list small { color:var(--fv-signal-700); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.fv-ref-resource-list h3 { margin:8px 0 0; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:25px; font-weight:700; letter-spacing:-.015em; line-height:1.07; transition:color .16s ease; }.fv-ref-resource-list p { margin:8px 0 0; color:var(--fv-navy-600); font-size:14px; line-height:1.5; }.fv-ref-resource-topics { margin:58px 0 0; padding-top:28px; border-top:1px solid var(--fv-mist-300); }.fv-ref-resource-topics > p { margin:0; color:var(--fv-navy-500); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.fv-ref-resource-topics ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:17px 0 0; padding:0; list-style:none; }.fv-ref-resource-topics a { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px; border:1px solid var(--fv-mist-300); background:#fff; color:var(--fv-navy-900); font-size:13px; font-weight:700; line-height:1.35; text-decoration:none; }.fv-ref-resource-topics a:hover { border-color:var(--fv-signal-600); color:var(--fv-signal-700); }
.fv-ref-faq { padding-block:clamp(74px,9vw,132px); background:#fff; }.fv-ref-faq-grid { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:clamp(50px,9vw,128px); }.fv-ref-faq-aside p { max-width:360px; margin:19px 0 0; color:var(--fv-navy-600); font-size:16px; line-height:1.62; }.fv-ref-faq-list { border-top:1px solid var(--fv-mist-200); }.fv-ref-faq-list details { border-bottom:1px solid var(--fv-mist-200); }.fv-ref-faq-list summary { min-height:76px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:21px 0; color:var(--fv-navy-900); cursor:pointer; font-family:"Barlow Semi Condensed", "Arial Narrow", sans-serif; font-size:23px; font-weight:700; line-height:1.12; list-style:none; }.fv-ref-faq-list summary::-webkit-details-marker { display:none; }.fv-ref-faq-list summary i { width:31px; height:31px; flex:none; display:grid; place-items:center; border:1px solid var(--fv-mist-300); border-radius:50%; color:var(--fv-navy-700); font-family:Arial,sans-serif; font-size:20px; font-style:normal; font-weight:400; transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; }.fv-ref-faq-list details[open] summary { color:var(--fv-signal-700); }.fv-ref-faq-list details[open] summary i { border-color:var(--fv-signal-600); background:var(--fv-signal-600); color:#fff; transform:rotate(45deg); }.fv-ref-faq-list p { max-width:650px; margin:0; padding:0 46px 25px 0; color:var(--fv-navy-600); font-size:16px; line-height:1.65; }

/* Enquiry and footer */
.fv-ref-enquiry { position:relative; overflow:hidden; padding-block:clamp(75px,9vw,132px); border-top:1px solid var(--fv-mist-200); background:var(--fv-mist-150); }.fv-ref-enquiry::before { position:absolute; top:0; right:0; left:0; height:1px; background:linear-gradient(90deg, transparent, rgba(47,125,246,.55), transparent); content:""; }.fv-ref-enquiry-grid { display:grid; grid-template-columns:minmax(0,.77fr) minmax(0,1fr); gap:clamp(48px,9vw,132px); }.fv-ref-enquiry-copy > p:not(.fv-ref-eyebrow) { max-width:505px; margin:20px 0 0; color:var(--fv-navy-600); font-size:17px; line-height:1.66; }.fv-ref-reassurance { display:grid; gap:15px; margin:37px 0 0; padding:27px 0 0; border-top:1px solid var(--fv-mist-300); list-style:none; }.fv-ref-reassurance li { display:flex; gap:12px; color:var(--fv-navy-700); font-size:14px; line-height:1.55; }.fv-ref-reassurance i { width:23px; height:23px; flex:none; display:grid; place-items:center; border:1px solid var(--fv-mist-300); border-radius:50%; background:#fff; color:var(--fv-signal-700); font-family:Arial,sans-serif; font-size:13px; font-style:normal; font-weight:800; }.fv-ref-form { padding:clamp(23px,3vw,38px); background:#fff; box-shadow:0 18px 40px -32px rgba(5,15,31,.42); }.fv-ref-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.fv-ref-field { display:grid; gap:7px; }.fv-ref-field-wide { grid-column:1 / -1; }.fv-ref-field label { color:var(--fv-navy-700); font-size:12px; font-weight:700; }.fv-ref-field input, .fv-ref-field select, .fv-ref-field textarea { width:100%; min-height:45px; padding:11px 12px; border:1px solid var(--fv-mist-300); border-radius:2px; background:#fff; color:var(--fv-navy-900); font:inherit; font-size:14px; }.fv-ref-field textarea { min-height:103px; resize:vertical; }.fv-ref-field input:focus, .fv-ref-field select:focus, .fv-ref-field textarea:focus { border-color:var(--fv-signal-600); outline:2px solid rgba(47,125,246,.22); outline-offset:1px; }.fv-ref-form-consent { display:flex; align-items:flex-start; gap:9px; margin:18px 0 0; color:var(--fv-navy-600); font-size:12px; line-height:1.45; }.fv-ref-form-consent input { width:16px; height:16px; flex:none; margin:1px 0 0; accent-color:var(--fv-signal-600); }.fv-ref-form-consent a { color:var(--fv-signal-700); }.fv-ref-form .fv-ref-button-primary { width:100%; margin-top:19px; border:0; cursor:pointer; font:inherit; }
body.fv-reference-home .en-site-footer { background:var(--fv-navy-950); color:var(--fv-navy-200); } body.fv-reference-home .en-footer-main { width:min(100% - 40px, 1280px); margin-inline:auto; padding-block:74px; gap:50px; } body.fv-reference-home .en-footer-main strong { color:var(--fv-navy-300); font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; letter-spacing:.13em; text-transform:uppercase; } body.fv-reference-home .en-footer-main a { color:var(--fv-navy-100); } body.fv-reference-home .en-footer-main a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; } body.fv-reference-home .en-footer-brand p { max-width:290px; color:var(--fv-navy-200); font-size:14px; line-height:1.6; } body.fv-reference-home .en-footer-bottom { width:min(100% - 40px, 1280px); margin-inline:auto; color:var(--fv-navy-300); } body.fv-reference-home .en-footer-bottom a { color:var(--fv-navy-200); }

@media (max-width: 1060px) {
  .fv-ref-header-inner { grid-template-columns:auto 1fr auto; gap:18px; }.fv-ref-nav { gap:16px; }.fv-ref-nav > a, .fv-ref-nav summary { font-size:13px; }.fv-ref-header-cta { padding-inline:13px; }.fv-ref-hero-grid { grid-template-columns:minmax(0,.87fr) minmax(390px,1fr); gap:42px; }.fv-ref-hero h1 { font-size:clamp(3rem,5.5vw,4.15rem); }.fv-ref-service-selector { grid-template-columns:205px minmax(0,1fr); gap:34px; }.fv-ref-service-panel { gap:30px; }.fv-ref-resource-topics ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 840px) {
  .fv-ref-header-inner { min-height:68px; }.fv-ref-nav, .fv-ref-header-actions > .fv-ref-language, .fv-ref-header-actions > .fv-ref-header-cta { display:none; }.fv-ref-header-actions { justify-self:end; }.fv-ref-mobile { display:block; }.fv-ref-hero-grid, .fv-ref-operation-grid, .fv-ref-enquiry-grid { grid-template-columns:1fr; }.fv-ref-hero-grid { min-height:0; padding-block:58px 0; gap:40px; }.fv-ref-hero-copy { padding-bottom:0; }.fv-ref-hero h1 { max-width:12ch; }.fv-ref-hero-visual { min-height:385px; margin-inline:calc((100vw - min(100vw - 40px, 1280px)) / -2); }.fv-ref-service-selector { grid-template-columns:1fr; gap:23px; }.fv-ref-service-tabs { flex-direction:row; gap:20px; max-width:100%; padding:0 0 8px; border-right:0; border-bottom:1px solid var(--fv-mist-200); overflow:auto; }.fv-ref-service-tabs button { min-width:max-content; min-height:42px; }.fv-ref-service-tabs button[aria-selected="true"] { padding-left:0; border-left:0; border-bottom:2px solid var(--fv-orange); }.fv-ref-operation-grid { gap:46px; }.fv-ref-section-head, .fv-ref-industries-grid, .fv-ref-resource-grid, .fv-ref-faq-grid { grid-template-columns:1fr; }.fv-ref-section-head { gap:19px; }.fv-ref-section-head > p { max-width:620px; }.fv-ref-process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:42px; margin-top:52px; }.fv-ref-process-steps li:nth-child(2)::after { display:none; }.fv-ref-resources-top { grid-template-columns:1fr; gap:24px; }.fv-ref-resource-grid { gap:24px; }.fv-ref-industry-list { max-width:700px; }.fv-ref-enquiry-grid { gap:42px; }
}

@media (max-width: 560px) {
  .fv-ref-shell { width:min(100% - 32px, 1280px); }.fv-ref-announcement { min-height:38px; font-size:9px; }.fv-ref-brand-copy small { display:none; }.fv-ref-brand-copy strong { font-size:22px; }.fv-ref-hero-grid { padding-top:46px; }.fv-ref-hero h1 { font-size:clamp(2.9rem, 12vw, 3.8rem); }.fv-ref-hero-lead { font-size:15.5px; }.fv-ref-hero-actions { display:grid; grid-template-columns:1fr; }.fv-ref-hero-actions .fv-ref-button-primary, .fv-ref-hero-actions .fv-ref-button-ghost { width:100%; }.fv-ref-hero-visual { min-height:340px; }.fv-ref-route-strip { min-height:78px; padding:13px 7px; }.fv-ref-route-strip::before { top:27px; }.fv-ref-route-stop { gap:9px; font-size:8px; letter-spacing:.05em; }.fv-ref-route-stop i { width:9px; height:9px; }.fv-ref-coverage .fv-ref-shell { min-height:62px; }.fv-ref-coverage a { padding-inline:14px; font-size:9px; }.fv-ref-services, .fv-ref-operation, .fv-ref-process, .fv-ref-industries, .fv-ref-resources, .fv-ref-faq, .fv-ref-enquiry { padding-block:65px; }.fv-ref-h2 { font-size:clamp(2.1rem,9.7vw,2.9rem); }.fv-ref-section-head > p { font-size:15px; }.fv-ref-service-panel { grid-template-columns:1fr; min-height:0; gap:22px; }.fv-ref-service-panel-copy { padding-top:0; }.fv-ref-service-panel h3 { font-size:2.25rem; }.fv-ref-service-panel figure { min-height:220px; }.fv-ref-service-panel-actions { display:grid; grid-template-columns:1fr; gap:15px; }.fv-ref-service-panel-actions .fv-ref-button-dark { width:100%; }.fv-ref-operation-list h3 { font-size:24px; }.fv-ref-operation-list p { font-size:15px; }.fv-ref-process-steps { grid-template-columns:1fr; gap:0; margin-top:40px; }.fv-ref-process-steps li { padding:0 0 36px 38px; }.fv-ref-process-steps li::before { top:2px; }.fv-ref-process-steps li:not(:last-child)::after { top:15px; right:auto; bottom:-2px; left:7px; width:1px; height:auto; }.fv-ref-process-steps li:nth-child(2)::after { display:block; }.fv-ref-process-steps h3 { margin-top:9px; font-size:23px; }.fv-ref-process-close { margin-top:28px; padding-top:25px; font-size:21px; }.fv-ref-industry-figure { margin-top:28px; }.fv-ref-industry-figure img { aspect-ratio:4/3; }.fv-ref-resource-topics ul { grid-template-columns:1fr; }.fv-ref-feature-story figure img { aspect-ratio:4/3; }.fv-ref-story-copy h3 { font-size:28px; }.fv-ref-faq-list summary { min-height:70px; font-size:21px; }.fv-ref-faq-list p { padding-right:0; font-size:15px; }.fv-ref-form-grid { grid-template-columns:1fr; }.fv-ref-field-wide { grid-column:auto; }.fv-ref-form { padding:20px; } body.fv-reference-home .en-footer-main, body.fv-reference-home .en-footer-bottom { width:min(100% - 32px, 1280px); }
}

@media (prefers-reduced-motion: reduce) {
  body.fv-reference-home *, body.fv-reference-home *::before, body.fv-reference-home *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* ==========================================================================
   Drawn icon system and legibility pass
   Icons are authored SVG (24x24 grid, 1.6 stroke, round joins) and inherit
   their colour, so every stop, tab, principle and step keeps one stroke
   weight while the palette decides emphasis.
   ========================================================================== */

body.fv-reference-home .fv-icon {
  display: block;
  flex: none;
  width: 18px;
  height: 18px;
  overflow: visible;
}

/* --- coverage strip: drawn capability marks replace the decorative dots --- */
body.fv-reference-home .fv-ref-coverage a { gap: 10px; min-height: 44px; }
body.fv-reference-home .fv-ref-coverage a .fv-icon { width: 17px; height: 17px; color: var(--fv-signal-600); transition: color .16s ease; }
body.fv-reference-home .fv-ref-coverage a:hover .fv-icon,
body.fv-reference-home .fv-ref-coverage a:focus-visible .fv-icon { color: var(--fv-signal-700); }

/* --- service tabs --- */
body.fv-reference-home .fv-ref-service-tabs button { display: flex; align-items: center; gap: 11px; }
body.fv-reference-home .fv-ref-service-tabs button .fv-icon { width: 17px; height: 17px; color: var(--fv-navy-500); transition: color .16s ease; }
body.fv-reference-home .fv-ref-service-tabs button[aria-selected="true"] .fv-icon { color: var(--fv-orange); }
body.fv-reference-home .fv-ref-service-tabs button:hover .fv-icon { color: var(--fv-signal-700); }

/* --- operation principles: the ring now holds a drawn mark --- */
body.fv-reference-home .fv-ref-operation-list::before { top: 14px; left: 12px; }
body.fv-reference-home .fv-ref-operation-list li { padding-left: 56px; }
body.fv-reference-home .fv-ref-operation-list i.fv-ref-ol-icon {
  position: absolute;
  top: 2px;
  left: 0;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(127, 178, 255, .52);
  border-radius: 50%;
  background: var(--fv-navy-950);
}
body.fv-reference-home .fv-ref-operation-list i.fv-ref-ol-icon .fv-icon { width: 14px; height: 14px; color: var(--fv-signal-300); }
body.fv-reference-home .fv-ref-operation-list h3 { margin-top: 0; }

/* --- process steps: an icon chip replaces the bare orange dot --- */
body.fv-reference-home .fv-ref-process-steps li::before { display: none; }
body.fv-reference-home .fv-ref-process-steps li { padding-top: 58px; }
body.fv-reference-home .fv-ref-process-steps i.fv-ref-step-icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--fv-mist-300);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 5px var(--fv-mist-50);
}
body.fv-reference-home .fv-ref-process-steps i.fv-ref-step-icon .fv-icon { width: 18px; height: 18px; color: var(--fv-signal-700); }
body.fv-reference-home .fv-ref-process-steps li:not(:last-child)::after { top: 18px; }

/* --- industry rows: icon column, text column --- */
body.fv-reference-home .fv-ref-industry-list a {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  column-gap: 16px;
  align-items: start;
}
body.fv-reference-home .fv-ref-industry-list a > .fv-icon {
  grid-column: 1;
  grid-row: 1 / span 3;
  width: 22px;
  height: 22px;
  margin-top: 3px;
  color: var(--fv-signal-600);
  transition: color .18s ease;
}
body.fv-reference-home .fv-ref-industry-list a:hover > .fv-icon { color: var(--fv-signal-700); }
body.fv-reference-home .fv-ref-industry-list a > h3,
body.fv-reference-home .fv-ref-industry-list a > p,
body.fv-reference-home .fv-ref-industry-list a > span { grid-column: 2; }

/* --- typography: nothing below 10px, brand lockup readable --- */
body.fv-reference-home .fv-ref-brand-copy small { font-size: 10px; letter-spacing: .1em; }
body.fv-reference-home .fv-ref-announcement { font-size: 12px; }
body.fv-reference-home .fv-ref-coverage a { font-size: 12px; }
body.fv-reference-home .fv-ref-route-stop { font-size: 11px; }
body.fv-reference-home .fv-ref-language-menu a { font-size: 12px; }
body.fv-reference-home .fv-ref-language-menu small { font-size: 11px; }
body.fv-reference-home .fv-ref-instry-legend,
body.fv-reference-home .fv-ref-industry-figure figcaption { font-size: 11px; }
body.fv-reference-home .fv-ref-story-copy small { font-size: 11px; }
body.fv-reference-home .fv-ref-panel-label { font-size: 12px; }

/* --- tap targets: 24px minimum on secondary links --- */
body.fv-reference-home .fv-ref-text-link,
body.fv-reference-home .fv-ref-operation-link { min-height: 32px; padding-block: 5px; }
/* The English footer is .en-site-footer (the shared site footer), not the
   .fv-ref-* scope, so it needs its own min-height to satisfy target size. */
body.fv-reference-home .en-site-footer nav a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding-block: 3px;
}

@media (max-width: 1060px) {
  body.fv-reference-home .fv-ref-coverage a { font-size: 11px; }
  body.fv-reference-home .fv-ref-service-tabs button { gap: 9px; }
}

@media (max-width: 840px) {
  body.fv-reference-home .fv-ref-service-tabs button .fv-icon { width: 16px; height: 16px; }
  /* The process head keeps its two-column ratio at every width unless this
     class-qualified rule collapses it; without it the heading is squeezed to
     its min-content width and overruns the summary paragraph on phones. */
  body.fv-reference-home .fv-ref-process .fv-ref-section-head { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 560px) {
  body.fv-reference-home .fv-ref-announcement { font-size: 11px; }
  body.fv-reference-home .fv-ref-coverage a { font-size: 11px; min-height: 44px; }
  body.fv-reference-home .fv-ref-route-stop { font-size: 9.5px; }
  body.fv-reference-home .fv-ref-process-steps li { padding: 0 0 40px 54px; }
  body.fv-reference-home .fv-ref-process-steps i.fv-ref-step-icon { width: 34px; height: 34px; }
  body.fv-reference-home .fv-ref-process-steps i.fv-ref-step-icon .fv-icon { width: 17px; height: 17px; }
  body.fv-reference-home .fv-ref-process-steps li:not(:last-child)::after { top: 17px; left: 16px; }
  body.fv-reference-home .fv-ref-operation-list li { padding-left: 46px; }
  body.fv-reference-home .fv-ref-operation-list::before { left: 12px; }
  body.fv-reference-home .fv-ref-industry-list a { grid-template-columns: 22px minmax(0, 1fr); column-gap: 13px; }
  body.fv-reference-home .fv-ref-industry-list a > .fv-icon { width: 19px; height: 19px; }
}

@media(max-width:1100px) { .fv-ref-coverage .fv-ref-shell { grid-template-columns:repeat(3,minmax(0,1fr)); } .fv-ref-coverage a:nth-child(3n) { border-right:0; } }
@media(max-width:640px) { .fv-ref-coverage .fv-ref-shell { grid-template-columns:repeat(2,minmax(0,1fr)); } .fv-ref-coverage a:nth-child(3n) { border-right:1px solid var(--fv-mist-200); } .fv-ref-coverage a:nth-child(2n) { border-right:0; } }
