:root {
    --gtsb-skel-bg: #eee;
    --gtsb-red: #ff0000;
    --gtsb-marine: #16a4ac;
}

/* Shimmer effect */
@keyframes gtsb-shimmer {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

/* Fade in effect */
@keyframes fade-in {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes gtsb-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Skeleton loader */
.gtsb-skeleton {
    display: flex;
    flex-direction: column;
    gap: 40px;

    & .gtsb-skel-header,
    & .gtsb-skel-section,
    & .gtsb-skel-footer {
        margin-bottom: 18px;
    }

    .gtsb-skel-cards {
        display: flex;

        .gtsb-skel-card {
            width: 25%;
            padding: 10px;

            .gtsb-skel-thumb {
                width: 100%;
                height: 200px;
                border-radius: 8px;
                background: var(--gtsb-skel-bg, #eee);
                position: relative;
                overflow: hidden;
            }
        }
    }

    .gtsb-skel-line {
        height: 14px;
        border-radius: 6px;
        background: var(--gtsb-skel-bg, #eee);
        position: relative;
        overflow: hidden;
        margin: 8px 0;
    }

    .gtsb-skel-pill {
        height: 36px;
        border-radius: 999px;
        background: var(--gtsb-skel-bg, #eee);
        position: relative;
        overflow: hidden;
        display: inline-block;
        margin-right: 10px;
    }


    /* variable widths for variety */
    .gtsb-skel-w20 {
        width: 20%;
    }

    .gtsb-skel-w25 {
        width: 25%;
    }

    .gtsb-skel-w30 {
        width: 30%;
    }

    .gtsb-skel-w40 {
        width: 40%;
    }

    .gtsb-skel-w45 {
        width: 45%;
    }

    .gtsb-skel-w50 {
        width: 50%;
    }

    .gtsb-skel-w60 {
        width: 60%;
    }

    .gtsb-skel-w65 {
        width: 65%;
    }

    .gtsb-skel-w70 {
        width: 70%;
    }

    & .gtsb-skel-thumb::before,
    & .gtsb-skel-line::before,
    & .gtsb-skel-pill::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .6), transparent);
        transform: translateX(-100%);
        animation: gtsb-shimmer 1.25s infinite;
        will-change: transform;
        opacity: .8;
    }
}

/* When real UI mounts, we remove .gtsb-is-loading, but this ensures the skeleton never conflicts */
#gt-sb-app.gtsb-is-loading>*:not(.gtsb-skeleton) {
    display: none !important;
}

/* Hiding Things */
.gtsb-option.gtsb-hidden,
.gtsb-is-loading+#gtsb-summary-bar {
    display: none !important;
}

#gt-sb-app.type-marine+#gtsb-summary-bar #gtsb-overall-hours * {
    display: none;
}

/* Page Header */
#header-space {
    height: 0;
    max-height: 0;
}

#header-outer {
    background-color: transparent !important;
}

