:root{--accent:#edf2f7;--accent-ink:#1c304b;--dark:#263d5b;--dark-line:#647890;--ink:#1c304b;--light:#ffffff;--line:#c3ccd5;--muted:#505d6c;--panel:#334d6b;--paper:#f7f7f3;--soft:#e9edf0;--heading:"System Barlow Condensed", Impact, "Arial Narrow", Arial, sans-serif;--body:Arial, Helvetica, sans-serif;--pad:clamp(22px,4.8vw,76px);}
:root{--header-bg:#263d5b;--header-ink:#ffffff;}
@font-face{font-family:"System Barlow Condensed";src:url("fonts/BarlowCondensed-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
h1,h2,h3{text-transform:uppercase}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body)}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}h1,h2,h3{margin:0;font-family:var(--heading);line-height:1.05;overflow-wrap:anywhere}h2{font-size:clamp(2.5rem,5.2vw,5.2rem);letter-spacing:-.04em}p{overflow-wrap:anywhere}h3{font-size:1.8rem}figure{margin:0}[hidden]{display:none!important}:focus-visible{outline:3px solid currentColor;outline-offset:5px}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:12px 18px;background:var(--paper);color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:50;display:flex;gap:25px;align-items:center;justify-content:space-between;padding:14px var(--pad);min-height:82px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;text-decoration:none;max-width:38%;line-height:1.2}.brand img{max-width:150px;max-height:60px;width:auto;object-fit:contain;filter:none}.site-nav{display:flex;gap:25px;align-items:center}.site-nav a{font-size:.85rem;font-weight:700;text-decoration:none;padding:10px 0}.menu-toggle{display:none}.section{padding:clamp(75px,9vw,135px) var(--pad)}.section-heading{display:grid;grid-template-columns:1.25fr .7fr;gap:50px;align-items:end;margin-bottom:60px}.section-heading>p{color:var(--muted);margin:0}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.16em;font-weight:800;margin:0 0 24px}.hero-lede{font-size:1.15rem;max-width:620px;margin:30px 0 0}.hero-actions{display:flex;gap:30px;align-items:center;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:15px 24px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-size:.85rem;font-weight:800;text-decoration:none}.text-link{text-underline-offset:6px}.fixture-banner{padding:8px var(--pad);font-size:.8rem;background:var(--soft);color:var(--ink);border-bottom:1px solid var(--line)}.fixture-label{font-size:.8rem;font-weight:700;padding:10px;border:1px dashed currentColor;margin:0 0 24px}.contact{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-links{border-top:1px solid var(--line)}.contact-links a{display:block;overflow-wrap:anywhere;padding:22px 0;border-bottom:1px solid var(--line);font-weight:700}.contact-links small{display:block;font-size:.85rem;font-weight:400}.site-footer{padding:30px var(--pad);background:var(--soft);color:var(--ink);display:flex;gap:20px;justify-content:space-between}.mobile-contact{display:none}
@media(max-width:900px){.site-header{flex-wrap:wrap;gap:15px}.brand{max-width:75%}.site-nav{gap:15px}.site-nav a{font-size:.8rem}}@media(max-width:760px){:root{--pad:22px}html{scroll-padding-top:90px}.site-header{min-height:74px;padding:12px var(--pad)}.site-nav{width:100%;flex-direction:column;align-items:stretch;gap:0}.site-nav a{padding:13px 0;border-bottom:1px solid var(--line)}.js .menu-toggle{display:block;min-width:48px;min-height:48px;border:1px solid var(--ink);background:transparent;color:var(--ink)}.js .site-nav{display:none}.js .site-nav.open{display:flex}.section-heading{display:block;margin-bottom:40px}.section-heading>p{margin-top:25px}.contact{grid-template-columns:1fr;gap:40px}.site-footer{flex-direction:column;padding-bottom:95px}.mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:60;display:flex;min-height:58px;padding-bottom:env(safe-area-inset-bottom);background:var(--ink);color:var(--paper)}.mobile-contact a{flex:1;padding:16px;text-align:center;font-weight:700;text-decoration:none}.mobile-contact a+a{border-left:1px solid currentColor}}
.site-header{background:var(--header-bg);color:var(--header-ink)}.js .menu-toggle{border-color:var(--header-ink);color:var(--header-ink)}
.brand-logo{position:relative;display:block;width:264px;max-width:45%;flex-shrink:0;background:var(--dark);color:var(--light)}.brand-logo img{width:100%;height:auto;max-width:none;max-height:none;object-fit:contain;filter:none}.brand-logo span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.footer-logo{background:var(--dark);color:var(--light);align-items:center}.footer-logo .brand-logo{width:300px;max-width:100%}html:has(.brand-logo){scroll-padding-top:210px}
@media(max-width:760px){.site-header:has(.brand-logo){padding:10px 14px;gap:10px}.brand-logo{width:250px;max-width:calc(100% - 68px)}html:has(.brand-logo){scroll-padding-top:190px}.footer-logo .brand-logo{width:276px;max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.hero-scenic{position:relative;isolation:isolate;min-height:710px;display:flex;align-items:center;background:var(--dark);color:var(--light);overflow:hidden}.hero-scenic .hero-copy{position:relative;z-index:2;width:49%;padding:75px 0 95px var(--pad)}.hero-scenic .eyebrow{font-size:.67rem;letter-spacing:.2em;color:var(--accent)}.hero-scenic h1{font-size:clamp(4rem,6.6vw,6.5rem);font-weight:400;line-height:1.02;letter-spacing:-.055em}.hero-scenic h1 em{display:block;font-weight:400;color:var(--accent)}.hero-scenic .hero-lede{max-width:380px;font-size:1rem;line-height:1.8;color:var(--light);margin-top:28px}.hero-scenic .hero-actions{align-items:flex-start;gap:22px;flex-direction:column}.hero-scenic .button{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);min-height:54px;padding-inline:27px}.hero-scenic .text-link{font-size:.8rem;text-decoration:none;border-bottom:1px solid var(--dark-line);padding-bottom:7px}.hero-scenic .text-link span{margin-left:18px}.hero-scenic .hero-landscape{position:absolute;inset:0 0 0 34%;z-index:0}.hero-scenic .hero-landscape::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--dark),transparent 45%),linear-gradient(0deg,#10251e3d,transparent 40%)}.hero-scenic .hero-photo{width:100%;height:100%;object-fit:cover}.hero-scenic .hero-photo-caption{position:absolute;z-index:1;bottom:26px;right:var(--pad);padding:9px 13px;background:var(--dark);color:var(--light);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;margin:0}.hero-scenic.no-image .hero-copy{width:100%;max-width:950px}.hero-scenic.no-image .hero-landscape{display:none}
body:has(.hero-scenic) .site-header{min-height:112px;padding-block:12px;border-color:var(--dark-line)}body:has(.hero-scenic) .brand-logo{width:185px;max-width:38%}body:has(.hero-scenic) .site-nav{gap:32px}body:has(.hero-scenic) .site-nav a{font-size:.72rem;font-weight:500;letter-spacing:.07em}html:has(.hero-scenic){scroll-padding-top:125px}body:has(.hero-scenic) .section-heading{grid-template-columns:1.2fr .8fr;gap:70px;margin-bottom:55px}body:has(.hero-scenic) h2{font-size:clamp(2.8rem,4.5vw,4.5rem);font-weight:400;line-height:1.08;letter-spacing:-.045em}body:has(.hero-scenic) h2 em{display:block;font-weight:400}body:has(.hero-scenic) .eyebrow{font-size:.65rem;letter-spacing:.18em}
body:has(.hero-scenic) .services-cards{background:var(--paper);color:var(--ink)}body:has(.hero-scenic) .services-cards .section-heading>p{color:var(--muted);font-size:.95rem}body:has(.hero-scenic) .services-cards .service-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:35px 32px}body:has(.hero-scenic) .services-cards .service-card{grid-column:span 6;background:transparent;border:0}body:has(.hero-scenic) .services-cards img{height:auto;aspect-ratio:2/1;object-fit:cover}body:has(.hero-scenic) .services-cards .card-body{padding:25px 0 0}body:has(.hero-scenic) .services-cards h3{font-family:var(--heading);font-size:2rem;font-weight:400;padding-right:35px}body:has(.hero-scenic) .services-cards p{color:var(--muted);max-width:480px;font-size:.9rem;margin:15px 0 20px}body:has(.hero-scenic) .services-cards .number{color:var(--muted);right:0;top:31px;font-size:.65rem}body:has(.hero-scenic) .services-cards .text-link{border-color:var(--line);font-size:.72rem;text-decoration:none;padding-block:13px}body:has(.hero-scenic) .services-cards .service-card:not(:has(img)){grid-column:span 4;border-top:1px solid var(--line);padding-top:8px}body:has(.hero-scenic) .services-cards .service-card:not(:has(img)) h3{font-size:1.7rem}
body:has(.hero-scenic) .about-collage{gap:clamp(60px,7vw,105px);padding-block:115px}body:has(.hero-scenic) .about-collage .about-images{min-height:490px}body:has(.hero-scenic) .about-collage .about-main{width:95%;height:auto;aspect-ratio:4/3}body:has(.hero-scenic) .about-collage .about-detail{width:40%;height:265px;border-width:7px}body:has(.hero-scenic) .about-collage .photo-caption{top:auto;bottom:28px;width:62%;font-size:.68rem;font-weight:500;line-height:1.6;padding:17px}body:has(.hero-scenic) .about-collage .about-copy>p:not(.eyebrow){font-size:.92rem;line-height:1.9;max-width:510px;margin-top:23px}
body:has(.hero-scenic) .contact{background:var(--dark);color:var(--light);border-top:1px solid var(--dark-line)}body:has(.hero-scenic) .contact>div>p{max-width:420px;color:var(--light);font-size:.94rem;line-height:1.9}body:has(.hero-scenic) .contact-links a{border-color:var(--dark-line);font-family:var(--heading);font-weight:400;font-size:clamp(1.25rem,2.2vw,2rem)}body:has(.hero-scenic) .contact-links small{font-family:var(--body);font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent)}body:has(.hero-scenic) .site-footer{border-color:var(--dark-line);padding-block:35px;font-size:.7rem}body:has(.hero-scenic) .site-footer .brand-logo{width:180px;max-width:100%}body:has(.hero-scenic) .site-footer>span{max-width:340px;color:var(--light)}
@media(max-width:1050px){.hero-scenic{min-height:660px}.hero-scenic .hero-copy{width:53%}.hero-scenic h1{font-size:clamp(3.8rem,7.5vw,5.4rem)}.hero-scenic .hero-landscape{left:31%}body:has(.hero-scenic) .site-nav{gap:23px}body:has(.hero-scenic) .about-collage .about-images{min-height:420px}body:has(.hero-scenic) .about-collage .about-detail{height:215px}body:has(.hero-scenic) .section-heading{gap:40px}}
@media(max-width:760px){.hero-scenic{display:flex;flex-direction:column;align-items:stretch;min-height:0}.hero-scenic .hero-copy{width:100%;padding:48px var(--pad) 45px}.hero-scenic h1{font-size:clamp(3.3rem,12vw,5rem)}.hero-scenic .hero-lede{font-size:.9rem;max-width:470px}.hero-scenic .hero-actions{gap:23px;margin-top:25px;flex-direction:row;align-items:center;flex-wrap:wrap}.hero-scenic .hero-actions .button{padding-inline:20px;font-size:.75rem}.hero-scenic .hero-actions .text-link{font-size:.7rem}.hero-scenic .hero-landscape{position:relative;inset:auto;height:auto;aspect-ratio:4/3;max-height:500px}.hero-scenic .hero-landscape::after{background:linear-gradient(0deg,#10251e26,transparent 30%)}.hero-scenic .hero-photo-caption{right:16px;bottom:16px;font-size:.55rem}body:has(.hero-scenic) .site-header{min-height:92px;padding:8px 20px;flex-wrap:wrap}body:has(.hero-scenic) .brand-logo{width:160px;max-width:calc(100% - 80px)}body:has(.hero-scenic) .menu-toggle{border:0;font-size:.75rem;letter-spacing:.08em}body:has(.hero-scenic) .section-heading{display:block}body:has(.hero-scenic) .section-heading>p{margin-top:25px}body:has(.hero-scenic) .services-cards .service-grid{gap:30px 20px}body:has(.hero-scenic) .services-cards .service-card{grid-column:span 6}body:has(.hero-scenic) .services-cards .service-card:not(:has(img)){grid-column:1/-1}body:has(.hero-scenic) .services-cards img{aspect-ratio:4/3}body:has(.hero-scenic) .services-cards h3{font-size:1.6rem}body:has(.hero-scenic) .services-cards .card-body{padding-top:20px}body:has(.hero-scenic) .services-cards .number{top:22px}body:has(.hero-scenic) .about-collage{padding-block:75px;gap:48px}body:has(.hero-scenic) .about-collage .about-images{min-height:440px}body:has(.hero-scenic) .about-collage .about-detail{height:230px;width:40%}body:has(.hero-scenic) .about-collage .photo-caption{bottom:35px;font-size:.63rem}body:has(.hero-scenic) .site-footer{padding-bottom:100px;gap:22px;text-align:center}html:has(.hero-scenic){scroll-padding-top:110px}}
@media(max-width:520px){body:has(.hero-scenic) .services-cards .service-card{grid-column:1/-1}body:has(.hero-scenic) .services-cards img{aspect-ratio:3/2}body:has(.hero-scenic) .services-cards h3{font-size:1.85rem}body:has(.hero-scenic) .about-collage .about-images{min-height:370px}body:has(.hero-scenic) .about-collage .about-detail{height:190px}body:has(.hero-scenic) .contact-links a{font-size:1.35rem}}
.hero-scenic h1 em{font-style:normal}
@media(max-width:760px){body:has(.hero-scenic):has(.site-nav.open){overflow:hidden}body:has(.hero-scenic) .site-header:has(.site-nav.open){z-index:100}body:has(.hero-scenic) .site-header:has(.site-nav.open) .brand,body:has(.hero-scenic) .site-header:has(.site-nav.open) .menu-toggle{position:relative;z-index:2}body:has(.hero-scenic) .site-nav.open{position:fixed;inset:0;z-index:1;width:100%;height:100dvh;overflow-y:auto;padding:125px var(--pad) calc(35px + env(safe-area-inset-bottom));background:var(--dark);color:#ffffff;justify-content:flex-start;gap:0}body:has(.hero-scenic) .site-nav.open a{font-family:var(--heading);font-size:2rem;font-weight:400;letter-spacing:0;padding:20px 0;border-color:var(--dark-line)}}
body:has(.hero-scenic) .site-nav .header-call{background:var(--accent);color:var(--accent-ink);font-size:1rem;font-weight:700;letter-spacing:0;white-space:nowrap;padding:15px 22px;min-height:54px;text-align:center;border:1px solid var(--accent)}
@media(max-width:1100px) and (min-width:761px){body:has(.hero-scenic) .site-nav{gap:18px}body:has(.hero-scenic) .site-nav .header-call{padding-inline:14px;font-size:.9rem}}
@media(max-width:760px){body:has(.hero-scenic) .site-nav .header-call{display:none}body:has(.hero-scenic) .mobile-contact{background:var(--dark);color:var(--light);padding-bottom:0}body:has(.hero-scenic) .mobile-contact a{flex:0 0 50%;width:50%;display:flex;align-items:center;justify-content:center;padding:16px 12px calc(16px + env(safe-area-inset-bottom));background:var(--dark);color:var(--light)}body:has(.hero-scenic) .mobile-contact a[href^="sms:"]{background:var(--accent);color:var(--accent-ink);border:0}}
body:has(.hero-scenic) .eyebrow:empty{display:none}
.hero-scenic.hero-full-bleed{background:#171b19;min-height:760px}
.hero-scenic.hero-full-bleed .hero-landscape{position:absolute;inset:0;max-height:none;aspect-ratio:auto}
.hero-scenic.hero-full-bleed .hero-landscape::after{background:linear-gradient(90deg,rgba(0,0,0,.74),rgba(0,0,0,.42) 46%,rgba(0,0,0,.08) 85%),linear-gradient(0deg,rgba(0,0,0,.2),transparent 50%)}
.hero-scenic.hero-full-bleed .hero-copy{width:65%;max-width:920px;padding:80px 0 100px var(--pad)}
.hero-scenic.hero-full-bleed h1{font-size:clamp(3.5rem,5.8vw,5.5rem)}
.hero-scenic.hero-full-bleed .hero-photo-caption{background:rgba(0,0,0,.6)}
.hero-scenic.hero-full-bleed .text-link{border-color:rgba(255,255,255,.5)}
@media(max-width:760px){.hero-scenic.hero-full-bleed{min-height:760px;justify-content:center}.hero-scenic.hero-full-bleed .hero-copy{width:100%;max-width:620px;padding:55px var(--pad) 100px}.hero-scenic.hero-full-bleed h1{font-size:clamp(3rem,10.5vw,4.5rem)}.hero-scenic.hero-full-bleed .hero-landscape::after{background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.4)),linear-gradient(0deg,rgba(0,0,0,.25),transparent 55%)}.hero-scenic.hero-full-bleed .hero-photo{object-position:60% center!important}}

.services-cards{background:var(--dark);color:var(--light)}.services-cards .section-heading>p{color:var(--light)}.services-cards .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.services-cards .service-card{background:var(--panel);border:1px solid var(--dark-line);overflow:hidden}.services-cards img{width:100%;height:205px;object-fit:cover}.services-cards .card-body{padding:27px;position:relative}.services-cards h3{font-family:var(--body);font-size:1.3rem;padding-right:35px}.services-cards p{font-size:.95rem;margin:18px 0 24px}.services-cards .number{position:absolute;right:24px;top:27px;color:var(--accent)}.services-cards .text-link{display:block;border-top:1px solid var(--dark-line);padding-top:16px;font-size:.85rem}
@media(max-width:900px){.services-cards .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.services-cards .service-grid{grid-template-columns:1fr}}
.services-cards.services-image-led .service-card img{height:auto;aspect-ratio:4/3;object-fit:contain;background:var(--soft)}body:has(.hero-scenic) .services-cards.services-image-led img{height:auto;aspect-ratio:4/3;object-fit:contain}body:has(.hero-scenic) .services-cards.services-image-led .card-body{padding-top:18px}body:has(.hero-scenic) .services-cards.services-image-led h3{padding-right:0}body:has(.hero-scenic) .services-cards.services-image-led .service-grid{row-gap:45px}
.services-cards.services-light{--paper:#faf9f5;--ink:#181818;--muted:#555555;--soft:#eceae4;--dark:#faf9f5;--panel:#faf9f5;--light:#181818;--accent:#181818;--accent-ink:#ffffff;--line:#ccc9bf;--dark-line:#ccc9bf}

.about-collage{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(60px,9vw,135px);align-items:center;background:var(--dark);color:var(--light)}.about-collage .about-images{position:relative;min-height:650px}.about-collage .about-main{width:82%;height:580px;object-fit:cover}.about-collage .about-detail{position:absolute;right:0;bottom:0;width:45%;height:290px;object-fit:cover;border:8px solid var(--dark)}.about-collage .photo-caption{position:absolute;left:0;top:530px;width:82%;padding:17px 19px;background:var(--accent);color:var(--accent-ink);margin:0;font-weight:700}.about-collage .about-copy>p:not(.eyebrow){line-height:1.75;margin-top:30px}.about-collage h2 em{font-style:normal;color:var(--accent)}.about-collage.no-image{grid-template-columns:1fr}.about-collage.no-image .about-copy{max-width:850px}
@media(max-width:760px){.about-collage{grid-template-columns:1fr;gap:50px}.about-collage .about-images{min-height:520px}.about-collage .about-main{height:470px}.about-collage .about-detail{height:235px}.about-collage .photo-caption{top:415px;font-size:.85rem}}

.reviews-carousel{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,9vw,135px);align-items:center;background:var(--paper);color:var(--ink)}.reviews-carousel .section-heading{display:block;margin:0}.reviews-carousel .review{margin:0 0 35px}.reviews-carousel blockquote{margin:0;font-size:clamp(1.4rem,2.7vw,2.6rem);font-weight:800;letter-spacing:-.025em;line-height:1.36}.reviews-carousel figcaption{display:block;margin-top:45px;padding-top:18px;border-top:1px solid var(--line)}.reviews-carousel .quote-mark,.reviews-carousel .avatar{display:none}.review-controls{display:flex;gap:18px;align-items:center;margin-top:40px}.review-controls button{width:48px;height:48px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;cursor:pointer}.review-controls button:hover{background:var(--ink);color:var(--paper)}.review-controls span{font-size:.85rem}
.reviews-carousel strong,.reviews-carousel small{display:block}.reviews-carousel small{font-size:.8rem;font-weight:400;margin-top:7px}
@media(max-width:1000px){.reviews-carousel{grid-template-columns:1fr}.reviews-carousel .review-stage{margin-top:20px}}

.projects-mosaic{background:var(--paper);color:var(--ink)}.projects-mosaic .section-heading>p{font-size:.94rem}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;grid-auto-flow:dense}.projects-grid .project{min-width:0;display:flex;flex-direction:column}.project-open{display:block;position:relative;aspect-ratio:4/3;background:var(--soft);overflow:hidden;cursor:zoom-in}.project-open img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-open:hover img{transform:scale(1.025)}.project-zoom{position:absolute;right:12px;bottom:12px;background:var(--paper);color:var(--ink);font:600 .65rem var(--body);padding:8px 11px}.projects-grid figcaption{padding:17px 0 0;border-bottom:1px solid var(--line);padding-bottom:19px}.projects-grid figcaption>span{display:block;font-size:.57rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.projects-grid h3{font-size:1.25rem;line-height:1.3;font-weight:400}.project-comparison{grid-column:span 2;grid-row:span 2}.project-comparison .project-open{flex:1;aspect-ratio:auto;min-height:480px;background:var(--soft)}.project-comparison img{object-fit:contain}.project-comparison figcaption{background:var(--dark);color:var(--light);padding:21px 24px;border:0}.project-comparison figcaption>span{color:var(--accent)}.project-comparison h3{font-size:1.65rem}.project-dialog{padding:0;border:0;max-width:min(1100px,94vw);width:1100px;max-height:94vh;background:var(--paper);color:var(--ink)}.project-dialog::backdrop{background:#07170fe8}.project-dialog-stage{position:relative;background:var(--dark)}.project-dialog-stage>img{width:100%;height:72vh;max-height:850px;object-fit:contain}.project-dialog-close{position:absolute;top:15px;right:15px;padding:10px 16px;border:0;background:var(--paper);color:var(--ink);font-size:.75rem;cursor:pointer}.project-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 25px}.project-dialog-footer p{font-family:var(--heading);font-size:1.4rem;margin:3px 0 0}.project-dialog-footer small{text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:var(--muted)}.project-dialog-controls{display:flex;gap:15px;align-items:center;flex-shrink:0}.project-dialog-controls button{width:40px;height:40px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.project-dialog-controls span{font-size:.7rem;font-variant-numeric:tabular-nums}.project-open:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
@media(max-width:900px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-comparison{grid-column:1/-1;grid-row:auto}.project-comparison .project-open{aspect-ratio:1/1;min-height:0;max-height:700px}}@media(max-width:520px){.projects-grid{grid-template-columns:1fr;gap:28px}.project-comparison .project-open{aspect-ratio:1/1}.project-comparison h3{font-size:1.35rem}.project-dialog-stage>img{height:65vh}.project-dialog-footer{padding:16px;align-items:flex-start;gap:15px}.project-dialog-footer p{font-size:1.1rem}.project-dialog-controls{gap:9px}.project-dialog-controls button{width:34px;height:38px}.project-dialog-controls span{font-size:.6rem}}@media(prefers-reduced-motion:reduce){.project-open img{transition:none}.project-open:hover img{transform:none}}
/* Project-local finishing, leaving reference websites and shared modules unchanged. */
.eyebrow:empty{display:none}
body:has(.hero-scenic) h1,body:has(.hero-scenic) h2,body:has(.hero-scenic) h3{font-weight:700;letter-spacing:-.025em}
.hero-scenic{min-height:690px}
.hero-scenic .hero-copy{width:53%;padding-block:75px 90px}
.hero-scenic h1{font-size:clamp(4.3rem,7.4vw,7.2rem);line-height:.96}
.hero-scenic h1 em{font-weight:700;font-style:normal}
.hero-scenic h1{font-size:clamp(3.6rem,6.1vw,5.8rem);line-height:1.02}
.hero-scenic .hero-landscape{left:39%}
.hero-scenic .hero-landscape::after{background:linear-gradient(90deg,var(--dark),transparent 60%)}
.hero-scenic .hero-lede{max-width:410px;font-size:1.03rem;line-height:1.8}
.hero-scenic .text-link{color:var(--light)}
body:has(.hero-scenic) .brand-logo{width:190px;background:transparent}
body:has(.hero-scenic) .site-header{min-height:116px;padding-block:8px}
body:has(.hero-scenic) .site-nav a{font-size:.84rem;letter-spacing:0;text-transform:none}
body:has(.hero-scenic) .section-heading{gap:60px}
body:has(.hero-scenic) h2{font-size:clamp(2.8rem,4.8vw,4.8rem)}
.services-photo-grid{background:var(--paper);color:var(--ink)}
.services-photo-grid .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:440px;gap:12px}
.services-photo-grid .service-card{position:relative;isolation:isolate;display:flex;align-items:flex-end;overflow:hidden;padding:30px;background:var(--dark);color:var(--light)}
.services-photo-grid .service-wide{grid-column:span 2}
.services-photo-grid .service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.services-photo-grid .service-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,20,34,.98),rgba(8,20,34,.8) 28%,rgba(8,20,34,.08) 80%)}
.services-photo-grid .service-text{align-items:center;background:var(--panel)}
.services-photo-grid .number{position:absolute;top:24px;right:26px;font-size:.8rem;font-weight:700;color:var(--light)}
.services-photo-grid .service-photo .number{text-shadow:0 1px 4px #000}
body:has(.hero-scenic) .services-photo-grid h3{font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.05;max-width:560px}
.services-photo-grid .section-heading>p{color:var(--muted)}
.services-photo-grid .service-card p{max-width:490px;margin:17px 0 0;font-size:.94rem;line-height:1.7;color:var(--light)}
.services-photo-grid .service-text h3{font-size:clamp(2.5rem,4vw,4rem)}
@media(max-width:1050px) and (min-width:761px){.services-photo-grid .service-grid{grid-auto-rows:420px}.services-photo-grid .service-card{padding:24px}.services-photo-grid .service-card p{font-size:.88rem}}
@media(max-width:760px){.services-photo-grid .service-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:14px}.services-photo-grid .service-wide{grid-column:auto}.services-photo-grid .service-card{min-height:430px;padding:27px}.services-photo-grid .service-text{min-height:265px;padding-block:55px}.services-photo-grid .service-photo:first-child img{object-position:center 62%!important}body:has(.hero-scenic) .services-photo-grid h3{font-size:2.5rem}.services-photo-grid .service-card p{font-size:.94rem}}
body:has(.hero-scenic) .about-collage .about-images{min-height:560px}
body:has(.hero-scenic) .about-collage .about-main{width:100%;height:560px;aspect-ratio:auto;object-fit:cover;object-position:50% 32%}
body:has(.hero-scenic) .about-collage .photo-caption{bottom:20px;left:20px;top:auto;width:auto;padding:12px 18px}
.reviews-carousel .section-heading{display:block!important;margin-bottom:28px}
.reviews-carousel .section-heading>p{margin-top:22px}
.reviews-carousel .review blockquote{font-size:clamp(1.16rem,1.85vw,1.7rem);line-height:1.65}
.reviews-carousel .review-highlight{background:var(--dark);color:var(--light);padding:.025em .13em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.review-controls button{min-width:48px;min-height:48px}
.projects-mosaic .project-grid{gap:18px}
.contact-links a{overflow-wrap:anywhere}
body:has(.hero-scenic) .contact-links a[href^="mailto:"]{font-family:var(--body);font-size:clamp(.95rem,1.4vw,1.35rem)}
body:has(.hero-scenic) .site-footer .brand-logo{width:180px}
@media(min-width:761px){.hero-scenic .hero-actions{flex-direction:row;align-items:center;gap:24px}.hero-scenic .text-link{white-space:nowrap}}
@media(max-width:1100px) and (min-width:761px){body:has(.hero-scenic) .site-nav{gap:18px}.hero-scenic .hero-actions{flex-direction:column;align-items:flex-start}}
@media(max-width:760px){
 body:has(.hero-scenic) .site-header{min-height:98px;padding:7px 20px}
 body:has(.hero-scenic) .brand-logo{width:155px}
 .hero-scenic .hero-copy{width:100%;padding:50px var(--pad) 46px}
 .hero-scenic h1{font-size:clamp(3.8rem,15vw,5.7rem)}
 .hero-scenic .hero-lede{font-size:.96rem}
 .hero-scenic .hero-landscape{left:auto;aspect-ratio:4/3;max-height:430px}
 .hero-scenic .hero-photo{object-position:center 64%!important}
 .hero-scenic .hero-landscape::after{background:none}
 .hero-scenic .hero-actions{gap:22px;align-items:flex-start;flex-direction:column}
 body:has(.hero-scenic) .about-collage .about-images{min-height:440px}
 body:has(.hero-scenic) .about-collage .about-main{height:440px}
 body:has(.hero-scenic) .about-collage{gap:36px}
 body:has(.hero-scenic) .mobile-contact a{font-size:.95rem}
 .contact-links a{line-height:1.45}
 html:has(.hero-scenic){scroll-padding-top:110px}
}
@media(max-width:360px){.hero-scenic h1{font-size:3.8rem}.hero-scenic .hero-copy{padding-top:40px}.hero-scenic .button{width:100%}}
/* Quiet full-width trust strip and compact manufacturer endorsement. */
.trust-strip{background:var(--soft);color:var(--ink);border-bottom:1px solid var(--line)}
.trust-strip ul{list-style:none;margin:0 auto;padding:24px var(--pad);max-width:1440px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.trust-strip li{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600;line-height:1.4}
.trust-check{display:grid;place-items:center;flex:none;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;font-size:.8rem;color:var(--ink)}
.installer-band{background:var(--light);color:var(--ink);border-block:1px solid var(--line)}
.installer-inner{max-width:1200px;margin:auto;padding:27px var(--pad);display:flex;align-items:center;justify-content:center;gap:48px}
.installer-band img{width:125px;height:89px;object-fit:contain;flex:none}
body:has(.hero-scenic) .installer-band h2{font-size:clamp(1.65rem,2.8vw,2.5rem);line-height:1.1;margin:0 0 10px;text-transform:none}
.installer-band p{margin:0;font-size:.94rem;line-height:1.55;color:var(--ink)}
@media(max-width:1050px){.trust-strip ul{display:grid;grid-template-columns:1fr 1fr;gap:16px 26px}.trust-strip li{font-size:.82rem}}
@media(max-width:760px){.hero-scenic h1{font-size:clamp(3rem,12.5vw,5rem)}.installer-inner{gap:22px;padding-block:26px}.installer-band img{width:90px;height:64px}.installer-band p{font-size:.83rem}.trust-strip ul{padding-block:22px;gap:15px}.trust-strip li{font-size:.75rem;gap:8px}.trust-check{width:21px;height:21px}}
@media(max-width:360px){.hero-scenic h1{font-size:3rem}.installer-inner{gap:16px}.installer-band img{width:70px;height:50px}}
