/* Regional content uses the public site's original typography and components. */
.local { margin: 0; background: #e9f0f0; color: #232323; font-family: "Golos Text", Arial, sans-serif; }
.local * { box-sizing: border-box; }
.local a { text-underline-offset: .2em; }
.local a:focus-visible, .local summary:focus-visible { outline: 3px solid #49a078; outline-offset: 4px; }
.local .frame { width: 100%; max-width: 1320px; padding: 0 32px; margin: auto; }
.local .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 2000; padding: .8rem; background: white; }
.local .skip-link:focus { top: 1rem; }
.local .hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; justify-content: center; min-height: 90svh; padding: 170px 32px 64px; background: #232323; color: white; }
.local .hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; z-index: -2; }
.local .hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.3) 10%, rgba(0,0,0,.48) 38%, rgba(0,0,0,.78) 100%); }
.local .hero .lead { width: 100%; max-width: 1160px; text-align: center; }
.local .hero h1 { color: white; font-weight: 700; line-height: 1.1; margin: 0 auto 1.5rem; max-width: 24ch; text-wrap: balance; }
.local .hero p { max-width: 900px; margin: 0 auto 1.2rem; font-size: clamp(1.05rem, 1.6vw, 1.4rem); line-height: 1.4; }
.local .hero .hero-angle { font-weight: 700; }
.local .eyebrow { font-size: .85rem; letter-spacing: .04em; font-weight: 700; margin: 0 0 1rem; }
.local .hero .eyebrow { font-size: 1rem; }
.local .actions { display: flex; gap: .6rem 1rem; align-items: center; flex-wrap: wrap; }
.local .hero .actions { justify-content: center; margin-top: 1.8rem; }
.local main .btn { background: #49a078; border: 2px solid #49a078; color: white; border-radius: 100px; padding: 1rem 2rem; font-weight: 700; font-size: 1rem; margin: 0; min-height: 48px; text-align: center; }
.local main .btn:hover { background: #3d8866; border-color: #3d8866; }
.local .hero .phone { color: #fff; border: 2px solid white; border-radius: 100px; padding: 1rem 2rem; font-size: 1rem; font-weight: 700; min-height: 48px; }
.local .crumb { display: flex; gap: .4rem .7rem; flex-wrap: wrap; padding: 1.5rem 0; font-size: .9rem; }
.local .crumb a { color: #232323; text-decoration: underline; }
.local .panel { margin: 3rem 0; }
.local h2 { font-size: clamp(1.8rem, 3vw, 3.2rem); font-weight: 700; line-height: 1.15; margin: 0 0 1.5rem; text-wrap: balance; }
.local h3 { font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.local main p { line-height: 1.55; }
.local .coverage { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 3rem; padding: 1rem 0 2rem; }
.local .coverage h2 { max-width: 22ch; }
.local .coverage p, .local .content-grid p, .local .quote-panel p { font-size: 1.12rem; }
.local .towns, .local .links { list-style: none; padding: 0; margin: .5rem 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.local .towns a, .local .links a, .local .group-links a { display: inline-flex; align-items: center; min-height: 44px; border-radius: 100px; padding: .6rem 1.1rem; background: white; color: #232323; text-decoration: none; font-size: 1rem; }
.local .towns a:hover, .local .links a:hover, .local .group-links a:hover { background: #dce7e2; }
.local .note { color: #565656; font-size: .95rem !important; }
.local .content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.local .box { padding: 2.5rem; background: #fff; border-radius: 2rem; }
.local .content-grid h2 { font-size: clamp(1.65rem, 2.2vw, 2.3rem); }
.local .section-number { color: #49a078; font-size: 1rem; font-weight: 700; display: block; margin-bottom: 1.5rem; }
.local .box p:last-child { margin-bottom: 0; }
.local .faq h2 { text-align: center; }
.local .faq details { border-top: 1px solid #dedede; padding: .4rem 0; }
.local .faq summary { cursor: pointer; padding: 1rem 0; font-size: 1.2rem; font-weight: 700; }
.local .faq details p { margin: .5rem 0 1.5rem; font-size: 1.1rem; }
.local .quote-panel { background: white; border-radius: 2rem; padding: 4rem; text-align: center; }
.local .quote-panel p { max-width: 800px; margin: 1rem auto; }
.local .quote-panel .actions { justify-content: center; margin-top: 2rem; }
.local .quote-panel .actions > a:not(.btn) { color: #232323; padding: 1rem; text-decoration: underline; }
.local .related { padding-bottom: 2rem; }
.local .related p { margin: 1.5rem 0 .75rem; }
.local > footer { background: #fff; padding: 3rem 0; color: #232323; }
.local .footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.local footer a { display: inline-flex; align-items: center; min-height: 44px; color: #232323; text-decoration: underline; }
.local footer strong { font-size: 1.5rem; }
.local footer p { margin: .6rem 0; }
.local address { font-style: normal; }
.local .intro-panel { text-align: center; padding: 1rem 0; }
.local .intro-panel p { max-width: 850px; margin: 1rem auto; font-size: 1.2rem; }
.local .group-links { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; margin: 2rem 0; }
.local .region-group { scroll-margin-top: 130px; }
.local .region-group > h2 { text-align: center; margin: 3rem 0 2rem; }
.local .region-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.local .region-card { display: flex; flex-direction: column; padding: 2rem; border-radius: 2rem; background: white; color: #232323; text-decoration: none; }
.local .region-card:hover { box-shadow: 0 12px 28px rgba(0,0,0,.08); }
.local .card-county { font-size: .95rem; color: #565656; margin-bottom: .75rem; }
.local .region-card p { font-size: 1.1rem; }
.local .card-arrow { margin-top: auto; font-weight: 700; color: #28764f; }
.local .steps { max-width: 950px; margin: 1rem auto; padding-left: 1.5rem; }
.local .steps li { padding-left: .5rem; margin: 1.4rem 0; font-size: 1.15rem; }
.local .service-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.local .service-strip a { color: #232323; padding: 2rem; border-radius: 2rem; background: white; }
.local .service-strip strong { display: block; font-size: 1.35rem; margin-bottom: .75rem; }
.local .service-strip span { display: block; }
@media (max-width: 1100px) {
  .local .content-grid { grid-template-columns: 1fr; }
  .local .content-grid h2 { font-size: 2rem; }
  .local .region-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .local .frame { padding: 0 16px; }
  .local .hero { min-height: 90svh; padding: 120px 20px 40px; }
  .local .hero h1 { font-size: 2rem; max-width: 20ch; }
  .local .hero .eyebrow { font-size: .85rem; }
  .local .hero .hero-angle { font-size: 1.15rem; }
  .local .hero .actions { gap: .75rem; }
  .local .hero .phone, .local main .btn { padding: .85rem 1.5rem; }
  .local .coverage, .local .quote-panel, .local .footer-grid, .local .region-cards, .local .service-strip { grid-template-columns: 1fr; }
  .local .coverage { gap: 1rem; }
  .local .panel { margin: 2rem 0; }
  .local .box, .local .quote-panel, .local .region-card { padding: 2rem 1.5rem; }
  .local h2, .local .content-grid h2 { font-size: 1.8rem; }
  .local .quote-panel .actions { flex-direction: column; }
  .local .crumb { font-size: .8rem; }
}
