/* =========================================================
   Werbezug LED System — design tokens (override at theme-level
   if needed by redefining these custom properties)
   ========================================================= */
.wzls-config,
.wzls-form{
    --wzls-primary:        #3589C0;
    --wzls-primary-dark:   #2A6E9C;
    --wzls-accent:         #F2C944;
    --wzls-text:           #54595F;
    --wzls-text-soft:      #7A7A7A;
    --wzls-bg-soft:        #F4F6F9;
    --wzls-border:         #E1E5EA;
    --wzls-border-strong:  #C7CFD8;
    --wzls-white:          #FFFFFF;

    --wzls-radius-sm: 8px;
    --wzls-radius:    12px;
    --wzls-radius-lg: 16px;

    --wzls-space-1: 4px;
    --wzls-space-2: 8px;
    --wzls-space-3: 12px;
    --wzls-space-4: 16px;
    --wzls-space-5: 24px;
    --wzls-space-6: 32px;

    --wzls-shadow-sm: 0 1px 2px rgba(20,40,70,.06);
    --wzls-shadow:    0 4px 16px rgba(20,40,70,.08);
}

/* =========================================================
   Configurator (page produit)
   ========================================================= */
.wzls-config{
    border:1px solid var(--wzls-border);
    padding:var(--wzls-space-4);
    margin:var(--wzls-space-3) 0;
    border-radius:var(--wzls-radius);
    background:var(--wzls-white);
    box-shadow:var(--wzls-shadow-sm);
    color:var(--wzls-text);
}
.wzls-config h3{
    margin:0 0 var(--wzls-space-3);
    color:var(--wzls-primary);
    font-weight:700;
}

.wzls-helpers{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:var(--wzls-space-3);
    margin-bottom:var(--wzls-space-4);
}
.wzls-helper{
    position:relative;
    border:1px solid var(--wzls-border);
    border-radius:var(--wzls-radius);
    padding:var(--wzls-space-3);
    background:var(--wzls-bg-soft);
}
.wzls-helper-title{
    font-weight:700;
    margin:0 0 var(--wzls-space-2);
    color:var(--wzls-text);
}
.wzls-helper-img{
    width:100%;
    height:auto;
    display:block;
    border-radius:var(--wzls-radius-sm);
}

.wzls-zoom-btn{
    position:absolute;
    top:var(--wzls-space-3);
    right:var(--wzls-space-3);
    background:rgba(255,255,255,.92);
    border:1px solid var(--wzls-border);
    border-radius:50%;
    width:38px;height:38px;
    display:flex;align-items:center;justify-content:center;
    box-shadow:var(--wzls-shadow-sm);
    cursor:pointer;
    z-index:2;
    transition:background .15s ease, transform .15s ease;
}
.wzls-zoom-btn:hover{
    background:#fff;
    transform:scale(1.05);
}
.wzls-zoom-btn svg{stroke:var(--wzls-primary);}

.wzls-row{margin:var(--wzls-space-3) 0;}
.wzls-row > label{display:block;margin-bottom:var(--wzls-space-2);color:var(--wzls-text);}

.wzls-btns{
    display:flex;gap:var(--wzls-space-2);flex-wrap:wrap;
}
.wzls-btn{
    border:1px solid var(--wzls-border-strong);
    background:var(--wzls-white);
    color:var(--wzls-text);
    padding:10px 14px;
    border-radius:var(--wzls-radius-sm);
    cursor:pointer;
    user-select:none;
    min-width:44px;
    text-align:center;
    transition:all .15s ease;
}
.wzls-btn:hover{border-color:var(--wzls-primary);color:var(--wzls-primary);}
.wzls-btn[aria-pressed="true"]{
    border-color:var(--wzls-primary);
    background:var(--wzls-primary);
    color:var(--wzls-white);
}

