/* Village of Port Austin - public site styles
   Brand: primary #24678d (teal-blue), accent #a82e2e (red), text #2a2a2a */
:root {
    --primary: #24678d;
    --primary-dark: #1b4f6b;
    --accent: #a82e2e;
    --text: #2a2a2a;
    --bg: #f8f9fa;
}

body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--text);
    background: var(--bg);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
main { flex: 1 0 auto; }

h1, h2, h3, .h {
    font-family: 'Montserrat', system-ui, sans-serif;
    font-weight: 700;
}

a { color: var(--primary); }
a:hover { color: var(--primary-dark); }

/* Top utility bar */
.voa-topbar {
    background: var(--primary-dark);
    color: rgba(255,255,255,0.9);
    font-size: 0.82rem;
}
.voa-topbar a { color: rgba(255,255,255,0.9); text-decoration: none; }
.voa-topbar a:hover { color: #fff; }

/* Navbar */
.navbar-voa {
    background: var(--primary);
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.navbar-voa .navbar-brand {
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    letter-spacing: 0.3px;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.navbar-voa .navbar-brand small { font-weight: 600; font-size: 0.7rem; opacity: 0.8; display: block; letter-spacing: 0.5px; }
.navbar-voa .nav-link { color: rgba(255,255,255,0.88); font-weight: 600; font-size: 0.95rem; }
.navbar-voa .nav-link:hover,
.navbar-voa .nav-link.active { color: #fff; }
.navbar-voa .nav-link.active { border-bottom: 3px solid var(--accent); }
.navbar-voa .navbar-toggler { border-color: rgba(255,255,255,0.4); }
.navbar-voa .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.btn-accent { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-accent:hover { background: #8f2626; border-color: #8f2626; color: #fff; }
.btn-voa { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn-voa:hover { background: var(--primary-dark); border-color: var(--primary-dark); color: #fff; }

/* Page header band */
.page-head { background: var(--primary); color: #fff; padding: 2.5rem 0; }
.page-head h1 { margin-bottom: 0.25rem; }

/* Leaflet map fix: Bootstrap Reboot sets `img { max-width:100%; height:auto }`
   globally, which distorts Leaflet's tile and marker <img> sizing and makes
   pins drift from their true location (the offset grows as you zoom). Restore
   natural sizing for images inside a Leaflet map container. */
.leaflet-container img {
    max-width: none !important;
    max-height: none !important;
}

/* Department detail banner image */
.dept-banner { height: 220px; background-size: cover; background-position: center; }
@media (max-width: 700px) { .dept-banner { height: 140px; } }

/* Migrated / CMS body content (department detail, FAQ, pages) */
.dept-body, .faq-body { line-height: 1.7; }
.dept-body h3, .dept-body h4, .faq-body h3 { color: var(--primary); font-family: 'Montserrat', sans-serif; margin-top: 1.25rem; }
.dept-body table, .faq-body table { width: 100%; margin: 0.75rem 0 1.25rem; }
.dept-body table th { background: var(--primary); color: #fff; font-weight: 600; }
.dept-body ul, .faq-body ul { padding-left: 1.25rem; }
.dept-body p, .faq-body p { margin-bottom: 0.85rem; }
.dept-body u { text-decoration: none; font-weight: 700; color: var(--primary); display: inline-block; margin-top: 0.5rem; }
.faq-body u { text-decoration: none; font-weight: 700; color: var(--primary); }

/* Footer */
.voa-footer {
    background: #1b3a4d;
    color: rgba(255,255,255,0.85);
    padding: 2.5rem 0 1.25rem;
    flex-shrink: 0;
}
.voa-footer h5 { color: #fff; font-family: 'Montserrat', sans-serif; font-size: 1rem; margin-bottom: 0.75rem; }
.voa-footer a { color: rgba(255,255,255,0.8); text-decoration: none; }
.voa-footer a:hover { color: #fff; text-decoration: underline; }
.voa-footer .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    margin-top: 1.5rem;
    padding-top: 1rem;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.55);
}
