/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

:root {
    --contrast: #222222;
    --contrast-2: #575760;
    --contrast-3: #b2b2be;
    --base: #f0f0f0;
    --base-2: #f7f8f9;
    --base-3: #ffffff;
    --accent: #1e73be;
    --content-width:1140px;
}

.featured-image.page-header-image,
.featured-image.page-header-image-single {
    display: none !important;
}

/**
 * ============================================================================
 * Header: Topbar
 * ============================================================================
 */

.gp-child-topbar {
    font-size: 14px;
    line-height: 1.4;
    border-top: 5px solid var(--accent);
}

.gp-child-topbar__inner {
    padding: 8px 0;
}

.gp-child-topbar__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    max-width: var(--content-width);
    margin: 0 auto;
}

.gp-child-topbar__left {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.gp-child-topbar__google {
    display: inline-flex;
    line-height: 0;
}

.gp-child-topbar__stars {
    color: #fbbc05;
    letter-spacing: 1px;
    font-weight: 700;
}

.gp-child-topbar__rating {
    font-weight: 600;
}

.gp-child-topbar__right {
    margin-left: auto;
}

.gp-child-topbar__right a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gp-child-topbar__phone-icon {
    display: inline-flex;
    line-height: 0;
    color: var(--accent);
}

.gp-child-topbar a {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
}

/**
 * ============================================================================
 * Header: Price/Tax Switcher
 * ============================================================================
 */
.gp-child-tax-switcher__form {
    margin: 0;
}

.menu-bar-items .menu-bar-item.gp-child-tax-switcher-item {
    display: inline-flex;
    align-items: center;
    padding-left: 6px;
    padding-right: 6px;
}

.gp-child-tax-switcher {
    position: relative;
}

.gp-child-tax-switcher__summary {
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    margin: 0;
    padding: 2px 5px;
    border: 1px solid #d7dbe1;
    border-radius: 12px;
    background: #fff;
    color: var(--contrast);
    line-height: 1;
    cursor: pointer;
}

.gp-child-tax-switcher__summary::-webkit-details-marker {
    display: none;
}

.gp-child-tax-switcher__context {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding-right: 8px;
    border-right: 1px solid #e5e7eb;
    color: var(--contrast-2);
}

.gp-child-tax-switcher__context-icon {
    display: inline-flex;
    line-height: 0;
}

.gp-child-tax-switcher__context-text {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gp-child-tax-switcher__current {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gp-child-tax-switcher__flag {
    display: inline-flex;
    width: 20px;
    height: 14px;
    border-radius: 3px;
    overflow: hidden;
    line-height: 0;
    box-shadow: 0 0 0 1px rgba(17, 24, 39, 0.14);
}

.gp-child-tax-switcher__flag svg {
    width: 100%;
    height: 100%;
    display: block;
}

.gp-child-tax-switcher__code {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.gp-child-tax-switcher__rate {
    font-size: 11px;
    font-weight: 700;
    color: var(--accent);
}

.gp-child-tax-switcher__caret {
    display: inline-flex;
    color: #6b7280;
    line-height: 0;
}

.gp-child-tax-switcher[open] .gp-child-tax-switcher__summary {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(30, 115, 190, 0.18);
}

.gp-child-tax-switcher__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 260px;
    max-width: min(90vw, 320px);
    padding: 6px;
    border: 1px solid #d7dbe1;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 32px -20px rgba(0, 0, 0, 0.55);
    z-index: 500;
    overflow: hidden;
}

.gp-child-tax-switcher__option {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--contrast);
    text-align: left;
    cursor: pointer;
}

.gp-child-tax-switcher__option:hover,
.gp-child-tax-switcher__option:focus-visible {
    background: #f2f6fb;
}

.gp-child-tax-switcher__option:hover .gp-child-tax-switcher__option-text,
.gp-child-tax-switcher__option:hover .gp-child-tax-switcher__option-meta,
.gp-child-tax-switcher__option:focus-visible .gp-child-tax-switcher__option-text,
.gp-child-tax-switcher__option:focus-visible .gp-child-tax-switcher__option-meta {
    color: var(--accent);
}

.gp-child-tax-switcher__option.is-active {
    background: #edf4fc;
}

.gp-child-tax-switcher__option-main {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.gp-child-tax-switcher__option-text {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gp-child-tax-switcher__option-meta {
    flex: 0 0 auto;
    margin-left: auto;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--contrast-2);
}

/**
 * ============================================================================
 * Header: Responsive
 * ============================================================================
 */
@media (max-width: 768px) {
    .gp-child-topbar__content {
        justify-content: center;
        text-align: center;
    }

    .gp-child-topbar__right {
        margin-left: 0;
    }

    .gp-child-tax-switcher__summary {
        padding-right: 8px;
        padding-left: 8px;
    }

    .gp-child-tax-switcher__context-text {
        display: none;
    }

    .gp-child-tax-switcher__context {
        padding-right: 6px;
    }

    .gp-child-tax-switcher__panel {
        right: -6px;
        min-width: 235px;
    }

    .menu-bar-items .menu-bar-item.gp-child-tax-switcher-item {
        padding-left: 0;
        padding-right: 0;
    }
}

/**
 * ============================================================================
 * Header Widget
 * ============================================================================
 */
div.header-widget{
    .wc-block-mini-cart{
        svg{
            width: 30px;
            height: 30px;
            fill: var(--accent);
        }
        .wc-block-mini-cart__badge{
            font-size: 14px;
            background: var(--contrast);
            color: var(--base-3);
        }
        .wc-block-mini-cart__button{
            &:hover{
                background-color: unset;
            }
        }
    }
}

/**
 * ============================================================================
 * Header Menu
 * ============================================================================
 */
nav.main-navigation{
    border-bottom: 1px solid #F0F0F0;
    .menu-bar-items{
        .wc-menu-item{
            opacity: 0;
            transition: opacity 0.3s ease;
            .gp-icon.shopping-cart{
                display: none;
            }
            display: flex;
            a{
                padding: 0 10px 0 20px;
                position: relative;
                line-height: 0;
                .number-of-items{
                    position: absolute;
                    right:0;
                    background: var(--contrast);
                    color: var(--base-3);
                }
            }
        }
    }
}
nav.main-navigation.is_stuck{
    .menu-bar-items{
        .wc-menu-item{
            opacity: 1;
        }
    }
}

@media (min-width: 769px) {
    nav.main-navigation {
        .main-nav {
            ul {
                li.menu-item-has-children {
                    > .sub-menu {
                        min-width: 280px;
                        padding: 6px;
                        border: 1px solid #d7dbe1;
                        border-radius: 10px;
                        background: #fff;
                        box-shadow: 0 14px 32px -20px rgba(0, 0, 0, 0.55);
                    }
                }

                ul.sub-menu {
                    li {
                        border-bottom: 0;

                        a {
                            display: block;
                            margin: 0;
                            padding: 8px 10px;
                            border-radius: 7px;
                            background: transparent;
                            color: var(--contrast);
                            font-size: 13px;
                            font-weight: 600;
                            line-height: 1.35;
                            transition: background-color 0.2s ease, color 0.2s ease;
                        }

                        &:hover > a,
                        &:focus-within > a {
                            background: #f2f6fb;
                            color: var(--accent);
                        }

                        &.current-menu-item > a,
                        &.current_page_item > a,
                        &.current-menu-ancestor > a {
                            background: #edf4fc;
                            color: var(--accent);
                        }
                    }
                }
            }
        }
    }
}

/**
 * ============================================================================
 * Back To Top
 * ============================================================================
 */
.generate-back-to-top{
    bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/**
 * ============================================================================
 * Breadcrumbs
 * ============================================================================
 */

.rank-math-breadcrumb{
    opacity: 0.8;
    font-size: 11px;
    p{
        margin-bottom: 0;
    }
    .separator{
        font-size: 13px;
        line-height: 1px;
    }
}

/**
 * ============================================================================
 * Front-Page
 * ============================================================================
 */
body.home{
    .homepage-header-image{
        &:before{
            content: "";
            background-color: rgba(30, 115, 190, 0.5);
            backdrop-filter: blur(8px);
        }
        .swiper-slide-bg{
            background-position: center 80%;
        }
    }
}
/**
 * ============================================================================
 * Sidebar
 * ============================================================================
 */
.widget-area.sidebar,
.seo-sidebar{
    .widget.inner-padding{
        padding: 0;
    }

    h2.wp-block-heading{
        font-size: 20px;
        font-weight: 700;
        margin-bottom: 5px;
    }
    aside.widget_text{
        font-size: 16px;
   }
    hr.wp-block-separator{
        margin-top: 20px;
        margin-bottom: 20px;
        height: 2px;
        background: linear-gradient(90deg,rgba(255, 255, 255, 0.0) 0%, var(--accent) 54%, rgba(255, 255, 255, 0) 100%);
        border: none;
    }
    aside.widget_search{
        .wp-block-search__inside-wrapper{
            padding:0;
            border:none;
            position: relative;
            .wp-block-search__input{
                border-radius: 6px;
            }
            .wp-block-search__button{
                position: absolute;
                top: 5px;
                right: 10px;
                bottom: 5px;
                margin-left:0;
                padding: unset;
                background: unset;
                svg{
                    fill: var(--base-1);
                    transform: scaleX(-1);
                }
            }
        }
    }
    .wp-block-latest-posts__list{
        li{
            display: flex;
            flex-direction: column-reverse;
            background-color: var(--base-2);
            padding: 6px;
            border-radius: 6px;
            margin-bottom: 6px;
            time{
                text-transform: uppercase;
                font-size: 11px;
            }
            .wp-block-latest-posts__post-title{
                font-size: 14px;
                font-weight: 600;
                margin-bottom: 0;
            }
        }
    }
    aside.widget_products{
        del,
        ins,
        .star-rating{
            display: none;
        }
        li{
            background-color: var(--base-2);
            padding: 6px;
            border-radius: 6px;
            margin-bottom: 6px;
            a{
                display: flex;
                img{
                    margin-right: 5px;
                }
                .product-title{
                    font-size: 14px;
                    font-weight: 600;
                    margin-bottom: 0;
                }
            }
            &:hover{
                background-color: var(--base);
            }
        }
    }
}

/**
 * ============================================================================
 * WooCommerce Archive
 * ============================================================================
 */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag,
.woocommerce[class*="columns-"] {
    .woocommerce-result-count{
        margin: 0 0 24px;
        color: var(--contrast-2);
        font-size: 14px;
        font-weight: 600;
    }

    .woocommerce-ordering{
        margin: 0 0 24px;

        select{
            min-height: 54px;
            padding: 0 48px 0 18px;
            border: 1px solid #d8dee5;
            border-radius: 14px;
            background-color: #ffffff;
            color: var(--contrast);
            font-size: 14px;
            font-weight: 700;
            box-shadow: none;
        }
    }

    ul.products{
        display: grid;
        gap: 24px 18px;
        margin: 0;
        padding: 0;

        &:before,
        &:after{
            content: none;
        }

        li.product{
            width: 100%;
            &:hover{
            }

            .onsale{
                top: 14px !important;
                left: 18px;
                right: auto !important;
                min-width: 0;
                min-height: 0;
                margin: 0;
                padding: 6px 14px;
                border: none;
                border-radius: 999px;
                background: #68b357;
                color: #ffffff;
                font-size: 11px;
                font-weight: 800;
                line-height: 1;
                letter-spacing: 0.08em;
                text-transform: uppercase;
            }

            a.woocommerce-LoopProduct-link{
                display: flex;
                flex: 1 1 auto;
                flex-direction: column;
                gap: 10px;
                color: inherit;
                text-decoration: none;
            }

            img{
                width: 78%;
                margin: 16px auto 4px;
                padding: 0;
                aspect-ratio: 1 / 1;
                object-fit: contain;
                border-radius: 0;
                background: transparent;
            }

            .woocommerce-loop-product__title{
                margin: 0 !important;
                color: #111827;
                font-size: 16px;
                font-weight: 700;
                line-height: 1.08;
                letter-spacing: -0.03em;
                text-align: left;
            }

            .star-rating{
                margin: 2px 0 0;
                color: #d1d5db;
                font-size: 14px;
            }

            .price{
                display: block;
                margin: 6px 0 0;
                color: #111827;
                font-size: 28px;
                font-weight: 800;
                line-height: 1.08;

                del{
                    display: block;
                    margin-bottom: 8px;
                    color: #9ca3af;
                    font-size: 16px;
                    font-weight: 600;
                    opacity: 1;
                }

                ins{
                    display: block;
                    background: transparent;
                    text-decoration: none;
                }

                .amount{
                    color: inherit;
                }
            }

            .button,
            .added_to_cart{
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 10px;
                width: max-content;
                border-radius: 5px;
                margin: 18px 0 0;
                padding: 6px 8px;
                background: var(--contrast);
                color: #ffffff;
                font-size: 13px;
                font-weight: 800;
                line-height: 1.05;
                letter-spacing: 0.08em;
                text-transform: uppercase;
                box-shadow: none;
            }

            .button:before{
                content: "";
                width: 16px;
                height: 16px;
                flex: 0 0 16px;
                background-color: currentColor;
                -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 7V6a5 5 0 0 1 10 0v1h2.25a.75.75 0 0 1 .75.75v11.5a1.75 1.75 0 0 1-1.75 1.75H5.75A1.75 1.75 0 0 1 4 19.25V7.75A.75.75 0 0 1 4.75 7H7Zm1.5 0h7V6a3.5 3.5 0 1 0-7 0v1Zm-3 1.5v10.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V8.5H17v1.25a.75.75 0 0 1-1.5 0V8.5h-7v1.25a.75.75 0 0 1-1.5 0V8.5H5.5Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
                mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M7 7V6a5 5 0 0 1 10 0v1h2.25a.75.75 0 0 1 .75.75v11.5a1.75 1.75 0 0 1-1.75 1.75H5.75A1.75 1.75 0 0 1 4 19.25V7.75A.75.75 0 0 1 4.75 7H7Zm1.5 0h7V6a3.5 3.5 0 1 0-7 0v1Zm-3 1.5v10.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V8.5H17v1.25a.75.75 0 0 1-1.5 0V8.5h-7v1.25a.75.75 0 0 1-1.5 0V8.5H5.5Z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
            }

            .button:hover,
            .button:focus-visible,
            .added_to_cart:hover,
            .added_to_cart:focus-visible{
                background: var(--accent);
            }

            .added_to_cart:before{
                display: none;
            }
        }
    }

    ul.products.columns-1{
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    ul.products.columns-2{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    ul.products.columns-3{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    ul.products.columns-4{
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    body.post-type-archive-product,
    body.tax-product_cat,
    body.tax-product_tag,
    .woocommerce[class*="columns-"] {
        ul.products{
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 22px 18px;

            li.product{
                .woocommerce-loop-product__title{
                    font-size: 18px;
                }

                .price{
                    font-size: 26px;
                }
            }
        }
    }
}

@media (max-width: 640px) {
    body.post-type-archive-product,
    body.tax-product_cat,
    body.tax-product_tag,
    .woocommerce[class*="columns-"] {
        ul.products{
            grid-template-columns: 1fr;
        }
    }
}

/**
 * ============================================================================
 * Single Product
 * ============================================================================
 */

.single-product{
    #photoswipe-fullscreen-dialog{
        z-index: 99999;
        .pswp__bg{
            opacity: 0.8 !important;
        }
        .pswp__scroll-wrap{
            backdrop-filter: blur(2px);
            img.pswp__img{
                border-radius: 10px;
            }
        }
        .pswp__button{
            border: none;
            color: var(--base);
            cursor: pointer;
            transition: color 0.3s ease;
        }
        .pswp__button--arrow--left,
        .pswp__button--arrow--right{
            background-color: var(--accent) !important;
            width: 40px;
        }
        .pswp__button--arrow--left{
            border-top-right-radius:10px;
            border-bottom-right-radius:10px;
            &:before{
                left: 2px;
            }
        }
        .pswp__button--arrow--right{
            border-top-left-radius:10px;
            border-bottom-left-radius:10px;
            &:before{
                right: 2px;
            }
        }
    }
}

.single-product .gp-child-payment-methods {
    margin: 24px 0 20px;
    padding-top: 12px;
    border-top: 1px solid #e4ebf3;
}

.single-product .gp-child-payment-methods__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 12px;
}

.single-product .gp-child-payment-methods__eyebrow {
    margin: 0;
    color: var(--contrast-2);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.single-product .gp-child-payment-methods__title {
    margin: 0;
    color: var(--contrast);
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.02em;
}

.single-product .gp-child-payment-methods__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid #e4ebf3;
    border-radius: 14px;
    background: #ffffff;
}

.single-product .gp-child-payment-methods__card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    min-height: 88px;
    padding: 16px 18px;
    background: #ffffff;
    box-shadow: inset -1px -1px 0 #e4ebf3;
}

.single-product .gp-child-payment-methods__logo {
    display: flex;
    align-items: center;
    min-height: 26px;
}

.single-product .gp-child-payment-methods__logo img {
    display: block;
    width: auto;
    max-width: 120px;
    max-height: 24px;
    object-fit: contain;
}

.single-product .gp-child-payment-methods__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #0f172a;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.single-product .gp-child-payment-methods__name {
    margin: 0;
    color: #0f172a;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.25;
}

@media (max-width: 768px) {
    .single-product .gp-child-payment-methods {
        margin: 20px 0 18px;
        padding-top: 10px;
    }

    .single-product .gp-child-payment-methods__header {
        margin-bottom: 10px;
    }

    .single-product .gp-child-payment-methods__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .single-product .gp-child-payment-methods__card {
        min-height: 80px;
        padding: 14px 16px;
    }

    .single-product .gp-child-payment-methods__name {
        font-size: 15px;
    }
}

.single-product .elementor-widget-woocommerce-product-price .price,
.single-product div.product p.price {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 18px;
}

.single-product .gp-child-price-savings {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-width: 190px;
    padding: 12px 16px;
    border: 1px solid #d8dee5;
    border-radius: 14px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fc 100%);
    color: var(--contrast);
}

.single-product .gp-child-price-savings__eyebrow {
    color: var(--accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.single-product .gp-child-price-savings__amount {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
}

.single-product .gp-child-price-savings__meta {
    color: var(--contrast-2);
    font-size: 13px;
    line-height: 1.3;
}

@media (max-width: 768px) {
    .single-product .elementor-widget-woocommerce-product-price .price,
    .single-product div.product p.price {
        gap: 10px 14px;
    }

    .single-product .gp-child-price-savings {
        min-width: 0;
        width: 100%;
    }

    .single-product .gp-child-price-savings__amount {
        font-size: 18px;
    }
}

/**
 * ============================================================================
 * Single Product: YITH Product Add-ons
 * ============================================================================
 */
.woocommerce-page{
    .wc-block-components-product-details{
        display: flex;
        width: 100%;
        flex-direction: column;

        .wc-block-components-product-details__value{
            font-weight: bold;
        }

        span[aria-hidden="true"] {
            display: none;
        }
    }
}

/**
 * ============================================================================
 * Single Product: YITH Product Add-ons
 * ============================================================================
 */

.single-product form.cart #yith-wapo-container {
    margin-top: 14px;
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid #d8dee5;
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fc 100%);
}

.single-product form.cart #yith-wapo-container .yith-wapo-block {
    padding: 0 !important;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon {
    /*margin-top: 10px !important;*/
    /*padding: 10px 11px;*/
    /*border: 1px solid #e3e8ee;*/
    /*border-radius: 10px;*/
    background: transparent !important;
    flex-flow: row;
    display: flex;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon:first-child {
    margin-top: 0 !important;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon .wapo-addon-title {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--contrast);
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon .wapo-addon-description {
    margin: 0 0 8px;
    color: var(--contrast-2);
    font-size: 14px;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon .options {
    gap: 6px;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-select {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.3fr);
    align-items: baseline;
    justify-content: space-between;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-select .addon-header {
    margin: 0;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-select .wapo-addon-title {
    margin: 0;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-select .options-container {
    margin: 0;
    .option-description{
        display: none;
    }
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.3fr);
    gap: 6px 14px;
    align-items: center;
}

.single-product form.cart #yith-wapo-container .yith-wapo-option .label {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 4px 0;
    transition: color 0.2s ease;
}

.single-product form.cart #yith-wapo-container .yith-wapo-option .label:hover {
    background: transparent;
}

.single-product form.cart #yith-wapo-container .yith-wapo-option.selected .label {
    border-color: transparent;
    box-shadow: none;
}

#yith-wapo-container .gp-child-wapo-option-hidden {
    display: none !important;
}

#yith-wapo-container .yith-wapo-addon {
    overflow: hidden;
    max-height: 1200px;
    opacity: 1;
    transition: max-height 0.28s ease, opacity 0.2s ease, margin 0.28s ease, padding 0.28s ease, border-width 0.28s ease;
}

#yith-wapo-container .yith-wapo-addon.gp-child-wapo-addon-hidden {
    max-height: 0 !important;
    opacity: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top-width: 0 !important;
    border-bottom-width: 0 !important;
    visibility: hidden;
    pointer-events: none;
}

#yith-wapo-container .gp-child-wapo-options-toggle-wrap {
    margin-top: 6px;
    display: flex;
    justify-content: flex-end;
}

#yith-wapo-container .gp-child-wapo-options-toggle {
    border: 1px solid #cfd7e2;
    border-radius: 8px;
    background: var(--contrast);
    color: #ffffff;
    padding: 6px 11px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

#yith-wapo-container .gp-child-wapo-options-toggle:hover,
#yith-wapo-container .gp-child-wapo-options-toggle:focus-visible {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(30, 115, 190, 0.12);
    background: var(--accent);
    outline: 0;
}