.wzls-cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:var(--wzls-space-3);
}
.wzls-card{
    border:1px solid var(--wzls-border-strong);
    border-radius:var(--wzls-radius);
    padding:var(--wzls-space-3);
    cursor:pointer;
    background:var(--wzls-white);
    color:var(--wzls-text);
    transition:all .15s ease;
}
.wzls-card:hover{border-color:var(--wzls-primary);}
.wzls-card[aria-pressed="true"]{
    border-color:var(--wzls-primary);
    background:var(--wzls-primary);
    color:var(--wzls-white);
}
.wzls-card[aria-pressed="true"] .wzls-price{color:var(--wzls-accent);}
.wzls-card .wzls-price{
    font-size:20px;
    font-weight:700;
    margin-top:var(--wzls-space-1);
    color:var(--wzls-primary);
}

.wzls-total{
    margin-top:var(--wzls-space-3);
    padding:var(--wzls-space-3) var(--wzls-space-4);
    border-radius:var(--wzls-radius);
    background:var(--wzls-bg-soft);
    border:1px solid var(--wzls-border);
    display:flex;align-items:center;justify-content:space-between;
    gap:var(--wzls-space-3);flex-wrap:wrap;
    color:var(--wzls-text);
}
.wzls-total strong{font-size:18px;color:var(--wzls-primary);}

.wzls-hint{
    margin:var(--wzls-space-2) 0 0;
    color:var(--wzls-text-soft);
    font-size:13px;
}

.wzls-date-input{
    max-width:240px;
    padding:10px 12px;
    border:1px solid var(--wzls-border-strong);
    border-radius:var(--wzls-radius-sm);
    background:var(--wzls-white);
    color:var(--wzls-text);
    font-size:15px;
}
.wzls-date-input:focus{
    outline:none;
    border-color:var(--wzls-primary);
    box-shadow:0 0 0 3px rgba(53,137,192,.15);
}

/* =========================================================
   Anfrage form (shortcode [werbeflaeche_anfragen])
   Modern card-style — borderless, soft elevation, generous spacing.
   ========================================================= */
.wzls-form{
    max-width:780px;
    margin:48px auto;
    padding:48px;
    background:var(--wzls-white);
    border:none;
    border-radius:24px;
    box-shadow:
        0 1px 2px rgba(20,40,70,.04),
        0 12px 32px rgba(20,40,70,.08);
    color:var(--wzls-text);
    position:relative;
    overflow:hidden;
}
.wzls-form::before{
    content:"";
    position:absolute;
    top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg, var(--wzls-primary), var(--wzls-accent));
}

.wzls-form-title{
    margin:0 0 8px;
    color:var(--wzls-text);
    font-size:32px;
    font-weight:800;
    letter-spacing:-0.02em;
    line-height:1.15;
}
.wzls-form-intro{
    margin:0 0 40px;
    color:var(--wzls-text-soft);
    font-size:15px;
    line-height:1.5;
}
.wzls-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px 24px;
}
.wzls-form-grid .wzls-field--full{grid-column:1 / -1;}
@media (max-width:640px){
    .wzls-form{padding:28px 24px;margin:24px auto;border-radius:20px;}
    .wzls-form-title{font-size:26px;}
    .wzls-form-intro{margin-bottom:28px;}
    .wzls-form-grid{grid-template-columns:1fr;gap:16px;}
}

.wzls-field{display:flex;flex-direction:column;}
.wzls-field-label{
    font-weight:600;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    margin-bottom:8px;
    color:var(--wzls-text-soft);
}
.wzls-field-label .wzls-required{color:var(--wzls-primary);margin-left:2px;}

