@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@1,500&display=swap');
:root{--navy:#062b52;--navy-deep:#031d38;--blue:#0a3b6e;--ivory:#f5f2eb;--white:#fff;--ink:#102438;--muted:#617080;--gold:#d4a853;--line:rgba(12,42,70,.15);--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;background:#fff}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:1000}.skip-link:focus{top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.topbar{height:38px;background:var(--navy-deep);color:#c9d5df;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.topbar a{color:white;font-weight:600}.topbar a span{color:var(--gold)}
.site-header{height:82px;background:white;position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(6,43,82,.1)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{width:270px}.brand img{width:100%}#site-nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:500}#site-nav>a:not(.nav-cta){position:relative}#site-nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;bottom:-8px;width:0;height:1px;background:var(--gold);transition:.25s}#site-nav>a:hover:after{width:100%}.nav-cta,.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:13px 20px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;transition:.25s}.nav-cta{background:var(--navy);color:white}.nav-cta span,.button span,.text-link span{color:var(--gold)}.menu-toggle{display:none;border:0;background:none;padding:8px}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:1px;background:var(--navy);margin:5px}
.hero{height:min(750px,calc(100vh - 80px));min-height:630px;position:relative;background:var(--navy-deep);color:white;overflow:hidden}.hero-image{position:absolute;inset:0;background:url('assets/composite-door-modern.jpg') center 57%/cover no-repeat;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,20,39,.94) 0%,rgba(2,26,50,.78) 43%,rgba(3,25,47,.1) 80%),linear-gradient(0deg,rgba(1,16,31,.55),transparent 35%)}.hero-content{position:relative;padding-top:115px}.eyebrow{margin:0 0 22px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:var(--navy)}.eyebrow:before{content:"";display:inline-block;vertical-align:middle;width:34px;height:1px;background:var(--gold);margin-right:14px}.eyebrow.light{color:white}.hero h1,.section h2{margin:0;font-family:var(--serif);font-weight:400;line-height:.98;letter-spacing:-.035em}.hero h1{font-size:clamp(58px,7vw,98px);max-width:780px}.hero h1 em,.section h2 em{font-family:'Playfair Display',var(--serif);font-weight:500;color:var(--gold)}.hero-copy{font-size:18px;line-height:1.6;color:#d7e0e8;max-width:590px;margin:30px 0}.hero-actions{display:flex;align-items:center;gap:34px}.button-light{background:white;color:var(--navy)}.button-light:hover{background:var(--gold)}.button-light:hover span{color:var(--navy)}.text-link{display:inline-flex;gap:18px;align-items:center;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;border-bottom:1px solid rgba(10,50,80,.3);padding-bottom:5px}.text-link.light{color:white;border-color:rgba(255,255,255,.4)}.hero-proof{position:absolute;right:0;bottom:0;display:flex;background:rgba(4,35,66,.92);backdrop-filter:blur(12px)}.hero-proof>div{display:flex;align-items:center;gap:13px;padding:23px 30px;border-left:1px solid rgba(255,255,255,.14)}.hero-proof strong{font:400 34px var(--serif);color:var(--gold)}.hero-proof span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;line-height:1.45;color:#d8e2eb}
.trust-strip{background:var(--ivory);padding:20px 0;color:var(--navy);font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:600}.trust-strip .wrap{display:flex;justify-content:space-between;align-items:center}.trust-strip i{width:4px;height:4px;border-radius:50%;background:var(--gold)}
.section{padding:120px 0}.section h2{font-size:clamp(44px,5vw,70px)}.intro-grid{display:grid;grid-template-columns:1.15fr .8fr;gap:90px;align-items:start}.intro-grid .lead{font:400 25px/1.45 var(--serif);color:var(--navy);margin:0 0 22px}.intro-grid>div:last-child>p:not(.lead){color:var(--muted);margin-bottom:30px}
.services{background:var(--navy);color:white}.section-heading{display:flex;justify-content:space-between;gap:80px;align-items:end;margin-bottom:60px}.section-heading>p{max-width:400px;color:#b9c8d5}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.18)}.featured-service{position:relative;padding:40px 34px 30px;border-right:1px solid rgba(255,255,255,.18);min-height:475px;overflow:hidden}.featured-service:first-child{border-left:1px solid rgba(255,255,255,.18)}.number{font:italic 18px var(--serif);color:var(--gold)}.featured-service h3{font:400 31px var(--serif);margin:45px 0 12px}.featured-service p{font-size:14px;color:#b9c8d5;max-width:300px}.featured-service ul{list-style:none;padding:0;margin:25px 0}.featured-service li{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;text-transform:uppercase;letter-spacing:.09em}.featured-service svg{position:absolute;width:115px;height:115px;right:20px;bottom:20px;fill:none;stroke:rgba(212,168,83,.3);stroke-width:1}
.guarantees{background:var(--ivory);text-align:center}.guarantee-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:60px auto 35px;max-width:900px}.guarantee-grid>div{padding:20px;border-right:1px solid var(--line)}.guarantee-grid>div:last-child{border:0}.guarantee-grid strong{font:400 76px/1 var(--serif);color:var(--navy)}.guarantee-grid span{text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:var(--gold);margin-left:6px}.guarantee-grid p{text-transform:uppercase;letter-spacing:.09em;font-size:10px;line-height:1.7}.guarantees small{color:var(--muted);font-size:11px}
.gallery .section-heading.dark>p{color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:330px 330px;gap:14px}.project{position:relative;border:0;padding:0;overflow:hidden;background:#eee;cursor:zoom-in;color:white;text-align:left}.project-tall{grid-row:span 2}.project-wide{grid-column:span 2}.project img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.project-tall img{object-position:center 46%}.project-wide img{object-position:center 58%}.project:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(2,20,37,.85))}.project:hover img{transform:scale(1.03)}.project span{position:absolute;z-index:2;left:24px;bottom:21px}.project b{display:block;font:400 20px var(--serif)}.project small{text-transform:uppercase;letter-spacing:.16em;font-size:9px;color:#d5e0e9}.gallery-note{text-align:center;color:var(--muted);font-size:12px;margin:25px 0 0}
.areas{background:var(--navy-deep);color:white;overflow:hidden}.areas-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center}.areas p:not(.eyebrow){max-width:560px;color:#b9c8d5;margin:28px 0}.map-mark{height:410px;position:relative;display:grid;place-items:center;background:radial-gradient(circle,rgba(212,168,83,.12),transparent 58%)}.map-mark:before,.map-mark:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%;width:290px;height:290px}.map-mark:after{width:410px;height:410px}.map-mark>span{position:relative;z-index:2;width:70px;height:70px;display:grid;place-items:center;background:var(--gold);color:var(--navy);border-radius:50%;font:400 25px var(--serif)}.map-mark .pulse{position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(212,168,83,.08)}.map-mark p{position:absolute;bottom:10px!important;text-transform:uppercase;letter-spacing:.16em;font-size:10px!important;color:white!important}
.reviews-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.reviews-layout>div:first-child p{max-width:530px;color:var(--muted)}.review-placeholder{padding:55px;background:var(--ivory);border-left:3px solid var(--gold)}.stars{color:var(--gold);letter-spacing:.25em}.review-placeholder blockquote{font:italic 28px/1.4 var(--serif);margin:25px 0;color:var(--navy)}.review-placeholder span{text-transform:uppercase;letter-spacing:.14em;font-size:9px;color:var(--muted)}
.contact{background:var(--navy);color:white}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-copy>p:not(.eyebrow){color:#b9c8d5;max-width:460px;margin:28px 0 48px}.contact-direct{border-top:1px solid rgba(255,255,255,.15)}.contact-direct a{display:block;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.15);font:400 21px var(--serif)}.contact-direct small{display:block;font:500 9px var(--sans);text-transform:uppercase;letter-spacing:.18em;color:var(--gold)}form{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px;background:white;color:var(--ink);padding:42px}.field-full{grid-column:1/-1}.field label{display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:600;margin-bottom:7px}.field label span{color:var(--muted);text-transform:none;letter-spacing:0}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #bac4cc;border-radius:0;background:transparent;padding:9px 2px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}.upload{padding:14px;border:1px dashed #aab6bf}.upload input{border:0;padding:3px 0}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px}.consent{display:flex;align-items:start;gap:8px;font-size:10px;color:var(--muted);max-width:300px}.button-gold{background:var(--gold);border:0;color:var(--navy);cursor:pointer}.button-gold span{color:var(--navy)}.hidden-field{position:absolute;left:-9999px}.form-status{font-size:12px;margin:0}
footer{background:#02172c;color:white;padding:70px 0 22px}.footer-main{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:70px;padding-bottom:60px}.footer-brand{width:300px}.footer-main>div p{color:#9fb0bf;max-width:330px}.footer-main>div a{display:block;margin:7px 0}.footer-main nav{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:12px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;color:#8095a7;text-transform:uppercase;letter-spacing:.1em;font-size:8px}.mobile-call{display:none}.lightbox{position:fixed;z-index:100;inset:0;background:rgba(1,15,29,.95);padding:50px;place-items:center}.lightbox:not([hidden]){display:grid}.lightbox img{max-height:90vh;max-width:90vw}.lightbox button{position:absolute;right:25px;top:15px;border:0;background:none;color:white;font-size:40px;cursor:pointer}
.policy{background:var(--ivory)}.policy-main{padding:90px 0;max-width:800px}.policy-main h1{font:400 60px var(--serif);color:var(--navy)}.policy-main h2{font:400 29px var(--serif);margin-top:42px}.policy-main p,.policy-main li{color:#536475}
@media(max-width:900px){.topbar span:first-child{display:none}.site-header{height:72px}.brand{width:225px}.menu-toggle{display:block}#site-nav{position:absolute;top:72px;left:0;right:0;background:white;display:none;padding:18px 24px 28px;box-shadow:0 20px 30px rgba(4,33,60,.13);flex-direction:column;align-items:stretch;gap:0}#site-nav.open{display:flex}#site-nav a{padding:12px}.hero{min-height:700px;height:calc(100svh - 38px)}.hero-content{padding-top:92px}.hero-image{background-position:62% 50%}.hero-shade{background:linear-gradient(90deg,rgba(1,20,39,.92),rgba(3,25,47,.35)),linear-gradient(0deg,rgba(1,16,31,.7),transparent)}.hero-proof{left:0;right:0}.hero-proof>div{flex:1;padding:17px}.trust-strip .wrap{gap:20px;overflow:auto}.trust-strip span{white-space:nowrap}.intro-grid,.areas-grid,.reviews-layout,.contact-grid{grid-template-columns:1fr;gap:50px}.service-grid{grid-template-columns:1fr}.featured-service{min-height:auto;border:1px solid rgba(255,255,255,.18);padding:32px}.featured-service h3{margin-top:18px}.featured-service svg{opacity:.5}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:420px 320px 320px}.project-tall{grid-row:auto;grid-column:span 2}.project-wide{grid-column:span 2}.section{padding:85px 0}.contact-grid{gap:55px}.footer-main{grid-template-columns:1fr 1fr}.footer-main>nav{grid-column:1/-1}}
@media(max-width:600px){.wrap{width:min(100% - 32px,1180px)}.topbar .wrap{justify-content:center}.topbar a{font-size:10px}.brand{width:205px}.hero{min-height:720px}.hero-content{padding-top:65px}.hero h1{font-size:52px}.hero-copy{font-size:15px;max-width:350px}.hero-actions{align-items:flex-start;flex-direction:column;gap:22px}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr)}.hero-proof>div{display:block;padding:14px 10px}.hero-proof strong{display:block;font-size:27px}.hero-proof span{font-size:8px}.trust-strip i{display:none}.section{padding:72px 0}.section h2{font-size:42px}.intro-grid{gap:34px}.intro-grid .lead{font-size:21px}.section-heading{display:block;margin-bottom:38px}.section-heading>p{margin-top:22px}.guarantee-grid{grid-template-columns:1fr}.guarantee-grid>div{border-right:0;border-bottom:1px solid var(--line);padding:25px}.gallery-grid{display:block}.project{width:100%;height:380px;margin-bottom:12px}.project-wide{height:300px}.areas-grid{gap:15px}.map-mark{height:320px}.map-mark:after{width:300px;height:300px}.reviews-layout{gap:35px}.review-placeholder{padding:35px}.contact{padding-bottom:110px}.contact-grid{gap:42px}form{grid-template-columns:1fr;padding:24px;gap:18px}.field{grid-column:1/-1}.form-footer{align-items:stretch;flex-direction:column}.form-footer .button{width:100%}.footer-main{grid-template-columns:1fr}.footer-brand{width:270px}.footer-main nav{grid-column:auto}.footer-bottom{display:grid;gap:8px}.mobile-call{position:fixed;z-index:45;bottom:0;left:0;right:0;height:62px;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:0 22px;text-transform:uppercase;letter-spacing:.1em;font-size:10px}.mobile-call b{font:500 17px var(--sans);letter-spacing:.04em}.policy-main h1{font-size:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
