/* Town landing pages only: shared agency styling, existing local content. */
.town-page {
    --town-navy: #0f172a;
    --town-overlay-end: rgba(30, 58, 90, .86);
    font-family: 'Inter', sans-serif;
    background-color: #f8fafc !important;
}
.town-page--dobson { --town-overlay-end: rgba(6, 78, 59, .88); }
.town-page h1, .town-page h2, .town-page h3, .town-page .town-brand {
    font-family: 'Outfit', sans-serif !important;
}
.town-page h2, .town-page h3 { font-weight: 700 !important; }
.town-page .town-brand {
    color: #0f172a !important;
    font-size: 1.35rem !important;
    line-height: 1.1;
    letter-spacing: -.025em;
}
.town-brand span { color: #b45309; }
.town-page #main-header { border-bottom: 1px solid #e2e8f0; }
.town-page #main-header .town-brand { flex-shrink: 0; white-space: nowrap; }
.town-page #main-header nav { font-size: .875rem; }
.town-page #main-header nav > a,
.town-page #main-header nav > .group > button { white-space: nowrap; }
.town-page #main-header nav > .group > button,
.town-page #main-header nav > .nav-link { padding-left: .625rem !important; padding-right: .625rem !important; }
.town-page .town-hero {
    background: var(--town-navy);
    padding-top: 5rem !important;
    padding-bottom: 0 !important;
}
.town-page .town-hero-overlay {
    background: linear-gradient(120deg, rgba(3, 12, 27, .94), var(--town-overlay-end)) !important;
}
.town-page .town-hero-content {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
}
.town-page .town-hero h1 {
    max-width: 22ch;
    margin-left: auto;
    margin-right: auto;
    font-size: clamp(2.125rem, 4vw, 3.5rem) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: -.025em;
    text-wrap: balance;
}
.town-page .town-hero-content > p {
    max-width: 42rem;
    font-size: 1.125rem !important;
    line-height: 1.6;
    color: #e2e8f0 !important;
    opacity: 1 !important;
}
.town-page .cta-gold,
.town-page #quote-form button[type="submit"] {
    background: linear-gradient(110deg, #facc15, #f59e0b) !important;
    color: #0f172a !important;
    border: 1px solid transparent;
    border-radius: .875rem !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 12px rgb(15 23 42 / .12) !important;
}
.town-page .cta-gold:hover,
.town-page #quote-form button[type="submit"]:hover {
    background: #fbbf24 !important;
}
.town-page .town-hero a[href^="tel:"] {
    color: #fff !important;
    background: rgb(255 255 255 / .1) !important;
    border: 1px solid rgb(255 255 255 / .35);
    border-radius: .875rem !important;
}
.town-page #main-header nav > a[href^="tel:"] {
    color: #1e3a8a !important;
    background: #eff6ff !important;
    box-shadow: none !important;
}
.town-page .town-hero a:focus-visible,
.town-page #main-header a:focus-visible,
.town-page #quote-form button:focus-visible {
    outline: 3px solid #60a5fa;
    outline-offset: 4px;
}
.town-page #main-content > section.bg-gray-100 { background-color: #f1f5f9 !important; }
.town-page #main-content > section.bg-blue-50 { background-color: #eff6ff !important; }
.town-page #main-content .hover-lift {
    border: 1px solid #e2e8f0;
    border-radius: 1rem !important;
    box-shadow: 0 2px 8px rgb(15 23 42 / .04) !important;
}
.town-page #main-content .hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgb(15 23 42 / .08) !important;
}
.town-page #quote-form {
    background-color: #0f172a !important;
    scroll-margin-top: 6rem;
}
.town-quote-options {
    max-width: 42rem;
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    color: #334155;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    text-align: center;
}
.town-quote-options h3 { color: #0f172a; font-size: 1.5rem; line-height: 1.25; margin-bottom: .75rem; }
.town-quote-options p { font-size: 1rem; line-height: 1.65; }
.town-quote-start { display: flex; align-items: center; justify-content: center; gap: .75rem; padding: 1rem; margin-block: 1.5rem; min-height: 48px; }
.town-quote-options .town-quote-other { padding-top: 1.5rem; border-top: 1px solid #e2e8f0; }
.town-quote-call { display: inline-flex; align-items: center; min-height: 44px; color: #1d4ed8; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.town-quote-options a:focus-visible { outline: 3px solid #2563eb; outline-offset: 4px; }
@media (max-width: 767px) {
    .town-page .town-hero { padding-top: 4rem !important; }
    .town-page .town-hero-content { padding: 2.5rem 1.25rem !important; }
    .town-page .town-hero-content > p { font-size: 1rem !important; }
    .town-page #main-header > .container { padding-top: 1.25rem; padding-bottom: 1.25rem; }
    .town-page #main-content > section:not(.town-hero) { padding-top: 3rem !important; padding-bottom: 3rem !important; }
}
@media (min-width: 768px) and (max-width: 1279px) {
    .town-page #main-header nav { display: none !important; }
    .town-page #mobile-menu-button { display: inline-flex !important; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
    .town-page #mobile-menu:not(.hidden) { display: block !important; max-height: calc(100dvh - 80px); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .town-page { scroll-behavior: auto; }
    .town-page .animate-fadeInUp { animation: none; }
    .town-page .hover-lift { transition: none; }
}
