:root {
--charcoal: #2F312B;
--charcoal-soft: #4A4C45;
--charcoal-muted: #6B6D65;
--logo-green: #55771F;
--warm-bg: #F4F1EA;
--warm-border: #E8E4DB;
--warm-border-dark: #DDD8CE;
}

body {
font-family: 'Inter', sans-serif;
color: var(--charcoal-soft);
background: #ffffff;
letter-spacing: -0.011em;
}

h1, h2, h3 {
font-family: 'Inter', sans-serif;
font-weight: 600;
color: var(--charcoal);
letter-spacing: -0.02em;
}

.accent-green { color: var(--logo-green); }
.bg-accent-green { background-color: var(--logo-green); }
.max-w-4xl { max-width: 56rem; }

.site-nav-links {
gap: clamp(1rem, 2.3vw, 2rem);
font-size: clamp(0.72rem, 1vw, 0.875rem);
}

.service-hero {
background: linear-gradient(135deg, rgba(244,241,234,0.96) 0%, rgba(244,241,234,0.76) 52%, rgba(255,255,255,0.98) 100%);
border-bottom: 1px solid var(--warm-border);
padding: 7.75rem 1.5rem 3.5rem;
}

.service-hero-grid {
align-items: center;
display: grid;
gap: 2rem;
}

.service-kicker,
.card-kicker {
color: var(--logo-green);
font-size: 0.74rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}

.service-lede {
color: var(--charcoal-soft);
font-size: clamp(1.12rem, 2.3vw, 1.42rem);
font-weight: 300;
line-height: 1.65;
max-width: 50rem;
}

.service-image {
border: 1px solid var(--warm-border-dark);
box-shadow: 0 18px 46px rgba(47,49,43,0.12);
overflow: hidden;
}

.service-image img {
aspect-ratio: 4 / 3;
display: block;
height: 100%;
object-fit: cover;
width: 100%;
}

.service-image-wide img {
aspect-ratio: 16 / 9;
height: auto;
object-fit: contain;
}

.section-wrap {
padding: 4rem 1.5rem;
}

.section-wrap-muted {
background: var(--warm-bg);
border-bottom: 1px solid var(--warm-border);
border-top: 1px solid var(--warm-border);
}

.service-card {
background: #ffffff;
border: 1px solid var(--warm-border);
box-shadow: 0 1px 2px rgba(47,49,43,0.04);
color: inherit;
display: block;
padding: 1.6rem;
text-decoration: none;
transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.service-card:hover {
border-color: rgba(85,119,31,0.42);
box-shadow: 0 12px 30px rgba(47,49,43,0.08);
transform: translateY(-1px);
}

.service-card-static:hover {
border-color: var(--warm-border);
box-shadow: 0 1px 2px rgba(47,49,43,0.04);
transform: none;
}

.card-grid,
.detail-grid {
display: grid;
gap: 1.25rem;
}

.detail-panel {
background: #ffffff;
border: 1px solid var(--warm-border);
padding: 1.5rem;
}

.detail-panel ul {
color: var(--charcoal-soft);
line-height: 1.65;
list-style: disc;
margin: 1rem 0 0 1.15rem;
}

.detail-panel li + li {
margin-top: 0.55rem;
}

.town-list {
display: flex;
flex-wrap: wrap;
gap: 0.65rem;
margin-top: 1.25rem;
}

.town-list span {
background: rgba(85,119,31,0.08);
border: 1px solid rgba(85,119,31,0.18);
color: var(--charcoal);
font-size: 0.82rem;
font-weight: 700;
padding: 0.45rem 0.65rem;
}

.inline-link {
color: var(--logo-green);
font-weight: 700;
text-decoration: underline;
text-underline-offset: 0.18em;
}

.service-back {
align-items: center;
color: var(--logo-green);
display: inline-flex;
font-size: 0.78rem;
font-weight: 700;
gap: 0.5rem;
letter-spacing: 0.12em;
margin-bottom: 2rem;
text-decoration: none;
text-transform: uppercase;
}

.resources-cta {
background: var(--charcoal);
color: #ffffff;
padding: 2rem;
}

.resources-cta-layout {
align-items: center;
display: grid;
gap: 2rem;
grid-template-columns: 1fr;
}

.resources-cta-copy {
color: rgba(255,255,255,0.80);
max-width: 48rem;
}

.resources-cta-wrap {
padding: 0 1.5rem 5rem;
}

.btn-primary:hover {
background-color: #4a6b1a;
}

@media (min-width: 768px) {
.service-hero {
padding-top: 9rem;
padding-bottom: 4.5rem;
}

.service-hero-grid {
grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.75fr);
}

.card-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.detail-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}

.section-wrap {
padding-bottom: 5rem;
padding-top: 5rem;
}

.resources-cta {
padding: 2.5rem;
}

.resources-cta-layout {
grid-template-columns: 1fr auto;
}
}
