.service-card img,.project img,.card img,.photo-wide{height:auto}.hero-photo,.hero-image{mask:url('assets/hero-mask.svg') center/100% 100% no-repeat;border-radius:0}.hero-signature{font-size:20px;white-space:nowrap}.about{min-height:247px}.promise{min-height:125px}.hero-content{animation:arrive .65s ease-out both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
html:has(.home-page){scrollbar-width:none}html:has(.home-page)::-webkit-scrollbar{display:none}
.header{width:100%}
.hero-content{animation:none}.hero-signature{height:58px}.hero-call{padding:0 25px;min-height:37px}.home-page .eyebrow{line-height:1.45}.hero-content .eyebrow{line-height:1.5}.home-page .section-heading>p:not(.eyebrow),.home-page .service-card p,.home-page .project strong,.home-page .project span{font-size:15px;line-height:1.45}.home-page .faq .section-heading>p:not(.eyebrow){margin-top:7px}.home-page .faq summary{font-size:16px;line-height:normal}.contact-details p{margin:0 0 12px}.footer-cta>p:not(.eyebrow){font-size:15px;line-height:1.45;margin:0 0 15px}.home-footer .copyright{font-size:15px}
@media(min-width:1100px) and (max-width:1399px){.about{min-height:312.0625px}}@media(max-width:950px){.hero-call{min-height:44px}.about-copy>p:not(.eyebrow){font-size:15px;line-height:1.45;margin-bottom:10px}.promise{min-height:125px;padding-block:20px}.promise blockquote{font-size:15px;line-height:21px}.home-page .faq summary{line-height:22px}.home-page .project strong{font-size:15px;line-height:1.45}.home-page .project-planner .eyebrow{line-height:1.5}.home-page .services .section-heading>p:not(.eyebrow){line-height:1.45}}
@media(max-width:950px){.about{min-height:0}.promise{min-height:125px}}@media(max-width:599px){.hero-photo,.hero-image{mask:linear-gradient(180deg,transparent,#000 18%);border-radius:0 0 40% 10%/0 0 8% 3%}.hero-signature{font-size:20px}}@media(prefers-reduced-motion:reduce){.hero-content{animation:none}}
.home-page{font-size:15px;line-height:normal}.footer-logo{height:auto}.home-page .faq summary span{line-height:normal}.home-footer .button{min-height:37px;padding:0 25px;font-size:15px;line-height:1.45}.home-footer .email{line-height:1.45}.home-footer .footer-signature{line-height:26px;height:26px;margin-top:7px}.home-footer .footer-nav{line-height:1.6}.home-footer .footer-nav a{padding:5px 0}
@media(min-width:951px){.service-card p{min-height:43.5px}}@media(max-width:950px){.home-footer .button{min-height:44px}}
.hero-content h1,.hero-copy h1{max-width:100%}
.hero-video{display:block;width:100%;height:100%;object-fit:cover;object-position:60% center}


.additional-services{margin:22px 0 0;text-align:center;font-size:14px;line-height:1.6;color:var(--text)}
.work-actions{display:flex;gap:20px;align-items:center;flex-shrink:0}.work-actions .gallery-link{min-height:38px;padding:8px 16px;font-size:14px;gap:18px;white-space:nowrap}
.gallery-section .section-intro{max-width:680px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.gallery-project{position:relative;padding-bottom:16px;border-bottom:1px solid var(--line)}.gallery-project img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px}.gallery-project.gallery-featured{grid-column:span 2}.gallery-project.gallery-featured img{aspect-ratio:2.06;object-position:center 45%}.gallery-project .gallery-category{font-size:12px;letter-spacing:1.1px;text-transform:uppercase;font-weight:700;color:var(--blue-dark);margin-top:17px;padding-right:42px}.gallery-project strong{font:26px/1.2 Georgia,serif;margin-top:8px;padding-right:36px}.gallery-project .gallery-enlarge{position:absolute;right:0;bottom:20px;font:25px/1 Arial;color:var(--blue-dark)}.gallery-return{display:flex;justify-content:space-between;gap:24px;margin-top:40px}.gallery-project:hover strong{color:var(--blue-dark)}
@media(min-width:600px){.hero-photo,.hero-image{-webkit-mask:url('assets/hero-mask.svg') center/100% 100% no-repeat;mask:url('assets/hero-mask.svg') center/100% 100% no-repeat}.hero-copy{max-width:440px;width:36%}}
@media(min-width:600px) and (max-width:950px){.hero-content,.hero-copy{width:38%;max-width:440px}.hero-copy h1{letter-spacing:-.8px}.hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.5}.hero-copy .button{padding-inline:14px;font-size:14px}}
@media(min-width:2001px){.hero,.page-hero{height:760px;min-height:760px}.page-hero .hero-grid{min-height:0}}
@media(max-width:950px){.work-actions{gap:12px;flex-wrap:wrap}.work-heading{align-items:flex-start}.gallery-project strong{font-size:22px}}
@media(max-width:750px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-project.gallery-featured{grid-column:span 2}.gallery-return{flex-wrap:wrap}.work-heading{flex-wrap:wrap}}
@media(max-width:599px){.hero-photo,.hero-image{-webkit-mask:linear-gradient(180deg,transparent 0%,#000 22%);mask:linear-gradient(180deg,transparent 0%,#000 22%)}.hero-main{width:100%}.hero-content,.hero-copy{max-width:440px}.hero-copy h1{max-width:100%}.hero-video{position:absolute;inset:0;object-position:65% center}.gallery-grid{grid-template-columns:1fr}.gallery-project.gallery-featured{grid-column:auto}.gallery-project.gallery-featured img{aspect-ratio:4/3}.gallery-project strong{font-size:24px}.gallery-return{flex-direction:column;align-items:flex-start}}


@media(min-width:600px) and (max-width:950px){.hero-signature{width:100%;max-width:100%;font-size:clamp(16px,2vw,20px);white-space:normal}.hero-signature:after{max-width:80%;margin-left:10%}}

.brand img{height:88px}
@media(min-width:951px) and (max-width:1200px){.navigation{gap:14px;font-size:14px}.header{gap:16px}.header-call{padding-inline:13px}}
@media(min-width:951px) and (max-width:1100px){.header-call{display:none}}
@media(max-width:950px){.brand img{height:78px}}

@media(max-width:950px){
 .home-footer .contact-details{text-align:center;align-items:center}
 .home-footer .contact-details p{flex-direction:column;align-items:center;gap:7px;max-width:100%}
 .home-footer .footer-nav{text-align:center}
}

/* Brand palette: the red and blue are sampled from the original logo. */
/* Full-width header surface; align its contents with the 1260px page grid. */
.header { max-width: none; padding-inline: max(5%, calc((100% - 1260px) / 2)); border-top: 5px solid var(--blue); background: #fff; }
.navigation a[aria-current=page] { color: var(--red); }
.navigation a[aria-current=page]:after { transform: scaleX(1); }
.eyebrow { color: var(--red); font-weight: 700; }
.button { background: var(--red); }
.button:hover { background: var(--red-dark); box-shadow: 0 5px 15px #cf254a30; }
.button.light { background: var(--red); color: #fff; }
.button.light:hover { background: var(--red-dark); }
.hero-signature:after { opacity: .85; }
.about:after { content: none; }
.about-decoration { width: 175px; height: 190px; top: 45px; opacity: 1; }
.service-card { border-bottom: 4px solid var(--blue); }
.service-card:nth-child(even) { border-bottom-color: var(--red); }
.service-card h3 { color: var(--blue-dark); }
.promise { background: var(--ink); color: #fff; border-left: 6px solid var(--red); }
.quote-mark { background: #fff; color: var(--red); }
.promise-decoration { display: none; }
.project-planner, .ink-surface { background: var(--ink); border-top: 6px solid var(--red); }
.project-planner .eyebrow, .ink-surface .eyebrow { color: #fff; }
.planner-panel .eyebrow { color: var(--red); }
.planner-options button[aria-pressed=true] { background: var(--red); border-color: var(--red); }
.planner-contact { color: var(--red); }
.home-footer, .site-footer { border-top: 5px solid var(--red); }
.home-footer:before, .site-footer:before { background: linear-gradient(100deg,#174873f5,#102f50f2),url('assets/gallery-exterior.webp') center/cover; }
.cta-panel { background: var(--ink); color: #fff; border-left: 6px solid var(--red); }
.cta-panel .eyebrow, .cta-panel h2, .cta-panel h3 { color: #fff; }
.fact { border-top-color: var(--blue); }
.fact:nth-child(even) { border-top-color: var(--red); }
.faq-list summary span, .checklist li:before { color: var(--red); }
.gallery-project .gallery-category, .gallery-project .gallery-enlarge { color: var(--red); }
::selection { background: var(--blue-dark); color: #fff; }

/* Keep text and link hover states legible on blue surfaces. */
.cta-panel .text-link, .cta-panel .context-link:hover,
.ink-surface .text-link, .ink-surface .context-link:hover,
.home-footer .context-link:hover, .site-footer .context-link:hover { color: #fff; }
.cta-panel .text-link, .ink-surface .text-link { border-bottom-color: currentColor; }
