.elementor-882937 .elementor-element.elementor-element-168fd68{--display:flex;}.elementor-882937 .elementor-element.elementor-element-322176b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-882937 .elementor-element.elementor-element-435602f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-882937 .elementor-element.elementor-element-590b4f5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-882937 .elementor-element.elementor-element-b3850e3{text-align:center;}.elementor-882937 .elementor-element.elementor-element-86712d1{column-gap:0px;}.elementor-882937 .elementor-element.elementor-element-86712d1 p{margin-block-end:0px;}.elementor-882937 .elementor-element.elementor-element-d30b9c5{--display:flex;--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-882937 .elementor-element.elementor-element-d30b9c5:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-d30b9c5 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-2760bbe );}.elementor-882937 .elementor-element.elementor-element-424d241{--display:flex;}.elementor-882937 .elementor-element.elementor-element-424d241:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-424d241 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-5a72eaf{text-align:center;}.elementor-882937 .elementor-element.elementor-element-640a704 > .elementor-widget-container{margin:-10px 0px 0px 0px;}.elementor-882937 .elementor-element.elementor-element-640a704{text-align:start;font-family:var( --e-global-typography-0ab51fa-font-family ), Sans-serif;font-size:var( --e-global-typography-0ab51fa-font-size );font-weight:var( --e-global-typography-0ab51fa-font-weight );text-transform:var( --e-global-typography-0ab51fa-text-transform );font-style:var( --e-global-typography-0ab51fa-font-style );text-decoration:var( --e-global-typography-0ab51fa-text-decoration );line-height:var( --e-global-typography-0ab51fa-line-height );letter-spacing:var( --e-global-typography-0ab51fa-letter-spacing );}.elementor-882937 .elementor-element.elementor-element-640a704 p{margin-block-end:0px;}.elementor-882937 .elementor-element.elementor-element-549bbd4{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--margin-top:-30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-882937 .elementor-element.elementor-element-549bbd4:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-549bbd4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-93a6971{--display:flex;}.elementor-882937 .elementor-element.elementor-element-b89ce8f > .elementor-widget-container{margin:-10px 0px 0px 0px;}.elementor-882937 .elementor-element.elementor-element-b89ce8f{text-align:start;}.elementor-882937 .elementor-element.elementor-element-22d731d{--display:flex;}.elementor-882937 .elementor-element.elementor-element-19f6a2c > .elementor-widget-container{margin:-10px 0px 0px 0px;}.elementor-882937 .elementor-element.elementor-element-19f6a2c{text-align:start;}.elementor-882937 .elementor-element.elementor-element-ecfb654{--display:flex;}.elementor-882937 .elementor-element.elementor-element-28913d9 > .elementor-widget-container{margin:-10px 0px 0px 0px;}.elementor-882937 .elementor-element.elementor-element-28913d9{text-align:start;}.elementor-882937 .elementor-element.elementor-element-1854ed4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-882937 .elementor-element.elementor-element-1854ed4:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-1854ed4 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-6e31f4b{--display:flex;}.elementor-882937 .elementor-element.elementor-element-7ca2ef9{text-align:center;}.elementor-882937 .elementor-element.elementor-element-7ca2ef9 .elementor-heading-title{font-family:"Oswald", Sans-serif;font-size:40px;font-weight:700;text-transform:uppercase;font-style:italic;text-decoration:none;line-height:1.1;letter-spacing:0px;color:var( --e-global-color-primary );}.elementor-882937 .elementor-element.elementor-element-d527a00{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-882937 .elementor-element.elementor-element-d527a00:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-d527a00 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-2760bbe );}.elementor-882937 .elementor-element.elementor-element-390466f{--display:flex;}.elementor-882937 .elementor-element.elementor-element-390466f:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-390466f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-b869d0a{text-align:center;}.elementor-882937 .elementor-element.elementor-element-f4cb08b p{margin-block-end:0px;}.elementor-882937 .elementor-element.elementor-element-f3e6b39{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-882937 .elementor-element.elementor-element-f3e6b39:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-f3e6b39 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-2760bbe );}.elementor-882937 .elementor-element.elementor-element-e6218d3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-882937 .elementor-element.elementor-element-e6218d3:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-e6218d3 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-c6458fc{--display:flex;}.elementor-882937 .elementor-element.elementor-element-c6458fc:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-c6458fc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-0cf58fd{--display:flex;--justify-content:flex-start;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-882937 .elementor-element.elementor-element-0cf58fd:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-0cf58fd > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-2760bbe );}.elementor-882937 .elementor-element.elementor-element-8e46b74.elementor-element{--order:99999 /* order end hack */;}.elementor-882937 .elementor-element.elementor-element-a3c0716{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-882937 .elementor-element.elementor-element-a3c0716:not(.elementor-motion-effects-element-type-background), .elementor-882937 .elementor-element.elementor-element-a3c0716 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-06cfd15 );}.elementor-882937 .elementor-element.elementor-element-c752898{--display:flex;}.elementor-882937 .elementor-element.elementor-element-13d2e3e{text-align:center;}.elementor-882937 .elementor-element.elementor-element-13d2e3e .elementor-heading-title{font-family:"Oswald", Sans-serif;font-size:40px;font-weight:700;text-transform:uppercase;text-decoration:none;line-height:1.1;letter-spacing:0px;color:var( --e-global-color-primary );}.elementor-882937 .elementor-element.elementor-element-771336b p{margin-block-end:0px;}@media(min-width:768px){.elementor-882937 .elementor-element.elementor-element-590b4f5{--width:75%;}.elementor-882937 .elementor-element.elementor-element-e6218d3{--width:22%;}.elementor-882937 .elementor-element.elementor-element-c6458fc{--width:53%;}.elementor-882937 .elementor-element.elementor-element-0cf58fd{--width:25%;}}@media(max-width:1024px) and (min-width:768px){.elementor-882937 .elementor-element.elementor-element-590b4f5{--width:41%;}}@media(max-width:1024px){.elementor-882937 .elementor-element.elementor-element-640a704{font-size:var( --e-global-typography-0ab51fa-font-size );line-height:var( --e-global-typography-0ab51fa-line-height );letter-spacing:var( --e-global-typography-0ab51fa-letter-spacing );}.elementor-882937 .elementor-element.elementor-element-7ca2ef9 .elementor-heading-title{font-size:30px;}.elementor-882937 .elementor-element.elementor-element-13d2e3e .elementor-heading-title{font-size:30px;}}@media(max-width:767px){.elementor-882937 .elementor-element.elementor-element-640a704{font-size:var( --e-global-typography-0ab51fa-font-size );line-height:var( --e-global-typography-0ab51fa-line-height );letter-spacing:var( --e-global-typography-0ab51fa-letter-spacing );}.elementor-882937 .elementor-element.elementor-element-7ca2ef9 .elementor-heading-title{font-size:26px;line-height:1.2em;}.elementor-882937 .elementor-element.elementor-element-13d2e3e .elementor-heading-title{font-size:26px;line-height:1.2em;}}/* Start custom CSS for html, class: .elementor-element-afbe89b *//* ==========================================
   COLOUR GRID — FORCE 3px SPACING
   ========================================== */

