/* Service pages: shared editorial structure, scoped to service components. */
.service-hero-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; }
.service-hero-grid h1 { max-width:14ch; }
.service-hero-grid .lead { font-size:var(--lead-size); }
.service-hero-grid .eyebrow { color:var(--red); }
.service-hero-grid figure img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.service-hero-grid .story-image img { height:100%; aspect-ratio:auto; }
.service-hero-grid figcaption { display:flex; justify-content:space-between; gap:20px; font-size:12px; padding-top:14px; }
.service-hero-grid figcaption span { color:var(--muted); }
.service-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.service-intro h2 { font-size:var(--section-title); }
.service-intro .lead { font-size:var(--lead-size); }
.service-scope { padding:0; margin:38px 0 0; list-style:none; border-top:1px solid var(--rule); }
.service-scope li { display:grid; grid-template-columns:44px .9fr 1.25fr; gap:28px; border-bottom:1px solid var(--rule); padding:25px 0; }
.service-scope h3 { font-size:25px; line-height:1.2; margin:0; }
.service-scope p { font-size:16px; margin:0; color:var(--muted); }
.scope-note { margin:26px 0 0; font-size:14px; color:var(--muted); }
.service-process { background:var(--ink); color:var(--paper); }
.service-process h2 { font-size:var(--section-title); max-width:20ch; }
.service-process .process-list { grid-template-columns:repeat(4,1fr); gap:28px; margin-top:40px; }
.service-process .process-list li { border-color:#6c6f64; }
.service-process .process-list .step-number { color:#c7c9bc; }
.service-process .process-list p { color:#d4d5cd; }
.service-process .eyebrow { color:#bdbfb5; }
.service-process a:focus-visible { outline-color:var(--paper); }
.service-projects { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:38px; }
.service-projects figure img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.service-projects h3 { font-size:26px; margin:10px 0 8px; }
.service-projects p { font-size:15px; color:var(--muted); margin-bottom:8px; }
.service-projects .story-meta { margin-top:16px; }
.service-video { width:100%; aspect-ratio:16/9; border:0; display:block; background:#1d1e1b; }
.service-reel { margin-top:35px; }
.service-reel figcaption { font-size:14px; margin-top:14px; }
.service-related { display:flex; flex-wrap:wrap; gap:12px 32px; padding-block:26px; border-top:1px solid var(--rule); }
.service-related .eyebrow { margin:0; display:flex; align-items:center; color:var(--muted); }
.service-diagram { border-block:1px solid var(--ink); padding:28px 0; }
.service-diagram .diagram-title { font-family:Georgia,serif; font-style:italic; font-size:28px; line-height:1.2; margin-bottom:28px; }
.service-diagram ol { list-style:none; margin:0; padding:0; }
.service-diagram li { display:grid; grid-template-columns:25px 1fr; gap:20px; padding:18px 0; border-top:1px solid var(--rule); font-size:17px; }
.service-diagram li strong { display:block; font-size:19px; line-height:1.3; }
.service-diagram li p { color:var(--muted); font-size:14px; margin:5px 0 0; }
.service-diagram .step-number { padding-top:1px; }
.service-site-list { display:grid; grid-template-columns:1fr 1fr; gap:0 48px; margin:25px 0 0; }
.service-site-list>a { display:grid; grid-template-columns:1fr 22px; gap:18px; padding:25px 0; border-bottom:1px solid var(--rule); text-decoration:none; }
.service-site-list strong { display:block; font-size:23px; font-weight:500; line-height:1.25; letter-spacing:-.025em; }
.service-site-list small { display:block; font-size:13px; color:var(--muted); margin-top:7px; }
.service-site-list>a:hover strong { color:var(--red); }
.service-price-table { width:100%; border-collapse:collapse; font-size:17px; margin:30px 0; }
.service-price-table th,.service-price-table td { padding:18px 0; text-align:left; border-bottom:1px solid var(--rule); }
.service-price-table thead th { border-top:1px solid var(--rule); font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.service-price-table td:last-child,.service-price-table th:last-child { text-align:right; padding-left:24px; }
.service-pricing { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.service-pricing h3 { font-size:28px; line-height:1.2; }
.service-pricing p { font-size:16px; }
.service-pricing .upkeep { padding-top:10px; }
.service-pricing .upkeep article { border-top:1px solid var(--rule); padding-top:24px; margin-bottom:26px; }
.service-pricing .price { font-size:28px; letter-spacing:-.025em; margin-bottom:8px; }
.service-hub .page-hero h1 { max-width:17ch; }
.service-hub-intro { display:grid; grid-template-columns:1.35fr 1fr; gap:90px; align-items:end; }
.service-hub-intro .lead { font-size:var(--lead-size); }
.service-group { display:grid; grid-template-columns:.7fr 1.7fr; gap:80px; padding-block:60px; border-bottom:1px solid var(--rule); }
.service-group>div>h2 { font-size:var(--compact-title); }
.service-group>div>p:not(.eyebrow) { font-size:16px; color:var(--muted); }
.service-directory { list-style:none; padding:0; margin:0; }
.service-directory li { border-top:1px solid var(--rule); }
.service-directory li:first-child { border-color:var(--ink); }
.service-directory a { display:grid; grid-template-columns:35px 1fr 25px; gap:20px; padding:26px 0; text-decoration:none; }
.service-directory h3 { font-size:30px; margin:0 0 10px; }
.service-directory p { font-size:16px; color:var(--muted); margin:0; }
.service-directory a:hover h3 { color:var(--red); }
.service-directory .row-arrow { padding-top:5px; }
.service-directory .service-inquiry { display:block; margin-top:12px; font-size:13px; color:var(--red); }
.service-directory li:target { border-top-color:var(--red); }
.service-jump-links { display:flex; flex-wrap:wrap; gap:8px 28px; margin-top:35px; }
.service-jump-links a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.service-links { display:flex; gap:20px 35px; flex-wrap:wrap; margin-top:24px; }
.service-quote { background:var(--sage); padding:44px; }
.service-quote p { font-family:Georgia,serif; font-size:clamp(29px,3.2vw,43px); font-style:italic; line-height:1.25; letter-spacing:-.025em; }
.service-quote small { font-size:13px; color:var(--muted); }
@media(max-width:1050px) {
 .service-hero-grid { gap:40px; }
 .service-intro,.service-pricing { gap:45px; }
 .service-hub-intro { gap:50px; }
 .service-group { gap:45px; }
 .service-projects { gap:22px; }
}
@media(max-width:800px) {
 .service-hero-grid,.service-intro,.service-pricing,.service-hub-intro,.service-group { grid-template-columns:1fr; gap:30px; }
 .service-hero-grid h1 { max-width:16ch; }
 .service-hero-grid figure img { aspect-ratio:16/10; }
 .service-hero-grid figure { max-width:620px; }
 .service-scope li { grid-template-columns:30px 1fr; gap:14px 22px; }
 .service-scope p { grid-column:2; }
 .service-process .process-list { grid-template-columns:1fr 1fr; }
 .service-projects { grid-template-columns:1fr 1fr; }
 .service-site-list { gap:0 30px; }
 .service-site-list strong { font-size:21px; }
 .service-group { padding-block:45px; }
 .service-hub-intro h1 { margin-bottom:0; }
 .service-quote { padding:30px; }
}
@media(max-width:540px) {
 .service-scope h3 { font-size:24px; }
 .service-scope li { gap:12px 16px; }
 .service-process .process-list,.service-projects,.service-site-list { grid-template-columns:1fr; }
 .service-process .process-list { gap:10px; }
 .service-diagram .diagram-title { font-size:26px; }
 .service-directory a { grid-template-columns:25px 1fr 20px; gap:14px; }
 .service-directory h3 { font-size:26px; }
 .service-directory p { font-size:16px; }
 .service-related { gap:5px 20px; }
 .service-related .eyebrow { width:100%; }
 .service-price-table { font-size:15px; }
 .service-quote { padding:26px; }
}
@media print {
 .service-process { background:white; color:black; }
 .service-process .process-list p { color:black; }
 .service-video { display:none; }
}
