/* Boston Handy: stone, painted wood and pine. Shared across all routes. */
:root{--bg:#dce0d6;--ink:#20382f;--muted:#40564a;--surface:#cdd5c7;--sage:#c4cfbd;--accent:#c6d690;--radius:3px}
body{background:var(--bg)}
.site-header{background:var(--ink);color:var(--bg)}
.brand-dot{color:var(--accent)}
.language select{color:inherit}.language select option{background:var(--bg);color:var(--ink)}
.site-header a:focus-visible,.site-header button:focus-visible,.site-header select:focus-visible{outline-color:var(--accent)}
.availability-strip{background:var(--surface);color:var(--ink)}
.availability-inner{display:flex;justify-content:space-between;align-items:center;gap:8px 30px;padding-block:13px;font-size:15px;line-height:1.45}
.availability-inner p:first-child{font-weight:650}.availability-inner p:last-child{font-size:14px;text-align:right}
.detail-prepare .same-day-note{font-size:15px;line-height:1.6;margin-top:22px;color:var(--muted)}
.hero-photo{margin-top:35px}.hero-photo>img{height:510px}
.hero-specials{display:flex;flex-wrap:wrap;gap:0 24px;max-width:440px}.hero-copy .hero-specials .text-link{font-size:14px}
.offer-layout{grid-template-columns:.9fr 1.15fr;gap:8%}.offer-image img{height:415px}
.general-offer{display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center;margin-top:90px}
.general-photo img{height:620px;object-position:50% 50%}.general-photo figcaption{margin-top:16px;color:var(--muted);font-size:16px}
.general-copy h2{font-size:clamp(44px,4.6vw,68px)}
.special-rate{display:flex;align-items:baseline;gap:14px;margin-top:25px;flex-wrap:wrap;line-height:1.1}
.special-rate strong{font:400 76px/.95 var(--display);letter-spacing:-.04em}.special-rate span{font-size:18px}
.general-copy>p:not(.special-rate){margin-top:26px;max-width:480px;font-size:17px}
.mounting-list{list-style:none;display:grid;gap:10px;padding:0;margin:24px 0 28px}
.mounting-list li{padding-left:23px;position:relative}.mounting-list li::before{content:'+';position:absolute;left:0;font-weight:650}
.general-copy>.text-link{display:block;width:fit-content;margin-top:21px}
.general-copy>.offer-note{font-size:14px!important;color:var(--muted)}
.project-gallery{display:grid;grid-template-columns:1.15fr 1fr;gap:65px 6%;align-items:start}
.project-example{display:block;min-width:0}.project-example:nth-child(even){margin-top:72px}
.project-example>img{height:350px;object-fit:cover;transition:filter .25s}
.project-example:nth-child(even)>img{height:300px}
.project-example:hover>img{filter:brightness(.94)}
.project-caption{padding-top:20px}.project-caption h3{font-family:var(--display);font-size:34px;font-weight:400;line-height:1.08}
.project-caption p{max-width:500px;margin-top:12px;font-size:15px;color:var(--muted)}
.project-example:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.gallery-action{margin-top:50px}
.direct-offer{background:var(--surface);padding-block:64px;gap:8%}
.direct-offer .direct-lead{margin-top:28px;font-size:18px;max-width:410px}
.rate-comparison{display:flex;gap:44px;margin-bottom:28px;align-items:end}
.rate-comparison>div{flex:1;display:grid;gap:12px;min-width:0}.rate-comparison>div>span{font-size:16px}
.rate-comparison strong{display:block;font:400 68px/.95 var(--display);letter-spacing:-.04em;white-space:nowrap}
.rate-comparison strong span{font:400 18px/1 var(--font);letter-spacing:0;margin-left:5px}
.rate-comparison>div+div{color:var(--muted)}
.comparison-source{margin-top:18px;max-width:100%;font-size:14px}
.directory-list{display:grid;grid-template-columns:1fr;gap:50px}
.directory-item{display:grid;grid-template-columns:230px 1fr;gap:34px;padding:0;background:none;border-radius:0;transition:none}
.directory-item:hover{background:none;transform:none}
.directory-item:nth-child(even){margin-top:0}
.directory-photo{overflow:hidden;align-self:start}.directory-photo img{height:205px;transition:transform .5s var(--ease)}
.directory-item:hover img{transform:scale(1.025)}
.directory-copy{padding:0}.directory-item h2{font:400 34px/1.08 var(--display);letter-spacing:-.02em}
.directory-item p{margin-top:13px;max-width:820px}.directory-item span{font-size:15px;margin-top:18px}
.directory-tasks{display:grid;grid-template-columns:1fr 1fr;gap:5px 28px;margin:18px 0 0;padding-left:18px;font-size:15px;max-width:800px}
.directory-item:hover .directory-copy>span{text-decoration-thickness:2px}
.service-price{font-size:17px;font-weight:650;margin-top:16px}
.directory-item .service-price{font-size:17px;margin-top:16px;text-decoration:none;display:block}
.service-price .standard-price{display:block;font-size:inherit;margin:0;text-decoration:none}
.service-price .service-special{display:block;font-size:14px;font-weight:400;line-height:1.4;margin-top:7px;text-decoration:none}
.service-item .service-rate{font-weight:650;color:var(--ink)}
.detail-heading .service-price{font-size:24px;margin-top:24px}
.detail-image{overflow:hidden}.detail-image img{height:490px;object-fit:cover}
.detail-tasks,.detail-prepare{padding:32px;background:var(--surface)}
.detail-tasks h2,.detail-prepare h2{font-size:36px}.detail-tasks ul{margin-bottom:0}
.detail-prepare{background:var(--sage)}
.inner-page .service-detail{gap:50px 6%}.inner-page main>.section:first-child{margin-top:60px}
.faq{align-items:start}.inner-page .faq{padding-bottom:45px}.faq-list summary{font-weight:600}
.service-image img{height:480px}.service-image{position:static}
.process-steps svg{color:var(--muted)}
.footer{background:var(--ink);color:var(--bg);max-width:none;margin-top:85px}
.footer .footer-brand{color:var(--bg)}.footer-top p,.footer-bottom,.footer-disclosure{color:var(--bg)}
.footer a:focus-visible,.footer button:focus-visible{outline-color:var(--accent)}
.footer .back-top:hover,.footer a:hover{color:var(--accent)}
.contact+.footer{margin-top:0}.footer-disclosure a{text-decoration:underline;text-underline-offset:3px}
.footer-disclosure ul{padding-left:20px}.footer-disclosure li{margin-top:8px}
.selected-project{background:var(--ink);color:var(--bg);padding:15px 18px;margin-bottom:25px;font-size:17px}
.selected-project button{color:inherit;text-decoration:underline;font-size:14px;margin-left:18px;padding:5px}
.selected-project button:focus-visible{outline-color:var(--accent)}
.inner-page .area a:focus-visible{outline-color:var(--accent)}
.transformation{margin-bottom:90px;max-width:1250px}.transformation .section-intro{margin-bottom:35px}
.transformation h2{font-size:clamp(38px,4.5vw,60px)}
.comparison-image img{height:auto;width:100%;object-fit:contain}
.comparison-labels{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:20px;font-size:17px;font-weight:600}
.comparison-labels strong{display:block;font-size:18px}.comparison-labels span{display:block;font-weight:400;margin-top:7px}
@media(max-width:1000px){
 .availability-inner{align-items:flex-start;gap:10px 24px}.availability-inner p{flex:1;min-width:0}
 .hero-photo>img{height:430px}.hero-copy>p{font-size:16px}.hero-specials{display:block}
 .general-offer{gap:6%;align-items:start}.general-photo img{height:560px}
 .general-copy h2{font-size:46px}.special-rate strong{font-size:64px}
 .project-example>img{height:285px}.project-example:nth-child(even)>img{height:250px}
 .directory-item{grid-template-columns:180px 1fr;gap:26px}.directory-photo img{height:190px}.directory-item h2{font-size:30px}
 .detail-image img{height:420px}.detail-tasks,.detail-prepare{padding:26px}
 .rate-comparison{gap:20px}.rate-comparison strong{font-size:54px}.direct-offer h2{font-size:49px}
 .rate-comparison strong span{font-size:16px}.direct-offer{padding-block:48px}
}
@media(max-width:650px){
 .availability-inner{display:block;padding-block:12px;font-size:14px}.availability-inner p:last-child{text-align:left;font-size:13px;margin-top:5px}
 .hero-photo{margin-top:30px}.hero-photo>img{height:320px}.hero-specials{display:block}
 .hero-copy .hero-specials .text-link{margin-top:16px}
 .offer-image img{height:265px}.offer-layout h2{font-size:46px}
 .general-offer{display:flex;flex-direction:column-reverse;gap:32px;margin-top:65px}
 .general-copy h2{font-size:43px}.general-copy>p:not(.special-rate){font-size:16px}
 .general-photo{width:100%}.general-photo img{height:300px}.special-rate strong{font-size:65px}
 .special-rate span{font-size:16px}.mounting-list{font-size:15px}
 .project-gallery{grid-template-columns:1fr;gap:38px}.project-example:nth-child(even){margin-top:0;width:88%;justify-self:end}
 .project-example>img,.project-example:nth-child(even)>img{height:255px}
 .project-caption h3{font-size:30px}.project-caption p{font-size:15px}.gallery-action{margin-top:35px}
 .direct-offer{padding-block:42px}.direct-offer h2{font-size:39px}.direct-offer .direct-lead{font-size:16px;margin-top:22px}
 .rate-comparison{gap:22px;margin-top:30px}.rate-comparison strong{font-size:62px}.rate-comparison>div>span{font-size:15px}
 .directory-list{gap:44px}.directory-item{grid-template-columns:100px 1fr;gap:0 18px}.directory-item:nth-child(even){margin-top:0}
 .directory-photo{grid-column:1;grid-row:1/3}.directory-photo img{height:105px;width:100px}.directory-copy{display:contents;padding:0}.directory-item h2{font-size:28px;grid-column:2;grid-row:1;align-self:end}
 .directory-copy>p{grid-column:1/-1;grid-row:3;margin-top:20px}.directory-tasks{grid-column:1/-1;grid-row:4;grid-template-columns:1fr;margin-top:15px;gap:5px}
 .directory-copy>.service-price{grid-column:2;grid-row:2;align-self:start;font-size:15px;margin-top:10px}.directory-copy>span:not(.service-price){grid-column:1/-1;grid-row:5}
 .transformation{margin-bottom:60px}.comparison-labels{gap:18px;font-size:15px;margin-top:15px}
 .inner-page main>.section:first-child{margin-top:35px}.detail-image img{height:300px}
 .detail-tasks,.detail-prepare{padding:25px;margin-top:30px}.detail-tasks h2,.detail-prepare h2{font-size:31px}
 .service-image img{height:300px}.footer{margin-top:60px}.selected-project{font-size:16px}
 .section-intro>p{max-width:100%}.inner-page .detail-heading h1{font-size:40px}
 html[lang=fr] .direct-offer h2{font-size:36px}
}
@media(prefers-reduced-motion:reduce){.directory-photo img,.project-example>img{transition:none}}

/* Distinct service and appointment links keep prices keyboard-accessible. */
.price-link{text-decoration:underline!important;text-decoration-thickness:1px!important;text-underline-offset:5px}.price-link:hover{text-decoration-thickness:2px!important}.offer-price-link:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}.directory-more{display:inline-block;margin-top:18px}.directory-item h2 a:hover{text-decoration:underline;text-underline-offset:5px}.special-rate.price-link{width:fit-content}.service-price .service-special{width:fit-content}.service-price .standard-price{width:fit-content}.selected-project .price-link{color:inherit}
@media(max-width:650px){.directory-copy>.directory-more{grid-column:1/-1;grid-row:5}.directory-item .service-price{margin-top:10px}}