#fmColourSelector .fm-swatch-grid {
    width: 100% !important;
    max-width: 100% !important;

    display: grid !important;

    grid-template-columns:
        repeat(18, minmax(0, 1fr)) !important;

    grid-auto-rows: 24px !important;

    column-gap: 3px !important;
    row-gap: 3px !important;

    box-sizing: border-box !important;
}


/* ==========================================
   COLOUR TILES
   ========================================== */

#fmColourSelector .fm-swatch {
    width: 100% !important;
    height: 24px !important;

    min-width: 0 !important;
    min-height: 24px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: block !important;

    box-sizing: border-box !important;

    border: 0 !important;
    border-radius: 0 !important;

    cursor: pointer;

    position: relative;

    transition:
        transform 0.12s ease,
        box-shadow 0.12s ease;
}


/* Hover */

#fmColourSelector .fm-swatch:hover {
    transform: scale(1.12);

    z-index: 10;

    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.25);
}


/* Selected */

#fmColourSelector .fm-swatch.is-selected {

    outline:
        2px solid #ffffff;

    outline-offset: 1px;

    box-shadow:
        0 0 0 2px #df332d;

    z-index: 20;
}


/* Selected tick */

#fmColourSelector .fm-swatch.is-selected::after {

    content: "✓";

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%);

    color: #ffffff;

    line-height: 1;

    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.65);
}


