/* Extra styles for the service pages (added 2026-11-13). Loaded after site.css, uses its :root variables. */
.crumbs{display:flex;flex-wrap:wrap;gap:4px 10px;list-style:none;font-size:.9rem;margin-bottom:16px;color:rgba(255,255,255,.85)}
.crumbs a{color:#fff;text-underline-offset:3px}
.crumbs li+li::before{content:"\2039";margin-inline-end:10px;opacity:.7}
.nav a{white-space:nowrap}
#hero.sub{min-height:min(64vh,580px)}
#hero.sub .hero-body{max-width:720px}
#hero.sub h1{font-size:clamp(30px,5.6vw,48px)}

.facts{background:#fff;border-bottom:1px solid var(--border)}
.facts ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);max-width:1160px;margin:0 auto}
@media(min-width:800px){.facts ul{grid-template-columns:repeat(4,1fr)}}
.facts li{display:flex;align-items:center;gap:12px;padding:18px 20px;color:var(--foreground);font-weight:500;font-size:.98rem}
.facts svg{width:26px;height:26px;flex:none;color:var(--accent-text);stroke-width:1.5}

.intro-text p{max-width:60ch;margin-top:16px;font-size:1.0625rem}
.intro-text p:first-of-type{font-family:var(--font-head);font-size:clamp(1.3rem,2.7vw,1.7rem);line-height:1.5;color:var(--foreground)}
.sec-blue .intro-text p,.sec-brown .intro-text p{color:inherit}

