/* Page-specific additions to MPP's existing Open Sans and blue palette. */
.services-hub { background: #f5f8fc; color: #24364a; }
.services-hub [hidden] { display: none !important; }
.services-hub .breadcrumb { background: #edf3f9; padding: 14px 32px; font-size: .875rem; }
.services-hub .breadcrumb a { color: #125ea9; text-decoration: underline; text-underline-offset: 3px; }
.services-hub .breadcrumb li::after { color: #53677e; }
.services-hub .breadcrumb [aria-current] { color: #24364a; font-weight: 600; }
.services-hub__hero { position: relative; isolation: isolate; background: #102f52; color: white; padding: 32px; }
.services-hub__hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; z-index: -2; }
.services-hub__hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,36,62,.96), rgba(12,36,62,.87) 53%, rgba(12,36,62,.32)); z-index: -1; }
.services-hub__hero-copy { max-width: 760px; }
.services-hub__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #125ea9; margin-bottom: 10px; }
.services-hub__hero .services-hub__eyebrow { color: #b9dcff; }
.services-hub h1 { font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.16; letter-spacing: -.025em; margin-bottom: 16px; }
.services-hub h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.3; color: #143d68; }
.services-hub__hero h2 { color: white; font-size: 1.25rem; margin-bottom: 8px; }
.services-hub__hero-copy > p:not(.services-hub__eyebrow) { max-width: 710px; line-height: 1.65; }
.services-hub__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.services-hub__button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 11px 20px; border: 1px solid #125ea9; border-radius: 5px; background: #125ea9; color: white; font-weight: 700; font-size: .9375rem; text-align: center; transition: background-color .18s ease; }
.services-hub__button:hover { background: #0b467f; }
.services-hub__button--outline { color: #125ea9; background: transparent; }
.services-hub__button--outline:hover { background: #e5effa; }
.services-hub__hero .services-hub__button { border-color: #a6d3ff; }
.services-hub__hero .services-hub__button--outline { color: white; border-color: white; }
.services-hub__hero .services-hub__button--outline:hover { background: #143d68; }
.services-hub :is(a, button):focus-visible { outline: 3px solid #125ea9; outline-offset: 4px; }
.services-hub__hero a:focus-visible { outline-color: #fff; }
.services-hub__catalog { padding: 32px; }
.services-hub__catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.services-hub__catalog-heading > p { max-width: 270px; font-size: .9375rem; color: #526478; }
.services-hub__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.services-hub__filters button { font: inherit; font-weight: 600; font-size: .9375rem; padding: 9px 18px; min-height: 44px; background: white; border: 1px solid #9bafc5; border-radius: 24px; color: #143d68; cursor: pointer; transition: background-color .18s ease; }
.services-hub__filters button:hover { background: #e5effa; }
.services-hub__filters button[aria-pressed="true"] { background: #125ea9; color: white; border-color: #125ea9; box-shadow: inset 0 0 0 1px white, 0 0 0 1px #125ea9; }
.services-hub__results { margin: 14px 0; color: #526478; font-size: .875rem; }
.services-hub__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; scroll-margin-top: 20px; }
.services-hub__card { display: flex; flex-direction: column; min-width: 0; background: white; border: 1px solid #d9e3ee; border-radius: 8px; overflow: hidden; transition: box-shadow .18s ease, border-color .18s ease; }
.services-hub__card:hover, .services-hub__card:focus-within { border-color: #6ba3dc; box-shadow: 0 6px 18px rgba(20,61,104,.1); }
.services-hub__card > img { display: block; width: 100%; aspect-ratio: 3 / 1; object-fit: cover; }
.services-hub__card-copy { display: flex; flex-direction: column; align-items: start; flex: 1; padding: 22px; gap: 12px; }
.services-hub__card h3 { color: #143d68; font-size: 1.25rem; line-height: 1.35; }
.services-hub__card-intro { font-weight: 600; color: #234b72; }
.services-hub__card-copy > p { font-size: .9375rem; line-height: 1.65; }
.services-hub__card a { color: #125ea9; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; font-size: .875rem; margin-top: auto; padding: 10px 0 2px; min-height: 44px; }
.services-hub__steps { padding: 32px; background: #e9f1fa; border-block: 1px solid #d9e3ee; }
.services-hub__steps > h2 { max-width: 760px; }
.services-hub__steps ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; list-style: none; margin-top: 26px; }
.services-hub__steps li { display: flex; gap: 14px; }
.services-hub__steps li > span { flex: none; color: #125ea9; font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.services-hub__steps h3 { color: #143d68; font-size: 1.0625rem; margin-bottom: 8px; }
.services-hub__steps li p { font-size: .9375rem; }
.services-hub .seo-faq { background: white; margin-block: 0; padding: 32px; }
.services-hub .seo-faq h2 { margin-bottom: 22px; }
.services-hub .seo-faq__item { background: #f5f8fc; }
.services-hub__invitation { padding: 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #e9f1fa; }
.services-hub__invitation > div:first-child { max-width: 580px; }
.services-hub__invitation p { margin-top: 12px; }
.services-hub__invitation .services-hub__actions { margin-top: 0; }
@media (max-width: 1099px) {
    .services-hub__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-hub__catalog-heading, .services-hub__invitation { display: block; }
    .services-hub__catalog-heading > p { max-width: none; margin-top: 10px; }
    .services-hub__invitation .services-hub__actions { margin-top: 22px; }
}
@media (max-width: 649px) {
    .services-hub :is(.breadcrumb, .services-hub__hero, .services-hub__catalog, .services-hub__steps, .seo-faq, .services-hub__invitation) { padding: 24px 18px; }
    .services-hub .breadcrumb { padding-block: 12px; }
    .services-hub__hero::before { background: rgba(12,36,62,.88); }
    .services-hub__grid, .services-hub__steps ol { grid-template-columns: minmax(0, 1fr); }
    .services-hub__card-copy { padding: 20px; }
    .services-hub__filters button { padding-inline: 14px; }
    .services-hub__steps ol { gap: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .services-hub *, .services-hub *::before, .services-hub *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
