:root {
    --bmp-primary: #0d3b66;
    --bmp-accent: #f4a259;
}

.navbar-brand {
    letter-spacing: 0.02em;
}

.btn-primary {
    background-color: var(--bmp-primary);
    border-color: var(--bmp-primary);
}
.btn-primary:hover {
    background-color: #092a49;
    border-color: #092a49;
}

.card-cover {
    height: 260px;
    object-fit: cover;
    background: #e9ecef;
}

.hero {
    background: linear-gradient(135deg, var(--bmp-primary), #145b8f);
    color: #fff;
}

.badge-format {
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.star-rating {
    color: var(--bmp-accent);
}

/* Keeps a button clickable above a card's .stretched-link overlay. */
.card-cta {
    position: relative;
    z-index: 2;
}

/* Keeps #-anchor jump targets from hiding under the sticky navbar. */
.scroll-anchor {
    scroll-margin-top: 90px;
}

/* Home-page hero carousel (slides managed in the staff panel). */
.hero-slide {
    min-height: 420px;
    background-size: cover;
    background-position: center;
    color: #fff;
}
.hero-carousel .carousel-item .container {
    padding-left: 3.5rem;
    padding-right: 3.5rem;
}
@media (max-width: 576px) {
    .hero-slide { min-height: 340px; }
    .hero-carousel .display-5 { font-size: 1.9rem; }
}

/* News pages (newspaper look). */
.news-title { font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: clamp(2rem, 5vw, 3.4rem); letter-spacing: -.01em; line-height: 1.1; }
.news-headline { font-family: Georgia, "Times New Roman", serif; }
.news-section-title { letter-spacing: .06em; }
.news-card:hover .news-headline { text-decoration: underline; }
.news-thumb { width: 96px; height: 72px; object-fit: cover; flex-shrink: 0; }
.news-lead-img { width: 100%; max-height: 420px; object-fit: cover; }
.news-home-img { width: 100%; height: 160px; object-fit: cover; }
.news-body { font-family: Georgia, "Times New Roman", serif; font-size: 1.12rem; line-height: 1.7; }
.news-body .ql-align-center { text-align: center; }
.news-body .ql-align-right { text-align: right; }
.news-body .ql-align-justify { text-align: justify; }
.news-body li[data-list="bullet"] { list-style-type: disc; }
.news-body blockquote { border-left: 4px solid #dc3545; padding-left: 1rem; color: #444; font-style: italic; }
.footer-subscribe { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }

/* Industrial & organisational reports page. */
.reports-cta, .reports-hero { background: linear-gradient(135deg, #0d3b66 0%, #145da0 60%, #1b7fc4 100%); }
.reports-hero { color: #fff; }
.report-step { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #0d3b66; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }
