/* ACCG public site — CivicPlus-inspired theme.
   Brand colors are injected as CSS variables from settings (see layout). */
:root{
    --brand-primary:#003a5d;
    --brand-secondary:#0072ce;
    --brand-accent:#f2a900;
    --ink:#1f2933;
    --muted:#5a6b7b;
    --line:#e2e8f0;
    --bg-soft:#f4f7fa;
}

*{box-sizing:border-box}
body{font-family:"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);}
a{color:var(--brand-secondary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-weight:700;color:var(--brand-primary)}

.skip-link{position:absolute;top:.5rem;left:.5rem;background:#fff;padding:.5rem 1rem;z-index:2000;border-radius:.25rem}

/* Utility bar */
.utility-bar{background:var(--brand-primary);color:#cfe0ee;font-size:.85rem;padding:.4rem 0}
.utility-bar a{color:#cfe0ee}
.utility-bar a:hover{color:#fff}

/* Header / nav */
.site-header{background:#fff;border-bottom:3px solid var(--brand-accent);box-shadow:0 1px 6px rgba(0,0,0,.06)}
.navbar{padding-top:.75rem;padding-bottom:.75rem}
.navbar-brand{display:flex;flex-direction:column;line-height:1}
.brand-mark{font-size:1.9rem;font-weight:800;color:var(--brand-primary);letter-spacing:1px}
.brand-sub{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;font-weight:600}
.navbar-nav .nav-link{font-weight:600;color:var(--brand-primary);padding:.5rem .85rem;border-radius:.3rem}
.navbar-nav .nav-link:hover{color:var(--brand-secondary);background:var(--bg-soft)}
.dropdown-menu{border:0;box-shadow:0 8px 24px rgba(0,0,0,.12);border-top:3px solid var(--brand-accent)}
.btn-search{background:var(--brand-primary);color:#fff;border:0}
.btn-search:hover{background:var(--brand-secondary);color:#fff}
.btn-accent{background:var(--brand-accent);color:#1f2933;border:0;font-weight:700}
.btn-accent:hover{filter:brightness(.95);color:#1f2933}
.btn-primary{background:var(--brand-primary);border-color:var(--brand-primary)}
.btn-primary:hover{background:var(--brand-secondary);border-color:var(--brand-secondary)}
.btn-outline-primary{color:var(--brand-primary);border-color:var(--brand-primary)}
.btn-outline-primary:hover{background:var(--brand-primary);border-color:var(--brand-primary)}

/* Brand logo — auto-fits the header area for any aspect ratio without overflow */
.site-header .navbar-brand{max-width:min(70vw,360px);overflow:hidden;align-items:flex-start}
.site-header .navbar-brand .brand-logo{display:block;width:auto !important;height:auto !important;max-height:56px !important;max-width:100% !important;object-fit:contain}
@media(max-width:991px){.site-header .navbar-brand .brand-logo{max-height:48px !important}}
@media(max-width:575px){.site-header .navbar-brand{max-width:62vw}.site-header .navbar-brand .brand-logo{max-height:40px !important}}

/* Hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));color:#fff;padding:4rem 0}
.hero > .container{position:relative;z-index:2}
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease-in-out}
.hero-slide.is-active{opacity:1}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(0,58,93,.82),rgba(0,114,206,.74))}
.page-hero.page-hero-image{background-size:cover;background-position:center}

/* Spotlight media */
.spotlight-media{display:block;height:160px;background-size:cover;background-position:center;border-top-left-radius:.5rem;border-top-right-radius:.5rem}

/* Event image */
.event-image{max-width:100%;height:auto;border-radius:.5rem}
.hero-title{color:#fff;font-size:clamp(2rem,4vw,3rem);margin-bottom:.5rem}
.hero-lead{font-size:1.15rem;max-width:680px;opacity:.95}
.hero-search{display:flex;gap:.5rem;max-width:620px;margin-top:1.5rem}
.hero-search .form-control{border:0}

/* Quick links */
.quicklinks{background:var(--brand-primary);padding:2.5rem 0;margin-top:-1px}
.quicklinks .row{align-items:stretch}
.quicklink-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
    background:#fff;border-radius:.6rem;padding:1.5rem 1rem;text-align:center;height:100%;min-height:130px;
    border-bottom:4px solid var(--card-accent);transition:transform .15s,box-shadow .15s;color:var(--brand-primary)}
.quicklink-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.18);text-decoration:none}
.quicklink-icon{font-size:2rem;color:var(--card-accent)}
.quicklink-label{font-weight:700}

/* Section heads */
.section-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--line);
    padding-bottom:.5rem;margin-bottom:1.25rem}
.section-head h2{margin:0;font-size:1.5rem}
.section-link{font-weight:600;font-size:.9rem}

/* Spotlights */
.spotlight-card{background:#fff;border:1px solid var(--line);border-radius:.5rem;height:100%;overflow:hidden;transition:box-shadow .15s}
.spotlight-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.1)}
.spotlight-body{padding:1.25rem}
.badge-division{display:inline-block;color:#fff;font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:1rem;text-transform:uppercase;letter-spacing:.5px}

/* Event list */
.event-list .event-item a{display:flex;gap:1rem;align-items:center;padding:.75rem;border:1px solid var(--line);
    border-radius:.5rem;margin-bottom:.6rem;color:var(--ink)}
.event-list .event-item a:hover{border-color:var(--brand-secondary);text-decoration:none;background:var(--bg-soft)}
.event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--brand-primary);
    color:#fff;border-radius:.4rem;min-width:54px;padding:.4rem}
.event-month{font-size:.7rem;text-transform:uppercase;letter-spacing:1px}
.event-day{font-size:1.4rem;font-weight:800;line-height:1}
.event-title{font-weight:600;display:block}
.event-sub{font-size:.8rem;color:var(--muted)}

/* CTA */
.cta-band{background:var(--brand-accent);color:#1f2933;padding:2.5rem 0}
.cta-band h2{color:#1f2933}

/* Page hero (interior) */
.page-hero{background:var(--page-accent,var(--brand-primary));color:#fff;padding:2.5rem 0}
.page-hero h1{color:#fff;margin:0}
.page-hero .lead{opacity:.95;margin-bottom:0;margin-top:.5rem}
.page-hero .breadcrumb{margin-bottom:.5rem}
.page-hero .breadcrumb a{color:#dbe7f2}
.page-hero .breadcrumb-item.active{color:#fff}
.page-hero .breadcrumb-item+.breadcrumb-item::before{color:#9fc0db}

/* Content */
.content-body{font-size:1.05rem;line-height:1.7}
.content-body h2,.content-body h3{margin-top:1.5rem}
.content-body img{max-width:100%;height:auto;border-radius:.4rem}

.subdivision-card{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand-secondary);
    border-radius:.4rem;padding:1rem;height:100%;color:var(--ink)}
.subdivision-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1);text-decoration:none}
.resource-list li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.sidebar-box{background:var(--bg-soft);border:1px solid var(--line);border-radius:.5rem;padding:1.25rem}
.event-details dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:.75rem}
.event-details dd{margin-bottom:0}

/* Calendar */
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:.5rem;overflow:hidden}
.cal-weekday{background:var(--brand-primary);color:#fff;text-align:center;font-weight:700;padding:.5rem;font-size:.85rem}
.cal-cell{background:#fff;min-height:110px;padding:.4rem}
.cal-empty{background:var(--bg-soft)}
.cal-today{background:#fff7e6;box-shadow:inset 0 0 0 2px var(--brand-accent)}
.cal-daynum{font-weight:700;color:var(--muted);font-size:.85rem;margin-bottom:.25rem}
.cal-event{display:block;font-size:.74rem;background:var(--ev-color,var(--brand-secondary));color:#fff;border-radius:.25rem;
    padding:.1rem .35rem;margin-bottom:.2rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cal-event:hover{color:#fff;text-decoration:none;filter:brightness(1.08)}
.cal-event-time{font-weight:700;opacity:.9}
@media(max-width:680px){.cal-cell{min-height:auto}.cal-event{font-size:.65rem}.calendar-grid{display:none}}

/* Search */
.search-result{padding:1.25rem 0;border-bottom:1px solid var(--line)}
.result-type{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;font-weight:700;
    color:var(--brand-secondary);background:var(--bg-soft);padding:.15rem .5rem;border-radius:.25rem;margin-bottom:.35rem}

/* Footer */
.site-footer{background:var(--brand-primary);color:#cfe0ee;padding:3rem 0 1.5rem;margin-top:3rem}
.footer-brand{color:#fff;font-weight:800;letter-spacing:1px}
.footer-heading{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem}
.footer-links a{color:#cfe0ee;display:block;padding:.25rem 0}
.footer-links a:hover{color:#fff}
.footer-links.columns-2{column-count:2}
.footer-rule{border-color:rgba(255,255,255,.15);margin:2rem 0 1rem}
