html { font-size: 16px; }

/* Header logo lockup */
.bb-logo {
    display: inline-flex; align-items: center; gap: 14px;
    text-decoration: none; line-height: 1;
}
.bb-logo img { display: block; width: 44px; height: 44px; flex: none; }
.bb-logo__name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 600;
    font-size: 34px;
    letter-spacing: .01em;
    color: #2A4133;
    white-space: nowrap;
}

/* Section headings */
.section-heading {
    color: #2A4133;
    font-weight: 700;
    letter-spacing: -.01em;
}

/* Category grid cards */
.category-card {
    position: relative;
    overflow: hidden;
    border-radius: .75rem;
    aspect-ratio: 4/3;
    background: #e9ecef;
    display: block;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    transition: box-shadow .2s, transform .2s;
}
.category-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.15);
    transform: translateY(-2px);
}
.category-card img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .35s;
}
.category-card:hover img { transform: scale(1.05); }
.category-card .label {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.7));
    color: #fff;
    padding: 1.25rem 1rem .75rem;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .01em;
}

/* Star rating widget */
.stars { color: #ffc107; }
.stars .bi-star { color: #dee2e6; }

/* Article card thumbnail */
.article-card img {
    width: 100%; aspect-ratio: 4/3; object-fit: cover;
    border-radius: .375rem .375rem 0 0;
}

/* Top-25 list */
.top-article-card {
    border: 1px solid #e5e9e7;
    border-radius: .75rem;
    padding: .75rem 1rem;
    background: #fff;
    transition: box-shadow .2s, border-color .2s;
}
.top-article-card:hover {
    box-shadow: 0 4px 14px rgba(42,65,51,.12);
    border-color: #b5cbbf;
}
.top-article-img {
    width: 72px; height: 72px; object-fit: cover; border-radius: .5rem;
}

/* Order/comment sections */
.section-divider {
    border-top: 2px solid #2A4133;
    margin: 2.5rem 0 1.75rem;
}
