/* VEXitEY site styles - brand token pass (Oct 29, 2026). Pending Content (visual) Creator alignment review. */
:root {
  --green: #39B54A;
  --green-deep: #2E9A3E;
  --grey: #6D6E71;
  --sky: #25AAE1;
  --green-text: #237A31; /* accessible green for text and button fills on light backgrounds (5.4:1 on white) */
  --sky-text: #126E99; /* accessible sky for text on light backgrounds (5.6:1 on white) */
  --ink: #1E2226;
  --muted: #5F6266;
  --faint: #8E9196;
  --line: #D9DCE0;
  --hair: #ECEEF0;
  --band: #F3F4F5;
  --page: #F5F6F8;
  --navy: #121B24;
  --navy-2: #16314F;
  --hero-text: #C9D2DC;
  --foot: #1B1E22;
  --tint-green: #EAF7EC; --tint-sky: #E8F6FC;
  --amber: #B26A00; --tint-amber: #FFF4E0;
  --danger: #B3261E; --tint-danger: #FDECEA;
  /* legacy aliases used by existing markup */
  --gray: var(--band); --gray-2: var(--page); --paper: #fff; --blue: var(--sky); --blue-deep: #1B8DBD; --dark: var(--navy);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Source Sans 3", "Segoe UI", sans-serif; color: var(--grey); background: #fff; line-height: 1.6; font-size: 17px; }
h1, h2, .stat { font-family: "EB Garamond", Georgia, serif; color: var(--ink); font-weight: 500; }
h3 { color: var(--ink); }
a { color: inherit; text-decoration: none; }
section p a { color: var(--sky-text); font-weight: 600; }
img { display: block; max-width: 100%; }
.wrap { width: min(1200px, calc(100% - 64px)); margin: 0 auto; }

/* Header: logo left, white nav bar, caps links, green active underline, phone at right end */
header.site { background: #fff; position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); }
.util { height: 72px; display: flex; align-items: center; justify-content: space-between; }
.logo img { height: 40px; width: auto; }
.util-right { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 600; color: var(--muted); }
.util-right a:hover { color: var(--sky-text); }
.menubar { background: #fff; border-top: 1px solid var(--hair); }
.menu { min-height: 48px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.menu a { color: var(--ink); padding: 13px 0 11px; border-bottom: 3px solid transparent; }
.menu a:hover { color: var(--green-text); }
.menu a.on { color: var(--ink); border-bottom-color: var(--green); }
.menu .push { margin-left: auto; }
.menu .nav-phone { color: var(--green-text); letter-spacing: .04em; }

/* Hero: dark navy */
.hero { position: relative; min-height: 560px; color: #fff; display: flex; align-items: center; background: var(--navy); overflow: hidden; }
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,27,36,.9) 0%, rgba(22,49,79,.62) 50%, rgba(18,27,36,.2) 100%); }
.hero-copy { position: relative; z-index: 1; padding: 72px 0; max-width: 660px; }
.hero h1 { color: #fff; font-size: clamp(44px, 4.8vw, 64px); line-height: 1.06; letter-spacing: -0.01em; max-width: 15ch; }
.hero p { margin-top: 18px; font-size: 18px; max-width: 38rem; color: var(--hero-text); }
.hero .actions { margin-top: 28px; display: flex; gap: 12px; flex-wrap: wrap; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; font-weight: 700; font-size: 15px; border: 1px solid transparent; border-radius: 0; cursor: pointer; background: var(--green-text); color: #fff; font-family: inherit; }
.btn:hover { background: #1C6328; }
.btn.light { background: var(--green-text); color: #fff; }
.btn.light:hover { background: #1C6328; }
.btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.btn.ghost:hover { background: rgba(255,255,255,.08); }
.btn.outline { background: transparent; color: var(--ink); border-color: var(--ink); }

.go { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; color: var(--sky-text); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.go:hover { color: var(--green-text); }

section { padding: 72px 0; }
.band { background: var(--band); }
.band-2 { background: var(--page); }
h2 { font-size: clamp(32px, 3.2vw, 44px); letter-spacing: -0.01em; line-height: 1.12; }
h2::after, .pagehead h1::after { content: ""; display: block; width: 48px; height: 2px; margin-top: 14px; background: linear-gradient(90deg, var(--green), var(--sky)); }
.hero h1::after, .nav-free::after { display: none; }
.lede { margin-top: 14px; font-size: 18px; color: var(--grey); max-width: 46rem; }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); }
.dark .eyebrow, .hero .eyebrow { color: var(--sky); }

.points { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; margin-top: 40px; }
.points h3 { font-size: 18px; font-weight: 700; margin: 14px 0 8px; }
.points p { font-size: 16px; }
.icon { width: 36px; height: 36px; color: var(--green); }
.points .icon { width: 56px; height: 56px; display: block; }

.works { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 32px; margin-top: 36px; }
.work img { width: 100%; height: 300px; object-fit: cover; background: var(--line); }
.work h3 { font-size: 22px; font-weight: 700; margin-top: 14px; }
.work p { margin-top: 6px; font-size: 16px; }

.industries { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.ind-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
.ind-list a, .ind-list div { min-width: 0; padding: 16px 0; border-top: 1px solid var(--line); }
.ind-list strong { display: block; font-size: 18px; font-weight: 700; color: var(--ink); }
.ind-list span { display: block; margin-top: 2px; letter-spacing: 0; text-transform: none; }
.ind-list a:hover strong { color: var(--green-text); }

.catalog { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; margin-top: 8px; }
.catalog article { padding: 22px 0 18px; border-top: 1px solid var(--line); }
.catalog h3 { font-size: 20px; font-weight: 700; }
.catalog h3 a:hover { color: var(--green-text); }
.catalog p { margin-top: 6px; }
.catalog ul { margin: 10px 0 0 18px; }
.catalog li { margin: 4px 0; }
.stack { margin-top: 56px; }
.stack h2 { margin-bottom: 8px; }

.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; }
.split.reverse { grid-template-columns: .95fr 1.05fr; }
.frame img { width: 100%; height: 360px; object-fit: cover; background: var(--line); }
.split h2 { margin-top: 8px; }
.rules { list-style: none; margin-top: 8px; }
.rules li { padding: 14px 0; border-top: 1px solid var(--line); }
.rules strong { display: block; font-size: 17px; color: var(--ink); }
.rules span { display: block; margin-top: 2px; }

.cols3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 28px; }
.cols3 article { border-top: 2px solid var(--green); padding-top: 16px; }
.cols3 h3 { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.cols3 ul { margin: 8px 0 0 18px; }
.cols3 li { margin: 4px 0; }

.include { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: 12px; }
.include article { padding: 18px 0; border-top: 1px solid var(--line); }
.include h3 { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
.include .icon { display: block; margin-bottom: 10px; }

.names { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 18px; }
.names span { font-weight: 700; color: var(--ink); }

.pagehead { background: var(--band); padding: 56px 0 48px; }
.pagehead h1 { font-size: clamp(40px, 4.2vw, 58px); letter-spacing: -0.01em; line-height: 1.06; max-width: 16ch; margin-top: 8px; }
.pagehead .lede { margin-top: 16px; }

.contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; }
form label { display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin: 14px 0 6px; }
input, textarea { width: 100%; border: 1px solid var(--line); background: #fff; color: var(--ink); padding: 12px; font: inherit; border-radius: 0; }
input:focus, textarea:focus { outline: 2px solid var(--sky); outline-offset: -1px; }
textarea { min-height: 130px; resize: vertical; }
.note { color: var(--faint); font-size: 14px; margin-top: 10px; }
.addr h2 { margin: 8px 0 12px; }
.addr p { margin-top: 8px; }
.addr a { color: var(--sky-text); font-weight: 600; }

/* Footer: dark */
footer { background: var(--foot); color: #B8BDC3; padding: 44px 0 28px; font-size: 15px; }
.foot { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 32px; align-items: start; }
.foot-links ul { list-style: none; columns: 2; column-gap: 24px; }
.foot-links li { break-inside: avoid; padding: 2px 0; }
.foot-contact { text-align: center; }
.foot-brand { text-align: right; }
.foot-brand .foot-logo { display: block; margin-left: auto; }
footer a { color: #fff; }
footer strong { color: #fff; }
footer a:hover { color: var(--green); }
.foot-logo { height: 32px; width: auto; margin-bottom: 12px; }
.legal { margin-top: 22px; padding-top: 14px; border-top: 1px solid #2C3036; font-size: 13px; color: var(--faint); }

/* ---------- VEXview product page ---------- */
.draft-note { background: var(--tint-amber); color: var(--amber); font-size: 13px; font-weight: 600; padding: 8px 0; border-bottom: 1px solid #F1DDB8; }
.vv-hero { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: #fff; position: relative; overflow: hidden; padding: 88px 0; }
.vv-hero::before { content: ""; position: absolute; right: -10%; top: -30%; width: 60%; height: 140%; background: radial-gradient(closest-side, rgba(37,170,225,.14), transparent); pointer-events: none; }
.vv-hero .wrap { position: relative; display: grid; grid-template-columns: 1.3fr .7fr; gap: 48px; align-items: center; }
.vv-lockup { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
.vv-lockup img { width: 56px; height: 56px; }
.vv-word { font-family: "Source Sans 3", sans-serif; font-size: 30px; color: #fff; letter-spacing: .01em; }
.vv-word b { font-weight: 700; } .vv-word span { font-weight: 400; }
.vv-word.on-light { color: var(--navy); }
.vv-hero h1 { color: #fff; font-size: clamp(42px, 4.6vw, 62px); line-height: 1.06; max-width: 16ch; }
.vv-hero p.sub { color: var(--hero-text); font-size: 19px; margin-top: 18px; max-width: 36rem; }
.vv-hero .actions { margin-top: 30px; display: flex; gap: 12px; flex-wrap: wrap; }
.vv-hero .mark img { width: 100%; max-width: 300px; margin-left: auto; box-shadow: 0 20px 60px rgba(0,0,0,.35); }

.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 36px; }
.card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); box-shadow: 0 1px 3px rgba(30,34,38,.05); padding: 24px 22px 26px; }
.card.sky { border-top-color: var(--sky); } .card.amber { border-top-color: var(--amber); } .card.red { border-top-color: var(--danger); }
.card .num { font-family: "EB Garamond", serif; font-size: 34px; color: var(--ink); line-height: 1; }
.card h3 { font-size: 19px; font-weight: 700; margin: 14px 0 8px; }
.card p { font-size: 16px; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 36px; border-top: 1px solid var(--line); }
.steps li { list-style: none; padding: 26px 28px 8px 0; }
.steps li + li { padding-left: 28px; border-left: 1px solid var(--line); }
.steps .stat { font-size: 44px; color: var(--green-text); line-height: 1; }
.steps h3 { font-size: 19px; font-weight: 700; margin: 12px 0 6px; }

.photo-strip img { width: 100%; height: 440px; object-fit: cover; }
.photo-strip .caption { font-size: 14px; color: var(--muted); margin-top: 12px; }

.cta-band { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: var(--hero-text); text-align: left; }
.cta-band h2 { color: #fff; }
.cta-band h2::after { background: var(--green); }
.cta-band p { margin-top: 14px; font-size: 18px; max-width: 40rem; }
.cta-band .actions { margin-top: 26px; display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 980px) {
  .menu .hide-sm, .util-right .hide-sm { display: none; }
  .points, .cols3, .cards { grid-template-columns: 1fr 1fr; }
  .split, .split.reverse, .industries, .contact-grid, .foot, .vv-hero .wrap { grid-template-columns: 1fr; }
  .foot { gap: 24px; }
  .foot-contact, .foot-brand { text-align: left; }
  .foot-brand .foot-logo { margin-left: 0; }
  .foot-contact { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); }
  .foot-brand { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); }
  .vv-hero .mark { display: none; }
  .frame img, .work img { height: 240px; }
  .steps { grid-template-columns: 1fr; }
  .steps li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 680px) {
  .wrap { width: calc(100% - 32px); }
  section { padding: 48px 0; }
  .points, .works, .cols3, .include, .ind-list, .catalog, .cards { grid-template-columns: 1fr; }
  .hero { min-height: 0; }
  .hero-copy { padding: 48px 0; }
  .util { height: auto; min-height: 64px; padding: 12px 0; }
  .util-right { gap: 12px; font-size: 13px; }
  .menu { flex-wrap: wrap; gap: 6px 16px; padding: 12px 0; }
  .menu .push { margin-left: 0; }
  .photo-strip img { height: 260px; }
}

/* ---------- Site-wide brand pass 2 (Oct 29, 2026) ---------- */
/* Page heads become navy bands */
.pagehead { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: var(--hero-text); padding: 80px 0 72px; position: relative; overflow: hidden; }
.pagehead::before { content: ""; position: absolute; right: -10%; top: -40%; width: 55%; height: 180%; background: radial-gradient(closest-side, rgba(37,170,225,.12), transparent); pointer-events: none; }
.pagehead .wrap { position: relative; }
.pagehead h1 { color: #fff; }
.pagehead .lede { color: var(--hero-text); }
.pagehead .eyebrow { color: var(--sky-text); }
.pagehead a { color: #fff; }

/* Cards */
.points article, .cols3 article { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); box-shadow: 0 1px 3px rgba(30,34,38,.05); padding: 24px 22px 26px; }
.points article:nth-child(2), .cols3 article:nth-child(2) { border-top-color: var(--sky); }
.points h3 { margin-top: 12px; }
.work { display: block; background: #fff; border: 1px solid var(--line); padding-bottom: 22px; }
.work h3, .work p, .work .go { margin-left: 22px; margin-right: 22px; }
.work:hover { border-color: var(--green); }
.band .cols3 article, .band-2 .cols3 article { background: #fff; }

/* Contact form */
.contact-grid form { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); padding: 28px 28px 24px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#form-status:not([hidden]) { background: var(--tint-green); color: var(--ink); padding: 10px 12px; border-left: 3px solid var(--green); }

/* ---------- Nav: Industries > Franchises > VEXview / VEXcare (Oct 29, 2026) ---------- */
.menu-toggle { display: none; background: #fff; border: 1px solid var(--line); border-radius: 0; color: var(--ink); font: 700 12px/1 "Source Sans 3", sans-serif; letter-spacing: .1em; text-transform: uppercase; padding: 10px 14px; cursor: pointer; }
.dd { position: relative; display: flex; align-items: center; }
.dd-btn { background: none; border: 0; color: var(--ink); cursor: pointer; padding: 6px 2px 4px 4px; font-size: 11px; line-height: 1; }
.dd-btn:hover { color: var(--green-text); }
.dd-menu { display: none; position: absolute; top: 100%; left: -16px; min-width: 240px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); box-shadow: 0 8px 24px rgba(30,34,38,.08); padding: 10px 0; z-index: 30; text-transform: none; letter-spacing: 0; }
.dd:hover > .dd-menu, .dd:focus-within > .dd-menu, .dd.open > .dd-menu { display: block; }
.dd-menu a { display: block; padding: 8px 18px; border: 0; color: var(--ink); font-size: 15px; font-weight: 600; }
.dd-menu a:hover { color: var(--green-text); background: var(--band); }
.dd-menu a.on { color: var(--green-text); }
.dd-group { padding: 6px 18px 2px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); }
.dd-group.on { color: var(--green-text); }
.dd-menu .sub a { padding-left: 32px; position: relative; }
.dd-menu .sub a::before { content: ""; position: absolute; left: 18px; top: 50%; width: 8px; height: 1px; background: var(--sky); }
.menu .dd > a.on { border-bottom-color: var(--green); }

@media (max-width: 980px) {
  html.js .menu-toggle { display: inline-block; }
  .util-right { gap: 14px; }
  .menubar { border-top: 0; }
  .menu { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 4px 0 12px; }
  html.js .menu { display: none; }
  html.js .menu.open { display: flex; }
  html:not(.js) .dd-menu { display: block; }
  .menu > a, .menu .dd { border-top: 1px solid var(--hair); }
  .menu > a { padding: 12px 0; border-bottom: 0; }
  .menu > a.on, .menu .dd > a.on { border-bottom: 0; box-shadow: inset 3px 0 0 var(--green); padding-left: 10px; }
  .menu .push { margin-left: 0; }
  .dd { flex-wrap: wrap; }
  .dd > a { flex: 1; padding: 12px 0; }
  .dd-btn { padding: 12px 8px; font-size: 13px; }
  .dd-menu { position: static; display: none; width: 100%; min-width: 0; box-shadow: none; border: 0; border-left: 3px solid var(--green); margin: 0 0 10px; padding: 4px 0; }
  .dd:hover > .dd-menu, .dd:focus-within > .dd-menu { display: none; }
  .dd.open > .dd-menu { display: block; }
}

/* ---- Client logo marquee ---- */
.logo-marquee{overflow:hidden;position:relative;margin-top:18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.lm-track{display:flex;align-items:center;gap:56px;width:max-content;margin:0;padding:10px 0;list-style:none;animation:lm-scroll 45s linear infinite}
.logo-marquee:hover .lm-track{animation-play-state:paused}
.lm-track li{flex:0 0 auto;display:flex;align-items:center;height:48px}
.lm-track img{height:44px;width:auto;max-width:170px;object-fit:contain;filter:grayscale(1);opacity:.6;transition:filter .2s,opacity .2s}
.lm-track li:hover img{filter:none;opacity:1}
.lm-track li.txt{font-family:"Source Sans 3",sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:#6D6E71;white-space:nowrap}
@keyframes lm-scroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 28px))}}
@media (prefers-reduced-motion:reduce){.lm-track{animation:none;flex-wrap:wrap;width:auto}.lm-track li[aria-hidden]{display:none}}

/* ---- About timeline ---- */
.timeline{list-style:none;margin:28px 0 0;padding:0;border-left:3px solid #39B54A}
.timeline li{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:0 0 30px 28px;position:relative}
.timeline li::before{content:"";position:absolute;left:-9px;top:6px;width:15px;height:15px;background:#25AAE1}
.tl-year{font-family:"EB Garamond",serif;font-size:1.6rem;font-weight:600;color:#16314F;line-height:1.1}
.timeline h3{margin:0 0 6px}.timeline p{margin:0;color:#6D6E71}
@media (max-width:700px){.timeline li{grid-template-columns:1fr;gap:6px}}
.timeline li>div p+p{margin-top:10px}
.timeline li>div{max-width:760px}

/* ---- Wide industries dropdown ---- */
.dd-col .sub a.on{color:#39B54A}
@media (min-width:981px){
  .dd-menu.dd-wide{min-width:480px;gap:0 8px;grid-template-columns:1fr 1fr}
  .dd:hover > .dd-menu.dd-wide,.dd:focus-within > .dd-menu.dd-wide,.dd.open > .dd-menu.dd-wide{display:grid}
}

/* ---- Header phone (top right) ---- */
.util-right .util-phone{color:var(--green-text);font-weight:600;letter-spacing:.04em;white-space:nowrap}

/* ===== Accessibility (WCAG 2.2 AA) additions, 2026-10-29 ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
main:focus{outline:none}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.hero :focus-visible,.dark :focus-visible,.cta-band :focus-visible,footer :focus-visible{outline-color:#fff}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--sky-text);outline-offset:-1px}
.dd-btn{min-width:24px;min-height:24px}
.dd.esc:not(.open) > .dd-menu{display:none!important}
.req{font-weight:400;color:var(--muted);font-size:.9em}
.note{color:var(--muted)}
.draft-note{color:#8A5200}
.logo-marquee:focus-within .lm-track{animation-play-state:paused}
img{max-width:100%;height:auto}
.lm-track img.lm-padded{height:72px;max-width:220px;margin:-12px 0;mix-blend-mode:multiply} /* logo files include built-in white margins; shown larger so the mark matches neighbours, not cropped */
/* Orangetheory file has a light checkerboard baked into its background; a slight brightness lift hides it on white */
.lm-track img.lm-otf{filter:grayscale(1) brightness(1.08)}
.lm-track li:hover img.lm-otf{filter:brightness(1.08)}
/* PVOLVE file is a small wordmark on a large transparent canvas; shown larger and clipped by its list item (file not cropped) */
.lm-track li.lm-clip{overflow:hidden;width:150px;justify-content:center}
.lm-track img.lm-pvolve{height:120px;max-width:none}
.lm-track img.lm-big{height:100px;max-width:200px;margin:-26px 0}
.lm-track img.lm-rosatis{height:140px;max-width:none;margin:-46px 0}
.pagehead .hero-mark { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); width: 168px; height: 168px; box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 12px 32px rgba(0,0,0,.35); }
@media (max-width: 1000px) { .pagehead .hero-mark { width: 120px; height: 120px; } .pagehead:has(.hero-mark) .lede, .pagehead:has(.hero-mark) h1 { max-width: calc(100% - 150px); } }
@media (max-width: 700px) { .pagehead .hero-mark { display: none; } .pagehead:has(.hero-mark) .lede, .pagehead:has(.hero-mark) h1 { max-width: none; } }
/* VEXview hero: compact, closer to service pageheads */
.vv-hero { padding: 56px 0 52px; }
.vv-hero .wrap { gap: 40px; }
.vv-lockup { margin-bottom: 18px; }
.vv-lockup img { width: 48px; height: 48px; }
.vv-word { font-size: 26px; }
.vv-hero h1 { font-size: clamp(38px, 4vw, 54px); max-width: 20ch; }
.vv-hero p.sub { font-size: 18px; margin-top: 14px; }
.vv-hero .actions { margin-top: 24px; }
.vv-hero .mark img { max-width: 200px; }
.catalog .icon { display: block; margin-bottom: 10px; }
.ind-list .icon { display: block; margin-bottom: 8px; }

/* Franchise page */
.crumbs { font-size: 14px; margin-bottom: 14px; opacity: .85; }
.crumbs a { color: inherit; text-decoration: underline; }
.fr-split { align-items: center; }
.fr-map { margin: 0; }
.fr-map img { display: block; width: 100%; height: auto; border: 1px solid var(--line); }
.fr-no { font-family: "EB Garamond", serif; font-size: 26px; line-height: 1.3; margin-top: 18px; color: var(--green-text); }
.fr-sub { margin-top: 40px; font-size: 22px; }
.cols4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 32px; }
.catalog h4 { font-size: 18px; font-weight: 700; }
.fr-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 36px; font-family: "EB Garamond", serif; font-size: 24px; }
.fr-trio strong { display: block; color: var(--green-text); }
.fr-svc article { display: flex; flex-direction: column; }
.fr-ill { width: 88px; height: 88px; margin-bottom: 12px; }
.checks { list-style: none; margin: 4px 0 16px; padding: 0; }
.checks li { padding: 5px 0 5px 22px; position: relative; border-bottom: 1px solid var(--line); }
.checks li::before { content: ""; position: absolute; left: 2px; top: 13px; width: 8px; height: 8px; background: var(--green); }
.fr-svc .go { margin-top: auto; }
@media (max-width: 900px) { .cols4 { grid-template-columns: 1fr 1fr; } .fr-trio { grid-template-columns: 1fr; gap: 10px; } }
@media (max-width: 560px) { .cols4 { grid-template-columns: 1fr; } }
.faqs { margin-top: 18px; max-width: 820px; }
.faq { border-top: 1px solid var(--line); padding: 16px 0; }
.faq summary { cursor: pointer; font-weight: 700; font-size: 18px; color: var(--ink); }
.faq p { margin-top: 8px; }
.cta-band p a { color: inherit; text-decoration: underline; }

/* Accordion */
.acc { margin-top: 18px; border-bottom: 1px solid var(--line); }
.acc-item { border-top: 1px solid var(--line); }
.acc-h { margin: 0; font-size: inherit; }
.acc-btn { all: unset; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; padding: 16px 0; cursor: pointer; font-family: "Source Sans 3", sans-serif; font-size: 18px; font-weight: 700; color: var(--ink); }
.acc-btn:hover { color: var(--green-text); }
.acc-btn:focus-visible { outline: 3px solid var(--sky); outline-offset: 2px; }
.acc-ic { position: relative; flex: none; width: 14px; height: 14px; }
.acc-ic::before, .acc-ic::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: var(--green); }
.acc-ic::after { transform: rotate(90deg); transition: transform .15s; }
.acc-btn[aria-expanded="true"] .acc-ic::after { transform: rotate(0); }
.acc-btn[aria-expanded="true"] { color: var(--green-text); }
.acc-panel { padding: 0 0 16px; border-left: 3px solid var(--sky); padding-left: 14px; margin-bottom: 14px; }
.acc-panel[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .acc-ic::after { transition: none; } }
/* industries hub */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.28);color:#fff;font-weight:600;font-size:15px;text-decoration:none}
.chip img{background:#fff;padding:2px}
.chip:hover,.chip:focus-visible{border-color:var(--green);background:rgba(57,181,74,.14)}
.ind-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:20px}
.ind-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);color:var(--ink);text-decoration:none;transition:box-shadow .2s}
.ind-card:hover,.ind-card:focus-visible{box-shadow:0 6px 20px rgba(18,27,36,.12);border-top-color:var(--sky)}
.ind-card:focus-visible{outline:3px solid var(--sky-text);outline-offset:2px}
.ind-photo{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;display:block}
.ind-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.ind-body .icon{margin-top:-40px;background:#fff;padding:6px;width:48px;height:48px;border:1px solid var(--line)}
.ind-body h3{font-size:21px;margin-top:10px}
.ind-body p{margin-top:6px;color:var(--muted);flex:1}
.ind-body .go{margin-top:12px;color:var(--green-text);font-weight:700}
.ind-card:hover h3{color:var(--green-text)}
@media (max-width:900px){.ind-cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.ind-cards{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ind-card{transition:none}}
/* Industry News */
.news-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.news-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px}
.news-cards.three{grid-template-columns:repeat(3,1fr)}
.news-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);display:flex;flex-direction:column}
.news-card:nth-child(2){border-top-color:var(--sky)}
.nc-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.nc-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.nc-body h3{font-size:21px;margin:0}.nc-body h3 a{color:var(--ink);text-decoration:none}.nc-body h3 a:hover{text-decoration:underline}
.nc-meta{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grey);margin:0}
.nc-meta img{width:22px;height:22px}
.nc-read{margin-top:auto;font-weight:700;color:var(--green-text)}
.news-feature{margin-top:24px}
.news-feature .news-card{display:grid;grid-template-columns:1.2fr 1fr}
.news-feature .nc-img img{height:100%;aspect-ratio:auto;min-height:280px}
.news-feature h3{font-size:30px;font-family:"EB Garamond",serif}
.news-more{margin-top:20px;color:var(--grey)}
.sample-note{display:inline-block;font-size:13px;color:var(--grey);border-left:3px solid var(--sky);padding:4px 10px;margin:12px 0;background:#fff}
.arch-month{margin-top:24px}
.arch-list{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--line)}
.arch-list li{display:flex;gap:18px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);background:#fff}
.arch-list h3{font-size:19px;margin:4px 0 0}.arch-list .tbd{font-weight:400;font-size:14px;color:var(--grey)}
.chip.on{background:var(--navy);color:#fff}
.pager{display:flex;gap:8px;margin-top:24px}.pager a,.pager span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--line);background:#fff;font-weight:700}
.pager span{background:var(--navy);color:#fff;border-color:var(--navy)}
.article-wrap{display:flex;justify-content:center}
.prose{max-width:46rem}.prose h2{margin-top:32px;font-size:28px}.prose p{font-size:18px;line-height:1.65;margin-top:12px}
.art-fig img{width:100%;height:auto;display:block;margin:8px 0 8px}
.art-meta{margin-top:14px;font-size:15px;color:var(--hero-text,#dfe6ee)}
.eb-icon{vertical-align:-4px;filter:brightness(0) invert(1)}
.art-cta{margin-top:36px;border:1px solid var(--line);border-top:3px solid var(--green);padding:22px;background:#f6f8fa}
.art-cta h2{margin-top:0;font-size:24px}
@media (max-width:900px){.news-cards,.news-cards.three,.news-feature .news-card{grid-template-columns:1fr}}
.chips.light .chip{color:var(--ink);border-color:var(--line);background:#fff}
.chips.light .chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.prose ul,.prose ol{margin:12px 0 0 22px}.prose li{font-size:18px;line-height:1.6;margin:8px 0}
.prose blockquote{margin:20px 0;padding:6px 18px;border-left:3px solid var(--green);font-family:"EB Garamond",serif;font-style:italic}
.prose blockquote p{font-size:21px}
.src-note{font-size:15px!important;color:var(--grey);border-top:1px solid var(--line);padding-top:12px;margin-top:24px!important}
.art-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px!important}.art-tags .chip{color:var(--ink);border-color:var(--line);font-size:13px;padding:4px 10px}
/* About: stats + timeline cards */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stats>div{background:#fff;border:1px solid #DCE3EA;border-top:4px solid #39B54A;padding:22px 20px}
.stats strong{display:block;font-family:"EB Garamond",serif;font-size:2rem;color:#16314F;line-height:1.1}
.stats span{display:block;margin-top:6px;color:#6D6E71}
.timeline li>div{background:#fff;border:1px solid #DCE3EA;padding:18px 22px}
.timeline .tl-year{color:#16314F}
@media (min-width:860px){.timeline li{grid-template-columns:150px 1fr;gap:24px;align-items:start}.timeline .tl-year{padding-top:16px}}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}}
/* Homepage practice cards: Night Frame badge over photo */
.work { position: relative; }
.work img.badge { position: absolute; top: 16px; left: 16px; width: 56px; height: 56px; object-fit: contain; background: none; box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 6px 18px rgba(0,0,0,.35); }
@media (max-width: 760px) { .work img.badge { width: 48px; height: 48px; } }
/* Problem tabs (industry pages). No-JS: tab strip hidden, every panel stacked. */
.ptabs { margin-top: 24px; }
.ptablist { display: none; }
.ptabs.is-tabs .ptablist { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); border-bottom: 2px solid var(--line); overflow: hidden; }
.ptab { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-bottom: 0; margin-right: -1px; font: inherit; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--ink); text-align: left; cursor: pointer; border-radius: 0; position: relative; }
.ptab:last-child { margin-right: 0; }
.ptab img { flex: none; width: 24px; height: 24px; }
.ptab:hover { background: var(--tint-green); }
.ptab[aria-selected="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.ptab[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--green); }
.ptab:focus-visible { outline: 3px solid var(--sky); outline-offset: -3px; z-index: 1; }
.ppanel { display: grid; grid-template-columns: 200px 1fr; background: #fff; border: 1px solid var(--line); margin-top: 16px; }
.ptabs.is-tabs .ppanel { margin-top: 0; border-top: 0; }
.ppanel[hidden] { display: none; }
.ppanel:focus-visible { outline: 3px solid var(--sky); outline-offset: 2px; }
.ppanel-mark { background: linear-gradient(160deg, var(--navy-2), var(--navy)); display: flex; align-items: center; justify-content: center; padding: 28px; border-bottom: 4px solid var(--green); }
.ppanel-mark img { width: 72px; height: 72px; padding: 14px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); box-sizing: content-box; }
.ppanel-body { padding: 28px 32px; }
.ppanel-kicker { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sky-text); }
.ppanel-kicker.how { color: var(--green-text); margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.ppanel h3 { font-size: 22px; margin-top: 4px; }
.ppanel-prob { margin-top: 6px; color: var(--muted); }
.fixes { list-style: none; margin-top: 10px; display: grid; gap: 14px; }
.fixes li { display: flex; gap: 14px; align-items: flex-start; }
.fixes img { flex: none; width: 32px; height: 32px; }
.fixes h4 { font-size: 16px; color: var(--ink); }
.fixes p { margin-top: 2px; color: var(--muted); }
@media (max-width: 760px) {
  .ppanel { grid-template-columns: 1fr; }
  .ppanel-mark { padding: 18px; justify-content: flex-start; }
  .ppanel-mark img { width: 48px; height: 48px; padding: 10px; }
  .ppanel-body { padding: 22px 20px; }
}
@media (max-width: 899px) {
  .ptabs.is-tabs .ptablist { display: flex; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .ptabs.is-tabs .ptablist::-webkit-scrollbar { display: none; }
  .ptab { flex: 0 0 auto; min-width: 168px; max-width: 240px; }
}
.foot-contact p, .foot-brand p { line-height: 1.75; }
/* Buildouts page: icon cards, photo row, step timeline */
.bo-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 28px; }
.bo-cards.three { grid-template-columns: repeat(3, 1fr); }
.bo-cards article { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); padding: 22px 20px 24px; }
.bo-cards .icon { display: block; width: 40px; height: 40px; margin-bottom: 14px; }
.bo-cards h3 { font-size: 18px; font-weight: 700; line-height: 1.3; margin-bottom: 6px; }
.bo-cards h3 a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--green); text-underline-offset: 3px; }
.bo-cards h3 a:hover { color: var(--green-text); }
.bo-cards p { font-size: 16px; color: var(--muted); }
.photo-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
.photo-row figure { margin: 0; background: var(--navy); }
.photo-row img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-row figure.on-navy img { object-fit: contain; background: var(--navy); }
.photo-row figcaption { padding: 12px 16px; color: #fff; font-size: 15px; font-weight: 600; border-top: 3px solid var(--green); }
.bo-steps { list-style: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin-top: 32px; counter-reset: none; position: relative; }
.bo-steps li { position: relative; padding: 0 16px 0 0; }
.bo-steps li::before { content: ""; position: absolute; left: 0; right: 0; top: 27px; height: 2px; background: linear-gradient(90deg, var(--green), var(--sky)); z-index: 0; }
.bo-steps li:last-child::before { right: 50%; }
.bo-steps .icon { position: relative; z-index: 1; display: block; width: 56px; height: 56px; padding: 12px; background: var(--navy); box-sizing: border-box; }
.bo-num { display: block; margin-top: 14px; font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--sky-text); }
.bo-steps h3 { font-size: 20px; font-weight: 700; margin-top: 2px; }
.bo-steps p { margin-top: 6px; font-size: 16px; color: var(--muted); }
@media (max-width: 1100px) {
  .bo-cards { grid-template-columns: repeat(2, 1fr); }
  .bo-steps { grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
}
@media (max-width: 640px) {
  .bo-cards, .bo-cards.three, .photo-row { grid-template-columns: 1fr; }
  .bo-steps { grid-template-columns: 1fr; row-gap: 0; }
  .bo-steps li { display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; padding: 0 0 24px; }
  .bo-steps li::before { left: 27px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; background: linear-gradient(180deg, var(--green), var(--sky)); }
  .bo-steps li:last-child::before { bottom: auto; height: 28px; }
  .bo-steps .icon { grid-row: 1 / span 3; }
  .bo-num { margin-top: 0; }
}
/* ---- Audio & Video page ---- */
.av-hero { padding: 96px 0 88px; }
.av-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 96px; pointer-events: none; opacity: .14; background: repeating-linear-gradient(90deg, rgba(255,255,255,.9) 0 2px, transparent 2px 14px); -webkit-mask: linear-gradient(0deg, #000, transparent); mask: linear-gradient(0deg, #000, transparent); }
.av-hero h1 { max-width: 19ch; }
.av-hero .eyebrow, .av-dark .eyebrow { color: var(--sky); }
.av-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; max-width: 46rem; list-style: none; }
.av-chips li { border: 1px solid rgba(255,255,255,.22); color: #fff; font-size: 14px; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.04); }
.av-hero .actions { margin-top: 28px; }
.av-dark { background: radial-gradient(120% 90% at 85% 0%, #1B3A5C 0%, var(--navy) 60%); color: var(--hero-text); }
.av-dark h2, .av-dark h3 { color: #fff; }
.av-dark .lede { color: var(--hero-text); }
.av-dark a { color: #fff; }
.av-spots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 32px; }
.av-spot { margin: 0; border: 1px solid rgba(255,255,255,.1); background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0)); display: flex; flex-direction: column; }
.av-spot .stage { display: flex; align-items: center; justify-content: center; height: 260px; padding: 28px; background: radial-gradient(70% 70% at 50% 55%, rgba(37,170,225,.16), transparent 70%); }
.av-spot .stage.light { background: radial-gradient(80% 80% at 50% 50%, #FFFFFF 0%, #E9EDF1 100%); }
.av-spot .stage img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 18px 24px rgba(0,0,0,.35)); }
.av-spot .stage.light img { filter: drop-shadow(0 10px 18px rgba(18,27,36,.18)); }
.av-spot figcaption { padding: 18px 22px 22px; border-top: 3px solid var(--green); }
.av-spot .brand { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sky); }
.av-spot h3 { font-size: 20px; margin: 4px 0 6px; }
.av-spot p { font-size: 16px; color: var(--hero-text); }
.av-spot .credit { margin-top: 10px; font-size: 13px; color: #A9B4C0; }
.av-rows { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 32px; }
.av-row { background: #fff; border: 1px solid var(--line); padding: 28px 28px 26px; position: relative; }
.av-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--green), var(--sky)); }
.av-row .bo-num { display: block; font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--sky-text); }
.av-row h3 { font-size: 22px; margin: 6px 0 8px; }
.av-row p { color: var(--muted); }
.av-row .checks { margin-top: 14px; }
.frame.navy { background: radial-gradient(80% 80% at 50% 50%, #1B3A5C, var(--navy)); display: flex; align-items: center; justify-content: center; padding: 28px; min-height: 360px; }
.frame.navy img { height: auto; max-height: 320px; width: auto; max-width: 100%; object-fit: contain; background: none; filter: drop-shadow(0 18px 24px rgba(0,0,0,.4)); }
.av-vv { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-weight: 700; }
.av-vv img { width: 40px; height: 40px; }
.brand-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 32px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.1); list-style: none; }
.brand-grid li { background: var(--navy); padding: 30px 24px 26px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.brand-grid .logo { height: 56px; display: flex; align-items: center; }
.brand-grid .logo img { max-height: 56px; width: auto; max-width: 170px; }
.brand-grid .logo img.rev { filter: brightness(0) invert(1); }
.brand-grid .logo img.wm { max-height: 30px; }
.brand-grid .logo img.sq { max-height: 62px; height: 62px; }
.brand-grid .logo { height: 64px; }
.brand-grid .logo .vv { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 22px; font-weight: 700; }
.brand-grid .logo .vv img { height: 44px; width: 44px; }
.brand-grid strong { color: #fff; font-size: 17px; }
.brand-grid span { font-size: 15px; color: var(--hero-text); }
.av-note { margin-top: 18px; font-size: 13px; color: #A9B4C0; max-width: 60rem; }
@media (max-width: 1000px) { .brand-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .av-spots, .av-rows { grid-template-columns: 1fr; } .av-spot .stage { height: 210px; } .av-hero { padding: 64px 0 64px; } .frame.navy { min-height: 240px; } }
@media (max-width: 480px) { .brand-grid { grid-template-columns: 1fr; } }

/* ---- Structured cabling: Audio & Video cabling ---- */
.sc-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 32px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.1); }
.sc-card { background: rgba(18,27,36,.92); padding: 26px 22px 24px; position: relative; }
.sc-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--green), var(--sky)); opacity: 0; transition: opacity .2s; }
.sc-card:hover::before { opacity: 1; }
.sc-ic { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border: 1px solid rgba(255,255,255,.16); background: rgba(37,170,225,.08); margin-bottom: 16px; }
.sc-card h3 { font-size: 18px; margin-bottom: 6px; }
.sc-card p { font-size: 15px; color: var(--hero-text); }
.sc-link { background: linear-gradient(160deg, #1B3A5C, rgba(18,27,36,.92)); }
.sc-link .go { display: block; margin-top: 12px; color: #fff; }
.sc-figs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
.sc-fig { margin: 0; border: 1px solid rgba(255,255,255,.1); }
.sc-fig .stage { height: 200px; display: flex; align-items: center; justify-content: center; padding: 22px; background: radial-gradient(70% 70% at 50% 55%, rgba(37,170,225,.16), transparent 70%); }
.sc-fig .stage img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: drop-shadow(0 16px 22px rgba(0,0,0,.4)); }
.sc-fig figcaption { padding: 14px 18px 16px; border-top: 3px solid var(--green); color: #fff; font-weight: 700; font-size: 15px; }
.sc-fig figcaption span { display: block; font-weight: 400; font-size: 13px; color: #A9B4C0; margin-top: 4px; }
@media (max-width: 1000px) { .sc-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .sc-figs { grid-template-columns: 1fr; } .sc-fig .stage { height: 170px; } }
@media (max-width: 480px) { .sc-cards { grid-template-columns: 1fr; } }
.sc-fig .stage.light { background: radial-gradient(80% 80% at 50% 50%, #FFFFFF 0%, #E9EDF1 100%); }
.sc-fig .stage.light img { filter: drop-shadow(0 10px 18px rgba(18,27,36,.18)); }

/* ---- Industries nav: Healthcare with nested specialties, two short columns ---- */
.dd-menu .sub-kids { display: block; break-inside: avoid; margin: -2px 0 4px; }
.dd-menu .sub .sub-kids a { padding: 5px 18px 5px 50px; font-size: 14px; font-weight: 500; color: var(--muted); }
.dd-menu .sub .sub-kids a::before { left: 34px; top: 0; height: 50%; width: 9px; background: none; border-left: 1px solid var(--sky); border-bottom: 1px solid var(--sky); }
.dd-menu .sub .sub-kids a:hover, .dd-menu .sub .sub-kids a.on { color: var(--green-text); }
@media (min-width: 981px) {
  .dd-menu .sub:has(a[href="industry-healthcare.html"]) { columns: 2; column-gap: 0; width: 500px; }
  .dd-menu .sub:has(a[href="industry-healthcare.html"]) > a, .dd-menu .sub:has(a[href="industry-healthcare.html"]) > .sub-kids { break-inside: avoid; }
  .dd-menu .sub:has(a[href="industry-healthcare.html"]) a { padding-top: 6px; padding-bottom: 6px; }
  .dd-menu .sub:has(a[href="industry-healthcare.html"]) .sub-kids a { padding-top: 4px; padding-bottom: 4px; }
}
.ind-group { margin-top: 20px; padding: 22px 22px 26px; background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--green); }
.ind-group .ind-cards { margin-top: 14px; }
.ind-group-h { font-size: 20px; margin-top: 28px; }
.ind-group .ind-group-h { margin-top: 0; }
.ind-group-h span { display: block; font-family: inherit; font-size: 15px; font-weight: 400; color: var(--muted); margin-top: 2px; }
.ind-kicker { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sky-text); margin: 0 0 2px; }
@media (max-width: 600px) { .ind-group { padding: 16px; } }
.ind-body .ind-kicker { flex: 0 0 auto; margin-top: 10px; color: var(--sky-text); }
.ind-body .ind-kicker + h3 { margin-top: 0; }

/* ---- Header utility: Client Care above the phone ---- */
.util-stack { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; line-height: 1.2; }
.util-right .util-cc { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); text-decoration: none; padding: 2px 0; }
.util-right .util-cc .util-ic { flex: none; color: var(--sky-text); }
.util-right .util-cc:hover { color: var(--sky-text); text-decoration: underline; }
.util-right .util-cc:focus-visible { outline: 3px solid var(--sky-text); outline-offset: 2px; }
@media (min-width: 981px) { .menu .cc-m { display: none; } }
@media (max-width: 980px) { .util-right .util-cc { display: none; } }
.util-stack { gap: 0; }
.util-right .util-cc, .util-stack .util-phone { min-height: 24px; display: inline-flex; align-items: center; padding: 0; }
@media (max-width: 980px) { .util-right .util-cc { display: none; } }

/* ---- Homepage industries: compact photo + icon grid ---- */
.hi-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.hi-head > div { max-width: 640px; }
.hi-head .go { white-space: nowrap; margin-bottom: 6px; }
.hi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 32px; }
.hi-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 0; overflow: hidden; transition: box-shadow .2s, border-color .2s, transform .2s; }
.hi-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .35s; }
.hi-body { position: relative; padding: 0 16px 16px; flex: 1; }
.hi-ic { display: block; width: 44px; height: 44px; margin-top: -24px; padding: 5px; background: #fff; border: 1px solid var(--line); position: relative; }
.hi-card h3 { font-size: 17px; line-height: 1.25; margin-top: 10px; }
.hi-link { color: var(--ink); text-decoration: none; }
.hi-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.hi-card p { margin-top: 4px; font-size: 14px; line-height: 1.4; color: var(--muted); }
.hi-card:hover { box-shadow: 0 8px 22px rgba(18,27,36,.14); border-top-color: var(--sky); }
.hi-card:hover .hi-photo { transform: scale(1.04); }
.hi-card:hover .hi-link { color: var(--green-text); }
.hi-link:focus-visible { outline: none; }
.hi-card:has(.hi-link:focus-visible) { outline: 3px solid var(--sky-text); outline-offset: 2px; }
.hi-kids { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; position: relative; z-index: 2; }
.hi-kids a { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 10px; font-size: 13px; font-weight: 600; color: var(--sky-text); background: #fff; border: 1px solid var(--line); text-decoration: none; }
.hi-kids a:hover { border-color: var(--sky-text); text-decoration: underline; }
.hi-kids a:focus-visible { outline: 3px solid var(--sky-text); outline-offset: 2px; }
.hi-all { display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 22px 20px; background: var(--navy); color: #fff; border-top: 3px solid var(--green); text-decoration: none; min-height: 200px; transition: background .2s; }
.hi-all-t { font-size: 20px; font-weight: 700; }
.hi-all-s { font-size: 14px; color: var(--hero-text); }
.hi-arrow { font-size: 26px; color: #fff; margin-top: 6px; transition: transform .2s; }
.hi-all:hover { background: #12233a; }
.hi-all:hover .hi-arrow { transform: translateX(6px); }
.hi-all:focus-visible { outline: 3px solid var(--sky-text); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .hi-photo, .hi-arrow, .hi-card { transition: none; } .hi-card:hover .hi-photo { transform: none; } }
@media (max-width: 1000px) { .hi-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .hi-head { flex-direction: column; align-items: flex-start; gap: 12px; } .hi-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } .hi-body { padding: 0 12px 12px; } .hi-card h3 { font-size: 15px; } .hi-card p { font-size: 13px; } .hi-ic { width: 38px; height: 38px; margin-top: -20px; } .hi-all { min-height: 150px; } }

/* ---- About: compact layout + horizontal timeline ---- */
.about-head{padding:48px 0 40px}
.about-head h1{max-width:22ch}
.about-head{background:radial-gradient(ellipse 60% 90% at 85% 40%,rgba(37,170,225,.16),transparent 70%),radial-gradient(ellipse 40% 60% at 70% 100%,rgba(57,181,74,.12),transparent 70%),linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%)}
.about-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--green),var(--sky,#25AAE1))}
.about-hero{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:center}
.about-hero-copy h1{max-width:18ch}
.about-hero-copy .lede{max-width:40rem}
.about-mark{position:relative;width:260px;height:260px;justify-self:end;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(18,27,36,.55)}
.about-mark::before,.about-mark::after{content:"";position:absolute;width:64px;height:64px;border:6px solid #fff}
.about-mark::before{left:22px;top:22px;border-right:0;border-bottom:0}
.about-mark::after{right:22px;bottom:22px;border-left:0;border-top:0}
.about-mark span{font-family:"EB Garamond",serif;font-size:132px;font-weight:600;line-height:.9;background:linear-gradient(180deg,#fff 10%,#25AAE1 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
.about-mark em{font-style:normal;font-size:.5em;vertical-align:.75em;color:var(--green)}
.about-mark small{margin-top:10px;font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.about-stats{list-style:none;margin:36px 0 0;padding:22px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(255,255,255,.16)}
.about-stats li{padding:0 20px;border-left:1px solid rgba(255,255,255,.16)}
.about-stats li:first-child{padding-left:0;border-left:0}
.about-stats strong{display:block;font-family:"EB Garamond",serif;font-size:clamp(30px,3vw,42px);font-weight:600;line-height:1;color:#39B54A}
.about-stats li:nth-child(even) strong{color:#25AAE1}
.about-stats span{display:block;margin-top:8px;font-size:15px;color:var(--hero-text)}
.about-tl,.about-dense{padding:56px 0}
.about-dense p+p{margin-top:12px}
.about-dense .split>div>p:not(.eyebrow){margin-top:14px}
.about-dense .cols3{margin-top:22px}
.tlx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.tlx-nav{display:flex;gap:8px}
.tlx-btn{width:44px;height:44px;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:20px;cursor:pointer;border-radius:0;font-family:inherit}
.tlx-btn:hover{border-color:var(--green-text);color:var(--green-text)}
.tlx-btn:focus-visible,.tlx:focus-visible{outline:3px solid var(--sky-text,#1B6F94);outline-offset:3px}
.tlx{margin-top:24px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:2px;padding-bottom:10px}
.tlx ol{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:250px;gap:14px;position:relative}
.tlx li{scroll-snap-align:start;position:relative;padding-top:28px;display:flex}
.tlx li::before{content:"";position:absolute;left:0;right:-14px;top:8px;height:2px;background:#C9D3DD}
.tlx li:last-child::before{right:0}
.tlx li::after{content:"";position:absolute;left:0;top:2px;width:14px;height:14px;background:#25AAE1}
.tlx li.key::after{background:var(--green)}
.tlx-card{flex:1;background:#fff;border:1px solid var(--line);border-top:3px solid #C9D3DD;padding:14px 16px 16px}
.tlx li.key .tlx-card{border-top-color:var(--green)}
.tlx-year{display:block;font-family:"EB Garamond",serif;font-size:1.35rem;font-weight:600;color:var(--navy-2);line-height:1.1}
.tlx h3{font-size:18px;line-height:1.25;margin:4px 0 0}
.tlx p{margin:6px 0 0;font-size:15px;line-height:1.45;color:var(--grey)}
.tlx-hint{margin-top:6px;font-size:14px;color:var(--grey)}
.about-lead{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.about-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);padding:22px 24px}
.about-card h2{font-size:clamp(24px,2.4vw,30px)}
.about-card p:not(.eyebrow){margin-top:12px}
@media (max-width:760px){
  .about-head{padding:36px 0 32px}
  .about-hero{grid-template-columns:1fr}
  .about-mark{display:none}
  .about-stats{grid-template-columns:1fr 1fr;gap:18px 0;margin-top:26px}
  .about-stats li:nth-child(3){padding-left:0;border-left:0}
  .about-tl,.about-dense{padding:40px 0}
  .tlx-nav,.tlx-hint{display:none}
  .tlx{overflow:visible;margin-top:18px;padding:0}
  .tlx ol{grid-auto-flow:row;grid-auto-columns:auto;gap:8px;border-left:2px solid var(--line);padding-left:16px}
  .tlx li{padding-top:0}
  .tlx li::before{display:none}
  .tlx li::after{left:-23px;top:16px;width:12px;height:12px}
  .tlx li.key .tlx-card{border-top-width:3px}
  .tlx-card{padding:10px 12px;display:grid;grid-template-columns:72px 1fr;column-gap:10px}
  .tlx-year{font-size:1.05rem;grid-row:span 2;padding-top:1px}
  .tlx h3{font-size:16px;margin:0}
  .tlx p{font-size:14px;margin-top:3px;line-height:1.4}
  .tlx ol{gap:6px}
  .about-lead{grid-template-columns:1fr}
}

/* Header: Remote Support in main nav (left), phone at right of nav bar */
.menu .nav-tel { margin-left: auto; color: var(--green-text); letter-spacing: .04em; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.menu .nav-tel:hover { color: var(--navy); text-decoration: underline; }
.menu .nav-tel::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; }
.menu a, .menu .dd > a { white-space: nowrap; }
@media (min-width: 981px) { .util-right .util-phone.m-only { display: none; } }
@media (max-width: 980px) { .menu .nav-tel { display: none; } .util-right .util-phone.m-only { min-height: 44px; display: inline-flex; align-items: center; font-size: 15px; } }
.about-hero-copy .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
/* Header: divider between primary nav and Industry News / Remote Support */
.menu .nav-g2 { position: relative; margin-left: 20px; }
.menu .nav-g2::before { content: ""; position: absolute; left: -20.5px; top: 50%; transform: translateY(-50%); width: 1px; height: 60%; background: rgba(57,181,74,.55); pointer-events: none; }
@media (max-width: 980px) {
  .menu .nav-g2 { margin-left: 0; margin-top: 10px; border-top: 2px solid rgba(57,181,74,.55); }
  .menu .nav-g2::before { display: none; }
}
/* Header: larger nav phone */
.menu .nav-tel { font-size: 16.5px; font-weight: 600; letter-spacing: .03em; gap: 8px; line-height: 1.2; padding: 11px 0 10px; }
.menu .nav-tel::before { width: 17px; height: 17px; }
@media (max-width: 980px) and (min-width: 381px) { .util-right .util-phone.m-only { font-size: 17px; } }
/* Contact form: error state */
#form-status.err:not([hidden]) { background: #FDECEC; color: var(--ink); border-left-color: #B42318; }

/* Contact form: services checkboxes */
fieldset.svc { border: 1px solid var(--line); padding: 12px 16px 16px; margin: 18px 0 4px; min-width: 0; }
fieldset.svc legend { font-size: 14px; font-weight: 700; color: var(--ink); padding: 0 6px; }
.svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin-top: 6px; }
@media (max-width: 700px) { .svc-grid { grid-template-columns: 1fr; } }
form .svc-grid label { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 15px; font-weight: 400; color: var(--ink); line-height: 1.35; cursor: pointer; }
.svc-grid input[type="checkbox"] { -webkit-appearance: none; appearance: none; flex: none; width: 20px; height: 20px; margin: 0; padding: 0; border: 2px solid var(--muted); border-radius: 0; background: #fff; display: grid; place-content: center; cursor: pointer; }
.svc-grid input[type="checkbox"]::before { content: ""; width: 10px; height: 5px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: translateY(-1px) rotate(-45deg); opacity: 0; }
.svc-grid input[type="checkbox"]:checked { background: var(--green-text); border-color: var(--green-text); }
.svc-grid input[type="checkbox"]:checked::before { opacity: 1; }
.svc-grid input[type="checkbox"]:focus { outline: none; }
.svc-grid input[type="checkbox"]:focus-visible { outline: 2px solid var(--sky-text); outline-offset: 2px; }
@media (forced-colors: active) { .svc-grid input[type="checkbox"] { appearance: auto; -webkit-appearance: auto; } }

/* About stats: centered figures and labels */
.about-stats li,.about-stats li:first-child{text-align:center;padding:0 16px}
@media (max-width:760px){.about-stats li:nth-child(odd){border-left:0}.about-stats li:nth-child(n){padding:0 12px}}
