
section{padding:var(--sectionPadding)}
.alt{background:var(--paper)}
.dark{background:var(--forest);color:#E4ECDF}.dark h2,.dark h3{color:#fff}.dark .cs-topper{color:#9CC49F}.dark a{color:#CFE0CB}.dark .cs-text{color:#C6D4C2}
.stripes{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44'><path d='M-11 11L11-11M0 44L44 0M33 55L55 33' stroke='%23ffffff' stroke-opacity='.028' stroke-width='11'/></svg>")}
.cs-card-group{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
.cs-item{background:var(--paper);border-radius:var(--radius);padding:1.9rem 1.7rem 1.7rem}
.cs-item .ico{width:3.1rem;height:3.1rem;border-radius:50%;background:var(--sage);display:grid;place-items:center;margin:0 0 1.1rem}
.cs-item .ico svg{width:1.5rem;height:1.5rem;stroke:var(--green-dark);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.cs-item h3{font-size:1.35rem;margin:0 0 .55rem}.cs-item p{margin:0 0 .7rem;color:var(--ink)}.cs-item ul{margin:.4rem 0 0;padding-left:1.1rem;color:var(--dim);font-size:.95rem;line-height:1.7}
.cs-item .from{display:inline-block;margin-top:.9rem;font-weight:700;color:var(--green-dark);text-decoration:none;border-bottom:2px solid var(--sage)}
.cs-item .from:hover{border-bottom-color:var(--green-dark)}
.split{display:grid;gap:2.5rem;align-items:start}
.price{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.price th,.price td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.price tr:last-child td{border-bottom:0}
.price th{background:var(--sage);font-family:var(--bodyFont);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.price td:last-child{white-space:nowrap;font-weight:700;color:var(--ink)}
.price .note{display:block;font-size:.9rem;color:var(--dim);font-weight:400;margin-top:.15rem}
.price caption{caption-side:bottom;text-align:left;font-size:.875rem;color:var(--dim);padding:.8rem .1rem 0}
.cal{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.cal.one{grid-template-columns:1fr!important}
.cal li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;align-items:start}
.cal.one li{grid-template-columns:6.75rem 1fr}
.cal b{font-family:var(--headerFont);font-weight:600;font-size:1.2rem;color:var(--green-dark)}
.cal li.is-now{box-shadow:inset 0 0 0 2px var(--green)}
.cal .pill{display:inline-block;background:var(--green);color:#fff;font:700 .68rem/1 var(--bodyFont);letter-spacing:.1em;text-transform:uppercase;padding:.32rem .55rem;border-radius:2rem;margin-left:.5rem;vertical-align:middle}
.towns{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.towns a{display:inline-block;background:var(--sage);border-radius:2rem;padding:.55rem 1.05rem;text-decoration:none;color:var(--ink);font-weight:600;transition:background .18s,color .18s}
.towns a:hover{background:var(--green);color:#fff}
.map{width:100%;max-width:34rem;height:auto;margin:0 auto;display:block}
.map .mt{cursor:pointer}.map .mt circle{transform-box:fill-box;transform-origin:center;transition:transform .25s}.map .mt .ring{fill:none;stroke:var(--green);stroke-width:2;opacity:0}.map .mt .mday{font-size:12px;font-weight:600;fill:var(--green-dark);opacity:0;transition:opacity .25s}.map .mt.on .mday{opacity:1}.map .mt.on circle{transform:scale(1.35)}.map .mt.on .ring{animation:mring 1.4s ease-out infinite}
@keyframes mring{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
.mbar{display:none}

.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:2rem}
.steps li{counter-increment:s;position:relative}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;margin:0 0 1rem;width:3.25rem;height:3.25rem;border-radius:50%;background:var(--sage);color:var(--green-dark);font:600 1.15rem/3.25rem var(--headerFont);text-align:center}
.steps h3{font-size:1.25rem;margin:0 0 .4rem}.steps p{margin:0;color:var(--dim)}
.owner{display:grid;gap:2rem;align-items:center}
.owner img.ph{object-fit:cover;padding:0;width:100%}
.owner:has(.crew){align-items:start}.crew{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:26rem;padding-top:.4rem}.crew figure{margin:0}.crew img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);display:block}.crew figcaption{font-size:.85rem;color:var(--dim);margin-top:.55rem}
.owner .ph{aspect-ratio:4/5;border-radius:var(--radius);background:linear-gradient(165deg,#D6E3CF 0%,#9DBA95 55%,#6B9070 100%);display:flex;align-items:flex-end;padding:1.2rem;color:var(--ink);font-size:.85rem;max-width:22rem;box-shadow:1.4rem 1.4rem 0 var(--sage);margin:0 1.4rem 1.4rem 0}
.faq details{border-bottom:1px solid var(--line)}.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.15rem .2rem;font-family:var(--headerFont);font-weight:600;font-size:1.15rem;color:var(--ink);display:flex;gap:.8rem;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}.faq summary::before{content:"+";color:var(--green);font-weight:600;font-size:1.3rem;line-height:1}.faq details[open] summary::before{content:"\2212"}
.faq p{margin:0 .2rem 1.2rem 1.7rem;color:var(--ink);max-width:46rem}
.quote{position:relative;background:#fff;border-radius:var(--radius);padding:1.8rem;max-width:40rem;box-shadow:var(--shadow);color:var(--ink)}
.quote label{display:block;font-weight:600;font-size:.95rem;margin:0 0 .35rem;color:var(--ink)}
.quote input,.quote select,.quote textarea{width:100%;font:1rem var(--bodyFont);padding:.75rem .85rem;border:1px solid #CBD5C7;border-radius:.6rem;background:#fff;margin:0 0 1rem;color:var(--ink)}
.quote textarea{min-height:6rem}.quote .row{display:grid;gap:0 1rem}
.quote .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.quote .hint{font-size:.85rem;color:var(--dim);margin:-.6rem 0 1rem}
.cta-band{background:var(--forest);color:#fff;text-align:center}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3.6vw,2.5rem);margin:0 auto .7rem;max-width:22ch}.cta-band p{margin:0 auto 1.4rem;color:#C6D4C2;max-width:36rem}
.cta-band .cs-button-solid{background:#fff;color:var(--forest)}.cta-band .cs-button-solid:hover{background:var(--sage)}
footer{background:#15231A;color:#B3C1B0;padding:3rem 1.25rem 2.25rem;font-size:.92rem}
footer .cs-container{display:grid;gap:1.75rem}
footer h3{color:#fff;font-family:var(--bodyFont);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .7rem}
footer a{color:#E4ECDF}footer ul{list-style:none;margin:0;padding:0}footer li{margin:0 0 .4rem}
footer .demo{grid-column:1/-1;border-top:1px solid #2C3D31;padding-top:1.1rem;color:#8FA08C;font-size:.85rem}
.town-hero{padding:clamp(3rem,7vw,5rem) 1.25rem 1.5rem}.town-hero h1{font-size:clamp(2rem,4.8vw,3.3rem);max-width:20ch;margin:0 0 1rem}
.town-hero .ba{margin-top:2.5rem;max-width:var(--contentWidth)}
.proof .cs-title,.proof .cs-text{margin-left:auto;margin-right:auto;text-align:center}.proof .cs-topper{text-align:center}.proof .cs-text{margin-bottom:2rem}
.two-col{columns:2;column-gap:2.5rem}.two-col p{break-inside:avoid;margin-top:0}
.work-story ol{padding-left:1.2rem}.work-story li{margin:0 0 .7rem}
.badge-note{font-size:.9rem;color:var(--dim)}
@media (min-width:48rem){.cs-card-group{grid-template-columns:repeat(3,1fr)}.split{grid-template-columns:1fr 1fr}.steps{grid-template-columns:repeat(3,1fr);gap:2.5rem}.owner{grid-template-columns:minmax(0,24rem) 1fr;gap:3.5rem}.quote .row{grid-template-columns:1fr 1fr}footer .cs-container{grid-template-columns:2fr 1fr 1fr 1fr}.cal{grid-template-columns:1fr 1fr}}
@media (min-width:64rem){.cal{grid-template-columns:repeat(3,1fr)}}
@media (max-width:47.99rem){body{padding-bottom:3.6rem}.mbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:center;align-items:center;gap:.6rem;background:var(--forest);color:#fff;text-decoration:none;font-weight:600;padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(0,0,0,.18)}.mbar span{background:var(--green);padding:.35rem .7rem;border-radius:2rem;font-size:.85rem}.two-col{columns:1}.price thead{display:none}.price tr{display:block;padding:.5rem 0}.price td{display:block;border:0;padding:.2rem 1rem}.price td:first-child{font-weight:700;padding-top:.8rem;color:var(--ink)}.price td:last-child{padding-bottom:.9rem;border-bottom:1px solid var(--line);color:var(--green-dark)}.price tr:last-child td:last-child{border:0}.owner .ph{max-width:18rem;margin:0 auto 2.4rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ba{animation:none}.map .mt.on .ring{animation:none;opacity:.6;transform:scale(2)}.cs-button-solid:hover{transform:none}}

.zip label{display:block;font-family:var(--headerFont);font-weight:600;font-size:1.2rem;margin:0 0 .6rem;color:var(--ink)}
.zip .in{display:flex;gap:.55rem}
.zip input{flex:1;min-width:0;font:1.05rem var(--bodyFont);padding:.75rem .9rem;border:1px solid #CBD5C7;border-radius:.6rem;letter-spacing:.06em}
.zip button{background:var(--ink);color:#fff;border:0;border-radius:.6rem;padding:.75rem 1.15rem;font:600 .95rem var(--bodyFont);cursor:pointer}
.zip button:hover{background:var(--forest)}
.zip .out{margin:.75rem 0 0;font-size:.95rem;min-height:1.2em}
.zip .out.yes{color:var(--green-dark);font-weight:600}.zip .out.no{color:var(--dim)}
.est{background:#fff;border-radius:var(--radius);padding:1.7rem 1.8rem;max-width:44rem;box-shadow:var(--shadow)}
.est h2{font-size:1.5rem;margin:0 0 .35rem}.est p{margin:0 0 1.1rem;color:var(--dim)}
.est label{display:block;font-weight:600;font-size:.95rem;margin:0 0 .35rem}
.est select,.est input{width:100%;font:1rem var(--bodyFont);padding:.7rem .85rem;border:1px solid #CBD5C7;border-radius:.6rem;background:#fff;margin:0 0 .95rem;color:var(--ink)}
.est .row{display:grid;gap:0 1rem}
.est .num{font-family:var(--headerFont);font-weight:600;font-size:clamp(1.7rem,4vw,2.4rem);color:var(--green-dark);margin:.2rem 0 0;line-height:1.1}
.est .fine{font-size:.85rem;color:var(--dim);margin:.4rem 0 0}
@media (min-width:48rem){.est .row{grid-template-columns:1fr 1fr}}

@media print{.print-head{display:block;font-weight:700;border-bottom:1px solid #000;padding:0 0 .4rem;margin:0 0 .8rem}#cs-navigation,footer,.mbar,.skip,.cta-band,.est,.cs-button-solid,.cs-button-ghost,.hero-cards,.ba,.quote,.dark{display:none!important}body{background:#fff;color:#000;font-size:11pt;padding:0}section{padding:.6rem 0;break-inside:avoid}.town-hero{padding:0 0 .5rem}.hero-photo{min-height:0;padding:0;color:#000}.hero-photo picture,.hero-photo::before{display:none}.hero-photo h1,.hero-photo .cs-text,.hero-photo .cs-topper,.hero-photo .cs-reply{color:#000;text-shadow:none}.price{border:1px solid #999;box-shadow:none}.price th{background:#eee;color:#000}.price td,.price th{border-bottom:1px solid #ccc;padding:.4rem .5rem}a{color:#000;text-decoration:none}.cs-title{font-size:1.5rem}h1{font-size:1.8rem}.cal li,.cs-item{border:1px solid #ccc;box-shadow:none;background:#fff}}
