:root{
  --font-body:'General Sans',Arial,sans-serif;--font-display:'Zodiak',Georgia,serif;
  --color-bg:oklch(0.991 0.003 95);--color-text:oklch(0.27 0.025 158);--color-muted:oklch(0.46 0.018 155);
  --color-primary:oklch(0.34 0.045 163);--color-primary-hover:oklch(0.26 0.04 163);--color-soft:oklch(0.93 0.02 123);
  --color-stone:oklch(0.963 0.01 95);--color-white:oklch(1 0 0);--color-border:oklch(0.27 0.025 158 / .17);--color-error:oklch(.45 .17 25);
  --text-xs:clamp(.75rem,.72rem + .12vw,.8125rem);--text-sm:clamp(.875rem,.85rem + .12vw,.9375rem);--text-base:clamp(1rem,.98rem + .12vw,1.0625rem);--text-lg:clamp(1.2rem,1rem + .65vw,1.5rem);--text-xl:clamp(1.8rem,1.25rem + 1.3vw,2.45rem);--text-hero:clamp(2.7rem,1.6rem + 3.4vw,4.7rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:3px;--radius-md:6px;--radius-full:999px;--content-wide:1240px;
}
a{color:inherit;text-decoration:none}a:active,button:active{opacity:.8}
.container{width:min(var(--content-wide),calc(100% - var(--space-16)));margin-inline:auto}
.utility{background:var(--color-primary);color:var(--color-white);font-size:var(--text-xs)}
.utility .container{display:flex;justify-content:space-between;padding-block:var(--space-2);letter-spacing:.08em}
.header{position:sticky;top:0;background:var(--color-bg);z-index:20;border-bottom:1px solid var(--color-border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:100px}
.wordmark{display:inline-flex;flex-direction:column;line-height:1;flex-shrink:0}
.wordmark>span{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.07em}
.wordmark small{font-size:var(--text-xs);letter-spacing:.12em;font-weight:600;margin-top:var(--space-2)}
.brand-dot{color:var(--color-primary)}
.desktop-nav{display:flex;gap:var(--space-8);align-items:center}
.desktop-nav a{font-size:var(--text-sm);padding-block:var(--space-3)}
.desktop-nav a:hover,.phone-link:hover,.text-link:hover{color:var(--color-primary);text-decoration:underline;text-underline-offset:5px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);background:var(--color-primary);color:var(--color-white);border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-4) var(--space-6);min-height:52px;font-size:var(--text-sm);font-weight:600;line-height:1.35}
.button:hover{background:var(--color-primary-hover)}.button span{font-size:var(--text-lg);line-height:1}
.menu-toggle,.mobile-nav{display:none}
.skip-link{position:fixed;top:var(--space-4);left:var(--space-4);transform:translateY(-160%);z-index:100;background:var(--color-white);padding:var(--space-3);border:2px solid var(--color-primary)}
.skip-link:focus{transform:translateY(0)}
.hero{display:grid;grid-template-columns:1fr 1.06fr;gap:var(--space-12);padding-block:var(--space-12) var(--space-16);align-items:center}
.hero-copy{padding-block:var(--space-8)}
.eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;line-height:1.6;margin-bottom:var(--space-5)}
h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:-.055em}
h1{font-size:var(--text-hero);line-height:1.12}.ampersand{color:var(--color-muted)}
.hero-description{max-width:41ch;color:var(--color-muted);margin-block:var(--space-6) var(--space-8)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-6)}
.phone-link{font-size:var(--text-sm);font-weight:500;padding-block:var(--space-3)}
.hero-location{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-12)}
.small-dot{height:7px;width:7px;background:var(--color-primary);border-radius:var(--radius-full)}.separator{margin-inline:var(--space-2)}
.hero-visual{position:relative;min-height:540px;align-self:stretch;background:var(--color-soft);border-radius:var(--radius-md);overflow:hidden}
.hero-visual>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:61% center}
.image-note{position:absolute;bottom:var(--space-6);left:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--color-bg);max-width:280px}
.image-note>span{font-size:var(--text-xs);font-weight:600;letter-spacing:.12em}
.image-note p{font-family:var(--font-display);font-size:var(--text-lg);margin-top:var(--space-2);line-height:1.4}
.service-ribbon{background:var(--color-soft);border-block:1px solid var(--color-border)}
.service-ribbon .container{display:grid;grid-template-columns:repeat(3,1fr)}
.service-ribbon a{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);font-size:var(--text-sm);font-weight:500;border-right:1px solid var(--color-border)}
.service-ribbon a:first-child{padding-left:0}.service-ribbon a:last-child{border-right:0;padding-right:0}.service-ribbon a:hover{color:var(--color-primary-hover);text-decoration:underline;text-underline-offset:5px}
.section{padding-block:var(--space-24)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-16);margin-bottom:var(--space-12)}
h2{font-size:var(--text-xl);line-height:1.25}.section-heading>p{max-width:45ch;color:var(--color-muted)}
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10)}
.service-image{position:relative;aspect-ratio:1.6;background:var(--color-stone);overflow:hidden;border-radius:var(--radius-sm)}
.service-image img{width:100%;height:100%;object-fit:cover}
.image-label{position:absolute;bottom:var(--space-4);left:var(--space-4);background:var(--color-bg);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.06em}
.service-card-body{padding-block:var(--space-6) var(--space-8)}
h3{font-size:var(--text-lg);font-weight:500;line-height:1.3;letter-spacing:-.025em}
.service-card-body p{margin-block:var(--space-3) var(--space-5);color:var(--color-muted)}
.text-link{display:inline-flex;gap:var(--space-6);align-items:center;min-height:44px;font-size:var(--text-sm);font-weight:600;border-bottom:1px solid var(--color-border)}
.exterior-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-20);background:var(--color-primary);color:var(--color-white);padding:var(--space-12);margin-top:var(--space-6);border-radius:var(--radius-md)}
.exterior-intro h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400}
.exterior-intro>p:not(.eyebrow){color:var(--color-soft);margin-block:var(--space-5) var(--space-6)}
.button-light{background:var(--color-bg);color:var(--color-primary)}.button-light:hover{background:var(--color-soft)}
details{border-bottom:1px solid var(--color-border)}
summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);cursor:pointer;list-style:none;padding-block:var(--space-6);font-size:var(--text-base);font-weight:500}
summary::-webkit-details-marker{display:none}
summary>span:last-child{font-size:var(--text-lg);font-weight:400;flex-shrink:0}
details[open] summary>span:last-child{transform:rotate(45deg)}
details>p{padding-bottom:var(--space-6);color:var(--color-muted);font-size:var(--text-sm)}
.exterior-list details{border-color:oklch(1 0 0 / .25)}
.exterior-list details>p,.season-note{color:var(--color-soft)}
.exterior-list :focus-visible{outline-color:var(--color-white)}
.season-note{font-size:var(--text-xs);margin-top:var(--space-5)}
.carpet-note{display:flex;justify-content:space-between;gap:var(--space-12);align-items:center;border-bottom:1px solid var(--color-border);padding-block:var(--space-8)}
.carpet-note h3{font-size:var(--text-base)}.carpet-note p{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-2);max-width:72ch}.carpet-note a{flex-shrink:0}
.approach{background:var(--color-stone);padding-block:var(--space-20)}
.approach-heading{max-width:690px}.approach-heading>p:last-child{margin-top:var(--space-5);color:var(--color-muted)}
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);margin-top:var(--space-12)}
.process li{border-top:1px solid var(--color-border);padding-top:var(--space-6)}
.step-number{font-size:var(--text-xs);color:var(--color-muted);display:block;margin-bottom:var(--space-5)}
.process h3{font-size:var(--text-base);font-weight:600}.process p{color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-3)}
.area{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-20);padding-block:var(--space-24);border-bottom:1px solid var(--color-border)}
.area-copy>p{color:var(--color-muted)}.area-tags{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-block:var(--space-6) var(--space-3)}
.area-tags span{padding:var(--space-2) var(--space-4);background:var(--color-stone);font-size:var(--text-sm);border-radius:var(--radius-full)}
.faq-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:var(--space-20);padding-block:var(--space-20) var(--space-24)}
.faq-heading .text-link{margin-top:var(--space-6)}
.faq-list details:first-child{border-top:1px solid var(--color-border)}
.quote-section{background:var(--color-soft);padding-block:var(--space-24)}
.quote-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-24);align-items:start}
.quote-copy h2{font-size:var(--text-xl)}.quote-copy>p:not(.eyebrow){color:var(--color-muted);margin-top:var(--space-5)}
.contact-block{display:flex;flex-direction:column;margin-top:var(--space-10);gap:var(--space-2)}
.contact-block span{font-size:var(--text-xs);letter-spacing:.1em;margin-top:var(--space-6)}
.contact-block a{font-size:var(--text-lg);width:fit-content;min-height:44px;overflow-wrap:anywhere}
.contact-block a.email-address{font-size:var(--text-base)}.contact-block a:hover{text-decoration:underline;text-underline-offset:5px}
.contact-note{font-size:var(--text-sm);max-width:36ch}
.quote-form-wrap{padding:var(--space-10);background:var(--color-bg);border-radius:var(--radius-md)}
.form-progress{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-5);margin-bottom:var(--space-6)}
#step-label{font-weight:600;letter-spacing:.06em}#progress-secondary{color:var(--color-muted)}
fieldset{border:0;min-width:0}legend{font-size:var(--text-lg);font-weight:500;letter-spacing:-.025em;margin-bottom:var(--space-5)}
label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2)}
input,select,textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--color-white);font-size:var(--text-base);min-height:48px}
select{padding-right:var(--space-8)}textarea{resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-error)}
.field-error{display:block;color:var(--color-error);font-size:var(--text-xs);min-height:var(--space-6);margin-top:var(--space-1)}
.optional{font-weight:400;color:var(--color-muted)}
.form-next{width:100%;margin-top:var(--space-6);justify-content:space-between}
.form-note{color:var(--color-muted);font-size:var(--text-xs);margin-top:var(--space-4);line-height:1.6}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6)}
.back-button,.text-button{font-size:var(--text-sm);min-height:44px;padding-block:var(--space-3);text-decoration:underline;text-underline-offset:4px}
.review-intro{margin-block:var(--space-4) var(--space-6);font-size:var(--text-sm);color:var(--color-muted)}
#request-text{font-size:var(--text-sm)}.review-destination{margin-block:var(--space-4);font-size:var(--text-xs);overflow-wrap:anywhere}.review-destination a{text-decoration:underline}
#email-request{width:100%;justify-content:space-between}
.review-controls{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3)}
.footer{background:var(--color-primary);color:var(--color-white);padding-block:var(--space-12) var(--space-6)}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding-bottom:var(--space-10)}
.footer-top p{font-size:var(--text-sm);color:var(--color-soft)}
.back-top{font-size:var(--text-sm);min-height:44px;padding-block:var(--space-3)}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-8);font-size:var(--text-xs);border-top:1px solid oklch(1 0 0 / .2);padding-top:var(--space-5)}
.footer :focus-visible{outline-color:var(--color-white)}.privacy{border:0;max-width:600px}.privacy summary{font-size:var(--text-xs);padding-block:0;min-height:44px;align-items:flex-start;justify-content:flex-end}.privacy p{color:var(--color-soft);font-size:var(--text-xs);padding-block:var(--space-3)}
.img-fallback{background:var(--color-soft);min-height:240px;display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--color-primary);font-size:var(--text-sm)}
@media(min-width:1600px){.hero-visual{min-height:580px}}
@media(max-width:1100px){.desktop-nav{gap:var(--space-5)}.hero{gap:var(--space-8)}.hero-visual{min-height:500px}.hero-actions{gap:var(--space-3)}.exterior-panel{gap:var(--space-10)}.quote-grid{gap:var(--space-12)}.hero-location{max-width:36ch}.service-card-body h3{font-size:var(--text-lg)}}
@media(max-width:900px){.desktop-nav{display:none}.header-quote{margin-left:auto}.menu-toggle{display:flex;align-items:center;gap:var(--space-3);min-height:44px;font-size:var(--text-sm)}.menu-toggle span{font-size:var(--text-lg)}.mobile-nav:not([hidden]){display:grid;padding:var(--space-4) var(--space-8) var(--space-6);border-top:1px solid var(--color-border)}.mobile-nav a{padding:var(--space-3) 0;font-size:var(--text-base)}.hero{grid-template-columns:1fr 1fr;gap:var(--space-6)}.hero-visual{min-height:490px}.hero-location{margin-top:var(--space-8)}.image-note{left:var(--space-4);bottom:var(--space-4);padding:var(--space-4)}.section-heading{gap:var(--space-8)}.section-heading>p{max-width:34ch}.exterior-panel{padding:var(--space-8);gap:var(--space-8)}.process{gap:var(--space-6)}.area,.faq-section{gap:var(--space-10)}.quote-grid{grid-template-columns:.8fr 1.2fr;gap:var(--space-8)}.quote-form-wrap{padding:var(--space-6)}.form-progress{flex-wrap:wrap}}
@media(max-width:700px){
  .container{width:calc(100% - var(--space-10))}.utility .container{justify-content:center}.utility .container>span:last-child{display:none}
  .header-inner{min-height:80px;gap:var(--space-4)}.wordmark small{font-size:var(--text-xs);letter-spacing:.08em}.header-quote{display:none}.menu-toggle{margin-left:auto}
  .hero{grid-template-columns:1fr;padding-block:var(--space-8) var(--space-8);gap:var(--space-8)}.hero-copy{padding:0}.eyebrow{margin-bottom:var(--space-4)}
  .hero-description{margin-block:var(--space-5) var(--space-6);max-width:43ch}.hero-actions{gap:var(--space-5)}.hero-actions .button{padding-inline:var(--space-5);gap:var(--space-6)}.hero-location{margin-top:var(--space-6);font-size:var(--text-xs);max-width:none}
  .hero-visual{min-height:360px}.hero-visual>img{object-position:center}.image-note{padding:var(--space-4);max-width:230px}.image-note p{font-size:var(--text-base)}
  .service-ribbon .container{width:100%;grid-template-columns:1fr}.service-ribbon a,.service-ribbon a:first-child,.service-ribbon a:last-child{padding:var(--space-4) var(--space-5);border-right:0;border-bottom:1px solid var(--color-border)}.service-ribbon a:last-child{border-bottom:0}
  .section{padding-block:var(--space-16)}.section-heading{display:block;margin-bottom:var(--space-8)}.section-heading>p{margin-top:var(--space-5);max-width:none}
  .service-grid{grid-template-columns:1fr;gap:var(--space-6)}.service-image{aspect-ratio:1.35}.service-card-body{padding-block:var(--space-5)}.service-card-body h3{font-size:var(--text-lg)}
  .exterior-panel{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6);margin-top:var(--space-8)}.exterior-intro>p:not(.eyebrow){font-size:var(--text-base)}summary{gap:var(--space-4)}.exterior-list summary{font-size:var(--text-sm)}
  .carpet-note{display:block;padding-block:var(--space-6)}.carpet-note .text-link{margin-top:var(--space-3)}
  .approach{padding-block:var(--space-16)}.process{grid-template-columns:1fr;gap:var(--space-6);margin-top:var(--space-8)}.process li{display:grid;grid-template-columns:32px 1fr;column-gap:var(--space-4);padding-top:var(--space-5)}.step-number{grid-row:span 2;margin-bottom:0}.process p{grid-column:2;margin-top:var(--space-2)}.process h3{font-size:var(--text-base)}
  .area{grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--space-16)}
  .faq-section{grid-template-columns:1fr;gap:var(--space-8);padding-block:var(--space-16)}.faq-heading h2 br{display:none}.faq-heading .text-link{margin-top:var(--space-4)}
  .quote-section{padding-block:var(--space-16)}.quote-grid{grid-template-columns:1fr;gap:var(--space-8)}.contact-block{margin-top:var(--space-5)}.contact-block span{margin-top:var(--space-4)}.contact-block a{font-size:var(--text-lg)}.contact-note{max-width:none}.quote-form-wrap{padding:var(--space-6)}.form-progress{font-size:var(--text-xs);gap:var(--space-2)}#progress-secondary{display:none}.form-actions .button{padding-inline:var(--space-4);gap:var(--space-4)}
  .footer-top{flex-wrap:wrap;gap:var(--space-6)}.footer-top p{width:100%;order:3}.footer-bottom{display:block}.privacy{margin-top:var(--space-4)}.privacy summary{justify-content:flex-start}.back-top{margin-left:auto}
}
@media(max-width:370px){.container{width:calc(100% - var(--space-8))}.hero-actions{gap:var(--space-2)}.hero-actions .button{padding-inline:var(--space-4);gap:var(--space-3)}.quote-form-wrap{padding:var(--space-4)}}
