/* Region 3A Custom Theme */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Open+Sans:wght@400;500;600&display=swap');

:root {
    --r3a-primary: #1a3c6e;
    --r3a-primary-dark: #0f2847;
    --r3a-primary-light: #2a5298;
    --r3a-accent: #d4a843;
    --r3a-accent-teal: #2a9d8f;
    --r3a-dark: #1a1a2e;
    --r3a-gray-100: #f8f9fa;
    --r3a-gray-200: #e9ecef;
    --r3a-gray-600: #6c757d;
    --r3a-white: #ffffff;
    --r3a-body-bg: #f5f6f8;
    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Open Sans', sans-serif;
}

body { font-family: var(--font-body); color: #333; background: var(--r3a-white); line-height: 1.7; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); font-weight:700; color: var(--r3a-primary-dark); }
a { color: var(--r3a-primary); text-decoration:none; transition: color .2s; }
a:hover { color: var(--r3a-accent); }

/* Navbar */
.r3a-navbar { background: var(--r3a-white); box-shadow:0 2px 10px rgba(0,0,0,.08); padding:0; position:sticky; top:0; z-index:1030; }
.r3a-navbar .navbar-brand { padding:.5rem 0; }
.r3a-navbar .navbar-brand img { height:55px; width:auto; }
.r3a-navbar .nav-link { font-family:var(--font-heading); font-weight:600; font-size:.9rem; color:var(--r3a-primary-dark); padding:1rem .85rem!important; text-transform:uppercase; letter-spacing:.03em; transition:color .2s,background .2s; }
.r3a-navbar .nav-link:hover,.r3a-navbar .nav-link.active { color:var(--r3a-accent); }
.r3a-navbar .dropdown-menu { border:none; box-shadow:0 8px 24px rgba(0,0,0,.12); border-radius:.5rem; padding:.5rem 0; }
.r3a-navbar .dropdown-item { font-weight:500; padding:.5rem 1.25rem; transition:background .15s; }
.r3a-navbar .dropdown-item:hover { background:var(--r3a-gray-100); color:var(--r3a-primary); }

/* Hero */
.r3a-hero { position:relative; background-size:cover; background-position:center; min-height:500px; display:flex; align-items:center; justify-content:center; text-align:center; color:#fff; }
.r3a-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(15,40,71,.85),rgba(26,60,110,.7)); z-index:1; }
.r3a-hero-content { position:relative; z-index:2; max-width:800px; padding:2rem; }
.r3a-hero h1 { font-size:3.2rem; font-weight:800; color:#fff; margin-bottom:.75rem; text-shadow:0 2px 8px rgba(0,0,0,.3); }
.r3a-hero p { font-size:1.25rem; opacity:.95; margin-bottom:1.5rem; }
.r3a-hero-sm { min-height:300px; }
.r3a-hero-sm h1 { font-size:2.4rem; }

/* Buttons */
.btn-r3a-primary { background:var(--r3a-primary); border:none; color:#fff; font-family:var(--font-heading); font-weight:600; padding:.75rem 2rem; border-radius:50px; transition:all .3s; text-transform:uppercase; letter-spacing:.05em; font-size:.9rem; }
.btn-r3a-primary:hover { background:var(--r3a-primary-light); color:#fff; transform:translateY(-2px); box-shadow:0 4px 15px rgba(26,60,110,.3); }
.btn-r3a-accent { background:var(--r3a-accent); border:none; color:var(--r3a-primary-dark); font-family:var(--font-heading); font-weight:600; padding:.75rem 2rem; border-radius:50px; transition:all .3s; text-transform:uppercase; letter-spacing:.05em; font-size:.9rem; }
.btn-r3a-accent:hover { background:#c49a38; color:var(--r3a-primary-dark); transform:translateY(-2px); box-shadow:0 4px 15px rgba(212,168,67,.3); }
.btn-r3a-outline { background:transparent; border:2px solid #fff; color:#fff; font-family:var(--font-heading); font-weight:600; padding:.7rem 2rem; border-radius:50px; transition:all .3s; text-transform:uppercase; letter-spacing:.05em; font-size:.9rem; }
.btn-r3a-outline:hover { background:#fff; color:var(--r3a-primary); }

/* Cards */
.r3a-card { border:none; border-radius:1rem; overflow:hidden; transition:all .3s ease; box-shadow:0 4px 20px rgba(0,0,0,.06); height:100%; }
.r3a-card:hover { transform:translateY(-6px); box-shadow:0 12px 35px rgba(0,0,0,.12); }
.r3a-card .card-img-top { height:200px; object-fit:cover; }
.r3a-card .card-body { padding:1.75rem; }
.r3a-card .card-title { font-family:var(--font-heading); font-weight:700; color:var(--r3a-primary-dark); font-size:1.2rem; margin-bottom:.75rem; }
.r3a-card .card-text { color:var(--r3a-gray-600); font-size:.95rem; line-height:1.6; }
.r3a-card .learn-more { font-family:var(--font-heading); font-weight:600; color:var(--r3a-primary); text-transform:uppercase; font-size:.85rem; letter-spacing:.05em; display:inline-flex; align-items:center; gap:.4rem; transition:color .2s,gap .2s; }
.r3a-card .learn-more:hover { color:var(--r3a-accent); gap:.7rem; }

/* News Cards */
.r3a-news-card { border:none; border-radius:.75rem; overflow:hidden; transition:all .3s ease; box-shadow:0 2px 12px rgba(0,0,0,.06); height:100%; }
.r3a-news-card:hover { transform:translateY(-4px); box-shadow:0 8px 25px rgba(0,0,0,.1); }
.r3a-news-card .card-img-top { height:200px; object-fit:cover; }
.r3a-news-card .card-body { padding:1.5rem; }
.r3a-news-card .news-date { font-size:.8rem; color:var(--r3a-gray-600); text-transform:uppercase; letter-spacing:.05em; font-weight:600; }
.r3a-news-card .news-category { font-size:.75rem; background:var(--r3a-primary); color:#fff; padding:.2rem .6rem; border-radius:50px; font-weight:600; }

/* Sections */
.r3a-section { padding:5rem 0; }
.r3a-section-alt { background:var(--r3a-body-bg); }
.r3a-section-dark { background:var(--r3a-primary-dark); color:#fff; }
.r3a-section-title { font-size:2.2rem; font-weight:800; text-align:center; margin-bottom:.5rem; }
.r3a-section-subtitle { text-align:center; color:var(--r3a-gray-600); font-size:1.1rem; max-width:600px; margin:0 auto 3rem; }

/* Mission */
.r3a-mission { background:var(--r3a-primary); color:#fff; padding:3.5rem 0; text-align:center; }
.r3a-mission blockquote { font-family:var(--font-heading); font-size:1.35rem; font-weight:500; font-style:italic; max-width:900px; margin:0 auto; line-height:1.8; opacity:.95; }

/* CTA */
.r3a-cta { background:linear-gradient(135deg,var(--r3a-primary),var(--r3a-primary-light)); color:#fff; padding:4rem 0; text-align:center; }
.r3a-cta h3 { color:#fff; font-size:1.8rem; margin-bottom:1rem; }
.r3a-cta p { font-size:1.1rem; opacity:.9; max-width:600px; margin:0 auto 1.5rem; }

/* Counties */
.r3a-county-item { text-align:center; padding:2rem 1rem; border-radius:1rem; transition:all .3s; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.r3a-county-item:hover { transform:translateY(-4px); box-shadow:0 8px 25px rgba(0,0,0,.1); }
.r3a-county-item i { font-size:2.5rem; color:var(--r3a-primary); margin-bottom:.75rem; }
.r3a-county-item h5 { font-size:1rem; font-weight:700; }

/* Footer */
.r3a-footer { background:var(--r3a-dark); color:rgba(255,255,255,.75); padding-top:4rem; }
.r3a-footer h5 { color:#fff; font-size:1rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:1.25rem; }
.r3a-footer a { color:rgba(255,255,255,.65); transition:color .2s; }
.r3a-footer a:hover { color:var(--r3a-accent); }
.r3a-footer .footer-links { list-style:none; padding:0; margin:0; }
.r3a-footer .footer-links li { margin-bottom:.5rem; }
.r3a-footer .footer-links li a { font-size:.9rem; }
.r3a-footer .social-icons a { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; margin-right:.5rem; font-size:1.1rem; transition:background .3s; }
.r3a-footer .social-icons a:hover { background:var(--r3a-accent); }
.r3a-footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:1.25rem 0; margin-top:3rem; font-size:.85rem; }

/* Breadcrumbs */
.r3a-breadcrumb { background:var(--r3a-gray-100); padding:.75rem 0; font-size:.9rem; }
.r3a-breadcrumb a { color:var(--r3a-primary); }

/* Page Content */
.r3a-page-content { padding:4rem 0; }
.r3a-page-content h2 { font-size:1.8rem; margin-top:2rem; margin-bottom:1rem; }
.r3a-page-content h3 { font-size:1.4rem; margin-top:1.5rem; margin-bottom:.75rem; }
.r3a-page-content img { max-width:100%; height:auto; border-radius:.5rem; }

/* Contact Form */
.r3a-contact-form .form-control { border-radius:.5rem; padding:.75rem 1rem; border:1px solid var(--r3a-gray-200); transition:border-color .2s,box-shadow .2s; }
.r3a-contact-form .form-control:focus { border-color:var(--r3a-primary); box-shadow:0 0 0 .2rem rgba(26,60,110,.15); }

/* Responsive */
@media (max-width:991.98px) { .r3a-hero h1{font-size:2.2rem} .r3a-hero p{font-size:1rem} .r3a-hero{min-height:350px} .r3a-section{padding:3rem 0} .r3a-section-title{font-size:1.7rem} }
@media (max-width:575.98px) { .r3a-hero h1{font-size:1.7rem} .r3a-hero-sm h1{font-size:1.5rem} .r3a-navbar .navbar-brand img{height:40px} }

/* Animations */
.fade-in { opacity:0; transform:translateY(20px); transition:opacity .6s,transform .6s; }
.fade-in.visible { opacity:1; transform:translateY(0); }

/* Accessibility — Focus Indicators (WCAG 2.1 AA) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .btn:focus-visible, .nav-link:focus-visible,
.page-link:focus-visible, .form-control:focus-visible, .form-select:focus-visible,
.dropdown-item:focus-visible, .navbar-toggler:focus-visible, .form-check-input:focus-visible {
    outline: 3px solid var(--r3a-accent-teal);
    outline-offset: 2px;
    box-shadow: none;
}

/* Color contrast improvements (WCAG AA 4.5:1 for body text) */
.text-muted { color: #555b62 !important; } /* Upgraded from #6c757d → #555b62 for 7:1+ contrast */
.r3a-card .card-text { color: #555b62; }
.r3a-news-card .news-date { color: #555b62; }
.r3a-section-subtitle { color: #555b62; }

/* Sidebar news widget */
.news-sidebar .card-title { font-family: var(--font-heading); font-weight: 700; color: var(--r3a-primary-dark); }

/* Staff bio modal */
.staff-bio-content { line-height: 1.8; }
.staff-bio-content p { margin-bottom: 1rem; }

/* News search results indicator */
.news-search-clear { text-decoration: underline; }

/* Improved form accessibility */
.form-label { font-weight: 600; color: var(--r3a-primary-dark); }
.form-control[aria-required="true"], .form-control[required] {
    border-left: 3px solid var(--r3a-primary);
}