@media (prefers-reduced-motion: reduce) {
    #yith-wapo-container .yith-wapo-addon {
        transition: none;
    }
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option .label,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option .label {
    padding: 0;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option .input-text-container,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option .textarea-container {
    width: 100%;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option .tooltip,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option .description,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option .tooltip,
.single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option .description {
    grid-column: 1 / -1;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon-label,
.single-product form.cart #yith-wapo-container .yith-wapo-label {
    font-weight: 600;
    color: var(--contrast);
}

.single-product form.cart #yith-wapo-container .yith-wapo-option small,
.single-product form.cart #yith-wapo-container .yith-wapo-option .description {
    color: var(--contrast-2);
}

.single-product form.cart #yith-wapo-container .yith-wapo-option .required,
.single-product form.cart #yith-wapo-container .yith-wapo-addon .required {
    color: #d14343;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon .yith-wapo-option-value,
.single-product form.cart #yith-wapo-container .yith-wapo-addon select,
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="text"],
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="number"],
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="date"],
.single-product form.cart #yith-wapo-container .yith-wapo-addon textarea {
    width: 100%;
    min-height: 38px;
    border: 1px solid #cfd7e2;
    border-radius: 8px;
    background: #fff;
    color: var(--contrast);
    padding: 7px 9px;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon textarea {
    min-height: 90px;
    resize: vertical;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon .yith-wapo-option-value:focus,
.single-product form.cart #yith-wapo-container .yith-wapo-addon select:focus,
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="text"]:focus,
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="number"]:focus,
.single-product form.cart #yith-wapo-container .yith-wapo-addon input[type="date"]:focus,
.single-product form.cart #yith-wapo-container .yith-wapo-addon textarea:focus {
    outline: 0;
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(30, 115, 190, 0.16);
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon span.checkboxbutton:before,
.single-product form.cart #yith-wapo-container .yith-wapo-addon span.radiobutton:before {
    border-color: #b8c3d1 !important;
}