/* Task discovery uses the existing pine, stone and typography. */
.task-finder{margin-top:55px}.finder-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:center}.finder-layout h2{font-size:clamp(34px,3.3vw,48px)}.finder-input-row{display:flex;gap:12px}.finder-input-row input,.directory-tools input,.directory-tools select{min-width:0;width:100%;min-height:54px;padding:12px 15px;border:1px solid var(--muted);border-radius:var(--radius);background:transparent;color:var(--ink);font:inherit}.finder-input-row .button{white-space:nowrap}.finder-shortcuts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:15px;font-size:14px}.finder-shortcuts a{text-decoration:underline;text-underline-offset:5px}.directory-tools{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:14px 24px;align-items:end;margin-bottom:35px}.directory-tools label{display:block;font-size:14px;font-weight:600}.directory-tools input,.directory-tools select{margin-top:9px}.directory-tools select option{background:var(--bg)}.directory-tools>.text-link{min-height:54px}.directory-tools>p{grid-column:1/-1;font-size:14px;color:var(--muted)}.footer-bottom>div>a{font-size:14px;margin-right:20px}
@media(max-width:700px){.finder-layout{grid-template-columns:1fr;gap:24px}.task-finder{margin-top:40px}.finder-input-row{flex-direction:column;gap:12px}.finder-input-row .button{align-self:start}.directory-tools{grid-template-columns:1fr;gap:18px}.directory-tools>.text-link{width:fit-content;min-height:38px;padding:0}.finder-shortcuts{gap:14px 20px}.directory-tools input,.directory-tools select,.finder-input-row input{font-size:16px}.footer-bottom>div>a{display:inline-block;padding:8px 0}}

