:root{--navy:#071a33;--navy2:#0d294e;--gold:#d7aa48;--gold2:#f0ce7c;--cream:#f5f1e8;--text:#172033;--muted:#677184;--white:#fff;--line:#dfe3e8;--shadow:0 18px 50px rgba(7,26,51,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Montserrat,Arial,sans-serif;color:var(--text);line-height:1.65;background:#fff}a{text-decoration:none;color:inherit}.container{width:min(1160px,calc(100% - 40px));margin:auto}.section{padding:96px 0}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;background:rgba(7,26,51,.96);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}.nav-wrap{height:82px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:white}.brand-mark{width:48px;height:48px}.brand span{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:22px;letter-spacing:2px}.brand small{font-size:9px;letter-spacing:2.2px;color:var(--gold2);margin-top:6px}.main-nav{display:flex;align-items:center;gap:30px;color:#fff;font-size:14px;font-weight:600}.main-nav a:hover{color:var(--gold2)}.nav-cta{border:1px solid var(--gold);padding:11px 18px}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:28px}.hero{min-height:760px;display:flex;align-items:center;position:relative;color:#fff;background:linear-gradient(115deg,#06162d 0%,#0b2b52 62%,#113864 100%);overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(30deg,transparent 55%,rgba(215,170,72,.18) 55% 58%,transparent 58%),radial-gradient(circle at 80% 40%,rgba(255,255,255,.10),transparent 28%)}.hero:after{content:"";position:absolute;width:520px;height:520px;right:-100px;bottom:-180px;border:80px solid rgba(215,170,72,.11);transform:rotate(45deg)}.hero-content{position:relative;z-index:2;padding-top:82px}.eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--gold2);font-weight:700;font-size:12px}.eyebrow.dark{color:#9b6c14}.hero h1{font-family:'Playfair Display',serif;font-size:clamp(52px,7vw,86px);line-height:1.03;margin:18px 0 24px;max-width:900px}.hero h1 span{color:var(--gold2)}.hero-copy{font-size:19px;max-width:720px;color:#d8e1ed}.hero-actions{display:flex;gap:15px;margin:35px 0}.btn{display:inline-flex;justify-content:center;align-items:center;padding:15px 24px;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.6px;border:0;cursor:pointer}.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy)}.btn-outline{border:1px solid rgba(255,255,255,.7);color:#fff}.trust-row{display:flex;gap:36px;margin-top:55px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#cbd4df}.trust-row span:before{content:"✓";color:var(--gold2);margin-right:8px}.intro{background:var(--cream)}.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}.intro h2,.section-heading h2,.about h2,.areas h2,.contact h2{font-family:'Playfair Display',serif;font-size:clamp(36px,4vw,52px);line-height:1.15;margin:10px 0 20px;color:var(--navy)}.intro p{font-size:18px;color:var(--muted)}.text-link{font-weight:800;color:#98701e}.services{background:#fff}.section-heading{max-width:720px;margin-bottom:45px}.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}.section-heading p{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{border:1px solid var(--line);padding:34px;min-height:270px;transition:.25s;background:#fff}.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}.service-card .icon{display:grid;place-items:center;width:52px;height:52px;background:var(--cream);color:#a77519;font-size:24px}.service-card h3{color:var(--navy);font-size:20px;margin:20px 0 10px}.service-card p{color:var(--muted);font-size:14px}.service-card.featured{background:var(--navy);color:#fff;border-color:var(--navy)}.service-card.featured h3,.service-card.featured a{color:var(--gold2)}.service-card.featured p{color:#c9d5e3}.about{background:var(--navy);color:#fff}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about h2{color:#fff}.about-copy>p{color:#ccd7e4}.about-visual{min-height:520px;position:relative;background:linear-gradient(135deg,#d6aa50,#f0cf80);overflow:hidden;display:grid;place-items:center}.blueprint-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(7,26,51,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(7,26,51,.12) 1px,transparent 1px);background-size:28px 28px}.house-outline{position:relative;width:270px;height:230px;border:14px solid var(--navy);border-top:0;display:grid;place-items:center;font-size:150px;font-weight:800;color:var(--navy)}.house-outline:before{content:"";position:absolute;width:190px;height:190px;border-left:14px solid var(--navy);border-top:14px solid var(--navy);transform:rotate(45deg);top:-105px}.license-badge{position:absolute;bottom:24px;right:24px;background:var(--navy);padding:16px 20px;display:flex;flex-direction:column}.license-badge span{font-size:11px;color:var(--gold2)}.check-list{margin:28px 0}.check-list>div{display:flex;gap:14px;margin:18px 0}.check-list b{color:var(--gold2)}.check-list span{display:flex;flex-direction:column}.check-list small{color:#9eb0c4}.projects{background:#f7f8fa}.project-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}.project{height:420px;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:var(--navy)}.project:before{content:"";position:absolute;inset:0;transition:.4s;transform:scale(1.02)}.project:hover:before{transform:scale(1.08)}.p1:before{background:linear-gradient(180deg,transparent,rgba(7,26,51,.88)),linear-gradient(135deg,#d9dde3,#75869a)}.p2:before{background:linear-gradient(180deg,transparent,rgba(7,26,51,.88)),linear-gradient(135deg,#e5c98e,#9c7040)}.p3:before{background:linear-gradient(180deg,transparent,rgba(7,26,51,.88)),repeating-linear-gradient(45deg,#e5e5e5 0 22px,#b9c3cc 22px 24px)}.project div{position:relative;color:#fff;padding:28px}.project span{color:var(--gold2);font-size:12px;text-transform:uppercase;letter-spacing:2px}.project h3{margin:4px 0;font-size:21px}.areas{background:linear-gradient(120deg,#081a33,#0d315c);color:#fff}.areas-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}.areas h2{color:#fff}.areas p{color:#c8d4e1}.area-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.area-list span{border:1px solid rgba(255,255,255,.18);padding:18px;color:#fff}.area-list span:before{content:"•";color:var(--gold2);margin-right:10px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact p{color:var(--muted)}.contact-details{margin-top:30px}.contact-details a,.contact-details div{display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding:14px 0}.contact-details strong{font-size:12px;text-transform:uppercase;color:#9b6c14}.contact-details span{font-weight:600}.estimate-form{box-shadow:var(--shadow);padding:36px;background:#fff;display:grid;gap:16px}.estimate-form label{font-size:12px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px}.estimate-form input,.estimate-form select,.estimate-form textarea{width:100%;margin-top:7px;padding:14px;border:1px solid #ccd2da;font:inherit;text-transform:none}.estimate-form small{color:var(--muted)}footer{background:#041225;color:#c7d1dc;padding:60px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}.footer-grid strong{color:#fff}.footer-grid a:hover{color:var(--gold2)}.copyright{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;margin-top:38px;font-size:12px}.mobile-call{display:none}
@media(max-width:900px){.menu-toggle{display:block}.main-nav{position:absolute;top:82px;left:0;right:0;background:var(--navy);padding:22px 20px;display:none;flex-direction:column;align-items:flex-start}.main-nav.open{display:flex}.intro-grid,.about-grid,.areas-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.service-grid{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr}.project{height:300px}.hero{min-height:700px}.trust-row{flex-wrap:wrap;gap:14px 24px}.about-visual{min-height:420px}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.container{width:min(100% - 28px,1160px)}.section{padding:70px 0}.brand strong{font-size:17px}.brand small{font-size:7px}.brand-mark{width:40px}.hero h1{font-size:48px}.hero-copy{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.service-grid{grid-template-columns:1fr}.area-list{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.mobile-call{display:block;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--gold);color:var(--navy);text-align:center;padding:14px;font-weight:800}body{padding-bottom:50px}.estimate-form{padding:24px}.house-outline{transform:scale(.78)}}

/* Premium project photography */
.hero{background:linear-gradient(90deg,rgba(4,18,37,.96),rgba(7,26,51,.82) 56%,rgba(7,26,51,.42)),url('images/roof-decking-project.jpg') center/cover no-repeat}.hero:before{background:linear-gradient(30deg,transparent 55%,rgba(215,170,72,.16) 55% 58%,transparent 58%),radial-gradient(circle at 80% 40%,rgba(255,255,255,.08),transparent 28%)}
.project{background-position:center;background-size:cover}.project:before{background-position:center;background-size:cover}.p1:before{background-image:linear-gradient(180deg,transparent 30%,rgba(7,26,51,.92)),url('images/custom-wood-ceiling.jpg')}.p2:before{background-image:linear-gradient(180deg,transparent 30%,rgba(7,26,51,.92)),url('images/custom-cabinetry.jpg')}.p3:before{background-image:linear-gradient(180deg,transparent 30%,rgba(7,26,51,.92)),url('images/stucco-entry-restoration.jpg')}.gallery-cta{text-align:center;margin-top:38px}.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover{background:var(--navy2)}

/* Gallery page */
.gallery-hero{padding:190px 0 110px;color:#fff;position:relative;background:linear-gradient(90deg,rgba(4,18,37,.96),rgba(7,26,51,.75)),url('images/custom-wood-ceiling.jpg') center/cover no-repeat}.gallery-hero:after{content:"";position:absolute;inset:auto 0 0;height:5px;background:linear-gradient(90deg,var(--gold),var(--gold2),var(--gold))}.gallery-hero-content{position:relative;z-index:2;max-width:900px}.gallery-hero h1{font-family:'Playfair Display',serif;font-size:clamp(54px,7vw,84px);line-height:1.05;margin:15px 0 20px}.gallery-hero p:not(.eyebrow){font-size:18px;max-width:760px;color:#d6e0eb}.gallery-heading{margin-bottom:50px}.gallery-section{background:#f7f5ef}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}.gallery-card{grid-column:span 6;margin:0;background:#fff;border:1px solid rgba(7,26,51,.10);box-shadow:0 14px 35px rgba(7,26,51,.08);overflow:hidden;transition:transform .25s,box-shadow .25s}.gallery-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(7,26,51,.15)}.gallery-card-tall{grid-column:span 4;grid-row:span 2}.gallery-card-wide{grid-column:span 8}.gallery-image-button{display:block;width:100%;padding:0;border:0;background:#ddd;cursor:zoom-in;overflow:hidden}.gallery-card-tall .gallery-image-button{height:610px}.gallery-card-wide .gallery-image-button{height:330px}.gallery-image-button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.gallery-card:hover img{transform:scale(1.035)}.gallery-card figcaption{padding:24px 26px 28px}.gallery-card figcaption span{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:#9b6c14;font-weight:800}.gallery-card h3{margin:6px 0 8px;font-family:'Playfair Display',serif;color:var(--navy);font-size:25px}.gallery-card p{margin:0;color:var(--muted);font-size:14px}.gallery-banner{background:linear-gradient(120deg,#071a33,#0d315c);color:#fff;padding:72px 0}.gallery-banner-inner{display:flex;justify-content:space-between;align-items:center;gap:45px}.gallery-banner h2{font-family:'Playfair Display',serif;font-size:clamp(34px,4vw,48px);line-height:1.15;margin:8px 0 0}.gallery-banner-inner>div:last-child{display:flex;flex-direction:column;align-items:center;gap:12px}.gallery-phone{color:#d6e0eb;font-weight:600}.gallery-phone:hover{color:var(--gold2)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(2,10,22,.94);display:grid;place-items:center;padding:40px}.lightbox[hidden]{display:none}.lightbox img{max-width:min(1200px,96vw);max-height:88vh;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.5)}.lightbox-close{position:absolute;top:18px;right:24px;color:#fff;background:transparent;border:0;font-size:48px;line-height:1;cursor:pointer}
@media(max-width:900px){.gallery-card,.gallery-card-tall,.gallery-card-wide{grid-column:span 12}.gallery-card-tall .gallery-image-button,.gallery-card-wide .gallery-image-button{height:420px}.gallery-banner-inner{flex-direction:column;align-items:flex-start}.gallery-banner-inner>div:last-child{align-items:flex-start}}
@media(max-width:620px){.gallery-hero{padding:150px 0 80px}.gallery-hero h1{font-size:48px}.gallery-grid{gap:18px}.gallery-card-tall .gallery-image-button,.gallery-card-wide .gallery-image-button{height:290px}.gallery-card figcaption{padding:20px}.lightbox{padding:16px}.lightbox-close{top:10px;right:12px}}
