
/**
 * Trustivo Premium Checkout UI v2.2.4
 */

:root{
    --tvco-purple:#6f3cff;
    --tvco-purple2:#8b5cf6;
    --tvco-dark:#120a2a;
    --tvco-text:#33264f;
    --tvco-muted:#746b86;
    --tvco-border:#eee7ff;
    --tvco-soft:#f7f4ff;
    --tvco-white:#ffffff;
    --tvco-danger:#dc2626;
    --tvco-success:#16a34a;
}

/* Checkout shell */
body.woocommerce-checkout .trustivo-hard-checkout{
    background:
        radial-gradient(circle at 18% 2%, rgba(111,60,255,.16), transparent 30%),
        radial-gradient(circle at 85% 12%, rgba(139,92,246,.11), transparent 26%),
        linear-gradient(180deg,#ffffff 0%,#fbf9ff 100%);
}

body.woocommerce-checkout .trustivo-hard-checkout section{
    max-width:1240px;
    padding-top:76px;
}

body.woocommerce-checkout .trustivo-hard-checkout h1{
    max-width:980px;
    font-size:clamp(42px,5.6vw,78px);
}

body.woocommerce-checkout .trustivo-hard-checkout > section > p{
    max-width:760px;
}

body.woocommerce-checkout .thc-box{
    max-width:1040px;
    margin:34px auto 0;
    padding:0;
    border:1px solid rgba(111,60,255,.11);
    border-radius:34px;
    overflow:hidden;
    background:rgba(255,255,255,.92);
    box-shadow:0 34px 95px rgba(18,10,42,.11);
}

/* Woo wrapper */
body.woocommerce-checkout .thc-box .woocommerce{
    padding:28px;
}

/* Notices */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message{
    border:0!important;
    border-left:5px solid var(--tvco-purple)!important;
    border-radius:20px!important;
    background:#fbf8ff!important;
    color:var(--tvco-text)!important;
    padding:18px 22px 18px 56px!important;
    margin:0 0 16px!important;
    box-shadow:0 12px 34px rgba(18,10,42,.05);
    font-weight:760;
}

body.woocommerce-checkout .woocommerce-error{
    border-left-color:var(--tvco-danger)!important;
    background:#fff7f7!important;
}

body.woocommerce-checkout .woocommerce-message{
    border-left-color:var(--tvco-success)!important;
    background:#f5fff8!important;
}

body.woocommerce-checkout .woocommerce-error:before,
body.woocommerce-checkout .woocommerce-info:before,
body.woocommerce-checkout .woocommerce-message:before{
    top:18px!important;
    color:var(--tvco-purple)!important;
}

body.woocommerce-checkout .woocommerce-error:before{
    color:var(--tvco-danger)!important;
}

body.woocommerce-checkout .woocommerce-message:before{
    color:var(--tvco-success)!important;
}

body.woocommerce-checkout .woocommerce-error a.button,
body.woocommerce-checkout .woocommerce-info a.button,
body.woocommerce-checkout .woocommerce-message a.button{
    float:right;
    margin-top:-4px;
    margin-left:12px;
    padding:10px 16px!important;
    min-height:auto!important;
    line-height:1.2!important;
}

/* Trust blocks */
.trustivo-checkout-trustbar{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:18px 0 24px;
}

.trustivo-checkout-trustbar article{
    background:linear-gradient(180deg,#fff,#fbf8ff);
    border:1px solid var(--tvco-border);
    border-radius:22px;
    padding:18px;
    box-shadow:0 12px 32px rgba(18,10,42,.04);
}

.trustivo-checkout-trustbar strong{
    display:block;
    color:var(--tvco-dark);
    font-size:15px;
    margin-bottom:5px;
}

.trustivo-checkout-trustbar span{
    display:block;
    color:var(--tvco-muted);
    font-size:13px;
    line-height:1.45;
}

/* Coupon */
body.woocommerce-checkout .checkout_coupon{
    border:1px solid var(--tvco-border)!important;
    border-radius:22px!important;
    padding:20px!important;
    background:#fff!important;
    box-shadow:0 12px 34px rgba(18,10,42,.04);
}

body.woocommerce-checkout .checkout_coupon .form-row{
    margin:0;
}

body.woocommerce-checkout .checkout_coupon input.input-text{
    min-height:48px;
}

/* Main checkout layout */
body.woocommerce-checkout form.checkout{
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
    gap:26px;
    align-items:start;
    margin-top:16px;
}

body.woocommerce-checkout #customer_details{
    background:#fff;
    border:1px solid var(--tvco-border);
    border-radius:28px;
    padding:26px;
    box-shadow:0 18px 54px rgba(18,10,42,.055);
}

body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
    float:none!important;
    width:100%!important;
}