body:has(.thank-you-content) .container-wrap .main-content .wpb_row .row-bg-wrap {
    top: 0;
    background: #f6f6f6;
    background: linear-gradient(to bottom, #fff 0%, #f6f6f6 200px);
    position: absolute;
    height: 100%;
    margin-left: -50vw;
    left: 50%;
    width: 100vw;
    z-index: 9;
}

body:has(.thank-you-content) .container-wrap {
    padding: 0 !important;
}

.gtsb-banner {
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;

    .gtsb-banner-inner {
        display: flex;
        max-width: 1700px;
        margin: 0 auto;
        padding: 200px 70px 75px;
        justify-content: space-between;
        align-items: center;

        h1 {
            color: #fff;
            font-size: 50px;
            margin: 0px;
            z-index: 999;
            text-shadow: 0px 1px 40px #00000094;
        }

        .gtsb-region-image {
            img {
                max-width: 75px;
                border-radius: 100px;
                border: 2px solid #fff;
                display: block;
            }
        }
    }
}

[data-group-name="Polishing"] .gtsb-option-title {
    margin-top: 0px !important;
}

#gt-sb-app {
    .gtsb-group {
        opacity: 0;
        animation: fade-in .4s ease .3s 1 forwards;
        padding-bottom: 55px;
        margin-block: 65px 0;

        &:not(:last-of-type) {
            border-bottom: 1px solid #cccccc69;
        }

        legend {
            position: relative;
            font-size: 14px;
            line-height: 20px;
            font-weight: 600;
            padding: 6px 12px;
            background-color: var(--gtsb-red);
            color: #fff;
            margin-bottom: 20px;

            &:after {
                content: "";
                width: 0;
                height: 0;
                border-left: 20px solid transparent;
                border-right: 20px solid transparent;
                border-top: 32px solid var(--gtsb-red);
                right: -20px;
                position: absolute;
                top: 0px;
            }
        }

        .gtsb-group-description {
            .group-label {
                font-size: 27px;
                line-height: 1.3;
                font-weight: 600;
                margin-block: 0 10px;
                padding: 0;
            }

            .group-desc {
                font-size: 15px;
                color: var(--gtsb-red);
                line-height: 1.5;
                margin-block: 5px 20px;
                padding: 0;
                font-weight: 500;



                .we-say {
                    color: var(--gtsb-red);
                    font-weight: 700;
                }
            }

            .group-note {
                font-size: 19px;
                line-height: 1.2;
                color: #17a4ac;
                margin-top: 5px;
                margin-bottom: 35px;
                font-weight: 500;
            }
        }

        .gtsb-group-controls {
            margin-block: 5px 25px;

            a {
                padding: 6px 12px;
                background-color: var(--gtsb-red);
                opacity: 1;
                font-weight: 600;
                color: #fff;
                transition: opacity .3s ease;

                &:hover {
                    opacity: 0.85;
                }
            }
        }

        /* options flex layout */
        .gtsb-group-options {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            gap: 30px;
            position: relative;
            margin-bottom: 20px;


            &>.gtsb-option {
                width: calc(100% / 3 - 27px);
            }

            /* Exactly 4 visible items - 4-up (25%) */
            &:has(> .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden)):not(:has(> .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden)))>.gtsb-option:not(.gtsb-hidden) {
                width: calc(25% - 22.5px);
            }

            /* group option styles (non-layout) */
            .gtsb-option {
                input {
                    display: none;
                }

                /* checkmark */
                .gtsb-option-label {
                    position: relative;

                    &:before {
                        content: "";
                        position: absolute;
                        top: 10px;
                        left: 10px;
                        height: 40px;
                        width: 40px;
                        border: 1px solid #000;
                        border-radius: 99px;
                        background-color: #fff;
                        font-size: 30px !important;
                        text-align: center;
                        line-height: 41px !important;
                        color: #fff;
                        display: inline-block;
                        text-rendering: auto;
                        -webkit-font-smoothing: antialiased;
                        font: var(--fa-font-solid);
                        transition: background-color .3s ease, border-color .3s ease;
                        z-index: 9;
                    }

                    &:has(input:checked):before {
                        content: "\f00c";
                        background-color: var(--gtsb-red);
                        border-color: var(--gtsb-red);
                    }
                }

                /* options with no image */
                &:not(.has-image) .gtsb-option-meta {
                    padding-left: 70px;
                }

                /* option meta */
                .gtsb-option-meta {
                    .gtsb-meta-image img {
                        margin-bottom: 0;
                        box-shadow: 0px 20px 70px #00000012;
                        width: 100%;
                    }

                    .gtsb-option-title {
                        font-size: 18px;
                        font-weight: 600;
                        margin-bottom: 8px;
                    }

                    .gtsb-meta-description {
                        font-size: 14px;
                    }

                    .gtsb-meta-we-say {
                        font-size: 11px;

                        &:before {
                            content: "We say...";
                            font-size: initial;
                            display: block;
                            font-weight: 700;
                            margin-top: 10px;
                            color: var(--gtsb-red);
                        }
                    }

                    .gtsb-meta-guarantee {
                        font-size: 14px;
                    }

                    .gtsb-meta-star-ratings {
                        font-size: 15px;
                    }

                    .gtsb-meta-treatment-details:before {
                        content: "Treatment Details:";
                        color: #17a4ac;
                        font-weight: 700;
                        display: block;
                    }

                    .gtsb-meta-item ul {
                        margin-left: 22px;

                        li {
                            list-style: none;
                            position: relative;

                            &:before {
                                content: "\f00c";
                                position: absolute;
                                left: -23px;
                                color: var(--gtsb-red);
                                display: inline-block;
                                text-rendering: auto;
                                -webkit-font-smoothing: antialiased;
                                font: var(--fa-font-solid);
                                font-size: 17px;
                                line-height: 22px;
                            }
                        }
                    }
                }
            }
        }

        /* polishing-specific layout */
        &[data-group-name="Polishing"] {
            .gtsb-group-options {
                column-gap: 80px;

                &:has(.gtsb-hidden) {
                    column-gap: 40px;
                }

                &:has(> .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden)):not(:has(> .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden) + .gtsb-option:not(.gtsb-hidden)))>.gtsb-option:not(.gtsb-hidden) {
                    width: calc(50% - 40px);
                }

                .gtsb-option-label:before {
                    top: 0;
                    left: 0;
                }
            }
        }



        /* craft type layout */
        &[data-group-name="Craft Type"] .gtsb-group-options>.gtsb-option {
            width: calc(20% - 32px);
        }

        /* craft condition layout */
        &[data-group-name="Craft Condition"] .gtsb-group-options>.gtsb-option {
            width: calc(50% - 20px);
        }

        /* craft length layout */
        &[data-group-name="Craft Length"] {
            input[type="range"] {
                /* var to sync sticky thumb value between css & js */
                --gtsb-thumb-size: 40px;

                -webkit-appearance: none;
                appearance: none;
                width: 100%;
                cursor: pointer;
                border-radius: 99px;
                background: transparent;

                &:focus {
                    outline: none;
                }

                &::-webkit-slider-runnable-track {
                    background: transparent;
                    border-radius: 99px;
                    height: 15px;
                }

                &::-webkit-slider-thumb {
                    -webkit-appearance: none;
                    appearance: none;
                    margin-top: -12.5px;
                    background-color: #fff;
                    border: 1px solid #d9d9d9;
                    border-radius: 99px;
                    height: var(--gtsb-thumb-size);
                    width: var(--gtsb-thumb-size);
                    transition: .2s ease;
                    position: relative;
                    z-index: 1;
                }

                &::-webkit-slider-thumb:hover {
                    transform: scale(1.2);
                }

                &::-moz-range-track {
                    background: transparent;
                    border-radius: 99px;
                    height: 15px;
                }

                &::-moz-range-thumb {
                    background-color: #fff;
                    border: 1px solid #d9d9d9;
                    border-radius: 99px;
                    height: var(--gtsb-thumb-size);
                    width: var(--gtsb-thumb-size);
                }

                &::-moz-range-thumb:hover {
                    transform: scale(1.2);
                }
            }

            .gtsb-range-wrap {
                position: relative;
                padding-top: 28px;
                margin-top: 18px;
            }

            .gtsb-range-bubble {
                display: inline-block;
                font-weight: 600;
                white-space: nowrap;
                color: #00abb0;
                font-size: 25px;
            }

            .gtsb-range-minmax {
                margin-top: 8px;
                display: flex;
                justify-content: space-between;
                color: #bfbfbf;
                font-weight: 600;
            }
        }

        /* group option styles (non-layout) */
        .gtsb-group-options {
            margin-bottom: 20px;

            .gtsb-option {
                input {
                    display: none;
                }

                /* checkmark */
                .gtsb-option-label {
                    position: relative;

                    &:before {
                        content: "";
                        position: absolute;
                        top: 15px;
                        left: 15px;
                        height: 40px;
                        width: 40px;
                        border: 1.5px solid #00000030;
                        border-radius: 99px;
                        background-color: #fff;
                        font-size: 25px !important;
                        text-align: center;
                        line-height: 41px !important;
                        color: #fff;
                        display: inline-block;
                        text-rendering: auto;
                        -webkit-font-smoothing: antialiased;
                        font: var(--fa-font-solid);
                        transition: background-color .3s ease, border-color .3s ease;
                        z-index: 9;
                    }

                    &:has(input:checked):before {
                        content: "\f00c";
                        background-color: var(--gtsb-red);
                        border-color: var(--gtsb-red);
                        box-shadow: 0px 5px 50px hwb(0deg 0% 100% / 25%);
                    }
                }


                /* options with no image */
                &:not(.has-image) .gtsb-option-meta {
                    padding-left: 65px;
                }

                /* option meta */
                .gtsb-option-meta {
                    .gtsb-meta-image img {
                        margin-bottom: 0;
                        box-shadow: 0px 20px 70px #00000012;
                        width: 100%;
                        display: block;
                    }

                    .gtsb-option-title {
                        font-size: 18px;
                        line-height: 1.25;
                        font-weight: 600;
                        margin-bottom: 5px;
                        margin-top: 20px;
                    }

                    .gtsb-meta-description {
                        font-size: 14px;
                        line-height: 1.6;
                    }

                    .gtsb-meta-we-say {
                        font-size: 12px;
                        line-height: 1.5;

                        &:before {
                            content: "We say...";
                            font-size: initial;
                            display: block;
                            font-weight: 700;
                            margin-top: 10px;
                            color: var(--gtsb-red);
                            margin-bottom: 10px;
                        }
                    }

                    .gtsb-meta-item.gtsb-meta-guarantee {
                        color: var(--gtsb-red);
                        font-weight: 500;
                        margin-bottom: 15px;
                        line-height: 1.4;
                        margin-top: 5px;
                    }

                    .gtsb-meta-guarantee {
                        font-size: 16px;
                    }

                    .gtsb-meta-star-ratings {
                        font-size: 15px;
                    }

                    .gtsb-meta-treatment-details:before {
                        content: "Treatment Details:";
                        color: #17a4ac;
                        font-weight: 700;
                        display: block;
                    }

                    .gtsb-meta-item ul {
                        margin-left: 23px;
                        margin-top: 15px;

                        li:last-of-type {
                            margin-bottom: 0px;
                        };
                    
                        li {
                            list-style: none;
                            position: relative;
                            line-height: 1.5;
                            margin-bottom: 10px;
                        }

                        li:last-of-type {
                            margin-bottom: 0px;
                        }

                    }
                }
            }
        }

        /* group totals */
        .gtsb-group-total {
            font-size: 22px;
            color: var(--gtsb-red);
            font-weight: 600;
            border-left: 4px solid var(--gtsb-red);
            max-width: calc(100% - 40px);
            position: relative;
            height: 77px;
            max-height: 77px;
            filter: drop-shadow(0px 10px 60px hwb(0deg 0% 100% / 10%));
            display: flex;
            align-items: center;

            strong {
                color: initial;
                margin-right: 7.5px;
                font-weight: 500;
            }
        }

        /* Professional Application */

        select {
            background-image: url(/wp-content/uploads/2020/05/arrow-2.svg);
            background-repeat: no-repeat;
            background-position: right;
            appearance: none;
            padding-right: 85px !important;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        input[type=date],
        input[type=email],
        input[type=number],
        input[type=password],
        input[type=search],
        input[type=tel],
        input[type=text],
        input[type=url],
        textarea,
        select {
            background-color: rgba(0, 0, 0, .03);
            border: 1px solid #0000000d !important;
            padding: 20px 22px;
            font-size: 15px !important;
            line-height: 1.2;
            box-shadow: none !important;
            font-family: 'Bai Jamjuree';
            font-weight: 400;
            -webkit-font-smoothing: antialiased;
        }

        &[data-group-name="Professional Application"] {
            .gtsb-group-description {
                position: relative;

                & .group-label,
                & .group-desc {
                    max-width: calc(100% - 200px);
                }

                &:after {
                    content: "";
                    background-image: url(/wp-content/uploads/2020/05/genie-1.svg);
                    width: 120px;
                    height: 120px;
                    display: block;
                    position: absolute;
                    bottom: 0;
                    right: 0;
                    background-repeat: no-repeat;
                    border-radius: 1000000px;
                    box-shadow: 0px 15px 100px #00000030;
                }
            }

            .application-fields {
                --gap: 20px;
                --details-col: 3;
                --address-col: 2;
                display: flex;
                flex-direction: row;
                flex-wrap: wrap;
                justify-content: space-between;
                gap: var(--gap);

                .gtsb-field {
                    box-sizing: border-box;
                    flex: 0 1 calc((100% - (1 - 1) * var(--gap)) / 1);
                    display: flex;
                    flex-direction: column;

                    &:nth-child(-n+6) {
                        flex: 0 1 calc((100% - (var(--details-col) - 1) * var(--gap)) / var(--details-col));
                    }

                    &:nth-last-child(-n+4) {
                        flex: 0 1 calc((100% - (var(--address-col) - 1) * var(--gap)) / var(--address-col));
                    }

                    .gtsb-field-label {
                        font-weight: 600;
                        font-size: 15px;
                        margin-bottom: 7px;
                    }

                    &.address {
                        flex-direction: column-reverse;

                        &#gtsb-field-street_address:after {
                            content: "Address";
                            display: block;
                            font-weight: 600;
                            margin-block: 20px 10px;
                        }

                        .gtsb-field-label {
                            font-weight: initial;
                            opacity: 0.75;
                            font-size: 85%;
                            line-height: 1;
                            margin-top: 10px;
                        }
                    }
                }
            }
        }

        /* polishing-specific layout */
        &[data-group-name="Polishing"] .gtsb-option-label:before {
            left: 0px !important;
            top: 0px !important;
        }
    }

    /* submit button */
    .gtsb-submit {
        width: 100%;
        text-align: center;
        font-size: 18px;
        line-height: 1.2;
        padding: 20px;
        min-height: unset;
        border: none;
        background-color: var(--gtsb-red);
        color: #fff;
        font-weight: 700;
        cursor: pointer;
        opacity: 1;
        transition: opacity .3s ease;
        font-family: 'Bai Jamjuree';
        position: relative;
        display: inline-flex;
        justify-content: center;

        &:hover {
            opacity: 0.85;
        }

        .spinner {
            display: none;
            width: 1em;
            height: 1em;
            border: .2em solid currentColor;
            border-top-color: transparent;
            border-radius: 50%;
            margin-left: .5rem;
            animation: gtsb-spin 1s linear infinite;
        }

        &.is-loading {
            opacity: .85;

            .spinner {
                display: inline-block;
            }
        }

        &:disabled {
            cursor: not-allowed;
        }
    }
}


