:root {
    --sf-checkout-field-gap: 1.25rem;
    --sf-checkout-color-text: #333;
}

/* ── Account / Login header ── */
.ct-header-account,
.checkout-login {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    text-align: right;

    * {
        font-size: 0.875rem;
        letter-spacing: 0.02rem;
    }

    a {
        color: var(--sf-checkout-color-text) !important;
        font-weight: 600;

        &:hover {
            text-decoration: underline;
        }
    }
}

#customer_details .ct-header-account {
    a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.25rem;

        &::after {
            content: "";
            display: inline-block;
            width: 1rem;
            height: 1rem;
            background-image: url(../assets/icons/icon-chevron-right.svg);
            background-size: contain;
            background-repeat: no-repeat;
        }
    }
}

/* ── Checkout form ── */
form.ct-woocommerce-checkout {
    gap: 5.75rem;

    .form-row {
        margin-bottom: 1rem !important;
        padding-top: 0.5rem;

        > label {
            padding-inline: var(--sf-checkout-field-gap);
            margin: 0;
            font-size: 0.875rem;
            font-weight: 400;
            letter-spacing: 0.02rem;
            color: #474747;

            &.screen-reader-text {
                position: relative !important;
                height: 1.4375rem;
            }
        }

        &:has(label:not(.screen-reader-text)) {
            input, textarea {
                &::placeholder {
                    color: transparent;
                }
            }
        }
    }

    .checkout-inline-error-message {
        padding-top: 0.5rem;
        font-size: 0.75rem;
        line-height: 1.2;
    }
}

/* ── Checkout page ── */
.woocommerce-page.woocommerce-checkout {

    /* Inputs */

    .select2-container {
        min-height: 2.5rem;
    }

    input, select, textarea,
    .select2-selection,
    #billing_country_field .select2-selection--single {
        padding: 0.5rem var(--sf-checkout-field-gap) 1rem var(--sf-checkout-field-gap);
        border-width: 0 0 1px 0;
        border-radius: 0;
        border-color: #C9C9C9;
        font-size: 1rem;
        font-weight: 600;
        letter-spacing: 0.02rem;
        color: #474747;
    }

    .form-row .select2 .select2-selection__rendered {
        padding: 0;
    }

    /* Main content */

    #main {
        h2 {
            padding: 0;
            border: none;
        }

        .woocommerce-billing-fields__field-wrapper {
            overflow: hidden;
        }

        /* Customer details */

        .ct-customer-details {
            h3 {
                border: none;
                margin: 1.625em 0 0.5rem 0 !important;
                padding: 1rem 0 1rem var(--sf-checkout-field-gap);
            }

            #billing_address_1_field,
            #billing_address_2_field {
                margin-bottom: 0.5rem;
            }

            .col-2 {
                margin-top: 0;

                .shipping_address {
                    overflow: hidden;
                    margin-top: 1rem;
                }

                #ship-to-different-address {
                    margin: 0 !important;
                    padding: 0;
                    line-height: 1;

                    label {
                        display: flex;
                        align-items: center;

                        span {
                            font-size: 0.875rem;
                            font-weight: 400;
                            line-height: 1.2;
                            letter-spacing: 0.02rem;
                        }
                    }
                }

                #ship-to-different-address-checkbox {
                    top: 0;
                    width: 1.5rem;
                    height: 1.5rem;
                    border-radius: 0.25rem;
                    border-color: #E7E7E7;

                    &:not(:checked) {
                        background-color: #F9F9F9;
                    }
                }
            }
        }
    }

    /* Billing fields header */

    .woocommerce-billing-fields-wrapper {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        padding: 1rem 0 1rem var(--sf-checkout-field-gap);

        h2 {
            margin: 0;
        }
    }

    /* Payment methods */

    .ct-woocommerce-checkout #payment.woocommerce-checkout-payment {
        .wc_payment_methods {
            display: flex;
            flex-direction: column;
            gap: 2rem;
        }

        .wc_payment_method {
            border: none;

            label {
                padding: 0;
                border: none;
                font-size: 1rem;
                line-height: 1.2;
                letter-spacing: 0.02rem;
            }

            .payment_box {
                padding: 0.5rem;
                margin-top: 0.5rem;
                margin-left: 2rem;
                border: none;
                border-radius: 0.375rem;
                background-color: var(--sf-bg-light);

                * {
                    font-size: 0.75rem;
                }
            }
        }
    }
}