.wzls-input,
.wzls-select,
.wzls-textarea{
    width:100%;
    padding:14px 16px;
    border:1.5px solid transparent;
    border-radius:12px;
    background:#F5F7FA;
    color:var(--wzls-text);
    font-size:16px;
    font-family:inherit;
    line-height:1.4;
    transition:background .2s ease, border-color .2s ease, box-shadow .2s ease;
    box-sizing:border-box;
    -webkit-appearance:none;
    appearance:none;
}
.wzls-input::placeholder,
.wzls-textarea::placeholder{color:#9AA3AD;}
.wzls-input:hover,
.wzls-select:hover,
.wzls-textarea:hover{background:#EEF2F7;}

.wzls-textarea{
    min-height:140px;
    resize:vertical;
    line-height:1.55;
}
.wzls-select{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%2354595F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat:no-repeat;
    background-position:right 16px center;
    padding-right:40px;
    cursor:pointer;
}

.wzls-input:focus,
.wzls-select:focus,
.wzls-textarea:focus{
    outline:none;
    background:var(--wzls-white);
    border-color:var(--wzls-primary);
    box-shadow:0 0 0 4px rgba(53,137,192,.18);
}

.wzls-form-actions{
    margin-top:36px;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}
@media (max-width:640px){
    .wzls-form-actions{margin-top:28px;}
    .wzls-form-actions .wzls-button-primary{width:100%;}
}

.wzls-button-primary{
    background:var(--wzls-primary);
    color:var(--wzls-white);
    border:none;
    padding:16px 36px;
    font-size:15px;
    font-weight:700;
    letter-spacing:0.02em;
    border-radius:12px;
    cursor:pointer;
    transition:background .2s ease, transform .15s ease, box-shadow .2s ease;
    font-family:inherit;
    box-shadow:0 4px 12px rgba(53,137,192,.25);
}
.wzls-button-primary:hover{
    background:var(--wzls-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(53,137,192,.32);
}
.wzls-button-primary:active{
    transform:translateY(0);
    box-shadow:0 2px 6px rgba(53,137,192,.25);
}
.wzls-button-primary:focus-visible{
    outline:none;
    box-shadow:0 0 0 4px rgba(53,137,192,.35), 0 4px 12px rgba(53,137,192,.25);
}

.wzls-notice{
    padding:18px 24px;
    border-radius:16px;
    margin:24px auto;
    max-width:780px;
    font-size:15px;
    font-weight:500;
    border:none;
    display:flex;
    align-items:center;
    gap:12px;
    box-shadow:0 4px 12px rgba(20,40,70,.06);
}
.wzls-notice::before{
    content:"";
    display:inline-block;
    width:24px;height:24px;flex-shrink:0;
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
}
.wzls-notice--success{
    background:linear-gradient(135deg,#E8F5E9 0%,#F1F9F2 100%);
    color:#1B5E20;
}
.wzls-notice--success::before{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231B5E20' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/><polyline points='22 4 12 14.01 9 11.01'/></svg>");
}

/* =========================================================
   Floating mini-cart (injected via wp_footer, site-wide)
   ========================================================= */
.wzls-floating-cart{
    position:fixed;
    bottom:24px;
    right:24px;
    z-index:9998;
    background:#FFFFFF;
    border-radius:50%;
    width:60px;height:60px;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 16px rgba(20,40,70,.18), 0 1px 4px rgba(20,40,70,.10);
    transition:transform .2s ease, box-shadow .2s ease;
}
.wzls-floating-cart:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(20,40,70,.22), 0 2px 6px rgba(20,40,70,.12);
}
.wzls-floating-cart .wc-block-mini-cart__button{padding:0;}
.wzls-floating-cart .wc-block-mini-cart__icon{width:28px;height:28px;}

@media (max-width:600px){
    .wzls-floating-cart{
        bottom:16px;right:16px;
        width:52px;height:52px;
    }
    .wzls-floating-cart .wc-block-mini-cart__icon{width:26px;height:26px;}
}

/* =========================================================
   WooCommerce Mini-Cart block override (Werbezug brand)
   Block markup: .wc-block-mini-cart > .wc-block-mini-cart__button
                                       > .wc-block-mini-cart__quantity-badge
                                         > .wc-block-mini-cart__icon (svg)
                                         > .wc-block-mini-cart__badge (count)
   ========================================================= */
.wc-block-mini-cart__button{
    color:#3589C0;
    transition:color .2s ease, transform .15s ease;
    padding:8px;
    background:transparent;
    border:none;
    cursor:pointer;
}
.wc-block-mini-cart__button:hover{
    color:#2A6E9C;
    transform:scale(1.05);
}
.wc-block-mini-cart__icon{
    width:32px;
    height:32px;
    display:block;
}
.wc-block-mini-cart__badge{
    background:#F2C944;
    color:#54595F;
    font-weight:700;
    font-size:11px;
    min-width:18px;
    height:18px;
    line-height:18px;
    padding:0 5px;
    border-radius:999px;
    text-align:center;
    box-shadow:0 1px 2px rgba(20,40,70,.15);
}

@media (max-width:1024px){
    .wc-block-mini-cart__icon{width:28px;height:28px;}
}
@media (max-width:600px){
    .wc-block-mini-cart__icon{width:24px;height:24px;}
    .wc-block-mini-cart__button{padding:6px;}
    .wc-block-mini-cart__badge{font-size:10px;min-width:16px;height:16px;line-height:16px;}
}

/* =========================================================
   WooCommerce Checkout (page Kasse — shortcode [woocommerce_checkout])
   Brand-aligned 2-column layout with sticky order summary.
   Tokens reuse the same palette/spacing as .wzls-form.
   ========================================================= */
body.woocommerce-checkout{
    --wzls-primary:        #3589C0;
    --wzls-primary-dark:   #2A6E9C;
    --wzls-accent:         #F2C944;
    --wzls-text:           #54595F;
    --wzls-text-soft:      #7A7A7A;
    --wzls-bg-soft:        #F4F6F9;
    --wzls-border:         #E1E5EA;
    --wzls-border-strong:  #C7CFD8;
    --wzls-white:          #FFFFFF;
}

body.woocommerce-checkout .woocommerce{
    max-width:1200px;
    margin:32px auto;
    padding:0 16px;
    color:var(--wzls-text);
}

/* Coupon / login info banners */
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-error{
    border:none;
    border-radius:14px;
    padding:16px 20px;
    margin:0 0 20px;
    background:var(--wzls-bg-soft);
    color:var(--wzls-text);
    box-shadow:0 1px 2px rgba(20,40,70,.04);
}
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-message::before{
    color:var(--wzls-primary);
}
body.woocommerce-checkout .woocommerce-error{
    background:linear-gradient(135deg,#FDECEA 0%,#FBF3F1 100%);
    color:#8A1F11;
}
body.woocommerce-checkout .showcoupon{
    color:var(--wzls-primary);
    font-weight:600;
}
body.woocommerce-checkout .checkout_coupon{
    background:var(--wzls-white);
    border:1px solid var(--wzls-border);
    border-radius:16px;
    padding:20px;
    margin:0 0 24px;
    box-shadow:0 1px 2px rgba(20,40,70,.04);
}


/* =========================================================
   Checkout — mise en page 2 colonnes (version consolidée)
   Remplace les deux anciens blocs conflictuels.
   ========================================================= */

/* Clearfix kill : thèmes qui ajoutent un ::after sur form.checkout
   et sur #customer_details, ce qui brise le grid context.        */
body.woocommerce-checkout form.checkout::before,
body.woocommerce-checkout form.checkout::after,
body.woocommerce-checkout #customer_details::before,
body.woocommerce-checkout #customer_details::after{
    content:none !important;
    display:none !important;
}

/* Reset global des floats — woocommerce-layout.css les applique
   en cascade profonde via .col2-set .col-1 / .col-2            */
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
    float:none !important;
    clear:none !important;
}

/* Grille principale : 1 colonne mobile, 2 colonnes ≥ 768px */
body.woocommerce-checkout form.checkout{
    display:grid !important;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:24px;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
}

@media (min-width:768px){
    body.woocommerce-checkout form.checkout{
        grid-template-columns:minmax(0,1fr) 380px !important;
        gap:32px;
        align-items:start;
    }

    /* Colonne gauche — détails client */
    body.woocommerce-checkout #customer_details{
        grid-column:1 !important;
        grid-row:1 / span 99 !important; /* couvre toutes les lignes implicites */
    }

    /* Colonne droite — titre + résumé commande */
    body.woocommerce-checkout #order_review_heading{
        grid-column:2 !important;
        grid-row:1 !important;
        margin-top:0 !important;
    }
    body.woocommerce-checkout #order_review{
        grid-column:2 !important;
        grid-row:2 !important;
        position:sticky !important;
        top:24px !important;
    }

    /* Cas où le thème enveloppe heading+review dans un seul conteneur */
    body.woocommerce-checkout .woocommerce-checkout-review-order{
        grid-column:2 !important;
        grid-row:1 / span 99 !important;
        position:sticky !important;
        top:24px !important;
        align-self:start !important;
    }
}

