/* ═══════════════════════════════════════════════════
   New UI — tour & listing card polish
   Duration · location · amenities · meta · price rows
   Load after new-ui-core.css
   ═══════════════════════════════════════════════════ */

/* ── Consistent card image heights ── */
.nd-dest-card-img,
.nd-pkg-card-img,
.nic-tour-img,
.nid-tour-img,
.nsr-tour-img,
.nbs-tour-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}

/* ── Reusable image-fit contract (defensive) ──────────────────────────────
   Consolidates the per-page ".*-img-wrap img { object-fit:cover }" rules into one
   shared contract, so EVERY content image inside a card/tile media wrapper fills
   its box without distortion — including class-less/dynamic <img> whose page might
   miss its own rule (which would otherwise fall back to the browser default `fill`
   and stretch). Each wrapper owns its aspect-ratio/height and object-position; this
   only guarantees the FIT (cover) and box filling. Lightboxes and logos use
   object-fit:contain and are NOT media wrappers, so they are unaffected. */
.nid-tour-img-wrap > img,
.nic-tour-img-wrap > img,
.nsr-tour-img-wrap > img,
.nbs-tour-img-wrap > img,
.nd-dest-card-img-wrap > img,
.nid-more-card-img > img,
.nd-dest-card-img > img,
.nd-pkg-img > img,
.nd-cat-card-img > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Card inner layout — button always pinned to bottom ── */
.nd-dest-card,
.nd-pkg-card,
.nic-tour-card,
.nid-tour-card {
    display: flex;
    flex-direction: column;
}

/* ── Text line-clamp helpers ── */
.nui-clamp-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.nui-clamp-3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

/* ── Shared amenities strip ── */
.nui-tour-amenities,
.nid-tour-amenities,
.nic-tour-amenities,
.nsr-tour-amenities,
.nbs-tour-amenities {
    display: flex;
    align-items: center;
    gap: var(--space-4, 16px);
    padding: 10px 0;
    border-top: 1px solid #f1f5f9;
    margin-bottom: 14px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.nui-tour-amen,
.nid-tour-amen,
.nic-tour-amen,
.nsr-tour-amen,
.nbs-tour-amen {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #334155;
    letter-spacing: 0.01em;
}

.nui-tour-amen i,
.nid-tour-amen i,
.nic-tour-amen i,
.nsr-tour-amen i,
.nbs-tour-amen i {
    font-size: 13px;
    color: #059669;
    flex-shrink: 0;
}

/* ── Image duration strip (search, blog, etc.) ── */
.nsr-tour-meta-bar,
.nbs-tour-meta-bar {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 12px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.nsr-tour-meta-bar i,
.nbs-tour-meta-bar i {
    font-size: 11px !important;
    opacity: 1 !important;
    flex-shrink: 0;
}

/* ── Location row ── */
.nid-tour-place,
.nic-tour-place,
.nsr-tour-place,
.nbs-tour-place {
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: #475569 !important;
}

.nid-tour-place i,
.nic-tour-place i,
.nsr-tour-place i,
.nbs-tour-place i {
    font-size: 11px !important;
    color: #059669 !important;
}

/* ── Star rating on cards ── */
.nid-tour-rating {
    font-size: 12px;
    font-weight: 700;
    color: #0f172a;
}

.nid-tour-rating i {
    color: #fbbf24;
    font-size: 11px;
}

.nid-tour-rating span {
    font-size: 10px;
    color: #64748b;
    font-weight: 500;
}

/* ── Homepage package carousel cards ── */
.nd-pkg-info {
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: #475569 !important;
}

.nd-pkg-dur {
    font-weight: 600;
    color: #334155;
}

.nd-pkg-dur i {
    font-size: 11px !important;
    color: #059669 !important;
}

.nd-pkg-rating-val {
    font-weight: 700 !important;
    color: #0f172a !important;
}

.nd-pkg-rating i {
    font-size: 11px !important;
}

.nd-pkg-rating-cnt {
    font-weight: 500;
    color: #64748b !important;
}

/* ── Search result price row ── */
.nsr-tour-price-from {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #475569 !important;
}

.nsr-tour-price-now {
    font-size: 16px;
    font-weight: 800;
    color: #059669;
}

/* ── Blog listing cards ── */
.nbl-card-meta {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #64748b !important;
    gap: 12px !important;
}

.nbl-card-meta i {
    font-size: 11px !important;
    color: #059669 !important;
}

.nbl-card-author {
    font-weight: 600 !important;
    color: #475569 !important;
}

/* ── Destination listing cards (countries / states grid) ── */
.nd-dest-card-icon {
    color: #059669;
}

/* ── Customer wishlist cards ── */
.wl-meta {
    font-size: 11.5px !important;
    font-weight: 600 !important;
    color: #475569 !important;
}

.wl-meta i {
    color: #059669 !important;
    font-size: 12px !important;
}

.wl-chip {
    font-weight: 600;
    color: #334155;
}

.wl-price-label {
    font-weight: 600;
    color: #64748b;
}

/* ── Category destination mini-cards ── */
.nic-cat-dest-card .nic-cat-dest-meta,
.nic-cat-dest-meta {
    font-size: 11px;
    font-weight: 600;
    color: #475569;
}

@media (max-width: 640px) {
    .nui-tour-amenities,
    .nid-tour-amenities,
    .nic-tour-amenities,
    .nsr-tour-amenities,
    .nbs-tour-amenities {
        gap: 10px 12px;
        margin-bottom: 12px;
    }

    .nui-tour-amen,
    .nid-tour-amen,
    .nic-tour-amen,
    .nsr-tour-amen,
    .nbs-tour-amen {
        font-size: 10.5px;
    }
}