body.woocommerce-checkout #customer_details .col-2{
    margin-top:22px;
    padding-top:22px;
    border-top:1px solid var(--tvco-border);
}

body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review{
    grid-column:2;
}

body.woocommerce-checkout #order_review_heading{
    background:linear-gradient(135deg,var(--tvco-purple),var(--tvco-purple2));
    color:#fff;
    border-radius:26px 26px 0 0;
    padding:22px 24px;
    margin:0!important;
    font-size:24px;
    letter-spacing:-.03em;
    line-height:1.1;
}

body.woocommerce-checkout #order_review{
    background:#fff;
    border:1px solid var(--tvco-border);
    border-top:0;
    border-radius:0 0 26px 26px;
    padding:0 24px 24px;
    box-shadow:0 18px 54px rgba(18,10,42,.07);
    position:sticky;
    top:92px;
}

/* Headings */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading{
    font-weight:950;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3{
    font-size:26px;
    line-height:1.1;
    letter-spacing:-.035em;
    color:var(--tvco-dark);
    margin:0 0 20px;
}

/* Fields */
body.woocommerce-checkout .form-row{
    margin-bottom:16px!important;
}

body.woocommerce-checkout .form-row label{
    font-weight:850;
    color:var(--tvco-text);
    margin-bottom:7px;
    font-size:14px;
}

body.woocommerce-checkout abbr.required{
    color:var(--tvco-purple);
    text-decoration:none;
}

body.woocommerce-checkout .woocommerce-input-wrapper{
    display:block;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container--default .select2-selection--single{
    min-height:52px;
    border:1px solid #e3d7ff!important;
    border-radius:18px!important;
    background:#fff!important;
    color:var(--tvco-dark)!important;
    padding:13px 16px!important;
    box-shadow:0 8px 18px rgba(111,60,255,.07);
    transition:.18s ease;
}

body.woocommerce-checkout textarea{
    min-height:110px;
}

body.woocommerce-checkout input.input-text:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout .select2-container--open .select2-selection--single{
    outline:none!important;
    border-color:var(--tvco-purple)!important;
    box-shadow:0 0 0 4px rgba(111,60,255,.11)!important;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered{
    line-height:25px;
    padding-left:0;
    color:var(--tvco-dark);
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow{
    height:50px;
    right:10px;
}

/* Order table */
body.woocommerce-checkout table.shop_table{
    border:0!important;
    border-collapse:separate!important;
    border-spacing:0;
    margin:0!important;
}

body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td{
    border:0!important;
    border-bottom:1px solid var(--tvco-border)!important;
    padding:16px 0!important;
    color:var(--tvco-text);
}

body.woocommerce-checkout table.shop_table thead th{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--tvco-muted);
}

body.woocommerce-checkout table.shop_table td.product-name{
    font-weight:850;
    color:var(--tvco-dark);
}

body.woocommerce-checkout table.shop_table td.product-total,
body.woocommerce-checkout table.shop_table th.product-total,
body.woocommerce-checkout table.shop_table .cart-subtotal td,
body.woocommerce-checkout table.shop_table .order-total td{
    text-align:right;
}

body.woocommerce-checkout table.shop_table .order-total th,
body.woocommerce-checkout table.shop_table .order-total td{
    font-size:18px;
    font-weight:950;
    color:var(--tvco-dark);
    border-bottom:0!important;
}

body.woocommerce-checkout .woocommerce-Price-amount{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:78px;
    background:#f1ebff;
    color:var(--tvco-purple);
    border-radius:999px;
    padding:9px 13px;
    font-weight:950;
}

/* Payment */
.trustivo-payment-note{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    align-items:start;
    background:linear-gradient(135deg,#f7f1ff,#ffffff);
    border:1px solid #dfd1ff;
    border-left:5px solid var(--tvco-purple);
    border-radius:20px;
    padding:16px;
    margin:20px 0;
}

.trustivo-payment-note strong{
    color:var(--tvco-purple);
    font-size:14px;
}

.trustivo-payment-note span{
    color:var(--tvco-muted);
    font-size:13px;
    line-height:1.45;
}

body.woocommerce-checkout #payment{
    background:#fbf9ff!important;
    border:1px solid var(--tvco-border);
    border-radius:22px!important;
    padding:16px!important;
}

body.woocommerce-checkout #payment ul.payment_methods{
    border-bottom:1px solid var(--tvco-border)!important;
    padding:0 0 14px!important;
}

body.woocommerce-checkout #payment ul.payment_methods li{
    background:#fff;
    border:1px solid var(--tvco-border);
    border-radius:16px;
    padding:14px!important;
    margin-bottom:10px!important;
}

body.woocommerce-checkout #payment div.payment_box{
    background:#f5f0ff!important;
    color:var(--tvco-text)!important;
    border-radius:16px!important;
}

