.cb-camps {
    max-width: 1080px;
    margin: 4.5rem auto;
}

.cb-camps-head {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 3rem;
}
.cb-camps-eyebrow {
    display: inline-block;
    margin-bottom: .75rem;
    color: var(--bs-primary, #fca844);
    font-size: .8rem;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.cb-camps-headline {
    margin: 0;
    font-weight: 600;
    letter-spacing: -.01em;
    text-wrap: balance;
}
.cb-camps-sub {
    margin: 1rem auto 0;
    max-width: 540px;
    color: var(--ad-text-secondary, #9c9c9d);
    font-size: 1.0625rem;
    line-height: 1.6;
}

.cb-camps-group + .cb-camps-group {
    margin-top: 2.75rem;
}
.cb-camps-group-label {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 1.1rem;
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ad-text-secondary, #9c9c9d);
}
.cb-camps-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    box-sizing: border-box;
}
.cb-camps-dot--visited { background: var(--bs-primary, #fca844); }
.cb-camps-dot--planned { border: 1.5px solid var(--ad-text-muted, #6a6b6c); }

.cb-camps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
    gap: 1rem;
}

.cb-camps-card {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1.4rem 1.5rem 1.5rem;
    border-radius: 16px;
    border: 1px solid transparent;
    background:
        var(--ad-grain-soft, none) left top / 146px auto padding-box,
        linear-gradient(var(--ad-surface-2, #141416), var(--ad-surface-2, #141416)) padding-box,
        var(--ad-border-glare, linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .04))) border-box;
    box-shadow: var(--ad-inset-highlight, inset 0 1px 0 rgba(255, 255, 255, .06));
    transition: box-shadow .25s ease;
}
.cb-camps-card:hover {
    box-shadow: var(--ad-inset-highlight, inset 0 1px 0 rgba(255, 255, 255, .06)), 0 0 0 1px rgba(255, 255, 255, .1);
}

.cb-camps-card--planned { opacity: .9; }

.cb-camps-date {
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .76rem;
    letter-spacing: .02em;
    color: var(--ad-text-muted, #6a6b6c);
}

.cb-camps-name {
    margin: .1rem 0 0;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.3;
}

.cb-camps-loc {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--ad-text-muted, #6a6b6c);
    font-size: .88rem;
}
.cb-camps-pin { flex: none; opacity: .8; }

.cb-camps-note {
    margin: .35rem 0 0;
    color: var(--ad-text-secondary, #9c9c9d);
    font-size: .9rem;
    line-height: 1.55;
}

.cb-camps-link {
    margin-top: .65rem;
    align-self: flex-start;
    font-size: .85rem;
    font-weight: 500;
    color: var(--bs-primary, #fca844);
    text-decoration: none;
    transition: opacity .2s ease;
}
.cb-camps-link:hover { opacity: .75; }