.single-product form.cart #yith-wapo-container .yith-wapo-addon span.checkboxbutton.checked:before,
.single-product form.cart #yith-wapo-container .yith-wapo-addon span.radiobutton.checked:before {
    border-color: var(--accent) !important;
    background-color: var(--accent) !important;
}

.single-product form.cart #wapo-total-price-table {
    margin-top: 10px;
    border: 1px solid #d8dee5;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    color: var(--contrast);
    table{
        width: 100%;
        margin-bottom: 0;
        border: 0;
    }
}

.single-product form.cart #wapo-total-price-table table th,
.single-product form.cart #wapo-total-price-table table td {
    padding: 8px 10px;
    border-bottom: 1px solid #edf1f6;
}

.single-product form.cart #wapo-total-price-table table tr:last-child th,
.single-product form.cart #wapo-total-price-table table tr:last-child td {
    border-bottom: 0;
}

.single-product form.cart #yith-wapo-container .yith-wapo-option .yith-wapo-error {
    display: block;
    margin-top: 8px;
    color: #c62828;
    font-weight: 600;
}

@media (max-width: 768px) {
    .single-product form.cart #yith-wapo-container {
        padding: 10px;
    }

    .single-product form.cart #yith-wapo-container .yith-wapo-addon {
        padding: 9px;
    }

    .single-product form.cart #yith-wapo-container .yith-wapo-addon .wapo-addon-title {
        font-size: 15px;
    }

    .single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-select,
    .single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-text .yith-wapo-option,
    .single-product form.cart #yith-wapo-container .yith-wapo-addon.yith-wapo-addon-type-textarea .yith-wapo-option {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

