/* Three columns: contact form, page links, then services with social profiles. The form stays first in reading order. */
.site-footer{padding:var(--section-padding) var(--gutter) 28px;scroll-margin-top:0}
.footer-inner{max-width:1600px;margin-inline:auto}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr) minmax(0,.85fr);grid-template-rows:auto 1fr;grid-template-areas:"form pages services" "form pages social";gap:40px clamp(40px,5vw,96px)}
/* Each block opens on a thin rule, like the service rows and journey steps. */
.footer-grid>*{min-width:0;border-top:1px solid;padding-top:18px}
.footer-form-column{grid-area:form}
.footer-pages{grid-area:pages}
.footer-services{grid-area:services}
.footer-social{grid-area:social;align-self:start}
.site-footer h2{font-family:var(--heading);font-size:var(--section-title-compact);font-weight:400;line-height:1.1;letter-spacing:-.03em;margin:0 0 12px}
.footer-intro{font-size:15px;line-height:1.6;margin:0 0 12px}
.footer-note{font-size:12px;line-height:1.6;margin:0 0 20px}
.footer-form{max-width:720px}
.footer-form fieldset{min-width:0;border:0;padding:0;margin:0}
.footer-field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:0 16px}
.footer-field{min-width:0;margin-bottom:16px}
.footer-field label{display:block;font-size:14px;line-height:1.4;margin-bottom:8px}
.footer-field input,.footer-field textarea{display:block;width:100%;min-width:0;border:1px solid;border-radius:var(--radius-surface);padding:12px 14px;font-size:16px;line-height:1.5;transition:border-color .2s,box-shadow .2s}
.footer-field input{min-height:48px}
.footer-field textarea{min-height:112px;max-height:320px;resize:vertical;field-sizing:content}
.footer-field input:focus-visible,.footer-field textarea:focus-visible{outline-offset:3px}
.footer-field input:disabled,.footer-field textarea:disabled{opacity:.55}
.footer-field-error{--error-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.6'/%3E%3Cpath d='M8 4.6v4.1M8 11.1v.3'/%3E%3C/svg%3E");display:flex;align-items:flex-start;gap:6px;margin:8px 0 0;font-size:13px;line-height:1.45}
.footer-field-error:empty{display:none}
.footer-field-error::before{content:'';flex-shrink:0;width:15px;height:15px;margin-top:1px;background:currentColor;-webkit-mask:var(--error-icon) center/contain no-repeat;mask:var(--error-icon) center/contain no-repeat}
.footer-submit{min-height:48px;padding-inline:24px;margin-top:2px;font-size:14px;transition:background .25s,color .25s,border-color .25s,transform .16s cubic-bezier(.23,1,.32,1)}
.footer-submit:active{transform:scale(.97)}
.footer-submit:disabled{opacity:.4}
.footer-form-status{min-height:22px;font-size:13px;line-height:1.6;margin:12px 0 0}
.site-footer h3{font-size:14px;line-height:1.4;font-weight:400;margin:0 0 10px}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links a,.footer-links button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;font-size:15px;line-height:1.4;text-align:left;background:transparent;border-radius:var(--radius-detail);text-underline-offset:4px;text-decoration-thickness:1px}
.footer-links svg{width:11px;height:11px;stroke:currentColor;stroke-width:1.3}
.footer-social-buttons{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.footer-social-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:0;cursor:default}
.footer-social-button svg{display:block;width:22px;height:22px}
.footer-social .footer-note{margin:6px 0 0}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid;margin-top:48px;padding-top:24px}
.footer-wordmark{font-family:var(--heading);font-size:28px;font-weight:400;line-height:1.1;letter-spacing:-.035em}
.footer-bottom p{font-size:12px;line-height:1.5;margin:0}
#service-individual-title,#service-team-title,#service-personalised-title{scroll-margin-top:24px}
@media(hover:hover) and (pointer:fine){
  .footer-links a,.footer-links button{min-height:36px;padding-block:6px}
  .footer-links a[href]:hover,.footer-links button:hover{text-decoration-line:underline}
}
@media(max-width:900px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto 1fr;grid-template-areas:"form form" "pages services" "pages social";column-gap:32px}
}
@media(max-width:620px){
  .footer-grid{gap:32px 24px}
  .footer-bottom{margin-top:32px}
}
