/* Layout refinement shared by public pages, booking, and the service desk. */
:root { --dock-space: 108px; --section-space: clamp(52px, 6vw, 88px); }
html { background: var(--deep); scroll-padding-bottom: 100px; }
body { padding-bottom: 0; min-width: 0; }
figure { margin: 0; }
fieldset { min-inline-size: 0; }
img, video, svg { max-width: 100%; }
input, select, textarea { min-width: 0; max-width: 100%; }
textarea { resize: vertical; }
button, .button, a { overflow-wrap: anywhere; }
.container { width: min(1320px, calc(100% - 64px)); }
.section { padding-block: var(--section-space); }
.section-heading { gap: 32px; }
.section-heading > * { min-width: 0; }
.section-heading > p { flex: 0 1 420px; }
.content-split, .area-grid, .page-hero-grid, .town-hero-grid,
.season-grid, .homeowner-grid { gap: clamp(28px, 5vw, 64px); }
.container > *, .content-split > *, .area-grid > *, .page-hero-grid > *,
.town-hero-grid > *, .season-grid > *, .homeowner-grid > *, .values-grid > *,
.footer-top > *, .booking-grid > *, .field-row > *, .form-progress > *,
.notification-item > *, .request-tile > *, .admin-filters > *, .article-body > * { min-width: 0; }
.values-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.article-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.area-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.area-card, .article-card, .service-card { height: 100%; }
.service-card h3 { line-height: 1.25; }
.service-card p { max-width: none; }
.service-book { min-height: 54px; }
.photo-services .service-card { border: 1px solid #d7e4df; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; line-height: 1.6; }
.related-links a { min-height: 52px; }
.article-body { grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: 48px; }
.article-section, .legal-content { overflow-wrap: anywhere; }
.faq-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr); gap: 56px; }
.faq-list summary { align-items: start; }
.faq-list summary > span { flex: 0 0 24px; text-align: center; padding-top: 4px; }
.button { max-width: 100%; }
.button-row { gap: 16px; }
.button:hover { transform: none; }
.nav-wrap { gap: 20px; }
.desktop-nav { gap: 22px; }
.desktop-nav a { white-space: nowrap; }
.nav-phone > span { font-size: clamp(19px, 1.65vw, 22px); }
.nav-cta { gap: 10px; }
.mobile-nav { overscroll-behavior: contain; }
.footer { padding: 58px 0 var(--dock-space); margin: 0; }
.footer-top { gap: 36px; padding-bottom: 38px; }
.footer-bottom { align-items: center; row-gap: 12px; padding-top: 22px; }
.footer-bottom > div { flex-wrap: wrap; gap: 8px 20px; }
.footer .help-launcher { display: inline-flex; align-items: center; gap: 10px; position: static; border-radius: 8px; padding: 12px; min-height: 48px; height: auto; max-width: 100%; text-align: left; line-height: 1.5; box-shadow: none; }
.footer .help-launcher span { min-width: 0; }
.footer .footer-phone { white-space: normal; line-height: 1.4; }
.footer .button { min-height: 52px; }
.booking-dock { max-width: calc(100% - 32px); right: 16px; bottom: 16px; }
.booking-dock > a { min-width: 0; }
.is-editing .booking-dock { display: none; }
.help-panel { left: auto; right: 16px; bottom: 104px; width: min(420px, calc(100% - 32px)); max-height: calc(100dvh - 128px); }
.help-form { min-width: 0; }
.help-form input { min-width: 0; }
.help-head button, .help-form button { min-width: 44px; min-height: 44px; }
.help-messages { overflow-wrap: anywhere; }

