:root{--ink:#242424;--brand:#8b1e2d;--muted:#66645f;--paper:#faf9f5;--line:#deddd7;--lime:#e9e8e2;--serif:Georgia,'Times New Roman',serif;--section-space:3.5rem;--gutter:1.25rem;--radius:1rem}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 system-ui,-apple-system,sans-serif}
a{color:inherit;text-underline-offset:.25rem}
button,input,select{font:inherit}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
[hidden]{display:none!important}
.shell{width:100%;max-width:76rem;margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;top:-5rem;left:1rem;z-index:9;padding:.75rem;background:white}
.skip:focus{top:1rem}
.header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding-block:.875rem;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;flex-shrink:0;font:1.2rem/1.1 var(--serif)}
.brand small{display:block;font:.625rem/1.5 system-ui;letter-spacing:.26em;margin-top:.25rem}
.brand-mark{font:2.25rem/.9 var(--serif);letter-spacing:-.15em;padding-right:.2rem}
nav{display:flex;gap:.375rem;align-items:center}
nav a{display:flex;align-items:center;min-height:3rem;text-decoration:none;font-size:.8125rem;padding:.3rem .375rem;white-space:nowrap}
nav a:nth-child(2){display:none}
.nav-contact{border:1px solid var(--ink);border-radius:2rem;gap:.375rem;padding-inline:.75rem}
.hero{display:grid;grid-template-columns:minmax(0,1fr);padding-block:3.5rem 3rem;text-align:center}
.hero-copy{width:100%;max-width:58rem;margin-inline:auto}
.hero h1{font-size:clamp(2.625rem,7vw,6rem);line-height:1.08}
.hero .lead{max-width:39rem;margin:1.5rem auto 1.75rem;text-wrap:pretty}
.hero-actions{justify-content:center}
.hero-notes{justify-content:center}
.hero-copy{min-width:0}
.eyebrow{font-size:.75rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem;margin:0 0 1.25rem}
.status-dot{width:.5rem;height:.5rem;background:var(--brand);border-radius:50%;flex-shrink:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.03em;line-height:1.12;margin:0}
h1{font-size:clamp(2.625rem,7vw,4.75rem);text-wrap:balance}
h2{font-size:clamp(2rem,4.5vw,3.25rem);max-width:19ch;text-wrap:balance}
em{font-weight:400;color:var(--brand)}
h3{font-size:1.125rem;line-height:1.35;margin:0}
.lead{color:var(--muted);max-width:34rem;margin:1.4rem 0;font-size:1.05rem}
.hero-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem}
.icon{width:1rem;height:1rem;flex-shrink:0;vertical-align:middle}
.text-link .icon{margin-left:.5rem}
.button{border:0;display:inline-flex;justify-content:space-between;align-items:center;gap:1.5rem;min-height:3.25rem;padding:.9rem 1.35rem;background:var(--brand);color:#fff;border-radius:2rem;text-decoration:none;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}
.button:hover{background:#701724;transform:translateY(-1px)}
.button:disabled{opacity:.55;cursor:wait;transform:none}
.text-link{background:none;border:0;cursor:pointer;min-height:2.75rem;display:inline-flex;align-items:center;padding:.3rem 0;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:.3rem}
.hero-notes{display:grid;gap:.375rem;margin-top:1.25rem;color:var(--muted);font-size:.875rem}
.hero-notes span:before{content:'✓';color:var(--brand);margin-right:.4rem}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.card-top .eyebrow{margin:0;font-size:.625rem}
.care-strip{background:#f1f0eb;border-block:1px solid var(--line)}
.care-strip .shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;padding-block:1rem;font-size:.875rem;color:var(--muted);text-align:center}
.care-strip span:nth-child(even){color:var(--muted)}
.section{padding-block:var(--section-space)}
.section-heading{display:grid;gap:1.25rem;margin-bottom:1.75rem}
.section-heading>p{color:var(--muted);max-width:40ch;margin:0}
.tabs{display:inline-flex;background:#eeede7;border-radius:2rem;padding:.25rem;gap:.25rem;max-width:100%;margin-bottom:1.2rem}
.tabs button{border:0;background:none;padding:.65rem .85rem;border-radius:2rem;min-height:2.75rem;font-size:.875rem;color:var(--ink);cursor:pointer}
.tabs button.active{background:var(--brand);color:white}
.service-grid{display:grid;gap:1rem}
.service-card{border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;background:#fff;display:flex;flex-direction:column;transition:border-color .2s}
.service-card.selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.service-number{display:none}
.service-card p{color:var(--muted);font-size:.9375rem;margin:.75rem 0 1.25rem}
.service-price{font:1.75rem/1.3 var(--serif);letter-spacing:-.02em;margin-top:auto;font-variant-numeric:tabular-nums}
.service-price.quote{font:600 1.125rem/1.5 system-ui;letter-spacing:0}
.service-price small{font: .875rem system-ui;letter-spacing:0}
.service-card button{display:flex;justify-content:space-between;min-height:3rem;margin-top:1.25rem;padding:.6rem 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);font-weight:600;cursor:pointer;text-align:left}
.pricing-note,.muted{color:var(--muted)}
.pricing-note{font-size:.875rem;max-width:55rem;margin:1.4rem 0 0}
.request-section{background:#f1f0eb;padding-block:var(--section-space)}
.request-layout{display:grid;gap:2rem;align-items:start}
.request-layout>div{min-width:0}
.steps{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:1.3rem}
.steps li{display:flex;gap:1rem}
.steps li>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;border:1px solid var(--line);border-radius:50%;font:.9rem var(--serif)}
.steps p{font-size:.9rem;color:var(--muted);margin:.25rem 0}
.request-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;min-width:0}
.request-card>.card-top{margin-bottom:1.5rem}
.request-card>label,legend{font-weight:600;font-size:.875rem;display:block;margin-bottom:.5rem}
input[type=date],select{width:100%;min-height:3.25rem;border:1px solid var(--line);border-radius:.6rem;background:white;padding:.7rem;color:var(--ink);min-width:0}
fieldset{border:0;padding:0;margin:1.3rem 0}
.visit-options{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.visit-options label{cursor:pointer;position:relative}
.visit-options input{position:absolute;opacity:0}
.visit-options span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:3rem;padding:.6rem .35rem;border:1px solid var(--line);border-radius:.6rem;font-size:.875rem}
.visit-options input:checked+span{background:var(--brand);border-color:var(--brand);color:white}
.visit-options input:focus-visible+span{outline:3px solid var(--brand);outline-offset:3px}
.visit-options input:disabled+span{opacity:.45;cursor:not-allowed}
.optional{color:var(--muted);font-weight:400}
.field-help{font-size:.875rem;color:var(--muted);margin:.65rem 0 1.2rem}
.estimate{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-block:1px solid var(--line);padding:1rem 0;margin-top:1.5rem;font-size:.875rem}
.estimate strong{font-size:1.1rem;text-align:right;font-variant-numeric:tabular-nums}
.request-card .button{width:100%;margin-top:.5rem}
.message-preview{white-space:pre-line;background:#f1f0eb;border-radius:.75rem;padding:1rem;font-size:.9rem;overflow-wrap:anywhere}
#message-review{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}
.faq-layout{display:grid;gap:1.5rem}
.faqs details,.privacy details{border-bottom:1px solid var(--line);padding-block:1rem}
summary{position:relative;list-style:none;cursor:pointer;padding-right:2rem;min-height:2.75rem;display:flex;align-items:center;font-weight:600}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';position:absolute;right:.4rem;font-size:1.4rem;font-weight:400}
details[open]>summary:after{content:'−'}
details p{color:var(--muted);font-size:.9375rem;max-width:45rem}
.contact-section{display:grid;gap:1.5rem;border-top:1px solid var(--line);padding-block:var(--section-space)}
.phone{display:block;font-size:1.1rem;margin-top:1rem}
.contact-section .field-help{max-width:25rem;margin-top:1rem}
.privacy{padding-bottom:2.5rem}
.privacy summary{font-size:.875rem}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;border-top:1px solid var(--line);padding-block:1.5rem 6rem;font-size:.875rem;color:var(--muted)}
.mobile-action{position:fixed;z-index:5;bottom:0;inset-inline:0;background:var(--paper);border-top:1px solid var(--line);padding:.7rem 1.25rem max(.7rem,env(safe-area-inset-bottom))}
.mobile-action a{display:flex;justify-content:space-between;padding:.85rem 1.25rem;background:var(--brand);border-radius:2rem;color:white;font-weight:600;text-decoration:none;min-height:3rem}

::selection{background:#e9e8e2;color:var(--brand)}

input,select{caret-color:var(--brand)}

.hero-copy>.eyebrow,.section-heading .eyebrow,.request-layout>div>.eyebrow,.faq-layout>div>.eyebrow,.contact-section .eyebrow{display:none}

#pricing-status{font-size:.875rem;margin:.25rem 0 1rem}

.steps{margin-top:1.5rem}

.service-card button:hover{color:var(--brand)}

.service-card button:active{color:var(--brand)}

.contact-section>div:last-child{max-width:30rem}

footer>a:last-child{min-height:2.75rem;display:flex;align-items:center}

@media(min-width:640px){
 :root{--gutter:2rem;--section-space:4rem}

 nav{gap:1rem}
nav a{font-size:.875rem}
nav a:nth-child(2){display:flex}

 .hero-actions{flex-direction:row;align-items:center;gap:1.25rem;flex-wrap:wrap}

 .hero-notes{display:flex;gap:1.25rem}

 .care-strip .shell{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}

 .request-card{padding:2rem;max-width:40rem;width:100%}

 .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

 .service-card h3{min-height:3rem}

 .service-price{font-size:1.625rem}

 .mobile-action{display:none}
footer{padding-bottom:2rem}

}

@media(min-width:768px){
 .hero{padding-block:4.5rem 4rem}

 .section-heading{grid-template-columns:1.2fr 1fr;gap:3rem;align-items:start}

 .section-heading>p{padding-top:.375rem}

 .faq-layout{grid-template-columns:1fr 1.4fr;gap:3rem;align-items:start}

 .faqs details:first-child{padding-top:0}

 .contact-section{grid-template-columns:1.2fr 1fr;gap:3rem;align-items:start}

 .contact-section>div:last-child{padding-top:.375rem}

}

@media(min-width:1024px){
 :root{--gutter:3rem;--section-space:4.5rem}

 .hero{padding-block:5rem 4.5rem}
 .hero .lead{font-size:1.125rem}
 .hero-notes{margin-top:1.75rem}

 .request-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}

 .service-card{padding:1.5rem}
.service-price{font-size:2rem}

 .hero-notes{flex-wrap:wrap;gap:.5rem 1rem}

}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}
}

.service-card button>span{display:flex;align-items:center}
@media(max-width:359px){nav a:first-child{display:none}.nav-contact{padding-inline:.75rem}}

.brand-logo{display:block;width:9rem;max-width:100%;height:auto}.header nav a:first-child{display:none}@media(min-width:640px){.header nav a:first-child{display:flex}.brand-logo{width:10.75rem}}@media(min-width:768px){.brand-logo{width:12rem}}
