:root{--ink:#101315;--paper:#f5f4ef;--white:#fff;--gold:#d7b448;--muted:#5c6265;--line:#d7d5ce;--max:1240px;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:17px;line-height:1.65}a{color:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:10px;z-index:99}.header{height:82px;padding:0 max(22px,calc((100vw - var(--max))/2));display:flex;align-items:center;justify-content:space-between;background:rgba(245,244,239,.97);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:400;line-height:1.05}.brand-logo{display:block;width:64px;height:64px;flex-shrink:0;object-fit:contain;background:#000}.footer .footer-logo-link{display:inline-block;margin:0 0 20px}.footer-logo{display:block;width:180px;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#000}.brand small{display:block;text-transform:uppercase;font-size:.66rem;letter-spacing:.17em;margin-top:4px}.nav{display:flex;gap:28px;align-items:center}.nav a{text-decoration:none;font-size:.92rem;font-weight:650}.nav .cta{background:var(--ink);color:#fff;padding:12px 17px}.menu{display:none;background:none;border:1px solid var(--line);padding:10px 14px}.hero{min-height:680px;position:relative;color:#fff;display:flex;align-items:flex-end;background:#2b3032 url('/assets/hero-desktop.webp') center/cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,8,.9),rgba(5,7,8,.42) 65%,rgba(5,7,8,.1))}.hero-inner{position:relative;z-index:2;width:min(var(--max),calc(100% - 44px));margin:0 auto;padding:90px 0}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.875rem;font-weight:800;color:#785711;margin:0 0 16px}.hero .eyebrow,.dark .eyebrow,.page-hero .eyebrow{color:#f0d889}.hero h1,.page-hero h1,h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.04em;line-height:1}.hero h1{font-size:clamp(3.2rem,7vw,6.6rem);max-width:980px;margin:0 0 25px}.hero .lead{font-size:1.2rem;max-width:700px;color:#e9e9e7}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 22px;text-decoration:none;font-weight:800}.button.primary{background:var(--gold);color:#17110c}.button.ghost{border:1px solid rgba(255,255,255,.7);color:#fff}.proof{display:grid;grid-template-columns:repeat(4,1fr);max-width:var(--max);margin:auto}.proof span{padding:24px 14px;text-align:center;border-right:1px solid var(--line);font-size:.875rem;text-transform:uppercase;letter-spacing:.1em}.section{padding:105px max(22px,calc((100vw - var(--max))/2))}.intro{max-width:760px}.section h2{font-size:clamp(2.5rem,5vw,4.7rem);margin:0 0 22px}.intro>p:last-child{color:var(--muted);font-size:1.08rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.card{background:#fff;padding:36px;border:1px solid var(--line);text-decoration:none;transition:.2s transform,.2s box-shadow}.card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(0,0,0,.09)}.card b{font-family:Georgia,serif;font-size:1.75rem;font-weight:400;display:block;margin-bottom:10px}.card p{color:var(--muted);margin:0}.card .arrow{display:block;margin-top:34px;color:#785711;font-weight:800}.dark{background:var(--ink);color:#fff}.process{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.steps{list-style:none;padding:0;margin:0}.steps li{display:grid;grid-template-columns:42px 1fr;gap:16px;padding:22px 0;border-top:1px solid #3a3f42}.steps strong{font-family:Georgia,serif;font-size:1.35rem}.steps span{display:block;color:#afb4b6}.projects{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-top:55px}.projects img{width:100%;height:100%;min-height:330px;object-fit:cover}.projects .stack{display:grid;gap:18px}.locations{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.locations a{border:1px solid var(--line);padding:11px 16px;text-decoration:none;background:#fff}.contact-band{background:var(--gold);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.contact-band .button{background:var(--ink);color:#fff}.footer{background:#080a0b;color:#d5d5d2;padding:52px max(22px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}.footer h3{color:#fff;margin-top:0}.footer a{display:block;text-decoration:none;margin:7px 0}.page-hero{padding:115px max(22px,calc((100vw - var(--max))/2));background:var(--ink);color:#fff}.page-hero h1{font-size:clamp(3rem,7vw,6rem);max-width:980px;margin:0 0 24px}.page-hero p{max-width:720px;color:#ccd0d1;font-size:1.12rem}.content{max-width:900px}.content h2{font-size:clamp(2.2rem,4vw,3.8rem);margin-top:0}.content h3{font-family:Georgia,serif;font-size:1.7rem;margin-top:42px}.content li{margin:8px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.notice{border-left:4px solid var(--gold);padding:18px 22px;background:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.gallery-grid img{width:100%;height:430px;object-fit:cover}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-option{display:block;background:#fff;border:1px solid var(--line);padding:28px;text-decoration:none;margin:14px 0}.contact-option small{display:block;text-transform:uppercase;letter-spacing:.15em;color:#785711}.floating{display:none}@media(max-width:850px){.header{height:72px}.menu{display:block}.nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);padding:22px;flex-direction:column;align-items:flex-start;box-shadow:0 12px 25px rgba(0,0,0,.15)}.nav.open{display:flex}.hero{min-height:650px}.proof{grid-template-columns:1fr 1fr}.cards,.process,.projects,.split,.contact-grid,.footer{grid-template-columns:1fr}.projects .stack{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr}.section{padding-top:75px;padding-bottom:75px}.contact-band{grid-template-columns:1fr}.floating{display:flex;position:fixed;z-index:25;bottom:12px;left:12px;right:12px;background:var(--gold);color:#111;min-height:52px;align-items:center;justify-content:center;font-weight:800;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.3)}}

/* Electrical service content and shared navigation refinements. */
.electrical-summary{background:#ebe9e2;border-top:1px solid var(--line)}
.electrical-summary .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.partner-line{max-width:820px;font-size:1rem;line-height:1.65;margin:28px 0 0}
.partner-line a{text-underline-offset:3px}
.page-hero .partner-line{color:#fff;border-left:3px solid var(--gold);padding-left:18px}
.service-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.service-jump a{padding:9px 15px;border:1px solid #798084;text-decoration:none;font-size:1rem}
.electrical-service{scroll-margin-top:105px;border-bottom:1px solid var(--line)}
.electrical-service h2{font-size:clamp(2.2rem,4vw,3.8rem)}
.electrical-service p{max-width:760px}
.electrical-service ul{margin:0;padding-left:22px}
.electrical-service li{margin:10px 0}
.contact-option strong{overflow-wrap:anywhere}
.footer h3:first-child,.footer .footer-logo-link+h3{font-weight:400}
a:focus-visible,button:focus-visible{outline:3px solid #785711;outline-offset:4px}
@media(max-width:850px){.electrical-summary .cards{grid-template-columns:1fr}.brand{font-size:1rem}.brand small{font-size:.75rem}.menu{font-size:.875rem}.footer{padding-bottom:95px}}

/* Measurement is optional and never hides the contact controls. */
.measurement-choice{position:fixed;z-index:40;right:20px;bottom:20px;width:min(540px,calc(100% - 40px));max-height:65vh;overflow:auto;background:var(--white);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 45px #0003;padding:22px;font-size:1rem;line-height:1.5}
.measurement-choice[hidden]{display:none}
.measurement-choice h2{font-family:inherit;font-size:1.25rem;font-weight:700;line-height:1.3;letter-spacing:normal;margin:0 0 10px}
.measurement-choice p{margin:10px 0}
.measurement-choice summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.measurement-choice details{font-size:.9rem}
.measurement-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.measurement-actions button{flex:1;min-width:150px;min-height:44px;padding:10px 14px;font:inherit;font-weight:650;cursor:pointer;color:var(--ink);background:var(--paper);border:1px solid var(--ink)}
.measurement-actions button:hover{background:#e4e2da}
.measurement-settings{display:block;align-self:start;justify-self:start;background:none;color:inherit;border:0;padding:8px 0;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:.9rem;cursor:pointer;text-align:left}
@media(max-width:850px){.measurement-choice{right:12px;bottom:80px;width:calc(100% - 24px);padding:18px;max-height:60vh}.measurement-actions button{min-width:130px}}

/* Keep the supplied logo uncropped and leave room for the mobile menu. */
@media(max-width:850px){.brand-logo{width:52px;height:52px}.brand{gap:10px}.footer-logo{width:160px}}

/* Trust and readability refinements. */
.contact-band .eyebrow{color:var(--ink)}
.hero{min-height:620px}
.hero h1,.page-hero h1,h2{line-height:1.08;letter-spacing:-.035em}
.footer a{overflow-wrap:anywhere}
@media(max-width:850px){.hero{background-image:url("/assets/hero-mobile.webp");min-height:600px}.hero-inner{padding:72px 0}.nav a{min-height:44px;display:flex;align-items:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}.card:hover{transform:none}}

/* Project evidence, owner introduction and project questions. */
.nav{gap:22px}
.hero-caption{font-size:.875rem;color:#f0f0ec;margin:28px 0 0}
.text-link{display:inline-block;font-weight:650;text-underline-offset:5px;text-decoration-thickness:1px}
.actions .text-link{align-self:center;padding:12px 0}
.project-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:45px}
.project-card{display:block;color:inherit;text-decoration:none;background:#fff;border:1px solid var(--line)}
.project-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.project-card>div{padding:26px}
.project-card h3{font-family:Georgia,serif;font-size:1.7rem;font-weight:400;line-height:1.2;margin:0 0 12px}
.project-card p{color:var(--muted);margin:0 0 18px}
.project-card .text-link{text-decoration:underline;color:#785711}
.project-card:hover .text-link{text-decoration-thickness:2px}
.project-story{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:5vw;align-items:center;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.project-story figure{margin:0;min-width:0}
.project-story img{display:block;width:100%;height:auto}
.project-story figcaption{font-size:.875rem;color:var(--muted);margin-top:12px}
.project-story h2{font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.12}
.progress-story,.owner-details{background:#ebe9e2}
.staged-example{background:#fff}
.owner-introduction{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}
.owner-details{padding:32px;align-self:start;border-top:4px solid var(--gold)}
.owner-details dl{margin:0 0 28px}
.owner-details dt{font-size:.875rem;color:var(--muted);margin-top:20px}
.owner-details dd{margin:4px 0 0;font-size:1.1rem}
.faq-section{border-top:1px solid var(--line);scroll-margin-top:100px}
.faq-list{max-width:940px;margin-top:36px}
.faq-list details{border-bottom:1px solid var(--line);padding:0 4px}
.faq-list summary{cursor:pointer;font-size:1.1rem;font-weight:650;padding:22px 0;line-height:1.4}
.faq-list p{margin:0 0 24px;max-width:800px;color:var(--muted)}
summary:focus-visible{outline:3px solid #785711;outline-offset:4px}
.dark a:focus-visible,.hero a:focus-visible{outline-color:#f0d889}
@media(max-width:1050px){.nav{gap:14px}.nav a{font-size:.875rem}}
@media(max-width:950px){.header{height:72px}.menu{display:block;font-size:.875rem;min-height:44px}.nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);padding:22px;flex-direction:column;align-items:flex-start;box-shadow:0 12px 25px #0002}.nav.open{display:flex}.nav a{display:flex;align-items:center;min-height:44px}.brand-logo{width:52px;height:52px}}
@media(max-width:850px){.project-cards,.project-story,.owner-introduction{grid-template-columns:1fr}.project-story{gap:28px}.project-card img{aspect-ratio:4/3}.owner-details{padding:26px}.hero h1{font-size:clamp(2.6rem,9vw,4rem)}.section h2{font-size:clamp(2.1rem,8vw,3.3rem)}.page-hero{padding-top:76px;padding-bottom:76px}.page-hero h1{font-size:clamp(2.6rem,9vw,4rem)}.proof span{padding:20px 10px;font-size:.875rem;letter-spacing:.04em}}

/* Customer feedback is quoted briefly and linked to the original Google reviews. */
.reviews{border-top:1px solid var(--line);scroll-margin-top:100px}
.review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:36px}
.review-heading .intro{max-width:760px;min-width:0}
.review-rating{flex:0 0 245px;border-left:3px solid var(--gold);padding:6px 0 6px 24px}
.review-rating p{margin:0 0 6px}
.review-rating strong{font-family:Georgia,serif;font-size:2.8rem;font-weight:400;line-height:1.2}
.review-rating .review-checked{font-size:.875rem;color:var(--muted);margin-bottom:0}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:36px}
.review-card{margin:0;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);padding:30px;display:flex;flex-direction:column;min-width:0}
.review-card blockquote{margin:0 0 26px;flex:1;font-family:Georgia,serif;font-size:1.45rem;line-height:1.45}
.review-card blockquote p{margin:0}
.review-card figcaption{font-size:1rem}
.review-card figcaption strong{display:block;font-weight:650}
.review-card figcaption a{display:inline-block;padding:10px 0;font-size:.875rem;text-underline-offset:4px;color:#785711}
.review-all{margin-top:28px;padding:10px 0}
@media(max-width:850px){.review-heading{flex-direction:column;gap:22px}.review-rating{flex:auto}.review-grid{grid-template-columns:1fr}.review-card{padding:26px}}

/* Put the project evidence and direct contact options beside the paid-search message. */
.lead-hero{padding-top:64px;padding-bottom:64px}.lead-hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.lead-hero h1{font-size:clamp(2.5rem,4.6vw,4.5rem)}.lead-hero p{font-size:1rem}.lead-hero .eyebrow{font-size:.875rem;color:#f0d889}.lead-hero .lead-response{margin:18px 0 0;font-size:.95rem}.lead-hero figure{margin:0}.lead-hero figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.lead-hero figcaption{font-size:.875rem;color:#ccd0d1;margin-top:12px}.lead-hero .actions{margin-top:24px}@media(max-width:850px){.lead-hero{padding-top:44px;padding-bottom:44px}.lead-hero-inner{grid-template-columns:1fr;gap:30px}.lead-hero h1{font-size:clamp(2.25rem,8vw,3.2rem)}.lead-hero .actions .button{flex:1 1 210px}}
/* Callback form */
#enquiry-form{display:grid;gap:.6rem}#enquiry-form label{font-weight:650;margin-top:.5rem}#enquiry-form label span{font-weight:400}#enquiry-form input,#enquiry-form select,#enquiry-form textarea{width:100%;font:inherit;border:1px solid #a9b5af;background:#fff;color:#172921;border-radius:5px;padding:12px;box-sizing:border-box}#enquiry-form input:focus,#enquiry-form select:focus,#enquiry-form textarea:focus{outline:3px solid #ba8c4866;outline-offset:2px}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-privacy{font-size:.85rem;line-height:1.5}#enquiry-status{font-weight:600}#enquiry-form button:disabled{opacity:.65}.lead-next{background:#f3f0e8}.lead-next .actions{display:flex;gap:1rem;flex-wrap:wrap}@media(max-width:850px){.measurement-choice{bottom:84px;max-height:55vh;overflow:auto}.contact-grid{display:grid;grid-template-columns:1fr}}