/* Summary Bar */
div#gtsb-summary-bar {
    opacity: 0;
    animation: fade-in .7s ease .6s 1 forwards;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    background: #fff;
    font-size: 1.6em;
    -webkit-box-shadow: 0px 0px 45px rgba(50, 50, 50, 0.2);
    -moz-box-shadow: 0px 0px 45px rgba(50, 50, 50, 0.2);
    box-shadow: 0px 0px 45px rgba(50, 50, 50, 0.2);

    & div#gtsb-overall-cost,
    & div#gtsb-overall-hours,
    & div#gtsb-disclaimer {
        min-height: 90px;
        display: flex;
        align-items: center;
        gap: .5rem;
    }

    div#gtsb-overall-cost {
        position: relative;
        background: var(--gtsb-red);
        padding: 0px 0px 0px 50px;
        color: #fff;
        min-width: 350px;

        &:after {
            content: "";
            display: inline-block;
            background-color: #ff0000;
            position: absolute;
            z-index: 0;
            top: 0;
            right: -65px;
            width: 70px;
            height: 100%;
            -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%, 35% 100%, 100% 0);
            clip-path: polygon(0 0, 0 100%, 100% 100%, 35% 100%, 100% 0);
        }

        strong {
            margin-right: 10px;
        }

        .vat-label {
            font-size: 1rem;
            font-weight: 600;
        }
    }

    div#gtsb-overall-hours {
        padding: 0px 10px 0px 80px;
        width: 100%;
        max-width: 400px;
        margin-right: auto;
    }

    div#gtsb-disclaimer {
        font-size: .8rem;
        justify-content: flex-end;
        max-width: 280px;
        margin-right: 40px;
        line-height: 1.4;
    }
}

