.hover-card { transition: transform .12s ease, box-shadow .12s ease; }
.hover-card:hover, .hover-card:focus-within { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.08); }
.object-fit-cover { object-fit: cover; }
.navbar-brand { letter-spacing: .3px; }
.list-group-item { padding-top: .75rem; padding-bottom: .75rem; }
.article-body p { margin-bottom: 1rem; line-height: 1.7; }

/* ---- Article title links: make them black in light mode ---- */
.card-title,
.card-title a,
.card-title a:link,
.card-title a:visited,
.card-title a:hover,
.card-title a:active,
.card-title a:focus {
  color: #000 !important;
  text-decoration: none;
}

.card-title a:hover,
.card-title a:focus {
  text-decoration: underline; /* optional, for affordance */
}

/* Keep good contrast in dark mode */
[data-bs-theme="dark"] .card-title,
[data-bs-theme="dark"] .card-title a {
  color: var(--bs-body-color) !important;
}

/* size only */
.navbar-brand .logo { height: 28px; width: auto; }

/* light mode default: show light, hide dark */
.logo-light { display: inline-block; }
.logo-dark  { display: none; }

/* dark mode swap */
[data-bs-theme="dark"] .logo-light { display: none; }
[data-bs-theme="dark"] .logo-dark  { display: inline-block; }

/* Article summary should use the same color as body text */
.article-summary {
  color: var(--bs-body-color) !important;
}

/* optional: soften the left accent line for dark mode */
[data-bs-theme="dark"] .article-summary {
  border-left-color: rgba(255,255,255,.25) !important;
}

.ad-placeholder {
    background-color: #f9f9f9;
    border: 1px dashed #aaa;
    padding: 20px;
    margin: 15px 0;
    text-align: center;
    font-style: italic;
    color: #666;
}