/* One clear choice from the first screen; the form works without JavaScript. */
.hero { min-height: 650px; }
.hero-content.hero-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(340px, .85fr); align-items: center; gap: clamp(36px, 5vw, 76px); padding-block: 66px; }
.hero-copy { min-width: 0; }
.hero h1 { font-size: clamp(48px, 4.4vw, 66px); max-width: 700px; line-height: 1.13; }
.hero .eyebrow { font-size: 14px; letter-spacing: .09em; margin-bottom: 20px; }
.hero p { max-width: 610px; font-size: 21px; margin: 24px 0 30px; line-height: 1.7; }
.hero-call { width: fit-content; min-height: 52px; }
.hero-shade { background: linear-gradient(90deg, #092718ed, #092718a3 53%, #09271847); }
.quick-book-card { color: var(--green); background: #fff; border: 1px solid #ffffffbd; box-shadow: 0 18px 60px #061c1740; border-radius: 24px 8px 24px 8px; padding: 30px; }
.quick-book-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.quick-book-heading .art-icon { width: 57px; height: 57px; }
.quick-book-heading span { font-size: 12px; letter-spacing: .07em; color: var(--muted); }
.quick-book-heading h2 { font-size: 32px; margin-top: 5px; line-height: 1.15; }
.quick-book-form label { display: block; font-size: 17px; font-weight: 600; margin: 0 0 10px; }
.quick-book-form select { width: 100%; background-color: #f4f9fb; min-height: 56px; font-size: 18px; padding: 14px 36px 14px 14px; border: 1px solid #9fbcb0; border-radius: 8px; }
.quick-book-form .button { width: 100%; margin-top: 14px; justify-content: space-between; min-height: 60px; }
.quick-book-reassurance { display: grid; gap: 8px; margin-top: 20px; font-size: 16px; line-height: 1.5; }
.quick-book-reassurance span { display: flex; gap: 8px; align-items: start; }
.quick-book-reassurance .icon { width: 19px; height: 19px; margin-top: 3px; color: var(--grass); }
.hero .quick-book-pricing { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 16px 0 0; border-top: 1px solid var(--line); padding-top: 14px; }

/* Put the booking itself before support copy on phones and tablets. */
.booking-grid { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 32px 48px; }
.booking-intro { grid-column: 1; grid-row: 1; position: static; }
.booking-intro h1 { font-size: clamp(38px, 4vw, 56px); }
.booking-intro > p { margin-top: 20px; }
.booking-support { grid-column: 1; grid-row: 2; }
.booking-support .contact-person { margin-top: 0; }
.booking-support .booking-expect { padding-top: 25px; margin-top: 25px; }
.booking-support .booking-expect p { font-size: 18px; margin-top: 12px; }
.booking-support > .small { margin-top: 24px; }
.booking-card { grid-column: 2; grid-row: 1 / span 2; padding: clamp(22px, 3vw, 36px); scroll-margin-top: 125px; }
.form-progress { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 8px; margin-bottom: 25px; }
.form-progress > span { white-space: normal; align-items: center; gap: 6px; font-size: 16px; }
.form-progress b { font-size: 16px; }
.form-progress i { width: 12px; min-width: 0; }
fieldset legend { font-size: clamp(25px, 2.7vw, 31px); line-height: 1.3; padding: 0; }
.service-options { grid-template-columns: 1fr; gap: 10px; }
.service-option { min-height: 75px; }
.service-option > span:not(.radio-check) { min-width: 0; }
.service-option:focus-within { outline: 3px solid #1687af; outline-offset: 2px; }
.field-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field-row label { min-width: 0; }
.form-actions { gap: 12px; align-items: stretch; }
.form-actions .button { min-width: 0; }
.form-actions .button.primary { justify-content: center; }
.selection-summary { display: flex; align-items: center; gap: 16px; justify-content: space-between; background: #edf7fa; border: 1px solid #d2e5eb; border-radius: 8px; padding: 14px 16px; margin-bottom: 24px; }
.selection-summary span, .selection-summary strong { display: block; }
.selection-summary span { font-size: 14px; color: var(--muted); }
.selection-summary strong { font-size: 18px; line-height: 1.4; }
.selection-summary button, .draft-note button { background: transparent; text-decoration: underline; text-underline-offset: 4px; min-height: 44px; padding: 8px; font-weight: 600; font-size: 16px; flex-shrink: 0; }
.draft-note { border-left: 3px solid var(--water); background: #f1f9fc; padding: 14px 16px; margin-bottom: 22px; }
.draft-note p { font-size: 16px; line-height: 1.55; }
.photo-options { border: 1px solid var(--line); padding: 14px 16px; border-radius: 8px; margin: 10px 0 22px; }
.photo-options summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 600; }
.photo-options .upload-label { margin: 15px 0 0; }
.upload-label input { width: 100%; font-size: 16px; }
.photo-list { overflow-wrap: anywhere; }
.checkbox-row { align-items: start; }
.checkbox-row input { flex-shrink: 0; margin-top: 4px; }
.date-chips { max-width: 100%; overscroll-behavior-x: contain; }
.slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.slot-option { overflow-wrap: anywhere; }
.request-summary, .portal-detail, .request-tile, .payment-card, .admin-request { overflow-wrap: anywhere; }
.portal-lookup form { display: flex; gap: 12px; flex-wrap: wrap; }
.portal-lookup input { flex: 1 1 260px; }
.portal-lookup button { flex: 0 1 auto; }
.admin-filters { flex-wrap: wrap; }
.admin-filters input, .admin-filters select { flex: 1 1 220px; }
.settings-tabs, .workspace-tabs { flex-wrap: wrap; }
.notification-item { flex-wrap: wrap; }

@media (max-width: 1350px) {
 .desktop-nav { display: none; }
 .menu-toggle { display: block; }
 .nav-phone { margin-left: auto; }
}
@media (max-width: 1050px) {
 .hero-content.hero-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 32px; padding-block: 48px; }
 .hero h1 { font-size: 50px; }
 .hero p { font-size: 19px; }
 .quick-book-card { padding: 24px; }
 .quick-book-heading h2 { font-size: 29px; }
 .quick-book-heading .art-icon { display: none; }
 .footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
 .footer-top > div:first-child, .footer-top > div:last-child { grid-column: 1 / -1; }
 .footer-top > div:last-child { display: flex; flex-wrap: wrap; align-items: center; }
 .footer-top > div:last-child h3 { flex-basis: 100%; }
 .article-body { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
 .article-body aside { position: static; display: flex; flex-wrap: wrap; gap: 12px 20px; border-bottom: 1px solid var(--line); padding-bottom: 25px; }
 .article-body aside > strong { width: 100%; }
 .booking-grid { grid-template-columns: 1fr; max-width: 760px; gap: 26px; }
 .booking-intro, .booking-card, .booking-support { grid-column: 1; grid-row: auto; }
 .booking-intro h1 { font-size: 42px; }
 .booking-intro h1 br { display: none; }
 .booking-support { padding-top: 12px; }
 .booking-support .booking-expect { max-width: 560px; }
 .content-split, .area-grid, .page-hero-grid, .town-hero-grid, .faq-layout { grid-template-columns: 1fr; }
 .page-hero-grid > :last-child, .town-hero-grid > :last-child { width: 100%; max-width: 760px; }
 .service-hero-art { aspect-ratio: 1.9; min-height: 0; }
 .town-hero img { aspect-ratio: 1.8; }
 .faq-layout { gap: 28px; }
}
@media (max-width: 800px) {
 .hero { min-height: 0; }
 .hero-content.hero-layout { grid-template-columns: 1fr; gap: 28px; max-width: 680px; }
 .hero h1 { font-size: clamp(39px, 6vw, 51px); }
 .hero-copy > .hero-call { display: none; }
 .hero p { margin-bottom: 0; }
 .quick-book-heading { margin-bottom: 18px; }
 .quick-book-heading .art-icon { display: block; width: 48px; height: 48px; }
 .quick-book-reassurance { display: flex; flex-wrap: wrap; gap: 8px 20px; }
 .values-grid, .article-grid { grid-template-columns: 1fr; gap: 32px; }
 .article-card { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
 .article-visual { height: 100%; min-height: 220px; }
 .article-card-copy { min-width: 0; }
 .nav-wrap { gap: 14px; }
 .nav-wrap .brand > span { font-size: 29px; }
 .nav-wrap .brand-mark { width: 51px; height: 51px; }
 .nav-phone > span { font-size: 19px; }
 .nav-phone > .icon { display: none; }
 .area-cards { grid-template-columns: 1fr; }
 .section-heading { display: block; }
 .section-heading > p { margin-top: 18px; max-width: 620px; }
 .cta-actions { min-width: 0; }
}
@media (max-width: 640px) {
 :root { --dock-space: calc(104px + env(safe-area-inset-bottom)); }
 html { scroll-padding-top: 140px; }
 body { padding-bottom: 0; }
 .container { width: calc(100% - 36px); }
 .section { padding-block: 52px; }
 .topbar { display: none; }
 .nav-wrap { padding-block: 8px; gap: 4px 10px; }
 .nav-wrap .brand > span { font-size: 28px; }
 .nav-wrap .brand-mark { width: 48px; height: 48px; }
 .nav-wrap .brand small { font-size: 11px; margin-top: 7px; }
 .nav-phone { margin: 0; }
 .nav-phone > .icon { display: inline-block; width: 19px; }
 .nav-phone > span { font-size: 18px; }
 .nav-cta { font-size: 16px; min-height: 44px; padding: 10px 12px; }
 .nav-cta .icon { display: none; }
 .mobile-nav { max-height: calc(100dvh - 128px); padding-bottom: 20px; }
 .mobile-nav a { min-height: 48px; }
 .hero-content.hero-layout { padding-block: 30px; gap: 24px; }
 .hero .eyebrow { font-size: 12px; letter-spacing: .06em; margin-bottom: 15px; }
 .hero h1 { font-size: clamp(36px, 8.6vw, 48px); line-height: 1.12; }
 .hero p { font-size: 18px; line-height: 1.6; margin-top: 17px; }
 .quick-book-card { padding: 20px; border-radius: 18px 6px 18px 6px; }
 .quick-book-heading { display: none; }
 .quick-book-form label { font-size: 17px; }
 .quick-book-form select { min-height: 54px; font-size: 16px; padding-right: 27px; }
 .quick-book-form .button { font-size: 17px; min-height: 56px; padding: 14px 16px; margin-top: 12px; }
 .quick-book-reassurance { font-size: 14px; margin-top: 14px; gap: 7px 14px; }
 .quick-book-reassurance .icon { width: 16px; height: 16px; }
 .hero .quick-book-pricing { font-size: 13px; padding-top: 12px; margin-top: 12px; line-height: 1.5; }
 .outcome-strip a { min-height: 87px; }
 h2, .season-copy h2, .faq-layout h2, .cta-section h2 { font-size: clamp(31px, 8vw, 39px); }
 .photo-services { grid-template-columns: 1fr; }
 .service-card-body { padding: 28px 22px 20px; }
 .article-card { display: flex; }
 .article-visual { min-height: 0; height: 170px; }
 .article-card h3 { font-size: 28px; }
 .values-grid > div { padding-bottom: 22px; border-bottom: 1px solid #d5e4dc; }
 .values-grid > div:last-child { border-bottom: 0; padding-bottom: 0; }
 .season-art { aspect-ratio: 1.25; }
 .season-tag { position: static; border-radius: 0; padding: 16px; background: #fff; }
 .season-art { display: flex; flex-direction: column; aspect-ratio: auto; }
 .season-art picture { position: static; display: block; height: auto; aspect-ratio: 1.5; }
 .season-art picture img { position: static; height: 100%; width: 100%; }
 .homeowner-photo { aspect-ratio: 1.15; }
 .homeowner-photo figcaption { position: static; border-radius: 0; }
 .homeowner-photo { display: flex; flex-direction: column; aspect-ratio: auto; }
 .homeowner-photo picture { position: static; aspect-ratio: 1.2; }
 .homeowner-photo picture img { width: 100%; height: 100%; }
 .homeowner-benefit { align-items: start; }
 .steps li { gap: 18px; }
 .steps-section { padding-block: 52px; }
 .featured-towns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .footer { padding-top: 42px; padding-bottom: var(--dock-space); }
 .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 22px; padding-bottom: 25px; }
 .footer-top > div:first-child, .footer-top > div:last-child { grid-column: 1 / -1; }
 .footer-top > div:last-child { display: block; padding-top: 24px; }
 .footer-top h3 { font-size: 18px; margin-top: 0; }
 .footer-top a:not(.brand):not(.button) { font-size: 16px; min-height: 36px; margin-bottom: 7px; }
 .footer .footer-phone { font-size: clamp(22px, 6vw, 27px)!important; }
 .footer .help-launcher { width: fit-content; }
 .footer .button { width: 100%; justify-content: space-between; }
 .footer-bottom { flex-direction: column; align-items: start; gap: 12px; }
 .footer-bottom > div { gap: 4px 16px; }
 .footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; }
 .booking-dock { left: 0; right: 0; bottom: 0; max-width: 100%; padding: 6px 8px calc(7px + env(safe-area-inset-bottom)); grid-template-columns: minmax(0, 1fr) minmax(0, 1.16fr); }
 .booking-dock > a { min-height: 58px; font-size: 16px; gap: 6px; padding: 10px 6px; }
 .booking-dock .dock-phone { font-size: 16px; }
 .help-panel { left: 12px; right: 12px; width: auto; bottom: calc(84px + env(safe-area-inset-bottom)); max-height: calc(100dvh - 112px - env(safe-area-inset-bottom)); }
 .booking-section { padding: 28px 0 50px; }
 .booking-intro .eyebrow { font-size: 12px; margin-bottom: 12px; }
 .booking-intro h1 { font-size: 35px; }
 .booking-intro > p { font-size: 17px; margin-top: 15px; }
 .booking-card { padding: 24px 18px; scroll-margin-top: 140px; }
 .form-progress { gap: 6px; margin-bottom: 22px; }
 .form-progress > span, .form-progress b { font-size: 14px; }
 .form-progress i { width: 8px; }
 .field-row { grid-template-columns: 1fr; gap: 0; }
 .selection-summary { padding: 12px; gap: 8px; }
 .selection-summary strong { font-size: 17px; }
 .form-actions .button { font-size: 16px; padding: 14px 13px; gap: 8px; min-height: 56px; }
 .form-actions .icon { width: 17px; }
 .service-option { padding: 14px 12px; min-height: 77px; }
 .portal-lookup button, .portal-lookup input { flex-basis: 100%; width: 100%; }
 .portal-detail .button-row, .request-tile .button-row { width: 100%; }
 .portal-detail .button-row .button, .request-tile .button-row .button { flex: 1 1 220px; }
 .payment-card { padding: 22px 18px; }
 .admin-request { padding: 18px; }
 .admin-toolbar, .admin-filters { align-items: stretch; }
 .admin-toolbar > *, .admin-filters > * { flex-basis: 100%; }
 .town-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .directory-cta .button { width: 100%; }
 .demo-toast { top: 132px; max-width: calc(100% - 30px); }
}
@media (max-width: 380px) {
 .container { width: calc(100% - 28px); }
 .nav-wrap .brand > span { font-size: 26px; }
 .nav-wrap .brand-mark { width: 44px; height: 44px; }
 .nav-phone > .icon, .booking-dock .dock-phone > .icon, .booking-dock .dock-book > .icon { display: none; }
 .nav-phone > span { font-size: 17px; }
 .hero h1 { font-size: 36px; }
 .hero .eyebrow { max-width: none; }
 .quick-book-card { padding: 17px; }
 .quick-book-reassurance { display: grid; }
 .quick-book-form .button { font-size: 16px; }
 .booking-dock .dock-phone { font-size: 15px; }
 .booking-dock .dock-book { font-size: 15px; }
 .form-progress > span, .form-progress b { font-size: 13px; gap: 4px; }
 .form-progress { gap: 4px; }
 .service-option > .icon { width: 21px; }
 .featured-towns, .town-list { grid-template-columns: 1fr; }
 .footer-top { gap: 28px 16px; }
}
@media (max-height: 550px) and (max-width: 1000px) {
 .site-header { position: relative; }
 .booking-dock > a { min-height: 44px; }
 .help-panel { bottom: 74px; max-height: calc(100dvh - 86px); }
 .is-editing .site-header { position: relative; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { transition-duration: 0s!important; animation-duration: 0s!important; }
}
@media print {
 html, body { background: white; padding: 0; }
 .booking-dock, .footer, .quick-book-card { display: none!important; }
}
@media (min-width:641px) and (max-width:800px) {
 .topbar{display:none}
 .nav-wrap{display:grid;grid-template-columns:1fr auto;height:auto;padding-block:10px;gap:6px 14px}
 .nav-wrap .brand{grid-row:1;grid-column:1}
 .menu-toggle{grid-row:1;grid-column:2;justify-self:end}
 .nav-phone{grid-row:2;grid-column:1;margin:0}
 .nav-phone small{display:none}
 .nav-cta{grid-row:2;grid-column:2;min-height:44px;padding:10px 16px}
 .mobile-nav{max-height:calc(100dvh - 145px)}
}
@media (max-width:1050px){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Center the public experience; keep reading and form controls easy to scan. */
.hero-content.hero-layout{grid-template-columns:1fr;justify-items:center;gap:26px;padding-block:46px;max-width:1080px;text-align:center}
.hero{min-height:590px}
.hero-copy{width:100%;max-width:900px}
.hero h1{max-width:900px;margin-inline:auto;font-size:clamp(40px,4.4vw,62px)}
.hero .eyebrow,.hero p{margin-left:auto;margin-right:auto}
.hero p{max-width:690px;margin-bottom:0;font-size:20px}
.hero-copy>.hero-call{display:none}
.hero-shade{background:linear-gradient(90deg,#08291cd9,#08291cbf 50%,#08291cd9)}
.quick-book-card{width:min(820px,100%);padding:24px 30px;border-radius:18px;text-align:center}
.quick-book-heading{display:none}
.quick-book-form{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px 16px;align-items:center}
.quick-book-form label{grid-column:1/-1;text-align:center;margin:0;font-size:18px}
.quick-book-form select{min-height:58px}
.quick-book-form .button{margin:0;min-height:58px;justify-content:center;gap:12px}
.quick-book-reassurance{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;margin-top:16px}
.hero .quick-book-pricing{max-width:720px;margin-inline:auto;padding-top:12px;margin-top:12px}
.section-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;max-width:900px;margin:0 auto 36px}
.section-heading>p{flex:auto;max-width:680px;margin:0}
.page-hero{text-align:center}
.page-hero>.container>p,.page-hero-grid>div>p,.town-hero-grid>div>p{max-width:720px;margin-inline:auto}
.page-hero .button-row,.page-hero-grid .button-row,.town-hero-grid .button-row{justify-content:center}
.page-hero>.container>.button{margin-inline:auto}
.page-hero-grid>div:first-child,.town-hero-grid>div:first-child{text-align:center}
.breadcrumbs{justify-content:center}
.page-hero .town-tags,.town-price{justify-content:center}
.service-card-body{align-items:center;text-align:center}
.service-card-body p{width:100%}
.service-title{align-self:center}
.service-price{margin-inline:auto}
.service-book{width:100%;justify-content:center;gap:12px}
.service-art-badge{left:50%;right:auto;transform:translateX(-50%)}
.all-services-link{text-align:center;margin-top:26px}
.pricing-note{text-align:center;max-width:850px;margin-inline:auto}
.season-copy{text-align:center}
.season-copy .check-list{max-width:540px;margin-inline:auto;text-align:left}
.season-price{justify-content:center;align-items:center}
.season-copy .subtle-link{justify-content:center}
.season-tag{justify-content:center;text-align:center}
.homeowner-copy>h2,.homeowner-copy>.eyebrow,.homeowner-copy>p{text-align:center}
.homeowner-copy>.button{display:flex;width:fit-content;margin-inline:auto}
.homeowner-benefit{max-width:600px;margin-inline:auto}
.steps-section>.container{grid-template-columns:1fr;gap:32px;max-width:930px;text-align:center}
.steps-section .text-link{justify-content:center}
.steps{width:100%;max-width:780px;margin-inline:auto;text-align:left}
.outcome-strip a{justify-content:center}
.outcome-strip a>.icon:last-child{margin-left:0}
.featured-towns>a{justify-content:center}
.featured-towns>a>.icon:last-child{margin-left:0}
.directory-cta{justify-content:center;align-items:center;text-align:center}
.values-grid{text-align:center}
.values-grid>div>.art-icon,.values-grid>div>.icon{margin-inline:auto}
.area-card{text-align:center}
.area-card>.icon{margin-inline:auto}
.area-card .town-tags{justify-content:center}
.content-split>div:first-child{text-align:center}
.content-split>div:first-child>.check-list{text-align:left;max-width:580px;margin-inline:auto}
.faq-layout>div:first-child{text-align:center}
.cta-section>.container{flex-direction:column;align-items:center;text-align:center;gap:28px}
.cta-section h2,.cta-section p{margin-inline:auto}
.cta-actions{align-items:center}
.article-header{text-align:center}
.article-meta{justify-content:center;flex-wrap:wrap}
.article-card-copy{text-align:center;align-items:center}
.article-card .card-link{justify-content:center;gap:12px}
.article-visual>.art-icon{width:84px;height:84px}
.article-visual>span{left:0;right:0;text-align:center;font-size:12px;letter-spacing:.1em}
.article-body,.legal-content{text-align:left}
.booking-intro{text-align:center}
.booking-intro h1,.booking-intro>p{margin-inline:auto}
.booking-support .contact-person{justify-content:center}
.booking-support>.small{text-align:center}
.footer-top{text-align:center}
.footer-top .brand{justify-content:center;margin-inline:auto}
.footer .footer-phone{justify-content:center}
.footer .help-launcher{margin-inline:auto}
.footer-top>div:last-child{justify-content:center}
.footer-bottom{justify-content:center;text-align:center}
.footer-bottom>div{justify-content:center}
.footer .button{justify-content:center}
.holiday-teaser{padding:30px;background:#eef8fc;border:1px solid #cfe4e9;border-radius:16px;margin-top:36px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px}
.holiday-teaser>div{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:760px}
.holiday-teaser .eyebrow{margin-bottom:10px}
.holiday-teaser h3{font-size:27px;margin-bottom:10px}
.holiday-teaser p{font-size:18px}
.holiday-hero{background:linear-gradient(135deg,#edf8fa,#f3f8ef)}
.holiday-mark .art-icon{width:98px;height:98px;margin-bottom:20px}
.holiday-status{font-size:16px!important;margin-top:22px!important;line-height:1.6}
.guide-filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.guide-filters button{min-height:46px;background:#fff;border:1px solid #a8c6b5!important;border-radius:24px;padding:10px 20px;font-size:17px;line-height:1.4}
.guide-filters button[aria-pressed=true]{background:var(--grass);color:white;border-color:var(--grass)!important}
.guide-count{text-align:center;margin-bottom:28px;font-size:17px!important}
.guide-browser[data-filter=winter] .article-card:not([data-topic=winter]),
.guide-browser[data-filter=spring] .article-card:not([data-topic=spring]),
.guide-browser[data-filter=repairs] .article-card:not([data-topic=repairs]){display:none}
.nav-wrap{height:78px}
.nav-wrap .brand-mark{width:51px;height:51px}
.nav-wrap .brand>span{font-size:29px}
.nav-wrap .brand small{font-size:11px;margin-top:8px}
.nav-cta{min-height:48px;font-size:16px;padding:12px 16px}
.nav-phone small{font-size:12px}
.demo-strip{font-size:13px;padding:6px 16px;line-height:1.5}
@media(max-width:1050px){
 .hero-content.hero-layout{padding-block:38px;gap:24px}
 .quick-book-card{width:min(760px,100%)}
 .hero h1{font-size:clamp(40px,5.6vw,58px)}
 .footer-top>div:last-child{align-items:center}
 .booking-intro h1{max-width:700px}
 .booking-intro>p{max-width:600px}
 .service-card h3{font-size:25px}
 .values-grid .text-link{justify-content:center}
}
@media(max-width:800px){
 html{scroll-padding-top:85px}
 .nav-wrap{display:flex;height:68px;padding:0;gap:14px;justify-content:space-between}
 .nav-wrap .brand{gap:7px;flex:0 1 auto}
 .nav-wrap .brand-mark{width:43px;height:43px}
 .nav-wrap .brand>span{font-size:27px}
 .nav-wrap .brand small{font-size:10px;letter-spacing:.22em;margin-top:7px}
 .nav-wrap .nav-cta{display:none}
 .nav-phone{margin-left:auto;gap:6px;min-height:44px}
 .nav-phone>span{font-size:18px}
 .nav-phone small{display:none}
 .nav-phone>.icon{display:block;width:21px;height:21px}
 .menu-toggle{width:44px;height:44px;flex:0 0 44px}
 .mobile-nav{max-height:calc(100dvh - 80px);text-align:center;padding:8px 20px 18px}
 .mobile-nav a{font-size:17px;padding:10px 12px;min-height:44px}
 .mobile-nav .mobile-menu-phone{justify-content:center;font-size:22px!important}
 .mobile-nav .button{font-size:17px;min-height:48px;margin-top:5px}
 .hero{min-height:0}
 .hero-content.hero-layout{max-width:720px}
 .article-card{grid-template-columns:1fr;display:flex}
 .article-visual{height:160px;min-height:0}
 .footer-top>div:last-child{display:block}
 .footer-top>div:last-child>*{margin-bottom:12px!important}
}
@media(max-width:640px){
 .hero-content.hero-layout{padding-block:28px;gap:22px}
 .hero h1{font-size:clamp(34px,8.5vw,46px);line-height:1.13}
 .hero .eyebrow{font-size:12px;max-width:100%;margin-bottom:14px}
 .hero p{font-size:18px;line-height:1.6;margin-top:17px}
 .quick-book-card{padding:19px;border-radius:14px}
 .quick-book-form{grid-template-columns:1fr;gap:11px}
 .quick-book-form label{font-size:16px;line-height:1.4}
 .quick-book-form select{min-height:52px;font-size:17px}
 .quick-book-form .button{min-height:54px;font-size:17px}
 .quick-book-reassurance{gap:6px 14px;margin-top:13px;font-size:13px}
 .hero .quick-book-pricing{font-size:12px;line-height:1.5;padding-top:10px;margin-top:10px}
 .section-heading{gap:16px;margin-bottom:28px}
 .section-heading>p{font-size:18px}
 .page-hero .button-row{flex-direction:column;align-items:center}
 .page-hero .button-row .button{width:100%;max-width:380px}
 .page-hero .text-link{justify-content:center}
 .service-book,.cta-actions .button,.footer .button{justify-content:center}
 .service-card h3{font-size:26px}
 .directory-cta{align-items:center}
 .footer-bottom{align-items:center}
 .footer-bottom>div{gap:4px 16px}
 .booking-card{scroll-margin-top:84px}
 #booking-form{scroll-margin-top:84px}
 .demo-toast{top:82px}
 .holiday-teaser{padding:24px 20px}
 .holiday-teaser h3{font-size:24px}
 .holiday-teaser .button{width:100%;font-size:17px}
 .guide-filters{gap:8px}
 .guide-filters button{font-size:16px;padding:10px 15px}
 .guide-count{font-size:16px!important}
 .holiday-mark .art-icon{width:76px;height:76px}
}
@media(max-width:480px){
 .nav-wrap{height:62px;gap:9px}
 .nav-wrap .brand-mark{width:38px;height:38px}
 .nav-wrap .brand>span{font-size:25px}
 .nav-wrap .brand small{font-size:9px;margin-top:6px}
 .nav-phone{width:44px;height:44px;justify-content:center;flex:0 0 44px}
 .nav-phone>span{display:none!important}
 .nav-phone>.icon{display:block!important;width:23px;height:23px}
 .nav-wrap .menu-toggle{width:42px;height:42px;flex-basis:42px}
 .quick-book-reassurance{display:flex}
 .demo-strip{font-size:12px;padding:5px 10px}
 .demo-strip a{margin-left:5px}
}

/* Water, winter and neighborhood imagery: decorative layers keep labels readable. */
.button.cta-water,.service-book.cta-water,.booking-dock .dock-book.cta-water{background-color:#08628a;background-image:url('/images/water-pattern.svg'),linear-gradient(125deg,#075774,#08759e);color:#fff;border-color:#075774;box-shadow:0 5px 14px #06496b1a}
.button.cta-winter,.service-book.cta-winter{background-color:#c9eafb;background-image:url('/images/snow-pattern.svg'),linear-gradient(115deg,#e8f7ff,#b7e0f7);color:#123c59;border:1px solid #83bcd8;box-shadow:0 5px 14px #15516a15}
.button.cta-water:hover,.service-book.cta-water:hover,.booking-dock .dock-book.cta-water:hover{background-color:#064f70;filter:brightness(.94);color:#fff}
.button.cta-winter:hover,.service-book.cta-winter:hover{filter:brightness(.96);color:#123c59}
.service-book[class*="cta-"]{padding:14px 16px;border-radius:10px;text-decoration:none;min-height:54px;justify-content:center;gap:10px}
.town-photo-card{position:relative;isolation:isolate;overflow:hidden;background:#214f49!important;color:#fff!important;border:0!important;box-shadow:0 4px 13px #143f3014;text-shadow:0 1px 3px #071e32b3;transition:box-shadow .2s,transform .2s}
.town-photo-card::before,.photo-area-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#062c3655,#062d32d9)}
.town-photo-card>.context-image,.photo-area-card>.context-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .35s}
.featured-towns>.town-photo-card{min-height:150px;padding:24px 18px;align-items:center;justify-content:center;gap:10px;font-size:20px;line-height:1.35;text-align:center;border-radius:14px}
.town-photo-card>.icon{color:#fff!important;flex-shrink:0}
.town-photo-card>span{min-width:0;overflow-wrap:break-word}
.featured-towns>.town-photo-card>.icon:last-child{width:19px;height:19px}
.town-entry.town-photo-card{min-height:86px;padding:16px 18px;gap:10px;border-radius:10px;font-size:17px;line-height:1.4}
.town-photo-card:hover{box-shadow:0 9px 22px #143f3033;transform:translateY(-2px)}
.town-photo-card:hover>.context-image{transform:scale(1.045)}
.photo-area-card{position:relative;isolation:isolate;overflow:hidden;background:#173e36!important;color:#fff!important;border:0!important;border-radius:18px;padding:32px}
.photo-area-card::before{background:linear-gradient(135deg,#072f39d1,#07352dd9)}
.photo-area-card h2,.photo-area-card p,.photo-area-card .card-link,.photo-area-card>.icon{color:#fff!important}
.photo-area-card .town-tags span{background:#ffffff1a;border:1px solid #ffffff55;color:white}
.article-visual{isolation:isolate;position:relative;overflow:hidden}
.article-visual>.context-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.article-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#12383518,#092c2e9c);z-index:-1}
.article-visual>span{color:#fff!important;font-weight:700;text-shadow:0 1px 3px #0b2b37;bottom:15px}
.article-visual>.art-icon{width:70px;height:70px;filter:drop-shadow(0 3px 9px #072d3a30)}
.community-benefits{padding:26px 0;background:#f1f8f3;border-bottom:1px solid #d7e7dc}
.community-benefits>.container{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.community-benefits>.container>div{display:flex;align-items:center;justify-content:center;gap:14px;text-align:left}
.community-benefits .art-icon{width:55px;height:55px;flex-shrink:0}
.community-benefits span{font-size:16px;line-height:1.5}
.community-benefits strong{display:block;font-size:19px;line-height:1.35;margin-bottom:4px;color:#163f31}
.booking-discounts{padding:22px;background:#f1f8f3;border:1px solid #cfe2d4;border-radius:14px;margin-bottom:25px;text-align:center}
.booking-discounts strong,.booking-discounts span{display:block;color:#174d38}
.booking-discounts strong{font-size:23px;margin-bottom:6px}
.booking-discounts p{font-size:16px;margin-top:12px}
/* Native select remains a functional fallback before enhancement. */
.hero{overflow:visible;isolation:isolate}
.hero>picture{overflow:hidden}
.quick-book-card{position:relative;z-index:3}
.service-picker{position:relative;min-width:0;width:100%;text-align:left;z-index:6}
#service-picker-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:70px;padding:8px 12px 8px 8px;border:1px solid #9ebec8;border-radius:10px;background:#f7fcff;color:#153e4a;text-align:left;gap:8px}
#service-picker-current{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
#service-picker-current img,#service-picker-options img{width:50px;height:50px;object-fit:cover;border-radius:7px;flex-shrink:0}
#service-picker-current>span,#service-picker-options button>span:not(.picker-check){min-width:0;flex:1}
#service-picker-current strong,#service-picker-options strong{display:block;font-size:17px;line-height:1.35;font-weight:700}
#service-picker-current small,#service-picker-options small{display:block;font-size:14px;line-height:1.4;margin-top:3px;color:#42616b}
#service-picker-current .art-icon{display:none}
.picker-chevron{font-size:24px;flex-shrink:0}
#service-picker-options{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:100%;max-height:min(460px,56dvh);overflow-y:auto;overscroll-behavior:contain;padding:6px;background:#fff;border:1px solid #a8c7cf;border-radius:13px;box-shadow:0 15px 45px #123c4d3d;z-index:10}
#service-picker-options button{width:100%;display:flex;align-items:center;gap:11px;border:0;padding:10px 8px;text-align:left;border-radius:8px;background:#fff;color:#153e4a;min-height:70px}
#service-picker-options button:hover,#service-picker-options button:focus-visible{background:#e9f5fa;outline:2px solid #14759b;outline-offset:-2px}
#service-picker-options button[aria-selected=true]{background:#eaf6f0}
#service-picker-options .art-icon{width:35px;height:35px;flex-shrink:0}
.picker-check{width:16px;visibility:hidden;color:#206843;font-weight:800}
[aria-selected=true]>.picker-check{visibility:visible}
.next-arrival{display:flex;align-items:center;justify-content:center;gap:13px;padding:14px 16px;margin-top:16px;background:#f0f8fc;border:1px solid #c9e1ed;border-radius:10px;color:#164d65;text-align:left}
.next-arrival>.icon{width:28px;height:28px;flex-shrink:0}
.next-arrival strong,.next-arrival span,.next-arrival small{display:block}
.next-arrival strong{font-size:14px;font-weight:600;line-height:1.4}
.next-arrival span{font-size:19px;font-weight:700;line-height:1.5}
.next-arrival small{font-size:13px;color:#406472;line-height:1.5}
.quick-book-reassurance{font-size:15px}
.hero .quick-book-pricing{font-size:14px;line-height:1.55}
@media(max-width:800px){
 .community-benefits>.container{gap:18px}.community-benefits>.container>div{flex-direction:column;text-align:center;gap:8px}.community-benefits strong{font-size:17px}.community-benefits span{font-size:14px}
 .featured-towns>.town-photo-card{min-height:138px;padding:20px 14px;font-size:19px}
}
@media(max-width:640px){
 .community-benefits{padding:22px 0}.community-benefits>.container{grid-template-columns:1fr;gap:16px;max-width:440px}.community-benefits>.container>div{flex-direction:row;justify-content:flex-start;text-align:left}.community-benefits .art-icon{width:47px;height:47px}.community-benefits strong{font-size:18px;margin-bottom:2px}.community-benefits span{font-size:15px}
 .featured-towns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.featured-towns>.town-photo-card{min-height:126px;font-size:18px;flex-wrap:wrap;align-content:center;gap:7px;padding:18px 10px}.featured-towns>.town-photo-card>span{flex-basis:100%;order:2}.featured-towns>.town-photo-card>.icon:last-child{display:none}
 .town-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.town-entry.town-photo-card{min-height:88px;font-size:16px;padding:12px}.town-entry.town-photo-card>.icon{width:16px}.photo-area-card{padding:27px 22px}
 #service-picker-options{max-height:360px}.quick-book-form .button{min-height:58px}.next-arrival{padding:12px;gap:10px}.next-arrival span{font-size:17px}.next-arrival strong{font-size:14px}.next-arrival small{font-size:13px}.hero .quick-book-pricing{font-size:13px}.quick-book-reassurance{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.town-photo-card,.town-photo-card>.context-image{transition:none}.town-photo-card:hover{transform:none}}
.article-visual::before{display:none}
.article-visual::after{border:0;border-radius:0;transform:none}
body[data-page='/resources'] .page-hero,body[data-page='/service-areas'] .page-hero{background-position:center;background-size:cover;background-repeat:no-repeat;color:white}
body[data-page='/resources'] .page-hero{background-image:linear-gradient(105deg,#0c3829d9,#0b3a37b8),url('/images/garden.webp')}
body[data-page='/service-areas'] .page-hero{background-image:linear-gradient(105deg,#103d4cd9,#0b3a37ba),url('/images/town-harbor.webp')}
body[data-page='/resources'] .page-hero :is(h1,p,.eyebrow),body[data-page='/service-areas'] .page-hero :is(h1,p,.eyebrow){color:white}
.service-picker.opens-up #service-picker-options{top:auto;bottom:calc(100% + 8px)}
#service-picker-toggle[aria-expanded=true] .picker-chevron{transform:rotate(180deg)}
.footer .footer-discounts{font-size:16px;line-height:1.6;margin-top:16px;color:#e0f2e6}

/* Supplied identity: full-color on white, white mark on the dark footer. */
.nav-wrap .brand{gap:11px;min-width:0}
.brand>span,.nav-wrap .brand>span{font-family:var(--sans),Arial,sans-serif;font-weight:800;font-size:29px;letter-spacing:.025em;color:#064f83}
.brand small,.nav-wrap .brand small{font-family:var(--sans),Arial,sans-serif;font-weight:600;font-size:11px;letter-spacing:.31em;color:#245a36;margin-top:9px}
.brand .brand-mark,.nav-wrap .brand-mark{display:block;width:84px;height:52px;object-fit:contain;flex:0 0 84px}
.footer .brand-mark{width:105px;height:65px;filter:brightness(0) invert(1)}
.footer .brand>span,.footer .brand small{color:#fff}
.nav-text{display:flex;align-items:center;gap:6px;color:#075775;font-size:15px;font-weight:700;min-height:44px;padding:8px}
.nav-text .icon{width:20px;height:20px}
.nav-text:hover,.nav-text:focus-visible{color:#043e56;background:#e8f5fb;border-radius:7px}
.hero-contact{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:9px}
.hero .hero-contact p{margin:0;font-size:17px;color:#fff}
.hero-contact>div{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.hero-contact .hero-call,.hero-contact .hero-text{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:18px;font-weight:700;min-height:46px;border:1px solid #ffffff9c;border-radius:8px;padding:10px 17px;margin:0;background:#123d32d9;color:#fff}
.hero-contact .hero-call:hover,.hero-contact .hero-text:hover{background:#fff;color:#104a60}
.hero-contact .hero-contact-number{font-size:25px;font-weight:700;color:#fff;line-height:1.4}
.hero-contact-number:hover{text-decoration:underline;text-underline-offset:5px}
.button.contact-text{background:#fff;color:#075775;border:1px solid #6c9cac;gap:10px}
.button.contact-text:hover,.button.contact-text:focus-visible,.button.contact-text:active{background:#e2f2fa;color:#043e56;border-color:#075775}
.contact-number{display:inline-flex;font-size:23px;font-weight:700;color:#075775;margin-top:22px}
.all-services-link{display:flex;flex-direction:column;align-items:center;gap:22px}
.all-services-link .text-link{justify-content:center}
.faq-layout>div:first-child>.text-link{display:flex;justify-content:center;margin-top:13px}
.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle;stroke-width:1.8}
.button>.icon,.service-book>.icon,.card-link>.icon,.text-link>.icon{width:20px;height:20px;flex:0 0 20px}
.service-photo-link{flex:none;width:100%;aspect-ratio:1.65;overflow:visible}
.service-photo-link>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:16px 16px 0 0}
.service-card-body .service-title{min-height:68px;display:flex;align-items:center;justify-content:center;width:100%}
.service-card-body .service-outcome{min-height:58px;display:flex;align-items:center;justify-content:center}
.service-card-body .service-price{margin-top:auto;padding-top:20px}
.service-card-body .service-book{width:100%;margin-top:18px}
/* Complete foreground/background pairs for every interaction state. */
.button.cta-water,.service-book.cta-water,.booking-dock .dock-book.cta-water{background:#075775 url('/images/water-pattern.svg') repeat;color:#fff;border-color:#075775;filter:none}
.button.cta-water:hover,.button.cta-water:focus-visible,.button.cta-water:active,.service-book.cta-water:hover,.service-book.cta-water:focus-visible,.service-book.cta-water:active,.booking-dock .dock-book.cta-water:hover,.booking-dock .dock-book.cta-water:focus-visible,.booking-dock .dock-book.cta-water:active{background:#06465f url('/images/water-pattern.svg') repeat;color:#fff;border-color:#06465f;filter:none}
.button.cta-winter,.service-book.cta-winter{background:#cceafb url('/images/snow-pattern.svg') repeat;color:#123c59;border-color:#78adc9;filter:none}
.button.cta-winter:hover,.button.cta-winter:focus-visible,.button.cta-winter:active,.service-book.cta-winter:hover,.service-book.cta-winter:focus-visible,.service-book.cta-winter:active{background:#b6def4 url('/images/snow-pattern.svg') repeat;color:#10334b;border-color:#558eac;filter:none}
.button.secondary:not([class*="cta-"]){background:#fff;color:#164c37;border-color:#9ab6a5}
.button.secondary:not([class*="cta-"]):hover,.button.secondary:not([class*="cta-"]):focus-visible{background:#e9f3e8;color:#123d2d;border-color:#638f71}
.button.cream:not([class*="cta-"]),.button.light:not([class*="cta-"]){background:#fff;color:#164c37}
.button.cream:not([class*="cta-"]):hover,.button.light:not([class*="cta-"]):hover{background:#e4f0e2;color:#123d2d}
.button:disabled,.button:disabled:hover,.button:disabled:focus-visible{background:#dce5e8;color:#354e58;border-color:#b3c4cc;filter:none;opacity:1;box-shadow:none;transform:none}
.desktop-nav a:hover,.article-card:hover h3{color:#1b583d}
.town-photo-card::before{background:linear-gradient(180deg,#062c3666,#062d32ed)}
.town-text-card{background:#f4f9f6;color:#173d2d;border:1px solid #d2e2d9;min-height:58px;padding:13px 16px;border-radius:9px}
.town-text-card:hover,.town-text-card:focus-visible{background:#e5f2eb;color:#103b2b;border-color:#67947b}
.guide-filters button:hover,.help-options button:hover{background:#e7f4fa;color:#123f52}
.guide-filters button[aria-pressed=true],.guide-filters button[aria-pressed=true]:hover{background:#245c3d;color:#fff}
input::placeholder,textarea::placeholder{color:#596e65;opacity:1}
.field-hint,.small,.optional,.pricing-note{color:#496158}
.hero .quick-book-pricing{color:#3e5c51}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #075775;outline-offset:4px;box-shadow:0 0 0 2px #fff}
.footer a:focus-visible,.hero a:focus-visible{outline-color:#fff;box-shadow:0 0 0 2px #075775}
body[data-page='/resources'] .page-hero{background-image:linear-gradient(105deg,#0c3829e8,#0b3a37ce),url('/images/town-harbor.webp')}
body[data-page='/service-areas'] .page-hero{background-image:linear-gradient(105deg,#103d4ce8,#0b3a37ce),url('/images/service-smart.webp')}
/* Brian is one tap away; the phone number stays visible on a compact mobile bar. */
.booking-dock{display:flex;gap:8px;align-items:center;padding:8px;background:#fff;border-color:#c9dfe3}
.booking-dock .dock-contact{display:none}
.booking-dock .dock-phone{display:flex;gap:8px;align-items:center;color:#17452f;padding:8px 12px}
.dock-phone>span{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.dock-phone b{font-size:14px;font-weight:600;line-height:1.3}
.dock-phone small{font-size:18px;font-weight:700;line-height:1.3}
.booking-dock .dock-text{display:flex;gap:8px;align-items:center;justify-content:center;padding:12px 14px;min-height:50px;border-radius:8px;background:#e5f4fb;color:#075775;font-size:16px;font-weight:700}
.booking-dock .dock-text:hover,.booking-dock .dock-text:focus-visible{background:#cde9f6;color:#063e56}
.booking-dock .dock-phone:hover{background:#e9f5ed;color:#103b29;border-radius:8px}
.booking-dock .dock-book{gap:10px;min-height:50px;padding:12px 17px;font-size:16px}
.dock-book b{font-weight:600}
.booking-dock .dock-label-short{display:none}
.footer{padding-bottom:112px}
.issue-jump-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:36px}
.issue-jump-links a{padding:11px 16px;min-height:44px;border:1px solid #b8cfc2;border-radius:25px;background:#f5faf7;color:#174b36;font-size:16px}
.issue-jump-links a:hover{background:#e0f0e5;color:#123d2d}
.issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.issue-card{border:1px solid #d1e2da;border-radius:18px;padding:30px;text-align:center;display:flex;flex-direction:column;align-items:center;scroll-margin-top:120px;background:#fff}
.issue-icon{width:54px;height:54px;display:grid;place-items:center;background:#e7f4fa;border-radius:16px;color:#075775;margin-bottom:18px}
.issue-icon>.icon{width:29px;height:29px}
.issue-card h2{font-size:29px;line-height:1.25;margin-bottom:18px}
.issue-card p{font-size:18px;line-height:1.7;margin-bottom:16px}
.issue-actions{margin-top:auto;padding-top:15px;display:flex;flex-direction:column;align-items:center;gap:18px}
@media(max-width:1050px){.nav-text{display:none}.nav-wrap .brand-mark{width:74px;flex-basis:74px;height:48px}.nav-wrap .brand>span{font-size:27px}}
@media(max-width:800px){
 .nav-wrap .brand-mark{width:66px;flex-basis:66px;height:43px}.nav-wrap .brand>span{font-size:25px}.nav-wrap .brand small{font-size:9px;letter-spacing:.29em;margin-top:7px}
 .mobile-nav .mobile-menu-text{display:flex;align-items:center;justify-content:center;gap:9px;background:#e7f5fb;color:#075775;border-radius:8px;margin:5px 0 12px;font-weight:700}
 .issue-grid{grid-template-columns:1fr}.service-card-body .service-title,.service-card-body .service-outcome{min-height:0}
}
@media(max-width:640px){
 .nav-wrap .brand{gap:8px}.nav-wrap .brand-mark{width:58px;flex-basis:58px;height:37px}.nav-wrap .brand>span{font-size:23px}.nav-wrap .brand small{font-size:9px}
 .hero .hero-contact p{font-size:16px}.hero-contact .hero-call,.hero-contact .hero-text{font-size:17px;padding:10px 14px;min-height:44px}.hero-contact .hero-contact-number{font-size:23px}
 .booking-dock{display:grid;grid-template-columns:1fr 1fr 1.35fr;left:0;right:0;bottom:0;max-width:100%;padding:6px 9px calc(7px + env(safe-area-inset-bottom));gap:5px;border-radius:12px 12px 0 0}
 .booking-dock .dock-contact{display:block;grid-column:1/-1;text-align:center;font-size:14px;font-weight:700;color:#17452f;min-height:22px;padding:1px 0;line-height:1.5}
 .booking-dock .dock-phone,.booking-dock .dock-text,.booking-dock .dock-book{display:flex;align-items:center;justify-content:center;min-height:46px;padding:9px 6px;gap:6px;font-size:15px;border-radius:7px}
 .booking-dock .dock-phone{background:#eef6ef}.booking-dock .dock-phone b{font-size:15px;font-weight:700}.booking-dock .dock-phone small{display:none}.booking-dock .dock-label-wide{display:none}.booking-dock .dock-label-short{display:block}
 .booking-dock .dock-phone>.icon,.booking-dock .dock-text>.icon,.booking-dock .dock-book>.icon:first-child{display:block;width:18px;height:18px}.booking-dock .dock-book>.icon:last-child{display:none}
 .footer{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.issue-card{padding:25px 21px}.issue-card h2{font-size:26px}.issue-card p{font-size:17px}.issue-jump-links a{font-size:15px;padding:10px 13px}.issue-actions .button{width:100%}
 .town-list{grid-template-columns:repeat(2,minmax(0,1fr))}.town-text-card{font-size:16px}
}
@media(max-width:380px){.nav-wrap .brand-mark{width:49px;height:33px;flex-basis:49px}.nav-wrap .brand>span{font-size:21px}.nav-wrap .brand small{font-size:8px}.nav-wrap .brand{gap:6px}.booking-dock .dock-contact{font-size:13px}.booking-dock .dock-phone,.booking-dock .dock-text,.booking-dock .dock-book{font-size:14px}.booking-dock .dock-phone b{font-size:14px}}

/* Bound every picker column so SVG intrinsic sizing cannot squeeze the label. */
#service-picker-toggle{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:12px;min-height:74px;padding:10px;overflow-wrap:normal}
#service-picker-current{display:grid;grid-template-columns:50px minmax(0,1fr);gap:12px;width:100%;min-width:0}
#service-picker-toggle>.picker-chevron{display:block;width:20px;height:20px;min-width:20px;max-width:20px;flex:0 0 20px;justify-self:center;transition:transform .18s ease}
#service-picker-current>img,#service-picker-options button>img{display:block;width:50px;min-width:50px;max-width:50px;height:50px;object-fit:cover;border-radius:7px}
#service-picker-current .picker-copy,#service-picker-options .picker-copy{min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:left}
#service-picker-current strong,#service-picker-options strong{font-size:17px;line-height:1.35;overflow-wrap:normal;word-break:normal}
#service-picker-current small,#service-picker-options small{font-size:14px;line-height:1.4;overflow-wrap:normal;word-break:normal}
#service-picker-options button{display:grid;grid-template-columns:50px minmax(0,1fr) 18px;gap:12px;min-height:74px;overflow-wrap:normal}
#service-picker-options .picker-check{width:18px;font-size:18px;justify-self:center}
.quick-book-form>#quick-book-submit{min-height:74px;height:100%;white-space:normal;line-height:1.4;padding:14px 18px}
.quick-book-form>#quick-book-submit>span{min-width:0}
.quick-book-form>#quick-book-submit>.icon{width:20px;height:20px;flex:0 0 20px}
@media(max-width:760px){
 .quick-book-form{grid-template-columns:minmax(0,1fr);gap:12px}
 .quick-book-form>#quick-book-submit{min-height:58px;height:auto}
 #service-picker-options{max-height:min(380px,55dvh)}
}
@media(max-width:380px){
 #service-picker-toggle{gap:9px}
 #service-picker-current{gap:9px}
 #service-picker-options button{gap:9px;padding:10px 6px}
 #service-picker-current strong,#service-picker-options strong{font-size:16px}
}
@media(prefers-reduced-motion:reduce){#service-picker-toggle>.picker-chevron{transition:none}}

/* Every route ends with a clear view of Three Village Sprinklers' complete sprinkler offering. */
.all-services-section{padding:64px 0 48px;background:#f1f8f7;border-top:1px solid #d1e3dc;color:#173d2d}
.all-services-heading{max-width:800px;margin:0 auto 30px;text-align:center}
.all-services-heading .eyebrow{font-size:14px;color:#245c48;margin-bottom:14px}
.all-services-heading h2{font-size:clamp(32px,3.2vw,44px);line-height:1.16}
.all-services-heading p{font-size:18px;line-height:1.65;color:#416052;max-width:650px;margin:17px auto 0}
.all-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.all-service-card{display:flex;flex-direction:column;align-items:center;min-width:0;padding:23px;background:#fff;border:1px solid #cbded5;border-radius:14px;text-align:center}
.all-service-title{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;width:100%}
.all-service-title>.art-icon{width:52px;height:52px;flex:0 0 52px}
.all-service-title h3{font-family:var(--sans);font-size:21px;font-weight:700;line-height:1.3;letter-spacing:-.015em;min-width:0}
.all-service-title a:hover{text-decoration:underline;text-underline-offset:4px;color:#075775}
.all-service-card>p{font-size:17px;line-height:1.6;color:#416052;margin:17px 0 18px;max-width:340px}
.all-service-price{font-size:16px;font-weight:700;color:#24583e;margin-top:auto}
.all-service-card>.button{width:100%;min-height:52px;margin-top:16px;padding:12px 14px;gap:10px;font-size:16px;white-space:normal;line-height:1.4}
.all-services-scope{max-width:820px;margin:22px auto 0;font-size:14px;line-height:1.6;text-align:center;color:#496158}
.all-services-contact{border-top:1px solid #cbded5;padding-top:25px;margin-top:25px;text-align:center}
.all-services-contact>p{font-size:19px;font-weight:600;color:#173d2d}
.all-services-contact>div{display:flex;align-items:center;justify-content:center;gap:12px 28px;flex-wrap:wrap;margin-top:12px}
.all-services-contact a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;font-size:18px;font-weight:700;line-height:1.5;color:#075775}
.all-services-contact a:hover{color:#06465f;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.all-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .all-services-section{padding:42px 0 32px}
 .all-services-heading .eyebrow{font-size:12px;letter-spacing:.08em}
 .all-services-heading p{font-size:17px}
 .all-services-grid{grid-template-columns:minmax(0,1fr);gap:14px}
 .all-service-card{padding:20px}
 .all-service-title{min-height:0}
 .all-service-title>.art-icon{width:46px;height:46px;flex-basis:46px}
 .all-service-title h3{font-size:21px}
 .all-service-card>p{margin:12px 0 15px;font-size:17px}
 .all-service-card>.button{font-size:17px}
 .all-services-contact>div{flex-direction:column;gap:4px}
 .all-services-contact a{font-size:17px}
}
@media print{.all-services-section{display:none}}

/* One clear booking action in a compact, content-sized hero. */
.hero.hero-condensed{min-height:0}
.hero-condensed .hero-content.hero-layout{display:block;padding-block:40px;max-width:980px}
.hero-condensed .hero-copy{max-width:900px;margin-inline:auto}
.hero-condensed h1{font-size:clamp(38px,4.1vw,58px);line-height:1.1}
.hero-condensed .hero-copy>p{max-width:740px;font-size:20px;line-height:1.6;margin:18px auto 0}
.hero-primary-action{display:flex;justify-content:center;margin-top:24px}
.hero-primary-action>.button{min-height:56px;padding:14px 24px;font-size:19px;gap:14px;white-space:normal;line-height:1.4}
.hero-simple-contact{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 24px;margin-top:10px}
.hero-simple-contact>a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:6px 0;color:#fff;font-size:17px;font-weight:600;line-height:1.4;white-space:nowrap}
.hero-simple-contact>a>.icon{width:19px;height:19px;flex:0 0 19px}
.hero-simple-contact>a:hover,.hero-simple-contact>a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:5px}
@media(max-width:640px){
 .hero-condensed .hero-content.hero-layout{padding-block:29px}
 .hero-condensed h1{font-size:clamp(32px,8.1vw,43px);line-height:1.12}
 .hero-condensed .hero-copy>p{font-size:18px;line-height:1.55;margin-top:15px}
 .hero-primary-action{margin-top:20px}
 .hero-primary-action>.button{width:min(100%,360px);min-height:54px;font-size:18px;padding:13px 18px}
 .hero-simple-contact{gap:4px 16px;margin-top:7px}
 .hero-simple-contact>a{font-size:16px;gap:7px}
 .hero-call-label{display:none}
}
@media(max-width:360px){.hero-simple-contact{gap:4px 12px}.hero-simple-contact>a{font-size:15px}}

/* Keep contact glyphs centered on the text line, including large phone CTAs. */
a[href^="tel:"]:has(>.icon),a[href^="sms:"]:has(>.icon){align-items:center;gap:9px;line-height:1.4}
.cta-actions>a:not(.button),.footer .footer-phone,.mobile-nav .mobile-menu-phone,.mobile-nav .mobile-menu-text{display:inline-flex;align-items:center;justify-content:center;gap:10px;line-height:1.4}
.cta-actions>a:not(.button)>.icon,.footer .footer-phone>.icon,.mobile-nav .mobile-menu-phone>.icon,.mobile-nav .mobile-menu-text>.icon{display:block;width:22px;height:22px;flex:0 0 22px;margin:0;align-self:center}
.button>.icon,.text-link>.icon,.card-link>.icon,.subtle-link>.icon{display:block;align-self:center;margin-block:0}
.all-services-contact a>.icon,.hero-simple-contact>a>.icon{display:block;align-self:center;margin:0}
.mobile-nav .mobile-menu-phone,.mobile-nav .mobile-menu-text{width:100%}

/* Supplied Three Village Sprinklers artwork, with transparent outer space trimmed. */
.brand.brand-horizontal,.nav-wrap .brand.brand-horizontal{display:inline-flex;flex:0 0 auto;width:240px;max-width:100%;gap:0;line-height:0}
.brand.brand-horizontal>.brand-crop{position:relative;display:block;width:100%;height:auto;aspect-ratio:1212/366;overflow:hidden;font-size:0;line-height:0;letter-spacing:0}
.brand-crop>.brand-full{position:static;display:block;width:100%;max-width:100%;height:auto;object-fit:contain}
.footer .brand.brand-horizontal{width:280px}
.footer .brand.brand-horizontal{padding:12px 14px;background:#fff;border-radius:14px}
.footer .brand-full{filter:none}
.footer .footer-top a.footer-phone{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:fit-content;max-width:100%;font-size:clamp(22px,5.5vw,30px)!important;line-height:1.4;margin-inline:auto}
.footer .footer-top a.footer-phone>.icon{display:block;align-self:center;flex:0 0 22px;width:22px;height:22px;margin:0}
.nav-wrap .nav-text{white-space:nowrap;flex-shrink:0}
.nav-wrap .brand,.nav-wrap .nav-phone,.nav-wrap .menu-toggle{align-self:center}
@media(max-width:1100px){
 .nav-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:12px;height:74px;padding:0}
 .nav-wrap .desktop-nav,.nav-wrap .nav-text,.nav-wrap .nav-cta{display:none}
 .nav-wrap .brand.brand-horizontal{grid-column:1;grid-row:1;width:220px;max-width:100%;min-width:0}
 .nav-wrap .nav-phone{display:flex;grid-column:2;grid-row:1;margin:0;padding:0;min-height:44px;white-space:nowrap}
 .nav-wrap .nav-phone>span{font-size:18px}.nav-wrap .nav-phone small{display:none}
 .nav-wrap .nav-phone>.icon{display:block;width:21px;height:21px;flex:0 0 21px}
 .nav-wrap .menu-toggle{display:grid;place-items:center;grid-column:3;grid-row:1;width:44px;height:44px;padding:0}
 .mobile-nav{max-height:calc(100dvh - 90px)}
}
@media(max-width:640px){
 .nav-wrap{grid-template-columns:minmax(0,1fr) 44px 44px;gap:6px;height:66px}
 .nav-wrap .brand.brand-horizontal{width:190px}
 .nav-wrap .nav-phone{justify-content:center;width:44px}
 .nav-wrap .nav-phone>span{display:none}
 .nav-wrap .nav-phone>.icon{width:23px;height:23px;flex-basis:23px}
 .site-header .nav-wrap .nav-text{display:none}
 .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
 .footer-top>div:first-child,.footer-top>div:last-child{grid-column:1/-1}
 .footer .brand.brand-horizontal{width:min(280px,100%)}
 .footer-bottom{flex-direction:column;align-items:center;gap:14px}
 .footer-bottom>div{justify-content:center}
 .cta-actions>a:not(.button){font-size:clamp(18px,4.7vw,24px);line-height:1.4;max-width:100%;overflow-wrap:normal}
 .all-services-contact a{white-space:normal;max-width:100%}
 .booking-dock .dock-book,.booking-dock .dock-text,.booking-dock .dock-phone{white-space:nowrap;overflow-wrap:normal}
 .booking-dock .dock-phone>.icon,.booking-dock .dock-text>.icon,.booking-dock .dock-book>.icon{flex:0 0 17px;width:17px;height:17px}
}
@media(max-width:360px){
 .booking-dock .dock-book>.icon,.booking-dock .dock-text>.icon,.booking-dock .dock-phone>.icon{display:none}
 .town-list{grid-template-columns:minmax(0,1fr)}
 .footer-top{column-gap:14px}.footer-top h3{font-size:18px}
}

/* Short booking steps, readable controls, and no competing floating Book CTA. */
body[data-page='/book'] .booking-dock{display:none}
body[data-page='/book'] .booking-section{padding:24px 0 38px}
.booking-section .booking-grid{grid-template-columns:minmax(0,1fr);max-width:900px;gap:18px;align-items:start}
.booking-section .booking-intro,.booking-section .booking-card,.booking-section .booking-support{grid-column:1;grid-row:auto;width:100%;min-width:0}
.booking-section .booking-intro{position:static}
.booking-section .booking-intro h1{font-size:36px;line-height:1.15;margin:0;max-width:none;width:100%}
.booking-section .booking-intro>p{font-size:17px;line-height:1.5;margin:9px auto 0;max-width:680px}
.booking-section .booking-card{padding:22px 26px;border-radius:14px;scroll-margin-top:90px}
.booking-card .form-progress{grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr;gap:5px;margin-bottom:18px;align-items:center}
.booking-card .form-progress>span{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;line-height:1.4;white-space:nowrap}
.booking-card .form-progress b{font-size:15px;font-weight:500}
.booking-card .form-progress i{width:100%;min-width:0}
.booking-card fieldset legend{font-size:25px;line-height:1.25;margin-bottom:12px}
.booking-card .field-intro{margin:0 0 14px;font-size:16px;line-height:1.5}
.booking-card .service-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-card .service-option{min-height:68px;padding:12px 14px;gap:11px;font-size:17px!important;line-height:1.35;min-width:0}
.booking-card .service-option>span:not(.radio-check){flex:1;min-width:0;overflow-wrap:normal}
.booking-card .service-option>.icon{width:23px;height:23px;flex:0 0 23px;align-self:center}
.booking-card .service-option .radio-check{flex:0 0 18px;width:18px;height:18px;margin-left:0}
.booking-card .service-option .pricing-tag{font-size:14px;line-height:1.4;margin-top:3px}
.booking-card .service-unsure{grid-column:1/-1;min-height:50px}
.booking-card .form-actions{margin-top:18px;gap:10px}
.booking-card .form-actions>.button{min-height:48px;padding:11px 18px;font-size:17px;line-height:1.4;white-space:normal}
.booking-card .form-actions>.button.primary{flex:1}
.booking-card .form-footnote{font-size:13px;line-height:1.45;margin:12px 0 0;align-items:center;text-align:center}
.booking-card .form-footnote>.icon{width:16px;height:16px;flex:0 0 16px}
.booking-card form label{font-size:16px;line-height:1.4;margin-bottom:12px}
.booking-card form input:not([type=checkbox]):not([type=radio]):not([type=file]),.booking-card form select{min-height:46px;height:46px;margin-top:5px;padding:9px 12px;font-size:16px;line-height:1.4}
.booking-card form textarea{min-height:76px;margin-top:5px;padding:10px 12px;font-size:16px;line-height:1.5}
.booking-card .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.booking-card .timing-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.booking-card .field-hint,.booking-card .optional{font-size:13px;line-height:1.45}
.booking-card .selection-summary{padding:10px 12px;margin-bottom:16px;gap:12px}
.booking-card .selection-summary>div{min-width:0}
.booking-card .selection-summary span{font-size:12px}
.booking-card .selection-summary strong{font-size:17px;line-height:1.35}
.booking-card .selection-summary button{font-size:14px;min-height:44px;padding:6px 10px}
.booking-card .property-extras{border:1px solid #cfdfd7;border-radius:8px;padding:0 12px;margin:0 0 12px}
.booking-card .property-extras>summary{display:flex;align-items:center;gap:8px;min-height:46px;cursor:pointer;font-size:16px;font-weight:600;line-height:1.4}
.booking-card .property-extras[open]>summary{margin-bottom:10px}
.booking-card .property-extras>summary .optional{margin-left:auto}
.booking-card .upload-label{padding:12px;margin-bottom:12px}
.booking-card .booking-price{padding:10px 12px;margin:4px 0 0;font-size:17px;line-height:1.5}
.booking-card .booking-price p{font-size:13px;line-height:1.5;margin:4px 0 0}
.booking-card #booking-availability{margin-bottom:14px}
.booking-card #booking-availability>.small{font-size:14px;line-height:1.45;margin-bottom:10px}
.booking-card .date-chips:empty,.booking-card .slot-grid:empty{display:none}
.booking-card .date-chips{gap:8px;margin:8px 0 10px}
.booking-card .date-chip{min-width:64px;min-height:58px;padding:7px 10px;font-size:14px;line-height:1.25}
.booking-card .date-chip strong{font-size:20px;line-height:1.3}
.booking-card .slot-option{min-height:56px;padding:8px 10px;font-size:14px;line-height:1.4}
.booking-card .slot-option strong{font-size:16px;line-height:1.4}
.booking-card #slot-note{margin-top:8px}
.booking-card #clear-slot{margin-top:6px;min-height:44px;font-size:15px}
.booking-card .request-summary{padding:10px 12px;margin:0 0 12px;font-size:16px}
.booking-card .request-summary p{font-size:14px;line-height:1.5;margin:4px 0 0}
.booking-card .checkbox-row{font-size:14px!important;line-height:1.5;gap:10px;min-height:36px;margin-bottom:8px;align-items:flex-start}
.booking-card .checkbox-row input{width:19px;height:19px;flex:0 0 19px;margin-top:2px}
.booking-support-contact{text-align:center;font-size:15px;color:#496158}
.booking-support-contact>div{display:flex;align-items:center;justify-content:center;gap:12px 25px;flex-wrap:wrap;margin-top:5px}
.booking-support-contact a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:17px;font-weight:600;color:#075775}
.booking-help-details{max-width:720px;margin:8px auto 0;text-align:center;border-top:1px solid #d5e3db;padding-top:5px}
.booking-help-details summary{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;font-size:16px;cursor:pointer}
.booking-help-details p{font-size:15px;line-height:1.6;margin:10px 0}
@media(max-width:640px){
 body[data-page='/book'] .booking-section{padding:20px 0 28px}
 .booking-section .booking-grid{gap:16px}
 .booking-section .booking-intro h1{font-size:29px}
 .booking-section .booking-intro>p{font-size:16px;margin-top:7px}
 .booking-section .booking-card{padding:18px 16px;scroll-margin-top:78px}
 .booking-card .form-progress{grid-template-columns:1fr 8px 1fr 8px 1fr 8px 1fr;gap:3px;margin-bottom:17px}
 .booking-card .form-progress>span{gap:4px;font-size:13px}
 .booking-card .form-progress b{font-size:13px}
 .booking-card fieldset legend{font-size:24px}
 .booking-card .field-row,.booking-card .timing-row{gap:12px}
 .booking-card .timing-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .booking-card .timing-row>label:last-child{grid-column:1/-1}
 .booking-card .property-extras>summary{flex-wrap:wrap;padding:8px 0}
 .booking-card .property-extras>summary .optional{margin-left:0}
 .booking-card .checkbox-row{font-size:14px!important}
 .booking-support-contact>div{gap:2px 16px}
}
@media(max-width:540px){
 .booking-card .service-options{grid-template-columns:minmax(0,1fr);gap:8px}
 .booking-card .service-option{min-height:64px;padding:10px 12px}
 .booking-card .service-unsure{min-height:48px}
 .booking-card .field-row{grid-template-columns:minmax(0,1fr);gap:0}
 .booking-card .field-row.timing-row{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){
 .booking-card .form-progress{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
 .booking-card .form-progress i{display:none}
 .booking-card .form-progress>span{flex-direction:column;gap:1px;font-size:12px}
 .booking-card .form-progress b{font-size:12px}
}

/* Distinct service cues: frost, new grass, repair water, spring, care, smart controls. */
.button.cta-install,.service-book.cta-install{background:#216443 url('/images/install-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#216443;filter:none}
.button.cta-install:hover,.button.cta-install:focus-visible,.button.cta-install:active,.service-book.cta-install:hover,.service-book.cta-install:focus-visible,.service-book.cta-install:active{background:#184f32 url('/images/install-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#184f32;filter:none}
.button.cta-repair,.service-book.cta-repair{background:#075a86 url('/images/repair-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#075a86;filter:none}
.button.cta-repair:hover,.button.cta-repair:focus-visible,.button.cta-repair:active,.service-book.cta-repair:hover,.service-book.cta-repair:focus-visible,.service-book.cta-repair:active{background:#06486c url('/images/repair-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#06486c;filter:none}
.button.cta-spring,.service-book.cta-spring{background:#c6e8c6 url('/images/spring-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#214d2d;border-color:#89b58d;filter:none}
.button.cta-spring:hover,.button.cta-spring:focus-visible,.button.cta-spring:active,.service-book.cta-spring:hover,.service-book.cta-spring:focus-visible,.service-book.cta-spring:active{background:#b4dcb5 url('/images/spring-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#173b22;border-color:#6d9b73;filter:none}
.button.cta-care,.service-book.cta-care{background:#f8e3aa url('/images/care-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#593f14;border-color:#c3a260;filter:none}
.button.cta-care:hover,.button.cta-care:focus-visible,.button.cta-care:active,.service-book.cta-care:hover,.service-book.cta-care:focus-visible,.service-book.cta-care:active{background:#efd58b url('/images/care-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#4a330c;border-color:#ac8a46;filter:none}
.button.cta-smart,.service-book.cta-smart{background:#384884 url('/images/smart-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#384884;filter:none}
.button.cta-smart:hover,.button.cta-smart:focus-visible,.button.cta-smart:active,.service-book.cta-smart:hover,.service-book.cta-smart:focus-visible,.service-book.cta-smart:active{background:#2a376a url('/images/smart-pattern.svg') no-repeat;background-size:100% 100%;background-position:center;color:#fff;border-color:#2a376a;filter:none}
.button[class*="cta-"]:disabled,.button[class*="cta-"]:disabled:hover,.button[class*="cta-"]:disabled:focus-visible,.button[class*="cta-"]:disabled:active{background:#dce5e8;color:#354e58;border-color:#b3c4cc;filter:none;opacity:1;box-shadow:none}

/* Three short booking steps; details are optional except a way to reply. */
.booking-progress{margin-bottom:20px}
.progress-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:#496158;margin-bottom:8px}
.progress-caption>span:first-child{font-weight:700;color:#075775}
#booking-progress-bar{display:block;width:100%;height:7px;border:0;border-radius:20px;overflow:hidden;background:#e3eee8;color:#16734e;accent-color:#16734e}
#booking-progress-bar::-webkit-progress-bar{background:#e3eee8;border-radius:20px}
#booking-progress-bar::-webkit-progress-value{background:#16734e;border-radius:20px}
#booking-progress-bar::-moz-progress-bar{background:#16734e;border-radius:20px}
.booking-progress .form-progress{grid-template-columns:1fr 18px 1fr 18px 1fr;margin:10px 0 0}
.booking-card #contact-hint{margin:-7px 0 12px}
.visit-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;margin-bottom:14px;background:#f1f7fb;border:1px solid #cfe2ed;border-radius:7px;color:#16465b;font-size:15px;line-height:1.5}
.visit-summary>span{min-width:0}
.visit-summary button{background:none;border:0;text-decoration:underline;font-size:14px;line-height:1.3;min-height:44px;padding:5px;color:#075775;flex-shrink:0;cursor:pointer}
.booking-extras{border:1px solid #cfdfd7;border-radius:8px;margin:0 0 14px}
.booking-extras>summary{display:flex;align-items:center;gap:8px;padding:10px 12px;min-height:48px;font-size:15px;line-height:1.45;cursor:pointer;font-weight:500}
.booking-extras>summary>.icon{width:19px;height:19px;flex:0 0 19px}
.booking-extras>summary>.icon:last-child{margin-left:auto}
.booking-extras[open]>summary>.icon:last-child{transform:rotate(180deg)}
.booking-extras-content{padding:6px 12px 2px}
.system-extras{border-top:1px solid #d6e3dc;padding:3px 0 6px}
.system-extras>summary{padding:10px 0;font-size:15px;min-height:44px;cursor:pointer}
.arrange-time-button{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;border:1px solid #a9c9d8;border-radius:8px;min-height:48px;padding:10px 12px;color:#075775;background:#f2f9fc;font-size:16px;line-height:1.4;cursor:pointer;margin:12px 0}
.arrange-time-button:hover,.arrange-time-button:focus-visible{background:#dfedf5;color:#103e55;border-color:#5a95af}
.booking-card .date-chips{display:flex;flex-wrap:wrap}
.booking-card .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-card .slot-option{min-height:64px}
.quick-request-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:100%;padding:8px 5px;border:0;background:none;color:#075775;font-size:15px;line-height:1.4;text-decoration:underline;cursor:pointer}
.quick-request-button:hover,.quick-request-button:focus-visible{color:#103e55;background:#f2f9fc;border-radius:7px}
.quick-request-button .icon{width:19px;height:19px;flex-shrink:0}
@media(max-width:640px){
 .booking-progress .form-progress{grid-template-columns:1fr 8px 1fr 8px 1fr;gap:3px;font-size:13px}
 .booking-progress .form-progress>span{flex-direction:row;gap:4px;white-space:nowrap}
 .booking-progress .form-progress i{display:block}
 .progress-caption{font-size:13px}
 .booking-extras>summary{flex-wrap:wrap;column-gap:6px}
 .booking-extras>summary .optional{font-size:12px}
 .visit-summary{font-size:14px}
}
@media(max-width:380px){
 .booking-progress .form-progress{grid-template-columns:repeat(3,minmax(0,1fr))}
 .booking-progress .form-progress i{display:none}
 .booking-progress .form-progress>span{font-size:12px}
 .visit-summary{align-items:flex-start}
 .visit-summary button{max-width:70px}
}

/* Colorful service illustrations, compact choices, and small-job shortcuts. */
.booking-card .service-options{gap:8px}
.booking-card .service-option{min-height:70px;padding:10px 12px;gap:10px;border-radius:12px;line-height:1.35}
.booking-card .service-option>.art-icon{width:42px;height:42px;flex:0 0 42px}
.booking-card .service-option>span:not(.radio-check){min-width:0;overflow-wrap:break-word}
.booking-card .service-option .radio-check{flex-shrink:0;margin-left:auto}
.booking-card .service-option .pricing-tag{font-size:14px;line-height:1.4;margin-top:3px}
.booking-card .service-option:has(input[value="winterization"]:checked){background:#edf8ff;border-color:#3685a6}
.booking-card .service-option:has(input[value="sprinkler-installation"]:checked){background:#eff8ed;border-color:#3c8554}
.booking-card .service-option:has(input[value="sprinkler-repair"]:checked){background:#edf7fd;border-color:#2a7da4}
.booking-card .service-option:has(input[value="spring-startups"]:checked){background:#f4f8e8;border-color:#678a37}
.booking-card .service-option:has(input[value="smart-irrigation"]:checked){background:#f2effb;border-color:#7562ad}
.booking-card .service-option:has(input[value="seasonal-maintenance"]:checked){background:#fff8e8;border-color:#b08c3f}
.small-jobs-section{margin:28px auto 0;padding-top:24px;border-top:1px solid #cbded5;text-align:center}
.small-jobs-section>h3{margin:0 0 6px;font-size:24px;line-height:1.25;color:#203f33}
.small-jobs-section>p{margin:0 auto 18px;max-width:640px;font-size:17px;line-height:1.5;color:#456052}
.small-job-links,.small-job-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.small-job-links>a,.small-job-options>button{display:flex;align-items:center;gap:10px;min-width:0;min-height:76px;padding:10px 12px;border:1px solid #c3d8cd;border-radius:12px;background:#fff;color:#203f33;text-align:left;text-decoration:none;font:inherit;line-height:1.4;cursor:pointer}
.small-job-links>a>span,.small-job-options>button>span{flex:1;min-width:0;overflow-wrap:break-word}
.small-job-links strong,.small-job-options strong{display:block;font-size:16px;font-weight:650;line-height:1.35}
.small-job-links small,.small-job-options small{display:block;font-size:14px;line-height:1.4;color:#4c6056;margin-top:3px}
.small-job-links .art-icon,.small-job-options .art-icon{width:42px;height:42px;flex:0 0 42px}
.small-job-links .icon,.small-job-options .icon{width:18px;height:18px;flex:0 0 18px}
.small-job-links>a:hover,.small-job-options>button:hover{background:#eef7f4;border-color:#3e8064;color:#183c2f}
.small-job-links>a:focus-visible,.small-job-options>button:focus-visible,.booking-small-jobs>summary:focus-visible{outline:3px solid #0c7296;outline-offset:3px;background:#edf7fc;color:#173f50}
.booking-small-jobs{margin-top:10px;border:1px solid #c3d8cd;border-radius:12px;background:#fff}
.booking-small-jobs>summary{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 12px;cursor:pointer;font-size:16px;font-weight:600;line-height:1.35;color:#254637;border-radius:12px}
.booking-small-jobs>summary::-webkit-details-marker{display:none}
.booking-small-jobs>summary>.art-icon{width:40px;height:40px;flex:0 0 40px}
.booking-small-jobs>summary>span{flex:1;min-width:0}
.booking-small-jobs>summary>.icon{width:20px;height:20px;flex-shrink:0}
.booking-small-jobs[open]>summary>.icon{transform:rotate(180deg)}
.booking-small-jobs .small-job-options{padding:0 10px 10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(max-width:900px){.small-job-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){
 .small-job-links,.booking-small-jobs .small-job-options{grid-template-columns:1fr}
 .booking-card .service-option{min-height:66px;padding:9px 11px}
 .booking-card .service-option>.art-icon{width:40px;height:40px;flex-basis:40px}
 .small-job-links>a,.small-job-options>button{min-height:68px}
}

 /* Compact photographic service catalog: twelve choices without large cards. */
.service-catalog{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;align-items:stretch}
.catalog-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #c9dcd5;border-radius:16px;background:#fff;text-align:left;box-shadow:0 3px 12px rgba(27,72,57,.035)}
.catalog-photo{display:block;aspect-ratio:3/2;overflow:hidden;background:#eaf3ef}
.catalog-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.catalog-photo:hover img{transform:scale(1.035)}
.catalog-photo:focus-visible{outline:3px solid #087395;outline-offset:-3px}
.catalog-card-body{position:relative;display:flex;flex:1;flex-direction:column;align-items:stretch;min-width:0;padding:31px 13px 13px}
.catalog-art{position:absolute;top:-24px;left:13px;display:grid;place-items:center;width:48px;height:48px;border:1px solid #d4e4dc;border-radius:13px;background:#fff;box-shadow:0 3px 10px rgba(27,72,57,.08)}
.catalog-art .art-icon{display:block;width:42px;height:42px}
.catalog-card h3{margin:0 0 8px;font-family:var(--sans);font-size:18px;font-weight:650;line-height:1.3;min-height:2.6em;color:#174e3c;overflow-wrap:break-word}
.catalog-card h3 a{color:inherit;text-decoration:none}
.catalog-card h3 a:hover,.catalog-card h3 a:focus-visible{color:#075d83;text-decoration:underline;text-underline-offset:3px}
.catalog-card-body>p{margin:0 0 14px;font-size:16px;line-height:1.45;color:#466459}
.catalog-price{display:block;margin:auto 0 10px;font-size:15px;font-weight:650;line-height:1.4;color:#244c3c}
.catalog-card .catalog-book{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:48px;gap:5px;padding:10px 8px;border-radius:9px;font-size:16px;line-height:1.35;text-align:center;text-decoration:none;white-space:normal}
.catalog-book>span{min-width:0;overflow-wrap:normal}
.catalog-card .catalog-book>.icon{width:16px;height:16px;flex:0 0 16px}
.catalog-pricing-note{max-width:900px;margin:18px auto 0;text-align:center;font-size:14px;line-height:1.6;color:#4b6258}
@media(max-width:1279px){.service-catalog{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:979px){.service-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:699px){
 .service-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .catalog-card{border-radius:13px}
 .catalog-card-body{padding:28px 10px 10px}
 .catalog-art{left:10px;width:44px;height:44px;top:-22px}
 .catalog-art .art-icon{width:38px;height:38px}
 .catalog-card h3{font-size:17px}
 .catalog-card-body>p{font-size:16px}
 .catalog-card .catalog-book{padding:9px 6px;gap:4px}
}
@media(max-width:359px){.service-catalog{grid-template-columns:1fr}.catalog-card h3{min-height:0}}
@media(prefers-reduced-motion:reduce){.catalog-photo img{transition:none}.catalog-photo:hover img{transform:none}}

/* Contact: one short message form, with direct ways to reach Brian. */
.contact-section { padding: 38px 0 64px; background: linear-gradient(145deg,#f3f8f2,#eff8fc 70%,#fff); }
.contact-container { max-width: 1120px; }
.contact-heading { text-align: center; margin: 0 auto 30px; }
.contact-heading h1 { font-size: clamp(38px,4vw,56px); margin: 12px 0 14px; }
.contact-heading h1 em { color: #27634b; font-style: normal; }
.contact-heading > p:last-child { font-size: 18px; line-height: 1.6; }
.contact-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 30px; align-items: start; }
.contact-options { display: grid; gap: 14px; min-width: 0; }
.contact-channel { display: flex; align-items: center; gap: 15px; border: 1px solid #c5d9d2; border-radius: 16px; padding: 20px; min-width: 0; color: #183f31; background: #fff; transition: border-color .18s,box-shadow .18s; }
.contact-channel:hover { border-color: #29705a; box-shadow: 0 5px 18px #173d2d0c; }
.contact-channel > span:nth-child(2) { min-width: 0; flex: 1; }
.contact-channel strong,.contact-channel span > span,.contact-channel small { display: block; }
.contact-channel strong { font-size: 20px; line-height: 1.4; }
.contact-channel span > span { font-size: 18px; overflow-wrap: anywhere; line-height: 1.5; }
.contact-channel small { font-size: 16px; line-height: 1.5; margin-top: 4px; color: #4b6257; }
.contact-channel > .icon { flex-shrink: 0; width: 20px; }
.contact-channel-icon { display: grid; place-items: center; flex: 0 0 48px; height: 48px; border-radius: 14px; background: #e8f4df; color: #275829; }
.contact-channel-icon .icon { width: 26px; height: 26px; margin: 0; }
.contact-text { border-color: #bfd9e4; }
.contact-text .contact-channel-icon { background: #e0f3fc; color: #0a5c7d; }
.contact-email .contact-channel-icon { background: #fff0dd; color: #835313; }
.contact-socials { padding: 9px 2px; }
.contact-socials h2 { font-family: var(--sans); font-size: 20px; letter-spacing: -.02em; font-weight: 600; margin-bottom: 12px; }
.social-links { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.social-profile { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 52px; width: 52px; height: 52px; min-height: 52px; padding: 0; border: 1px solid #ffffff35; border-radius: 16px; color: #fff; text-decoration: none; box-shadow: 0 4px 12px #0a252215; transition: transform .16s ease,box-shadow .16s ease; }
.social-icon { display: block; width: 29px; height: 29px; flex-shrink: 0; }
.social-facebook { background: #0866ff; color: #fff; }
.social-instagram { background: linear-gradient(35deg,#d36a28 0%,#c52b79 48%,#6445c0 100%); color: #fff; }
.social-profile[href]:hover { transform: translateY(-2px); box-shadow: 0 7px 16px #0a252230; color: #fff; }
.social-profile:focus-visible { outline: 3px solid #0f5e4c; outline-offset: 4px; }
.social-unlinked { user-select: none; }
.footer .social-profile { display: inline-flex!important; margin: 0!important; width: 52px; height: 52px; min-height: 52px!important; padding: 0; }
.footer .social-facebook,.footer .social-facebook:hover,.footer .social-instagram,.footer .social-instagram:hover { color: #fff; }
.footer .social-profile:focus-visible { outline-color: #e8f4df; }
.footer .social-links { margin-top: 22px; justify-content: center; }
.contact-book { padding-top: 8px; }
.contact-book p { font-size: 17px; margin-bottom: 10px; }
.contact-card { background: #fff; padding: 28px; border: 1px solid #d4e0d9; border-radius: 20px; box-shadow: 0 8px 30px #173d2d06; min-width: 0; }
.contact-card h2 { font-size: 32px; margin-bottom: 10px; }
.contact-form-intro { font-size: 17px; line-height: 1.5; margin-bottom: 22px; }
#contact-form > label:not(.checkbox-row),#contact-form .field-row label { display: block; font-size: 17px; margin-bottom: 16px; color: #24483b; }
#contact-form input:not([type=checkbox]),#contact-form textarea { display: block; width: 100%; margin-top: 7px; padding: 12px; border: 1px solid #b8c8bf; border-radius: 8px; background: #fff; color: #193f30; font-size: 17px; line-height: 1.5; }
#contact-form input::placeholder,#contact-form textarea::placeholder { color: #607268; opacity: 1; }
#contact-form .field-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; }
#contact-form .field-hint { color: #4b6257; font-size: 16px; }
#contact-form .checkbox-row { color: #4b6257; margin: 16px 0; }
#contact-form .form-error { margin: 0 0 16px; }
#contact-submit { width: 100%; min-height: 52px; font-size: 18px; }
.contact-preview { text-align: center; font-size: 14px; line-height: 1.5; margin-top: 12px; color: #536b60; }
.contact-success { text-align: center; padding: 30px 0; }
.contact-success p { margin: 16px 0 24px; font-size: 18px; }
.contact-success .text-link { display: block; margin: 18px auto 0; background: transparent; min-height: 44px; text-decoration: underline; }
@media(max-width:760px) {
 .contact-section { padding: 26px 0 42px; }
 .contact-heading { margin-bottom: 24px; }
 .contact-heading > p:last-child { font-size: 17px; }
 .contact-grid { display: flex; flex-direction: column; gap: 24px; }
 .contact-card { order: 1; width: 100%; padding: 22px; }
 .contact-options { order: 2; width: 100%; }
 .contact-channel { padding: 17px; }
}
@media(max-width:480px) {
 #contact-form .field-row { grid-template-columns: minmax(0,1fr); gap: 0; }
 .contact-card { padding: 20px 16px; }
 .contact-channel { gap: 11px; padding: 16px; }
 .contact-channel-icon { flex-basis: 40px; height: 40px; }
 .contact-channel strong { font-size: 19px; }
 .contact-channel span > span { font-size: 17px; }
 .contact-book .button { width: 100%; }
}

/* Keep the sprinkler and home visible around the centered hero message. */
.hero-condensed > picture > img { object-position: center 58%; }
.hero-condensed .hero-shade { background: linear-gradient(90deg, #08291c61 0%, #08291cc2 24%, #08291cc2 70%, #08291c4d 100%); }
.hero-condensed h1,.hero-condensed .hero-copy > p { text-shadow: 0 2px 18px #09271870; }
@media(max-width:640px) {
 .hero-condensed > picture > img { object-position: 88% center; }
 .hero-condensed .hero-shade { background: #08291cba; }
}

/* About Three Village Sprinklers: local roots, experience, and a direct line to Brian. */
.about-intro { padding: 42px 0 38px; background: linear-gradient(135deg,#f1f8f0,#edf8fc); text-align: center; }
.about-intro h1 { font-size: clamp(38px,4.4vw,62px); margin: 14px auto 20px; }
.about-intro h1 em { font-style: normal; color: #17627a; }
.about-intro .container > p:not(.eyebrow) { max-width: 760px; margin-inline: auto; font-size: 20px; line-height: 1.7; }
.about-intro-actions,.about-local-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 18px 24px; margin-top: 26px; }
.about-intro-actions .text-link,.about-story-copy > .text-link { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; font-size: 18px; }
.about-intro-actions .text-link .icon,.about-story-copy > .text-link .icon { width: 23px; height: 23px; margin: 0; flex-shrink: 0; }
.about-story { padding: 58px 0; }
.about-story-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); align-items: center; gap: 46px; }
.about-service-photo { margin: 0; min-width: 0; border-radius: 24px; overflow: hidden; background: #eaf5f9; border: 1px solid #c9dfe4; }
.about-service-photo > img { width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.about-service-photo figcaption { display: flex; align-items: center; gap: 16px; padding: 20px 24px; font-size: 16px; line-height: 1.6; color: #31554d; }
.about-service-photo figcaption .art-icon { width: 54px; height: 54px; flex-shrink: 0; }
.about-service-photo figcaption strong { display: block; color: #173d2d; font-size: 19px; }
.about-story-copy { min-width: 0; }
.about-story-copy h2 { font-size: clamp(32px,3.1vw,45px); margin: 12px 0 22px; }
.about-story-copy > p:not(.eyebrow) { font-size: 18px; line-height: 1.75; }
.about-story-copy > .text-link { margin-top: 22px; }
.about-promises { background: #f6f9f3; padding: 54px 0; }
.about-section-heading { text-align: center; max-width: 800px; margin: 0 auto 30px; }
.about-section-heading h2 { margin: 14px 0 18px; }
.about-section-heading > p:last-child { font-size: 19px; }
.about-value-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.about-value-grid article { padding: 30px 26px; border: 1px solid #d9e4d7; border-radius: 18px; background: #fff; text-align: center; }
.about-value-grid .art-icon { width: 62px; height: 62px; margin-bottom: 16px; }
.about-value-grid h3 { font-size: 22px; margin-bottom: 12px; }
.about-value-grid p { font-size: 18px; line-height: 1.75; }
.about-local { padding: 55px 0; text-align: center; background: #edf7fc; }
.about-local h2 { margin: 14px auto 20px; }
.about-local .container > p:not(.eyebrow) { max-width: 800px; margin-inline: auto; font-size: 19px; }
.about-local-phone { margin-top: 22px!important; }
.about-local-phone a { font-weight: 700; color: #174c61; text-decoration: underline; }
@media(max-width:900px) {
 .about-story-grid { gap: 28px; }
 .about-value-grid { gap: 16px; }
 .about-value-grid article { padding: 24px 18px; }
}
@media(max-width:760px) {
 .about-intro { padding: 30px 0; }
 .about-intro .container > p:not(.eyebrow) { font-size: 18px; }
 .about-intro-actions { gap: 12px; }
 .about-intro-actions .text-link { font-size: 17px; }
 .about-story { padding: 36px 0; }
 .about-story-grid,.about-value-grid { grid-template-columns: minmax(0,1fr); }
 .about-story-copy { order: 1; }
 .about-service-photo { order: 2; }
 .about-service-photo > img { aspect-ratio: 1.5; }
 .about-promises,.about-local { padding: 38px 0; }
 .about-section-heading h2,.about-local h2 { font-size: 35px; }
 .about-local-actions { gap: 12px; }
}
@media(max-width:400px) {
 .about-intro h1 { font-size: 35px; }
 .about-intro-actions > .button,.about-local-actions > .button { width: 100%; }
 .about-service-photo figcaption { padding: 18px 16px; gap: 12px; }
 .about-service-photo figcaption strong { font-size: 18px; }
}
