/* JM Automated — v3 design system (Oct 2026, homepage Layout 3 "Station-first").
   Loaded after jms-plant.css on the 23 pages built by jma-site-bot/build.py (body.v3).
   Near-black, concrete grey, safety yellow. Raleway headings (sentence case) + Inter text (since v3-6).
   Pages without body.v3 are untouched. */
body.v3 {
  --ink: #0E0E0E; --black: #0E0E0E; --concrete: #E8E6E1; --card-bg: #F7F6F3; --rule: #C9C6BE;
  --muted: #4A4A46; --mark-yellow: #FFC20E; --mark-blue: #2563A8; --steel: #FFC20E; --ice: #DAD7D0;
  --fog: #DAD7D0; --line: rgba(14,14,14,.18);
  --display: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --kicker: "Roboto", system-ui, sans-serif; --body: "Roboto", system-ui, sans-serif;
  background: var(--concrete); color: var(--ink); font-family: var(--body);
}
body.v3 :where(p, li, td, th, a, button, span, label, input, select, textarea, summary, figcaption, small, b, strong, dd, dt, address, legend) { font-family: var(--body); }
body.v3 :where(h1, h2, h3, .display) { font-family: var(--display); text-transform: uppercase; font-weight: 800; letter-spacing: 0; line-height: 1; }
body.v3 h1 { font-size: clamp(2.6rem, 7vw, 6rem); font-weight: 900; line-height: .95; }
body.v3 h2 { font-size: clamp(2rem, 4.6vw, 3.5rem); }
body.v3 h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
body.v3 .card h3 { text-transform: uppercase; font-size: 1.45rem; }
body.v3 .kicker { font: 600 .8rem/1.4 var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
body.v3 .lead { color: var(--muted); }
body.v3 a { color: var(--ink); }
body.v3 main a:not(.btn) { color: var(--mark-blue); }
/* buttons */
body.v3 .btn { font-family: var(--body); font-weight: 600; text-transform: none; letter-spacing: 0; }
body.v3 .btn-fill, body.v3 .nav-cta, body.v3 .mast-actions .btn { background: var(--mark-yellow); color: #111 !important; border-color: var(--mark-yellow); }
body.v3 .btn-fill:hover { background: #ffd24d; }
body.v3 .btn-line { color: var(--ink) !important; border-color: var(--ink); }
/* header */
body.v3 .mast { background: var(--ink); border-bottom: 0; }
body.v3 .nav a { font-family: var(--body); font-weight: 600; text-transform: none; letter-spacing: 0; color: #fff; }
body.v3 .nav a:hover, body.v3 .nav a[aria-current] { color: var(--mark-yellow); }
body.v3 .nav-drop-panel { background: var(--ink); }
/* bands */
body.v3 .band { background: var(--concrete); }
body.v3 .band-paper { background: var(--card-bg); }
body.v3 .band-dark, body.v3 .band-black, body.v3 .v3-dark { background: var(--ink); color: #fff; }
body.v3 .band-black h2, body.v3 .band-dark h2 { color: #fff; }
body.v3 .band-black a:not(.btn), body.v3 .band-dark a:not(.btn) { color: var(--mark-yellow); }
body.v3 .page-hero { background-color: var(--ink); }
body.v3 .page-hero .kicker { color: var(--mark-yellow); }
body.v3 .page-hero a:not(.btn) { color: var(--mark-yellow); }
body.v3 .page-hero h1 { color: #fff; }
body.v3 .card { background: var(--card-bg); border: 1px solid var(--rule); border-top: 6px solid var(--mark-yellow); }
body.v3 .spec-table th, body.v3 .spec-table td { border-color: var(--rule); }
body.v3 .spec-table thead th { background: var(--ink); color: #fff; }
body.v3 .spec-table thead th a { color: var(--mark-yellow) !important; }
body.v3 .tb-tabs [role=tab][aria-selected=true] { border-color: var(--mark-yellow); box-shadow: inset 0 -4px 0 var(--mark-yellow); }
/* footer */
body.v3 .foot { background: var(--ink); color: #E5E7EB; }
body.v3 .foot-label { color: var(--mark-yellow); font-family: var(--body); letter-spacing: .12em; }
body.v3 .foot a { color: #E5E7EB; }
body.v3 .foot a:hover { color: var(--mark-yellow); }

/* ---- homepage Layout 3 modules (v3-*) ---- */
.v3-w { max-width: 75rem; margin: 0 auto; padding: 0 24px; }
.v3-sec { padding: 80px 0; }
.v3-dark { background: var(--ink); color: #fff; }
.v3-dark .kicker { color: #C9CED6; }
.v3-dark p { color: #D1D5DB; }
/* Hero: one size, one type. Homepage copy sits on the bottom edge. */
.v3-hero {
  position: relative; display: flex; align-items: center; box-sizing: border-box;
  height: 560px; min-height: 560px; max-height: 560px;
  padding: 0; background: #fff; overflow: hidden;
}
.v3-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .75; }
.v3-hero::after { content: none; display: none; }
.v3-hero .v3-w {
  position: relative; z-index: 2; width: 100%;
  display: flex; flex-direction: column; justify-content: center;
  padding-top: 64px; padding-bottom: 64px; color: var(--ink, #0E0E0E);
}
body.v3 .v3-hero h1,
body.v3 .page-hero h1,
body.v3 .sol-fixed h1 {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif !important;
  font-size: clamp(32px, 2.8vw, 48px) !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}
body.v3 .v3-hero h1 { color: var(--ink); max-width: 18ch; margin: 12px 0 0; }
.v3-hero .v3-lead { max-width: 560px; font-size: 19px; margin: 20px 0 28px; color: var(--muted, #4A4A46); }
body.v3 .v3-hero .kicker { color: var(--ink); }
body.v3 .page-hero {
  height: 560px !important; min-height: 560px !important; max-height: 560px;
  box-sizing: border-box; overflow: hidden;
  display: flex !important; align-items: center; padding-top: 0 !important; padding-bottom: 0 !important;
}
body.v3 .page-hero > .wrap { width: 100%; }
@media (min-width: 861px) {
  body.home.v3 .v3-hero { align-items: flex-end; }
  body.home.v3 .v3-hero .v3-w { padding-bottom: 0; }
  body.home.v3 .v3-hero .v3-w > p:last-child { margin-bottom: 0; }
}
.v3-cap { position: absolute; right: 24px; top: 24px; z-index: 2; background: rgba(0,0,0,.7); color: #fff; font-size: 13px; padding: 6px 10px; }
.v3-g4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.v3-g5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.v3-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.v3-st { background: var(--card-bg); border-top: 6px solid var(--mark-yellow); display: flex; flex-direction: column; }
.v3-st img { width: 100%; height: 220px; object-fit: cover; }
.v3-st > div { padding: 20px; }
.v3-st p { font-size: 15px; margin: 0; }
body.v3 .v3-st h3 { font-size: 1.6rem; margin: 0 0 6px; }
body.v3 main .v3-more { color: var(--mark-blue); font-weight: 600; display: inline-block; margin-top: 10px; text-decoration: none; }
.v3-tl { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; margin: 40px 0 0; padding: 0; list-style: none; }
.v3-tl::before { content: ""; position: absolute; left: 0; right: 0; top: 22px; height: 2px; background: var(--mark-yellow); }
.v3-tl li { position: relative; padding-right: 24px; }
.v3-dot { width: 46px; height: 46px; background: var(--mark-yellow); color: #111; font: 900 22px var(--display); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
body.v3 .v3-tl h3 { color: #fff; font-size: 1.6rem; margin: 0 0 6px; }
.v3-reg { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.v3-reg li { border: 1px solid var(--ink); padding: 8px 12px; font-weight: 600; font-size: 15px; }
.v3-g2 > img { width: 100%; height: 400px; object-fit: cover; }
body.v3 main .v3-ind { display: block; background: var(--card-bg); border: 1px solid var(--rule); padding: 16px; font-weight: 600; color: var(--ink); text-decoration: none; }
body.v3 main .v3-ind:hover { border-color: var(--ink); opacity: 1; }
body.v3 .v3-dark h2 { color: #fff; }
@media (max-width: 760px) {
  .v3-sec { padding: 56px 0; }
  .v3-g4, .v3-g5, .v3-g2 { grid-template-columns: 1fr; gap: 16px; }
  .v3-tl { grid-template-columns: 1fr; gap: 28px; }
  .v3-tl::before { left: 22px; right: auto; width: 2px; top: 0; bottom: 0; height: auto; }
  .v3-tl li { padding-left: 66px; padding-right: 0; }
  .v3-dot { position: absolute; left: 0; top: 0; }
  .v3-g2 > img { height: 260px; }
}

/* v3-2 fixes: header plate, line finder band, headings inside component CSS */
body.v3 .mast-brandplate, body.v3 .mast-top, body.v3 .mast-pro { background: var(--ink) !important; background-image: none !important; }
body.v3 .mast-brandplate::before, body.v3 .mast-brandplate::after { display: none !important; }
body.v3 .line-board { background: var(--card-bg); }
body.v3 h1, body.v3 h2, body.v3 h3 { font-family: var(--display) !important; text-transform: uppercase !important; letter-spacing: 0 !important; }
body.v3 .tb-tabs [role=tab], body.v3 .tb-name, body.v3 .tb-tag, body.v3 .spec-table, body.v3 .spec-faq summary { font-family: var(--body) !important; }
body.v3 .page-hero .lead, body.v3 .station-hero .lead, body.v3 .page-hero p:not(.kicker) { color: rgba(255,255,255,.84); }

/* v3-4: header hides on scroll down, shows on scroll up (jms-header.js toggles .is-hidden). */
body.v3 .mast { position: sticky; top: 0; z-index: 40; transform: translateY(0); transition: transform .22s ease; will-change: transform; }
body.v3 .mast.is-hidden { transform: translateY(-100%); }
body.v3 .mast:focus-within, body.v3 .mast:has(.nav-toggle-box:checked), body.v3 .mast:has(.nav-drop-box:checked) { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { body.v3 .mast { transition: none; } }
body.v3 [id] { scroll-margin-top: calc(var(--mast-h, 110px) + 12px); }

/* v3-6: Raleway headings (sentence case) + Inter body, Cognex-style. */
body.v3 h1, body.v3 h2, body.v3 h3 { text-transform: none !important; font-weight: 800; letter-spacing: -0.01em !important; line-height: 1.1; overflow-wrap: break-word; }
body.v3 h1 { font-size: clamp(2.2rem, 5.2vw, 4.25rem); line-height: 1.05; }
body.v3 h2 { font-size: clamp(1.75rem, 3.6vw, 2.75rem); }
body.v3 h3, body.v3 .card h3 { font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-weight: 700; line-height: 1.25; }
body.v3 .v3-st h3, body.v3 .v3-tl h3 { font-size: 1.3rem; }
body.v3 .v3-dot { font-family: var(--display); font-weight: 800; }

/* v3-7: former Roboto Mono / monospace labels -> Inter, uppercase, letter-spaced. */
body.v3 .tb-shell .kicker, body.v3 .tb-tag, body.v3 .tb-shell .st, body.v3 .tb-shell .ind-fit, body.v3 .tb-ic span,
body.v3 .tb-detail .shot figcaption span, body.v3 .tb-stshot figcaption span, body.v3 .shot figcaption span, body.v3 .tb-dl dt, body.v3 .tb-sn,
body.v3 code, body.v3 kbd, body.v3 samp, body.v3 .mono { font-family: var(--body) !important; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
body.v3 .tb-shell .ind-fit a { text-transform: none; letter-spacing: 0; font-weight: 500; }


/* Cognex type scale: Roboto 600 headings, tight tracking */
body.v3 h1, body.v3 h2, body.v3 h3, body.v3 h4 { font-weight: 600 !important; word-spacing: normal; letter-spacing: -0.2px !important; }
body.v3 h1 { font-size: clamp(34px, 3.4vw, 43px) !important; line-height: 1.26 !important; }
body.v3 h2 { font-size: clamp(25px, 2.5vw, 32px) !important; line-height: 1.25 !important; }
body.v3 h3 { font-size: clamp(21px, 1.9vw, 24px) !important; line-height: 1.25 !important; }
body.v3 h4 { font-size: 18px !important; line-height: 1.28 !important; }

/* Cognex spacing: no wide tracking anywhere */
body.v3, body.v3 * { word-spacing: normal !important; }
body.v3 :where(p, li, a, span, button, label, small, td, th, summary, div) { letter-spacing: -0.1px !important; }
body.v3 :where(.kicker, .eyebrow, .label, .mono, [class*="kicker"], [class*="eyebrow"], [class*="label"], [class*="tag"]) { letter-spacing: 0.02em !important; }

/* pure white light areas */
body.v3 { --concrete: #FFFFFF; --card-bg: #FFFFFF; --ice: #FFFFFF; --fog: #FFFFFF; --rule: #E2E2E2; background: #FFFFFF; }

/* hero: image on the right, 3s slideshow */
.v3-hero .v3-w > * { max-width: 46%; }
.v3-slides { position: absolute; right: max(24px, calc((100vw - 1200px) / 2)); top: 50%; transform: translateY(-50%); width: min(46vw, 560px); aspect-ratio: 4 / 3; z-index: 2; overflow: hidden; background: #000; }
.v3-slides figure { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .8s ease; }
.v3-slides figure.on { opacity: 1; }
.v3-slides img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v3-slides figcaption { position: absolute; left: 0; bottom: 0; background: rgba(0,0,0,.7); color: #fff; font-size: 13px; padding: 6px 10px; }
@media (max-width: 860px) {
  .v3-hero, body.v3 .page-hero { height: 812px !important; min-height: 812px !important; max-height: 812px; }
  .v3-hero { flex-direction: column; }
  .v3-hero .v3-w { padding-top: 32px !important; padding-bottom: 16px !important; flex: 0 0 auto; }
  .v3-hero .v3-w > * { max-width: 100%; }
  .v3-hero .v3-lead { margin: 12px 0 16px !important; font-size: 17px; }
  .v3-slides { position: relative; right: auto; top: auto; transform: none; width: calc(100% - 40px); margin: 24px 20px 0; order: 2; }
  .v3-hero .v3-slides { flex: 1 1 auto; min-height: 0; aspect-ratio: auto !important; margin-bottom: 20px !important; }
  .v3-hero .v3-slides figure { position: absolute; inset: 0; }
}

/* breathing room between line finder and footer */
body.v3 .line-board { padding-bottom: 120px !important; }
@media (max-width: 860px) { body.v3 .line-board { padding-bottom: 80px !important; } }

/* hero slideshow fills full hero height */
@media (min-width: 861px) {
  .v3-slides { top: 0 !important; bottom: 0 !important; transform: none !important; aspect-ratio: auto !important; height: auto !important; }
}

/* hero slideshow bleeds to right edge */
@media (min-width: 861px) {
  .v3-slides { right: 0 !important; width: 50vw !important; }
}

/* outline on hero slideshow */
.v3-slides { border: 1px solid #0E0E0E; box-sizing: border-box; }

/* soft fade from page into hero image (replaces outline) */
.v3-slides { border: 0 !important; background: transparent !important; }
@media (min-width: 861px) {
  .v3-slides { -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 28%), linear-gradient(0deg, transparent 0%, #000 12%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, #000 28%), linear-gradient(0deg, transparent 0%, #000 12%); mask-composite: intersect; }
}

/* fade reduced 50% */
@media (min-width: 861px) {
  .v3-slides { -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%), linear-gradient(0deg, transparent 0%, #000 6%); mask-image: linear-gradient(90deg, transparent 0%, #000 14%), linear-gradient(0deg, transparent 0%, #000 6%); }
}

/* old-site crossover: slanted dark logo plate over blue top bar */
body.v3 .mast-top { background: #0b3f86 !important; align-items: stretch; }
body.v3 .mast-brandplate { background: #10181d !important; clip-path: polygon(0 0, calc(100% - 42px) 0, 100% 100%, 0 100%); padding-right: calc(var(--gutter, 24px) + 1.6rem) !important; }

/* slanted crossover between hero text and image (matches top bar angle) */
@media (min-width: 861px) {
  .v3-slides { -webkit-mask-image: none !important; mask-image: none !important; clip-path: polygon(0 0, 100% 0, 100% 100%, 140px 100%); width: calc(50vw + 70px) !important; }
}

/* edge variants for review: ?edge=a|b|c|d */
@media (min-width: 861px) {
  html.edge-a .v3-slides { clip-path: none; width: 50vw !important; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 20%) !important; mask-image: linear-gradient(90deg, transparent 0%, #000 20%) !important; }
  html.edge-b .v3-slides { background: #FFC20E !important; }
  html.edge-b .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% 100%, 154px 100%); }
  html.edge-c .v3-slides figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,63,134,.85) 0%, rgba(11,63,134,.35) 30%, transparent 55%); }
  html.edge-d .v3-slides { clip-path: none; -webkit-mask-image: linear-gradient(108deg, transparent 0%, transparent 8%, #000 24%) !important; mask-image: linear-gradient(108deg, transparent 0%, transparent 8%, #000 24%) !important; }
}

/* slant matches top bar angle exactly (--slant set by JS from bar height) */
@media (min-width: 861px) {
  .v3-slides { --slant: 260px; clip-path: polygon(0 0, 100% 0, 100% 100%, var(--slant) 100%); width: calc(50vw + var(--slant) / 2) !important; }
  html.edge-b .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% 100%, calc(var(--slant) + 14px) 100%); }
}

/* default: image further right + yellow stripe along the cut */
@media (min-width: 861px) {
  .v3-slides { width: calc(50vw - var(--slant) / 4) !important; background: #FFC20E !important; }
  .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% 100%, calc(var(--slant) + 14px) 100%); }
}

/* DEFAULT = version B (fixed 140px slant + yellow stripe) */
@media (min-width: 861px) {
  .v3-slides { clip-path: polygon(0 0, 100% 0, 100% 100%, 140px 100%) !important; width: calc(50vw + 70px) !important; background: #FFC20E !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .v3-slides figure, html.edge-b .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% 100%, 154px 100%) !important; }
}

/* steeper slant (200px) + yellow stripe along bottom */
@media (min-width: 861px) {
  .v3-slides { clip-path: polygon(0 0, 100% 0, 100% 100%, 200px 100%) !important; width: calc(50vw + 100px) !important; }
  .v3-slides figure, html.edge-b .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 12px), 209px calc(100% - 12px)) !important; }
}

/* light fade on top and right edges of hero photo */
@media (min-width: 861px) {
  .v3-slides figure { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 9%), linear-gradient(270deg, transparent 0, #000 9%); -webkit-mask-composite: source-in; mask-image: linear-gradient(180deg, transparent 0, #000 9%), linear-gradient(270deg, transparent 0, #000 9%); mask-composite: intersect; }
}

/* fade into white: yellow only on the slant + bottom stripes */
@media (min-width: 861px) {
  .v3-slides { background: #FFFFFF !important; }
  .v3-slides::before { content: ""; position: absolute; inset: 0; z-index: 0; background: #FFC20E; clip-path: polygon(0 0, 14px 0, 209px calc(100% - 12px), 100% calc(100% - 12px), 100% 100%, 200px 100%); -webkit-mask-image: linear-gradient(270deg, transparent 0, #000 9%); mask-image: linear-gradient(270deg, transparent 0, #000 9%); }
  .v3-slides figure { z-index: 1; }
}

/* fade removed: back to slant + yellow stripes only */
@media (min-width: 861px) {
  .v3-slides { background: #FFC20E !important; }
  .v3-slides::before { content: none !important; }
  .v3-slides figure { -webkit-mask-image: none !important; mask-image: none !important; }
}

/* bottom stripe removed; slant stripe only */
@media (min-width: 861px) {
  .v3-slides figure, html.edge-b .v3-slides figure { clip-path: polygon(14px 0, 100% 0, 100% 100%, 214px 100%) !important; }
}

/* CTA buttons: slight rounding + soft edge glow */
body.v3 .btn-fill { border-radius: 4px !important; box-shadow: 0 0 0 1px rgba(255,194,14,.35), 0 0 8px rgba(255,194,14,.45) !important; }

/* black logo plate + black menu row */
body.v3 .mast-brandplate { background: #000 !important; }
body.v3 .mast-pro, body.v3 .mast-pro .nav { background: #000 !important; background-image: none !important; }
/* homepage: 4px corners on images and buttons (hero slideshow keeps its slant) */
body.home.v3 main img:not(.v3-slides img), body.home.v3 main figure:not(.v3-slides figure), body.home.v3 main picture,
body.home.v3 main .btn, body.home.v3 main button, body.home.v3 main input, body.home.v3 main select,
body.home.v3 main a[class*="btn"], body.home.v3 main [class*="card"] { border-radius: 4px !important; }

/* Carlos priorities homepage (2026-10-12) */
body.v3 .v3-partner-link{margin-top:14px;font-size:15px}
body.v3 .v3-partner-link a{color:inherit;text-decoration:underline;text-underline-offset:3px}
body.v3 .v3-probs .v3-g5{gap:16px}
body.v3 .v3-prob{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--rule,#E2E2E2);border-radius:4px;background:#fff;color:inherit;text-decoration:none;border-top:3px solid #FFC20E}
body.v3 .v3-prob:hover{border-color:#111;border-top-color:#FFC20E}
body.v3 .v3-prob h3{font-size:18px;margin:0}
body.v3 .v3-prob p{margin:0;font-size:15px;flex:1}
body.v3 .v3-partner{border-top:1px solid var(--rule,#E2E2E2)}
body.v3 .v3-partner h2{margin-bottom:8px}
@media (max-width:1100px){body.v3 .v3-probs .v3-g5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){body.v3 .v3-probs .v3-g5{grid-template-columns:1fr}}

/* Solutions pages: decision strip, deliverables, hero slideshow, single-image faults (2026-10-12) */
body.v3 .sol-flow{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;counter-reset:sf}
body.v3 .sol-flow li{position:relative;background:#fff;border:1px solid #E2E2E2;border-top:3px solid #FFC20E;border-radius:4px;padding:16px;counter-increment:sf}
body.v3 .sol-flow li b{display:block;font-size:16px;margin-bottom:6px}
body.v3 .sol-flow li b::before{content:counter(sf) ". "}
body.v3 .sol-flow li span{font-size:14px;line-height:1.45;display:block}
body.v3 .sol-get{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
body.v3 .sol-get li{border:1px solid #E2E2E2;border-radius:4px;padding:14px 16px;font-weight:600}
body.v3 .sol-get li::before{content:"✓ ";color:#111}
body.v3 .sol-hero .crumbs{margin-bottom:8px}
body.v3 .sol-hero .crumbs a,body.v3 .sol-hero .crumbs li{color:inherit}
body.v3 .ind-one{margin:0 0 16px}
body.v3 .ind-one img{width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:4px;display:block}
@media (max-width:1000px){body.v3 .sol-flow{grid-template-columns:repeat(3,1fr)}body.v3 .sol-get{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){body.v3 .sol-flow,body.v3 .sol-get{grid-template-columns:1fr}}
body.v3 .sol-hero .crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.02em}
body.v3 .sol-hero .crumbs li:not(:last-child)::after{content:"/";margin-left:6px;color:#888}
body.v3 .sol-hero .crumbs a{text-decoration:none}

/* Industry pages: text-only problem cards (no photos) */
body.v3 .tb-grid .tb-card { border-radius: 4px; border-top: 3px solid var(--mark-yellow, #f5c400); min-height: 7.5rem; }
body.v3 .tb-grid .tb-card .tb-in { padding: 1rem 1rem 1.1rem; }
body.v3 .tb-grid .tb-card[aria-selected=true] { border-top-color: #0b3f86; }
body.v3 .tb-detail .tb-fault { border-top: 3px solid var(--mark-yellow, #f5c400); padding-top: 1.2rem; }
body.v3 .tb-detail .tb-fault h3 { max-width: 44rem; }

/* Home finder: grouped menu + big panel */
svg.ic{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.v3 .lf-c{display:grid!important;grid-template-columns:330px 1fr;gap:0;border:1px solid #d8dde2;border-radius:4px;overflow:hidden;min-height:500px;margin-top:1.6rem}
body.v3 .lf-nav{background:#0E0E0E;padding:.8rem 0;display:block}
body.v3 .lf-nav > a{display:block;color:#fff;padding:.6rem 1.3rem}
body.v3 .lf-ind{display:block;width:100%;text-align:left;background:none;border:0;color:#fff;padding:.9rem 1.3rem .7rem;cursor:pointer;font:inherit;border-radius:0}
body.v3 .lf-ind span{display:block;font-family:var(--display);font-weight:800;font-size:1.05rem}
body.v3 .lf-ind small{display:block;color:#FFC20E;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-top:.2rem}
body.v3 .lf-grp:not(.is-open) .lf-ind small{color:#8d969e}
body.v3 .lf-grp:not(.is-open) .lf-ind:hover{background:rgba(255,255,255,.06)}
body.v3 .lf-grp + .lf-grp{border-top:1px solid rgba(255,255,255,.08)}
body.v3 .lf-prob{display:flex;gap:.7rem;align-items:center;width:100%;text-align:left;background:none;border:0;border-left:4px solid transparent;border-radius:0;color:#d9dee3;padding:.6rem 1.3rem .6rem 1.1rem;font:inherit;font-size:.93rem;cursor:pointer;transition:background .15s,color .15s}
body.v3 .lf-prob svg.ic{width:22px;height:22px;flex:none}
body.v3 .lf-prob:hover{background:rgba(255,255,255,.06);color:#fff}
body.v3 .lf-prob[aria-selected=true]{border-left-color:#FFC20E;background:rgba(255,194,14,.1);color:#fff}
body.v3 .lf-stage{display:grid;grid-template-columns:200px 1fr;gap:2rem;padding:2.2rem;align-items:start;background:linear-gradient(180deg,#fff,#f6f7f5);color:#131f23;border:0;border-radius:0;margin:0}
body.v3 .lf-tile{aspect-ratio:1;color:#0b3f86;background:#eef3f9;border-radius:4px;padding:2rem;border-top:4px solid #FFC20E}
body.v3 .lf-body{animation:lfin .35s ease}
@keyframes lfin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
body.v3 .lf-kicker{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#0b3f86;font-weight:700;margin:0}
body.v3 .lf-body h3{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:.5rem 0 1rem;color:#131f23}
body.v3 .lf-body p,body.v3 .lf-body li{line-height:1.6;color:#2b3438}
body.v3 .lf-body ol{margin:.2rem 0 1.2rem;padding-left:1.2rem}
body.v3 .lf-cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
body.v3 .lf-more{font-weight:600}
@media (max-width:860px){body.v3 .lf-c{grid-template-columns:1fr}body.v3 .lf-stage{grid-template-columns:1fr;padding:1.4rem;gap:1rem}body.v3 .lf-tile{width:96px;padding:1rem}}
@media (prefers-reduced-motion:reduce){body.v3 .lf-body{animation:none}}

/* Alternating rows (industry pages + hub) */
svg.ic{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.ir-on .page-hero, .page-hero.ir-hero{min-height:560px;display:flex;align-items:center;background-image:linear-gradient(100deg,rgba(6,10,14,.94) 0%,rgba(6,10,14,.82) 48%,rgba(11,63,134,.35) 100%),var(--page-photo)!important;background-size:cover!important;border-bottom:6px solid #FFC20E}
body.ir-on .page-hero, .page-hero.ir-hero h1{font-size:clamp(2.6rem,5.6vw,4.8rem)!important;max-width:16ch}
body.ir-on .page-hero, .page-hero.ir-hero .lead{max-width:44rem}
.ir-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.ir-chips a{display:flex;align-items:center;gap:.5rem;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:4px;padding:.5rem .8rem;text-decoration:none;font-weight:600;font-size:.9rem;transition:.2s}
.ir-chips a:hover{border-color:#FFC20E;background:rgba(255,194,14,.12)}
.ir-chips svg.ic{width:22px;height:22px;color:#FFC20E}
body.ir-on #panel-problem > .tb-grid, body.ir-on #panel-problem > .tb-detail{display:none!important}
.irb{margin:1.2rem calc(50% - 50vw) 0}
.irb .row{text-decoration:none;display:grid;grid-template-columns:1fr 1fr;min-height:340px;scroll-margin-top:90px}
.irb .row:nth-child(odd){background:#0E0E0E;color:#fff}
.irb .row:nth-child(even){background:#f4f5f2;color:#131f23}
.irb .row:nth-child(even) .art{order:2}
.irb .art{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.irb .art .big{position:absolute;font-family:var(--display);font-weight:900;font-size:15rem;line-height:1;opacity:.07;left:1.5rem;bottom:-2.5rem}
.irb .art .pic{width:170px;height:170px;color:#FFC20E;transition:transform .5s,opacity .6s}
.irb .row:nth-child(even) .art .pic{color:#0b3f86}
.irb .row:hover .art .pic{transform:scale(1.06) rotate(-2deg)}
.irb .txt{padding:3rem clamp(1.5rem,5vw,5rem);max-width:640px;align-self:center;transition:opacity .6s,transform .6s}
.irb .tag{display:inline-block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#FFC20E}
.irb .row:nth-child(even) .tag{color:#0b3f86}
.irb h3{font-family:var(--display)!important;font-weight:800;font-size:clamp(1.6rem,2.6vw,2.3rem);margin:.4rem 0 1rem;color:inherit}
.irb .copy p{line-height:1.6;margin:0 0 .7rem}
.irb .fit{font-size:.85rem;border-top:1px solid #dfe3e6;padding-top:.7rem;margin-top:.8rem}
.irb .row:nth-child(odd) .fit{border-color:rgba(255,255,255,.18)}
.irb .row:nth-child(odd) a{color:#FFC20E}
.irb.anim .row:not(.in) .txt,.irb.anim .row:not(.in) .art .pic{opacity:0;transform:translateY(18px)}
@media (max-width:860px){.irb .row{text-decoration:none;grid-template-columns:1fr}.irb .row:nth-child(even) .art{order:0}.irb .art{min-height:180px}.irb .art .pic{width:110px;height:110px}.irb .art .big{font-size:9rem}}
@media (prefers-reduced-motion:reduce){.irb *{transition:none!important}}
.irb .chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 1rem}
.irb .chips a{font-size:.85rem;font-weight:600;padding:.4rem .7rem;border-radius:4px;border:1px solid rgba(255,255,255,.3);text-decoration:none;transition:.2s}
.irb .row:nth-child(even) .chips a{border-color:#c9d1d8;color:#0b3f86}
.irb .chips a:hover{border-color:#FFC20E;background:rgba(255,194,14,.12)}
.irb .lead2{font-size:1.05rem;line-height:1.6;margin:0 0 1rem}
.irb .all{font-weight:700}
.irb.irb-hub{margin-top:0}
body.ir-on .page-hero > .wrap, .page-hero.ir-hero > .wrap{width:100%;flex:1 1 auto}

/* Homepage section rhythm: ~72px between sections desktop, ~44px mobile */
body.home.v3 main > section.v3-sec, body.home.v3 main > section.line-board { padding-top: 36px !important; padding-bottom: 36px !important; margin-top: 0 !important; margin-bottom: 0 !important; }
body.home.v3 main > section#problems { padding-top: 28px !important; }
@media (max-width: 760px) {
  body.home.v3 main > section.v3-sec, body.home.v3 main > section.line-board { padding-top: 22px !important; padding-bottom: 22px !important; }
  body.home.v3 main > section#problems { padding-top: 16px !important; }
}
body.home.v3 main > section.v3-sec > * > :last-child, body.home.v3 main > section.line-board > * > :last-child { margin-bottom: 0 !important; }
body.home.v3 main > section.v3-sec > * > :first-child, body.home.v3 main > section.line-board > * > :first-child { margin-top: 0 !important; }
body.home.v3 main > section > .v3-w, body.home.v3 main > section > .wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
body.ir-on .page-hero, .page-hero.ir-hero{width:100%;max-width:none;box-sizing:border-box}

/* Solutions: steps band with overlapping cards + before/after strips */
.solx-top .ic,.solx-strips .ic{width:100%;height:100%}
.solx-band{background:#0E0E0E;color:#fff;padding:4rem 0 9rem}
body.v3 .solx-band h2{color:#fff}
body.v3 .solx-band .kicker{color:#FFC20E}
.solx-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem 2rem;margin-top:-6rem;padding-bottom:4rem;padding-top:1.6rem}
.solx-oc{position:relative;background:#fff;border:1px solid #d8dde2;border-top:4px solid #FFC20E;border-radius:4px;padding:1.4rem 1.4rem 1.4rem 1.4rem;padding-top:4.2rem;box-shadow:0 18px 40px rgba(14,14,14,.12);transition:transform .25s}
.solx-oc:nth-child(even){margin-top:2rem}
.solx-oc:hover{transform:translateY(-4px)}
.solx-oc .pic{position:absolute;top:-1.8rem;left:1.2rem;width:84px;height:84px;background:#FFC20E;color:#0E0E0E;border-radius:4px;padding:.9rem;box-shadow:0 10px 24px rgba(0,0,0,.18);transition:transform .3s}
.solx-oc:nth-child(even) .pic{background:#0b3f86;color:#fff;left:auto;right:1.2rem}
.solx-oc:hover .pic{transform:rotate(-4deg) scale(1.05)}
.solx-oc .n{position:absolute;top:.9rem;right:1.2rem;margin:0;font-family:var(--display);font-weight:900;font-size:1.6rem;color:#d4d9de}
.solx-oc:nth-child(even) .n{right:auto;left:1.2rem}
body.v3 .solx-oc h3{font-size:1.3rem;margin:0 0 .4rem}
.solx-oc p{margin:0;line-height:1.55}
.solx-strips{padding:1rem 0 4.5rem}
.solx-strips .list{display:grid;gap:1.2rem;margin-top:2rem}
.solx-strips .sp{display:grid;grid-template-columns:1fr 1fr;border-radius:4px;overflow:hidden;min-height:150px;border:1px solid #d8dde2;transition:transform .25s,box-shadow .25s}
.solx-strips .sp:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.08)}
.solx-strips .l{background:#0E0E0E;color:#fff;padding:1.5rem 4.5rem 1.5rem 1.6rem;clip-path:polygon(0 0,100% 0,calc(100% - 60px) 100%,0 100%);position:relative;margin-right:-60px;z-index:1;display:flex;gap:1rem}
.solx-strips .l:after{content:"";position:absolute;top:0;bottom:0;right:0;width:68px;background:linear-gradient(to bottom left,transparent calc(50% - 4px),#FFC20E calc(50% - 4px),#FFC20E calc(50% + 4px),transparent calc(50% + 4px))}
.solx-strips .sp:nth-child(even) .l{order:2;clip-path:polygon(60px 0,100% 0,100% 100%,0 100%);margin-right:0;margin-left:-60px;padding:1.5rem 1.6rem 1.5rem 4.5rem}
.solx-strips .sp:nth-child(even) .l:after{right:auto;left:0;background:linear-gradient(to bottom right,transparent calc(50% - 4px),#FFC20E calc(50% - 4px),#FFC20E calc(50% + 4px),transparent calc(50% + 4px))}
.solx-strips .sp:nth-child(even) .r{padding:1.5rem 4.5rem 1.5rem 1.6rem}
.solx-strips .l .pic{flex:none;width:46px;height:46px;color:#FFC20E}
.solx-strips .l a{color:#FFC20E}
.solx-strips .r{background:#f4f5f2;padding:1.5rem 1.6rem 1.5rem 5rem;display:flex;flex-direction:column;justify-content:center}
.solx-strips .kk{display:block;margin-bottom:.4rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#0b3f86}
.solx-strips .l .kk{color:#FFC20E}
body.v3 .solx-strips h3{font-size:1.25rem;margin:0 0 .4rem;color:inherit}
.solx-strips p{margin:0 0 .4rem;line-height:1.55}
.solx-strips .r p{font-weight:600;font-size:1.05rem;color:#131f23}
body.solx-anim .solx-top .rv:not(.in),body.solx-anim .solx-strips .rv:not(.in){opacity:0;transform:translateY(20px)}
.solx-top .rv,.solx-strips .rv{transition:opacity .6s,transform .6s,box-shadow .25s}
@media (max-width:860px){
 .solx-band{padding:3rem 0 6rem}.solx-cards{grid-template-columns:1fr;margin-top:-4rem;gap:2.6rem}
 .solx-oc:nth-child(even){margin-top:0}
 .solx-strips .sp{grid-template-columns:1fr}
 .solx-strips .l,.solx-strips .sp:nth-child(even) .l{order:0;clip-path:none;margin:0;padding:1.4rem}
 .solx-strips .l:after{display:none}
 .solx-strips .r,.solx-strips .sp:nth-child(even) .r{padding:1.2rem 1.4rem;border-top:4px solid #FFC20E}
}
@media (prefers-reduced-motion:reduce){.solx-top *,.solx-strips *{transition:none!important}}
/* home gap: line section */
body.home.v3 #line{padding-top:8px!important}
body.home.v3 #line > .wrap{margin-top:0!important;padding-top:0!important}
@media(max-width:760px){body.home.v3 #line{padding-top:0!important;padding-bottom:0!important}body.home.v3 #line > .wrap > :last-child{margin-bottom:0!important;padding-bottom:0!important}}
/* solx: station line on top cards */
.solx-oc p.does{margin-top:.8rem;padding-top:.7rem;border-top:1px dashed #d8dde2;font-weight:600;color:#0E0E0E}
.solx-oc p.does .kk{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#0b3f86;font-weight:800;margin-bottom:.2rem}
.solx-strips + .solx-strips{padding-top:0}
.solx-strips .r p a,.solx-strips .l h3 a{color:inherit}
/* solutions closing area */
.sol-close{padding:68px 0 40px!important}
.sol-close .sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.sol-close h2{margin:0 0 1.2rem}
.sol-close .sc-list{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.2rem;margin:0;padding:0}
.sol-close .spec-faq details{margin:0 0 .6rem}
.sc-stations,.sc-ind{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:2rem}
.sc-lab{font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-right:.5rem}
.sc-chip{display:inline-block;padding:.45rem .9rem;border:1px solid #c9d0d6;border-radius:999px;background:#fff;color:#0E0E0E;text-decoration:none;font-weight:600;font-size:.9rem}
.sc-chip:hover{border-color:#FFC20E;background:#FFF6D6}
.sol-cta{background:#0E0E0E;color:#fff;padding:56px 0!important}
.sol-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.sol-cta h2{color:#fff;margin:0 0 1rem}
.sol-cta .sc-ind{margin-top:0;max-width:560px}
.sol-cta .sc-chip{background:transparent;color:#fff;border-color:#555}
.sol-cta .sc-chip:hover{border-color:#FFC20E;background:transparent;color:#FFC20E}
.hero-after{padding:24px 0!important}.hero-after .ir-chips,.hero-after .pp-btns{margin:0}
@media(max-width:760px){.sol-close{padding:44px 0 32px!important}.sol-close .sc-grid{grid-template-columns:1fr;gap:2rem}.sol-close .sc-list{grid-template-columns:1fr}.sol-cta{padding:40px 0!important}}
/* home problems: vertical before/after */
.vp-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:1.6rem}
.vp{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:4px;overflow:hidden;box-shadow:0 10px 26px rgba(14,14,14,.10);transition:transform .25s}
.vp:hover{transform:translateY(-4px)}
.vp .t,.vp .b{padding:1.2rem 1.1rem;position:relative}
.vp .t{background:#0E0E0E;color:#fff;flex:1 1 55%;clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 26px));padding-bottom:2.4rem}
.vp .t::after{content:"";position:absolute;left:0;right:0;bottom:0;height:26px;background:linear-gradient(to top right,#FFC20E 0 50%,transparent 52%);opacity:.0}
.vp .b{background:#f3f5f7;color:#0E0E0E;flex:1 1 45%;margin-top:-26px;padding-top:2.4rem;border-top:0;clip-path:polygon(0 calc(26px - 0px),100% 0,100% 100%,0 100%)}
.vp .b::before{content:"";position:absolute;left:0;right:0;top:0;height:26px;background:#FFC20E;clip-path:polygon(0 100%,100% 0,100% 6px,0 calc(100% + 6px))}
.vp .ic{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;color:#FFC20E;display:block;margin-bottom:.7rem}
.vp .kk{display:block;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;color:#FFC20E}
.vp .b .kk{color:#0b3f86}
body.v3 .vp h3{font-size:1.05rem;line-height:1.25;margin:0 0 .45rem;color:inherit}
.vp p{margin:0;font-size:.9rem;line-height:1.5}
.vp .b p{font-weight:600}
.vp .v3-more{display:block;margin-top:.7rem;font-size:.82rem;font-weight:700;color:#0b3f86}
/* alternate: light top, dark bottom */
.vp:nth-of-type(even) .t{background:#f3f5f7;color:#0E0E0E}
.vp:nth-of-type(even) .t .ic{color:#0b3f86}.vp:nth-of-type(even) .t .kk{color:#0b3f86}
.vp:nth-of-type(even) .b{background:#0E0E0E;color:#fff}
.vp:nth-of-type(even) .b .kk,.vp:nth-of-type(even) .b .v3-more{color:#FFC20E}
.vp:nth-of-type(even) .t{clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),0 100%)}
.vp:nth-of-type(even) .b{clip-path:polygon(0 0,100% 26px,100% 100%,0 100%)}
.vp:nth-of-type(even) .b::before{clip-path:polygon(0 0,100% 100%,100% calc(100% + 6px),0 6px)}
@media(max-width:1100px){.vp-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:10px;-webkit-overflow-scrolling:touch}.vp{flex:0 0 78%;max-width:300px;scroll-snap-align:start}}
/* homepage lineup: filmstrip */
.lu-2{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.lu-feat{position:relative;border-radius:4px;overflow:hidden;background:#0E0E0E;min-height:460px}.lu-feat img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:.85}
.lu-feat .cap{position:absolute;left:0;right:0;bottom:0;padding:1.4rem;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff}
body.v3 .lu-feat h3{color:#fff;margin:0 0 .3rem}.lu-feat .cap p{margin:0 0 .7rem}.lu-feat .v3-more{color:#FFC20E}
.lu-feat .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.8rem}.lu-feat .chips span{border:1px solid #FFC20E;color:#fff;border-radius:999px;padding:.25rem .7rem;font-size:.82rem}
.lu-thumbs{display:flex;flex-direction:column;gap:12px}.lu-thumbs button{all:unset;cursor:pointer;flex:1;position:relative;border-radius:4px;overflow:hidden;border-left:4px solid transparent}
.lu-thumbs button:hover{border-left-color:#FFC20E}.lu-thumbs img{width:100%;height:100%;object-fit:cover;display:block}.lu-thumbs span{position:absolute;left:0;bottom:0;padding:.4rem .7rem;background:#0E0E0E;color:#fff;font-weight:700;font-size:.85rem}
@media(max-width:860px){.lu-2{grid-template-columns:1fr}.lu-thumbs{flex-direction:row}.lu-feat{min-height:300px}.lu-thumbs button{height:96px}.lu-thumbs span{font-size:.72rem;padding:.25rem .45rem}}
.lu-thumbs button[hidden]{display:none}.lu-feat .cap{text-align:left}.lu-feat .chips span{color:#fff;border-color:#FFC20E}
/* full rows */
@media(min-width:861px){.grid-full3{grid-template-columns:repeat(3,1fr)!important}.deliver{grid-template-columns:repeat(3,1fr)!important}.ind-grid{grid-template-columns:repeat(5,1fr)!important}.choice-grid.choice-stack{grid-template-columns:repeat(3,1fr)!important}}
/* vp: row-level labels, aligned halves via subgrid */
.station-try .ind-grid button:last-child{grid-column:auto}
@media(max-width:860px){.station-try .ind-grid button:last-child{grid-column:1/-1}}
@media(min-width:1101px){
.vp-row{grid-template-columns:110px repeat(5,1fr);grid-template-rows:auto auto;column-gap:14px;row-gap:0}
.vp{display:grid;grid-row:span 2;grid-template-rows:subgrid}
.vp-legend{grid-row:span 2;display:grid;grid-template-rows:subgrid}
.vp-legend span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.3;border-left:3px solid #FFC20E;padding-left:.6rem;align-self:center}
.vp-legend .lt{align-self:start;margin-top:1.3rem}.vp-legend .lb{align-self:start;margin-top:2.5rem;border-color:#0b3f86}
.vp-legend .lm{display:none}}
@media(max-width:1100px){.vp-legend .lt,.vp-legend .lb{display:none}.vp-legend{flex:0 0 100%}.vp-legend .lm{display:block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#555}.vp-row{flex-wrap:nowrap}.vp-legend{position:absolute}.vp-row{position:relative;padding-top:1.6rem}}
.vp-mleg{display:none}
@media(max-width:1100px){.vp-legend{display:none!important}.vp-row{padding-top:0}.vp-mleg{display:block;margin:1.2rem 0 0;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#555;border-left:3px solid #FFC20E;padding-left:.6rem}}
/* Solutions: mirrored homepage hero (image left, text right) */
@media (min-width: 861px) {
  .sol-mirror .v3-slides { right: auto !important; left: 0 !important; clip-path: polygon(0 0, 100% 0, calc(100% - 200px) 100%, 0 100%) !important; }
  .sol-mirror .v3-slides figure { clip-path: polygon(0 0, calc(100% - 14px) 0, calc(100% - 214px) 100%, 0 100%) !important; }
  .sol-mirror .v3-w { align-items: flex-end; }
  .sol-mirror .v3-w > * { width: 46%; }
}
.sol-mirror .crumbs a,.sol-mirror .crumbs li{color:var(--muted)}
/* vp legend rail */
@media(min-width:1101px){
.vp-row{grid-template-columns:56px repeat(5,1fr)}
.vp-legend{position:relative}
.vp-legend span{align-self:stretch!important;margin:0!important;padding:0!important;border:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:4px}
.vp-legend .lt{background:#0E0E0E;color:#fff;margin-bottom:22px!important}
.vp-legend .lb{background:#FFC20E;color:#0E0E0E}
.vp-legend b{writing-mode:vertical-rl;transform:rotate(180deg);font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.vp-legend svg{width:22px;height:22px;flex:0 0 auto}
.vp-legend .lt::after{content:"";position:absolute;left:50%;bottom:-20px;width:2px;height:16px;background:#0E0E0E;transform:translateX(-50%)}
.vp-legend .lt{position:relative}
.vp-legend .lt::before{content:"";position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);border:5px solid transparent;border-top:6px solid #0E0E0E;border-bottom:0}
}
@media(max-width:1100px){
.vp-mleg{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap;border:0!important;padding:0!important}
.vp-mleg span{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:.35rem .8rem .35rem .45rem;font-family:"Barlow Condensed",sans-serif;font-size:14px;letter-spacing:.08em;font-weight:700}
.vp-mleg svg{width:18px;height:18px}
.vp-mleg .pw{background:#0E0E0E;color:#fff}.vp-mleg .pd{background:#FFC20E;color:#0E0E0E}.vp-mleg .pa{padding:0;color:#555}
}
.sol-mirror .crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 12px;font-size:13px}
.sol-mirror .crumbs li+li::before{content:"/";margin-right:6px;color:var(--muted)}
.sol-mirror .crumbs a{color:var(--muted)!important}
body.v3 .sol-mirror h1,.sol-mirror .v3-w{text-align:left!important}
/* industry mirrored hero: chips on white side */
.ind-mirror .ir-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.ind-mirror .ir-chips a{display:inline-flex;align-items:center;gap:6px;padding:.4rem .8rem;border:1px solid #c9d0d6;border-radius:999px;background:#fff;color:#0E0E0E!important;text-decoration:none;font-weight:600;font-size:14px}
.ind-mirror .ir-chips a:hover{border-color:#FFC20E;background:#FFF6D6}
.ind-mirror .ir-chips .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;color:#0b3f86}
@media (min-width:861px){.sol-mirror .v3-w{align-items:flex-start!important;padding-left:calc(50% + 40px)!important}.sol-mirror .v3-w>*{width:auto!important;max-width:100%!important}}
body.v3 #stations .lu-feat .cap,body.v3 #stations .lu-feat .cap *{text-align:left!important}
body.v3 #stations .lu-feat .chips{justify-content:flex-start}
body.v3 #stations .lu-feat .v3-more{color:#FFC20E!important}
body.v3 #stations .lu-feat .cap p{color:#fff!important}
/* vp legend: compact horizontal labels */
@media(min-width:1101px){
.vp-row{grid-template-columns:118px repeat(5,1fr)}
.vp-legend span{background:none!important;color:#0E0E0E!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;align-self:center!important;gap:7px;margin:0!important}
.vp-legend .lt{margin-bottom:0!important}
.vp-legend .lt::before,.vp-legend .lt::after{content:none!important}
.vp-legend b{writing-mode:horizontal-tb;transform:none;font-family:"Barlow Condensed",sans-serif;font-size:14px;letter-spacing:.06em;white-space:normal;line-height:1.15}
.vp-legend svg{width:18px;height:18px}
}
body.v3 #stations .lu-feat .cap{display:block!important;align-items:flex-start!important;margin:0!important;max-width:none!important}
body.v3 #stations .lu-feat .cap>*{margin-left:0!important;margin-right:0!important}
.ind-mirror .ir-chips{gap:6px;margin:0 0 16px}.ind-mirror .ir-chips a{padding:.3rem .65rem;font-size:13px}
body.v3 #stations .lu-feat h3{margin:0 0 .3rem!important;max-width:none!important;text-align:left!important;width:auto!important}
body.v3 #stations .lu-feat h3{display:block!important}body.v3 #stations .lu-feat h3::before,body.v3 #stations .lu-feat h3::after{content:none!important}
/* Solutions heroes: fixed button position */
@media(min-width:861px){
body.v3 .sol-fixed .v3-w{height:560px;box-sizing:border-box;justify-content:flex-start!important;padding-top:150px!important;padding-bottom:88px!important}
body.v3 .sol-fixed .v3-w>p:last-child{margin-top:auto!important;margin-bottom:0!important}
}
/* hub: four job cards */
.solx-cards.solx-four{grid-template-columns:repeat(4,1fr)}
.solx-four .solx-oc:nth-child(even){margin-top:0}
.solx-four .solx-oc .n{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#0b3f86}
.solx-four .solx-oc h3 a{color:inherit;text-decoration:none}
.solx-four .solx-oc .v3-more{display:inline-block;margin-top:.8rem;font-weight:700}
@media(max-width:1000px){.solx-cards.solx-four{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.solx-cards.solx-four{grid-template-columns:1fr}}
@media(max-width:860px){body.v3 .sol-fixed .v3-lead{min-height:120px;box-sizing:border-box}}
body.v3 section.sol-cta{background:#0E0E0E!important;color:#fff!important}body.v3 section.sol-cta h2,body.v3 section.sol-cta .sc-lab{color:#fff!important}.solx-cards.solx-four{padding-bottom:3rem}
body.v3 section.sol-cta a.sc-chip{color:#fff!important;border-color:#555!important}body.v3 section.sol-cta a.sc-chip:hover{color:#FFC20E!important;border-color:#FFC20E!important}
/* Solutions hero: fixed text column so line counts match at every width */
@media(min-width:861px){
body.v3 .sol-fixed{position:relative}
body.v3 .sol-fixed .v3-w{position:absolute!important;top:0;left:calc(50vw + 48px)!important;width:min(520px,calc(50vw - 96px))!important;max-width:none!important;margin:0!important;padding:150px 0 88px 0!important;height:560px}
body.v3 .sol-fixed h1{min-height:2.2em;max-width:none!important;text-wrap:balance}
body.v3 .sol-fixed .v3-lead{font-size:18px!important;line-height:1.55!important;min-height:4.65em;margin:18px 0 0!important;max-width:none!important}
.solx-cards .solx-oc:nth-child(even){margin-top:0!important}
.solx-cards{align-items:stretch}
}
@media(min-width:861px){.solx-cards{grid-auto-rows:1fr}}
/* station comparison: reuse homepage vertical cards, 4 stations */
@media(min-width:1101px){.vp-row.vp-4{grid-template-columns:118px repeat(4,1fr)}}
.sc-chip[href="/stations"]{font-weight:600!important}
/* solutions: industries line + final CTA */
.v3-tl.v3-tl5{grid-template-columns:repeat(5,1fr)}
.sol-ind .v3-dot{display:grid;place-items:center}.sol-ind .v3-dot .ic{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
body.v3 .sol-ind .v3-tl h3 a{color:#fff;text-decoration:none}body.v3 .sol-ind .v3-tl h3 a:hover{color:#FFC20E}
body.v3 .sol-ind{padding:68px 0!important}
body.v3 section.sol-final{padding:64px 0!important;text-align:center;background:#fff}
body.v3 .sol-final h2{margin:0 0 20px}
@media(max-width:860px){.v3-tl.v3-tl5{grid-template-columns:1fr}body.v3 .sol-ind{padding:44px 0!important}body.v3 section.sol-final{padding:44px 0!important}}
/* industry chips: one row below the hero */
body.v3 .hero-after{padding:20px 0!important;border-bottom:1px solid #e3e7ea}
.hero-after .ir-chips{display:flex!important;flex-wrap:nowrap;gap:10px;justify-content:flex-start;overflow-x:auto;margin:0!important}
.hero-after .ir-chips a{display:inline-flex;align-items:center;gap:8px;height:40px;box-sizing:border-box;padding:0 14px;border:1px solid #c9d0d6;border-radius:999px;background:#fff;color:#0E0E0E!important;text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap}
.hero-after .ir-chips a:hover{border-color:#FFC20E;background:#FFF6D6}
.hero-after .ir-chips .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;color:#0b3f86}
/* industry Labels and codes: top-card format, small inline icons only */
.ind-cards .solx-oc.ind-oc{padding-top:1.4rem!important}
body.v3 .ind-cards .ind-oc h3{display:flex;align-items:flex-start;gap:10px;font-size:1.15rem;line-height:1.25}
.ind-cards .ind-oc h3 .ic{flex:0 0 26px;width:26px!important;height:26px!important;fill:none;stroke:#0b3f86;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.ind-cards .solx-cards{padding-bottom:3rem}
/* hero guard v3-89: text and buttons stay in normal flex flow; buttons anchored at the bottom with a 24px minimum gap; text never overlaps */
body.v3 .sol-fixed .v3-w{display:flex!important;flex-direction:column!important}
body.v3 .sol-fixed .v3-w>h1,body.v3 .sol-fixed .v3-w>.v3-lead{flex:0 0 auto;position:static!important}
body.v3 .sol-fixed h1{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
body.v3 .sol-fixed .v3-w>p:last-child{flex:0 0 auto;position:static!important;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
body.v3 .sol-fixed .v3-w>p:last-child .btn{margin:0!important}
@media(min-width:861px){body.v3 .sol-fixed .v3-w>p:last-child{padding-top:24px}}
@media(max-width:860px){body.v3 .sol-fixed .v3-w>p:last-child{margin-top:24px!important}}
/* v3-90: equal Problems card height across Solutions tabs */
@media(min-width:861px){body.v3 .solx-top:not(.ind-cards):not(.pp-top) .solx-cards:not(.solx-four) .solx-oc{min-height:365px;box-sizing:border-box}}
/* v3-91: FAQ removed; What you get spans full width */
body.v3 .sol-close .sc-grid.sc-full{grid-template-columns:1fr}
@media(min-width:761px){body.v3 .sol-close .sc-full .sc-list{grid-template-columns:repeat(3,1fr)}}
/* v3-92: Solutions handover kit (option C) */
body.v3 .ho h2,body.v3 .ho .ho-g h3,body.v3 .ho .ho-stamp b{font-family:"Barlow Condensed",sans-serif!important;text-transform:uppercase}
.ho ul{list-style:none;margin:0;padding:0}.ho-ic{width:28px;height:28px;flex:0 0 28px}
.ho-tick{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#FFC20E;color:#0E0E0E;font-weight:900;font-size:13px;flex:0 0 22px}
.ho-cwrap{background:#f4f5f6;border-radius:6px;padding:28px;margin-top:20px;display:grid;grid-template-columns:1fr 150px;gap:24px;align-items:center}
.ho-c{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;position:relative}
.ho-c:before{content:"";position:absolute;left:4%;right:-24px;top:50%;height:3px;background:#FFC20E;z-index:0}
.ho-c li{position:relative;z-index:1;background:#fff;border:1px solid #d8dde2;border-radius:4px;padding:16px 12px;text-align:center;font-weight:600;font-size:14px;line-height:1.3;color:#131f23;display:flex;flex-direction:column;align-items:center;gap:10px;min-height:150px;justify-content:center}
.ho-c .ho-ic{color:#0b3f86;width:32px;height:32px}
.ho-stamp{position:relative;z-index:1;width:150px;height:150px;border-radius:50%;background:#0E0E0E;color:#fff;border:5px solid #FFC20E;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(-8deg);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.ho-stamp .ho-tick{width:30px;height:30px;font-size:17px;margin-bottom:6px}.ho-stamp b{font-size:20px;line-height:1}
@media(max-width:1100px){.ho-c{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.ho-cwrap{grid-template-columns:1fr;justify-items:center}.ho-c{grid-template-columns:1fr 1fr;width:100%}.ho-c:before{display:none}}
/* v3-93: compact footer */
body.v3 .foot.foot-c{padding:28px 0 0!important}
body.v3 .foot-c .foot-inner{display:grid!important;grid-template-columns:1.6fr 1fr 1fr 1fr!important;gap:12px 32px!important;align-items:start;padding-bottom:20px}
body.v3 .foot-c .foot-inner>div{margin:0!important;padding:0!important}
body.v3 .foot-c .foot-logo{display:block;margin:0 0 8px!important;height:24px;width:auto}
body.v3 .foot-c strong{display:block;margin:0 0 4px;font-size:14px}
body.v3 .foot-c address,body.v3 .foot-c .foot-brand p{margin:0 0 4px!important;font-style:normal;font-size:14px;line-height:1.45}
body.v3 .foot-c .foot-label{margin:0 0 6px!important;font-size:12px}
body.v3 .foot-c nav{display:flex;flex-direction:column;gap:4px}
body.v3 .foot-c nav a{font-size:14px;line-height:1.4;padding:0!important}
body.v3 .foot-c .foot-bar{border-top:1px solid rgba(255,255,255,.12);max-width:var(--max,1200px);margin:0 auto;padding:12px 24px 14px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 20px;font-size:13px;color:#9CA3AF;box-sizing:border-box}
body.v3 .foot-c .foot-bar nav{flex-direction:row;flex-wrap:wrap;gap:4px 18px}
body.v3 .foot-c .foot-bar nav a{font-size:13px;color:#C7CCD2}
@media(max-width:760px){body.v3 .foot.foot-c{padding-top:24px!important}body.v3 .foot-c .foot-inner{grid-template-columns:1fr 1fr 1fr!important;gap:18px 16px!important}body.v3 .foot-c .foot-brand{grid-column:1/-1}body.v3 .foot-c .foot-bar{justify-content:flex-start}}

/* v3-94: footer top stripe */
body.v3 footer.foot.foot-c{border-top:6px solid #FFC20E}

/* v3-95: hub card labels clear the icon tile */
.solx-four .solx-oc .n{max-width:calc(100% - 84px - 3.4rem);text-align:right;line-height:1.25}
.solx-four .solx-oc:nth-child(even) .n{text-align:left}

/* v3-96: industry strip numerals render fully (were bleeding below the clipped .art box) */
body.v3 .irb .art .big{bottom:1rem;line-height:1;padding-bottom:0}
@media(max-width:860px){body.v3 .irb .art .big{bottom:.75rem}}

@media (min-width:769px){.deliver.deliver-2{grid-template-columns:repeat(2,1fr)!important}}

/* Labels that used to be condensed: same Roboto as the headlines. */
body.v3 .ho h2,
body.v3 .ho .ho-g h3,
body.v3 .ho .ho-stamp b,
body.v3 .vp-legend b,
body.v3 .vp-mleg span {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif !important;
  text-transform: none !important;
  letter-spacing: -0.02em !important;
}
/* Top bar type. !important because jms-nav.css loads after this file. */
body.v3 .mast a,
body.v3 .mast .btn,
body.v3 .nav-drop-panel a,
body.v3 .mega-lab,
body.v3 .mega-soon,
body.v3 .mega-soon em {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.v3 .nav > a:not(.nav-cta),
body.v3 .nav-drop > a,
body.v3 .nav-drop-panel a,
body.v3 .mega-col a,
body.v3 .mega-start a,
body.v3 .mega-soon {
  font-size: 14px !important;
  font-weight: 500 !important;
}
body.v3 .mega-lab {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}
body.v3 .mast-actions .btn,
body.v3 .nav-cta {
  font-size: 14px !important;
  font-weight: 600 !important;
}
