/* ==========================================================
   BOOQABLE BOOKING WIDGETS
   Florida + Minnesota
   Main images = 4:3 everywhere
   ========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;500;600;700&family=Work+Sans:wght@400;500;600&display=swap');


/* ==========================================================
   GLOBAL FONT HELPERS
   ========================================================== */

#booking-widget-florida,
#booking-widget-florida p,
#booking-widget-florida span,
#booking-widget-florida a,
#booking-widget-florida button,
#booking-widget-florida input,
#booking-widget-florida select,
#booking-widget-florida textarea,
#booking-widget-florida label,
#booking-widget-florida li,

#booking-widget-minnesota,
#booking-widget-minnesota p,
#booking-widget-minnesota span,
#booking-widget-minnesota a,
#booking-widget-minnesota button,
#booking-widget-minnesota input,
#booking-widget-minnesota select,
#booking-widget-minnesota textarea,
#booking-widget-minnesota label,
#booking-widget-minnesota li {
    font-family: "Work Sans", sans-serif !important;
}


/* Headings */

#booking-widget-florida .bq-product-name,
#booking-widget-florida h1,
#booking-widget-florida h2,
#booking-widget-florida h3,
#booking-widget-florida h4,
#booking-widget-florida h5,
#booking-widget-florida h6,

#booking-widget-minnesota .bq-product-name,
#booking-widget-minnesota h1,
#booking-widget-minnesota h2,
#booking-widget-minnesota h3,
#booking-widget-minnesota h4,
#booking-widget-minnesota h5,
#booking-widget-minnesota h6 {
    font-family: "Josefin Sans", sans-serif !important;
}


/* ==========================================================
   GLOBAL MAIN IMAGE FIX
   4:3 FOR BOTH WIDGETS
   ========================================================== */

#booking-widget-florida [data-tid="Main image"],
#booking-widget-florida [class*="MainImageContainer-"],

#booking-widget-minnesota [data-tid="Main image"],
#booking-widget-minnesota [class*="MainImageContainer-"] {
    width: 100% !important;
    max-width: 100% !important;

    aspect-ratio: 4 / 3 !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow: hidden !important;
    position: relative !important;

    box-sizing: border-box !important;
}


/*
 IMPORTANT:
 Only target MainImage layers INSIDE the container.
 This prevents MainImageContainer itself from getting height:100%.
*/

#booking-widget-florida [class*="MainImageContainer-"] [class*="MainImage-"],
#booking-widget-florida [class*="MainImageContainer-"] [class*="BFocalImage-"],

#booking-widget-minnesota [class*="MainImageContainer-"] [class*="MainImage-"],
#booking-widget-minnesota [class*="MainImageContainer-"] [class*="BFocalImage-"] {
    width: 100% !important;
    height: 100% !important;

    max-width: 100% !important;
    max-height: 100% !important;
}


/* Main actual images */

#booking-widget-florida [data-tid="Main image"] img,
#booking-widget-florida [class*="MainImageContainer-"] img,

#booking-widget-minnesota [data-tid="Main image"] img,
#booking-widget-minnesota [class*="MainImageContainer-"] img {
    position: absolute !important;
    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: center center !important;

    display: block !important;

    image-rendering: auto !important;
}


/* ==========================================================
   FLORIDA BOOKING WIDGET
   Section ID: booking-widget-florida
   ========================================================== */


/* ==========================================================
   1. TWO PRODUCT COLUMNS - SAME HEIGHT
   ========================================================== */

#booking-widget-florida .row_col_wrap_12 {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
}


#booking-widget-florida .vc_col-sm-6 {
    display: flex !important;
    align-items: stretch !important;
}


#booking-widget-florida .vc_col-sm-6 > .vc_column-inner {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
}


#booking-widget-florida .vc_col-sm-6 > .vc_column-inner > .wpb_wrapper {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
}


#booking-widget-florida .wpb_text_column {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
}


