:root{--navy:#071b34;--blue:#145eb4;--gold:#dfad46;--ink:#10283f;--muted:#526478;--light:#f2f6fa}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:white;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #408ded;outline-offset:5px}button{font:inherit;cursor:pointer}header{display:flex;align-items:center;justify-content:space-between;padding:10px 5%;background:white;border-bottom:1px solid #d9e3ec;position:relative;z-index:10}.brand{display:flex}.brand img{width:218px;height:82px;object-fit:contain}nav{display:flex;gap:28px;align-items:center;font-weight:600;font-size:.94rem}nav a:hover{color:var(--blue)}.menu{display:none}.skip{position:absolute;left:0;top:-80px;padding:12px;background:white;z-index:50}.skip:focus{top:0}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--gold);color:var(--navy);font-size:.95rem;font-weight:700;padding:15px 24px;border:1px solid transparent;border-radius:4px;min-height:50px;transition:background .15s,transform .15s;text-align:center}.button:hover{background:#edbe5b;transform:translateY(-2px)}.button.small{padding:12px 18px}.button.outline{border-color:#ffffff80;color:white;background:transparent}.button.outline:hover{background:#ffffff18}.button.blue{background:#cce6fb;color:#123b66}.actions{display:flex;gap:12px;flex-wrap:wrap}.hero{position:relative;min-height:650px;display:flex;align-items:center;background:var(--navy);color:white;padding:80px 6%;isolation:isolate}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061b34f5 0%,#061b34df 35%,#061b3460 70%,#061b3420);z-index:-1}.hero-content{max-width:720px}.eyebrow{display:block;letter-spacing:.14em;font-size:.77rem;font-weight:700;margin-bottom:20px;color:var(--blue)}.hero .eyebrow,.navy .eyebrow,.cta .eyebrow{color:#eec36e}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.15;margin:0 0 22px;font-weight:800;letter-spacing:-.035em}h1{font-size:clamp(2.75rem,5.1vw,4.8rem)}h1 em{font-style:normal;color:#e9b859}h2{font-size:clamp(2rem,3vw,2.85rem)}h3{font-size:1.28rem;letter-spacing:-.02em}.hero p{color:#e0e8f0;font-size:1.15rem;line-height:1.7;margin-bottom:30px}.trust{display:flex;justify-content:center;gap:5%;padding:22px 5%;background:var(--navy);color:#ecf1f6;font-size:.87rem;font-weight:600}.trust a{color:#eec36e}section:not(.hero):not(.cta):not(.split){padding:80px 6%}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px;gap:50px}.section-heading>p{max-width:410px;color:var(--muted);margin:0 0 22px}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{position:relative;display:block;padding:28px 24px;background:var(--light);border:1px solid #dee7ef;border-top:3px solid var(--blue);border-radius:4px;min-height:275px;transition:.2s}.service-card:hover{background:#e8f1fa;transform:translateY(-4px);border-color:var(--blue)}.number{color:var(--blue);font-family:Manrope;font-size:.85rem;font-weight:800;display:block;margin-bottom:26px}.service-card p{font-size:.95rem;color:var(--muted);margin-bottom:25px}.text-link{font-size:.86rem;font-weight:700;color:var(--blue)}.split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.split>img{width:100%;height:100%;min-height:450px;object-fit:cover}.split>div{padding:75px 12%;align-self:center}.navy{background:var(--navy);color:white}.navy p{color:#ccd9e6}.outdoor{background:var(--light)}.outdoor img{max-height:600px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:40px}.steps article{border-top:1px solid #cad7e3;padding-top:24px}.steps b{color:var(--blue);display:block;font-size:1.3rem;margin-bottom:20px}.steps p{color:var(--muted)}.fence-callout{background:#e8f2fb;display:flex;align-items:center;justify-content:space-between;gap:50px}.fence-callout .actions{max-width:290px;flex-direction:column}.cta{padding:60px 6%;background:var(--navy);color:white;display:flex;justify-content:space-between;align-items:center;gap:35px}.cta h2{font-size:2.3rem}.cta p{color:#cedce9}.cta .button{flex-shrink:0}footer{padding:55px 6% 25px;display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:35px;background:#f5f7fa;font-size:.9rem}footer strong{font-size:1rem}footer a{display:block;margin-top:8px;color:var(--muted)}footer a:hover{text-decoration:underline}footer p{color:var(--muted)}.copyright{grid-column:1/-1;border-top:1px solid #d9e3ec;padding-top:20px;font-size:.8rem}.page-hero{background:var(--navy);color:white}.page-hero .eyebrow{color:#e9b859}.page-hero>p{font-size:1.2rem;color:#ccd9e6;max-width:650px}.page-hero>a:first-child:not(.button){display:block;color:#b8d6f1;margin-bottom:28px;font-size:.9rem}.page-hero .button{margin-top:15px}.reading{max-width:900px;margin:0 auto}.reading p{font-size:1.1rem;color:var(--muted)}.reading h2:not(:first-child){margin-top:45px}.reading a:not(.button){color:var(--blue);text-decoration:underline}.scope{list-style:none;padding:0;margin:30px 0}.scope li{padding:14px 0;border-bottom:1px solid #dce5ed}.scope li:before{content:'✓';color:var(--blue);margin-right:15px}.detail:not(.split){max-width:950px;margin:auto}.light{background:var(--light)}.cities{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cities span{padding:16px 20px;background:var(--light);border-left:3px solid var(--blue);font-weight:600}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.photo-card{border:0;padding:0;background:var(--light);text-align:left;color:var(--ink);border-radius:4px;overflow:hidden}.photo-card img{width:100%;height:360px;object-fit:cover;display:block}.photo-card span{display:block;font-weight:600;padding:16px 20px}.photo-card:hover img{filter:brightness(.9)}dialog{border:0;border-radius:8px;max-width:min(94vw,1000px);max-height:94vh;padding:24px;background:white}dialog::backdrop{background:#001123df}dialog img{display:block;max-height:66vh;max-width:100%;margin:15px auto;object-fit:contain}dialog .close{display:block;margin-left:auto;border:1px solid #b8c9d8;background:white;border-radius:4px;padding:8px 16px}dialog p{text-align:center}dialog .button{display:flex;max-width:260px;margin:auto}
@media(min-width:1600px){section:not(.hero):not(.cta):not(.split),header,footer{padding-left:max(6%,calc((100vw - 1440px)/2));padding-right:max(6%,calc((100vw - 1440px)/2))}}@media(max-width:1050px){nav{gap:18px}.brand img{width:190px}.services{grid-template-columns:repeat(2,1fr)}.trust{gap:25px;flex-wrap:wrap}.split>div{padding:45px 9%}.section-heading{align-items:start}.fence-callout{gap:25px}.cities{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){header{padding:10px 5%}.brand img{width:175px;height:65px}.menu{display:block;background:white;color:var(--navy);border:1px solid #c6d4df;border-radius:4px;padding:10px 15px}nav{display:none;position:absolute;left:0;right:0;top:85px;background:white;padding:24px 6%;border-bottom:1px solid #c6d4df;box-shadow:0 10px 20px #001c321a;align-items:stretch}nav.open{display:flex;flex-direction:column}nav a{padding:8px 0}.hero{min-height:620px;padding:65px 6%}.hero:after{background:linear-gradient(90deg,#061b34f0,#061b34a0)}.hero h1{font-size:2.85rem}.hero .eyebrow{font-size:.72rem}.hero p{font-size:1.05rem}.hero .actions{flex-direction:column;align-items:stretch;max-width:340px}.trust{gap:12px 25px;font-size:.78rem;padding:22px 5%}.section-heading{display:block}.section-heading>p{max-width:none}.section-heading h2{margin-bottom:24px}section:not(.hero):not(.cta):not(.split){padding:55px 6%}.service-card{padding:24px 19px;min-height:285px}.service-card h3{font-size:1.18rem}.services{gap:12px}.split{grid-template-columns:1fr}.split>img{min-height:280px;height:310px}.split>div{padding:45px 6%}.outdoor>img{grid-row:1}.steps{grid-template-columns:1fr;gap:25px}.steps b{margin-bottom:12px}.steps h3{margin-bottom:12px}.fence-callout,.cta{flex-direction:column;align-items:start}.fence-callout .actions{max-width:none;width:100%}.cta{padding:50px 6%;gap:20px}.cta h2{font-size:2rem}footer{grid-template-columns:1fr 1fr}footer>div:first-child{grid-column:1/-1}.cities{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:1fr}.photo-card img{height:380px}.page-hero h1{font-size:2.65rem}.page-hero .eyebrow{font-size:.72rem}.page-hero>p{font-size:1.08rem}}@media(max-width:390px){.services{grid-template-columns:1fr}.hero h1{font-size:2.5rem}.cities{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

header{background:var(--navy);border-bottom-color:#243950}nav{color:white}.menu{background:var(--navy);color:white}.brand img{width:250px;object-fit:contain}@media(max-width:760px){nav{background:var(--navy)}.brand img{width:200px}}

.cities a{padding:16px 20px;background:var(--light);border-left:3px solid var(--blue);font-weight:600}.cities a:hover{background:#dfecf7}

.photo-card img{height:auto;aspect-ratio:1;object-fit:contain;background:#e9eef4}.project-section:nth-of-type(2n){background:var(--light)}

/* Consistent project frames and illustrated service cards. */
.service-card{display:flex;flex-direction:column;padding:0;overflow:hidden;min-height:0}
.service-card .service-thumbnail{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e9eef4}
.service-content{display:flex;flex:1;flex-direction:column;padding:24px}
.service-content .text-link{margin-top:auto;padding-top:18px}
.gallery .photo-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e9eef4}
.split>img{aspect-ratio:4/3;object-fit:cover}
@media(max-width:760px){.service-content{padding:20px}.service-card{padding:0;min-height:0}}

.gallery .comparison-photo img{object-fit:contain;background:#071a2e}

/* Shared logo overlay on project photos, service thumbnails and enlarged views. */
.branded-photo{display:block;position:relative;overflow:hidden;isolation:isolate}
.branded-photo:after,.branded-hero:before{content:"";position:absolute;right:3%;bottom:3%;width:clamp(100px,29%,220px);aspect-ratio:3/1;background:#071b34e8 url('/assets/new-logo.webp') center/90% auto no-repeat;border-radius:4px;pointer-events:none;z-index:2}
.branded-photo>img{display:block;width:100%}
.photo-card>.branded-photo{padding:0}
.split>.branded-photo{padding:0;align-self:stretch;min-width:0}
.split>.branded-photo>img{width:100%;height:100%;min-height:450px;aspect-ratio:4/3;object-fit:cover}
.outdoor>.branded-photo>img{max-height:600px}
.modal-photo{width:fit-content;max-width:100%;margin:15px auto}
.modal-photo>img{margin:0;max-height:66vh;width:auto;max-width:100%;object-fit:contain}
.branded-hero:before{width:clamp(140px,20%,240px);right:3%;bottom:3%}
@media(max-width:760px){.split>.branded-photo>img{min-height:280px;height:310px}.outdoor>.branded-photo{grid-row:1}.branded-hero{padding-bottom:115px}}

.service-faq details{border-bottom:1px solid #cad7e3;padding:18px 0}.service-faq summary{font-weight:700;cursor:pointer;font-size:1.05rem}.service-faq details p{margin:16px 0 0}.project-facts{display:grid;grid-template-columns:max-content 1fr;gap:12px 24px}.project-facts dt{font-weight:700}.project-facts dd{margin:0}.project-feature{grid-template-columns:1fr}.local-project-links li{margin:14px 0}

/* Primary contact links are native anchors and work without JavaScript. */
.quick-contact{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:10px 5%;background:var(--light);border-bottom:1px solid #d9e3ec}.quick-contact .button{min-height:44px;padding:10px 18px;font-size:.9rem;gap:9px}.quick-contact svg{flex-shrink:0}@media(max-width:760px){.quick-contact{justify-content:stretch;gap:10px;padding:10px 5%}.quick-contact .button{flex:1;min-width:0;font-size:.85rem;padding:10px 8px}.quick-phone{display:none}}

/* Outdoor Living is a primary destination across desktop and mobile. */
.outdoor-feature{border-bottom:4px solid var(--gold)}.outdoor-feature .outdoor-estimate{background:transparent;border-color:var(--blue);color:var(--blue)}.outdoor-feature .outdoor-estimate:hover{background:#dceaf7}.hero-services{align-self:center;color:white;text-decoration:underline;font-weight:600;padding:12px 0}nav{gap:clamp(14px,1.8vw,28px)}@media(max-width:1100px) and (min-width:761px){header{padding-left:3%;padding-right:3%}.brand img{width:190px}nav{gap:14px;font-size:.85rem}nav .button.small{padding:10px 12px}}@media(max-width:760px){.hero-services{align-self:start}.outdoor-feature .actions{flex-direction:column;align-items:stretch}}

/* Preserve the location and embedded white-letter logo on this portrait photo. */
.branded-photo:has(>img[src="/assets/trophy-club-outdoor-living-wide.webp"]):after{display:none}
.gallery img[src="/assets/trophy-club-outdoor-living-wide.webp"]{object-fit:cover;background:transparent}

/* Landscape project photography fills the frame without side bars. */
section.outdoor-page-hero{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;padding:0;background:var(--navy);color:white}.outdoor-page-hero>.branded-photo{height:100%}.outdoor-page-hero img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}.outdoor-hero-copy{padding:45px 10%}.outdoor-hero-copy .eyebrow{color:#eec36e;margin-top:24px}.outdoor-hero-copy .text-link{color:#c9e1f6}.outdoor-hero-copy h1{font-size:clamp(2.7rem,4vw,4.2rem)}.outdoor-hero-copy p{color:#e0e8f0}.outdoor-feature img[src$="outdoor-living-wide.webp"]{object-fit:cover;background:transparent}@media(max-width:760px){section.outdoor-page-hero{grid-template-columns:1fr}.outdoor-page-hero img{height:auto}.outdoor-hero-copy{padding:35px 6%}.outdoor-feature img[src$="outdoor-living-wide.webp"]{height:auto;min-height:0;aspect-ratio:4/3}}

/* Homepage draft: balanced service overview with remodeling first. */
.home-services .services{grid-template-columns:repeat(3,minmax(0,1fr))}#home-services{scroll-margin-top:24px}@media(max-width:1050px){.home-services .services{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.home-services .services{grid-template-columns:1fr}}