/* Détails client : pleine largeur dans la colonne gauche */
body.woocommerce-checkout #customer_details{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
    width:100% !important;
    max-width:100% !important;
    float:none !important;
    clear:both !important;
    margin:0 0 24px !important;
    padding:0 !important;
    display:block !important;
}

/* Responsive ≤ 768px : tout en 1 colonne */
@media (max-width:767px){
    body.woocommerce-checkout form.checkout{
        grid-template-columns:1fr !important;
    }
    body.woocommerce-checkout #customer_details,
    body.woocommerce-checkout #order_review_heading,
    body.woocommerce-checkout #order_review,
    body.woocommerce-checkout .woocommerce-checkout-review-order{
        grid-column:1 !important;
        grid-row:auto !important;
        position:static !important;
    }
}

/* Customer details cards (billing / shipping / additional)
   !important needed: WooCommerce's woocommerce-layout.css ships
   .col2-set .col-1{float:left;width:48%} which otherwise wins. */
body.woocommerce-checkout #customer_details{
    display:block !important;
    width:100% !important;
}
body.woocommerce-checkout #customer_details::before,
body.woocommerce-checkout #customer_details::after{
    content:none !important;
    display:none !important;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
    width:100% !important;
    max-width:100% !important;
    float:none !important;
    clear:both !important;
    margin:0 0 24px !important;
    padding:0 !important;
}
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields{
    background:var(--wzls-white);
    border-radius:20px;
    padding:32px;
    box-shadow:
        0 1px 2px rgba(20,40,70,.04),
        0 8px 24px rgba(20,40,70,.06);
    position:relative;
    overflow:hidden;
    margin-bottom:24px;
}
body.woocommerce-checkout .woocommerce-billing-fields::before,
body.woocommerce-checkout .woocommerce-shipping-fields::before,
body.woocommerce-checkout .woocommerce-additional-fields::before{
    content:"";
    position:absolute;
    top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg, var(--wzls-primary), var(--wzls-accent));
}
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3{
    margin:0 0 24px;
    font-size:22px;
    font-weight:800;
    letter-spacing:-0.01em;
    color:var(--wzls-text);
}
body.woocommerce-checkout .woocommerce-shipping-fields h3 .woocommerce-form__label-checkbox{
    font-size:16px;
    font-weight:600;
    color:var(--wzls-text-soft);
}