body.woocommerce-checkout #payment div.payment_box:before{
    border-bottom-color:#f5f0ff!important;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text{
    color:var(--tvco-muted);
    font-size:13px;
    line-height:1.55;
}

body.woocommerce-checkout #place_order{
    width:100%;
    min-height:56px;
    margin-top:16px!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,var(--tvco-purple),var(--tvco-purple2))!important;
    color:#fff!important;
    font-weight:950!important;
    box-shadow:0 18px 44px rgba(111,60,255,.28)!important;
}

/* Footer sections after checkout */
body.woocommerce-checkout .tvh-final,
body.woocommerce-checkout .tvh-section{
    margin-top:80px;
}

/* Mobile */
@media(max-width:980px){
    body.woocommerce-checkout .thc-box .woocommerce{
        padding:20px;
    }

    body.woocommerce-checkout form.checkout{
        display:block;
    }

    body.woocommerce-checkout #customer_details{
        margin-bottom:22px;
        padding:22px;
    }

    body.woocommerce-checkout #order_review_heading{
        border-radius:24px 24px 0 0;
    }

    body.woocommerce-checkout #order_review{
        position:relative;
        top:auto;
        border-radius:0 0 24px 24px;
    }

    .trustivo-checkout-trustbar{
        grid-template-columns:1fr;
    }
}

@media(max-width:640px){
    body.woocommerce-checkout .trustivo-hard-checkout section{
        padding:46px 16px;
    }

    body.woocommerce-checkout .trustivo-hard-checkout h1{
        font-size:40px;
        letter-spacing:-.055em;
    }

    body.woocommerce-checkout .trustivo-hard-checkout > section > p{
        font-size:16px;
    }

    body.woocommerce-checkout .thc-box{
        border-radius:24px;
        margin-left:-4px;
        margin-right:-4px;
    }

    body.woocommerce-checkout .thc-box .woocommerce{
        padding:16px;
    }

    body.woocommerce-checkout .woocommerce-error,
    body.woocommerce-checkout .woocommerce-info,
    body.woocommerce-checkout .woocommerce-message{
        padding:16px 16px 16px 46px!important;
        border-radius:17px!important;
        font-size:13px;
    }

    body.woocommerce-checkout .woocommerce-error a.button,
    body.woocommerce-checkout .woocommerce-info a.button,
    body.woocommerce-checkout .woocommerce-message a.button{
        float:none;
        display:flex;
        width:100%;
        justify-content:center;
        margin:12px 0 0;
    }

    body.woocommerce-checkout #customer_details{
        padding:18px;
        border-radius:22px;
    }

    body.woocommerce-checkout .woocommerce-billing-fields h3,
    body.woocommerce-checkout .woocommerce-additional-fields h3{
        font-size:23px;
    }

    body.woocommerce-checkout .form-row-first,
    body.woocommerce-checkout .form-row-last{
        float:none!important;
        width:100%!important;
    }

    body.woocommerce-checkout input.input-text,
    body.woocommerce-checkout textarea,
    body.woocommerce-checkout select,
    body.woocommerce-checkout .select2-container--default .select2-selection--single{
        min-height:50px;
        border-radius:16px!important;
    }

    body.woocommerce-checkout #order_review_heading{
        padding:20px;
        font-size:22px;
    }

    body.woocommerce-checkout #order_review{
        padding:0 18px 18px;
    }

    body.woocommerce-checkout table.shop_table th,
    body.woocommerce-checkout table.shop_table td{
        padding:13px 0!important;
        font-size:13px;
    }

    body.woocommerce-checkout .woocommerce-Price-amount{
        min-width:auto;
        padding:8px 10px;
    }

    .trustivo-payment-note{
        grid-template-columns:1fr;
        padding:14px;
    }
}
