:root {
  --mint: #e3faf8;
  --mint-bright: #c9ffff;
  --teal-readable: #4f797d;
  --ink: #102c2f;
  --deep: #294f54;
  --line: rgba(20, 52, 56, .23);
  --content-left: max(2.5rem, calc((100vw - 72rem) / 2));
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--mint); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 1.0625rem; line-height: 1.65; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .22em; }
a:hover { text-decoration-thickness: .13em; }
a:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.15; }
h1 { font-size: clamp(2rem, 4.1vw, 3.75rem); letter-spacing: -.035em; font-weight: 700; }
h2 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); letter-spacing: -.02em; }
h3 { font-size: 1.1875rem; }
p + p { margin-top: 1rem; }
ul { margin: 1rem 0 0; padding-left: 1.15rem; }
li { padding-left: .2rem; }
li + li { margin-top: .3rem; }
address { font-style: normal; }
.container { width: min(72rem, calc(100% - 5rem)); margin-inline: auto; }
.skip-link { position: absolute; z-index: 2; top: .75rem; left: 1rem; padding: .65rem 1rem; background: white; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.masthead { --art-width: min(2172px, max(100vw, calc((100vw - var(--content-left)) / .885819521179))); --logo-left: calc(var(--art-width) * .114180478821); --art-shift: calc(var(--content-left) - var(--logo-left)); --art-split: 35.125%; position: relative; background: var(--teal-readable); }
.brand-banner { display: block; width: 100%; overflow: hidden; background: linear-gradient(180deg, #e9fafd 0 50.64%, #7ebbc0 50.64% 100%) left / calc(var(--art-split) + var(--art-shift)) 100% no-repeat, linear-gradient(180deg, #6c999d 0 50.64%, #abc5c6 50.64% 100%) right / calc(100% - var(--art-split) - var(--art-shift)) 100% no-repeat; }
.brand-banner img { width: var(--art-width); max-width: none; height: auto; transform: translateX(var(--art-shift)); }
.brand-tagline { position: absolute; z-index: 1; left: 50%; width: calc(100% - var(--content-left) * 2); top: 74%; transform: translate(-50%, -50%); color: #fff; text-align: center; font-size: min(3.375rem, calc((100vw - var(--content-left) * 2) / 30.5), calc(var(--art-width) * .027)); line-height: 1.3; font-weight: 600; letter-spacing: -.015em; text-shadow: 0 1px 2px rgba(16, 44, 47, .85), 0 0 1px rgba(16, 44, 47, .85); }
.intro { padding-block: 3.5rem; }
.eyebrow { margin-bottom: .75rem; text-transform: uppercase; font-size: .8rem; font-weight: 700; letter-spacing: .12em; }
.intro-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: end; }
.intro h1 { max-width: 42rem; }
.intro-contact { border-left: 1px solid var(--line); padding-left: 2.5rem; }
.intro-contact a { display: inline-block; }
.intro-contact p { margin-top: .4rem; }
.lead { max-width: 48rem; margin-top: 1.5rem; font-size: 1.1875rem; }
.services { background: var(--teal-readable); color: #fff; }
.service-row { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.4fr); gap: 3.5rem; padding-block: 3.75rem; border-bottom: 1px solid rgba(255, 255, 255, .24); align-items: start; }
.service-row:last-child { border-bottom: 0; }
.service-copy h2 { color: white; }
.service-copy > p { margin-top: 1rem; }
.service-copy h3 { margin-top: 1.6rem; }
.service-copy .subheading { font-size: 1.625rem; color: white; margin-top: 2.5rem; }
.service-copy ul { margin-top: .8rem; }
.project { min-width: 0; }
.project-title { font-size: .875rem; font-weight: 700; margin-bottom: .8rem; }
.comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.comparison figure { margin: 0; background: var(--mint); min-width: 0; }
.lightbox-link { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.lightbox-link:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.pointer-input .lightbox-link:focus { outline: none; }
.pswp__custom-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 1rem 1.25rem; background: var(--ink); color: #fff; text-align: center; font-size: 1rem; line-height: 1.4; }
.pswp__button:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }
.comparison img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.comparison figcaption { padding: .55rem .85rem; font-size: .8125rem; font-weight: 700; line-height: 1.5; color: var(--ink); }
.funding { padding-block: 3.75rem; }
.funding-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.funding p { margin-top: 1rem; }
.qualification-list { margin-top: 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.qualification { border-top: 1px solid var(--line); padding-top: 1rem; }
.qualification h3 { font-size: 1.0625rem; }
.qualification p { margin-top: .5rem; font-size: .9375rem; }
.sources { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; font-size: .875rem; }
.contact { background: var(--deep); color: #fff; padding-block: 3.75rem; }
.contact a:focus-visible, footer a:focus-visible { outline-color: var(--mint-bright); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.contact p { margin-top: 1rem; }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.contact-details .label { margin: 0 0 .5rem; text-transform: uppercase; font-size: .75rem; letter-spacing: .1em; }
footer { background: var(--deep); color: #fff; font-size: .8125rem; }
.footer-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-block: 1.5rem; border-top: 1px solid rgba(227, 250, 248, .24); }
.legal-links { display: flex; gap: 1.5rem; }
.legal-links a { padding-block: .25rem; }
.legal-content { max-width: 52rem; padding-block: 3rem 4rem; overflow-wrap: anywhere; hyphens: auto; }
.legal-content h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); margin-bottom: 1.5rem; }
.legal-content h2 { font-size: 1.375rem; margin: 2rem 0 .8rem; }
.legal-content a { overflow-wrap: anywhere; }
.back-link { display: inline-block; margin-bottom: 2rem; }
@media (max-width: 60rem) {
  :root { --content-left: 1.5rem; }
  .container { width: calc(100% - 3rem); }
  .intro-top { grid-template-columns: 1fr; gap: 1.75rem; }
  .intro-contact { border-left: 0; padding-left: 0; }
  .service-row { gap: 2rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
  .comparison { grid-template-columns: 1fr; }
  .funding-grid { gap: 2.5rem; }
  .contact-grid { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 45rem) {
  :root { --content-left: 1.25rem; }
  .container { width: calc(100% - 2.5rem); }
  .masthead { --art-width: 100vw; --logo-left: 2.555555556vw; --art-split: 59.777777778%; }
  .brand-tagline { width: calc(100% - var(--content-left) * 2); font-size: 1rem; }
  .tagline-ending { display: block; }
  .intro { padding-block: 2.5rem; }
  .intro-top { gap: 1.5rem; }
  .lead { font-size: 1.0625rem; }
  .service-row { grid-template-columns: 1fr; gap: 2rem; padding-block: 2.75rem; }
  .comparison { grid-template-columns: 1fr; gap: 1rem; }
  .funding-grid, .qualification-list { grid-template-columns: 1fr; gap: 2rem; }
  .funding, .contact { padding-block: 2.75rem; }
  .contact-details { grid-template-columns: 1fr; gap: 1.5rem; }
  .footer-inner { display: block; }
  .legal-links { margin-top: .75rem; }
  .legal-content { padding-block: 2rem 3rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
