.work-geography { color: #22242a; }
.work-geography .container { max-width: 1180px; }
.work-geography__hero { padding: 84px 0 64px; background: #f5f7fa; }
.work-geography__eyebrow { margin: 0 0 12px; color: #245fbe; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.work-geography h1 { max-width: 850px; margin: 0 0 22px; font-size: clamp(38px, 5vw, 68px); line-height: 1.08; }
.work-geography__hero p:not(.work-geography__eyebrow) { max-width: 780px; font-size: clamp(17px, 2vw, 21px); line-height: 1.6; }
.work-geography__intro { max-width: 780px; }
.work-geography__text-link, .work-geography__state-page { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; color: #245fbe; text-decoration: underline; text-underline-offset: 3px; }
.work-geography__map-section, .work-geography__directory { padding: 68px 0; }
.work-geography__map-section { background: #fff; }
.work-geography__section-heading { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 28px; }
.work-geography h2 { margin: 0 0 12px; font-size: clamp(29px, 3.5vw, 42px); line-height: 1.2; }
.work-geography__section-heading p, .work-geography__directory > .container > p { max-width: 760px; margin: 0; font-size: 17px; line-height: 1.6; }
.work-geography__reset { border: 1px solid #245fbe; border-radius: 4px; padding: 10px 16px; color: #245fbe; background: #fff; font: inherit; font-weight: 700; cursor: pointer; white-space: nowrap; }
.work-geography__reset:hover, .work-geography__reset:focus-visible { color: #fff; background: #245fbe; }
.work-geography__map { overflow: hidden; border: 1px solid #d9e0e8; border-radius: 8px; background: #f8fafc; }
.work-geography__map svg { display: block; width: 100%; height: auto; }
.work-geography__map-status { min-height: 28px; margin: 0; padding: 0 20px 18px; font-size: 15px; }
.work-geography__map-status:empty { display: none; }
.work-geography__selected-list { padding: 2px 20px 18px; }
.work-geography__selected-list strong { display: block; margin-bottom: 8px; }
.work-geography__selected-list ol { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0; padding-left: 22px; }
.work-geography__selected-list li { min-width: 190px; line-height: 1.5; }
.work-geography__selected-list a { color: #234f87; text-decoration: underline; text-underline-offset: 2px; }
.work-geography__map .state-shape { fill: #e7ecf2; stroke: #fff; stroke-width: 1.3; }
.work-geography__map .state-shape.has-projects { fill: #b8d4f9; cursor: pointer; }
.work-geography__map .state-shape.has-projects:hover, .work-geography__map .state-shape.has-projects:focus-visible { fill: #4389e5; stroke: #184c91; stroke-width: 2; outline: none; }
.work-geography__map .state-shape.best-estimate { fill: #d8c9ed; }
.work-geography__map .selected-shape { fill: #d7e8fb; stroke: #245fbe; stroke-width: 2; }
.work-geography__map .project-pin circle { fill: #245fbe; stroke: #fff; stroke-width: 2; }
.work-geography__map .project-pin text { fill: #fff; font-size: 12px; font-weight: 700; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.work-geography__map .project-pin:hover circle, .work-geography__map .project-pin:focus-visible circle { fill: #143f80; stroke: #101828; stroke-width: 3; }
.work-geography__states { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; margin-top: 42px; }
.work-geography__state { padding-top: 22px; border-top: 2px solid #b9c7d9; scroll-margin-top: 100px; }
.work-geography__state-heading { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.work-geography__state-heading h3 { margin: 0; font-size: 27px; }
.work-geography__state-heading span { color: #586575; font-size: 14px; }
.work-geography__view-hotspots { margin-left: auto; border: 0; padding: 4px 0; color: #245fbe; background: transparent; font: inherit; font-size: 14px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.work-geography__view-hotspots:focus-visible { outline: 2px solid #245fbe; outline-offset: 3px; }
.work-geography__state p { margin: 12px 0; }
.work-geography__estimate { color: #5a446e; font-size: 14px; line-height: 1.5; }
.work-geography__project-list { columns: 2; column-gap: 28px; padding-left: 25px; margin: 18px 0 0; }
.work-geography__project-list li { break-inside: avoid; margin: 0 0 10px; padding-left: 2px; line-height: 1.4; }
.work-geography__project-list a { color: #234f87; text-decoration: underline; text-underline-offset: 2px; }
.work-geography__cta { padding: 64px 0 76px; background: #182535; color: #fff; }
.work-geography__cta p { max-width: 640px; font-size: 18px; line-height: 1.6; }
.work-geography__button { display: inline-flex; align-items: center; gap: 12px; margin-top: 10px; padding: 14px 20px; border-radius: 4px; color: #182535; background: #fff; font-weight: 700; text-decoration: none; }
.work-geography__button:hover, .work-geography__button:focus-visible { color: #fff; background: #245fbe; }
.about-bar.work-page .work-location-inline { margin: 12px 0 0; color: #727b87; font-size: 13px; line-height: 1.5; text-align: center; }
.about-bar.work-page .work-location-inline a { color: inherit; font-weight: 500; text-decoration: underline; text-decoration-color: #aeb5be; text-underline-offset: 3px; }
.about-bar.work-page .work-location-inline a:hover { color: #303a48; text-decoration-color: currentColor; }
.work-geography-back { padding: 22px 0; background: #f2f7fd; }
.work-geography-back .container { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.work-geography-back a { color: #245fbe; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.state-location__breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 25px; font-size: 14px; }
.state-location__breadcrumb a { color: #245fbe; text-decoration: underline; text-underline-offset: 2px; }
.state-location__hero-cta { color: #fff; background: #245fbe; }
.state-location__hero-cta:hover, .state-location__hero-cta:focus-visible { color: #fff; background: #143f80; }
.state-location__body, .state-location__projects, .state-location__services { padding: 64px 0; }
.state-location__body { background: #fff; }
.state-location__prose { max-width: 850px !important; font-size: 18px; line-height: 1.7; }
.state-location__prose h2 { margin: 36px 0 14px; }
.state-location__prose h3 { margin: 26px 0 10px; font-size: 23px; }
.state-location__prose p, .state-location__prose ul { margin: 0 0 18px; }
.state-location__projects { background: #f5f7fa; }
.state-location__projects > .container > p { max-width: 830px; font-size: 16px; line-height: 1.6; }
.state-location__project-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 28px; }
.state-location__project { min-width: 0; background: #fff; border: 1px solid #dbe2ec; border-radius: 5px; overflow: hidden; }
.state-location__project a { display: flex; flex-direction: column; height: 100%; color: #1b436f; text-decoration: none; font-weight: 700; }
.state-location__project img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.state-location__project a > span { display: block; padding: 16px; line-height: 1.4; }
.state-location__project a:hover, .state-location__project a:focus-visible { color: #245fbe; background: #eaf3ff; }
.state-location__service-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.state-location__service-links a { padding: 13px 16px; border: 1px solid #cdd9e8; border-radius: 4px; color: #245fbe; font-weight: 700; text-decoration: none; }
.state-location__service-links a:hover, .state-location__service-links a:focus-visible { background: #eaf3ff; border-color: #245fbe; }
@media (max-width: 980px) { .state-location__project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) {
	.work-geography__hero { padding: 56px 0 46px; }
	.work-geography__map-section, .work-geography__directory { padding: 48px 0; }
	.work-geography__states { grid-template-columns: 1fr; }
	.work-geography__project-list { columns: 2; }
	.state-location__project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.work-geography__section-heading { align-items: start; flex-direction: column; }
	.work-geography__project-list { columns: 1; }
	.work-geography__map-status { padding: 0 12px 12px; }
	.state-location__body, .state-location__projects, .state-location__services { padding: 44px 0; }
	.state-location__project-grid { grid-template-columns: 1fr; }
}

/* Align the geography pages with the existing Work page's type, color, and CTA. */
.work-geography { color: #6a7282; font-family: "Montserrat", sans-serif; }
.work-geography__hero { padding: 140px 0 62px; background: #fff; text-align: center; }
.work-geography__eyebrow { color: #3b89fe; font-size: 13px; }
.work-geography h1 { max-width: 850px; margin: 0 auto 22px; color: #111; font-family: "Anton", sans-serif; font-size: clamp(38px, 5vw, 58px); font-weight: 400; line-height: 1.1; text-transform: uppercase; }
.work-geography__hero h1:after { content: ""; display: block; width: 75px; height: 4px; margin: 20px auto 0; border-radius: 999px; background: #3b89fe; }
.work-geography__hero p:not(.work-geography__eyebrow) { max-width: 800px; margin-left: auto; margin-right: auto; font-size: 18px; line-height: 1.65; }
.work-geography__intro { max-width: 800px; margin: 0 auto; }
.work-geography__map { position: relative; border-color: #e1e6ef; }
.work-geography__tooltip { position: absolute; z-index: 2; max-width: min(290px, calc(100% - 16px)); padding: 8px 12px; border-radius: 5px; color: #fff; background: #172a46; box-shadow: 0 8px 24px #0003; font-size: 13px; line-height: 1.3; pointer-events: none; }
.work-geography__tooltip[hidden] { display: none; }
.work-geography__inset-box { fill: #fff; stroke: #cbd8eb; stroke-width: 1.5; }
.work-geography__inset-label { fill: #172a46; font-family: "Montserrat", sans-serif; font-size: 14px; font-weight: 700; }
.work-geography__map .state-shape.has-projects { cursor: default; }
.work-geography__map .project-pin { cursor: pointer; }
.work-geography__map .project-pin .project-pin__target { fill: transparent; stroke: none; }
.work-geography__map .project-pin .project-pin__dot { fill: #1c4f9e; stroke: #fff; stroke-width: 2; }
.work-geography__map .project-pin text { fill: #fff; font-family: "Montserrat", sans-serif; font-size: 9px; font-weight: 700; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.work-geography__map .project-pin:hover .project-pin__dot, .work-geography__map .project-pin:focus-visible .project-pin__dot { fill: #111; stroke: #3b89fe; stroke-width: 3; }
.work-geography__map .project-pin:focus-visible { outline: none; }
.work-geography__state { min-width: 0; }
.work-geography__project-list { columns: 1; padding-left: 24px; margin: 18px 0 0; font-size: 16px; }
.work-geography__project-list li { min-width: 0; margin: 0 0 10px; line-height: 1.5; overflow-wrap: anywhere; }
.work-geography .work-geography__project-list a { color: #234f87; font-size: 16px; white-space: normal; overflow-wrap: anywhere; }
.work-geography__cta { padding: 82px 0; background: linear-gradient(255.9deg, #68964a 0%, #9bcb7b 23.08%, #9bcb7b 72.6%, #68964a 100%); color: #fff; text-align: center; }
#content-part.work-geography .work-geography__cta h2 { max-width: 900px; margin: 0 auto 18px; color: #fff; font-size: clamp(38px, 5vw, 66px); line-height: 1.12; text-transform: uppercase; }
.work-geography__cta p { max-width: 750px; margin: 0 auto 20px; color: #fff; font-size: 19px; line-height: 1.6; }
.work-geography__button { padding: 13px 26px; border-radius: 999px; color: #172a46; font-size: 15px; }
@media (max-width: 800px) { .work-geography__hero { padding: 120px 0 46px; } }
@media (max-width: 520px) { .work-geography__cta { padding: 58px 0; } }
