:root{--pine:#0b3526;--deep:#09261c;--gold:#b19464;--cream:#f7f5f0;--paper:#fffefa;--ink:#192821;--gray:#66716a;--border:#dfe4dc;--shadow:0 18px 48px rgba(13,45,31,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(1170px,calc(100% - 52px));margin:0 auto}.eyebrow{color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.22em;font-weight:700}.serif{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1,h2,h3,p{margin-top:0}h1{font:400 clamp(49px,6vw,86px)/1.13 'Playfair Display',serif;letter-spacing:-.035em}h2{font:400 clamp(34px,4vw,54px)/1.19 'Playfair Display',serif;letter-spacing:-.02em}h3{font:500 24px/1.35 'Playfair Display',serif}.muted{color:var(--gray)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 25px;background:var(--pine);color:white;border:1px solid var(--pine);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;transition:transform .2s,background .2s}.btn:hover{background:#14553a;transform:translateY(-1px)}.btn.outline{background:transparent;color:var(--pine)}.btn.outline:hover{background:var(--pine);color:white}.btn.light{background:var(--paper);border-color:var(--paper);color:var(--pine)}.topbar{background:var(--deep);color:#cddbd1;text-align:center;padding:7px 20px;font-size:10px;letter-spacing:.12em;text-transform:uppercase}header{position:sticky;top:0;background:rgba(255,254,250,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:67px;height:67px;object-fit:contain}.brand-copy{font:600 18px/1.1 'Playfair Display',serif;letter-spacing:.015em;color:var(--pine)}.brand-copy small{display:block;font:600 9px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.24em;margin-top:7px;color:var(--gold)}nav{display:flex;align-items:center;gap:26px}nav a{font-size:11px;text-transform:uppercase;letter-spacing:.11em;font-weight:700;transition:color .2s}nav a:hover,nav a.active{color:#a58b61}.menu-toggle{display:none;border:0;background:none;font-size:25px;color:var(--pine)}.hero{min-height:645px;background:radial-gradient(circle at 72% 34%,rgba(196,180,137,.19),transparent 35%),linear-gradient(120deg,#f2f2e9,#fffefa 65%);display:grid;grid-template-columns:1.13fr .87fr;align-items:center;overflow:hidden}.hero-copy{max-width:600px;padding:86px 5% 92px max(26px,calc((100vw - 1170px)/2))}.hero-copy p{max-width:480px;font-size:16px;color:#59685e;margin-bottom:29px}.hero-copy h1 em{color:var(--pine);font-style:italic}.hero-art{height:100%;min-height:570px;background:linear-gradient(160deg,rgba(9,38,28,.08),rgba(9,38,28,.52)),url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?w=1400&q=85') center/cover;position:relative}.hero-art:before{content:'';position:absolute;inset:18px;border:1px solid rgba(255,255,255,.6)}.hero-art .seal{position:absolute;bottom:45px;left:-52px;width:166px;height:166px;border-radius:50%;background:var(--pine);color:#fff;display:grid;place-items:center;text-align:center;padding:20px;font:400 21px/1.3 'Playfair Display',serif;border:8px solid var(--cream)}.hero-art .seal small{font:600 9px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase}.pillars{background:var(--pine);color:#f6f3ed}.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.pillar{padding:29px 12px;border-right:1px solid rgba(255,255,255,.2)}.pillar:last-child{border:0}.pillar strong{display:block;font:400 22px 'Playfair Display',serif}.pillar span{font-size:12px;color:#ccdbd1}.section{padding:90px 0}.section.intro{text-align:center}.section-head{max-width:680px;margin:0 auto 46px;text-align:center}.section-head p{color:var(--gray)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;border:1px solid var(--border);padding:36px 30px;box-shadow:var(--shadow)}.card .no{color:var(--gold);font:400 22px 'Playfair Display',serif}.card p{color:var(--gray);font-size:14px}.card .price{font:400 39px 'Playfair Display',serif;color:var(--pine);margin:14px 0 4px}.card .price small{font:12px 'DM Sans',sans-serif;color:var(--gray)}.card ul{list-style:none;padding:0;font-size:13px;margin:20px 0 25px}.card li{padding:9px 0;border-bottom:1px solid #edf0eb}.card li:before{content:'✓';color:var(--gold);margin-right:9px}.card.featured{background:#f4f5ef;border:1px solid #b7c8b7;position:relative}.card.featured:before{content:'MOST POPULAR';position:absolute;top:0;right:0;background:var(--pine);color:white;font:700 9px 'DM Sans';letter-spacing:.14em;padding:10px 14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.photo{min-height:445px;background:linear-gradient(140deg,rgba(4,40,27,.12),rgba(7,31,21,.14)),url('https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?w=1300&q=85') center/cover;box-shadow:15px 15px 0 #e8eade}.checklist{list-style:none;padding:0}.checklist li{margin:13px 0;padding-left:27px;position:relative}.checklist li:before{content:'✦';position:absolute;left:0;color:var(--gold)}.band{background:var(--pine);color:white;padding:75px 0}.band p{color:#d5e1d8}.band .container{display:flex;justify-content:space-between;align-items:center;gap:30px}.band h2{max-width:670px;margin:0}.faq{max-width:850px;margin:auto}.faq details{border-bottom:1px solid var(--border);padding:22px 0}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:12px 0 0;color:var(--gray)}.page-hero{background:linear-gradient(105deg,#eaf0e8,#faf9f4);padding:85px 0 78px;text-align:center}.page-hero h1{font-size:clamp(44px,6vw,68px);margin:12px auto 18px;max-width:850px}.page-hero p{max-width:640px;margin:auto;color:var(--gray)}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.service{padding:36px;border:1px solid var(--border);background:#fff}.service .symbol{color:var(--gold);font:400 35px 'Playfair Display',serif}.service h3{margin-top:20px}.service p{color:var(--gray)}.quote-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:35px;align-items:start}.form-panel,.estimate{padding:34px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:1/-1}.field label{font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid #cdd6ce;background:#fcfdf9;padding:12px;color:var(--ink);border-radius:0}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #90ab92;outline-offset:1px}.form-note{font-size:12px;color:var(--gray)}.estimate{background:#f1f4ee;position:sticky;top:116px}.estimate .big{font:400 57px 'Playfair Display',serif;color:var(--pine);margin:14px 0}.estimate hr{border:0;border-top:1px solid #d4ddd3;margin:23px 0}.chip{display:inline-block;border:1px solid #bdcfc1;padding:6px 11px;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.pricing-table{border-collapse:collapse;width:100%;background:#fff}.pricing-table th{background:var(--pine);color:white;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.1em;padding:19px}.pricing-table td{padding:21px 19px;border-bottom:1px solid var(--border)}.pricing-table tr:nth-child(even){background:#f7f8f4}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.mini{padding:28px;background:#f5f7f2}.mini strong{font:400 23px 'Playfair Display',serif}.mini p{color:var(--gray);margin-bottom:0}.footer{background:#0a251b;color:#edf4ef;padding:62px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:55px}.footer .brand-copy{color:white}.footer p,.footer a{color:#c0cfc4;font-size:13px}.footer-links{display:flex;flex-direction:column;gap:9px}.footer-bottom{border-top:1px solid #345246;margin-top:46px;padding-top:20px;color:#9eb2a4;font-size:11px;display:flex;justify-content:space-between;gap:15px}.alert{padding:15px 17px;border-left:3px solid #b19464;background:#f8f3e9;color:#5f553f;font-size:13px}.callout{padding:22px;background:#edf2eb;border-left:3px solid var(--pine)}.small{font-size:12px}.split-photo-b{min-height:480px;background:linear-gradient(0deg,rgba(10,45,29,.2),rgba(10,45,29,.04)),url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=1300&q=85') center/cover}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-copy{padding:65px 26px}.hero-art{min-height:300px}.hero-art .seal{left:auto;right:20px;bottom:20px;width:130px;height:130px;font-size:18px}.split,.quote-layout{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.estimate{position:static}}@media(max-width:650px){.container{width:calc(100% - 34px)}.nav{min-height:72px}.brand img{height:54px;width:54px}.brand-copy{font-size:15px}.menu-toggle{display:block}nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);padding:20px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}nav.open{display:flex}nav .btn{justify-content:center}.topbar{font-size:9px}.cards,.services-grid,.mini-grid,.footer-grid,.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.section{padding:65px 0}.pillars-grid{grid-template-columns:1fr;gap:0}.pillar{padding:16px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.17)}.band .container{display:block}.band .btn{margin-top:25px}.footer-bottom{display:block}.pricing-table th,.pricing-table td{padding:12px 8px;font-size:11px}.brand-copy small{font-size:8px}}

/* V2: Slightly larger header mark across all pages. Footer mark stays unchanged. */
header .nav .brand img{width:84px;height:84px}
@media(max-width:650px){header .nav .brand img{width:64px;height:64px}}

/* Allow the updated, longer homepage headline to sit comfortably in the existing hero. */
@media(min-width:901px){.hero-copy h1{font-size:clamp(52px,4.2vw,64px);line-height:1.15}}

/* Homepage hero description: a little more emphasis, no other styles affected. */
.hero-copy .hero-description{font-weight:600}

/* V4: slightly larger logo on homepage only; all other branding unchanged. */
.homepage header .nav .brand img{width:96px;height:96px}
@media(max-width:650px){.homepage header .nav .brand img{width:70px;height:70px}.homepage .nav{min-height:84px}.homepage nav{top:84px}}
/* V4: improve readability without altering the site's color palette or layout. */
body{font-weight:500}
h1,h2{font-weight:500}
.hero-copy .hero-description{font-weight:600}
.page-hero p,.section-head p,.card p,.service p,.mini p,.faq p,.footer p,.pillar span,.small,.muted,.form-note{font-weight:500}
/* The prepaid plan has a compact, readable breakdown in existing cards/tables. */
.plan-detail{display:block;font-size:12px;font-weight:600;color:var(--gray);line-height:1.55;margin-top:6px}
.pricing-table .plan-detail{font-size:11px}

/* V5: Only the quote form's add-on control and confirmation links. Preserve original styling. */
.addons-panel{border:1px solid #cdd6ce;background:#fcfdf9}
.addons-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:15px 16px;font-size:12px;letter-spacing:.04em;font-weight:700;color:var(--pine)}
.addons-panel>summary::-webkit-details-marker{display:none}
.addons-panel>summary small{display:block;margin-top:3px;font-size:11px;letter-spacing:0;color:var(--gray);font-weight:500}
.addons-toggle{font-size:24px;font-weight:400;color:var(--gold);line-height:1}
.addons-panel[open] .addons-toggle{transform:rotate(45deg)}
.addons-options{padding:0 15px 15px}
.addon-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding:13px 1px;cursor:pointer;letter-spacing:0!important;text-transform:none!important;font-size:13px!important}
.addon-row input{width:18px!important;height:18px;flex-shrink:0;accent-color:var(--pine);margin:0}
.addon-row span{flex:1;line-height:1.4}
.addon-row strong{display:block;font-weight:700;color:var(--ink)}
.addon-row small{font-size:11px;display:block;color:var(--gray);font-weight:500;margin-top:2px}
.addon-row b{white-space:nowrap;font-size:13px;color:var(--pine);font-weight:700}
.addons-caption{font-size:11px!important;font-weight:500;color:var(--gray);margin:5px 0 13px;line-height:1.5}
.addon-timing{padding:12px;background:#f1f4ee}
.addon-timing label{font-size:10px!important}
.estimate-addons{font-size:12px;color:var(--ink);line-height:1.6;margin-top:12px}
.estimate-addons:empty{display:none}
.estimate-addons .addon-breakdown{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
.estimate-addons strong{font-weight:700}
.policy-link{text-decoration:underline;text-underline-offset:2px;color:var(--pine)}
.honeypot{display:none!important}
@media(max-width:650px){.addon-row{gap:9px}.addon-row b{font-size:12px}}
/* HTML hidden must override the shared .field display rule. */
.field[hidden],.addon-timing[hidden]{display:none!important}

/* V6: launch polish. Colors, layout and typography of V5 are preserved. */
html{-webkit-text-size-adjust:100%}
img{max-width:100%}
/* Gold text on light backgrounds darkened slightly for legibility; unchanged on dark sections. */
.eyebrow{color:#8a6f3f}
.band .eyebrow,.footer .eyebrow,.pillars .eyebrow{color:var(--gold)}
header .brand-copy small{color:#8a6f3f}
/* Accessibility */
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--pine);color:#fff;padding:10px 16px;z-index:100;font-size:13px}
.skip-link:focus{left:8px}
a:focus-visible,button:focus-visible,summary:focus-visible,.btn:focus-visible{outline:2px solid #90ab92;outline-offset:3px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid #90ab92;outline-offset:1px}
/* Footer: light logo on the dark green footer (replaces a white box). */
.footer .brand img{width:67px;height:67px}
.footer-links a:hover{color:#fff}
/* Pricing table now has five columns: scroll inside its wrapper on small screens. */
.pricing-table{min-width:780px}
/* Quote form helpers */
.consent{display:flex;align-items:flex-start;gap:10px;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;line-height:1.5}
.consent input{width:18px!important;height:18px;flex-shrink:0;margin-top:2px;accent-color:var(--pine)}
.zip-note{font-size:11px;color:var(--gray);font-weight:500;line-height:1.5}
.zip-note[hidden]{display:none!important}
.btn[disabled]{opacity:.65;cursor:progress;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* V7: room-by-room service details */
.service h4{font:700 11px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);margin:22px 0 4px}
.service .checklist{margin:4px 0 8px}
.service .checklist li{margin:8px 0}
.callout .checklist{margin-bottom:0}

/* ===== V8: refined luxury-modern polish. Same palette, logo and photos. ===== */
body{font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
.container{width:min(1140px,calc(100% - 64px))}
.section{padding:112px 0}
.section-head{margin-bottom:58px}
.section-head h2,.band h2{letter-spacing:-.015em}
.eyebrow{letter-spacing:.26em}
.section-head .eyebrow::after{content:'';display:block;width:34px;height:1px;background:var(--gold);margin:16px auto 0}
.page-hero{padding:110px 0 96px}
.page-hero .eyebrow::after{content:'';display:block;width:34px;height:1px;background:var(--gold);margin:16px auto 0}
/* header & topbar */
.topbar{padding:9px 20px;letter-spacing:.16em}
header{box-shadow:0 1px 0 var(--border),0 10px 30px rgba(11,53,38,.04)}
nav{gap:32px}
nav a:not(.btn){position:relative;padding:6px 0}
nav a:not(.btn)::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .25s}
nav a:not(.btn):hover::after,nav a.active::after{transform:scaleX(1)}
nav a:hover,nav a.active{color:var(--pine)}
/* buttons */
.btn{padding:16px 30px;letter-spacing:.14em;border-radius:0;box-shadow:0 8px 20px rgba(11,53,38,.14)}
.btn.outline,.btn.light{box-shadow:none}
.btn:hover{box-shadow:0 12px 26px rgba(11,53,38,.2)}
.hero-copy .btn{margin:0 6px 10px 0}
/* hero */
.hero{min-height:680px}
.hero-copy h1{letter-spacing:-.025em}
.hero-copy .eyebrow{margin-bottom:22px}
/* cards */
.card{padding:44px 34px;border-color:#e6eae3;box-shadow:0 2px 4px rgba(13,45,31,.03),0 24px 56px rgba(13,45,31,.07);transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(13,45,31,.04),0 30px 64px rgba(13,45,31,.11)}
.card h3{margin-bottom:10px}
.card a:not(.btn){font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);border-bottom:1px solid var(--gold);padding-bottom:3px}
.card .price{font-size:46px;margin:18px 0 6px}
.card .btn{margin-top:14px}
/* what we clean */
.clean-list{background:#f6f7f2}
.clean-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #d9dfd5;border-bottom:1px solid #d9dfd5}
.clean-grid>div{padding:34px 26px;border-right:1px solid #d9dfd5;text-align:left}
.clean-grid>div:last-child{border-right:0}
.clean-grid strong{display:block;font:500 21px/1.3 'Playfair Display',serif;color:var(--pine);margin-bottom:8px}
.clean-grid span{font-size:14px;color:var(--gray);line-height:1.6}
@media(max-width:900px){.clean-grid{grid-template-columns:1fr 1fr}.clean-grid>div:nth-child(2){border-right:0}.clean-grid>div:nth-child(-n+2){border-bottom:1px solid #d9dfd5}}
@media(max-width:650px){.clean-grid{grid-template-columns:1fr}.clean-grid>div{border-right:0;border-bottom:1px solid #d9dfd5;padding:24px 4px}.clean-grid>div:last-child{border-bottom:0}.container{width:calc(100% - 36px)}.section{padding:72px 0}.page-hero{padding:76px 0 66px}}
/* pillars */
.pillar{padding:36px 18px}
.pillar strong{font-size:23px;margin-bottom:4px}
.pillar span{font-size:13.5px}
/* services */
.service{padding:46px 40px;border-color:#e6eae3;box-shadow:0 20px 50px rgba(13,45,31,.05)}
.service .symbol{font-size:38px}
.service .btn{margin-top:22px}
.service h4{color:var(--pine)}
/* pricing table */
.pricing-table{box-shadow:0 20px 50px rgba(13,45,31,.06)}
.pricing-table th{padding:22px 19px;letter-spacing:.12em}
.pricing-table td{padding:24px 19px}
/* faq */
.faq details{padding:26px 0}
.faq summary{font-size:16px}
/* forms */
.form-panel,.estimate{padding:42px;box-shadow:0 24px 56px rgba(13,45,31,.07)}
.field input,.field select,.field textarea{padding:14px;border-color:#d3dcd4;background:#fff;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pine);box-shadow:0 0 0 3px rgba(11,53,38,.08);outline:none}
.estimate .big{font-size:60px}
/* band & footer */
.band{padding:92px 0;background:linear-gradient(120deg,#0b3526,#0d4030)}
.footer{padding:78px 0 28px}
.footer-grid{gap:64px}
.photo,.split-photo-b{box-shadow:18px 18px 0 #e8eade}
.split-photo-b{box-shadow:none}
.mini{padding:36px 32px;background:#fff;border:1px solid #e6eae3;box-shadow:0 14px 36px rgba(13,45,31,.05)}
/* V8 hero fit: keep "Give your weekends back" on one line and buttons side by side */
@media(min-width:901px){.hero-copy{max-width:760px;padding-right:2%}.hero-copy h1{font-size:clamp(46px,4vw,58px)}.hero-copy p{max-width:520px}}
@media(max-width:900px){.hero-copy h1{font-size:clamp(40px,10vw,54px)}}
@media(max-width:650px){.hero-copy h1{font-size:clamp(28px,7.6vw,40px);letter-spacing:-.02em}.hero-copy .eyebrow{letter-spacing:.16em;font-size:10px}.hero-copy .btn{width:100%}}

/* ===== V9: pine motif, mission, steps, estimate card. Same palette and logo. ===== */
:root{--pine-row:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 36'%3E%3Cpath fill='%23ffffff' d='M30 1 38 13H34L42 24H37L45 35H15L23 24H18L26 13H22Z'/%3E%3C/svg%3E")}
.band,.mission,.footer{position:relative;overflow:hidden}
.band::after,.mission::after,.footer::after{content:'';position:absolute;left:0;right:0;bottom:0;height:34px;background:var(--pine-row) repeat-x bottom/60px 34px;opacity:.07;pointer-events:none}
.band .container,.mission .container,.footer .container{position:relative;z-index:1}
.band{padding-bottom:112px}
.footer{padding-bottom:68px}
/* mission */
.mission{background:linear-gradient(120deg,#0b3526,#0d4030);color:#fff;text-align:center;padding:96px 0 126px}
.mission .eyebrow{color:var(--gold)}
.mission .eyebrow::after{content:'';display:block;width:34px;height:1px;background:var(--gold);margin:16px auto 0}
.mission blockquote{margin:30px auto 0;max-width:860px;font:italic 500 clamp(26px,3.4vw,40px)/1.4 'Playfair Display',serif;letter-spacing:-.01em;color:#f7f5f0}
.signoff{font:italic 500 28px 'Playfair Display',serif;color:var(--pine);margin:26px 0 28px}
.page-hero h1 em{color:var(--pine);font-style:italic}
.mini-grid.four{grid-template-columns:repeat(4,1fr)}
.mini strong{display:block;margin-bottom:10px;color:var(--pine);position:relative;padding-top:18px}
.mini strong::before{content:'';position:absolute;top:0;left:0;width:30px;height:2px;background:var(--gold)}
@media(max-width:900px){.mini-grid.four{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.mini-grid.four{grid-template-columns:1fr}.mission{padding:72px 0 100px}}
/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;counter-reset:s}
.step{text-align:center;padding:0 10px}
.step span{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid var(--gold);color:var(--pine);font:500 24px 'Playfair Display',serif;margin-bottom:20px;background:#fff}
.step h3{font-size:22px;margin-bottom:8px}
.step p{color:var(--gray);font-size:14.5px;max-width:300px;margin:0 auto}
@media(max-width:800px){.steps{grid-template-columns:1fr;gap:34px}}
/* estimate: deep clean price box */
.estimate-alt{margin-top:20px;padding:18px 20px;background:#fff;border:1px solid #d4ddd3;border-left:3px solid var(--gold)}
.estimate-alt[hidden]{display:none}
.alt-label{font:700 11px 'DM Sans',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--pine)}
.alt-price{font:400 32px 'Playfair Display',serif;color:var(--pine);margin:4px 0 2px}
.estimate-alt p{margin:4px 0 0}
.callout .muted{margin-bottom:0}
.consent span{flex:1}
/* V10: mobile seal fits its text */
@media(max-width:900px){.hero-art .seal{width:152px;height:152px;padding:10px;font-size:16px;line-height:1.25;border-width:6px}.hero-art .seal small{display:block;margin-top:5px;font-size:8px;letter-spacing:.1em}}
/* V10b: phone-friendly price tables (each home size becomes one card) and tidy footer line */
.custom-row td[colspan]{color:var(--gray)}
@media(max-width:700px){
 .pricing-table{min-width:0;box-shadow:none;background:transparent}
 .pricing-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .pricing-table,.pricing-table tbody,.pricing-table tr{display:block;width:100%}
 .pricing-table tr,.pricing-table tr:nth-child(even){margin:0 0 16px;background:#fff;border:1px solid var(--border);box-shadow:0 14px 34px rgba(13,45,31,.06)}
 .pricing-table td{display:block;padding:0;border:0;font-size:15px}
 .pricing-table td:first-child{background:var(--pine);color:#fff;font:500 18px/1.3 'Playfair Display',serif;padding:16px 18px}
 .pricing-table td[data-label]{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:14px 18px;border-bottom:1px solid var(--border)}
 .pricing-table td[data-label]:last-child{border-bottom:0}
 .pricing-table td[data-label]::before{content:attr(data-label);flex:0 1 44%;font:600 11px/1.5 'DM Sans',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--gray)}
 .pricing-table td[data-label] .cv{text-align:right}
 .pricing-table .plan-detail{font-size:12px}
 .pricing-table .custom-row td[colspan]{padding:14px 18px}
 .footer-bottom span{display:block}
 .footer-bottom span+span{margin-top:6px}
}
/* V11: preferred consultation (calendar date + time of day). Matches the add-ons panel. */
.consult-panel{border:1px solid #cdd6ce;background:#fcfdf9;padding:16px}
.consult-head span{display:block;font-size:12px;letter-spacing:.04em;font-weight:700;color:var(--pine)}
.consult-head small{display:block;margin-top:3px;font-size:11px;letter-spacing:0;color:var(--gray);font-weight:500}
.consult-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:16px}
.consult-help{margin:13px 0 0;font-size:11px;line-height:1.5;color:var(--gray);font-weight:500}
.field input[type=date]{-webkit-appearance:none;appearance:none;text-align:left;cursor:pointer}
.consult-grid .field input,.consult-grid .field select{height:54px;padding-top:0;padding-bottom:0;line-height:normal}
.field input[type=date]::-webkit-date-and-time-value{min-height:1.5em;text-align:left}
.field input[type=date]::-webkit-datetime-edit{display:inline-flex}
@media(max-width:650px){.consult-grid{grid-template-columns:1fr;gap:14px}}
/* V12: Deep Clean condition note (based on condition; mentioned, not chosen; decided after photos) */
.service .condition-note{border-left:2px solid var(--gold);background:#faf8f2;padding:14px 18px;margin:20px 0 6px;font-size:15px;line-height:1.7;color:var(--ink)}
.service .condition-note strong{display:block;margin-bottom:4px;color:var(--pine);font:700 11px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase}

/* ===== V13: home page polish and a better-fitting logo. Same palette, logo and slogan. ===== */
/* Logo: trimmed artwork (no empty margin), larger, level with the page edge, tidy name beside it */
:root{--nav-h:100px}
.nav,.homepage .nav{min-height:var(--nav-h)}
header .nav .brand img,.homepage header .nav .brand img{width:auto;height:76px}
.footer .brand img{width:auto;height:66px}
.brand{gap:16px}
header .brand-copy,.footer .brand-copy{padding:5px 0 5px 16px;border-left:1px solid rgba(177,148,100,.6)}
.footer .brand-copy{border-left-color:rgba(177,148,100,.45)}
.estimate{top:128px}
@media(max-width:650px){
 :root{--nav-h:76px}
 header .nav .brand img,.homepage header .nav .brand img{height:54px}
 nav,.homepage nav{top:var(--nav-h)}
 .brand{gap:12px}
 header .brand-copy,.footer .brand-copy{padding-left:12px}
}
/* Hero: arched window photo, the logo as a seal, copy lined up with the rest of the page */
.hero{min-height:0;display:block;background:radial-gradient(circle at 76% 42%,rgba(196,180,137,.2),transparent 40%),linear-gradient(120deg,#f2f2e9,#fffefa 62%)}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;padding-top:76px;padding-bottom:88px}
.hero .hero-copy{max-width:none;padding:0}
.hero .hero-copy h1{font-size:clamp(40px,4.2vw,54px);line-height:1.14;letter-spacing:-.025em;text-wrap:balance}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.hero-actions .btn{margin:0}
.hero-copy .hero-area{max-width:520px;margin:36px 0 0;padding-top:20px;border-top:1px solid rgba(25,40,33,.14);font-size:15px}
.hero-visual{display:flex;flex-direction:column;align-items:flex-end;gap:26px}
.hero .hero-art{width:min(100%,410px);height:auto;min-height:0;aspect-ratio:9/11;margin-top:14px;border-radius:999px 999px 0 0;background:linear-gradient(180deg,rgba(9,38,28,.02) 45%,rgba(9,38,28,.32)),url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?w=1400&q=85') center/cover,#cdd7cd;box-shadow:0 34px 70px rgba(13,45,31,.2)}
.hero .hero-art::before{inset:-14px;border:1px solid rgba(177,148,100,.85);border-radius:999px 999px 0 0}
.hero .hero-art .seal{left:-66px;bottom:58px;width:168px;height:168px;padding:0;border:7px solid var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 16px 36px rgba(9,38,28,.28)}
.hero .hero-art .seal img{display:block;width:98px;height:auto}
.hero .hero-art .seal small{display:block;margin:0;font:600 9px/1 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#cfe0d4}
.hero-caption{display:flex;align-items:center;gap:14px;margin:0;font:italic 400 19px/1.3 'Playfair Display',serif;color:var(--pine)}
.hero-caption::before{content:'';width:36px;height:1px;background:var(--gold)}
/* Home page rhythm: a little less empty space between sections, steps joined by a thin line */
.homepage .section{padding:96px 0}
.homepage .section-head{margin-bottom:50px}
.homepage .steps-section{padding-bottom:48px}
.homepage .steps-section+.section{padding-top:48px}
.step span{display:grid;margin:0 auto 20px;position:relative;z-index:1}
.service-cards .card h3::before{content:'';display:block;width:34px;height:2px;background:var(--gold);margin:0 auto 22px}
@media(min-width:801px){
 .steps{position:relative}
 .steps::before{content:'';position:absolute;top:29px;left:calc((100% - 80px)/6);right:calc((100% - 80px)/6);height:1px;background:linear-gradient(90deg,rgba(177,148,100,.2),rgba(177,148,100,.75) 22%,rgba(177,148,100,.75) 78%,rgba(177,148,100,.2))}
}
@media(min-width:901px) and (max-width:1200px){
 .hero .hero-art .seal{left:-34px;width:148px;height:148px;border-width:6px;gap:7px}
 .hero .hero-art .seal img{width:86px}
 .hero .hero-art .seal small{font-size:8px;letter-spacing:.14em}
}
@media(max-width:900px){
 .hero-grid{grid-template-columns:1fr;gap:48px;padding-top:56px;padding-bottom:72px}
 .hero .hero-copy h1{font-size:clamp(36px,7vw,54px)}
 .hero-visual{align-items:center}
 .hero .hero-art{width:min(100%,360px)}
 .hero .hero-art .seal{left:-28px;bottom:44px;width:138px;height:138px;border-width:6px;gap:7px}
 .hero .hero-art .seal img{width:80px}
 .hero-caption{justify-content:center}
}
@media(max-width:650px){
 .hero-grid{padding-top:44px;padding-bottom:64px;gap:44px}
 .hero .hero-copy h1{font-size:clamp(24px,7.4vw,40px);letter-spacing:-.02em}
 .hero .hero-art{width:min(100%,312px)}
 .hero .hero-art .seal{left:-12px;bottom:40px;width:120px;height:120px;border-width:5px;gap:6px}
 .hero .hero-art .seal img{width:68px}
 .hero .hero-art .seal small{font-size:7px;letter-spacing:.16em}
 .homepage .section{padding:68px 0}
 .homepage .steps-section{padding-bottom:36px}
 .homepage .steps-section+.section{padding-top:36px}
}
/* Navigation: nothing wraps. Full menu on wide screens, a menu button on tablets and phones. */
nav a{white-space:nowrap}
@media(min-width:1061px) and (max-width:1200px){
 nav{gap:22px}
 nav a{letter-spacing:.08em}
 nav .btn{padding:14px 22px;letter-spacing:.1em}
 header .brand-copy{font-size:16px}
 header .nav .brand img,.homepage header .nav .brand img{height:68px}
}
@media(max-width:1060px){
 :root{--nav-h:88px}
 header .nav .brand img,.homepage header .nav .brand img{height:64px}
 .estimate{top:112px}
 .menu-toggle{display:grid;place-items:center;width:44px;height:44px;padding:0}
 nav,.homepage nav{display:none;position:absolute;left:0;right:0;top:var(--nav-h);flex-direction:column;align-items:stretch;gap:0;padding:6px 32px 26px;background:var(--paper);border-top:1px solid var(--border);box-shadow:var(--shadow)}
 nav.open{display:flex}
 nav a:not(.btn){padding:16px 0;border-bottom:1px solid var(--border);font-size:12px}
 nav a:not(.btn)::after{display:none}
 nav .btn{justify-content:center;margin-top:20px}
}
@media(max-width:650px){
 :root{--nav-h:76px}
 header .nav .brand img,.homepage header .nav .brand img{height:54px}
 nav,.homepage nav{padding-left:18px;padding-right:18px}
}
@media(max-width:350px){
 header .nav .brand img,.homepage header .nav .brand img{height:46px}
 .brand{gap:9px}
 header .brand-copy{font-size:13px;padding-left:9px}
 header .brand-copy small{font-size:7px;letter-spacing:.18em}
}

/* V11 readability: slightly larger, bolder small text for easier reading */
:root{--gray:#505c55}
body{font-size:17px;line-height:1.75}
.eyebrow{font-size:13px;font-weight:700}
.topbar{font-size:12px;letter-spacing:.1em}
nav a:not(.btn){font-size:13px;font-weight:700}
.btn{font-size:13.5px}
.brand-copy small,header .brand-copy small{font-size:10.5px;font-weight:700}
.hero-copy p,.hero-copy .hero-area{font-size:18px}
.hero-caption{font-size:15px}
.page-hero p,.section-head p{font-size:18px}
.card p,.service p,.mini p,.faq p,.step p,.clean-grid span{font-size:16px;font-weight:500}
.card ul{font-size:15.5px}
.card a:not(.btn){font-size:14px}
.pillar span{font-size:15px}
.field label{font-size:13px}
.form-note,.zip-note,.small,.consult-help{font-size:14px}
.consent{font-size:15px!important}
.addon-row{font-size:15px!important}
.addon-row small,.addons-caption,.addons-panel>summary small,.consult-head small{font-size:13px!important}
.addons-panel>summary,.consult-head span{font-size:14px}
.addon-row b{font-size:15px}
.plan-detail{font-size:14px}
.pricing-table th{font-size:13px}
.pricing-table td{font-size:16px}
.pricing-table .plan-detail{font-size:13.5px}
.estimate-addons{font-size:14px}
.chip{font-size:13px}
.footer p,.footer a{font-size:15px}
.footer-bottom{font-size:13px}
.footer strong{font-size:16px}
.alert,.callout{font-size:15.5px}
.faq summary{font-size:17px}
.founders{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;max-width:900px;margin:0 auto}
.founders .mini{padding:30px 32px}
.founders .mini .where{display:block;font:700 13px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8a6f3f;margin:6px 0 12px}
.founders .mini p{color:var(--ink)}
@media(max-width:650px){.founders{grid-template-columns:1fr}.topbar{font-size:10.5px}.pricing-table th,.pricing-table td{font-size:13px}}
@media(min-width:901px) and (max-width:1100px){nav{gap:16px}nav a:not(.btn){font-size:12.5px;letter-spacing:.08em}.btn{padding:14px 18px}}
#jk-contact a{white-space:nowrap}

.hero .hero-copy p,.hero .hero-copy .hero-description,.hero .hero-copy .hero-area{color:#2b3a32}
.hero .hero-copy .hero-area{border-top-color:rgba(25,40,33,.2)}

/* V11 larger header logo (desktop and tablet) */
@media(min-width:901px){:root{--nav-h:124px}header .nav .brand img,.homepage header .nav .brand img{height:100px}header .brand-copy{font-size:20px}}
@media(min-width:901px) and (max-width:1100px){header .nav .brand img,.homepage header .nav .brand img{height:84px}:root{--nav-h:108px}header .brand-copy{font-size:17px}}
@media(min-width:651px) and (max-width:900px){header .nav .brand img,.homepage header .nav .brand img{height:76px}}