/* Shared brand refinement: Boston roofline with an H built into the joinery. */
.brand{gap:12px;letter-spacing:-.7px}.brand .brand-mark{width:44px;height:44px;stroke-width:2;flex:none}.brand-roof{stroke:var(--accent)}.brand-wordmark{display:grid;gap:5px;font-size:23px;line-height:1}.brand-wordmark small{font:500 10px/1.2 var(--font);letter-spacing:.08em;color:var(--sage)}.footer-brand{display:inline-flex;align-items:center;gap:12px}.footer-brand .brand-mark{width:38px;height:38px;stroke-width:2}.footer-brand .brand-roof{stroke:var(--muted)}
.button{border-radius:5px;min-height:54px}.button:hover{transform:none}.button.primary:focus-visible{outline-offset:4px}.menu-button{min-width:48px}.menu-button:hover{color:var(--accent)}.language select{border-radius:4px}.language select:hover{background:rgba(255,255,255,.06)}
.directory-item{padding-block:0 38px;border-bottom:1px solid #20382f26}.directory-photo{border-radius:5px}.directory-item .directory-more{font-weight:650}.directory-item .service-price{line-height:1.4}.detail-image,.project-example>img,.offer-image{border-radius:5px}.detail-tasks,.detail-prepare{border-radius:5px}.detail-heading>.button{min-width:185px}.detail-heading .service-price{line-height:1.5}.detail-heading>p{max-width:51ch}.faq-list summary{padding-right:35px}.contact-methods a{border:1px solid #20382f22}.contact-methods a:hover{transform:none}.booking-calendar,.booking-summary,.booking-preview,.manage-request{border-radius:6px}.booking-section input,.booking-section select,.booking-section textarea{border:1px solid #20382f35}.booking-section input:focus,.booking-section select:focus,.booking-section textarea:focus{border-color:var(--ink)}.booking-day[aria-pressed=true]{border-radius:4px}.booking-day:focus-visible{outline-offset:0}
.visit-plan{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-block:58px;background:var(--surface)}.visit-plan h2{font-size:clamp(38px,4.3vw,60px)}.visit-plan>div>p{margin-top:24px;max-width:48ch}.visit-plan .button{margin-top:27px}.visit-plan-notes h3{font-size:22px}.visit-plan-notes ul{padding-left:20px;margin:23px 0 0;display:grid;gap:14px}.visit-plan-notes>p{font-size:14px;color:var(--muted)}.mobile-visit-bar{display:none}
@media(max-width:700px){.brand{gap:7px}.brand .brand-mark{width:34px;height:34px}.brand-wordmark{font-size:18px;gap:5px;letter-spacing:-.6px}.brand-wordmark small{font-size:9px;letter-spacing:.04em}.visit-plan{grid-template-columns:1fr;gap:35px;padding-block:36px}.visit-plan h2{font-size:40px}.visit-plan>div>p{font-size:16px;margin-top:20px}.visit-plan-notes ul{font-size:15px}.directory-item{padding:0 0 30px}.mobile-visit-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:24;gap:18px;align-items:center;justify-content:space-between;background:var(--bg);padding:10px 20px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -1px 0 #20382f26}.mobile-visit-bar>a:first-child{font-size:14px;font-weight:650;padding:12px 4px}.mobile-visit-bar .button{font-size:14px;min-height:46px;padding:11px 20px}.footer{padding-bottom:105px}body[data-page=booking] .mobile-visit-bar,body[data-page=request-status] .mobile-visit-bar,body[data-page=request-manager] .mobile-visit-bar{display:none}body[data-page=booking] .footer,body[data-page=request-status] .footer,body[data-page=request-manager] .footer{padding-bottom:25px}}
@media(prefers-reduced-motion:reduce){.button,.contact-methods a{transition:none}}
body:has(#site-menu:not([hidden])) .mobile-visit-bar{display:none}

/* Light catches the roofline; the wordmark remains clear at small sizes. */
.brand .brand-mark{color:#eff6db;filter:drop-shadow(0 0 7px #c6d69066)}.brand .brand-roof{stroke:#e2f5ab;stroke-width:2.5}.brand-wordmark small{color:#dce9b7;font-size:11px;letter-spacing:.16em}.brand:hover .brand-mark{filter:drop-shadow(0 0 10px #c6d69099)}.footer-brand{font-size:24px}@media(max-width:700px){.brand-wordmark small{font-size:9px}.footer-brand{font-size:20px}}
