/* ============================================
   Cards Shared Styles
   Common patterns for card-based components
   ============================================ */

/* Section Layout */
.cardSection {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background-color: var(--color-iceland-100, #FBF9F6);
}

.cardSection__top {
    display: flex;
    width: 375px;
    padding: var(--section-padding-lg, 64px) var(--page-padding, 20px);
    flex-direction: column;
    align-items: center;
    gap: var(--section-padding-md);

    @media screen and (min-width:960px) {
        width: 100%;
        padding: 80px var(--page-padding, 64px) var(--page-padding, 64px) var(--page-padding, 64px);
    }
}

.cardSection__headingContainer {
    display: flex;
    max-width: 768px;
    flex-direction: column;
    align-items: center;
    gap: var(--sizing-s);

    @media screen and (min-width:960px) {
        gap: var(--sizing-xl);
    }
}

.cardSection__preHeading {
    font: var(--font-overline-lg);
    color: var(--color-iceland-1200, #030303);
    letter-spacing: 1.8px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 0px !important;
}

.cardSection__heading {
    font: var(--font-title-lg);
    color: var(--color-iceland-1200, #030303);
    text-align: center;
    margin-bottom: 0px !important;
}

.cardSection__body {
    display: flex;
    width: 375px;
    padding: var(--sizing-3xl, 40px) var(--page-padding, 20px) var(--section-padding-lg, 64px) var(--page-padding, 20px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-x6);

    @media screen and (min-width:960px) {
        max-width: 1440px;
        padding: 64px var(--page-padding, 64px) var(--section-padding-lg, 112px) var(--page-padding, 64px);
        gap: var(--spacing-x10);
        width: 100%;
    }
}

.cardSection__body a {
    width: 100%;
    font-weight: 600;

    @media screen and (min-width:960px) {
        width: unset;
    }
}

.cardSection__cardsContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 0 0;

    @media screen and (min-width:960px) {
        align-items: flex-start;
        flex-direction: row;
        gap: var(--sizing-2xl, 32px);
        width: 100%;
    }
}

/* Card Components */
.cardSection__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: var(--sizing-xl, 24px);
    gap: var(--sizing-s, 12px);
    align-self: stretch;

    @media screen and (min-width:960px) {
        gap: var(--spacing-x3, 24px);
        padding-top: unset;
    }
}

.cardSection__image {
    display: block;
    object-fit: cover;
}

.cardSection__textContainer p {
    font: var(--font-body-sm);
    color: var(--color-iceland-800);
    margin-bottom: 0 !important;
    overflow: hidden;
    font-feature-settings: 'dlig' on;
    text-overflow: ellipsis;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    align-self: stretch;
}

.cardSection__cardHeader {
    font: var(--font-title-xs);
    color: var(--color-iceland-1000);
    margin-bottom: 0 !important;
}

/* Image Wrapper with Gradient Overlay */
.contentCard-image-wrapper {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.contentCard-image-wrapper::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        33deg,
        rgba(0, 0, 0, 0) 75.15%,
        rgba(0, 0, 0, 0.30) 94.37%
    );
    pointer-events: none;
}

/* Arrow Icon Container */
.contentCards-whiteArrowContainer {
    display: flex;
    width: 56px;
    height: 56px;
    padding: 8px 12px;
    justify-content: center;
    align-items: center;
    position: absolute;
    right: 0;
    z-index: 2;

    @media screen and (max-width:960px) {
        right: 0.5px;
    }
}

.contentCards-whiteArrow {
    stroke-width: 1.5px;
    stroke: var(--color-contrast-100, #FFF);
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Listing Page Card Layout */
.destinationCards__cards-container.listingPage__card-container {
    flex-direction: column;
    gap: 48px;

    @media screen and (min-width:960px) {
        flex-direction: row;
        align-items: flex-start;
        gap: var(--sizing-2xl, 32px);
    }
}

.listingPage__column {
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 100%;

    @media screen and (min-width:960px) {
        flex: 1 1 0;
        min-width: 0;
    }
}

.listingPage__card {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
}
