.hbct-kaupungit {
    background: #0f1115;
    padding: 2rem 1rem;
    border-radius: 18px;
}

/* PAKOTETTU VALKOINEN */

.hbct-kaupungit,
.hbct-kaupungit * {
    color: #ffffff !important;
}

.hbct-card__title,
.hbct-modal-title {
    color: #ff3b3b !important;
}

/* Search */

.hbct-search__input {
    width: 100%;
    background: #181b22;
    border: 1px solid #2a2f3a;
    border-radius: 14px;
    padding: 0.9rem 1rem;
}

/* Grid */

.hbct-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.2rem;
}

/* Card */

.hbct-card {
    background: linear-gradient(145deg, #14171d, #0f1115);
    border: 1px solid #252a35;
    border-radius: 8px;
    color: #fff !important;
    overflow: hidden;
    transition: all 0.3s ease;
}

.hbct-card:hover {
    transform: translateY(-6px);
    box-shadow:
        0 20px 50px rgba(0,0,0,0.55),
        0 0 0 1px rgba(124,156,255,0.15);
}

.hbct-card__thumb {
    width: 100%;
    height: 170px;
    object-fit: cover;
}

.hbct-card__body {
    padding: 1rem;
color: #fff !important;
}

.hbct-card__excerpt {
    opacity: 0.75;
}

/* CTA */

.hbct-card__readmore {
    border: none;
    border-radius: 12px;
    padding: 0.65rem;
    background: linear-gradient(135deg, #ff3b3b, #c40000);
}

/* Share */

.hbct-share-btn {
    font-size: 0.75rem;
    padding: 0.4rem 0.7rem;
    border-radius: 8px;
    background: linear-gradient(145deg, #1c2028, #151922);
    border: 1px solid #2a2f3a;
color: #fff !important;
}

/* Load more */

.hbct-load-more {
    margin: 1.5rem auto 0;
    display: block;
    border: none;
    border-radius: 14px;
    padding: 0.75rem 1.6rem;
    background: linear-gradient(135deg, #ff3b3b, #c40000);
}

/* Modal */

.hbct-modal {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
}

.hbct-modal.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hbct-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.75);
}

.hbct-modal__content {
    position: relative;
    width: 95%;
    max-width: 820px;
    max-height: 90vh;
    overflow-y: auto;
    background: linear-gradient(145deg, #181b22, #13161c);
    border-radius: 8px;
    padding: 2rem;
}

.hbct-modal-hero {
    width: 100%;
    border-radius: 8px;
}
