/* Homepage and shared footer: presentation colours, responsive editorial layout. */
.intro { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px,6vw,90px); align-items:center; padding-top:76px; padding-bottom:76px; }
.intro-heading { min-width:0; }
.intro-heading .eyebrow { color:var(--blue); margin-bottom:18px; }
.intro-heading h2 { font-size:clamp(26px,2.5vw,38px); line-height:1.2; max-width:600px; margin-bottom:22px; }
.intro-heading>p:not(.eyebrow) { color:var(--muted); max-width:510px; font-size:16px; line-height:1.7; margin-bottom:26px; }
.intro-services { border-top:1px solid #dbe4ea; }
.intro-service { display:grid; grid-template-columns:30px minmax(0,1fr) 22px; gap:18px; padding:25px 12px; border-bottom:1px solid #dbe4ea; color:var(--ink); transition:background .22s, padding .22s; }
.intro-service:hover,.intro-service:focus-visible { text-decoration:none; background:#f3f8fc; padding-left:20px; }
.intro-service:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.service-number { color:var(--blue); font-size:12px; font-weight:700; padding-top:3px; }
.intro-service h3 { font-size:18px; margin:0 0 8px; }
.intro-service p { font-size:14px; line-height:1.65; color:var(--muted); margin:0; }
.service-direction { color:var(--blue); align-self:center; }
.cta { gap:32px; }
.cta>div { max-width:800px; }
.site-footer { background:#f4f6f8; border-top:0; padding:52px 5% 108px; }
.site-footer .footer-grid { display:grid; grid-template-columns:1.2fr .7fr 1fr 1fr; gap:40px; max-width:1350px; margin:auto; }
.site-footer .footer-brand img { display:block; width:160px; height:auto; margin:-20px 0 12px; mix-blend-mode:multiply; }
.site-footer .footer-brand p { font-size:14px; line-height:1.75; color:var(--muted); margin:0 0 18px; }
.site-footer .footer-grid h2 { font-family:inherit; font-size:14px; line-height:1.4; font-weight:700; color:var(--ink); margin:0 0 24px; }
.site-footer .footer-grid a { font-size:14px; line-height:1.65; margin:0 0 7px; width:fit-content; max-width:100%; overflow-wrap:anywhere; }
.site-footer .footer-grid a:not(.more) { color:#43515c; text-decoration:none; }
.site-footer .footer-grid a:not(.more):hover { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
.site-footer .footer-navigation nav { display:flex; flex-direction:column; align-items:flex-start; width:auto; gap:5px; padding:0; }
.site-footer .footer-navigation nav a { padding:0; }
.site-footer .footer-contact { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.footer-label { display:block; color:#697681; font-size:11px; letter-spacing:.04em; margin:12px 0 5px; }
.footer-contact h2+.footer-label,.footer-location h2+.footer-label { margin-top:0; }
.site-footer address { font-size:14px; line-height:1.8; font-style:normal; color:#43515c; margin:0 0 19px; }
.site-footer .footer-bottom { max-width:1350px; margin:36px auto 0; padding-top:20px; border-top:1px solid #d9e1e7; display:flex; align-items:center; justify-content:space-between; gap:18px; font-size:12px; color:#697681; }
.site-footer .footer-bottom .more { font-size:12px; }
.action-arrow--up { --arrow-x:0px; --arrow-y:-4px; }
@media(max-width:1050px) {
 .site-footer .footer-grid { grid-template-columns:1fr 1fr; gap:38px; }
 .site-footer .footer-grid>div:first-child { grid-column:auto; }
}
@media(max-width:760px) {
 .intro { grid-template-columns:1fr; gap:32px; padding-top:42px; padding-bottom:42px; }
 .intro-heading h2 { font-size:28px; }
 .intro-heading .button { width:100%; max-width:340px; }
 .intro-service { padding:22px 0; gap:12px; }
 .intro-service:hover { padding-left:8px; }
 .site-footer { padding:38px 6% 110px; }
 .site-footer .footer-grid { gap:32px 24px; }
 .site-footer .footer-brand,.site-footer .footer-location { grid-column:1/-1!important; }
 .site-footer .footer-grid h2 { margin-bottom:16px; }
 .site-footer .footer-bottom { align-items:flex-start; gap:12px; }
}
@media(max-width:420px) {
 .site-footer .footer-grid { grid-template-columns:1fr; }
}
