:root{color-scheme:light;--paper:#faf7ef;--ink:#193d70;--teal:#366d72;--rule:#aabbd1;--wash:#e8eff8;--navy:#173764;--blue:#21497d;--accent:#a5d2ce}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1.08rem/1.65 system-ui,sans-serif}a{color:inherit;text-underline-offset:.25em}a:focus-visible{outline:3px solid currentColor;outline-offset:5px}.wrap{width:min(1120px,calc(100% - 3rem));margin:auto}header .wrap,footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.35rem}header{border-bottom:1px solid var(--rule)}.brand{font-weight:800;text-decoration:none;letter-spacing:.1em;text-transform:uppercase}nav{display:flex;gap:1.15rem;flex-wrap:wrap;font-size:.9rem}.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:clamp(3rem,8vw,7rem)}h1,h2,h3{line-height:1.1;margin:.45em 0;font-weight:720;letter-spacing:-.045em}h1{font-size:clamp(2.25rem,4.5vw,3.85rem);max-width:18ch;text-wrap:balance}h2{font-size:clamp(2rem,4vw,3.4rem)}h3{font-size:1.55rem}p{max-width:61ch}.label{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}.button{display:inline-block;background:var(--teal);color:var(--paper);padding:.65rem 1.2rem;font-weight:700;text-decoration:none}.button:hover{background:var(--ink)}.art{margin:0;background:var(--wash);padding:1.5rem;border:1px solid var(--rule)}svg{display:block;width:100%;height:auto}.art figcaption{font-size:.78rem;text-align:center;margin-top:.6rem}.section{padding-block:clamp(2.75rem,6vw,5rem);border-top:1px solid var(--rule)}.service{display:grid;grid-template-columns:3rem 1fr 1.5fr;gap:1.3rem;padding-block:1.3rem;border-top:1px solid var(--rule);align-items:baseline}.service p{margin:0}.service h3{margin:0}.research{background:var(--wash)}footer{border-top:1px solid var(--rule);font-size:.85rem}.notice{font-size:.9rem;color:var(--teal)}@media(max-width:730px){.hero{grid-template-columns:1fr}.art{max-width:28rem}.service{grid-template-columns:2rem 1fr;gap:.6rem}.service p{grid-column:2}}
/* Blue anchors the page. Teal is reserved for details. */
header,.hero-band,footer{background:var(--navy);color:var(--paper);border-color:#52719a}
.hero-band .label{color:var(--accent)}
.hero-band .button{background:var(--paper);color:var(--navy)}
.hero-band .button:hover{background:var(--accent)}
.hero-figure{margin:0;width:100%}
.hero-figure img{display:block;width:100%;height:auto}
.ecd-link{cursor:pointer;text-decoration:underline;margin-top:.6rem;color:var(--teal)}@media(max-width:730px){.service-copy{grid-column:2}}
body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
nav a[aria-current="page"] { font-weight: 750; text-decoration-thickness: 2px; }
.page { padding-block: clamp(2.75rem, 6vw, 5rem); }
.page > .section:first-child { padding-top: 0; border-top: 0; }
.service-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; padding: 0; list-style: none; }
.service-overview li { border-top: 1px solid var(--rule); padding-top: 1rem; }
.service-overview a { font-size: 1.2rem; font-weight: 700; }
@media (max-width: 730px) {
  .service-overview { grid-template-columns: 1fr; }
}
.service h2 { margin: 0; font-size: 1.55rem; }
#contact h2 { font-size: 1.55rem; }

.services-intro { max-width: 65ch; margin-bottom: 2.5rem; }
.service-group { margin-block: 2.5rem; }
.service-group > h2, .services-close h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.service-group > h2 { margin-bottom: 1.25rem; }
.group-intro { margin-bottom: 1.5rem; max-width: 70ch; }
.service-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1rem; font-size: .92rem; }
.service-actions a { padding-block: .25rem; font-weight: 650; }
.service-actions .button { padding: .65rem 1.2rem; }
.services-close { background: var(--wash); padding: clamp(1.5rem, 4vw, 2.5rem); margin-top: 3rem; }
