Kitchen, Bathroom & Basement Remodeling

Remodeling that helps every room feel planned, polished, and ready to use.

Before a quote can be useful, the room needs a clear direction. JSW Painting & Remodeling helps homeowners review layout, surfaces, repairs, storage, lighting, moisture concerns, and finish details so the project conversation starts with the right scope.

Start with what the room needs to do better.

The first step is identifying what feels dated, crowded, unfinished, hard to clean, or difficult to move through.

Connect the visible finishes.

Paint, tile, cabinetry, flooring, trim, counters, and wall finishes should support one clear finished direction.

Make the quote easier to price and plan.

Clear priorities help JSW review the scope, repair needs, finish work, and next steps before a quote is recommended.

Finishes and Materials

The right finish should support the way the room is used.

Strong remodeling choices connect the look of the room with how the space needs to work. Review how kitchen function, bathroom comfort, and basement purpose can shape the surfaces, repairs, and finish details JSW should consider during the quote.

Review Finish Options
Kitchen remodeling finish-tuner state two
Kitchen Function · Stage 2 A stronger kitchen layout starts with the way the room moves.

Review circulation, preparation space, storage, counters, cabinetry, and the surfaces that handle daily use.

Project Scope

A better quote starts with the right room details.

Kitchen, bathroom, and basement projects often involve more than one surface, repair, or finish decision. Sharing the right details early helps JSW understand what should be repaired, refinished, installed, painted, or remodeled before the next step is recommended.

01Start with the room’s problem.

Share what feels dated, awkward, damaged, unfinished, crowded, or hard to use.

02Clarify the work needed.

Clarify whether the project may involve painting, tile, flooring, drywall, trim, cabinetry, repairs, installation, or a broader remodel.

03Coordinate the finishes.

Review how colors, materials, fixtures, trim, edges, and transitions should work together in the finished room.

04Plan the finish details.

Use the quote conversation to align expectations, priorities, and finish details before the work begins.

Kitchen Finish Viewer

Compare kitchen finish directions before scheduling the quote.

Start with the full kitchen view, then review the surfaces that shape the quote: cabinetry, counters, backsplash, flooring, and the island.

Full kitchen overview image Selected kitchen material variation

Kitchen Finish Ideas

Finished kitchen examples that make the quote easier to discuss.

Review finished kitchen examples that show how cabinet color, countertops, flooring, backsplash, and fixture details can shape the project scope.

Finished Kitchen JSW finished kitchen image
Finished Kitchen JSW finished kitchen image
Finished Kitchen Detail JSW finished kitchen image
Finished Kitchen Detail JSW finished kitchen image
Finished Kitchen Detail JSW finished kitchen image
/* JSW Painting & Remodeling unified website stylesheet. */ /* Upload to Content > Files at jsw-site/css/jsw-site.css. */ :root{--jsw-cream:#faf8f4;--jsw-white:#fff;--jsw-ink:#1c1c19;--jsw-muted:#6f6d61;--jsw-forest:#1e3028;--jsw-gold:#b8975a;--jsw-gold-light:#d4b47a;--jsw-gold-dark:#76551f;--jsw-border:#e4e0d6;--jsw-serif:'Cormorant Garamond',Georgia,serif;--jsw-sans:'DM Sans',Arial,sans-serif;--jsw-header-height:78px} .jsw-global-header,.jsw-global-footer,.jsw-global-header *,.jsw-global-footer *,.jsw-skip-link{box-sizing:border-box} .jsw-skip-link{position:fixed;z-index:10002;top:.75rem;left:.75rem;transform:translateY(-180%);padding:.75rem 1rem;background:var(--jsw-ink);color:var(--jsw-white);font:700 .82rem/1 var(--jsw-sans);text-decoration:none;border-radius:3px} .jsw-skip-link:focus{transform:none} .jsw-global-header{position:fixed;z-index:10000;top:0;right:0;left:0;height:var(--jsw-header-height);background:rgba(250,248,244,.94);border-bottom:1px solid rgba(228,224,214,.82);backdrop-filter:blur(14px);transition:box-shadow .25s ease,background .25s ease} .jsw-global-header.is-scrolled{background:rgba(250,248,244,.98);box-shadow:0 7px 30px rgba(28,28,25,.09)} .jsw-global-nav{height:100%;width:min(1440px,92vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;font-family:var(--jsw-sans)} .jsw-global-logo{display:flex;align-items:center;flex:0 0 auto;text-decoration:none} .jsw-global-logo img{display:block;width:96px;height:auto;max-height:64px;object-fit:contain} .jsw-global-nav-links{display:flex;align-items:center;gap:1.65rem;margin:0;padding:0;list-style:none} .jsw-global-nav-links a{position:relative;color:#35352f;text-decoration:none;text-transform:uppercase;letter-spacing:.065em;font:700 .76rem/1.2 var(--jsw-sans);white-space:nowrap;transition:color .2s ease} .jsw-global-nav-links a:not(.jsw-global-nav-cta)::after{content:'';position:absolute;right:0;bottom:-.42rem;left:0;height:1px;background:var(--jsw-gold);transform:scaleX(0);transform-origin:left;transition:transform .2s ease} .jsw-global-nav-links a:hover,.jsw-global-nav-links a:focus-visible,.jsw-global-nav-links a[aria-current='page']{color:var(--jsw-ink)} .jsw-global-nav-links a:not(.jsw-global-nav-cta):hover::after,.jsw-global-nav-links a:not(.jsw-global-nav-cta):focus-visible::after,.jsw-global-nav-links a[aria-current='page']::after{transform:scaleX(1)} .jsw-global-nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.72rem 1.2rem;background:var(--jsw-forest);color:var(--jsw-white)!important;border:1px solid var(--jsw-forest);border-radius:2px;transition:background .2s ease,color .2s ease,border-color .2s ease!important} .jsw-global-nav-cta:hover,.jsw-global-nav-cta:focus-visible{background:var(--jsw-gold);border-color:var(--jsw-gold);color:var(--jsw-ink)!important} .jsw-global-menu-button{display:none;align-items:center;gap:.6rem;min-height:42px;padding:.58rem .78rem;border:1px solid var(--jsw-border);border-radius:999px;background:var(--jsw-white);color:var(--jsw-forest);font:700 .72rem/1 var(--jsw-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer} .jsw-global-menu-icon,.jsw-global-menu-icon::before,.jsw-global-menu-icon::after{display:block;width:18px;height:1.5px;background:currentColor;content:'';transition:transform .2s ease,top .2s ease,opacity .2s ease} .jsw-global-menu-icon{position:relative}.jsw-global-menu-icon::before{position:absolute;top:-5px}.jsw-global-menu-icon::after{position:absolute;top:5px} .jsw-global-menu-button[aria-expanded='true'] .jsw-global-menu-icon{background:transparent}.jsw-global-menu-button[aria-expanded='true'] .jsw-global-menu-icon::before{top:0;transform:rotate(45deg)}.jsw-global-menu-button[aria-expanded='true'] .jsw-global-menu-icon::after{top:0;transform:rotate(-45deg)} .jsw-global-footer{position:relative;z-index:2;padding:4.5rem 5vw 2rem;background:#101513;color:rgba(255,255,255,.68);font-family:var(--jsw-sans)} .jsw-global-footer-grid{width:min(1320px,92vw);margin:0 auto 2.5rem;display:grid;grid-template-columns:1.45fr repeat(3,minmax(150px,1fr));gap:2.5rem} .jsw-global-footer-brand img{display:block;width:110px;height:auto;margin-bottom:1.15rem;filter:none;opacity:1}.jsw-global-footer p{max-width:430px;margin:0;color:rgba(255,255,255,.66);font-size:.9rem;line-height:1.75}.jsw-global-footer h2{margin:0 0 1rem;color:#fff;font:700 .74rem/1.2 var(--jsw-sans);letter-spacing:.12em;text-transform:uppercase}.jsw-global-footer a,.jsw-global-footer span{display:block;margin:.48rem 0;color:rgba(255,255,255,.66);font-size:.88rem;line-height:1.55;text-decoration:none}.jsw-global-footer a:hover,.jsw-global-footer a:focus-visible{color:var(--jsw-gold-light)}.jsw-global-footer-note{margin-top:1rem!important}.jsw-global-footer-bottom{width:min(1320px,92vw);margin:0 auto;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}.jsw-global-footer-bottom span{margin:0;font-size:.8rem} .jsw-page{min-width:0}.jsw-page :focus-visible,.jsw-global-header :focus-visible,.jsw-global-footer :focus-visible{outline:3px solid var(--jsw-gold);outline-offset:4px}.jsw-menu-open{overflow:hidden} .jsw-hubspot-form-mount:empty{display:none!important}.jsw-hubspot-form-mount:not(:empty)+.jsw-form-fallback{display:none!important}.jsw-hubspot-form-mount{scroll-margin-top:calc(var(--jsw-header-height) + 1.25rem)} /* R9.13 required contact and project-address fields. */ .jsw-form-fallback .jsw-required-contact-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;width:100%;margin:0 0 .25rem} .jsw-form-fallback .jsw-required-contact-field{display:grid;align-content:start;gap:.42rem;min-width:0;grid-column:span 3;color:inherit} .jsw-form-fallback .jsw-required-contact-field.is-full{grid-column:1/-1} .jsw-form-fallback .jsw-required-contact-field.is-city{grid-column:span 3} .jsw-form-fallback .jsw-required-contact-field.is-state{grid-column:span 1} .jsw-form-fallback .jsw-required-contact-field.is-postal{grid-column:span 2} .jsw-form-fallback .jsw-required-contact-field>span{font-size:.68rem;font-weight:750;letter-spacing:.08em;line-height:1.35;text-transform:uppercase;color:inherit} .jsw-form-fallback .jsw-required-contact-field>span b{color:var(--jsw-gold-light,#d4b47a);font:inherit} .jsw-form-fallback .jsw-required-contact-field input{box-sizing:border-box;width:100%;min-height:48px;margin:0;padding:.88rem .95rem;border:1px solid rgba(184,151,90,.62);border-radius:2px;background:rgba(255,255,255,.1);color:inherit;font:inherit;line-height:1.25;outline:none} .jsw-form-fallback .jsw-required-contact-field input::placeholder{color:inherit;opacity:.52} .jsw-form-fallback .jsw-required-contact-field input:focus{border-color:var(--jsw-gold,#b8975a);box-shadow:0 0 0 3px rgba(184,151,90,.2)} .jsw-form-fallback .jsw-required-contact-note{grid-column:1/-1;margin:0;color:inherit;font-size:.76rem;line-height:1.5;opacity:.76} @media(max-width:720px){.jsw-form-fallback .jsw-required-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jsw-form-fallback .jsw-required-contact-field,.jsw-form-fallback .jsw-required-contact-field.is-city{grid-column:1/-1}.jsw-form-fallback .jsw-required-contact-field.is-state,.jsw-form-fallback .jsw-required-contact-field.is-postal{grid-column:span 1}} @media(max-width:480px){.jsw-form-fallback .jsw-required-contact-grid{grid-template-columns:1fr}.jsw-form-fallback .jsw-required-contact-field,.jsw-form-fallback .jsw-required-contact-field.is-full,.jsw-form-fallback .jsw-required-contact-field.is-city,.jsw-form-fallback .jsw-required-contact-field.is-state,.jsw-form-fallback .jsw-required-contact-field.is-postal{grid-column:1}} @media(max-width:980px){.jsw-global-nav{width:min(94vw,780px)}.jsw-global-menu-button{display:inline-flex}.jsw-global-nav-links{position:absolute;top:calc(var(--jsw-header-height) - 1px);right:3vw;left:3vw;display:none;max-height:calc(100vh - var(--jsw-header-height) - 1.5rem);overflow:auto;flex-direction:column;align-items:stretch;gap:0;padding:.65rem;background:var(--jsw-white);border:1px solid var(--jsw-border);box-shadow:0 20px 55px rgba(28,28,25,.14)}.jsw-global-nav-links.is-open{display:flex}.jsw-global-nav-links li{width:100%}.jsw-global-nav-links a{display:flex;width:100%;padding:1rem}.jsw-global-nav-cta{margin-top:.35rem}.jsw-global-footer-grid{grid-template-columns:1fr 1fr}} @media(max-width:640px){:root{--jsw-header-height:72px}.jsw-global-logo img{width:84px}.jsw-global-footer{padding:3.75rem 5vw 1.5rem}.jsw-global-footer-grid{grid-template-columns:1fr;gap:2rem}.jsw-global-footer-bottom{display:grid}} @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.jsw-global-header *,.jsw-global-footer *,.jsw-page *,.jsw-global-header *::before,.jsw-global-header *::after,.jsw-page *::before,.jsw-page *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}} html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--jsw-cream);color:var(--jsw-ink)} .jsw-page{position:relative;min-height:40vh;overflow-x:clip}.jsw-page img{max-width:100%;height:auto}.jsw-page button,.jsw-page input,.jsw-page select,.jsw-page textarea{font:inherit} .jsw-global-header [hidden],.jsw-global-footer [hidden]{display:none!important} /* HubSpot blank-page compatibility. Keeps the pasted JSW body full width and suppresses any blank-template header/footer wrappers. */ .jsw-site-body{width:100%;max-width:none;margin:0;padding:0;overflow:visible} body:has(.jsw-site-body){margin:0!important;padding:0!important;overflow-x:hidden!important;background:var(--jsw-cream)!important} .body-container-wrapper:has(.jsw-site-body), .body-container:has(.jsw-site-body), .dnd-section:has(.jsw-site-body), .dnd-row:has(.jsw-site-body), .dnd-column:has(.jsw-site-body), .row-fluid:has(.jsw-site-body), .widget-span:has(.jsw-site-body), .hs_cos_wrapper:has(> .jsw-site-body){width:100%!important;max-width:none!important;margin:0!important;padding:0!important} .dnd-section:has(.jsw-site-body)>.row-fluid{width:100%!important;max-width:none!important;margin:0!important;padding:0!important} body:has(.jsw-site-body) > .header-container-wrapper, body:has(.jsw-site-body) > .footer-container-wrapper{display:none!important} /* ===== Cabinet Painting ===== */ .jsw-page--cabinet-painting, .jsw-page--cabinet-painting *{margin:0;padding:0;box-sizing:border-box} .jsw-page--cabinet-painting{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--cabinet-painting{scroll-behavior:smooth} .jsw-page--cabinet-painting{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--cabinet-painting img{display:block;max-width:100%} .jsw-page--cabinet-painting a{color:inherit} .jsw-page--cabinet-painting section{padding:7rem 5vw} .jsw-page--cabinet-painting .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--cabinet-painting .kicker.light{color:var(--gold-light)} .jsw-page--cabinet-painting .btn-primary,.jsw-page--cabinet-painting .btn-light,.jsw-page--cabinet-painting .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--cabinet-painting .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--cabinet-painting .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--cabinet-painting .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--cabinet-painting .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--cabinet-painting .btn-light:hover,.jsw-page--cabinet-painting .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--cabinet-painting .cabinet-hero{padding:9.5rem 5vw 6rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));min-height:100vh;display:grid;align-items:center} .jsw-page--cabinet-painting .hero-stage{max-width:1240px;width:100%;margin:auto;display:grid;grid-template-columns:minmax(280px,.58fr) minmax(0,1.42fr);gap:0;align-items:stretch;border:1px solid var(--border);background:var(--white);box-shadow:0 28px 90px rgba(28,28,25,.08)} .jsw-page--cabinet-painting .hero-aside{background:var(--forest);color:var(--white);padding:3rem 2.4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:660px} .jsw-page--cabinet-painting .hero-aside .small-title{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--cabinet-painting .hero-aside strong{font-family:var(--serif);font-size:clamp(2rem,3.5vw,3.4rem);font-weight:300;line-height:1.02;color:var(--white);display:block;margin:1.2rem 0} .jsw-page--cabinet-painting .hero-aside p{color:rgba(255,255,255,.68);font-weight:300} .jsw-page--cabinet-painting .aside-proof{display:grid;gap:.9rem;margin-top:2rem} .jsw-page--cabinet-painting .aside-proof span{display:block;border-top:1px solid rgba(255,255,255,.14);padding-top:.85rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78);font-weight:700} .jsw-page--cabinet-painting .hero-main{display:grid;grid-template-rows:auto 1fr auto} .jsw-page--cabinet-painting .hero-copy{padding:3.2rem 3.5rem 2.4rem;display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:end} .jsw-page--cabinet-painting .hero-copy h1{font-family:var(--serif);font-size:clamp(3.2rem,6vw,6.7rem);font-weight:300;line-height:.92;letter-spacing:-.035em;color:var(--ink)} .jsw-page--cabinet-painting .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--cabinet-painting .hero-copy p{color:var(--ink-muted);font-weight:300;font-size:1rem} .jsw-page--cabinet-painting .hero-ribbon{border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr)} .jsw-page--cabinet-painting .hero-ribbon a{text-decoration:none;color:var(--ink-soft);padding:1rem;border-right:1px solid var(--border);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;text-align:center} .jsw-page--cabinet-painting .hero-ribbon a:last-child{border-right:0} .jsw-page--cabinet-painting .hero-ribbon a:hover{color:var(--gold);background:var(--cream)} .jsw-page--cabinet-painting .hero-image-row{display:grid;grid-template-columns:1.4fr .6fr;gap:1.5px;background:var(--border);min-height:380px} .jsw-page--cabinet-painting .hero-image-row figure{position:relative;overflow:hidden;background:var(--forest)} .jsw-page--cabinet-painting .hero-image-row img{width:100%;height:100%;object-fit:cover} .jsw-page--cabinet-painting .hero-side-stack{display:grid;grid-template-rows:1fr 1fr;gap:1.5px} .jsw-page--cabinet-painting .image-label{position:absolute;left:1rem;bottom:1rem;background:rgba(250,248,244,.92);padding:.55rem .75rem;color:var(--ink-soft);font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700} .jsw-page--cabinet-painting .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;padding:1.8rem 3.5rem;background:var(--cream)} .jsw-page--cabinet-painting .scope-section{background:var(--cream);padding-top:6.5rem} .jsw-page--cabinet-painting .scope-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.86fr 1.14fr;gap:3.5rem;align-items:center} .jsw-page--cabinet-painting .scope-copy{position:relative;padding:3rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)} .jsw-page--cabinet-painting .scope-copy::before{content:"";position:absolute;left:0;top:50%;width:1px;height:75%;background:var(--gold);transform:translateY(-50%)} .jsw-page--cabinet-painting .scope-copy h2,.jsw-page--cabinet-painting .decision-copy h2,.jsw-page--cabinet-painting .process-copy h2,.jsw-page--cabinet-painting .project-copy h2,.jsw-page--cabinet-painting .quote-copy h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,4rem);font-weight:300;line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin-bottom:1rem} .jsw-page--cabinet-painting .scope-copy p,.jsw-page--cabinet-painting .decision-copy p,.jsw-page--cabinet-painting .process-copy p,.jsw-page--cabinet-painting .project-copy p,.jsw-page--cabinet-painting .quote-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--cabinet-painting .scope-card{background:var(--white);border:1px solid var(--border);padding:1.45rem;min-height:230px;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--cabinet-painting .scope-card span{font-family:var(--serif);font-size:2rem;color:var(--gold);line-height:1} .jsw-page--cabinet-painting .scope-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink);line-height:1.1;margin:.6rem 0} .jsw-page--cabinet-painting .scope-card p{font-size:.88rem;color:var(--ink-muted);font-weight:300} .jsw-page--cabinet-painting .scope-card a{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;text-decoration:none;margin-top:1rem} .jsw-page--cabinet-painting .decision-section{background:var(--white);padding:0} .jsw-page--cabinet-painting .decision-shell{display:grid;grid-template-columns:1fr 1fr;min-height:690px} .jsw-page--cabinet-painting .decision-media{display:grid;grid-template-columns:.7fr 1.3fr;gap:1.5px;background:var(--border)} .jsw-page--cabinet-painting .decision-media figure{position:relative;overflow:hidden;background:var(--forest)} .jsw-page--cabinet-painting .decision-media img{width:100%;height:100%;object-fit:cover} .jsw-page--cabinet-painting .decision-media figure:first-child{display:grid;grid-template-rows:1fr 1fr;gap:1.5px} .jsw-page--cabinet-painting .decision-copy{padding:6rem 5vw;display:flex;flex-direction:column;justify-content:center;background:var(--cream-dark)} .jsw-page--cabinet-painting .decision-list{display:grid;gap:0;margin-top:2rem;border-top:1px solid var(--border)} .jsw-page--cabinet-painting .decision-item{display:grid;grid-template-columns:120px 1fr;gap:1.1rem;border-bottom:1px solid var(--border);padding:1rem 0} .jsw-page--cabinet-painting .decision-item strong{font-family:var(--serif);font-size:1.3rem;font-weight:400;color:var(--ink);line-height:1.1} .jsw-page--cabinet-painting .decision-item p{font-size:.86rem;color:var(--ink-muted);font-weight:300} .jsw-page--cabinet-painting .process-section{background:var(--forest);color:var(--white)} .jsw-page--cabinet-painting .process-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem;align-items:start} .jsw-page--cabinet-painting .process-copy{position:sticky;top:110px} .jsw-page--cabinet-painting .process-copy h2{color:var(--white)} .jsw-page--cabinet-painting .process-copy p{color:rgba(255,255,255,.68)} .jsw-page--cabinet-painting .process-copy img{width:100%;height:300px;object-fit:cover;margin-top:2rem;border:1px solid rgba(255,255,255,.12)} .jsw-page--cabinet-painting .process-steps{display:grid;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)} .jsw-page--cabinet-painting .process-step{background:rgba(255,255,255,.055);display:grid;grid-template-columns:110px 1fr;gap:1.4rem;padding:1.5rem;align-items:start} .jsw-page--cabinet-painting .process-step span{font-family:var(--serif);font-size:3rem;color:var(--gold-light);line-height:1} .jsw-page--cabinet-painting .process-step h3{font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--white);margin-bottom:.35rem} .jsw-page--cabinet-painting .process-step p{font-size:.88rem;color:rgba(255,255,255,.62);font-weight:300} .jsw-page--cabinet-painting .color-section{background:var(--cream-dark)} .jsw-page--cabinet-painting .color-strip{max-width:1180px;margin:auto;border:1px solid var(--border);background:var(--white);display:grid;grid-template-columns:1.05fr .95fr} .jsw-page--cabinet-painting .color-info{padding:3rem;display:flex;flex-direction:column;justify-content:center} .jsw-page--cabinet-painting .color-info h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.7rem);font-weight:300;line-height:1.04;color:var(--ink);margin-bottom:1rem} .jsw-page--cabinet-painting .color-info p{color:var(--ink-muted);font-weight:300;margin-bottom:1.8rem} .jsw-page--cabinet-painting .palette-row{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--border);border:1px solid var(--border)} .jsw-page--cabinet-painting .palette{min-height:180px;padding:.85rem;display:flex;align-items:flex-end;background:var(--cream)} .jsw-page--cabinet-painting .palette:nth-child(2){background:var(--cream-dark)} .jsw-page--cabinet-painting .palette:nth-child(3){background:#ddd7c8} .jsw-page--cabinet-painting .palette:nth-child(4){background:#b9b49e} .jsw-page--cabinet-painting .palette:nth-child(5){background:#7a806d;color:var(--white)} .jsw-page--cabinet-painting .palette:nth-child(6){background:var(--forest);color:var(--white)} .jsw-page--cabinet-painting .palette span{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;opacity:.76} .jsw-page--cabinet-painting .color-image{position:relative;min-height:520px;overflow:hidden} .jsw-page--cabinet-painting .color-image img{width:100%;height:100%;object-fit:cover} .jsw-page--cabinet-painting .color-image figcaption{position:absolute;left:1.4rem;right:1.4rem;bottom:1.4rem;background:rgba(250,248,244,.92);padding:1rem;border-left:3px solid var(--gold);font-size:.86rem;color:var(--ink-muted)} .jsw-page--cabinet-painting .project-section{background:var(--cream)} .jsw-page--cabinet-painting .project-shell{max-width:1180px;margin:auto} .jsw-page--cabinet-painting .project-copy{display:grid;grid-template-columns:1fr .9fr;gap:2rem;align-items:end;margin-bottom:2.5rem} .jsw-page--cabinet-painting .project-carousel{position:relative;overflow:hidden;background:var(--forest);height:590px;border:1px solid var(--border)} .jsw-page--cabinet-painting .project-track{display:flex;height:100%;transition:transform .66s cubic-bezier(.22,.61,.36,1)} .jsw-page--cabinet-painting .project-slide{min-width:100%;height:100%;display:grid;grid-template-columns:1.12fr .88fr;background:var(--white)} .jsw-page--cabinet-painting .project-slide figure{position:relative;overflow:hidden;background:var(--forest)} .jsw-page--cabinet-painting .project-slide img{width:100%;height:100%;object-fit:cover} .jsw-page--cabinet-painting .project-caption{padding:3rem;display:flex;flex-direction:column;justify-content:center;background:var(--white)} .jsw-page--cabinet-painting .project-caption span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--cabinet-painting .project-caption strong{font-family:var(--serif);font-size:2.4rem;font-weight:300;color:var(--ink);line-height:1.05;margin-bottom:.8rem} .jsw-page--cabinet-painting .project-caption p{color:var(--ink-muted);font-weight:300} .jsw-page--cabinet-painting .carousel-controls{position:absolute;right:1rem;top:1rem;display:flex;gap:.5rem;z-index:2} .jsw-page--cabinet-painting .carousel-controls button{width:42px;height:42px;border:1px solid rgba(30,48,40,.2);background:rgba(250,248,244,.9);color:var(--forest);font-size:1rem;cursor:pointer} .jsw-page--cabinet-painting .quote-section{background:var(--white)} .jsw-page--cabinet-painting .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--cabinet-painting .quote-copy{background:var(--cream);padding:3.2rem} .jsw-page--cabinet-painting .quote-points{display:grid;gap:1rem;margin-top:2rem} .jsw-page--cabinet-painting .quote-point{display:grid;grid-template-columns:36px 1fr;gap:.9rem;align-items:start} .jsw-page--cabinet-painting .quote-point span{width:36px;height:36px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--serif);font-size:1.2rem} .jsw-page--cabinet-painting .quote-point p{font-size:.86rem} .jsw-page--cabinet-painting .quote-form{background:var(--forest);padding:3.2rem;color:var(--white)} .jsw-page--cabinet-painting .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--white);line-height:1.05;margin-bottom:.8rem} .jsw-page--cabinet-painting .quote-form p{color:rgba(255,255,255,.66);font-weight:300;margin-bottom:1.5rem} .jsw-page--cabinet-painting .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--cabinet-painting .form-field{display:flex;flex-direction:column;gap:.4rem} .jsw-page--cabinet-painting .form-field.full{grid-column:1/-1} .jsw-page--cabinet-painting label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--cabinet-painting input,.jsw-page--cabinet-painting select,.jsw-page--cabinet-painting textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--cabinet-painting textarea{min-height:112px;resize:vertical} .jsw-page--cabinet-painting input::placeholder,.jsw-page--cabinet-painting textarea::placeholder{color:rgba(255,255,255,.45)} .jsw-page--cabinet-painting select option{color:var(--ink)} .jsw-page--cabinet-painting .form-note{font-size:.78rem;color:rgba(255,255,255,.56);margin:1rem 0 1.4rem} .jsw-page--cabinet-painting .aside-image-strip{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:2rem} .jsw-page--cabinet-painting .aside-image-strip img{width:100%;height:145px;object-fit:cover;border:1px solid rgba(255,255,255,.16);opacity:.92} .jsw-page--cabinet-painting .scope-carousel{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--white)} .jsw-page--cabinet-painting .scope-track{display:flex;transition:transform .62s cubic-bezier(.22,.61,.36,1)} .jsw-page--cabinet-painting .scope-slide{min-width:100%;border:0;min-height:430px} .jsw-page--cabinet-painting .scope-carousel-controls{display:flex;gap:.6rem;margin-top:1.4rem} .jsw-page--cabinet-painting .scope-carousel-controls button,.jsw-page--cabinet-painting .scope-dots button{cursor:pointer} .jsw-page--cabinet-painting .scope-carousel-controls button{width:42px;height:42px;border:1px solid var(--border);background:var(--white);color:var(--forest);font-size:1.15rem} .jsw-page--cabinet-painting .scope-dots{position:absolute;left:1.2rem;bottom:1.2rem;display:flex;gap:.45rem} .jsw-page--cabinet-painting .scope-dots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:transparent;padding:0} .jsw-page--cabinet-painting .scope-dots button.active{background:var(--gold)} .jsw-page--cabinet-painting .process-accordions{display:grid;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)} .jsw-page--cabinet-painting .process-accordions .process-step{display:block;padding:0;border:0;background:rgba(255,255,255,.055);min-height:auto} .jsw-page--cabinet-painting .process-accordions .process-step summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:110px 1fr;gap:1.4rem;padding:1.5rem;align-items:start} .jsw-page--cabinet-painting .process-accordions .process-step summary::-webkit-details-marker{display:none} .jsw-page--cabinet-painting .process-accordions .process-step summary::after{content:"+";position:absolute;right:1.5rem;top:1.3rem;color:var(--gold-light);font-size:1.6rem;line-height:1} .jsw-page--cabinet-painting .process-accordions .process-step[open] summary::after{content:"-"} .jsw-page--cabinet-painting .process-accordions .process-step{position:relative} .jsw-page--cabinet-painting .process-extra{padding:0 1.5rem 1.5rem 8.35rem;color:rgba(255,255,255,.62);font-size:.88rem;font-weight:300;line-height:1.75} .jsw-page--cabinet-painting .process-extra p{color:rgba(255,255,255,.62)} .jsw-page--cabinet-painting .process-copy img.cabinet-process-closeup{ height:360px; object-fit:cover; object-position:56% 22%; } @media(max-width:980px){ .jsw-page--cabinet-painting .hero-stage,.jsw-page--cabinet-painting .hero-copy,.jsw-page--cabinet-painting .hero-image-row,.jsw-page--cabinet-painting .scope-shell,.jsw-page--cabinet-painting .decision-shell,.jsw-page--cabinet-painting .process-shell,.jsw-page--cabinet-painting .color-strip,.jsw-page--cabinet-painting .project-copy,.jsw-page--cabinet-painting .project-slide,.jsw-page--cabinet-painting .quote-wrap{grid-template-columns:1fr} .jsw-page--cabinet-painting .hero-aside{min-height:auto} .jsw-page--cabinet-painting .hero-side-stack,.jsw-page--cabinet-painting .decision-media{grid-template-columns:1fr 1fr} .jsw-page--cabinet-painting .scope-copy,.jsw-page--cabinet-painting .process-copy{position:static} .jsw-page--cabinet-painting .scope-card:nth-child(2),.jsw-page--cabinet-painting .color-image{min-height:420px} } @media(max-width:640px){ .jsw-page--cabinet-painting section{padding:4.5rem 5vw} .jsw-page--cabinet-painting .cabinet-hero{padding-top:7rem} .jsw-page--cabinet-painting .hero-copy,.jsw-page--cabinet-painting .hero-actions,.jsw-page--cabinet-painting .quote-copy,.jsw-page--cabinet-painting .quote-form,.jsw-page--cabinet-painting .project-caption{padding:2rem} .jsw-page--cabinet-painting .hero-side-stack,.jsw-page--cabinet-painting .decision-media,.jsw-page--cabinet-painting .decision-item,.jsw-page--cabinet-painting .process-step,.jsw-page--cabinet-painting .palette-row,.jsw-page--cabinet-painting .form-grid{grid-template-columns:1fr} .jsw-page--cabinet-painting .project-carousel{height:auto} .jsw-page--cabinet-painting .project-slide{min-height:auto} .jsw-page--cabinet-painting .project-slide figure{min-height:360px} .jsw-page--cabinet-painting .palette{min-height:110px} } @media(max-width:980px){ .jsw-page--cabinet-painting .aside-image-strip img{width:100%;height:145px;object-fit:cover;border:1px solid rgba(255,255,255,.16);opacity:.92} .jsw-page--cabinet-painting .scope-slide{min-height:360px} .jsw-page--cabinet-painting .process-accordions .process-step summary{grid-template-columns:82px 1fr} .jsw-page--cabinet-painting .process-extra{padding-left:6.6rem} } @media(max-width:640px){ .jsw-page--cabinet-painting .aside-image-strip{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:2rem} .jsw-page--cabinet-painting .aside-image-strip img{width:100%;height:145px;object-fit:cover;border:1px solid rgba(255,255,255,.16);opacity:.92} .jsw-page--cabinet-painting .scope-slide{min-height:410px} .jsw-page--cabinet-painting .process-accordions .process-step summary{grid-template-columns:1fr;gap:.5rem} .jsw-page--cabinet-painting .process-accordions .process-step summary::after{top:1rem} .jsw-page--cabinet-painting .process-extra{padding:0 1.5rem 1.4rem} } /* JSW interactive quality layer */ .jsw-page--cabinet-painting{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--cabinet-painting,.jsw-page--cabinet-painting *{box-sizing:border-box} .jsw-page--cabinet-painting img,.jsw-page--cabinet-painting video,.jsw-page--cabinet-painting canvas,.jsw-page--cabinet-painting svg{max-width:100%;height:auto} .jsw-page--cabinet-painting button,.jsw-page--cabinet-painting [role="button"],.jsw-page--cabinet-painting input[type="range"]{touch-action:manipulation} .jsw-page--cabinet-painting button,.jsw-page--cabinet-painting [role="button"],.jsw-page--cabinet-painting a,.jsw-page--cabinet-painting input,.jsw-page--cabinet-painting select,.jsw-page--cabinet-painting textarea{-webkit-tap-highlight-color:transparent} .jsw-page--cabinet-painting button:not(:disabled),.jsw-page--cabinet-painting [role="button"]:not([aria-disabled="true"]),.jsw-page--cabinet-painting input[type="range"]{cursor:pointer} .jsw-page--cabinet-painting button:disabled,.jsw-page--cabinet-painting [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--cabinet-painting [hidden]{display:none!important} .jsw-page--cabinet-painting [aria-busy="true"]{cursor:progress}.jsw-page--cabinet-painting :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--cabinet-painting :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--cabinet-painting :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--cabinet-painting .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--cabinet-painting :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--cabinet-painting :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--cabinet-painting :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--cabinet-painting :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--cabinet-painting,.jsw-page--cabinet-painting *{scroll-behavior:auto!important} .jsw-page--cabinet-painting *,.jsw-page--cabinet-painting *::before,.jsw-page--cabinet-painting *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Color Guidance for Painting Projects ===== */ .jsw-page--color-guidance, .jsw-page--color-guidance *{margin:0;padding:0;box-sizing:border-box} .jsw-page--color-guidance{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--sage:#717760;--clay:#A98F76;--linen:#E9E1D4} .jsw-page--color-guidance{scroll-behavior:smooth} .jsw-page--color-guidance{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--color-guidance img{display:block;max-width:100%} .jsw-page--color-guidance a{color:inherit} .jsw-page--color-guidance section{padding:7rem 5vw} .jsw-page--color-guidance .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--color-guidance .kicker.light{color:var(--gold-light)} .jsw-page--color-guidance .btn-primary,.jsw-page--color-guidance .btn-line{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--color-guidance .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--color-guidance .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--color-guidance .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--color-guidance .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--color-guidance .color-hero{padding:9.5rem 5vw 5.5rem;background:linear-gradient(135deg,var(--cream) 0%,var(--cream-dark) 100%);min-height:100vh;display:grid;align-items:center} .jsw-page--color-guidance .hero-wrap{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.02fr .98fr;gap:3rem;align-items:center} .jsw-page--color-guidance .hero-copy h1{font-family:var(--serif);font-size:clamp(3.2rem,5.8vw,6.35rem);font-weight:300;line-height:.95;letter-spacing:-.035em;color:var(--ink);margin-bottom:1.35rem} .jsw-page--color-guidance .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--color-guidance .hero-copy p{font-size:1.03rem;color:var(--ink-muted);font-weight:300;max-width:670px;margin-bottom:1.35rem} .jsw-page--color-guidance .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem} .jsw-page--color-guidance .quote-note{display:grid;grid-template-columns:42px 1fr;gap:.9rem;align-items:start;max-width:630px;background:rgba(255,255,255,.55);border:1px solid var(--border);padding:1rem 1.15rem;margin-top:1.45rem} .jsw-page--color-guidance .quote-note span{font-family:var(--serif);font-size:2.1rem;color:var(--gold);line-height:1} .jsw-page--color-guidance .quote-note p{font-size:.9rem;line-height:1.65;margin:0} .jsw-page--color-guidance .hero-visual{display:grid;grid-template-columns:.7fr 1.3fr;gap:1rem;min-height:650px} .jsw-page--color-guidance .hero-stack{display:grid;grid-template-rows:1fr 1fr;gap:1rem} .jsw-page--color-guidance .photo-card{position:relative;overflow:hidden;background:var(--forest);border:1px solid var(--border);box-shadow:0 20px 60px rgba(28,28,25,.08)} .jsw-page--color-guidance .photo-card img{width:100%;height:100%;object-fit:cover} .jsw-page--color-guidance .photo-main{min-height:650px} .jsw-page--color-guidance .photo-stack-item{min-height:315px} .jsw-page--color-guidance .image-label{position:absolute;left:1rem;bottom:1rem;background:rgba(250,248,244,.92);padding:.65rem .85rem;color:var(--ink-soft);font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700} .jsw-page--color-guidance .guidance-section{background:var(--forest);color:var(--white);padding:0} .jsw-page--color-guidance .guidance-wrap{display:grid;grid-template-columns:.88fr 1.12fr;min-height:640px} .jsw-page--color-guidance .guidance-copy{padding:6rem 5vw;display:flex;flex-direction:column;justify-content:center} .jsw-page--color-guidance .guidance-copy h2,.jsw-page--color-guidance .section-heading h2,.jsw-page--color-guidance .quote-copy h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,4rem);font-weight:300;line-height:1.04;letter-spacing:-.02em;margin-bottom:1rem} .jsw-page--color-guidance .guidance-copy h2{color:var(--white)} .jsw-page--color-guidance .guidance-copy p{color:rgba(255,255,255,.70);font-weight:300;max-width:620px} .jsw-page--color-guidance .guidance-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);border-left:1px solid rgba(255,255,255,.14)} .jsw-page--color-guidance .guidance-card{background:rgba(255,255,255,.055);padding:2rem;display:flex;flex-direction:column;justify-content:space-between;min-height:320px} .jsw-page--color-guidance .guidance-card span{font-family:var(--serif);font-size:2.6rem;color:var(--gold-light);line-height:1} .jsw-page--color-guidance .guidance-card h3{font-family:var(--serif);font-size:1.55rem;font-weight:400;line-height:1.12;color:var(--white);margin:.75rem 0 .45rem} .jsw-page--color-guidance .guidance-card p{font-size:.88rem;color:rgba(255,255,255,.64);font-weight:300} .jsw-page--color-guidance .flow-section{background:var(--cream)} .jsw-page--color-guidance .flow-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:3rem;align-items:start} .jsw-page--color-guidance .section-heading{background:var(--white);border:1px solid var(--border);padding:2.5rem;position:sticky;top:110px} .jsw-page--color-guidance .section-heading h2{color:var(--ink)} .jsw-page--color-guidance .section-heading p{color:var(--ink-muted);font-weight:300} .jsw-page--color-guidance .swatch-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:1.6rem} .jsw-page--color-guidance .swatch{height:86px;display:flex;align-items:end;padding:.65rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:rgba(28,28,25,.72)} .jsw-page--color-guidance .swatch:nth-child(1){background:#f4eee2}.jsw-page--color-guidance .swatch:nth-child(2){background:#d8c8b1}.jsw-page--color-guidance .swatch:nth-child(3){background:#a98f76;color:white}.jsw-page--color-guidance .swatch:nth-child(4){background:#717760;color:white}.jsw-page--color-guidance .swatch:nth-child(5){background:#1e3028;color:white} .jsw-page--color-guidance .flow-cards{display:grid;gap:1rem} .jsw-page--color-guidance .flow-card{display:grid;grid-template-columns:240px 1fr;gap:1.5px;background:var(--border);border:1px solid var(--border);min-height:210px} .jsw-page--color-guidance .flow-card figure{overflow:hidden;background:var(--forest)} .jsw-page--color-guidance .flow-card img{width:100%;height:100%;object-fit:cover} .jsw-page--color-guidance .flow-card div{background:var(--white);padding:1.8rem;display:flex;flex-direction:column;justify-content:center} .jsw-page--color-guidance .flow-card h3{font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.1;color:var(--ink);margin-bottom:.5rem} .jsw-page--color-guidance .flow-card p{font-size:.9rem;color:var(--ink-muted);font-weight:300} .jsw-page--color-guidance .process-section{background:var(--cream-dark)} .jsw-page--color-guidance .process-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--color-guidance .process-copy{background:var(--white);padding:3rem} .jsw-page--color-guidance .process-copy h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,3.8rem);font-weight:300;line-height:1.04;color:var(--ink);margin-bottom:1rem} .jsw-page--color-guidance .process-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--color-guidance .process-list{background:var(--cream);display:grid} .jsw-page--color-guidance .process-step{display:grid;grid-template-columns:90px 1fr;gap:1rem;border-bottom:1px solid var(--border);padding:1.4rem 1.6rem;align-items:start} .jsw-page--color-guidance .process-step:last-child{border-bottom:0} .jsw-page--color-guidance .process-step span{font-family:var(--serif);font-size:2.45rem;color:var(--gold);line-height:1} .jsw-page--color-guidance .process-step h3{font-family:var(--serif);font-size:1.4rem;font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:.35rem} .jsw-page--color-guidance .process-step p{color:var(--ink-muted);font-size:.88rem;font-weight:300} .jsw-page--color-guidance .quote-section{background:var(--white)} .jsw-page--color-guidance .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--color-guidance .quote-copy{background:var(--forest);color:var(--white);padding:3.2rem;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--color-guidance .quote-copy h2{color:var(--white)} .jsw-page--color-guidance .quote-copy p{color:rgba(255,255,255,.68);font-weight:300} .jsw-page--color-guidance .quote-badge{margin-top:2rem;border:1px solid rgba(255,255,255,.14);padding:1rem;color:rgba(255,255,255,.72);font-size:.86rem} .jsw-page--color-guidance .quote-form{background:var(--white);padding:3.2rem;color:var(--ink)} .jsw-page--color-guidance .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--ink);line-height:1.05;margin-bottom:.8rem} .jsw-page--color-guidance .quote-form p{color:var(--ink-muted);font-weight:300;margin-bottom:1.5rem} .jsw-page--color-guidance .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--color-guidance .form-field{display:flex;flex-direction:column;gap:.4rem} .jsw-page--color-guidance .form-field.full{grid-column:1/-1} .jsw-page--color-guidance label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--forest);font-weight:700} .jsw-page--color-guidance input,.jsw-page--color-guidance select,.jsw-page--color-guidance textarea{width:100%;border:1px solid var(--border);background:var(--cream);color:var(--ink);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--color-guidance textarea{min-height:112px;resize:vertical} .jsw-page--color-guidance .form-note{font-size:.78rem;color:var(--ink-muted);margin:1rem 0 1.4rem} @media(max-width:980px){.jsw-page--color-guidance .hero-wrap,.jsw-page--color-guidance .guidance-wrap,.jsw-page--color-guidance .flow-wrap,.jsw-page--color-guidance .process-wrap,.jsw-page--color-guidance .quote-wrap{grid-template-columns:1fr}.jsw-page--color-guidance .hero-visual{min-height:auto}.jsw-page--color-guidance .photo-main{min-height:520px}.jsw-page--color-guidance .section-heading{position:static}.jsw-page--color-guidance .guidance-grid{grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid rgba(255,255,255,.14)}} @media(max-width:640px){.jsw-page--color-guidance section{padding:4.5rem 5vw}.jsw-page--color-guidance .color-hero{padding-top:7rem}.jsw-page--color-guidance .hero-visual,.jsw-page--color-guidance .hero-stack,.jsw-page--color-guidance .guidance-grid,.jsw-page--color-guidance .flow-card,.jsw-page--color-guidance .process-step,.jsw-page--color-guidance .form-grid{grid-template-columns:1fr}.jsw-page--color-guidance .photo-main,.jsw-page--color-guidance .photo-stack-item{min-height:360px}.jsw-page--color-guidance .guidance-card{min-height:230px}.jsw-page--color-guidance .process-copy,.jsw-page--color-guidance .quote-form,.jsw-page--color-guidance .quote-copy,.jsw-page--color-guidance .section-heading{padding:2rem}.jsw-page--color-guidance .swatch-strip{grid-template-columns:1fr}.jsw-page--color-guidance .swatch{height:54px}} /* JSW interactive quality layer */ .jsw-page--color-guidance{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--color-guidance,.jsw-page--color-guidance *{box-sizing:border-box} .jsw-page--color-guidance img,.jsw-page--color-guidance video,.jsw-page--color-guidance canvas,.jsw-page--color-guidance svg{max-width:100%;height:auto} .jsw-page--color-guidance button,.jsw-page--color-guidance [role="button"],.jsw-page--color-guidance input[type="range"]{touch-action:manipulation} .jsw-page--color-guidance button,.jsw-page--color-guidance [role="button"],.jsw-page--color-guidance a,.jsw-page--color-guidance input,.jsw-page--color-guidance select,.jsw-page--color-guidance textarea{-webkit-tap-highlight-color:transparent} .jsw-page--color-guidance button:not(:disabled),.jsw-page--color-guidance [role="button"]:not([aria-disabled="true"]),.jsw-page--color-guidance input[type="range"]{cursor:pointer} .jsw-page--color-guidance button:disabled,.jsw-page--color-guidance [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--color-guidance [hidden]{display:none!important} .jsw-page--color-guidance [aria-busy="true"]{cursor:progress}.jsw-page--color-guidance :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--color-guidance :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--color-guidance :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--color-guidance .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--color-guidance :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--color-guidance :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--color-guidance :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--color-guidance :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--color-guidance,.jsw-page--color-guidance *{scroll-behavior:auto!important} .jsw-page--color-guidance *,.jsw-page--color-guidance *::before,.jsw-page--color-guidance *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Drywall Repair and Installation ===== */ .jsw-page--drywall-repair-installation, .jsw-page--drywall-repair-installation *{margin:0;padding:0;box-sizing:border-box} .jsw-page--drywall-repair-installation{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--drywall-repair-installation{scroll-behavior:smooth} .jsw-page--drywall-repair-installation{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--drywall-repair-installation img{display:block;max-width:100%} .jsw-page--drywall-repair-installation a{color:inherit} .jsw-page--drywall-repair-installation section{padding:7rem 5vw} .jsw-page--drywall-repair-installation .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--drywall-repair-installation .kicker.light{color:var(--gold-light)} .jsw-page--drywall-repair-installation .btn-primary,.jsw-page--drywall-repair-installation .btn-light,.jsw-page--drywall-repair-installation .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--drywall-repair-installation .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--drywall-repair-installation .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--drywall-repair-installation .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--drywall-repair-installation .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--drywall-repair-installation .btn-light:hover,.jsw-page--drywall-repair-installation .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--drywall-repair-installation .drywall-hero{padding:9rem 5vw 5rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));min-height:100vh;display:grid;align-items:center} .jsw-page--drywall-repair-installation .diagnostic-sheet{max-width:1240px;margin:auto;width:100%;display:grid;grid-template-columns:minmax(300px,.62fr) minmax(0,1.38fr);border:1px solid var(--border);background:var(--white);box-shadow:0 30px 80px rgba(28,28,25,.08)} .jsw-page--drywall-repair-installation .sheet-margin{background:var(--forest);color:var(--white);padding:2.4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:670px} .jsw-page--drywall-repair-installation .sheet-margin h1{font-family:var(--serif);font-size:clamp(3rem,5.5vw,6.2rem);font-weight:300;line-height:.93;letter-spacing:-.035em;color:var(--white);margin:1rem 0} .jsw-page--drywall-repair-installation .sheet-margin h1 em{font-style:italic;color:var(--gold-light)} .jsw-page--drywall-repair-installation .sheet-margin p{color:rgba(255,255,255,.68);font-weight:300} .jsw-page--drywall-repair-installation .margin-codes{display:grid;gap:.75rem;margin-top:2rem} .jsw-page--drywall-repair-installation .margin-codes span{border-top:1px solid rgba(255,255,255,.14);padding-top:.8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78);font-weight:700} .jsw-page--drywall-repair-installation .sheet-body{display:grid;grid-template-rows:auto 1fr auto} .jsw-page--drywall-repair-installation .sheet-top{padding:2.4rem 3rem;display:grid;grid-template-columns:1fr .75fr;gap:2rem;align-items:end;border-bottom:1px solid var(--border)} .jsw-page--drywall-repair-installation .sheet-top p{color:var(--ink-muted);font-weight:300;max-width:520px} .jsw-page--drywall-repair-installation .sheet-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:flex-end} .jsw-page--drywall-repair-installation .wall-scan{display:grid;grid-template-columns:1fr 250px;gap:1.5px;background:var(--border);min-height:410px} .jsw-page--drywall-repair-installation .scan-image{position:relative;overflow:hidden;background:var(--forest)} .jsw-page--drywall-repair-installation .scan-image img{width:100%;height:100%;object-fit:cover} .jsw-page--drywall-repair-installation .scan-pin{position:absolute;cursor:pointer} .jsw-page--drywall-repair-installation .scan-label{position:absolute;gap:.45rem;letter-spacing:.12em;text-transform:uppercase;pointer-events:none} .jsw-page--drywall-repair-installation .scan-label::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)} .jsw-page--drywall-repair-installation .scan-instruction{position:absolute;z-index:2;padding:.62rem .8rem;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700} .jsw-page--drywall-repair-installation .scan-sidebar{background:var(--cream);padding:1.4rem;display:flex;flex-direction:column;justify-content:center} .jsw-page--drywall-repair-installation .scan-sidebar strong{font-family:var(--serif);font-size:1.65rem;font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:.7rem} .jsw-page--drywall-repair-installation .scan-sidebar p{color:var(--ink-muted);font-size:.88rem;font-weight:300} .jsw-page--drywall-repair-installation .sheet-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border)} .jsw-page--drywall-repair-installation .sheet-tabs a{padding:1rem;text-decoration:none;text-align:center;color:var(--ink-soft);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-right:1px solid var(--border)} .jsw-page--drywall-repair-installation .sheet-tabs a:last-child{border-right:0} .jsw-page--drywall-repair-installation .sheet-tabs a:hover{background:var(--cream);color:var(--gold)} .jsw-page--drywall-repair-installation .triage-section{background:var(--cream)} .jsw-page--drywall-repair-installation .triage-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.78fr 1.22fr;gap:3rem;align-items:stretch} .jsw-page--drywall-repair-installation .triage-copy h2,.jsw-page--drywall-repair-installation .anatomy-copy h2,.jsw-page--drywall-repair-installation .compare-copy h2,.jsw-page--drywall-repair-installation .quote-copy h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,4rem);font-weight:300;line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin-bottom:1rem} .jsw-page--drywall-repair-installation .triage-copy p,.jsw-page--drywall-repair-installation .anatomy-copy p,.jsw-page--drywall-repair-installation .compare-copy p,.jsw-page--drywall-repair-installation .quote-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--drywall-repair-installation .triage-copy{background:var(--white);border:1px solid var(--border);padding:2.6rem;display:flex;flex-direction:column;justify-content:space-between;min-height:520px} .jsw-page--drywall-repair-installation .triage-note{border-top:1px solid var(--border);padding-top:1.2rem;margin-top:2rem;font-size:.9rem;color:var(--ink-muted)} .jsw-page--drywall-repair-installation .triage-board{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--drywall-repair-installation .triage-card{background:var(--white);border:1px solid var(--border);min-height:250px;display:flex;flex-direction:column;justify-content:space-between;padding:1.45rem;transition:transform .25s ease,border-color .25s ease,background .25s ease} .jsw-page--drywall-repair-installation .triage-card:hover{transform:translateY(-3px);border-color:var(--gold);background:var(--cream-dark)} .jsw-page--drywall-repair-installation .triage-card:nth-child(2){margin-top:2rem}.jsw-page--drywall-repair-installation .triage-card:nth-child(3){margin-top:-2rem}.jsw-page--drywall-repair-installation .triage-card:nth-child(4){background:var(--forest);color:var(--white)} .jsw-page--drywall-repair-installation .triage-card span{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:1} .jsw-page--drywall-repair-installation .triage-card:nth-child(4) span{color:var(--gold-light)} .jsw-page--drywall-repair-installation .triage-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink);margin:.7rem 0 .35rem} .jsw-page--drywall-repair-installation .triage-card:nth-child(4) h3{color:var(--white)} .jsw-page--drywall-repair-installation .triage-card p{font-size:.86rem;color:var(--ink-muted);font-weight:300} .jsw-page--drywall-repair-installation .triage-card:nth-child(4) p{color:rgba(255,255,255,.68)} .jsw-page--drywall-repair-installation .triage-tag{font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-top:1rem} .jsw-page--drywall-repair-installation .anatomy-section{background:var(--forest);color:var(--white);padding:0} .jsw-page--drywall-repair-installation .anatomy-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:700px} .jsw-page--drywall-repair-installation .anatomy-copy{padding:7rem 5vw;display:flex;flex-direction:column;justify-content:center} .jsw-page--drywall-repair-installation .anatomy-copy h2{color:var(--white)} .jsw-page--drywall-repair-installation .anatomy-copy p{color:rgba(255,255,255,.68)} .jsw-page--drywall-repair-installation .layer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);margin-top:2rem} .jsw-page--drywall-repair-installation .layer-buttons button{border:0;background:rgba(255,255,255,.06);padding:1rem;color:rgba(255,255,255,.78);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;cursor:pointer} .jsw-page--drywall-repair-installation .layer-buttons button.active{background:var(--gold);color:var(--ink)} .jsw-page--drywall-repair-installation .wall-layers{background:var(--cream);padding:5vw;display:flex;align-items:center;justify-content:center} .jsw-page--drywall-repair-installation .layer-card{width:min(520px,100%);background:var(--white);border:1px solid var(--border);padding:1.4rem} .jsw-page--drywall-repair-installation .layer-visual{position:relative;height:420px;border:1px solid var(--border);overflow:hidden} .jsw-page--drywall-repair-installation .layer-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28} .jsw-page--drywall-repair-installation .layer-note{padding:1.2rem 0 0} .jsw-page--drywall-repair-installation .layer-note strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink);display:block;margin-bottom:.35rem} .jsw-page--drywall-repair-installation .layer-note p{color:var(--ink-muted);font-weight:300} .jsw-page--drywall-repair-installation .compare-section{background:var(--cream-dark)} .jsw-page--drywall-repair-installation .compare-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center} .jsw-page--drywall-repair-installation .compare-box{background:var(--white);border:1px solid var(--border);padding:1.2rem} .jsw-page--drywall-repair-installation .compare-stage{height:500px;position:relative;overflow:hidden;background:var(--forest)} .jsw-page--drywall-repair-installation .compare-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover} .jsw-page--drywall-repair-installation .compare-after{clip-path:inset(0 calc(100% - var(--cut,50%)) 0 0)} .jsw-page--drywall-repair-installation .compare-divider{position:absolute;top:0;bottom:0;left:var(--cut,50%);width:3px;background:var(--gold);z-index:2} .jsw-page--drywall-repair-installation .compare-range{width:100%;margin-top:1rem;accent-color:var(--gold)} .jsw-page--drywall-repair-installation .compare-labels{display:flex;justify-content:space-between;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;margin-top:.4rem} .jsw-page--drywall-repair-installation .quote-section{background:var(--white)} .jsw-page--drywall-repair-installation .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--drywall-repair-installation .quote-copy{background:var(--cream);padding:3rem;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--drywall-repair-installation .ticket-list{margin-top:2rem;display:grid;gap:.7rem} .jsw-page--drywall-repair-installation .ticket-list span{background:var(--white);border:1px solid var(--border);padding:.85rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:700} .jsw-page--drywall-repair-installation .quote-form{background:var(--forest);padding:3rem;color:var(--white)} .jsw-page--drywall-repair-installation .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--white);line-height:1.05;margin-bottom:.8rem} .jsw-page--drywall-repair-installation .quote-form p{color:rgba(255,255,255,.66);font-weight:300;margin-bottom:1.5rem} .jsw-page--drywall-repair-installation .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--drywall-repair-installation .form-field{display:flex;flex-direction:column;gap:.4rem} .jsw-page--drywall-repair-installation .form-field.full{grid-column:1/-1} .jsw-page--drywall-repair-installation label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--drywall-repair-installation input,.jsw-page--drywall-repair-installation select,.jsw-page--drywall-repair-installation textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--drywall-repair-installation textarea{min-height:112px;resize:vertical} .jsw-page--drywall-repair-installation input::placeholder,.jsw-page--drywall-repair-installation textarea::placeholder{color:rgba(255,255,255,.45)} .jsw-page--drywall-repair-installation select option{color:var(--ink)} .jsw-page--drywall-repair-installation .form-note{font-size:.78rem;color:rgba(255,255,255,.56);margin:1rem 0 1.4rem} @media(max-width:980px){ .jsw-page--drywall-repair-installation .diagnostic-sheet,.jsw-page--drywall-repair-installation .sheet-top,.jsw-page--drywall-repair-installation .wall-scan,.jsw-page--drywall-repair-installation .triage-wrap,.jsw-page--drywall-repair-installation .anatomy-wrap,.jsw-page--drywall-repair-installation .compare-wrap,.jsw-page--drywall-repair-installation .quote-wrap{grid-template-columns:1fr} .jsw-page--drywall-repair-installation .sheet-margin{min-height:auto} .jsw-page--drywall-repair-installation .anatomy-copy{padding:5rem 5vw} } @media(max-width:640px){ .jsw-page--drywall-repair-installation section{padding:4.5rem 5vw} .jsw-page--drywall-repair-installation .drywall-hero{padding-top:7rem} .jsw-page--drywall-repair-installation .sheet-top,.jsw-page--drywall-repair-installation .sheet-margin,.jsw-page--drywall-repair-installation .quote-form,.jsw-page--drywall-repair-installation .quote-copy{padding:2rem} .jsw-page--drywall-repair-installation .sheet-tabs,.jsw-page--drywall-repair-installation .layer-buttons,.jsw-page--drywall-repair-installation .form-grid{grid-template-columns:1fr} .jsw-page--drywall-repair-installation .triage-board{grid-template-columns:1fr} .jsw-page--drywall-repair-installation .triage-card,.jsw-page--drywall-repair-installation .triage-card:nth-child(2),.jsw-page--drywall-repair-installation .triage-card:nth-child(3){margin-top:0} .jsw-page--drywall-repair-installation .layer-visual,.jsw-page--drywall-repair-installation .compare-stage{height:360px} } .jsw-page--drywall-repair-installation .scan-image img{ transition:transform .42s cubic-bezier(.4,0,.2,1), filter .28s ease; transform-origin:var(--zoom-x,50%) var(--zoom-y,50%); } .jsw-page--drywall-repair-installation .scan-image.zoom-active img{ filter:contrast(1.03) saturate(1.02); } .jsw-page--drywall-repair-installation .scan-pin.active{ background:var(--gold); border-color:var(--white); box-shadow:0 0 0 9px rgba(212,180,122,.28), 0 0 0 16px rgba(212,180,122,.12); } .jsw-page--drywall-repair-installation .scan-label.active::before{ background:var(--gold-light); } /* Updated drywall scan markers and stronger zoom with realistic photo assets */ .jsw-page--drywall-repair-installation .scan-image.zoom-active img{transform:scale(var(--zoom-scale,3.1));} .jsw-page--drywall-repair-installation .scan-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 34%,rgba(0,0,0,.08));pointer-events:none;z-index:1;} .jsw-page--drywall-repair-installation .scan-image img{position:relative;z-index:0;} .jsw-page--drywall-repair-installation .scan-instruction,.jsw-page--drywall-repair-installation .scan-pin,.jsw-page--drywall-repair-installation .scan-label{position:absolute;z-index:5;} .jsw-page--drywall-repair-installation .scan-instruction{top:1rem;left:1rem;background:rgba(255,255,255,.92);color:var(--forest);border:1px solid rgba(34,68,55,.14);box-shadow:0 10px 26px rgba(15,32,26,.12);} .jsw-page--drywall-repair-installation .scan-pin{width:28px;height:28px;border-radius:50%;border:3px solid var(--forest);background:transparent!important;box-shadow:none;display:grid;place-items:center;transition:transform .18s ease,color .18s ease,border-color .18s ease;color:var(--forest);} .jsw-page--drywall-repair-installation .scan-pin::before{content:"";width:11px;height:11px;border-radius:50%;border:2px solid currentColor;opacity:.95;display:block;background:transparent!important;} .jsw-page--drywall-repair-installation .scan-pin:hover,.jsw-page--drywall-repair-installation .scan-pin:focus-visible,.jsw-page--drywall-repair-installation .scan-pin.active{transform:scale(1.08);background:transparent!important;color:var(--gold);border-color:var(--gold);box-shadow:none;} .jsw-page--drywall-repair-installation .scan-label{width:112px;height:112px;padding:.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.67rem;font-weight:700;line-height:1.2;background:rgba(250,248,244,.50);color:var(--forest);border:1px solid rgba(30,48,40,.34);box-shadow:0 10px 24px rgba(15,32,26,.08);backdrop-filter:blur(2px);white-space:normal;} .jsw-page--drywall-repair-installation .scan-label.active{background:rgba(250,248,244,.60);color:var(--forest);border-color:rgba(184,151,90,.72);} .jsw-page--drywall-repair-installation .pin-a{top:16%;left:60%;}.jsw-page--drywall-repair-installation .label-a{top:4%;left:36%;} .jsw-page--drywall-repair-installation .pin-b{top:26%;left:74%;}.jsw-page--drywall-repair-installation .label-b{top:7%;left:80%;} .jsw-page--drywall-repair-installation .pin-c{top:49%;left:25%;}.jsw-page--drywall-repair-installation .label-c{top:37%;left:5%;} .jsw-page--drywall-repair-installation .pin-d{top:48%;left:68%;}.jsw-page--drywall-repair-installation .label-d{top:38%;left:76%;} .jsw-page--drywall-repair-installation .pin-e{top:57%;left:46.2%;}.jsw-page--drywall-repair-installation .label-e{top:62%;left:33%;} .jsw-page--drywall-repair-installation .layer-visual{background:var(--cream-dark);} .jsw-page--drywall-repair-installation .layer-visual img.layer-stage-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.025);transition:opacity .34s ease,transform .42s ease;} .jsw-page--drywall-repair-installation .layer-visual img.layer-stage-image.active{opacity:1;transform:scale(1);} .jsw-page--drywall-repair-installation .layer-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,48,40,.08),transparent 36%,rgba(30,48,40,.12));pointer-events:none;} .jsw-page--drywall-repair-installation .layer-buttons button{transition:background-color .2s ease,color .2s ease;} .jsw-page--drywall-repair-installation .compare-stage img{object-position:center center;} .jsw-page--drywall-repair-installation .compare-stage .compare-after{object-position:center center;} @media(max-width:760px){ .jsw-page--drywall-repair-installation .scan-label{width:88px;height:88px;padding:.58rem;font-size:.56rem;} .jsw-page--drywall-repair-installation .scan-pin{width:22px;height:22px;border-width:2px;} .jsw-page--drywall-repair-installation .scan-pin::before{width:8px;height:8px;border-width:2px;} } @media(max-width:640px){ .jsw-page--drywall-repair-installation .scan-label{width:76px;height:76px;padding:.45rem;font-size:.5rem;} .jsw-page--drywall-repair-installation .scan-pin{width:18px;height:18px;} .jsw-page--drywall-repair-installation .scan-pin::before{width:6px;height:6px;border-width:1.5px;} } /* JSW interactive quality layer */ .jsw-page--drywall-repair-installation{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--drywall-repair-installation,.jsw-page--drywall-repair-installation *{box-sizing:border-box} .jsw-page--drywall-repair-installation img,.jsw-page--drywall-repair-installation video,.jsw-page--drywall-repair-installation canvas,.jsw-page--drywall-repair-installation svg{max-width:100%;height:auto} .jsw-page--drywall-repair-installation button,.jsw-page--drywall-repair-installation [role="button"],.jsw-page--drywall-repair-installation input[type="range"]{touch-action:manipulation} .jsw-page--drywall-repair-installation button,.jsw-page--drywall-repair-installation [role="button"],.jsw-page--drywall-repair-installation a,.jsw-page--drywall-repair-installation input,.jsw-page--drywall-repair-installation select,.jsw-page--drywall-repair-installation textarea{-webkit-tap-highlight-color:transparent} .jsw-page--drywall-repair-installation button:not(:disabled),.jsw-page--drywall-repair-installation [role="button"]:not([aria-disabled="true"]),.jsw-page--drywall-repair-installation input[type="range"]{cursor:pointer} .jsw-page--drywall-repair-installation button:disabled,.jsw-page--drywall-repair-installation [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--drywall-repair-installation [hidden]{display:none!important} .jsw-page--drywall-repair-installation [aria-busy="true"]{cursor:progress}.jsw-page--drywall-repair-installation :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--drywall-repair-installation :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--drywall-repair-installation :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--drywall-repair-installation .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--drywall-repair-installation :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--drywall-repair-installation :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--drywall-repair-installation :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--drywall-repair-installation :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--drywall-repair-installation,.jsw-page--drywall-repair-installation *{scroll-behavior:auto!important} .jsw-page--drywall-repair-installation *,.jsw-page--drywall-repair-installation *::before,.jsw-page--drywall-repair-installation *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Exterior Painting ===== */ .jsw-page--exterior-painting, .jsw-page--exterior-painting *{margin:0;padding:0;box-sizing:border-box} .jsw-page--exterior-painting{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--exterior-painting{scroll-behavior:smooth} .jsw-page--exterior-painting{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--exterior-painting img{display:block;max-width:100%} .jsw-page--exterior-painting a{color:inherit} .jsw-page--exterior-painting section{padding:7rem 5vw} .jsw-page--exterior-painting .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem;display:flex;align-items:center;gap:.75rem} .jsw-page--exterior-painting .eyebrow::before{content:"";display:block;width:32px;height:1px;background:var(--gold)} .jsw-page--exterior-painting .btn-primary,.jsw-page--exterior-painting .btn-light,.jsw-page--exterior-painting .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--exterior-painting .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--exterior-painting .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--exterior-painting .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--exterior-painting .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--exterior-painting .btn-light:hover,.jsw-page--exterior-painting .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--exterior-painting .hero-exterior{padding:8.5rem 5vw 0;background:linear-gradient(180deg,var(--cream),var(--cream-dark));min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end} .jsw-page--exterior-painting .hero-frame{max-width:1240px;margin:0 auto;width:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.72fr);gap:3rem;align-items:end} .jsw-page--exterior-painting .hero-copy{padding:3rem 0 4rem} .jsw-page--exterior-painting .hero-copy h1{font-family:var(--serif);font-size:clamp(3.4rem,6vw,6.75rem);font-weight:300;letter-spacing:-.035em;line-height:.96;color:var(--ink);margin-bottom:1.35rem} .jsw-page--exterior-painting .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--exterior-painting .hero-copy p{font-size:1.02rem;color:var(--ink-muted);max-width:640px;font-weight:300;margin-bottom:2rem} .jsw-page--exterior-painting .hero-actions{display:flex;gap:1rem;flex-wrap:wrap} .jsw-page--exterior-painting .hero-panel{background:var(--forest);color:var(--white);padding:2rem;border:1px solid rgba(255,255,255,.12);margin-bottom:4rem;position:relative} .jsw-page--exterior-painting .hero-panel::before{content:"";position:absolute;inset:12px;border:1px solid rgba(212,180,122,.25);pointer-events:none} .jsw-page--exterior-painting .hero-panel strong{font-family:var(--serif);font-size:2rem;font-weight:300;display:block;line-height:1.05;margin-bottom:.8rem;color:var(--white)} .jsw-page--exterior-painting .hero-panel p{color:rgba(255,255,255,.68);font-size:.9rem;font-weight:300;margin-bottom:1.3rem} .jsw-page--exterior-painting .hero-panel ul{list-style:none;display:grid;gap:.55rem;position:relative;z-index:1} .jsw-page--exterior-painting .hero-panel li{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.78);border-top:1px solid rgba(255,255,255,.12);padding-top:.55rem;font-weight:700} .jsw-page--exterior-painting .hero-strip{max-width:1240px;margin:0 auto;width:100%;display:grid;grid-template-columns:1.15fr .85fr;gap:1.5px;background:var(--border);border:1px solid var(--border);height:360px;transform:translateY(4rem);box-shadow:0 26px 70px rgba(28,28,25,.12)} .jsw-page--exterior-painting .image-label{position:absolute;left:1rem;bottom:1rem;background:rgba(250,248,244,.92);padding:.55rem .75rem;color:var(--ink-soft);font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700} .jsw-page--exterior-painting .surface-map{padding-top:12rem;background:var(--cream)} .jsw-page--exterior-painting .surface-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.72fr 1.28fr;gap:4rem;align-items:start} .jsw-page--exterior-painting .section-kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--exterior-painting .surface-intro{position:sticky;top:110px} .jsw-page--exterior-painting .surface-intro h2,.jsw-page--exterior-painting .weather-copy h2,.jsw-page--exterior-painting .quote-copy h2,.jsw-page--exterior-painting .gallery-copy h2{font-family:var(--serif);font-size:clamp(2.1rem,4vw,3.85rem);font-weight:300;line-height:1.05;letter-spacing:-.02em;color:var(--ink);margin-bottom:1rem} .jsw-page--exterior-painting .surface-intro p,.jsw-page--exterior-painting .weather-copy p,.jsw-page--exterior-painting .quote-copy p,.jsw-page--exterior-painting .gallery-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--exterior-painting .surface-lanes{display:grid;gap:1rem} .jsw-page--exterior-painting .surface-lane{display:grid;grid-template-columns:86px 1fr auto;gap:1.2rem;align-items:center;background:var(--white);border:1px solid var(--border);padding:1.15rem;min-height:120px} .jsw-page--exterior-painting .lane-num{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:1;text-align:center;border-right:1px solid var(--border);height:100%;display:flex;align-items:center;justify-content:center} .jsw-page--exterior-painting .surface-lane h3{font-family:var(--serif);font-size:1.45rem;font-weight:400;line-height:1.1;color:var(--ink);margin-bottom:.25rem} .jsw-page--exterior-painting .surface-lane p{font-size:.88rem;color:var(--ink-muted);font-weight:300;max-width:520px} .jsw-page--exterior-painting .surface-lane a{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;text-decoration:none;white-space:nowrap} .jsw-page--exterior-painting .weather-section{background:var(--forest);color:var(--white);padding:0} .jsw-page--exterior-painting .weather-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:650px} .jsw-page--exterior-painting .weather-media{position:relative;overflow:hidden} .jsw-page--exterior-painting .weather-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)} .jsw-page--exterior-painting .weather-note{position:absolute;left:2rem;bottom:2rem;right:2rem;background:rgba(30,48,40,.86);border:1px solid rgba(255,255,255,.14);padding:1.4rem;color:rgba(255,255,255,.82)} .jsw-page--exterior-painting .weather-note strong{font-family:var(--serif);font-size:1.7rem;font-weight:300;color:var(--white);display:block;margin-bottom:.4rem} .jsw-page--exterior-painting .weather-copy{padding:6rem 5vw;display:flex;flex-direction:column;justify-content:center} .jsw-page--exterior-painting .weather-copy h2{color:var(--white)} .jsw-page--exterior-painting .weather-copy p{color:rgba(255,255,255,.68);max-width:560px} .jsw-page--exterior-painting .weather-steps{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);margin-top:2.4rem;border:1px solid rgba(255,255,255,.14)} .jsw-page--exterior-painting .weather-step{background:rgba(255,255,255,.055);padding:1.35rem} .jsw-page--exterior-painting .weather-step span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--exterior-painting .weather-step h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--white);margin:.45rem 0} .jsw-page--exterior-painting .weather-step p{font-size:.84rem;color:rgba(255,255,255,.6)} .jsw-page--exterior-painting .detail-section{background:var(--cream-dark)} .jsw-page--exterior-painting .detail-head{max-width:860px;margin:0 auto 3rem;text-align:center} .jsw-page--exterior-painting .detail-head h2{font-family:var(--serif);font-size:clamp(2.1rem,4vw,3.75rem);font-weight:300;line-height:1.06;color:var(--ink);margin-bottom:1rem} .jsw-page--exterior-painting .detail-head p{color:var(--ink-muted);font-weight:300} .jsw-page--exterior-painting .detail-board{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:1rem;align-items:stretch} .jsw-page--exterior-painting .detail-column{display:grid;gap:1rem} .jsw-page--exterior-painting .detail-card{background:var(--white);border:1px solid var(--border);padding:1.6rem;min-height:185px;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--exterior-painting .detail-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink);margin-bottom:.55rem} .jsw-page--exterior-painting .detail-card p{font-size:.88rem;color:var(--ink-muted);font-weight:300} .jsw-page--exterior-painting .detail-image{position:relative;min-height:520px;overflow:hidden;border:1px solid var(--border)} .jsw-page--exterior-painting .detail-image img{width:100%;height:100%;object-fit:cover} .jsw-page--exterior-painting .detail-image-caption{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;background:rgba(250,248,244,.92);padding:1rem;color:var(--ink-muted);font-size:.85rem} .jsw-page--exterior-painting .gallery-section{background:var(--cream)} .jsw-page--exterior-painting .gallery-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:3rem;align-items:center} .jsw-page--exterior-painting .gallery-copy{padding:2rem 0} .jsw-page--exterior-painting .gallery-copy .mini-list{display:grid;gap:.75rem;margin:1.8rem 0} .jsw-page--exterior-painting .gallery-copy .mini-list span{display:block;border-top:1px solid var(--border);padding-top:.75rem;color:var(--ink-soft);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700} .jsw-page--exterior-painting .project-carousel{position:relative;overflow:hidden;background:var(--forest);min-height:580px;border:1px solid var(--border)} .jsw-page--exterior-painting .project-track{display:flex;height:580px;transition:transform .66s cubic-bezier(.22,.61,.36,1)} .jsw-page--exterior-painting .project-slide{min-width:100%;position:relative;background:var(--forest)} .jsw-page--exterior-painting .project-slide img{width:100%;height:100%;object-fit:cover;opacity:.9} .jsw-page--exterior-painting .project-caption{position:absolute;left:1.4rem;right:1.4rem;bottom:1.4rem;background:rgba(250,248,244,.93);padding:1rem;border-left:3px solid var(--gold)} .jsw-page--exterior-painting .project-caption strong{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:.25rem} .jsw-page--exterior-painting .project-caption span{font-size:.78rem;color:var(--ink-muted)} .jsw-page--exterior-painting .carousel-controls{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:2} .jsw-page--exterior-painting .carousel-controls button{width:38px;height:38px;border:1px solid rgba(255,255,255,.45);background:rgba(30,48,40,.78);color:var(--white);font-size:1rem;cursor:pointer} .jsw-page--exterior-painting .quote-section{background:var(--white)} .jsw-page--exterior-painting .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--exterior-painting .quote-copy{background:var(--cream);padding:3.2rem} .jsw-page--exterior-painting .quote-points{display:grid;gap:1rem;margin-top:2rem} .jsw-page--exterior-painting .quote-point{display:grid;grid-template-columns:36px 1fr;gap:.9rem;align-items:start} .jsw-page--exterior-painting .quote-point span{width:36px;height:36px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--serif);font-size:1.2rem} .jsw-page--exterior-painting .quote-point p{font-size:.86rem} .jsw-page--exterior-painting .quote-form{background:var(--forest);padding:3.2rem;color:var(--white)} .jsw-page--exterior-painting .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--white);line-height:1.05;margin-bottom:.8rem} .jsw-page--exterior-painting .quote-form p{color:rgba(255,255,255,.66);font-weight:300;margin-bottom:1.5rem} .jsw-page--exterior-painting .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--exterior-painting .form-field{display:flex;flex-direction:column;gap:.4rem} .jsw-page--exterior-painting .form-field.full{grid-column:1/-1} .jsw-page--exterior-painting label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--exterior-painting input,.jsw-page--exterior-painting select,.jsw-page--exterior-painting textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--exterior-painting textarea{min-height:112px;resize:vertical} .jsw-page--exterior-painting input::placeholder,.jsw-page--exterior-painting textarea::placeholder{color:rgba(255,255,255,.45)} .jsw-page--exterior-painting select option{color:var(--ink)} .jsw-page--exterior-painting .form-note{font-size:.78rem;color:rgba(255,255,255,.56);margin:1rem 0 1.4rem} @media(max-width:980px){ .jsw-page--exterior-painting .hero-frame,.jsw-page--exterior-painting .hero-strip,.jsw-page--exterior-painting .surface-wrap,.jsw-page--exterior-painting .weather-wrap,.jsw-page--exterior-painting .detail-board,.jsw-page--exterior-painting .gallery-shell,.jsw-page--exterior-painting .quote-wrap{grid-template-columns:1fr} .jsw-page--exterior-painting .hero-panel{margin-bottom:0} .jsw-page--exterior-painting .hero-strip{height:auto;transform:translateY(2rem)} .jsw-page--exterior-painting .surface-map{padding-top:7rem} .jsw-page--exterior-painting .surface-intro{position:static} .jsw-page--exterior-painting .weather-wrap{min-height:auto} .jsw-page--exterior-painting .weather-media{min-height:440px} .jsw-page--exterior-painting .detail-image{min-height:420px} } @media(max-width:640px){ .jsw-page--exterior-painting section{padding:4.5rem 5vw} .jsw-page--exterior-painting .hero-exterior{padding-top:7rem} .jsw-page--exterior-painting .hero-copy{padding-bottom:2rem} .jsw-page--exterior-painting .hero-strip{margin:0 -5vw;width:auto} .jsw-page--exterior-painting .weather-steps,.jsw-page--exterior-painting .form-grid{grid-template-columns:1fr} .jsw-page--exterior-painting .surface-lane{grid-template-columns:1fr;gap:.6rem} .jsw-page--exterior-painting .lane-num{justify-content:flex-start;border-right:0;border-bottom:1px solid var(--border);padding-bottom:.6rem} .jsw-page--exterior-painting .project-carousel,.jsw-page--exterior-painting .project-track{height:470px;min-height:470px} .jsw-page--exterior-painting .quote-copy,.jsw-page--exterior-painting .quote-form{padding:2rem} } .jsw-page--exterior-painting .hero-duo-slide{ position:absolute; inset:0; opacity:1; margin:0; overflow:hidden; background:var(--forest); } .jsw-page--exterior-painting .hero-duo-slide-1{animation-delay:0s} @media(max-width:980px){ } @media(max-width:640px){ } @media(max-width:980px){ } @media(max-width:640px){ } .jsw-page--exterior-painting .hero-strip.hero-duo-carousel{display:block;position:relative;height:420px;overflow:hidden;background:var(--forest);} .jsw-page--exterior-painting .hero-duo-slide:only-child{position:absolute;inset:0;opacity:1;margin:0;overflow:hidden;background:var(--forest);animation:none;} .jsw-page--exterior-painting .hero-duo-slide img{width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.02);} .jsw-page--exterior-painting .hero-duo-slide .image-label{z-index:2;} .jsw-page--exterior-painting .hero-panel.hero-panel-bg{background-size:cover;background-position:center center;background-repeat:no-repeat;overflow:hidden;isolation:isolate;} .jsw-page--exterior-painting .hero-panel.hero-panel-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,48,40,.12),rgba(30,48,40,.34));z-index:0;pointer-events:none;} .jsw-page--exterior-painting .hero-panel.hero-panel-bg::before{z-index:1;} .jsw-page--exterior-painting .hero-panel.hero-panel-bg > *{position:relative;z-index:2;} @media(max-width:980px){.jsw-page--exterior-painting .hero-strip.hero-duo-carousel{height:420px;transform:translateY(2rem);}} @media(max-width:640px){.jsw-page--exterior-painting .hero-strip.hero-duo-carousel{height:390px;}} /* JSW interactive quality layer */ .jsw-page--exterior-painting{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--exterior-painting,.jsw-page--exterior-painting *{box-sizing:border-box} .jsw-page--exterior-painting img,.jsw-page--exterior-painting video,.jsw-page--exterior-painting canvas,.jsw-page--exterior-painting svg{max-width:100%;height:auto} .jsw-page--exterior-painting button,.jsw-page--exterior-painting [role="button"],.jsw-page--exterior-painting input[type="range"]{touch-action:manipulation} .jsw-page--exterior-painting button,.jsw-page--exterior-painting [role="button"],.jsw-page--exterior-painting a,.jsw-page--exterior-painting input,.jsw-page--exterior-painting select,.jsw-page--exterior-painting textarea{-webkit-tap-highlight-color:transparent} .jsw-page--exterior-painting button:not(:disabled),.jsw-page--exterior-painting [role="button"]:not([aria-disabled="true"]),.jsw-page--exterior-painting input[type="range"]{cursor:pointer} .jsw-page--exterior-painting button:disabled,.jsw-page--exterior-painting [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--exterior-painting [hidden]{display:none!important} .jsw-page--exterior-painting [aria-busy="true"]{cursor:progress}.jsw-page--exterior-painting :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--exterior-painting :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--exterior-painting :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--exterior-painting .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--exterior-painting :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--exterior-painting :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--exterior-painting :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--exterior-painting :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--exterior-painting,.jsw-page--exterior-painting *{scroll-behavior:auto!important} .jsw-page--exterior-painting *,.jsw-page--exterior-painting *::before,.jsw-page--exterior-painting *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Flooring Installation ===== */ .jsw-page--flooring-installation, .jsw-page--flooring-installation *{margin:0;padding:0;box-sizing:border-box} .jsw-page--flooring-installation{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--flooring-installation{scroll-behavior:smooth}.jsw-page--flooring-installation{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72}.jsw-page--flooring-installation img{display:block;max-width:100%}.jsw-page--flooring-installation a{color:inherit} .jsw-page--flooring-installation section{padding:7rem 5vw}.jsw-page--flooring-installation .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem}.jsw-page--flooring-installation .kicker.light{color:var(--gold-light)}.jsw-page--flooring-installation h1,.jsw-page--flooring-installation h2,.jsw-page--flooring-installation h3{font-family:var(--serif);font-weight:300;line-height:1.05}.jsw-page--flooring-installation h1{font-size:clamp(3.2rem,6vw,6.55rem);letter-spacing:-.035em}.jsw-page--flooring-installation h2{font-size:clamp(2.2rem,4vw,4rem);letter-spacing:-.02em}.jsw-page--flooring-installation p{color:var(--ink-muted);font-weight:300}.jsw-page--flooring-installation .btn-primary,.jsw-page--flooring-installation .btn-light,.jsw-page--flooring-installation .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease}.jsw-page--flooring-installation .btn-primary{background:var(--forest);color:var(--white)}.jsw-page--flooring-installation .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)}.jsw-page--flooring-installation .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)}.jsw-page--flooring-installation .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent}.jsw-page--flooring-installation .btn-light:hover,.jsw-page--flooring-installation .btn-line:hover{border-color:var(--gold);color:var(--gold)} .jsw-page--flooring-installation .floor-hero{padding:9rem 5vw 5rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));min-height:100vh;display:grid;align-items:center}.jsw-page--flooring-installation .hero-lab{max-width:1240px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:2rem;align-items:stretch}.jsw-page--flooring-installation .hero-copy{background:var(--forest);color:var(--white);padding:3.2rem;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;position:relative;overflow:hidden}.jsw-page--flooring-installation .hero-copy:after{content:"";position:absolute;right:-120px;top:-120px;width:300px;height:300px;border-radius:50%;border:1px solid rgba(212,180,122,.22)}.jsw-page--flooring-installation .hero-copy h1{color:var(--white);margin:1rem 0}.jsw-page--flooring-installation .hero-copy h1 em{font-style:italic;color:var(--gold-light)}.jsw-page--flooring-installation .hero-copy p{color:rgba(255,255,255,.7);max-width:600px}.jsw-page--flooring-installation .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem;position:relative;z-index:1}.jsw-page--flooring-installation .room-switcher{background:var(--white);border:1px solid var(--border);display:grid;grid-template-rows:auto 1fr auto;min-height:650px}.jsw-page--flooring-installation .switch-top{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.4rem;border-bottom:1px solid var(--border)}.jsw-page--flooring-installation .switch-top strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink)}.jsw-page--flooring-installation .switch-top span{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:700}.jsw-page--flooring-installation .room-preview{position:relative;overflow:hidden;background:var(--forest);min-height:470px}.jsw-page--flooring-installation .room-preview img{width:100%;height:100%;object-fit:cover;opacity:.92}.jsw-page--flooring-installation .preview-copy{position:absolute;left:1.25rem;bottom:1.25rem;right:1.25rem;background:rgba(250,248,244,.93);padding:1.2rem;border-left:3px solid var(--gold)}.jsw-page--flooring-installation .preview-copy strong{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:400;color:var(--ink);line-height:1.05;margin-bottom:.35rem}.jsw-page--flooring-installation .preview-copy span{font-size:.84rem;color:var(--ink-muted)}.jsw-page--flooring-installation .switch-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border)}.jsw-page--flooring-installation .switch-buttons button{border:0;background:var(--cream);padding:1rem .5rem;cursor:pointer;color:var(--ink-soft);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.jsw-page--flooring-installation .switch-buttons button.active{background:var(--forest);color:var(--white)} .jsw-page--flooring-installation .material-section{background:var(--cream)}.jsw-page--flooring-installation .material-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.76fr 1.24fr;gap:3rem;align-items:start}.jsw-page--flooring-installation .material-intro{position:sticky;top:110px;background:var(--white);border:1px solid var(--border);padding:2.4rem}.jsw-page--flooring-installation .material-intro p{margin-top:1rem}.jsw-page--flooring-installation .material-lab{display:grid;grid-template-columns:220px 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}.jsw-page--flooring-installation .material-tabs{display:grid;background:var(--cream)}.jsw-page--flooring-installation .material-tabs button{border:0;border-bottom:1px solid var(--border);background:var(--cream);padding:1.1rem;text-align:left;cursor:pointer;font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--ink-soft)}.jsw-page--flooring-installation .material-tabs button.active{background:var(--forest);color:var(--white)}.jsw-page--flooring-installation .material-panel{background:var(--white);display:grid;grid-template-columns:.82fr 1.18fr;min-height:520px}.jsw-page--flooring-installation .material-img{overflow:hidden;background:var(--forest)}.jsw-page--flooring-installation .material-img img{width:100%;height:100%;object-fit:cover}.jsw-page--flooring-installation .material-copy{padding:2.3rem;display:flex;flex-direction:column;justify-content:center}.jsw-page--flooring-installation .material-copy span{font-family:var(--serif);font-size:3rem;line-height:1;color:var(--gold)}.jsw-page--flooring-installation .material-copy h3{font-size:2.1rem;margin:.75rem 0 .6rem}.jsw-page--flooring-installation .material-copy p{margin-bottom:1.5rem}.jsw-page--flooring-installation .material-points{display:grid;gap:.55rem;list-style:none}.jsw-page--flooring-installation .material-points li{border-top:1px solid var(--border);padding-top:.55rem;font-size:.82rem;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.08em} .jsw-page--flooring-installation .performance-section{background:var(--forest);color:var(--white);padding:7rem 5vw}.jsw-page--flooring-installation .project-section{background:var(--cream)}.jsw-page--flooring-installation .project-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:3rem;align-items:center}.jsw-page--flooring-installation .project-copy p{margin:1rem 0 1.4rem}.jsw-page--flooring-installation .project-carousel{position:relative;overflow:hidden;background:var(--forest);height:560px;border:1px solid var(--border)}.jsw-page--flooring-installation .project-track{height:100%;display:flex;transition:transform .66s cubic-bezier(.22,.61,.36,1)}.jsw-page--flooring-installation .project-slide{min-width:100%;height:100%;position:relative}.jsw-page--flooring-installation .project-slide img{width:100%;height:100%;object-fit:cover}.jsw-page--flooring-installation .project-slide figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;background:rgba(250,248,244,.93);padding:1rem;border-left:3px solid var(--gold)}.jsw-page--flooring-installation .project-slide strong{font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--ink);display:block}.jsw-page--flooring-installation .project-slide span{font-size:.8rem;color:var(--ink-muted)}.jsw-page--flooring-installation .carousel-controls{position:absolute;right:1rem;top:1rem;display:flex;gap:.5rem;z-index:2}.jsw-page--flooring-installation .carousel-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.45);background:rgba(30,48,40,.78);color:var(--white);cursor:pointer} .jsw-page--flooring-installation .quote-section{background:var(--white)}.jsw-page--flooring-installation .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)}.jsw-page--flooring-installation .quote-copy{background:var(--cream);padding:3rem}.jsw-page--flooring-installation .quote-copy p{margin:1rem 0 1.4rem}.jsw-page--flooring-installation .readiness-list{display:grid;gap:.7rem;margin-top:1.5rem}.jsw-page--flooring-installation .ready-item{display:flex;align-items:center;gap:.7rem;color:var(--ink-soft);font-size:.86rem}.jsw-page--flooring-installation .ready-item input{accent-color:var(--gold)}.jsw-page--flooring-installation .quote-form{background:var(--forest);padding:3rem;color:var(--white)}.jsw-page--flooring-installation .quote-form h3{font-size:2.2rem;color:var(--white);margin-bottom:.8rem}.jsw-page--flooring-installation .quote-form p{color:rgba(255,255,255,.66);margin-bottom:1.4rem}.jsw-page--flooring-installation .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.jsw-page--flooring-installation .form-field{display:flex;flex-direction:column;gap:.4rem}.jsw-page--flooring-installation .form-field.full{grid-column:1/-1}.jsw-page--flooring-installation label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700}.jsw-page--flooring-installation input,.jsw-page--flooring-installation select,.jsw-page--flooring-installation textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none}.jsw-page--flooring-installation textarea{min-height:112px;resize:vertical}.jsw-page--flooring-installation select option{color:var(--ink)}.jsw-page--flooring-installation input::placeholder,.jsw-page--flooring-installation textarea::placeholder{color:rgba(255,255,255,.45)}.jsw-page--flooring-installation .form-note{font-size:.78rem;color:rgba(255,255,255,.56);margin:1rem 0 1.4rem} @media(max-width:980px){.jsw-page--flooring-installation .hero-lab,.jsw-page--flooring-installation .material-shell,.jsw-page--flooring-installation .material-lab,.jsw-page--flooring-installation .material-panel,.jsw-page--flooring-installation .project-shell,.jsw-page--flooring-installation .quote-wrap{grid-template-columns:1fr}.jsw-page--flooring-installation .material-intro{position:static}} @media(max-width:640px){.jsw-page--flooring-installation section{padding:4.5rem 5vw}.jsw-page--flooring-installation .floor-hero{padding-top:7rem}.jsw-page--flooring-installation .hero-copy,.jsw-page--flooring-installation .quote-copy,.jsw-page--flooring-installation .quote-form{padding:2rem}.jsw-page--flooring-installation .switch-buttons,.jsw-page--flooring-installation .form-grid{grid-template-columns:1fr}.jsw-page--flooring-installation .project-carousel{height:450px}} @media(max-width:980px){} @media(max-width:640px){} .jsw-page--flooring-installation .room-match-section{background:var(--forest);color:var(--white);padding:7rem 5vw}.jsw-page--flooring-installation .room-match-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:3rem;align-items:start}.jsw-page--flooring-installation .room-match-copy h2{color:var(--white)}.jsw-page--flooring-installation .room-match-copy p{color:rgba(255,255,255,.7);margin:1rem 0}.jsw-page--flooring-installation .room-match-result{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:1.25rem;margin-top:1.4rem}.jsw-page--flooring-installation .room-match-result strong{font-family:var(--serif);font-size:1.6rem;font-weight:400;color:var(--white);display:block;line-height:1.12;margin-bottom:.45rem}.jsw-page--flooring-installation .room-match-result span{font-size:.9rem;margin:0;color:rgba(255,255,255,.68)}.jsw-page--flooring-installation .room-match-tool{display:grid;grid-template-columns:.95fr 1.05fr;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);min-height:540px}.jsw-page--flooring-installation .room-card-deck{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14)}.jsw-page--flooring-installation .room-card{border:0;background:rgba(255,255,255,.055);color:rgba(255,255,255,.76);padding:1.2rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:background .25s ease,transform .25s ease}.jsw-page--flooring-installation .room-card:hover,.jsw-page--flooring-installation .room-card.active{background:var(--gold);color:var(--ink);transform:translateY(-2px)}.jsw-page--flooring-installation .room-card span{font-family:var(--serif);font-size:2.2rem;line-height:1}.jsw-page--flooring-installation .room-card strong{font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.1;margin:.7rem 0 .35rem}.jsw-page--flooring-installation .room-card small{font-size:.78rem;line-height:1.5}.jsw-page--flooring-installation .room-match-visual{position:relative;overflow:hidden;display:flex}.jsw-page--flooring-installation .room-match-label strong{display:block;font-family:var(--serif);font-size:1.55rem;font-weight:400;line-height:1.1;color:var(--ink);margin-bottom:.35rem}.jsw-page--flooring-installation .room-match-label span{display:block;color:var(--ink-muted);font-size:.88rem;line-height:1.65} @media(max-width:980px){.jsw-page--flooring-installation .room-match-wrap{grid-template-columns:1fr}.jsw-page--flooring-installation .room-match-tool{grid-template-columns:1fr}} @media(max-width:640px){.jsw-page--flooring-installation .room-card-deck{grid-template-columns:1fr}} @media(max-width:640px){ } .jsw-page--flooring-installation .room-preview img,.jsw-page--flooring-installation .material-img img{ transition:opacity .32s ease,transform .55s cubic-bezier(.22,.61,.36,1); } .jsw-page--flooring-installation .room-preview img.is-changing,.jsw-page--flooring-installation .material-img img.is-changing{ opacity:.2; } .jsw-page--flooring-installation .switch-buttons button,.jsw-page--flooring-installation .material-tabs button{ position:relative; } .jsw-page--flooring-installation .switch-buttons button:focus-visible,.jsw-page--flooring-installation .material-tabs button:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; } .jsw-page--flooring-installation .material-panel .material-img::after,.jsw-page--flooring-installation .room-preview::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 55%,rgba(30,48,40,.16)); opacity:.75; } .jsw-page--flooring-installation .material-img{position:relative} /* JSW flooring page photo updates */ .jsw-page--flooring-installation .room-match-visual{ align-items:stretch;justify-content:stretch;min-height:540px;background:var(--forest); } .jsw-page--flooring-installation .room-match-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92;transition:opacity .32s ease,transform .55s cubic-bezier(.22,.61,.36,1);} .jsw-page--flooring-installation .room-match-photo.is-changing{opacity:.28;} .jsw-page--flooring-installation .room-match-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,48,40,.08),rgba(30,48,40,.35));pointer-events:none;} .jsw-page--flooring-installation .room-match-label{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;z-index:2;background:rgba(250,248,244,.93);border-left:3px solid var(--gold);padding:1.2rem;max-width:none;} @media(max-width:640px){.jsw-page--flooring-installation .room-match-visual{min-height:360px}} /* Final flooring image placement and embedded-photo alignment */ .jsw-page--flooring-installation .room-preview img,.jsw-page--flooring-installation .material-img img,.jsw-page--flooring-installation .room-match-photo,.jsw-page--flooring-installation .project-slide img{ width:100%; height:100%; object-fit:cover; } .jsw-page--flooring-installation .room-preview img{object-position:50% 52%;} .jsw-page--flooring-installation .room-match-photo{object-position:50% 55%;} .jsw-page--flooring-installation .project-slide img.project-photo-hallway{object-position:50% 54%;} .jsw-page--flooring-installation .project-slide img.project-photo-stairs{object-position:40% 52%;} .jsw-page--flooring-installation .project-slide img.project-photo-comfort{object-position:50% 52%;} .jsw-page--flooring-installation .room-match-visual.quiet .room-match-photo{object-position:50% 54%;} .jsw-page--flooring-installation .room-preview,.jsw-page--flooring-installation .material-img,.jsw-page--flooring-installation .room-match-visual,.jsw-page--flooring-installation .project-slide{overflow:hidden;} /* JSW Flooring v6 specific image refinements */ .jsw-page--flooring-installation .material-img img{object-position:50% 50%;} .jsw-page--flooring-installation .room-match-visual.busy .room-match-photo{object-position:50% 55%;} .jsw-page--flooring-installation .room-match-visual.moisture .room-match-photo{object-position:50% 56%;} /* JSW Flooring v7 stair image refinements */ .jsw-page--flooring-installation .room-match-visual.stairs .room-match-photo{ object-position:58% 50%; transform:scale(1.03); } .jsw-page--flooring-installation .switch-buttons button[data-room-index="1"].active ~ .room-preview img{ object-position:36% 52%; } /* JSW Flooring v8 hallway image refinement */ .jsw-page--flooring-installation .room-preview img#roomImage{object-position:50% 55%;} /* JSW Flooring v9 hallway-flow image update */ .jsw-page--flooring-installation #roomImage,.jsw-page--flooring-installation .project-slide img.project-photo-hallway{ object-position:46% 52%; } /* JSW interactive quality layer */ .jsw-page--flooring-installation{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--flooring-installation,.jsw-page--flooring-installation *{box-sizing:border-box} .jsw-page--flooring-installation img,.jsw-page--flooring-installation video,.jsw-page--flooring-installation canvas,.jsw-page--flooring-installation svg{max-width:100%;height:auto} .jsw-page--flooring-installation button,.jsw-page--flooring-installation [role="button"],.jsw-page--flooring-installation input[type="range"]{touch-action:manipulation} .jsw-page--flooring-installation button,.jsw-page--flooring-installation [role="button"],.jsw-page--flooring-installation a,.jsw-page--flooring-installation input,.jsw-page--flooring-installation select,.jsw-page--flooring-installation textarea{-webkit-tap-highlight-color:transparent} .jsw-page--flooring-installation button:not(:disabled),.jsw-page--flooring-installation [role="button"]:not([aria-disabled="true"]),.jsw-page--flooring-installation input[type="range"]{cursor:pointer} .jsw-page--flooring-installation button:disabled,.jsw-page--flooring-installation [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--flooring-installation [hidden]{display:none!important} .jsw-page--flooring-installation [aria-busy="true"]{cursor:progress}.jsw-page--flooring-installation :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--flooring-installation :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--flooring-installation :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--flooring-installation .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--flooring-installation :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--flooring-installation :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--flooring-installation :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--flooring-installation :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--flooring-installation,.jsw-page--flooring-installation *{scroll-behavior:auto!important} .jsw-page--flooring-installation *,.jsw-page--flooring-installation *::before,.jsw-page--flooring-installation *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Home Improvement Services ===== */ .jsw-page--home-improvement-services, .jsw-page--home-improvement-services *{margin:0;padding:0;box-sizing:border-box} .jsw-page--home-improvement-services{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--home-improvement-services{scroll-behavior:smooth} .jsw-page--home-improvement-services{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7} .jsw-page--home-improvement-services img{display:block;max-width:100%} .jsw-page--home-improvement-services a{color:inherit} .jsw-page--home-improvement-services .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.75rem;margin-bottom:1rem} .jsw-page--home-improvement-services .eyebrow::before{content:"";width:30px;height:1px;background:var(--gold);display:block} .jsw-page--home-improvement-services h1,.jsw-page--home-improvement-services h2,.jsw-page--home-improvement-services h3{font-family:var(--serif);font-weight:300;line-height:1.08;color:var(--ink)} .jsw-page--home-improvement-services h1{font-size:clamp(3.2rem,6.6vw,6.85rem);letter-spacing:-.04em} .jsw-page--home-improvement-services h2{font-size:clamp(2.25rem,4.1vw,4.3rem);letter-spacing:-.032em} .jsw-page--home-improvement-services h3{font-size:clamp(1.45rem,2.4vw,2.35rem)} .jsw-page--home-improvement-services p{color:var(--ink-muted);font-weight:300} .jsw-page--home-improvement-services .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;text-decoration:none;border-radius:2px;padding:.92rem 1.55rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;border:1px solid transparent} .jsw-page--home-improvement-services .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--home-improvement-services .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--home-improvement-services .btn-light{background:var(--white);border-color:var(--border);color:var(--forest)} .jsw-page--home-improvement-services .btn-light:hover{border-color:var(--gold);color:var(--gold)} .jsw-page--home-improvement-services .btn-text{text-decoration:none;color:var(--gold);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em} .jsw-page--home-improvement-services .btn-text:hover{color:var(--forest)} .jsw-page--home-improvement-services .hero-improve{padding:118px 5vw 5.5rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));position:relative;overflow:hidden} .jsw-page--home-improvement-services .hero-improve::before{content:"";position:absolute;right:-20vw;top:5rem;width:48vw;height:48vw;border-radius:50%;background:rgba(184,151,90,.08);pointer-events:none} .jsw-page--home-improvement-services .hero-shell{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);gap:3.8rem;align-items:end} .jsw-page--home-improvement-services .hero-copy{padding:3rem 0 1rem} .jsw-page--home-improvement-services .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--home-improvement-services .hero-sub{max-width:690px;font-size:1.05rem;line-height:1.86;margin:1.45rem 0 2rem} .jsw-page--home-improvement-services .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center} .jsw-page--home-improvement-services .hero-design-card{background:var(--forest);color:var(--white);border:1px solid rgba(255,255,255,.12);padding:1rem;position:relative;box-shadow:0 28px 70px rgba(30,48,40,.18)} .jsw-page--home-improvement-services .surface-window{min-height:460px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;background:var(--cream);overflow:hidden} .jsw-page--home-improvement-services .surface-scene{position:relative;min-height:360px;background:url("/hubfs/jsw-site/media/home-improvements-surface-scene.webp");background-size:cover;background-position:center;} .jsw-page--home-improvement-services .surface-note{position:absolute;left:1.15rem;bottom:1.15rem;right:1.15rem;background:rgba(250,248,244,.92);padding:1rem;color:var(--ink);border-left:3px solid var(--gold)} .jsw-page--home-improvement-services .surface-note strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;display:block;line-height:1.1} .jsw-page--home-improvement-services .surface-note span{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;margin-top:.3rem} .jsw-page--home-improvement-services .hero-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16)} .jsw-page--home-improvement-services .hero-mini-grid a{background:rgba(255,255,255,.06);color:rgba(255,255,255,.78);text-decoration:none;padding:1rem .9rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;text-align:center} .jsw-page--home-improvement-services .hero-mini-grid a:hover{background:var(--gold);color:var(--ink)} .jsw-page--home-improvement-services .intent-band{background:var(--forest);color:var(--white);padding:2rem 5vw} .jsw-page--home-improvement-services .intent-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)} .jsw-page--home-improvement-services .intent-cell{background:rgba(255,255,255,.055);padding:1.6rem} .jsw-page--home-improvement-services .intent-cell strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--white);display:block;margin-bottom:.4rem} .jsw-page--home-improvement-services .intent-cell p{color:rgba(255,255,255,.68);font-size:.9rem;line-height:1.7} .jsw-page--home-improvement-services .service-map{background:var(--cream);padding:7rem 5vw} .jsw-page--home-improvement-services .map-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:end;margin-bottom:3.25rem} .jsw-page--home-improvement-services .map-head p{max-width:580px;line-height:1.85} .jsw-page--home-improvement-services .map-cards{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:1.25rem;align-items:stretch} .jsw-page--home-improvement-services .map-card{background:var(--white);border:1px solid var(--border);padding:2rem;min-height:330px;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--home-improvement-services .map-card:nth-child(2){background:var(--forest);color:var(--white);transform:translateY(-1.4rem)} .jsw-page--home-improvement-services .map-card:nth-child(2) p{color:rgba(255,255,255,.7)} .jsw-page--home-improvement-services .map-card:nth-child(2) h3{color:var(--white)} .jsw-page--home-improvement-services .map-num{font-family:var(--serif);font-size:3.8rem;color:var(--gold);line-height:1;margin-bottom:2rem} .jsw-page--home-improvement-services .map-card p{margin:.85rem 0 1.4rem;line-height:1.75} .jsw-page--home-improvement-services .wallpaper-section{background:var(--white);padding:0 5vw} .jsw-page--home-improvement-services .wallpaper-frame{display:grid;grid-template-columns:.88fr 1.12fr;min-height:680px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)} .jsw-page--home-improvement-services .paper-texture{position:relative;background:var(--cream-dark);overflow:hidden;display:flex;align-items:end;padding:2rem} .jsw-page--home-improvement-services .paper-texture::before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(184,151,90,.18),transparent 46%),url("/hubfs/jsw-site/media/home-improvements-paper-texture-before.webp");background-size:cover;background-position:center center} .jsw-page--home-improvement-services .paper-peel{position:absolute;right:-28px;top:-20px;width:56%;height:72%;background:var(--white);clip-path:polygon(18% 0,100% 0,100% 100%,0 82%);box-shadow:-20px 22px 65px rgba(28,28,25,.14)} .jsw-page--home-improvement-services .paper-caption{position:relative;background:rgba(250,248,244,.94);padding:1.35rem;border-left:3px solid var(--gold);max-width:360px} .jsw-page--home-improvement-services .paper-caption strong{font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--ink)} .jsw-page--home-improvement-services .wallpaper-copy{padding:5rem clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center} .jsw-page--home-improvement-services .wallpaper-copy p{font-size:1rem;line-height:1.88;margin:1.2rem 0 1.6rem} .jsw-page--home-improvement-services .detail-list{display:grid;gap:.75rem;margin:1.2rem 0 2rem} .jsw-page--home-improvement-services .detail-list li{list-style:none;border-bottom:1px solid var(--border);padding:.75rem 0;color:var(--ink-soft);font-size:.94rem} .jsw-page--home-improvement-services .detail-list li span{color:var(--gold);font-weight:700;margin-right:.55rem} .jsw-page--home-improvement-services .detail-list li{position:relative;padding:.75rem 0 .75rem 1.15rem} .jsw-page--home-improvement-services .detail-list li::before{content:"";position:absolute;left:0;top:1.15rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--gold)} .jsw-page--home-improvement-services .remodel-section{background:var(--cream-dark);padding:7rem 5vw} .jsw-page--home-improvement-services .remodel-shell{display:grid;grid-template-columns:1fr .7fr;gap:1.5rem;align-items:stretch} .jsw-page--home-improvement-services .remodel-feature{background:var(--forest);color:var(--white);padding:3rem;display:grid;grid-template-columns:.9fr 1.1fr;gap:2.5rem;align-items:center;min-height:540px} .jsw-page--home-improvement-services .remodel-feature h2,.jsw-page--home-improvement-services .remodel-feature h3{color:var(--white)} .jsw-page--home-improvement-services .remodel-feature p{color:rgba(255,255,255,.7);line-height:1.86} .jsw-page--home-improvement-services .remodel-steps{display:grid;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)} .jsw-page--home-improvement-services .remodel-step{background:rgba(255,255,255,.06);padding:1.25rem} .jsw-page--home-improvement-services .remodel-step strong{display:block;color:var(--gold-light);font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.35rem} .jsw-page--home-improvement-services .remodel-step span{color:rgba(255,255,255,.75);font-size:.92rem} .jsw-page--home-improvement-services .remodel-side{display:grid;gap:1.5rem} .jsw-page--home-improvement-services .remodel-stat{background:var(--white);padding:2rem;border:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between} .jsw-page--home-improvement-services .remodel-stat em{font-family:var(--serif);font-size:4.2rem;line-height:1;color:var(--gold);font-style:normal} .jsw-page--home-improvement-services .remodel-stat{justify-content:flex-start;gap:.55rem} .jsw-page--home-improvement-services .remodel-stat-kicker{color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase} .jsw-page--home-improvement-services .remodel-stat p{margin-top:1rem} .jsw-page--home-improvement-services .project-fit{background:var(--white);padding:7rem 5vw} .jsw-page--home-improvement-services .fit-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center} .jsw-page--home-improvement-services .fit-cards{display:grid;gap:1rem} .jsw-page--home-improvement-services .fit-card{border:1px solid var(--border);padding:1.35rem 1.5rem;background:var(--cream);display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start} .jsw-page--home-improvement-services .fit-card strong{font-family:var(--serif);font-size:1.25rem;color:var(--ink);font-weight:400} .jsw-page--home-improvement-services .fit-card span{width:32px;height:32px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:.8rem;font-weight:700} .jsw-page--home-improvement-services .fit-copy p{margin:1.2rem 0 1.8rem;line-height:1.86} .jsw-page--home-improvement-services .quote-section{background:#172820;color:var(--white);padding:7rem 5vw}.jsw-page--home-improvement-services .quote-section :is(h2,h3,strong,label){color:#fff}.jsw-page--home-improvement-services .quote-section p{color:rgba(255,255,255,.84)} .jsw-page--home-improvement-services .quote-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:3rem;align-items:start} .jsw-page--home-improvement-services .quote-section h2{color:var(--white)} .jsw-page--home-improvement-services .quote-section p{color:rgba(255,255,255,.72);line-height:1.85;margin:1.2rem 0 1.8rem} .jsw-page--home-improvement-services .quote-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:2rem} .jsw-page--home-improvement-services .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--home-improvement-services .form-grid .full{grid-column:1/-1} .jsw-page--home-improvement-services label{display:block;color:rgba(255,255,255,.74);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:.45rem} .jsw-page--home-improvement-services input,.jsw-page--home-improvement-services select,.jsw-page--home-improvement-services textarea{width:100%;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:var(--white);font-family:var(--sans);font-size:.95rem;outline:none} .jsw-page--home-improvement-services select option{color:var(--ink)} .jsw-page--home-improvement-services textarea{min-height:130px;resize:vertical} .jsw-page--home-improvement-services .form-note{font-size:.82rem;color:rgba(255,255,255,.58)!important;margin:.8rem 0 0!important} @media(max-width:980px){.jsw-page--home-improvement-services .hero-shell,.jsw-page--home-improvement-services .map-head,.jsw-page--home-improvement-services .wallpaper-frame,.jsw-page--home-improvement-services .remodel-shell,.jsw-page--home-improvement-services .remodel-feature,.jsw-page--home-improvement-services .fit-shell,.jsw-page--home-improvement-services .quote-grid{grid-template-columns:1fr}.jsw-page--home-improvement-services .map-cards{grid-template-columns:1fr}.jsw-page--home-improvement-services .map-card:nth-child(2){transform:none}.jsw-page--home-improvement-services .hero-design-card{max-width:620px}} @media(max-width:640px){.jsw-page--home-improvement-services section,.jsw-page--home-improvement-services .service-map,.jsw-page--home-improvement-services .remodel-section,.jsw-page--home-improvement-services .project-fit,.jsw-page--home-improvement-services .quote-section{padding:4.5rem 5vw}.jsw-page--home-improvement-services .hero-improve{padding:104px 5vw 4.5rem}.jsw-page--home-improvement-services .hero-copy{padding:1rem 0}.jsw-page--home-improvement-services .surface-window{min-height:auto}.jsw-page--home-improvement-services .surface-scene{min-height:300px}.jsw-page--home-improvement-services .hero-mini-grid,.jsw-page--home-improvement-services .intent-grid,.jsw-page--home-improvement-services .form-grid{grid-template-columns:1fr}.jsw-page--home-improvement-services .form-grid .full{grid-column:auto}} @media(max-width:980px){ } @media(max-width:640px){ } .jsw-page--home-improvement-services .tile-service-section,.jsw-page--home-improvement-services .carpentry-service-section{padding:7rem 5vw} .jsw-page--home-improvement-services .tile-service-section{background:var(--cream-dark)} .jsw-page--home-improvement-services .carpentry-service-section{background:var(--cream)} .jsw-page--home-improvement-services .service-interactive-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.84fr 1.16fr;gap:3rem;align-items:center} .jsw-page--home-improvement-services .service-interactive-copy p{line-height:1.85;margin:1rem 0 1.5rem} .jsw-page--home-improvement-services .service-interactive-list{display:grid;gap:.7rem;margin:1.4rem 0 1.7rem;list-style:none;padding:0} .jsw-page--home-improvement-services .service-interactive-list li{border-top:1px solid var(--border);padding-top:.7rem;color:var(--ink-soft);font-size:.9rem} .jsw-page--home-improvement-services .service-interactive-list li span{color:var(--gold);font-weight:700;margin-right:.5rem} .jsw-page--home-improvement-services .tile-tool,.jsw-page--home-improvement-services .carpentry-tool{background:var(--white);border:1px solid var(--border);box-shadow:0 20px 60px rgba(28,28,25,.08);overflow:hidden} .jsw-page--home-improvement-services .tool-media{height:390px;position:relative;background:var(--forest);overflow:hidden} .jsw-page--home-improvement-services .tool-media img{width:100%;height:100%;object-fit:cover;transition:opacity .32s ease,transform .55s cubic-bezier(.22,.61,.36,1)} .jsw-page--home-improvement-services .tool-media img.changing{opacity:.18} .jsw-page--home-improvement-services .tool-media:hover img{transform:scale(1.035)} .jsw-page--home-improvement-services .tool-label{position:absolute;left:1rem;bottom:1rem;right:1rem;background:rgba(250,248,244,.94);border-left:3px solid var(--gold);padding:1rem} .jsw-page--home-improvement-services .tool-label strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink);display:block;line-height:1.1} .jsw-page--home-improvement-services .tool-label span{font-size:.84rem;color:var(--ink-muted)} .jsw-page--home-improvement-services .tool-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border)} .jsw-page--home-improvement-services .tool-tabs button{border:0;background:var(--cream);padding:1rem .75rem;cursor:pointer;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--ink-soft);transition:background-color .22s ease,color .22s ease,border-color .22s ease} .jsw-page--home-improvement-services .tool-tabs button.active,.jsw-page--home-improvement-services .tool-tabs button:hover{background:var(--forest);color:var(--white)} .jsw-page--home-improvement-services .tile-detail-grid,.jsw-page--home-improvement-services .carpentry-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:1.5rem} .jsw-page--home-improvement-services .tile-detail-grid article,.jsw-page--home-improvement-services .carpentry-detail-grid article{background:var(--white);padding:1.25rem;min-height:165px} .jsw-page--home-improvement-services .tile-detail-grid strong,.jsw-page--home-improvement-services .carpentry-detail-grid strong{font-family:var(--serif);font-size:1.25rem;font-weight:400;color:var(--ink);display:block;line-height:1.1;margin-bottom:.45rem} .jsw-page--home-improvement-services .tile-detail-grid p,.jsw-page--home-improvement-services .carpentry-detail-grid p{font-size:.86rem;line-height:1.65} @media(max-width:980px){ .jsw-page--home-improvement-services .service-interactive-wrap{grid-template-columns:1fr} } @media(max-width:640px){ .jsw-page--home-improvement-services .tile-service-section,.jsw-page--home-improvement-services .carpentry-service-section{padding:4.5rem 5vw} .jsw-page--home-improvement-services .tool-tabs,.jsw-page--home-improvement-services .tile-detail-grid,.jsw-page--home-improvement-services .carpentry-detail-grid{grid-template-columns:1fr} .jsw-page--home-improvement-services .tool-media{height:300px} } .jsw-page--home-improvement-services .surface-scene{ background-blend-mode:normal!important; } .jsw-page--home-improvement-services .surface-scene::after{ display:none!important; } /* JSW interactive quality layer */ .jsw-page--home-improvement-services{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--home-improvement-services,.jsw-page--home-improvement-services *{box-sizing:border-box} .jsw-page--home-improvement-services img,.jsw-page--home-improvement-services video,.jsw-page--home-improvement-services canvas,.jsw-page--home-improvement-services svg{max-width:100%;height:auto} .jsw-page--home-improvement-services button,.jsw-page--home-improvement-services [role="button"],.jsw-page--home-improvement-services input[type="range"]{touch-action:manipulation} .jsw-page--home-improvement-services button,.jsw-page--home-improvement-services [role="button"],.jsw-page--home-improvement-services a,.jsw-page--home-improvement-services input,.jsw-page--home-improvement-services select,.jsw-page--home-improvement-services textarea{-webkit-tap-highlight-color:transparent} .jsw-page--home-improvement-services button:not(:disabled),.jsw-page--home-improvement-services [role="button"]:not([aria-disabled="true"]),.jsw-page--home-improvement-services input[type="range"]{cursor:pointer} .jsw-page--home-improvement-services button:disabled,.jsw-page--home-improvement-services [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--home-improvement-services [hidden]{display:none!important} .jsw-page--home-improvement-services [aria-busy="true"]{cursor:progress}.jsw-page--home-improvement-services :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--home-improvement-services :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--home-improvement-services :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--home-improvement-services .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--home-improvement-services :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--home-improvement-services :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--home-improvement-services :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--home-improvement-services :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--home-improvement-services,.jsw-page--home-improvement-services *{scroll-behavior:auto!important} .jsw-page--home-improvement-services *,.jsw-page--home-improvement-services *::before,.jsw-page--home-improvement-services *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Home Page ===== */ .jsw-page--home,.jsw-page--home *{margin:0;padding:0} .jsw-page--home{ --cream:#FAF8F4; --cream-dark:#F0EDE6; --cream-deep:#F0EDE6; --white:#FFFFFF; --ink:#1C1C19; --ink-soft:#3A3933; --ink-muted:#7A7869; --muted:#7A7869; --forest:#1E3028; --forest-mid:#2A4035; --forest-light:#385447; --gold:#B8975A; --gold-light:#D4B47A; --border:#E4E0D6; --shadow:0 24px 70px rgba(28,28,25,.1); --serif:"Cormorant Garamond",Georgia,serif; --sans:"DM Sans",Arial,sans-serif; --img-service-interior:url("/hubfs/jsw-site/media/gallery-interior-burgundy-room-finish.webp"); --img-service-exterior:url("/hubfs/jsw-site/media/gallery-exterior-covered-porch-trim.webp"); --img-service-cabinet:url("/hubfs/jsw-site/media/cabinet-painting-cabinet-station-shelving-detail.webp"); --img-service-staining:url("/hubfs/jsw-site/media/project-gallery-image-3b472ee5.webp"); --img-service-color:url("/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp"); --img-service-drywall:url("/hubfs/jsw-site/media/drywall-open-wall-drywall-installation-showing-new-board-placement-support-areas.webp"); --img-service-flooring:url("/hubfs/jsw-site/media/gallery-flooring-kitchen-transition.webp"); --img-service-tile:url("/hubfs/jsw-site/media/gallery-tile-hex-kitchen-backsplash.webp"); --img-service-wallpaper:url("/hubfs/jsw-site/media/gallery-wallpaper-herringbone-wainscot.webp"); --img-service-remodel:url("/hubfs/jsw-site/media/kitchen-bath-basement-studio-room-kitchen.webp"); --img-service-carpentry:url("/hubfs/jsw-site/media/project-gallery-image-72fccc17.webp"); --img-gallery-painting:url("/hubfs/jsw-site/media/project-gallery-image-fcc5e0d6.webp"); --img-gallery-exterior:url("/hubfs/jsw-site/media/project-gallery-image-4cb949fb.webp"); --img-gallery-cabinet:url("/hubfs/jsw-site/media/gallery-cabinets-gray-island-finish.webp"); --img-gallery-drywall:url("/hubfs/jsw-site/media/project-gallery-image-936bc51a.webp"); --img-gallery-flooring:url("/hubfs/jsw-site/media/project-gallery-image-f722dfef.webp"); --img-gallery-tile:url("/hubfs/jsw-site/media/project-gallery-image-ab1612fe.webp"); --img-gallery-remodel:url("/hubfs/jsw-site/media/project-gallery-image-df14a41a.webp"); --img-gallery-carpentry:url("/hubfs/jsw-site/media/gallery-carpentry-dining-wall-paneling.webp"); --img-gallery-staining:url("/hubfs/jsw-site/media/gallery-staining-covered-porch-floor.webp"); --img-color-room:url("/hubfs/jsw-site/media/color-guidance-interior-dining-room-wall-color-example.webp"); } .jsw-page--home{scroll-behavior:smooth} .jsw-page--home{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7} .jsw-page--home a{color:inherit} .jsw-page--home button,.jsw-page--home input,.jsw-page--home select,.jsw-page--home textarea{font:inherit} .jsw-page--home button{cursor:pointer} .jsw-page--home img{display:block;max-width:100%} .jsw-page--home .shell{width:min(1160px,90vw);margin:0 auto} .jsw-page--home .section{padding:7rem 0} .jsw-page--home .section-white{background:var(--white)} .jsw-page--home .section-dark{background:var(--forest);color:var(--white)} .jsw-page--home .eyebrow{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase} .jsw-page--home .eyebrow:before{content:"";width:30px;height:1px;background:currentColor;flex:0 0 auto} .jsw-page--home h1,.jsw-page--home h2,.jsw-page--home h3{font-family:var(--serif);font-weight:300;line-height:1.08;letter-spacing:-.035em;color:var(--ink)} .jsw-page--home h1{font-size:clamp(3.2rem,6.6vw,6.85rem);letter-spacing:-.04em} .jsw-page--home h2{font-size:clamp(2.25rem,4.1vw,4.3rem);letter-spacing:-.032em} .jsw-page--home h3{font-size:clamp(1.45rem,2.4vw,2.35rem)} .jsw-page--home p{color:var(--ink-muted);font-weight:300} .jsw-page--home .section-dark h1,.jsw-page--home .section-dark h2,.jsw-page--home .section-dark h3{color:var(--white)} .jsw-page--home .section-dark p{color:rgba(255,255,255,.72)} .jsw-page--home .section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.75fr);gap:4rem;align-items:end;margin-bottom:3.5rem} .jsw-page--home .section-head p{font-size:1rem;line-height:1.9;max-width:610px} .jsw-page--home .section-head.compact{margin-bottom:2.5rem} .jsw-page--home .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.92rem 1.55rem;border:1px solid transparent;border-radius:2px;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:700;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease} .jsw-page--home .btn:hover{transform:translateY(-1px)} .jsw-page--home .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--home .btn-primary:hover{background:var(--gold);color:var(--ink)} .jsw-page--home .btn-light{background:var(--white);color:var(--forest);border-color:var(--border)} .jsw-page--home .btn-light:hover{border-color:var(--gold);color:var(--gold)} .jsw-page--home .btn-gold{background:var(--gold);color:var(--ink)} .jsw-page--home .btn-gold:hover{background:var(--gold-light)} .jsw-page--home .text-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--gold);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none} .jsw-page--home .text-link:after{content:"\2192 ";font-size:1rem;transition:transform .2s ease} .jsw-page--home .text-link:hover:after{transform:translateX(4px)} .jsw-page--home :focus-visible{outline:3px solid var(--gold);outline-offset:4px} /* Shared navigation */ /* Cinematic home-services hero */ .jsw-page--home .hero{position:relative;overflow:hidden;min-height:clamp(820px,94svh,980px);padding:108px 0 3.25rem;background: radial-gradient(circle at 83% 16%,rgba(212,180,122,.24),transparent 25rem), radial-gradient(circle at 8% 84%,rgba(30,48,40,.07),transparent 28rem), linear-gradient(116deg,var(--cream) 0 44%,#ebe5da 44% 100%);color:var(--ink);isolation:isolate} .jsw-page--home .hero:before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(30,48,40,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(30,48,40,.032) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(90deg,rgba(0,0,0,.42),transparent 50%)} .jsw-page--home .hero:after{content:"";position:absolute;z-index:-1;right:-10vw;top:8rem;width:58vw;height:58vw;border:1px solid rgba(184,151,90,.24);border-radius:50%;box-shadow:0 0 0 6vw rgba(184,151,90,.035),0 0 0 13vw rgba(184,151,90,.025);pointer-events:none} .jsw-page--home .hero .shell{width:min(1480px,94vw)} .jsw-page--home .hero-main{position:relative;display:grid;grid-template-columns:minmax(340px,.72fr) minmax(620px,1.28fr);gap:2.7rem;align-items:center} .jsw-page--home .hero-copy{position:relative;z-index:5;padding:1.75rem 0 .75rem} .jsw-page--home .hero-copy h1{max-width:760px;color:var(--ink);font-size:clamp(4rem,7vw,7.85rem);line-height:.94;letter-spacing:-.055em} .jsw-page--home .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--home .hero-copy>p:not(.eyebrow){max-width:600px;margin:1.55rem 0 1.9rem;color:var(--ink-muted);font-size:1.04rem;line-height:1.84} .jsw-page--home .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center} .jsw-page--home .hero .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--home .hero .btn-primary:hover{background:var(--gold);color:var(--ink)} .jsw-page--home .hero .btn-light{background:rgba(255,255,255,.76);color:var(--forest);border-color:var(--border);backdrop-filter:blur(8px)} .jsw-page--home .hero .btn-light:hover{border-color:var(--gold);color:var(--gold)} .jsw-page--home .hero-proof{margin-top:1.55rem;display:flex;flex-wrap:wrap;gap:.65rem 1.05rem} .jsw-page--home .hero-proof span{display:flex;align-items:center;gap:.55rem;color:var(--ink-muted);font-size:.72rem;font-weight:700;letter-spacing:.025em} .jsw-page--home .hero-proof span:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(184,151,90,.12)} .jsw-page--home .hero-service-summary{position:relative;z-index:7;max-width:760px;margin:1.65rem -5.4rem 0 0;padding:1.3rem 1.45rem 1.35rem;background:rgba(250,248,244,.96);border:1px solid rgba(184,151,90,.38);border-left:4px solid var(--gold);box-shadow:0 22px 55px rgba(28,28,25,.13);backdrop-filter:blur(13px)} .jsw-page--home .hero-service-summary small{display:block;color:var(--gold);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase} .jsw-page--home .hero-service-summary strong{display:block;margin:.38rem 0 .42rem;color:var(--ink);font-family:var(--serif);font-size:1.72rem;font-weight:400;line-height:1.12} .jsw-page--home .hero-service-summary p{max-width:650px;color:var(--ink-muted);font-size:.82rem;line-height:1.62} .jsw-page--home .hero-service-summary a{margin-top:.72rem} .jsw-page--home .hero-media{position:relative;z-index:3;--autoplay-duration:5.6s;padding:.72rem;background:var(--forest);border:1px solid rgba(255,255,255,.14);box-shadow:0 42px 100px rgba(20,34,28,.3);isolation:isolate} .jsw-page--home .hero-media:before{content:"";position:absolute;z-index:-1;inset:-14px 18px 18px -14px;border:1px solid rgba(184,151,90,.62);pointer-events:none} .jsw-page--home .hero-carousel-stage{position:relative;min-height:clamp(630px,70vh,790px);overflow:hidden;background:#111a16} .jsw-page--home .hero-carousel-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.012);filter:saturate(1.02) contrast(1.015);transition:opacity .62s ease,transform 1.25s cubic-bezier(.22,.61,.36,1),filter .7s ease} .jsw-page--home .hero-carousel-stage img.is-changing{opacity:0;transform:scale(1.065);filter:saturate(.86) contrast(.96)} .jsw-page--home .hero-carousel-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,13,10,.04) 24%,rgba(7,13,10,.15) 58%,rgba(7,13,10,.88) 100%),linear-gradient(90deg,rgba(7,13,10,.24),transparent 36%);pointer-events:none} .jsw-page--home .hero-showcase-meta{position:absolute;z-index:4;top:1.25rem;left:1.25rem;display:flex;align-items:center;gap:.8rem;padding:.68rem .82rem;background:rgba(16,21,19,.72);border:1px solid rgba(255,255,255,.14);color:var(--white);backdrop-filter:blur(11px)} .jsw-page--home .hero-showcase-meta>span{font-size:.64rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.72)} .jsw-page--home .hero-showcase-meta strong{display:flex;align-items:baseline;gap:.18rem;font-family:var(--serif);font-size:1.48rem;font-weight:400;line-height:1;color:var(--gold-light)} .jsw-page--home .hero-showcase-meta strong em{font-family:var(--sans);font-size:.58rem;font-style:normal;letter-spacing:.08em;color:rgba(255,255,255,.52)} .jsw-page--home .hero-carousel-caption{position:absolute;z-index:4;left:1.45rem;right:8.2rem;bottom:1.45rem;padding:1.25rem 1.35rem 1.3rem;background:rgba(16,21,19,.82);border:1px solid rgba(255,255,255,.14);border-left:4px solid var(--gold);color:var(--white);backdrop-filter:blur(14px)} .jsw-page--home .hero-carousel-caption small{display:block;color:var(--gold-light);font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.32rem} .jsw-page--home .hero-carousel-caption strong{display:block;font-family:var(--serif);font-size:clamp(1.65rem,2.2vw,2.35rem);font-weight:400;line-height:1.08;color:var(--white)} .jsw-page--home .hero-carousel-caption span{display:block;max-width:680px;margin-top:.42rem;color:rgba(255,255,255,.72);font-size:.82rem;line-height:1.55} .jsw-page--home .hero-media-footer{position:absolute;z-index:5;top:1.2rem;right:1.2rem;display:grid;gap:.55rem;width:82px;padding:0} .jsw-page--home .hero-image-count{justify-self:end;padding:.52rem .58rem;background:rgba(16,21,19,.78);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.78);font-size:.63rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;backdrop-filter:blur(9px)} .jsw-page--home .hero-thumbs{display:grid;grid-template-columns:1fr;gap:.48rem} .jsw-page--home .hero-thumb{position:relative;width:82px;height:70px;min-height:70px;padding:0;border:2px solid rgba(255,255,255,.22);background:var(--forest);overflow:hidden;opacity:.58;box-shadow:0 8px 24px rgba(0,0,0,.18);transition:opacity .22s ease,border-color .22s ease,transform .22s ease} .jsw-page--home .hero-thumb img{width:100%;height:100%;object-fit:cover} .jsw-page--home .hero-thumb:hover,.jsw-page--home .hero-thumb:focus-visible{opacity:1;transform:translateX(-3px)} .jsw-page--home .hero-thumb[aria-pressed="true"]{opacity:1;border-color:var(--gold);transform:translateX(-5px)} .jsw-page--home .hero-service-tabs{position:relative;z-index:6;margin:-.2rem 2.25rem 0;display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;gap:1px;padding:1px;background:rgba(16,21,19,.97);border:1px solid rgba(255,255,255,.12);box-shadow:0 22px 55px rgba(20,34,28,.22)} .jsw-page--home .hero-service-tab{flex:1 0 176px;min-height:68px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.68rem;padding:.78rem .82rem;border:0;background:rgba(255,255,255,.05);color:rgba(255,255,255,.72);font-size:.65rem;font-weight:700;letter-spacing:.065em;text-align:left;text-transform:uppercase;line-height:1.35;scroll-snap-align:start;transition:background .24s ease,color .24s ease,transform .24s ease} .jsw-page--home .hero-service-tab:hover,.jsw-page--home .hero-service-tab:focus-visible{background:rgba(255,255,255,.11);color:var(--white)} .jsw-page--home .hero-service-tab[aria-selected="true"]{background:var(--gold);color:var(--ink)} .jsw-page--home .hero-scroll-cue{position:relative;z-index:4;width:max-content;max-width:90%;margin:1.35rem auto 0;display:flex;align-items:center;gap:.8rem;color:var(--forest);text-decoration:none;font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase} .jsw-page--home .hero-scroll-cue:after{content:"";width:54px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);transform-origin:left;animation:heroCue 2.2s ease-in-out infinite} @keyframes heroCue{0%,100%{transform:scaleX(.42);opacity:.45}50%{transform:scaleX(1);opacity:1}} /* Shared value band */ .jsw-page--home .trust-band{background:var(--forest);color:var(--white);padding:2rem 5vw} .jsw-page--home .trust-grid{width:min(1160px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)} .jsw-page--home .trust-item{padding:1.6rem;background:rgba(255,255,255,.055)} .jsw-page--home .trust-item strong{display:block;color:var(--white);font-family:var(--serif);font-size:1.45rem;font-weight:400;margin-bottom:.4rem} .jsw-page--home .trust-item p{color:rgba(255,255,255,.68);font-size:.9rem;line-height:1.7} /* Service navigator */ .jsw-page--home .service-explorer{background:var(--cream)} .jsw-page--home .explorer-shell{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(0,1.2fr);gap:1.25rem;align-items:stretch} .jsw-page--home .explorer-visual{min-height:610px;background-image:linear-gradient(180deg,transparent 45%,rgba(15,24,20,.78)),var(--img-service-interior);background-size:cover;background-position:center;position:relative;transition:opacity .28s ease} .jsw-page--home .explorer-visual.is-changing{opacity:.48} .jsw-page--home .explorer-caption{position:absolute;inset:auto 1.4rem 1.4rem;padding:1.35rem;background:rgba(250,248,244,.94);border-left:3px solid var(--gold)} .jsw-page--home .explorer-caption small{display:block;color:var(--gold);font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.3rem} .jsw-page--home .explorer-caption strong{display:block;font-family:var(--serif);font-size:1.65rem;font-weight:400;line-height:1.16} .jsw-page--home .explorer-caption p{margin-top:.45rem;font-size:.84rem;line-height:1.6} .jsw-page--home .explorer-panel{background:var(--white);border:1px solid var(--border);padding:2rem;display:flex;flex-direction:column} .jsw-page--home .category-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem} .jsw-page--home .category-tab{padding:.68rem .9rem;border:1px solid var(--border);background:var(--cream);color:var(--ink-soft);font-size:.69rem;font-weight:700;letter-spacing:.075em;text-transform:uppercase} .jsw-page--home .category-tab[aria-selected="true"]{background:var(--forest);border-color:var(--forest);color:var(--white)} .jsw-page--home .explorer-intro{padding-bottom:1.25rem;border-bottom:1px solid var(--border)} .jsw-page--home .explorer-intro h3{font-size:2rem;margin-bottom:.65rem} .jsw-page--home .explorer-intro p{font-size:.92rem;line-height:1.75} .jsw-page--home .service-choice-list{display:grid;margin-top:1.1rem;border-top:1px solid var(--border)} .jsw-page--home .service-choice{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:.9rem;align-items:center;text-align:left;padding:1rem .35rem;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--ink)} .jsw-page--home .service-choice:hover{background:var(--cream)} .jsw-page--home .service-choice[aria-pressed="true"]{background:var(--cream-deep)} .jsw-page--home .service-index{width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:.69rem;font-weight:700} .jsw-page--home .service-choice strong{display:block;font-family:var(--serif);font-size:1.2rem;font-weight:400;line-height:1.2} .jsw-page--home .service-choice span:not(.service-index){display:block;margin-top:.22rem;color:var(--muted);font-size:.78rem;line-height:1.45} .jsw-page--home .choice-arrow{color:var(--gold);font-size:1rem} .jsw-page--home .explorer-action{margin-top:auto;padding-top:1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap} .jsw-page--home .explorer-count{color:var(--muted);font-size:.77rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase} /* Painting color studio */ .jsw-page--home .painting-section{background:var(--forest);color:var(--white)} .jsw-page--home .painting-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:3.2rem;align-items:start} .jsw-page--home .painting-copy{position:sticky;top:112px} .jsw-page--home .painting-copy>p:not(.eyebrow){margin:1.2rem 0 1.6rem;color:rgba(255,255,255,.72);line-height:1.9} .jsw-page--home .service-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1.4rem 0 1.7rem} .jsw-page--home .service-link-grid a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.055);text-decoration:none;color:rgba(255,255,255,.78);font-size:.76rem;font-weight:700;line-height:1.3;transition:background .2s ease,color .2s ease,border-color .2s ease} .jsw-page--home .service-link-grid a:hover{background:var(--white);border-color:var(--white);color:var(--forest)} .jsw-page--home .service-link-grid a:after{content:"\2197 ";color:var(--gold-light)} .jsw-page--home .painting-copy .btn-primary{background:var(--gold);color:var(--ink)} .jsw-page--home .painting-copy .btn-primary:hover{background:var(--gold-light)} .jsw-page--home .color-studio{background:rgba(255,255,255,.055);padding:1.25rem;color:var(--white);border:1px solid rgba(255,255,255,.15);box-shadow:0 30px 75px rgba(0,0,0,.25)} .jsw-page--home .color-studio-inner{display:grid;grid-template-columns:minmax(270px,.82fr) minmax(300px,1.18fr);gap:1px;background:rgba(255,255,255,.14)} .jsw-page--home .wheel-panel{background:var(--forest-mid);padding:1.5rem} .jsw-page--home .wheel-panel h3{color:var(--white);font-size:1.72rem;margin-bottom:.5rem} .jsw-page--home .wheel-panel p{color:rgba(255,255,255,.66);font-size:.86rem;line-height:1.65} .jsw-page--home .wheel-wrap{position:relative;width:min(100%,360px);aspect-ratio:1;margin:1.25rem auto} .jsw-page--home #interiorColorWheel{width:100%;height:100%;display:block;border-radius:50%;cursor:crosshair;touch-action:none;box-shadow:0 12px 32px rgba(0,0,0,.25)} .jsw-page--home .color-cursor{position:absolute;width:24px;height:24px;border:3px solid var(--white);border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.35);pointer-events:none;transform:translate(-50%,-50%);left:73%;top:29%;background:#a5c8d5} .jsw-page--home .slider-row{margin-top:1rem} .jsw-page--home .slider-row label{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.45rem;color:rgba(255,255,255,.75);font-size:.69rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase} .jsw-page--home input[type="range"]{width:100%;accent-color:var(--gold)} .jsw-page--home .preset-swatches{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.1rem} .jsw-page--home .preset-swatch{width:31px;height:31px;border:2px solid rgba(255,255,255,.6);border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.2)} .jsw-page--home .preset-swatch[aria-pressed="true"]{outline:2px solid var(--gold);outline-offset:3px} .jsw-page--home .room-preview{position:relative;min-height:620px;background-image:var(--img-color-room);background-size:cover;background-position:center;overflow:hidden} .jsw-page--home .room-wall-tint{position:absolute;inset:0;background:#a5c8d5;opacity:.28;mix-blend-mode:multiply;pointer-events:none;transition:background .25s ease,opacity .25s ease} .jsw-page--home .room-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(11,18,15,.72))} .jsw-page--home .room-color-card{position:absolute;z-index:2;left:1.25rem;right:1.25rem;bottom:1.25rem;padding:1.25rem;background:rgba(250,248,244,.94);color:var(--ink);border-left:3px solid var(--gold)} .jsw-page--home .room-color-card small{display:block;color:var(--gold);font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.3rem} .jsw-page--home .room-color-card strong{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:400} .jsw-page--home .room-color-card span{display:block;margin-top:.35rem;color:var(--muted);font-size:.82rem;line-height:1.55} /* Home improvement experience */ .jsw-page--home .home-improvement-shell{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.15);padding:1rem;box-shadow:0 30px 80px rgba(0,0,0,.18)} .jsw-page--home .home-improvement-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14)} .jsw-page--home .home-improvement-tab{min-height:58px;padding:1rem;border:0;background:rgba(255,255,255,.045);color:rgba(255,255,255,.69);font-size:.69rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;transition:background .2s ease,color .2s ease} .jsw-page--home .home-improvement-tab:hover{background:rgba(255,255,255,.1);color:var(--white)} .jsw-page--home .home-improvement-tab[aria-selected="true"]{background:var(--gold);color:var(--ink)} .jsw-page--home .home-panel{margin-top:1px;background:rgba(255,255,255,.035)} .jsw-page--home .home-panel[hidden]{display:none} .jsw-page--home .home-panel-grid,.jsw-page--home .home-carousel-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);min-height:640px}.jsw-page--home .wall-reveal-wrap,.jsw-page--home .home-panel-copy,.jsw-page--home .home-carousel-media,.jsw-page--home .home-carousel-copy{min-width:0} .jsw-page--home .home-panel-copy,.jsw-page--home .home-carousel-copy{padding:2.3rem;background:rgba(255,255,255,.055);display:flex;flex-direction:column;justify-content:center} .jsw-page--home .home-panel-copy small,.jsw-page--home .home-carousel-copy small{color:var(--gold-light);font-size:.67rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase} .jsw-page--home .home-panel-copy h3,.jsw-page--home .home-carousel-copy h3{color:var(--white);margin:.55rem 0 .9rem;font-size:2.25rem} .jsw-page--home .home-panel-copy>p,.jsw-page--home .home-carousel-copy>p{color:rgba(255,255,255,.7);line-height:1.82} .jsw-page--home .home-benefits{display:grid;gap:.65rem;margin:1.35rem 0 1.8rem} .jsw-page--home .home-benefits li{list-style:none;display:flex;gap:.65rem;padding-bottom:.65rem;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.72);font-size:.84rem;line-height:1.55} .jsw-page--home .home-benefits li:before{content:"\2022 ";color:var(--gold-light);font-weight:700} .jsw-page--home .home-panel-copy .btn,.jsw-page--home .home-carousel-copy .btn{align-self:flex-start;margin-top:auto} .jsw-page--home .wall-reveal-wrap{padding:1.1rem;background:var(--forest-mid)} .jsw-page--home .wall-reveal-top{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:.4rem .2rem 1rem} .jsw-page--home .wall-reveal-top strong{color:var(--white);font-family:var(--serif);font-size:1.48rem;font-weight:400;line-height:1.15} .jsw-page--home .wall-reveal-top span{color:rgba(255,255,255,.6);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase} .jsw-page--home .wall-reveal-visual{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#17231d;touch-action:none;cursor:ew-resize} .jsw-page--home .wall-reveal-before,.jsw-page--home .wall-reveal-after{position:absolute;inset:0} .jsw-page--home .wall-reveal-before img,.jsw-page--home .wall-reveal-after img{width:100%;height:100%;object-fit:cover} .jsw-page--home .wall-reveal-after{z-index:2;clip-path:inset(0 100% 0 0);box-shadow:-12px 0 28px rgba(0,0,0,.18)} .jsw-page--home .wall-reveal-divider{position:absolute;z-index:3;top:0;bottom:0;left:0;width:3px;background:var(--white);transform:translateX(-1.5px);pointer-events:none} .jsw-page--home .wall-reveal-handle{position:absolute;z-index:4;top:50%;left:0;width:48px;height:48px;border:2px solid var(--white);border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:1.1rem;font-weight:700;transform:translate(-50%,-50%);box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:none} .jsw-page--home .wall-reveal-label{position:absolute;z-index:5;top:1rem;padding:.55rem .68rem;background:rgba(250,248,244,.9);color:var(--ink);font-size:.62rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase} .jsw-page--home .wall-reveal-label.before{left:1rem}.jsw-page--home .wall-reveal-label.after{right:1rem} .jsw-page--home .wall-reveal-controls{padding-top:1rem} .jsw-page--home .wall-reveal-range{width:100%;accent-color:var(--gold)} .jsw-page--home .wall-reveal-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:.75rem;background:rgba(255,255,255,.13)} .jsw-page--home .wall-reveal-stage{padding:.8rem .65rem;border:0;background:rgba(255,255,255,.045);color:rgba(255,255,255,.65);font-size:.61rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.35} .jsw-page--home .wall-reveal-stage[aria-selected="true"]{background:var(--gold);color:var(--ink)} .jsw-page--home .wall-reveal-caption{margin-top:.8rem;padding:1rem;border-left:3px solid var(--gold);background:rgba(255,255,255,.055)} .jsw-page--home .wall-reveal-caption small{display:block;color:var(--gold-light);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase} .jsw-page--home .wall-reveal-caption strong{display:block;margin:.3rem 0;color:var(--white);font-family:var(--serif);font-size:1.3rem;font-weight:400} .jsw-page--home .wall-reveal-caption p{color:rgba(255,255,255,.65);font-size:.8rem;line-height:1.58} .jsw-page--home .home-carousel-media{position:relative;--autoplay-duration:5.8s;padding:1.1rem;background:var(--forest-mid)} .jsw-page--home .home-carousel-stage{position:relative;min-height:530px;overflow:hidden;background:#142019} .jsw-page--home .home-carousel-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .58s ease,transform .9s cubic-bezier(.22,.61,.36,1)} .jsw-page--home .home-carousel-stage img.is-changing{opacity:0;transform:scale(1.018)} .jsw-page--home .home-carousel-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(9,15,12,.74));pointer-events:none} .jsw-page--home .home-carousel-badge{position:absolute;z-index:2;left:1rem;top:1rem;padding:.58rem .7rem;background:rgba(250,248,244,.92);color:var(--ink);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase} .jsw-page--home .home-carousel-count{position:absolute;z-index:3;left:1rem;bottom:1rem;padding:.55rem .7rem;background:rgba(30,48,40,.82);color:var(--white);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase} .jsw-page--home .home-carousel-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin-top:.65rem} .jsw-page--home .home-carousel-thumb{aspect-ratio:1.35;border:2px solid transparent;background:transparent;opacity:.6;overflow:hidden;transition:opacity .2s ease,border-color .2s ease} .jsw-page--home .home-carousel-thumb img{width:100%;height:100%;object-fit:cover} .jsw-page--home .home-carousel-thumb:hover{opacity:1} .jsw-page--home .home-carousel-thumb[aria-pressed="true"]{opacity:1;border-color:var(--gold)} .jsw-page--home .home-carousel-copy .slide-kicker{display:block;margin-bottom:.35rem;color:var(--gold-light)} /* Gallery */ .jsw-page--home .gallery-shell{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);gap:3rem;align-items:start} .jsw-page--home .gallery-copy{position:sticky;top:110px} .jsw-page--home .gallery-copy>p:not(.eyebrow){margin:1.15rem 0 1.7rem;line-height:1.9} .jsw-page--home .gallery-note{padding:1.2rem;border-left:3px solid var(--gold);background:var(--cream-deep);margin-bottom:1.5rem} .jsw-page--home .gallery-note strong{display:block;font-family:var(--serif);font-size:1.3rem;font-weight:400;margin-bottom:.35rem} .jsw-page--home .gallery-note span{display:block;color:var(--muted);font-size:.82rem;line-height:1.6} .jsw-page--home .gallery-viewer{position:relative;background:var(--forest);padding:1rem;box-shadow:var(--shadow)} .jsw-page--home .gallery-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.45rem .2rem 1rem;flex-wrap:wrap} .jsw-page--home .gallery-filters{display:flex;gap:.45rem;flex-wrap:wrap} .jsw-page--home .gallery-filter{padding:.58rem .72rem;border:1px solid rgba(255,255,255,.18);background:transparent;color:rgba(255,255,255,.7);font-size:.65rem;font-weight:700;letter-spacing:.075em;text-transform:uppercase} .jsw-page--home .gallery-filter[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--ink)} .jsw-page--home .gallery-count{color:rgba(255,255,255,.62);font-size:.69rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase} .jsw-page--home .gallery-stage{position:relative;min-height:590px;overflow:hidden;background:#17231d} .jsw-page--home .gallery-stage-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .58s ease,transform .9s cubic-bezier(.22,.61,.36,1)} .jsw-page--home .gallery-stage-image.is-changing{opacity:0;transform:scale(1.018)} .jsw-page--home .gallery-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(11,18,15,.84));pointer-events:none} .jsw-page--home .gallery-caption{z-index:2;position:absolute;inset:auto 1.1rem 1.1rem;padding:1.15rem;background:rgba(250,248,244,.94);border-left:3px solid var(--gold)} .jsw-page--home .gallery-caption small{display:block;color:var(--gold);font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.25rem} .jsw-page--home .gallery-caption strong{display:block;font-family:var(--serif);font-size:1.43rem;font-weight:400;line-height:1.2} .jsw-page--home .gallery-caption span{display:block;margin-top:.35rem;color:var(--muted);font-size:.8rem;line-height:1.52} .jsw-page--home .thumb-track{display:grid;grid-template-columns:repeat(5,1fr);gap:.55rem;margin-top:.7rem} .jsw-page--home .gallery-thumb{position:relative;aspect-ratio:1.35;border:2px solid transparent;background-size:cover;background-position:center;opacity:.72;transition:opacity .2s ease,border-color .2s ease} .jsw-page--home .gallery-thumb:hover{opacity:1} .jsw-page--home .gallery-thumb[aria-pressed="true"]{opacity:1;border-color:var(--gold)} /* Quote */ .jsw-page--home .quote-section{background:var(--forest);color:var(--white)} .jsw-page--home .quote-shell{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);gap:3rem;align-items:start} .jsw-page--home .quote-copy h2{color:var(--white);margin-bottom:1.2rem} .jsw-page--home .quote-copy>p:not(.eyebrow){color:rgba(255,255,255,.7);line-height:1.9;margin-bottom:1.5rem} .jsw-page--home .quote-reasons{display:grid;gap:.75rem;margin-top:1.5rem} .jsw-page--home .quote-reason{display:grid;grid-template-columns:1fr;gap:.35rem;align-items:start;padding:1.1rem 0;border-top:1px solid rgba(255,255,255,.14)}.jsw-page--home .quote-reason>div{width:100%;max-width:680px}.jsw-page--home .quote-reason strong,.jsw-page--home .quote-reason p{margin-left:0;text-align:left} .jsw-page--home .quote-reason span{width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold-light);font-size:.7rem;font-weight:700} .jsw-page--home .quote-reason strong{display:block;color:var(--white);font-family:var(--serif);font-size:1.15rem;font-weight:400;margin-bottom:.2rem} .jsw-page--home .quote-reason p{color:rgba(255,255,255,.62);font-size:.82rem;line-height:1.55} .jsw-page--home .quote-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:2rem;color:var(--white)} .jsw-page--home .quote-card h3{color:var(--white);margin-bottom:.45rem} .jsw-page--home .quote-card>p{color:rgba(255,255,255,.68);font-size:.85rem;margin-bottom:1.4rem} .jsw-page--home .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--home .field.full{grid-column:1/-1} .jsw-page--home .field label{display:block;margin-bottom:.42rem;color:rgba(255,255,255,.76);font-size:.67rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase} .jsw-page--home .field input,.jsw-page--home .field select,.jsw-page--home .field textarea{width:100%;padding:.88rem .95rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:var(--white);outline:none} .jsw-page--home .field select option{color:var(--ink)} .jsw-page--home .field textarea{min-height:135px;resize:vertical} .jsw-page--home .field input::placeholder,.jsw-page--home .field textarea::placeholder{color:rgba(255,255,255,.46)} .jsw-page--home .field input:focus,.jsw-page--home .field select:focus,.jsw-page--home .field textarea:focus{border-color:var(--gold)} .jsw-page--home .form-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem} .jsw-page--home .form-note{max-width:360px;color:rgba(255,255,255,.58);font-size:.72rem;line-height:1.5} /* Shared footer */ @media(max-width:1080px){ .jsw-page--home .hero-main,.jsw-page--home .section-head,.jsw-page--home .explorer-shell,.jsw-page--home .painting-layout,.jsw-page--home .gallery-shell,.jsw-page--home .quote-shell{grid-template-columns:1fr} .jsw-page--home .hero{min-height:auto;padding-bottom:4.5rem}.jsw-page--home .hero-copy{max-width:880px;padding-bottom:0}.jsw-page--home .hero-copy h1{max-width:900px}.jsw-page--home .hero-service-summary{max-width:820px;margin-right:0}.jsw-page--home .hero-media{width:100%;max-width:none}.jsw-page--home .hero-carousel-stage{min-height:680px}.jsw-page--home .painting-copy,.jsw-page--home .gallery-copy{position:static} .jsw-page--home .section-head{gap:1.4rem}.jsw-page--home .section-head p{max-width:760px} .jsw-page--home .color-studio-inner{grid-template-columns:1fr}.jsw-page--home .room-preview{min-height:550px} .jsw-page--home .explorer-visual{min-height:520px} .jsw-page--home .home-panel-grid,.jsw-page--home .home-carousel-layout{grid-template-columns:1fr}.jsw-page--home .home-panel-copy,.jsw-page--home .home-carousel-copy{min-height:430px} } .jsw-page--home .hero-media,.jsw-page--home [data-home-carousel],.jsw-page--home .gallery-viewer{position:relative} .jsw-page--home [data-home-carousel]{--autoplay-duration:5.8s} .jsw-page--home .gallery-viewer{--autoplay-duration:6s} .jsw-page--home .hero-media::after,.jsw-page--home [data-home-carousel]::after,.jsw-page--home .gallery-viewer::after{content:"";position:absolute;z-index:8;left:0;bottom:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;opacity:0;pointer-events:none} .jsw-page--home .hero-media[data-autoplay-state="running"]::after,.jsw-page--home [data-home-carousel][data-autoplay-state="running"]::after,.jsw-page--home .gallery-viewer[data-autoplay-state="running"]::after{opacity:.7;animation:jswAutoplayProgress var(--autoplay-duration) linear forwards} @keyframes jswAutoplayProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}} @media(max-width:980px){ .jsw-page--home .hero{padding-top:104px} .jsw-page--home .hero-main{gap:2.7rem} .jsw-page--home .hero-service-tabs{margin:.8rem 0 0} .jsw-page--home .hero-media:before{inset:-9px 12px 12px -9px} .jsw-page--home .trust-grid{grid-template-columns:1fr} .jsw-page--home .service-link-grid{grid-template-columns:1fr} .jsw-page--home .home-improvement-tabs{grid-template-columns:1fr} .jsw-page--home .wall-reveal-stages{grid-template-columns:1fr 1fr} .jsw-page--home .home-carousel-thumbs{grid-template-columns:repeat(5,minmax(80px,1fr));overflow-x:auto} .jsw-page--home .thumb-track{grid-template-columns:repeat(4,1fr)} } @media(max-width:640px){ .jsw-page--home .section{padding:4.5rem 0} .jsw-page--home .shell{width:min(92vw,1160px)} .jsw-page--home h1{font-size:clamp(3rem,15vw,4.7rem)} .jsw-page--home h2{font-size:clamp(2.15rem,11vw,3.3rem)} .jsw-page--home .hero{padding:92px 0 4.25rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark))} .jsw-page--home .hero:after{right:-48vw;top:16rem;width:105vw;height:105vw} .jsw-page--home .hero .shell{width:min(92vw,1480px)} .jsw-page--home .hero-main{display:flex;flex-direction:column;align-items:stretch} .jsw-page--home .hero-copy{display:contents} .jsw-page--home .hero-copy .eyebrow{order:1;margin-top:1rem} .jsw-page--home .hero-copy h1{order:2;font-size:clamp(3.55rem,16.5vw,5.15rem);line-height:.96} .jsw-page--home .hero-media{order:3;margin-top:.45rem} .jsw-page--home .hero-copy>p:not(.eyebrow){order:4;font-size:.97rem;margin:1.35rem 0 1.5rem} .jsw-page--home .hero-actions{order:5} .jsw-page--home .hero-proof{order:6} .jsw-page--home .hero-service-summary{order:7;width:100%} .jsw-page--home .hero-service-summary{margin-top:1.35rem;padding:1.15rem 1.1rem} .jsw-page--home .hero-service-summary strong{font-size:1.45rem} .jsw-page--home .hero-media{padding:.48rem} .jsw-page--home .hero-media:before{display:none} .jsw-page--home .hero-carousel-stage{min-height:520px} .jsw-page--home .hero-showcase-meta{top:.9rem;left:.9rem} .jsw-page--home .hero-carousel-caption{left:.9rem;right:.9rem;bottom:.9rem;padding:1.05rem 1.05rem 1.1rem} .jsw-page--home .hero-carousel-caption strong{font-size:1.62rem} .jsw-page--home .hero-media-footer{position:relative;top:auto;right:auto;width:auto;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.7rem;padding:.65rem .2rem .1rem} .jsw-page--home .hero-image-count{justify-self:start} .jsw-page--home .hero-thumbs{grid-template-columns:repeat(3,1fr);gap:.38rem} .jsw-page--home .hero-thumb{width:100%;height:58px;min-height:58px} .jsw-page--home .hero-thumb:hover,.jsw-page--home .hero-thumb:focus-visible,.jsw-page--home .hero-thumb[aria-pressed="true"]{transform:none} .jsw-page--home .hero-proof{display:grid;gap:.65rem} .jsw-page--home .hero-service-tabs{margin:.7rem 0 0} .jsw-page--home .hero-service-tab{flex-basis:166px;min-height:64px} .jsw-page--home .hero-scroll-cue{margin-top:1.1rem;font-size:.62rem} .jsw-page--home .category-tabs{display:grid;grid-template-columns:1fr} .jsw-page--home .category-tab{text-align:left} .jsw-page--home .explorer-panel{padding:1.3rem} .jsw-page--home .explorer-visual{min-height:430px} .jsw-page--home .service-choice{grid-template-columns:32px 1fr auto} .jsw-page--home .color-studio{padding:.7rem} .jsw-page--home .wheel-panel{padding:1.1rem} .jsw-page--home .room-preview{min-height:430px} .jsw-page--home .home-improvement-shell{padding:.65rem} .jsw-page--home .home-panel-copy,.jsw-page--home .home-carousel-copy{padding:1.5rem;min-height:auto} .jsw-page--home .wall-reveal-wrap,.jsw-page--home .home-carousel-media{padding:.65rem} .jsw-page--home .wall-reveal-top{align-items:start;flex-direction:column} .jsw-page--home .wall-reveal-visual{aspect-ratio:4/3} .jsw-page--home .wall-reveal-stages{grid-template-columns:1fr} .jsw-page--home .home-carousel-stage{min-height:410px} .jsw-page--home .home-carousel-thumbs{grid-template-columns:repeat(5,92px)} .jsw-page--home .gallery-stage{min-height:450px} .jsw-page--home .gallery-caption{padding-right:1.1rem;bottom:1.1rem} .jsw-page--home .thumb-track{grid-template-columns:repeat(3,1fr)} .jsw-page--home .form-grid{grid-template-columns:1fr} .jsw-page--home .field.full{grid-column:auto} } @media(prefers-reduced-motion:reduce){ .jsw-page--home{scroll-behavior:auto} .jsw-page--home,.jsw-page--home *,.jsw-page--home *:before,.jsw-page--home *:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms} } .jsw-page--home .jsw-inline-style-001{background:#a5c8d5} .jsw-page--home .jsw-inline-style-002{background:#d8c8aa} .jsw-page--home .jsw-inline-style-003{background:#a8b19c} .jsw-page--home .jsw-inline-style-004{background:#c6b2b0} .jsw-page--home .jsw-inline-style-005{background:#8f9aa8} .jsw-page--home{min-height:100%} .jsw-page--home img{height:auto} .jsw-page--home .jsw-form-fallback[aria-hidden="true"]{display:none!important} /* JSW interactive quality layer */ .jsw-page--home{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--home,.jsw-page--home *{box-sizing:border-box} .jsw-page--home img,.jsw-page--home video,.jsw-page--home canvas,.jsw-page--home svg{max-width:100%;height:auto} .jsw-page--home button,.jsw-page--home [role="button"],.jsw-page--home input[type="range"]{touch-action:manipulation} .jsw-page--home button,.jsw-page--home [role="button"],.jsw-page--home a,.jsw-page--home input,.jsw-page--home select,.jsw-page--home textarea{-webkit-tap-highlight-color:transparent} .jsw-page--home button:not(:disabled),.jsw-page--home [role="button"]:not([aria-disabled="true"]),.jsw-page--home input[type="range"]{cursor:pointer} .jsw-page--home button:disabled,.jsw-page--home [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--home [hidden]{display:none!important} .jsw-page--home [aria-busy="true"]{cursor:progress}.jsw-page--home :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--home :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--home :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--home .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--home :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--home :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--home :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--home :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--home,.jsw-page--home *{scroll-behavior:auto!important} .jsw-page--home *,.jsw-page--home *::before,.jsw-page--home *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* JSW-HOMEPAGE-FINAL-V3:START */ /* Homepage presentation and interaction refinements. */ .jsw-page--home .hero-media{padding-bottom:0;border-radius:.45rem;overflow:visible} .jsw-page--home .hero-carousel-stage{border-radius:.2rem .2rem 0 0} .jsw-page--home .hero-service-tabs,.jsw-page--home .jsw-hero-category-dock{position:relative;z-index:10;margin:0;display:flex;gap:1px;padding:1px;background:rgba(12,22,17,.98);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(212,180,122,.55);border-radius:0 0 .38rem .38rem;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;box-shadow:0 18px 45px rgba(20,34,28,.22)} .jsw-page--home .hero-service-tab{counter-increment:none;flex:1 0 168px;min-height:62px;display:flex;align-items:center;justify-content:center;padding:.78rem 1rem;background:rgba(255,255,255,.045);color:rgba(255,255,255,.76);font-size:.68rem;font-weight:750;letter-spacing:.055em;line-height:1.3;text-align:center;text-transform:uppercase;border:0;scroll-snap-align:start;transition:background .22s ease,color .22s ease,transform .22s ease} .jsw-page--home .hero-service-tab::before{display:none!important;content:none!important} .jsw-page--home .hero-service-tab:hover,.jsw-page--home .hero-service-tab:focus-visible{background:rgba(255,255,255,.12);color:#fff} .jsw-page--home .hero-service-tab[aria-selected="true"]{background:var(--gold);color:var(--ink)} .jsw-service-loop,.jsw-services-loop-section{position:relative;overflow:hidden;padding:clamp(3.5rem,7vw,6.5rem) 0;background:#f6f1e8;border-block:1px solid rgba(30,48,40,.12)} .jsw-service-loop-shell{display:grid;gap:1.7rem} .jsw-service-loop-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:end} .jsw-service-loop-head h2{max-width:18ch;margin:.3rem 0 .75rem;font:400 clamp(2.25rem,4.7vw,4.7rem)/.98 var(--serif);letter-spacing:-.025em;text-wrap:balance} .jsw-service-loop-head p:not(.eyebrow){max-width:68ch;margin:0;color:var(--muted);line-height:1.72} .jsw-service-loop-toggle{min-height:44px;padding:.72rem 1rem;border:1px solid rgba(30,48,40,.3);background:transparent;color:var(--forest);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer} .jsw-service-loop-toggle:hover,.jsw-service-loop-toggle:focus-visible{background:var(--forest);color:#fff} .jsw-service-loop-viewport{overflow:hidden;border:1px solid rgba(30,48,40,.14);border-radius:1rem;background:var(--forest);box-shadow:0 24px 60px rgba(30,48,40,.14)} .jsw-service-loop-track,.jsw-services-loop-track{display:flex;width:max-content;gap:1px;animation:jswServiceLoop 64s linear infinite;animation-play-state:paused;will-change:transform} .jsw-service-loop.is-loop-ready:not(.is-paused) .jsw-service-loop-track{animation-play-state:running}.jsw-service-loop-viewport:hover .jsw-service-loop-track,.jsw-service-loop-viewport:focus-within .jsw-service-loop-track,.jsw-service-loop.is-paused .jsw-service-loop-track{animation-play-state:paused} .jsw-service-loop-card{display:grid;grid-template-rows:auto 1fr auto;gap:.85rem;width:clamp(250px,23vw,330px);min-height:230px;padding:1.5rem;text-decoration:none;background:rgba(255,255,255,.055);color:#fff;border-right:1px solid rgba(255,255,255,.1);transition:background .22s ease,transform .22s ease} .jsw-service-loop-card:hover,.jsw-service-loop-card:focus-visible{background:rgba(255,255,255,.12);transform:translateY(-3px)} .jsw-service-loop-card h3{margin:0;font:400 clamp(1.55rem,2.2vw,2.05rem)/1.02 var(--serif);color:#fff} .jsw-service-loop-card p{margin:0;color:rgba(255,255,255,.72);line-height:1.6;font-size:.9rem} .jsw-service-loop-card span{align-self:end;color:var(--gold-light);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase} @keyframes jswServiceLoop{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}} .jsw-page--home .jsw-proof-actions .jsw-btn-contrast{background:var(--forest);border-color:var(--gold);color:#fff} .jsw-page--home .jsw-proof-actions .jsw-btn-contrast:hover,.jsw-page--home .jsw-proof-actions .jsw-btn-contrast:focus-visible{background:var(--gold);color:var(--ink)} .jsw-page--home .jsw-starting-point-frame{border:clamp(7px,1vw,12px) solid var(--forest);outline:2px solid var(--gold);outline-offset:-7px;border-radius:.8rem;box-shadow:0 26px 64px rgba(30,48,40,.22);overflow:hidden} .jsw-page--home .jsw-home-color-tool .room-preview{background:none!important} .jsw-page--home .jsw-home-color-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:0} .jsw-page--home .jsw-home-color-tool .jsw-color-tint-layer{z-index:1} .jsw-page--home .jsw-home-color-tool .room-preview::after{z-index:2} .jsw-page--home .jsw-home-color-tool .room-color-card{z-index:3} .jsw-page--home .jsw-feedback-unified,.jsw-page--home .jsw-feedback-unified h2,.jsw-page--home .jsw-feedback-unified h3{color:#fff} .jsw-page--home .jsw-feedback-unified .jsw-mm-reviews-heading>p:not(.eyebrow){color:rgba(255,255,255,.76)} .jsw-page--home .jsw-feedback-unified .eyebrow{color:var(--gold-light)} .jsw-page--home .jsw-feedback-unified .jsw-mm-review-card,.jsw-page--home .jsw-feedback-unified blockquote,.jsw-page--home .jsw-feedback-unified figcaption{background:transparent!important} .jsw-page--home .jsw-feedback-unified blockquote{color:#fff!important;padding:0!important;border:0!important;box-shadow:none!important} .jsw-page--home .jsw-mm-privacy-section{background:#14251e;color:#fff;border-top:1px solid rgba(255,255,255,.12)} .jsw-page--home .jsw-mm-privacy-section h2{color:#fff}.jsw-page--home .jsw-mm-privacy-section p{color:rgba(255,255,255,.76)}.jsw-page--home .jsw-mm-privacy-section a{color:var(--gold-light)} @media(max-width:900px){.jsw-service-loop-head{grid-template-columns:1fr;align-items:start}.jsw-service-loop-toggle{justify-self:start}.jsw-page--home .hero-service-tab{flex-basis:154px;min-height:58px}} @media(max-width:620px){.jsw-service-loop{padding:3.5rem 0}.jsw-service-loop-card{width:78vw;min-height:215px;padding:1.25rem}.jsw-page--home .hero-service-tabs{margin:0}.jsw-page--home .hero-service-tab{flex-basis:148px;font-size:.64rem}.jsw-page--home .jsw-starting-point-frame{border-width:7px;outline-offset:-5px}} @media(prefers-reduced-motion:reduce){.jsw-service-loop-track{animation:none;transform:none}.jsw-service-loop-viewport{overflow-x:auto}.jsw-service-loop-card[data-loop-clone]{display:none}} /* JSW-HOMEPAGE-FINAL-V3:END */ /* ===== Installation and Repair Services ===== */ .jsw-page--installation-repair-services, .jsw-page--installation-repair-services *{margin:0;padding:0;box-sizing:border-box} .jsw-page--installation-repair-services{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--installation-repair-services{scroll-behavior:smooth} .jsw-page--installation-repair-services{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7} .jsw-page--installation-repair-services img{display:block;max-width:100%} .jsw-page--installation-repair-services a{color:inherit} .jsw-page--installation-repair-services section{padding:7rem 5vw} .jsw-page--installation-repair-services .eyebrow,.jsw-page--installation-repair-services .section-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem} .jsw-page--installation-repair-services .section-eyebrow{display:flex;align-items:center;gap:.75rem} .jsw-page--installation-repair-services .section-eyebrow::before{content:"";display:block;width:28px;height:1px;background:var(--gold)} .jsw-page--installation-repair-services .section-title{font-family:var(--serif);font-size:clamp(2.05rem,3.6vw,3.65rem);font-weight:300;line-height:1.12;color:var(--ink);margin-bottom:1rem} .jsw-page--installation-repair-services .section-title em{font-style:italic;color:var(--gold)} .jsw-page--installation-repair-services .section-desc{font-size:.98rem;color:var(--ink-muted);line-height:1.85;font-weight:300} .jsw-page--installation-repair-services .btn-primary,.jsw-page--installation-repair-services .btn-gold,.jsw-page--installation-repair-services .btn-light{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:2px;padding:.92rem 1.65rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .25s ease,color .25s ease,transform .2s ease} .jsw-page--installation-repair-services .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--installation-repair-services .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--installation-repair-services .btn-gold{background:var(--gold);color:var(--ink)} .jsw-page--installation-repair-services .btn-gold:hover{background:var(--gold-light);transform:translateY(-1px)} .jsw-page--installation-repair-services .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--installation-repair-services .btn-light:hover{background:var(--white);color:var(--gold)} .jsw-page--installation-repair-services .repair-hero{padding:9.25rem 5vw 4.5rem;background:linear-gradient(180deg,var(--cream) 0%,var(--cream-dark) 100%)} .jsw-page--installation-repair-services .hero-shell{display:grid;grid-template-columns:.78fr 1.22fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--installation-repair-services .hero-panel{background:var(--cream);padding:3.6rem 3rem;display:flex;flex-direction:column;justify-content:space-between;min-height:620px} .jsw-page--installation-repair-services .hero-kicker{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.8rem;margin-bottom:2rem} .jsw-page--installation-repair-services .hero-kicker::before{content:"";width:34px;height:1px;background:var(--gold)} .jsw-page--installation-repair-services .hero-panel h1{font-family:var(--serif);font-size:clamp(3rem,5.4vw,5.8rem);font-weight:300;line-height:.98;letter-spacing:-.025em;color:var(--ink);margin-bottom:1.35rem} .jsw-page--installation-repair-services .hero-panel h1 em{font-style:italic;color:var(--gold)} .jsw-page--installation-repair-services .hero-panel p{max-width:540px;font-size:1rem;line-height:1.9;color:var(--ink-muted);font-weight:300} .jsw-page--installation-repair-services .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem} .jsw-page--installation-repair-services .hero-image-stage{position:relative;background:var(--forest);min-height:620px;overflow:hidden} .jsw-page--installation-repair-services .hero-image-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,48,40,.05),rgba(30,48,40,.22));z-index:1} .jsw-page--installation-repair-services .repair-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.02);transition:opacity .65s ease,transform 1.2s ease} .jsw-page--installation-repair-services .repair-slide.active{opacity:1;transform:scale(1)} .jsw-page--installation-repair-services .carousel-controls{position:absolute;left:2rem;bottom:2rem;display:flex;gap:.55rem;z-index:3;background:rgba(250,248,244,.2);backdrop-filter:blur(8px);padding:.55rem;border:1px solid rgba(255,255,255,.18)} .jsw-page--installation-repair-services .carousel-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.8);background:transparent;cursor:pointer;padding:0} .jsw-page--installation-repair-services .carousel-dot.active{background:var(--gold);border-color:var(--gold)} .jsw-page--installation-repair-services .hero-statement{position:absolute;right:2rem;bottom:2rem;left:45%;background:rgba(250,248,244,.94);backdrop-filter:blur(10px);padding:1.55rem;border-left:3px solid var(--gold);z-index:2} .jsw-page--installation-repair-services .hero-statement strong{font-family:var(--serif);font-size:1.55rem;font-weight:400;line-height:1.15;color:var(--ink);display:block;margin-bottom:.55rem} .jsw-page--installation-repair-services .hero-statement span{font-size:.86rem;line-height:1.65;color:var(--ink-muted);display:block} .jsw-page--installation-repair-services .hero-service-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;margin-top:1.5px;background:var(--border);border:1px solid var(--border);border-top:0} .jsw-page--installation-repair-services .hero-service-strip a{display:flex;justify-content:space-between;gap:1rem;background:var(--white);padding:1.15rem 1.3rem;text-decoration:none;color:var(--forest);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;transition:background .25s ease,color .25s ease} .jsw-page--installation-repair-services .hero-service-strip a span{font-family:var(--serif);font-size:1.25rem;color:var(--gold);line-height:1} .jsw-page--installation-repair-services .hero-service-strip a:hover{background:var(--forest);color:var(--white)} .jsw-page--installation-repair-services .repair-map{background:var(--forest);color:var(--white);padding:5.5rem 5vw} .jsw-page--installation-repair-services .map-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:4rem;align-items:start} .jsw-page--installation-repair-services .repair-map .section-title{color:var(--white)} .jsw-page--installation-repair-services .repair-map .section-desc{color:rgba(255,255,255,.68)} .jsw-page--installation-repair-services .map-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)} .jsw-page--installation-repair-services .map-item{background:var(--forest);padding:1.5rem} .jsw-page--installation-repair-services .map-item:nth-child(2),.jsw-page--installation-repair-services .map-item:nth-child(3){background:var(--forest-mid)} .jsw-page--installation-repair-services .map-num{font-family:var(--serif);font-size:2.2rem;color:var(--gold-light);line-height:1;margin-bottom:.9rem} .jsw-page--installation-repair-services .map-item h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--white);margin-bottom:.45rem} .jsw-page--installation-repair-services .map-item p{font-size:.86rem;line-height:1.75;color:rgba(255,255,255,.64);font-weight:300} .jsw-page--installation-repair-services .service-paths{background:var(--cream)} .jsw-page--installation-repair-services .paths-header{max-width:780px;margin-bottom:3.25rem} .jsw-page--installation-repair-services .paths-layout{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.2rem;align-items:stretch} .jsw-page--installation-repair-services .path-card{background:var(--white);border:1px solid var(--border);min-height:400px;display:flex;flex-direction:column;justify-content:space-between;padding:2rem;position:relative;overflow:hidden} .jsw-page--installation-repair-services .path-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gold);transform:scaleX(.28);transform-origin:left;transition:transform .3s ease} .jsw-page--installation-repair-services .path-card:hover::before{transform:scaleX(1)} .jsw-page--installation-repair-services .path-card:nth-child(2){transform:translateY(2.2rem);background:var(--cream-dark)} .jsw-page--installation-repair-services .path-card:nth-child(3){transform:translateY(-1rem)} .jsw-page--installation-repair-services .path-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1.2rem} .jsw-page--installation-repair-services .path-card h3{font-family:var(--serif);font-size:2rem;font-weight:300;line-height:1.08;color:var(--ink);margin-bottom:1rem} .jsw-page--installation-repair-services .path-card p{font-size:.91rem;line-height:1.8;color:var(--ink-muted);font-weight:300} .jsw-page--installation-repair-services .path-link{display:inline-flex;margin-top:1.6rem;color:var(--forest);font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;font-weight:700} .jsw-page--installation-repair-services .path-link:hover{color:var(--gold)} .jsw-page--installation-repair-services .flooring-section{background:var(--cream);padding:7rem 5vw} .jsw-page--installation-repair-services .flooring-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:center} .jsw-page--installation-repair-services .flooring-board{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);align-self:center;width:100%;max-width:520px;margin:0 auto} .jsw-page--installation-repair-services .flooring-cell{position:relative;overflow:hidden;background:var(--white);min-height:176px;padding:1.4rem;display:flex;flex-direction:column;justify-content:end;background-size:cover;background-position:center center} .jsw-page--installation-repair-services .flooring-cell:nth-child(1){min-height:353px;grid-row:span 2} .jsw-page--installation-repair-services .flooring-cell:nth-child(4){color:var(--white)} .jsw-page--installation-repair-services .flooring-cell strong{font-family:var(--serif);font-size:1.4rem;font-weight:400;color:var(--white);line-height:1.15;position:relative;z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.38)} .jsw-page--installation-repair-services .flooring-cell:nth-child(4) strong{color:var(--white)} .jsw-page--installation-repair-services .flooring-cell span{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.92);font-weight:700;margin-top:.55rem;position:relative;z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.38)} .jsw-page--installation-repair-services .flooring-copy{padding-right:2vw} .jsw-page--installation-repair-services .flooring-copy ul{list-style:none;display:grid;gap:.8rem;margin:1.7rem 0 2rem} .jsw-page--installation-repair-services .flooring-copy li{border-left:2px solid var(--gold);padding-left:1rem;color:var(--ink-muted);font-size:.94rem;line-height:1.65} .jsw-page--installation-repair-services .tile-section{background:var(--white);padding:0} .jsw-page--installation-repair-services .tile-wrap{display:grid;grid-template-columns:1fr 1fr} .jsw-page--installation-repair-services .tile-left{padding:7rem 5vw;background:var(--forest);color:var(--white)} .jsw-page--installation-repair-services .tile-left .section-title{color:var(--white)} .jsw-page--installation-repair-services .tile-left .section-desc{color:rgba(255,255,255,.7)} .jsw-page--installation-repair-services .tile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);margin-top:2.2rem} .jsw-page--installation-repair-services .tile-square{background:var(--forest-mid);padding:1.4rem;min-height:150px} .jsw-page--installation-repair-services .tile-square strong{font-family:var(--serif);font-size:1.35rem;color:var(--white);font-weight:400;display:block;margin-bottom:.4rem} .jsw-page--installation-repair-services .tile-square p{font-size:.82rem;color:rgba(255,255,255,.66);line-height:1.65} .jsw-page--installation-repair-services .tile-right{padding:7rem 5vw;background:var(--cream-dark);display:flex;flex-direction:column;justify-content:center} .jsw-page--installation-repair-services .tile-check{display:flex;gap:1rem;align-items:flex-start;border-bottom:1px solid var(--border);padding:1.2rem 0} .jsw-page--installation-repair-services .tile-check span{width:28px;height:28px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0} .jsw-page--installation-repair-services .tile-check p{font-size:.93rem;color:var(--ink-muted);line-height:1.7} .jsw-page--installation-repair-services .quote-section{background:var(--ink);color:var(--white);padding:7rem 5vw} .jsw-page--installation-repair-services .quote-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:3rem;align-items:start} .jsw-page--installation-repair-services .quote-section .section-title{color:var(--white)} .jsw-page--installation-repair-services .quote-section .section-desc{color:rgba(255,255,255,.68)} .jsw-page--installation-repair-services .quote-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:2rem} .jsw-page--installation-repair-services .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--installation-repair-services .form-field{display:flex;flex-direction:column;gap:.35rem} .jsw-page--installation-repair-services .form-field.full{grid-column:1/-1} .jsw-page--installation-repair-services .form-field label{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--installation-repair-services .form-field input,.jsw-page--installation-repair-services .form-field select,.jsw-page--installation-repair-services .form-field textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);font-family:var(--sans);font-size:.95rem;padding:.95rem;border-radius:2px} .jsw-page--installation-repair-services .form-field textarea{min-height:132px;resize:vertical} .jsw-page--installation-repair-services .form-field input::placeholder,.jsw-page--installation-repair-services .form-field textarea::placeholder{color:rgba(255,255,255,.42)} .jsw-page--installation-repair-services .form-note{font-size:.84rem;line-height:1.7;color:rgba(255,255,255,.6);margin-top:1rem} @media(max-width:980px){ .jsw-page--installation-repair-services .hero-shell,.jsw-page--installation-repair-services .map-grid,.jsw-page--installation-repair-services .flooring-wrap,.jsw-page--installation-repair-services .tile-wrap,.jsw-page--installation-repair-services .quote-wrap{grid-template-columns:1fr} .jsw-page--installation-repair-services .hero-panel,.jsw-page--installation-repair-services .hero-image-stage{min-height:auto} .jsw-page--installation-repair-services .hero-image-stage{height:520px} .jsw-page--installation-repair-services .hero-service-strip,.jsw-page--installation-repair-services .paths-layout{grid-template-columns:1fr} .jsw-page--installation-repair-services .path-card,.jsw-page--installation-repair-services .path-card:nth-child(2),.jsw-page--installation-repair-services .path-card:nth-child(3){transform:none} .jsw-page--installation-repair-services .map-list{grid-template-columns:1fr 1fr} } @media(max-width:640px){ .jsw-page--installation-repair-services section,.jsw-page--installation-repair-services .repair-hero,.jsw-page--installation-repair-services .repair-map,.jsw-page--installation-repair-services .flooring-section,.jsw-page--installation-repair-services .quote-section{padding-left:5vw;padding-right:5vw} .jsw-page--installation-repair-services .hero-panel,.jsw-page--installation-repair-services .tile-left,.jsw-page--installation-repair-services .tile-right{padding:2rem} .jsw-page--installation-repair-services .hero-panel h1{font-size:3rem} .jsw-page--installation-repair-services .hero-service-strip,.jsw-page--installation-repair-services .map-list,.jsw-page--installation-repair-services .tile-grid,.jsw-page--installation-repair-services .form-grid{grid-template-columns:1fr} .jsw-page--installation-repair-services .hero-statement{position:relative;left:auto;right:auto;bottom:auto;margin:0;background:var(--cream)} .jsw-page--installation-repair-services .hero-image-stage{height:auto} .jsw-page--installation-repair-services .hero-image-stage img{height:360px} .jsw-page--installation-repair-services .flooring-board{transform:none} } @media(max-width:980px){.jsw-page--installation-repair-services .hero-image-stage{min-height:500px}.jsw-page--installation-repair-services .hero-statement{left:1.5rem;right:1.5rem}.jsw-page--installation-repair-services .carousel-controls{left:1.5rem;bottom:1.5rem}.jsw-page--installation-repair-services .flooring-board{max-width:none}} @media(max-width:620px){.jsw-page--installation-repair-services .hero-image-stage{min-height:430px}.jsw-page--installation-repair-services .hero-statement{left:1rem;right:1rem;bottom:4.5rem}.jsw-page--installation-repair-services .carousel-controls{left:1rem;bottom:1rem}.jsw-page--installation-repair-services .flooring-board{grid-template-columns:1fr}.jsw-page--installation-repair-services .flooring-cell:nth-child(1){grid-row:auto;min-height:176px}} .jsw-page--installation-repair-services .flooring-cell::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,15,15,.08) 20%,rgba(15,15,15,.52) 100%);z-index:1} .jsw-page--installation-repair-services .flooring-cell::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);z-index:1;pointer-events:none} .jsw-page--installation-repair-services .flooring-cell.flooring-durability{background-position:center center} .jsw-page--installation-repair-services .flooring-cell.flooring-flow{background-position:center center} .jsw-page--installation-repair-services .flooring-cell.flooring-finish{background-position:center center} .jsw-page--installation-repair-services .flooring-cell.flooring-fit{background-position:center center} .jsw-page--installation-repair-services .flooring-board.interactive-flooring-board{ position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); align-self:center; width:100%; max-width:560px; height:520px; margin:0 auto; overflow:hidden; transition: grid-template-columns .78s cubic-bezier(.19,1,.22,1), grid-template-rows .78s cubic-bezier(.19,1,.22,1); } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell{ position:relative; min-height:0; grid-row:auto!important; cursor:pointer; overflow:hidden; transform:translateZ(0); transition: opacity .46s ease, filter .46s ease, transform .72s cubic-bezier(.19,1,.22,1); } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell::before{ transition:background .55s ease; } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell.is-featured{ grid-column:1 / -1; grid-row:1 / 3; z-index:4; transform:scale(1); } .jsw-page--installation-repair-services .interactive-flooring-board.has-active{ grid-template-columns:repeat(4,1fr); grid-template-rows:minmax(0,1fr) 112px; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell.is-featured{ grid-column:1 / -1!important; grid-row:1!important; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:not(.is-featured){ grid-row:2!important; z-index:5; min-height:96px; opacity:.94; filter:saturate(.9) brightness(.96); transform:scale(.985); } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(1):not(.is-featured){grid-column:1!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(2):not(.is-featured){grid-column:2!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(3):not(.is-featured){grid-column:3!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(4):not(.is-featured){grid-column:4!important} .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell:hover{ filter:saturate(1.04) contrast(1.02); } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell strong,.jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell span{ transition:font-size .45s ease, opacity .45s ease, transform .45s ease; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:not(.is-featured) strong{ font-size:1.05rem; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:not(.is-featured) span{ font-size:.58rem; } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell.is-featured strong{ font-size:1.75rem; transform:translateY(-2px); } .jsw-page--installation-repair-services .interactive-flooring-board .flooring-cell.is-featured span{ font-size:.78rem; } .jsw-page--installation-repair-services .interactive-flooring-board.is-resetting .flooring-cell{ transition: opacity .5s ease, filter .5s ease, transform .82s cubic-bezier(.19,1,.22,1); } @media(max-width:640px){ .jsw-page--installation-repair-services .flooring-board.interactive-flooring-board{ height:560px; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active{ grid-template-columns:repeat(2,1fr); grid-template-rows:minmax(0,1fr) 88px 88px; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell.is-featured{ grid-column:1 / -1!important; grid-row:1!important; } .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(1):not(.is-featured){grid-column:1!important;grid-row:2!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(2):not(.is-featured){grid-column:2!important;grid-row:2!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(3):not(.is-featured){grid-column:1!important;grid-row:3!important} .jsw-page--installation-repair-services .interactive-flooring-board.has-active .flooring-cell:nth-child(4):not(.is-featured){grid-column:2!important;grid-row:3!important} } /* JSW interactive quality layer */ .jsw-page--installation-repair-services{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--installation-repair-services,.jsw-page--installation-repair-services *{box-sizing:border-box} .jsw-page--installation-repair-services img,.jsw-page--installation-repair-services video,.jsw-page--installation-repair-services canvas,.jsw-page--installation-repair-services svg{max-width:100%;height:auto} .jsw-page--installation-repair-services button,.jsw-page--installation-repair-services [role="button"],.jsw-page--installation-repair-services input[type="range"]{touch-action:manipulation} .jsw-page--installation-repair-services button,.jsw-page--installation-repair-services [role="button"],.jsw-page--installation-repair-services a,.jsw-page--installation-repair-services input,.jsw-page--installation-repair-services select,.jsw-page--installation-repair-services textarea{-webkit-tap-highlight-color:transparent} .jsw-page--installation-repair-services button:not(:disabled),.jsw-page--installation-repair-services [role="button"]:not([aria-disabled="true"]),.jsw-page--installation-repair-services input[type="range"]{cursor:pointer} .jsw-page--installation-repair-services button:disabled,.jsw-page--installation-repair-services [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--installation-repair-services [hidden]{display:none!important} .jsw-page--installation-repair-services [aria-busy="true"]{cursor:progress}.jsw-page--installation-repair-services :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--installation-repair-services :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--installation-repair-services :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--installation-repair-services .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--installation-repair-services :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--installation-repair-services :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--installation-repair-services :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--installation-repair-services :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--installation-repair-services,.jsw-page--installation-repair-services *{scroll-behavior:auto!important} .jsw-page--installation-repair-services *,.jsw-page--installation-repair-services *::before,.jsw-page--installation-repair-services *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Interior Painting ===== */ .jsw-page--interior-painting, .jsw-page--interior-painting *{margin:0;padding:0;box-sizing:border-box} .jsw-page--interior-painting{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--interior-painting{scroll-behavior:smooth} .jsw-page--interior-painting{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7} .jsw-page--interior-painting img{display:block;max-width:100%} .jsw-page--interior-painting a{color:inherit} .jsw-page--interior-painting .container{width:min(1180px,90vw);margin:0 auto} .jsw-page--interior-painting .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem} .jsw-page--interior-painting h1,.jsw-page--interior-painting h2,.jsw-page--interior-painting h3{font-family:var(--serif);font-weight:300;line-height:1.08;color:var(--ink)} .jsw-page--interior-painting h1{font-size:clamp(3.1rem,6.6vw,7rem);letter-spacing:-.035em} .jsw-page--interior-painting h2{font-size:clamp(2.15rem,4vw,4.15rem);letter-spacing:-.025em} .jsw-page--interior-painting h3{font-size:clamp(1.35rem,2vw,2.05rem)} .jsw-page--interior-painting p{color:var(--ink-muted);font-weight:300} .jsw-page--interior-painting .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:2px;padding:.92rem 1.55rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;border:1px solid transparent} .jsw-page--interior-painting .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--interior-painting .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--interior-painting .btn-light{background:var(--cream);color:var(--forest);border-color:var(--border)} .jsw-page--interior-painting .btn-light:hover{border-color:var(--gold);color:var(--gold)} .jsw-page--interior-painting .btn-line{background:transparent;color:var(--forest);border-color:var(--border)} .jsw-page--interior-painting .btn-line:hover{background:var(--forest);color:var(--white)} .jsw-page--interior-painting section{padding:7rem 0} .jsw-page--interior-painting .interior-hero{padding:9.2rem 0 4.5rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));overflow:hidden} .jsw-page--interior-painting .hero-shell{width:min(1240px,92vw);margin:0 auto;display:grid;grid-template-columns:.92fr 1.08fr;gap:3rem;align-items:stretch} .jsw-page--interior-painting .hero-copy{display:grid;grid-template-rows:auto 1fr auto;gap:1.7rem;padding:2.2rem 0} .jsw-page--interior-painting .hero-kicker{display:flex;align-items:center;gap:1rem} .jsw-page--interior-painting .hero-kicker::before{content:"";width:42px;height:1px;background:var(--gold)} .jsw-page--interior-painting .hero-copy p.hero-sub{font-size:1.02rem;line-height:1.88;max-width:610px} .jsw-page--interior-painting .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.4rem} .jsw-page--interior-painting .hero-service-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:var(--cream);margin-top:2rem} .jsw-page--interior-painting .hero-service-strip a{text-decoration:none;padding:1rem;border-right:1px solid var(--border);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--forest)} .jsw-page--interior-painting .hero-service-strip a:last-child{border-right:0} .jsw-page--interior-painting .hero-stage{display:grid;grid-template-columns:1fr 180px;grid-template-rows:1fr auto;gap:1rem;min-height:620px} .jsw-page--interior-painting .hero-feature{position:relative;grid-row:1/3;overflow:hidden;background:var(--forest)} .jsw-page--interior-painting .hero-feature img{width:100%;height:100%;object-fit:cover;opacity:.92} .jsw-page--interior-painting .hero-caption{position:absolute;left:1.25rem;right:1.25rem;bottom:1.25rem;background:rgba(250,248,244,.94);padding:1.2rem;border:1px solid var(--border)} .jsw-page--interior-painting .hero-caption strong{font-family:var(--serif);font-size:1.55rem;font-weight:300;color:var(--ink);display:block;line-height:1.1} .jsw-page--interior-painting .hero-caption span{font-size:.78rem;color:var(--ink-muted)} .jsw-page--interior-painting .hero-proof-card{background:var(--forest);color:var(--white);padding:1.35rem;display:flex;flex-direction:column;justify-content:space-between;min-height:300px;gap:1.15rem} .jsw-page--interior-painting .hero-proof-card span{font-family:var(--serif);font-size:3rem;color:var(--gold-light);line-height:1} .jsw-page--interior-painting .hero-proof-card p{color:rgba(255,255,255,.72);font-size:.86rem;line-height:1.65;margin-bottom:.8rem} .jsw-page--interior-painting .hero-proof-card ul{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin-top:.8rem} .jsw-page--interior-painting .hero-proof-card li{border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.78);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .5rem} .jsw-page--interior-painting .hero-side-img{overflow:hidden;border:1px solid var(--border);background:var(--cream)} .jsw-page--interior-painting .hero-side-img img{width:100%;height:100%;object-fit:cover;min-height:295px} .jsw-page--interior-painting .room-brief{background:var(--cream)} .jsw-page--interior-painting .brief-wrap{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start} .jsw-page--interior-painting .brief-index{position:sticky;top:110px;border-left:2px solid var(--gold);padding-left:1.5rem} .jsw-page--interior-painting .brief-index h2{font-size:clamp(2rem,3.2vw,3.1rem)} .jsw-page--interior-painting .brief-index p{margin-top:1rem} .jsw-page--interior-painting .brief-carousel{position:relative;background:var(--white);border:1px solid var(--border);overflow:hidden;min-height:360px;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--interior-painting .brief-track{display:flex;width:100%;transition:transform .62s cubic-bezier(.22,.61,.36,1)} .jsw-page--interior-painting .brief-card{flex:0 0 100%;background:var(--white);padding:2.4rem;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border)} .jsw-page--interior-painting .brief-card span{font-family:var(--serif);font-size:3.1rem;line-height:1;color:var(--gold)} .jsw-page--interior-painting .brief-card h3{margin:1rem 0 .7rem;font-size:clamp(1.6rem,2.5vw,2.35rem)} .jsw-page--interior-painting .brief-card p{font-size:1rem;line-height:1.85;max-width:650px} .jsw-page--interior-painting .brief-carousel-controls{display:flex;align-items:center;gap:.55rem;padding:0 2.4rem 2rem} .jsw-page--interior-painting .brief-carousel-controls button{width:34px;height:3px;border:0;background:var(--border);cursor:pointer;transition:background .25s ease,width .25s ease} .jsw-page--interior-painting .brief-carousel-controls button.active{width:56px;background:var(--gold)} .jsw-page--interior-painting .surface-section{background:var(--forest);color:var(--white);padding:0} .jsw-page--interior-painting .color-section{background:var(--cream-dark)} .jsw-page--interior-painting .color-wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:3rem;align-items:center} .jsw-page--interior-painting .palette-panel{background:var(--white);border:1px solid var(--border);padding:1.2rem;box-shadow:0 24px 60px rgba(28,28,25,.08)} .jsw-page--interior-painting .palette-img{height:360px;overflow:hidden} .jsw-page--interior-painting .palette-img img{width:100%;height:100%;object-fit:cover} .jsw-page--interior-painting .palette-notes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--border);margin-top:1rem} .jsw-page--interior-painting .palette-note{background:var(--cream);padding:1rem} .jsw-page--interior-painting .palette-note strong{display:block;color:var(--forest);font-size:.82rem;margin-bottom:.35rem} .jsw-page--interior-painting .palette-note span{font-size:.78rem;color:var(--ink-muted)} .jsw-page--interior-painting .color-copy{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--interior-painting .color-heading{grid-column:1/3;margin-bottom:1rem} .jsw-page--interior-painting .color-heading p{margin-top:1rem;max-width:680px} .jsw-page--interior-painting .color-tile{border-top:1px solid var(--border);padding-top:1.35rem} .jsw-page--interior-painting .color-tile h3{font-size:1.35rem;margin-bottom:.5rem} .jsw-page--interior-painting .color-tile p{font-size:.9rem} .jsw-page--interior-painting .process-section{background:var(--cream)} .jsw-page--interior-painting .process-arc{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start} .jsw-page--interior-painting .process-intro{background:var(--white);border:1px solid var(--border);padding:2rem;min-height:410px;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--interior-painting .process-intro p{margin-top:1rem} .jsw-page--interior-painting .process-steps{display:flex;flex-direction:column;gap:1rem} .jsw-page--interior-painting .step-card{display:grid;grid-template-columns:88px 1fr;gap:1rem;align-items:start;background:var(--cream-dark);border:1px solid var(--border);padding:1.1rem} .jsw-page--interior-painting .step-card:nth-child(even){margin-left:2.2rem;background:var(--white)} .jsw-page--interior-painting .step-card span{font-family:var(--serif);font-size:2.2rem;color:var(--gold);line-height:1} .jsw-page--interior-painting .step-card h3{font-size:1.25rem;margin-bottom:.25rem} .jsw-page--interior-painting .step-card p{font-size:.88rem;line-height:1.65} .jsw-page--interior-painting .room-gallery{background:var(--forest);padding:7rem 0;color:var(--white)} .jsw-page--interior-painting .gallery-wrap{width:min(1180px,90vw);margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:1rem;align-items:stretch} .jsw-page--interior-painting .gallery-copy{border:1px solid rgba(255,255,255,.14);padding:2.2rem;background:rgba(255,255,255,.05);display:flex;flex-direction:column;justify-content:space-between} .jsw-page--interior-painting .gallery-copy h2{color:var(--white)} .jsw-page--interior-painting .gallery-copy p{color:rgba(255,255,255,.72);margin:1rem 0 1.5rem} .jsw-page--interior-painting .gallery-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:260px 260px;gap:1rem} .jsw-page--interior-painting .gallery-mosaic figure{position:relative;overflow:hidden;background:var(--forest-mid)} .jsw-page--interior-painting .gallery-mosaic figure:first-child{grid-row:1/3} .jsw-page--interior-painting .gallery-mosaic img{width:100%;height:100%;object-fit:cover;opacity:.9} .jsw-page--interior-painting .gallery-mosaic figcaption{position:absolute;left:1rem;bottom:1rem;background:rgba(250,248,244,.92);padding:.65rem .8rem;color:var(--ink);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700} .jsw-page--interior-painting .quote-section{background:var(--cream)} .jsw-page--interior-painting .quote-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:start} .jsw-page--interior-painting .quote-copy{padding-top:1rem} .jsw-page--interior-painting .quote-copy p{margin:1rem 0 1.5rem;max-width:520px} .jsw-page--interior-painting .quote-card{background:var(--white);border:1px solid var(--border);padding:2rem;box-shadow:0 24px 60px rgba(28,28,25,.08)} .jsw-page--interior-painting .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--interior-painting .form-group{display:flex;flex-direction:column;gap:.4rem} .jsw-page--interior-painting .form-group.full{grid-column:1/3} .jsw-page--interior-painting label{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--forest)} .jsw-page--interior-painting input,.jsw-page--interior-painting select,.jsw-page--interior-painting textarea{width:100%;border:1px solid var(--border);background:var(--cream);padding:.9rem;font-family:var(--sans);font-size:.92rem;color:var(--ink)} .jsw-page--interior-painting textarea{min-height:130px;resize:vertical} .jsw-page--interior-painting .form-note{font-size:.82rem;margin-top:1rem} @media(max-width:1000px){.jsw-page--interior-painting .hero-shell,.jsw-page--interior-painting .brief-wrap,.jsw-page--interior-painting .color-wrap,.jsw-page--interior-painting .process-arc,.jsw-page--interior-painting .gallery-wrap,.jsw-page--interior-painting .quote-wrap{grid-template-columns:1fr}.jsw-page--interior-painting .hero-stage{min-height:520px}.jsw-page--interior-painting .brief-index{position:static}.jsw-page--interior-painting .brief-card:nth-child(2),.jsw-page--interior-painting .brief-card:nth-child(3),.jsw-page--interior-painting .step-card:nth-child(even){transform:none;margin-left:0}} @media(max-width:650px){.jsw-page--interior-painting section{padding:4.5rem 0}.jsw-page--interior-painting .interior-hero{padding-top:7rem}.jsw-page--interior-painting .hero-stage,.jsw-page--interior-painting .hero-service-strip,.jsw-page--interior-painting .color-copy,.jsw-page--interior-painting .palette-notes,.jsw-page--interior-painting .form-grid{grid-template-columns:1fr}.jsw-page--interior-painting .hero-feature{grid-row:auto}.jsw-page--interior-painting .hero-side-img img{min-height:220px}.jsw-page--interior-painting .hero-service-strip a{border-right:0;border-bottom:1px solid var(--border)}.jsw-page--interior-painting .color-heading,.jsw-page--interior-painting .form-group.full{grid-column:auto}.jsw-page--interior-painting .gallery-mosaic{grid-template-columns:1fr;grid-template-rows:260px 220px 220px}.jsw-page--interior-painting .gallery-mosaic figure:first-child{grid-row:auto}} @media(max-width:760px){.jsw-page--interior-painting .brief-carousel{min-height:330px}.jsw-page--interior-painting .brief-card{padding:1.6rem;min-height:290px}.jsw-page--interior-painting .brief-carousel-controls{padding:0 1.6rem 1.5rem}.jsw-page--interior-painting .hero-proof-card ul{display:grid;grid-template-columns:1fr}} .jsw-page--interior-painting .surface-section.color-wheel-section{ background:var(--forest); color:var(--white); padding:7rem 0; } .jsw-page--interior-painting .color-wheel-wrap{ margin:0 auto; display:grid; } .jsw-page--interior-painting .color-wheel-copy h2{ color:var(--white); font-family:var(--serif); font-size:clamp(2.15rem,4vw,4.15rem); font-weight:300; line-height:1.08; letter-spacing:-.025em; margin-bottom:1rem; } .jsw-page--interior-painting .color-wheel-copy p{ color:rgba(255,255,255,.72); line-height:1.85; margin-bottom:1.4rem; } .jsw-page--interior-painting .color-selection-note{ border-left:3px solid var(--gold-light); padding:1rem 0 1rem 1rem; color:rgba(255,255,255,.74); font-size:.92rem; } .jsw-page--interior-painting .color-wheel-lab{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); padding:1.25rem; display:grid; } .jsw-page--interior-painting .color-wheel-panel{ background:var(--cream); border:1px solid rgba(255,255,255,.18); display:flex; } .jsw-page--interior-painting .room-color-stage{ position:relative; min-height:540px; background:var(--selected-wall,#d8dfef); overflow:hidden; border:1px solid rgba(255,255,255,.18); transition:background .42s ease; } .jsw-page--interior-painting .room-color-stage::before{ content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(255,255,255,.12),transparent 38%), linear-gradient(90deg,rgba(0,0,0,.08),transparent 22%,transparent 74%,rgba(0,0,0,.08)); pointer-events:none; } .jsw-page--interior-painting .room-color-card{ position:absolute; background:rgba(250,248,244,.94); border-left:3px solid var(--gold); padding:1rem; color:var(--ink); z-index:4; } .jsw-page--interior-painting .room-color-card strong{ font-family:var(--serif); font-size:1.45rem; font-weight:400; display:block; line-height:1.1; } .jsw-page--interior-painting .room-color-card span{ display:block; color:var(--ink-muted); font-size:.84rem; margin-top:.25rem; } @media(max-width:1000px){ .jsw-page--interior-painting .color-wheel-wrap,.jsw-page--interior-painting .color-wheel-lab{grid-template-columns:1fr} .jsw-page--interior-painting .color-wheel-panel{min-height:350px} } @media(max-width:650px){ .jsw-page--interior-painting .surface-section.color-wheel-section{padding:4.5rem 0} .jsw-page--interior-painting .room-color-stage{min-height:430px} } .jsw-page--interior-painting .room-color-stage.real-room-preview{ position:relative; background:#d8dfef; overflow:hidden; border:1px solid rgba(255,255,255,.18); } .jsw-page--interior-painting .real-room-photo{ position:absolute; inset:0; width:100%; height:100%; z-index:1; } .jsw-page--interior-painting .room-wall-tint{ left:0; right:0; top:0; } .jsw-page--interior-painting .real-room-preview .room-color-card{ z-index:5; } @media(max-width:650px){ .jsw-page--interior-painting .room-color-stage.real-room-preview{ min-height:430px; } } .jsw-page--interior-painting .color-control-stack{ width:100%; display:grid; gap:1.2rem; justify-items:center; } .jsw-page--interior-painting .color-wheel-canvas-wrap{ position:relative; max-width:100%; } .jsw-page--interior-painting #interiorColorWheel{ width:100%; height:100%; display:block; border-radius:50%; cursor:crosshair; touch-action:none; box-shadow:inset 0 0 0 1px rgba(30,48,40,.12),0 24px 55px rgba(0,0,0,.18); background:#fff; } .jsw-page--interior-painting .color-magnifier{ position:absolute; width:82px; height:82px; border-radius:50%; border:3px solid var(--cream); box-shadow:0 12px 34px rgba(0,0,0,.32); pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.9); transition:opacity .16s ease, transform .16s ease; z-index:5; display:flex; align-items:center; justify-content:center; background:var(--cream); } .jsw-page--interior-painting .color-magnifier.active{ opacity:1; transform:translate(-50%,-50%) scale(1); } .jsw-page--interior-painting .color-magnifier span{ width:58px; height:58px; border-radius:50%; border:1px solid rgba(30,48,40,.22); background:var(--magnified-color,#d8dfef); } .jsw-page--interior-painting .color-slider-controls{ background:rgba(250,248,244,.92); border:1px solid var(--border); display:grid; } .jsw-page--interior-painting .color-slider-controls label{ display:flex; justify-content:space-between; gap:1rem; color:var(--forest); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; } .jsw-page--interior-painting .color-slider-controls input[type=range]{ width:100%; accent-color:var(--gold); } .jsw-page--interior-painting .room-wall-tint{ position:absolute; background:#d8dfef; transition:background .42s ease, opacity .42s ease; pointer-events:none; } .jsw-page--interior-painting .real-room-preview::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 42%); z-index:3; pointer-events:none; } @media(max-width:650px){ .jsw-page--interior-painting .color-wheel-canvas-wrap{ width:290px; height:290px; } .jsw-page--interior-painting .color-magnifier{ width:70px; height:70px; } .jsw-page--interior-painting .color-magnifier span{ width:50px; height:50px; } } .jsw-page--interior-painting .color-wheel-wrap{ width:min(1240px,92vw)!important; grid-template-columns:.72fr 1.28fr!important; gap:2rem!important; align-items:stretch!important; } .jsw-page--interior-painting .color-wheel-lab{ grid-template-columns:300px minmax(0,1fr)!important; gap:1rem!important; align-items:stretch!important; min-height:560px!important; } .jsw-page--interior-painting .color-wheel-panel{ padding:.9rem!important; min-height:560px!important; align-items:center!important; justify-content:center!important; } .jsw-page--interior-painting .color-control-stack{ height:100%!important; align-content:center!important; } .jsw-page--interior-painting .color-wheel-canvas-wrap{ width:270px!important; height:270px!important; } .jsw-page--interior-painting .color-slider-controls{ width:270px!important; max-width:100%!important; padding:.85rem!important; gap:.55rem!important; } .jsw-page--interior-painting .room-color-stage.real-room-preview{ min-height:560px!important; height:100%!important; } .jsw-page--interior-painting .real-room-photo{ object-fit:cover!important; object-position:center center!important; } .jsw-page--interior-painting .room-wall-tint{ inset:0!important; height:auto!important; width:auto!important; opacity:.58!important; mix-blend-mode:multiply!important; z-index:2!important; clip-path:polygon( 0 0, 100% 0, 100% 61%, 83% 61%, 83% 100%, 66% 100%, 66% 62%, 48% 62%, 48% 56%, 28% 56%, 28% 100%, 0 100% )!important; } .jsw-page--interior-painting .room-color-card{ left:1rem!important; right:1rem!important; bottom:1rem!important; } @media(max-width:1100px){ .jsw-page--interior-painting .color-wheel-wrap{ grid-template-columns:1fr!important; } .jsw-page--interior-painting .color-wheel-lab{ grid-template-columns:280px minmax(0,1fr)!important; min-height:520px!important; } .jsw-page--interior-painting .color-wheel-panel{ min-height:520px!important; } .jsw-page--interior-painting .room-color-stage.real-room-preview{ min-height:520px!important; } .jsw-page--interior-painting .color-wheel-canvas-wrap,.jsw-page--interior-painting .color-slider-controls{ width:255px!important; } } @media(max-width:760px){ .jsw-page--interior-painting .color-wheel-lab{ grid-template-columns:1fr!important; min-height:auto!important; } .jsw-page--interior-painting .color-wheel-panel{ min-height:auto!important; } .jsw-page--interior-painting .color-control-stack{ padding:1rem 0!important; } .jsw-page--interior-painting .color-wheel-canvas-wrap,.jsw-page--interior-painting .color-slider-controls{ width:min(285px,82vw)!important; } .jsw-page--interior-painting .room-color-stage.real-room-preview{ min-height:430px!important; } } /* JSW interactive quality layer */ .jsw-page--interior-painting{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--interior-painting,.jsw-page--interior-painting *{box-sizing:border-box} .jsw-page--interior-painting img,.jsw-page--interior-painting video,.jsw-page--interior-painting canvas,.jsw-page--interior-painting svg{max-width:100%;height:auto} .jsw-page--interior-painting button,.jsw-page--interior-painting [role="button"],.jsw-page--interior-painting input[type="range"]{touch-action:manipulation} .jsw-page--interior-painting button,.jsw-page--interior-painting [role="button"],.jsw-page--interior-painting a,.jsw-page--interior-painting input,.jsw-page--interior-painting select,.jsw-page--interior-painting textarea{-webkit-tap-highlight-color:transparent} .jsw-page--interior-painting button:not(:disabled),.jsw-page--interior-painting [role="button"]:not([aria-disabled="true"]),.jsw-page--interior-painting input[type="range"]{cursor:pointer} .jsw-page--interior-painting button:disabled,.jsw-page--interior-painting [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--interior-painting [hidden]{display:none!important} .jsw-page--interior-painting [aria-busy="true"]{cursor:progress}.jsw-page--interior-painting :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--interior-painting :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--interior-painting :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--interior-painting .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--interior-painting :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--interior-painting :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--interior-painting :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--interior-painting :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--interior-painting,.jsw-page--interior-painting *{scroll-behavior:auto!important} .jsw-page--interior-painting *,.jsw-page--interior-painting *::before,.jsw-page--interior-painting *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* JSW-INTERIOR-COLOR-RESTORE-V3:START */ .jsw-page--interior-painting .room-color-stage.real-room-preview{background:#d8dfef} .jsw-page--interior-painting .real-room-photo{display:block!important;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:1} .jsw-page--interior-painting .room-wall-tint{z-index:2;mix-blend-mode:multiply;clip-path:polygon(0 0,100% 0,100% 61%,83% 61%,83% 100%,66% 100%,66% 62%,48% 62%,48% 56%,28% 56%,28% 100%,0 100%)} .jsw-page--interior-painting .real-room-preview::after{z-index:3}.jsw-page--interior-painting .real-room-preview .room-color-card{z-index:5} /* JSW-INTERIOR-COLOR-RESTORE-V3:END */ /* ===== Kitchen, Bathroom & Basement Design Studio ===== */ .jsw-page--kitchen-bathroom-basement-design-studio,.jsw-page--kitchen-bathroom-basement-design-studio *{margin:0;padding:0}.jsw-page--kitchen-bathroom-basement-design-studio{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--muted:#746F64;--gold:#B8975A;--forest:#1E3028;--forest-mid:#2B4438;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--wall:#d8c4aa;--cabinet:#2c3e35;--accent:#b8975a}.jsw-page--kitchen-bathroom-basement-design-studio{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7}.jsw-page--kitchen-bathroom-basement-design-studio img{display:block;max-width:100%}.jsw-page--kitchen-bathroom-basement-design-studio a{color:inherit}.jsw-page--kitchen-bathroom-basement-design-studio .container{width:min(1180px,90vw);margin:0 auto}.jsw-page--kitchen-bathroom-basement-design-studio .btn{display:inline-flex;text-decoration:none;border-radius:2px;padding:.92rem 1.55rem;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;border:1px solid transparent}.jsw-page--kitchen-bathroom-basement-design-studio .btn-primary{background:var(--forest);color:#fff}.jsw-page--kitchen-bathroom-basement-design-studio .btn-light{background:#fff;border-color:var(--border);color:var(--forest)}.jsw-page--kitchen-bathroom-basement-design-studio .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.jsw-page--kitchen-bathroom-basement-design-studio .eyebrow:before{content:"";width:30px;height:1px;background:var(--gold)}.jsw-page--kitchen-bathroom-basement-design-studio h1,.jsw-page--kitchen-bathroom-basement-design-studio h2,.jsw-page--kitchen-bathroom-basement-design-studio h3{font-family:var(--serif);font-weight:300;line-height:1.07;color:var(--ink)}.jsw-page--kitchen-bathroom-basement-design-studio h1{font-size:clamp(3.1rem,6.4vw,6.85rem);letter-spacing:-.045em}.jsw-page--kitchen-bathroom-basement-design-studio h2{font-size:clamp(2.25rem,4.2vw,4.4rem);letter-spacing:-.034em}.jsw-page--kitchen-bathroom-basement-design-studio h3{font-size:clamp(1.45rem,2.4vw,2.35rem)}.jsw-page--kitchen-bathroom-basement-design-studio p{color:var(--muted);font-weight:300}.jsw-page--kitchen-bathroom-basement-design-studio .hero{padding:118px 5vw 5.6rem;background:linear-gradient(180deg,var(--cream),var(--cream-dark));position:relative;overflow:hidden}.jsw-page--kitchen-bathroom-basement-design-studio .hero:before{content:"";position:absolute;right:-18vw;top:7rem;width:48vw;height:48vw;border-radius:50%;background:rgba(184,151,90,.09)}.jsw-page--kitchen-bathroom-basement-design-studio .hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(390px,.86fr);gap:3.6rem;align-items:center}.jsw-page--kitchen-bathroom-basement-design-studio .hero-copy p{max-width:690px;font-size:1.05rem;line-height:1.88;margin:1.4rem 0 2rem}.jsw-page--kitchen-bathroom-basement-design-studio .hero-copy h1 em{font-style:italic;color:var(--gold)}.jsw-page--kitchen-bathroom-basement-design-studio .hero-actions{display:flex;gap:1rem;flex-wrap:wrap}.jsw-page--kitchen-bathroom-basement-design-studio .hero-card{background:var(--forest);padding:1rem;box-shadow:0 28px 70px rgba(30,48,40,.18);border:1px solid rgba(255,255,255,.13)}.jsw-page--kitchen-bathroom-basement-design-studio .intent{background:var(--forest);color:#fff;padding:4.5rem 5vw}.jsw-page--kitchen-bathroom-basement-design-studio .intent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}.jsw-page--kitchen-bathroom-basement-design-studio .intent-card{background:var(--forest);padding:1.55rem}.jsw-page--kitchen-bathroom-basement-design-studio .intent-card:nth-child(2){background:var(--forest-mid)}.jsw-page--kitchen-bathroom-basement-design-studio .intent-card strong{font-family:var(--serif);font-size:1.6rem;font-weight:400;color:#fff}.jsw-page--kitchen-bathroom-basement-design-studio .intent-card p{font-size:.9rem;color:rgba(255,255,255,.66);margin-top:.45rem}.jsw-page--kitchen-bathroom-basement-design-studio .section,.jsw-page--kitchen-bathroom-basement-design-studio .process,.jsw-page--kitchen-bathroom-basement-design-studio .quote{padding:7rem 5vw}.jsw-page--kitchen-bathroom-basement-design-studio .process{background:var(--forest);color:#fff}.jsw-page--kitchen-bathroom-basement-design-studio .process h2{color:#fff}.jsw-page--kitchen-bathroom-basement-design-studio .process p{color:rgba(255,255,255,.68)}.jsw-page--kitchen-bathroom-basement-design-studio .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:3rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}.jsw-page--kitchen-bathroom-basement-design-studio .step{background:var(--forest);padding:1.5rem}.jsw-page--kitchen-bathroom-basement-design-studio .step:nth-child(even){background:var(--forest-mid)}.jsw-page--kitchen-bathroom-basement-design-studio .step span{font-family:var(--serif);font-size:2.4rem;color:#D9BE82}.jsw-page--kitchen-bathroom-basement-design-studio .step strong{display:block;color:#fff;margin:.8rem 0 .35rem}.jsw-page--kitchen-bathroom-basement-design-studio .step p{font-size:.86rem}.jsw-page--kitchen-bathroom-basement-design-studio .quote-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem}.jsw-page--kitchen-bathroom-basement-design-studio .quote-box{padding:2rem}.jsw-page--kitchen-bathroom-basement-design-studio .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.jsw-page--kitchen-bathroom-basement-design-studio .field{display:grid;gap:.35rem}.jsw-page--kitchen-bathroom-basement-design-studio .field.full{grid-column:1/-1}.jsw-page--kitchen-bathroom-basement-design-studio label{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:#D9BE82;font-weight:700}.jsw-page--kitchen-bathroom-basement-design-studio input,.jsw-page--kitchen-bathroom-basement-design-studio select,.jsw-page--kitchen-bathroom-basement-design-studio textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;font-family:var(--sans);font-size:.95rem;padding:.95rem;border-radius:2px}.jsw-page--kitchen-bathroom-basement-design-studio textarea{min-height:128px}@media(max-width:980px){.jsw-page--kitchen-bathroom-basement-design-studio .hero-grid,.jsw-page--kitchen-bathroom-basement-design-studio .quote-grid{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .intent-grid,.jsw-page--kitchen-bathroom-basement-design-studio .steps{grid-template-columns:1fr 1fr}}@media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .intent-grid,.jsw-page--kitchen-bathroom-basement-design-studio .steps,.jsw-page--kitchen-bathroom-basement-design-studio .form-grid{grid-template-columns:1fr}} /* Finished kitchen, bathroom, and basement image expansion */ @media(max-width:980px){} @media(max-width:640px){} /* Elevated interactive hero showcase */ .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience{ padding:1rem; display:grid; grid-template-rows:auto minmax(410px,1fr) auto auto auto; gap:.85rem; min-height:680px; background: radial-gradient(circle at 18% 12%,rgba(217,190,130,.2),transparent 28%), linear-gradient(145deg,var(--forest),#15231d); } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-top{ display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:start; color:#fff; padding:.55rem .55rem 0; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-kicker{ display:block; color:#D9BE82; font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin-bottom:.3rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-top strong{ display:block; font-family:var(--serif); color:#fff; font-size:1.65rem; font-weight:400; line-height:1.05; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-top p{ color:rgba(255,255,255,.68); font-size:.86rem; line-height:1.55; max-width:430px; margin-top:.35rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-count{ min-width:76px; text-align:right; color:#fff; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-count span{ display:block; font-family:var(--serif); color:#D9BE82; font-size:2.4rem; line-height:.9; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-count small{ display:block; color:rgba(255,255,255,.6); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame{ position:relative; overflow:hidden; border-radius:26px; min-height:410px; border:1px solid rgba(255,255,255,.14); background:#101513; box-shadow:0 24px 60px rgba(0,0,0,.22); } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame img{ width:100%; height:100%; min-height:410px; object-fit:cover; object-position:center center; opacity:.95; transition:opacity .5s cubic-bezier(.22,.61,.36,1), transform .82s cubic-bezier(.22,.61,.36,1); } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame:after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,21,19,0) 44%,rgba(16,21,19,.74)); pointer-events:none; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame figcaption{ position:absolute; left:1rem; right:1rem; bottom:1rem; z-index:3; background:rgba(250,248,244,.93); border-left:3px solid var(--gold); padding:.9rem 1rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame figcaption span{ display:block; color:var(--gold); font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; font-weight:700; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame figcaption strong{ display:block; font-family:var(--serif); font-size:1.42rem; line-height:1.05; font-weight:400; color:var(--ink); margin-top:.18rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:42px; height:48px; border:1px solid rgba(255,255,255,.42); background:rgba(30,48,40,.78); color:#fff; cursor:pointer; font-size:1.7rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-arrow:hover{background:var(--gold);color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-arrow.prev{left:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-arrow.next{right:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs{ display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs button{ border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); color:rgba(255,255,255,.82); padding:.68rem .45rem; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; cursor:pointer; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs button.active,.jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs button:hover{ background:#fff; color:var(--forest); } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumbs{ display:flex; gap:.55rem; overflow-x:auto; padding:.2rem .05rem .55rem; scrollbar-width:thin; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb{ flex:0 0 96px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); padding:.32rem; cursor:pointer; transition:border-color .22s ease,background-color .22s ease,transform .22s ease; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb.active,.jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb:hover{ border-color:#D9BE82; background:rgba(217,190,130,.14); transform:translateY(-2px); } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb img{ width:100%; height:62px; object-fit:cover; margin-bottom:.35rem; } @media (min-width:981px){ .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs{min-height:40.05px} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumbs{min-height:148.33px} } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb span{ display:block; color:#D9BE82; font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-thumb strong{ display:block; color:#fff; font-family:var(--serif); font-size:.82rem; line-height:1.05; font-weight:400; margin-top:.1rem; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-bottom{ display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); padding:.9rem; color:#fff; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-bottom strong{ display:block; font-family:var(--serif); font-size:1.18rem; line-height:1.05; font-weight:400; } .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-bottom span{ display:block; color:rgba(255,255,255,.66); font-size:.78rem; line-height:1.5; margin-top:.2rem; } @media(max-width:640px){ .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience{min-height:auto} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame,.jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-frame img{min-height:360px} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-bottom{grid-template-columns:1fr} .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-tabs{grid-template-columns:1fr 1fr} } /* Image-based remodeling finish tuner */ .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-section{ position:relative; padding:clamp(5rem,7vw,7.5rem) 5vw; background: radial-gradient(circle at 8% 12%,rgba(184,151,90,.12),transparent 30%), var(--cream); } .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-anchor{display:block;position:relative;top:-98px;height:0;overflow:hidden} .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-shell{ width:min(1180px,90vw); margin:auto; display:grid; grid-template-columns:.82fr 1.18fr; gap:3rem; align-items:center; } .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-copy .kicker{ color:var(--gold); font-size:.7rem; letter-spacing:.17em; text-transform:uppercase; font-weight:700; margin-bottom:1rem; } .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-copy h2{ font-family:var(--serif); font-size:clamp(2.25rem,4vw,4rem); font-weight:300; line-height:1.04; letter-spacing:-.02em; margin-bottom:1rem; } .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-copy p{ color:var(--muted); font-weight:300; line-height:1.86; margin-bottom:1.5rem; } .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner{ background:#fff; border:1px solid var(--border); padding:1.25rem; box-shadow:0 24px 70px rgba(28,28,25,.10); } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage{ position:relative; min-height:520px; border:1px solid var(--border); overflow:hidden; background:var(--forest); } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage:after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,21,19,0) 42%,rgba(16,21,19,.26)); pointer-events:none; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage img{ position:absolute; inset:0; width:100%; height:100%; min-height:520px; object-fit:cover; object-position:center center; display:block; opacity:1; transform:scale(1); transition:opacity .32s ease,transform .55s cubic-bezier(.2,.7,.2,1); } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage img.is-changing{opacity:.28;transform:scale(1.018)} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout{ position:absolute; left:1rem; right:1rem; bottom:1rem; z-index:3; background:rgba(30,48,40,.94); color:#fff; padding:1rem 1.05rem; border-left:3px solid var(--gold); box-shadow:0 16px 36px rgba(0,0,0,.18); transition:opacity .25s ease,transform .25s ease; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout.is-changing{opacity:.48;transform:translateY(4px)} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout span{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:#D9BE82; font-weight:700; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout strong{ font-family:var(--serif); font-size:1.45rem; font-weight:400; display:block; line-height:1.1; margin:.25rem 0; color:#fff; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout p{font-size:.86rem;line-height:1.58;color:rgba(255,255,255,.74)} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); margin-top:1rem; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label{ background:var(--cream); padding:1rem; color:var(--ink); cursor:pointer; transition:background .25s ease,color .25s ease; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label.active{background:var(--forest);color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label.active>span{color:#D9BE82} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label>span{ display:block; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:.75rem; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers input{width:100%;accent-color:var(--gold);cursor:pointer} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-slider-scale{ display:flex; justify-content:space-between; gap:1rem; margin-top:.4rem; color:var(--muted); } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-slider-scale small{ font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; } .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label.active .tuner-slider-scale{color:rgba(255,255,255,.68)} @media(max-width:980px){ .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-shell{grid-template-columns:1fr} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage,.jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage img{min-height:460px} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers{grid-template-columns:1fr} } @media(max-width:640px){ .jsw-page--kitchen-bathroom-basement-design-studio .finish-tuner-section{padding:4.5rem 5vw} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage,.jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage img{min-height:390px} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout{left:.7rem;right:.7rem;bottom:.7rem} .jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout strong{font-size:1.25rem} } @media(prefers-reduced-motion:reduce){ .jsw-page--kitchen-bathroom-basement-design-studio .tuner-stage img,.jsw-page--kitchen-bathroom-basement-design-studio .tuner-readout,.jsw-page--kitchen-bathroom-basement-design-studio .tuner-levers label{transition:none!important} } /* Kitchen State Viewer - parent-directory bubbles with direct subject switching */ .jsw-page--kitchen-bathroom-basement-design-studio .kitchen-state-viewer{padding:clamp(3rem,6vw,5.5rem) clamp(1rem,4vw,3rem);background:linear-gradient(180deg,#f6efe4,#fffaf3);border-top:1px solid rgba(102,82,63,.14);border-bottom:1px solid rgba(102,82,63,.14)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-head{max-width:980px;margin:0 auto 1.8rem;display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;text-align:center} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-head h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;color:var(--ink);font-weight:400} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-head p{color:var(--muted);line-height:1.65} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-head>div:last-child{display:grid;justify-items:center}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-head p{max-width:760px;margin-inline:auto}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-head-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:1.1rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.72fr);gap:1.2rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-visual{min-width:0;background:#fff;border:1px solid rgba(102,82,63,.14);box-shadow:0 26px 70px rgba(36,45,38,.11);overflow:hidden} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage{position:relative;width:100%;aspect-ratio:1448/1086;margin:0;background:#f2eadf;overflow:hidden;--ksv-scale:1;--ksv-x:0%;--ksv-y:0%} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:center center;transition:transform 1s cubic-bezier(.22,.61,.36,1),opacity .55s ease,filter .55s ease;transform-origin:center center} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-parent-image{z-index:1;opacity:1;transform:translate(var(--ksv-x),var(--ksv-y)) scale(var(--ksv-scale))} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-detail-image{z-index:2;opacity:0;filter:blur(3px)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-detail .ksv-parent-image{opacity:0} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-detail .ksv-detail-image{opacity:1;filter:blur(0)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-transitioning .ksv-parent-image{opacity:1;transform:translate(var(--ksv-x),var(--ksv-y)) scale(var(--ksv-scale))} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-transitioning .ksv-detail-image{opacity:0} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-transitioning.ksv-crossfade .ksv-detail-image{opacity:1;filter:blur(0)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspots{position:absolute;inset:0;z-index:3;transition:opacity .35s ease} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-detail .ksv-hotspots,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage.is-transitioning .ksv-hotspots{opacity:0;pointer-events:none} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{position:absolute;width:auto;height:auto;border:0;background:rgba(250,248,244,.94);color:#3f332a;border-left:3px solid var(--gold);border-radius:999px;padding:.42rem .68rem;cursor:pointer;box-shadow:0 12px 30px rgba(33,28,22,.18);transition:transform .18s ease,box-shadow .18s ease,background .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot:hover{transform:translateY(-2px) scale(1.03);background:#fff;box-shadow:0 16px 34px rgba(33,28,22,.22)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot span{display:block;position:static;font-size:.68rem;line-height:1;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:#3f332a} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot-cabinets{left:30%;top:23%} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot-countertops{left:39%;top:54%} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot-flooring{left:75%;top:82%} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot-backsplash{left:18%;top:36%} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage-controls{display:flex;justify-content:flex-end;padding:.85rem 1rem 0;background:linear-gradient(180deg,#fff,var(--cream))} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding:1rem;background:linear-gradient(180deg,#fff,var(--cream))} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab{border:1px solid rgba(102,82,63,.16);background:#fff;border-radius:18px;padding:.55rem;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab:hover{transform:translateY(-2px);border-color:rgba(181,139,75,.42)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab.active{border-color:rgba(181,139,75,.8);box-shadow:0 15px 34px rgba(42,35,27,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block;margin-bottom:.55rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab span{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tab strong{display:block;color:var(--ink);font-size:.95rem;margin-top:.14rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-panel{display:grid;gap:1rem;align-content:start} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-card{background:#fff;border:1px solid rgba(102,82,63,.14);border-radius:24px;padding:1.2rem;box-shadow:0 18px 52px rgba(42,35,27,.08)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-label{display:block;color:var(--gold);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;margin-bottom:.55rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-card strong{display:block;font-family:var(--serif);font-size:1.45rem;line-height:1.12;font-weight:400;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-card p{color:var(--muted);line-height:1.58;margin:.55rem 0 0} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-current,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-summary,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-notes{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-pill{display:inline-flex;gap:.35rem;align-items:center;border-radius:999px;background:#f4eee6;color:#43382d;padding:.48rem .72rem;font-size:.82rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-pill strong{font-family:inherit;font-size:inherit;font-weight:700} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-options{display:grid;gap:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-option-grid{display:flex;flex-wrap:wrap;gap:.6rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-choice{appearance:none;border:1px solid rgba(86,73,61,.18);background:#fff;color:#3e342c;border-radius:999px;padding:.68rem .9rem;font:inherit;font-size:.84rem;line-height:1.2;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-choice:hover{transform:translateY(-1px);border-color:rgba(86,73,61,.35)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-choice.active{background:#3f332a;color:#fff;border-color:#3f332a;box-shadow:0 10px 24px rgba(38,28,20,.14)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-btn{border:0;border-radius:999px;background:var(--gold);color:#fff;padding:.78rem 1rem;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(181,139,75,.28)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-btn.secondary{background:#f1e9dc;color:#4d3e30} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-note-card textarea{width:100%;min-height:88px;border:1px solid rgba(102,82,63,.18);border-radius:16px;padding:.85rem;resize:vertical;font:inherit;margin-top:.9rem;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-note-item{width:100%;display:flex;gap:.5rem;justify-content:space-between;align-items:flex-start;background:#f7f1e8;border-radius:14px;padding:.72rem .8rem;color:#44372c;font-size:.88rem;line-height:1.45} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-note-item button{border:0;background:transparent;color:#85623e;cursor:pointer;font-size:1.1rem} @media(max-width:1080px){.jsw-page--kitchen-bathroom-basement-design-studio .ksv-head,.jsw-page--kitchen-bathroom-basement-design-studio .ksv{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .ksv-tabs{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-head-actions,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-actions,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-stage-controls{flex-direction:column}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-btn,.jsw-page--kitchen-bathroom-basement-design-studio .ksv-head-actions .btn{width:100%;justify-content:center}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot span{font-size:.62rem}.jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{padding:.36rem .55rem}} /* Kitchen finish horizontal banner carousel */ .jsw-page--kitchen-bathroom-basement-design-studio .jsw-image-banner{padding:clamp(3rem,6vw,5.5rem) 0;background:var(--forest);color:#fff;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);overflow:hidden} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-head{max-width:760px;margin-bottom:1.3rem} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-head h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;font-weight:400;color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-head p:not(.eyebrow){color:rgba(255,255,255,.68);line-height:1.65;margin-top:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-window{width:100%;overflow:hidden;outline:none} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-track{display:flex;gap:1rem;width:max-content;animation:jswBannerScroll 56s linear infinite;animation-play-state:paused;padding:0 1rem} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-image-banner.is-visible .jsw-banner-track{animation-play-state:running} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-image-banner:hover .jsw-banner-track,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-image-banner.is-paused .jsw-banner-track,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-window:focus .jsw-banner-track{animation-play-state:paused} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-card{position:relative;flex:0 0 clamp(260px,30vw,430px);aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:var(--forest-mid);box-shadow:0 22px 54px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.14);margin:0} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-card img{width:100%;height:100%;display:block;transform:scale(1.02)} @keyframes jswBannerScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - .5rem))}} @media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-track{gap:.75rem}.jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-card{flex-basis:78vw;border-radius:18px}} @media(prefers-reduced-motion:reduce){.jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-track{animation:none;transform:none}} /* Bathroom framed selection studio */ .jsw-page--kitchen-bathroom-basement-design-studio .bathroom-frame-studio{padding:clamp(4.5rem,7vw,7rem) 5vw;background:var(--cream);border-top:1px solid rgba(102,82,63,.12);border-bottom:1px solid rgba(102,82,63,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-head{width:min(980px,90vw);margin:0 auto 1.7rem;display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;text-align:center} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-head h2{font-family:var(--serif);font-size:clamp(2.1rem,4vw,3.8rem);line-height:1.02;font-weight:400;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-head p{color:var(--muted);line-height:1.72} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-head>div:last-child{display:grid;justify-items:center}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-head p{max-width:760px;margin-inline:auto}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-head-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:1.1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-shell{width:min(1180px,90vw);margin:auto;background:#fff;border:1px solid var(--border);box-shadow:0 26px 70px rgba(30,48,40,.10);padding:1rem;display:grid;gap:.85rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-middle{display:grid;grid-template-columns:minmax(210px,.36fr) minmax(360px,1fr) minmax(210px,.36fr);gap:.85rem;align-items:stretch} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu{display:grid;gap:.65rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-top{grid-template-columns:repeat(4,minmax(0,1fr))} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-left,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-right{align-content:stretch} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice{position:relative;display:grid;grid-template-columns:72px 1fr;gap:.65rem;align-items:center;border:1px solid rgba(102,82,63,.15);background:#faf7f1;border-radius:18px;padding:.55rem;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;min-height:92px} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice:hover{transform:translateY(-2px);border-color:rgba(184,151,90,.42);box-shadow:0 12px 28px rgba(42,35,27,.08)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice.active{background:#fff;border-color:rgba(184,151,90,.88);box-shadow:0 16px 36px rgba(42,35,27,.13)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice input{position:absolute;opacity:0;pointer-events:none} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-thumb{width:72px;height:72px;border-radius:14px;overflow:hidden;background:var(--forest);border:1px solid rgba(102,82,63,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-thumb img{width:100%;height:100%;object-fit:cover;display:block} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice-copy span{display:block;color:var(--gold);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;line-height:1} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice-copy strong{display:block;color:var(--ink);font-size:.86rem;line-height:1.12;margin-top:.28rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice-copy small{display:block;color:var(--muted);font-size:.72rem;line-height:1.25;margin-top:.24rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage{position:relative;min-height:690px;background:var(--forest);overflow:hidden;margin:0;border-radius:26px;border:1px solid rgba(102,82,63,.16)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage img{width:100%;height:100%;min-height:690px;object-fit:cover;object-position:center center;display:block;transition:opacity .28s ease,transform .55s cubic-bezier(.2,.7,.2,1)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage.is-changing img{opacity:.38;transform:scale(1.018)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-footer{display:grid;grid-template-columns:1fr .82fr;gap:.85rem;background:var(--cream);border:1px solid rgba(102,82,63,.12);border-radius:24px;padding:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-current span{display:block;color:var(--gold);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;margin-bottom:.35rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-current strong{display:block;font-family:var(--serif);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1.04;font-weight:400;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-current p{color:var(--muted);line-height:1.6;margin:.5rem 0 0} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-note textarea{width:100%;min-height:96px;border:1px solid rgba(102,82,63,.18);border-radius:16px;padding:.85rem;resize:vertical;font:inherit;color:var(--ink);background:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-btn{border:0;border-radius:999px;background:var(--gold);color:#fff;padding:.78rem 1rem;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(184,151,90,.28)} .jsw-page--kitchen-bathroom-basement-design-studio .bfs-btn.secondary{background:#eee6da;color:#4d3e30} @media(max-width:1120px){.jsw-page--kitchen-bathroom-basement-design-studio .bfs-head,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-footer{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-middle{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-top,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-left,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-right{grid-template-columns:repeat(2,minmax(0,1fr))}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage img{min-height:560px}} @media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-top,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-left,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-menu-right{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-choice{grid-template-columns:64px 1fr;min-height:82px}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-thumb{width:64px;height:64px}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-stage img{min-height:420px;border-radius:18px}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-actions,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-head-actions{flex-direction:column}.jsw-page--kitchen-bathroom-basement-design-studio .bfs-btn,.jsw-page--kitchen-bathroom-basement-design-studio .bfs-head-actions .btn{width:100%;justify-content:center}} /* Bathroom services overview section */ .jsw-page--kitchen-bathroom-basement-design-studio .bathroom-services-overview{padding:clamp(4.5rem,7vw,7rem) 5vw;background:var(--forest);color:#fff;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .bso-shell{width:min(1180px,90vw);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:3rem;align-items:center} .jsw-page--kitchen-bathroom-basement-design-studio .bso-copy h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.02;font-weight:400;color:#fff;margin-bottom:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso-copy p{color:rgba(255,255,255,.72);line-height:1.75;max-width:720px} .jsw-page--kitchen-bathroom-basement-design-studio .bso-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.7rem 0} .jsw-page--kitchen-bathroom-basement-design-studio .bso-service-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso-service-card span{display:block;color:#D9BE82;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:.45rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso-service-card strong{display:block;font-size:1rem;line-height:1.2;color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bso-service-card p{font-size:.86rem;line-height:1.55;margin:.45rem 0 0;color:rgba(255,255,255,.66)} .jsw-page--kitchen-bathroom-basement-design-studio .bso-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card{position:relative;border-radius:30px;overflow:hidden;background:var(--forest-mid);min-height:620px;box-shadow:0 28px 72px rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.14)} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card img{width:100%;height:100%;min-height:620px;object-fit:cover;display:block} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,48,40,0) 48%,rgba(30,48,40,.78));pointer-events:none} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-note{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;background:rgba(250,248,244,.94);border-left:3px solid var(--gold);border-radius:18px;padding:1rem;color:#342b22;box-shadow:0 16px 36px rgba(0,0,0,.18)} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-note strong{display:block;font-family:var(--serif);font-size:1.35rem;line-height:1.05;font-weight:400} .jsw-page--kitchen-bathroom-basement-design-studio .bso-image-note span{display:block;color:var(--muted);font-size:.85rem;line-height:1.45;margin-top:.35rem} @media(max-width:980px){.jsw-page--kitchen-bathroom-basement-design-studio .bso-shell{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card,.jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card img{min-height:520px}.jsw-page--kitchen-bathroom-basement-design-studio .bso-service-grid{grid-template-columns:1fr 1fr}} @media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .bso-service-grid{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bso-actions{flex-direction:column}.jsw-page--kitchen-bathroom-basement-design-studio .bso-actions .btn{width:100%;justify-content:center}.jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card,.jsw-page--kitchen-bathroom-basement-design-studio .bso-image-card img{min-height:440px;border-radius:22px}} /* Basement transformation studio */ .jsw-page--kitchen-bathroom-basement-design-studio .basement-transform-studio{padding:clamp(4.5rem,7vw,7rem) 5vw;background:var(--cream);border-top:1px solid rgba(102,82,63,.12);border-bottom:1px solid rgba(102,82,63,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-head{width:min(980px,90vw);margin:0 auto 1.7rem;display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;text-align:center} .jsw-page--kitchen-bathroom-basement-design-studio .bts-head h2{font-family:var(--serif);font-size:clamp(2.1rem,4vw,3.8rem);line-height:1.02;font-weight:400;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-head p{color:var(--muted);line-height:1.72} .jsw-page--kitchen-bathroom-basement-design-studio .bts-head>div:last-child{display:grid;justify-items:center}.jsw-page--kitchen-bathroom-basement-design-studio .bts-head p{max-width:760px;margin-inline:auto}.jsw-page--kitchen-bathroom-basement-design-studio .bts-head-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:1.1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-shell{width:min(1180px,90vw);margin:auto;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr);gap:1rem;align-items:stretch} .jsw-page--kitchen-bathroom-basement-design-studio .bts-stage-panel{background:#fff;border:1px solid var(--border);box-shadow:0 26px 70px rgba(30,48,40,.10);padding:1rem;display:grid;gap:.85rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-stage{position:relative;min-height:640px;border-radius:28px;background:var(--forest);overflow:hidden;margin:0;border:1px solid rgba(102,82,63,.16)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-stage img{width:100%;height:100%;min-height:640px;object-fit:cover;display:block;transition:opacity .28s ease,transform .55s cubic-bezier(.2,.7,.2,1)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-stage.is-changing img{opacity:.34;transform:scale(1.018)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-readout{background:var(--forest);color:#fff;border-left:3px solid var(--gold);border-radius:22px;padding:.9rem 1rem;width:min(100%,760px);align-self:start} .jsw-page--kitchen-bathroom-basement-design-studio .bts-readout span{display:block;color:#D9BE82;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;margin-bottom:.35rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-readout strong{display:block;font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.05;font-weight:400;color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bts-readout p{color:rgba(255,255,255,.72);line-height:1.45;margin:.4rem 0 0;max-width:62ch} .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-panel{background:#fff;border:1px solid var(--border);box-shadow:0 26px 70px rgba(30,48,40,.10);padding:1rem;display:grid;gap:.85rem;align-content:start} .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-intro{background:var(--cream);border:1px solid rgba(102,82,63,.12);border-radius:24px;padding:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-intro span,.jsw-page--kitchen-bathroom-basement-design-studio .bts-scope-card span{display:block;color:var(--gold);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;margin-bottom:.45rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-intro strong{display:block;font-family:var(--serif);font-size:1.55rem;line-height:1.08;font-weight:400;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-intro p{color:var(--muted);line-height:1.55;margin:.5rem 0 0} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options{gap:.65rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option{display:grid;grid-template-columns:84px 1fr;gap:.72rem;align-items:center;text-align:left;border:1px solid rgba(102,82,63,.15);background:#faf7f1;border-radius:20px;padding:.62rem;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option:hover{transform:translateY(-2px);border-color:rgba(184,151,90,.42);box-shadow:0 12px 28px rgba(42,35,27,.08)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option.active{background:#fff;border-color:rgba(184,151,90,.88);box-shadow:0 16px 36px rgba(42,35,27,.13)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option-thumb{width:84px;height:72px;border-radius:15px;overflow:hidden;background:var(--forest)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option-thumb img{width:100%;height:100%;object-fit:cover;display:block} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option-copy span{display:block;color:var(--gold);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;line-height:1} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option-copy strong{display:block;color:var(--ink);font-size:.92rem;line-height:1.1;margin-top:.3rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option-copy small{display:block;color:var(--muted);font-size:.72rem;line-height:1.25;margin-top:.24rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-scope-card{background:var(--forest);border-radius:24px;padding:1rem;color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bts-scope-card ul{list-style:none;display:grid;gap:.45rem;margin:0;padding:0} .jsw-page--kitchen-bathroom-basement-design-studio .bts-scope-card li{border-left:2px solid var(--gold);padding-left:.7rem;color:rgba(255,255,255,.76);font-size:.9rem;line-height:1.35} .jsw-page--kitchen-bathroom-basement-design-studio .bts-note textarea{width:100%;min-height:92px;border:1px solid rgba(102,82,63,.18);border-radius:16px;padding:.85rem;resize:vertical;font:inherit;color:var(--ink);background:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bts-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.75rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-btn{border:0;border-radius:999px;background:var(--gold);color:#fff;padding:.78rem 1rem;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease} .jsw-page--kitchen-bathroom-basement-design-studio .bts-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(184,151,90,.28)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-btn.secondary{background:#eee6da;color:#4d3e30} @media(max-width:1080px){.jsw-page--kitchen-bathroom-basement-design-studio .bts-head,.jsw-page--kitchen-bathroom-basement-design-studio .bts-shell{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bts-stage,.jsw-page--kitchen-bathroom-basement-design-studio .bts-stage img{min-height:560px}.jsw-page--kitchen-bathroom-basement-design-studio .bts-options{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:680px){.jsw-page--kitchen-bathroom-basement-design-studio .bts-options{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bts-option{grid-template-columns:76px 1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bts-option-thumb{width:76px;height:66px}.jsw-page--kitchen-bathroom-basement-design-studio .bts-stage,.jsw-page--kitchen-bathroom-basement-design-studio .bts-stage img{min-height:420px;border-radius:20px}.jsw-page--kitchen-bathroom-basement-design-studio .bts-actions,.jsw-page--kitchen-bathroom-basement-design-studio .bts-head-actions{flex-direction:column}.jsw-page--kitchen-bathroom-basement-design-studio .bts-btn,.jsw-page--kitchen-bathroom-basement-design-studio .bts-head-actions .btn{width:100%;justify-content:center}} /* Basement services support section */ .jsw-page--kitchen-bathroom-basement-design-studio .basement-services-overview{padding:clamp(4.5rem,7vw,7rem) 5vw;background:var(--forest);color:#fff;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-shell{width:min(1180px,90vw);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:3rem;align-items:center} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-copy h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.02;font-weight:400;color:#fff;margin-bottom:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-copy p{color:rgba(255,255,255,.72);line-height:1.75;max-width:720px} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.7rem 0} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:1rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-card span{display:block;color:#D9BE82;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:.45rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-card strong{display:block;font-size:1rem;line-height:1.2;color:#fff} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-card p{font-size:.86rem;line-height:1.55;margin:.45rem 0 0;color:rgba(255,255,255,.66)} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card{position:relative;border-radius:30px;overflow:hidden;background:var(--forest-mid);min-height:600px;box-shadow:0 28px 72px rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.14)} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card img{width:100%;height:100%;min-height:600px;object-fit:cover;display:block} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,48,40,0) 48%,rgba(30,48,40,.78));pointer-events:none} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-note{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;background:rgba(250,248,244,.94);border-left:3px solid var(--gold);border-radius:18px;padding:1rem;color:#342b22;box-shadow:0 16px 36px rgba(0,0,0,.18)} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-note strong{display:block;font-family:var(--serif);font-size:1.35rem;line-height:1.05;font-weight:400} .jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-note span{display:block;color:var(--muted);font-size:.85rem;line-height:1.45;margin-top:.35rem} @media(max-width:980px){.jsw-page--kitchen-bathroom-basement-design-studio .bso2-shell{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card,.jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card img{min-height:500px}.jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-grid{grid-template-columns:1fr 1fr}} @media(max-width:640px){.jsw-page--kitchen-bathroom-basement-design-studio .bso2-service-grid{grid-template-columns:1fr}.jsw-page--kitchen-bathroom-basement-design-studio .bso2-actions{flex-direction:column}.jsw-page--kitchen-bathroom-basement-design-studio .bso2-actions .btn{width:100%;justify-content:center}.jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card,.jsw-page--kitchen-bathroom-basement-design-studio .bso2-image-card img{min-height:420px;border-radius:22px}} /* Light quote section after basement support */ .jsw-page--kitchen-bathroom-basement-design-studio .quote{background:var(--cream);color:var(--ink);border-top:1px solid rgba(102,82,63,.12)} .jsw-page--kitchen-bathroom-basement-design-studio .quote h2{color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .quote p{color:var(--muted)} .jsw-page--kitchen-bathroom-basement-design-studio .quote-box{background:#fff;border:1px solid var(--border);box-shadow:0 24px 70px rgba(30,48,40,.10)} .jsw-page--kitchen-bathroom-basement-design-studio .quote label{color:var(--gold)} .jsw-page--kitchen-bathroom-basement-design-studio .quote input,.jsw-page--kitchen-bathroom-basement-design-studio .quote select,.jsw-page--kitchen-bathroom-basement-design-studio .quote textarea{border:1px solid rgba(102,82,63,.18);background:#fff;color:var(--ink)} .jsw-page--kitchen-bathroom-basement-design-studio .quote input::placeholder,.jsw-page--kitchen-bathroom-basement-design-studio .quote textarea::placeholder{color:rgba(116,111,100,.72)} /* Basement menu vertical carousel update */ .jsw-page--kitchen-bathroom-basement-design-studio .bts-control-panel{overflow:hidden} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options{position:relative;display:block;overflow:hidden;max-height:610px;border-radius:24px;mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 92%,transparent 100%)} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options-track{display:grid;gap:.65rem;animation:btsOptionLoopDown 92s linear infinite;animation-play-state:paused;will-change:transform} .jsw-page--kitchen-bathroom-basement-design-studio .basement-transform-studio.is-visible .bts-options-track{animation-play-state:running} .jsw-page--kitchen-bathroom-basement-design-studio .basement-transform-studio.is-paused .bts-options-track,.jsw-page--kitchen-bathroom-basement-design-studio .bts-options:hover .bts-options-track,.jsw-page--kitchen-bathroom-basement-design-studio .bts-options:focus-within .bts-options-track{animation-play-state:paused} @keyframes btsOptionLoopDown{from{transform:translateY(0)}to{transform:translateY(-50%)}} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options .bts-option{width:100%} @media(max-width:1080px){.jsw-page--kitchen-bathroom-basement-design-studio .bts-options{max-height:520px}.jsw-page--kitchen-bathroom-basement-design-studio .bts-options-track{display:grid;grid-template-columns:1fr;gap:.65rem}.jsw-page--kitchen-bathroom-basement-design-studio .bts-options{grid-column:auto}} @media(max-width:680px){.jsw-page--kitchen-bathroom-basement-design-studio .bts-options{max-height:440px}.jsw-page--kitchen-bathroom-basement-design-studio .bts-options-track{grid-template-columns:1fr}} @media(prefers-reduced-motion:reduce){.jsw-page--kitchen-bathroom-basement-design-studio .bts-options-track{animation:none;transform:none}} .jsw-page--kitchen-bathroom-basement-design-studio{min-height:100%} .jsw-page--kitchen-bathroom-basement-design-studio img{height:auto} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-form-fallback[aria-hidden="true"]{display:none!important} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-fallback-submit{margin-top:1.25rem;cursor:pointer} /* JSW interactive quality layer */ .jsw-page--kitchen-bathroom-basement-design-studio{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--kitchen-bathroom-basement-design-studio,.jsw-page--kitchen-bathroom-basement-design-studio *{box-sizing:border-box} .jsw-page--kitchen-bathroom-basement-design-studio img,.jsw-page--kitchen-bathroom-basement-design-studio video,.jsw-page--kitchen-bathroom-basement-design-studio canvas,.jsw-page--kitchen-bathroom-basement-design-studio svg{max-width:100%;height:auto} .jsw-page--kitchen-bathroom-basement-design-studio button,.jsw-page--kitchen-bathroom-basement-design-studio [role="button"],.jsw-page--kitchen-bathroom-basement-design-studio input[type="range"]{touch-action:manipulation} .jsw-page--kitchen-bathroom-basement-design-studio button,.jsw-page--kitchen-bathroom-basement-design-studio [role="button"],.jsw-page--kitchen-bathroom-basement-design-studio a,.jsw-page--kitchen-bathroom-basement-design-studio input,.jsw-page--kitchen-bathroom-basement-design-studio select,.jsw-page--kitchen-bathroom-basement-design-studio textarea{-webkit-tap-highlight-color:transparent} .jsw-page--kitchen-bathroom-basement-design-studio button:not(:disabled),.jsw-page--kitchen-bathroom-basement-design-studio [role="button"]:not([aria-disabled="true"]),.jsw-page--kitchen-bathroom-basement-design-studio input[type="range"]{cursor:pointer} .jsw-page--kitchen-bathroom-basement-design-studio button:disabled,.jsw-page--kitchen-bathroom-basement-design-studio [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--kitchen-bathroom-basement-design-studio [hidden]{display:none!important} .jsw-page--kitchen-bathroom-basement-design-studio [aria-busy="true"]{cursor:progress}.jsw-page--kitchen-bathroom-basement-design-studio :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--kitchen-bathroom-basement-design-studio :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--kitchen-bathroom-basement-design-studio :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--kitchen-bathroom-basement-design-studio :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--kitchen-bathroom-basement-design-studio :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--kitchen-bathroom-basement-design-studio :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--kitchen-bathroom-basement-design-studio :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--kitchen-bathroom-basement-design-studio,.jsw-page--kitchen-bathroom-basement-design-studio *{scroll-behavior:auto!important} .jsw-page--kitchen-bathroom-basement-design-studio *,.jsw-page--kitchen-bathroom-basement-design-studio *::before,.jsw-page--kitchen-bathroom-basement-design-studio *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Project Gallery ===== */ .jsw-page--project-gallery,.jsw-page--project-gallery *{margin:0;padding:0} .jsw-page--project-gallery{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif} .jsw-page--project-gallery{scroll-behavior:smooth} .jsw-page--project-gallery{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.7} .jsw-page--project-gallery img{display:block;max-width:100%} .jsw-page--project-gallery a{color:inherit} .jsw-page--project-gallery .gallery-page{min-height:100vh;padding:0;background:radial-gradient(circle at 18% 14%,rgba(184,151,90,.14),transparent 34%),linear-gradient(135deg,var(--cream),var(--cream-dark));} .jsw-page--project-gallery .gallery-shell{width:min(1320px,94vw);margin:0 auto;min-height:100vh;padding:2rem 0;display:grid;grid-template-columns:360px minmax(0,1fr);gap:1.35rem;align-items:stretch} .jsw-page--project-gallery .gallery-info{background:var(--forest);color:var(--white);padding:2rem;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 4rem);position:sticky;top:2rem;align-self:start;overflow:hidden} .jsw-page--project-gallery .gallery-info:after{content:"";position:absolute;right:-90px;top:-90px;width:240px;height:240px;border:1px solid rgba(212,180,122,.24);border-radius:50%} .jsw-page--project-gallery .logo{width:112px;height:auto;margin-bottom:2rem;position:relative;z-index:1} .jsw-page--project-gallery .kicker{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);font-weight:700;margin-bottom:1rem;position:relative;z-index:1} .jsw-page--project-gallery h1{font-family:var(--serif);font-size:clamp(3rem,5vw,5.6rem);font-weight:300;line-height:.96;letter-spacing:-.035em;color:var(--white);position:relative;z-index:1} .jsw-page--project-gallery h1 em{font-style:italic;color:var(--gold-light)} .jsw-page--project-gallery .intro{color:rgba(255,255,255,.72);font-weight:300;margin-top:1.2rem;position:relative;z-index:1} .jsw-page--project-gallery .gallery-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);margin-top:1.5rem;position:relative;z-index:1} .jsw-page--project-gallery .gallery-stats div{background:rgba(255,255,255,.055);padding:1rem} .jsw-page--project-gallery .gallery-stats strong{display:block;font-family:var(--serif);font-size:2rem;font-weight:400;color:var(--white);line-height:1} .jsw-page--project-gallery .gallery-stats span{font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.68);font-weight:700} .jsw-page--project-gallery .gallery-cta{display:grid;gap:.75rem;position:relative;z-index:1;margin-top:2rem} .jsw-page--project-gallery .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:2px;padding:.9rem 1.2rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease} .jsw-page--project-gallery .btn-primary{background:var(--cream);color:var(--forest)} .jsw-page--project-gallery .btn-primary:hover{background:var(--gold-light);color:var(--ink)} .jsw-page--project-gallery .btn-line{border:1px solid rgba(255,255,255,.22);color:var(--white)} .jsw-page--project-gallery .btn-line:hover{border-color:var(--gold-light);color:var(--gold-light)} .jsw-page--project-gallery .gallery-viewer{background:var(--white);border:1px solid var(--border);box-shadow:0 28px 80px rgba(28,28,25,.1);min-height:calc(100vh - 4rem);display:grid;grid-template-rows:auto minmax(520px,1fr) auto} .jsw-page--project-gallery .gallery-top{display:flex;justify-content:space-between;gap:1rem;align-items:end;padding:1.1rem;border-bottom:1px solid var(--border);background:rgba(250,248,244,.82)} .jsw-page--project-gallery .category-tabs{display:flex;gap:.45rem;flex-wrap:wrap} .jsw-page--project-gallery .category-tabs button{border:1px solid var(--border);background:var(--cream);color:var(--ink-soft);padding:.62rem .82rem;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;cursor:pointer} .jsw-page--project-gallery .category-tabs button.active,.jsw-page--project-gallery .category-tabs button:hover{background:var(--forest);border-color:var(--forest);color:var(--white)} .jsw-page--project-gallery .image-count{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;white-space:nowrap} .jsw-page--project-gallery .image-count strong{color:var(--gold)} .jsw-page--project-gallery .stage{position:relative;background:var(--forest);overflow:hidden;min-height:560px} .jsw-page--project-gallery .stage img{width:100%;height:100%;min-height:560px;object-position:center center;opacity:.95;transition:opacity .5s cubic-bezier(.22,.61,.36,1)} .jsw-page--project-gallery .stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(30,48,40,.52));pointer-events:none} .jsw-page--project-gallery .stage-caption{position:absolute;left:1.25rem;right:1.25rem;bottom:1.25rem;background:rgba(250,248,244,.94);border-left:3px solid var(--gold);padding:1rem 1.15rem;z-index:2;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end} .jsw-page--project-gallery .stage-caption span{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700} .jsw-page--project-gallery .stage-caption strong{display:block;font-family:var(--serif);font-size:1.75rem;font-weight:400;line-height:1.05;color:var(--ink);margin:.22rem 0} .jsw-page--project-gallery .stage-caption p{font-size:.9rem;color:var(--ink-muted)} .jsw-page--project-gallery .arrow-pair{display:flex;gap:.5rem} .jsw-page--project-gallery .arrow-pair button{width:42px;height:42px;border:1px solid var(--border);background:var(--white);color:var(--forest);font-size:1.35rem;cursor:pointer} .jsw-page--project-gallery .arrow-pair button:hover{background:var(--forest);color:var(--white)} .jsw-page--project-gallery .thumb-dock{background:var(--cream);border-top:1px solid var(--border);display:grid;grid-template-columns:44px 1fr 44px;gap:1px} .jsw-page--project-gallery .thumb-scroll{border:0;background:var(--forest);color:var(--white);font-size:1.4rem;cursor:pointer} .jsw-page--project-gallery .thumb-scroll:hover{background:var(--gold);color:var(--ink)} .jsw-page--project-gallery .thumb-track{display:flex;gap:.65rem;overflow-x:auto;scroll-behavior:smooth;padding:.9rem;background:var(--cream)} .jsw-page--project-gallery .thumb-track::-webkit-scrollbar{height:8px} .jsw-page--project-gallery .thumb-track::-webkit-scrollbar-thumb{background:var(--gold)} .jsw-page--project-gallery .thumb{flex:0 0 122px;border:1px solid var(--border);background:var(--white);padding:.35rem;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease} .jsw-page--project-gallery .thumb:hover,.jsw-page--project-gallery .thumb.active{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 12px 28px rgba(28,28,25,.12)} .jsw-page--project-gallery .thumb img{width:100%;height:78px;object-fit:cover;margin-bottom:.38rem} .jsw-page--project-gallery .thumb span{display:block;font-size:.55rem;letter-spacing:.11em;text-transform:uppercase;color:var(--gold);font-weight:700;line-height:1.1} .jsw-page--project-gallery .thumb strong{display:block;font-family:var(--serif);font-size:.92rem;font-weight:400;color:var(--ink);line-height:1.05;margin-top:.15rem} @media(max-width:1000px){ .jsw-page--project-gallery .gallery-shell{grid-template-columns:1fr} .jsw-page--project-gallery .gallery-info{position:relative;top:auto;min-height:auto} .jsw-page--project-gallery .gallery-viewer{min-height:auto} } @media(max-width:640px){ .jsw-page--project-gallery .gallery-shell{width:100%;padding:0;gap:0} .jsw-page--project-gallery .gallery-info{padding:1.5rem} .jsw-page--project-gallery .gallery-top{align-items:start;flex-direction:column} .jsw-page--project-gallery .stage,.jsw-page--project-gallery .stage img{min-height:430px} .jsw-page--project-gallery .stage-caption{grid-template-columns:1fr} .jsw-page--project-gallery .thumb{flex-basis:108px} } .jsw-page--project-gallery{min-height:100%} .jsw-page--project-gallery img{height:auto} .jsw-page--project-gallery .gallery-page{padding-top:var(--jsw-header-height)} /* JSW interactive quality layer */ .jsw-page--project-gallery{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--project-gallery,.jsw-page--project-gallery *{box-sizing:border-box} .jsw-page--project-gallery img,.jsw-page--project-gallery video,.jsw-page--project-gallery canvas,.jsw-page--project-gallery svg{max-width:100%;height:auto} .jsw-page--project-gallery button,.jsw-page--project-gallery [role="button"],.jsw-page--project-gallery input[type="range"]{touch-action:manipulation} .jsw-page--project-gallery button,.jsw-page--project-gallery [role="button"],.jsw-page--project-gallery a,.jsw-page--project-gallery input,.jsw-page--project-gallery select,.jsw-page--project-gallery textarea{-webkit-tap-highlight-color:transparent} .jsw-page--project-gallery button:not(:disabled),.jsw-page--project-gallery [role="button"]:not([aria-disabled="true"]),.jsw-page--project-gallery input[type="range"]{cursor:pointer} .jsw-page--project-gallery button:disabled,.jsw-page--project-gallery [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--project-gallery [hidden]{display:none!important} .jsw-page--project-gallery [aria-busy="true"]{cursor:progress}.jsw-page--project-gallery :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--project-gallery :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--project-gallery :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--project-gallery .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--project-gallery :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--project-gallery :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--project-gallery :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--project-gallery :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--project-gallery,.jsw-page--project-gallery *{scroll-behavior:auto!important} .jsw-page--project-gallery *,.jsw-page--project-gallery *::before,.jsw-page--project-gallery *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== Service Areas ===== */ .jsw-page--service-areas,.jsw-page--service-areas *{margin:0;padding:0} .jsw-page--service-areas{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--pin-x:50%;--pin-y:50%;--area-accent:#B8975A} .jsw-page--service-areas{scroll-behavior:smooth} .jsw-page--service-areas{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--service-areas img{display:block;max-width:100%} .jsw-page--service-areas a{color:inherit} .jsw-page--service-areas section{padding:7rem 5vw} .jsw-page--service-areas :is(.browser-section,.finder-section,.services-section,.seo-section,.quote-section){border-top:1px solid rgba(30,48,40,.08)} .jsw-page--service-areas .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--service-areas .kicker.light{color:var(--gold-light)} .jsw-page--service-areas .btn-primary,.jsw-page--service-areas .btn-light,.jsw-page--service-areas .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--service-areas .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--service-areas .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--service-areas .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--service-areas .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--service-areas .btn-light:hover,.jsw-page--service-areas .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--service-areas .area-hero{padding:9rem 5vw 5.5rem;background-color:var(--cream);background-image:radial-gradient(circle at 16% 18%,rgba(184,151,90,.16),transparent 36%),linear-gradient(135deg,var(--cream),var(--cream-dark));min-height:100vh;display:grid;align-items:center} .jsw-page--service-areas .hero-shell{max-width:1240px;margin:auto;width:100%;display:grid;grid-template-columns:.88fr 1.12fr;gap:2.6rem;align-items:center} .jsw-page--service-areas .hero-copy h1{font-family:var(--serif);font-size:clamp(3.2rem,5.8vw,6.5rem);font-weight:300;line-height:.96;letter-spacing:-.035em;color:var(--ink);margin:1rem 0 1.25rem} .jsw-page--service-areas .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--service-areas .hero-copy p{color:var(--ink-muted);font-weight:300;max-width:680px;font-size:1.02rem;margin-bottom:2rem} .jsw-page--service-areas .hero-actions{display:flex;gap:1rem;flex-wrap:wrap} .jsw-page--service-areas .area-console{background:var(--white);border:1px solid var(--border);box-shadow:0 28px 80px rgba(28,28,25,.08);padding:1.15rem;display:grid;grid-template-rows:auto 1fr auto;gap:1rem;min-height:680px} .jsw-page--service-areas .console-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:1rem} .jsw-page--service-areas .console-top strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink)} .jsw-page--service-areas .console-top span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700} .jsw-page--service-areas .browser-section{background:var(--forest);color:var(--white)} .jsw-page--service-areas .browser-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.76fr 1.24fr;gap:3rem;align-items:start} .jsw-page--service-areas .browser-copy h2,.jsw-page--service-areas .services-copy h2,.jsw-page--service-areas .seo-copy h2,.jsw-page--service-areas .quote-copy h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,4rem);font-weight:300;line-height:1.04;margin-bottom:1rem} .jsw-page--service-areas .browser-copy h2{color:var(--white)} .jsw-page--service-areas .browser-copy p{color:rgba(255,255,255,.7);font-weight:300} .jsw-page--service-areas .region-browser{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:1.25rem} .jsw-page--service-areas .region-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);margin-bottom:1rem} .jsw-page--service-areas .region-tabs button{border:0;background:var(--forest-mid);color:var(--white);padding:1rem .7rem;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;cursor:pointer} .jsw-page--service-areas .region-tabs button.active,.jsw-page--service-areas .region-tabs button:hover{background:var(--gold);color:var(--ink)} .jsw-page--service-areas .region-output{display:grid;grid-template-columns:.85fr 1.15fr;gap:1rem} .jsw-page--service-areas .region-stat{background:var(--cream);color:var(--ink);padding:1.5rem;display:flex;flex-direction:column;justify-content:center} .jsw-page--service-areas .region-stat span{font-family:var(--serif);font-size:4rem;color:var(--gold);line-height:1} .jsw-page--service-areas .region-stat strong{font-family:var(--serif);font-size:1.55rem;font-weight:400;line-height:1.1;margin:.5rem 0} .jsw-page--service-areas .region-stat p{color:var(--ink-muted);font-size:.9rem} .jsw-page--service-areas .location-list{background:var(--cream);color:var(--ink);padding:1rem;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;align-content:start} .jsw-page--service-areas .location-pill{background:var(--white);border:1px solid var(--border);padding:.65rem .75rem;font-size:.82rem;color:var(--ink-soft);font-weight:700;display:flex;justify-content:space-between;gap:.5rem} .jsw-page--service-areas .location-pill button{border:0;background:transparent;color:var(--gold);font-weight:700;cursor:pointer} .jsw-page--service-areas .finder-section{background:var(--white)} .jsw-page--service-areas .finder-highlight{background:var(--cream-dark);border-left:3px solid var(--gold);padding:1rem;color:var(--ink-muted)} .jsw-page--service-areas .services-section{background-color:var(--cream-dark);background-image:linear-gradient(180deg,var(--cream-dark) 0%,#E8E2D7 100%)} .jsw-page--service-areas .services-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:start} .jsw-page--service-areas .services-copy p{color:var(--ink-muted);font-weight:300;margin-bottom:1.5rem} .jsw-page--service-areas .service-match{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--service-areas .match-card{background:var(--white);border:1px solid var(--border);min-height:230px;cursor:pointer;position:relative;overflow:hidden;transition:background-color .25s ease,color .25s ease,transform .25s ease,border-color .25s ease,box-shadow .25s ease} .jsw-page--service-areas .match-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;border:1px solid rgba(184,151,90,.25);right:-50px;top:-50px} .jsw-page--service-areas .match-card:hover,.jsw-page--service-areas .match-card.open{background:var(--forest);color:var(--white);transform:translateY(-4px)} .jsw-page--service-areas .match-card span{font-family:var(--serif);font-size:2.6rem;color:var(--gold);line-height:1} .jsw-page--service-areas .match-card strong{display:block;font-family:var(--serif);font-size:1.45rem;font-weight:400;line-height:1.1;margin:.75rem 0} .jsw-page--service-areas .match-card p{font-size:.86rem;color:inherit;opacity:.74} .jsw-page--service-areas .match-card a{display:inline-block;margin-top:.9rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;text-decoration:none} .jsw-page--service-areas .seo-section{background:var(--forest)} .jsw-page--service-areas .seo-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--service-areas .seo-copy{background:var(--cream);padding:3rem} .jsw-page--service-areas .seo-copy p{color:var(--ink-muted);font-weight:300;margin-bottom:1rem} .jsw-page--service-areas .seo-list{background:var(--white);padding:2rem;display:grid;gap:1rem} .jsw-page--service-areas .seo-item{border-bottom:1px solid var(--border);padding-bottom:1rem} .jsw-page--service-areas .seo-item strong{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:.35rem} .jsw-page--service-areas .seo-item p{color:var(--ink-muted);font-size:.9rem} .jsw-page--service-areas .quote-section{background:var(--cream)} .jsw-page--service-areas .quote-wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--service-areas .quote-copy{background:var(--white);padding:3rem;display:flex;flex-direction:column;justify-content:space-between} .jsw-page--service-areas .quote-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--service-areas .quote-mini{margin-top:2rem;background:var(--cream-dark);border-left:3px solid var(--gold);padding:1rem;color:var(--ink-muted)} .jsw-page--service-areas .quote-form{background:var(--forest);padding:3.2rem;color:var(--white)} .jsw-page--service-areas .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--white);line-height:1.05;margin-bottom:.8rem} .jsw-page--service-areas .quote-form p{color:rgba(255,255,255,.66);font-weight:300;margin-bottom:1.5rem} .jsw-page--service-areas .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem} .jsw-page--service-areas .form-field{display:flex;flex-direction:column;gap:.4rem} .jsw-page--service-areas .form-field.full{grid-column:1/-1} .jsw-page--service-areas label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--service-areas input,.jsw-page--service-areas select,.jsw-page--service-areas textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);padding:.9rem 1rem;font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--service-areas textarea{min-height:112px;resize:vertical} .jsw-page--service-areas input::placeholder,.jsw-page--service-areas textarea::placeholder{color:rgba(255,255,255,.45)} .jsw-page--service-areas select option{color:var(--ink)} .jsw-page--service-areas .form-note{font-size:.78rem;color:rgba(255,255,255,.56);margin:1rem 0 1.4rem} @media(max-width:980px){ .jsw-page--service-areas .hero-shell,.jsw-page--service-areas .browser-shell,.jsw-page--service-areas .region-output,.jsw-page--service-areas .services-shell,.jsw-page--service-areas .seo-shell,.jsw-page--service-areas .quote-wrap{grid-template-columns:1fr} .jsw-page--service-areas .area-console{min-height:auto} } @media(max-width:640px){ .jsw-page--service-areas section{padding:4.5rem 5vw} .jsw-page--service-areas .area-hero{padding-top:7rem} .jsw-page--service-areas .region-tabs,.jsw-page--service-areas .service-match,.jsw-page--service-areas .form-grid{grid-template-columns:1fr} .jsw-page--service-areas .quote-form,.jsw-page--service-areas .quote-copy{padding:2rem} } .jsw-page--service-areas .match-card{ padding:0!important; display:flex; flex-direction:column; } .jsw-page--service-areas .match-card::after{ display:none!important; } .jsw-page--service-areas .match-card-image{ position:relative; height:168px; overflow:hidden; background:var(--forest); border-bottom:1px solid var(--border); } .jsw-page--service-areas .match-card-image img{ width:100%; height:100%; display:block; opacity:.94; transition:transform .35s ease, opacity .25s ease; } .jsw-page--service-areas .match-card:hover .match-card-image img,.jsw-page--service-areas .match-card.open .match-card-image img{ transform:scale(1.045); opacity:1; } .jsw-page--service-areas .match-card-body{ padding:1.3rem; display:flex; flex-direction:column; flex:1; } .jsw-page--service-areas .match-card:hover .match-card-body,.jsw-page--service-areas .match-card.open .match-card-body{ color:var(--white); } .jsw-page--service-areas .match-card-body span{ font-family:var(--serif); font-size:2.6rem; color:var(--gold); line-height:1; } .jsw-page--service-areas .match-card-body strong{ display:block; font-family:var(--serif); font-size:1.45rem; font-weight:400; line-height:1.1; margin:.75rem 0; } .jsw-page--service-areas .match-card-body p{ font-size:.86rem; color:inherit; opacity:.74; } .jsw-page--service-areas .match-card-body a{ display:inline-block; margin-top:auto; padding-top:.9rem; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; text-decoration:none; } .jsw-page--service-areas .finder-section.focused-area-section{ background:var(--white); } .jsw-page--service-areas .focused-area-shell{ max-width:1180px; margin:auto; display:grid; grid-template-columns:.82fr 1.18fr; gap:2rem; align-items:stretch; } .jsw-page--service-areas .focused-area-control{ background:var(--white); border:1px solid var(--border); padding:1.5rem; box-shadow:0 20px 60px rgba(28,28,25,.08); display:flex; flex-direction:column; gap:1rem; } .jsw-page--service-areas .focused-search-wrap{ display:grid; grid-template-columns:1fr auto; gap:.75rem; } .jsw-page--service-areas .focused-search-wrap input{ border:1px solid var(--border); background:var(--cream); padding:1rem; color:var(--ink); font-family:var(--sans); font-size:.95rem; } .jsw-page--service-areas .focused-search-wrap button{ border:0; background:var(--forest); color:var(--white); padding:0 1.15rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; } .jsw-page--service-areas .focused-area-card{ background:var(--forest); color:var(--white); padding:1.5rem; min-height:210px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; } .jsw-page--service-areas .focused-area-card::after{ content:""; position:absolute; right:-68px; bottom:-68px; width:180px; height:180px; border:1px solid rgba(212,180,122,.25); border-radius:50%; } .jsw-page--service-areas .focused-area-card span{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light); font-weight:700; position:relative; z-index:1; } .jsw-page--service-areas .focused-area-card strong{ font-family:var(--serif); font-size:2.35rem; font-weight:300; line-height:1.05; color:var(--white); position:relative; z-index:1; } .jsw-page--service-areas .focused-area-card p{ color:rgba(255,255,255,.72); font-size:.92rem; line-height:1.75; position:relative; z-index:1; } .jsw-page--service-areas .focused-map-panel{ background:var(--white); border:1px solid var(--border); padding:1.5rem; display:grid; gap:1rem; } .jsw-page--service-areas .focused-map{ position:relative; min-height:360px; background: radial-gradient(circle at 28% 40%,rgba(184,151,90,.12),transparent 18%), linear-gradient(135deg,#d9e7ec 0%,#f7f2e8 58%,#dfeadf 100%); border:1px solid var(--border); overflow:hidden; } .jsw-page--service-areas .focused-map::before{ content:"Maryland Service Focus"; position:absolute; left:1rem; top:1rem; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--forest); font-weight:700; z-index:5; } .jsw-page--service-areas .maryland-shape{ position:absolute; left:12%; top:16%; width:76%; height:68%; background:linear-gradient(135deg,rgba(30,48,40,.14),rgba(30,48,40,.04)); border:1px solid rgba(30,48,40,.16); clip-path:polygon(2% 55%,20% 43%,33% 46%,44% 31%,56% 39%,70% 23%,93% 34%,86% 52%,96% 62%,72% 70%,58% 63%,46% 80%,31% 67%,17% 75%); } .jsw-page--service-areas .map-water{ position:absolute; right:-5%; bottom:-10%; width:45%; height:50%; background:rgba(73,135,160,.18); border-radius:50% 0 0 0; } .jsw-page--service-areas .focus-ring{ position:absolute; left:var(--focus-x,50%); top:var(--focus-y,50%); width:108px; height:108px; transform:translate(-50%,-50%); border:4px solid #1f79c8; border-radius:50%; box-shadow:0 0 0 14px rgba(31,121,200,.16),0 18px 42px rgba(31,121,200,.18); transition:left .35s ease,top .35s ease; z-index:4; } .jsw-page--service-areas .focus-pin{ position:absolute; left:var(--focus-x,50%); top:var(--focus-y,50%); width:16px; height:16px; background:#1f79c8; border:3px solid var(--white); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 10px 28px rgba(0,0,0,.2); transition:left .35s ease,top .35s ease; z-index:5; } .jsw-page--service-areas .focused-location-copy{ background:var(--cream); border:1px solid var(--border); padding:1.2rem; } .jsw-page--service-areas .focused-location-copy h3{ font-family:var(--serif); font-size:1.8rem; font-weight:400; line-height:1.08; color:var(--ink); margin-bottom:.55rem; } .jsw-page--service-areas .focused-location-copy p{ color:var(--ink-muted); font-weight:300; line-height:1.8; } .jsw-page--service-areas .focused-meta-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; } .jsw-page--service-areas .focused-meta{ background:var(--white); border:1px solid var(--border); padding:.85rem; } .jsw-page--service-areas .focused-meta small{ display:block; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; } .jsw-page--service-areas .focused-meta span{ display:block; color:var(--ink-soft); font-size:.86rem; font-weight:700; margin-top:.25rem; } @media(max-width:980px){ .jsw-page--service-areas .focused-area-shell{grid-template-columns:1fr} } @media(max-width:640px){ .jsw-page--service-areas .focused-search-wrap,.jsw-page--service-areas .focused-meta-row{grid-template-columns:1fr} .jsw-page--service-areas .focused-map{min-height:320px} } .jsw-page--service-areas .focused-area-control .finder-highlight{ background:var(--cream-dark); border-left:3px solid var(--gold); padding:1rem; color:var(--ink-muted); line-height:1.75; } .jsw-page--service-areas .focused-map.real-md-map{ display:block; } .jsw-page--service-areas .focused-map-panel{ grid-template-rows:auto auto auto!important; } .jsw-page--service-areas .focused-map-panel .focused-map{ min-height:360px; } .jsw-page--service-areas .focused-map.real-md-map .focus-ring,.jsw-page--service-areas .focused-map.real-md-map .focus-pin{ z-index:4; } .jsw-page--service-areas .hero-area-carousel{ background:var(--white); border:1px solid var(--border); box-shadow:0 28px 80px rgba(28,28,25,.08); padding:1.15rem; display:grid; grid-template-rows:auto minmax(430px,1fr) auto; gap:1rem; min-height:680px; } .jsw-page--service-areas .hero-area-carousel .console-top{ display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); padding:1rem; } .jsw-page--service-areas .hero-area-carousel .console-top strong{ font-family:var(--serif); font-size:1.45rem; font-weight:400; color:var(--ink); } .jsw-page--service-areas .hero-area-carousel .console-top span{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; } .jsw-page--service-areas .hero-carousel-map{ position:relative; min-height:460px; border:1px solid var(--border); overflow:hidden; background:var(--cream-dark); isolation:isolate; } .jsw-page--service-areas .hero-carousel-map::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); pointer-events:none; z-index:2; } .jsw-page--service-areas .hero-carousel-map-image{ position:absolute; inset:-10%; width:120%; height:120%; object-fit:cover; object-position:66% 36%; transform:translate3d(0,0,0) scale(1.52); transform-origin:50% 50%; backface-visibility:hidden; contain:paint; transition:none!important; z-index:0; } .jsw-page--service-areas .hero-carousel-map.is-map-animating .hero-carousel-map-image{ will-change:object-position,transform; } .jsw-page--service-areas .hero-focus-ring{ position:absolute; left:var(--hero-ring-x,66%); top:var(--hero-ring-y,36%); width:110px; height:110px; border:4px solid #1f79c8; border-radius:50%; background:rgba(31,121,200,.08); box-shadow:0 0 0 13px rgba(31,121,200,.15),0 18px 42px rgba(31,121,200,.18); transform:translate3d(-50%,-50%,0) scale(1); opacity:1; transition:left .95s cubic-bezier(.2,.75,.2,1),top .95s cubic-bezier(.2,.75,.2,1),opacity .48s ease,transform .7s cubic-bezier(.2,.75,.2,1); z-index:4; } .jsw-page--service-areas .hero-focus-dot{ position:absolute; left:var(--hero-ring-x,66%); top:var(--hero-ring-y,36%); width:16px; height:16px; background:#1f79c8; border:3px solid #fff; border-radius:50%; transform:translate3d(-50%,-50%,0) scale(1); box-shadow:0 8px 24px rgba(0,0,0,.22); opacity:1; transition:left .95s cubic-bezier(.2,.75,.2,1),top .95s cubic-bezier(.2,.75,.2,1),opacity .48s ease,transform .7s cubic-bezier(.2,.75,.2,1); z-index:5; } .jsw-page--service-areas .hero-carousel-map.is-map-animating .hero-focus-ring, .jsw-page--service-areas .hero-carousel-map.is-map-animating .hero-focus-dot{ opacity:0; transform:translate3d(-50%,-50%,0) scale(.78); } .jsw-page--service-areas .hero-carousel-map.is-focus-settling .hero-focus-ring{ animation:jsw-service-area-focus-settle 1200ms cubic-bezier(.18,.82,.22,1) both; } .jsw-page--service-areas .hero-carousel-map.is-focus-settling .hero-focus-dot{ animation:jsw-service-area-dot-settle 900ms cubic-bezier(.18,.82,.22,1) both; } @keyframes jsw-service-area-focus-settle{ 0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.78)} 64%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1.025)} 100%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)} } @keyframes jsw-service-area-dot-settle{ 0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)} 72%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1.08)} 100%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)} } .jsw-page--service-areas .hero-map-caption{ position:absolute; left:1rem; right:1rem; bottom:1rem; background:rgba(250,248,244,.94); color:var(--ink); border-left:3px solid #1f79c8; padding:1rem; z-index:8; box-shadow:0 18px 46px rgba(28,28,25,.12); } .jsw-page--service-areas .hero-map-caption small{ display:block; color:var(--gold); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.64rem; margin-bottom:.3rem; } .jsw-page--service-areas .hero-map-caption strong{ display:block; font-family:var(--serif); font-weight:400; font-size:1.55rem; line-height:1.05; margin-bottom:.35rem; } .jsw-page--service-areas .hero-map-caption p{ color:var(--ink-muted); font-size:.86rem; line-height:1.55; } .jsw-page--service-areas .hero-map-quote{ position:absolute; left:50%; top:50%; bottom:auto; width:min(410px,calc(100% - 1.25rem)); max-height:calc(100% - 1.25rem); overflow:auto; overscroll-behavior:contain; transform:translate3d(-50%,calc(-50% + 8px),0) scale(.985); transform-origin:50% 50%; opacity:0; visibility:hidden; pointer-events:none; z-index:12; background:rgba(30,48,40,.975); color:var(--white); border:1px solid rgba(255,255,255,.18); box-shadow:0 24px 72px rgba(0,0,0,.34); padding:.9rem; transition:opacity .34s cubic-bezier(.22,.72,.18,1),transform .34s cubic-bezier(.22,.72,.18,1),visibility .34s ease; } .jsw-page--service-areas .hero-map-quote.open{ opacity:1; visibility:visible; pointer-events:auto; transform:translate3d(-50%,-50%,0) scale(1); } .jsw-page--service-areas .hero-map-quote[aria-hidden="true"]{pointer-events:none} .jsw-page--service-areas .hero-map-quote header{ display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; margin-bottom:.68rem; } .jsw-page--service-areas .hero-map-quote h2,.jsw-page--service-areas .hero-map-quote h3{ font-family:var(--serif); font-size:1.42rem; font-weight:300; line-height:1.08; color:var(--white); } .jsw-page--service-areas .hero-map-quote p{ color:rgba(255,255,255,.7); font-size:.76rem; line-height:1.45; margin:.22rem 0 0; } .jsw-page--service-areas .hero-map-quote button.close-quote{ flex:0 0 auto; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:var(--white); width:30px; height:30px; display:grid; place-items:center; cursor:pointer; } .jsw-page--service-areas .hero-map-quote-grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:.55rem; } .jsw-page--service-areas .hero-map-quote label{ min-width:0; color:var(--gold-light); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; } .jsw-page--service-areas .hero-map-quote input,.jsw-page--service-areas .hero-map-quote select{ width:100%; min-height:40px; margin-top:.24rem; border:1px solid rgba(255,255,255,.17); background:rgba(255,255,255,.09); color:var(--white); padding:.58rem .65rem; font-family:var(--sans); font-size:.88rem; } .jsw-page--service-areas .hero-map-quote input::placeholder{color:rgba(255,255,255,.58)} .jsw-page--service-areas .hero-map-quote select option{color:var(--ink)} .jsw-page--service-areas .hero-map-quote .full{grid-column:1/-1} .jsw-page--service-areas .hero-map-quote .btn-light{ width:100%; border:0; cursor:pointer; margin-top:.68rem; padding:.68rem .85rem; } .jsw-page--service-areas .hero-carousel-controls{ display:grid; gap:.75rem; } .jsw-page--service-areas .hero-area-select{ display:grid; grid-template-columns:1fr auto; gap:.75rem; } .jsw-page--service-areas .hero-area-select input{ border:1px solid var(--border); background:var(--cream); padding:1rem; color:var(--ink); font-family:var(--sans); } .jsw-page--service-areas .hero-area-select input::placeholder{ color:var(--ink-muted); opacity:.9; } .jsw-page--service-areas .hero-area-select button{ border:0; background:var(--forest); color:var(--white); padding:0 1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; } .jsw-page--service-areas .hero-area-tabs{ overflow-x:auto; padding:.15rem .1rem .35rem; scrollbar-width:thin; } .jsw-page--service-areas .hero-area-group{ flex:0 0 auto; } .jsw-page--service-areas .hero-area-group-buttons{ display:flex; gap:1px; background:var(--border); overflow-x:auto; } .jsw-page--service-areas .hero-area-tab{ border:0; background:var(--white); color:var(--ink-soft); letter-spacing:.08em; text-transform:uppercase; font-weight:700; cursor:pointer; transition:background .2s ease,color .2s ease; } .jsw-page--service-areas .hero-area-tab.active,.jsw-page--service-areas .hero-area-tab:hover{ background:var(--forest); color:var(--white); } @media(max-width:980px){ .jsw-page--service-areas .hero-area-carousel{min-height:auto} } @media(max-width:640px){ .jsw-page--service-areas .hero-carousel-map{min-height:410px} .jsw-page--service-areas .hero-area-select{grid-template-columns:1fr} .jsw-page--service-areas .hero-map-caption{font-size:.9rem} } @media(max-width:420px){ .jsw-page--service-areas .hero-map-quote{width:calc(100% - 1rem);padding:.78rem} .jsw-page--service-areas .hero-map-quote-grid{grid-template-columns:1fr} .jsw-page--service-areas .hero-map-quote h2,.jsw-page--service-areas .hero-map-quote h2,.jsw-page--service-areas .hero-map-quote h3{font-size:1.28rem} } .jsw-page--service-areas .focused-map.real-md-map{ position:relative; overflow:hidden; background:var(--cream-dark)!important; } .jsw-page--service-areas .focused-map.real-md-map .maryland-shape,.jsw-page--service-areas .focused-map.real-md-map .map-water{ display:none!important; } .jsw-page--service-areas .focused-map.real-md-map .real-map-image{ position:absolute; inset:-10%; width:120%; height:120%; object-fit:cover; object-position:var(--map-pos-x,50%) var(--map-pos-y,50%); transform:scale(var(--map-zoom,1.12)); transform-origin:var(--map-pos-x,50%) var(--map-pos-y,50%); transition:object-position .45s ease, transform .45s ease; z-index:0; } .jsw-page--service-areas .focused-map.real-md-map::after{ content:"Maryland Service Focus"; position:absolute; left:1rem; top:1rem; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--forest); font-weight:700; background:rgba(250,248,244,.88); padding:.35rem .55rem; z-index:7; } .jsw-page--service-areas .focused-map.real-md-map .focus-ring{ z-index:4; border-color:#1f79c8!important; box-shadow:0 0 0 14px rgba(31,121,200,.16),0 18px 42px rgba(31,121,200,.18)!important; } .jsw-page--service-areas .focused-map.real-md-map .focus-pin{ z-index:5; background:#1f79c8!important; } .jsw-page--service-areas .hero-carousel-controls .hero-map-caption{ position:relative!important; left:auto!important; right:auto!important; bottom:auto!important; background:var(--cream)!important; color:var(--ink)!important; border:1px solid var(--border)!important; border-left:3px solid #1f79c8!important; padding:1rem!important; box-shadow:none!important; z-index:1!important; opacity:1; transform:translate3d(0,0,0); transition:opacity .28s ease,transform .34s cubic-bezier(.22,1,.36,1); } .jsw-page--service-areas .hero-area-carousel.is-updating .hero-carousel-controls .hero-map-caption{ opacity:0; transform:translate3d(0,8px,0); } .jsw-page--service-areas .hero-carousel-controls .hero-map-caption small{ display:block; color:var(--gold); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.64rem; margin-bottom:.3rem; } .jsw-page--service-areas .hero-carousel-controls .hero-map-caption strong{ display:block; font-family:var(--serif); font-weight:400; font-size:1.45rem; line-height:1.05; margin-bottom:.35rem; } .jsw-page--service-areas .hero-carousel-controls .hero-map-caption p{ color:var(--ink-muted); font-size:.86rem; line-height:1.55; } /* JSW service-area county dropdown update */ .jsw-page--service-areas .hero-area-tabs{ display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; grid-auto-flow:row!important; gap:.65rem!important; overflow:visible!important; align-items:start!important; min-height:105px; } .jsw-page--service-areas .hero-area-group{ min-width:0!important; width:100%!important; background:var(--cream)!important; border:1px solid var(--border)!important; } .jsw-page--service-areas .hero-area-group-toggle{ width:100%; border:0; background:var(--cream)!important; color:var(--forest)!important; padding:.75rem .8rem; text-align:left; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:space-between; } .jsw-page--service-areas .hero-area-group-toggle::after{ content:"+"; color:var(--gold); font-size:1rem; line-height:1; } .jsw-page--service-areas .hero-area-group.open .hero-area-group-toggle{ background:var(--forest)!important; color:var(--white)!important; } .jsw-page--service-areas .hero-area-group.open .hero-area-group-toggle::after{ content:"-"; color:var(--gold-light); } .jsw-page--service-areas .hero-area-group-buttons[hidden]{ display:none!important; } .jsw-page--service-areas .hero-area-group.open .hero-area-group-buttons{ display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:1px!important; background:var(--border)!important; max-height:138px!important; overflow:auto!important; } .jsw-page--service-areas .hero-area-tab{ min-width:0!important; width:100%!important; padding:.62rem .5rem!important; font-size:.58rem!important; white-space:normal!important; line-height:1.2!important; } @media(max-width:760px){ .jsw-page--service-areas .hero-area-tabs{ grid-template-columns:1fr!important; } .jsw-page--service-areas .hero-area-group.open .hero-area-group-buttons{ max-height:none!important; } } .jsw-page--service-areas{min-height:100%} .jsw-page--service-areas img{height:auto} .jsw-page--service-areas .jsw-form-fallback[aria-hidden="true"]{display:none!important} /* JSW interactive quality layer */ .jsw-page--service-areas{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--service-areas,.jsw-page--service-areas *{box-sizing:border-box} .jsw-page--service-areas img,.jsw-page--service-areas video,.jsw-page--service-areas canvas,.jsw-page--service-areas svg{max-width:100%;height:auto} .jsw-page--service-areas button,.jsw-page--service-areas [role="button"],.jsw-page--service-areas input[type="range"]{touch-action:manipulation} .jsw-page--service-areas button,.jsw-page--service-areas [role="button"],.jsw-page--service-areas a,.jsw-page--service-areas input,.jsw-page--service-areas select,.jsw-page--service-areas textarea{-webkit-tap-highlight-color:transparent} .jsw-page--service-areas button:not(:disabled),.jsw-page--service-areas [role="button"]:not([aria-disabled="true"]),.jsw-page--service-areas input[type="range"]{cursor:pointer} .jsw-page--service-areas button:disabled,.jsw-page--service-areas [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--service-areas [hidden]{display:none!important} .jsw-page--service-areas [aria-busy="true"]{cursor:progress}.jsw-page--service-areas :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--service-areas :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--service-areas :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--service-areas .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--service-areas :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--service-areas :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--service-areas :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--service-areas :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--service-areas .hero-carousel-map.is-focus-settling .hero-focus-ring,.jsw-page--service-areas .hero-carousel-map.is-focus-settling .hero-focus-dot{animation:none!important} .jsw-page--service-areas,.jsw-page--service-areas *{scroll-behavior:auto!important} .jsw-page--service-areas *,.jsw-page--service-areas *::before,.jsw-page--service-areas *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== JSW Static Support Pages ===== */ .jsw-page--support{--support-shell:min(1180px,92vw);padding-top:var(--jsw-header-height);font-family:var(--jsw-sans);background:var(--jsw-cream);color:var(--jsw-ink)} .jsw-support-hero{position:relative;min-height:min(760px,82vh);display:grid;align-items:end;overflow:hidden;background:var(--jsw-forest);color:#fff} .jsw-support-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.03)} .jsw-support-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,16,.9),rgba(10,20,16,.45) 56%,rgba(10,20,16,.18)),linear-gradient(0deg,rgba(10,20,16,.64),transparent 48%)} .jsw-support-hero-shell{position:relative;z-index:1;width:var(--support-shell);margin:0 auto;padding:clamp(5rem,11vw,9rem) 0 clamp(4rem,8vw,7rem)} .jsw-support-hero .kicker,.jsw-support-section .kicker{margin:0 0 1rem;color:var(--jsw-gold-dark);font:700 .76rem/1.2 var(--jsw-sans);letter-spacing:.15em;text-transform:uppercase} .jsw-support-hero .kicker,.jsw-support-section.dark .kicker{color:var(--jsw-gold-light)} .jsw-support-hero h1{max-width:14ch;margin:0;color:#fff;font:400 clamp(3.1rem,8vw,7rem)/.88 var(--jsw-serif);letter-spacing:-.035em} .jsw-support-hero p{max-width:61ch;margin:1.4rem 0 0;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.72} .jsw-support-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem} .jsw-support-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.78rem 1.15rem;border:1px solid rgba(255,255,255,.55);border-radius:3px;color:#fff;text-decoration:none;font-weight:800} .jsw-support-actions a:first-child{background:var(--jsw-gold);border-color:var(--jsw-gold);color:var(--jsw-ink)} .jsw-support-section{padding:clamp(4.2rem,8vw,7.5rem) 0;background:#fff} .jsw-support-section.alt{background:var(--jsw-cream-dark,#f0ede6)} .jsw-support-section.dark{background:var(--jsw-forest);color:#fff} .jsw-support-shell{width:var(--support-shell);margin:0 auto} .jsw-support-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);gap:clamp(1.5rem,5vw,5rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.5rem)} .jsw-support-heading h2{max-width:17ch;margin:0;font:400 clamp(2.35rem,5vw,4.6rem)/.95 var(--jsw-serif);letter-spacing:-.025em} .jsw-support-heading p{margin:0;max-width:62ch;color:var(--jsw-muted);font-size:1.02rem;line-height:1.75} .jsw-support-section.dark .jsw-support-heading h2{color:#fff}.jsw-support-section.dark .jsw-support-heading p{color:rgba(255,255,255,.75)} .jsw-support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem} .jsw-support-card{padding:clamp(1.25rem,2.4vw,2rem);border:1px solid var(--jsw-border);border-radius:1rem;background:#fff;box-shadow:0 15px 38px rgba(28,28,25,.06)} .jsw-support-section.dark .jsw-support-card{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06);box-shadow:none} .jsw-support-card h3{margin:0 0 .65rem;font-size:1.08rem}.jsw-support-card p{margin:0;color:var(--jsw-muted);line-height:1.65}.jsw-support-section.dark .jsw-support-card p{color:rgba(255,255,255,.72)} .jsw-support-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem} .jsw-support-proof div{padding:1.2rem;border:1px solid rgba(255,255,255,.14);border-radius:.9rem;background:rgba(255,255,255,.06)} .jsw-support-proof strong{display:block;margin-bottom:.35rem;color:var(--jsw-gold-light);font-size:.84rem;text-transform:uppercase;letter-spacing:.08em}.jsw-support-proof span{color:rgba(255,255,255,.8);line-height:1.55} .jsw-support-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem} .jsw-support-gallery figure{margin:0;overflow:hidden;border-radius:1rem;background:#fff;box-shadow:0 18px 42px rgba(28,28,25,.09)} .jsw-support-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover} .jsw-support-gallery figcaption{padding:1rem 1.1rem;color:var(--jsw-ink);font-weight:750;line-height:1.4} .jsw-support-steps{counter-reset:steps;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem} .jsw-support-step{position:relative;padding:1.4rem 1.35rem 1.45rem;border-top:3px solid var(--jsw-gold);background:#fff;color:var(--jsw-ink)} .jsw-support-step::before{content:none;display:none} .jsw-support-step h3{margin:0 0 .55rem}.jsw-support-step p{margin:0;color:var(--jsw-muted);line-height:1.65} .jsw-support-callout{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:clamp(1.5rem,3vw,2.5rem);border-radius:1.2rem;background:var(--jsw-forest);color:#fff} .jsw-support-callout h2{margin:0 0 .5rem;font:400 clamp(2rem,4vw,3.5rem)/1 var(--jsw-serif)}.jsw-support-callout p{margin:0;color:rgba(255,255,255,.75);line-height:1.65} .jsw-support-callout a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;border-radius:3px;background:var(--jsw-gold);color:var(--jsw-ink);text-decoration:none;font-weight:800;white-space:nowrap} .jsw-support-contact-grid{display:grid;grid-template-columns:minmax(18rem,.72fr) minmax(0,1.28fr);gap:clamp(2rem,5vw,5rem);align-items:start} .jsw-support-contact-list{display:grid;gap:.85rem}.jsw-support-contact-list a,.jsw-support-contact-list span{display:block;padding:1rem 1.05rem;border:1px solid var(--jsw-border);border-radius:.8rem;background:#fff;color:var(--jsw-ink);text-decoration:none;line-height:1.55} .jsw-support-form{padding:clamp(1.25rem,3vw,2rem);border-radius:1.2rem;background:#fff;box-shadow:0 20px 55px rgba(28,28,25,.1)} .jsw-support-form h2{margin:0 0 .45rem;font:400 clamp(2rem,4vw,3.2rem)/1 var(--jsw-serif)}.jsw-support-form>p{margin:0 0 1.2rem;color:var(--jsw-muted);line-height:1.65} .jsw-support-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.jsw-support-form-grid label{display:grid;gap:.38rem;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.jsw-support-form-grid label.full{grid-column:1/-1} .jsw-support-form-grid :is(input,select,textarea){box-sizing:border-box;width:100%;min-height:48px;padding:.75rem .8rem;border:1px solid var(--jsw-border);border-radius:.65rem;background:#fff;color:var(--jsw-ink);font:inherit;text-transform:none;letter-spacing:normal}.jsw-support-form-grid textarea{min-height:8rem;resize:vertical} .jsw-support-form button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:1rem;padding:.8rem 1.2rem;border:0;border-radius:3px;background:var(--jsw-gold);color:var(--jsw-ink);font-weight:800;cursor:pointer} .jsw-finance-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.jsw-finance-option{padding:1.5rem;border:1px solid var(--jsw-border);border-radius:1rem;background:#fff}.jsw-finance-option strong{display:block;margin-bottom:.45rem;font-size:1.08rem}.jsw-finance-option p{margin:0;color:var(--jsw-muted);line-height:1.65} .jsw-policy-content{max-width:850px}.jsw-policy-content h2{margin:2.2rem 0 .65rem;font:400 clamp(1.8rem,3vw,2.6rem)/1 var(--jsw-serif)}.jsw-policy-content h2:first-child{margin-top:0}.jsw-policy-content p,.jsw-policy-content li{color:var(--jsw-muted);line-height:1.75}.jsw-policy-content ul{padding-left:1.3rem} @media(max-width:900px){.jsw-support-heading,.jsw-support-contact-grid{grid-template-columns:1fr}.jsw-support-grid,.jsw-support-gallery,.jsw-support-steps,.jsw-finance-options{grid-template-columns:1fr 1fr}.jsw-support-proof{grid-template-columns:1fr 1fr}.jsw-support-callout{grid-template-columns:1fr;align-items:start}.jsw-support-callout a{justify-self:start}} @media(max-width:620px){.jsw-support-hero{min-height:680px}.jsw-support-hero-shell{width:min(100% - 32px,1180px)}.jsw-support-grid,.jsw-support-gallery,.jsw-support-steps,.jsw-finance-options,.jsw-support-proof,.jsw-support-form-grid{grid-template-columns:1fr}.jsw-support-form-grid label.full{grid-column:auto}.jsw-support-actions{display:grid}.jsw-support-actions a{width:100%;box-sizing:border-box}.jsw-support-callout a{width:100%;box-sizing:border-box}.jsw-support-section{padding-block:4rem}} @media(prefers-reduced-motion:reduce){.jsw-page--support *{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}} /* Final user, developer, and marketing refinements */ .jsw-finance-disclaimer{max-width:74ch;margin:1rem 0 0;padding:.9rem 1rem;border-left:3px solid var(--jsw-gold);background:rgba(189,151,73,.08);color:var(--jsw-muted);font-size:.9rem;line-height:1.65} .jsw-contact-process .jsw-support-heading>div{min-width:0} @media(max-width:620px){.jsw-finance-disclaimer{font-size:.88rem}.jsw-contact-process .jsw-support-step{padding:1.25rem}} /* About page final image-led and conversion-ready layout. */ .jsw-page--about .jsw-support-hero h1{max-width:13ch;font-size:clamp(3rem,7vw,6.35rem);line-height:.91;} .jsw-about-story-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(22rem,1.08fr);gap:clamp(2rem,6vw,6rem);align-items:center;} .jsw-about-story-copy h2{max-width:15ch;margin:0 0 1rem;font:400 clamp(2.35rem,5vw,4.7rem)/.96 var(--jsw-serif);letter-spacing:-.025em;} .jsw-about-story-copy>p:not(.kicker){max-width:63ch;margin:0;color:var(--jsw-muted);font-size:1.04rem;line-height:1.75;} .jsw-about-principles{display:grid;gap:.72rem;margin-top:1.5rem;} .jsw-about-principles article{display:grid;grid-template-columns:minmax(9rem,.42fr) minmax(0,1fr);gap:1rem;padding:1rem 0;border-top:1px solid var(--jsw-border);} .jsw-about-principles strong{font-size:.9rem;letter-spacing:.03em;text-transform:uppercase;} .jsw-about-principles span{color:var(--jsw-muted);line-height:1.6;} .jsw-about-story-visual{margin:0;overflow:hidden;border-radius:1.15rem;background:#fff;box-shadow:0 22px 58px rgba(28,28,25,.12);} .jsw-about-story-visual img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;} .jsw-about-story-visual figcaption{padding:1rem 1.15rem;color:var(--jsw-muted);font-size:.92rem;line-height:1.55;} .jsw-about-quote-intro{max-width:55ch;margin:.9rem 0 1.25rem;color:var(--jsw-muted);line-height:1.7;} .jsw-page--about .jsw-about-quote .jsw-support-contact-grid>div:first-child>h2{max-width:13ch;margin:.25rem 0 0;font:400 clamp(2.25rem,4.5vw,4rem)/.98 var(--jsw-serif);letter-spacing:-.025em;} @media(max-width:900px){.jsw-about-story-grid{grid-template-columns:1fr}.jsw-about-story-visual{max-width:760px}.jsw-page--about .jsw-support-hero h1{font-size:clamp(3rem,10vw,5.2rem)}} @media(max-width:620px){.jsw-page--about .jsw-support-hero h1{max-width:12ch;font-size:clamp(2.8rem,13vw,4.25rem);line-height:.94}.jsw-about-story-copy h2{font-size:clamp(2.25rem,10vw,3.4rem)}.jsw-about-principles article{grid-template-columns:1fr;gap:.35rem}.jsw-about-story-visual img{aspect-ratio:4/3}.jsw-page--about .jsw-about-quote .jsw-support-contact-grid>div:first-child>h2{font-size:clamp(2.15rem,9vw,3.1rem)}} /* ===== Wallpaper Removal & Installation ===== */ .jsw-page--wallpaper-removal-installation, .jsw-page--wallpaper-removal-installation *{margin:0;padding:0;box-sizing:border-box} .jsw-page--wallpaper-removal-installation{--cream:#FAF8F4;--cream-dark:#F0EDE6;--ink:#1C1C19;--ink-soft:#3A3933;--ink-muted:#7A7869;--gold:#B8975A;--gold-light:#D4B47A;--forest:#1E3028;--forest-mid:#2A4035;--white:#FFFFFF;--border:#E4E0D6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--paper-pink:#D8B8AE;--paper-green:#6E7B62;--paper-warm:#D8C9B3;--paper-ink:#344039} .jsw-page--wallpaper-removal-installation{scroll-behavior:smooth} .jsw-page--wallpaper-removal-installation{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.72} .jsw-page--wallpaper-removal-installation img{display:block;max-width:100%} .jsw-page--wallpaper-removal-installation a{color:inherit} .jsw-page--wallpaper-removal-installation section{padding:7rem 5vw} .jsw-page--wallpaper-removal-installation .kicker{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem} .jsw-page--wallpaper-removal-installation .kicker.light{color:var(--gold-light)} .jsw-page--wallpaper-removal-installation .btn-primary,.jsw-page--wallpaper-removal-installation .btn-light,.jsw-page--wallpaper-removal-installation .btn-line{display:inline-block;text-decoration:none;border-radius:2px;padding:.92rem 1.75rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s ease,background .2s ease,border-color .2s ease} .jsw-page--wallpaper-removal-installation .btn-primary{background:var(--forest);color:var(--white)} .jsw-page--wallpaper-removal-installation .btn-primary:hover{background:var(--gold);color:var(--ink);transform:translateY(-1px)} .jsw-page--wallpaper-removal-installation .btn-light{background:var(--cream);color:var(--forest);border:1px solid var(--border)} .jsw-page--wallpaper-removal-installation .btn-line{border:1px solid rgba(30,48,40,.22);color:var(--forest);background:transparent} .jsw-page--wallpaper-removal-installation .btn-light:hover,.jsw-page--wallpaper-removal-installation .btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)} .jsw-page--wallpaper-removal-installation .wallpaper-hero{padding:9rem 5vw 5.5rem;background:linear-gradient(135deg,var(--cream),var(--cream-dark));min-height:100vh;display:grid;align-items:center} .jsw-page--wallpaper-removal-installation .hero-shell{max-width:1240px;margin:auto;width:100%;display:grid;grid-template-columns:.92fr 1.08fr;gap:2.4rem;align-items:center} .jsw-page--wallpaper-removal-installation .hero-copy h1{font-family:var(--serif);font-size:clamp(3.3rem,6vw,6.6rem);font-weight:300;line-height:.94;letter-spacing:-.035em;color:var(--ink);margin:1rem 0 1.2rem} .jsw-page--wallpaper-removal-installation .hero-copy h1 em{font-style:italic;color:var(--gold)} .jsw-page--wallpaper-removal-installation .hero-copy p{color:var(--ink-muted);font-weight:300;max-width:650px;font-size:1.02rem;margin-bottom:2rem} .jsw-page--wallpaper-removal-installation .hero-actions{display:flex;gap:1rem;flex-wrap:wrap} .jsw-page--wallpaper-removal-installation .peel-lab{background:var(--white);border:1px solid var(--border);box-shadow:0 28px 80px rgba(28,28,25,.08);padding:1.1rem;min-height:650px;display:grid;grid-template-rows:auto 1fr auto} .jsw-page--wallpaper-removal-installation .peel-lab.reveal-lab{min-height:auto;padding:0;overflow:hidden} .jsw-page--wallpaper-removal-installation .reveal-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.15rem 1.2rem;border-bottom:1px solid var(--border)} .jsw-page--wallpaper-removal-installation .reveal-top strong{font-family:var(--serif);font-size:clamp(1.9rem,2.6vw,3rem);font-weight:400;line-height:.98;color:var(--ink);max-width:18ch} .jsw-page--wallpaper-removal-installation .reveal-top span{font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;white-space:nowrap;padding-top:.6rem} .jsw-page--wallpaper-removal-installation .reveal-shell{padding:0 0 1rem} .jsw-page--wallpaper-removal-installation .reveal-visual{position:relative;aspect-ratio:16/9;background:#e7e0d4;overflow:hidden;border-bottom:1px solid var(--border);touch-action:none;cursor:ew-resize} .jsw-page--wallpaper-removal-installation .reveal-before,.jsw-page--wallpaper-removal-installation .reveal-after{position:absolute;inset:0} .jsw-page--wallpaper-removal-installation .reveal-before img,.jsw-page--wallpaper-removal-installation .reveal-after img{width:100%;height:100%;object-fit:cover;display:block} .jsw-page--wallpaper-removal-installation .reveal-before{z-index:1} .jsw-page--wallpaper-removal-installation .reveal-after{z-index:2;clip-path:inset(0 100% 0 0);box-shadow:18px 0 34px rgba(28,28,25,.14)} .jsw-page--wallpaper-removal-installation .reveal-divider{position:absolute;top:0;bottom:0;left:0%;width:3px;background:rgba(255,255,255,.96);box-shadow:0 0 0 1px rgba(28,28,25,.1),0 0 18px rgba(255,255,255,.45);transform:translateX(-1.5px);z-index:4;pointer-events:none} .jsw-page--wallpaper-removal-installation .reveal-handle{position:absolute;top:50%;left:clamp(1.625rem,var(--reveal-handle-left,1.625rem),calc(100% - 1.625rem));transform:translate(-50%,-50%);width:3.25rem;height:3.25rem;border-radius:999px;background:rgba(198,152,64,.96);color:var(--white);display:grid;place-items:center;font-size:1.4rem;box-shadow:0 14px 35px rgba(28,28,25,.24);z-index:5;pointer-events:none} .jsw-page--wallpaper-removal-installation .reveal-before-label,.jsw-page--wallpaper-removal-installation .reveal-after-label{position:absolute;z-index:6;bottom:1rem;padding:.65rem .85rem;background:rgba(250,248,244,.92);border-left:3px solid var(--gold);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink-soft)} .jsw-page--wallpaper-removal-installation .reveal-before-label{left:1rem} .jsw-page--wallpaper-removal-installation .reveal-after-label{right:1rem} .jsw-page--wallpaper-removal-installation .reveal-track-wrap{padding:1rem 1.2rem 0} .jsw-page--wallpaper-removal-installation .reveal-range{width:100%;accent-color:var(--gold)} .jsw-page--wallpaper-removal-installation .reveal-stage-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--border);margin-top:.95rem} .jsw-page--wallpaper-removal-installation .reveal-stage{padding:1rem .55rem .2rem;text-align:center;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;cursor:pointer;transition:color .2s ease,background .2s ease;position:relative} .jsw-page--wallpaper-removal-installation .reveal-stage + .reveal-stage{border-left:1px solid var(--border)} .jsw-page--wallpaper-removal-installation .reveal-stage.active{color:var(--ink);background:rgba(198,152,64,.08)} .jsw-page--wallpaper-removal-installation .reveal-stage.active::before{content:"";position:absolute;left:18%;right:18%;top:0;height:3px;background:var(--gold)} .jsw-page--wallpaper-removal-installation .reveal-caption{padding:1rem 1.2rem 0;display:grid;gap:.35rem} .jsw-page--wallpaper-removal-installation .reveal-caption small{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700} .jsw-page--wallpaper-removal-installation .reveal-caption strong{font-family:var(--serif);font-size:1.45rem;font-weight:400;color:var(--ink)} .jsw-page--wallpaper-removal-installation .reveal-caption p{font-size:.94rem;color:var(--ink-muted);max-width:60ch} @media(max-width:1180px){.jsw-page--wallpaper-removal-installation .reveal-top{display:grid}.jsw-page--wallpaper-removal-installation .reveal-top span{padding-top:0}.jsw-page--wallpaper-removal-installation .reveal-stage-row{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:680px){ .jsw-page--wallpaper-removal-installation .hero-shell>*{min-width:0} .jsw-page--wallpaper-removal-installation .peel-lab.reveal-lab, .jsw-page--wallpaper-removal-installation .reveal-top, .jsw-page--wallpaper-removal-installation .reveal-shell, .jsw-page--wallpaper-removal-installation .reveal-visual, .jsw-page--wallpaper-removal-installation .reveal-track-wrap, .jsw-page--wallpaper-removal-installation .reveal-caption{width:100%;max-width:100%;min-width:0;box-sizing:border-box} .jsw-page--wallpaper-removal-installation .reveal-top{gap:.65rem;padding:1rem} .jsw-page--wallpaper-removal-installation .reveal-top strong{font-size:clamp(1.75rem,9.5vw,2.35rem);max-width:none} .jsw-page--wallpaper-removal-installation .reveal-top span{white-space:normal;padding-top:0;font-size:.72rem;line-height:1.45;letter-spacing:.1em} .jsw-page--wallpaper-removal-installation .reveal-stage-row{grid-template-columns:1fr 1fr} .jsw-page--wallpaper-removal-installation .reveal-stage{min-width:0;padding:.85rem .35rem .3rem;font-size:.7rem;line-height:1.3;white-space:normal} .jsw-page--wallpaper-removal-installation .reveal-before-label,.jsw-page--wallpaper-removal-installation .reveal-after-label{font-size:.58rem;max-width:42%;line-height:1.3} .jsw-page--wallpaper-removal-installation .reveal-track-wrap,.jsw-page--wallpaper-removal-installation .reveal-caption{padding-left:1rem;padding-right:1rem} } .jsw-page--wallpaper-removal-installation .quote-copy h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,4rem);font-weight:300;line-height:1.04} .jsw-page--wallpaper-removal-installation .quote-section{background:var(--cream)} .jsw-page--wallpaper-removal-installation .quote-wrap{max-width:1180px;margin:auto;display:grid;gap:1.5px;background:var(--border);border:1px solid var(--border)} .jsw-page--wallpaper-removal-installation .quote-copy{background:var(--white);flex-direction:column} .jsw-page--wallpaper-removal-installation .quote-copy p{color:var(--ink-muted);font-weight:300} .jsw-page--wallpaper-removal-installation .quote-form{background:var(--forest);color:var(--white)} .jsw-page--wallpaper-removal-installation .quote-form h3{font-family:var(--serif);font-size:2.2rem;font-weight:300;color:var(--white);line-height:1.05} .jsw-page--wallpaper-removal-installation .quote-form p{color:rgba(255,255,255,.66);font-weight:300} .jsw-page--wallpaper-removal-installation .form-grid{display:grid;grid-template-columns:1fr 1fr} .jsw-page--wallpaper-removal-installation .form-field{display:flex;flex-direction:column} .jsw-page--wallpaper-removal-installation .form-field.full{grid-column:1/-1} .jsw-page--wallpaper-removal-installation label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700} .jsw-page--wallpaper-removal-installation input,.jsw-page--wallpaper-removal-installation select,.jsw-page--wallpaper-removal-installation textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:var(--white);font-family:var(--sans);font-size:.92rem;outline:none} .jsw-page--wallpaper-removal-installation textarea{resize:vertical} .jsw-page--wallpaper-removal-installation input::placeholder,.jsw-page--wallpaper-removal-installation textarea::placeholder{color:rgba(255,255,255,.45)} .jsw-page--wallpaper-removal-installation select option{color:var(--ink)} .jsw-page--wallpaper-removal-installation .form-note{font-size:.78rem;color:rgba(255,255,255,.56)} @media(max-width:980px){ .jsw-page--wallpaper-removal-installation .hero-shell,.jsw-page--wallpaper-removal-installation .quote-wrap{grid-template-columns:1fr} .jsw-page--wallpaper-removal-installation .peel-lab{min-height:480px} } @media(max-width:640px){ .jsw-page--wallpaper-removal-installation section{padding:4.5rem 5vw} .jsw-page--wallpaper-removal-installation .wallpaper-hero{padding-top:7rem} .jsw-page--wallpaper-removal-installation .form-grid{grid-template-columns:1fr} .jsw-page--wallpaper-removal-installation .quote-wrap{display:block} .jsw-page--wallpaper-removal-installation .quote-form,.jsw-page--wallpaper-removal-installation .quote-copy{padding:2rem} } .jsw-page--wallpaper-removal-installation .route-sort-section{background:var(--forest);color:var(--white)} .jsw-page--wallpaper-removal-installation .route-sort-shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:3rem;align-items:center} .jsw-page--wallpaper-removal-installation .route-sort-copy h2{font-family:var(--serif);font-size:clamp(2.25rem,4vw,4rem);font-weight:300;line-height:1.04;color:var(--white);margin-bottom:1rem} .jsw-page--wallpaper-removal-installation .route-sort-copy p{color:rgba(255,255,255,.7);font-weight:300} .jsw-page--wallpaper-removal-installation .wallpaper-sorter{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);padding:1.2rem;display:grid;gap:1.2rem} .jsw-page--wallpaper-removal-installation .sorter-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)} .jsw-page--wallpaper-removal-installation .sorter-ticket{border:0;background:var(--forest-mid);color:var(--white);padding:1.15rem;text-align:left;min-height:150px;cursor:pointer;transition:background .25s ease,transform .25s ease} .jsw-page--wallpaper-removal-installation .sorter-ticket:hover,.jsw-page--wallpaper-removal-installation .sorter-ticket.active{background:var(--gold);color:var(--ink);transform:translateY(-3px)} .jsw-page--wallpaper-removal-installation .sorter-ticket span{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:.75rem} .jsw-page--wallpaper-removal-installation .sorter-ticket strong{font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.08} .jsw-page--wallpaper-removal-installation .sorter-output{display:grid;grid-template-columns:28px 1fr .9fr;gap:1rem;align-items:stretch;min-height:360px} .jsw-page--wallpaper-removal-installation .sorter-meter{background:rgba(255,255,255,.12);position:relative;overflow:hidden} .jsw-page--wallpaper-removal-installation .sorter-meter div{position:absolute;left:0;right:0;bottom:0;height:33%;background:var(--gold);transition:height .45s ease} .jsw-page--wallpaper-removal-installation .sorter-copy-card{background:var(--cream);color:var(--ink);padding:2rem;display:flex;flex-direction:column;justify-content:center} .jsw-page--wallpaper-removal-installation .sorter-copy-card span{font-family:var(--serif);font-size:3.2rem;color:var(--gold);line-height:1} .jsw-page--wallpaper-removal-installation .sorter-copy-card h3{font-family:var(--serif);font-size:2rem;font-weight:300;line-height:1.05;margin:.7rem 0;color:var(--ink)} .jsw-page--wallpaper-removal-installation .sorter-copy-card p{color:var(--ink-muted);font-weight:300;margin-bottom:1.25rem} .jsw-page--wallpaper-removal-installation .sorter-copy-card a{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;text-decoration:none} .jsw-page--wallpaper-removal-installation .sorter-photo{overflow:hidden;background:var(--forest)} .jsw-page--wallpaper-removal-installation .sorter-photo img{width:100%;height:100%} @media(max-width:980px){.jsw-page--wallpaper-removal-installation .route-sort-shell,.jsw-page--wallpaper-removal-installation .sorter-output{grid-template-columns:1fr}.jsw-page--wallpaper-removal-installation .sorter-photo{min-height:280px}} @media(max-width:640px){.jsw-page--wallpaper-removal-installation .sorter-columns{grid-template-columns:1fr}} .jsw-page--wallpaper-removal-installation .wall-story-section{ background:var(--cream); padding:7rem 5vw; } .jsw-page--wallpaper-removal-installation .wall-story-shell{ max-width:1180px; margin:auto; display:grid; grid-template-columns:.82fr 1.18fr; gap:3rem; align-items:center; } .jsw-page--wallpaper-removal-installation .wall-story-copy h2{ font-family:var(--serif); font-size:clamp(2.25rem,4vw,4rem); font-weight:300; line-height:1.04; color:var(--ink); margin-bottom:1rem; } .jsw-page--wallpaper-removal-installation .wall-story-copy p{ color:var(--ink-muted); font-weight:300; line-height:1.85; } .jsw-page--wallpaper-removal-installation .wall-story-points{ display:grid; gap:.8rem; margin:1.6rem 0 1.8rem; } .jsw-page--wallpaper-removal-installation .wall-story-points span{ border-top:1px solid var(--border); padding-top:.8rem; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; } @media(max-width:980px){ } @media(max-width:680px){ } .jsw-page--wallpaper-removal-installation .quote-section{ padding:6rem 5vw!important; } .jsw-page--wallpaper-removal-installation .quote-wrap{ grid-template-columns:.92fr 1.08fr!important; align-items:stretch!important; } .jsw-page--wallpaper-removal-installation .quote-copy{ padding:2.35rem!important; display:grid!important; grid-template-rows:auto auto 1fr!important; gap:1.25rem!important; justify-content:initial!important; } .jsw-page--wallpaper-removal-installation .quote-copy > div:first-child{ display:grid!important; gap:.85rem!important; } .jsw-page--wallpaper-removal-installation .quote-copy h2{ margin-bottom:0!important; } .jsw-page--wallpaper-removal-installation .quote-copy p{ margin:0!important; } .jsw-page--wallpaper-removal-installation .quote-form{ padding:2.35rem!important; display:flex!important; flex-direction:column!important; justify-content:center!important; } .jsw-page--wallpaper-removal-installation .quote-form h3{ margin-bottom:.45rem!important; } .jsw-page--wallpaper-removal-installation .quote-form p{ margin-bottom:1rem!important; } .jsw-page--wallpaper-removal-installation .form-grid{ gap:.75rem!important; } .jsw-page--wallpaper-removal-installation .form-field{ gap:.3rem!important; } .jsw-page--wallpaper-removal-installation input,.jsw-page--wallpaper-removal-installation select,.jsw-page--wallpaper-removal-installation textarea{ padding:.72rem .85rem!important; } .jsw-page--wallpaper-removal-installation textarea{ min-height:92px!important; } .jsw-page--wallpaper-removal-installation .form-note{ margin:.8rem 0 1rem!important; } @media(max-width:980px){ .jsw-page--wallpaper-removal-installation .quote-wrap{ grid-template-columns:1fr!important; } .jsw-page--wallpaper-removal-installation .quote-copy{ grid-template-rows:auto auto auto!important; } } .jsw-page--wallpaper-removal-installation .wallpaper-quote-redesign{ padding:5.75rem 5vw!important; background:var(--cream)!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-wrap{ max-width:1180px!important; margin:auto!important; display:grid!important; grid-template-columns:minmax(360px,.95fr) minmax(460px,1.05fr)!important; gap:1.5px!important; align-items:stretch!important; background:var(--border)!important; border:1px solid var(--border)!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-copy{ background:var(--white)!important; padding:2.1rem!important; display:grid!important; gap:1.05rem!important; } .jsw-page--wallpaper-removal-installation .quote-copy-main{ display:grid!important; gap:.75rem!important; } .jsw-page--wallpaper-removal-installation .quote-copy-main .kicker{ margin-bottom:0!important; } .jsw-page--wallpaper-removal-installation .quote-copy-main h2{ font-size:clamp(2.05rem,3.25vw,3.25rem)!important; line-height:1.05!important; margin:0!important; } .jsw-page--wallpaper-removal-installation .quote-copy-main p{ margin:0!important; font-size:.94rem!important; line-height:1.75!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-form{ background:var(--forest)!important; padding:2.1rem!important; color:var(--white)!important; display:grid!important; grid-template-rows:auto auto auto auto!important; gap:.95rem!important; align-content:center!important; } .jsw-page--wallpaper-removal-installation .quote-form-heading{ display:grid!important; gap:.5rem!important; } .jsw-page--wallpaper-removal-installation .quote-form-heading h3{ font-size:clamp(1.9rem,3vw,2.55rem)!important; margin:0!important; line-height:1.05!important; } .jsw-page--wallpaper-removal-installation .quote-form-heading p{ margin:0!important; font-size:.9rem!important; line-height:1.65!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid{ display:grid!important; grid-template-columns:1fr 1fr!important; gap:.72rem!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid .form-field{ gap:.28rem!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid label{ font-size:.62rem!important; letter-spacing:.13em!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid input,.jsw-page--wallpaper-removal-installation .compact-form-grid select,.jsw-page--wallpaper-removal-installation .compact-form-grid textarea{ padding:.68rem .8rem!important; font-size:.9rem!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid textarea{ min-height:86px!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-form .form-note{ margin:0!important; font-size:.76rem!important; line-height:1.55!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-form .btn-light{ width:max-content!important; margin:0!important; padding:.82rem 1.45rem!important; } @media(max-width:980px){ .jsw-page--wallpaper-removal-installation .redesigned-quote-wrap{ grid-template-columns:1fr!important; } } @media(max-width:640px){ .jsw-page--wallpaper-removal-installation .wallpaper-quote-redesign{ padding:4.5rem 5vw!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-copy,.jsw-page--wallpaper-removal-installation .redesigned-quote-form{ padding:1.55rem!important; } .jsw-page--wallpaper-removal-installation .compact-form-grid{ grid-template-columns:1fr!important; } .jsw-page--wallpaper-removal-installation .redesigned-quote-form .btn-light{ width:100%!important; text-align:center!important; } } .jsw-page--wallpaper-removal-installation .redesigned-quote-copy{ grid-template-rows:auto auto!important; align-content:center!important; } @media(max-width:980px){ } .jsw-page--wallpaper-removal-installation .story-carousel-lab{background:var(--white);border:1px solid var(--border);box-shadow:0 24px 70px rgba(28,28,25,.08);overflow:hidden} .jsw-page--wallpaper-removal-installation .story-carousel-frame{position:relative;background:var(--cream-dark)} .jsw-page--wallpaper-removal-installation .story-carousel-track{display:flex;transition:transform .58s cubic-bezier(.22,.61,.36,1);will-change:transform} .jsw-page--wallpaper-removal-installation .story-carousel-slide{min-width:100%;display:grid;grid-template-rows:auto 1fr;background:var(--white)} .jsw-page--wallpaper-removal-installation .story-carousel-image{position:relative;aspect-ratio:4/3;background:var(--cream-dark);overflow:hidden} .jsw-page--wallpaper-removal-installation .story-carousel-image img{width:100%;height:100%;object-fit:cover;display:block} .jsw-page--wallpaper-removal-installation .story-carousel-badge{position:absolute;left:1rem;top:1rem;background:rgba(250,248,244,.92);border-left:3px solid var(--gold);padding:.7rem .85rem;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);font-weight:700} .jsw-page--wallpaper-removal-installation .story-carousel-content{display:grid;gap:.45rem;padding:1.25rem 1.35rem 1.45rem} .jsw-page--wallpaper-removal-installation .story-carousel-content small{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700} .jsw-page--wallpaper-removal-installation .story-carousel-content strong{font-family:var(--serif);font-size:1.65rem;font-weight:400;line-height:1.05;color:var(--ink)} .jsw-page--wallpaper-removal-installation .story-carousel-content p{font-size:.95rem;color:var(--ink-muted);font-weight:300} .jsw-page--wallpaper-removal-installation .story-carousel-controls{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0 .8rem} .jsw-page--wallpaper-removal-installation .story-carousel-btn{pointer-events:auto;width:2.75rem;height:2.75rem;border-radius:999px;border:1px solid rgba(255,255,255,.7);background:rgba(30,48,40,.86);color:var(--white);font-size:1.35rem;cursor:pointer;display:grid;place-items:center;box-shadow:0 14px 30px rgba(28,28,25,.18)} .jsw-page--wallpaper-removal-installation .story-carousel-btn:hover{background:var(--gold);color:var(--ink)} .jsw-page--wallpaper-removal-installation .story-carousel-status{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.2rem;border-top:1px solid var(--border);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;background:var(--cream)} .jsw-page--wallpaper-removal-installation .story-carousel-status span:last-child{color:var(--gold)} @media(max-width:980px){.jsw-page--wallpaper-removal-installation .story-carousel-lab{min-height:auto}.jsw-page--wallpaper-removal-installation .story-carousel-image{aspect-ratio:16/10}} .jsw-page--wallpaper-removal-installation .sorter-photo img{ object-fit:cover !important; object-position:center center !important; } /* JSW interactive quality layer */ .jsw-page--wallpaper-removal-installation{min-width:0;overflow-x:clip;isolation:isolate;scroll-padding-top:calc(var(--jsw-header-height,78px) + 1rem)} .jsw-page--wallpaper-removal-installation,.jsw-page--wallpaper-removal-installation *{box-sizing:border-box} .jsw-page--wallpaper-removal-installation img,.jsw-page--wallpaper-removal-installation video,.jsw-page--wallpaper-removal-installation canvas,.jsw-page--wallpaper-removal-installation svg{max-width:100%;height:auto} .jsw-page--wallpaper-removal-installation button,.jsw-page--wallpaper-removal-installation [role="button"],.jsw-page--wallpaper-removal-installation input[type="range"]{touch-action:manipulation} .jsw-page--wallpaper-removal-installation button,.jsw-page--wallpaper-removal-installation [role="button"],.jsw-page--wallpaper-removal-installation a,.jsw-page--wallpaper-removal-installation input,.jsw-page--wallpaper-removal-installation select,.jsw-page--wallpaper-removal-installation textarea{-webkit-tap-highlight-color:transparent} .jsw-page--wallpaper-removal-installation button:not(:disabled),.jsw-page--wallpaper-removal-installation [role="button"]:not([aria-disabled="true"]),.jsw-page--wallpaper-removal-installation input[type="range"]{cursor:pointer} .jsw-page--wallpaper-removal-installation button:disabled,.jsw-page--wallpaper-removal-installation [aria-disabled="true"]{cursor:not-allowed;opacity:.56} .jsw-page--wallpaper-removal-installation [hidden]{display:none!important} .jsw-page--wallpaper-removal-installation [aria-busy="true"]{cursor:progress}.jsw-page--wallpaper-removal-installation :where(button,a,[role="button"],input,select,textarea):focus-visible{outline:3px solid var(--jsw-gold,#b8975a);outline-offset:4px} .jsw-page--wallpaper-removal-installation :where(.carousel-track,.scope-track,.cabinet-track,.exterior-track,.floor-track,.story-carousel-track){backface-visibility:hidden;transform:translateZ(0);will-change:transform} .jsw-page--wallpaper-removal-installation :where(.is-changing,.changing,.is-loading){pointer-events:none} .jsw-page--wallpaper-removal-installation .jsw-interaction-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} @media (hover:hover){ .jsw-page--wallpaper-removal-installation :where(button,a,[role="button"]):not(:disabled){transition-property:transform,background-color,border-color,color,opacity,box-shadow;transition-duration:180ms;transition-timing-function:cubic-bezier(.2,.7,.2,1)} .jsw-page--wallpaper-removal-installation :where(button,a,[role="button"]):not(:disabled):active{transform:translateY(1px)} } @media (max-width:640px){ .jsw-page--wallpaper-removal-installation :where(button,a,[role="button"],input,select,textarea){max-width:100%} .jsw-page--wallpaper-removal-installation :where(.carousel-controls,.slider-controls,.hero-actions){flex-wrap:wrap} } @media (prefers-reduced-motion:reduce){ .jsw-page--wallpaper-removal-installation,.jsw-page--wallpaper-removal-installation *{scroll-behavior:auto!important} .jsw-page--wallpaper-removal-installation *,.jsw-page--wallpaper-removal-installation *::before,.jsw-page--wallpaper-removal-installation *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important} } /* ===== JSW HubSpot launch form integration ===== */ .jsw-hubspot-receiver{position:absolute!important;left:-10000px!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;pointer-events:none!important;opacity:.001!important} .jsw-form-status{display:none;margin:12px 0 0;padding:11px 13px;border-radius:10px;font:600 14px/1.45 Arial,sans-serif;letter-spacing:0;color:#1e3028;background:#eef2ef;border:1px solid rgba(30,48,40,.18)} .jsw-form-status:not(:empty){display:block} .jsw-form-status.is-sending{color:#493b23;background:#fff8e8;border-color:rgba(163,119,42,.28)} .jsw-form-status.is-success{color:#173f2d;background:#e9f6ee;border-color:rgba(34,112,72,.28)} .jsw-form-status.is-error{color:#762020;background:#fff0f0;border-color:rgba(150,35,35,.28)} .jsw-form-fallback.is-submitting button[type="submit"],.jsw-form-fallback button[type="submit"]:disabled{cursor:wait;opacity:.72;transform:none!important;filter:saturate(.8)} .jsw-form-fallback [aria-invalid="true"]{border-color:#a83030!important;box-shadow:0 0 0 3px rgba(168,48,48,.13)!important} .hero-map-quote .jsw-form-status{font-size:12px;line-height:1.35;padding:8px 10px;margin-top:8px} @media (max-width:640px){.jsw-form-status{font-size:13px;padding:10px 11px}.hero-map-quote .jsw-form-status{font-size:11.5px}} /* ===== 2026-08 Photo and Copy Refresh ===== */ .jsw-page--project-gallery .stage img{object-fit:contain;background:#171f1b} .jsw-page--project-gallery .thumb img,.jsw-page--project-gallery .thumb-track img{object-fit:cover} .jsw-page--project-gallery .stage-caption p{max-width:62ch} .jsw-page--service-areas .match-card-image img{object-fit:cover;object-position:center} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-banner-card img{object-fit:cover} /* Final master accessibility and interaction-target refinements */ .jsw-global-footer a{min-height:24px;display:flex;align-items:center;padding:.08rem 0} .jsw-page input[type="range"]{display:block;min-height:28px;height:28px;padding:0;cursor:pointer} .jsw-page--home .hero-scroll-cue{min-height:32px;padding-block:.3rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{min-height:28px} .jsw-page--service-areas .location-pill button{min-width:44px;min-height:28px;padding:.2rem .35rem} /* Final master target-size and hit-area refinements */ .jsw-global-nav-links a{display:inline-flex;align-items:center;min-height:32px} .jsw-page--cabinet-painting .scope-card>a, .jsw-page--exterior-painting .surface-lane>a, .jsw-page--home-improvement-services .btn-text, .jsw-page--installation-repair-services .path-link, .jsw-page--wallpaper-removal-installation #sorterLink{display:inline-flex;align-items:center;min-height:28px;padding-block:.2rem} .jsw-page--cabinet-painting .scope-dots button{position:relative;width:28px;height:28px;border:0;background:transparent} .jsw-page--cabinet-painting .scope-dots button::before{content:"";position:absolute;inset:50% auto auto 50%;width:9px;height:9px;transform:translate(-50%,-50%);border:1px solid var(--gold);border-radius:50%;background:transparent} .jsw-page--cabinet-painting .scope-dots button.active{background:transparent} .jsw-page--cabinet-painting .scope-dots button.active::before{background:var(--gold)} .jsw-page--installation-repair-services .carousel-dot{position:relative;width:28px;height:28px;border:0;background:transparent} .jsw-page--installation-repair-services .carousel-dot::before{content:"";position:absolute;inset:50% auto auto 50%;width:10px;height:10px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.8);border-radius:50%;background:transparent} .jsw-page--installation-repair-services .carousel-dot.active{background:transparent;border-color:transparent} .jsw-page--installation-repair-services .carousel-dot.active::before{background:var(--gold);border-color:var(--gold)} .jsw-page--interior-painting .brief-carousel-controls button{position:relative;height:28px;background:transparent} .jsw-page--interior-painting .brief-carousel-controls button::before{content:"";position:absolute;top:50%;left:0;width:100%;height:3px;transform:translateY(-50%);background:var(--border);transition:background .25s ease} .jsw-page--interior-painting .brief-carousel-controls button.active{background:transparent} .jsw-page--interior-painting .brief-carousel-controls button.active::before{background:var(--gold)} .jsw-page--drywall-repair-installation .scan-pin{width:28px;height:28px} .jsw-page--flooring-installation .ready-item{min-height:30px} .jsw-page--flooring-installation .ready-item input[type="checkbox"]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0} /* ===== JSW Comprehensive Mobile Optimization 2026-08-10 ===== */ @media (max-width:820px){ html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--jsw-header-height,72px) + env(safe-area-inset-top,0px) + 12px)} body,.jsw-site-body,.jsw-page{max-width:100%;min-width:0;overflow-x:clip} .jsw-site-body{--jsw-mobile-gutter:clamp(16px,5vw,28px)} .jsw-global-header{padding-top:env(safe-area-inset-top,0px)} .jsw-global-nav{width:calc(100% - 24px);min-width:0} .jsw-global-menu-button{min-width:48px;min-height:48px;padding:.7rem .9rem;touch-action:manipulation} .jsw-global-nav-links{max-height:calc(100dvh - var(--jsw-header-height,72px) - env(safe-area-inset-top,0px) - 12px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(.65rem + env(safe-area-inset-bottom,0px))} .jsw-global-nav-links a{min-height:48px;padding:.9rem 1rem} .jsw-global-footer{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))} .jsw-global-footer-grid,.jsw-global-footer-bottom{width:min(100% - 32px,1320px)} .jsw-global-footer-grid>*,.jsw-global-footer-bottom>*{min-width:0} .jsw-global-footer a{min-height:44px;padding:.48rem 0;margin:0} .jsw-page :where(section,header,main,article,aside,div,nav,form,fieldset){min-width:0} .jsw-page :where(img,video,canvas,svg){max-width:100%} .jsw-page :where(button,.btn,[role="button"]){min-height:44px;touch-action:manipulation} .jsw-page :where(button[aria-label],.close-quote,.thumb-scroll,.story-carousel-btn,.arrow-pair button){min-width:44px} .jsw-page :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){min-height:46px;font-size:16px!important} .jsw-page input[type="range"]{display:block;min-height:44px;height:44px;touch-action:pan-y;margin-block:0} .jsw-page :where(button,a,input,select,textarea,[role="button"],[role="tab"]){-webkit-tap-highlight-color:transparent} .jsw-page :where(.btn,.text-link,.btn-text,.path-link,.scope-card>a,.surface-lane>a,#sorterLink){display:inline-flex;align-items:center;justify-content:center;min-height:44px} .jsw-page :where(.scope-dots button,.carousel-dot,.brief-carousel-controls button,.preset-swatch,.scan-pin,.gallery-filter,.category-tab,.wall-reveal-stage,.reveal-stage,.sorter-ticket,.ksv-choice,.room-card,.home-improvement-tab){min-height:44px} .jsw-page :where(.scope-dots button,.carousel-dot,.brief-carousel-controls button,.preset-swatch,.scan-pin){min-width:44px} .jsw-page :where(.hero-actions,.carousel-controls,.slider-controls,.ksv-actions,.bts-actions){row-gap:.75rem} .jsw-page :where([id],section){scroll-margin-top:calc(var(--jsw-header-height,72px) + env(safe-area-inset-top,0px) + 12px)} /* Home: retain the full feature set while making touch controls easier to operate. */ .jsw-page--home .hero-service-tabs{scroll-padding-inline:1px;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain} .jsw-page--home .hero-service-tab{min-height:72px} .jsw-page--home .category-tab{min-height:48px} .jsw-page--home .preset-swatch{width:44px;height:44px;border-radius:50%;background-clip:content-box;padding:6px} .jsw-page--home .gallery-filter{min-height:44px;padding:.7rem .78rem} .jsw-page--home .wall-reveal-stage{padding:.75rem .65rem} .jsw-page--home .wall-reveal-visual{touch-action:pan-y pinch-zoom} .jsw-page--home .color-wheel-wrap canvas,.jsw-page--home #colorWheel{touch-action:none} /* Cabinet, exterior, flooring, installation, and interior shared controls. */ .jsw-page--cabinet-painting :where(.scope-prev,.scope-next,.scope-dots button), .jsw-page--exterior-painting :where(.exterior-prev,.exterior-next,.carousel-controls button), .jsw-page--flooring-installation :where(.floor-prev,.floor-next,.carousel-controls button), .jsw-page--installation-repair-services :where(.carousel-dot,.carousel-controls button), .jsw-page--interior-painting .brief-carousel-controls button{min-width:44px;min-height:44px} .jsw-page--flooring-installation .ready-item{min-height:44px;padding-block:.55rem} .jsw-page--flooring-installation .ready-item input[type="checkbox"]{width:22px;height:22px;min-width:22px;flex-basis:22px} .jsw-page--interior-painting .brief-carousel-controls{gap:.35rem} .jsw-page--interior-painting #interiorColorWheel{touch-action:none} /* Drywall hotspots retain their visual size while receiving a full finger-sized hit area. */ .jsw-page--drywall-repair-installation .scan-pin{width:44px;height:44px;border:8px solid transparent;background-clip:padding-box;touch-action:manipulation} /* Project Gallery: full-width mobile composition and stable readable captions. */ .jsw-page--project-gallery .gallery-shell,.jsw-page--project-gallery .gallery-viewer,.jsw-page--project-gallery .gallery-info,.jsw-page--project-gallery .gallery-top,.jsw-page--project-gallery .stage-caption{min-width:0;max-width:100%} .jsw-page--project-gallery .gallery-info{overflow:clip} .jsw-page--project-gallery .category-tabs{width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:.1rem;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;padding-bottom:.35rem} .jsw-page--project-gallery .category-tabs button{flex:0 0 auto;min-height:44px;scroll-snap-align:start} .jsw-page--project-gallery .stage-caption{left:.75rem;right:.75rem;bottom:.75rem;padding:.9rem} .jsw-page--project-gallery .stage-caption strong{font-size:clamp(1.35rem,6vw,1.65rem)} .jsw-page--project-gallery .arrow-pair button,.jsw-page--project-gallery .thumb-scroll{width:48px;height:48px;min-width:48px;min-height:48px} .jsw-page--project-gallery .thumb-dock{grid-template-columns:48px minmax(0,1fr) 48px} .jsw-page--project-gallery .thumb-track{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch} .jsw-page--project-gallery .thumb{scroll-snap-align:center;min-height:132px} /* Design Studio: all configuration choices remain directly reachable on touch devices. */ .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tabs{grid-template-columns:repeat(2,minmax(0,1fr))} .jsw-page--kitchen-bathroom-basement-design-studio :where(.ksv-choice,.ksv-btn,.bts-btn,.room-card){min-height:48px} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-option-grid{gap:.7rem} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{min-width:44px;min-height:44px;padding:.55rem .7rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options{display:block;max-height:min(58dvh,520px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;mask-image:none;-webkit-mask-image:none;padding-right:.2rem;scrollbar-width:thin} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options-track{animation:none!important;transform:none!important;will-change:auto;display:grid;grid-template-columns:1fr;gap:.7rem} .jsw-page--kitchen-bathroom-basement-design-studio .bts-option{scroll-margin-block:.65rem} .jsw-page--kitchen-bathroom-basement-design-studio :where(.ksv-stage,.bts-stage,.bathroom-frame-stage){min-width:0;max-width:100%} /* Wallpaper: stack the example carousel and make reveal controls touch friendly. */ .jsw-page--wallpaper-removal-installation .wall-story-shell{grid-template-columns:1fr;gap:2rem;align-items:start} .jsw-page--wallpaper-removal-installation .story-carousel-lab{width:100%;min-width:0} .jsw-page--wallpaper-removal-installation .story-carousel-btn{width:48px;height:48px;min-width:48px;min-height:48px} .jsw-page--wallpaper-removal-installation :where(.reveal-visual,#wallpaperRevealVisual){touch-action:pan-y pinch-zoom} .jsw-page--wallpaper-removal-installation .reveal-stage{min-height:46px;padding:.7rem .55rem} .jsw-page--wallpaper-removal-installation .sorter-ticket{transform:none!important} /* Service Areas: prevent mobile overflow and keep the complete map form usable. */ .jsw-page--service-areas :where(.hero-shell,.browser-shell,.region-browser,.region-output,.location-list,.focused-area-shell,.focused-area-control,.focused-map-panel,.services-shell,.service-match,.seo-shell,.quote-wrap){width:100%;max-width:100%;min-width:0} .jsw-page--service-areas .hero-area-carousel{padding:.8rem;gap:.8rem} .jsw-page--service-areas .hero-carousel-map{min-height:clamp(500px,68dvh,610px)} .jsw-page--service-areas .hero-map-caption{left:.7rem;right:.7rem;bottom:.7rem;padding:.85rem} .jsw-page--service-areas .hero-map-quote{width:calc(100% - 1rem);max-height:calc(100% - 1rem);padding:.78rem;background:rgba(22,38,31,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overscroll-behavior:contain} .jsw-page--service-areas .hero-map-quote-grid{grid-template-columns:1fr;gap:.45rem} .jsw-page--service-areas .hero-map-quote h2,.jsw-page--service-areas .hero-map-quote h3{font-size:1.25rem} .jsw-page--service-areas .hero-map-quote p{font-size:.74rem;line-height:1.4} .jsw-page--service-areas .hero-map-quote input,.jsw-page--service-areas .hero-map-quote select{min-height:44px;margin-top:.2rem;padding:.55rem .62rem} .jsw-page--service-areas .hero-map-quote button.close-quote{width:44px;height:44px;min-width:44px;min-height:44px} .jsw-page--service-areas .hero-map-quote .btn-light{min-height:46px;margin-top:.55rem} .jsw-page--service-areas .hero-area-select{grid-template-columns:1fr} .jsw-page--service-areas .hero-area-select button,.jsw-page--service-areas .focused-search-wrap button{min-height:48px} .jsw-page--service-areas .hero-area-group-toggle,.jsw-page--service-areas .hero-area-tab,.jsw-page--service-areas .region-tabs button,.jsw-page--service-areas .location-pill button{min-height:44px} .jsw-page--service-areas .location-pill{align-items:center;min-width:0} .jsw-page--service-areas .location-pill span{min-width:0;overflow-wrap:anywhere} .jsw-page--service-areas .focused-area-card{min-height:auto;overflow:visible;padding:1.35rem;gap:.75rem} .jsw-page--service-areas .focused-area-card strong{font-size:clamp(1.9rem,9vw,2.25rem)} .jsw-page--service-areas .focused-map-panel{padding:1rem} .jsw-page--service-areas .focused-map.real-md-map{min-height:clamp(320px,52dvh,430px)} .jsw-page--service-areas .region-tabs{grid-template-columns:1fr;gap:1px} .jsw-page--service-areas .region-output,.jsw-page--service-areas .location-list{grid-template-columns:1fr} .jsw-page--service-areas .match-card:hover{transform:none} } @media (max-width:430px){ .jsw-global-nav{width:calc(100% - 16px)} .jsw-page--home .hero-service-tab{flex-basis:158px} .jsw-page--home .gallery-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))} .jsw-page--home .gallery-filter{width:100%} .jsw-page--project-gallery .stage,.jsw-page--project-gallery .stage img{min-height:clamp(390px,112vw,455px)} .jsw-page--project-gallery .stage-caption p{font-size:.84rem;line-height:1.48} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-tabs{grid-template-columns:1fr} .jsw-page--service-areas .hero-carousel-map{min-height:clamp(510px,72dvh,610px)} .jsw-page--service-areas .hero-map-caption p{font-size:.8rem} .jsw-page--wallpaper-removal-installation .story-carousel-image{aspect-ratio:4/3} } @media (hover:none) and (pointer:coarse){ .jsw-page :where(button,a,[role="button"]):active{transform:none} .jsw-page :where(.match-card,.thumb,.sorter-ticket,.scope-card,.surface-lane):hover{transform:none} .jsw-page :where(.hero-service-tabs,.category-tabs,.thumb-track,.hero-area-group-buttons){scrollbar-width:none} .jsw-page :where(.hero-service-tabs,.category-tabs,.thumb-track,.hero-area-group-buttons)::-webkit-scrollbar{display:none} } @media (prefers-reduced-motion:reduce) and (max-width:820px){ html{scroll-behavior:auto!important} .jsw-page--kitchen-bathroom-basement-design-studio .bts-options{scroll-behavior:auto} } /* JSW mobile pass-gate refinements */ @media (max-width:820px){ .jsw-skip-link:focus{min-height:44px;display:flex;align-items:center} .jsw-page--home .hero-scroll-cue{min-height:44px;padding-block:.65rem} .jsw-page--cabinet-painting .scope-card a, .jsw-page--exterior-painting .surface-lane a, .jsw-page--home-improvement-services .btn-text, .jsw-page--installation-repair-services .path-link, .jsw-page--service-areas .service-match a, .jsw-page--wallpaper-removal-installation #sorterLink{min-height:44px!important;padding-block:.55rem!important;display:inline-flex;align-items:center} .jsw-page--service-areas .focused-area-card{overflow:hidden} .jsw-page--service-areas .focused-area-control{overflow:hidden} .jsw-page--service-areas .focused-area-shell{overflow:hidden} .jsw-page--service-areas .finder-section{overflow:hidden} } @media (max-width:820px){ .jsw-page--service-areas .focused-area-card{ flex:0 0 auto; block-size:auto; min-block-size:0; justify-content:flex-start; } } @media (max-width:820px){ .jsw-page--flooring-installation .ready-item input[type="checkbox"]{ width:26px; height:26px; min-width:26px; flex-basis:26px; } } /* Touch-device parity for phone and tablet landscape widths. */ @media (hover:none) and (pointer:coarse) and (max-width:1024px){ html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--jsw-header-height,72px) + env(safe-area-inset-top,0px) + 12px)} .jsw-global-header{padding-top:env(safe-area-inset-top,0px)} .jsw-global-menu-button{min-width:48px;min-height:48px;padding:.7rem .9rem;touch-action:manipulation} .jsw-global-nav-links a{min-height:48px;padding-block:.75rem} .jsw-global-footer a{display:flex;align-items:center;min-height:44px;padding-block:.48rem;margin:0} .jsw-page :where(button,.btn,[role="button"],[role="tab"]){min-height:44px;touch-action:manipulation} .jsw-page :where(button[aria-label],.close-quote,.thumb-scroll,.story-carousel-btn,.arrow-pair button,.carousel-controls button,.brief-carousel-controls button,.scope-dots button,.carousel-dot,.preset-swatch,.scan-pin){min-width:44px} .jsw-page :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){min-height:46px;font-size:16px!important} .jsw-page input[type="range"]{display:block;min-height:44px;height:44px;touch-action:pan-y;margin-block:0} .jsw-page :where(.btn,.text-link,.btn-text,.path-link,.scope-card>a,.surface-lane>a,#sorterLink,.service-match a){display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding-block:.55rem} .jsw-page :where(.category-tab,.gallery-filter,.wall-reveal-stage,.reveal-stage,.sorter-ticket,.ksv-choice,.room-card,.home-improvement-tab,.hero-area-group-toggle,.hero-area-tab,.region-tabs button,.location-pill button){min-height:44px} .jsw-page--home .preset-swatch{width:44px;height:44px;border-radius:50%;background-clip:content-box;padding:6px} .jsw-page--drywall-repair-installation .scan-pin{width:44px;height:44px;border:8px solid transparent;background-clip:padding-box} .jsw-page--flooring-installation .ready-item{min-height:44px;padding-block:.55rem} .jsw-page--flooring-installation .ready-item input[type="checkbox"]{width:26px;height:26px;min-width:26px;flex-basis:26px} .jsw-page--kitchen-bathroom-basement-design-studio :where(.ksv-choice,.ksv-btn,.bts-btn,.room-card){min-height:48px} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{min-width:44px;min-height:44px;padding:.55rem .7rem} .jsw-page--project-gallery .category-tabs button{min-height:44px} .jsw-page--project-gallery .arrow-pair button,.jsw-page--project-gallery .thumb-scroll{width:48px;height:48px;min-width:48px;min-height:48px} .jsw-page--service-areas .hero-area-group-toggle,.jsw-page--service-areas .hero-area-tab,.jsw-page--service-areas .region-tabs button,.jsw-page--service-areas .location-pill button{min-height:44px} .jsw-page--service-areas .location-pill button{min-width:64px;padding:.55rem .72rem} .jsw-page--service-areas .service-match a{min-height:44px} .jsw-page--wallpaper-removal-installation .story-carousel-btn{width:48px;height:48px;min-width:48px;min-height:48px} .jsw-skip-link:focus{min-height:44px;display:flex;align-items:center} } @media (hover:none) and (pointer:coarse) and (max-width:1024px){ .jsw-page--home .hero-scroll-cue, .jsw-page--cabinet-painting .scope-card>a, .jsw-page--exterior-painting .surface-lane>a, .jsw-page--home-improvement-services .btn-text, .jsw-page--installation-repair-services .path-link, .jsw-page--wallpaper-removal-installation #sorterLink{ display:flex!important; align-items:center!important; min-height:44px!important; padding-block:.55rem!important; } } /* ===== JSW Marketing Effectiveness Enhancements 2026-08-10 ===== */ .jsw-proof-section{padding:clamp(4rem,7vw,7rem) 0;background:linear-gradient(135deg,#f4efe5 0%,#fffdf8 48%,#ece5d7 100%);color:#18372e} .jsw-proof-shell{display:grid;gap:clamp(2rem,4vw,3.8rem)} .jsw-proof-heading{max-width:60rem} .jsw-proof-heading h2{max-width:52rem;margin:.5rem 0 1rem} .jsw-proof-heading>p:last-child{max-width:58rem;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.75;color:#3f514a} .jsw-proof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem} .jsw-proof-stat{min-height:9.5rem;padding:1.35rem;border:1px solid rgba(24,55,46,.16);border-radius:1.25rem;background:rgba(255,255,255,.72);box-shadow:0 16px 38px rgba(24,55,46,.08);display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:inherit;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease} .jsw-proof-stat:is(a):hover,.jsw-proof-stat:is(a):focus-visible{transform:translateY(-3px);border-color:#b78c3d;box-shadow:0 20px 44px rgba(24,55,46,.13)} .jsw-proof-stat strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(1.8rem,3vw,3rem);line-height:1;color:#18372e} .jsw-proof-stat span{margin-top:.55rem;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#5d665f} .jsw-proof-story{display:grid;grid-template-columns:minmax(0,1.6fr) auto;gap:2rem;align-items:center;padding:clamp(1.5rem,3vw,2.3rem);border-radius:1.4rem;background:#18372e;color:#fff;box-shadow:0 24px 60px rgba(24,55,46,.2)} .jsw-proof-story h3{margin:0 0 .7rem;color:#fff;font-size:clamp(1.5rem,2.4vw,2.2rem)} .jsw-proof-story p{margin:0;max-width:50rem;color:rgba(255,255,255,.82);line-height:1.7} .jsw-proof-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end} .jsw-proof-story .btn-light{border-color:rgba(255,255,255,.55);color:#fff} .jsw-quote-assurance{display:grid;gap:.3rem;margin:0 0 1.2rem;padding:.9rem 1rem;border-radius:.9rem;background:color-mix(in srgb,var(--gold,#c7a15a) 14%,transparent);border:1px solid color-mix(in srgb,var(--gold,#c7a15a) 38%,transparent);font-size:.84rem;line-height:1.45} .jsw-quote-assurance strong{font-size:.78rem;letter-spacing:.035em;text-transform:uppercase} .jsw-quote-assurance span{opacity:.9} .jsw-quote-assurance a{color:inherit;font-weight:800;text-underline-offset:.2em} .jsw-gallery-conversion{padding:clamp(4rem,7vw,7rem) clamp(1rem,4vw,3.5rem);background:linear-gradient(135deg,#18372e,#244c40);color:#fff} .gallery-conversion-shell{width:min(1180px,100%);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:clamp(2rem,5vw,5rem);align-items:start} .gallery-conversion-copy h2{margin:.5rem 0 1rem;color:#fff;font-size:clamp(2rem,4vw,3.6rem)} .gallery-conversion-copy>p{max-width:42rem;color:rgba(255,255,255,.78);line-height:1.75} .gallery-service-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:1.5rem} .gallery-service-links a{padding:.75rem .85rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;font-weight:700;background:rgba(255,255,255,.06);transition:background .2s ease,border-color .2s ease,transform .2s ease} .gallery-service-links a:hover,.gallery-service-links a:focus-visible{background:rgba(255,255,255,.12);border-color:#d8b469;transform:translateY(-2px)} .jsw-marketing-form{padding:clamp(1.25rem,2.5vw,2rem);border-radius:1.25rem;background:#fff;color:#18372e;box-shadow:0 24px 60px rgba(0,0,0,.22)} .jsw-marketing-form h3{margin:0 0 .45rem;font-size:clamp(1.45rem,2.4vw,2rem)} .jsw-marketing-form>p{margin:0 0 1rem;color:#56645f;line-height:1.6} .jsw-marketing-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:1rem} .jsw-marketing-form-grid label{display:grid;gap:.35rem;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase} .jsw-marketing-form-grid label.full{grid-column:1/-1} .jsw-marketing-form-grid :is(input,select,textarea){width:100%;min-height:3rem;padding:.7rem .8rem;border:1px solid rgba(24,55,46,.22);border-radius:.65rem;background:#fff;color:#18372e;font:inherit;text-transform:none;letter-spacing:normal} .jsw-marketing-form-grid textarea{min-height:7rem;resize:vertical} @media(max-width:900px){.jsw-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jsw-proof-story,.gallery-conversion-shell{grid-template-columns:1fr}.jsw-proof-actions{justify-content:flex-start}} @media(max-width:600px){ .jsw-proof-grid,.gallery-service-links,.jsw-marketing-form-grid{grid-template-columns:1fr}.jsw-marketing-form-grid label.full{grid-column:auto}.jsw-proof-stat{min-height:7.8rem}.jsw-proof-story{padding:1.3rem}.jsw-proof-actions{display:grid}.jsw-proof-actions .btn{width:100%;justify-content:center}} @media(prefers-reduced-motion:reduce){.jsw-proof-stat,.gallery-service-links a{transition:none!important}} /* ===== JSW Master Marketing Audit Enhancements 2026-08-10 ===== */ .jsw-mm-decision-section{position:relative;padding:clamp(4.5rem,7vw,7.5rem) clamp(1rem,4vw,3.5rem);background:linear-gradient(145deg,#f5f0e7 0%,#fffdf8 54%,#eee6d8 100%);color:#18372e;overflow:hidden} .jsw-mm-decision-section::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 92% 10%,rgba(199,161,90,.13),transparent 34%);pointer-events:none} .jsw-mm-shell{position:relative;width:min(1180px,100%);margin-inline:auto} .jsw-mm-decision-heading{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr);gap:clamp(1.5rem,4vw,4.5rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.5rem)} .jsw-mm-decision-heading .kicker{grid-column:1/-1;margin:0} .jsw-mm-decision-heading h2{margin:0;max-width:18ch;font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-size:clamp(2.35rem,5vw,4.7rem);font-weight:400;line-height:.94;letter-spacing:-.025em} .jsw-mm-decision-heading>p:last-child{margin:0;max-width:62ch;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.75;color:rgba(24,55,46,.8)} .jsw-mm-related-wrap{display:grid;grid-template-columns:minmax(15rem,.65fr) minmax(0,1.35fr);gap:clamp(1.5rem,4vw,4rem);align-items:start;margin-top:clamp(2rem,4vw,3.75rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid rgba(24,55,46,.16)} .jsw-mm-related-wrap h3{margin:.45rem 0 0;max-width:20ch;font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-size:clamp(2rem,3.3vw,3.2rem);font-weight:400;line-height:1} .jsw-mm-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem} .jsw-mm-related-card{display:grid;gap:.45rem;min-height:9.5rem;padding:1.15rem;border:1px solid rgba(24,55,46,.16);border-radius:1rem;background:#18372e;color:#fff;text-decoration:none} .jsw-mm-related-card strong{font-size:.96rem;line-height:1.3} .jsw-mm-related-card span{font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.74)} .jsw-mm-related-card:focus-visible{outline:3px solid #c7a15a;outline-offset:3px} .jsw-mm-reviews-section{padding:clamp(4.5rem,7vw,7.5rem) clamp(1rem,4vw,3.5rem);background:#18372e;color:#fff} .jsw-mm-reviews-shell{display:grid;gap:clamp(2rem,4vw,3.5rem)} .jsw-mm-reviews-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,.8fr);gap:clamp(1.5rem,4vw,5rem);align-items:end} .jsw-mm-reviews-heading .eyebrow{grid-column:1/-1;margin:0;color:#d9bd83} .jsw-mm-reviews-heading h2{margin:0;max-width:17ch;font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-size:clamp(2.55rem,5.2vw,5.1rem);font-weight:400;line-height:.92;letter-spacing:-.03em} .jsw-mm-reviews-heading>p:last-child{margin:0;max-width:60ch;color:rgba(255,255,255,.76);font-size:clamp(1rem,1.35vw,1.14rem);line-height:1.75} .jsw-mm-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem} .jsw-mm-review-card{display:grid;align-content:space-between;gap:1.5rem;min-height:15rem;margin:0;padding:clamp(1.35rem,2.5vw,2rem);border:1px solid rgba(255,255,255,.16);border-radius:1.2rem;background:rgba(255,255,255,.065)} .jsw-mm-review-card blockquote{margin:0;font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-size:clamp(1.4rem,2.4vw,2.05rem);font-weight:400;line-height:1.17} .jsw-mm-review-card blockquote::before{content:"\201C ";display:block;color:#d9bd83;font-size:2.2em;line-height:.45;margin-bottom:.4rem} .jsw-mm-review-card figcaption{display:grid;gap:.2rem;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#d9bd83} .jsw-mm-review-card figcaption span{font-weight:500;text-transform:none;letter-spacing:0;color:rgba(255,255,255,.62)} .jsw-mm-review-actions{display:flex;flex-wrap:wrap;gap:.75rem} .jsw-mm-privacy-section{padding:clamp(2.8rem,5vw,4.2rem) clamp(1rem,4vw,3.5rem);background:#0f271f;color:#fff;border-top:1px solid rgba(255,255,255,.1)} .jsw-mm-privacy-shell{display:grid;grid-template-columns:minmax(15rem,.7fr) minmax(0,1.3fr);gap:clamp(1.5rem,4vw,4rem);align-items:start} .jsw-mm-privacy-shell h2{margin:.45rem 0 0;font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;line-height:1} .jsw-mm-privacy-shell p{margin:0 0 .75rem;max-width:72ch;color:rgba(255,255,255,.72);font-size:.88rem;line-height:1.65} .jsw-mm-privacy-shell a{color:#e0c58d;font-weight:700} .jsw-form-privacy{margin:.85rem 0 1rem!important;font-size:.73rem!important;line-height:1.5!important;opacity:.82} .jsw-form-privacy a{color:inherit;font-weight:750;text-decoration:underline;text-underline-offset:.18em} .jsw-campaign-context{margin:0 0 1rem;padding:.85rem 1rem;border-radius:.85rem;border:1px solid color-mix(in srgb,var(--gold,#c7a15a) 42%,transparent);background:color-mix(in srgb,var(--gold,#c7a15a) 15%,transparent);font-size:.82rem;line-height:1.55} .jsw-campaign-context strong{display:block;margin-bottom:.2rem;font-size:.76rem;letter-spacing:.045em;text-transform:uppercase} .jsw-mm-gallery-next{background:#fffdf8} @media(max-width:900px){ .jsw-mm-decision-heading,.jsw-mm-reviews-heading,.jsw-mm-privacy-shell{grid-template-columns:1fr} .jsw-mm-decision-heading .kicker,.jsw-mm-reviews-heading .eyebrow{grid-column:auto} .jsw-mm-review-grid{grid-template-columns:1fr} .jsw-mm-related-wrap{grid-template-columns:1fr} .jsw-mm-related-grid{grid-template-columns:repeat(3,minmax(12rem,1fr));overflow-x:auto;scroll-snap-type:x proximity;padding:0 0 .5rem;overscroll-behavior-inline:contain} .jsw-mm-related-card{scroll-snap-align:start} } @media(max-width:600px){ .jsw-mm-decision-section,.jsw-mm-reviews-section{padding-block:4rem} .jsw-mm-related-grid{grid-template-columns:minmax(15.5rem,85vw) minmax(15.5rem,85vw) minmax(15.5rem,85vw)} .jsw-mm-related-card{min-height:8.75rem} .jsw-mm-review-actions{display:grid} .jsw-mm-review-actions .btn{width:100%;justify-content:center} .jsw-mm-privacy-section{padding-block:2.6rem} } /* JSW categorized navigation and live-route stabilization */ [data-jsw-dynamic][hidden]{display:none!important} .jsw-global-logo img{display:block;width:auto;height:auto;max-width:132px;max-height:58px;object-fit:contain} .jsw-nav-group{position:relative} .jsw-nav-group-toggle{position:relative;display:inline-flex;align-items:center;gap:.48rem;min-height:44px;padding:.35rem 0;border:0;background:transparent;color:#35352f;text-transform:uppercase;letter-spacing:.065em;font:700 .76rem/1.2 var(--jsw-sans);white-space:nowrap;cursor:pointer} .jsw-nav-group-toggle::before{content:'';position:absolute;right:0;bottom:.2rem;left:0;height:1px;background:var(--jsw-gold);transform:scaleX(0);transform-origin:left;transition:transform .2s ease} .jsw-nav-group-toggle:hover::before,.jsw-nav-group-toggle:focus-visible::before,.jsw-nav-group.is-open>.jsw-nav-group-toggle::before{transform:scaleX(1)} .jsw-nav-chevron{width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease} .jsw-nav-group.is-open>.jsw-nav-group-toggle .jsw-nav-chevron{transform:rotate(225deg) translate(-1px,-1px)} .jsw-nav-submenu{position:absolute;top:calc(100% + .55rem);left:50%;z-index:1005;display:grid;min-width:235px;padding:.55rem;background:#fff;border:1px solid rgba(36,56,47,.12);border-radius:.65rem;box-shadow:0 18px 46px rgba(20,35,28,.17);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-8px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s} .jsw-nav-group.is-open>.jsw-nav-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition-delay:0s} .jsw-nav-submenu a{display:flex!important;width:100%;min-height:44px!important;padding:.72rem .8rem!important;border-radius:.38rem;text-transform:none!important;letter-spacing:0!important;font-size:.86rem!important;font-weight:700!important;white-space:normal!important} .jsw-nav-submenu a::after{display:none!important}.jsw-nav-submenu a:hover,.jsw-nav-submenu a:focus-visible{background:var(--jsw-cream);color:var(--jsw-forest)!important} @media(max-width:1180px) and (min-width:981px){.jsw-global-nav{width:min(98vw,1440px);gap:1rem}.jsw-global-nav-links{gap:.85rem}.jsw-nav-group-toggle,.jsw-global-nav-links>a,.jsw-global-nav-links>li>a{font-size:.69rem}.jsw-global-logo img{max-width:108px}} @media(max-width:980px){.jsw-global-logo img{max-width:105px;max-height:52px}.jsw-nav-group{width:100%}.jsw-nav-group-toggle{width:100%;min-height:48px;justify-content:space-between;padding:.9rem 1rem;border-radius:.35rem}.jsw-nav-group-toggle::before{display:none}.jsw-nav-submenu{position:static;display:none;min-width:0;width:100%;padding:.15rem .35rem .55rem;background:var(--jsw-cream);border:0;border-radius:.45rem;box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:none}.jsw-nav-group.is-open>.jsw-nav-submenu{display:grid;transform:none}.jsw-nav-submenu a{min-height:46px!important;padding:.72rem 1.2rem!important}} /* Desktop submenu travel bridge and final pointer tolerance. */ @media (min-width:981px) and (hover:hover) and (pointer:fine){ .jsw-nav-submenu::before{content:"";position:absolute;left:0;right:0;top:-.72rem;height:.78rem;pointer-events:auto;} } /* JSW-FINAL-PRESENTATION-V3:START */ .jsw-page h1,.jsw-page h2,.jsw-page h3{text-wrap:balance} .jsw-page p,.jsw-page li,.jsw-page figcaption{text-wrap:pretty} [data-jsw-dynamic][hidden]{display:none!important} .jsw-site-body button:empty:not([aria-label]):not(.carousel-dot):not(.scan-pin):not([data-jsw-event-id]){display:none!important} .jsw-page :is(.hero-visual,.room-switcher,.hero-image-stage,.hero-stage,.color-studio,.color-wheel-lab,.wall-scan,.compare-box,.gallery-viewer,.peel-lab,.reveal-lab,.hero-design-card,.project-carousel,.result-carousel,.room-flow-panel,.material-stage){border:1px solid rgba(30,48,40,.16);border-radius:.9rem;box-shadow:0 22px 58px rgba(30,48,40,.14);overflow:hidden} .jsw-page--service-areas :is(.hero-carousel-map,.focused-map,.area-console){border-radius:.85rem} .jsw-page--flooring-installation .room-card>span:first-child,.jsw-page--interior-painting .hero-proof-card>span:first-child,.jsw-page--interior-painting .brief-card>span:first-child{display:none!important} .jsw-page--installation-and-repair-services .hero-service-strip a{justify-content:center;text-align:center} .jsw-page--service-areas .match-card-body{padding-top:1.25rem} .jsw-page--interior-painting .hero-proof-card{grid-template-columns:1fr} .jsw-page--flooring-installation .room-card{grid-template-columns:1fr} @media(min-width:981px) and (hover:hover) and (pointer:fine){.jsw-nav-submenu::before{content:"";position:absolute;left:-.35rem;right:-.35rem;top:-1rem;height:1.08rem;pointer-events:auto}} .jsw-form-microcopy{font-size:clamp(.78rem,.85vw,.9rem);line-height:1.62} .section-dark .jsw-form-microcopy{color:rgba(255,255,255,.76)} .section-dark .jsw-form-microcopy a{color:var(--gold-light)} /* R9 preliminary audit corrections: readable secondary copy and explicit dark-card text. */ .jsw-page--cabinet-painting,.jsw-page--color-guidance,.jsw-page--drywall-repair-installation,.jsw-page--exterior-painting,.jsw-page--flooring-installation,.jsw-page--home-improvement-services,.jsw-page--home,.jsw-page--installation-repair-services,.jsw-page--interior-painting,.jsw-page--kitchen-bathroom-basement-design-studio,.jsw-page--project-gallery,.jsw-page--service-areas,.jsw-page--wallpaper-removal-installation{--ink-muted:#5f5d52;--muted:#5f5d52} .jsw-page--kitchen-bathroom-basement-design-studio .jsw-mm-related-card,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-mm-related-card strong{color:#fff} @media(max-width:620px){.jsw-page h1{font-size:clamp(2.65rem,12vw,4.2rem);line-height:.94}.jsw-page h2{font-size:clamp(2.05rem,9.3vw,3.25rem);line-height:.98}.jsw-page h3{line-height:1.08}} /* JSW-FINAL-PRESENTATION-V3:END */ /* JSW optional competitive enhancement modules. Remove this file from installers to remove all visual enhancements. */ .jsw-competitive-section{position:relative} .jsw-competitive-checklist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem} .jsw-competitive-check{padding:1.25rem;border:1px solid var(--jsw-border);border-radius:1rem;background:#fff;box-shadow:0 15px 38px rgba(28,28,25,.06)} .jsw-competitive-check strong{display:block;margin-bottom:.5rem;color:var(--jsw-ink);font-size:1.02rem} .jsw-competitive-check p{margin:0;color:var(--jsw-muted);line-height:1.65} .jsw-competitive-mobile-dock{display:none} @media(max-width:767px){ body.has-jsw-competitive-dock{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))} .jsw-competitive-mobile-dock{position:fixed;z-index:10020;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom,10px));display:grid;grid-template-columns:.82fr 1.18fr;gap:.55rem;padding:.55rem;border:1px solid rgba(255,255,255,.18);border-radius:1rem;background:rgba(18,31,25,.94);box-shadow:0 18px 42px rgba(0,0,0,.28);backdrop-filter:blur(12px);transition:opacity .2s ease,transform .25s ease,visibility .2s ease} .jsw-competitive-mobile-dock.is-hidden,.jsw-competitive-mobile-dock.is-deferred{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(100% + 24px))} .jsw-competitive-mobile-dock a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem .75rem;border-radius:.65rem;text-decoration:none;font-weight:800;text-align:center} .jsw-competitive-mobile-dock a:first-child{border:1px solid rgba(255,255,255,.45);color:#fff} .jsw-competitive-mobile-dock a:last-child{background:var(--jsw-gold);color:var(--jsw-ink)} .jsw-competitive-checklist{grid-template-columns:1fr 1fr} } @media(max-width:520px){.jsw-competitive-checklist{grid-template-columns:1fr}} @media(prefers-reduced-motion:reduce){.jsw-competitive-mobile-dock{transition:none}} /* ===== JSW Controlled Recovery: final selective refinements ===== */ .jsw-page--home .service-choice{grid-template-columns:1fr auto!important} .jsw-page--home .service-index{display:none!important} .jsw-page--exterior-painting .surface-lane{grid-template-columns:1fr auto!important} .jsw-page--exterior-painting .lane-num{display:none!important} .jsw-page--home-improvement-services .map-num{display:none!important} @media(max-width:820px){ .jsw-page--home .service-choice{grid-template-columns:1fr auto!important} .jsw-page--exterior-painting .surface-lane{grid-template-columns:1fr!important} } /* JSW CONTENT CLEANUP 2026-08-13:START */ /* Alternative feature lists are not processes. Replace decorative numbers with a quiet visual bullet. */ .jsw-page--home-improvement-services .service-interactive-list li{position:relative;padding-left:1.15rem} .jsw-page--home-improvement-services .service-interactive-list li span{display:none!important} .jsw-page--home-improvement-services .service-interactive-list li::before{content:"";position:absolute;left:0;top:1.08rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--gold)} /* About and Contact now use the same image-led split-hero language as the service pages. */ .jsw-page--about .jsw-support-hero,.jsw-page--contact .jsw-support-hero{ width:min(1320px,92vw);min-height:0;margin:clamp(1.6rem,3vw,2.8rem) auto clamp(2.5rem,5vw,4.5rem); padding:clamp(1.2rem,2vw,2rem);display:grid;grid-template-columns:minmax(0,.92fr) minmax(22rem,1.08fr); gap:clamp(1.25rem,3.5vw,3.5rem);align-items:stretch;overflow:visible;color:var(--jsw-ink); background:linear-gradient(135deg,#f8f4ec 0%,#fff 62%,#f0e8d9 100%);border:1px solid rgba(40,62,52,.13); border-radius:1.1rem;box-shadow:0 22px 58px rgba(30,48,40,.12) } .jsw-page--about .jsw-support-hero::after,.jsw-page--contact .jsw-support-hero::after{display:none!important} .jsw-page--about .jsw-support-hero>img,.jsw-page--contact .jsw-support-hero>img{ position:relative;inset:auto;grid-column:2;grid-row:1;width:100%;height:100%;min-height:520px;aspect-ratio:4/3; object-fit:cover;filter:saturate(.94) contrast(1.02);border:8px solid var(--jsw-forest);outline:1px solid rgba(189,151,73,.55); outline-offset:-5px;border-radius:.78rem;box-shadow:0 24px 54px rgba(24,43,34,.18) } .jsw-page--about .jsw-support-hero-shell,.jsw-page--contact .jsw-support-hero-shell{ grid-column:1;grid-row:1;align-self:center;width:auto;margin:0;padding:clamp(1.35rem,3vw,3rem) clamp(.4rem,1.2vw,1.2rem) } .jsw-page--about .jsw-support-hero .kicker,.jsw-page--contact .jsw-support-hero .kicker{color:var(--jsw-gold-dark);margin-bottom:.85rem} .jsw-page--about .jsw-support-hero h1,.jsw-page--contact .jsw-support-hero h1{ max-width:12.5ch;color:var(--jsw-ink);font-size:clamp(3rem,6.2vw,5.85rem);line-height:.92;letter-spacing:-.035em } .jsw-page--about .jsw-support-hero p,.jsw-page--contact .jsw-support-hero p{max-width:58ch;color:var(--jsw-muted);font-size:clamp(1rem,1.2vw,1.14rem);line-height:1.68} .jsw-page--about .jsw-support-actions a,.jsw-page--contact .jsw-support-actions a{border-color:var(--jsw-forest);color:var(--jsw-forest);background:transparent} .jsw-page--about .jsw-support-actions a:first-child,.jsw-page--contact .jsw-support-actions a:first-child{background:var(--jsw-forest);border-color:var(--jsw-forest);color:#fff} .jsw-page--about .jsw-support-actions a:hover,.jsw-page--about .jsw-support-actions a:focus-visible,.jsw-page--contact .jsw-support-actions a:hover,.jsw-page--contact .jsw-support-actions a:focus-visible{transform:translateY(-1px);box-shadow:0 10px 24px rgba(30,48,40,.12)} /* Keep major supporting imagery visually attached to its section without double-framing image tools. */ .jsw-page--support :is(.jsw-about-story-visual,.jsw-support-gallery figure){border:1px solid rgba(40,62,52,.14);box-shadow:0 18px 44px rgba(30,48,40,.10)} @media(max-width:900px){ .jsw-page--about .jsw-support-hero,.jsw-page--contact .jsw-support-hero{grid-template-columns:1fr;gap:1rem;padding:1rem} .jsw-page--about .jsw-support-hero-shell,.jsw-page--contact .jsw-support-hero-shell{grid-column:1;grid-row:1;padding:clamp(1.2rem,4vw,2.1rem) .5rem} .jsw-page--about .jsw-support-hero>img,.jsw-page--contact .jsw-support-hero>img{grid-column:1;grid-row:2;min-height:0;aspect-ratio:16/10;border-width:6px} .jsw-page--about .jsw-support-hero h1,.jsw-page--contact .jsw-support-hero h1{max-width:14ch;font-size:clamp(2.9rem,9.5vw,5rem)} } @media(max-width:620px){ .jsw-page--about .jsw-support-hero,.jsw-page--contact .jsw-support-hero{width:min(100% - 24px,1320px);margin-top:1rem;margin-bottom:2.75rem} .jsw-page--about .jsw-support-hero h1,.jsw-page--contact .jsw-support-hero h1{font-size:clamp(2.7rem,12vw,4.15rem);line-height:.94} .jsw-page--about .jsw-support-hero>img,.jsw-page--contact .jsw-support-hero>img{aspect-ratio:4/3} } /* JSW CONTENT CLEANUP 2026-08-13:END */ /* HubSpot DnD compatibility area: intentionally hidden from the public page. */ .jsw-hubspot-dnd-compatibility{display:none!important} /* ===== R8 first-pass visual standards ===== */ .jsw-r8-assistive-count{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important} .jsw-global-nav-links>.jsw-nav-home>a{font-weight:800} .jsw-page h1{font-size:clamp(2.25rem,4.4vw,4.65rem)!important;line-height:.98!important;text-wrap:balance} .jsw-page .section-head,.jsw-page .jsw-support-heading,.jsw-page .paths-header,.jsw-page .services-header,.jsw-page .wall-story-copy{text-align:center} .jsw-page .section-head>p,.jsw-page .jsw-support-heading>p,.jsw-page .paths-header>.section-desc,.jsw-page .services-header>.section-desc,.jsw-page .wall-story-copy>p{max-width:760px;margin-left:auto;margin-right:auto} .jsw-page .jsw-proof-stat,.jsw-page .jsw-support-card,.jsw-page .process-step,.jsw-page .quote-point,.jsw-page .fit-card,.jsw-page .step-card,.jsw-page .steps>.step{align-content:center;text-align:center} .jsw-page--home .jsw-proof-stat strong,.jsw-page--home .jsw-proof-stat span{display:block;text-align:center;width:100%} .jsw-support-step::before{display:none!important} .jsw-page main figure>img,.jsw-page figure>img{border-radius:16px}.jsw-page figure{border-radius:18px}.jsw-page figure:not(.stage):not(.hero-carousel-stage){overflow:hidden} .jsw-page .btn,.jsw-page a[class*="btn"],.jsw-page button{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease} @media (hover:hover){.jsw-page .btn:hover,.jsw-page a[class*="btn"]:hover,.jsw-page button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(24,39,32,.15)}} .jsw-reveal-heading{opacity:1;transform:none} .jsw-page--drywall-repair-installation .triage-wrap>.wall-scan{grid-column:1/-1;width:100%;margin-top:3rem} .jsw-page--flooring-installation .floor-room-guide-section{background:#fffdf8} .jsw-page--flooring-installation .floor-room-guide-wrap{width:min(1180px,100%);margin:auto;display:grid;gap:2rem} .jsw-page--flooring-installation .floor-room-guide-intro{max-width:760px;margin:auto;text-align:center} .jsw-page--flooring-installation .floor-room-guide-intro p:last-child{margin-top:1rem} .jsw-page--flooring-installation .floor-room-guide-section .room-switcher{width:100%;min-height:640px} .jsw-r8-standard-hero{padding:clamp(4rem,8vw,7rem) 5vw;background:#f6f0e6}.jsw-r8-standard-hero.jsw-r8-dark-hero{background:#1e3028;color:#fff} .jsw-r8-dark-hero .btn-line{border-color:rgba(255,255,255,.55);color:#fff;background:transparent} .jsw-r8-dark-hero .btn-line:hover,.jsw-r8-dark-hero .btn-line:focus-visible{border-color:#d4b47a;color:#d4b47a} .jsw-r8-hero-shell{width:min(1200px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:clamp(2rem,5vw,5rem);align-items:center} .jsw-r8-hero-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.jsw-r8-hero-copy>p{max-width:670px;line-height:1.75}.jsw-r8-dark-hero .jsw-r8-hero-copy>p{color:rgba(255,255,255,.82)} .jsw-r8-hero-proof{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}.jsw-r8-hero-proof span{padding:.55rem .75rem;border:1px solid rgba(179,139,67,.55);border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.03em} .jsw-r8-hero-media{position:relative;margin:0;border:8px solid #263b31;box-shadow:0 24px 60px rgba(18,31,25,.22)}.jsw-r8-hero-media img{width:100%;height:clamp(360px,50vw,620px);object-fit:cover;border-radius:10px!important}.jsw-r8-hero-media figcaption,.jsw-r8-hero-collage figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;padding:.75rem 1rem;background:rgba(21,34,28,.88);color:#fff;border-radius:10px;font-size:.85rem} .jsw-r8-hero-collage{position:relative;min-height:600px}.jsw-r8-hero-collage figure{position:absolute;margin:0;border:7px solid #263b31;box-shadow:0 22px 45px rgba(18,31,25,.2)}.jsw-r8-collage-main{inset:0 8% 8% 0}.jsw-r8-collage-main img,.jsw-r8-collage-accent img{width:100%;height:100%;object-fit:cover}.jsw-r8-collage-accent{width:42%;height:38%;right:0;bottom:0;transform:rotate(1.8deg)} .jsw-page--project-gallery .gallery-page{padding-top:clamp(3rem,6vw,6rem)}.jsw-page--project-gallery .gallery-info{align-self:start}.jsw-page--project-gallery .gallery-info h1{max-width:12ch}.jsw-page--project-gallery .gallery-viewer{border-radius:22px;box-shadow:0 24px 60px rgba(19,34,27,.17);overflow:hidden} .jsw-page--wallpaper-removal-installation .wall-story-section{background:radial-gradient(circle at 12% 18%,rgba(179,139,67,.18),transparent 36%),linear-gradient(135deg,#f6efe3,#e5d9c8)!important}.jsw-page--wallpaper-removal-installation .story-carousel-lab{padding:1rem;border:1px solid rgba(75,55,34,.2);border-radius:24px;background:rgba(255,255,255,.62);box-shadow:0 20px 45px rgba(54,42,25,.12)} .jsw-r8-tile-explorer{background:linear-gradient(135deg,#1e3028,#2d473a)!important;color:#fff;padding:clamp(4rem,8vw,7rem) 5vw}.jsw-r8-tile-explorer .tile-wrap{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:center}.jsw-r8-tile-explorer .section-desc{color:rgba(255,255,255,.8)} .jsw-r8-tile-tabs{display:flex;flex-wrap:wrap;gap:.65rem;margin:1.5rem 0}.jsw-r8-tile-tabs button{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.72rem 1rem;background:transparent;color:#fff;font-weight:800}.jsw-r8-tile-tabs button.active{background:#d4b47a;color:#1e3028;border-color:#d4b47a} .jsw-r8-tile-guidance{display:grid;gap:.6rem;margin:1.2rem 0}.jsw-r8-tile-guidance p{margin:0;padding:.85rem 1rem;border-left:3px solid #d4b47a;background:rgba(255,255,255,.07);color:rgba(255,255,255,.84)}.jsw-r8-tile-stage{position:relative;margin:0;border:8px solid #d4b47a;box-shadow:0 26px 60px rgba(0,0,0,.3)}.jsw-r8-tile-stage img{display:block;width:100%;height:590px;object-fit:cover}.jsw-r8-tile-stage figcaption{display:grid;gap:.25rem;padding:1rem 1.2rem;background:#fff;color:#1e3028}.jsw-r8-tile-stage figcaption strong{font-size:1.1rem}.jsw-r8-tile-stage figcaption span{line-height:1.55;color:#53655d} .jsw-r8-about-hero{min-height:680px}.jsw-r8-about-hero>picture,.jsw-r8-about-hero>picture>img{position:absolute;inset:0;width:100%;height:100%}.jsw-r8-about-hero>picture>img{object-fit:cover;object-position:58% 34%;border-radius:0!important}.jsw-r8-about-hero:after{background:linear-gradient(90deg,rgba(20,34,27,.97) 0%,rgba(20,34,27,.84) 42%,rgba(20,34,27,.2) 72%)}.jsw-r8-about-hero .jsw-r8-hero-copy{background:rgba(20,34,27,.18);border-left:3px solid var(--gold);padding:1.5rem 1.7rem;text-shadow:0 2px 14px rgba(0,0,0,.52)}.jsw-r8-about-hero .jsw-support-hero-shell{position:relative;z-index:2;max-width:650px;margin-left:max(5vw,calc((100vw - 1200px)/2))} .jsw-about-work-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.75fr);gap:2rem;align-items:stretch}.jsw-about-work-layout .jsw-support-grid{grid-template-columns:1fr}.jsw-about-team-visual{margin:0;border:7px solid #24392f;box-shadow:0 20px 45px rgba(18,31,25,.18)}.jsw-about-team-visual img{width:100%;height:100%;min-height:520px;object-fit:cover}.jsw-about-team-visual figcaption{padding:.9rem 1rem;background:#24392f;color:#fff;line-height:1.5} @media(max-width:900px){.jsw-r8-hero-shell,.jsw-r8-tile-explorer .tile-wrap,.jsw-about-work-layout{grid-template-columns:1fr}.jsw-r8-hero-collage{min-height:480px}.jsw-r8-about-hero{min-height:760px}.jsw-r8-about-hero>picture>img{object-position:62% 30%}.jsw-r8-about-hero:after{background:linear-gradient(180deg,rgba(20,34,27,.86),rgba(20,34,27,.58) 65%,rgba(20,34,27,.25))}.jsw-r8-about-hero .jsw-support-hero-shell{margin:0 auto;padding:4rem 5vw;align-self:end}.jsw-r8-tile-stage img{height:480px}} @media(max-width:600px){.jsw-page h1{font-size:clamp(2.05rem,11vw,3rem)!important}.jsw-r8-standard-hero{padding:3.75rem 1rem}.jsw-r8-hero-collage{min-height:390px}.jsw-r8-collage-main{inset:0 4% 8% 0}.jsw-r8-collage-accent{width:46%;height:35%}.jsw-r8-tile-explorer{padding:3.75rem 1rem}.jsw-r8-tile-stage img{height:350px}.jsw-r8-about-hero{min-height:720px}.jsw-r8-about-hero>picture>img{object-position:64% 25%}} @media(prefers-reduced-motion:reduce){.jsw-reveal-heading{opacity:1!important;transform:none!important;transition:none!important}.jsw-page .btn,.jsw-page a[class*="btn"],.jsw-page button{transition:none!important}.jsw-page .btn:hover,.jsw-page a[class*="btn"]:hover,.jsw-page button:hover{transform:none!important}} /* R9.6 copy alignment and readability refinements */ .jsw-page :is(.section-heading,.jsw-section-heading,.gallery-heading)>p{margin-left:auto;margin-right:auto;text-align:center;max-width:760px} .jsw-page :is(.jsw-proof-stat,.fit-card,.brief-card,.intent-card) :is(strong,h3,p,span){text-wrap:balance} @media(max-width:700px){.jsw-r8-about-hero .jsw-r8-hero-copy{padding:1.2rem;background:rgba(20,34,27,.52)}.jsw-page--home .quote-reason>div{max-width:none}} /* ===== R9.7 Homepage Credentials and Heading Flow ===== */ .jsw-page--home .jsw-proof-heading{max-width:none;width:100%} .jsw-page--home .jsw-proof-heading h2{max-width:920px;margin:.5rem auto 1rem;text-align:center;text-wrap:balance} .jsw-page--home .jsw-proof-heading>p:last-child{max-width:900px;margin-left:auto;margin-right:auto;text-align:center;text-wrap:pretty} .jsw-page--home .jsw-proof-heading>.eyebrow{text-align:left} .jsw-page--home .jsw-proof-grid{grid-template-columns:repeat(4,minmax(0,1fr))} .jsw-page--home .jsw-proof-stat{position:relative;isolation:isolate;overflow:hidden;justify-content:center;align-items:center;min-height:11rem;padding:1.6rem;text-align:center;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(244,239,229,.82))} .jsw-page--home .jsw-proof-stat::before,.jsw-page--home .jsw-proof-stat::after{position:absolute;z-index:-1;pointer-events:none} .jsw-page--home .jsw-proof-stat::before{inset:0;content:"";opacity:.105;background-repeat:no-repeat;background-position:center;background-size:72% auto;filter:saturate(.72) contrast(1.08)} .jsw-page--home .jsw-proof-stat::after{right:-1rem;bottom:-1.35rem;font-family:"Cormorant Garamond",Georgia,serif;font-weight:700;line-height:1;color:#18372e;opacity:.075;letter-spacing:-.06em} .jsw-page--home .jsw-proof-stat--maryland::before{background-image:linear-gradient(rgba(255,255,255,.1),rgba(255,255,255,.1)),url('/hubfs/jsw-site/media/service-areas-clean-maryland-service-area-map.webp');background-size:cover;background-position:center 48%;opacity:.12} .jsw-page--home .jsw-proof-stat--maryland::after{content:"MD";font-size:7.5rem} .jsw-page--home .jsw-proof-stat--bbb::before{inset:1.15rem;left:auto;right:1.15rem;width:6.7rem;height:6.7rem;border:2px solid #18372e;border-radius:50%;opacity:.085;background:radial-gradient(circle,transparent 48%,#18372e 49%,#18372e 51%,transparent 52%)} .jsw-page--home .jsw-proof-stat--bbb::after{content:"BBB";font-size:6.2rem} .jsw-page--home .jsw-proof-stat--mhic::before{inset:1.1rem;border:2px solid #18372e;border-radius:50%;opacity:.06;background:radial-gradient(circle at center,transparent 0 42%,#18372e 43% 44%,transparent 45%)} .jsw-page--home .jsw-proof-stat--mhic::after{content:"MHIC";font-size:5.2rem;right:-.45rem} .jsw-page--home .jsw-proof-stat--nextdoor::before{inset:auto auto -2.2rem -1.2rem;width:8.5rem;height:8.5rem;border:2px solid #18372e;border-radius:50%;opacity:.07;background:radial-gradient(circle,#18372e 0 3%,transparent 4% 100%)} .jsw-page--home .jsw-proof-stat--nextdoor::after{content:"FAVE";font-size:5.2rem;right:-.4rem} .jsw-page--home .jsw-proof-stat strong,.jsw-page--home .jsw-proof-stat span{position:relative;z-index:2;text-align:center;width:100%} .jsw-page--home #installation>.shell>.section-head{display:grid;grid-template-columns:1fr;gap:.85rem;justify-items:center;text-align:center;margin-bottom:3.2rem} .jsw-page--home #installation>.shell>.section-head>div{width:100%} .jsw-page--home #installation>.shell>.section-head h2{max-width:900px;margin-left:auto;margin-right:auto;text-wrap:balance} .jsw-page--home #installation>.shell>.section-head>p{max-width:850px;margin:0 auto;text-align:center;text-wrap:pretty} /* Keep supporting section copy directly beneath its heading while preserving each section's chosen alignment. */ .jsw-page :is(.section-head,.section-heading,.jsw-section-heading,.jsw-support-heading,.map-head){grid-template-columns:1fr!important} .jsw-page :is(.section-head,.section-heading,.jsw-section-heading,.jsw-support-heading,.map-head)>p{margin-top:.75rem} .jsw-page :is(.section-head,.section-heading,.jsw-section-heading,.jsw-support-heading,.map-head)>div{max-width:100%} @media(max-width:900px){.jsw-page--home .jsw-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}} @media(max-width:600px){.jsw-page--home .jsw-proof-grid{grid-template-columns:1fr}.jsw-page--home .jsw-proof-stat{min-height:9.5rem}.jsw-page--home .jsw-proof-heading>.eyebrow{text-align:center}} /* ===== R9.8 Spacing and Visual Depth Pass ===== */ /* Heading groups missed by the earlier standardized flow rule. */ .jsw-page--home .jsw-mm-reviews-heading,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-mm-decision-heading{grid-template-columns:1fr;align-items:start;gap:1rem} .jsw-page--home .jsw-mm-reviews-heading h2,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-mm-decision-heading h2{max-width:21ch} .jsw-page--home .jsw-mm-reviews-heading>p:last-child,.jsw-page--kitchen-bathroom-basement-design-studio .jsw-mm-decision-heading>p:last-child{max-width:68ch;margin-top:.2rem} /* Review cards gain depth without competing with the testimonial copy. */ .jsw-page--home .jsw-feedback-unified .jsw-mm-review-card{position:relative;isolation:isolate;overflow:hidden;align-content:center;gap:1.25rem;background-position:center!important;background-size:cover!important;border-color:rgba(255,255,255,.24)} .jsw-page--home .jsw-feedback-unified .jsw-mm-review-card:nth-child(1){background:linear-gradient(rgba(18,35,28,.9),rgba(18,35,28,.92)),url('/hubfs/jsw-site/media/interior-painting-bright-professionally-painted-interior-living-room-refined-trim-balanced.webp')!important} .jsw-page--home .jsw-feedback-unified .jsw-mm-review-card:nth-child(2){background:linear-gradient(rgba(18,35,28,.9),rgba(18,35,28,.92)),url('/hubfs/jsw-site/media/gallery-exterior-blue-colonial-finish.webp')!important} .jsw-page--home .jsw-feedback-unified .jsw-mm-review-card:nth-child(3){background:linear-gradient(rgba(18,35,28,.9),rgba(18,35,28,.92)),url('/hubfs/jsw-site/media/design-studio-white-kitchen-finish.webp')!important} /* Service-area quote copy is centered within the form-height column and uses the Maryland map as a restrained watermark. */ .jsw-page--service-areas .quote-copy{position:relative;isolation:isolate;overflow:hidden;justify-content:center;gap:2rem;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/service-areas-clean-maryland-service-area-map.webp') center/cover no-repeat} .jsw-page--service-areas .quote-copy>div,.jsw-page--service-areas .quote-mini{position:relative;z-index:1} /* Drywall issue cards are vertically balanced and use project-specific repair imagery at low opacity. */ .jsw-page--drywall-repair-installation .triage-card{position:relative;isolation:isolate;overflow:hidden;justify-content:center;gap:1.15rem;min-height:270px;background-position:center!important;background-size:cover!important} .jsw-page--drywall-repair-installation .triage-card>div{position:relative;z-index:1} .jsw-page--drywall-repair-installation .triage-card:nth-child(1){background:linear-gradient(rgba(255,255,255,.91),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/drywall-drywall-repair-patch-damaged-section-being-rebuilt-blended-into-surround.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(2){background:linear-gradient(rgba(255,255,255,.91),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/drywall-open-wall-drywall-installation-showing-new-board-placement-support-areas.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(3){background:linear-gradient(rgba(255,255,255,.91),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/drywall-drywall-room-seams-finished-surface-prepared-primer-or-paint.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(4){background:linear-gradient(rgba(30,48,40,.9),rgba(30,48,40,.94)),url('/hubfs/jsw-site/media/drywall-drywall-installation-taped-seams-compound-work-in-progress.webp')!important} /* Interior room cards now center their copy and use the room type as subtle visual context. */ .jsw-page--interior-painting .brief-card{position:relative;isolation:isolate;overflow:hidden;justify-content:center;background-position:center!important;background-size:cover!important} .jsw-page--interior-painting .brief-card>div{position:relative;z-index:1;max-width:680px} .jsw-page--interior-painting .brief-card:nth-child(1){background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp')!important} .jsw-page--interior-painting .brief-card:nth-child(2){background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/interior-painting-navy-room-wide.webp')!important} .jsw-page--interior-painting .brief-card:nth-child(3){background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/interior-painting-hallway-before-finish.webp')!important} .jsw-page--interior-painting .brief-card:nth-child(4){background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.94)),url('/hubfs/jsw-site/media/interior-painting-staircase-protection.webp')!important} .jsw-page--interior-painting .color-wheel-copy{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,4vw,3.5rem);background:linear-gradient(rgba(250,248,244,.91),rgba(250,248,244,.96)),url('/hubfs/jsw-site/media/interior-painting-bright-professionally-painted-interior-living-room-refined-trim-balanced.webp') center/cover no-repeat} .jsw-page--interior-painting .color-wheel-copy>*{position:relative;z-index:1} /* Color-guidance cards become balanced color stories instead of empty dark boxes. */ .jsw-page--color-guidance .guidance-card{position:relative;isolation:isolate;overflow:hidden;justify-content:center;min-height:270px;background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.025))} .jsw-page--color-guidance .guidance-card::before{content:"";position:absolute;z-index:-1;width:14rem;height:14rem;border-radius:50%;right:-5rem;bottom:-6rem;opacity:.2;filter:blur(2px)} .jsw-page--color-guidance .guidance-card:nth-child(1)::before{background:#d7c8ae}.jsw-page--color-guidance .guidance-card:nth-child(2)::before{background:#819381}.jsw-page--color-guidance .guidance-card:nth-child(3)::before{background:#b8975a}.jsw-page--color-guidance .guidance-card:nth-child(4)::before{background:#7f8fa6} .jsw-page--color-guidance .process-copy{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(rgba(255,255,255,.91),rgba(255,255,255,.96)),url('/hubfs/jsw-site/media/color-guidance-finished-living-room-coordinated-paint-colors-furnishings.webp') center/cover no-repeat} .jsw-page--color-guidance .process-copy>*{position:relative;z-index:1} .jsw-page--color-guidance .quote-copy{position:relative;isolation:isolate;overflow:hidden;justify-content:center;gap:2rem;background:linear-gradient(rgba(30,48,40,.88),rgba(30,48,40,.94)),url('/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp') center/cover no-repeat} .jsw-page--color-guidance .quote-copy>div,.jsw-page--color-guidance .quote-badge{position:relative;z-index:1} /* Flooring quote copy now shares the column height intentionally. */ .jsw-page--flooring-installation .quote-copy{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(rgba(250,248,244,.91),rgba(250,248,244,.95)),url('/hubfs/jsw-site/media/flooring-close-up-cropped-hardwood-plank-flooring-light-glare-removed-from.webp') center/cover no-repeat} .jsw-page--flooring-installation .quote-copy>*{position:relative;z-index:1} @media(max-width:760px){ .jsw-page--service-areas .quote-copy,.jsw-page--color-guidance .quote-copy,.jsw-page--flooring-installation .quote-copy,.jsw-page--color-guidance .process-copy,.jsw-page--interior-painting .color-wheel-copy{justify-content:flex-start} .jsw-page--drywall-repair-installation .triage-card,.jsw-page--color-guidance .guidance-card{min-height:230px} } /* R9.9 visual-consistency repair */ .jsw-global-footer p,.jsw-global-footer a,.jsw-global-footer span{font-size:.94rem;line-height:1.68} .jsw-global-footer-bottom span{font-size:.84rem} .jsw-global-footer-privacy{grid-column:1/-1;margin-top:.25rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.1)} .jsw-global-footer-privacy p{max-width:1080px;font-size:.78rem;line-height:1.6;color:rgba(255,255,255,.58)} /* Interior room cards show real work clearly while preserving text contrast. */ .jsw-page--interior-painting .brief-card:nth-child(1){background:linear-gradient(rgba(255,255,255,.76),rgba(255,255,255,.84)),url('/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp') center/cover no-repeat!important} .jsw-page--interior-painting .brief-card:nth-child(2){background:linear-gradient(rgba(255,255,255,.76),rgba(255,255,255,.84)),url('/hubfs/jsw-site/media/interior-painting-navy-room-wide.webp') center/cover no-repeat!important} .jsw-page--interior-painting .brief-card:nth-child(3){background:linear-gradient(rgba(255,255,255,.76),rgba(255,255,255,.84)),url('/hubfs/jsw-site/media/interior-painting-hallway-before-finish.webp') center/cover no-repeat!important} .jsw-page--interior-painting .brief-card:nth-child(4){background:linear-gradient(rgba(255,255,255,.76),rgba(255,255,255,.84)),url('/hubfs/jsw-site/media/interior-painting-staircase-protection.webp') center/cover no-repeat!important} .jsw-page--interior-painting .color-wheel-copy{background:linear-gradient(rgba(30,48,40,.78),rgba(30,48,40,.86)),url('/hubfs/jsw-site/media/interior-painting-bright-professionally-painted-interior-living-room-refined-trim-balanced.webp') center/cover no-repeat!important} .jsw-page--interior-painting .color-wheel-copy h2{color:#fff!important}.jsw-page--interior-painting .color-wheel-copy p{color:rgba(255,255,255,.84)!important} .jsw-page--interior-painting .room-color-stage.real-room-preview{background:#f4f1ea!important} .jsw-page--interior-painting .room-wall-tint{inset:0!important;clip-path:polygon(0 0,100% 0,100% 61%,0 61%)!important;mix-blend-mode:multiply!important;opacity:.5!important} .jsw-page--interior-painting .process-arc{grid-template-columns:1fr!important;gap:1.3rem!important} .jsw-page--interior-painting .process-intro{min-height:auto!important;display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;align-items:center!important;gap:1.1rem!important;padding:clamp(2rem,4vw,3.4rem)!important;text-align:center!important;background:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/gallery-interior-wall-rolling-process.webp') center/cover no-repeat!important} .jsw-page--interior-painting .process-intro>div,.jsw-page--interior-painting .process-intro>p{width:min(100%,820px)!important}.jsw-page--interior-painting .process-intro>p{margin:0!important;font-size:1.08rem!important;line-height:1.8!important}.jsw-page--interior-painting .process-intro>a{grid-column:auto;width:min(100%,360px)} .jsw-page--interior-painting .process-steps{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:1rem!important} .jsw-page--interior-painting .step-card{display:flex!important;min-height:290px!important;margin:0!important;padding:1.6rem!important;align-items:center!important;justify-content:center!important;text-align:center!important;border-radius:.8rem!important;background-position:center!important;background-size:cover!important} .jsw-page--interior-painting .step-card>div{width:100%;max-width:24ch}.jsw-page--interior-painting .step-card h3{font-size:clamp(1.35rem,2vw,1.8rem)!important}.jsw-page--interior-painting .step-card p{font-size:.96rem!important;line-height:1.72!important} .jsw-page--interior-painting .step-card:nth-child(1){background:linear-gradient(rgba(250,248,244,.78),rgba(250,248,244,.88)),url('/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp') center/cover no-repeat!important} .jsw-page--interior-painting .step-card:nth-child(2){background:linear-gradient(rgba(255,255,255,.78),rgba(255,255,255,.88)),url('/hubfs/jsw-site/media/interior-painting-hallway-before-finish.webp') center/cover no-repeat!important} .jsw-page--interior-painting .step-card:nth-child(3){background:linear-gradient(rgba(250,248,244,.78),rgba(250,248,244,.88)),url('/hubfs/jsw-site/media/interior-painting-navy-room-wide.webp') center/cover no-repeat!important} .jsw-page--interior-painting .step-card:nth-child(4){background:linear-gradient(rgba(255,255,255,.78),rgba(255,255,255,.88)),url('/hubfs/jsw-site/media/interior-painting-staircase-protection.webp') center/cover no-repeat!important} /* Exterior captions sit below the photographs as an integrated dark design band. */ .jsw-page--exterior-painting .project-slide{display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;background:#1e3028!important} .jsw-page--exterior-painting .project-slide img{position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-height:430px!important;object-fit:cover!important} .jsw-page--exterior-painting .project-caption{position:relative!important;inset:auto!important;background:rgba(30,48,40,.94)!important;color:#fff!important;border-left:3px solid var(--gold)!important;padding:1.05rem 1.2rem!important} .jsw-page--exterior-painting .project-caption strong{color:#fff!important}.jsw-page--exterior-painting .project-caption span{color:rgba(255,255,255,.78)!important} .jsw-page--exterior-painting .quote-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;background:linear-gradient(rgba(250,248,244,.78),rgba(250,248,244,.88)),url('/hubfs/jsw-site/media/exterior-painting-blue-exterior-home-siding-trim-finished-curb-appeal.webp') center/cover no-repeat!important;padding:clamp(2rem,4vw,4rem)!important} .jsw-page--exterior-painting .quote-wrap{grid-template-columns:.82fr 1.18fr!important;align-items:stretch!important}.jsw-page--exterior-painting .quote-form{height:100%} /* Cabinet page now uses the same spacing, framing, and contrast language as the approved homepage. */ .jsw-page--cabinet-painting{--cab-radius:.9rem}.jsw-page--cabinet-painting section{padding-block:clamp(5rem,8vw,7rem)} .jsw-page--cabinet-painting .cabinet-hero{background:#f7f4ed!important}.jsw-page--cabinet-painting .jsw-r8-hero-shell{width:min(1180px,90vw)!important;gap:clamp(2rem,5vw,4.5rem)!important;align-items:center!important} .jsw-page--cabinet-painting .jsw-r8-hero-copy h1{font-family:var(--serif)!important;font-weight:400!important;line-height:1.04!important;letter-spacing:-.025em!important}.jsw-page--cabinet-painting .jsw-r8-hero-copy h1 em{font-style:normal!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery{display:grid!important;grid-template-columns:1.2fr .8fr!important;grid-template-rows:1fr 1fr!important;gap:.8rem!important;min-height:650px!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery figure{position:relative!important;inset:auto!important;margin:0!important;border:1px solid rgba(30,48,40,.18)!important;border-radius:var(--cab-radius)!important;overflow:hidden!important;transform:none!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r8-collage-main{grid-row:1/3!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery img{width:100%!important;height:100%!important;object-fit:cover!important} .jsw-page--cabinet-painting .scope-section{background:#1e3028!important;color:#fff!important}.jsw-page--cabinet-painting .scope-copy h2,.jsw-page--cabinet-painting .scope-card h3{color:#fff!important}.jsw-page--cabinet-painting .scope-copy p,.jsw-page--cabinet-painting .scope-card p{color:rgba(255,255,255,.8)!important} .jsw-page--cabinet-painting .scope-shell{width:min(1180px,90vw)!important;grid-template-columns:.72fr 1.28fr!important;gap:2rem!important;align-items:stretch!important}.jsw-page--cabinet-painting .scope-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;padding:clamp(1rem,3vw,2.5rem)!important}.jsw-page--cabinet-painting .scope-carousel{border-radius:var(--cab-radius)!important;overflow:hidden!important} .jsw-page--cabinet-painting .scope-card{min-height:440px!important;justify-content:center!important;padding:clamp(2rem,5vw,4rem)!important;background-position:center!important;background-size:cover!important}.jsw-page--cabinet-painting .scope-card:nth-child(1){background:linear-gradient(rgba(30,48,40,.8),rgba(30,48,40,.88)),url('/hubfs/jsw-site/media/gallery-cabinets-soft-gray-kitchen.webp') center/cover no-repeat!important}.jsw-page--cabinet-painting .scope-card:nth-child(2){background:linear-gradient(rgba(30,48,40,.8),rgba(30,48,40,.88)),url('/hubfs/jsw-site/media/cabinet-painting-kitchen-island-cabinet.webp') center/cover no-repeat!important}.jsw-page--cabinet-painting .scope-card:nth-child(3){background:linear-gradient(rgba(30,48,40,.8),rgba(30,48,40,.88)),url('/hubfs/jsw-site/media/cabinet-painting-bright-kitchen-painted-cabinets-wood-floors.webp') center/cover no-repeat!important}.jsw-page--cabinet-painting .scope-card:nth-child(4){background:linear-gradient(rgba(30,48,40,.8),rgba(30,48,40,.88)),url('/hubfs/jsw-site/media/cabinet-painting-prep-protected-kitchen.webp') center/cover no-repeat!important}.jsw-page--cabinet-painting .scope-card a{color:#e0c58d!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section{background:#f3efe6!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section .decision-shell{width:min(1180px,90vw)!important;display:grid!important;grid-template-columns:.72fr 1.28fr!important;gap:2rem!important;align-items:center!important}.jsw-page--cabinet-painting .decision-copy{padding:clamp(1rem,3vw,2.5rem)!important}.jsw-r99-cabinet-carousel{position:relative;min-height:600px;border-radius:var(--cab-radius);overflow:hidden;box-shadow:0 22px 58px rgba(30,48,40,.15)}.jsw-r99-cabinet-track,.jsw-r99-cabinet-track figure{position:absolute;inset:0}.jsw-r99-cabinet-track figure{opacity:0;transition:opacity .45s ease}.jsw-r99-cabinet-track figure.is-active{opacity:1}.jsw-r99-cabinet-track img{width:100%;height:100%;object-fit:cover}.jsw-r99-cabinet-controls,.jsw-r99-color-controls{position:absolute;right:1rem;bottom:1rem;z-index:4;display:flex;gap:.55rem}.jsw-r99-cabinet-controls button,.jsw-r99-color-controls button{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);background:rgba(30,48,40,.88);color:#fff;font-size:1.3rem;cursor:pointer} .jsw-page--cabinet-painting .quote-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;background:linear-gradient(rgba(250,248,244,.78),rgba(250,248,244,.88)),url('/hubfs/jsw-site/media/cabinet-painting-clean-painted-cabinet-island-detail-sink-wood-flooring.webp') center/cover no-repeat!important;padding:clamp(2rem,4vw,4rem)!important}.jsw-page--cabinet-painting .quote-wrap{align-items:stretch!important}.jsw-page--cabinet-painting .quote-form{height:100%} /* Color guidance hero is simplified into one clean image carousel without labels over the work. */ .jsw-page--color-guidance .color-hero{background:#f7f4ed!important}.jsw-page--color-guidance .hero-wrap{width:min(1180px,90vw)!important;gap:clamp(2rem,5vw,4.5rem)!important;align-items:center!important}.jsw-page--color-guidance .hero-copy h1{font-size:clamp(3rem,5.2vw,5.2rem)!important;line-height:1.02!important}.jsw-page--color-guidance .hero-copy>p{max-width:65ch!important;font-size:1rem!important;line-height:1.8!important}.jsw-page--color-guidance .quote-note,.jsw-page--color-guidance .jsw-r99-color-carousel{position:relative!important;min-height:650px!important;border-radius:.9rem!important;overflow:hidden!important;box-shadow:0 22px 58px rgba(30,48,40,.15)!important}.jsw-r99-color-track,.jsw-r99-color-track figure{position:absolute;inset:0;margin:0}.jsw-r99-color-track figure{opacity:0;transition:opacity .45s ease}.jsw-r99-color-track figure.is-active{opacity:1}.jsw-r99-color-track img{width:100%;height:100%;object-fit:cover} .jsw-page--color-guidance .flow-card figure{background:#d9d2c4!important}.jsw-page--color-guidance .flow-card figure img{display:block!important;opacity:1!important;visibility:visible!important;width:100%!important;height:100%!important;object-fit:cover!important}.jsw-page--color-guidance .flow-card>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,3vw,2.4rem)!important} /* Shared restraint: only roomy informational cards receive an image treatment, never controls or form fields. */ .jsw-page--installation-repair-services .path-card,.jsw-page--home-improvement-services .service-card,.jsw-page--support .jsw-support-step{background-position:center!important;background-size:cover!important} .jsw-page--installation-repair-services .path-card:nth-child(1){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/drywall-drywall-room-seams-finished-surface-prepared-primer-or-paint.webp')!important}.jsw-page--installation-repair-services .path-card:nth-child(2){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/flooring-clean-living-room-finished-flooring-busy-family-spaces.webp')!important}.jsw-page--installation-repair-services .path-card:nth-child(3){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/gallery-tile-neutral-stacked-backsplash.webp')!important} @media(max-width:1000px){.jsw-page--interior-painting .process-intro{grid-template-columns:1fr!important}.jsw-page--interior-painting .process-intro>a{grid-column:auto}.jsw-page--interior-painting .process-steps{grid-template-columns:1fr 1fr!important}.jsw-page--cabinet-painting .scope-shell,.jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section .decision-shell{grid-template-columns:1fr!important}} @media(max-width:700px){.jsw-page--interior-painting .process-steps{grid-template-columns:1fr!important}.jsw-page--interior-painting .step-card{min-height:240px!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery{grid-template-columns:1fr!important;grid-template-rows:360px 220px 220px!important}.jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r8-collage-main{grid-row:auto!important}.jsw-r99-cabinet-carousel,.jsw-r99-color-carousel{min-height:470px!important}.jsw-page--exterior-painting .quote-wrap{grid-template-columns:1fr!important}} /* R9.10 comprehensive site-completion pass */ /* Keep every section heading and its supporting copy in one readable vertical unit. */ .jsw-page--support .jsw-support-heading{grid-template-columns:1fr!important;gap:1rem!important;align-items:start!important;text-align:center!important} .jsw-page--support .jsw-support-heading>div{display:contents} .jsw-page--support .jsw-support-heading .kicker{order:0;margin-inline:auto!important} .jsw-page--support .jsw-support-heading h2{order:1;max-width:18ch!important;margin-inline:auto!important} .jsw-page--support .jsw-support-heading>p{order:2;max-width:70ch!important;margin-inline:auto!important} /* Balance roomy informational cards. Imagery is deliberately excluded from forms and controls. */ .jsw-page--support .jsw-support-step,.jsw-page--support .jsw-support-card,.jsw-competitive-checklist .jsw-competitive-check{display:flex;min-height:220px;flex-direction:column;justify-content:center;text-align:center;background-position:center!important;background-size:cover!important;border-radius:.9rem} .jsw-page--about .jsw-support-step:nth-child(1){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/gallery-interior-wall-rolling-process.webp')!important} .jsw-page--about .jsw-support-step:nth-child(2){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/gallery-interior-arched-window-painting.webp')!important} .jsw-page--about .jsw-support-step:nth-child(3){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/gallery-cabinets-soft-gray-kitchen.webp')!important} .jsw-page--about .jsw-about-principles article{align-items:center;min-height:108px;padding:1.25rem!important} .jsw-page--about .jsw-about-story-visual{min-height:520px;background:linear-gradient(rgba(30,48,40,.08),rgba(30,48,40,.14)),url('/hubfs/jsw-site/media/gallery-interior-arched-window-painting.webp') center/cover no-repeat!important;border:8px solid var(--jsw-forest)!important} .jsw-page--about .jsw-about-story-visual img{min-height:420px;object-fit:cover} .jsw-page--contact .jsw-support-step:nth-child(1),.jsw-page--contact .jsw-competitive-check:nth-child(1){background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/interior-painting-bright-furnished-living-room-interior-paint-color-planning.webp')!important} .jsw-page--contact .jsw-support-step:nth-child(2),.jsw-page--contact .jsw-competitive-check:nth-child(2){background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/drywall-drywall-room-seams-finished-surface-prepared-primer-or-paint.webp')!important} .jsw-page--contact .jsw-support-step:nth-child(3),.jsw-page--contact .jsw-competitive-check:nth-child(3){background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/gallery-cabinets-soft-gray-kitchen.webp')!important} .jsw-page--contact .jsw-competitive-check:nth-child(4){background-image:linear-gradient(rgba(255,255,255,.86),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/flooring-clean-living-room-finished-flooring-busy-family-spaces.webp')!important} /* Drywall cards no longer look like numbered steps; labels and descriptions carry the hierarchy. */ .jsw-page--drywall-repair-installation .triage-card span:first-child{display:none!important} .jsw-page--drywall-repair-installation .triage-card{min-height:280px!important;justify-content:center!important;text-align:center!important;background-position:center!important;background-size:cover!important;border-radius:.8rem!important;overflow:hidden} .jsw-page--drywall-repair-installation .triage-card:nth-child(1){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/drywall-drywall-room-seams-finished-surface-prepared-primer-or-paint.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(2){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/drywall-drywall-repair-patch-damaged-section-being-rebuilt-blended-into-surround.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(3){background-image:linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.92)),url('/hubfs/jsw-site/media/drywall-same-room-after-drywall-finishing-is-complete-smooth-painted-walls.webp')!important} .jsw-page--drywall-repair-installation .triage-card:nth-child(4){background-image:linear-gradient(rgba(30,48,40,.78),rgba(30,48,40,.88)),url('/hubfs/jsw-site/media/drywall-open-wall-drywall-installation-showing-new-board-placement-support-areas.webp')!important} /* Quote introductions use a balanced image panel rather than narrow pseudo-checklists. */ .jsw-page--flooring-installation .quote-copy,.jsw-page--drywall-repair-installation .quote-copy,.jsw-page--wallpaper-removal-installation .quote-copy,.jsw-page--installation-repair-services .quote-copy,.jsw-page--home-improvement-services .quote-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;padding:clamp(2rem,4vw,4rem)!important;background-position:center!important;background-size:cover!important} .jsw-page--flooring-installation .quote-copy{background-image:linear-gradient(rgba(250,248,244,.8),rgba(250,248,244,.9)),url('/hubfs/jsw-site/media/flooring-clean-living-room-finished-flooring-busy-family-spaces.webp')!important} .jsw-page--drywall-repair-installation .quote-copy{background-image:linear-gradient(rgba(250,248,244,.8),rgba(250,248,244,.9)),url('/hubfs/jsw-site/media/drywall-drywall-room-seams-finished-surface-prepared-primer-or-paint.webp')!important} .jsw-page--wallpaper-removal-installation .quote-copy{background-image:linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.9)),url('/hubfs/jsw-site/media/wallpaper-finished-wallpaper-installed-along-stairway-wall.webp')!important} .jsw-page--installation-repair-services .quote-copy{background-image:linear-gradient(rgba(250,248,244,.8),rgba(250,248,244,.9)),url('/hubfs/jsw-site/media/gallery-tile-neutral-stacked-backsplash.webp')!important} .jsw-page--home-improvement-services .quote-copy{background-image:linear-gradient(rgba(250,248,244,.8),rgba(250,248,244,.9)),url('/hubfs/jsw-site/media/home-improvements-kitchen-backsplash-tile-installation-cabinetry-range-finished-wall-tile.webp')!important} /* Remove decorative sequence numerals from service cards while keeping interactive labels intact. */ .jsw-page--flooring-installation .material-copy>span,.jsw-page--flooring-installation .room-card>span,.jsw-page--wallpaper-removal-installation .route-card>span{display:none!important} .jsw-page--flooring-installation .room-card{justify-content:center!important;text-align:center!important;padding:1.4rem!important} /* Consistent framing and section contrast across remaining visual pages. */ .jsw-page--flooring-installation :is(.room-switcher,.material-lab,.project-carousel),.jsw-page--drywall-repair-installation :is(.diagnostic-sheet,.layer-card,.compare-box),.jsw-page--wallpaper-removal-installation :is(.peel-lab,.story-stage),.jsw-page--installation-repair-services :is(.repair-map,.tile-explorer),.jsw-page--home-improvement-services :is(.service-visual,.tile-explorer),.jsw-page--project-gallery :is(.gallery-stage,.gallery-viewer){border-radius:.9rem!important;overflow:hidden!important;box-shadow:0 20px 52px rgba(30,48,40,.12)!important} .jsw-page--flooring-installation .material-section,.jsw-page--wallpaper-removal-installation .quote-section,.jsw-page--drywall-repair-installation .triage-section{background:#f3efe6!important} @media(max-width:900px){.jsw-page--support .jsw-support-step,.jsw-page--support .jsw-support-card,.jsw-competitive-checklist .jsw-competitive-check{min-height:190px}.jsw-page--about .jsw-about-story-visual{min-height:380px}.jsw-page--about .jsw-about-story-visual img{min-height:320px}} @media(max-width:620px){.jsw-page--support .jsw-support-heading{text-align:left!important}.jsw-page--support .jsw-support-heading :is(.kicker,h2,p){margin-inline:0!important}.jsw-page--support .jsw-support-step,.jsw-page--support .jsw-support-card,.jsw-competitive-checklist .jsw-competitive-check{min-height:170px}} /* R9.11 final master quality pass. All rules are limited to non-home routes. */ /* About: replace the hard-to-read photo overlay with a measured editorial split. */ .jsw-page--about .jsw-r8-about-hero{ display:grid!important; grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr)!important; min-height:clamp(620px,72vh,760px)!important; padding:0!important; background:#f7f4ed!important; color:var(--jsw-ink,#1f2c26)!important; } .jsw-page--about .jsw-r8-about-hero::after{display:none!important} .jsw-page--about .jsw-r8-about-hero>picture{ position:relative!important; inset:auto!important; grid-column:2!important; grid-row:1!important; width:100%!important; height:100%!important; min-height:620px!important; overflow:hidden!important; } .jsw-page--about .jsw-r8-about-hero>picture>img{ position:absolute!important; inset:0!important; display:block!important; width:100%!important; height:100%!important; max-width:none!important; object-fit:cover!important; object-position:54% 27%!important; opacity:1!important; visibility:visible!important; } .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell{ position:relative!important; z-index:2!important; grid-column:1!important; grid-row:1!important; align-self:center!important; width:min(100%,640px)!important; max-width:none!important; margin:0 0 0 auto!important; padding:clamp(4rem,7vw,7rem) clamp(2rem,5vw,5rem)!important; } .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell h1{ max-width:12ch!important; font-size:clamp(3rem,5vw,5.35rem)!important; color:var(--jsw-ink,#1f2c26)!important; text-shadow:none!important; } .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell>p:not(.kicker){color:var(--jsw-ink-muted,#526158)!important;text-shadow:none!important} .jsw-page--about .jsw-r8-about-hero .jsw-r8-hero-copy{background:none!important;border:0!important;padding:0!important;text-shadow:none!important} .jsw-page--about .jsw-about-story-visual{min-height:0!important;background:none!important;border:0!important;border-radius:.9rem!important;overflow:hidden!important;box-shadow:0 20px 50px rgba(30,48,40,.13)!important} .jsw-page--about .jsw-about-story-visual img{display:block!important;width:100%!important;height:clamp(420px,48vw,620px)!important;min-height:0!important;object-fit:cover!important;opacity:1!important;visibility:visible!important} .jsw-page--about .jsw-about-team-visual{min-height:560px!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;overflow:hidden!important;background:#d9d2c4!important;border-radius:.9rem!important;box-shadow:0 20px 50px rgba(30,48,40,.12)!important} .jsw-page--about .jsw-about-team-visual img{display:block!important;width:100%!important;height:100%!important;min-height:500px!important;object-fit:cover!important;object-position:center!important;opacity:1!important;visibility:visible!important;position:relative!important;z-index:1!important} /* Cabinet: fill every collage cell and every scope-carousel frame. */ .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery figure{ width:100%!important; height:100%!important; min-width:0!important; min-height:0!important; align-self:stretch!important; justify-self:stretch!important; inset:auto!important; } .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r8-collage-accent, .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r99-collage-third{grid-column:2!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r8-collage-accent{grid-row:1!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery .jsw-r99-collage-third{grid-row:2!important} .jsw-page--cabinet-painting .scope-carousel{min-height:560px!important} .jsw-page--cabinet-painting .scope-track,.jsw-page--cabinet-painting .scope-card{height:100%!important;min-height:560px!important} .jsw-page--cabinet-painting .scope-card{align-items:center!important;text-align:center!important} .jsw-page--cabinet-painting .scope-card>div{max-width:52ch!important} /* Exterior: make the image row independently visible inside the fixed carousel. */ .jsw-page--exterior-painting .project-carousel,.jsw-page--exterior-painting .project-track{height:640px!important;min-height:640px!important} .jsw-page--exterior-painting .project-slide{height:100%!important;min-height:0!important;overflow:hidden!important} .jsw-page--exterior-painting .project-slide img{ display:block!important; position:relative!important; z-index:1!important; width:100%!important; height:100%!important; min-height:0!important; max-width:none!important; opacity:1!important; visibility:visible!important; object-fit:cover!important; } .jsw-page--exterior-painting .project-caption{z-index:2!important} /* Drywall: prevent global media resets or lazy-state styles from blanking protected image stages. */ .jsw-page--drywall-repair-installation .scan-image{min-height:560px!important} .jsw-page--drywall-repair-installation .scan-image>img{ display:block!important; position:absolute!important; inset:0!important; z-index:0!important; width:100%!important; height:100%!important; max-width:none!important; object-fit:cover!important; opacity:1!important; visibility:visible!important; } .jsw-page--drywall-repair-installation .layer-visual{position:relative!important;min-height:520px!important;overflow:hidden!important} .jsw-page--drywall-repair-installation .layer-visual img.layer-stage-image{display:block!important;height:100%!important;max-width:none!important;visibility:visible!important;z-index:1!important} .jsw-page--drywall-repair-installation .layer-visual img.layer-stage-image.active{opacity:1!important} .jsw-page--drywall-repair-installation .compare-stage{min-height:500px!important} .jsw-page--drywall-repair-installation .compare-stage>img{ display:block!important; position:absolute!important; inset:0!important; z-index:1!important; width:100%!important; height:100%!important; max-width:none!important; object-fit:cover!important; opacity:1!important; visibility:visible!important; } .jsw-page--drywall-repair-installation .compare-stage>.compare-after{z-index:2!important} .jsw-page--drywall-repair-installation .compare-divider{z-index:4!important} /* Service-area cards: retain real imagery in every path card. */ .jsw-page--service-areas .match-card-image{background:#d9d2c4!important} .jsw-page--service-areas .match-card-image img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:1!important;visibility:visible!important} @media(max-width:900px){ .jsw-page--about .jsw-r8-about-hero{grid-template-columns:1fr!important;min-height:0!important} .jsw-page--about .jsw-r8-about-hero>picture{grid-column:1!important;grid-row:2!important;min-height:520px!important} .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell{grid-column:1!important;grid-row:1!important;width:100%!important;margin:0!important;padding:4.5rem 5vw!important} .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell h1{max-width:14ch!important} .jsw-page--cabinet-painting .scope-carousel,.jsw-page--cabinet-painting .scope-track,.jsw-page--cabinet-painting .scope-card{min-height:500px!important} } @media(max-width:640px){ .jsw-page--about .jsw-r8-about-hero>picture{min-height:430px!important} .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell h1{font-size:clamp(2.7rem,12vw,3.8rem)!important} .jsw-page--about .jsw-about-team-visual{min-height:460px!important}.jsw-page--about .jsw-about-team-visual img{min-height:400px!important} .jsw-page--exterior-painting .project-carousel,.jsw-page--exterior-painting .project-track{height:540px!important;min-height:540px!important} .jsw-page--drywall-repair-installation .scan-image{min-height:430px!important} .jsw-page--drywall-repair-installation .layer-visual,.jsw-page--drywall-repair-installation .compare-stage{min-height:380px!important;height:380px!important} } /* R9.12 final refinement. These rules preserve page content and all form behavior. */ :root{ --jsw-r912-radius:.9rem; --jsw-r912-control:44px; --jsw-r912-shadow:0 20px 52px rgba(30,48,40,.12); } /* Refine oversized service-page headlines without reducing their authority or changing the approved home hero. */ .jsw-page:not(.jsw-page--home) h1{ font-size:clamp(2.5rem,4.15vw,4.4rem)!important; line-height:1!important; letter-spacing:-.027em!important; text-wrap:balance; } .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell h1{ max-width:13ch!important; font-size:clamp(2.85rem,4.55vw,4.95rem)!important; line-height:.99!important; } .jsw-page:not(.jsw-page--home) :is(.jsw-r8-hero-copy,.hero-copy,.hero-panel,.sheet-margin,.gallery-info){min-width:0} .jsw-page:not(.jsw-page--home) :is(.jsw-r8-hero-copy,.hero-copy,.hero-panel,.sheet-margin,.gallery-info)>p:not([class*="kicker"]):not([class*="eyebrow"]){max-width:68ch} .jsw-page h2{line-height:1.03;text-wrap:balance} .jsw-page p,.jsw-page li,.jsw-page figcaption{text-wrap:pretty} /* Improve secondary-text readability and preserve the established hierarchy. */ .jsw-page :is(.kicker,.eyebrow,.section-eyebrow,.hero-kicker,.path-label){font-size:.75rem;line-height:1.45} .jsw-page figcaption{font-size:clamp(.84rem,.9vw,.94rem);line-height:1.58} .jsw-global-nav-links a,.jsw-nav-group-toggle{font-size:.78rem} .jsw-global-footer p{font-size:.94rem;line-height:1.72;color:rgba(255,255,255,.72)} .jsw-global-footer a,.jsw-global-footer span{font-size:.92rem;line-height:1.58;color:rgba(255,255,255,.72)} .jsw-global-footer-bottom span{font-size:.84rem} .jsw-global-footer-privacy p{font-size:.8rem;line-height:1.65;color:rgba(255,255,255,.66)} /* Consistent, usable targets for navigation and protected visual tools. */ .jsw-page a[class*="btn"],.jsw-page .jsw-support-actions a{ display:inline-flex; min-height:var(--jsw-r912-control); align-items:center; justify-content:center; } .jsw-page :is(.scope-carousel-controls,.switch-buttons,.material-tabs,.layer-buttons,.jsw-r8-tile-tabs,.jsw-r99-cabinet-controls,.jsw-r99-color-controls,.gallery-filters,.filter-list,.reveal-controls,.compare-labels) button, .jsw-page .carousel-controls button:not(.carousel-dot){ min-width:var(--jsw-r912-control); min-height:var(--jsw-r912-control); } .jsw-page input[type="range"]{min-height:var(--jsw-r912-control);accent-color:var(--jsw-gold,#b8975a)} .jsw-page :where(a,button,[role="button"],input[type="range"]):focus-visible{ outline:3px solid var(--jsw-gold,#b8975a)!important; outline-offset:4px!important; } /* Give deferred media a stable, branded loading surface without hiding or fading real imagery. */ .jsw-page img[loading="lazy"]{ background-color:#dcd6ca; background-image:linear-gradient(135deg,rgba(255,255,255,.28),rgba(30,48,40,.06)); } .jsw-page img.jsw-media-ready{background:transparent} .jsw-page :is(.carousel-controls,.scope-carousel-controls,.jsw-r99-cabinet-controls,.jsw-r99-color-controls) button{border-radius:.3rem} .jsw-page :is(.carousel-dot,.scope-dots button){position:relative} .jsw-page :is(.carousel-dot,.scope-dots button)::after{content:"";position:absolute;inset:-12px} /* Keep mobile headlines measured and rebalance their adjacent media and controls. */ @media(max-width:900px){ .jsw-page:not(.jsw-page--home) h1{font-size:clamp(2.55rem,7.8vw,4rem)!important;max-width:16ch} .jsw-page:not(.jsw-page--home) :is(.jsw-r8-hero-copy,.hero-copy,.hero-panel,.sheet-margin,.gallery-info)>p:not([class*="kicker"]):not([class*="eyebrow"]){max-width:62ch} } @media(max-width:640px){ .jsw-page:not(.jsw-page--home) h1{font-size:clamp(2.35rem,10.5vw,3.35rem)!important;line-height:1.01!important;max-width:15ch} .jsw-page--about .jsw-r8-about-hero .jsw-support-hero-shell h1{font-size:clamp(2.45rem,10.8vw,3.45rem)!important;max-width:14ch!important} .jsw-global-footer p{font-size:.92rem}.jsw-global-footer a,.jsw-global-footer span{font-size:.9rem} } @media(prefers-reduced-motion:reduce){.jsw-page img[loading="lazy"]{background-image:none}} /* R9.12.1 live regression hotfix. Preserve the visual design while restoring the intended minimum target size on primary selectors that were overridden later. */ .jsw-page--home :is(.preset-swatch,.wall-reveal-stage,.category-tab){min-height:44px!important} .jsw-page--home .preset-swatch{width:44px!important;height:44px!important;padding:6px!important;background-clip:content-box!important} .jsw-page--project-gallery .category-tabs button{min-height:44px!important} .jsw-page--service-areas .hero-area-group-toggle{min-height:44px!important} .jsw-page--kitchen-bathroom-basement-design-studio :is(.hero-experience-tabs button,.ksv-choice){min-height:44px!important} /* R9.12.2 final accessibility refinement. Keep the approved visual scale while improving desktop click areas and small gold text on light surfaces. */ .jsw-page--kitchen-bathroom-basement-design-studio .hero-experience-arrow{min-width:44px!important} .jsw-page--kitchen-bathroom-basement-design-studio .ksv-hotspot{min-height:44px!important} .jsw-page--project-gallery .arrow-pair button{min-width:44px!important;min-height:44px!important} .jsw-page--wallpaper-removal-installation select{min-height:44px!important} .jsw-page--drywall-repair-installation .scan-pin{width:44px!important;height:44px!important;border:8px solid transparent!important;background-clip:padding-box!important} .jsw-page--interior-painting .brief-carousel-controls button{position:relative} .jsw-page--interior-painting .brief-carousel-controls button::after{content:"";position:absolute;inset:-8px} .jsw-page--cabinet-painting .jsw-r8-standard-hero:not(.jsw-r8-dark-hero) .kicker.light, .jsw-page--interior-painting .eyebrow, .jsw-page--kitchen-bathroom-basement-design-studio .hero>.hero-grid>.hero-copy>.eyebrow, .jsw-page--service-areas .focused-area-control .kicker, .jsw-page--installation-repair-services .section-eyebrow, .jsw-page--home-improvement-services :is(.eyebrow,.btn-text,.remodel-stat-kicker), .jsw-page--flooring-installation>section .kicker, .jsw-page--exterior-painting .surface-lane>a, .jsw-page--wallpaper-removal-installation :is(.reveal-top>span,.reveal-caption>small,.sorter-copy-card>a,.jsw-r8-assistive-count){color:#806936!important} .jsw-page--home :is(.hero-copy>.eyebrow,.hero-service-summary>small,.hero-service-summary>.text-link,.jsw-service-loop-head .eyebrow,.jsw-proof-heading .eyebrow){color:#806936!important} /* R9.14 final objective-audit refinements. */ .jsw-page .jsw-form-privacy{font-size:clamp(.78rem,.82vw,.86rem)!important;line-height:1.62!important;opacity:1!important} .jsw-page--home .quote-card .jsw-form-microcopy,.jsw-page--home .quote-card .jsw-form-privacy{color:rgba(255,255,255,.84)!important} .jsw-global-footer-privacy p{color:rgba(255,255,255,.74)!important} @media(min-width:1001px){ .jsw-page--interior-painting .hero-stage{grid-template-columns:minmax(0,1fr) 220px;gap:1.15rem} .jsw-page--interior-painting .hero-proof-card{padding:1.45rem;min-height:305px} .jsw-page--interior-painting .hero-proof-card p{color:rgba(255,255,255,.84);font-size:.9rem;line-height:1.68} .jsw-page--interior-painting .hero-proof-card li{color:rgba(255,255,255,.86);font-size:.66rem;line-height:1.35} } /* R9.17 CORRECTIVE DESIGN NORMALIZATION Visual lineage: R9.14+ content/functionality with the approved editorial cream/forest/gold design language. "Forest Contrast Panel" is the deep green expert-guidance treatment used on Exterior Conditions and related sections. */ :root{ --jsw-cream:#faf8f4;--jsw-cream-dark:#f0ede6;--jsw-white:#fff;--jsw-ink:#1c1c19;--jsw-ink-soft:#3a3933;--jsw-muted:#666359; --jsw-forest:#1e3028;--jsw-forest-mid:#2a4035;--jsw-gold:#b8975a;--jsw-gold-light:#d4b47a;--jsw-border:#e4e0d6; --jsw-content-max:1400px;--jsw-content-wide:1480px;--jsw-gutter:clamp(1.15rem,3.15vw,3.6rem);--jsw-card-radius:7px; --jsw-soft-shadow:0 18px 48px rgba(30,48,40,.10);--jsw-deep-shadow:0 24px 64px rgba(30,48,40,.14) } html{font-size:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow-x:clip} body,.jsw-site-body,.jsw-page,.jsw-global-header,.jsw-global-footer{font-family:var(--jsw-sans)!important} .jsw-page :is(h1,h2,h3),.jsw-global-footer h2{font-family:var(--jsw-serif)!important} .jsw-page h1{font-size:clamp(2.9rem,5vw,5.55rem)!important;line-height:.98!important;letter-spacing:-.032em!important;font-weight:400!important} .jsw-page h2{font-size:clamp(2.18rem,3.75vw,3.95rem)!important;line-height:1.04!important;letter-spacing:-.024em!important;font-weight:400!important} .jsw-page h3{font-weight:400!important;letter-spacing:-.012em!important} .jsw-page :is(p,li,figcaption){line-height:1.72} .jsw-global-nav{width:min(var(--jsw-content-wide),94vw)!important} .jsw-global-footer{padding-left:var(--jsw-gutter)!important;padding-right:var(--jsw-gutter)!important} .jsw-global-footer-grid,.jsw-global-footer-bottom{width:min(var(--jsw-content-max),94vw)!important} .jsw-global-nav-cta,.jsw-page :is(.btn,.btn-primary,.btn-light,.btn-line,.btn-gold),.jsw-support-actions a,.jsw-support-form button{border-radius:3px!important} .jsw-global-menu-button{border-radius:5px!important} .jsw-nav-submenu{border-radius:6px!important}.jsw-nav-submenu a{border-radius:3px!important} .jsw-page :is(.hero-visual,.room-switcher,.hero-image-stage,.hero-stage,.color-studio,.color-wheel-lab,.wall-scan,.compare-box,.gallery-viewer,.peel-lab,.reveal-lab,.hero-design-card,.project-carousel,.result-carousel,.room-flow-panel,.material-stage,.scope-carousel,.jsw-r99-cabinet-carousel,.jsw-r99-color-carousel){border-radius:var(--jsw-card-radius)!important;box-shadow:var(--jsw-soft-shadow)!important} .jsw-page main figure>img,.jsw-page figure>img,.jsw-page figure{border-radius:var(--jsw-card-radius)!important} .jsw-page :is(.scope-card,.path-card,.jsw-support-step,.jsw-support-card,.fit-card,.step-card,.jsw-competitive-check,.guidance-card,.flow-card,.room-card,.surface-lane,.weather-step,.detail-card,.material-tab,.service-card,.map-card,.tile-square,.bso-card,.bso2-card){border-radius:6px!important} /* Wider editorial measure. Prevents the site from becoming a narrow column when browser zoom changes the effective viewport. */ .jsw-page--home .shell, .jsw-page--about :is(.jsw-support-hero,.jsw-support-shell),.jsw-page--contact :is(.jsw-support-hero,.jsw-support-shell), .jsw-page--cabinet-painting :is(.jsw-r8-hero-shell,.scope-shell,.decision-shell,.quote-wrap), .jsw-page--color-guidance :is(.hero-wrap,.guidance-wrap,.flow-wrap,.quote-wrap), .jsw-page--drywall-repair-installation :is(.jsw-r8-hero-shell,.triage-wrap,.anatomy-wrap,.compare-wrap,.quote-wrap), .jsw-page--exterior-painting :is(.hero-frame,.surface-wrap,.weather-wrap,.detail-head,.gallery-shell,.quote-wrap), .jsw-page--flooring-installation :is(.jsw-r8-hero-shell,.floor-room-guide-wrap,.material-shell,.room-match-wrap,.project-shell,.quote-wrap), .jsw-page--home-improvement-services :is(.hero-shell,.intent-grid,.map-head,.map-cards,.wallpaper-frame,.remodel-shell,.service-interactive-wrap,.fit-shell,.quote-grid), .jsw-page--installation-repair-services :is(.hero-shell,.paths-header,.paths-layout,.flooring-wrap,.tile-wrap,.quote-wrap), .jsw-page--interior-painting :is(.hero-shell,.container,.color-wheel-wrap,.gallery-wrap), .jsw-page--kitchen-bathroom-basement-design-studio :is(.hero-grid,.container,.ksv-head,.ksv,.bfs-head,.bfs-shell,.bso-shell,.bts-head,.bts-shell,.bso2-shell,.quote-grid), .jsw-page--project-gallery :is(.gallery-shell,.gallery-conversion-shell), .jsw-page--service-areas :is(.hero-shell,.focused-area-shell,.services-shell,.quote-wrap), .jsw-page--wallpaper-removal-installation :is(.hero-shell,.route-sort-shell,.wall-story-shell,.quote-wrap){width:min(var(--jsw-content-max),94vw)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important} .jsw-page--home .hero>.shell,.jsw-page--project-gallery .gallery-shell,.jsw-page--service-areas .hero-shell{width:min(var(--jsw-content-wide),94vw)!important} /* Background rhythm. Full-width sections remain full-width, while their content uses the editorial measure above. */ .jsw-page--home .section-dark, .jsw-page--cabinet-painting .scope-section, .jsw-page--color-guidance .guidance-section, .jsw-page--flooring-installation .room-match-section, .jsw-page--home-improvement-services .intent-band, .jsw-page--wallpaper-removal-installation .route-sort-section{background:linear-gradient(145deg,var(--jsw-forest) 0%,var(--jsw-forest-mid) 100%)!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section, .jsw-page--drywall-repair-installation .triage-section, .jsw-page--flooring-installation .material-section, .jsw-page--home-improvement-services .remodel-section, .jsw-page--home-improvement-services .tile-service-section, .jsw-page--interior-painting .color-section{background:linear-gradient(180deg,#f3efe7 0%,var(--jsw-cream-dark) 100%)!important} .jsw-page--exterior-painting .weather-copy{background:linear-gradient(145deg,var(--jsw-forest) 0%,var(--jsw-forest-mid) 100%)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)} .jsw-page--exterior-painting .weather-copy :is(h2,h3){color:#fff!important}.jsw-page--exterior-painting .weather-copy :is(p,span){color:rgba(255,255,255,.76)!important} .jsw-page--installation-repair-services .tile-left{background:linear-gradient(145deg,var(--jsw-forest) 0%,var(--jsw-forest-mid) 100%)!important} /* Keep heroes elegant, spacious, and stable without oversized empty margins. */ .jsw-r8-standard-hero,.jsw-page--cabinet-painting .cabinet-hero,.jsw-page--flooring-installation .floor-hero,.jsw-page--drywall-repair-installation .drywall-hero{padding-left:var(--jsw-gutter)!important;padding-right:var(--jsw-gutter)!important} .jsw-page--about .jsw-support-hero,.jsw-page--contact .jsw-support-hero{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:clamp(1.4rem,3vw,3rem)!important} .jsw-page--cabinet-painting .jsw-r8-hero-shell,.jsw-page--flooring-installation .jsw-r8-hero-shell,.jsw-page--drywall-repair-installation .jsw-r8-hero-shell{gap:clamp(1.4rem,3vw,2.8rem)!important} .jsw-page--cabinet-painting .jsw-r8-hero-copy,.jsw-page--flooring-installation .jsw-r8-hero-copy,.jsw-page--drywall-repair-installation .jsw-r8-hero-copy{padding:clamp(2rem,4vw,4.2rem)!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery{grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr)!important} .jsw-page--cabinet-painting .scope-shell,.jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section .decision-shell{grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr)!important} .jsw-page--cabinet-painting .scope-card{min-height:410px!important} .jsw-page--cabinet-painting .decision-copy{max-width:520px;margin-inline:auto} /* Image treatment: full rooms get room to breathe; process images remain where the work itself is the subject. */ .jsw-page img{max-width:100%;height:auto} .jsw-page figure{min-width:0}.jsw-page :is(.hero-copy,.jsw-r8-hero-copy,.section-heading,.section-intro,.quote-copy,.flow-copy,.surface-intro,.weather-copy,.flooring-copy,.fit-copy){min-width:0} .jsw-page--home-improvement-services :is(.tile-tool,.carpentry-tool) img,.jsw-page--installation-repair-services .tile-media img{object-fit:cover!important;object-position:center!important} /* Zoom, tablet, and mobile resilience. The page changes composition before split layouts become cramped. */ @media(max-width:1120px){ .jsw-global-nav-links{gap:.8rem!important}.jsw-global-nav{width:min(98vw,var(--jsw-content-wide))!important} .jsw-page--cabinet-painting .scope-shell,.jsw-page--cabinet-painting .jsw-r99-cabinet-carousel-section .decision-shell{grid-template-columns:1fr!important} .jsw-page--about .jsw-support-hero,.jsw-page--contact .jsw-support-hero{grid-template-columns:1fr!important} .jsw-page--exterior-painting .weather-wrap,.jsw-page--flooring-installation .material-shell,.jsw-page--flooring-installation .room-match-wrap{grid-template-columns:1fr!important} .jsw-page--home-improvement-services :is(.hero-shell,.remodel-shell,.fit-shell,.quote-grid){grid-template-columns:1fr!important} .jsw-page--installation-repair-services :is(.hero-shell,.flooring-wrap,.tile-wrap,.quote-wrap){grid-template-columns:1fr!important} .jsw-page--interior-painting .hero-shell{grid-template-columns:1fr!important} .jsw-page--kitchen-bathroom-basement-design-studio :is(.hero-grid,.ksv,.bts-shell,.quote-grid){grid-template-columns:1fr!important} } @media(max-width:980px){ :root{--jsw-gutter:clamp(1rem,4vw,2rem)} .jsw-page h1{font-size:clamp(2.65rem,8vw,4.8rem)!important}.jsw-page h2{font-size:clamp(2.05rem,6.2vw,3.45rem)!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery{grid-template-columns:1fr!important;grid-template-rows:auto!important} .jsw-page--cabinet-painting .jsw-r99-cabinet-hero-gallery figure{min-height:300px} .jsw-page--home .hero-main,.jsw-page--home .hero-copy,.jsw-page--home .hero-media{min-width:0} } @media(max-width:720px){ .jsw-global-nav,.jsw-global-footer-grid,.jsw-global-footer-bottom, .jsw-page--home .shell,.jsw-page--about :is(.jsw-support-hero,.jsw-support-shell),.jsw-page--contact :is(.jsw-support-hero,.jsw-support-shell), .jsw-page--cabinet-painting :is(.jsw-r8-hero-shell,.scope-shell,.decision-shell,.quote-wrap),.jsw-page--color-guidance :is(.hero-wrap,.guidance-wrap,.flow-wrap,.quote-wrap), .jsw-page--drywall-repair-installation :is(.jsw-r8-hero-shell,.triage-wrap,.anatomy-wrap,.compare-wrap,.quote-wrap),.jsw-page--exterior-painting :is(.hero-frame,.surface-wrap,.weather-wrap,.detail-head,.gallery-shell,.quote-wrap), .jsw-page--flooring-installation :is(.jsw-r8-hero-shell,.floor-room-guide-wrap,.material-shell,.room-match-wrap,.project-shell,.quote-wrap),.jsw-page--home-improvement-services :is(.hero-shell,.intent-grid,.map-head,.map-cards,.wallpaper-frame,.remodel-shell,.service-interactive-wrap,.fit-shell,.quote-grid), .jsw-page--installation-repair-services :is(.hero-shell,.paths-header,.paths-layout,.flooring-wrap,.tile-wrap,.quote-wrap),.jsw-page--interior-painting :is(.hero-shell,.container,.color-wheel-wrap,.gallery-wrap), .jsw-page--kitchen-bathroom-basement-design-studio :is(.hero-grid,.container,.ksv-head,.ksv,.bfs-head,.bfs-shell,.bso-shell,.bts-head,.bts-shell,.bso2-shell,.quote-grid),.jsw-page--project-gallery :is(.gallery-shell,.gallery-conversion-shell),.jsw-page--service-areas :is(.hero-shell,.focused-area-shell,.services-shell,.quote-wrap),.jsw-page--wallpaper-removal-installation :is(.hero-shell,.route-sort-shell,.wall-story-shell,.quote-wrap){width:calc(100vw - 2rem)!important} .jsw-page h1{font-size:clamp(2.45rem,11.6vw,3.85rem)!important}.jsw-page h2{font-size:clamp(1.95rem,9.2vw,3.05rem)!important} .jsw-page :is(.hero-actions,.jsw-support-actions,.carousel-controls,.scope-carousel-controls){gap:.65rem!important} .jsw-page :is(.hero-actions,.jsw-support-actions){align-items:stretch!important}.jsw-page :is(.hero-actions,.jsw-support-actions)>*{width:100%;justify-content:center} .jsw-page--cabinet-painting .scope-card{min-height:330px!important} }

JSW page template mapping required

This page slug is not mapped in the JSW Production Page template.