/* Form rows — 2-column inside each card */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px 20px;
}
body.woocommerce-checkout .form-row{
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
}
body.woocommerce-checkout .form-row-wide,
body.woocommerce-checkout .form-row.notes{
    grid-column:1 / -1;
}
body.woocommerce-checkout .form-row-first{grid-column:1;}
body.woocommerce-checkout .form-row-last{grid-column:2;}
@media (max-width:640px){
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
    body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
        grid-template-columns:1fr;
    }
    body.woocommerce-checkout .form-row-first,
    body.woocommerce-checkout .form-row-last{grid-column:1;}
    body.woocommerce-checkout .woocommerce-billing-fields,
    body.woocommerce-checkout .woocommerce-shipping-fields,
    body.woocommerce-checkout .woocommerce-additional-fields{padding:24px 20px;border-radius:16px;}
    body.woocommerce-checkout .woocommerce-billing-fields h3,
    body.woocommerce-checkout .woocommerce-shipping-fields h3,
    body.woocommerce-checkout .woocommerce-additional-fields h3{font-size:19px;}
}

/* Labels */
body.woocommerce-checkout .form-row > label,
body.woocommerce-checkout .woocommerce-form-row > label{
    font-weight:600;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    margin-bottom:8px;
    color:var(--wzls-text-soft);
}
body.woocommerce-checkout .required,
body.woocommerce-checkout abbr.required{
    color:var(--wzls-primary);
    text-decoration:none;
    border:none;
    margin-left:2px;
}