#booking-widget-florida .wpb_text_column > .wpb_wrapper {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
}


/* ==========================================================
   2. PRODUCT CARD - EQUAL HEIGHT
   ========================================================== */

#booking-widget-florida .booqable-product-detail {
    width: 100% !important;
    max-width: 100% !important;

    height: 100% !important;

    display: flex !important;
    flex-direction: column !important;
}


#booking-widget-florida .booqable-product-detail > [class*="Themed-"] {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
    flex-direction: column !important;
}


/*
 Do not force display:flex on .booqable-component.
 Booqable can temporarily use display:none while loading.
*/

#booking-widget-florida .booqable-component,
#booking-widget-florida .booqable-product-detail-wrapper {
    width: 100% !important;
    max-width: 100% !important;
}


#booking-widget-florida .booqable-component-product-detail {
    height: 100% !important;
    flex-grow: 1 !important;
}


#booking-widget-florida .booqable-product-detail-wrapper {
    height: 100% !important;

    display: flex !important;
    flex-direction: column !important;

    flex-grow: 1 !important;
}


/* ==========================================================
   3. PRODUCT IMAGE AREA
   ========================================================== */

#booking-widget-florida [class*="ProductImage-"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;

    flex: 0 0 auto !important;

    display: block !important;
}


/* ==========================================================
   4. GALLERY
   ========================================================== */

#booking-widget-florida [class*="Gallery-"] {
    width: 100% !important;
    max-width: 100% !important;

    box-sizing: border-box !important;
}


#booking-widget-florida [class*="GalleryImagesContainer-"] {
    width: 100% !important;
    max-width: 100% !important;

    overflow: hidden !important;
}


#booking-widget-florida [class*="GalleryImages-"] {
    width: 100% !important;
}


/* ==========================================================
   5. GALLERY THUMBNAILS
   ========================================================== */

#booking-widget-florida [class*="GalleryImageContainer-"] {
    width: 72px !important;
    min-width: 72px !important;
    height: 72px !important;

    flex: 0 0 72px !important;

    overflow: hidden !important;
}


#booking-widget-florida [class*="GalleryImageContainer-"] [class*="BFocalImage-"] {
    width: 100% !important;
    height: 100% !important;
}


#booking-widget-florida [class*="GalleryImageContainer-"] img {
    width: 100% !important;
    height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: center center !important;

    display: block !important;
}


/* ==========================================================
   6. FLORIDA CONTENT
   ========================================================== */

#booking-widget-florida .bq-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;

    padding: 26px 25px 28px !important;

    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: column !important;

    flex-grow: 1 !important;
}


/* Product name */

#booking-widget-florida .bq-product-name {
    font-family: "Josefin Sans", sans-serif !important;

    font-weight: 600 !important;
    line-height: 1.2 !important;

    margin-top: 0 !important;
    margin-bottom: 14px !important;
}


/* Description */

#booking-widget-florida .bq-product-description {
    width: 100% !important;

    margin-top: 20px !important;
}


#booking-widget-florida .bq-product-description p,
#booking-widget-florida .bq-product-description li {
    line-height: 1.65 !important;
}


#booking-widget-florida .bq-product-description p:last-child {
    margin-bottom: 0 !important;
}


/* Actions */

#booking-widget-florida .bq-actions {
    width: 100% !important;

    box-sizing: border-box !important;

    margin-top: auto !important;
}


/* ==========================================================
   7. DATE SELECTOR
   ========================================================== */

#date-selector,
#date-selector *,
#date-selector p,
#date-selector span,
#date-selector button,
#date-selector input,
#date-selector select,
#date-selector label {
    font-family: "Work Sans", sans-serif !important;
}


#date-selector .booqable-datepicker,
#date-selector .booqable-datepicker * {
    font-family: "Work Sans", sans-serif !important;
}


/* ==========================================================
   FLORIDA TABLET
   ========================================================== */

