@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');

:root{--primary-navy:#062B52;--accent-green:#43A83B;--off-white:#F7F7F5;--dark-text:#20252A;--accessible-green:#2E7D32;--pure-white:#FFFFFF;--ink:var(--dark-text);--paper:var(--off-white);--white:var(--pure-white);--muted:rgba(32,37,42,.72);--line:rgba(6,43,82,.18);--input-border:rgba(6,43,82,.55);--pine:var(--primary-navy);--sand:var(--off-white);--container:1280px;--space:clamp(5rem,9vw,9rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;font-size:16px;line-height:1.6}body.menu-open{overflow:hidden}[hidden]{display:none!important}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.container{width:min(calc(100% - 64px),var(--container));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--pure-white);padding:.8rem 1rem;z-index:100}.skip-link:focus{top:1rem}.eyebrow{margin:0 0 1.5rem;text-transform:uppercase;letter-spacing:.16em;font-size:.71rem;font-weight:600}.eyebrow-light{color:rgba(255,255,255,.75)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:"Manrope",sans-serif;font-weight:400;line-height:1.06;letter-spacing:-.04em}h1{font-size:clamp(3.2rem,6vw,6.5rem);color:var(--pure-white);margin:0 0 2rem}h2{font-size:clamp(2.5rem,4.5vw,4.8rem);margin:0}h3{font-size:1.65rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-width:230px;padding:1rem 1.2rem;border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:600;transition:.25s ease}.button:hover,.button:focus-visible{background:var(--ink);color:var(--pure-white)}.button-light{background:var(--pure-white);border-color:var(--pure-white);color:var(--ink)}.button-light:hover,.button-light:focus-visible{background:transparent;color:var(--pure-white)}.button-small{min-width:0;padding:.75rem 1rem}.text-link{display:inline-flex;gap:.7rem;align-items:center;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:.25rem}.text-link-light{color:var(--pure-white)}.section{padding-block:var(--space)}.section-heading{margin-bottom:clamp(3rem,6vw,6rem)}.split-heading{display:grid;grid-template-columns:1.5fr .6fr;align-items:end;gap:3rem}.split-heading>p{max-width:390px;color:var(--muted);margin:0 0 .4rem}
.site-header{position:absolute;z-index:20;width:100%;color:var(--pure-white);border-bottom:1px solid rgba(255,255,255,.25)}.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:baseline;gap:.55rem;text-transform:uppercase}.brand-mark{font-family:"Manrope",sans-serif;font-size:1.55rem;font-weight:600;letter-spacing:.08em}.brand-name{font-size:.69rem;letter-spacing:.27em}.site-nav{display:flex;align-items:center;gap:clamp(2rem,4vw,4rem)}.site-nav ul{display:flex;gap:clamp(1.2rem,2.2vw,2.2rem);list-style:none;padding:0;margin:0}.site-nav li a{font-size:.78rem;letter-spacing:.04em;opacity:.8}.site-nav li a:hover,.site-nav li a.is-active{opacity:1}.nav-cta{border-color:rgba(255,255,255,.55)}.nav-cta:hover{background:var(--pure-white);color:var(--ink)}.menu-toggle{display:none}
.hero{position:relative;min-height:780px;height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--primary-navy)}.hero-media,.hero-shade{position:absolute;inset:0}.hero-media{display:block;overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.hero-shade{background:linear-gradient(90deg,rgba(6,43,82,.72) 0%,rgba(6,43,82,.34) 52%,rgba(6,43,82,.08) 100%),linear-gradient(0deg,rgba(6,43,82,.42),transparent 58%)}.hero-content{position:relative;z-index:2;padding-bottom:clamp(4rem,8vh,7rem)}.hero-content h1{font-size:clamp(2.25rem,3.75vw,3.975rem)}.hero-copy{max-width:560px;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.4vw,1.18rem);margin-bottom:2.2rem}.hero-scroll{position:absolute;z-index:2;right:clamp(2rem,5vw,5rem);bottom:4rem;color:var(--pure-white);display:flex;align-items:center;gap:1.2rem;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem;writing-mode:vertical-rl}
.services{background:var(--paper)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.service-card{padding:2rem 2rem 0 0;min-height:280px;border-right:1px solid var(--line);display:flex;flex-direction:column}.service-card:not(:first-child){padding-left:2rem}.service-card:last-child{border-right:0}.service-number{font-size:.69rem;color:var(--muted);letter-spacing:.12em;margin-bottom:3.5rem}.service-card h3{margin-bottom:1.2rem}.service-card p{color:var(--muted);font-size:.91rem}
.projects{background:var(--pine);color:var(--pure-white)}.projects-heading{display:grid;grid-template-columns:1.4fr .6fr;gap:3rem;align-items:end}.projects-heading>p{max-width:430px;margin:0 0 .4rem;color:rgba(255,255,255,.62)}.project-story figure{margin:0}.story-image,.stage-image{overflow:hidden;background:var(--primary-navy)}.story-image img,.stage-image img{width:100%;height:100%;object-fit:cover}.comparison{display:grid;grid-template-columns:.68fr 1.32fr;gap:clamp(1.5rem,4vw,4rem);align-items:end}.comparison-before .story-image{aspect-ratio:3/4}.comparison-after .story-image{aspect-ratio:16/10}.comparison-after .story-image img{object-position:center 50%}.comparison-item figcaption,.interior-feature figcaption{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,4rem);padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.24);margin-top:1.1rem}.comparison-item figcaption span,.interior-feature figcaption span{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.comparison-item figcaption p,.interior-feature figcaption p{margin:0;color:rgba(255,255,255,.58);font-size:.82rem}.project-stage{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2.5rem,7vw,7rem);align-items:center;margin-block:clamp(6rem,11vw,11rem)}.stage-image{aspect-ratio:4/3}.stage-copy{max-width:430px}.stage-copy h3{font-size:clamp(2rem,3.5vw,3.6rem);margin-bottom:1.5rem}.stage-copy>p:last-child{color:rgba(255,255,255,.6);max-width:370px}.interior-feature .story-image{aspect-ratio:16/9}.interior-feature .story-image img{object-position:center 42%}.interior-feature figcaption{grid-template-columns:1fr 1fr}.interior-feature figcaption p{max-width:430px}.about-content .detail-note{color:var(--ink);border-left:1px solid var(--ink);padding-left:1.2rem;margin-top:1.8rem}
.about-grid{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(4rem,10vw,10rem);align-items:center}.about-image{background:var(--sand);aspect-ratio:5/5.8;overflow:hidden}.about-image img{width:100%;height:100%;object-fit:cover}.about-content{max-width:600px}.about-content h2{margin-bottom:2.5rem}.about-content p{color:var(--muted);max-width:540px}.about-content .about-lead{color:var(--ink);font-size:1.25rem;line-height:1.55}.about-principle{margin-top:clamp(2.4rem,4vw,3.5rem)}.about-principle h3{font-size:clamp(1.35rem,2vw,1.75rem);margin:0 0 .75rem;letter-spacing:-.025em}.about-principle p{margin-bottom:0}.about-content .text-link{margin-top:2rem}
@media(min-width:901px){.about-content h2{font-size:clamp(2rem,3.6vw,3.84rem)}.project-cta .cta-heading h2{font-size:clamp(2.55rem,5.25vw,5.25rem)}.project-cta .form-step legend{font-size:clamp(1.6rem,3.2vw,2.88rem)}}
.guides{background:var(--pure-white)}.guide-list{border-top:1px solid var(--line)}.guide-card{display:grid;grid-template-columns:1fr 2.5fr auto;gap:2rem;align-items:center;padding:2.25rem 0;border-bottom:1px solid var(--line)}.guide-tag{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;color:var(--muted)}.guide-card h3{margin:0;font-size:clamp(1.3rem,2vw,2rem)}.guide-arrow{font-size:1.3rem;transition:transform .2s}.guide-card:hover .guide-arrow{transform:translate(4px,-4px)}
.project-cta{background:var(--primary-navy);color:var(--pure-white);padding:clamp(6rem,10vw,9rem) 0;scroll-margin-top:1rem}.cta-heading{text-align:center}.cta-heading h2{font-size:clamp(3.4rem,7vw,7rem);margin-bottom:1.5rem}.cta-heading>p:not(.eyebrow){color:rgba(255,255,255,.68);max-width:560px;margin:0 auto}.enquiry-form{max-width:980px;margin:clamp(3.5rem,7vw,6rem) auto 0;text-align:left}.form-shell{background:var(--off-white);color:var(--ink);padding:clamp(2rem,5vw,4.5rem)}.form-progress{display:grid;gap:.9rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.form-progress>div{display:flex;justify-content:space-between;gap:1rem;text-transform:uppercase;letter-spacing:.12em;font-size:.67rem;color:var(--muted)}.form-progress progress{display:block;width:100%;height:2px;border:0;background:var(--line);color:var(--pine);appearance:none}.form-progress progress::-webkit-progress-bar{background:var(--line)}.form-progress progress::-webkit-progress-value{background:var(--pine)}.form-progress progress::-moz-progress-bar{background:var(--pine)}.form-step{border:0;padding:0;margin:0;min-inline-size:0;min-height:430px}.form-step legend{display:block;width:100%;font-family:"Manrope",sans-serif;font-size:clamp(2rem,4vw,3.6rem);font-weight:400;line-height:1.08;letter-spacing:-.04em;margin-bottom:1rem}.form-step legend:focus{outline:0}.step-help{color:var(--muted);max-width:630px;margin-bottom:2.2rem}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.choice-grid-wide{grid-template-columns:repeat(2,1fr)}.choice-card{position:relative;min-height:68px;cursor:pointer}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card span{display:flex;align-items:center;width:100%;height:100%;padding:1rem 1.2rem;border:1px solid var(--line);font-size:.9rem;transition:border-color .18s,background-color .18s,color .18s}.choice-card:hover span{border-color:var(--ink)}.choice-card input:checked+span{background:var(--pine);border-color:var(--pine);color:var(--pure-white)}.choice-card input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.field-full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:.55rem}.field label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.field input,.field textarea{width:100%;border:1px solid var(--input-border);border-radius:0;background:var(--pure-white);color:var(--ink);padding:.95rem 1rem;min-height:54px}.field textarea{min-height:180px;resize:vertical}.field input:focus,.field textarea:focus{outline:2px solid var(--pine);outline-offset:2px;border-color:var(--pine)}.field-note{font-size:.72rem;color:var(--muted)}.upload-area{display:flex;min-height:190px;border:1px dashed var(--input-border);padding:2rem;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;color:var(--muted)}.upload-area:hover{border-color:var(--ink)}.upload-title{color:var(--ink);font-family:"Manrope",sans-serif;font-size:1.5rem;margin-bottom:.3rem}.upload-area input{margin-top:1.4rem;max-width:100%}.upload-area input::file-selector-button{border:1px solid var(--ink);background:transparent;padding:.7rem 1rem;margin-right:1rem;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;cursor:pointer}.file-list{list-style:none;padding:0;margin:1rem 0 0;font-size:.8rem;color:var(--muted)}.file-list li{padding:.35rem 0;border-bottom:1px solid var(--line)}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:3.5rem}.form-button{min-height:52px;border:1px solid var(--ink);border-radius:0;padding:.85rem 1.2rem;background:transparent;color:var(--ink);text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;font-weight:600;cursor:pointer}.form-button-primary{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-width:200px;background:var(--pine);border-color:var(--pine);color:var(--pure-white)}.form-button:hover,.form-button:focus-visible{outline:0;background:var(--ink);border-color:var(--ink);color:var(--pure-white)}.form-button-back{border-color:transparent;padding-inline:.2rem}.review-list{margin:2rem 0 0;border-top:1px solid var(--line)}.review-item{display:grid;grid-template-columns:minmax(130px,.55fr) 1.45fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}.review-item dt{text-transform:uppercase;letter-spacing:.1em;font-size:.67rem;color:var(--muted)}.review-item dd{margin:0;white-space:pre-wrap}.form-success{background:var(--off-white);color:var(--ink);padding:clamp(3rem,7vw,6rem);text-align:center}.form-success .eyebrow{color:var(--muted)}.form-success h3{font-size:clamp(2.8rem,6vw,5rem);margin-bottom:1.2rem}.form-success>p{max-width:560px;margin-inline:auto}.form-success .success-note{font-size:.82rem;color:var(--muted);margin-top:2rem}.site-footer{background:var(--primary-navy);color:var(--pure-white);padding-top:5rem}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;padding-bottom:5rem}.brand-footer{margin-bottom:2rem}.company-name{font-size:.82rem;color:rgba(255,255,255,.55)}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;font-size:.83rem}.footer-label{text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:rgba(255,255,255,.45);margin-bottom:.8rem}.footer-column a:hover,.footer-bottom a:hover{color:var(--pure-white)}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);min-height:90px;display:flex;align-items:center;justify-content:space-between;font-size:.68rem;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.08em}.footer-bottom p{margin:0}.footer-bottom div{display:flex;gap:2rem}
@media(max-width:900px){.container{width:min(calc(100% - 40px),var(--container))}.header-inner{height:76px}.menu-toggle{display:flex;flex-direction:column;gap:7px;background:transparent;border:0;padding:10px 0;color:inherit;z-index:3}.menu-toggle span:not(.sr-only){width:28px;height:1px;background:currentColor;transition:.25s}.menu-toggle[aria-expanded=true] span:nth-of-type(2){transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-of-type(3){transform:translateY(-4px) rotate(-45deg)}.site-nav{position:fixed;inset:0;background:var(--pine);padding:7rem 1.25rem 2rem;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;opacity:0;visibility:hidden;transition:.25s}.site-nav.is-open{opacity:1;visibility:visible}.site-nav ul{display:flex;flex-direction:column;gap:0}.site-nav li a{display:block;font-family:"Manrope",sans-serif;font-size:clamp(2rem,9vw,3.5rem);padding:.3rem 0;opacity:1}.nav-cta{padding:1.2rem}.hero{height:min(100svh,780px);min-height:720px}.hero-media img{object-position:center 52%}.hero-scroll{display:none}.service-grid{grid-template-columns:1fr 1fr}.service-card:nth-child(2){border-right:0}.service-card{border-bottom:1px solid var(--line);padding-bottom:2rem}.service-card:nth-child(3),.service-card:nth-child(4){padding-top:2rem}.projects-heading{grid-template-columns:1fr 1fr}.comparison{grid-template-columns:.8fr 1.2fr}.project-stage{grid-template-columns:1fr 1fr;gap:3rem}.about-grid{gap:4rem}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}}
@media(max-width:640px){.container{width:calc(100% - 32px)}.section{padding-block:4.8rem}.split-heading{grid-template-columns:1fr;gap:1.5rem}.split-heading>p{font-size:.92rem}.hero{height:auto;min-height:0;display:grid;grid-template-rows:auto auto;background:var(--pine);padding-top:76px}.hero-media{position:relative;inset:auto;grid-row:1;aspect-ratio:16/10}.hero-media img{object-position:center 52%}.hero-shade{display:none}.hero-content{grid-row:2;padding:2.2rem 0 3rem}.hero-content .eyebrow{margin-bottom:1rem}.hero-content h1{font-size:clamp(2.55rem,12vw,3.55rem);margin-bottom:1.3rem}.hero-copy{font-size:.95rem;max-width:100%;margin-bottom:1.8rem}.button{width:100%}.service-grid{grid-template-columns:1fr}.service-card,.service-card:not(:first-child),.service-card:nth-child(3),.service-card:nth-child(4){border-right:0;padding:1.7rem 0;min-height:270px}.service-number{margin-bottom:2.5rem}.projects-heading{grid-template-columns:1fr;gap:1.5rem}.projects-heading>p{font-size:.92rem}.comparison{grid-template-columns:1fr;gap:3.5rem}.comparison-before .story-image{aspect-ratio:3/4}.comparison-after .story-image{aspect-ratio:16/10}.comparison-item figcaption,.interior-feature figcaption{grid-template-columns:auto 1fr;gap:1.2rem}.project-stage{grid-template-columns:1fr;gap:2.5rem;margin-block:5rem}.stage-image{aspect-ratio:4/3}.stage-copy h3{font-size:2.15rem}.interior-feature .story-image{aspect-ratio:4/3}.interior-feature .story-image img{object-position:center 45%}.about-grid{grid-template-columns:1fr;gap:3rem}.about-image{aspect-ratio:3/4}.about-image img{object-position:center 24%}.about-content .about-lead{font-size:1.1rem}.guide-card{grid-template-columns:1fr auto;padding:1.6rem 0}.guide-tag{grid-column:1/-1}.guide-card h3{font-size:1.2rem}.footer-grid{grid-template-columns:1fr 1fr;gap:3rem}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{padding:1.8rem 0;flex-wrap:wrap;gap:1.2rem}.footer-bottom>a{width:100%}}
@media(max-width:900px){.enquiry-form{margin-top:4rem}.choice-grid{grid-template-columns:repeat(2,1fr)}.form-step{min-height:460px}}
@media(max-width:640px){.project-cta{padding-block:5rem}.cta-heading h2{font-size:clamp(3rem,14vw,4.4rem)}.enquiry-form{margin-top:3rem}.form-shell{padding:1.6rem 1.25rem}.form-progress{margin-bottom:2.4rem}.form-progress>div{font-size:.6rem}.form-step{min-height:0}.form-step legend{font-size:clamp(1.85rem,9vw,2.65rem)}.step-help{font-size:.9rem;margin-bottom:1.7rem}.choice-grid,.choice-grid-wide,.field-grid{grid-template-columns:1fr}.choice-card{min-height:58px}.choice-card span{padding:.8rem 1rem}.field-full{grid-column:auto}.upload-area{min-height:170px;padding:1.3rem}.form-actions{margin-top:2.5rem}.form-button{min-height:50px}.form-button-primary{min-width:170px}.review-item{grid-template-columns:1fr;gap:.35rem}.form-success{padding:3rem 1.25rem}}
@media(max-width:380px){.form-actions{align-items:stretch;flex-direction:column-reverse}.form-actions>span{display:none}.form-button,.form-button-primary{width:100%}.form-button-back{text-align:left}.upload-area input::file-selector-button{display:block;margin:0 0 .7rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media (min-width:641px) and (max-width:900px){.hero-content h1{font-size:clamp(2.85rem,6vw,3.4rem)}}
@media (max-width:640px){.hero-content h1{font-size:clamp(1.9rem,9vw,2.75rem)}}
.hero-actions{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3rem)}.hero-phone{color:var(--pure-white);border-bottom:1px solid rgba(255,255,255,.55);padding-bottom:.25rem;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:600}.hero-phone:hover,.hero-phone:focus-visible{border-color:var(--pure-white)}.testimonial{background:var(--pure-white)}.testimonial-inner{max-width:900px}.testimonial blockquote{font-family:"Manrope",sans-serif;font-size:clamp(2rem,4vw,3.8rem);font-weight:400;line-height:1.12;letter-spacing:-.04em;margin:clamp(2.5rem,5vw,4.5rem) 0;color:var(--ink)}.testimonial-meta{display:flex;justify-content:space-between;gap:2rem;padding-top:1.2rem;border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}
@media(max-width:640px){.hero-actions{align-items:stretch;flex-direction:column;gap:1.3rem}.hero-phone{align-self:flex-start}.testimonial blockquote{font-size:clamp(1.8rem,9vw,2.5rem)}.testimonial-meta{align-items:flex-start;flex-direction:column;gap:.65rem}}
.legal-page{background:var(--paper)}.legal-header{border-bottom:1px solid var(--line);padding-block:1.5rem}.legal-header .brand{color:var(--ink)}.legal-content{padding-block:clamp(4rem,8vw,7rem)}.legal-container{max-width:850px}.legal-content h1{color:var(--ink);font-size:clamp(3rem,7vw,5.5rem);margin-bottom:1rem}.legal-content h2{font-size:clamp(1.45rem,2.5vw,2rem);margin:2.7rem 0 1rem}.legal-content p{max-width:760px;color:var(--muted)}.legal-content a{text-decoration:underline;text-underline-offset:.2em}.legal-updated{font-size:.82rem}.legal-return{margin-top:3rem}
.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-status {
  margin-top: 1.5rem;
  padding: 1rem 1.125rem;
  border: 1px solid currentColor;
  font-weight: 600;
}

.form-status-pending {
  color: var(--off-white);
}

.form-status-success {
  color: var(--accent-green);
}

.form-status-error {
  color: var(--pure-white);
}

.areas-covered {
  padding-block: clamp(2.75rem, 4vw, 3.75rem);
  background: var(--pure-white);
  color: var(--off-white);
}

.areas-covered-inner {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
}

.areas-covered h2 {
  font-size: clamp(1.8rem, 2.6vw, 2.6rem);
  letter-spacing: -.03em;
}

.areas-covered-copy {
  max-width: 760px;
}

.areas-covered-copy p {
  color: rgba(32,37,42,.78);
  margin-bottom: 1rem;
}

.areas-covered-copy p:last-child {
  color: var(--off-white);
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .areas-covered {
    padding-block: 3rem;
  }

  .areas-covered-inner {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* Project enquiry form */
.enquiry-form {
  max-width: 860px;
  margin-top: clamp(3rem, 5vw, 4.5rem);
}

.form-shell {
  padding: clamp(2rem, 4vw, 3.25rem);
}

.form-progress {
  gap: .7rem;
  margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.form-progress > div {
  color: rgba(32,37,42,.76);
  font-size: .68rem;
  font-weight: 600;
}

.form-progress progress {
  height: 4px;
  background: var(--line);
}

.form-step {
  min-height: 0;
}

.form-step legend {
  max-width: 720px;
  margin-bottom: .75rem;
  color: var(--primary-navy);
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
}

.form-step legend:focus-visible {
  outline: 3px solid var(--accessible-green);
  outline-offset: 4px;
}

.step-help {
  max-width: 620px;
  margin-bottom: 1.5rem;
}

.choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}

.choice-grid-wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-card {
  min-height: 60px;
}

.choice-card span {
  position: relative;
  justify-content: space-between;
  gap: 1rem;
  min-height: 60px;
  padding: .9rem 1rem;
  border-color: var(--input-border);
  background: var(--pure-white);
  color: var(--primary-navy);
}

.choice-card span::after {
  content: "✓";
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  border: 1px solid currentColor;
  color: transparent;
  font-size: .85rem;
  line-height: 1.2rem;
  text-align: center;
}

.choice-card:hover span {
  border-color: var(--accessible-green);
}

.choice-card input:checked + span {
  border-color: var(--accent-green);
  border-left-width: 4px;
  background: var(--primary-navy);
  color: var(--pure-white);
}

.choice-card input:checked + span::after {
  border-color: var(--accent-green);
  color: var(--accent-green);
}

.choice-card input:focus-visible + span {
  outline: 3px solid var(--accessible-green);
  outline-offset: 3px;
}

.field-grid {
  gap: 1rem;
}

.field {
  gap: .45rem;
}

.field label {
  color: var(--primary-navy);
  font-weight: 600;
}

.field input,
.field textarea {
  border-color: var(--input-border);
  background: var(--pure-white);
}

.field input::placeholder,
.field textarea::placeholder {
  color: rgba(32,37,42,.68);
}

.field textarea {
  min-height: 150px;
}

.upload-area {
  min-height: 145px;
  padding: 1.5rem;
  border-color: var(--input-border);
  background: var(--pure-white);
}

.upload-area:focus-within {
  outline: 3px solid var(--accessible-green);
  outline-offset: 3px;
  border-color: var(--accessible-green);
}

.upload-title {
  color: var(--primary-navy);
  font-size: 1.35rem;
}

.upload-area input::file-selector-button {
  min-height: 44px;
  border-color: var(--primary-navy);
  background: var(--primary-navy);
  color: var(--pure-white);
}

.file-list {
  margin-top: 1rem;
}

.file-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 44px;
  border-bottom-color: var(--line);
}

.file-list li span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.file-remove {
  flex: 0 0 auto;
  min-height: 44px;
  border: 0;
  border-bottom: 1px solid var(--accessible-green);
  background: transparent;
  color: var(--primary-navy);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .65rem;
  font-weight: 600;
  cursor: pointer;
}

.form-actions {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
}

.form-button {
  min-height: 50px;
}

.form-button-primary {
  min-width: 190px;
  background: var(--primary-navy);
  border-color: var(--primary-navy);
  color: var(--pure-white);
}

.form-button-primary > span {
  color: var(--accent-green);
}

.form-button-primary:hover,
.form-button-primary:focus-visible {
  background: var(--accessible-green);
  border-color: var(--accessible-green);
  color: var(--pure-white);
}

.form-button-primary:disabled {
  cursor: not-allowed;
  opacity: .58;
}

.form-button-back {
  min-width: 0;
  border-color: transparent;
  color: var(--primary-navy);
}

.form-button-back:hover,
.form-button-back:focus-visible {
  border-bottom-color: var(--accessible-green);
  background: transparent;
  color: var(--primary-navy);
}

.review-list {
  margin-top: 1.5rem;
}

.review-item {
  grid-template-columns: minmax(120px, .45fr) 1.55fr;
  gap: 1.25rem;
  padding: .85rem 0;
}

.form-status {
  margin-top: 1.5rem;
  border-color: var(--input-border);
  border-left: 4px solid currentColor;
  background: var(--pure-white);
}

.form-status-pending {
  color: var(--primary-navy);
}

.form-status-success {
  color: var(--accessible-green);
}

.form-status-error {
  color: var(--dark-text);
}

@media (max-width: 900px) {
  .enquiry-form {
    max-width: 760px;
    margin-top: 3.5rem;
  }

  .form-step {
    min-height: 0;
  }
}

@media (max-width: 640px) {
  .enquiry-form {
    margin-top: 2.5rem;
  }

  .form-shell {
    padding: 1.5rem 1.25rem;
  }

  .form-progress {
    margin-bottom: 1.75rem;
  }

  .form-step legend {
    font-size: clamp(1.75rem, 8vw, 2.2rem);
  }

  .step-help {
    margin-bottom: 1.25rem;
  }

  .choice-grid,
  .choice-grid-wide,
  .field-grid {
    grid-template-columns: 1fr;
  }

  .choice-card,
  .choice-card span {
    min-height: 56px;
  }

  .field textarea {
    min-height: 135px;
  }

  .upload-area {
    min-height: 140px;
    padding: 1.25rem;
  }

  .form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    gap: .75rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
  }

  .form-actions > span {
    display: none;
  }

  .form-button,
  .form-button-primary {
    width: 100%;
  }

  .form-button-back {
    text-align: left;
  }

  .review-item {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}

/* GMS navy, green and off-white brand system */
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--accessible-green);
  outline-offset: 3px;
}