/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 1024px) {

    #fmColourSelector .fm-swatch-grid {

        grid-template-columns:
            repeat(14, minmax(0, 1fr)) !important;

        column-gap: 3px !important;
        row-gap: 3px !important;

    }

}


/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 767px) {

    #fmColourSelector .fm-swatch-grid {

        grid-template-columns:
            repeat(10, minmax(0, 1fr)) !important;

        grid-auto-rows: 23px !important;

        column-gap: 3px !important;
        row-gap: 3px !important;

    }


    #fmColourSelector .fm-swatch {

        height: 23px !important;
        min-height: 23px !important;

    }

}


/* ==========================================
    VIEW ON BOAT
   ========================================== */
<script>
(function () {

    function setupBoatPopup() {

        const viewButton = document.getElementById('fmViewBoat');
        const boatImage = document.getElementById('fmBoatImage');

        if (!viewButton || !boatImage) {
            return false;
        }

        // Prevent the script being attached more than once
        if (viewButton.dataset.popupReady === 'true') {
            return true;
        }

        viewButton.dataset.popupReady = 'true';

        viewButton.addEventListener('click', function (e) {

            e.preventDefault();
            e.stopPropagation();

            // Get the currently displayed image
            const imageUrl = boatImage.currentSrc || boatImage.src;

            if (!imageUrl) {
                console.warn('Formosa: No boat image found.');
                return;
            }

            // Remove existing popup if there is one
            const existingPopup = document.getElementById('fmImagePopup');

            if (existingPopup) {
                existingPopup.remove();
            }

            // Create popup
            const overlay = document.createElement('div');

            overlay.id = 'fmImagePopup';

            overlay.innerHTML = `
                <div class="fm-popup-inner">
                    <button type="button" class="fm-popup-close" aria-label="Close">
                        ×
                    </button>
                    <img src="${imageUrl}" alt="Formosa Boat">
                </div>
            `;

            document.body.appendChild(overlay);

            // Close button
            const closeButton = overlay.querySelector('.fm-popup-close');

            closeButton.addEventListener('click', function () {
                overlay.remove();
            });

            // Click outside image to close
            overlay.addEventListener('click', function (event) {

                if (event.target === overlay) {
                    overlay.remove();
                }

            });

            // Escape key
            function escapeHandler(event) {

                if (event.key === 'Escape') {
                    overlay.remove();
                    document.removeEventListener('keydown', escapeHandler);
                }

            }

            document.addEventListener('keydown', escapeHandler);

        });

        console.log('Formosa: View On Boat popup connected.');

        return true;
    }


    // Try immediately
    if (setupBoatPopup()) {
        return;
    }

    // Elementor can load widgets after the initial page load.
    // Keep checking briefly until the button exists.
    let attempts = 0;

    const checkInterval = setInterval(function () {

        attempts++;

        if (setupBoatPopup() || attempts >= 30) {
            clearInterval(checkInterval);
        }

    }, 500);

})();
</script>/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-802354a *//* ==========================================
   COLOUR GRID — FORCE 3px SPACING
   ========================================== */

#fmColourSelector .fm-swatch-grid {
    width: 100% !important;
    max-width: 100% !important;

    display: grid !important;

    grid-template-columns:
        repeat(18, minmax(0, 1fr)) !important;

    grid-auto-rows: 24px !important;

    column-gap: 3px !important;
    row-gap: 3px !important;

    box-sizing: border-box !important;
}