.gtsb-iframe {
    font-family: "Bai Jamjuree", sans-serif;
    margin-inline: auto;
    max-width: 1700px;
    padding: 20px 70px;
    margin-bottom: 160px;
    line-height: 2;
    -webkit-font-smoothing: antialiased;
    background: #f6f6f6;
    background: linear-gradient(to bottom, #fff 0%, #f6f6f6 100%);
    background-attachment: fixed;

    a {
        color: var(--gtsb-red);
        text-decoration: none;

        &:hover {
            color: #000;
        }
    }

    #gt-sb-app .gtsb-group {
        border-top: none;
        border-left: none;
        border-right: none;
        padding-top: 0;
        padding-inline: 0;
        margin-bottom: 0;
        margin-inline: 0;

        &:last-of-type {
            border-bottom: none;
        }

        .gtsb-meta-item ul {
            margin-block: 0 30px;
            padding: 0;
        }
    }

    .application-fields .gtsb-field {
        input {
            border-radius: 0;
            border: 2px solid transparent !important;
            padding: 10px;
            font-size: 14px;
            font-family: inherit;
            line-height: 24px;
            color: #555;
            background-color: #f1f1f1;
            border: none;
            transition: all .2s ease;

            &:focus {
                border-color: var(--gtsb-red) !important;
            }
        }
    }
}

/* THANK YOU */

body:has(.thank-you-content) .gtsb-banner .gtsb-banner-inner {
    padding-bottom: 120px;
}

.gtsb-quote-totals {
    display: flex;
    gap: 0;
    font-size: 20px;
    background-color: #f6f6f6;
    margin: 0px 0px 60px;
    margin-top: -95px;
    border: 1px solid #e6e6e6;
    z-index: 9999999999;
    position: relative;
}

.gtsb-quote-totals p {
    padding: 0px;
    flex: 1;
    text-align: center;
    padding: 25px 20px;
    color: var(--gtsb-red);
}

.gtsb-quote-totals p:first-child {
    border-right: 1px solid #e6e6e6;
}

