/* Graves visual system. Existing PHP, content and integrations are preserved. */
:root{--gr-ink:#142e42;--gr-copy:#445666;--gr-blue:#245d92;--gr-paper:#f5f7f9;--gr-line:#dce4eb;--ff-heading:"Poppins",Arial,sans-serif}
html{scroll-padding-top:24px}
html body{font-family:"Poppins",Arial,sans-serif;font-size:16px;line-height:1.65;color:var(--gr-copy);background:#fff}
html body :is(h1,h2,h3,h4){font-family:"Poppins",Arial,sans-serif!important;font-style:normal;letter-spacing:-.035em;font-weight:600;line-height:1.2;color:var(--gr-ink)}
html body main h1{font-size:clamp(2.1rem,4.2vw,3.5rem)}
html body main h2{font-size:clamp(1.5rem,2.6vw,2.25rem)}
html body main h3{font-size:clamp(1.05rem,1.8vw,1.4rem)}
html body main :is(p,li){font-size:1rem;line-height:1.85}
html body a,html body a:hover,html body a:focus,html body a:visited{text-decoration:none!important}
html body main a:not(.gr-button):not(.c_btn){color:#1e619b;font-weight:600;transition:color .15s ease,background-color .15s ease}
html body main a:not(.gr-button):not(.c_btn):hover{color:#113c62;background-color:#eaf2f8;border-radius:3px}
html body :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid #357bb9;outline-offset:5px;border-radius:4px}
html body .gr-header{border:0;background:#fff;box-shadow:0 1px 0 var(--gr-line)}
html body .gr-top{background:#12354f;color:#fff;font-size:12px;padding-block:7px;letter-spacing:.025em}
html body .gr-top a{color:#fff;font-weight:500}
html body .gr-bar{max-width:1360px;padding:12px 32px;gap:24px}
html body .gr-logo{width:205px;height:68px}
html body .gr-nav{gap:8px;font-size:14px}
html body .gr-nav>a,html body .gr-nav summary{padding:11px 15px;border:0;border-radius:8px;font-weight:500;color:#263e50}
html body .gr-nav>a:hover,html body .gr-nav summary:hover{background:#f0f5f9;color:#18598d}
html body .gr-nav [aria-current]{background:#eaf2f8;color:#1b5888;border:0!important;padding-bottom:11px}
html body .gr-button,html body .gr-toggle,html body main .c_btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:8px;padding:14px 22px;background:#245d92;border:1px solid transparent;color:#fff!important;font-family:"Poppins",Arial,sans-serif;font-size:14px;font-weight:600;line-height:1.5;white-space:normal;box-shadow:none;min-height:48px;transition:background .15s ease,box-shadow .15s ease}
html body .gr-button:hover,html body main .c_btn:hover{background:#163f62;box-shadow:0 4px 14px #173b5618}
html body .gr-nav>.gr-button{margin-left:10px;padding:12px 20px;background:#245d92;color:#fff}
html body .gr-toggle{display:none}
html body .gr-services summary{list-style:none;display:flex;align-items:center;gap:8px}
html body .gr-services summary::-webkit-details-marker{display:none}
html body .gr-services summary:after{content:'⌄';font-size:16px;line-height:1}
html body .gr-services[open] summary{background:#eaf2f8}
html body .gr-services ul{border-radius:12px;padding:10px;box-shadow:0 14px 45px #142e421f;margin-top:8px;min-width:280px}
html body .gr-services li a{padding:10px 14px;border-radius:6px;font-size:13px}
html body .gr-services li a:hover{background:#edf4f9}
html body .gr-footer{background:#102c40;color:#c7d6e0;margin-top:0;padding:64px max(24px,calc((100% - 1280px)/2)) 28px;font-size:14px}
html body .gr-footer-grid{grid-template-columns:1.3fr 1fr .8fr;gap:64px}
html body .gr-footer h2{color:#fff;font-size:15px;line-height:1.45;letter-spacing:-.015em;margin:0 0 24px}
html body .gr-footer-grid>div>h2{font-size:23px;max-width:16ch}
html body .gr-footer a{font-size:13px;color:#c7d6e0;line-height:1.7;font-weight:400}
html body .gr-footer a:hover{color:#fff}
html body .gr-footer :is(p,li){margin:10px 0;font-size:13px}
html body .gr-copyright{border-color:#ffffff24;color:#a8bdcb;padding-top:22px;margin-top:40px;font-size:11px}
html body .gr-section{max-width:1240px;padding:64px 32px}
html body .gr-company .gr-section>p,html body .gr-company .gr-copy{max-width:74ch}
html body .gr-company .gr-crumb{padding-block:20px;font-size:12px;color:#627486}
html body .gr-company .gr-crumb a{font-size:12px;font-weight:500}
html body .gr-company:not(.gr-home) .c_hero{height:auto;min-height:350px;padding:64px max(32px,calc((100% - 1176px)/2));background:linear-gradient(115deg,#f0f5f9,#f7f9fa 65%,#e8f0f6);text-align:left;align-items:flex-start;color:var(--gr-ink);display:flex;flex-direction:column;justify-content:center;gap:0}
html body .gr-company:not(.gr-home) .c_hero h1{color:var(--gr-ink);font-size:clamp(2.1rem,4vw,3.5rem);max-width:23ch;margin:0 0 20px;text-align:left;text-shadow:none}
html body .gr-company:not(.gr-home) .c_hero p{max-width:68ch;margin:0 0 24px;color:#445c70;text-align:left}
html body .gr-company:not(.gr-home) .c_hero .gr-eyebrow{font-size:11px;color:#285e87;letter-spacing:.13em;margin-bottom:20px}
html body .gr-company:not(.gr-home) .c_hero .gr-actions{justify-content:flex-start}
html body .gr-company .c_hero .gr-button{border-color:transparent}
html body .gr-company .c_hero .gr-button--light{color:#245d92!important;background:#fff;border-color:#d5e0e9}
html body .gr-company .c_hero a:focus-visible{outline-color:#357bb9}
/* Existing site photos are decorative inspiration, not new project evidence. */
@media(min-width:1024px){
 html:has(link[rel="canonical"][href$="/kitchen-renovation/"]) body .gr-company .c_hero,
 html:has(link[rel="canonical"][href$="/bathroom-remodeling/"]) body .gr-company .c_hero,
 html:has(link[rel="canonical"][href$="/custom-cabinetry/"]) body .gr-company .c_hero{position:relative;overflow:hidden;min-height:460px}
 html:has(link[rel="canonical"][href$="/kitchen-renovation/"]) body .gr-company .c_hero:after,
 html:has(link[rel="canonical"][href$="/bathroom-remodeling/"]) body .gr-company .c_hero:after,
 html:has(link[rel="canonical"][href$="/custom-cabinetry/"]) body .gr-company .c_hero:after{content:'';position:absolute;right:max(32px,calc((100vw - 1176px)/2));top:40px;bottom:40px;width:32%;max-width:410px;border-radius:16px;background-size:cover;background-position:center;pointer-events:none}
 html:has(link[rel="canonical"][href$="/kitchen-renovation/"]) body .gr-company .c_hero:after{background-image:url('/_assets/images/kr-card-700x700.webp')}
 html:has(link[rel="canonical"][href$="/bathroom-remodeling/"]) body .gr-company .c_hero:after{background-image:url('/_assets/images/br-card-700x700.webp')}
 html:has(link[rel="canonical"][href$="/custom-cabinetry/"]) body .gr-company .c_hero:after{background-image:url('/_assets/images/cc-756x756.webp')}
 html:has(link[rel="canonical"][href$="/kitchen-renovation/"],link[rel="canonical"][href$="/bathroom-remodeling/"],link[rel="canonical"][href$="/custom-cabinetry/"]) body .gr-company .c_hero :is(h1,p){max-width:52%}
}
html body .gr-company .gr-eyebrow{font-size:11px;letter-spacing:.12em;color:#285e87}
html body .gr-company :is(.gr-panel,.gr-cta){border:1px solid #e0e8ef;background:#f3f7fa;border-radius:16px;padding:36px}
html body .gr-company .gr-service-card{border-radius:14px;border-color:var(--gr-line);background:#fff}
html body .gr-company .gr-steps{gap:24px}
html body .gr-company .gr-steps li{background:#f5f8fa;border-radius:12px;border:1px solid #e1e9ef;padding:26px}
html body .gr-company .gr-steps h3{font-size:18px;margin:0 0 14px}
html body .gr-company .gr-steps p{font-size:14px}
html body :is(.gr-company,.gr-publishing) .gr-table-scroll{border:1px solid #d9e4ec;border-radius:12px;background:#fff;overflow:auto;margin:28px 0}
html body :is(.gr-company,.gr-publishing) table{border-collapse:collapse;font-size:14px;line-height:1.7}
html body :is(.gr-company,.gr-publishing) :is(th,td){border-bottom:1px solid #e1e8ee;border-top:0;padding:20px;text-align:left;vertical-align:top}
html body :is(.gr-company,.gr-publishing) th{background:#edf3f8;color:#244660;font-weight:600}
html body :is(.gr-company,.gr-publishing) caption{padding:20px;text-align:left;font-size:14px;font-weight:600;color:#203f55;background:#f8fafc}
html body .gr-faq{border-bottom:1px solid #dce5eb;padding:22px 0}
html body .gr-faq summary{font-size:15px;font-weight:600;color:#203e54;line-height:1.6}
html body .gr-faq p{font-size:14px;line-height:1.9}
/* Homepage imagery and commercial content retained, with a unified modern treatment. */
html body main.gr-home .gh-hero{max-width:1440px;min-height:610px;margin:24px auto 0;border-radius:20px}
html body main.gr-home .gh-hero h1{font-size:clamp(2.35rem,4.6vw,4rem);max-width:17ch;letter-spacing:-.045em;color:#fff;font-weight:600}
html body main.gr-home .gh-hero p{color:#e4edf3;line-height:1.8}
html body main.gr-home .gh-hero .gr-eyebrow{color:#d2e5f2;letter-spacing:.12em;font-size:11px}
html body main.gr-home .gh-hero .gr-button{background:#fff;color:#173b56!important}
html body main.gr-home .gh-hero .gr-button:hover{background:#e4eff6}
html body main.gr-home .gh-hero a.gh-hero-link{color:#fff;border:0;background:none;padding:12px}
html body main.gr-home .gh-intro-strip{padding:24px 32px;border:0}
html body main.gr-home .gh-intro-strip p{font-family:"Poppins",Arial,sans-serif;font-size:14px}
html body main.gr-home .gr-section{padding:68px 32px}
html body main.gr-home h2{font-size:clamp(1.75rem,3vw,2.65rem);max-width:28ch}
html body main.gr-home .gh-featured{gap:24px}
html body main.gr-home .gr-service-card.gr-priority{border-radius:16px;border:1px solid #e1e8ee;box-shadow:0 8px 32px #12354f06}
html body main.gr-home .gr-service-card h3{font-size:21px;letter-spacing:-.025em}
html body main.gr-home .gh-featured img{aspect-ratio:4/3}
html body main.gr-home .gr-service-card h3 a:hover{background:none;color:#245d92}
html body main.gr-home .gh-planning{background:#f3f7fa}
html body main.gr-home .gh-more .gr-service-card{border:1px solid #e1e8ee;border-radius:12px;padding:24px}
html body main.gr-home a.gh-text-link,html body main.gr-home .gh-closing a:not(.gr-button){border-bottom:0}
html body main.gr-home .gh-closing .gr-cta{border:0;border-radius:20px;background:#12354f}
html body main.gr-home .gh-closing :is(h2,p){color:#fff}
html body main.gr-home .gh-closing a:not(.gr-button){color:#d7eaf8;background:transparent}
html body main.gr-home .gh-closing .gr-button{background:#fff;color:#173b56!important}
/* Legacy retained service bodies use the same typography, spacing and surfaces. */
html body main:not(.gr-company):not(.gr-publishing) .f_sec{max-width:1240px;margin-inline:auto;padding:64px 32px}
html body main:not(.gr-company):not(.gr-publishing) .c_hero{max-width:none;min-height:360px;height:auto;justify-content:center;padding:80px 32px}
html body main:not(.gr-company):not(.gr-publishing) .c_hero h1{color:#fff;font-style:normal;text-shadow:0 2px 18px #0b223c80;max-width:20ch}
html body main:not(.gr-company):not(.gr-publishing) .c_hero h1 span{font-style:normal}
html body main .l_image{border-radius:16px}
html body .gr-booking-lead,html body .gr-booking-fallback{border-radius:16px}
/* Universal link policy: no underline, including active/hover states and old decorative link rules. */
html body :is(.gr-home-page,.gr-nav) a[aria-current],html body .gr-home-page .gr-nav [aria-current]{border-bottom:0}
@media(min-width:768px) and (max-width:1500px){html body main.gr-home .gh-hero{margin-inline:24px}}
@media(max-width:1023px){html body .gr-bar{padding:12px 24px;gap:12px}html body .gr-logo{width:180px;height:60px}html body .gr-toggle{font-size:13px;padding:10px 16px;min-height:42px}html body .gr-nav{padding-top:12px;gap:5px}html body .gr-nav>.gr-button{margin:8px 0}html body .gr-services ul{border:0;box-shadow:none;background:#f6f9fb}html body .gr-footer-grid{gap:32px;grid-template-columns:1fr 1fr}}
@media(max-width:767px){html body .gr-bar{padding:10px 20px}html body .gr-logo{width:165px;height:55px}html body .gr-top{font-size:11px;padding:6px 16px}html body .gr-section,html body main.gr-home .gr-section{padding:44px 22px}html body main :is(p,li){font-size:15px}html body .gr-company:not(.gr-home) .c_hero{min-height:380px;padding:44px 24px}html body .gr-company:not(.gr-home) .c_hero h1{font-size:32px}html body .gr-company:not(.gr-home) .c_hero .gr-actions{gap:10px;width:100%}html body .gr-company:not(.gr-home) .c_hero .gr-button{width:100%}html body main.gr-home .gh-hero{border-radius:0;margin:0;min-height:640px}html body main.gr-home .gh-hero h1{font-size:37px}html body main.gr-home .gh-hero-copy{padding:42px 24px}html body main.gr-home .gh-more{gap:16px}html body .gr-company :is(.gr-panel,.gr-cta){padding:26px}html body .gr-footer{padding:44px 24px 24px}html body .gr-footer-grid{grid-template-columns:1fr;gap:28px}html body .gr-footer h2{margin-bottom:16px}html body .gr-footer-grid>div>h2{font-size:22px}html body main:not(.gr-company):not(.gr-publishing) .f_sec{padding:44px 24px}html body main:not(.gr-company):not(.gr-publishing) .c_hero{min-height:340px}html body .gr-company .gr-steps li{padding:22px}}
@media(max-width:1023px){html.gr-js body .gr-toggle{display:inline-flex}}
@media(prefers-reduced-motion:reduce){html body a,html body .gr-button{transition:none}}
