/* H30 v0.7.0 — service-page additions only.
   The approved styles.css and all existing artwork are unchanged. */
.service-hero h1 { max-width:22ch; font-size:clamp(34px,3.25vw,54px); }
.service-hero h1 span { display:block; }
.service-hero .city-lead { max-width:55ch; }
.service-hero .city-hero-copy { padding-bottom:40px; }
.service-hero .city-founder-note a { text-decoration:underline; text-underline-offset:4px; }
.service-main :is(.city-section-heading,.city-planning-grid,.city-approach-grid,.city-questions-grid) { gap:7%; }
.service-main .city-shell { padding-block:clamp(40px,4.5vw,68px); }
.service-jump-nav .city-shell { padding-block:17px; gap:18px 32px; }
.service-jump-nav a { padding-block:5px; }
.service-scope-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:34px; row-gap:28px; }
.service-scope-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-scope-card { border-top:1px solid #d7dfe4; padding:23px 0 0; scroll-margin-top:24px; }
.service-scope-number { font-size:12px; font-weight:500; letter-spacing:.09em; color:#af4419; }
.service-scope-card h3 { font-size:23px; margin:14px 0 13px; }
.service-scope-card p { font-size:15px; color:#4b606e; max-width:56ch; }
.service-scope-note { margin-top:30px; padding-top:20px; border-top:1px solid #d7dfe4; color:#526674; font-size:13px; max-width:92ch; }
.service-main .service-planning .city-shell { grid-template-columns:1.14fr .86fr; }
.service-planning .city-source-link { margin-top:23px; font-size:13px; color:#12394f; }
.service-main .service-planning h2 { max-width:22ch; }
.service-cost { margin-top:32px; padding-top:27px; border-top:1px solid #d9dcd9; }
.service-cost h3 { font-size:27px; line-height:1.2; font-weight:600; }
.service-cost > p { color:#465a68; font-size:14px; margin-top:16px; }
.service-cost dl { margin:21px 0 0; }
.service-cost dl > div { display:grid; grid-template-columns:.84fr 1.16fr; gap:18px; padding:13px 0; border-top:1px solid #dedfdd; }
.service-cost dt { font-size:13px; font-weight:600; }
.service-cost dd { margin:0; color:#52626e; font-size:13px; line-height:1.75; }
.service-preparation h2 { font-size:clamp(25px,2.4vw,33px); }
.service-preparation .button { width:100%; min-height:48px; font-size:12px; padding:12px 17px; margin-top:21px; }
.service-proposal-note { padding-top:21px; border-top:1px solid #dce3e6; }
.service-proposal-note h3 { font-size:17px; }
.service-proposal-note p { font-size:13px; color:#52626e; margin-top:12px; }
.service-process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0; margin:30px 0 0; gap:28px; }
.service-process-grid li { border-top:1px solid #dce3e6; padding-top:22px; }
.service-process-grid li > span { font-size:13px; color:#ac4319; letter-spacing:.1em; }
.service-process-grid h3 { font-size:20px; margin:14px 0 12px; }
.service-process-grid p { font-size:14px; color:#52626e; }
.service-process-note { font-size:13px; color:#596b76; border-top:1px solid #dce3e6; padding-top:22px; margin-top:28px; max-width:94ch; }
.service-feature { color:white; background:var(--navy); }
.service-feature-inner { max-width:1920px; margin:auto; display:grid; grid-template-columns:1fr 1fr; }
.service-feature figure { position:relative; margin:0; min-height:440px; overflow:hidden; }
.service-feature figure img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
.service-feature figcaption { position:absolute; bottom:16px; left:20px; right:20px; width:fit-content; padding:7px 10px; background:#0a2c43db; color:#fff; font-size:11px; line-height:1.6; }
.service-feature-copy { padding:50px clamp(28px,4.5vw,78px); }
.service-feature-copy .eyebrow { color:#70d0f0; }
.service-feature-copy h2 { font-size:clamp(30px,2.8vw,42px); max-width:21ch; }
.service-feature-copy > p:not(.eyebrow) { margin-top:22px; color:#e0e9ef; font-size:15px; }
.service-feature-links { margin-top:23px; display:flex; flex-wrap:wrap; gap:15px 25px; }
.service-white-link { display:inline-flex; align-items:center; gap:8px; font-size:13px; text-decoration:underline; text-underline-offset:5px; }
.service-white-link .icon { width:15px; height:15px; }
.service-coverage-note { margin-top:29px; border-top:1px solid #ffffff35; padding-top:24px; }
.service-coverage-note h3 { font-size:20px; }
.service-coverage-note p { margin-top:11px; font-size:13px; color:#d4e0e8; }
.service-coverage-note a { display:inline-flex; gap:9px; align-items:center; font-size:12px; text-decoration:underline; text-underline-offset:4px; margin-top:17px; }
.service-coverage-note a .icon { width:14px; height:14px; }
.service-faq-list summary { padding-block:20px; }
.service-faq-list details[open] summary { color:#124863; }
.service-faq-answer { padding:0 28px 24px 2px; }
.service-faq-list .service-faq-answer p { margin:0; color:#465a68; font-size:14px; line-height:1.8; }
.service-answer-link { display:inline-flex; align-items:center; gap:8px; color:#173f55; font-size:13px; margin-top:15px; text-decoration:underline; text-underline-offset:4px; }
.service-answer-link .icon { width:14px; height:14px; }
.service-area-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:start; }
.service-area-grid h2 { max-width:23ch; font-size:clamp(28px,2.5vw,38px); }
.service-area-grid p:not(.eyebrow) { color:#52626e; font-size:14px; margin-top:20px; max-width:58ch; }
.service-area-grid .text-link { margin-top:24px; font-size:11px; }
.service-area-grid .city-nearby-links { padding-top:4px; }
.service-noscript { margin:0; padding:20px; background:var(--cream); color:var(--navy); font-size:14px; text-align:center; }
.service-hub-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.service-hub-card { border:1px solid #dce3e6; border-top:3px solid var(--orange); padding:28px; display:flex; flex-direction:column; }
.service-hub-card h3 { font-size:26px; margin:15px 0 14px; }
.service-hub-card h3 a:hover { color:#b34b20; }
.service-hub-card p { font-size:14px; color:#52626e; max-width:60ch; }
.service-hub-card .service-hub-card-lead { color:#1f4053; font-size:16px; margin-bottom:10px; }
.service-hub-card .text-link { margin-top:auto; padding-top:23px; font-size:11px; align-self:flex-start; }
.service-hub-chooser { background:var(--cream); }
.service-choice-list { padding:0; list-style:none; margin:0; border-top:1px solid #d6dddf; }
.service-choice-list li { display:grid; grid-template-columns:1fr 1fr; gap:7%; border-bottom:1px solid #d6dddf; padding:21px 0; align-items:center; font-size:16px; }
.service-choice-list li > span { color:#52626e; }
.service-choice-list a { display:flex; align-items:center; justify-content:space-between; gap:14px; font-size:15px; font-weight:500; }
.service-choice-list a:hover { color:#ac451a; }
.service-choice-list .icon { width:17px; height:17px; color:#db581d; }
@media(min-width:1921px) { .service-feature-copy { padding-right:140px; } }
@media(max-width:1100px) {
 .service-main :is(.city-section-heading,.city-planning-grid,.city-approach-grid,.city-questions-grid) { gap:32px; }
 .service-hero h1 { font-size:35px; }
 .service-scope-grid { column-gap:25px; }
 .service-scope-card h3 { font-size:21px; }
 .service-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 32px; }
 .service-feature-copy { padding:35px 30px; }
 .service-cost dl > div { grid-template-columns:1fr; gap:6px; }
 .service-hub-card h3 { font-size:24px; }
}
@media(max-width:760px) {
 .service-main .city-shell { padding-block:36px; }
 .service-main .city-jump-nav .city-shell { padding-block:14px; }
 .service-hero h1 { font-size:34px; max-width:21ch; }
 .service-hero .city-hero-copy { padding-bottom:30px; }
 .service-hero .city-hero-photo { height:245px; }
 .service-hero .city-lead { font-size:14px; margin-top:19px; }
 .service-main .service-planning .city-shell,.service-area-grid,.service-feature-inner { grid-template-columns:1fr; }
 .service-scope-grid,.service-scope-grid--four { grid-template-columns:1fr; gap:23px; }
 .service-scope-card h3 { font-size:23px; margin-block:11px; }
 .service-scope-card p { font-size:14px; max-width:none; }
 .service-scope-note { font-size:12px; margin-top:26px; padding-top:18px; }
 .service-process-grid { grid-template-columns:1fr 1fr; gap:23px 18px; }
 .service-process-grid h3 { font-size:17px; }
 .service-process-grid p { font-size:13px; }
 .service-process-note { font-size:12px; }
 .service-cost h3 { font-size:25px; }
 .service-cost dl > div { grid-template-columns:1fr; gap:7px; }
 .service-feature figure { min-height:280px; }
 .service-feature-copy { padding:34px 24px; }
 .service-feature figcaption { left:14px; right:14px; bottom:14px; font-size:10px; }
 .service-feature-copy > p:not(.eyebrow) { font-size:14px; margin-top:19px; }
 .service-feature-copy h2 { font-size:31px; }
 .service-faq-list summary { font-size:15px; }
 .service-faq-answer { padding-right:8px; }
 .service-area-grid { gap:27px; }
 .service-area-grid .city-nearby-links { gap:0 20px; }
 .service-area-grid .city-nearby-links a { font-size:13px; min-height:49px; }
 .service-hub-grid { grid-template-columns:1fr; gap:22px; }
 .service-hub-card { padding:24px; }
 .service-choice-list li { grid-template-columns:1fr; gap:10px; font-size:14px; padding-block:19px; }
 .service-choice-list a { font-size:14px; }
 .service-jump-nav .city-shell { gap:8px 23px; font-size:12px; }
}
@media(max-width:370px) {
 .service-hero h1 { font-size:30px; }
 .service-process-grid { grid-template-columns:1fr; }
 .service-hub-card h3 { font-size:22px; }
}
