/* ==========================================================================
   Africa CPTA Theme — Widgets (Corrected & Optimized)
   Includes visual fixes for dark mode contrast and carousel controls.
   Depends on: Bootstrap 5, Swiper
   ========================================================================== */

/* ------------------------------
   Generic widget chrome
------------------------------- */
.widget {
  --w-border: var(--color-border, rgba(0,0,0,.08));
  --w-surface: var(--color-surface, #fff);
}
.widget .widget-title,
.widgettitle {
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: .75rem;
}

/* ------------------------------
   Countries Grid ([countries_grid])
------------------------------- */
.countries-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (min-width: 576px) { .countries-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .countries-grid { grid-template-columns: repeat(4, 1fr); } }

.country-item { list-style: none; }
.country-link {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--w-surface);
  border: 1px solid var(--w-border);
  border-radius: 12px;
  text-decoration: none;
  color: var(--color-text, #222);
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.country-link:hover,
.country-link:focus {
  transform: translateY(-2px);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  border-color: var(--color-primary, #007b5e);
  outline: none;
}
.country-link:focus-visible {
  box-shadow: 0 0 0 3px rgba(0,123,94,.25);
}
.country-flag {
  width: 36px;
  height: 24px;
  object-fit: cover;
  border-radius: 4px;
}
.country-name {
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.01em;
}
.countries-grid .no-results {
  grid-column: 1 / -1;
  color: var(--color-text-dim, #5b6b79);
  background: var(--w-surface);
  border: 1px dashed var(--w-border);
  border-radius: 12px;
  padding: 14px;
  text-align: center;
}

/* ------------------------------
   Country Profiles Carousel
------------------------------- */
.country-profiles-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.country-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--w-surface);
  border: 1px solid var(--w-border);
  border-radius: 12px;
  padding: 12px;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.country-carousel-link:hover,
.country-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.country-carousel-link img {
  width: 64px;
  height: 44px;
  object-fit: cover;
  border-radius: 6px;
}
.country-carousel-title {
  margin-top: .5rem;
  font-weight: 700;
  font-size: .95rem;
  line-height: 1.2;
}
.country-profiles-swiper .swiper-button-prev,
.country-profiles-swiper .swiper-button-next {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--w-border);
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
}
.country-profiles-swiper .swiper-button-prev:after,
.country-profiles-swiper .swiper-button-next:after {
  font-size: 18px;
  color: var(--color-text, #222);
}
.country-profiles-swiper .swiper-pagination-bullet { opacity: .5; }
.country-profiles-swiper .swiper-pagination-bullet-active { opacity: 1; background: var(--color-primary, #007b5e); }

/* ------------------------------
   Actors Grid ([actors_grid])
------------------------------- */
.actors-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (min-width: 576px) { .actors-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .actors-grid { grid-template-columns: repeat(4, 1fr); } }

.actor-grid-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px;
  background: var(--w-surface);
  border: 1px solid var(--w-border);
  border-radius: 12px;
  text-align: center;
  text-decoration: none;
  color: var(--color-text, #222);
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.actor-grid-card:hover,
.actor-grid-card:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.actor-card-logo {
  width: 60px;
  height: 60px;
  object-fit: contain;
  border-radius: 8px;
  background: #f6f8fa;
}
.actor-card-title {
  margin-top: .5rem;
  font-weight: 700;
  font-size: .95rem;
  line-height: 1.3;
}
.actor-card-cats {
  margin-top: .25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.actor-card-cat {
  font-size: .75rem;
  background: var(--color-primary-light, #e6f4f1);
  color: var(--color-primary, #007b5e);
  padding: 2px 6px;
  border-radius: 6px;
}

/* ------------------------------
   Actor Profiles Carousel
------------------------------- */
.actor-profiles-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.actor-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--w-surface);
  border: 1px solid var(--w-border);
  border-radius: 12px;
  padding: 12px;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.actor-carousel-link:hover,
.actor-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.actor-carousel-link img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 8px;
  background: #f6f8fa;
}
.actor-carousel-title {
  margin-top: .5rem;
  font-weight: 700;
  font-size: .95rem;
  line-height: 1.2;
}
.actor-profiles-swiper .swiper-button-prev,
.actor-profiles-swiper .swiper-button-next {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--w-border);
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  top: 42%;
}
.actor-profiles-swiper .swiper-button-prev:after,
.actor-profiles-swiper .swiper-button-next:after {
  font-size: 18px;
  color: var(--color-text, #222);
}
.actor-profiles-swiper .swiper-button-prev { left: 8px; }
.actor-profiles-swiper .swiper-button-next { right: 8px; }
.actor-profiles-swiper .swiper-pagination-bullet { opacity: .5; }
.actor-profiles-swiper .swiper-pagination-bullet-active { opacity: 1; background: var(--color-primary, #007b5e); }

@media (min-width: 992px) {
  .actor-profiles-swiper .swiper-button-prev,
  .actor-profiles-swiper .swiper-button-next { opacity: 0; transition: opacity .2s ease; }
  .actor-profiles-swiper:hover .swiper-button-prev,
  .actor-profiles-swiper:hover .swiper-button-next { opacity: 1; }
}
/* ==========================================================================
   Africa CPTA Theme — Widgets (Part 2/3)
   Dark Section + Article Reports + News Feed
   ========================================================================== */

/* ------------------------------
   Dark section & dark mode helpers
------------------------------- */
html.theme-dark,
.dark-section {
  --color-text: #e8eef5;
  --color-text-dim: #aab9c8;
}

html.theme-dark .country-link,
html.theme-dark .country-carousel-link,
html.theme-dark .actor-grid-card,
html.theme-dark .actor-carousel-link,
html.theme-dark .af-card {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

html.theme-dark .countries-grid .no-results {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text-dim, #aab9c8);
}

/* When widgets sit on a .dark-section (even without html.theme-dark) */
.dark-section .country-link,
.dark-section .country-carousel-link,
.dark-section .actor-grid-card,
.dark-section .actor-carousel-link,
.dark-section .af-card {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: #e8eef5; /* force light text */
}

.dark-section .country-name,
.dark-section .actor-carousel-title,
.dark-section .af-card .title {
  color: #e8eef5;
}

.dark-section .af-card .meta {
  color: var(--color-text-dim, #aab9c8);
}

/* Swiper arrows visibility/readability on dark sections */
.dark-section .swiper-button-prev,
.dark-section .swiper-button-next,
html.theme-dark .swiper-button-prev,
html.theme-dark .swiper-button-next {
  background: rgba(18,23,30,.9);
  border-color: var(--color-border, rgba(255,255,255,.12));
}
@media (min-width: 992px) {
  .swiper-button-prev.show, .swiper-button-next.show { opacity: 1 !important; }
}

/* ------------------------------
   Article Reports — Carousel
------------------------------- */
.article-reports-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.article-reports-swiper .swiper-slide { height: auto; }

.article-report-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.article-report-carousel-link:hover,
.article-report-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.article-report-carousel-link img {
  display: block;
  width: 100%;
  height: 300px;
  border-radius: 8px;
}
.article-report-carousel-title {
  margin-top: .5rem;
  font-weight: 700;
  line-height: 1.3;
  font-size: .98rem;
}

/* Scoped controls */
.article-reports-swiper .swiper-button-prev,
.article-reports-swiper .swiper-button-next {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
}
.article-reports-swiper .swiper-button-prev:after,
.article-reports-swiper .swiper-button-next:after {
  font-size: 18px; color: var(--color-text, #222);
}
.article-reports-swiper .swiper-pagination-bullet { opacity: .5; }
.article-reports-swiper .swiper-pagination-bullet-active {
  opacity: 1; background: var(--color-primary, #007b5e);
}

/* Dark sections / dark mode readability */
.dark-section .article-report-carousel-link,
html.theme-dark .article-report-carousel-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

/* ------------------------------
   Article Reports — Grid
------------------------------- */
.article-reports-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 576px) { .article-reports-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .article-reports-grid { grid-template-columns: repeat(3, 1fr); } }

.article-report-item { list-style: none; }

.article-report-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 10px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.article-report-link:hover,
.article-report-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.article-report-link img {
  display: block; width: 100%; height: auto; border-radius: 8px;
}
.article-report-title {
  display: block;
  margin-top: .5rem;
  font-weight: 700;
  line-height: 1.3;
}

/* Dark section version */
.dark-section .article-report-link,
html.theme-dark .article-report-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

/* ------------------------------
   News Feed — Carousel
------------------------------- */
.news-feed-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.news-feed-swiper .swiper-slide { height: auto; }

.news-feed-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.news-feed-carousel-link:hover,
.news-feed-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.news-feed-carousel-link img {
  display: block; width: 100%; height: auto; border-radius: 8px;
}
.news-feed-carousel-title {
  margin-top: .5rem;
  font-weight: 700;
  line-height: 1.3;
  font-size: .98rem;
}
.news-feed-carousel-summary {
  font-size: .85rem;
  line-height: 1.3;
  opacity: .85;
  margin-top: .3rem;
}

/* Scoped controls */
.news-feed-swiper .swiper-button-prev,
.news-feed-swiper .swiper-button-next {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
}
.news-feed-swiper .swiper-button-prev:after,
.news-feed-swiper .swiper-button-next:after {
  font-size: 18px; color: var(--color-text, #222);
}
.news-feed-swiper .swiper-pagination-bullet { opacity: .5; }
.news-feed-swiper .swiper-pagination-bullet-active {
  opacity: 1; background: var(--color-primary, #007b5e);
}

/* Dark section & dark mode adjustments */
.dark-section .news-feed-carousel-link,
html.theme-dark .news-feed-carousel-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}
.dark-section .news-feed-carousel-title,
html.theme-dark .news-feed-carousel-title { color: #e8eef5; }
.dark-section .news-feed-swiper .swiper-button-prev,
.dark-section .news-feed-swiper .swiper-button-next {
  background: rgba(18,23,30,.9);
  border-color: var(--color-border, rgba(255,255,255,.12));
}

/* ------------------------------
   News Feed — Grid
------------------------------- */
.news-feed-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 576px) { .news-feed-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .news-feed-grid { grid-template-columns: repeat(3, 1fr); } }

.news-feed-item { list-style: none; }
.news-feed-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 10px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.news-feed-link:hover,
.news-feed-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.news-feed-link img {
  display: block; width: 100%; height: auto; border-radius: 8px;
}
.news-feed-title {
  display: block;
  margin-top: .5rem;
  font-weight: 700;
  line-height: 1.3;
}
.news-feed-date {
  display: block;
  font-size: .85rem;
  color: var(--color-text-dim, #5b6b79);
  margin-top: .15rem;
}

/* Dark section version */
.dark-section .news-feed-link,
html.theme-dark .news-feed-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}
.dark-section .news-feed-title,
html.theme-dark .news-feed-title { color: #e8eef5; }
/* ==========================================================================
   Africa CPTA Theme — Widgets (Part 3/3)
   Regulatory Watch + Resources + Final Utilities
   ========================================================================== */

/* ------------------------------
   Regulatory Watch — Carousel
------------------------------- */
.regulatory-watch-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.regulatory-watch-swiper .swiper-slide { height: auto; }

.regwatch-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.regwatch-carousel-link:hover,
.regwatch-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.regwatch-carousel-title {
  font-weight: 700;
  margin-bottom: .35rem;
  font-size: .96rem;
}
.regwatch-carousel-summary {
  font-size: .85rem;
  line-height: 1.3;
  opacity: .85;
}

/* Controls */
.regulatory-watch-swiper .swiper-button-prev,
.regulatory-watch-swiper .swiper-button-next {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
}
.regulatory-watch-swiper .swiper-button-prev:after,
.regulatory-watch-swiper .swiper-button-next:after {
  font-size: 18px; color: var(--color-text, #222);
}
.regulatory-watch-swiper .swiper-pagination-bullet { opacity: .5; }
.regulatory-watch-swiper .swiper-pagination-bullet-active {
  opacity: 1; background: var(--color-primary, #007b5e);
}

/* Dark mode adjustments */
.dark-section .regwatch-carousel-link,
html.theme-dark .regwatch-carousel-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

/* ------------------------------
   Regulatory Watch — Grid
------------------------------- */
.regwatch-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 576px) { .regwatch-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .regwatch-grid { grid-template-columns: repeat(3, 1fr); } }

.regwatch-item { list-style: none; }

.regwatch-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 10px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.regwatch-link:hover,
.regwatch-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.regwatch-title {
  display: block;
  font-weight: 700;
  margin-bottom: .25rem;
}
.regwatch-countries {
  font-size: .85rem;
  color: var(--color-text-dim, #5b6b79);
}

/* Dark adjustments */
.dark-section .regwatch-link,
html.theme-dark .regwatch-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}
.dark-section .regwatch-countries,
html.theme-dark .regwatch-countries { color: var(--color-text-dim, #aab9c8); }

/* ------------------------------
   Resources — Carousel
------------------------------- */
.resources-swiper { --swiper-theme-color: var(--color-primary, #007b5e); }
.resources-swiper .swiper-slide { height: auto; }

.resource-carousel-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.resource-carousel-link:hover,
.resource-carousel-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.resource-carousel-title {
  margin-top: .5rem;
  font-weight: 700;
  font-size: .96rem;
}

/* Dark mode */
.dark-section .resource-carousel-link,
html.theme-dark .resource-carousel-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

/* ------------------------------
   Resources — Grid
------------------------------- */
.resources-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 576px) { .resources-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .resources-grid { grid-template-columns: repeat(4, 1fr); } }

.resource-item { list-style: none; }

.resource-link {
  display: block;
  text-decoration: none;
  color: var(--color-text, #222);
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  padding: 10px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.resource-link:hover,
.resource-link:focus {
  transform: translateY(-2px);
  border-color: var(--color-primary, #007b5e);
  box-shadow: var(--shadow-2, 0 6px 18px rgba(0,0,0,.08));
  outline: none;
}
.resource-title {
  display: block;
  margin-top: .5rem;
  font-weight: 700;
}

/* Dark adjustments */
.dark-section .resource-link,
html.theme-dark .resource-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text, #e8eef5);
}

/* ------------------------------
   No Results fallback
------------------------------- */
.no-results {
  padding: 1rem;
  text-align: center;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, rgba(0,0,0,.08));
  border-radius: 12px;
  font-size: .9rem;
  color: var(--color-text-dim, #5b6b79);
}
.dark-section .no-results,
html.theme-dark .no-results {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: var(--color-text-dim, #aab9c8);
}
/* Improve contrast on country pills */
.country-link { color: var(--color-text, #222); }
.dark-section .country-link { color: #e8eef5; }
.country-name { font-weight: 800; opacity: 1; } /* ensure not dim */
/* Final overrides to guarantee dark cards in dark sections */
.dark-section .actor-carousel-link,
html.theme-dark .actor-carousel-link {
  background: var(--color-surface, #12171e) !important;
  border-color: var(--color-border, rgba(255,255,255,.12)) !important;
  color: var(--color-text, #e8eef5) !important;
}
.dark-section .actor-carousel-title,
html.theme-dark .actor-carousel-title {
  color: #12171e !important;
}
.dark-section .actor-profiles-swiper .swiper-button-prev,
.dark-section .actor-profiles-swiper .swiper-button-next,
html.theme-dark .actor-profiles-swiper .swiper-button-prev,
html.theme-dark .actor-profiles-swiper .swiper-button-next {
  background: rgba(18,23,30,.9);
  border-color: var(--color-border, rgba(255,255,255,.12));
}
/* Countries: guaranteed readable text/flag sizing */
.country-flag { width: 36px; height: 24px; object-fit: cover; border-radius: 4px; }
.country-name { font-weight: 800; line-height: 1.2; letter-spacing: -.01em; }

.dark-section .country-link,
html.theme-dark .country-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: #e8eef5;
}
.dark-section .country-name,
html.theme-dark .country-name { color:#0d6efd; }
.country-link {
  box-shadow: var(--shadow-1, 0 2px 4px rgba(0,0,0,.05));
}
.dark-section .country-link {
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
/* Swiper inside flex/grid columns must be allowed to shrink */
.profiles-row,
.profiles-col {
  min-width: 0;              /* 🔑 */
}

.actor-profiles-carousel-container,
.country-profiles-carousel-container,
.actor-profiles-swiper,
.country-profiles-swiper,
.news-feed-swiper,
.article-reports-swiper,
.regulatory-watch-swiper,
.resources-swiper,
.swiper {
  width: 100%;
  min-width: 0;              /* 🔑 */
  max-width: 100%;
}

/* (Optional) keep slides from trying to be galaxy-sized if calc hiccups */
.swiper-wrapper { box-sizing: border-box; }
/* Actor cards on dark sections */
.dark-section .actor-carousel-link,
html.theme-dark .actor-carousel-link {
  background: var(--color-surface, #12171e) !important;
  border-color: var(--color-border, rgba(255,255,255,.12)) !important;
  color: var(--color-text, #e8eef5) !important;
}
.dark-section .actor-carousel-title,
html.theme-dark .actor-carousel-title { color: #12171e !important; }

/* Arrows visible on dark */
.dark-section .actor-profiles-swiper .swiper-button-prev,
.dark-section .actor-profiles-swiper .swiper-button-next,
html.theme-dark .actor-profiles-swiper .swiper-button-prev,
html.theme-dark .actor-profiles-swiper .swiper-button-next {
  background: rgba(18,23,30,.9);
  border-color: var(--color-border, rgba(255,255,255,.12));
}
.dark-section .country-link,
html.theme-dark .country-link {
  background: var(--color-surface, #12171e);
  border-color: var(--color-border, rgba(255,255,255,.12));
  color: #e8eef5;
}
.dark-section .country-name,
html.theme-dark .country-name { color: #0d6efd; }
/* Small widget helpers for lists/chips/cards */
.widget .chip { background: rgba(13,110,253,.08); color: #0d6efd; }
.widget .list-unstyled > li { padding: .25rem 0; }
.widget .card.shadow-sm { box-shadow: 0 .25rem .75rem rgba(0,0,0,.05)!important; }

.news-feed-carousel-title {
    color: #1e40af !important;
}
/* Applies to all carousels */
.swiper-pagination {
  position: static !important;  /* removes absolute positioning */
  margin-top: 16px;             /* spacing below carousel */
  text-align: center;           /* center the dots */
}

