/* Local pages deliberately use their own layout, without the photo-hero overlay. */
.local-page { color:var(--lotus-text-main); }
.local-page .local-intro { padding:48px 0 56px; }
.local-intro-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:64px; align-items:center; }
.local-page .local-eyebrow { font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--lotus-teal-dark); margin:0 0 18px; }
.local-page h1 { font-size:clamp(32px,3.6vw,49px); line-height:1.15; letter-spacing:-.045em; margin:0 0 24px; max-width:760px; }
.local-page h1 span { color:var(--lotus-teal); }
.local-page .local-lead { font-size:17px; line-height:1.8; color:var(--lotus-text-muted); max-width:570px; margin:0 0 28px; }
.local-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.local-page .local-text-link { display:inline-flex; gap:12px; align-items:center; color:var(--lotus-teal-dark); font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.local-promises { display:flex; flex-wrap:wrap; gap:8px 18px; padding:22px 0 0; margin:0; list-style:none; font-size:11px; color:var(--lotus-text-muted); }
.local-promises li::before { content:'✓'; color:var(--lotus-teal); margin-right:6px; }
.local-photo { position:relative; margin:0; min-width:0; }
.local-page .local-photo img { display:block; width:100%; height:420px; object-fit:cover; object-position:center; border-radius:24px 24px 72px 24px; }
.local-photo figcaption { position:absolute; bottom:20px; left:20px; right:20px; width:fit-content; padding:12px 16px; border-radius:10px; background:#fffffff2; color:var(--lotus-teal-deep); font-size:12px; font-weight:700; }
.local-page .local-section { padding:64px 0; }
.local-page h2 { font-size:clamp(26px,2.5vw,35px); line-height:1.25; letter-spacing:-.035em; margin:0 0 22px; }
.local-page h3 { font-size:21px; line-height:1.4; letter-spacing:-.025em; margin:12px 0; }
.local-page p { line-height:1.85; }
.local-context { background:var(--lotus-sand-soft); border-block:1px solid var(--lotus-border-subtle); }
.local-context-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:72px; }
.local-page .local-editorial { font-size:16px; line-height:1.95; margin:0; }
.local-aside { align-self:start; margin-top:6px; padding:26px 0 26px 30px; border-left:2px solid #bad6d4; }
.local-aside p { font-size:14px; color:var(--lotus-text-muted); }
.local-number { display:block; color:var(--lotus-teal-dark); font-size:12px; font-weight:700; letter-spacing:.05em; }
.local-section-heading { max-width:640px; margin-bottom:32px; }
.local-section-heading p:last-child { color:var(--lotus-text-muted); }
.local-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.local-service { display:flex; flex-direction:column; padding:24px 0 0; border-top:2px solid var(--lotus-border); min-width:0; }
.local-service p { font-size:14px; color:var(--lotus-text-muted); margin:0 0 24px; }
.local-service a { margin-top:auto; color:var(--lotus-teal-dark); font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.local-service a span { margin-left:5px; }
.local-planning { background:var(--lotus-surface-muted); }
.local-planning p { color:var(--lotus-text-muted); font-size:14px; }
.local-steps { list-style:none; counter-reset:step; padding:0; margin:0; }
.local-steps li { counter-increment:step; position:relative; padding:0 0 24px 44px; }
.local-steps li::before { content:counter(step); position:absolute; left:0; top:0; width:28px; height:28px; display:grid; place-items:center; border:1px solid #bad6d4; border-radius:50%; color:var(--lotus-teal-dark); font-size:12px; }
.local-steps p { margin:6px 0 0; }
.local-contact-inner { display:grid; grid-template-columns:1.7fr 1fr; align-items:center; gap:60px; }
.local-contact-inner p:last-child { margin-bottom:0; color:var(--lotus-text-muted); max-width:650px; }
.local-contact-actions { display:flex; flex-direction:column; align-items:center; gap:18px; }
.local-phone { color:var(--lotus-teal-dark); font-size:17px; font-weight:700; }
.local-page .local-nearby { border-top:1px solid var(--lotus-border); padding:40px 0 54px; }
.local-place-links { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.local-place-links a { display:flex; gap:22px; justify-content:space-between; padding:14px 18px; border:1px solid var(--lotus-border); border-radius:10px; font-size:14px; color:var(--lotus-teal-dark); }
.local-place-links a:hover { background:var(--lotus-teal-subtle); }
.local-page a:focus-visible { outline:3px solid var(--lotus-teal); outline-offset:5px; }
.local-hub-intro .wrap { max-width:var(--lotus-container-max); }
.local-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; }
.local-directory article { border-top:1px solid var(--lotus-border); padding-top:24px; }
.local-directory h3 a { color:var(--lotus-teal-dark); }
.local-directory p { font-size:14px; color:var(--lotus-text-muted); }
.local-service-hero { padding:48px 0; }
.local-service-hero .zone-grid { align-items:center; }
.local-service-hero .zone-media img { max-height:440px; width:100%; object-fit:cover; }
.local-service-hero h1 { font-size:clamp(30px,3.5vw,46px); line-height:1.2; }
@media(max-width:800px) {
 .local-intro-grid { gap:28px; grid-template-columns:1.2fr 1fr; }
 .local-page .local-photo img { height:370px; }
 .local-context-grid { gap:32px; }
 .local-services { gap:20px; }
 .local-contact-inner { gap:24px; }
}
@media(max-width:640px) {
 .local-page .local-intro { padding:30px 0 36px; }
 .local-intro-grid,.local-context-grid,.local-services,.local-contact-inner,.local-directory { grid-template-columns:1fr; gap:28px; }
 .local-page h1 { font-size:34px; overflow-wrap:break-word; }
 .local-page .local-lead { font-size:16px; }
 .local-page .local-photo img { height:260px; border-radius:18px 18px 48px 18px; object-position:center 40%; }
 .local-page .local-section { padding:40px 0; }
 .local-page .local-eyebrow { font-size:10px; }
 .local-aside { padding:4px 0 4px 20px; }
 .local-contact-actions { align-items:flex-start; }
 .local-promises { font-size:11px; }
 .local-service p { margin-bottom:16px; }
 .local-place-links a { flex:1 1 140px; }
 .local-service-hero .zone-media img { max-height:280px; }
}

/* A compact editorial rhythm: local context, services, steps, one closing invitation. */
.local-page .local-section { padding:48px 0; }
.local-context-grid { gap:56px; }
.local-aside { border:0; padding:0; margin:0; }
.local-locator { margin:0; }
.local-locator svg { display:block; width:100%; height:150px; border-radius:12px; overflow:hidden; }
.local-locator figcaption { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:10px; font-size:11px; color:var(--lotus-text-main); }
.local-locator figcaption b { display:inline-grid; place-items:center; background:var(--lotus-teal-dark); color:white; width:18px; height:18px; border-radius:50%; margin-right:4px; }
.local-locator figcaption span:last-child b { background:var(--lotus-teal-deep); }
.local-aside .local-office { margin:14px 0 10px; font-size:12px; line-height:1.65; }
.local-section-heading { max-width:none; display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:24px; }
.local-section-heading h2 { margin:0; }
.local-section-heading p { margin:0; font-size:14px; max-width:340px; }
.local-service { border:0; padding:24px; border-radius:16px; background:var(--lotus-sand-soft); }
.local-service:nth-child(2) { background:#eef4f1; }
.local-service:nth-child(3) { background:#edf3f5; }
.local-service-icon { display:grid; place-items:center; width:46px; height:46px; color:var(--lotus-teal-dark); background:#fff9; border-radius:50%; }
.local-service-icon svg { width:30px; height:30px; }
.local-service h3 { font-size:20px; margin:16px 0 8px; }
.local-service p { line-height:1.7; margin-bottom:20px; }
.local-page .local-planning { padding:64px 0; }
.local-planning-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:24px; }
.local-planning-heading h2 { margin:0; font-size:28px; }
.local-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.local-steps li { padding:0 0 0 40px; }
.local-steps p { line-height:1.7; }
.local-page .local-contact { background:var(--lotus-teal-deep); color:#fff; padding:44px 0 28px; }
.local-contact-inner { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:48px; }
.local-contact-inner h2 { font-size:clamp(28px,3vw,40px); margin:0 0 12px; max-width:540px; }
.local-contact-inner p:last-child { color:#d2e2e2; line-height:1.7; font-size:15px; max-width:520px; }
.local-contact-actions { align-items:flex-end; gap:14px; }
.local-contact .btn-primary { background:#fff; border-color:#fff; color:var(--lotus-teal-deep); gap:20px; }
.local-contact .btn-primary:hover { background:#dceee8; border-color:#dceee8; }
.local-contact .local-phone { color:#fff; }
.local-page .local-nearby { border-top:1px solid #ffffff30; padding:20px 0 0; margin-top:30px; display:flex; gap:24px; align-items:baseline; }
.local-nearby strong { font-size:12px; white-space:nowrap; color:#d2e2e2; }
.local-place-links { gap:10px 22px; margin:0; }
.local-place-links a { display:inline-flex; border:0; border-radius:0; padding:4px 0; color:#fff; font-size:12px; gap:6px; text-decoration:underline; text-underline-offset:4px; }
.local-place-links a:hover { background:transparent; color:#b4dcd2; }
.local-contact a:focus-visible { outline-color:#fff; }
@media(max-width:800px) {
 .local-services { gap:16px; }
 .local-service { padding:20px; }
 .local-section-heading { display:block; }
 .local-section-heading p { margin-top:12px; max-width:none; }
 .local-steps { gap:20px; }
 .local-page .local-nearby { display:block; }
 .local-place-links { margin-top:10px; }
}
@media(max-width:640px) {
 .local-page .local-section { padding:32px 0; }
 .local-context-grid { gap:24px; }
 .local-services { gap:12px; }
 .local-service { display:grid; grid-template-columns:40px minmax(0,1fr); column-gap:16px; padding:20px; }
 .local-service-icon { width:40px; height:40px; grid-row:1 / 4; }
 .local-service h3 { margin:0 0 6px; font-size:19px; }
 .local-service p,.local-service a { grid-column:2; }
 .local-service p { margin-bottom:12px; }
 .local-planning-heading { display:block; margin-bottom:24px; }
 .local-planning-heading h2 { font-size:26px; margin-bottom:12px; }
 .local-steps { grid-template-columns:1fr; gap:20px; }
 .local-contact-inner { grid-template-columns:1fr; gap:24px; }
 .local-contact-actions { align-items:flex-start; }
 .local-page .local-contact { padding:32px 0 24px; }
 .local-page .local-nearby { padding-top:18px; margin-top:24px; }
 .local-place-links a { flex:0 1 auto; }
}

.local-map-credit { display:block; margin-top:8px; font-size:9px; line-height:1.5; color:var(--lotus-text-muted); }
.local-map-credit a { color:inherit; text-decoration:underline; }
.local-context .local-section-heading { display:block; }
.local-contact-inner > *, .local-aside { min-width:0; }
.local-service a { overflow-wrap:anywhere; }
