/* Root wrapper + layout toggles */
.ctsfwpb-list { display:block; }

/* Grid containers (events/docs/news can share) */
.ctsfwpb-list .event-list-grid,
.ctsfwpb-list .doc-list-grid,
.ctsfwpb-list .news-list-grid { display:grid; gap:1.25rem; grid-template-columns: repeat(12, minmax(0,1fr)); }

/* Simple responsive columns via data attribute */
.ctsfwpb-list .ctsfwpb-card { grid-column: span 12; }
.ctsfwpb-list[data-columns="2"] .ctsfwpb-card { grid-column: span 6; }

/* Card basics */
.ctsfwpb-card { border:1px solid rgba(0,0,0,.08); border-radius:.5rem; overflow:hidden; background:#fff; }
.ctsfwpb-list[data-scheme="dark"] .ctsfwpb-card { background:#111; color:#eee; border-color:rgba(255,255,255,.12); }
.ctsfwpb-card .media img { width:100%; height:auto; display:block; }
.ctsfwpb-card .card-body { padding:1rem; }
.ctsfwpb-card .card-title { margin:.25rem 0 .5rem; font-size:1.125rem; line-height:1.25; }
.ctsfwpb-card .card-meta { font-size:.875rem; opacity:.8; }
.ctsfwpb-card .card-meta.sub { margin-top:.25rem; }
.ctsfwpb-card .card-desc { margin:.75rem 0; }
.ctsfwpb-card .card-actions .btn { margin-right:.5rem; }

/* Banner layout */
.ctsfwpb-banner { display:flex; gap:1rem; border:1px solid rgba(0,0,0,.08); border-radius:.5rem; padding:1rem; background:#f9fafb; }
.ctsfwpb-list[data-scheme="dark"] .ctsfwpb-banner { background:#0a0a0a; border-color:rgba(255,255,255,.12); }
.ctsfwpb-banner .media img { max-width:220px; height:auto; display:block; border-radius:.375rem; }
.ctsfwpb-banner .announce { font-weight:600; margin-bottom:.5rem; }
.ctsfwpb-banner .title { margin:.125rem 0 .5rem; font-size:1.25rem; }
.ctsfwpb-banner .meta { font-size:.9rem; opacity:.85; margin-bottom:.5rem; }
.ctsfwpb-banner .actions .btn { margin-right:.5rem; }

/* Buttons */
.ctsfwpb-list .btn { display:inline-block; padding:.5rem .75rem; border:1px solid currentColor; text-decoration:none; border-radius:.375rem; }
.ctsfwpb-list .btn.ghost { opacity:.85 }
.ctsfwpb-list .btn.small { padding:.35rem .6rem; font-size:.88em; }

/* Pagination */
.ctsfwpb-list .pagination { margin-top:1rem; text-align:center; }
.ctsfwpb-list .pagination .btn.load-more { cursor:pointer; }

/* FAQ accordion */
.ctsfwpb-list .faq-accordion { display:block; }
.ctsfwpb-faq { border-top:1px solid rgba(0,0,0,.08); padding:.5rem 0; }
.ctsfwpb-faq .question { cursor:pointer; font-weight:600; }
.ctsfwpb-faq .answer { margin-top:.5rem; }

/* Utility (HTML/Shortcode) */
.ctsfwpb-util { display:block; }
.ctsfwpb-html, .ctsfwpb-shortcode { width:100%; }
