/* OAC corporate palette: neutral surfaces, navy identity, cobalt actions. */
:root {
  --navy: #002b6d;
  --deep: #202833;
  --ink: #202833;
  --blue: #2457d6;
  --gold: #2457d6;
  --muted: #58616d;
  --line: #dce0e5;
  --paper: #f3f5f7;
  --white: #ffffff;
}
body { background: var(--white); color: var(--ink); }
h2, h3 { color: var(--ink); }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible,
.partner-slider:focus-visible { outline-color: var(--blue); }
.topbar { background: var(--paper); color: var(--muted); border-bottom: 1px solid var(--line); }
.header { background: var(--white); border-color: var(--line); }
.brand strong { color: var(--navy); }
.brand small { color: var(--muted); }
.nav a { color: var(--ink); }
.nav a:hover { background: var(--paper); color: var(--navy); }
.nav a[aria-current=page] { background: var(--paper); color: var(--blue); }
.nav a[aria-current=page]:after { background: var(--blue); }
.nav .contact-link, .nav .contact-link[aria-current=page] { background: var(--blue); color: white; }
.nav .contact-link:hover { background: #1b44ad; color: white; }
.nav .contact-link[aria-current=page]:after { background: white; }
.menu-button { color: var(--ink); border-color: var(--line); }
.button { background: var(--blue); color: white; border-radius: 8px; box-shadow: none; }
.button:hover { background: #1b44ad; color: white; box-shadow: 0 5px 14px #20283314; }
.button.secondary { background: white; color: var(--navy); border-color: var(--line); }
.button.secondary:hover { background: var(--paper); color: var(--navy); }
.text-link, .text-link:hover { color: var(--blue); border-color: var(--line); }
.eyebrow, .hero-future .eyebrow, .project-copy .eyebrow { color: var(--muted); }
.eyebrow:before { background: #a5adb7; }
.hero, .hero-future { background: white; color: var(--ink); }
.hero:after, .hero-future:after, .hero-visual:after { display: none; }
.hero-future .hero-grid { padding-top: 72px; padding-bottom: 72px; min-height: 620px; }
.hero-future h1 { color: var(--ink); font-weight: 500; }
.hero-future h1 em { color: var(--navy); -webkit-text-fill-color: var(--navy); background: none; }
.hero-future .hero-copy { color: var(--muted); }
.hero-note, .hero-future .hero-note { color: var(--muted); }
.hero-note span:first-child { color: var(--ink); }
.hero-visual { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; box-shadow: none; }
.hero-visual img { border-radius: 0; height: 410px; }
.hero-visual figcaption { position: static; padding: 17px 21px; gap: 3px; }
.hero-visual figcaption span { color: var(--ink); font-size: .8125rem; letter-spacing: .06em; }
.hero-visual figcaption small { color: var(--muted); }
.sector-strip { background: var(--paper); border-top: 1px solid var(--line); border-bottom-color: var(--line); }
.sector-strip .label { color: var(--muted); }
.sector-strip strong { color: var(--ink); border-color: #c9ced5; }
.section-head p, .about-grid .body p, .step p { color: var(--muted); }
.service-card { background: white; border-color: var(--line); border-radius: 12px; box-shadow: none; }
.service-card:hover { background: var(--paper); border-color: #b9c1cb; box-shadow: 0 10px 24px #2028330a; }
.service-card p, .service-card .service-no { color: var(--muted); }
.line-icon { color: var(--navy); }
.card-link, .card-link:after { color: var(--blue); }
.service-card a:focus-visible:after { outline-color: var(--blue); }
.project-band { background: var(--paper); color: var(--ink); border-color: var(--line); border-radius: 14px; }
.project-copy h2 { color: var(--navy); }
.project-copy p, .project-meta small { color: var(--muted); }
.project-meta strong { color: var(--ink); }
.project-figure figcaption, .case-image figcaption { background: #ffffffed; color: var(--ink); border: 1px solid var(--line); }
.project-copy .text-link:hover { color: var(--blue); }
.step { border-color: var(--line); }
.step span { color: var(--muted); background: var(--paper); }
.cta { background: var(--paper); border-color: var(--line); }
.cta h2 { color: var(--ink); }
.cta p { color: var(--muted); }
.footer { background: var(--deep); color: #dce0e5; }
.footer h3, .footer .brand strong { color: white; }
.footer .brand small { color: #dce0e5; }
.footer a:hover { color: white; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { border-color: #ffffff26; }
.subhero { background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line); }
.subhero h1 { color: var(--navy); }
.subhero p, .breadcrumbs { color: var(--muted); }
.breadcrumbs a:hover { color: var(--blue); }
.company-subnav { border-color: var(--line); }
.company-subnav a { color: var(--ink); border-color: var(--line); }
.company-subnav a:hover { color: var(--blue); background: var(--paper); }
.partner-preview { background: white; border-color: var(--line); }
.partner-slider { scrollbar-color: #8e98a5 var(--paper); }
.partner-slider .partner-tile { border-color: var(--line); background: white; border-radius: 10px; }
.partner-tile:hover { box-shadow: 0 8px 20px #2028330a; }
.partner-slider .partner-tile strong { color: var(--ink); }
.partner-slider .partner-tile small, .slider-hint, .source-note { color: var(--muted); }
.endorsement-section { background: var(--paper); }
.endorsement-card { background: white; border-color: var(--line); border-radius: 12px; }
.credential-icon { background: var(--paper); color: var(--navy); border: 1px solid var(--line); border-radius: 10px; }
.endorsement-card>p:not(.record-type), .endorsement-card small { color: var(--muted); }
.client-preview { background: white; }
.client-tile, .client-preview .client-tile { background: white; color: var(--ink); border-color: var(--line); border-radius: 10px; }
.client-tile.client-tile-dark { background: var(--deep); border-color: var(--deep); color: white; }
.case-card { border-color: var(--line); box-shadow: none; border-radius: 12px; }
.case-card:hover { box-shadow: 0 12px 24px #2028330d; }
.case-body p, .case-body li, .case-meta small { color: var(--muted); }
.case-meta>span { color: var(--ink); background: var(--paper); }
.filter-button { color: var(--ink); border-color: var(--line); }
.filter-button:hover { background: var(--paper); border-color: #a5adb7; }
.filter-button[aria-pressed=true] { background: var(--blue); color: white; border-color: var(--blue); box-shadow: none; }
.aside, .form { background: var(--paper); border: 1px solid var(--line); box-shadow: none; }
.aside p, .form .note, .contact-details p, .contact-item small { color: var(--muted); }
.form input, .form select, .form textarea { color: var(--ink); border-color: #b9c1cb; }
.form input:hover, .form select:hover, .form textarea:hover { border-color: var(--muted); }
.contact-item { border-color: #c9ced5; }
.status { color: var(--blue); }
.detail-photo, .wide-fieldwork { background: var(--paper); border-color: var(--line); }
.detail-photo figcaption, .wide-fieldwork figcaption { color: var(--muted); background: var(--paper); }
.service-intro>p, .service-intro .accordion-instruction, .accordion-content p { color: var(--muted); }
.service-accordion, .service-detail { border-color: var(--line); }
.service-detail summary { color: var(--ink); }
.service-detail summary:hover { color: var(--blue); }
.service-detail[open] { background: var(--paper); }
.expand-icon { background: white; border-color: #b9c1cb; }
.expand-icon:before, .expand-icon:after { background: var(--ink); }
.service-detail[open] .expand-icon { border-color: var(--blue); }
.service-detail[open] .expand-icon:before { background: var(--blue); }
.values { background: var(--paper); }
.values .step { border-color: var(--line); }
@media(max-width:900px) {
  .hero-future .hero-grid { padding-top: 48px; padding-bottom: 52px; min-height: 0; }
  .hero-visual img { height: auto; aspect-ratio: 16/9; }
  .sector-strip strong { border-top-color: #c9ced5; }
}
@media(max-width:600px) {
  .hero-future .hero-grid { padding-top: 36px; padding-bottom: 40px; }
  .hero-visual img { height: auto; aspect-ratio: 4/3; }
  .hero-visual figcaption { padding: 14px 16px; }
  .hero-visual figcaption span { font-size: .75rem; }
  .sector-strip strong { border-bottom-color: var(--line); }
}

/* OAC identity with the blue, cyan and neutral palette supplied in the PayPal reference. */
:root {
  --navy: #002b6d;
  --deep: #012169;
  --ink: #002b6d;
  --blue: #003087;
  --gold: #003087;
  --muted: #536171;
  --line: #dce3e9;
  --paper: #f6f7f8;
  --accent: #009cde;
}
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.7; }
h1, h2, h3 { font-weight: 600; }
h2 { font-size: clamp(2.1rem, 3.5vw, 3.2rem); line-height: 1.13; letter-spacing: -.045em; }
h3 { letter-spacing: -.02em; }
.wrap { width: min(1280px, 88%); }
.topbar { background: var(--deep); color: #dbe4ed; border: 0; }
.topbar .wrap { font-size: .75rem; padding: 7px 0; }
.header { border-bottom: 0; }
.navrow { min-height: 96px; }
.brand strong { font-size: .9rem; letter-spacing: .015em; font-weight: 700; }
.brand small { letter-spacing: .1em; }
.nav a { border-radius: 6px; font-weight: 500; }
.nav a:hover, .nav a[aria-current=page] { background: transparent; color: var(--navy); }
.nav a[aria-current=page]:after { height: 2px; background: var(--blue); }
.nav .contact-link, .nav .contact-link[aria-current=page] { color: white; background: var(--navy); padding: 12px 20px; }
.nav .contact-link:hover { color: white; background: var(--deep); }
.button { border-radius: 6px; padding: 15px 23px; background: var(--blue); font-weight: 600; min-height: 52px; }
.button:hover { background: #012169; transform: translateY(-1px); box-shadow: none; }
.button span { font-size: 1.2rem; }
.text-link { color: var(--blue); border-bottom: 1px solid #00308755; }
.text-link:hover { color: #012169; border-color: #012169; }
.eyebrow { font-size: .8125rem; letter-spacing: .12em; font-weight: 600; }
.eyebrow:before { width: 22px; height: 2px; background: var(--blue); }
.hero-future { background: var(--navy); color: white; }
.hero-future .hero-grid { width: min(1440px, 100%); grid-template-columns: 1fr 1fr; gap: 0; padding: 0; min-height: 650px; align-items: stretch; }
.hero-content { padding: 72px clamp(30px, 5vw, 80px); align-self: center; }
.hero-future .eyebrow { color: #dbe4ed; font-size: .8125rem; letter-spacing: .11em; }
.hero-future .eyebrow:before { background: var(--accent); }
.hero-future h1 { font-size: clamp(3.2rem, 5.3vw, 5.1rem); color: white; line-height: 1.05; letter-spacing: -.055em; font-weight: 600; max-width: 620px; margin-bottom: 28px; }
.hero-future h1 em { display: inline; color: white; -webkit-text-fill-color: white; font-weight: 400; }
.hero-future .hero-copy { color: #dbe4ed; font-size: 1.0625rem; line-height: 1.8; max-width: 490px; }
.hero-future .button { color: var(--deep); background: var(--accent); padding: 15px 23px; }
.hero-future .button:hover { background: #f6f7f8; color: var(--deep); }
.hero-future .hero-note { border-top: 1px solid #ffffff33; margin-top: 35px; padding-top: 20px; color: #dbe4ed; font-size: .75rem; }
.hero-future .hero-note span:first-child { color: white; }
.hero-visual { border: 0; border-radius: 0; box-shadow: none; background: var(--deep); position: relative; display: flex; flex-direction: column; min-width: 0; }
.hero-visual img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; object-position: 57% center; border-radius: 0; flex: 1; }
.hero-visual figcaption { background: var(--deep); padding: 16px 25px; position: static; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; }
.hero-visual figcaption span { color: white; font-size: .75rem; font-weight: 500; letter-spacing: .08em; }
.hero-visual figcaption small { color: #dbe4ed; font-size: .75rem; }
.sector-strip { background: white; border-top: 0; border-bottom: 1px solid var(--line); }
.sector-strip .wrap { padding: 30px 0; gap: 28px; }
.sector-strip .label { color: var(--muted); font-size: .75rem; }
.sector-strip strong { color: var(--navy); font-size: 1rem; border-left: 1px solid var(--line); padding-left: 28px; font-weight: 500; }
.section { padding: 96px 0; }
.section-head { align-items: end; margin-bottom: 45px; gap: 65px; }
.section-head>p { max-width: 400px; font-size: 1rem; }
.service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 50px; }
.service-card { border: 0; border-top: 1px solid var(--line); border-radius: 0; background: white; display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 26px; row-gap: 10px; padding: 32px 10px 32px 0; min-height: 230px; }
.service-card:hover { background: white; border-color: var(--blue); transform: none; box-shadow: none; }
.service-top { grid-column: 1; grid-row: 1/4; min-height: 0; align-items: start; }
.service-card .service-no { display: none; }
.service-card .line-icon { width: 33px; height: 33px; color: var(--navy); margin-top: 2px; }
.service-card h3 { grid-column: 2; max-width: none; margin: 0; font-size: 1.4rem; line-height: 1.35; }
.service-card p { grid-column: 2; margin: 0; max-width: 450px; font-size: 1rem; }
.service-card .card-link { grid-column: 2; justify-content: start; gap: 16px; margin-top: 4px; }
.service-card .card-link:after { font-size: 1.2rem; }
.service-card a, .service-card a:focus-visible:after { border-radius: 0; }
.project-band { width: min(1280px, 88%); border-radius: 8px; border: 0; background: var(--paper); overflow: hidden; }
.project-copy { padding: 55px; }
.project-copy h2 { color: var(--navy); font-size: clamp(2rem, 3.2vw, 3rem); }
.project-meta { border-top: 1px solid var(--line); padding-top: 25px; margin-top: 28px; }
.project-figure figcaption { background: var(--deep); color: white; border: 0; border-radius: 3px; }
.approach { gap: 35px; }
.step span { background: transparent; color: var(--blue); padding: 0; font-size: .875rem; border-radius: 0; }
.step h3 { font-size: 1.125rem; }
.partner-preview { background: var(--paper); border: 0; }
.partner-slider { gap: 1px; padding: 0 0 19px; scroll-padding-left: 0; }
.partner-slider .partner-tile { border: 0; border-right: 1px solid var(--line); border-radius: 0; min-height: 146px; flex-basis: 210px; }
.partner-tile:hover { transform: none; box-shadow: none; }
.slider-hint { margin-top: 0; }
.endorsement-section { background: white; }
.endorsement-grid { gap: 30px; }
.endorsement-card { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 28px 0 12px; }
.credential-icon { width: 48px; height: 48px; color: var(--navy); background: transparent; border: 0; border-radius: 0; justify-content: start; }
.credential-icon svg { width: 36px; height: 36px; }
.endorsement-card h3 { font-size: 1.3rem; }
.client-preview { background: var(--paper); }
.client-tile, .client-preview .client-tile { border: 0; border-radius: 6px; }
.client-tile.client-tile-dark { background: var(--deep); }
.cta { background: var(--navy); color: white; border: 0; padding: 56px 0; margin-top: 0; }
.cta h2 { color: white; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.cta p { color: #dbe4ed; }
.cta .button { background: var(--accent); color: var(--deep); }
.cta .button:hover { background: #f6f7f8; }
.footer { background: var(--deep); padding-top: 65px; color: #dbe4ed; }
.footer h3 { font-weight: 600; }
.footer a:hover { color: var(--accent); }
.footer .brand strong { color: white; }
.footer .brand small, .footer-bottom { color: #bcc9d6; }
.subhero { background: var(--paper); border: 0; padding: 56px 0 70px; }
.subhero h1 { font-size: clamp(2.7rem, 4.5vw, 4.3rem); font-weight: 600; line-height: 1.1; letter-spacing: -.05em; }
.breadcrumbs { font-size: .8125rem; }
.subhero p { font-size: 1.125rem; max-width: 760px; }
.case-grid { gap: 48px 35px; }
.case-card { border: 0; border-radius: 8px 8px 0 0; box-shadow: none; background: white; }
.case-card:hover { transform: none; box-shadow: none; }
.case-body { padding: 27px 0 0; }
.case-body h2 { color: var(--navy); font-size: 1.7rem; line-height: 1.25; }
.case-meta>span { color: var(--blue); background: transparent; padding-left: 0; font-size: .8125rem; }
.case-meta small { color: var(--muted); }
.case-image figcaption { background: var(--deep); color: white; border: 0; border-radius: 3px; }
.filter-button { border-radius: 6px; }
.filter-button[aria-pressed=true] { background: var(--navy); border-color: var(--navy); }
.filter-button:hover { color: var(--blue); border-color: var(--blue); }
.filter-button[aria-pressed=true]:hover { color: white; }
.detail-layout { gap: 80px; }
.aside, .form { border: 0; border-radius: 8px; background: var(--paper); padding: 32px; }
.detail-photo { border: 0; border-radius: 8px; }
.detail-photo figcaption, .wide-fieldwork figcaption { background: var(--deep); color: #dbe4ed; }
.wide-fieldwork { border-radius: 8px; }
.service-detail summary { padding-top: 26px; padding-bottom: 26px; }
.service-detail[open] { background: var(--paper); }
.service-detail[open] .expand-icon, .service-detail[open] .expand-icon:before { border-color: var(--blue); }
.service-detail[open] .expand-icon:before { background: var(--blue); }
.form input, .form select, .form textarea { border-radius: 5px; }
.company-subnav a { border-radius: 5px; }
@media(max-width:1100px) {
  .hero-future .hero-grid { min-height: 610px; }
  .hero-content { padding: 54px 36px; }
  .hero-future h1 { font-size: 3.8rem; }
  .hero-visual img { min-height: 550px; }
  .service-grid { gap: 0 32px; }
  .service-card { column-gap: 20px; min-height: 265px; }
  .project-copy { padding: 38px; }
}
@media(max-width:900px) {
  .navrow { min-height: 86px; }
  .hero-future .hero-grid { grid-template-columns: 1fr; min-height: 0; padding: 0; }
  .hero-content { padding: 48px 6% 45px; }
  .hero-future h1 { font-size: clamp(3.2rem, 7vw, 4.6rem); max-width: 700px; }
  .hero-future h1 em br { display: none; }
  .hero-future .hero-copy { max-width: 590px; }
  .hero-future .hero-note { max-width: 590px; }
  .hero-visual img { height: auto; min-height: 0; aspect-ratio: 16/9; object-position: center; }
  .hero-visual figcaption { padding: 14px 6%; }
  .sector-strip .wrap { gap: 20px; }
  .sector-strip strong { border-left: 0; border-top: 1px solid var(--line); padding: 14px 0 0; }
  .section { padding: 68px 0; }
  .section-head { display: block; margin-bottom: 35px; }
  .section-head>p { max-width: 620px; margin-top: 24px; }
  .service-card { min-height: 290px; padding-top: 27px; padding-bottom: 27px; }
  .service-card h3 { font-size: 1.25rem; }
  .project-band { width: 88%; }
  .project-copy { padding: 40px; }
  .detail-layout { gap: 35px; }
}
@media(max-width:600px) {
  .wrap { width: 90%; }
  .brand strong { font-size: .77rem; }
  .hero-content { padding: 38px 5% 35px; }
  .hero-future h1 { font-size: clamp(2.75rem, 10vw, 3.7rem); line-height: 1.08; margin-bottom: 22px; }
  .hero-future .eyebrow { font-size: .75rem; letter-spacing: .06em; }
  .hero-future .hero-copy { font-size: 1rem; line-height: 1.75; }
  .hero-future .hero-note { margin-top: 28px; padding-top: 18px; }
  .hero-visual img { aspect-ratio: 4/3; min-height: 0; }
  .hero-visual figcaption { padding: 13px 5%; flex-direction: column; gap: 3px; }
  .sector-strip .wrap { grid-template-columns: 1fr; padding: 22px 0; gap: 0; }
  .sector-strip .label { margin-bottom: 9px; }
  .sector-strip strong { border-top: 0; border-bottom: 1px solid var(--line); padding: 13px 0; }
  .sector-strip strong:last-child { border-bottom: 0; }
  .section { padding: 52px 0; }
  h2 { font-size: 2.1rem; }
  .service-grid { grid-template-columns: 1fr; gap: 0; }
  .service-card { grid-template-columns: 34px minmax(0, 1fr); min-height: 0; padding: 26px 0; column-gap: 20px; }
  .service-card h3 { font-size: 1.3rem; }
  .service-card p { font-size: 1rem; }
  .service-card .line-icon { width: 29px; height: 29px; }
  .service-card .card-link { margin-top: 4px; }
  .project-band { width: 90%; }
  .project-copy { padding: 30px 24px; }
  .project-copy h2 { font-size: 2rem; }
  .partner-slider .partner-tile { flex-basis: 180px; min-height: 132px; }
  .endorsement-card { grid-template-columns: 44px minmax(0, 1fr); padding: 24px 0; column-gap: 20px; }
  .credential-icon { width: 44px; height: 44px; }
  .endorsement-card h3 { font-size: 1.2rem; }
  .case-grid { gap: 38px; }
  .case-body { padding: 22px 0 0; }
  .case-body h2 { font-size: 1.55rem; }
  .cta { padding: 42px 0; }
  .cta h2 { font-size: 2rem; }
  .footer { padding-top: 48px; }
  .subhero { padding: 34px 0 44px; }
  .subhero h1 { font-size: clamp(2.25rem, 8vw, 2.9rem); }
  .subhero p { font-size: 1rem; }
  .aside, .form { padding: 26px 22px; }
}

/* Reference-inspired finish: open spacing, rounded surfaces, navy-first actions. */
:root { --navy: #002b6d; --deep: #012169; --blue: #003087; --gold: #003087; --accent: #009cde; --paper: #f6f7f8; }
h2, h3 { color: var(--navy); }
.navrow { min-height: 100px; }
.nav .contact-link, .nav .contact-link[aria-current=page] { border-radius: 999px; padding: 12px 25px; }
.menu-button { border-radius: 50%; }
.button { background: var(--navy); border-radius: 999px; padding: 15px 28px; }
.button:hover { background: var(--blue); }
.button.secondary { border: 1px solid var(--navy); border-radius: 999px; }
.button.secondary:hover { background: var(--paper); }
.eyebrow:before { background: var(--accent); }
.hero-future { background: white; padding: 12px 0 34px; }
.hero-future .hero-grid { width: min(1360px, 94%); min-height: 610px; background: var(--navy); border-radius: 32px; overflow: hidden; }
.hero-content { padding: 58px clamp(28px, 4vw, 64px); }
.hero-future h1 { font-size: clamp(3.1rem, 4.8vw, 4.7rem); font-weight: 650; }
.hero-future h1 em { font-weight: 450; }
.hero-future .button, .cta .button { background: white; color: var(--navy); }
.hero-future .button:hover, .cta .button:hover { background: var(--paper); color: var(--blue); }
.hero-visual { margin: 24px 24px 24px 0; border-radius: 24px; overflow: hidden; }
.hero-visual img { min-height: 460px; }
.hero-visual figcaption { padding: 16px 22px; border-top: 4px solid var(--accent); }
.hero-visual figcaption span { font-size: .6875rem; }
.hero-visual figcaption small { font-size: .6875rem; }
.sector-strip .wrap { padding: 24px 0 36px; }
.sector-strip strong { font-weight: 600; }
.section-head { gap: 48px; }
.service-grid { gap: 22px; }
.service-card { background: var(--paper); border: 1px solid transparent; border-radius: 24px; padding: 30px; min-height: 248px; column-gap: 22px; transition: border-color .2s ease, transform .2s ease, background .2s ease; }
.service-card:hover { background: var(--paper); border-color: var(--accent); transform: translateY(-3px); }
.service-card a, .service-card a:focus-visible:after { border-radius: 24px; }
.service-card .line-icon { width: 36px; height: 36px; }
.card-link { font-weight: 600; }
.project-band { border-radius: 28px; }
.project-figure figcaption, .case-image figcaption { border-radius: 12px; }
.partner-slider { gap: 16px; padding: 4px 0 22px; scrollbar-color: var(--blue) #e5e9f0; }
.partner-slider .partner-tile { border: 1px solid #e5e9f0; border-radius: 20px; }
.partner-tile:hover { border-color: var(--accent); }
.credential-icon { background: var(--paper); border-radius: 16px; width: 64px; height: 64px; justify-content: center; }
.endorsement-card { border-top: 2px solid var(--accent); }
.client-tile, .client-preview .client-tile { border-radius: 18px; }
.client-tile.client-tile-dark { background: var(--navy); }
.cta { padding: 64px 0; }
.footer a:hover { color: white; }
.subhero { border-radius: 0 0 32px 32px; }
.case-card { border-radius: 24px; background: var(--paper); overflow: hidden; }
.case-body { padding: 28px; }
.case-card:hover { box-shadow: 0 8px 26px #002b6d0a; }
.filter-button, .company-subnav a { border-radius: 999px; }
.aside, .form, .detail-photo, .wide-fieldwork { border-radius: 24px; overflow: hidden; }
.form input, .form select, .form textarea { border-radius: 12px; }
.expand-icon { border-radius: 50%; }
.service-detail[open] .expand-icon { background: var(--navy); border-color: var(--navy); }
.service-detail[open] .expand-icon:before { background: white; }
@media(max-width:1100px) {
  .hero-future h1 { font-size: 3.5rem; }
  .hero-content { padding: 48px 30px; }
  .service-card { padding: 28px; }
}
@media(max-width:900px) {
  .navrow { min-height: 86px; }
  .hero-future .hero-grid { min-height: 0; }
  .hero-content { padding: 44px 7% 36px; }
  .hero-future h1 { font-size: clamp(3.2rem, 7vw, 4.6rem); }
  .hero-visual { margin: 0 24px 24px; }
  .hero-visual img { min-height: 0; }
  .service-card { grid-template-columns: 36px minmax(0, 1fr); column-gap: 18px; }
}
@media(max-width:600px) {
  .hero-future { padding: 4px 0 24px; }
  .hero-future .hero-grid { width: 94%; border-radius: 24px; }
  .hero-content { padding: 36px 7% 30px; }
  .hero-future h1 { font-size: clamp(2.5rem, 9.2vw, 3.6rem); }
  .hero-visual { margin: 0 16px 16px; border-radius: 18px; }
  .hero-visual figcaption { padding: 12px 16px; }
  .sector-strip .wrap { padding: 8px 0 26px; }
  .sector-strip strong { padding: 15px 0; font-size: .9375rem; }
  .service-grid { gap: 16px; }
  .service-card { padding: 25px 22px; border-radius: 20px; min-height: 0; }
  .service-card .line-icon { width: 32px; height: 32px; }
  .project-band { border-radius: 24px; }
  .endorsement-card { grid-template-columns: 48px minmax(0, 1fr); column-gap: 18px; }
  .credential-icon { width: 48px; height: 48px; border-radius: 14px; }
  .credential-icon svg { width: 30px; height: 30px; }
  .case-body { padding: 24px; }
  .cta { padding: 46px 0; }
}
@media(prefers-reduced-motion:reduce) { .service-card { transition: none; } .service-card:hover { transform: none; } }

/* Supplied brand lockup and quieter navigation. */
.brand-lockup { display:block; width:290px; max-width:100%; background:white; border-radius:16px; overflow:hidden; }
.brand-lockup img { display:block; width:100%; height:215px; object-fit:cover; object-position:center; }
.service-card .service-title-link { color:var(--navy); text-decoration:none; }
.service-card .service-title-link:hover { text-decoration:underline; text-underline-offset:5px; }
.service-card .service-title-link:after { content:''; position:absolute; inset:0; border-radius:24px; }
.service-card { min-height:215px; }
.detail-sidebar { align-self:start; }
.detail-photo.service-concept img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.case-image img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
@media(max-width:600px) { .service-card { min-height:0; } .brand-lockup { width:270px; } .brand-lockup img { height:200px; } }

/* Service pages: image-backed opening with restrained motion. */
.subhero.service-hero { position:relative; isolation:isolate; overflow:hidden; background:var(--navy); padding:0; min-height:440px; display:flex; align-items:center; }
.service-hero-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.service-hero:after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(0,43,109,.95) 0%,rgba(0,43,109,.87) 48%,rgba(1,33,105,.42) 100%); }
.service-hero-copy { padding-top:58px; padding-bottom:64px; }
.service-hero .breadcrumbs, .service-hero .breadcrumbs a { color:#ffffff; }
.service-hero .breadcrumbs a:hover { text-decoration:underline; text-underline-offset:4px; }
.service-hero h1 { color:white; max-width:740px; }
.service-hero p { color:white; max-width:640px; }
.service-content { max-width:1000px; }
.service-detail summary { transition:color .2s ease,background-color .2s ease; }
.service-detail summary:hover { background:var(--paper); }
.service-detail .expand-icon { transition:background-color .2s ease,border-color .2s ease; }
@keyframes service-image-arrive { from { transform:scale(1.045); } to { transform:scale(1); } }
@keyframes service-copy-arrive { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:no-preference) {
 .service-hero-image { animation:service-image-arrive 1.6s ease-out both; }
 .service-hero-copy { animation:service-copy-arrive .65s ease-out both; }
 .service-detail[open] .accordion-content { animation:service-copy-arrive .25s ease-out both; }
}
@media(max-width:900px) {
 .subhero.service-hero { min-height:400px; }
 .service-hero:after { background:linear-gradient(90deg,rgba(0,43,109,.94),rgba(0,43,109,.76)); }
}
@media(max-width:600px) {
 .subhero.service-hero { min-height:360px; border-radius:0 0 24px 24px; }
 .service-hero-copy { padding-top:38px; padding-bottom:44px; }
 .service-hero h1 { font-size:clamp(2.25rem,8vw,2.9rem); }
 .service-hero .breadcrumbs { font-size:.8125rem; }
}
@media(prefers-reduced-motion:reduce) { .service-detail summary,.service-detail .expand-icon { transition:none; } }

/* Stacked navigation brand, cohesive project imagery and partner carousel. */
.header .brand { flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:10px 0; min-width:210px; }
.header .brand .brand-mark { width:78px; height:45px; }
.header .brand>span:last-child { text-align:center; }
.header .brand strong { display:block; font-size:.82rem; letter-spacing:.025em; }
.header .brand small { display:block; font-size:.7rem; letter-spacing:.14em; margin-top:2px; }
.header .navrow { min-height:122px; }
.project-hero { min-height:450px; }
.project-hero .service-hero-image { object-position:center 36%; }
.case-card .case-image { overflow:hidden; }
.case-card .case-image img { display:block; transition:transform .65s ease; }
.case-card { transition:transform .3s ease,box-shadow .3s ease; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 .case-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px #002b6d14; }
 .case-card:hover .case-image img { transform:scale(1.035); }
}
.partner-controls { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; gap:20px; }
.partner-position { color:var(--muted); font-size:.875rem; margin:0; }
.partner-arrows { display:flex; gap:10px; }
.partner-arrows button { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--navy); background:white; font-size:1.3rem; cursor:pointer; transition:background-color .2s ease,color .2s ease; }
.partner-arrows button:hover:not(:disabled) { background:var(--navy); color:white; }
.partner-arrows button:disabled { opacity:.35; cursor:default; }
.partner-slider { gap:18px; scroll-snap-type:x mandatory; padding:2px 0 14px; scroll-behavior:smooth; scrollbar-width:thin; }
.partner-slider .partner-tile { flex:0 0 calc((100% - 54px)/4); min-width:0; min-height:164px; border:1px solid #e2e8f0; border-radius:18px; scroll-snap-align:start; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:22px 18px; }
.partner-slider .partner-logo { max-width:100%; }
.partner-slider .partner-tile img { max-width:150px; width:100%; height:60px; object-fit:contain; }
.partner-slider .partner-tile small { font-size:.75rem; }
.client-preview .client-tile { background:#fff; border:1px solid #e5e9f0; }
@media(max-width:900px) { .partner-slider .partner-tile { flex-basis:calc((100% - 36px)/3); } }
@media(max-width:600px) {
 .header .brand { min-width:0; align-items:flex-start; }
 .header .brand>span:last-child { text-align:left; }
 .header .brand .brand-mark { margin-left:47px; width:64px; height:39px; }
 .header .brand strong { font-size:.75rem; }
 .header .brand small { font-size:.65rem; }
 .header .navrow { min-height:109px; }
 .partner-slider { gap:12px; }
 .partner-slider .partner-tile { flex-basis:calc((100% - 12px)/2); min-height:142px; padding:18px 14px; }
 .partner-controls { margin-bottom:12px; }
}
@media(prefers-reduced-motion:reduce) { .case-card,.case-card .case-image img,.partner-arrows button { transition:none; } .partner-slider { scroll-behavior:auto; } }

/* Approved homepage direction: original OA artwork, white space and navy typography. */
:root { --navy:#002b6d; --deep:#012169; --blue:#003087; --gold:#009cde; --paper:#f6f7f8; --ink:#002b6d; --muted:#526176; }
.header .brand { min-width:210px; max-width:none; gap:0; }
.header .brand .brand-mark { width:98px; height:64px; margin:0; }
.header .brand strong { font-size:.875rem; line-height:1.35; white-space:nowrap; }
.header .brand small { font-size:.75rem; letter-spacing:.1em; margin-top:3px; }
.header .navrow { min-height:116px; }
.header .brand>span:last-child { text-align:center; }
.nav .contact-link,.button { background:var(--navy); border-radius:12px; }
.nav .contact-link:hover,.button:hover { background:var(--blue); }
h1,h2,h3 { color:var(--navy); }
.hero-future .hero-grid { padding-top:48px; padding-bottom:54px; min-height:0; grid-template-columns:1fr 1.08fr; gap:56px; }
.hero-future h1 { font-size:clamp(2.5rem,4.1vw,3.8rem); color:var(--navy); font-weight:700; line-height:1.09; letter-spacing:-.045em; max-width:620px; }
.hero-future .hero-copy { font-size:1.0625rem; line-height:1.65; }
.hero-content h1:after { content:''; display:block; width:56px; height:3px; margin-top:25px; background:var(--gold); }
.hero-visual { border-radius:14px; border:0; overflow:hidden; }
.hero-visual img { height:430px; width:100%; object-fit:cover; }
.hero-visual figcaption { padding:9px 16px; }
.hero-visual figcaption span { display:none; }
.hero-visual figcaption small { font-size:.75rem; }
.section { padding:66px 0; }
.section-head { gap:28px; margin-bottom:28px; }
h2 { font-weight:600; font-size:clamp(1.9rem,3vw,2.5rem); }
.eyebrow { font-size:.8125rem; }
.service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; border:0; }
.service-card { padding:0 22px 26px; overflow:hidden; border:1px solid #e3e8ef; border-radius:14px; min-height:0; background:white; }
.service-card-photo { width:calc(100% + 44px); max-width:none; height:205px; object-fit:cover; margin-left:-22px; transition:transform .6s ease; }
.service-card h3 { margin:21px 34px 10px 0; max-width:none; font-size:1.2rem; font-weight:600; }
.service-card p { font-size:1rem; line-height:1.6; margin:0 18px 0 0; }
.service-open { position:absolute; right:18px; bottom:22px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:var(--navy); font-size:1.2rem; pointer-events:none; }
.home-projects { background:var(--paper); }
.home-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.home-project-card { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:330px; border-radius:14px; overflow:hidden; background:var(--navy); }
.home-project-card img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.home-project-card:after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#002b6df5,transparent 85%); }
.home-project-card>div { padding:28px; }
.home-project-card h3 { color:white; font-size:1.4rem; font-weight:600; margin:0 0 9px; }
.home-project-card p { color:white; margin:0; font-size:1rem; }
.partner-slider { gap:14px; }
.partner-slider .partner-tile { flex-basis:calc((100% - 70px)/6); min-height:116px; gap:10px; padding:15px 12px; border-radius:12px; }
.partner-slider .partner-tile img { width:100%; max-width:120px; height:45px; }
.partner-slider .partner-logo { max-width:100%; max-height:55px; }
.partner-slider .partner-tile small { font-size:.75rem; }
.partner-controls { margin-bottom:12px; }
.partner-position { font-size:.875rem; }
.client-preview .client-tile { background:white; border:1px solid #e3e8ef; min-height:112px; border-radius:12px; }
.client-tile img { object-fit:contain; max-width:100%; }
.client-tile.client-tile-dark img { filter:brightness(0); }
.endorsement-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.endorsement-card { display:flex; flex-direction:column; align-items:flex-start; padding:24px; gap:10px; }
.endorsement-card h3 { font-size:1.125rem; font-weight:600; margin:3px 0; }
.endorsement-card p { font-size:1rem; margin:0; }
.credential-icon { width:48px; height:48px; border-radius:12px; display:grid; place-items:center; }
.credential-icon svg { width:30px; height:30px; }
.record-detail { width:100%; margin-top:14px; }
.record-detail summary { font-size:.875rem; cursor:pointer; color:var(--navy); display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; }
.record-detail>div { padding:14px 0; }
.record-detail img { display:block; width:100%; max-width:390px; height:auto; object-fit:contain; margin:14px 0; }
.record-detail span { font-size:.875rem; }
.source-note { font-size:.8125rem; line-height:1.6; }
.cmc-layout { display:grid; grid-template-columns:64px minmax(0,1fr); gap:20px; max-width:1000px; }
.cmc-layout p { max-width:700px; }
.cmc-layout .record-detail { max-width:440px; }
.footer { background:var(--navy); }
.footer .brand-mark { width:86px; height:58px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .home-project-card:hover img,.service-card:hover .service-card-photo { transform:scale(1.035); } }
@media(max-width:1050px) { .hero-future .hero-grid { gap:30px; } .partner-slider .partner-tile { flex-basis:calc((100% - 42px)/4); } .endorsement-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .hero-future .hero-grid { grid-template-columns:1fr; padding-top:34px; padding-bottom:38px; gap:28px; } .hero-visual img { height:310px; } .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-project-grid { grid-template-columns:1fr; } .section { padding:48px 0; } .section-head { align-items:flex-start; flex-direction:column; } .home-project-card { min-height:300px; } }
@media(max-width:600px) { .wrap { width:90%; } .header .brand { align-items:center; min-width:0; max-width:calc(100% - 70px); } .header .brand .brand-mark { width:84px; height:55px; margin:0; } .header .brand strong { font-size:.8125rem; white-space:normal; } .header .brand small { font-size:.75rem; letter-spacing:.04em; } .header .navrow { min-height:108px; gap:15px; } .header .brand>span:last-child { text-align:center; } .hero-future h1 { font-size:2.6rem; } .service-grid { grid-template-columns:1fr; gap:20px; } .service-card-photo { height:210px; } .partner-slider { gap:12px; } .partner-slider .partner-tile { flex-basis:calc((100% - 12px)/2); min-height:110px; } .sector-strip .wrap { display:grid; grid-template-columns:1fr; gap:0; padding:18px 0; } .sector-strip .label { padding-bottom:10px; } .sector-strip strong { border-left:0; border-top:1px solid var(--line); padding:12px 0; } .endorsement-grid { grid-template-columns:1fr; } .cmc-layout { grid-template-columns:1fr; } .footer .brand { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .home-project-card img,.service-card-photo { transition:none; } }