@media only screen and (max-width: 999px) {

    #booking-widget-florida .bq-content {
        padding: 22px 20px 25px !important;
    }


    #booking-widget-florida [class*="GalleryImageContainer-"] {
        width: 65px !important;
        min-width: 65px !important;
        height: 65px !important;

        flex: 0 0 65px !important;
    }
}


/* ==========================================================
   FLORIDA PHONE
   ========================================================== */

@media only screen and (max-width: 767px) {

    #booking-widget-florida .row_col_wrap_12 {
        display: block !important;
    }


    #booking-widget-florida .vc_col-sm-6 {
        width: 100% !important;
        max-width: 100% !important;

        display: block !important;
    }


    #booking-widget-florida .vc_col-sm-6 > .vc_column-inner,
    #booking-widget-florida .vc_col-sm-6 > .vc_column-inner > .wpb_wrapper,
    #booking-widget-florida .wpb_text_column,
    #booking-widget-florida .wpb_text_column > .wpb_wrapper {
        width: 100% !important;
        height: auto !important;

        display: block !important;
    }


    #booking-widget-florida .booqable-product-detail,
    #booking-widget-florida .booqable-product-detail > [class*="Themed-"],
    #booking-widget-florida .booqable-product-detail-wrapper {
        height: auto !important;
    }


    #booking-widget-florida [class*="ProductImage-"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
    }


    #booking-widget-florida .bq-content {
        width: 100% !important;

        padding: 20px 16px 24px !important;
    }


    /* Mobile gallery */

    #booking-widget-florida [class*="GalleryImagesContainer-"] {
        width: 100% !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        -webkit-overflow-scrolling: touch;
    }


    #booking-widget-florida [class*="GalleryImages-"] {
        display: flex !important;

        width: max-content !important;
        min-width: 100% !important;
    }


    #booking-widget-florida [class*="GalleryImageContainer-"] {
        width: 60px !important;
        min-width: 60px !important;
        height: 60px !important;

        flex: 0 0 60px !important;
    }
}


/* ==========================================================
   FLORIDA SMALL PHONE
   ========================================================== */

@media only screen and (max-width: 480px) {

    #booking-widget-florida .bq-content {
        padding: 18px 14px 22px !important;
    }


    #booking-widget-florida [class*="GalleryImageContainer-"] {
        width: 56px !important;
        min-width: 56px !important;
        height: 56px !important;

        flex: 0 0 56px !important;
    }
}


/* ==========================================================
   MINNESOTA BOOQABLE BOOKING WIDGET
   Desktop: Image Left / Content Right
   Mobile: Image Top / Content Bottom
   ========================================================== */

#booking-widget-minnesota .booqable-product-detail,
#booking-widget-minnesota .booqable-component,
#booking-widget-minnesota .booqable-product-detail-wrapper {
    width: 100% !important;
    max-width: 100% !important;
}


#booking-widget-minnesota strong,
#booking-widget-minnesota b,
#booking-widget-minnesota .bq-product-description strong,
#booking-widget-minnesota .bq-product-description b {
    font-family: "Work Sans", sans-serif !important;

    font-weight: 600 !important;
}


/* ==========================================================
   MINNESOTA DESKTOP LAYOUT
   ========================================================== */

#booking-widget-minnesota .booqable-product-detail-wrapper {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
}


/* Left image side */

#booking-widget-minnesota [class*="ProductImage-"] {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 50% !important;

    flex: 0 0 50% !important;
}


/* ==========================================================
   MINNESOTA GALLERY
   ========================================================== */

#booking-widget-minnesota [class*="Gallery-"] {
    width: 100% !important;
    max-width: 100% !important;
}


#booking-widget-minnesota [class*="GalleryImagesContainer-"] {
    width: 100% !important;
    max-width: 100% !important;

    overflow: hidden !important;
}


#booking-widget-minnesota [class*="GalleryImages-"] {
    width: 100% !important;
}


