@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Jost:wght@300;400;500;600&display=swap');
:root{--ink:#1b1b19;--paper:#fdfcfa;--gold:#b28a4e;--muted:#69665f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Jost,Arial,sans-serif;font-weight:300;line-height:1.7}h1,h2,h3{font-family:Marcellus,serif;font-weight:400;line-height:1.18;margin-top:0}h1{font-size:clamp(2.55rem,4vw,4rem)}h2{font-size:clamp(2rem,3vw,3rem)}h3{font-size:1.65rem}p{font-size:1rem;margin:0 0 1.25rem}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,88%);margin:auto}.site-header{height:92px;background:#1b1b19;color:#fff;display:flex;align-items:center;position:relative;z-index:10}.nav-wrap{width:min(1180px,88%);margin:auto;display:flex;align-items:center;justify-content:space-between}.logo img{width:166px;height:auto;display:block}.nav{display:flex;gap:38px;align-items:center}.nav a{font-size:1rem;letter-spacing:.03em;padding:10px 0}.nav a.active{color:var(--gold);border-bottom:2px solid var(--gold)}.call-btn,.gold-btn{background:var(--gold);color:#fff;text-transform:uppercase;letter-spacing:.08em;padding:13px 23px;display:inline-block;border:0;font:400 .9rem Jost;cursor:pointer}.hamb{display:none;background:none;border:0;color:#fff;font-size:1.8rem}.hero{min-height:595px;background:url('https://static.wixstatic.com/media/ac33e1_2a25e6d0db94443891b9165aba02243a~mv2.png/v1/fill/w_1920,h_1080,al_c,q_85/ac33e1_2a25e6d0db94443891b9165aba02243a~mv2.png') center/cover;position:relative;color:#fff}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,15,.75),rgba(20,18,15,.43) 50%,rgba(20,18,15,.14))}.hero-grid{position:relative;display:grid;grid-template-columns:1.18fr .82fr;gap:90px;align-items:center;padding:68px 0}.hero-copy .hero-logo{width:310px;max-width:80%;filter:brightness(5);margin-bottom:18px}.hero-copy h1{max-width:570px;margin-bottom:24px}.eyebrow{color:#d2ae77;letter-spacing:.04em;font-weight:400}.hero-phone{font-size:1.35rem}.quote-card{background:rgba(253,252,250,.96);color:var(--ink);padding:30px}.quote-card h2{font-size:1.8rem;margin-bottom:8px}.form{display:grid;gap:13px}.form input,.form textarea{width:100%;padding:14px;border:1px solid #d5d1c9;background:#fff;font:300 1rem Jost}.form textarea{min-height:95px;resize:vertical}.form .gold-btn{width:100%;font-size:1rem}.intro{padding:82px 0;text-align:center}.intro p{max-width:820px;margin:22px auto 0}.why{background:#20201e;color:#fff;padding:74px 0}.why h2{text-align:center}.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:50px}.why-item{border-top:1px solid #5f5a51;padding-top:25px}.num{color:var(--gold);font-family:Marcellus;font-size:2rem}.why-item h3{font-size:1.35rem;margin:12px 0}.projects{padding:82px 0}.section-head{text-align:center;max-width:820px;margin:0 auto 48px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 34px}.project-img,.service-img,.about-grid-img{height:300px;background:center/cover no-repeat}.project-card h3{margin:20px 0 10px}.testimonials{background:#eeeae2;padding:75px 0}.test-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.test{background:var(--paper);padding:28px}.test blockquote{font-family:Marcellus;font-size:1.1rem;margin:0 0 16px}.test span{color:var(--gold);font-weight:500}.contact-band{min-height:520px;background:url('https://static.wixstatic.com/media/ac33e1_ecde616fa4004537bae4d013e8b86858~mv2.jpg/v1/fill/w_2122,h_523,al_c,q_85/ac33e1_ecde616fa4004537bae4d013e8b86858~mv2.jpg') center/cover;position:relative}.contact-band:before{content:"";position:absolute;inset:0;background:rgba(18,18,17,.72)}.contact-grid{position:relative;color:#fff;padding:72px 0;display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-grid .form{background:rgba(253,252,250,.96);padding:28px}.service-areas{color:#d1ad77;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.socials{display:flex;gap:18px;margin-top:30px}.socials img{width:34px;height:34px;object-fit:contain}.footer{background:#171714;color:#777;text-align:center;padding:20px;font-size:.85rem}.page-hero{height:415px;display:grid;place-items:center;color:#fff;background:center/cover;position:relative}.page-hero:before{content:"";position:absolute;inset:0;background:rgba(20,18,15,.38)}.page-hero h1{position:relative}.about-intro{padding:65px 0;text-align:center}.about-intro p{max-width:860px;margin:auto}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center;padding-bottom:75px}.portrait{height:500px;object-fit:cover;width:100%}.process{padding:75px 0;background:#eeeae2}.process .lead{max-width:900px;margin:0 auto 55px;text-align:center}.inhouse{columns:2;column-gap:50px}.inhouse div{border-bottom:1px solid #c6c0b5;padding:7px 0}.feature-grid{padding:75px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:45px}.feature-grid article{border-top:2px solid var(--gold);padding-top:24px}.cta{padding:70px 20px;text-align:center;background:#20201e;color:#fff}.services-page{padding:75px 0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.service-card h3{text-align:center;margin:14px 0 3px}.service-card a{display:block;text-align:center;color:var(--gold);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}.contact-page{padding:80px 0 130px}.contact-page-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.contact-form-grid .wide{grid-column:1/-1}.contact-page textarea{min-height:165px}.contact-page .socials{margin-top:35px}.contact-page .socials img{width:36px;height:36px}
@media(max-width:800px){.site-header{height:76px}.logo img{width:135px}.nav{display:none;position:absolute;top:76px;left:0;right:0;background:#1b1b19;flex-direction:column;gap:0;padding:18px}.nav.open{display:flex}.call-btn.header-call{display:none}.hamb{display:block}.hero-grid,.contact-grid,.two-col,.contact-page-grid{grid-template-columns:1fr;gap:38px}.hero-grid{padding:45px 0}.quote-card{padding:22px}.why-grid,.project-grid,.test-grid,.feature-grid{grid-template-columns:1fr}.why-grid{gap:20px}.service-grid{grid-template-columns:1fr}.project-img,.service-img{height:240px}.page-hero{height:300px}.inhouse{columns:1}.contact-page{padding:55px 0 80px}.contact-form-grid{grid-template-columns:1fr}.contact-form-grid .wide{grid-column:auto}}

.checkatrade-rating{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px 18px;max-width:100%;padding:14px 20px;border:1px solid #b28a4e;background:#fdfcfa;color:#1b1b19;text-align:left;line-height:1.4}.checkatrade-rating strong{font-family:Marcellus,serif;font-size:2rem;font-weight:400;white-space:nowrap}.checkatrade-rating strong span{font-size:1.1rem}.checkatrade-rating>span{font-size:1rem;font-weight:500}.checkatrade-rating small{display:block;font-size:.875rem;font-weight:400;color:#69665f}.checkatrade-rating:hover{background:#eeeae2}.checkatrade-rating:focus-visible{outline:3px solid #b28a4e;outline-offset:4px}.hero-copy .checkatrade-rating{margin-bottom:20px}.hero-phone{display:block}

.test{margin:0;min-width:0;padding:20px}.test-grid{gap:16px;align-items:start}.test blockquote{font-size:1rem;line-height:1.55;margin-bottom:12px}.test>span{font-size:.875rem}.review-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.review-heading h3{font-size:1.0625rem;line-height:1.35;margin:0}.test .review-score{flex-shrink:0;background:#eeeae2;color:#1b1b19;padding:3px 7px;font-size:.875rem}.test figcaption{font-size:.875rem;color:#69665f}@media(min-width:760px){.test-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.portrait{height:auto;aspect-ratio:4/3;object-fit:cover}.checkatrade-icon{width:44px;height:44px;object-fit:contain;flex-shrink:0}.checkatrade-profile{display:inline-flex;align-items:center;gap:12px;font-weight:400;text-decoration:underline;text-underline-offset:4px}.checkatrade-profile:focus-visible{outline:3px solid #b28a4e;outline-offset:4px}

.quality-guarantee{max-width:900px;margin:auto;text-align:center}.inhouse-section{background:#333332;color:#fff;padding:60px 0 76px}.inhouse-section .wrap{width:min(1440px,92%)}.inhouse-section h2{text-align:center;font-family:Georgia,serif;font-style:italic;letter-spacing:.12em;font-size:clamp(2.2rem,4.5vw,4.5rem);margin-bottom:48px}.inhouse-columns{display:grid;grid-template-columns:.85fr 1.2fr 1.25fr 1.15fr;gap:30px}.inhouse-columns ul{margin:0;padding-left:24px;font-family:Georgia,serif;font-size:clamp(1rem,1.65vw,1.5rem);line-height:1.65}.inhouse-columns li{padding-left:3px;margin:5px 0}@media(min-width:601px) and (max-width:1100px){.inhouse-columns{grid-template-columns:.85fr 1.2fr 1.25fr 1.15fr;gap:14px}.inhouse-columns ul{font-size:1rem;padding-left:18px}.inhouse-columns li{overflow-wrap:break-word}}@media(max-width:600px){.inhouse-section{padding:45px 0}.inhouse-section h2{letter-spacing:.06em;margin-bottom:30px}.inhouse-columns{grid-template-columns:1fr;gap:16px}.inhouse-section .wrap{width:88%}}

.about-page-title{text-align:center;padding:44px 0 32px}.about-page-title h1{margin:0}.about-page-photo:before{display:none}@media(max-width:600px){.about-page-title{padding:32px 0 26px}}

.hero{overflow:hidden;isolation:isolate;background-image:none}.hero:after{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:url('https://static.wixstatic.com/media/ac33e1_2a25e6d0db94443891b9165aba02243a~mv2.png/v1/fill/w_1920,h_1080,al_c,q_85/ac33e1_2a25e6d0db94443891b9165aba02243a~mv2.png') center/cover no-repeat;transform:scale(1.015);animation:hero-background-drift 24s ease-in-out infinite alternate}.hero:before{z-index:-1;pointer-events:none}@keyframes hero-background-drift{from{transform:scale(1.015) translateX(0)}to{transform:scale(1.075) translateX(-.6%)}}@media(prefers-reduced-motion:reduce){.hero:after{animation:none;transform:none}}

.gallery-page{padding:42px 0 70px}.gallery-back{font-size:.95rem;color:#69665f;text-decoration:underline;text-underline-offset:5px}.gallery-intro{text-align:center;padding:35px 0}.gallery-intro .eyebrow{color:#85612f;font-size:.875rem;letter-spacing:.18em;margin-bottom:12px}.gallery-intro h1{margin-bottom:18px}.gallery-intro p{color:#69665f}.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-photo{display:block;overflow:hidden;background:#eeeae2;aspect-ratio:4/3}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo:focus-visible{outline:3px solid #b28a4e;outline-offset:5px}.gallery-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 28px;border-top:1px solid #d5d1c9;padding-top:32px;margin-top:48px}.gallery-nav a{font-size:1rem}.gallery-nav a[aria-current]{color:#85612f;text-decoration:underline;text-underline-offset:6px}.photo-viewer{border:0;padding:48px 12px 12px;background:#1b1b19;max-width:94vw;max-height:94vh}.photo-viewer::backdrop{background:rgba(0,0,0,.85)}.photo-viewer img{display:block;max-width:88vw;max-height:78vh;object-fit:contain}.viewer-close{position:absolute;right:8px;top:0;width:44px;height:44px;background:none;border:0;color:#fff;font-size:32px;cursor:pointer}@media(max-width:900px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media(max-width:550px){.photo-gallery{grid-template-columns:1fr}.gallery-intro{padding:28px 0}.gallery-page{padding-top:28px}}@media(prefers-reduced-motion:reduce){.gallery-photo img{transition:none}.gallery-photo:hover img{transform:none}}

/* Make contact links easy to recognise and tap. */
a[href^="tel:"],a[href^="mailto:"]{cursor:pointer}
.contact-page a[href^="tel:"],.contact-page a[href^="mailto:"],.contact-band a[href^="tel:"],.contact-band a[href^="mailto:"]{display:inline-block;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;overflow-wrap:anywhere}
a[href^="tel:"]:hover,a[href^="mailto:"]:hover{text-decoration:underline;text-underline-offset:4px}
a[href^="tel:"]:focus-visible,a[href^="mailto:"]:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Service galleries use the same typography, gold accents and dark surfaces as the main site. */
.service-detail-hero{display:grid;grid-template-columns:1fr 1fr;margin:30px 0 64px;background:var(--ink);color:var(--paper);align-items:stretch}
.service-detail-copy{padding:clamp(26px,4vw,54px);align-self:center}
.service-detail-copy h1{font-size:clamp(2.2rem,3.7vw,3.65rem);margin-bottom:24px;overflow-wrap:break-word}
.service-detail-copy .eyebrow{font-size:.875rem;letter-spacing:.1em}
.service-detail-copy>p:not(.eyebrow){color:#e4e0d9;font-size:1.0625rem;margin-bottom:30px}
.service-detail-image{display:block;width:100%;height:100%;min-height:380px;max-height:560px;object-fit:cover}
.gallery-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:28px}
.gallery-heading h2{font-size:clamp(1.8rem,2.8vw,2.6rem);margin:0}
.gallery-heading p{color:var(--muted);margin:0}
.gallery-nav a{padding:10px 0}
@media(max-width:760px){.service-detail-hero{grid-template-columns:1fr;margin-bottom:40px}.service-detail-image{height:300px;min-height:0}.gallery-heading{display:block}.gallery-heading p{margin-top:12px}.service-detail-copy{padding:30px 24px}}

/* Contact form delivery states and spam protection. */
.form-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.form-status{min-height:1.7em;margin:0;color:#1b1b19;font-size:.95rem}
.form-status.success{color:#2d6438}
.form-status.error{color:#9a2f2f}
.contact-grid .form-status{color:#1b1b19}
.gold-btn:disabled{cursor:wait;opacity:.72}

/* Privacy page and consent controls for Google Ads measurement. */
.policy-page{max-width:820px;padding:64px 0 90px}.policy-page h1{margin-bottom:34px}.policy-page h2{font-size:1.55rem;margin:38px 0 10px}.policy-page a{text-decoration:underline;text-underline-offset:4px}.footer-links{display:inline-flex;gap:18px;margin-left:20px}.footer-links a,.footer-links button{color:#bbb;text-decoration:underline;text-underline-offset:3px}.footer-links button{border:0;padding:0;background:none;font:inherit;cursor:pointer}.cookie-banner{position:fixed;z-index:1000;left:50%;bottom:20px;transform:translateX(-50%);width:min(920px,calc(100% - 32px));display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 28px;background:#fff;color:var(--ink);border:1px solid #d5d1c9;box-shadow:0 14px 50px rgba(0,0,0,.24)}.cookie-banner h2{font-size:1.4rem;margin:0 0 6px}.cookie-banner p{margin:0;font-size:.95rem}.cookie-banner a{text-decoration:underline;text-underline-offset:3px}.cookie-actions{display:flex;gap:12px;flex-shrink:0}.cookie-actions button{min-height:44px;padding:10px 20px}.cookie-reject{border:1px solid #777;background:#fff;color:var(--ink);font:400 .9rem Jost;cursor:pointer}@media(max-width:680px){.cookie-banner{align-items:stretch;flex-direction:column;gap:18px}.cookie-actions{width:100%}.cookie-actions button{flex:1}.footer-links{display:flex;justify-content:center;margin:10px 0 0}}

/* Contact sections without enquiry forms. */
.hero-grid,.contact-grid,.contact-page-grid{grid-template-columns:1fr}.hero-copy{max-width:760px}.hero-copy h1{max-width:760px}.contact-grid>div,.contact-page-grid>div{max-width:760px}

/* Place the hero content on the right while preserving mobile readability. */
@media(min-width:801px){.hero-copy{width:54%;max-width:660px;justify-self:end}.hero:before{background:linear-gradient(90deg,rgba(20,18,15,.18),rgba(20,18,15,.58) 40%,rgba(20,18,15,.78))}}

/* Six equally sized testimonial cards. */
.test-grid{align-items:stretch;grid-auto-rows:1fr}.test{display:flex;flex-direction:column;height:100%}.test>span,.test>figcaption{margin-top:auto}
@media(max-width:759px){.test-grid{grid-auto-rows:auto}}

.contact-photo{display:block;width:100%;height:clamp(240px,32vw,520px);object-fit:cover}
.contact-below-photo{background:#20201e;min-height:0}.contact-below-photo:before{display:none}
.contact-below-photo .contact-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-below-photo .form{background:transparent;padding:0;color:var(--paper)}
.contact-below-photo label{font-size:.875rem;font-weight:400;display:grid;gap:6px;min-width:0}
.contact-below-photo textarea{min-height:150px}
@media(max-width:800px){.contact-below-photo .contact-grid{grid-template-columns:1fr;gap:32px}}

.contact-photo{height:auto;max-height:none;object-fit:contain}.contact-below-photo .contact-grid{padding:56px 0}.contact-below-photo .form{min-width:0}

.contact-below-photo .form-unavailable{font-size:.875rem;margin:0;color:var(--paper)}.contact-below-photo .form-unavailable a{text-decoration:underline}.contact-below-photo .gold-btn:disabled{cursor:not-allowed}

@media(min-width:760px){.hero .hero-copy{width:54%;max-width:660px;justify-self:end;margin-left:auto}.hero .hero-grid{width:94%;max-width:1400px}}

/* Contact page enquiry panel. */
.contact-page-grid{grid-template-columns:1fr 1fr;align-items:start;gap:56px}
.contact-enquiry{padding:28px;background:#eeeae2;min-width:0}.contact-enquiry h2{font-size:1.8rem;margin-bottom:24px}
.contact-enquiry label{display:grid;gap:6px;font-size:.875rem;font-weight:400;min-width:0}
.contact-enquiry .form-unavailable{font-size:.875rem;margin:0}.contact-enquiry .form-unavailable a{text-decoration:underline}.contact-enquiry .gold-btn:disabled{cursor:not-allowed}
@media(max-width:800px){.contact-page-grid{grid-template-columns:1fr;gap:32px}.contact-enquiry{padding:22px}}
