/* CBS Donor Wall: CBS colors. Blue #044BD9 · green #83A603 · yellow #F2CB05 · navy #0A2342 */
.cbs-dw { --dw-blue:#044BD9; --dw-green:#83A603; --dw-yellow:#F2CB05; --dw-navy:#0A2342; --dw-gap:16px; max-width:1200px; margin:0 auto; padding:24px 16px 48px; color:var(--dw-navy); }
.cbs-dw .screen-reader-text { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.cbs-dw-title { text-align:center; color:var(--dw-navy); margin:0 0 8px; }
.cbs-dw-tagline { text-align:center; font-size:1.2em; font-weight:600; color:var(--dw-blue); margin:0 0 16px; }
.cbs-dw-intro { text-align:center; max-width:760px; margin:0 auto 12px; font-size:1.05em; line-height:1.6; }
.cbs-dw-intro p { margin:0 0 12px; }
.cbs-dw-closing { text-align:center; font-weight:700; margin:0 0 28px; }
.cbs-dw-panel p { line-height:1.6; }
.cbs-dw-list { display:inline-block; text-align:left; margin:0 0 12px; padding-left:1.3em; line-height:1.6; }
.cbs-dw-footer { margin:40px auto 0; padding:32px 16px; max-width:900px; text-align:center; background:#f4f7fd; border-radius:14px; }
.cbs-dw-footer h2 { margin:0 0 16px; color:var(--dw-navy); }
.cbs-dw-footbtns { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:0; }

/* filter bar + search */
.cbs-dw-controls { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:center; margin-bottom:20px; }
.cbs-dw .cbs-dw-filters { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.cbs-dw button.cbs-dw-filter { display:inline-flex; text-transform:none; letter-spacing:normal; font-weight:600; min-height:0; height:auto; box-shadow:none; align-items:center; gap:6px; padding:8px 14px; border:2px solid var(--dw-blue); border-radius:999px; background:#fff; color:var(--dw-blue); font:inherit; font-size:.95em; line-height:1.2; cursor:pointer; }
.cbs-dw button.cbs-dw-filter svg { width:18px; height:18px; }
.cbs-dw button.cbs-dw-filter:hover { background:#eef3fd; }
.cbs-dw button.cbs-dw-filter[aria-pressed="true"] { background:var(--dw-blue); color:#fff; }
.cbs-dw button.cbs-dw-filter:focus-visible, .cbs-dw-search:focus-visible, .cbs-dw-card:focus-visible, .cbs-dw-morebtn:focus-visible, .cbs-dw-close:focus-visible, .cbs-dw-cta:focus-visible { outline:3px solid var(--dw-yellow); outline-offset:2px; }
.cbs-dw-search { min-width:220px; padding:9px 14px; border:2px solid #c9d3e6; border-radius:999px; font:inherit; color:var(--dw-navy); background:#fff; }

/* category panel (filtered view) */
.cbs-dw-panel { max-width:760px; margin:0 auto 24px; text-align:center; }
.cbs-dw-panel h3 { display:flex; gap:8px; align-items:center; justify-content:center; margin:0 0 4px; color:var(--dw-navy); }
.cbs-dw-panel h3 svg { width:28px; height:28px; color:var(--dw-blue); }
.cbs-dw-sub { font-weight:600; color:var(--dw-blue); margin:0 0 8px; }
.cbs-dw-panelrow { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:center; }
.cbs-dw-count { font-weight:600; }
.cbs-dw-cta { display:inline-block; padding:10px 20px; border-radius:6px; background:var(--dw-yellow); color:var(--dw-navy) !important; font-weight:700; text-decoration:none; }
.cbs-dw-cta:hover { background:var(--dw-green); }

/* masonry grid */
.cbs-dw-grid { list-style:none; margin:0; padding:0; column-count:4; column-gap:var(--dw-gap); }
@media (max-width:1000px) { .cbs-dw-grid { column-count:3; } }
@media (max-width:640px)  { .cbs-dw-grid { column-count:2; --dw-gap:10px; } .cbs-dw-search { min-width:0; width:100%; } }
.cbs-dw-tile { break-inside:avoid; margin:0 0 var(--dw-gap); }
.cbs-dw-tile[hidden] { display:none; }
.cbs-dw .cbs-dw-card { position:relative; text-transform:none; letter-spacing:normal; min-height:0; height:auto; line-height:1.3; display:block; width:100%; padding:0; border:0; border-radius:12px; overflow:hidden; background:#e9eef7; text-align:left; font:inherit; color:#fff; box-shadow:0 2px 8px rgba(10,35,66,.12); }
button.cbs-dw-card { cursor:pointer; }
.cbs-dw-photo { display:block; width:100%; height:auto; transition:transform .35s ease; }
.cbs-dw-nophoto { display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; color:var(--dw-blue); background:linear-gradient(135deg,#eef3fd,#f6f9e8); }
.cbs-dw-nophoto svg { width:40%; height:auto; opacity:.5; }
.cbs-dw-name { position:absolute; left:0; right:0; bottom:0; padding:28px 12px 10px; background:linear-gradient(transparent, rgba(10,35,66,.85)); font-weight:600; font-size:1em; line-height:1.25; transition:padding .25s ease, font-size .25s ease; }
.cbs-dw-badges { position:absolute; top:8px; right:8px; display:flex; gap:4px; }
.cbs-dw-badge { display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.92); color:var(--dw-blue); box-shadow:0 1px 3px rgba(0,0,0,.2); }
.cbs-dw-badge svg { width:20px; height:20px; }
@media (hover:hover) {
  .cbs-dw-card:hover .cbs-dw-photo, .cbs-dw-card:focus-visible .cbs-dw-photo { transform:scale(1.04); }
  .cbs-dw-card:hover .cbs-dw-name, .cbs-dw-card:focus-visible .cbs-dw-name { padding-bottom:16px; font-size:1.15em; }
}
@media (prefers-reduced-motion:reduce) { .cbs-dw-photo, .cbs-dw-name { transition:none; } }
.cbs-dw-none, .cbs-dw-empty { text-align:center; margin:24px 0; }
.cbs-dw-more { text-align:center; margin-top:12px; }
.cbs-dw button.cbs-dw-morebtn { text-transform:none; box-shadow:none; padding:10px 24px; border:2px solid var(--dw-blue); border-radius:6px; background:#fff; color:var(--dw-blue); font:inherit; font-weight:600; cursor:pointer; }
.cbs-dw button.cbs-dw-morebtn:hover { background:#eef3fd; }

/* pop-up */
dialog.cbs-dw-dialog { position:fixed; inset:0; margin:auto; height:fit-content; width:min(640px, calc(100% - 32px)); max-height:calc(100vh - 48px); padding:0; border:0; border-radius:14px; color:var(--dw-navy); box-shadow:0 12px 40px rgba(10,35,66,.35); }
dialog.cbs-dw-dialog::backdrop { background:rgba(10,35,66,.6); }
.cbs-dw-dbody { position:relative; padding:28px; }
.cbs-dw button.cbs-dw-close { padding:0; min-height:0; box-shadow:none; position:absolute; top:8px; right:10px; width:40px; height:40px; border:0; border-radius:50%; background:transparent; color:var(--dw-navy); font-size:28px; line-height:1; cursor:pointer; }
.cbs-dw button.cbs-dw-close:hover { background:#eef3fd; }
.cbs-dw-dhead { display:flex; gap:20px; align-items:center; margin-bottom:16px; }
.cbs-dw-dphoto { width:160px; height:160px; object-fit:cover; border-radius:10px; flex:none; }
.cbs-dw-dhead h3 { margin:0 0 6px; color:var(--dw-navy); font-size:1.5em; }
.cbs-dw-dtypes { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0 0 4px; font-weight:600; color:var(--dw-blue); }
.cbs-dw-dtypes .cbs-dw-badge { box-shadow:none; background:#eef3fd; }
.cbs-dw-since { margin:0; }
.cbs-dw-quote { margin:0 0 14px; padding:4px 0 4px 16px; border-left:4px solid var(--dw-green); font-style:italic; font-size:1.05em; line-height:1.6; }
.cbs-dw-quote p { margin:0 0 .5em; }
.cbs-dw-programs { margin:0 0 8px; }
.cbs-dw-story { color:var(--dw-blue); font-weight:600; }
@media (max-width:520px) { .cbs-dw-dhead { flex-direction:column; align-items:flex-start; } .cbs-dw-dphoto { width:100%; height:200px; } }
