@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
.reviews{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;background:#f2f4f3}.review-preview{background:white;border-left:4px solid var(--red);padding:35px}.review-preview>span{color:var(--red);letter-spacing:4px}.review-preview p{font:500 20px/1.6 Manrope,sans-serif;margin:18px 0 24px}.review-preview small{font-size:10px;letter-spacing:1.5px;color:var(--muted)}
@media(max-width:780px){.reviews{grid-template-columns:1fr;gap:30px}.review-preview{padding:27px 23px}}
:root{--navy:#103f63;--navy-dark:#082c47;--red:#b31e25;--ink:#172c3b;--cream:#f7f8f6;--line:#d6dde0;--muted:#5c6870;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;background:var(--cream)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e05259;outline-offset:3px}.draft-banner{background:var(--red);color:white;text-align:center;padding:9px 20px;font-size:11px;font-weight:700;letter-spacing:1.5px}.header{min-height:98px;padding:12px 5.5%;display:flex;align-items:center;justify-content:space-between;background:white;gap:30px}.brand{display:flex;align-items:center;flex-shrink:0}.company-logo{display:block;width:218px;max-width:100%;height:auto}nav{display:flex;gap:29px;align-items:center;font-size:14px;font-weight:600}nav a:not(.nav-call){padding:12px 0}.nav-call{color:white;background:var(--navy);padding:13px 17px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.03fr .97fr;min-height:665px;background:var(--navy);color:white}.hero-copy{padding:64px 8% 45px 10.5%;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700;line-height:1.8;margin:0 0 25px;color:var(--red)}.hero .eyebrow{color:#dbe5ea;display:flex;align-items:center;gap:12px}.hero .eyebrow span{width:24px;height:2px;background:#e24a51}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(46px,4.8vw,76px);font-weight:500;line-height:1.06;letter-spacing:-3.2px;margin-bottom:27px}h1 em{font-family:Georgia,serif;font-weight:400;color:white}.intro{font-size:18px;line-height:1.75;color:#d9e2e7;max-width:500px;margin-bottom:31px}.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:38px;border:0;cursor:pointer;padding:17px 21px;font-weight:700;font-size:14px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-1px)}.button span{font-size:20px}.button-primary{background:var(--red);color:white}.button-primary:hover{background:#92171d}.button-link{font-size:14px;border-bottom:1px solid #91a8b7;padding:10px 0}.trust-row{display:flex;gap:29px;margin-top:43px;color:#c4d1d7;font-size:12px;letter-spacing:.3px}.trust-row span{display:flex;align-items:center;gap:9px}.trust-row span:before{content:'✓';color:#fff;border:1px solid #7390a2;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:10px}.hero-image{margin:0;position:relative;overflow:hidden;min-height:580px;background:#66747a}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,#061e2dba)}.hero-image figcaption{position:absolute;bottom:25px;left:30px;right:30px;z-index:1;font-size:10px;letter-spacing:1.3px;display:flex;justify-content:space-between;gap:20px}.hero-image figcaption span:last-child{letter-spacing:0;color:#d9e1e5}.service-strip{display:flex;justify-content:space-between;padding:26px 7%;border-bottom:1px solid var(--line);gap:20px;font-size:11px;font-weight:700;letter-spacing:1.8px;background:white}.section{padding:94px 7%}.section-heading{display:flex;justify-content:space-between;gap:70px;align-items:end;margin-bottom:47px}.section h2{font-size:clamp(36px,3.6vw,56px);line-height:1.12;letter-spacing:-2px;font-weight:500;margin-bottom:0}.section-heading>p{max-width:410px;font-size:17px;line-height:1.75;color:var(--muted);margin-bottom:3px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #bac5ca}.service-grid article{padding:31px 25px 16px;border-right:1px solid var(--line)}.service-grid article:first-child{padding-left:0}.service-grid article:last-child{border-right:0}.number{font-size:12px;color:var(--red);font-weight:700;display:block;margin-bottom:32px}.service-grid h3{font-size:25px;font-weight:600;line-height:1.25;letter-spacing:-.8px;margin-bottom:16px}.service-grid p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:0}.work{background:var(--navy-dark);color:white;display:grid;grid-template-columns:.72fr 1.28fr;gap:8%;align-items:center}.work .eyebrow{color:#e15a60}.work h2{margin-bottom:25px}.work-intro>p:last-child{color:#c5d2d9;line-height:1.8;max-width:430px}.project-preview{display:grid;grid-template-columns:1.15fr .85fr;background:#f8f8f4;color:var(--ink);min-height:470px}.project-photo{position:relative;min-height:470px;overflow:hidden}.project-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 65%,#061e2d99)}.project-photo>span{position:absolute;left:23px;bottom:20px;z-index:1;color:white;font-size:10px;letter-spacing:1.4px}.project-details{padding:36px 29px;display:flex;flex-direction:column;justify-content:center}.project-type{font-size:10px;letter-spacing:1.6px;color:var(--red);font-weight:700;margin-bottom:24px}.project-details h3{font-size:29px;line-height:1.25;font-weight:500;letter-spacing:-1px}.project-details p{font-size:14px;line-height:1.75;color:var(--muted)}.project-meta{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:9px;padding-top:13px;gap:7px;font-size:11px;font-weight:700}.about{background:#e7edf0;display:grid;grid-template-columns:1fr 1fr;gap:10%}.since{display:flex;align-items:center;gap:18px;margin-top:40px}.since strong{font-family:Manrope,sans-serif;font-size:45px;color:var(--navy);letter-spacing:-2px}.since span{font-size:12px;line-height:1.55;color:var(--muted);border-left:1px solid #aebcc4;padding-left:18px}.about-copy .large-copy{font-size:25px;color:var(--ink);line-height:1.5;letter-spacing:-.7px}.about-copy p{font-size:16px;line-height:1.85;color:var(--muted)}.values{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.values span{background:white;padding:11px 13px;font-size:12px;font-weight:700}.area{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end;background:white}.county-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bdc8cd}.county-list div{padding:25px 10px;border-right:1px solid var(--line)}.county-list div:last-child{border-right:0}.county-list strong,.county-list span{display:block}.county-list strong{font:500 23px Manrope,sans-serif;margin-bottom:5px}.county-list span{font-size:12px;color:var(--muted)}.estimate{background:var(--navy);color:white;display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;align-items:start}.estimate .eyebrow{color:#ef6d73}.estimate h2{font-size:clamp(42px,4.3vw,66px);margin-bottom:25px}.estimate-intro>p:not(.eyebrow){line-height:1.8;color:#c9d5da}.direct-contact{display:flex;flex-direction:column;gap:17px;border-top:1px solid #49687b;padding-top:25px;margin-top:29px}.direct-contact a{font-size:15px;overflow-wrap:anywhere}.direct-contact small{display:block;color:#9eb2bd;font-size:10px;letter-spacing:1.5px;margin-bottom:5px}.estimate-form{background:white;color:var(--ink);padding:34px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.estimate-form label{display:block;font-size:13px;font-weight:700;margin-bottom:17px}.estimate-form input,.estimate-form select,.estimate-form textarea{display:block;width:100%;border:1px solid #c5cfd3;background:#f9faf9;padding:13px;margin-top:8px;color:var(--ink);border-radius:0}.estimate-form textarea{resize:vertical;min-height:125px}.submit-button{width:100%;margin-top:2px}.form-note{font-size:12px;color:#68757c;text-align:center;margin:13px 0 0}.form-note.success{color:#17663b;font-weight:700}footer{padding:38px 5.5% 21px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:30px;background:white}.footer-brand .company-logo{width:190px}.footer-contact{display:flex;flex-direction:column;gap:6px;font-size:13px}.footer-bottom{flex-basis:100%;border-top:1px solid var(--line);padding-top:20px;margin-top:10px;display:flex;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted)}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1100px){nav{gap:18px}.hero-copy{padding-left:8%}h1{font-size:58px}.service-grid{grid-template-columns:1fr 1fr}.service-grid article:nth-child(2){border-right:0}.service-grid article:nth-child(3){padding-left:0;border-top:1px solid var(--line)}.service-grid article:nth-child(4){border-top:1px solid var(--line)}.work{grid-template-columns:1fr}.project-preview{max-width:850px}.about,.area,.estimate{gap:6%}.section{padding:75px 6%}}@media(max-width:780px){html{scroll-padding-top:95px}.draft-banner{font-size:9px;letter-spacing:1px}.header{min-height:82px;padding:9px 5%;position:relative;flex-wrap:wrap}.company-logo{width:176px}.menu-toggle{display:flex;gap:10px;align-items:center;background:white;border:1px solid #bdc8cd;padding:9px 12px;color:var(--ink)}nav{display:none;width:100%;padding:8px 0 13px;align-items:stretch;gap:1px}nav.open{display:flex;flex-direction:column}nav a{padding:11px 0!important}.nav-call{color:var(--navy);background:none}.hero{grid-template-columns:1fr}.hero-copy{padding:49px 7% 39px;min-height:560px}h1{font-size:clamp(46px,12vw,68px);letter-spacing:-2.4px}.intro{font-size:16px}.hero-image{min-height:390px}.hero-image figcaption{flex-direction:column}.service-strip{display:grid;grid-template-columns:1fr 1fr;padding:23px 7%;font-size:10px}.section{padding:59px 7%}.section-heading{display:block}.section-heading>p{margin-top:22px}.service-grid{grid-template-columns:1fr}.service-grid article,.service-grid article:first-child,.service-grid article:nth-child(3){padding:24px 0;border-right:0;border-top:1px solid var(--line)}.service-grid article:first-child{border-top:0}.work,.about,.area,.estimate{grid-template-columns:1fr;gap:39px}.project-preview{grid-template-columns:1fr}.project-photo{min-height:330px}.project-details{padding:28px 24px}.county-list strong{font-size:19px}.estimate-form{padding:24px 20px}.form-row{grid-template-columns:1fr;gap:0}.trust-row{flex-direction:column;gap:12px}.footer-brand .company-logo{width:165px}.footer-contact{width:100%}.footer-bottom{flex-direction:column;gap:8px}}@media(max-width:430px){.hero-actions{align-items:flex-start;flex-direction:column}.button{width:100%}.county-list{grid-template-columns:1fr}.county-list div{border-right:0;border-bottom:1px solid var(--line);padding:15px 5px}.county-list div:last-child{border-bottom:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Real project portfolio */
.service-detail-link{display:inline-block;margin-top:16px;padding:8px 0;font-size:16px;font-weight:700;text-decoration:underline;text-underline-offset:5px;color:var(--navy)}
.trust-row{font-size:14px;color:white}.trust-row span:first-child{font-weight:700}
.text-jon{align-self:flex-start;background:white;color:var(--navy);min-height:48px}.text-jon:hover{background:#e7edf0}.estimate-form,.estimate-intro,.case-study-copy{min-width:0}.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:16px;min-width:0}.estimate-form select{max-width:100%}.footer-contact a{overflow-wrap:anywhere}
.work{display:block}.work-intro{max-width:750px;margin-bottom:44px}.work-intro>p:last-child{max-width:650px}.portfolio{display:grid;gap:32px}.project-preview{max-width:none;grid-template-columns:1.3fr 1fr;min-height:390px}.project-photo{min-height:390px}.project-photo img{object-position:center}.bathroom-photo img{object-position:center 53%}.project-details p{font-size:16px}.project-type,.project-meta{font-size:13px}.backyard-project{background:var(--cream);color:var(--ink)}.backyard-finished{width:100%;height:490px;object-fit:cover;object-position:center 70%;display:block}.backyard-project>.project-details{padding:35px}.progress-gallery{border-top:1px solid var(--line);padding-top:20px;margin-top:12px}.progress-gallery summary{cursor:pointer;font-weight:700;font-size:16px;padding:8px 0}.progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.progress-grid figure{margin:0}.progress-grid img{width:100%;height:290px;object-fit:cover}.progress-grid figcaption{font-size:14px;padding-top:10px;color:var(--muted)}.business-hours{line-height:1.8;margin-top:24px;color:#d9e2e7}.preview-notice{font-size:14px;line-height:1.6;background:#edf2f5;padding:14px;border-left:3px solid var(--navy)}.form-note{font-size:14px;line-height:1.5}.estimate-form label{font-size:14px}.eyebrow{font-size:12px}.hero-image img{object-position:48% center}.hero-image figcaption{font-size:12px}.footer-bottom{font-size:12px;line-height:1.7}
@media(max-width:780px){.project-preview{grid-template-columns:1fr}.project-photo{min-height:320px}.bathroom-photo{min-height:470px}.backyard-finished{height:380px}.backyard-project>.project-details{padding:25px}.progress-grid{grid-template-columns:1fr}.hero-image{min-height:360px}.hero-image img{object-position:center}.portfolio{gap:25px}}

/* Fairfield whole-home case study */
.case-study{background:#f8f8f4;color:var(--ink)}
.case-study-lead{display:grid;grid-template-columns:1.25fr .75fr;min-height:520px}
.case-study-hero{position:relative;min-height:520px;overflow:hidden;background:#dfe4e5}
.case-study-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-study-copy{padding:48px 40px;display:flex;flex-direction:column;justify-content:center}
.case-study-copy h3{font-size:clamp(30px,3vw,45px);line-height:1.15;font-weight:500;letter-spacing:-1.5px;margin-bottom:22px}
.case-study-copy p{font-size:15px;line-height:1.8;color:var(--muted)}
.scope-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:21px;border-top:1px solid var(--line)}
.scope-list span{font-size:12px;font-weight:700;background:#e7edf0;padding:9px 11px}
.case-study-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:225px;gap:4px;background:var(--navy-dark);padding:4px}
.case-study-gallery a{position:relative;overflow:hidden;background:#5e6b72}
.case-study-gallery a.gallery-wide{grid-column:span 2}
.case-study-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.case-study-gallery a:hover img{transform:scale(1.025)}
.case-study-gallery a:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#061e2dbd)}
.case-study-gallery a span{position:absolute;left:17px;bottom:14px;z-index:1;color:white;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.case-study-progress{margin:0;padding:26px 34px 34px;border-top:0}
.case-study-progress .progress-grid{grid-template-columns:repeat(3,1fr)}
.case-study-progress .progress-grid img{height:260px}
@media(max-width:1000px){.case-study-lead{grid-template-columns:1fr}.case-study-hero{min-height:470px}.case-study-copy{padding:38px 32px}.case-study-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:260px}}
@media(max-width:780px){.case-study-hero{min-height:330px}.case-study-copy{padding:30px 24px}.case-study-gallery{grid-auto-rows:190px}.case-study-gallery a.gallery-wide{grid-column:span 2}.case-study-progress{padding:22px 24px 28px}.case-study-progress .progress-grid{grid-template-columns:1fr}.case-study-progress .progress-grid img{height:260px}}
@media(max-width:480px){.case-study-gallery{grid-template-columns:1fr;grid-auto-rows:235px}.case-study-gallery a.gallery-wide{grid-column:span 1}}

/* Separate kitchen and bathroom services */
.service-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-grid article:nth-child(5){grid-column:1/-1;border-top:1px solid var(--line);padding-left:0}}
@media(max-width:780px){.service-grid{grid-template-columns:minmax(0,1fr)}.service-grid article:nth-child(5){grid-column:auto}}
