/* Company page: editorial chapters, real portraits and accessible biographies. */
.co { --co-blue: #1866bd; --co-pale: #f2f6fc; --co-border: #dce5f2; --co-header: 76px; --co-jump: 66px; }
.co main { overflow: clip; }
.co [id] { scroll-margin-top: calc(var(--co-header) + var(--co-jump) + 24px); }
.co .co-in { width: var(--wide); margin-inline: auto; }
.co h1, .co h2, .co h3, .co h4 { color: var(--navy); line-height: 1.15; letter-spacing: -.03em; }
.co h2 { font-size: clamp(30px, 2.8vw, 48px); font-weight: 900; }
.co h3 { font-size: 23px; font-weight: 800; }
/* the page's paragraph reset: only inside main (the shared footer keeps its spacing) and with no specificity, so every
   section rule that sets a paragraph margin still wins */
:where(.co main) p { margin: 0; }
.co-kicker { display: flex; align-items: center; gap: 16px; color: var(--co-blue); font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 20px !important; }
.co-kicker::after { content: ''; width: 40px; height: 2px; background: var(--red); }
.co-lead { max-width: 740px; color: #566184; font-size: clamp(17px, 1.2vw, 20px); line-height: 1.7; margin-top: 22px !important; }
.co-section { padding: clamp(64px, 6vw, 104px) 0; }
.co-section.pale { background: var(--co-pale); }
.co-section.dark { background: var(--navy); color: #cbd6f0; }
.co-section.dark h2, .co-section.dark h3 { color: #fff; }
.co-section.dark .co-kicker { color: #92bbfa; }
.co-section.dark .co-lead { color: #bdcbea; }
.co-title { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 40px; }
.co-title > p { max-width: 510px; color: #566184; font-size: 16px; }
.co-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.co-button { display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 14px 22px; min-height: 50px; border-radius: 8px; background: #dc2935; color: #fff; font-size: 14px; font-weight: 800; text-decoration: none; border: 1px solid transparent; transition: background .2s, transform .2s; }
.co-button:hover { background: #ba1823; transform: translateY(-2px); }
.co-button.outline { background: transparent; color: var(--navy); border-color: #9baccc; }
.dark .co-button.outline, .co-hero .co-button.outline, .co-contact .co-button.outline { color: #fff; border-color: #8099c5; }
.co-contact .co-button.outline:hover { background: #ffffff14; }
.co-text-link { display: inline-flex; align-items: center; gap: 16px; color: #1758a1; font-size: 14px; font-weight: 800; }
.dark .co-text-link { color: #b8d7ff; }
.co a:focus-visible, .co button:focus-visible, .co summary:focus-visible { outline: 3px solid #2c8df2; outline-offset: 5px; border-radius: 4px; }
.co-hero { position: relative; isolation: isolate; background: #0d1b43; color: #cbd6ef; }
.co-hero-art { position: absolute; right: 0; top: 0; width: 65%; height: 100%; object-fit: cover; object-position: center; z-index: -2; }
.co-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #0d1b43 0%, #0d1b43 32%, #0d1b43d9 44%, #0d1b4320 68%), linear-gradient(0deg, #0d1b43, transparent 30%); }
.co-hero .co-in { min-height: 650px; display: flex; align-items: center; padding-block: 88px 110px; }
.co-hero-copy { max-width: 860px; width: 57%; }
.co-hero .co-kicker { color: #9ec4fa; }
.co-hero h1 { font-size: clamp(44px, 3.6vw, 64px); color: #fff; font-weight: 900; line-height: 1.06; }
.co-hero h1 span { color: #9cbffe; }
.co-hero .co-lead { color: #c1cee8; max-width: 660px; }
.co-hero-bottom { position: absolute; bottom: 25px; left: 0; width: 100%; }
.co-hero-bottom .co-in { min-height: 0; padding: 0; display: flex; gap: 40px; font-size: 12px; letter-spacing: .06em; }
.co-hero-bottom b { color: #fff; margin-right: 7px; }
.co-jump { position: sticky; top: var(--co-header); z-index: 35; background: #fffffff5; backdrop-filter: blur(16px); border-bottom: 1px solid var(--co-border); box-shadow: 0 5px 18px #13284906; }
.co-jump .co-in { display: flex; align-items: stretch; gap: clamp(16px, 2vw, 36px); overflow-x: auto; scrollbar-width: thin; }
.co-jump a { display: inline-flex; align-items: center; min-height: 66px; flex: none; font-size: 12px; font-weight: 800; color: #596482; border-bottom: 3px solid transparent; white-space: nowrap; }
.co-jump a[aria-current] { color: var(--navy); border-bottom-color: var(--red); }
/* the introduction sits at the top, beside the first chapters (the six-chapter timeline is taller than it) */
.co-story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
.co-year { display: inline-flex; align-items: end; gap: 24px; margin-bottom: 32px; }
.co-year strong { font-size: clamp(80px, 8vw, 138px); line-height: .9; letter-spacing: -.07em; color: var(--navy); }
.co-year span { border-left: 2px solid var(--red); padding-left: 18px; font-size: 13px; color: #64718d; line-height: 1.6; }
.co-timeline { padding: 0; margin: 0; list-style: none; border-left: 1px solid #cbdbed; }
.co-timeline li { padding: 0 0 30px 32px; position: relative; }
.co-timeline li:last-child { padding-bottom: 0; }
.co-timeline li::before { content: ''; position: absolute; left: -5px; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: #2a70c8; box-shadow: 0 0 0 6px #eff5fc; }
.co-timeline small { color: #3769a2; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.co-timeline h3 { margin: 5px 0 8px; font-size: 21px; }
.co-timeline p { color: #5b6786; font-size: 15px; }
/* the founding year is the milestone: a red marker and a tinted row */
.co-timeline li.key::before { background: var(--red); box-shadow: 0 0 0 6px #fde8ea; }
.co-timeline li.key small { color: #c42430; }
/* chapters come in one after another as they scroll into view (JS adds .reveal; without it they are simply there) */
.co-timeline.reveal li { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; transition-delay: calc(var(--n, 0) * 90ms); }
.co-timeline.reveal li::before { transform: scale(0); transition: transform .45s cubic-bezier(.3, 1.6, .5, 1); transition-delay: calc(var(--n, 0) * 90ms + 150ms); }
.co-timeline.reveal li.in { opacity: 1; transform: none; }
.co-timeline.reveal li.in::before { transform: none; }
/* the original text, word for word, one click away */
.co-fullstory { margin-top: 48px; border-top: 1px solid var(--co-border); border-bottom: 1px solid var(--co-border); }
.co-fullstory summary { display: flex; align-items: baseline; gap: 16px; padding: 20px 4px; cursor: pointer; list-style: none; color: #1758a1; font-size: 15px; font-weight: 800; }
.co-fullstory summary::after { content: '+'; margin-left: auto; color: #3576bf; font-size: 26px; font-weight: 400; line-height: .8; }
.co-fullstory[open] summary::after { content: '−'; }
.co-fullstory-text { padding: 4px 4px 32px; column-count: 2; column-gap: 56px; column-rule: 1px solid var(--co-border); }
.co-fullstory-text p { font-size: 15.5px; line-height: 1.8; color: #53607f; }
.co-fullstory-text p + p { margin-top: 16px !important; }
@media (max-width: 1000px) { .co-fullstory-text { column-count: 1; } }
@media (prefers-reduced-motion: reduce) { .co-timeline.reveal li, .co-timeline.reveal li::before { opacity: 1; transform: none; transition: none; } }
.co-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.co-pillar { padding: 30px; border: 1px solid var(--co-border); border-radius: 14px; background: #fff; }
.co-pillar .pg-icon { width: 64px; height: 64px; margin-bottom: 20px; }
.co-pillar h3 { margin-bottom: 14px; }
.co-pillar p { color: #5b6786; font-size: 15px; }
.co-pillar .co-text-link { margin-top: 22px; }
.co-validation { display: flex; gap: 30px; align-items: center; background: #e8eef9; border: 1px solid #d6e0f1; border-radius: 14px; padding: 28px 34px; margin-top: 26px; }
.co-validation img { width: 86px; height: 86px; object-fit: contain; }
.co-validation > div { flex: 1; }
.co-validation h3 { font-size: 21px; margin-bottom: 6px; }
.co-validation p { color: #526181; font-size: 14px; }
.co-purpose { display: grid; grid-template-columns: 1.15fr .85fr; gap: 50px; }
.co-mission { padding: 38px; border-radius: 16px; background: var(--navy); color: #bdcbea; }
.co-mission h3 { color: #fff; font-size: clamp(29px, 2.5vw, 42px); line-height: 1.22; margin: 20px 0 32px; }
.co-mission small { color: #99c2fd; font-size: 11px; letter-spacing: .14em; font-weight: 800; text-transform: uppercase; }
.co-mission .co-vision { padding-top: 24px; border-top: 1px solid #ffffff24; }
.co-mission .co-vision p { color: #fff; font-size: 19px; margin-top: 8px; }
.co-values h3 { margin-bottom: 18px; }
.co-values ul { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 30px; list-style: none; padding: 0; }
.co-values li { border-top: 1px solid var(--co-border); padding-top: 15px; }
.co-values b { display: block; font-size: 15px; color: var(--navy); margin-bottom: 5px; }
.co-values p { font-size: 13px; color: #596887; }
.co-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--co-border); margin-top: 38px; padding-top: 26px; gap: 24px; }
.co-facts dt { font-size: 10px; font-weight: 800; letter-spacing: .12em; color: #647390; text-transform: uppercase; }
.co-facts dd { margin: 8px 0 0; color: var(--navy); font-size: 15px; font-weight: 700; }
.co-facts dd small { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 500; color: #647390; }
.co-lab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.co-evidence { padding: 32px; border: 1px solid #6687be50; border-radius: 18px; background: radial-gradient(ellipse at 80% 0, #3466a85c, transparent 60%), #162953; box-shadow: 0 30px 60px #020b252e; }
.co-evidence-top { display: flex; justify-content: space-between; gap: 20px; color: #9fc3ee; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; padding-bottom: 24px; border-bottom: 1px solid #ffffff20; }
.co-evidence h3 { font-size: 25px; margin: 28px 0; }
.co-evidence ol { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.co-evidence li { background: #ffffff07; border: 1px solid #93b0e62a; border-radius: 9px; padding: 22px; }
.co-evidence li span { display: block; color: #7eaff0; font-size: 11px; font-weight: 700; margin-bottom: 12px; }
.co-evidence b { color: #fff; font-size: 17px; }
.co-evidence p { color: #b0c4e5; font-size: 13px; margin-top: 7px; }
.co-evidence > p { border-top: 1px solid #ffffff20; padding-top: 22px; margin-top: 24px; }
.co-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.co-tags span { font-size: 10px; font-weight: 700; border: 1px solid #d9e5f3; border-radius: 5px; background: #f2f6fc; color: #42618a; padding: 5px 8px; line-height: 1.4; }
.dark .co-tags span { background: #ffffff08; border-color: #ffffff28; color: #c4d8f4; }
.co-team-label { display: flex; align-items: center; gap: 18px; font-size: 12px; color: #3a5980; letter-spacing: .15em; font-weight: 800; text-transform: uppercase; margin: 32px 0 22px; }
.co-team-label::after { content: ''; height: 1px; background: var(--co-border); flex: 1; }
.co h3.co-team-label { font-size: 12px; letter-spacing: .15em; }
.co-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.co-person { display: flex; flex-direction: column; border: 1px solid var(--co-border); border-radius: 14px; background: #fff; overflow: hidden; }
.co-person-top { display: grid; grid-template-columns: 42% 1fr; background: #e8eef6; height: 240px; }
.co-person-top img { width: 100%; height: 240px; object-fit: cover; object-position: center 20%; }
.co-person-title { align-self: center; padding: 20px; }
.co-person-title h4 { font-size: 21px; font-weight: 900; }
.co-person-title p { margin-top: 10px; font-size: 12px; color: #485a7e; font-weight: 600; line-height: 1.55; }
.co-person-body { display: flex; flex-direction: column; flex: 1; padding: 25px; }
.co-person-body > p { color: #5b6786; font-size: 14px; }
.co-person button { display: flex; justify-content: space-between; gap: 20px; align-items: center; background: none; border: 0; border-top: 1px solid #e3ebf6; padding: 16px 0 0; margin-top: 22px; color: #1758a1; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; width: 100%; }
.co-person .co-tags { flex: 1; align-content: start; }
.co-advisors { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.co-advisors .co-person-top { display: block; height: auto; min-height: 0; padding: 25px 24px 0; background: #fff; }
.co-advisors .co-person-top img { height: 94px; width: 94px; border-radius: 50%; }
.co-advisors .co-person-title { padding: 18px 0 0; }
.co-advisors h4 { font-size: 19px; }
.co-advisors .co-person-body { padding-top: 15px; }
.co-bio { border: 0; border-radius: 18px; padding: 0; width: min(840px, calc(100% - 32px)); max-height: 86vh; color: #53607f; box-shadow: 0 40px 120px #020b2577; }
.co-bio::backdrop { background: #081433ba; backdrop-filter: blur(5px); }
.co-bio-head { display: flex; gap: 24px; align-items: center; padding: 32px 70px 32px 36px; background: #edf3fb; }
.co-bio-head img { width: 100px; height: 120px; object-fit: cover; border-radius: 8px; }
.co-bio h2 { font-size: 28px; }
.co-bio-head p { margin-top: 10px; font-size: 14px; }
.co-bio-close { position: absolute; right: 18px; top: 18px; width: 36px; height: 36px; border: 1px solid #ccdaeb; border-radius: 50%; font-size: 23px; background: #fff; color: var(--navy); cursor: pointer; }
.co-bio-text { padding: 30px 36px 36px; }
.co-bio-text p + p { margin-top: 18px; }
.co-bio-text p { font-size: 15px; line-height: 1.8; }
/* in-place biography: the chosen card is marked, and a full-width panel unfolds under its row */
.co-person { transition: border-color .2s, box-shadow .2s, transform .2s; }
.co-person:hover { box-shadow: 0 14px 30px #13284912; }
.co-person.on { border-color: #1758a1; box-shadow: 0 0 0 2px #1758a1, 0 18px 40px #13284918; }
.co-person button span { transition: transform .25s; }
.co-person button[aria-expanded="true"] span { transform: rotate(90deg); }
.co-profile { position: relative; grid-column: 1 / -1; margin-top: 4px; }
.co-profile[hidden] { display: none; }
.co-profile-caret { position: absolute; top: -9px; width: 18px; height: 18px; margin-left: -9px; background: #fff; border-left: 1px solid #1758a1; border-top: 1px solid #1758a1; transform: rotate(45deg); z-index: 1; transition: left .3s ease; }
.co-profile-clip { display: grid; grid-template-rows: 0fr; border: 1px solid #1758a1; border-radius: 16px; background: #fff; box-shadow: 0 24px 60px #1328491a; transition: grid-template-rows .4s ease; }
.co-profile.in .co-profile-clip { grid-template-rows: 1fr; }
.co-profile-in { overflow: hidden; min-height: 0; display: grid; grid-template-columns: 250px 1fr; gap: 40px; padding: 0 40px; transition: padding .4s ease; }
.co-profile.in .co-profile-in { padding: 36px 40px; }
.co-profile-photo { width: 250px; height: 300px; object-fit: cover; object-position: center 20%; border-radius: 12px; background: #e8eef6; }
.co-profile-head { display: flex; justify-content: space-between; align-items: start; gap: 24px; }
.co-profile-head h4 { font-size: 28px; font-weight: 900; outline: none; }
.co-profile-head p { margin-top: 8px !important; font-size: 14px; font-weight: 700; color: #1758a1; }
.co-profile-nav { display: flex; gap: 8px; flex: none; }
.co-profile-nav button { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--co-border); border-radius: 50%; background: #fff; color: var(--navy); font: inherit; font-size: 17px; cursor: pointer; transition: background .2s, border-color .2s; }
.co-profile-nav button:hover { background: var(--co-pale); border-color: #9baccc; }
.co-profile-nav .co-profile-x { font-size: 22px; margin-left: 6px; }
.co-profile .co-tags { margin-top: 14px; }
.co-profile-text { margin-top: 22px; column-count: 2; column-gap: 48px; column-rule: 1px solid var(--co-border); }
/* text flows and balances across both columns, so a one-paragraph biography does not leave one empty */
.co-profile-text { column-fill: balance; }
.co-profile-text p { font-size: 15px; line-height: 1.75; color: #53607f; }
.co-profile-text p + p { margin-top: 16px !important; }
.co-advisors .co-profile-photo { width: 200px; height: 200px; border-radius: 50%; }
.co-advisors .co-profile-in { grid-template-columns: 200px 1fr; }
@media (max-width: 1280px) { .co-profile-text { column-count: 1; } }
@media (max-width: 760px) { .co-profile-in, .co-advisors .co-profile-in { grid-template-columns: 1fr; gap: 20px; } .co-profile.in .co-profile-in { padding: 24px; } .co-profile-photo, .co-advisors .co-profile-photo { width: 120px; height: 140px; border-radius: 10px; } .co-profile-head { flex-direction: column-reverse; } }
@media (prefers-reduced-motion: reduce) { .co-profile-clip, .co-profile-in, .co-profile-caret { transition: none; } }
.co-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 60px; }
.co-why-item { display: flex; align-items: start; gap: 24px; padding: 28px 0; border-top: 1px solid #ffffff25; }
.co-why-item > span { font-size: 12px; color: #91b6ea; padding-top: 5px; }
.co-why-item h3 { font-size: 22px; margin-bottom: 12px; }
.co-why-item p { color: #b9c9e6; font-size: 15px; }
.co-why-item:last-child { grid-column: 1 / -1; }
/* full rows: ten customers in two rows of five, sixteen agencies in two rows of eight */
.co-logo-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.co-logo { display: grid; place-items: center; min-height: 110px; padding: 20px; border: 1px solid #e0e7f0; border-radius: 10px; background: #fff; }
.co-logo img { width: 100%; max-width: 150px; height: 68px; object-fit: contain; }
.co-testimonials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 40px; }
.co-quote { padding: 28px; border: 1px solid var(--co-border); border-radius: 12px; background: #fff; display: flex; flex-direction: column; }
.co-quote > small { color: #2c70b8; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 800; }
.co-quote blockquote { margin: 18px 0 24px; font-size: 17px; line-height: 1.6; color: #243e6a; flex: 1; }
.co-quote cite { font-style: normal; color: #5f6e89; font-size: 12px; }
.co-quote cite b { display: block; font-size: 13px; color: var(--navy); margin-bottom: 3px; }
.co-government { background: #edf2fa; }
.co-government .co-logo-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.co-small-note { margin-top: 20px !important; color: #697691; font-size: 12px; }
.co-contract-layout { display: grid; grid-template-columns: 320px 1fr; gap: 45px; align-items: start; }
.co-procurement { padding: 28px; border: 1px solid var(--co-border); border-radius: 12px; background: var(--co-pale); }
.co-procurement h3 { font-size: 21px; margin-bottom: 20px; }
.co-procurement dl { margin: 0; }
.co-procurement dt { font-size: 10px; font-weight: 800; color: #61718d; letter-spacing: .1em; text-transform: uppercase; margin-top: 18px; }
.co-procurement dd { margin: 5px 0 0; color: #243d65; font-size: 14px; }
.co-contracts details, .co-jobs details { border-top: 1px solid var(--co-border); }
.co-contracts details:last-child, .co-jobs details:last-child { border-bottom: 1px solid var(--co-border); }
.co-contracts summary, .co-jobs summary { display: flex; align-items: center; gap: 20px; justify-content: space-between; padding: 23px 4px; list-style: none; cursor: pointer; color: var(--navy); font-size: 19px; font-weight: 800; }
.co summary::-webkit-details-marker { display: none; }
.co-contracts summary::after, .co-jobs summary::after { content: '+'; color: #3576bf; font-weight: 400; font-size: 28px; }
.co-contracts details[open] summary::after, .co-jobs details[open] summary::after { content: '−'; }
.co-contracts summary small { display: block; color: #6a7892; font-size: 11px; font-weight: 500; margin-top: 5px; }
.co-contract-body, .co-job-body { padding: 0 4px 26px; font-size: 15px; color: #596887; }
.co-contract-body dl { display: grid; grid-template-columns: 135px 1fr; gap: 10px 20px; font-size: 13px; margin: 22px 0; }
.co-contract-body dt { font-weight: 700; color: #36537b; }
.co-contract-body dd { margin: 0; }
.co-contract-body a { color: #1758a1; text-decoration: underline; text-underline-offset: 3px; }
.co-contract-body .legacy { padding: 12px 16px; margin-top: 16px; background: #f4f1e9; border-left: 3px solid #b18a36; color: #71613d; font-size: 13px; }
/* contracts on one screen: the procurement facts as one strip, the vehicles as four open cards */
.co-procure { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 36px; padding: 22px 28px; border: 1px solid var(--co-border); border-radius: 14px; background: var(--co-pale); }
.co-procure h3 { font-size: 17px; font-weight: 900; line-height: 1.25; max-width: 150px; }
.co-procure dl { margin: 0; display: grid; grid-template-columns: repeat(7, auto); justify-content: space-between; gap: 12px 28px; }
.co-procure dt { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #61718d; }
.co-procure dd { margin: 6px 0 0; font-size: 14px; font-weight: 600; color: #243d65; }
.co-procure div:nth-child(4) dd { max-width: 190px; }
.co-procure .co-button { white-space: nowrap; }
.co-vehicles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.co-vehicle { display: flex; flex-direction: column; padding: 24px 24px 22px; border: 1px solid var(--co-border); border-top: 3px solid #1866bd; border-radius: 14px; background: #fff; }
.co-vehicle-tag { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #3769a2; }
.co-vehicle-tag span { padding: 3px 8px; border-radius: 999px; font-size: 10px; letter-spacing: .06em; color: #0e7a57; background: #e5f5ee; }
.co-vehicle h3 { margin-top: 10px; font-size: 20px; }
.co-vehicle-figure { margin-top: 6px !important; font-size: 13.5px; font-weight: 700; color: #1758a1; }
.co-vehicle-desc { margin-top: 12px !important; font-size: 14px; line-height: 1.6; color: #596887; }
.co-vehicle dl { display: grid; grid-template-columns: auto 1fr; gap: 7px 14px; margin: 16px 0 18px; padding-top: 14px; border-top: 1px solid var(--co-border); font-size: 13px; }
.co-vehicle dt { font-weight: 700; color: #36537b; white-space: nowrap; }
.co-vehicle dd { margin: 0; color: #4a5a78; overflow-wrap: anywhere; }
.co-vehicle dd a { color: #1758a1; }
.co-vehicle .co-text-link { margin-top: auto; font-size: 13.5px; }
.co-vehicle.legacy { border-top-color: #b8c2d4; background: #fafbfd; }
.co-vehicle.legacy h3, .co-vehicle.legacy .co-vehicle-figure { color: #5d6b86; }
.co-vehicle.legacy .co-vehicle-tag span { color: #8a6a1f; background: #f7efdc; }
@media (max-width: 1500px) {
  /* the strip stays one line: a smaller label and tighter facts */
  .co-procure { gap: 22px; padding: 18px 22px; }
  .co-procure h3 { font-size: 14px; max-width: 110px; }
  .co-procure dl { gap: 10px 18px; }
  .co-procure dt { font-size: 9px; }
  .co-procure dd { font-size: 13px; }
  .co-procure div:nth-child(4) dd { max-width: 150px; }
  .co-procure .co-button { padding: 12px 18px; min-height: 44px; }
  .co-vehicle { padding: 20px 20px 18px; }
  .co-vehicle-desc { font-size: 13.5px; }
}
/* four in a row as long as each card keeps a readable width; two by two below, where the strip wraps too */
@media (max-width: 1250px) { .co-vehicles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .co-procure { grid-template-columns: minmax(0, 1fr) auto; } .co-procure h3 { grid-column: 1 / -1; max-width: none; } .co-procure dl { grid-template-columns: repeat(4, auto); justify-content: space-between; } }
@media (max-width: 760px) { .co-procure { grid-template-columns: 1fr; } .co-procure dl { grid-template-columns: 1fr 1fr; } .co-vehicles { grid-template-columns: 1fr; } }
.co-career-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; }
.co-benefits { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.co-benefits span { color: #526482; font-size: 13px; padding-left: 18px; border-left: 2px solid #97b5dd; }
.co-job-body .co-text-link { margin-top: 16px; }
/* the application form: part of the careers chapter, no modal */
.co-apply { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; margin-top: 56px; padding: 40px; border: 1px solid var(--co-border); border-radius: 16px; background: #fff; box-shadow: 0 24px 54px #13284912; }
.co-apply-intro h3 { font-size: clamp(26px, 2vw, 34px); font-weight: 900; }
.co-apply-intro > p:not(.co-kicker) { margin-top: 14px !important; color: #596887; font-size: 15.5px; line-height: 1.7; max-width: 440px; }
.co-apply-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.co-apply-fields .full { grid-column: 1 / -1; }
.co-apply label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; color: #48587a; }
.co-apply input:not([type="file"]), .co-apply select, .co-apply textarea { font: inherit; font-size: 15px; font-weight: 500; color: var(--navy); padding: 12px 14px; border: 1px solid #d6e0ee; border-radius: 9px; background: #f7f9fd; resize: vertical; transition: border-color .2s, box-shadow .2s; }
.co-apply input:focus, .co-apply select:focus, .co-apply textarea:focus { outline: 0; border-color: #2c70b8; box-shadow: 0 0 0 3px #2c70b822; }
.co-apply .bad input, .co-apply .bad select { border-color: #dc2935; }
.co-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.co-file-box { display: grid; gap: 3px; justify-items: center; padding: 20px; border: 1.5px dashed #b9c9e0; border-radius: 10px; background: #f7f9fd; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.co-file-box b { font-size: 14px; color: #1758a1; } .co-file-box small { font-size: 12.5px; font-weight: 500; color: #6a7892; }
.co-file:hover .co-file-box, .co-file input:focus-visible + .co-file-box { border-color: #2c70b8; background: #eef4fc; }
.co-file.has .co-file-box { border-style: solid; border-color: #13936a; background: #eef8f3; } .co-file.has .co-file-box b { color: #0e7a57; }
.co-apply-go { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.co-apply-go .co-button { border: 0; cursor: pointer; font-family: inherit; }
.co-apply-note { font-size: 14px; color: #596887; }
.co-apply.sent .co-apply-note { color: #0e7a57; font-weight: 700; }
@media (max-width: 1000px) { .co-apply { grid-template-columns: 1fr; gap: 28px; padding: 28px; } }
@media (max-width: 640px) { .co-apply-fields { grid-template-columns: 1fr; } }

/* The embedded HubSpot form uses the same careers card, typography, and fields. */
.co-apply-content { min-width: 0; }
.co-hubspot-form .hs-form-field { min-width: 0; }
.co-hubspot-form .hs-form-field > label { display: block; margin-bottom: 7px; }
.co-hubspot-form .hs_job_application_position,
.co-hubspot-form .hs_job_application_message,
.co-hubspot-form .hs_job_application_cv { grid-column: 1 / -1; }
.co-hubspot-form .input { margin: 0; }
.co-hubspot-form input:not([type="submit"]):not([type="checkbox"]),
.co-hubspot-form select, .co-hubspot-form textarea { width: 100%; box-sizing: border-box; }
.co-hubspot-form textarea { min-height: 118px; }
.co-hubspot-form .hs-field-desc { color: #6a7892; font-size: 12.5px; margin-bottom: 8px; }
.co-hubspot-form input[type="file"] { padding: 18px; border: 1.5px dashed #b9c9e0; border-radius: 10px; background: #f7f9fd; font: inherit; font-size: 13px; }
.co-hubspot-form input[type="file"]::file-selector-button { border: 0; border-radius: 6px; padding: 8px 12px; margin-right: 12px; background: #e5edf8; color: #1758a1; cursor: pointer; font: inherit; font-weight: 700; }
.co-hubspot-form .hs-submit { margin-top: 22px; }
.co-hubspot-form input[type="submit"] { background: #dc2935; color: #fff; border: 0; border-radius: 8px; font: inherit; font-size: 14px; font-weight: 800; padding: 14px 22px; cursor: pointer; }
.co-hubspot-form input[type="submit"]:hover { background: #ba1823; }
.co-hubspot-form .hs-error-msgs { list-style: none; padding: 0; margin: 7px 0 0; }
.co-hubspot-form .hs-error-msgs label { color: #b51b2d; font-size: 12px; }
.co-hubspot-form .hs-input.error { border-color: #dc2935; }
.co-hubspot-form .hs-form-required { color: #b51b2d; }
.co-apply-content > .pv-formnote { margin-top: 18px; font-size: 12px; }
.co-apply-content > .co-apply-note:not(:empty) { margin-top: 18px; }
.co-apply-content .submitted-message { color: #0e7a57; line-height: 1.7; }
.co-news { border-top: 1px solid var(--co-border); padding: 32px 0; }
.co-news .co-in { display: flex; gap: 30px; justify-content: space-between; align-items: center; }
.co-news h3 { font-size: 22px; }
.co-news p { color: #60708e; font-size: 14px; margin-top: 7px; }
.co-contact { background: linear-gradient(110deg, #162958, #0d1b43); padding: 65px 0; color: #fff; }
.co-contact .co-in { display: flex; justify-content: space-between; gap: 50px; align-items: center; }
.co-contact h2 { color: #fff; font-size: clamp(30px, 2.7vw, 44px); }
.co-contact p { margin-top: 14px; color: #bfceeb; }
.co-contact .co-actions { margin-top: 0; flex: none; }
@media (max-width: 1500px) {
  .co-hero .co-in { min-height: 580px; }
  .co-hero-copy { width: 59%; }
  .co-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-advisors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .co-story-grid, .co-lab-grid, .co-career-grid { gap: 45px; }
}
@media (min-width: 1101px) and (max-width: 1400px) {
  .co .hx-command .hx-ua { display: none; }
  .co .hx-command .hx-in { gap: 16px; }
  .co .hx-command .hx-right { gap: 12px; }
  .co .hx-command .hx-menu > a, .co .hx-command .hx-dd > button { padding-inline: 10px; }
  .co .hx-evolve .hx-brand i, .co .hx-evolve .hx-brand [data-logo="threatresponder"] { display: none; }
  .co .hx-evolve .hx-in { gap: 16px; }
  .co .hx-evolve .hx-dd > button { padding-inline: 9px; }
  .co .hx-ent .hx-link { display: none; }
  .co .hx-ent .hx-in { gap: 14px; }
  .co .hx-ann > .hx-in > span:not(.hx-new):not(.hx-grow) { display: none; }
}
@media (max-width: 1000px) {
  .co-hero-copy { width: 80%; }
  .co-hero-art { width: 100%; opacity: .45; }
  .co-hero::before { background: linear-gradient(90deg, #0d1b43, #0d1b4380); }
  .co-story-grid, .co-purpose, .co-lab-grid, .co-career-grid { grid-template-columns: 1fr; }
  .co-pillars { grid-template-columns: 1fr; }
  .co-pillar { display: grid; grid-template-columns: 64px 1fr; column-gap: 22px; }
  .co-pillar .pg-icon { grid-row: span 3; }
  .co-contract-layout { grid-template-columns: 250px 1fr; gap: 28px; }
  .co-logo-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .co-government .co-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .co-testimonials { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-title { display: block; }
  .co-title > p { margin-top: 20px; }
  .co-contact .co-in { display: block; }
  .co-contact .co-actions { margin-top: 26px; }
  .co-validation { flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .co { --co-jump: 55px; }
  .co .hx-in { gap: 10px; }
  .co .hx-util, .co .hx-ann { display: none; }
  .co .hx-ent, .co .hx-evolve { top: 0; }
  .co .hx-right { gap: 6px; }
  .co .hx-command .hx-tab { width: 128px; padding-inline: 8px; }
  .co .hx-command .hx-tab [data-logo] { width: 112px; }
  .co .hx-btn { padding-inline: 10px; font-size: 12px; }
  .co .hx-evolve .hx-brand i, .co .hx-evolve .hx-brand [data-logo="threatresponder"] { display: none; }
  .co .hx-ent .hx-brand [data-logo="netsecurity"] { width: 110px; }
  .co .hx-ent .hx-icb { display: none; }
  .co-hero .co-in { min-height: 615px; padding-block: 66px 120px; }
  .co-hero-copy { width: 100%; }
  .co-hero h1 { font-size: 43px; }
  .co-hero-bottom .co-in { min-height: 0; padding: 0; gap: 15px; flex-wrap: wrap; font-size: 10px; }
  .co-hero-bottom .co-in span:last-child { display: none; }
  .co-jump a { min-height: 55px; }
  .co-jump .co-in { gap: 23px; }
  .co-title { margin-bottom: 28px; }
  .co-pillars, .co-team-grid, .co-advisors, .co-why-grid, .co-testimonials, .co-contract-layout { grid-template-columns: 1fr; }
  .co-person-top { min-height: 180px; }
  .co-person-top img { max-height: 240px; }
  .co-advisors .co-person-top { display: flex; gap: 18px; align-items: center; }
  .co-advisors .co-person-title { padding-top: 0; }
  .co-advisors .co-person-top img { flex: none; width: 80px; height: 80px; }
  .co-facts { grid-template-columns: 1fr 1fr; }
  .co-mission { padding: 28px; }
  .co-values ul { gap: 22px; }
  .co-evidence { padding: 24px; }
  .co-evidence li { padding: 18px 14px; }
  .co-evidence-top { font-size: 9px; gap: 12px; }
  .co-validation { padding: 24px; gap: 20px; }
  .co-validation img { width: 68px; height: 68px; }
  .co-validation > div { flex-basis: 190px; }
  .co-logo-grid, .co-government .co-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .co-logo { min-height: 95px; padding: 18px; }
  .co-logo img { height: 60px; }
  .co-contract-body dl { grid-template-columns: 1fr; gap: 3px; }
  .co-contract-body dd { margin-bottom: 12px; overflow-wrap: anywhere; }
  .co-bio-head { padding: 28px 50px 24px 24px; gap: 16px; align-items: start; }
  .co-bio-head img { width: 70px; height: 88px; }
  .co-bio h2 { font-size: 21px; }
  .co-bio-text { padding: 24px; }
  .co-news .co-in { display: block; }
  .co-news .co-text-link { margin-top: 18px; }
}
@media (max-width: 380px) {
  .co .hx-command .hx-tab { width: 115px; }
  .co .hx-command .hx-tab [data-logo] { width: 98px; }
  .co .hx-btn { max-width: 95px; white-space: normal; line-height: 1.2; text-align: center; }
  .co-hero h1 { font-size: 37px; }
  .co-person-title { padding: 16px; }
  .co-person-title h4 { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .co *, .co *::before, .co *::after { scroll-behavior: auto !important; transition: none !important; }
}
/* the facts strip keeps its own height: below 1500 px the hero's min-height rule (.co-hero .co-in) also caught it and
   centred the strip in the middle of the hero */
.co-hero .co-hero-bottom .co-in { min-height: 0; }