.single-product form.cart {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 12px;
}

.single-product form.cart > .quantity,
.single-product form.cart > button.single_add_to_cart_button,
.single-product form.cart > .gp-child-quote-actions {
    box-sizing: border-box;
    float: none;
}

.single-product form.cart > #yith-wapo-container,
.single-product form.cart > #wapo-total-price-table,
.single-product form.cart > .variations,
.single-product form.cart > .single_variation_wrap,
.single-product form.cart > .woocommerce-variation-add-to-cart,
.single-product form.cart > .reset_variations {
    grid-column: 1 / -1;
}

.single-product form.cart > .quantity {
    width: 100%;
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 10px 0 !important;
    padding: 12px 16px;
    border: 1px solid #d8dee5;
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fc 100%);
}

.single-product form.cart > .quantity::before {
    content: "Aantal";
    color: var(--contrast-2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

.single-product form.cart > .quantity .qty {
    min-height: 48px;
    width: 88px;
    flex: 0 0 88px;
    border: 1px solid #cfd7e2;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
    font-weight: 600;
    text-align: center;
}

.single-product form.cart > .quantity .qty:focus {
    outline: 0;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(30, 115, 190, 0.16);
}

.single-product form.cart > button.single_add_to_cart_button {
    grid-column: 1 / -1;
    display: block;
    width: 100%;
    min-height: 48px;
    margin: 0 0 5px 0 !important;
    padding: 12px 24px;
    border-radius: 10px;
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(30, 115, 190, 0.16);
}



.single-product form.cart .gp-child-quote-actions {
    display: inline-flex;
    grid-column: 1 / -1;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
    width: 100%;
}

.single-product form.cart .single_add_to_cart_button,
.single-product form.cart .gp-child-quote-button {
    display: block;
    width: 100%;
    min-height: 48px;
    justify-content: center;
    background: #ffffff;
    color: var(--contrast);
    border: 1px solid #cfd7e2;
    border-radius: 10px;
    font-weight: 700;
    box-shadow: none;
    margin: 0 !important;
}

.single-product form.cart .single_add_to_cart_button:not(.gp-child-quote-button){
    width: 75% !important;
}
.single-product form.cart .quantity{
    width: 25% !important;
    margin: 0  !important;
    input{
        width: 100%;
        min-height: 48px;
        border: 1px solid #cfd7e2;
        border-radius: 8px;
        background: #fff;
        color: var(--contrast);
        padding: 7px 9px;
    }
}

.single-product form.cart .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button:focus-visible,
.single-product form.cart .gp-child-quote-button:hover,
.single-product form.cart .gp-child-quote-button:focus-visible {
    background: #f5f8fc;
    border-color: var(--accent);
    color: var(--accent);
}

.single-product form.cart .gp-child-quote-help {
    margin: 0;
    font-size: 13px;
    color: var(--contrast-2);
}

@media (max-width: 768px) {
    .single-product form.cart {
        grid-template-columns: 1fr;
    }

    .single-product form.cart > .quantity,
    .single-product form.cart > button.single_add_to_cart_button,
    .single-product form.cart > .gp-child-quote-actions {
        grid-column: 1;
        width: 100%;
    }

    .single-product form.cart > .quantity .qty {
        width: 88px;
    }
}

.gp-child-quote-checkout .gp-child-quote-checkout-intro {
    margin-bottom: 24px;
    border-left: 4px solid var(--accent);
}

.gp-child-flow-switcher {
    margin-bottom: 24px;
    padding: 20px;
    border: 1px solid #d8dee5;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fafd 100%);
    box-shadow: 0 16px 36px -28px rgba(15, 23, 42, 0.45);
}

.gp-child-flow-switcher__intro {
    margin-bottom: 16px;
}

.gp-child-flow-switcher__eyebrow {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gp-child-flow-switcher__title {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 1.15;
}

.gp-child-flow-switcher__description {
    margin: 0;
    color: var(--contrast-2);
}

.gp-child-flow-switcher__form {
    margin: 0;
}

.gp-child-flow-switcher__options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
}

.gp-child-flow-switcher__option {
    display: flex;
    min-height: 84px;
    width: 100%;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    padding: 16px;
    border: 1px solid #cfd7e2;
    border-radius: 12px;
    background: #ffffff;
    color: var(--contrast);
    text-align: left;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.gp-child-flow-switcher__option:hover,
.gp-child-flow-switcher__option:focus-visible {
    border-color: var(--accent);
    background: #f5f8fc;
    color: var(--contrast);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -22px rgba(30, 115, 190, 0.8);
}

.gp-child-flow-switcher__option.is-active,
.gp-child-flow-switcher__option:disabled {
    border-color: var(--accent);
    background: #edf4fc;
    color: var(--contrast);
    cursor: default;
    box-shadow: inset 0 0 0 1px rgba(30, 115, 190, 0.1);
}

.gp-child-flow-switcher__option-title {
    display: block;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}

.gp-child-flow-switcher__option-status {
    display: block;
    color: var(--contrast-2);
    font-size: 13px;
    font-weight: 600;
}

.gp-child-flow-switcher__option.is-active .gp-child-flow-switcher__option-status,
.gp-child-flow-switcher__option:disabled .gp-child-flow-switcher__option-status {
    color: var(--accent);
}

.gp-child-quote-checkout .gp-child-quote-extra-info-row textarea {
    min-height: 120px;
}

.gp-child-quote-thankyou {
    margin-top: 24px;
    padding: 20px;
    border: 1px solid #d8dee5;
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fc 100%);
}

.gp-child-quote-thankyou h2 {
    margin-bottom: 8px;
    font-size: 24px;
}

.gp-child-quote-thankyou p {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .gp-child-flow-switcher {
        padding: 18px;
    }

    .gp-child-flow-switcher__options {
        grid-template-columns: 1fr;
    }

    .gp-child-flow-switcher__title {
        font-size: 24px;
    }
}

/**
 * ============================================================================
 * Forms: Gravity Forms
 * ============================================================================
 */

body .gform_wrapper,
body form[id^="gform_"] {
    --gp-child-form-border: #cfd7e2;
    --gp-child-form-border-strong: #b9c5d4;
    --gp-child-form-surface: #ffffff;
    --gp-child-form-surface-alt: #f7fafd;
    --gp-child-form-muted: #64748b;
    --gp-child-form-danger: #c62828;
    --gp-child-form-danger-bg: #fff4f4;
    --gp-child-form-success: #1e6b43;
    --gp-child-form-success-bg: #effaf3;
    color: var(--contrast);
}

body .gform_wrapper .gform_heading,
body form[id^="gform_"] .gform_heading {
    margin-bottom: 24px;
}

body .gform_wrapper .gform_title,
body form[id^="gform_"] .gform_title {
    margin-bottom: 8px;
}

body .gform_wrapper .gform_description,
body form[id^="gform_"] .gform_description {
    color: var(--contrast-2);
}

body .gform_wrapper .gform-body,
body form[id^="gform_"] .gform-body {
    margin-bottom: 24px;
}

body .gform_wrapper .gform_fields,
body form[id^="gform_"] .gform_fields {
    display: grid;
    gap: 18px;
}

body .gform_wrapper .gfield,
body form[id^="gform_"] .gfield {
    margin: 0;
}

body .gform_wrapper .gfield_label,
body .gform_wrapper legend.gfield_label,
body form[id^="gform_"] .gfield_label,
body form[id^="gform_"] legend.gfield_label {
    display: block;
    margin-bottom: 10px;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}

body .gform_wrapper .gform-field-label--type-sub,
body form[id^="gform_"] .gform-field-label--type-sub {
    margin-bottom: 8px;
    color: var(--contrast-2);
    font-size: 13px;
    font-weight: 600;
}

body .gform_wrapper .gfield_required,
body .gform_wrapper .gfield_required_asterisk,
body form[id^="gform_"] .gfield_required,
body form[id^="gform_"] .gfield_required_asterisk {
    color: var(--gp-child-form-danger);
}

body .gform_wrapper .ginput_container,
body form[id^="gform_"] .ginput_container {
    margin-top: 0;
}

body .gform_wrapper .ginput_complex,
body form[id^="gform_"] .ginput_complex {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}

body .gform_wrapper .ginput_complex > span,
body .gform_wrapper .ginput_complex > div,
body form[id^="gform_"] .ginput_complex > span,
body form[id^="gform_"] .ginput_complex > div {
    grid-column: span 6;
    min-width: 0;
}

body .gform_wrapper .ginput_complex > .gform-grid-col--size-auto,
body form[id^="gform_"] .ginput_complex > .gform-grid-col--size-auto {
    grid-column: span 6;
}

body .gform_wrapper :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea),
body form[id^="gform_"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-height: 52px;
    margin: 0;
    padding: 13px 16px;
    border: 1px solid var(--gp-child-form-border);
    border-radius: 12px;
    background: var(--gp-child-form-surface);
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
    color: var(--contrast);
    font-size: 15px;
    line-height: 1.5;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

body .gform_wrapper select,
body form[id^="gform_"] select {
    padding-right: 44px;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--contrast-2) 50%),
        linear-gradient(135deg, var(--contrast-2) 50%, transparent 50%);
    background-position:
        calc(100% - 22px) calc(50% - 2px),
        calc(100% - 16px) calc(50% - 2px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    appearance: none;
}

body .gform_wrapper textarea,
body form[id^="gform_"] textarea {
    min-height: 140px;
    resize: vertical;
}

body .gform_wrapper :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea)::placeholder,
body form[id^="gform_"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea)::placeholder {
    color: #94a3b8;
}