.gtsb-quote-totals p strong {
    color: #000;
    font-weight: 600;
}

.gtsb-quote-summary h2 {
    font-size: 25px;
    line-height: 1.2;
    margin-bottom: 10px;
}

.gtsb-quote-summary>.message {
    display: none;
}

.gtsb-quote-summary>.message h5 {
    color: var(--gtsb-red);
    margin-bottom: 10px;
}

.message {
    line-height: 1.6
}

.row .col .gtsb-quote-summary h3 {
    font-size: 20px;
    line-height: 1.2;
    margin-bottom: 15px;
}

.gtsb-group-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.gtsb-group-grid>div {
    background: #fff;
    padding: 30px;
    box-shadow: 0px 35px 70px #00000003;
    font-size: 15px;
    line-height: 1.4;
    border-left: 3px solid var(--gtsb-red);
}

.gtsb-group-grid>div .gtsb-group-header strong {
    font-size: 18px;
    line-height: 1;
    display: block;
    margin-bottom: 7.5px;
    font-weight: 700;
}

.gtsb-group-header em {
    display: none;
}

.gtsb-group-grid>div ul {
    margin: 0px;
}

.gtsb-group-grid>div ul li {
    list-style: none;
}

.gtsb-group-grid>div small {
    font-size: 16px;
    display: flex;
    min-width: 100%;
    flex-wrap: nowrap;
    gap: 15px;
    border-top: 1px solid #ececec;
    margin-top: 20px;
    padding-top: 20px;
    line-height: 1;
    color: var(--gtsb-red);
}

.gtsb-group-header br {
    display: none;
}

.gtsb-group-grid>div small strong {
    color: #000;
    font-weight: 600;
}

.row .col .gtsb-quote-summary .customer h3 {
    border-top: 1px solid #00000017;
    padding-top: 35px;
    margin-top: 35px;
}

.thank-you-content {
    display: flex;
    gap: 60px;
}

.selections {
    flex: 2;
}

.customer {
    flex: 1;
    min-width: 450px;
    max-width: 450px;
}

.gtsb-quote-summary {
    padding: 55px 0px 0px;
}

.thank-you-content table td:first-child {
    width: 150px;
}

table.gtsb-customer-info {
    margin: 0 0 50px !important;
}

.thank-you-content table strong {
    font-weight: 600;
    line-height: 1.2 !important;
    display: block;
}

.thank-you-content table * {
    font-size: 15px !important;
    line-height: 1.5;
}

.thank-you-content table td {
    padding: 15px 18px !important;
}

body:has(.thank-you-content) .container-wrap .wpb_row:first-child {
    margin: 0px !important;
    z-index: 99999;
}

.gtsb-group-grid>div em small {
    color: #00000052 !important;
    font-size: 95%;
}

.newsletter-row .row-bg {
    position: relative !important;
}

.newsletter-row .inner-wrap:before {
    content: '';
    width: 100% !important;
    height: 100%;
    background: linear-gradient(180deg, #f6f6f6, transparent);
    position: absolute;
    z-index: 99;
    user-select: none;
    pointer-events: none;
}

/* END */


/* ERRORS */

.gtsb-notice.error strong {
    font-size: 20px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--gtsb-red);
    display: flex;
    gap: 10px;
}

.gtsb-notice.error strong:before {
    content: '';
    width: 23px;
    height: 26px;
    background-image: url(https://www.gtechniq.co.uk/wp-content/uploads/2025/08/warning.svg);
    position: relative;
    display: block;
    background-repeat: no-repeat;
    position: relative;
    top: -1px;
}

.error input,
.error select {
    border-color: var(--gtsb-red) !important;
}

/* END */


/* MARINE COLOUR SWITCH */

div#gt-sb-app.type-marine legend,
div#gt-sb-app.type-marine .gtsb-submit,
body:has(.type-marine) div#gtsb-overall-cost,
div#gt-sb-app.type-marine .gtsb-group-controls a,
body:has(.type-marine) div#gtsb-summary-bar div#gtsb-overall-cost:after,
div#gt-sb-app.type-marine .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-label:has(input:checked):before {
    background-color: var(--gtsb-marine) !important;
}

div#gt-sb-app.type-marine legend:after {
    border-top-color: var(--gtsb-marine);
}

div#gt-sb-app.type-marine .gtsb-group-total,
div#gt-sb-app.type-marine .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-label:has(input:checked):before {
    border-color: var(--gtsb-marine);
    color: var(--gtsb-marine);
}

div#gt-sb-app.type-marine .gtsb-group-description p.group-desc,
div#gt-sb-app.type-marine .gtsb-meta-item ul li:before,
.gtsb-quote-summary.marine .gtsb-quote-totals p,
.gtsb-quote-summary.marine .gtsb-group-grid>div small,
.gtsb-quote-summary.marine .message h5 {
    color: var(--gtsb-marine) !important;
}

div#gt-sb-app.type-marine .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-label:has(input:checked):before {
    color: #fff
}

.gtsb-quote-summary.marine .gtsb-group-grid>div {
    border-color: var(--gtsb-marine);
}

/* END */


/* GENERAL */

div#gt-sb-app {
    margin-bottom: 85px;
}

.gtsb-banner:after {
    width: 60%;
    background: linear-gradient(90deg, black, transparent);
    position: absolute;
    height: 100%;
    z-index: 10;
    display: block;
    content: '';
    top: 0;
    user-select: none;
    pointer-events: none;
}

#gt-sb-app .gtsb-group:first-of-type {
    margin-top: 45px;
}

div.gtsb-group-total {
    background: #fff;
    padding: 0px 30px;
    margin-top: 45px;
}

