/* Bulwark — editorial layer over the compiled Dash UI theme (deep green & cream).
   Typography: Source Serif 4 for headings and display, IBM Plex Sans for everything else. */
@font-face{font-family:"Source Serif 4";src:url(/fonts/SourceSerif4-400-700.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/SourceSerif4-400-700-Italic.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/fonts/PlexSans-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/fonts/PlexSans-400-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/fonts/PlexSans-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/fonts/PlexSans-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/fonts/PlexSans-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
:root{--green:#1f3d2b;--green-deep:#12241a;--green-ink:#1b3326;--cream:#fbf8f1;--cream-2:#f7f3ea;--sand:#efe9dc;--line:#e0d8c6;--rule:#cfc6b2;--ink:#1c1f1b;--muted:#5b5f58;
  /* legacy names still referenced by views */ --brass:#1f3d2b;--brass-dark:#1f3d2b;--brass-ink:#fff;--stone:#efe9dc;--paper:#fbf8f1}
body{background:var(--cream)}
.serif,h1,h2,h3,.h1,.h2,.h3,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.01em}
h4,h5,h6,.h4,.h5,.h6{font-family:"IBM Plex Sans",system-ui,sans-serif;font-weight:600;letter-spacing:0}
.display-4,.display-5,.display-6{line-height:1.05}
.lead{font-family:"IBM Plex Sans",system-ui,sans-serif;font-weight:400;color:var(--muted)}
.text-brass-dark,.text-brass{color:var(--green)!important}.text-white-75{color:rgba(255,255,255,.78)!important}
.btn{border-radius:2px;letter-spacing:.01em}.btn-brass{--bs-btn-color:#fff;--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green-deep);--bs-btn-hover-border-color:var(--green-deep);--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff}
.btn-outline-primary{--bs-btn-color:var(--green);--bs-btn-border-color:var(--green)}
.card{border-radius:2px;box-shadow:none;border:1px solid var(--line)}
.eyebrow{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ls-md{letter-spacing:.08em}
/* rules: the editorial device */
.rule{border-top:1px solid var(--rule)}.rule-strong{border-top:2px solid var(--ink)}
.rule-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.rule-list>li{border-bottom:1px solid var(--rule);padding:1.4rem 0;display:grid;grid-template-columns:3.2rem 1fr auto;gap:1rem 1.5rem;align-items:baseline}
.rule-list .num{font-family:"Source Serif 4",serif;font-size:1.1rem;color:var(--muted)}
.rule-list h3{font-size:1.45rem;margin:0 0 .35rem}.rule-list p{margin:0;color:var(--muted);max-width:62ch}
.rule-list .go{white-space:nowrap;font-weight:600;color:var(--green);text-decoration:none}
@media(max-width:575.98px){.rule-list>li{grid-template-columns:2.2rem 1fr;gap:.5rem 1rem}.rule-list .go{grid-column:2}}
/* brand */
.brand-word{font-family:"Source Serif 4",Georgia,serif;font-weight:700;font-size:1.5rem;letter-spacing:-.01em;line-height:1;color:var(--ink);display:inline-flex;align-items:baseline;gap:.4rem}
.brand-word small{font-family:"IBM Plex Sans",sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.18em;color:var(--green)}
.text-white .brand-word,.navbar-brand.text-white .brand-word,.navbar-vertical .brand-word{color:#fff}.navbar-brand.text-white .brand-word small,.navbar-vertical .brand-word small{color:rgba(255,255,255,.7)}
.brand-mark{color:var(--green);--logo-line:#fbf8f1;width:34px;height:34px}.brand-mark-light{color:#fff;--logo-line:var(--green-deep)}
/* navbar */
.navbar:not(.navbar-vertical){background:var(--cream)!important;box-shadow:none!important;border-bottom:1px solid var(--line)}
.navbar .nav-link{font-weight:500;font-size:.95rem}.navbar .nav-link.active{color:var(--green);box-shadow:inset 0 -2px 0 var(--green)}
.navbar .dropdown-menu{border-radius:2px;border:1px solid var(--line)}.navbar .dropdown-menu-lg{min-width:22rem}
@media(min-width:1200px){.navbar .dropdown:hover>.dropdown-menu{display:block;margin-top:0}}
.offcanvas.bg-primary{background:var(--green-deep)!important}
/* hero with photograph */
.hero-photo{position:relative;color:#fff;min-height:560px;display:flex;align-items:flex-end;background:var(--green-deep)}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,36,26,.15) 0%,rgba(18,36,26,.55) 55%,rgba(18,36,26,.88) 100%)}
.hero-photo .container{position:relative;z-index:1;padding-top:5rem;padding-bottom:3rem}
.hero-photo h1{color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);max-width:16ch;font-weight:600}.hero-photo .lead{color:rgba(255,255,255,.85);max-width:58ch}
.hero-photo .btn-outline-light{--bs-btn-border-color:rgba(255,255,255,.7)}
.hero-photo .credit{position:absolute;right:1rem;bottom:.5rem;font-size:.7rem;color:rgba(255,255,255,.55);z-index:1}
.check-bar{background:#fff;border:1px solid var(--line);padding:1rem 1.25rem}
/* page heads */
.pagehead{background:var(--cream)}.pagehead::after{display:none}.pagehead .display-5{font-size:clamp(2.2rem,4.5vw,3.4rem)}
.pagehead-photo{position:relative;color:#fff;min-height:380px;display:flex;align-items:flex-end;background:var(--green-deep)}
.pagehead-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pagehead-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,36,26,.2),rgba(18,36,26,.85))}
.pagehead-photo .container{position:relative;z-index:1;padding-top:4rem;padding-bottom:2.5rem}.pagehead-photo h1,.pagehead-photo .breadcrumb-item a,.pagehead-photo .breadcrumb-item.active{color:#fff}.pagehead-photo .lead{color:rgba(255,255,255,.85)}
.breadcrumb{font-family:"IBM Plex Sans",sans-serif;font-size:.85rem}.pagehead-photo .breadcrumb{--bs-breadcrumb-divider-color:rgba(255,255,255,.55)}.pagehead-photo .breadcrumb-item a{color:rgba(255,255,255,.8)}
.pagehead-photo .btn-outline-primary,.hero-photo .btn-outline-primary{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.7);--bs-btn-hover-bg:rgba(255,255,255,.12);--bs-btn-hover-color:#fff;--bs-btn-hover-border-color:#fff;--bs-btn-active-bg:rgba(255,255,255,.2);--bs-btn-active-color:#fff}
/* photo blocks */
.photo{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;background:var(--sand)}
.photo-wide{aspect-ratio:16/7}.photo-tall{aspect-ratio:3/4}
figure.photo-fig{margin:0}figure.photo-fig figcaption{font-size:.75rem;color:var(--muted);margin-top:.35rem}
/* two prose columns: a hairline between them */
@media(min-width:992px){.split>[class*=col-]+[class*=col-]{border-left:1px solid var(--rule);padding-left:3rem}.split>.offset-lg-1{margin-left:0;flex:0 0 auto;width:41.666%}}
@media(max-width:991.98px){.split>[class*=col-]+[class*=col-]{border-top:1px solid var(--rule);padding-top:2rem}}
/* stats */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:2px solid var(--ink)}
.stat-row>div{padding:1.25rem 1.25rem 1.25rem 0;border-bottom:1px solid var(--rule)}
.stat-row .n{font-family:"Source Serif 4",serif;font-size:2.6rem;line-height:1;font-weight:600;color:var(--green)}.stat-row .l{font-weight:600;margin-top:.5rem}.stat-row small{color:var(--muted);display:block}
/* lists */
.ticks li span.text-brass{color:var(--green)!important}
.steps .list-group-item::before{font-family:"Source Serif 4",serif;font-weight:600;color:var(--muted);font-size:1.15rem;min-width:2rem}.steps .list-group-item{border-color:var(--rule)!important;background:transparent}
.check-pill{border:1px solid var(--line);border-radius:2px;padding:.35rem .8rem .35rem .6rem;background:#fff}.check-pill:has(input:checked){border-color:var(--green);background:var(--light-primary,#e4ebe4)}
.form-check-input:checked{background-color:var(--green);border-color:var(--green)}
.accordion-item{border-color:var(--rule)}.accordion-button{font-family:"IBM Plex Sans",sans-serif;font-weight:600;background:transparent}.accordion-button:not(.collapsed){box-shadow:none}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
form.is-done .row,form.is-done .d-flex{display:none!important}
/* forms */
.form-section{grid-column:1/-1;border-top:1px solid var(--rule);padding-top:1.25rem;margin-top:.75rem}.form-section:first-child{border-top:0;padding-top:0;margin-top:0}
.form-section h2,.form-section h3{font-size:1.25rem;margin:0 0 .25rem}.form-section p{color:var(--muted);margin:0;font-size:.92rem}
.includes{font-size:.9rem;color:var(--muted);margin:.5rem 0 0}.includes strong{color:var(--ink);font-weight:600}
.belief-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.belief-list li{border-bottom:1px solid var(--rule);padding:1rem 0}.belief-list strong{display:block;font-family:"Source Serif 4",serif;font-size:1.2rem;font-weight:600}.belief-list span{color:var(--muted)}
/* cta */
.cta-band{background:var(--green);color:#fff}.cta-band h2{color:#fff}.cta-band p{color:rgba(255,255,255,.8)!important}.cta-band .btn-brass{--bs-btn-bg:#fff;--bs-btn-color:var(--green);--bs-btn-border-color:#fff;--bs-btn-hover-bg:var(--cream);--bs-btn-hover-color:var(--green-deep)}.cta-band .btn-outline-primary{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.6);--bs-btn-hover-bg:rgba(255,255,255,.1);--bs-btn-hover-color:#fff}.cta-band a.text-brass-dark{color:#fff!important}
/* footer */
footer.bg-dark{background:var(--green-deep)!important}
/* suggestions */
.sug{position:absolute;z-index:1030;list-style:none;margin:.25rem 0 0;padding:.35rem;background:#fff;border:1px solid var(--line);border-radius:2px;box-shadow:0 8px 24px -12px rgba(0,0,0,.25);width:100%;max-height:260px;overflow:auto;left:0;top:100%}
.sug li{padding:.55rem .8rem;cursor:pointer;font-size:.95rem}.sug li:hover,.sug li.is-sel{background:var(--sand)}
/* violation check */
.vc-tile{border-top:3px solid var(--line)}.vc-tile-bad{border-top-color:#a63d2e}.vc-tile-good{border-top-color:var(--green)}
.cls{display:inline-flex;align-items:center;justify-content:center;min-width:2em;padding:.15em .45em;border-radius:2px;font-size:.78rem;font-weight:700;background:var(--sand);color:var(--ink);white-space:nowrap}
.cls-c{background:#f7e6e2;color:#7e2e22}.cls-b{background:#fbf1dc;color:#6b4a0a}.cls-a{background:#e6effb;color:#1f56a8}
.vc-gate{min-height:620px;overflow:hidden}.vc-blur{filter:blur(7px);user-select:none;pointer-events:none;opacity:.85;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.vc-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:5rem}.vc-overlay .card{max-width:520px;width:100%}
/* articles */
.article{font-size:1.1rem;line-height:1.7;max-width:68ch}.article h2{font-size:1.6rem;margin:2.2rem 0 .8rem}.article p{margin-bottom:1.1em}
/* agency logos */
.agency-logo{display:inline-block;height:40px;width:auto;max-width:180px;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:72px;min-width:140px;max-width:200px;padding:.5rem 1rem;background:#fff;border:1px solid var(--line)}
.logo-cloud .logo-link{display:block;text-decoration:none}.logo-cloud img.agency-logo{filter:grayscale(1);opacity:.8}.logo-cloud .logo-link:hover img.agency-logo{filter:none;opacity:1}
.agency-logo-seal{height:52px}.card .agency-logo{height:36px;margin-bottom:.75rem}.card .agency-logo-seal{height:48px}
/* news */
.news-item{position:relative}.news-item:hover{background:var(--cream-2)}.news-item .news-mark{width:44px}.news-logo{height:36px;max-width:44px}.news-logo svg{height:100%;width:auto}
.news-item-compact{border-bottom:0!important;padding:0!important}.news-item-compact .news-mark{width:40px}.news-item-compact .news-logo{height:30px}
.news-tabs .nav-link{padding:.35rem .8rem;font-size:.9rem;border-radius:2px}
.min-w-0{min-width:0}.text-inherit{color:inherit}
.news-item h3,.news-item p,.article,.accordion-body{overflow-wrap:anywhere}
.tile{border-left:2px solid var(--green)}
/* ---------- 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}
  .hero-photo{min-height:460px}.hero-photo h1{font-size:2.4rem}
  .pagehead .lead,.hero-photo .lead{font-size:1.02rem}
  .hero-photo .d-flex.flex-wrap.gap-2 .btn,.pagehead .d-flex.flex-wrap.gap-2 .btn,.pagehead-photo .d-flex.flex-wrap.gap-2 .btn,.cta-band .btn{width:100%;justify-content:center}
  .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:84px}.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;scroll-padding-inline:.75rem;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:60px;min-width:120px;max-width:150px;padding:.5rem .75rem}.logo-cloud .agency-logo{height:32px;max-width:116px}.logo-cloud .agency-logo-seal{height:44px}
  .logo-cloud .text-center.small.mt-4{font-size:.72rem;margin-top:.5rem!important}
  .vc-tile .display-6{font-size:1.5rem}.vc-overlay{padding-top:8rem;padding-left:.5rem;padding-right:.5rem}.vc-gate{min-height:860px;max-width:100%}.vc-blur{overflow:hidden}
  .table-stack thead{display:none}.table-stack tr{display:block;border-bottom:1px solid var(--rule);padding:.9rem 0}.table-stack td{display:block;border:0;padding:.15rem 0}.table-stack td.text-nowrap{white-space:normal!important;font-family:"Source Serif 4",serif;font-size:1.15rem;padding-bottom:.35rem}.table-stack td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}
  .hero-photo{flex-wrap:wrap}.hero-photo .container{flex:0 0 100%;max-width:100%}.hero-photo .credit{position:relative;z-index:1;flex:0 0 100%;display:block;padding:0 1rem .5rem;font-size:.65rem;opacity:.7;text-align:right}
  .stat-row .n{font-size:2rem}#result{padding-left:.5rem;padding-right:.5rem}
}
