.image-promo-hero {
    --image-height: 500px;
    --card-offset: 1.5rem;

    position: relative;
    display: flex;
    justify-content: center;
}

.image-promo-hero .find-cruises-bar {
    position: absolute;
    top: calc(var(--image-height) - (64px * 1.5));
}

.image-promo-hero .carousel {
    width: 100%;
}

.image-promo-hero .carousel-inner {
    width: 100%;
    height: 100%;
    padding: 0;
}

.image-promo-hero .carousel-inner .carousel-item {
    width: 100%;
    height: 100%;
    padding: 0;
}

.image-promo-hero .carousel-inner .carousel-item img {
    height: var(--image-height);
}

.image-promo-hero .carousel .carousel-control-prev {
    top: auto;
    bottom: -16px;
    left: calc(50% - 48px);
}

.image-promo-hero .carousel .carousel-control-next {
    top: auto;
    bottom: -16px;
    right: calc(50% - 48px);
}

.image-promo-hero .promo-overlay {
    position: absolute;
    top: var(--card-offset);

    color: #fff;
    padding: 1.5rem;

    width: calc(100% - (2 * var(--card-offset)));
    max-width: 612px;
}

.image-promo-hero .promo-overlay[data-alignment="left"] {
    left: var(--card-offset);
}

.image-promo-hero .promo-overlay[data-alignment="center"] {
    left: 50%;
    translate: -50% 0;
}

.image-promo-hero .promo-overlay[data-alignment="right"] {
    right: var(--card-offset);
}

.image-promo-hero .promo-overlay[data-bg-color="--azamara-blue"] {
    /* Azamara Blue with Opacity */
    background-color: #00205bcc;
}

.image-promo-hero .promo-overlay[data-bg-color="--dusk"] {
    /* Dusk with Opacity */
    background-color: #797890cc;
}

.image-promo-hero .promo-overlay > * + * {
    margin: 0;
    margin-top: 1.5rem;
}

.image-promo-hero .promo-overlay .headline {
    font-style: normal;
    font-weight: 420;
    font-size: 30px;
    line-height: 38px;
    letter-spacing: 0.025em;
    margin-top: .5rem;
}

.image-promo-hero .promo-overlay .category {
    font-style: normal;
    font-weight: 450;
    font-size: 20px;
    line-height: 30px;    
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.image-promo-hero .promo-overlay .blurb {
    font-style: normal;
    font-weight: 390;
    font-size: 18px;
    line-height: 28px;    
    letter-spacing: 0.05em;
}

.image-promo-hero .promo-overlay .cta {
    background-color: var(--pure-white);
    border-color: var(--pure-white);

    font-style: normal;
    font-weight: 420;
    font-size: 18px;
    line-height: 28px;

    display: flex;
    align-items: center;
    letter-spacing: 0.05em;

    height: 48px;

    padding: 1em 1.5em;
}

.image-promo-hero .promo-overlay[data-bg-color="--azamara-blue"] .cta {
    background-color: var(--sunset);
    border-color: var(--sunset);
    color: var(--pure-white);
    fill: var(--pure-white);
}

.image-promo-hero .promo-overlay[data-bg-color="--azamara-blue"] .cta:hover {
    background-color: var(--dark-sunset);
    border-color: var(--dark-sunset);
    color: var(--pure-white);
    fill: var(--pure-white);
}

.image-promo-hero .promo-overlay .terms-and-conditions {
    font-style: normal;
    font-weight: 390;
    font-size: 18px;
    letter-spacing: 0.05em;
    text-decoration: underline; 

    display: inline-block;
}

.image-promo-hero .promo-overlay .terms-and-conditions:hover {
    cursor: pointer;
}

.image-promo-hero .promo-overlay .cta:hover {
    background-color: var(--azamara-blue);
    border-color: var(--azamara-blue);
}

/* -sm breakpoint */
@media (min-width: 576px) {

}

/* -md breakpoint */
@media (min-width: 768px) {
    .image-promo-hero {
        --card-offset: 3rem;
    }

    .image-promo-hero .promo-overlay {
        padding: 3rem;
    }

    .image-promo-hero .promo-overlay .headline {
        font-style: normal;
        font-weight: 420;
        font-size: 48px;
        line-height: 60px;
        letter-spacing: 0.025em;
    }

    .image-promo-hero .promo-overlay .category {
        font-style: normal;
        font-weight: 450;
        font-size: 26px;
        line-height: 38px;
        letter-spacing: 0.025em;
        text-transform: uppercase;
    }
    
    .image-promo-hero .promo-overlay .blurb {
        font-style: normal;
        font-weight: 390;
        font-size: 24px;
        line-height: 32px;
        letter-spacing: 0.025em;
    
        white-space: pre-line;
    }

    .image-promo-hero .promo-overlay .cta {
        height: 56px;
        font-style: normal;
        font-weight: 420;
        font-size: 20px;
    }

    .image-promo-hero .promo-overlay .terms-and-conditions {
        font-style: normal;
        font-weight: 390;
        font-size: 20px;
        line-height: 30px;
    }

    .image-promo-hero .find-cruises-bar {
        position: absolute;
        top: calc(var(--image-height) - 64px);
    }
}

/* -lg breakpoint*/
@media (min-width: 992px) {
    .image-promo-hero {
        --card-offset: 5rem;
    }

    .image-promo-hero .carousel .carousel-indicators {
        display: flex;
    }

    .image-promo-hero .carousel .carousel-control-prev {
        left: 16px;
        bottom: auto;
        top: 50%;
        transform: translate(0, -50%);
    }
    
    .image-promo-hero .carousel .carousel-control-next {
        right: 16px;
        bottom: auto;
        top: 50%;
        transform: translate(0, -50%);
    }

    .image-promo-hero .carousel-inner .carousel-item img {
        width: 100%;
        /* height: 100%; */
        object-fit: cover;
        margin: 0;
    }
}

/* -xl breakpoint */
@media (min-width: 1200px) {
    .image-promo-hero .find-cruises-bar {
        position: absolute;
        top: calc(var(--image-height) - (72px / 2));
    }
}

/* -xxl breakpoint */
@media (min-width: 1400px) {

}