div.gtsb-group-total:after {
    content: "";
    width: 0;
    height: 0;
    border-left: 40px solid transparent;
    border-right: 40px solid transparent;
    border-top: 77px solid #ffffff;
    right: -41px;
    position: absolute;
    top: 0px;
}

.gtsb-meta-item.gtsb-meta-kit-contents {
    margin-top: 10px;
}

div#gtsb-overall-cost span.cost {
    margin-left: -0.35em;
}

/* END */



/* 1800 */
@media only screen and (max-width: 1800px) {

    /* BOTTOM BAR */
    div#gtsb-summary-bar div#gtsb-overall-cost {
        padding: 0px 0px 0px 30px;
        min-width: 300px;
    }

    div#gtsb-summary-bar div#gtsb-overall-hours {
        padding: 0px 60px 0px 75px;
        max-width: 270px;
    }

    div#gtsb-disclaimer {
        margin-right: 30px;
    }

    div#gtsb-summary-bar {
        font-size: 21px;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost strong {
        margin-right: 0.1em;
    }

    div#gtsb-disclaimer {
        max-width: 270px;
        margin-right: 30px;
    }

    /* THANK YOU */
    .thank-you-content table * {
        font-size: 14px !important;
    }

    .thank-you-content table td {
        padding: 15px 15px !important;
    }

    .thank-you-content table td:first-child {
        width: 100px;
    }

    .customer {
        flex: unset;
        max-width: 400px;
        min-width: unset;
    }

}

/* END */


/* 1400 */
@media only screen and (max-width: 1400px) {

    /* PAGE HEADER */
    .gtsb-banner .gtsb-banner-inner {
        padding: 180px 50px 75px;
    }

    body:has(.thank-you-content) .gtsb-banner .gtsb-banner-inner {
        padding-bottom: 105px;
    }

    .gtsb-banner .gtsb-banner-inner h1 {
        font-size: 42px !important;
    }

    .gtsb-banner .gtsb-banner-inner .gtsb-region-image img {
        max-width: 60px;
    }

    /* GRID ITEMS */
    .gtsb-group .gtsb-group-options {
        display: grid !important;
    }

    .gtsb-group .gtsb-group-options .gtsb-option {
        width: 100% !important;
    }

    .gtsb-group[data-group-name="Vehicle Type"] .gtsb-group-options,
    .gtsb-group[data-group-name="Condition"] .gtsb-group-options,
    .gtsb-group[data-group-name="Polishing"] .gtsb-group-options,
    .gtsb-group[data-group-name="Craft Condition"] .gtsb-group-options {
        grid-template-columns: 1fr 1fr;
    }

    .gtsb-group[data-group-name="Paintwork"] .gtsb-group-options,
    .gtsb-group[data-group-name="Our Products"] .gtsb-group-options,
    .gtsb-group[data-group-name="Kits"] .gtsb-group-options,
    .gtsb-group[data-group-name="Craft Type"] .gtsb-group-options,
    .gtsb-group[data-group-name="Surface Coverage"] .gtsb-group-options,
    .gtsb-group[data-group-name="Glass & Interiors"] .gtsb-group-options {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .gtsb-group[data-group-name="Polishing"] .gtsb-group-options {
        gap: 45px 40px !important;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-meta .gtsb-meta-star-ratings,
    .gtsb-meta-item.gtsb-meta-kit-contents ul li {
        font-size: 14px;
        line-height: 1.5;
    }

    /* iFRAME */
    .gtsb-iframe {
        max-width: 100% !important;
        padding: 20px 50px;
    }

}

/* END */


/* 1150 */
@media only screen and (max-width: 1150px) {

    /* GRID ITEMS */
    .gtsb-group-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .gtsb-group-grid>div {
        padding: 25px;
        padding-left: 25px;
    }

    .gtsb-group-grid>div small {
        border: none;
        margin-top: 0px;
    }

    /* THANK YOU */
    .customer {
        max-width: 350px;
    }

    .gtsb-quote-summary h2 {
        font-size: 22px;
    }

    .thank-you-content {
        gap: 45px;
    }
}

/* END */


/* 999 - Inbetween */
@media only screen and (max-width: 999px) {

    /* GRID ITEMS */
    .gtsb-group[data-group-name="Polishing"] .gtsb-group-options {
        grid-template-columns: 1fr;
        gap: 35px !important;
    }

    /* ERRORS */
    .gtsb-notice.error strong {
        font-size: 14px;
        line-height: 1.2;
        font-weight: 600;
        letter-spacing: -0.015em;
        color: var(--gtsb-red);
        display: flex;
        gap: 8px;
        align-items: center;
    }

    .gtsb-notice.error strong:before {
        width: 29px;
        height: 26px;
        min-width: 29px;
        height: 26px;
    }

    /* BOTTOM BAR */
    div#gtsb-summary-bar div#gtsb-overall-cost,
    div#gtsb-summary-bar div#gtsb-overall-hours,
    div#gtsb-summary-bar div#gtsb-disclaimer {
        min-height: 80px;
        gap: .5rem;
    }

    div#gtsb-summary-bar {
        font-size: 19px;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost {
        min-width: 275px;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost:after {
        right: -45px;
    }

    div#gtsb-summary-bar div#gtsb-overall-hours {
        padding: 0px 30px 0px 55px;
        max-width: 205px;
    }

    div#gtsb-summary-bar div#gtsb-disclaimer {
        font-size: 11.5px;
        max-width: 240px;
        margin-right: 30px;
        line-height: 1.4;
    }
}

/* END */


