@font-face{font-family:Manrope;src:url('../fonts/manrope-latin.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:Sora;src:url('../fonts/sora-latin.woff2') format('woff2');font-weight:700 800;font-display:swap}
:root{--ink:#121613;--amber:#d99a27;--paper:#f5f3ed;--concrete:#e2e0d8;--steel:#626b65;--white:#fff;--max:1260px;--gutter:clamp(1.25rem,4vw,3.5rem)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}button,input,textarea,select{font:inherit}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Sora,Manrope,sans-serif;font-weight:800;letter-spacing:-.035em;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(3.15rem,5.6vw,5.25rem);max-width:12ch;margin-bottom:1.6rem}
h2{font-size:clamp(2.1rem,3.4vw,3.45rem);margin-bottom:1.4rem}h3{font-size:1.3rem;letter-spacing:-.025em}p{color:var(--steel)}
.container{width:min(var(--max),calc(100% - var(--gutter)*2));margin-inline:auto}.section{padding:clamp(4rem,7.2vw,7rem) 0}
:focus-visible{outline:3px solid var(--amber);outline-offset:5px}::selection{background:var(--amber);color:var(--ink)}
.skip-link{position:fixed;top:-6rem;left:1rem;z-index:2000;background:var(--amber);padding:1rem;font-weight:800}.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:1000;background:var(--ink);color:var(--white);border-bottom:1px solid #ffffff24}.header-inner{min-height:5.8rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand img{width:9rem;filter:brightness(0) invert(1)}
nav{display:flex;align-items:center;gap:2.5rem}.header-phone{font-size:.9rem;font-weight:800;text-decoration:none;white-space:nowrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.6rem;min-height:3.6rem;padding:1.1rem 1.5rem;border:0;background:var(--amber);color:var(--ink);font-weight:800;font-size:.88rem;line-height:1.3;text-decoration:none;cursor:pointer;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.button:hover{background:#edb448}.button span{font-size:1.25rem;line-height:1}.button-small{min-height:3rem;padding:.85rem 1.2rem;font-size:.8rem}.button-dark{background:var(--ink);color:var(--white)}.button-dark:hover{background:#303a32}button:disabled{opacity:.65;cursor:wait}
.hero{position:relative;isolation:isolate;background:var(--ink);color:var(--white);overflow:hidden}.hero-inner{position:relative;padding-block:clamp(3.5rem,6vw,6rem);min-height:42rem;display:flex;align-items:center}.hero-copy{width:55%;max-width:43rem}.intro-label{font-size:.75rem;font-weight:800;color:var(--amber);margin-bottom:1.5rem}.hero-lead{font-size:1.03rem;max-width:32rem;color:#ffffffc4;line-height:1.8;margin-bottom:2rem}.hero-note{font-size:.77rem;color:#ffffffa8;margin:1.35rem 0 0}.hero-photo{position:absolute;z-index:-1;inset:0 0 0 45%;}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:60% center}.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink),#12161328 35%,#12161300 70%),linear-gradient(0deg,#12161388,transparent 50%)}.hero-caption{position:absolute;right:var(--gutter);bottom:2.3rem;font-weight:800;font-size:1.05rem;border-left:3px solid var(--amber);padding-left:1rem}
.project-strip{background:var(--amber)}.project-strip .container{display:grid;grid-template-columns:repeat(4,1fr);padding-block:1.35rem}.project-strip span{font-weight:800;font-size:.88rem;text-align:center;border-right:1px solid #12161340}.project-strip span:last-child{border:0}
.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:4rem;margin-bottom:3rem}.section-label{font-size:.78rem;font-weight:800;color:#875034;margin-top:.45rem}.section-lead{max-width:44rem;font-size:1.08rem}.section-heading .section-lead{margin-bottom:0}
.package-steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;gap:2.5rem;margin:0;padding:0}.package-steps li{border-top:2px solid var(--amber);padding-top:1.8rem}.step-number{display:block;font-family:Sora,sans-serif;font-size:.8rem;color:#875034;margin-bottom:1.8rem}.package-steps p{font-size:.92rem;margin:0;max-width:36ch}.package-steps h3{margin-bottom:1rem}
.civil-work{background:var(--ink);color:var(--white)}.civil-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(3rem,8vw,8rem)}.civil-heading h2{max-width:12ch}.civil-heading p:not(.section-label){color:#ffffffb5;max-width:33ch}.civil-work .section-label{color:var(--amber)}.text-link{display:inline-flex;gap:1.5rem;margin-top:1rem;font-size:.9rem;font-weight:800;text-decoration-color:var(--amber);text-underline-offset:6px}.work-types article{border-top:1px solid #ffffff30;padding:1.5rem 0;display:grid;grid-template-columns:1fr 1.3fr;gap:1.5rem}.work-types article:last-child{border-bottom:1px solid #ffffff30}.work-types h3{font-size:1.1rem;margin:.2rem 0}.work-types p{color:#ffffffb5;font-size:.88rem;margin:0}
.site-plan{background:var(--concrete)}.site-plan-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(3rem,8vw,8rem)}.site-plan h2{max-width:14ch}.site-checklist{list-style:none;margin:1.8rem 0 0;padding:0}.site-checklist li{padding:1.1rem 0;border-top:1px solid #12161326}.site-checklist strong{display:block;font-size:.9rem;margin-bottom:.15rem}.site-checklist span{font-size:.88rem;color:#535c55}
.enquiry-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,7vw,7rem);align-items:start}.enquiry-copy{position:sticky;top:8rem}.enquiry-copy h2{max-width:10ch}.enquiry-copy>p{max-width:32ch}.call-label{font-size:.85rem;margin:2.2rem 0 .35rem}.enquiry-phone{font-family:Sora,sans-serif;font-weight:800;font-size:clamp(1.3rem,2vw,1.9rem);letter-spacing:-.035em;text-decoration-thickness:2px;text-decoration-color:var(--amber);text-underline-offset:7px}.phone-digits{display:block;font-size:.85rem;color:var(--steel);margin-top:.5rem}.coverage-note{margin-top:2.5rem;border-top:1px solid #12161325;padding-top:1.5rem;font-size:.86rem}.coverage-note p{margin:.35rem 0 0;max-width:35ch}
.form-shell{background:var(--white);padding:clamp(1.25rem,3vw,3rem);border:1px solid #12161325;border-top:4px solid var(--amber);box-shadow:0 16px 45px #12161308}.form-shell h3{margin-bottom:.55rem}.form-intro{font-size:.8rem;margin-bottom:1.8rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.field{display:flex;flex-direction:column;gap:.4rem;min-width:0}.field-wide{grid-column:1/-1}label{font-size:.77rem;font-weight:800}label span{font-weight:400;color:var(--steel)}input,textarea,select{width:100%;min-width:0;min-height:3.2rem;padding:.8rem .85rem;border:1px solid #c8c6bd;border-radius:0;background:#f7f5ef;color:var(--ink);font-size:.9rem}textarea{min-height:8rem;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid var(--amber);outline-offset:1px;background:var(--white)}.form-footer{margin-top:1.4rem}.form-footer .button{width:100%}.form-status{font-size:.85rem;margin:1rem 0 0}.form-status:empty{margin:0}.form-status.error{color:#a52f24}.form-status.success{color:#27633d}
.closing{background:var(--amber);padding:3.5rem 0}.closing .container{display:flex;align-items:center;justify-content:space-between;gap:2rem}.closing h2{font-size:clamp(1.9rem,3vw,2.8rem);margin:0}.closing .button{flex-shrink:0}footer{background:var(--ink);color:var(--white);padding:2.4rem 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.footer-inner img{width:6.5rem;filter:brightness(0) invert(1)}.footer-inner p,.footer-inner a{font-size:.72rem;color:#ffffffa8;margin:0}
@media(min-width:1600px){.hero-photo{left:50%}}
@media(max-width:1023px){.hero-copy{width:60%}.hero-photo{left:40%}.hero-photo::after{background:linear-gradient(90deg,var(--ink),#12161377 60%,#12161330)}.hero-caption{display:none}.section-heading{grid-template-columns:1fr;gap:.5rem}.civil-grid,.site-plan-grid{gap:3rem}.work-types article{display:block}.work-types h3{margin-bottom:.6rem}.enquiry-grid{grid-template-columns:.75fr 1.25fr;gap:2rem}.form-grid{grid-template-columns:1fr}.enquiry-copy h2{font-size:2.2rem}.g-recaptcha{max-width:100%}}
@media(max-width:767px){html{scroll-padding-top:6rem}.header-inner{min-height:4.6rem;gap:1rem}.brand img{width:7rem}nav{gap:0}.header-phone{display:none}.button-small{font-size:.7rem;padding:.75rem .9rem;min-height:2.8rem}.hero-inner{min-height:0;padding-top:3rem;padding-bottom:3rem}.hero-copy{width:100%;max-width:35rem}.hero-photo{inset:0;opacity:.32}.hero-photo img{object-position:65% center}.hero-photo::after{background:linear-gradient(90deg,var(--ink),#12161350)}h1{font-size:clamp(2.95rem,10.4vw,4.5rem);max-width:12ch}.intro-label{font-size:.68rem}.hero-lead{font-size:.95rem;max-width:33rem;color:#ffffffe0}.hero-note{font-size:.72rem;color:#ffffffc4}.project-strip .container{grid-template-columns:1fr 1fr;row-gap:1rem;padding-block:1.25rem}.project-strip span{font-size:.78rem}.project-strip span:nth-child(2){border:0}.package-steps{grid-template-columns:1fr;gap:2rem}.package-steps li{display:grid;grid-template-columns:2.2rem 1fr;column-gap:.7rem;padding-top:1.4rem}.step-number{grid-row:1/3;margin:.3rem 0 0}.package-steps h3{font-size:1.15rem;margin-bottom:.6rem}.package-steps p{grid-column:2;max-width:55ch}.civil-grid,.site-plan-grid,.enquiry-grid{grid-template-columns:1fr;gap:2rem}.civil-heading h2,.site-plan h2{max-width:17ch}.civil-heading p:not(.section-label){max-width:50ch}.work-types article{display:grid;grid-template-columns:1fr 1.6fr;gap:1rem}.work-types h3{font-size:1rem}.work-types p{font-size:.85rem}.enquiry-copy{position:static}.enquiry-copy h2{font-size:2.5rem;max-width:14ch}.enquiry-copy>p{max-width:45ch}.coverage-note{margin-top:1.5rem}.coverage-note p{max-width:50ch}.closing .container{display:block}.closing .button{margin-top:1.5rem}.footer-inner{flex-wrap:wrap;gap:1.25rem}.footer-inner p{flex-basis:100%;order:3}.footer-inner a{margin-left:auto}}
@media(max-width:374px){.g-recaptcha{transform:scale(.8);transform-origin:left top;margin-bottom:-15px}.hero-note{max-width:28ch}.button-small{font-size:.65rem;padding:.7rem}.brand img{width:6rem}}
@media(min-width:375px) and (max-width:479px){.g-recaptcha{transform:scale(.9);transform-origin:left top;margin-bottom:-8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