body .gform_wrapper :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea):focus,
body form[id^="gform_"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="file"]), select, textarea):focus {
    outline: 0;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(30, 115, 190, 0.16);
}

body .gform_wrapper .gfield_description,
body .gform_wrapper .gform_description,
body .gform_wrapper .gfield_validation_message,
body .gform_wrapper .validation_message,
body form[id^="gform_"] .gfield_description,
body form[id^="gform_"] .gform_description,
body form[id^="gform_"] .gfield_validation_message,
body form[id^="gform_"] .validation_message {
    margin-top: 8px;
    color: var(--gp-child-form-muted);
    font-size: 13px;
    line-height: 1.5;
}

body .gform_wrapper .gfield_error :is(input, select, textarea),
body .gform_wrapper .gfield--type-repeater .gfield_error :is(input, select, textarea),
body form[id^="gform_"] .gfield_error :is(input, select, textarea),
body form[id^="gform_"] .gfield--type-repeater .gfield_error :is(input, select, textarea) {
    border-color: #df6b6b;
    background: var(--gp-child-form-danger-bg);
}

body .gform_wrapper .gfield_error .gfield_label,
body .gform_wrapper .gfield_validation_message,
body .gform_wrapper .validation_message,
body form[id^="gform_"] .gfield_error .gfield_label,
body form[id^="gform_"] .gfield_validation_message,
body form[id^="gform_"] .validation_message {
    color: var(--gp-child-form-danger);
}