/* ── Customer details sidebar ── */
.ct-customer-details {
    background: #fff;
    padding: 1.5rem;

    /* Place order button */

    #place_order {
        display: flex;
        gap: 0.5rem;
        padding: 1rem;
        background-color: #EED4B2;
        color: #201C1C;

        &::after {
            content: "";
            width: 1.125rem;
            height: 1.125rem;
            background-image: url('../assets/icons/icon-place-order.svg');
        }
    }

    /* Agreements */

    .checkout-custom-agreements-title {
        margin: 0 0 1rem 0;
        font-weight: 500;
        text-align: center;
    }

    .checkout-custom-agreements {
        .validate-required {
            padding-top: 0;

            label {
                display: flex;
                padding: 0;

                input {
                    width: 1.5rem;
                    height: 1.5rem;
                    border-width: 1px;
                    border-radius: 0.25rem;
                    border-color: #EED4B2;

                    &:not(:checked) {
                        background: #F9F9F9;
                    }
                }

                span {
                    width: calc(100% - 2.75rem);
                    font-size: 0.75rem;
                    font-weight: 400;
                    line-height: 1.6;
                    letter-spacing: 0.02rem;
                    color: #333333;

                    a {
                        color: #333333;
                        font-weight: 600;
                        text-decoration: underline;
                    }
                }
            }
        }
    }
}

/* ── Order review ── */
.ct-order-review {
    border: none;
    padding: 2.5rem 1.5rem 1.5rem;
}

body.woocommerce-page.woocommerce-checkout .woocommerce-checkout.ct-woocommerce-checkout .ct-order-review {

    #order_review_heading {
        border: none;
        padding: 0;
        margin-bottom: 2rem;
    }

    /* Table layout */

    th, td {
        border-bottom: 1px solid #DEDEDE;
    }

    th.product-name {
        padding: 0 0 0.875rem 1.25rem;
    }

    th.product-total {
        padding: 0 0 0.875rem 0;
    }

    td.product-name {
        padding: 1.5rem 1.5rem 1.5rem 0;
    }

    tfoot {
        th, td {
            padding-top: 1rem;
            padding-bottom: 1rem;
        }

        th {
            text-transform: uppercase;
            font-size: 0.75rem;
            vertical-align: middle;
        }
        tr > td > .amount > *, tr > td > del * {
            font-size: 1rem !important;
        }
        tr.order-total {
            th{
                font-size: 1.125rem;
            }
            td strong .amount > * {
                font-size: 1.125rem;
                font-weight: 600;
            }
        }
    }

    #order_review {
        tr.shipping td {
            text-align: right;
            font-size: 0.875rem;
        }

        td {
            .sf-cart-price--amount {
                text-align: right;
            }
            > .amount > bdi{
                font-size: 1.125rem;
                font-weight: 600;
            }
        }
    }

    .cart-general-price-row {
        th, td {
            padding-top: 3rem;
        }
    }

    /* Product thumbnail */

    .ct-media-container img {
        width: 6rem;
        height: 6rem;
    }

    /* Product title */

    .ct-checkout-cart-item-title {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.2;
        letter-spacing: 0.02rem;

        .product-quantity {
            padding: 0.25rem;
            font-size: 0.875rem;
            font-weight: 600;
            border-radius: 0.125rem;
            background-color: #F6EEE8;
        }
    }

    /* Coupon block */

    #checkout-coupon-block {
        .woocommerce-info {
            display: flex;
            justify-content: space-between;
            gap: 1rem;
            padding: 0;
            margin: 0;
            min-height: auto;
            background: transparent;
            font-weight: 500;
            line-height: 1.2;
            letter-spacing: 0.02rem;
            text-align: left;

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

            .showcustomcoupon {
                font-weight: 600;
                text-decoration: underline;
                text-align: right;
            }
        }

        #custom-coupon-container {
            margin-top: 0.5rem;
        }

        #custom_apply_coupon {
            padding: 0.825rem 1.25rem;
            font-size: 0.75rem;
            font-weight: 600;
            line-height: 1;
            letter-spacing: 0.02rem;
            border-radius: var(--sf-radius);
            border: 1px solid var(--sf-text-color-beige-dark);
            background-color: transparent;
            color: var(--sf-text-color-beige-dark);

            &::after {
                content: "";
                display: block;
                width: 1em;
                height: 1rem;
                margin-left: 0.5rem;
                background-image: url('../assets/icons/icon-refresh.svg');
                background-repeat: no-repeat;
                background-size: 1rem 1rem;
                background-position: center center;
                filter: none;
                opacity: 1;
                position: static;
                z-index: 0;
            }

            &:hover {
                background-color: transparent;
                border-color: var(--sf-text-color-beige);
                color: var(--sf-text-color-beige);
            }
        }
    }
}

