/* Contemporary: open layouts, fine rules and an intentionally staggered rhythm. */
.home-page .home-hero { padding-top:55px; padding-bottom:65px; overflow:hidden; }
.home-page .hero-layout { gap:75px; align-items:center; }
.home-page .hero-copy { padding-block:20px; }
.home-page .hero-copy h1 { letter-spacing:-.05em; }
.home-page .hero-copy h1 > span { position:relative; }
.home-page .hero-copy h1 > span::after { content:""; position:absolute; bottom:2px; left:0; right:0; height:3px; background:#84b4bb; transform:rotate(-2deg); }
.home-page .hero-portrait { min-height:535px; border-radius:100px 8px 8px 8px; overflow:visible; isolation:isolate; margin-bottom:20px; }
.home-page .hero-portrait > img { border-radius:100px 8px 8px 8px; }
.home-page .hero-portrait::before { content:""; position:absolute; inset:24px -18px -18px 22px; border:1px solid #a7c3c6; border-radius:100px 8px 8px 8px; z-index:-1; }
.home-page .hero-portrait::after { border-radius:0 0 8px 8px; }
.home-page .hero-portrait figcaption { bottom:-20px; left:-28px; right:28px; border-radius:4px; padding:20px; box-shadow:0 14px 30px #20364010; }
.home-page .portrait-location { top:28px; right:20px; }
.home-page .trust-strip { background:#fff; border:0; }
.home-page .trust-grid { border-top:1px solid #d7e3e4; border-bottom:1px solid #d7e3e4; padding-block:25px; }
.home-page .home-services { padding-top:80px; padding-bottom:85px; }
.home-page .split-heading h2 { max-width:540px; }
.home-page .home-services .split-heading { align-items:flex-end; margin-bottom:48px; }
.home-page .feature-services { grid-template-columns:1.13fr .9fr .98fr; gap:38px; align-items:start; }
.home-page .feature-service { border:0; border-radius:0; overflow:visible; background:none; }
.home-page .feature-service:hover { box-shadow:none; }
.home-page .feature-service:nth-child(2) { margin-top:65px; }
.home-page .feature-service:nth-child(3) { margin-top:24px; }
.home-page .service-photo { aspect-ratio:.95; border-radius:5px; overflow:hidden; }
.home-page .feature-service:nth-child(2) .service-photo { aspect-ratio:1.15; border-radius:5px 65px 5px 5px; }
.home-page .feature-service:nth-child(3) .service-photo { aspect-ratio:1.05; }
.home-page .service-number { top:15px; bottom:auto; left:15px; font-size:9px; padding:8px 10px; }
.home-page .service-copy { padding:23px 0 20px; border-bottom:1px solid #c3d7db; }
.home-page .service-copy h3 { font-size:23px; line-height:1.25; font-weight:500; max-width:300px; }
.home-page .service-copy h3 span { font-size:24px; }
.home-page .service-copy p { font-size:13px; }
.home-page .service-caption { margin-top:18px; }
.home-page .service-shortcuts { margin-top:40px; }
.home-page .home-team { background:#f4f7f6; padding-top:90px; padding-bottom:85px; }
.home-page .team-layout { grid-template-columns:1.05fr 1fr; gap:85px; align-items:center; }
.home-page .team-photo { overflow:visible; border-radius:0; padding:0 0 28px 22px; }
.home-page .team-photo > img { border-radius:5px 5px 90px 5px; aspect-ratio:1; }
.home-page .photo-note { left:0; bottom:0; padding:22px 25px; border-radius:3px; box-shadow:0 9px 20px #20364008; border-left:2px solid #87b4be; }
.home-page .team-copy > .eyebrow { display:block; max-width:200px; padding-bottom:18px; border-bottom:1px solid #c5d6d8; margin-bottom:25px; }
.home-page .team-copy h2 { font-weight:500; }
.home-page .home-process { padding-top:75px; padding-bottom:65px; }
.home-page .process-grid { gap:40px; margin-top:42px; }
.home-page .process-grid li { position:relative; padding-top:27px; }
.home-page .step-number { display:inline-block; font-size:30px; color:#809fa6; font-weight:400; line-height:1; letter-spacing:-.06em; }
.home-page .process-grid h3 { margin-top:18px; font-size:17px; }
.home-page .home-area { padding-bottom:75px; }
.home-page .area-panel { background:none; border:1px solid #cbdcdf; border-radius:4px 65px 4px 4px; padding:48px; gap:60px; position:relative; }
.home-page .area-panel::before { content:""; position:absolute; left:48px; top:-2px; width:60px; height:3px; background:#087999; }
.home-page .area-places { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; align-content:start; }
.home-page .area-places > a { margin:0; padding:17px 0; border-bottom:1px solid #cbdcdf; color:#203640; font-size:15px; display:flex; justify-content:space-between; gap:10px; }
.home-page .area-places > a:not(:last-child)::after { content:"↗"; color:#087999; }
.home-page .area-places > a:last-child { grid-column:1/-1; font-size:11px; border:0; color:#087999; }
.home-page .grev-section .section-header { text-align:left; }
.home-page .grev-card { border-radius:3px; box-shadow:none; border:0; background:#f4f7f6; border-top:2px solid #b7cfd3; }
.home-page .designed-faq { background:#fff; padding-block:75px; }
.home-page .designed-faq > .container { display:grid; grid-template-columns:.9fr 1.3fr; gap:75px; align-items:start; }
.home-page .designed-faq .section-header { text-align:left; margin:0; }
.home-page .designed-faq h2 { max-width:300px; }
.home-page .designed-faq .faq-list { margin:0; max-width:none; border-top:1px solid #cbdcdf; }
.home-page .designed-faq .faq-item { border-radius:0; background:none; margin:0; border:0; border-bottom:1px solid #cbdcdf; }
.home-page .designed-faq summary { padding-left:0; font-size:14px; }
.home-page .designed-faq .faq-item p { padding-left:0; }
.home-page .cta-content { position:relative; padding-left:45px; text-align:left; max-width:1050px; border-left:2px solid #76a6b1; }
.home-page .cta-content h2 { font-weight:500; max-width:760px; }
.home-page .cta-content p { margin-left:0; max-width:570px; }
.home-page .cta-buttons { justify-content:flex-start; }
.page-hero, .page-header { border-bottom:1px solid #d6e2e3; }
.page-hero h1, .page-header h1 { max-width:1000px; }
@media(max-width:1024px) {
 .home-page .hero-layout { gap:40px; }
 .home-page .feature-services { gap:25px; }
 .home-page .team-layout { gap:45px; }
 .home-page .designed-faq > .container { gap:40px; }
}
@media(max-width:767px) {
 .home-page .home-hero { padding-top:35px; padding-bottom:50px; }
 .home-page .hero-layout { gap:25px; }
 .home-page .hero-copy { padding-top:0; }
 .home-page .hero-portrait { min-height:390px; margin:0 10px 22px; border-top-left-radius:75px; }
 .home-page .hero-portrait > img { border-top-left-radius:75px; }
 .home-page .hero-portrait::before { right:-10px; left:15px; bottom:-12px; }
 .home-page .hero-portrait figcaption { left:-10px; right:12px; bottom:-22px; padding:16px; }
 .home-page .portrait-location { right:13px; font-size:7px; }
 .home-page .trust-grid { padding-block:23px; }
 .home-page .home-services { padding-top:55px; padding-bottom:55px; }
 .home-page .home-services .split-heading { margin-bottom:28px; align-items:flex-start; }
 .home-page .feature-services { grid-template-columns:1fr; gap:35px; }
 .home-page .feature-service:nth-child(n) { margin:0; }
 .home-page .feature-service:nth-child(n) .service-photo { aspect-ratio:1.3; }
 .home-page .feature-service:nth-child(2) { padding-left:20px; }
 .home-page .feature-service:nth-child(3) { padding-right:20px; }
 .home-page .service-copy { padding-top:20px; }
 .home-page .service-copy h3 { max-width:none; font-size:23px; }
 .home-page .service-shortcuts { margin-top:25px; }
 .home-page .home-team { padding-block:55px; }
 .home-page .team-layout { grid-template-columns:1fr; gap:36px; }
 .home-page .team-photo { padding-left:16px; }
 .home-page .photo-note { padding:18px 20px; }
 .home-page .home-process { padding-block:55px; }
 .home-page .process-grid { gap:28px; margin-top:30px; }
 .home-page .process-grid li { display:grid; grid-template-columns:40px 1fr; gap:0 16px; padding-top:22px; }
 .home-page .step-number { grid-row:span 2; font-size:26px; padding-top:3px; }
 .home-page .process-grid h3 { margin-top:0; }
 .home-page .process-grid p { max-width:none; }
 .home-page .home-area { padding-bottom:30px; }
 .home-page .area-panel { padding:30px 25px; gap:25px; grid-template-columns:1fr; }
 .home-page .area-panel::before { left:25px; }
 .home-page .area-places { gap:0 17px; }
 .home-page .area-places > a { font-size:14px; }
 .home-page .designed-faq { padding-block:55px; }
 .home-page .designed-faq > .container { grid-template-columns:1fr; gap:28px; }
 .home-page .designed-faq h2 { max-width:none; }
 .home-page .cta-content { padding-left:20px; }
}

/* Reset the earlier absolutely positioned mobile step numbers. */
@media(max-width:767px) {
 .home-page .process-grid li { padding-left:0; }
 .home-page .step-number { position:static; grid-column:1; grid-row:1 / span 2; }
 .home-page .process-grid h3 { grid-column:2; grid-row:1; }
 .home-page .process-grid p { grid-column:2; grid-row:2; }
}
