:root{
  --brand-blue:#0b4f8a;
  /* Slightly darker text blue to better match the logo ink */
  --brand-blue-text:#0b4a7f;
  --brand-yellow:#ffe033;
  --text:#222;
  --muted:#6c757d;
  --bg-dark:#3f3f3f;
  --bg-darker:#333;
}

/* Utility class for darker brand blue */
.text-brand-blue { color: var(--brand-blue-text) !important; }

/* Page baseline and sticky footer */
html, body { height:100%; margin:0; }
body { min-height:100vh; display:flex; flex-direction:column; }
header, .brand-header, .primary-nav, footer.site-footer { flex-shrink:0; }
#main { flex:1 0 auto; }

/* Utility top bar */
.top-utility{background:var(--brand-blue);color:#fff;font-size:.9rem}
.top-utility .container{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 1rem}
.top-utility a{color:#fff;text-decoration:none}
.top-utility .sep{opacity:.75;margin:0 .5rem}
.top-utility .right a{display:inline-block;width:1.25rem;height:1.25rem;margin-left:.5rem}

/* Brand header */
.brand-header{background:#fff;border-bottom:1px solid #e5e5e5}
.brand-header .logo{height:120px;width:auto}
.brand-header .title{color:var(--brand-blue-text)}
.brand-header .subtitle{font-style:italic;color:var(--brand-blue-text) !important}
@media (max-width: 576px){
  .brand-header .logo{height:72px}
}
.brand-header .btn-cta{background:var(--brand-yellow);color:#000;font-weight:700;border-radius:.35rem;padding:.5rem 1rem;text-decoration:none;border:none}
.brand-header .btn-cta:hover{filter:brightness(.95)}

/* Primary nav */
.primary-nav{border-top:0;border-bottom:1px solid #e5e5e5}
.primary-nav .navbar-collapse{justify-content:flex-end}
.primary-nav .nav-link{font-weight:700;color:#000;text-transform:uppercase;letter-spacing:.02em}
.primary-nav .nav-link:hover,.primary-nav .nav-link:focus{color:var(--brand-blue)}
.primary-nav .search{color:#000;text-decoration:none}

/* Hover-based dropdowns - parent links are clickable */
@media (min-width: 992px) {
  .primary-nav .dropdown-hover:hover > .dropdown-menu {
    display: block;
    margin-top: 0;
  }
  .primary-nav .dropdown-hover > .dropdown-menu {
    margin-top: 0;
  }
  .primary-nav .dropdown-hover > .dropdown-toggle::after {
    margin-left: .35em;
  }
}

/* Footer */
.site-footer .footer-top{background:#4a4a4a;color:#e9e9e9;padding:2rem 0}
.site-footer .footer-col img{max-height:64px;width:auto;height:auto;object-fit:contain}
.site-footer .footer-title{font-weight:700;text-transform:uppercase;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:.5rem;margin-bottom:.75rem}
.site-footer a{color:#e9e9e9;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .footer-bottom{background:var(--bg-darker);color:#ccc;padding:.75rem 0}
.site-footer .legal-links a{color:#ccc}

/* Skip link */
.skip-link{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem 1rem;z-index:1000}

/* Page Hero Component */
.page-hero{position:relative;background:var(--brand-blue);background-size:cover;background-position:center;color:#fff;padding:3rem 0;min-height:200px;display:flex;align-items:center}
.page-hero-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(11,79,138,.85),rgba(11,74,127,.75))}
.page-hero-content{position:relative;z-index:1}
.page-hero-title{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;line-height:1.2}
.page-hero-subtitle{font-size:1.25rem;margin-bottom:0;opacity:.95}
.page-hero .breadcrumb{background:transparent;padding:0;margin-bottom:1rem}
.page-hero .breadcrumb-item{color:rgba(255,255,255,.8)}
.page-hero .breadcrumb-item.active{color:#fff}
.page-hero .breadcrumb-item a{color:#fff;text-decoration:none}
.page-hero .breadcrumb-item a:hover{text-decoration:underline}
.page-hero .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.6)}

@media (max-width: 768px){
  .page-hero{padding:2rem 0;min-height:150px}
  .page-hero-title{font-size:2rem}
  .page-hero-subtitle{font-size:1.1rem}
}

/* Content Section Component */
.content-section{padding:3rem 0}
.content-section.alt-bg{background:#f8f9fa}
.content-main{max-width:100%}
.content-main h2{font-size:2rem;font-weight:600;color:var(--brand-blue-text);margin-top:2rem;margin-bottom:1rem}
.content-main h3{font-size:1.5rem;font-weight:600;color:var(--brand-blue-text);margin-top:1.5rem;margin-bottom:.75rem}
.content-main h4{font-size:1.25rem;font-weight:600;margin-top:1rem;margin-bottom:.5rem}
.content-main p{line-height:1.6;margin-bottom:1rem}
.content-main ul,.content-main ol{line-height:1.6;margin-bottom:1rem}
.content-main img{max-width:100%;height:auto;margin:1.5rem 0}

/* Sidebar Component */
.sidebar{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.375rem;padding:1.5rem;margin-bottom:1.5rem}
.sidebar-title{font-size:1.25rem;font-weight:600;color:var(--brand-blue-text);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--brand-blue)}
.sidebar-content ul{list-style:none;padding:0}
.sidebar-content li{margin-bottom:.5rem}
.sidebar-content a{color:var(--brand-blue-text);text-decoration:none}
.sidebar-content a:hover{text-decoration:underline}

@media (max-width: 992px){
  .content-sidebar{margin-top:2rem}
}

/* Card Components */
.card-custom{border:1px solid #e9ecef;border-radius:.5rem;overflow:hidden;transition:transform .2s,box-shadow .2s;height:100%}
.card-custom:hover{transform:translateY(-4px);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}
.card-custom img{width:100%;height:auto;object-fit:cover}
.card-custom .card-body{padding:1.5rem}
.card-custom .card-title{font-size:1.25rem;font-weight:600;color:var(--brand-blue-text);margin-bottom:.75rem}
.card-custom .card-text{line-height:1.5;color:#495057}

/* Image Placeholders */
.image-placeholder{background:#e9ecef;display:flex;align-items:center;justify-content:center;color:#6c757d;min-height:200px}
.image-placeholder img{width:100%;height:100%;object-fit:cover}

/* Event Card Styles */
.event-card{display:flex;gap:1.5rem;background:#fff;border:1px solid #e9ecef;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem;transition:box-shadow .2s}
.event-card:hover{box-shadow:0 .25rem .75rem rgba(0,0,0,.1)}
.event-date-badge{flex-shrink:0;width:80px;height:80px;background:var(--brand-blue);color:#fff;border-radius:.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.event-date-badge .month{font-size:.85rem;font-weight:700;text-transform:uppercase;opacity:.9}
.event-date-badge .day{font-size:2rem;font-weight:700;line-height:1}
.event-content{flex:1}
.event-title{font-size:1.5rem;font-weight:600;color:var(--brand-blue-text);margin-bottom:.5rem}
.event-time,.event-location{color:#6c757d;margin-bottom:.25rem}
.event-time i,.event-location i{margin-right:.5rem}
.event-description{margin-top:.75rem;line-height:1.5}

@media (max-width: 576px){
  .event-card{flex-direction:column}
  .event-date-badge{width:100%;height:60px;flex-direction:row;gap:1rem}
  .event-date-badge .day{font-size:1.75rem}
}

/* Spacing utilities (8px grid) */
.mt-xs{margin-top:.5rem}
.mt-sm{margin-top:1rem}
.mt-md{margin-top:1.5rem}
.mt-lg{margin-top:2rem}
.mt-xl{margin-top:3rem}
.mt-xxl{margin-top:4rem}
.mb-xs{margin-bottom:.5rem}
.mb-sm{margin-bottom:1rem}
.mb-md{margin-bottom:1.5rem}
.mb-lg{margin-bottom:2rem}
.mb-xl{margin-bottom:3rem}
.mb-xxl{margin-bottom:4rem}
.py-xs{padding-top:.5rem;padding-bottom:.5rem}
.py-sm{padding-top:1rem;padding-bottom:1rem}
.py-md{padding-top:1.5rem;padding-bottom:1.5rem}
.py-lg{padding-top:2rem;padding-bottom:2rem}
.py-xl{padding-top:3rem;padding-bottom:3rem}
.py-xxl{padding-top:4rem;padding-bottom:4rem}