.skip-link {
  color: var(--primary-navy);
}

.button {
  background: var(--primary-navy);
  border-color: var(--primary-navy);
  color: var(--pure-white);
}

.button:hover,
.button:focus-visible {
  background: var(--accessible-green);
  border-color: var(--accessible-green);
  color: var(--pure-white);
}

.button-light,
.nav-cta {
  background: var(--off-white);
  border-color: var(--off-white);
  color: var(--primary-navy);
}

.button-light:hover,
.button-light:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible {
  background: var(--accent-green);
  border-color: var(--accent-green);
  color: var(--primary-navy);
}

.eyebrow-light,
.service-number {
  color: var(--accent-green);
}

.site-nav li a:hover,
.site-nav li a.is-active,
.hero-phone:hover,
.hero-phone:focus-visible {
  text-decoration-color: var(--accent-green);
}

.site-nav li a.is-active {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .45rem;
}

.hero-phone {
  border-bottom-color: var(--accent-green);
}

.services {
  background: var(--off-white);
}

.projects,
.project-cta,
.site-footer {
  background-color: var(--primary-navy);
}

.about {
  background: var(--pure-white);
}

.about-content .detail-note {
  border-left-color: var(--accent-green);
}

.areas-covered {
  background: var(--pure-white);
  color: var(--dark-text);
  border-top: 3px solid var(--accent-green);
}