/* 900 - Grid Shift */
@media only screen and (max-width: 900px) {
    #gt-sb-app .gtsb-group[data-group-name="Professional Application"] .application-fields {
        --details-col: 2;
        --gap: 15px;
        gap: 15px 10px;
    }

    /* THANK YOU */
    .selections,
    .customer {
        flex: unset;
        width: 100%;
        max-width: 100%;
    }

    .thank-you-content {
        flex-wrap: wrap;
        gap: 0;
    }

    .customer {
        order: 2;
    }

    .thank-you-content table td:first-child {
        width: 150px;
    }

    .thank-you-content table td,
    .thank-you-content table strong {
        font-size: 15px !important;
    }

    .gtsb-quote-totals {
        margin: 30px 0px 45px;
        font-size: 18px;
    }

    .customer>.message {
        display: none;
    }

    .gtsb-quote-summary>.message {
        display: block;
        max-width: 450px;
        text-align: center;
        margin: auto;
    }

    .gtsb-quote-totals p {
        background: #fff;
    }

    body:has(.thank-you-content) .gtsb-banner .gtsb-banner-inner {
        padding-bottom: 80px;
    }

    /* GRID ITEMS */
    .gtsb-group[data-group-name="Paintwork"] .gtsb-group-options,
    .gtsb-group[data-group-name="Our Products"] .gtsb-group-options,
    .gtsb-group[data-group-name="Kits"] .gtsb-group-options,
    .gtsb-group[data-group-name="Surface Coverage"] .gtsb-group-options,
    .gtsb-group[data-group-name="Glass & Interiors"] .gtsb-group-options {
        grid-template-columns: 1fr 1fr
    }
}

/* END */


/* 690 - Phone */
@media only screen and (max-width: 690px) {

    /* PRE LOADER */
    .gtsb-skeleton .gtsb-skel-cards {
        flex-wrap: wrap;
    }

    .gtsb-skeleton .gtsb-skel-cards .gtsb-skel-card {
        width: 100%;
    }

    /* PAGE HEADER */
    .gtsb-banner .gtsb-banner-inner {
        padding: 155px 25px 60px !important;
    }

    .gtsb-banner .gtsb-banner-inner h1 {
        font-size: 32px !important;
    }

    .gtsb-banner:after {
        width: 75%;
    }

    /* ERROR */
    .gtsb-notice.error {
        margin-bottom: 40px !important;
    }

    /* SECTION HEADINGS */
    #gt-sb-app .gtsb-group .gtsb-group-description .group-label {
        font-size: 19px;
        margin-block: 0 10px;
        max-width: 100% !important;
    }

    #gt-sb-app .gtsb-group legend {
        font-size: 12px;
        line-height: 20px;
        padding: 4px 10px;
        padding-right: 7.5px;
    }

    #gt-sb-app .gtsb-group legend:after {
        border-top: 28px solid var(--gtsb-red);
        border-left: 20px solid transparent;
        right: -20px;
        z-index: -2;
    }

    #gt-sb-app .gtsb-group:first-of-type {
        margin-top: 25px;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option:not(.has-image) .gtsb-option-meta {
        padding-left: 45px;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-meta .gtsb-meta-we-say:before {
        font-size: 14px;
        margin-bottom: 5px;
    }

    /* SECTION TOTALS */
    #gt-sb-app .gtsb-group .gtsb-group-total {
        font-size: 16px;
        height: 55px;
        padding: 15px 20px;
    }

    div.gtsb-group-total:after {
        border-left: 40px solid transparent;
        border-right: 40px solid transparent;
        border-top: 55px solid #ffffff;
    }

    /* GRID ITEMS */
    .gtsb-meta-item.gtsb-meta-guarantee {
        font-size: 14px !important;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-meta .gtsb-meta-star-ratings,
    .gtsb-meta-item ul li {
        font-size: 13px !important;
        font-weight: 400
    }

    .gtsb-meta-item.gtsb-meta-kit-contents {
        font-weight: 500
    }

    .gtsb-meta-item ul {
        margin-left: 20px !important;
        margin-bottom: 0px !important;
        margin-top: 10px !important;
    }

    .gtsb-meta-item ul li:before {
        left: -20px !important;
    }

    .gtsb-meta-item ul li:not(:last-of-type) {
        margin-bottom: 7.5px !important;
    }

    .gtsb-group .gtsb-group-options {
        gap: 25px 20px !important;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-meta .gtsb-meta-description,
    #gt-sb-app .gtsb-group .gtsb-option-meta .gtsb-meta-item {
        font-size: 13px;
        line-height: 1.5;
    }

    #gt-sb-app .gtsb-group .gtsb-meta-treatment-details:before {
        display: block;
        margin-bottom: 5px;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-meta .gtsb-option-title {
        font-size: 16px;
    }

    #gt-sb-app .gtsb-group .gtsb-group-options .gtsb-option .gtsb-option-label:before {
        top: 12px;
        left: 12px;
        height: 30px;
        width: 30px;
        font-size: 20px !important;
        line-height: 31px !important;
    }

    /* FORM SECTION */
    #gt-sb-app .gtsb-group[data-group-name="Professional Application"] .gtsb-group-description:after {
        display: none;
    }

    .group-desc {
        max-width: 100% !important;
        font-size: 14px !important;
    }

    #gt-sb-app .gtsb-group .gtsb-group-description .group-note {
        font-size: 16px;
    }

    .gtsb-field-label {
        font-size: 13px;
        margin-bottom: 2.5px;
    }
    #gtsb-field-street_address:after,
    .gtsb-field-label {
        font-size: 13px !important;
        line-height: 1.2 !important;
    }
    .address .gtsb-field-label {
        font-size: 80% !important;
    }

    .application-fields .address.gtsb-field {
        margin-top: -7.5px !important;
    }

    .gtsb-group[data-group-name="Professional Application"] {
        padding-bottom: 45px !important;
    }

    /* FORM FIELDS */
    body #gt-sb-app .gtsb-group input[type=date],
    body #gt-sb-app .gtsb-group input[type=email],
    body #gt-sb-app .gtsb-group input[type=number],
    body #gt-sb-app .gtsb-group input[type=password],
    body #gt-sb-app .gtsb-group input[type=search],
    body #gt-sb-app .gtsb-group input[type=tel],
    body #gt-sb-app .gtsb-group input[type=text],
    body #gt-sb-app .gtsb-group input[type=url],
    body #gt-sb-app .gtsb-group textarea,
    body #gt-sb-app .gtsb-group select {
        padding: 18px;
        font-size: 14px !important;
        line-height: 1.2;
        appearance: none;
    }

    #gt-sb-app .gtsb-submit {
        font-size: 16px;
    }

    div#gt-sb-app {
        margin-bottom: 55px;
    }

    /* BOTTOM BAR */
    div#gtsb-overall-cost span.cost {
        margin-left: -0.35em;
    }

    div#gtsb-summary-bar div#gtsb-disclaimer {
        width: 100%;
        min-width: 100% !important;
        background: #000;
        color: #fff;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: unset !important;
        padding: 10px 25px;
        font-size: 9.5px;
        line-height: 1.3;
    }

    div#gtsb-summary-bar {
        flex-wrap: wrap;
    }

    div#gtsb-summary-bar {
        font-size: 1.1em;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost {
        min-width: 215px;
        padding: 0px 0px 0px 20px;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost:after {
        right: -24px;
        width: 35px;
        height: 103%;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost,
    div#gtsb-summary-bar div#gtsb-overall-hours,
    div#gtsb-summary-bar div#gtsb-disclaimer {
        min-height: 62px;
        gap: 6px;
        z-index: 99999;
    }

    div#gtsb-summary-bar div#gtsb-disclaimer span {
        max-width: 240px;
    }

    div#gtsb-summary-bar div#gtsb-overall-hours {
        padding: 0px 20px 0px 35px;
        max-width: 132px;
        margin-right: 0px !important;
        margin-left: auto;
        display: flex;
        justify-content: flex-end;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost .vat-label {
        font-size: 12px;
        bottom: -1px;
        position: relative;
    }

    /* THANK YOU */
    .thank-you-content table td,
    .thank-you-content table strong {
        font-size: 14px !important;
    }

    .gtsb-group-grid>div {
        padding: 20px 20px 20px;
        font-size: 13px;
    }

    .gtsb-group-grid>div .gtsb-group-header strong {
        font-size: 15px;
        font-weight: 600;
    }

    .gtsb-group-grid>div small {
        font-size: 14px;
        line-height: 1;
        padding-top: 10px;
    }

    .gtsb-quote-totals {
        font-size: 15px;
        margin-top: 45px;
    }

    .gtsb-quote-totals p {
        padding: 20px 15px;
    }

    .gtsb-quote-totals p strong {
        display: block;
        line-height: 1.5;
        font-size: 14px;
    }

    .gtsb-quote-totals p {
        font-size: 20px;
        line-height: 1.4;
        background: #fff;
        padding: 20px 15px;
    }

    .gtsb-quote-summary h2 {
        font-size: 20px;
    }

    body:has(.thank-you-content) .container-wrap .main-content .wpb_row .row-bg-wrap {
        background: linear-gradient(to bottom, #fff 0%, #f6f6f6 300px);
    }

    .row .col .gtsb-quote-summary h3 {
        font-size: 18px;
    }

    .gtsb-group-grid {
        gap: 10px;
    }

    .thank-you-content table td:first-child {
        width: 95px;
        min-width: 95px;
    }

    /* iFRAME */
    .gtsb-iframe {
        max-width: 100% !important;
        padding: 20px 25px;
    }

}