/* ==========================================
   COLOUR TILES
   ========================================== */

#fmColourSelector .fm-swatch {
    width: 100% !important;
    height: 24px !important;

    min-width: 0 !important;
    min-height: 24px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: block !important;

    box-sizing: border-box !important;

    border: 0 !important;
    border-radius: 0 !important;

    cursor: pointer;

    position: relative;

    transition:
        transform 0.12s ease,
        box-shadow 0.12s ease;
}


/* Hover */

#fmColourSelector .fm-swatch:hover {
    transform: scale(1.12);

    z-index: 10;

    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.25);
}


/* Selected */

#fmColourSelector .fm-swatch.is-selected {

    outline:
        2px solid #ffffff;

    outline-offset: 1px;

    box-shadow:
        0 0 0 2px #df332d;

    z-index: 20;
}


/* Selected tick */

#fmColourSelector .fm-swatch.is-selected::after {

    content: "✓";

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%);

    color: #ffffff;

    line-height: 1;

    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.65);
}


/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 1024px) {

    #fmColourSelector .fm-swatch-grid {

        grid-template-columns:
            repeat(14, minmax(0, 1fr)) !important;

        column-gap: 3px !important;
        row-gap: 3px !important;

    }

}


/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 767px) {

    #fmColourSelector .fm-swatch-grid {

        grid-template-columns:
            repeat(10, minmax(0, 1fr)) !important;

        grid-auto-rows: 23px !important;

        column-gap: 3px !important;
        row-gap: 3px !important;

    }


    #fmColourSelector .fm-swatch {

        height: 23px !important;
        min-height: 23px !important;

    }

}


/* ==========================================
    VIEW ON BOAT
   ========================================== */
<script>
(function () {

    function setupBoatPopup() {

        const viewButton = document.getElementById('fmViewBoat');
        const boatImage = document.getElementById('fmBoatImage');

        if (!viewButton || !boatImage) {
            return false;
        }

        // Prevent the script being attached more than once
        if (viewButton.dataset.popupReady === 'true') {
            return true;
        }

        viewButton.dataset.popupReady = 'true';

        viewButton.addEventListener('click', function (e) {

            e.preventDefault();
            e.stopPropagation();

            // Get the currently displayed image
            const imageUrl = boatImage.currentSrc || boatImage.src;

            if (!imageUrl) {
                console.warn('Formosa: No boat image found.');
                return;
            }

            // Remove existing popup if there is one
            const existingPopup = document.getElementById('fmImagePopup');

            if (existingPopup) {
                existingPopup.remove();
            }

            // Create popup
            const overlay = document.createElement('div');

            overlay.id = 'fmImagePopup';

            overlay.innerHTML = `
                <div class="fm-popup-inner">
                    <button type="button" class="fm-popup-close" aria-label="Close">
                        ×
                    </button>
                    <img src="${imageUrl}" alt="Formosa Boat">
                </div>
            `;

            document.body.appendChild(overlay);

            // Close button
            const closeButton = overlay.querySelector('.fm-popup-close');

            closeButton.addEventListener('click', function () {
                overlay.remove();
            });

            // Click outside image to close
            overlay.addEventListener('click', function (event) {

                if (event.target === overlay) {
                    overlay.remove();
                }

            });

            // Escape key
            function escapeHandler(event) {

                if (event.key === 'Escape') {
                    overlay.remove();
                    document.removeEventListener('keydown', escapeHandler);
                }

            }

            document.addEventListener('keydown', escapeHandler);

        });

        console.log('Formosa: View On Boat popup connected.');

        return true;
    }


    // Try immediately
    if (setupBoatPopup()) {
        return;
    }

    // Elementor can load widgets after the initial page load.
    // Keep checking briefly until the button exists.
    let attempts = 0;

    const checkInterval = setInterval(function () {

        attempts++;

        if (setupBoatPopup() || attempts >= 30) {
            clearInterval(checkInterval);
        }

    }, 500);

})();
</script>/* End custom CSS */