.compare{display:grid;gap:20px;margin-top:36px}
@media(min-width:800px){.compare{grid-template-columns:1fr 1fr}}
.panel{border-radius:var(--r-lg);padding:30px}
.panel h3{font-size:1.4rem;margin-bottom:14px}
.panel ul{list-style:none;display:grid;gap:12px}
.panel li{display:flex;gap:12px;align-items:flex-start}
.panel li svg{width:22px;height:22px;flex:none;margin-top:3px}
.panel.yes{background:var(--sage);color:#173f28}
.panel.yes h3{color:#173f28}
.panel.yes li svg{color:var(--sage-ink)}
.panel.no{background:var(--sand);color:#3b2314}
.panel.no h3{color:#3b2314}
.panel.no li svg{color:var(--brown)}

.sendlist{counter-reset:s;list-style:none;display:grid;gap:12px;margin-top:28px;max-width:780px}
.sendlist li{counter-increment:s;display:flex;gap:16px;align-items:center;padding:16px 20px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);color:var(--foreground);font-weight:500;transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) var(--ease)}
.sendlist li:hover{transform:translateX(-4px);box-shadow:var(--shadow)}
.sendlist li::before{content:counter(s);flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-family:var(--font-head);font-size:1.1rem}
.send-cta{margin-top:28px}

.steps.four{grid-template-columns:1fr}
@media(min-width:700px){.steps.four{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.steps.four{grid-template-columns:repeat(4,1fr)}}
.step:nth-child(4){background:#3b2314}

.svc-grid{display:grid;gap:22px;margin-top:36px}
@media(min-width:700px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.svc-grid.three{grid-template-columns:repeat(3,1fr)}}
.svc-card{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);background:#fff;border:1px solid var(--border);text-decoration:none;color:inherit;transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) var(--ease)}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.svc-card .ph{aspect-ratio:4/3}
.svc-card:hover .ph img{transform:scale(1.04)}
.svc-card .body{display:flex;flex-direction:column;gap:6px;flex:1;padding:20px 22px 24px}
.svc-card h3{font-size:1.3rem;display:flex;align-items:center;gap:10px}
.svc-card h3 svg{width:24px;height:24px;color:var(--accent-text);stroke-width:1.5;flex:none}
.svc-card .more{margin-top:auto;padding-top:12px;color:var(--accent-text);font-weight:600}

.towns-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;list-style:none}
.towns-note{margin-top:18px;max-width:62ch}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin-top:28px;font-size:.95rem}
.foot-links a{color:rgba(255,255,255,.85)}
.sec-link{display:inline-flex;margin-top:22px;font-weight:600;color:inherit;text-underline-offset:4px}
.sec-blue .sec-link,.sec-brown .sec-link{color:#fff}

@media(prefers-reduced-motion:reduce){
  .sendlist li:hover,.svc-card:hover{transform:none}
  .svc-card:hover .ph img{transform:none}
}

/* reviews list (rendered by tools/build_reviews.py) */
.reviews-list{list-style:none;display:grid;gap:16px;margin-top:28px}
@media(min-width:800px){.reviews-list{grid-template-columns:repeat(2,1fr)}}
.review{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:24px;display:grid;gap:10px}
.review .stars{color:var(--accent-text);letter-spacing:2px;font-size:1.1rem}
.review blockquote p{color:var(--foreground);font-size:1.05rem}
.review .who{font-size:.9rem}
/* contact form */
.contact-form{margin-top:48px;max-width:560px;padding:28px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--cream)}
.contact-form h3{color:var(--foreground)}
.form-note{font-size:.9rem;margin-top:6px}
.field select{width:100%;min-height:44px;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;font:inherit;color:var(--foreground);background:#fff}
.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(181,121,79,.25)}
.contact-form .cta-row{margin-top:24px}

/* PROFILE-CSS-START */
#hero .hero-photo>.ph{position:absolute;inset:0}
@media(min-width:900px){header .nav{display:none}header .menu-btn{display:inline-grid}}
.profile{background:#fff;padding:22px 0 14px}
.profile-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.profile .avatar{width:64px;height:64px;border-radius:50%;border:2px solid var(--border);background:#fff;object-fit:contain;padding:6px;flex:none}
.profile .who{display:grid;gap:2px;min-width:0;flex:1 1 180px}
.profile .who strong{font-family:var(--font-head);font-size:1.4rem;color:var(--foreground);line-height:1.2}
.profile .who span{color:var(--body);font-size:.95rem}
.profile .acts{display:flex;gap:8px;flex-wrap:wrap}
.tabs-bar{position:sticky;top:var(--header-h-small);z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.tabs-bar ul{list-style:none;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:6px 0}
.tabs-bar ul::-webkit-scrollbar{display:none}
.tabs-bar a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--r-pill);white-space:nowrap;text-decoration:none;color:var(--foreground);font-weight:500;transition:background-color var(--t-hover) var(--ease),color var(--t-hover) var(--ease)}
.tabs-bar a:hover{background:var(--cream)}
.tabs-bar a[aria-current="page"]{background:var(--primary);color:#fff}

.gal-filter{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.gal-filter button{min-height:44px;padding:0 20px;border-radius:var(--r-pill);border:1px solid var(--border);background:#fff;color:var(--primary);font-weight:500;cursor:pointer;transition:background-color var(--t-hover) var(--ease),color var(--t-hover) var(--ease)}
.gal-filter button[aria-pressed="true"]{background:var(--primary);color:#fff;border-color:var(--primary)}
.gal-grid{display:grid;gap:22px;margin-top:32px}
@media(min-width:700px){.gal-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.gal-grid{grid-template-columns:repeat(3,1fr)}}
.gal-card{overflow:hidden;border-radius:var(--r-lg);background:#fff;border:1px solid var(--border);display:flex;flex-direction:column}
.gal-card[hidden]{display:none}
.gal-card .ph{aspect-ratio:4/3}
.gal-card .vwrap{aspect-ratio:9/16;background:#10213a}
@media(min-width:700px){.gal-card.tall{grid-row:span 2}}
.gal-card video{width:100%;height:100%;object-fit:contain;display:block}
.gal-card .body{padding:18px 22px 22px;display:grid;gap:8px}
.gal-card h3{font-size:1.2rem}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-flex;padding:4px 12px;border-radius:var(--r-pill);background:var(--gray);color:var(--foreground);font-size:.8rem;font-weight:600}
.badge.note{background:var(--sand);color:#3b2314}
.gal-soon{border:1.5px dashed var(--border);background:var(--cream);justify-content:center;text-align:center;padding:32px 24px;gap:12px;align-items:center}

.empty-state{max-width:640px;margin:32px auto 0;text-align:center;padding:40px 28px;border:1.5px dashed var(--border);border-radius:var(--r-lg);background:#fff;display:grid;gap:12px;justify-items:center}
.empty-state svg{width:44px;height:44px;color:var(--accent-text);stroke-width:1.5}
.empty-state h3{font-size:1.5rem}
.empty-state p{max-width:46ch}
.hours-list{list-style:none;display:grid;gap:12px;margin-top:24px;max-width:560px}
.hours-list li{display:flex;gap:12px;align-items:center;padding:14px 18px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);color:var(--foreground);font-weight:500}
.hours-list svg{width:24px;height:24px;color:var(--accent-text);flex:none;stroke-width:1.5}
/* PROFILE-CSS-END */

/* blog (built by tools/build_blog.py) */
.post-wrap{max-width:760px}
.post-meta{font-size:.9rem;color:var(--accent-text);margin-bottom:20px}
.post{color:var(--body);font-size:1.075rem;line-height:1.85}
.post h2{font-family:var(--font-head);color:var(--foreground);font-size:clamp(1.4rem,3vw,1.8rem);margin:40px 0 12px;line-height:1.3}
.post h3{color:var(--foreground);font-size:1.15rem;margin:28px 0 8px}
.post p{margin-top:14px}
.post ul,.post ol{margin:14px 0 0;padding-inline-start:1.4em;display:grid;gap:8px}
.post a,.related a,.post-cta p a:not(.btn){color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}
.post blockquote{margin:20px 0;padding:14px 20px;border-inline-start:4px solid var(--accent);background:var(--cream);border-radius:var(--r-sm)}
.post-cta{margin-top:56px;padding:28px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--cream);display:grid;gap:12px;justify-items:start}
.post-cta h2{margin:0;font-family:var(--font-head);color:var(--foreground);font-size:1.4rem}
.related{list-style:none;display:grid;gap:10px;margin-top:12px}
.post-list{list-style:none;display:grid;gap:16px}
@media(min-width:800px){.post-list{grid-template-columns:repeat(2,1fr)}}
.post-list a{display:grid;gap:8px;align-content:start;height:100%;padding:24px;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;text-decoration:none;color:var(--body);transition:border-color var(--t-hover) var(--ease),transform var(--t-hover) var(--ease)}
.post-list a:hover{border-color:var(--accent);transform:translateY(-2px)}
.post-list h2{font-family:var(--font-head);color:var(--foreground);font-size:1.3rem;line-height:1.35}
.post-cat{font-size:.85rem;color:var(--accent-text);font-weight:600}