body .gform_wrapper .validation_error,
body .gform_wrapper .gform_validation_errors,
body form[id^="gform_"] .validation_error,
body form[id^="gform_"] .gform_validation_errors {
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid #dfb0b0;
    border-radius: 12px;
    background: var(--gp-child-form-danger-bg);
    color: #8f1d1d;
}

body .gform_wrapper .gform_confirmation_message,
body form[id^="gform_"] .gform_confirmation_message {
    padding: 18px 20px;
    border: 1px solid #b9dfc8;
    border-radius: 14px;
    background: var(--gp-child-form-success-bg);
    color: var(--gp-child-form-success);
    font-weight: 600;
}

body .gform_wrapper .gchoice,
body form[id^="gform_"] .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

body .gform_wrapper .gchoice + .gchoice,
body form[id^="gform_"] .gchoice + .gchoice {
    margin-top: 10px;
}

body .gform_wrapper .gchoice label,
body form[id^="gform_"] .gchoice label {
    margin: 0;
    font-weight: 500;
    line-height: 1.5;
}

body .gform_wrapper :is(.gfield_checkbox, .gfield_radio),
body form[id^="gform_"] :is(.gfield_checkbox, .gfield_radio) {
    display: grid;
    gap: 10px;
}

body .gform_wrapper .gfield_checkbox input,
body .gform_wrapper .gfield_radio input,
body form[id^="gform_"] .gfield_checkbox input,
body form[id^="gform_"] .gfield_radio input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--accent);
}