/* Inputs / selects / textareas */
body.woocommerce-checkout .input-text,
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container--default .select2-selection--single{
    width:100%;
    padding:14px 16px;
    border:1.5px solid transparent;
    border-radius:12px;
    background:#F5F7FA;
    color:var(--wzls-text);
    font-size:16px;
    font-family:inherit;
    line-height:1.4;
    transition:background .2s ease, border-color .2s ease, box-shadow .2s ease;
    box-sizing:border-box;
    -webkit-appearance:none;
    appearance:none;
    height:auto;
    min-height:50px;
}
body.woocommerce-checkout .form-row textarea{
    min-height:120px;
    resize:vertical;
    line-height:1.55;
}
body.woocommerce-checkout .input-text:hover,
body.woocommerce-checkout .form-row input.input-text:hover,
body.woocommerce-checkout .form-row textarea:hover,
body.woocommerce-checkout .form-row select:hover{background:#EEF2F7;}
body.woocommerce-checkout .input-text:focus,
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus{
    outline:none;
    background:var(--wzls-white);
    border-color:var(--wzls-primary);
    box-shadow:0 0 0 4px rgba(53,137,192,.18);
}

/* Select2 dropdown */
body.woocommerce-checkout .select2-container--default .select2-selection--single{
    display:flex;
    align-items:center;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
    padding:0;
    line-height:1.4;
    color:var(--wzls-text);
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{
    height:48px;
    right:8px;
}
body.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single{
    background:var(--wzls-white);
    border-color:var(--wzls-primary);
    box-shadow:0 0 0 4px rgba(53,137,192,.18);
}
.select2-dropdown{
    border:1px solid var(--wzls-border);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 24px rgba(20,40,70,.12);
}
.select2-container--default .select2-results__option--highlighted[aria-selected]{
    background:var(--wzls-primary);
}

/* Validation states */
body.woocommerce-checkout .woocommerce-invalid input.input-text,
body.woocommerce-checkout .woocommerce-invalid select{
    border-color:#D9534F;
    box-shadow:0 0 0 4px rgba(217,83,79,.12);
}
body.woocommerce-checkout .woocommerce-validated input.input-text,
body.woocommerce-checkout .woocommerce-validated select{
    border-color:#5BA85B;
}

/* "Create account" + "Ship to different address" toggles */
body.woocommerce-checkout .woocommerce-account-fields,
body.woocommerce-checkout .create-account{margin-top:8px;}
body.woocommerce-checkout .form-row .woocommerce-form__label-checkbox{
    display:flex;
    align-items:center;
    gap:10px;
    text-transform:none;
    letter-spacing:0;
    font-size:15px;
    font-weight:500;
    color:var(--wzls-text);
    cursor:pointer;
    margin:0;
}
body.woocommerce-checkout .form-row .woocommerce-form__input-checkbox{
    width:18px;height:18px;
    accent-color:var(--wzls-primary);
    margin:0;
}

/* ============================
   Order review (right column)
   ============================ */
body.woocommerce-checkout #order_review_heading{
    margin:0 0 16px;
    font-size:22px;
    font-weight:800;
    letter-spacing:-0.01em;
    color:var(--wzls-text);
}
body.woocommerce-checkout #order_review{
    background:var(--wzls-white);
    border-radius:20px;
    padding:24px;
    box-shadow:
        0 1px 2px rgba(20,40,70,.04),
        0 8px 24px rgba(20,40,70,.06);
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table{
    width:100%;
    border-collapse:collapse;
    margin:0 0 20px;
    font-size:15px;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td{
    padding:12px 0;
    border-bottom:1px solid var(--wzls-border);
    vertical-align:top;
    text-align:left;
    color:var(--wzls-text);
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--wzls-text-soft);
    font-weight:600;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{
    font-weight:600;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total{
    text-align:right;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th{
    font-weight:500;
    color:var(--wzls-text-soft);
    text-transform:none;
    letter-spacing:0;
    font-size:14px;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{
    text-align:right;
    font-weight:600;
    color:var(--wzls-text);
    font-variant-numeric:tabular-nums;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td{
    border-top:2px solid var(--wzls-border-strong);
    border-bottom:none;
    padding-top:16px;
    font-size:18px;
    font-weight:800;
    color:var(--wzls-primary);
}

/* Cart-item meta (variations, custom fields) */
body.woocommerce-checkout .woocommerce-checkout-review-order-table .variation,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation{
    margin:6px 0 0;
    padding:0;
    font-size:13px;
    color:var(--wzls-text-soft);
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dt,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dd{
    display:inline;
    margin:0;
    padding:0;
    font-weight:500;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dt{margin-right:4px;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dd::after{content:"";display:block;}

/* Payment block */
body.woocommerce-checkout #payment.woocommerce-checkout-payment{
    background:var(--wzls-bg-soft);
    border-radius:14px;
    padding:20px;
}
body.woocommerce-checkout #payment ul.payment_methods{
    border:none;
    padding:0;
    margin:0 0 16px;
    list-style:none;
}
body.woocommerce-checkout #payment ul.payment_methods li{
    background:var(--wzls-white);
    border:1.5px solid var(--wzls-border);
    border-radius:12px;
    padding:14px 16px;
    margin:0 0 10px;
    transition:border-color .15s ease, box-shadow .15s ease;
}
body.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
    border-color:var(--wzls-primary);
    box-shadow:0 0 0 3px rgba(53,137,192,.12);
}
body.woocommerce-checkout #payment ul.payment_methods li label{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-weight:600;
    color:var(--wzls-text);
    margin:0;
    cursor:pointer;
}
body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{
    accent-color:var(--wzls-primary);
    width:18px;height:18px;
    margin:0;
}
body.woocommerce-checkout #payment ul.payment_methods li img{
    max-height:24px;
    width:auto;
    margin-left:6px;
}
body.woocommerce-checkout #payment .payment_box{
    background:var(--wzls-bg-soft);
    border-radius:10px;
    padding:14px 16px;
    margin-top:10px;
    color:var(--wzls-text-soft);
    font-size:14px;
    line-height:1.5;
}
body.woocommerce-checkout #payment .payment_box::before{display:none;}

/* Terms checkbox */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
    margin:16px 0;
}
body.woocommerce-checkout .form-row.validate-required .woocommerce-form__label-checkbox{
    align-items:flex-start;
    line-height:1.5;
}

/* Place order button */
body.woocommerce-checkout #place_order{
    width:100%;
    background:var(--wzls-primary);
    color:var(--wzls-white);
    border:none;
    padding:18px 36px;
    font-size:16px;
    font-weight:700;
    letter-spacing:0.02em;
    border-radius:12px;
    cursor:pointer;
    transition:background .2s ease, transform .15s ease, box-shadow .2s ease;
    font-family:inherit;
    box-shadow:0 4px 12px rgba(53,137,192,.25);
    margin-top:8px;
}
body.woocommerce-checkout #place_order:hover{
    background:var(--wzls-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(53,137,192,.32);
}
body.woocommerce-checkout #place_order:active{
    transform:translateY(0);
    box-shadow:0 2px 6px rgba(53,137,192,.25);
}
body.woocommerce-checkout #place_order:focus-visible{
    outline:none;
    box-shadow:0 0 0 4px rgba(53,137,192,.35), 0 4px 12px rgba(53,137,192,.25);
}

/* Loading overlay */
body.woocommerce-checkout .blockUI.blockOverlay{
    border-radius:20px;
}

/* Empty cart fallback */
body.woocommerce-checkout .cart-empty.woocommerce-info{
    text-align:center;
    padding:40px 24px;
    font-size:16px;
}
body.woocommerce-checkout .return-to-shop .button{
    display:inline-block;
    background:var(--wzls-primary);
    color:var(--wzls-white);
    padding:14px 28px;
    border-radius:12px;
    font-weight:700;
    text-decoration:none;
    transition:background .2s ease, transform .15s ease;
    box-shadow:0 4px 12px rgba(53,137,192,.25);
}
body.woocommerce-checkout .return-to-shop .button:hover{
    background:var(--wzls-primary-dark);
    transform:translateY(-2px);
}