/* END */


/* 550 - Detailed Mobile Styling */
@media only screen and (max-width: 550px) {

    /* PAGE HEADER */
    .gtsb-banner .gtsb-banner-inner {
        padding: 145px 25px 50px;
        gap: 30px;
    }

    .gtsb-banner .gtsb-banner-inner h1 {
        font-size: 26px !important;
    }

    .gtsb-banner .gtsb-banner-inner .gtsb-region-image img {
        max-width: 45px;
        border-width: 1.5px;
    }

    /* GRID ITEMS */
    .gtsb-group .gtsb-group-options {
        grid-template-columns: 1fr !important;
        gap: 45px !important;
    }

    .gtsb-group[data-group-name="Craft Type"] .gtsb-group-options {
        grid-template-columns: 1fr 1fr !important;
        gap: 25px 15px !important;
    }
}

/* END */


/* 479 */
@media only screen and (max-width: 479px) {
    .gtsb-meta-item ul {margin-left: 22px !important;}
    .gtsb-meta-item ul li:before {
        left: -22px !important;
        font-size: 15px !important;
    }
    
    /* iFRAME */
    .gtsb-iframe {
        max-width: 100% !important;
        padding: 20px 20px;
    }
}

/* END */

/* 350 - Legacy iPhone Styling */
@media only screen and (max-width: 350px) {
    div#gtsb-summary-bar {
        font-size: 0.95em;
    }

    div#gtsb-summary-bar div#gtsb-overall-cost {
        min-width: 190px;
        padding: 0px 0px 0px 15px;
    }

    div#gtsb-summary-bar div#gtsb-overall-hours {
        padding: 0px 15px 0px 15px;
        max-width: 110px;
    }
}

/* END */