.areas-covered h2 {
  color: var(--primary-navy);
}

.areas-covered-copy p {
  color: var(--muted);
}

.areas-covered-copy p:last-child {
  color: var(--dark-text);
}

.form-progress progress {
  color: var(--accessible-green);
}

.form-progress progress::-webkit-progress-value {
  background: var(--accessible-green);
}

.form-progress progress::-moz-progress-bar {
  background: var(--accessible-green);
}

.choice-card:hover span,
.upload-area:hover {
  border-color: var(--accessible-green);
}

.choice-card input:checked + span {
  background: var(--primary-navy);
  border-color: var(--primary-navy);
  color: var(--pure-white);
}

.choice-card input:focus-visible + span,
.field input:focus,
.field textarea:focus {
  outline-color: var(--accessible-green);
  border-color: var(--accessible-green);
}

.form-button-primary {
  background: var(--primary-navy);
  border-color: var(--primary-navy);
  color: var(--pure-white);
}

.form-button:hover,
.form-button:focus-visible {
  background: var(--accessible-green);
  border-color: var(--accessible-green);
  color: var(--pure-white);
}

.form-status-success {
  color: var(--accent-green);
}

.form-status-pending,
.form-status-error {
  color: var(--off-white);
}

.company-name,
.footer-label,
.footer-bottom {
  color: rgba(255,255,255,.72);
}