/* Gallery thumbnails */

#booking-widget-minnesota [class*="GalleryImageContainer-"] {
    width: 68px !important;
    min-width: 68px !important;
    height: 68px !important;

    flex: 0 0 68px !important;

    overflow: hidden !important;
}


#booking-widget-minnesota [class*="GalleryImageContainer-"] [class*="BFocalImage-"] {
    width: 100% !important;
    height: 100% !important;
}


#booking-widget-minnesota [class*="GalleryImageContainer-"] img {
    width: 100% !important;
    height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: center center !important;

    display: block !important;
}


/* ==========================================================
   MINNESOTA RIGHT CONTENT
   ========================================================== */

#booking-widget-minnesota .bq-content {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;

    flex: 1 1 50% !important;

    padding: 30px 32px !important;

    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: column !important;
}


/* Product heading */

#booking-widget-minnesota .bq-product-name {
    font-family: "Josefin Sans", sans-serif !important;

    font-weight: 600 !important;
    line-height: 1.2 !important;

    margin-top: 0 !important;
    margin-bottom: 15px !important;
}


/* Description */

#booking-widget-minnesota .bq-product-description {
    width: 100% !important;

    margin-top: 22px !important;

    line-height: 1.65 !important;
}


#booking-widget-minnesota .bq-product-description p,
#booking-widget-minnesota .bq-product-description li {
    line-height: 1.65 !important;
}


/* Actions */

#booking-widget-minnesota .bq-actions {
    width: 100% !important;

    box-sizing: border-box !important;
}


/* ==========================================================
   MINNESOTA TABLET
   ========================================================== */

@media only screen and (max-width: 999px) and (min-width: 768px) {

    #booking-widget-minnesota [class*="ProductImage-"] {
        width: 45% !important;
        max-width: 45% !important;
        min-width: 45% !important;

        flex: 0 0 45% !important;
    }


    #booking-widget-minnesota .bq-content {
        width: 55% !important;
        max-width: 55% !important;

        flex: 1 1 55% !important;

        padding: 24px 22px !important;
    }


    #booking-widget-minnesota [class*="GalleryImageContainer-"] {
        width: 60px !important;
        min-width: 60px !important;
        height: 60px !important;

        flex: 0 0 60px !important;
    }
}


/* ==========================================================
   MINNESOTA PHONE
   ========================================================== */

@media only screen and (max-width: 767px) {

    #booking-widget-minnesota .booqable-product-detail-wrapper {
        width: 100% !important;

        display: flex !important;
        flex-direction: column !important;
    }


    /* Image full width */

    #booking-widget-minnesota [class*="ProductImage-"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;

        flex: 0 0 auto !important;
    }


    /* Content below image */

    #booking-widget-minnesota .bq-content {
        width: 100% !important;
        max-width: 100% !important;

        flex: none !important;

        padding: 20px 16px 24px !important;
    }


    /* Mobile gallery */

    #booking-widget-minnesota [class*="GalleryImagesContainer-"] {
        width: 100% !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        -webkit-overflow-scrolling: touch;
    }


    #booking-widget-minnesota [class*="GalleryImages-"] {
        display: flex !important;

        width: max-content !important;
        min-width: 100% !important;
    }


    #booking-widget-minnesota [class*="GalleryImageContainer-"] {
        width: 60px !important;
        min-width: 60px !important;
        height: 60px !important;

        flex: 0 0 60px !important;
    }
}


/* ==========================================================
   MINNESOTA SMALL PHONE
   ========================================================== */

@media only screen and (max-width: 480px) {

    #booking-widget-minnesota .bq-content {
        padding: 18px 14px 22px !important;
    }


    #booking-widget-minnesota [class*="GalleryImageContainer-"] {
        width: 56px !important;
        min-width: 56px !important;
        height: 56px !important;

        flex: 0 0 56px !important;
    }
}