body .gform_wrapper .gform_footer,
body .gform_wrapper .gform_page_footer,
body form[id^="gform_"] .gform_footer,
body form[id^="gform_"] .gform_page_footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    padding-top: 8px;
}

body .gform_wrapper .gform_button,
body .gform_wrapper input[type="submit"],
body .gform_wrapper input[type="button"],
body .gform_wrapper .gform_next_button,
body .gform_wrapper .gform_previous_button,
body form[id^="gform_"] .gform_button,
body form[id^="gform_"] input[type="submit"],
body form[id^="gform_"] input[type="button"],
body form[id^="gform_"] .gform_next_button,
body form[id^="gform_"] .gform_previous_button {
    min-height: 52px;
    margin: 0 !important;
    padding: 13px 24px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: var(--accent);
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 12px 24px -18px rgba(30, 115, 190, 0.8);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

body .gform_wrapper .gform_previous_button,
body form[id^="gform_"] .gform_previous_button {
    border-color: var(--gp-child-form-border-strong);
    background: #ffffff;
    color: var(--contrast);
    box-shadow: none;
}

body .gform_wrapper :is(.gform_button, input[type="submit"], input[type="button"], .gform_next_button, .gform_previous_button):hover,
body .gform_wrapper :is(.gform_button, input[type="submit"], input[type="button"], .gform_next_button, .gform_previous_button):focus-visible,
body form[id^="gform_"] :is(.gform_button, input[type="submit"], input[type="button"], .gform_next_button, .gform_previous_button):hover,
body form[id^="gform_"] :is(.gform_button, input[type="submit"], input[type="button"], .gform_next_button, .gform_previous_button):focus-visible {
    transform: translateY(-1px);
}

body .gform_wrapper .gform_previous_button:hover,
body .gform_wrapper .gform_previous_button:focus-visible,
body form[id^="gform_"] .gform_previous_button:hover,
body form[id^="gform_"] .gform_previous_button:focus-visible {
    border-color: var(--accent);
    color: var(--accent);
}

body .gform_wrapper .ginput_container_consent,
body form[id^="gform_"] .ginput_container_consent {
    padding: 14px 16px;
    border: 1px solid #d8dee5;
    border-radius: 12px;
    background: var(--gp-child-form-surface-alt);
}

body .gform_wrapper .gfield_visibility_hidden,
body form[id^="gform_"] .gfield_visibility_hidden {
    display: none;
}

body .gform_wrapper .gform_hidden,
body .gform_wrapper .screen-reader-text,
body form[id^="gform_"] .gform_hidden,
body form[id^="gform_"] .screen-reader-text {
    margin: 0;
}

body .gform_wrapper .ginput_complex br,
body .gform_wrapper .gform_footer br,
body form[id^="gform_"] .ginput_complex br,
body form[id^="gform_"] .gform_footer br {
    display: none;
}

body .gform_wrapper .ginput_complex p,
body .gform_wrapper .gform_footer p,
body form[id^="gform_"] .ginput_complex p,
body form[id^="gform_"] .gform_footer p {
    margin: 0;
}

body .gform_wrapper .ginput_recaptcha,
body form[id^="gform_"] .ginput_recaptcha {
    min-height: 0;
}

@media (max-width: 768px) {
    body .gform_wrapper .gform_fields,
    body form[id^="gform_"] .gform_fields {
        gap: 16px;
    }

    body .gform_wrapper .ginput_complex,
    body form[id^="gform_"] .ginput_complex {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    body .gform_wrapper .ginput_complex > span,
    body .gform_wrapper .ginput_complex > div,
    body form[id^="gform_"] .ginput_complex > span,
    body form[id^="gform_"] .ginput_complex > div {
        grid-column: auto;
    }

    body .gform_wrapper .gform_footer,
    body .gform_wrapper .gform_page_footer,
    body form[id^="gform_"] .gform_footer,
    body form[id^="gform_"] .gform_page_footer {
        flex-direction: column;
        align-items: stretch;
    }

    body .gform_wrapper .gform_button,
    body .gform_wrapper input[type="submit"],
    body .gform_wrapper input[type="button"],
    body .gform_wrapper .gform_next_button,
    body .gform_wrapper .gform_previous_button,
    body form[id^="gform_"] .gform_button,
    body form[id^="gform_"] input[type="submit"],
    body form[id^="gform_"] input[type="button"],
    body form[id^="gform_"] .gform_next_button,
    body form[id^="gform_"] .gform_previous_button {
        width: 100%;
    }
}

/**
 * ============================================================================
 * Utilities
 * ============================================================================
 */

.text-uppercase{
    text-transform: uppercase !important;
}