.footer-column a:hover,
.footer-column a:focus-visible,
.footer-bottom a:hover,
.footer-bottom a:focus-visible,
.legal-content a:hover,
.legal-content a:focus-visible {
  color: var(--accent-green);
}

.legal-header .brand,
.legal-content h1,
.legal-content h2 {
  color: var(--primary-navy);
}

/* What we do */
.services {
  padding-block: clamp(4.5rem, 7vw, 7rem);
  border-top: 10px solid var(--off-white);
  background: var(--primary-navy);
  color: var(--pure-white);
}

.services .section-heading {
  margin-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

.services .split-heading {
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .65fr);
}

.services .eyebrow,
.services .service-number {
  color: var(--accent-green);
}

.services .eyebrow {
  margin-bottom: 1.25rem;
}

.services h2 {
  color: var(--pure-white);
}

.services .split-heading > p {
  max-width: 430px;
  color: rgba(255,255,255,.78);
}

.services .service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255,255,255,.22);
  border-bottom: 1px solid rgba(255,255,255,.22);
}

.services .service-card,
.services .service-card:not(:first-child),
.services .service-card:nth-child(3),
.services .service-card:nth-child(4) {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: clamp(1.25rem, 3vw, 2.5rem);
  align-content: start;
  min-height: 0;
  padding: clamp(2rem, 4vw, 3rem);
  border-right: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.services .service-card:nth-child(even) {
  border-right: 0;
}

.services .service-card:nth-child(n+3) {
  border-bottom: 0;
}

.services .service-number {
  grid-row: 1 / 3;
  font-family: "Manrope", sans-serif;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1;
  letter-spacing: -.04em;
  margin: .15rem 0 0;
}

.services .service-card h3 {
  margin: 0 0 .85rem;
  color: var(--pure-white);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
}

.services .service-card p {
  max-width: 440px;
  margin: 0;
  color: rgba(255,255,255,.74);
  font-size: .95rem;
  line-height: 1.65;
}

.services .service-link {
  grid-column: 2;
  justify-self: start;
  margin-top: 1.25rem;
  padding-bottom: .2rem;
  border-bottom: 1px solid var(--accent-green);
  color: var(--pure-white);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .68rem;
  font-weight: 600;
}

.services .service-link:hover,
.services .service-link:focus-visible {
  color: var(--accent-green);
}

.services-cta {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(2.25rem, 4vw, 3.5rem);
}

@media (max-width: 640px) {
  .services {
    padding-block: 3.75rem;
    border-top-width: 8px;
  }

  .services .section-heading {
    margin-bottom: 2.5rem;
  }

  .services .split-heading {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .services .split-heading > p {
    font-size: .92rem;
  }

  .services .service-grid {
    grid-template-columns: 1fr;
  }

  .services .service-card,
  .services .service-card:not(:first-child),
  .services .service-card:nth-child(3),
  .services .service-card:nth-child(4) {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 1.5rem 0;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.18);
  }

  .services .service-card:last-child {
    border-bottom: 0;
  }

  .services .service-number {
    font-size: 1.65rem;
  }

  .services .service-card h3 {
    font-size: 1.4rem;
    margin-bottom: .55rem;
  }

  .services .service-card p {
    font-size: .9rem;
    line-height: 1.55;
  }

  .services-cta {
    justify-content: stretch;
    margin-top: 2rem;
  }
}