/* ── Place order section ── */
.woocommerce .woocommerce-checkout .form-row.place-order {
    padding: 3rem;
    margin-top: 2.625rem;
    border: 1px solid var(--sf-border-color);
    border-radius: 0.25rem;
    background-color: var(--sf-bg-light);
}

/* ── Payment radio buttons ── */
#payment ul.payment_methods > li.wc_payment_method > label {
    gap: 0.5rem;

    &::before {
        width: 1.5rem;
        height: 1.5rem;
        margin: 0;
        border-color: #E7E7E7;
        background: #F9F9F9;
    }
}

/* -- Checkout -- */
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
}

/* ── Field layout: two-column pairs ── */
#billing_address_1_field, #billing_email_field,
#shipping_address_1_field, #shipping_phone_field {
    float: left;
    clear: none;
}

#billing_address_2_field, #billing_phone_field,
#shipping_address_2_field, #shipping_email_field {
    float: right;
    clear: none;
}

#billing_address_1_field, #billing_address_2_field,
#billing_email_field, #billing_phone_field,
#shipping_address_1_field, #shipping_address_2_field,
#shipping_email_field, #shipping_phone_field {
    width: 48%;
    overflow: visible;
}

/* ── Field layout: three-column row ── */
#billing_country_field, #billing_city_field, #billing_postcode_field,
#shipping_country_field, #shipping_city_field, #shipping_postcode_field {
    width: calc(96% / 3);
    float: left;
    clear: none;
    margin-bottom: 1rem;
}

#billing_country_field {
    clear: both;
}

@media screen and (max-width: 1200px) {
    form.ct-woocommerce-checkout {
        gap: 2rem;
    }

    .woocommerce .woocommerce-checkout .form-row.place-order {
        padding: 2rem 1rem;
    }

    .woocommerce .woocommerce-checkout .ct-order-review .ct-media-container {
        width: 3.25rem;
        img {
            width: 3.25rem !important;
            height: 3.25rem !important;
        }
        .ct-checkout-cart-item-content {
            width: 100%;
        }
    }

    table.shop_table .product-name .ct-checkout-cart-item {
        grid-template-columns: 3.75rem 1fr;
    }
}

/* ── Responsive: single column ── */
@media screen and (max-width: 690px) {
    #customer_details .form-row {
        width: 100%;
        margin: 0;
    }

    form.ct-woocommerce-checkout .form-row {
        padding-top: 1rem;
    }

    .ct-woocommerce-checkout {
        .ct-order-review {
            order: -1;
            padding: 0;
        }

        .ct-customer-details {
            width: calc(100% + 3rem);
            margin: 0 -1.5rem;

            .woocommerce-checkout-payment {
                margin-inline: 0;
            }
        }
    }
}
@media screen and (max-width: 480px) {
    .woocommerce-page.woocommerce-checkout {
        .ct-container-full {
            padding-bottom: 0;
        }
    }
    .woocommerce .woocommerce-checkout .ct-order-review #checkout-coupon-block #custom_apply_coupon {
        width: 100%;
    }
    .woocommerce .woocommerce-checkout .ct-order-review td.product-name {
        padding: 1rem 0.5rem 1rem 0 !important;
    }
    .woocommerce .woocommerce-checkout .ct-order-review tfoot {
        th, td {
            padding-top: 0.5rem !important;
            padding-bottom: 0.5rem !important;
        }
    }
    .woocommerce-page.woocommerce-checkout .woocommerce-billing-fields-wrapper{
        flex-wrap: wrap;
        div:has(h2){
            width: 100%;
        }
    }
    .woocommerce .woocommerce-checkout .ct-order-review .ct-checkout-cart-item-title {
        gap: 0.5rem;
    }
    body.woocommerce-page.woocommerce-checkout .woocommerce-checkout.ct-woocommerce-checkout .ct-order-review {
         #order_review {
             td {
                 > .amount > bdi {
                     font-size: 0.875rem;
                }
            }
        }
    }
    .woocommerce-page.woocommerce-checkout {
        .woocommerce-checkout {
            .sf-cart-price .sf-cart-price--amount {
                del {
                    font-size: 0.75rem;
                }
            }
        }
    }
    .woocommerce-page.woocommerce-checkout {
        .woocommerce-checkout {
             .sf-cart-price .sf-cart-price--amount {
                 ins {
                    font-size: 0.875rem;
                }
            }
        }
    }
    .woocommerce .woocommerce-checkout .ct-order-review .cart-general-price-row {
        th, td {
            padding-top: 1.5rem !important;
        }
    }
}
