@font-face {
  font-family: Roboto;
  src: url("roboto-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ink: #20242b;
  --muted: #52606b;
  --blue: #0642a2;
  --green: #127e1e;
  --red: #ae0606;
  --dark: #2c2d37;
  --deep: #1b1d27;
  --light-ink: #f8f9fa;
  --dark-muted: #d2d4da;
  --highlight: #a9dd8c;
  --accent: var(--red);
  --warm: #edf1f3;
  --emblem-bg: #f7f7f7;
  --line: #d9dddc;
  --white: #fff;
  --shell: 1200px;
  --font: Roboto, Arial, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-padding-top: 92px; }
body { margin: 0; color: var(--ink); background: var(--white); font: 16px/1.58 var(--font); -webkit-font-smoothing: antialiased; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: .24em; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
fieldset:disabled button { cursor: not-allowed; opacity: .55; }
:focus-visible { outline: 3px solid #4279a1; outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
figure, h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 660; line-height: 1.12; letter-spacing: -.023em; }
h1 { font-size: clamp(3.1rem, 6.4vw, 6rem); }
h2 { font-size: clamp(2.12rem, 4.5vw, 3.95rem); }
h3 { font-size: clamp(1.26rem, 2vw, 1.62rem); line-height: 1.2; letter-spacing: -.033em; }
p { color: var(--muted); }
.container { width: min(var(--shell), calc(100% - 100px)); margin-inline: auto; }
.narrow { max-width: 780px; }
.section { padding-block: clamp(65px, 8vw, 111px); }
.section.compact { padding-top: 48px; }
.tinted { background: var(--warm); }
.icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: middle; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; background: white; padding: 12px 18px; z-index: 20; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.eyebrow { color: var(--accent); font-size: .73rem; line-height: 1.45; letter-spacing: .14em; text-transform: uppercase; font-weight: 720; }
.section-head { margin-bottom: 31px; }
.section-head .eyebrow { margin-bottom: 12px; }
.section-lead { max-width: 650px; margin-top: 16px; font-size: clamp(1.06rem, 2vw, 1.26rem); line-height: 1.47; }
.split-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 29px; }
.split-head .section-head { margin: 0; }
.split-head > .text-link { flex: none; }
.button, .text-link, .back-link { display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-weight: 640; line-height: 1.25; }
.button { min-height: 47px; padding: 11px 23px; border: 0; border-radius: 0; text-align: center; transition: background-color .16s; }
.button:hover { text-decoration: none; }
.button.primary, .button.nav-button { color: white; background: var(--blue); }
.button.primary:hover, .button.nav-button:hover { background: #073482; }
.button.light { background: var(--white); color: var(--blue); }
.button.green { color: white; background: var(--green); }
.button.green:hover { background: #0d6418; }
.button.light:hover { background: #e5ebee; }
.button.secondary { background: var(--warm); color: var(--blue); }
.button.secondary:hover { background: #edece7; }
.text-link, .back-link { min-height: 42px; font-size: .96rem; }
.text-link .icon, .back-link .icon { width: 17px; height: 17px; }
.actions { display: flex; gap: 12px 23px; align-items: center; flex-wrap: wrap; }
.site-header { position: sticky; top: 0; z-index: 5; color: var(--light-ink); background: var(--dark); }
.nav-row { display: flex; align-items: stretch; gap: 28px; min-height: 84px; max-width: 1540px; margin: auto; padding-inline: clamp(23px, 2.4vw, 40px); }
.brand { display: inline-flex; align-items: center; align-self: center; gap: 10px; white-space: nowrap; color: var(--ink); font-size: 1.42rem; line-height: 1; font-weight: 700; letter-spacing: -.025em; }
.brand:hover { text-decoration: none; }
.brand img { width: 43px; height: 43px; }
.brand > span > span { display: block; margin-top: 4px; color: inherit; font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.site-header .brand, .site-footer .brand { color: white; }
.main-nav { display: flex; align-items: stretch; gap: 2px; }
.main-nav > a, .main-nav > button { position: relative; display: inline-flex; align-items: center; justify-content: flex-start; padding: 0 11px; background: transparent; border: 0; color: var(--light-ink); font-size: .91rem; font-weight: 540; white-space: nowrap; }
.main-nav > :is(a,button):hover, .main-nav > button[aria-expanded="true"] { color: white; background: var(--deep); text-decoration: none; }
.main-nav > .active::after, .main-nav > button[aria-expanded="true"]::after { content: ""; position: absolute; height: 3px; inset: auto 0 0; background: var(--highlight); }
.main-nav .compact-consult { display: none; }
.nav-actions { display: flex; align-items: center; gap: clamp(10px, 1.5vw, 25px); margin-left: auto; }
.search-toggle, .menu-toggle { align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 0; background: transparent; color: var(--light-ink); padding: 0; }
.search-toggle { display: inline-flex; font-size: .91rem; }
.search-toggle .icon, .nav-region .icon { width: 22px; height: 22px; }
.nav-contact, .nav-region { color: var(--light-ink); white-space: nowrap; font-size: .91rem; }
.nav-region { display: inline-flex; align-items: center; gap: 5px; }
.menu-toggle { display: none; gap: 5px; width: 44px; }
.menu-toggle span:not(.sr-only) { display: block; width: 19px; height: 1.5px; background: white; }
.header-panel { position: absolute; top: 100%; inset-inline: 0; background: var(--deep); color: white; max-height: calc(100dvh - 84px); overflow-y: auto; box-shadow: 0 12px 20px #0003; }
.mega-grid { position: relative; display: grid; grid-template-columns: minmax(185px, .75fr) minmax(0, 1.3fr) minmax(160px, .85fr); align-items: start; gap: clamp(28px, 6vw, 90px); padding-block: 32px 55px; }
.mega-intro h2 { font-size: 1.62rem; font-weight: 450; }
.mega-intro p { color: var(--dark-muted); margin: 14px 0 20px; }
.button.outline { border: 1px solid currentColor; color: var(--blue); background: transparent; }
.button.outline:hover { background: #0642a20d; }
.mega-intro .button.outline { color: white; }
.mega-intro .button.outline:hover { background: #ffffff16; }
.mega-list, .mega-spotlight ul { margin: 0; padding: 0; list-style: none; }
.mega-list li { border-top: 1px solid #6b6e79; }
.mega-list li:last-child { border-bottom: 1px solid #6b6e79; }
.mega-list .text-link { display: flex; justify-content: space-between; color: white; min-height: 46px; padding: 8px 5px; }
.mega-list .text-link:hover, .mega-spotlight a:hover { color: var(--highlight); }
.mega-spotlight h3 { color: var(--highlight); font-size: 1.22rem; font-weight: 500; margin-bottom: 12px; }
.mega-spotlight li + li { margin-top: 9px; }
.mega-spotlight a { color: white; }
.mega-close { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); color: white; border: 0; background: transparent; height: 33px; width: 43px; }
.mega-close svg { transform: rotate(180deg); }
.search-panel > .container { padding-block: 24px 34px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.panel-heading h2 { font-size: 1.5rem; font-weight: 480; }
.panel-heading button { color: white; background: transparent; border: 0; min-width: 44px; min-height: 44px; }
.site-search-form { display: flex; gap: 10px; align-items: center; }
.site-search-form input { flex: 1; min-width: 0; min-height: 46px; padding: 9px 12px; border: 0; border-bottom: 1px solid #788c99; background: #f2f5f6; color: var(--ink); }
.search-status { margin-top: 23px; }
.search-results article { padding: 18px 0; border-top: 1px solid var(--line); }
.search-results article:first-child { margin-top: 19px; }
.search-results h2 { font-size: 1.35rem; }
.about-hero { background: var(--emblem-bg); }
.identity { display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(0, 1fr); align-items: center; gap: 5%; }
.brand-emblem { width: min(100%, 452px); justify-self: end; }
.directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 5vw, 72px); }
.editorial-entry { display: flex; min-width: 0; min-height: 119px; align-items: center; justify-content: space-between; gap: 13px; padding: 21px 0; color: var(--ink); border-top: 1px solid var(--line); }
.editorial-entry:hover { text-decoration: none; }
.editorial-entry:hover .entry-title { color: var(--blue); text-decoration: underline; text-underline-offset: .16em; }
.editorial-entry > .icon { color: var(--blue); transition: transform .16s ease; }
.editorial-entry:hover > .icon { transform: translateX(4px); }
.entry-copy { display: flex; flex-direction: column; gap: 5px; }
.numbered .entry-copy { display: grid; grid-template-columns: 2.15rem minmax(0, 1fr); column-gap: 7px; }
.entry-index { grid-column: 1; grid-row: 1/3; color: var(--accent); font-size: .75rem; font-weight: 690; padding-top: 3px; letter-spacing: .045em; }
.entry-kicker { color: var(--accent); font-size: .7rem; font-weight: 690; letter-spacing: .085em; text-transform: uppercase; }
.entry-title { font-size: clamp(1.22rem, 2.1vw, 1.58rem); font-weight: 650; line-height: 1.15; letter-spacing: -.035em; }
.entry-description { color: var(--muted); font-size: .94rem; line-height: 1.48; }
.value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 4vw, 56px); }
.value-grid > article { border-top: 1px solid #cdd2d0; padding-top: 21px; min-width: 0; }
.value-grid p { margin-top: 10px; }
.process, .closing { color: white; background: var(--dark); }
.process .eyebrow, .process .step-count, .closing .eyebrow { color: #efbb9d; }
.process p:not(.eyebrow) { color: #d9e4e9; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; padding: 0; margin: 38px 0 0; gap: 24px; }
.steps li { border-top: 1px solid #becacc; padding-top: 18px; }
.process .steps li { border-color: #496271; }
.step-count { display: block; color: var(--accent); margin-bottom: 10px; font-size: .75rem; font-weight: 690; letter-spacing: .07em; }
.steps p { margin-top: 8px; max-width: 245px; }
.identity { min-height: 495px; padding-block: 57px; }
.identity .eyebrow { margin-bottom: 13px; }
.identity p:not(.eyebrow) { margin: 19px 0; max-width: 560px; font-size: 1.18rem; }
.closing-inner { padding-block: 76px; }
.closing h2 { margin: 11px 0 13px; }
.closing p:not(.eyebrow) { color: #e0e9ee; margin-bottom: 22px; }
.site-footer { padding: 46px 0 20px; background: var(--deep); color: white; }
.site-footer p, .site-footer .footer-grid a:not(.brand), .site-footer .footer-bottom, .site-footer .footer-bottom a { color: var(--dark-muted); }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr .9fr 1.15fr; gap: 23px; }
.footer-grid p { margin-top: 11px; max-width: 245px; font-size: .89rem; }
.footer-grid nav, .footer-contact { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; min-width: 0; }
.footer-grid strong { font-size: .86rem; }
.footer-grid a:not(.brand), .footer-bottom { font-size: .83rem; color: var(--muted); overflow-wrap: anywhere; }
.footer-bottom { display: flex; justify-content: space-between; gap: 14px; margin-top: 32px; padding-top: 15px; border-top: 1px solid var(--line); }
.inner-intro { background: var(--warm); padding-block: 58px; }
.inner-intro .eyebrow { margin-bottom: 12px; }
.inner-intro h1 { max-width: 970px; font-size: clamp(2.65rem, 4.5vw, 4.4rem); }
.inner-intro p:not(.eyebrow) { margin-top: 18px; max-width: 650px; font-size: clamp(1.08rem, 2.2vw, 1.33rem); }
.inner-intro .button, .inner-intro .back-link { margin: 19px 10px 0 0; }
.service-hero { background: var(--warm); }
.hero-note { padding-top: 15px; border-top: 1px solid #cdd2d0; }
.hero-note h2 { font-size: 1.32rem; margin-bottom: 8px; }
.hero-note .text-link { margin-top: 8px; }
.content-grid, .form-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .77fr); gap: clamp(35px, 8vw, 108px); align-items: start; }
.content-grid .section-head { margin-bottom: 19px; }
.content-grid .section-lead { margin: 0; }
.stack-list { margin-top: 25px; }
.stack-list > div { border-top: 1px solid var(--line); padding: 19px 0; }
.stack-list p, .outputs p:not(.eyebrow) { margin-top: 8px; }
.outputs { padding-top: 16px; border-top: 1px solid #bfcacb; }
.outputs .eyebrow { margin-bottom: 8px; }
.outputs h2 { font-size: clamp(1.66rem, 3vw, 2.32rem); }
.outputs .text-link, .inset-note .text-link { margin-top: 10px; }
.inset-note { margin-top: 25px; padding: 22px 0 0; border-top: 1px solid var(--line); }
.inset-note p { margin-top: 8px; }
.tick-list { list-style: none; counter-reset: point; margin: 13px 0 0; padding: 0; }
.tick-list li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 4px; counter-increment: point; color: var(--muted); padding-block: 9px; }
.tick-list li::before { content: counter(point, decimal-leading-zero); color: var(--accent); font-size: .74rem; line-height: 2.05; font-weight: 700; }
.outputs .tick-list { margin-top: 17px; }
.work-heading { margin-top: 26px; }
details { border-bottom: 1px solid #bfcacb; padding: 12px 0; }
summary { font-weight: 660; cursor: pointer; padding: 7px 0; }
details p { margin: 6px 0 11px; }
.contact-grid h2 { font-size: 1.5rem; margin-bottom: 8px; }
.contact-grid a { overflow-wrap: anywhere; }
.contact-numbers { margin: 0; padding: 0; list-style: none; }
.contact-numbers li + li { margin-top: 3px; }
.demo-note { margin-bottom: 17px; color: #4e606a; font-size: .94rem; }
.filter-bar { margin-bottom: 23px; }
.filters { display: flex; gap: 6px 21px; flex-wrap: wrap; }
.filters button { min-height: 44px; padding: 7px 1px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); }
.filters button[aria-pressed="true"] { color: var(--blue); border-bottom-color: var(--blue); font-weight: 700; }
.article-body > section + section { margin-top: 34px; }
.article-body h2 { margin-bottom: 12px; font-size: clamp(1.6rem, 3.5vw, 2.52rem); }
.article-body p { font-size: 1.08rem; line-height: 1.67; }
.form-layout { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
fieldset { min-inline-size: 0; border: 0; margin: 0; padding: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 17px; }
.form-grid .wide { grid-column: 1/-1; }
.form-grid label { min-width: 0; font-weight: 630; }
.form-grid .optional { color: var(--muted); font-size: .85rem; font-weight: 400; }
.form-grid input, .form-grid select, .form-grid textarea { display: block; width: 100%; min-height: 46px; margin-top: 5px; border: 0; border-bottom: 1px solid #7f939f; border-radius: 0; color: var(--ink); background: #f7f8f8; padding: 10px; }
.form-grid textarea { resize: vertical; }
.form-panel .button { margin-top: 22px; }
.form-result h2 { font-size: clamp(2rem, 4vw, 3rem); margin: 9px 0 13px; }
.form-result p + p { margin-top: 8px; }

@media (max-width: 1000px) {
  .container { width: calc(100% - 64px); }
  .nav-row { gap: 14px; }
  .main-nav > a, .main-nav > button { padding-inline: 8px; }
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  .footer-contact { grid-column: 1/-1; }
}
@media (max-width: 820px) {
  .container { width: calc(100% - 38px); }
  .site-header:has(.main-nav.open), .site-header:has(.header-panel:not([hidden])) { max-height: 100dvh; overflow-y: auto; }
  .nav-row { display: grid; grid-template-columns: 1fr auto; min-height: 68px; gap: 0 8px; padding-inline: 19px; }
  .brand { font-size: 1.23rem; }
  .brand img { width: 39px; height: 39px; }
  .nav-actions { grid-column: 2; grid-row: 1; }
  .nav-contact, .nav-region, .search-toggle span { display: none; }
  .search-toggle { width: 44px; }
  .menu-toggle { display: grid; place-content: center; }
  .main-nav { display: none; grid-column: 1/-1; }
  .main-nav.open { display: grid; grid-template-columns: 1fr; }
  .main-nav > a, .main-nav > button, .main-nav .compact-consult { display: flex; padding: 12px 0; border-top: 1px solid #ffffff32; }
  .main-nav > .active::after, .main-nav > button[aria-expanded="true"]::after { display: none; }
  .main-nav > button[aria-expanded="true"] { color: var(--highlight); background: transparent; }
  .header-panel { position: static; max-height: none; overflow: visible; }
  .mega-grid { grid-template-columns: 1fr; gap: 20px; padding-block: 22px 49px; }
  .mega-intro p { margin-block: 8px 12px; }
  .mega-spotlight h3 { margin-bottom: 6px; }
  .identity { grid-template-columns: 1fr; gap: 24px; padding-block: 44px 34px; min-height: 0; }
  .brand-emblem { width: min(63%, 320px); justify-self: center; }
  .section { padding-block: 57px; }
  .section.compact { padding-top: 30px; }
  .split-head { align-items: flex-start; flex-direction: column; gap: 6px; margin-bottom: 20px; }
  .section-head { margin-bottom: 21px; }
  .value-grid, .directory, .content-grid, .form-layout { grid-template-columns: 1fr; }
  .value-grid, .content-grid, .form-layout { gap: 24px; }
  .editorial-entry { min-height: 94px; padding-block: 15px; }
  .entry-title { font-size: 1.27rem; }
  .steps { grid-template-columns: repeat(2, 1fr); gap: 22px 15px; margin-top: 25px; }
  .inner-intro { padding-block: 47px; }
  .closing-inner { padding-block: 55px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child, .footer-contact { grid-column: 1/-1; }
  .footer-bottom { flex-wrap: wrap; }
}
@media (max-width: 400px) {
  .form-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}

.photo-hero { position: relative; color: white; background: #151821; }
.hero-slide { position: relative; display: grid; align-items: end; min-height: clamp(530px, 43vw, 650px); isolation: isolate; overflow: hidden; }
.hero-slide > img, .hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.hero-slide > img { object-fit: cover; object-position: 50% 55%; }
.slide-0 > img, .slide-1 > img { object-position: 50% 18%; }
.slide-2 > img { object-position: 50% 52%; }
.hero-overlay { background: linear-gradient(0deg,#070912f5 0%,#0b0f1a90 36%,#14192812 81%),linear-gradient(90deg,#0c101bb0,transparent 84%); }
.photo-hero-copy { padding-block: 45px 118px; }
.photo-hero-copy .eyebrow { color: var(--highlight); margin-bottom: 10px; font-size: .85rem; letter-spacing: .08em; }
.photo-hero-copy h2 { max-width: 830px; font-size: clamp(2.5rem,4.6vw,4.45rem); font-weight: 680; line-height: 1.06; }
.photo-hero-copy a { color: inherit; }
.hero-summary { color: #f4f5f7; max-width: 650px; margin-top: 17px; font-size: clamp(1.05rem,1.65vw,1.25rem); line-height: 1.48; }
.home-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 24px; margin-top: 22px; }
.photo-credit { position: absolute; inset-inline: 0; bottom: 13px; text-align: right; color: #e4e7ec; font-size: .68rem; line-height: 1.3; }
.carousel-bar { position: absolute; inset-inline: 0; bottom: 37px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.story-select, .carousel-controls { display: flex; align-items: center; }
.story-select { gap: 17px; }
.story-select button { border: 0; border-top: 2px solid transparent; min-height: 43px; padding: 8px 16px 0 0; background: transparent; color: #d0d2d8; font-weight: 500; text-align: left; }
.story-select button[aria-pressed="true"] { color: white; border-top-color: var(--highlight); }
.carousel-controls { gap: 8px; }
.carousel-controls button { border: 0; border-radius: 50%; min-width: 39px; height: 39px; background: #30323e; color: white; padding: 0; display: grid; place-items: center; }
.carousel-controls button:hover { background: #4a4c59; }
.carousel-controls .icon { width: 21px; height: 21px; }

.editorial-dark { color: white; background: var(--dark); padding-block: 32px 58px; }
.editorial-dark .split-head { margin-bottom: 33px; }
.editorial-dark h2 { color: var(--highlight); font-size: clamp(2.15rem,3.2vw,3rem); font-weight: 420; letter-spacing: -.017em; }
.editorial-dark .text-link, .editorial-dark .section-lead { color: var(--dark-muted); }
.insight-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.insight-card { display: flex; min-width: 0; border-top: 4px solid var(--highlight); background: var(--deep); }
.insight-card a { display: flex; flex-direction: column; width: 100%; color: white; }
.insight-card a:hover { text-decoration: none; }
.insight-card a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.insight-card img { width: 100%; aspect-ratio: 1.84; object-fit: cover; }
.insight-card a > div { display: flex; flex-direction: column; flex: 1; padding: 20px 17px 19px; }
.insight-card h3 { color: var(--highlight); font-weight: 490; font-size: clamp(1.28rem,2vw,1.63rem); letter-spacing: -.014em; margin-block: 7px 12px; }
.insight-card p { color: var(--dark-muted); }
.insight-card .eyebrow { color: #cdd0d9; font-size: .68rem; letter-spacing: .065em; }
.card-arrow { display: block; margin-top: auto; padding-top: 14px; color: var(--highlight); }
.image-credits { color: var(--dark-muted); font-size: .7rem; margin-top: 17px; }

.feature-section { display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; min-height: 390px; padding-block: 74px; }
.feature-photo img { width: 100%; height: 100%; object-fit: cover; }
.feature-copy { padding: clamp(26px,5vw,73px); background: var(--warm); }
.feature-copy h2 { margin-block: 10px 15px; font-size: clamp(2.04rem,3.3vw,3.25rem); font-weight: 570; }
.feature-copy p:not(.eyebrow) { margin-bottom: 20px; }
.service-overview { background: #f0f1f4; }
.service-overview h2, .industry-section h2 { font-size: clamp(2rem,3.5vw,3.2rem); font-weight: 530; }
.service-overview .editorial-entry { min-height: 96px; }
.industry-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 27px; }
.industry-grid article { border-top: 1px solid var(--line); padding-block: 18px 10px; }
.industry-grid p { margin-block: 10px 8px; }
.sector-directory { padding-block: 34px 58px; }
.sector-row { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; border-top: 1px solid var(--line); padding-block: 25px; }
.sector-row p + p { margin-top: 10px; }
.about-partnership .content-grid > div + div { display: flex; align-items: flex-start; flex-direction: column; }
.featured-insights { border-top: 1px solid #484b55; }
.sector-row h2 { font-size: clamp(1.6rem,2.6vw,2.45rem); margin-bottom: 9px; }
.sector-row ul { list-style: none; margin: 0; padding: 0; }
.sector-row .text-link { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }
.news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(20px,3.5vw,45px); }
.news-item { display: flex; min-width: 0; flex-direction: column; padding-top: 17px; border-top: 1px solid #656a73; }
.news-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 12px; margin-bottom: 11px; }
.news-meta .eyebrow { color: var(--highlight); }
.news-meta time { color: var(--dark-muted); font-size: .83rem; }
.news-item h3 { color: white; font-size: clamp(1.22rem,2vw,1.63rem); }
.news-item > p { color: var(--dark-muted); margin: 9px 0 10px; }
.news-item .text-link { align-self: flex-start; margin-top: auto; color: var(--highlight); }

.project-gallery { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-top: 27px; }
.project-example { display: block; color: var(--ink); min-width: 0; }
.project-example:hover { text-decoration: none; }
.document-preview { min-height: 236px; padding: 19px 15px 14px; background: #f0f3f5; color: var(--ink); }
.document-label { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; color: var(--muted); font-size: .71rem; font-weight: 610; }
.document-label span { color: var(--red); font-size: .66rem; font-weight: 550; }
.document-name { margin: 11px 0 12px; color: var(--blue); font-size: 1rem; font-weight: 680; line-height: 1.22; }
.document-preview dl { margin: 0; }
.document-preview dl div { display: grid; grid-template-columns: .86fr 1fr; gap: 6px; border-top: 1px solid #cbd6db; padding-block: 7px; font-size: .72rem; line-height: 1.33; }
.document-preview dt { font-weight: 610; }
.document-preview dd { margin: 0; color: var(--muted); }
.example-caption { display: flex; justify-content: space-between; align-items: center; gap: 9px; padding: 12px 0; }
.example-caption h3 { font-size: 1.02rem; line-height: 1.25; letter-spacing: -.012em; }
.project-example:hover h3 { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.example-caption .icon { color: var(--blue); }
@media (max-width: 820px) {
  .hero-slide { min-height: 548px; }
  .slide-0 > img { object-position: 71% 50%; }
  .slide-1 > img { object-position: 66% 43%; }
  .slide-2 > img { object-position: 62% 50%; }
  .photo-hero-copy { padding-block: 34px 158px; }
  .photo-hero-copy h2 { font-size: clamp(2.05rem,6vw,3rem); }
  .home-hero-actions { margin-top: 16px; }
  .carousel-bar { flex-wrap: wrap; bottom: 47px; gap: 3px 9px; }
  .story-select { gap: 12px; }
  .story-select button { font-size: .78rem; padding-right: 0; white-space: nowrap; }
  .hero-overlay { background: linear-gradient(0deg,#070912f5 0%,#0b0f1abf 35%,#14192849 77%),linear-gradient(90deg,#0c101b40,transparent 90%); }
  .carousel-controls button { min-width: 35px; height: 35px; }
  .photo-credit { text-align: left; }
  .insight-grid, .industry-grid, .news-grid { grid-template-columns: 1fr; }
  .insight-grid { gap: 22px; }
  .feature-section, .sector-row { grid-template-columns: 1fr; }
  .feature-section { padding-block: 46px; }
  .feature-photo img { height: 220px; }
  .project-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
}
@media (max-width: 400px) {
  .project-gallery { grid-template-columns: 1fr; }
  .document-preview { min-height: 195px; padding: 15px; }
  .document-preview dl div { grid-template-columns: .85fr 1fr; gap: 6px; font-size: .74rem; }
}
@media (max-width: 360px) {
  .story-select { gap: 8px; }
  .story-select button { font-size: .7rem; }
}

.service-index { display: grid; grid-template-columns: 1fr 1fr; column-gap: 52px; }
.service-index article { border-top: 1px solid var(--line); padding: 17px 0 23px; }
.service-index h2 { font-size: 1.57rem; letter-spacing: -.016em; }
.service-index h2 .text-link { font-size: inherit; }
.service-index article p { margin: 4px 0 9px; }
.service-index ul { margin: 8px 0 0; padding-left: 17px; }
.service-index li::marker { color: var(--green); }
.service-index li .text-link { min-height: 34px; font-weight: 500; }
.additional-services { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 30px; }
.additional-services h2 { font-size: clamp(1.85rem,3.2vw,2.75rem); }
.service-inputs { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 18px; }
.service-inputs h3 { font-size: 1.12rem; letter-spacing: -.012em; }
.service-inputs .tick-list { margin-top: 6px; }
.service-faq { padding-block: 38px; }
.service-faq h2, .related-services h2 { font-size: clamp(1.8rem,3vw,2.65rem); }
.related-services { background: white; }
@media (max-width: 700px) { .service-index { grid-template-columns: 1fr; } }

/* Services navigation follows the same groups as the directory and enquiry form. */
.service-menu > .container { padding-block: 23px 35px; }
.service-menu-head { display: flex; align-items: center; gap: 24px; padding-bottom: 17px; border-bottom: 1px solid #626571; }
.service-menu-head h2 { color: white; font-size: 1.75rem; }
.service-menu-head .text-link { color: white; }
.service-menu-close { display: grid; place-items: center; margin-left: auto; min-width: 44px; min-height: 44px; color: white; background: transparent; border: 0; }
.service-menu-groups { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 19px; padding-top: 17px; align-items: start; }
.service-menu-group summary { color: var(--highlight); cursor: pointer; font-weight: 650; line-height: 1.3; padding-block: 6px 9px; }
.service-menu-group ul { list-style: none; padding: 0; margin: 0; }
.service-menu-group a { display: block; color: var(--light-ink); font-size: .9rem; line-height: 1.3; padding-block: 6px; min-height: 32px; }
.service-menu-group a:hover, .service-menu-group a[aria-current="page"] { color: var(--highlight); text-decoration: underline; }
.service-menu :focus-visible { outline-color: var(--highlight); outline-offset: 2px; }
.service-category-nav { display: flex; flex-wrap: wrap; gap: 7px 24px; padding-block: 16px; border-bottom: 1px solid var(--line); }
.service-category-nav a { display: inline-flex; align-items: center; min-height: 36px; font-weight: 570; }
.service-directory { padding-block: 35px 60px; }
.service-category + .service-category { margin-top: 36px; }
.service-category .section-head { margin-bottom: 15px; }
.service-category h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.service-category h3 { font-size: clamp(1.1rem, 2vw, 1.34rem); letter-spacing: -.012em; }
.service-category .service-index article { padding-block: 12px 14px; }
.service-category .service-index p { margin-bottom: 0; }
.service-faq details + details { margin-top: 12px; }
@media (min-width: 821px) and (max-width: 1100px) {
  .service-menu-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 32px; }
}
@media (max-width: 820px) {
  .service-menu > .container { padding-block: 11px 28px; }
  .service-menu-head { gap: 13px; padding-bottom: 10px; }
  .service-menu-head h2 { font-size: 1.3rem; }
  .service-menu-head .text-link { font-size: .9rem; }
  .service-menu-groups { grid-template-columns: 1fr; gap: 0; padding-top: 3px; }
  .service-menu-group { border-bottom: 1px solid #ffffff29; }
  .service-menu-group summary { padding-block: 12px; min-height: 44px; }
  .service-menu-group ul { padding: 0 0 9px 17px; }
  .service-menu-group a { display: flex; align-items: center; min-height: 44px; }
  .service-category-nav { gap: 5px 16px; }
}

/* Editorial service pages keep the decision, approach and outcomes distinct. */
.service-hero-inner { padding-block: 48px 59px; }
.service-hero-inner h1 { margin-top: 16px; max-width: 1040px; font-size: clamp(2.55rem, 5.35vw, 5.05rem); }
.service-deck { max-width: 780px; font-size: clamp(1.08rem, 1.95vw, 1.34rem); margin: 17px 0 23px; }
.service-section-nav { border-bottom: 1px solid var(--line); }
.service-section-nav > .container { display: flex; flex-wrap: wrap; column-gap: clamp(15px, 3.6vw, 47px); padding-block: 4px; }
.service-section-nav a { display: inline-flex; align-items: center; min-height: 42px; color: var(--blue); font-weight: 570; }
.service-overview-copy .section-head { margin-bottom: 16px; }
.service-overview-copy h2, .service-approach .section-head h2 { font-size: clamp(2rem, 4vw, 3.45rem); }
.service-overview-copy > div > p, .service-approach-lead { font-size: clamp(1.02rem, 1.6vw, 1.16rem); line-height: 1.7; }
.service-overview-copy .hero-note { padding-top: 17px; margin-top: 7px; }
.service-overview-copy .hero-note h2 { font-size: 1.35rem; }
.service-approach { background: #f0f1f4; }
.service-approach .stack-list > div { border-top-color: #cfd4d8; }
.service-approach .stack-list > div:last-child { padding-bottom: 0; }
.service-outcomes { border-top: 2px solid var(--green); }
.service-outcomes > h3 { font-size: 1.12rem; margin-top: 18px; }
.service-outcomes .tick-list { margin-top: 7px; }
.service-faq .section-head { margin-bottom: 16px; }
.service-faq details { border-top: 1px solid var(--line); padding-block: 13px; }
.service-faq details + details { margin-top: 0; }
.service-faq summary { cursor: pointer; color: var(--ink); font-weight: 620; }
.service-faq details p { margin-top: 6px; }
@media (max-width: 820px) {
  .service-hero-inner { padding-block: 31px 39px; }
  .service-hero-inner h1 { margin-top: 11px; }
  .service-section-nav a { font-size: .9rem; }
  .service-overview-copy .hero-note { margin-top: 0; }
}
