/* ─── Reisscanner kaarten grid ─────────────────────────────────────── */

.rv_cardGrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
}

/* ─── Kaart ───────────────────────────────────────────────────────── */

.rv_card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
    transition: box-shadow .2s ease, transform .2s ease;
}

.rv_card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
    transform: translateY(-2px);
}

.rv_card--uitgelicht {
    box-shadow: 0 0 0 2px #eab308, 0 2px 8px rgba(234, 179, 8, .18);
}

/* ─── Media / afbeelding ──────────────────────────────────────────── */

.rv_media {
    position: relative;
    overflow: hidden;
}

.rv_imgPlaceholder {
    padding-top: 62.5%; /* 400 × 250 aspect ratio */
    background: #e8e5e0;
}

.rv_reisLink {
    display: block;
    position: absolute;
    inset: 0;
}

.rv_reisImg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ─── Badges ──────────────────────────────────────────────────────── */

.rv_card__badgesTopLeft,
.rv_card__badgesBottomLeft {
    position: absolute;
    left: .5rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    pointer-events: none;
}

.rv_card__badgesTopLeft {
    top: .5rem;
}

.rv_card__badgesBottomLeft {
    bottom: .5rem;
}

.rv_uitgelichtBadge,
.rv_landSpecialistBadge,
.rv_maatwerkBadge,
.rv_prijsVerlaagdBadge,
.rv_prijsLabelBadge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .55rem;
    border-radius: 6px;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}

.rv_uitgelichtBadge {
    background: rgba(234, 179, 8, .92);
    color: #1a1400;
}

.rv_uitgelichtBadge__circle {
    display: inline-flex;
}

.rv_uitgelichtBadge__star {
    width: 14px;
    height: 14px;
}

.rv_landSpecialistBadge {
    background: rgba(37, 99, 235, .88);
    color: #fff;
}

.rv_landSpecialistBadge__circle {
    font-size: .85rem;
    line-height: 1;
}

.rv_maatwerkBadge {
    background: rgba(16, 185, 129, .88);
    color: #fff;
}

.rv_prijsVerlaagdBadge {
    background: rgba(239, 68, 68, .88);
    color: #fff;
}

.rv_prijsLabelBadge--prijsbewust {
    background: rgba(34, 197, 94, .88);
    color: #fff;
}

.rv_prijsLabelBadge--topklasse {
    background: rgba(139, 92, 246, .88);
    color: #fff;
}

/* ─── Content ─────────────────────────────────────────────────────── */

.rv_content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: .85rem 1rem 1rem;
}

.rv_cardTitleRow {
    margin-bottom: .45rem;
}

.rv_reisTitleLink {
    text-decoration: none;
    color: inherit;
}

.rv_reisTitleLink h3 {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rv_reisTitleLink:hover h3 {
    color: #1e40af;
}

/* ─── Meta badges ─────────────────────────────────────────────────── */

.rv_meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .5rem;
}

.rv_badge {
    display: inline-flex;
    align-items: center;
    padding: .15rem .5rem;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    color: #374151;
    background: #f3f4f6;
}

a.rv_badge:hover {
    background: #e5e7eb;
    color: #1e40af;
}

.rv_badgeDagen {
    background: #dbeafe;
    color: #1e40af;
    font-weight: 600;
}

.rv_badgeSamenstelling {
    background: #fef9c3;
    color: #854d0e;
}

.rv_landenBadge {
    background: #dcfce7;
    color: #166534;
}

.rv_landenLink {
    color: inherit;
    text-decoration: none;
}

.rv_landenLink:hover {
    text-decoration: underline;
}

.rv_badgeReissoort {
    background: #f3e8ff;
    color: #6b21a8;
}

.rv_reissoortLink {
    color: inherit;
    text-decoration: none;
}

.rv_reissoortLink:hover {
    text-decoration: underline;
}

/* ─── Omschrijving ────────────────────────────────────────────────── */

.rv_omschrijvingLink {
    text-decoration: none;
    color: inherit;
}

.rv_omschrijving {
    font-size: .82rem;
    line-height: 1.55;
    color: #6b7280;
    margin: 0 0 .6rem;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rv_omschrijvingLink:hover .rv_omschrijving {
    color: #374151;
}

/* ─── Footer ──────────────────────────────────────────────────────── */

.rv_cardFooter {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: auto;
    padding-top: .7rem;
    border-top: 1px solid #f3f4f6;
    gap: .5rem;
}

.rv_cardFooter__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: .5rem;
}

.rv_providerLink {
    flex-shrink: 0;
}

.rv_providerLogo {
    height: 24px;
    width: auto;
    max-width: 90px;
    object-fit: contain;
}

.rv_cardDetailsBtn {
    display: none;
}

.rv_priceLink {
    text-decoration: none;
    color: inherit;
    flex-shrink: 0;
    margin-left: auto;
}

.rv_priceCorner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.rv_priceVanaf {
    font-size: .65rem;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.rv_priceAmount {
    font-size: 1.15rem;
    font-weight: 800;
    color: #dc2626;
    line-height: 1.2;
}

.rv_priceInclVlucht {
    font-size: .65rem;
    color: #16a34a;
    font-weight: 500;
}

/* ─── Responsive ──────────────────────────────────────────────────── */

@media (max-width: 639px) {
    .rv_cardGrid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .rv_cardGrid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .rv_cardGrid {
        grid-template-columns: repeat(3, 1fr);
    }
}

