
:root{--ink:#111c2a;--ink2:#1c2c3d;--slate:#536270;--paper:#f5f3ef;--white:#fff;--orange:#f0643a;--gold:#f2b36f;--line:#dce0e2;--green:#23483f;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:17px/1.65 var(--sans)}img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit}.wrap{width:min(1180px,calc(100% - 44px));margin:auto}.topline{background:#0b1420;color:#cbd3da;font-size:13px}.topline .wrap{display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:38px}.topline a{color:#fff;text-decoration:none}.topline strong{color:var(--gold);font-weight:650}.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid #e5e6e6;backdrop-filter:blur(12px)}.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:220px}.brand img{width:58px;height:58px;object-fit:contain;border-radius:0;flex:0 0 58px}.brand b{display:block;font-size:18px;line-height:1.2;letter-spacing:-.4px}.brand small{display:block;color:#687480;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;margin-top:4px}.links{display:flex;align-items:center;gap:25px}.links>a,.menu-label{font-weight:650;font-size:14px;text-decoration:none;color:#243241}.links>a:hover,.menu-label:hover{color:var(--orange)}.nav-quote,.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:5px;padding:13px 20px;background:var(--orange);color:#fff!important;text-decoration:none!important;font-weight:750;box-shadow:0 8px 18px rgba(240,100,58,.18);transition:transform .18s,background .18s}.nav-quote:hover,.btn:hover{background:#cf4d29;transform:translateY(-1px)}.services-menu{position:relative}.services-menu summary{list-style:none;cursor:pointer}.services-menu summary::-webkit-details-marker{display:none}.drop{display:none;position:absolute;top:30px;left:-20px;background:#fff;box-shadow:0 20px 50px #111c2a22;border:1px solid #e6e8e9;width:270px;padding:10px;border-radius:8px}.services-menu[open] .drop{display:grid}.drop a{padding:9px 11px;text-decoration:none;border-radius:5px;font-size:14px}.drop a:hover{background:var(--paper);color:var(--orange)}.mobile-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:5px;padding:7px 11px}.hero{position:relative;min-height:640px;display:flex;align-items:center;overflow:hidden;background:#111c2a;color:white}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,17,28,.94) 0%,rgba(8,17,28,.78) 44%,rgba(8,17,28,.12) 100%),url('../assets/hero-finished-roof.webp') center 48%/cover no-repeat;transform:scale(1.015)}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;padding:76px 0}.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:2px;color:var(--gold)}.eyebrow:before{content:'';width:28px;height:2px;background:var(--orange)}h1,h2,h3,p{margin-top:0}h1,h2,.display{font-family:var(--serif);letter-spacing:-.03em}h1{font-size:clamp(2.65rem,5.6vw,5.25rem);line-height:1.01;font-weight:500;max-width:730px;margin:19px 0 22px}h1 em{font-weight:500;color:var(--gold)}.hero p{color:#e0e5e8;max-width:590px;font-size:19px;line-height:1.6}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin:29px 0 24px}.btn.secondary{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.4);box-shadow:none}.btn.secondary:hover{background:rgba(255,255,255,.2)}.trustline{display:flex;flex-wrap:wrap;gap:12px 20px;color:#e3e7e8;font-size:13px}.trustline span:before{content:'✓';color:var(--gold);font-weight:900;margin-right:7px}.hero-card{align-self:end;margin:0 0 8px auto;width:min(340px,100%);background:rgba(13,24,37,.88);border:1px solid rgba(255,255,255,.24);padding:24px 25px;border-radius:8px;backdrop-filter:blur(6px)}.hero-card b{font:500 44px/1 var(--serif);color:var(--gold)}.hero-card p{font-size:14px;margin:10px 0 0}.hero-card hr{border:0;border-top:1px solid #ffffff2c;margin:20px 0}.hero-card a{color:#fff}.quick-strip{position:relative;margin-top:-1px;background:#f5f3ef;border-bottom:1px solid #e6e2dc}.quick-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:19px 0}.quick-strip b{display:block;font-size:14px}.quick-strip span{font-size:12px;color:#62707c}.section{padding:88px 0}.section.soft{background:var(--paper)}.section.dark{background:var(--ink);color:#fff}.section-heading{max-width:700px;margin:0 auto 42px;text-align:center}.section-heading h2{font-size:clamp(2.15rem,4vw,3.5rem);line-height:1.08;margin:13px 0 14px;font-weight:500}.section-heading p{color:var(--slate);margin:0}.section.dark .section-heading p{color:#c2ccd3}.kicker{font-size:12px;text-transform:uppercase;letter-spacing:1.8px;color:var(--orange);font-weight:800}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{background:#fff;border:1px solid #e5e8e9;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}.service-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px #1c2c3d17}.service-card img{height:205px;width:100%;object-fit:cover}.service-card .body{padding:21px}.service-card h3{font:500 24px/1.2 var(--serif);margin:0 0 10px}.service-card p{color:#596875;font-size:15px;line-height:1.6;margin-bottom:13px}.arrow-link{color:#d34d2b;text-decoration:none;font-weight:750;font-size:14px}.arrow-link:after{content:' →';font-size:18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.split img{width:100%;height:490px;object-fit:cover;border-radius:8px}.split h2{font-size:clamp(2.3rem,4vw,3.8rem);line-height:1.05;font-weight:500;margin:12px 0 18px}.split p{color:#536270}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;padding:0;list-style:none;margin:23px 0}.checklist li{font-weight:650;font-size:15px}.checklist li:before{content:'✓';color:#d34d2b;margin-right:9px}.areas{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.area-chip{background:#e9e5de;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700;color:#344453}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery-item{margin:0;position:relative;border-radius:7px;overflow:hidden;background:#172536}.gallery-item img{width:100%;height:270px;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item figcaption{padding:14px 15px 16px;background:white}.gallery-item b{display:block;font-size:15px}.gallery-item small{display:block;color:#60707c;font-size:12px;margin-top:3px}.callout{background:#e96037;color:white;border-radius:8px;padding:35px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}.callout h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:0 0 7px}.callout p{margin:0;color:#fff1e8}.callout .btn{background:#111c2a;box-shadow:none;white-space:nowrap}.content-hero{background:linear-gradient(115deg,#111c2a,#24374a);color:white;padding:66px 0 62px}.content-hero .wrap{max-width:1180px}.content-hero h1{font-size:clamp(2.5rem,4.8vw,4.25rem);max-width:850px;margin:15px 0}.content-hero p{max-width:780px;color:#d5dde2;font-size:18px}.crumbs{font-size:13px;color:#b5c0c8;margin-bottom:16px}.crumbs a{color:#fff}.article-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.8fr);gap:60px;align-items:start}.article h2{font-size:32px;line-height:1.15;margin:39px 0 15px;font-weight:500}.article h2:first-child{margin-top:0}.article p{color:#52616e}.article .lead{font-size:19px;color:#243241}.article-aside{position:sticky;top:118px;background:var(--paper);padding:24px;border-radius:7px}.article-aside h3{font:500 24px var(--serif)}.article-aside a{display:block;text-decoration:none;padding:9px 0;border-bottom:1px solid #dedbd4;font-size:14px}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.detail{border-top:3px solid var(--orange);background:#f7f6f3;padding:19px}.detail h3{font:500 21px var(--serif);margin:0 0 8px}.detail p{font-size:14px;margin:0}.faq-list{max-width:850px;margin:auto}.faq-list details{border-bottom:1px solid var(--line);padding:18px 0}.faq-list summary{font-weight:750;cursor:pointer;list-style:none;font-size:18px}.faq-list summary:after{content:'+';float:right;color:var(--orange);font-size:23px}.faq-list details[open] summary:after{content:'−'}.faq-list details p{color:#55636f;margin:11px 36px 0 0}.form-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:60px;align-items:start}.form-box{background:#fff;border:1px solid #e1e4e6;border-radius:8px;padding:29px;box-shadow:0 14px 35px #1626380d}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:14px;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd1d5;border-radius:5px;padding:12px 13px;background:#fff;color:var(--ink)}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #f0643a33;border-color:var(--orange)}.form-note{font-size:13px;color:#687782;margin:14px 0 18px}.contact-card{background:var(--ink);color:#fff;border-radius:7px;padding:27px}.contact-card h2{font-size:30px;margin:0 0 11px}.contact-card p{color:#c8d0d5}.contact-line{padding:13px 0;border-top:1px solid #ffffff2b}.contact-line small{display:block;color:#aeb9c1;font-size:12px}.contact-line a{color:white;text-decoration:none;font-weight:700}.footer{background:#0b1420;color:#d4dbe0;padding:64px 0 24px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1fr;gap:32px}.footer h3{font:500 21px var(--serif);color:white}.footer p,.footer a{font-size:14px;color:#b9c4cc}.footer a{text-decoration:none}.footer a:hover{color:var(--gold)}.footer-links{display:grid;gap:7px}.footer-bottom{border-top:1px solid #ffffff24;margin-top:38px;padding-top:18px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#99a8b3}.float-actions{position:fixed;right:19px;bottom:20px;z-index:40;display:grid;gap:9px}.float-actions a{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#1caa62;color:white;text-decoration:none;box-shadow:0 5px 18px #0003;font-weight:900}.float-actions a.call{background:var(--orange)}.float-actions svg{width:23px;height:23px;fill:currentColor}.notice{border-left:4px solid var(--orange);padding:15px 18px;background:#f7f4ef;margin:22px 0;color:#3f4d59}.map-box{background:#e8ecec;padding:26px;border-radius:8px}.map-box iframe{width:100%;height:260px;border:0;border-radius:5px}.thanks{padding:100px 0;text-align:center}.thanks h1{font-size:50px;margin:15px auto}.thanks p{max-width:600px;margin:0 auto 25px;color:#596875}
@media(max-width:920px){.links{gap:15px}.brand{min-width:190px}.service-grid{grid-template-columns:repeat(2,1fr)}.split{gap:35px}.footer-grid{grid-template-columns:repeat(2,1fr)}.article-layout{gap:28px}}
@media(max-width:720px){body{font-size:16px}.wrap{width:min(100% - 32px,600px)}.topline .wrap{min-height:34px;font-size:11px}.topline .top-extra{display:none}.nav{min-height:68px}.brand{min-width:0}.brand img{height:47px;width:47px;object-fit:contain;border-radius:0;flex-basis:47px}.brand b{font-size:15px;white-space:nowrap}.brand small{font-size:8px;letter-spacing:1px;white-space:nowrap}.brand b{font-size:16px}.brand small{font-size:9px}.mobile-toggle{display:block;color:var(--ink)}.links{display:none;position:absolute;top:68px;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:16px;align-items:stretch;gap:0;box-shadow:0 14px 25px #15243518}.links.open{display:flex;flex-direction:column}.links>a,.menu-label{padding:12px 8px}.services-menu{padding:10px 8px}.drop{position:static;width:auto;box-shadow:none;border:0;border-left:2px solid var(--orange);margin:8px 0 0 9px;border-radius:0}.nav-quote{margin-top:8px}.hero{min-height:670px}.hero::before{background:linear-gradient(90deg,rgba(8,17,28,.93),rgba(8,17,28,.62)),url('../assets/hero-finished-roof.webp') 56% center/cover}.hero-grid{grid-template-columns:1fr;gap:25px;padding:65px 0 48px}h1{font-size:clamp(2.6rem,12vw,4rem)}.hero p{font-size:17px}.hero-card{margin:0;width:100%;max-width:360px;padding:19px}.hero-card b{font-size:36px}.quick-strip .wrap{grid-template-columns:1fr 1fr;padding:15px 0;gap:12px}.quick-strip span{font-size:11px}.section{padding:63px 0}.section-heading{margin-bottom:30px}.service-grid{grid-template-columns:1fr;gap:14px}.service-card img{height:230px}.split{grid-template-columns:1fr;gap:28px}.split img{height:350px;order:2}.checklist{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr;gap:10px}.gallery-item img{height:180px}.gallery-item figcaption{padding:10px}.gallery-item b{font-size:13px}.gallery-item small{font-size:11px}.callout{padding:25px 22px;display:block}.callout .btn{margin-top:17px}.content-hero{padding:45px 0}.content-hero h1{font-size:2.6rem}.article-layout{grid-template-columns:1fr}.article-aside{position:static;order:-1}.article h2{font-size:28px}.details-grid{grid-template-columns:1fr}.form-layout{grid-template-columns:1fr;gap:24px}.form-box{padding:20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-grid{grid-template-columns:1fr 1fr;gap:24px 18px}.footer{padding:45px 0 20px}.footer-bottom{display:block}.footer-bottom span{display:block;margin:4px 0}.float-actions{right:11px;bottom:12px}.float-actions a{height:48px;width:48px}}
@media(max-width:390px){.gallery-grid{grid-template-columns:1fr}.gallery-item img{height:230px}.topline .wrap span:last-child{display:none}.footer-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.latest-work{background:#fff}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.featured-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-item{min-width:0;align-self:start;background:#fff}
/* The wrapper, not the media's intrinsic dimensions, sizes each grid card. */
.gallery-media{position:relative;width:100%;height:0;padding-bottom:75%;overflow:hidden;background:#172536}
.gallery-media>img,.gallery-media>video{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center}
.gallery-media>video{object-fit:contain;background:#0b1420}
.gallery-item video:focus{outline:3px solid var(--orange);outline-offset:-3px}
@media(max-width:720px){
  .gallery-grid,.featured-work-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .gallery-item figcaption{padding:15px 16px 18px}
  .gallery-item b{font-size:15px}
  .gallery-item small{font-size:12px}
  .gallery-media.portrait-media{padding-bottom:133.333333%}
  .gallery-media.video-media{height:min(130vw,520px);padding-bottom:0}
  .gallery-item:hover img{transform:none}
}
