/* Bulwark override layer on top of the compiled DashUI theme (public/vendor/dashui).
   Brand palette and logo only; everything else follows DashUI / Bootstrap 5 defaults. */
@font-face{font-family:"Inter";src:url(/fonts/Inter.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/Fraunces.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
:root{--brass:#c9a24d;--brass-dark:#a9842f;--brass-ink:#2b2106;--ink:#0e1a2b;--stone:#ede8de;--paper:#faf8f3}
.text-brass-dark{color:var(--brass-dark)!important}.text-white-75{color:rgba(255,255,255,.78)!important}
.btn-brass{--bs-btn-color:var(--brass-ink);--bs-btn-hover-color:var(--brass-ink);--bs-btn-active-color:var(--brass-ink)}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ls-md{letter-spacing:.08em}
/* brand */
.brand-word{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.4rem;line-height:1;color:var(--ink);display:inline-flex;align-items:baseline;gap:.35rem}
.brand-word small{font-family:"Inter",sans-serif;font-weight:700;font-size:.6rem;letter-spacing:.2em}
.text-white .brand-word,.navbar-brand.text-white .brand-word{color:#fff}
.brand-mark{color:var(--ink);--logo-line:#fff;width:34px;height:34px}.brand-mark-light{color:var(--brass);--logo-line:var(--ink)}
/* navbar */
.navbar .nav-link{font-weight:500}.navbar .nav-link.active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brass)}
.navbar .dropdown-menu-lg{min-width:22rem}.navbar .dropdown-item.active,.navbar .dropdown-item:active{background:var(--bs-light);color:var(--ink)}
@media(min-width:1200px){.navbar .dropdown:hover>.dropdown-menu{display:block;margin-top:0}}
.icon-svg{width:26px;height:26px}
/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.13;background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:100% 36px,96px 36px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 75% 25%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 75% 25%,#000 10%,transparent 75%)}
.hero::after{content:"";position:absolute;z-index:-1;width:60vw;height:60vw;max-width:800px;max-height:800px;right:-15vw;top:-25vw;border-radius:50%;background:radial-gradient(circle,rgba(201,162,77,.28),transparent 60%)}
.hero .display-4{letter-spacing:-.02em}.hero .display-4 em{font-style:italic;color:#e8cf86;font-family:"Fraunces",Georgia,serif;font-weight:400}
.pagehead{position:relative;overflow:hidden}.pagehead.bg-primary::after{content:"";position:absolute;right:-10%;top:-40%;width:50vw;height:50vw;max-width:700px;max-height:700px;border-radius:50%;background:radial-gradient(circle,rgba(201,162,77,.22),transparent 60%);pointer-events:none}
.pagehead>.container{position:relative;z-index:1}
.breadcrumb-light .breadcrumb-item a{color:rgba(255,255,255,.65)}.breadcrumb-light .breadcrumb-item.active,.breadcrumb-light .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.5)}
/* ticker */
.ticker{overflow:hidden;color:var(--brass)}.ticker-track{display:flex;gap:3rem;width:max-content;animation:tick 60s linear infinite;font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.ticker-track span::after{content:"◆";margin-left:3rem;opacity:.5;font-size:.6em;vertical-align:middle}@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;flex-wrap:wrap;width:auto;gap:1rem 2rem}}
/* cards */
.card-lift{transition:transform .25s ease,box-shadow .25s ease}.card-lift:hover{transform:translateY(-4px);box-shadow:var(--bs-box-shadow-lg)}
.bg-primary .card,.bg-dark .card{color:var(--bs-body-color)}
/* lists */
.steps .list-group-item::before{font-weight:700;color:var(--brass-dark);font-size:1.1rem;min-width:2rem}.steps-light .list-group-item::before{color:var(--brass)}
.steps-light .list-group-item{border-color:rgba(255,255,255,.15)!important}
.check-pill{border:1px solid var(--bs-border-color);border-radius:50rem;padding:.35rem .8rem .35rem .6rem;background:#fff}.check-pill:has(input:checked){border-color:var(--brass);background:#f7efd9}
.form-check-input:checked{background-color:var(--brass-dark);border-color:var(--brass-dark)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
form.is-done .row,form.is-done .d-flex{display:none!important}
/* suggestions */
.sug{position:absolute;z-index:1030;list-style:none;margin:.25rem 0 0;padding:.35rem;background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow);width:100%;max-height:260px;overflow:auto;left:0;top:100%}
.sug li{padding:.55rem .8rem;border-radius:4px;cursor:pointer;font-size:.95rem}.sug li:hover,.sug li.is-sel{background:var(--bs-light)}
/* violation check */
.vc-tile{border-top:4px solid var(--bs-border-color)}.vc-tile-bad{border-top-color:var(--bs-danger)}.vc-tile-good{border-top-color:var(--bs-success)}
.cls{display:inline-flex;align-items:center;justify-content:center;min-width:2em;padding:.15em .45em;border-radius:4px;font-size:.78rem;font-weight:700;background:var(--bs-light);color:var(--ink);white-space:nowrap}
.cls-c{background:#f9dede;color:#7a1f1f}.cls-b{background:#fbf1dc;color:#6b4a0a}.cls-a{background:#e9eef7;color:#223a66}
/* articles */
.article{font-size:1.08rem;line-height:1.7;max-width:72ch}.article h2{font-size:1.5rem;margin:2.2rem 0 .8rem}.article p{margin-bottom:1.1em}
/* tables on dark */
.table-dark-flush{--bs-table-bg:transparent;--bs-table-color:#fff;--bs-table-border-color:rgba(255,255,255,.15)}
/* programs tiles */
.tile{border-left:3px solid var(--brass)}
/* heat-map / misc from admin kept in admin.css */
.text-inherit{color:inherit}
/* translucent cards on dark sections (the theme's bg-white beats bg-opacity-*) */
.card-glass{background:rgba(255,255,255,.1)!important;border:0;color:#fff}.card-glass:hover{background:rgba(255,255,255,.16)!important}
.bg-primary .card.card-glass,.bg-dark .card.card-glass,.card.card-glass a,.card.card-glass .fw-semibold{color:#fff}
/* agency logos */
.agency-logo{display:inline-block;height:48px;width:auto;max-width:200px;color:var(--ink)}.agency-logo svg{height:100%;width:auto;display:block}
.logo-cloud .logo-tile{display:flex;align-items:center;justify-content:center;height:84px;min-width:150px;max-width:220px;padding:.75rem 1.1rem;background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);transition:transform .2s,box-shadow .2s}
.logo-cloud .logo-link{display:block;text-decoration:none}.logo-cloud .logo-link:hover .logo-tile{transform:translateY(-2px);box-shadow:var(--bs-box-shadow)}
.logo-cloud img.agency-logo{filter:grayscale(1);opacity:.85;transition:filter .2s,opacity .2s}.logo-cloud .logo-link:hover img.agency-logo{filter:none;opacity:1}
.logo-cloud-dark .logo-tile{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.logo-cloud-dark .agency-logo{color:#fff}.logo-cloud-dark img.agency-logo{background:#fff;border-radius:6px;padding:4px;filter:none;opacity:1}
.card .agency-logo{height:40px;margin-bottom:.75rem}
.agency-logo-seal{height:64px}.card .agency-logo-seal{height:56px}
/* light hero / page heads */
.hero.bg-light::before{opacity:.07;background-image:linear-gradient(rgba(14,26,43,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(14,26,43,.6) 1px,transparent 1px)}
.hero.bg-light::after{background:radial-gradient(circle,rgba(201,162,77,.22),transparent 60%)}
.hero .display-4 em{color:var(--brass-dark)}
.pagehead.bg-light::after{content:"";position:absolute;right:-10%;top:-40%;width:50vw;height:50vw;max-width:700px;max-height:700px;border-radius:50%;background:radial-gradient(circle,rgba(201,162,77,.16),transparent 60%);pointer-events:none}
.table-light-flush{--bs-table-bg:transparent}.table-light-flush td,.table-light-flush th{border-color:var(--bs-border-color)}
.cta-band{border-top:1px solid #efe3bf;border-bottom:1px solid #efe3bf}
/* ---------- mobile ---------- */
@media(max-width:767.98px){
  .display-4{font-size:2.3rem}.display-5{font-size:1.95rem}.display-6{font-size:1.55rem}.lead{font-size:1.05rem}
  .py-8{padding-top:2.5rem!important;padding-bottom:2.5rem!important}.py-7{padding-top:2rem!important;padding-bottom:2rem!important}
  .pagehead .lead,.hero .lead{font-size:1.02rem}
  .hero .d-flex.flex-wrap.gap-2 .btn,.pagehead .d-flex.flex-wrap.gap-2 .btn,.cta-band .btn{width:100%;justify-content:center}
  .hero .list-inline-item{display:block;margin-right:0}
  .eyebrow{font-size:.7rem;letter-spacing:.1em}
  .eyebrow-long{display:none}
  .breadcrumb .breadcrumb-item.active{display:none}
  .card-body.p-4{padding:1.1rem!important}.card-body.p-lg-5{padding:1.1rem!important}
  .steps .list-group-item{padding-top:1rem!important;padding-bottom:1rem!important}
  .logo-cloud .logo-scroll{position:relative;height:96px}.logo-cloud ul{position:absolute;left:-.75rem;right:-.75rem;top:0;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .75rem 1rem;margin:0!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .logo-cloud ul::-webkit-scrollbar{display:none}.logo-cloud li{scroll-snap-align:start;flex:0 0 auto}
  .logo-cloud .logo-tile{height:64px;min-width:124px;max-width:150px;padding:.5rem .75rem}.logo-cloud .agency-logo{height:36px;max-width:120px}.logo-cloud .agency-logo-seal{height:48px}
  .logo-cloud .text-center.small.mt-4{font-size:.72rem;margin-top:.5rem!important}
  footer .col-6{font-size:.9rem}
  .vc-tile .display-6{font-size:1.5rem}
  .navbar .navbar-brand .brand-word{font-size:1.2rem}
}
