/* =========================================================
   HEALTHYVAPE
   BUILD YOUR OWN BUNDLE — V3

   DESKTOP:
   Hero = 2 columns
   Builder = full width below

   MOBILE:
   Bundle sizes = 2 x 2
   Flavors = 3 columns

   BUSINESS LOGIC IS NOT HERE.
========================================================= */


.hv-bundle-product{
    --purple:#6c4cff;
    --purple-dark:#5639e8;
    --lavender:#f5f3ff;

    --navy:#111633;
    --text:#343a50;
    --muted:#777c8f;

    --border:#e8e7ef;
    --soft:#f8f8fc;
    --white:#fff;
}


/* =========================================================
   MASTER
========================================================= */

.single-product .hv-bundle-product{
    display:block !important;
    width:100% !important;
    max-width:none !important;
}


/* =========================================================
   DESKTOP TOP HERO
========================================================= */

.hv-bundle-v3__top{
    display:grid;

    grid-template-columns:
        minmax(0,1.08fr)
        minmax(380px,.92fr);

    gap:54px;

    align-items:center;

    width:100%;
}


/* =========================================================
   MEDIA
========================================================= */

.hv-bundle-product__media{
    width:100%;
    min-width:0;

    padding:22px;

    border:1px solid var(--border);
    border-radius:26px;

    background:
        linear-gradient(
            145deg,
            #fbfaff,
            #f5f3ff
        );
}


.hv-bundle-product__media-head{
    display:flex;

    justify-content:space-between;
    align-items:flex-end;

    gap:15px;

    margin-bottom:16px;
}


.hv-bundle-product__media-head span{
    color:var(--purple);

    font-size:9px;
    font-weight:850;

    letter-spacing:.15em;
}


.hv-bundle-product__media-head strong{
    color:var(--navy);

    font-size:17px;
    font-weight:800;

    letter-spacing:-.025em;
}


.hv-bundle-product__mosaic{
    display:grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:8px;
}


.hv-bundle-product__mosaic-item{
    overflow:hidden;

    aspect-ratio:1 / 1;

    border-radius:13px;

    background:#fff;
}


.hv-bundle-product__mosaic-item img{
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
}


.hv-bundle-product__media-note{
    display:flex;

    align-items:center;

    gap:12px;

    margin-top:16px;
}


.hv-bundle-product__ladder{
    display:flex;

    gap:6px;

    flex:0 0 auto;
}


.hv-bundle-product__ladder span{
    display:flex;

    align-items:center;
    justify-content:center;

    width:28px;
    height:28px;

    border:1px solid #ddd9ff;
    border-radius:50%;

    background:#fff;

    color:var(--purple);

    font-size:9px;
    font-weight:850;
}


.hv-bundle-product__media-note p{
    margin:0;

    color:var(--muted);

    font-size:10px;
    line-height:1.4;
}


/* =========================================================
   HERO SUMMARY
========================================================= */

.hv-bundle-product__summary{
    float:none !important;

    width:100% !important;
    max-width:500px !important;

    margin:0 !important;
    padding:0 !important;
}


.hv-bundle-product__summary
.hv-product-eyebrow{
    display:inline-block;

    margin-bottom:10px;
    padding:6px 9px;

    border-radius:999px;

    background:var(--lavender);
    color:var(--purple);

    font-size:8px;
    font-weight:850;

    letter-spacing:.13em;
}


.hv-bundle-product__summary
.product_title{
    margin:0 0 12px !important;

    color:var(--navy);

    font-size:clamp(
        42px,
        4.1vw,
        68px
    );

    line-height:.94;

    letter-spacing:-.058em;

    font-weight:850;
}


.hv-bundle-product__summary
.price{
    margin:0 0 20px !important;
}


.hv-bundle-product__summary
.hv-bundle-from{
    color:var(--purple);

    font-size:25px;
    font-weight:850;
}


.hv-bundle-product__summary
.woocommerce-product-details__short-description{
    max-width:440px;

    margin:0 0 22px;

    color:var(--muted);

    font-size:14px;
    line-height:1.7;
}


/* promise */

.hv-bundle-product__promise{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:9px;

    margin:0 0 18px;
}


.hv-bundle-product__promise > div{
    padding:14px;

    border:1px solid var(--border);
    border-radius:14px;

    background:#fff;
}


.hv-bundle-product__promise strong{
    display:block;

    color:var(--navy);

    font-size:12px;
    font-weight:800;
}


.hv-bundle-product__promise span{
    display:block;

    margin-top:4px;

    color:#898d9f;

    font-size:10px;
    line-height:1.4;
}


/* mini trust */

.hv-bundle-v3__mini-trust{
    display:flex;
    flex-wrap:wrap;

    gap:7px 13px;
}


.hv-bundle-v3__mini-trust span{
    color:#666b7d;

    font-size:10px;
    line-height:1.4;
}


/* =========================================================
   FULL-WIDTH BUILDER STAGE
========================================================= */

.hv-bundle-v3__builder-stage{
    width:100%;

    margin-top:58px;
    padding:42px;

    border:1px solid #ebe9f4;
    border-radius:28px;

    background:
        linear-gradient(
            145deg,
            #fbfaff 0%,
            #f6f4ff 100%
        );
}


.hv-bundle-v3__builder-inner{
    width:100%;
    max-width:1040px;

    margin:0 auto;
}


/* =========================================================
   RESET WOOCOMMERCE FORM
========================================================= */

.hv-bundle-v3__builder-stage
form.cart{
    display:block !important;

    float:none !important;

    width:100% !important;
    max-width:none !important;

    margin:0 !important;
    padding:0 !important;

    grid-template-columns:none !important;

    background:transparent !important;
}


.hv-bundle-v3__builder-stage
form.cart::before,
.hv-bundle-v3__builder-stage
form.cart::after{
    display:none !important;
}


.hv-bundle-v3__builder-stage
form.cart > *{
    width:100% !important;
    max-width:none !important;
}


/* native quantity not needed */

.hv-bundle-v3__builder-stage
.hv-bundle-builder ~ .quantity{
    display:none !important;
}


/* =========================================================
   BUILDER INTRO
========================================================= */

.hv-bundle-builder{
    width:100% !important;

    margin:0 !important;
}


.hv-bundle-builder__top{
    max-width:700px;

    margin:0 0 34px;
}


.hv-bundle-kicker{
    display:block;

    margin-bottom:9px;

    color:var(--purple);

    font-size:9px;
    font-weight:850;

    letter-spacing:.17em;
}


.hv-bundle-builder__top h2{
    margin:0;

    color:var(--navy);

    font-size:42px;
    line-height:1;

    letter-spacing:-.05em;
}


.hv-bundle-builder__top h2 span{
    color:var(--purple);
}


.hv-bundle-builder__top p{
    max-width:590px;

    margin:13px 0 0;

    color:var(--muted);

    font-size:13px;
    line-height:1.65;
}


/* =========================================================
   STEPS
========================================================= */

.hv-bundle-step{
    width:100%;

    margin-top:34px;
}


.hv-bundle-step__head{
    display:flex;

    align-items:center;

    gap:12px;

    margin-bottom:17px;
}


.hv-bundle-step__head > span{
    display:flex;

    align-items:center;
    justify-content:center;

    width:32px;
    height:32px;

    flex:0 0 32px;

    border-radius:50%;

    background:var(--navy);
    color:#fff;

    font-size:9px;
    font-weight:850;
}


.hv-bundle-step__head strong{
    display:block;

    color:var(--navy);

    font-size:16px;
    font-weight:800;
}


.hv-bundle-step__head small{
    display:block;

    margin-top:3px;

    color:#868b9d;

    font-size:11px;
}


/* =========================================================
   SIZE CARDS — DESKTOP 4 ACROSS
========================================================= */

.hv-bundle-sizes{
    display:grid !important;

    grid-template-columns:
        repeat(4,minmax(0,1fr)) !important;

    gap:12px !important;
}


.hv-bundle-size{
    position:relative;

    min-width:0;
    min-height:150px;

    padding:18px 16px;

    border:1px solid #e1e0e9;
    border-radius:17px;

    background:#fff;

    cursor:pointer;

    transition:.18s ease;
}


.hv-bundle-size:hover,
.hv-bundle-size.is-selected{
    border-color:var(--purple);

    box-shadow:
        0 12px 28px rgba(108,76,255,.12);

    transform:translateY(-1px);
}


.hv-bundle-size input{
    position:absolute;

    opacity:0;
}


.hv-bundle-size__count{
    display:block;

    margin-bottom:10px;

    color:var(--navy);

    font-size:26px;
    line-height:1;

    font-weight:850;
}


.hv-bundle-size__count small{
    display:block;

    margin-top:5px;

    color:#888d9e;

    font-size:8px;

    letter-spacing:.11em;

    text-transform:uppercase;
}


.hv-bundle-size strong{
    display:block;

    color:var(--navy);

    font-size:18px;
}


.hv-bundle-size > small{
    display:block;

    margin-top:4px;

    color:#85899a;

    font-size:10px;
}


.hv-bundle-size em{
    display:inline-block;

    margin-top:10px;
    padding:5px 8px;

    border-radius:999px;

    background:#f2f0ff;
    color:var(--purple);

    font-size:9px;

    font-weight:800;
    font-style:normal;
}


.hv-bundle-size b{
    position:absolute;

    top:-8px;
    right:10px;

    padding:4px 8px;

    border-radius:999px;

    background:var(--purple);
    color:#fff;

    font-size:7px;
}


/* =========================================================
   PROGRESS
========================================================= */

.hv-bundle-progress{
    display:flex;

    justify-content:space-between;
    align-items:center;

    gap:12px;

    margin-bottom:14px;
    padding:12px 15px;

    border:1px solid #ebe8fb;
    border-radius:13px;

    background:#fff;

    color:#696e81;

    font-size:11px;
}


.hv-bundle-progress strong{
    color:var(--navy);
}


/* =========================================================
   FLAVORS — DESKTOP 3 ACROSS
========================================================= */

.hv-bundle-flavors{
    display:grid !important;

    grid-template-columns:
        repeat(3,minmax(0,1fr)) !important;

    gap:13px !important;

    width:100% !important;
}


.hv-bundle-flavor{
    min-width:0;

    overflow:hidden;

    border:1px solid var(--border);
    border-radius:17px;

    background:#fff;

    transition:.18s ease;
}


.hv-bundle-flavor.has-selection{
    border-color:var(--purple);

    box-shadow:
        0 10px 26px rgba(108,76,255,.12);
}


.hv-bundle-flavor__image{
    aspect-ratio:1.35 / 1;

    overflow:hidden;

    background:#f7f7fa;
}


.hv-bundle-flavor__image img{
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
}


.hv-bundle-flavor__body{
    padding:13px;
}


.hv-bundle-flavor__body > strong{
    display:block;

    min-height:36px;

    color:var(--navy);

    font-size:12px;
    line-height:1.35;

    font-weight:750;
}


/* counter */

.hv-bundle-counter{
    display:grid;

    grid-template-columns:
        34px 1fr 34px;

    gap:7px;

    align-items:center;

    margin-top:11px;
}


.hv-bundle-counter button{
    display:flex;

    align-items:center;
    justify-content:center;

    width:34px;
    height:34px;

    min-width:34px;

    padding:0;
    margin:0;

    border:0;
    border-radius:50%;

    background:#f0eff7;
    color:var(--navy);

    box-shadow:none;

    font-size:18px;
    line-height:1;
}


.hv-bundle-counter button:hover{
    background:var(--purple);
    color:#fff;
}


.hv-bundle-qty{
    text-align:center;

    color:var(--navy);

    font-size:14px;
    font-weight:850;
}


/* =========================================================
   TOTAL SUMMARY
========================================================= */

.hv-bundle-summary{
    display:grid !important;

    grid-template-columns:
        repeat(2,minmax(0,1fr)) !important;

    gap:12px !important;

    max-width:560px;

    margin:28px 0 18px;
}


.hv-bundle-summary > div{
    padding:16px 18px;

    border-radius:15px;

    background:var(--navy);
}


.hv-bundle-summary span{
    display:block;

    margin-bottom:5px;

    color:rgba(255,255,255,.58);

    font-size:8px;

    letter-spacing:.12em;

    text-transform:uppercase;
}


.hv-bundle-summary strong{
    color:#fff;

    font-size:20px;
}


/* =========================================================
   ADD TO CART
========================================================= */

.hv-bundle-v3__builder-stage
.single_add_to_cart_button{
    display:flex !important;

    align-items:center;
    justify-content:center;

    float:none !important;

    width:100% !important;
    max-width:560px !important;

    min-height:58px;

    margin:0 !important;
    padding:17px 22px !important;

    border:0 !important;
    border-radius:14px !important;

    background:
        linear-gradient(
            135deg,
            var(--purple),
            #795cff
        ) !important;

    color:#fff !important;

    box-shadow:
        0 13px 30px rgba(108,76,255,.25);

    font-size:16px !important;
    font-weight:800 !important;
}


.hv-bundle-v3__builder-stage
.single_add_to_cart_button:disabled,
.hv-bundle-v3__builder-stage
.single_add_to_cart_button.disabled{
    opacity:.42 !important;
}


/* =========================================================
   SAFETY
========================================================= */

.hv-bundle-v3__builder-stage
.hv-product-safety-note{
    display:flex;

    align-items:flex-start;

    gap:8px;

    max-width:560px;

    margin-top:14px;
    padding:12px 13px;

    border:1px solid #eceaf4;
    border-radius:12px;

    background:#fff;
}


.hv-product-safety-dot{
    width:6px;
    height:6px;

    flex:0 0 6px;

    margin-top:5px;

    border-radius:50%;

    background:var(--purple);
}


.hv-product-safety-note p{
    margin:0;

    color:#818597;

    font-size:10px;
    line-height:1.5;
}


/* =========================================================
   DESCRIPTION / RELATED
========================================================= */

.hv-bundle-product
> .woocommerce-tabs,
.hv-bundle-product
> .related,
.hv-bundle-product
> .up-sells{
    width:100%;

    margin-top:56px;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:921px){

    .hv-bundle-v3__top{
        grid-template-columns:1fr;

        gap:26px;
    }


    .hv-bundle-product__summary{
        max-width:none !important;
    }


    .hv-bundle-product__summary
    .product_title{
        max-width:680px;

        font-size:48px;
    }


    .hv-bundle-v3__builder-stage{
        margin-top:34px;
        padding:28px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

    /* top */

    .hv-bundle-v3__top{
        display:block;
    }


    .hv-bundle-product__media{
        margin-bottom:20px;

        padding:11px;

        border-radius:17px;
    }


    .hv-bundle-product__media-head{
        margin-bottom:9px;
    }


    .hv-bundle-product__media-head span{
        font-size:7px;
    }


    .hv-bundle-product__media-head strong{
        font-size:12px;
    }


    .hv-bundle-product__mosaic{
        gap:4px;
    }


    .hv-bundle-product__mosaic-item{
        border-radius:8px;
    }


    .hv-bundle-product__media-note{
        gap:8px;

        margin-top:9px;
    }


    .hv-bundle-product__ladder{
        gap:4px;
    }


    .hv-bundle-product__ladder span{
        width:23px;
        height:23px;

        font-size:7px;
    }


    .hv-bundle-product__media-note p{
        font-size:8px;
    }


    /* title */

    .hv-bundle-product__summary{
        max-width:none !important;
    }


    .hv-bundle-product__summary
    .hv-product-eyebrow{
        margin-bottom:7px;
    }


    .hv-bundle-product__summary
    .product_title{
        margin-bottom:8px !important;

        font-size:29px;
        line-height:1;

        letter-spacing:-.047em;
    }


    .hv-bundle-product__summary
    .hv-bundle-from{
        font-size:21px;
    }


    .hv-bundle-product__summary
    .price{
        margin-bottom:11px !important;
    }


    .hv-bundle-product__summary
    .woocommerce-product-details__short-description{
        margin-bottom:14px;

        font-size:11px;
        line-height:1.55;
    }


    .hv-bundle-product__promise{
        gap:7px;

        margin-bottom:13px;
    }


    .hv-bundle-product__promise > div{
        padding:10px;
    }


    .hv-bundle-product__promise strong{
        font-size:10px;
    }


    .hv-bundle-product__promise span{
        font-size:8px;
    }


    .hv-bundle-v3__mini-trust{
        gap:5px 10px;
    }


    .hv-bundle-v3__mini-trust span{
        font-size:8px;
    }


    /* builder shell */

    .hv-bundle-v3__builder-stage{
        width:100%;

        margin-top:24px;
        padding:16px 12px 18px;

        border-radius:18px;
    }


    .hv-bundle-v3__builder-inner{
        width:100%;
        max-width:none;
    }


    .hv-bundle-v3__builder-stage
    form.cart{
        width:100% !important;
        max-width:none !important;
    }


    /* builder intro */

    .hv-bundle-builder__top{
        margin-bottom:22px;
    }


    .hv-bundle-builder__top h2{
        font-size:27px;
    }


    .hv-bundle-builder__top p{
        margin-top:8px;

        font-size:10px;
        line-height:1.5;
    }


    /* step */

    .hv-bundle-step{
        margin-top:24px;
    }


    .hv-bundle-step__head{
        gap:9px;

        margin-bottom:12px;
    }


    .hv-bundle-step__head > span{
        width:27px;
        height:27px;

        flex-basis:27px;

        font-size:7px;
    }


    .hv-bundle-step__head strong{
        font-size:13px;
    }


    .hv-bundle-step__head small{
        font-size:9px;
    }


    /* 2 x 2 size cards */

    .hv-bundle-sizes{
        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;

        gap:7px !important;
    }


    .hv-bundle-size{
        min-height:116px;

        padding:12px 10px;

        border-radius:13px;
    }


    .hv-bundle-size__count{
        margin-bottom:7px;

        font-size:20px;
    }


    .hv-bundle-size strong{
        font-size:14px;
    }


    .hv-bundle-size > small{
        font-size:8px;
    }


    .hv-bundle-size em{
        margin-top:6px;

        font-size:7px;
    }


    /* progress */

    .hv-bundle-progress{
        margin-bottom:8px;

        padding:9px 10px;

        font-size:8px;
    }


    /* =========================================
       MOBILE FLAVORS — 3 PER ROW
    ========================================= */

    .hv-bundle-flavors{
        grid-template-columns:
            repeat(3,minmax(0,1fr)) !important;

        gap:6px !important;

        width:100% !important;
    }


    .hv-bundle-flavor{
        border-radius:11px;
    }


    .hv-bundle-flavor__image{
        aspect-ratio:1 / .92;
    }


    .hv-bundle-flavor__body{
        padding:6px;
    }


    .hv-bundle-flavor__body > strong{
        min-height:27px;

        font-size:8px;
        line-height:1.3;
    }


    .hv-bundle-counter{
        grid-template-columns:
            24px minmax(14px,1fr) 24px;

        gap:2px;

        margin-top:6px;
    }


    .hv-bundle-counter button{
        width:24px;
        height:24px;

        min-width:24px;

        font-size:14px;
    }


    .hv-bundle-qty{
        font-size:9px;
    }


    /* totals */

    .hv-bundle-summary{
        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;

        gap:6px !important;

        width:100%;
        max-width:none;

        margin:16px 0 10px;
    }


    .hv-bundle-summary > div{
        padding:11px;

        border-radius:11px;
    }


    .hv-bundle-summary span{
        font-size:6px;
    }


    .hv-bundle-summary strong{
        font-size:15px;
    }


    /* add cart */

    .hv-bundle-v3__builder-stage
    .single_add_to_cart_button{
        width:100% !important;
        max-width:none !important;

        min-height:52px;

        border-radius:12px !important;

        font-size:14px !important;
    }


    .hv-bundle-v3__builder-stage
    .hv-product-safety-note{
        width:100%;
        max-width:none;

        padding:9px 10px;
    }


    .hv-product-safety-note p{
        font-size:8px;
    }


    .hv-bundle-product
    > .woocommerce-tabs,
    .hv-bundle-product
    > .related,
    .hv-bundle-product
    > .up-sells{
        margin-top:34px;
    }

}


/* =========================================================
   VERY SMALL MOBILE
   Still keep 3 flavors per row.
========================================================= */

@media(max-width:390px){

    .hv-bundle-product__summary
    .product_title{
        font-size:27px;
    }


    .hv-bundle-v3__builder-stage{
        padding-left:10px;
        padding-right:10px;
    }


    .hv-bundle-flavors{
        gap:5px !important;
    }


    .hv-bundle-flavor__body{
        padding:5px;
    }


    .hv-bundle-flavor__body > strong{
        font-size:7.5px;
    }


    .hv-bundle-counter{
        grid-template-columns:
            22px minmax(12px,1fr) 22px;
    }


    .hv-bundle-counter button{
        width:22px;
        height:22px;

        min-width:22px;

        font-size:13px;
    }

}


/* =========================================================
   BUNDLE V3 END
========================================================= */

/* =========================================================
   HEALTHYVAPE BUNDLE V3.1
   DESKTOP HERO / PURCHASE INTRO FIX
========================================================= */

@media (min-width:922px){

    /*
     * Better desktop balance.
     * Left media remains dominant,
     * right purchase intro uses the full available column.
     */
    .hv-bundle-v3__top{
        grid-template-columns:
            minmax(0,1.02fr)
            minmax(0,.98fr);

        gap:54px;

        align-items:start;
    }


    /*
     * Critical fix:
     * V3 limited the summary to 500px,
     * leaving a large unused blank area.
     */
    .hv-bundle-product__summary{
        width:100% !important;
        max-width:none !important;

        align-self:start;

        padding:30px 34px 32px !important;

        border:1px solid #ebe9f3;
        border-radius:24px;

        background:
            linear-gradient(
                145deg,
                #ffffff 0%,
                #faf9ff 100%
            );

        box-shadow:
            0 14px 40px rgba(17,22,51,.055);
    }


    /*
     * Make title large but controlled.
     * The current V3 title is too oversized
     * and breaks into too many short lines.
     */
    .hv-bundle-product__summary
    .product_title{
        width:100%;
        max-width:680px;

        margin:
            0 0 14px !important;

        font-size:
            clamp(
                44px,
                3.25vw,
                58px
            );

        line-height:.98;

        letter-spacing:-.052em;

        text-wrap:balance;
    }


    /*
     * Price should sit close to title,
     * not look detached.
     */
    .hv-bundle-product__summary
    .price{
        margin:
            0 0 19px !important;
    }


    .hv-bundle-product__summary
    .hv-bundle-from{
        font-size:24px;
        line-height:1.15;
    }


    /*
     * Use more of the right column.
     */
    .hv-bundle-product__summary
    .woocommerce-product-details__short-description{
        max-width:610px;

        margin:
            0 0 22px;

        font-size:14px;
        line-height:1.65;
    }


    /*
     * Promise cards fill the available width.
     */
    .hv-bundle-product__promise{
        grid-template-columns:
            repeat(2,minmax(0,1fr));

        width:100%;

        max-width:610px;

        gap:10px;

        margin:
            0 0 18px;
    }


    .hv-bundle-product__promise > div{
        min-height:82px;

        padding:16px;

        display:flex;
        flex-direction:column;
        justify-content:center;
    }


    .hv-bundle-product__promise strong{
        font-size:13px;
    }


    .hv-bundle-product__promise span{
        font-size:10px;
        line-height:1.45;
    }


    /*
     * Compact trust line.
     */
    .hv-bundle-v3__mini-trust{
        max-width:650px;

        gap:8px 15px;

        padding-top:2px;
    }


    .hv-bundle-v3__mini-trust span{
        position:relative;

        padding-left:0;

        font-size:10px;
        line-height:1.45;
    }


    /*
     * Match the visual height relationship
     * between left image card and right intro card.
     */
    .hv-bundle-product__media{
        align-self:start;
    }

}


/* =========================================================
   LARGE DESKTOP
========================================================= */

@media (min-width:1280px){

    .hv-bundle-v3__top{
        grid-template-columns:
            minmax(0,1.04fr)
            minmax(0,.96fr);

        gap:64px;
    }


    .hv-bundle-product__summary{
        padding:
            36px 40px 38px !important;
    }


    .hv-bundle-product__summary
    .product_title{
        max-width:720px;

        font-size:
            clamp(
                50px,
                3.15vw,
                60px
            );
    }


    .hv-bundle-product__summary
    .woocommerce-product-details__short-description{
        max-width:620px;
    }


    .hv-bundle-product__promise{
        max-width:620px;
    }

}

/* =========================================================
   HEALTHYVAPE BUNDLE V3.1 DESKTOP HERO END
========================================================= */

/* =========================================================
   HEALTHYVAPE BUNDLE V3.2
   DETACH HERO INTRO FROM ASTRA/WOO SUMMARY LAYOUT
========================================================= */

@media (min-width:922px){

    /*
     * Top hero uses the whole available product width.
     */
    .hv-bundle-v3__top{
        display:grid !important;

        grid-template-columns:
            minmax(0,1.05fr)
            minmax(0,.95fr) !important;

        width:100% !important;
        max-width:none !important;

        gap:48px !important;

        align-items:stretch !important;
    }


    /*
     * This is no longer WooCommerce .summary.
     * It owns the complete right column.
     */
    .hv-bundle-v3__intro{
        display:flex !important;

        flex-direction:column;

        justify-content:center;

        width:100% !important;
        max-width:none !important;
        min-width:0 !important;

        float:none !important;
        clear:none !important;

        margin:0 !important;

        padding:34px 38px !important;

        border:1px solid #ebe9f3;
        border-radius:24px;

        background:
            linear-gradient(
                145deg,
                #ffffff 0%,
                #faf9ff 100%
            );

        box-shadow:
            0 14px 40px
            rgba(17,22,51,.055);
    }


    /*
     * Balanced H1:
     * should normally use 3–4 lines,
     * not the current narrow 7–8 lines.
     */
    .hv-bundle-v3__intro
    .product_title{
        width:100% !important;
        max-width:620px !important;

        margin:
            0 0 14px !important;

        font-size:
            clamp(
                42px,
                3vw,
                56px
            ) !important;

        line-height:.98 !important;

        letter-spacing:-.052em !important;

        text-wrap:balance;
    }


    .hv-bundle-v3__intro
    .price{
        width:100%;

        margin:
            0 0 20px !important;
    }


    .hv-bundle-v3__intro
    .hv-bundle-from{
        font-size:24px !important;
    }


    .hv-bundle-v3__intro
    .woocommerce-product-details__short-description{
        width:100%;
        max-width:590px !important;

        margin:
            0 0 22px !important;

        font-size:14px;
        line-height:1.65;
    }


    .hv-bundle-v3__intro
    .hv-bundle-product__promise{
        width:100%;
        max-width:590px !important;

        grid-template-columns:
            repeat(2,minmax(0,1fr));

        gap:10px;
    }


    .hv-bundle-v3__intro
    .hv-bundle-v3__mini-trust{
        width:100%;
        max-width:620px;
    }


    /*
     * Left mosaic fills its grid column
     * without Woo/Astra image-column behavior.
     */
    .hv-bundle-v3__top
    .hv-bundle-product__media{
        width:100% !important;
        max-width:none !important;

        margin:0 !important;

        align-self:stretch;
    }

}


/* Large desktop */
@media (min-width:1280px){

    .hv-bundle-v3__top{
        grid-template-columns:
            minmax(0,1fr)
            minmax(0,1fr) !important;

        gap:56px !important;
    }


    .hv-bundle-v3__intro{
        padding:
            40px 44px !important;
    }


    .hv-bundle-v3__intro
    .product_title{
        max-width:680px !important;

        font-size:
            clamp(
                48px,
                3.1vw,
                60px
            ) !important;
    }

}


/* Mobile/tablet remain normal */
@media (max-width:921px){

    .hv-bundle-v3__intro{
        width:100% !important;
        max-width:none !important;

        margin:0 !important;
        padding:0 !important;

        border:0;
        border-radius:0;

        background:transparent;

        box-shadow:none;
    }

}

/* =========================================================
   HEALTHYVAPE BUNDLE V3.2 HERO ROOT FIX END
========================================================= */

/* =========================================================
   HEALTHYVAPE BUNDLE V3.3
   DESKTOP FINAL POLISH
========================================================= */

@media (min-width:922px){

    /* -----------------------------------------
       BUILDER: slightly tighter vertical rhythm
    ----------------------------------------- */

    .hv-bundle-v3__builder-stage{
        padding:
            38px 42px 40px;
    }


    .hv-bundle-builder__top{
        margin-bottom:28px;
    }


    .hv-bundle-step{
        margin-top:29px;
    }


    /* -----------------------------------------
       FLAVOR CARDS
       Reduce excessive image height on desktop
    ----------------------------------------- */

    .hv-bundle-flavor__image{
        aspect-ratio:
            1.55 / 1;
    }


    .hv-bundle-flavor__body{
        padding:
            11px 13px 12px;
    }


    .hv-bundle-flavor__body > strong{
        min-height:32px;

        font-size:11.5px;
    }


    .hv-bundle-counter{
        margin-top:8px;
    }


    /*
     * Keep product imagery visually strong,
     * but reduce the overall page length.
     */
    .hv-bundle-flavors{
        gap:11px !important;
    }


    /* -----------------------------------------
       PURCHASE FOOTER
       Total + Per device + CTA
       form one unified checkout row.
    ----------------------------------------- */

    .hv-bundle-v3__builder-stage
    form.cart{
        position:relative;
    }


    .hv-bundle-summary{
        display:grid !important;

        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;

        gap:10px !important;

        width:
            calc(46% - 6px) !important;

        max-width:none !important;

        margin:
            24px 0 0 !important;
    }


    .hv-bundle-summary > div{
        min-height:66px;

        padding:
            14px 16px;

        display:flex;
        flex-direction:column;
        justify-content:center;
    }


    .hv-bundle-summary strong{
        font-size:19px;
    }


    /*
     * Place native Woo button beside totals.
     */
    .hv-bundle-v3__builder-stage
    .single_add_to_cart_button{
        position:absolute;

        right:0;
        bottom:0;

        width:
            calc(54% - 6px) !important;

        max-width:none !important;

        min-height:66px;

        margin:0 !important;

        border-radius:15px !important;

        font-size:17px !important;
    }


    /*
     * Safety note remains below purchase row.
     * Add enough top offset because CTA is absolute.
     */
    .hv-bundle-v3__builder-stage
    .hv-product-safety-note{
        max-width:none;

        width:100%;

        margin-top:14px;
    }


    /* -----------------------------------------
       DESCRIPTION / PAGE END
       Remove excessive empty vertical space
    ----------------------------------------- */

    .hv-bundle-product
    > .woocommerce-tabs{
        margin-top:46px !important;
        margin-bottom:34px !important;
    }


    .hv-bundle-product
    > .woocommerce-tabs
    .woocommerce-Tabs-panel{
        margin-bottom:0 !important;
        padding-bottom:0 !important;
    }


    .hv-bundle-product
    > .related,
    .hv-bundle-product
    > .up-sells{
        margin-top:38px !important;
        margin-bottom:30px !important;
    }


    .single-product
    .site-main{
        padding-bottom:0 !important;
    }

}


/* =========================================================
   MOBILE SAFETY RESET
   Preserve current 3-flavor-per-row mobile design.
========================================================= */

@media (max-width:921px){

    .hv-bundle-summary{
        width:100% !important;
        max-width:none !important;
    }


    .hv-bundle-v3__builder-stage
    .single_add_to_cart_button{
        position:static !important;

        width:100% !important;
        max-width:none !important;

        min-height:52px;
    }


    .hv-bundle-v3__builder-stage
    .hv-product-safety-note{
        width:100%;
    }

}


/* =========================================================
   HEALTHYVAPE BUNDLE V3.3 END
========================================================= */

/* =========================================================
   HEALTHYVAPE BUNDLE V3.4
   DESCRIPTION / FOOTER GAP FIX

   Ordinary product CSS contains desktop min-height rules
   for WooCommerce tabs. Bundle description is much shorter,
   so reset those rules only inside the Bundle product.
========================================================= */


/* =========================================================
   DESKTOP
========================================================= */

@media (min-width:922px){

    /*
     * Critical:
     * remove ordinary product tab min-height.
     */
    .single-product
    .hv-bundle-product
    > .woocommerce-tabs{
        min-height:0 !important;
        height:auto !important;

        margin-top:44px !important;
        margin-bottom:28px !important;

        padding-bottom:0 !important;
    }


    /*
     * Tab panel must grow only with actual description text.
     */
    .single-product
    .hv-bundle-product
    > .woocommerce-tabs
    .woocommerce-Tabs-panel{
        min-height:0 !important;
        height:auto !important;

        margin-top:0 !important;
        margin-bottom:0 !important;

        padding-bottom:0 !important;
    }


    .single-product
    .hv-bundle-product
    > .woocommerce-tabs
    .woocommerce-Tabs-panel--description{
        min-height:0 !important;
        height:auto !important;
    }


    /*
     * Remove generic product-page bottom spacing
     * from the Bundle article itself.
     */
    .single-product
    .hv-bundle-product.ast-article-single{
        min-height:0 !important;

        margin-bottom:0 !important;
        padding-bottom:0 !important;
    }


    .single-product
    .ast-woocommerce-container:has(.hv-bundle-product){
        min-height:0 !important;

        padding-bottom:0 !important;
    }


    .single-product
    #primary:has(.hv-bundle-product){
        min-height:0 !important;

        padding-bottom:0 !important;
        margin-bottom:0 !important;
    }


    .single-product
    .site-main:has(.hv-bundle-product){
        min-height:0 !important;

        padding-bottom:0 !important;
        margin-bottom:0 !important;
    }

}


/* =========================================================
   MOBILE / TABLET
   Keep description-footer spacing compact as well.
========================================================= */

@media (max-width:921px){

    .single-product
    .hv-bundle-product
    > .woocommerce-tabs{
        min-height:0 !important;
        height:auto !important;

        margin-top:32px !important;
        margin-bottom:24px !important;

        padding-bottom:0 !important;
    }


    .single-product
    .hv-bundle-product
    > .woocommerce-tabs
    .woocommerce-Tabs-panel{
        min-height:0 !important;
        height:auto !important;

        margin-bottom:0 !important;
        padding-bottom:0 !important;
    }

}


/* =========================================================
   HEALTHYVAPE BUNDLE V3.4 END
========================================================= */


/* ===== HEALTHYVAPE BUNDLE FUNCTION UI V4 START ===== */

.hv-bundle-live-status{
    width:100%;
    margin:9px 0 12px;
    padding:11px 13px;

    border:1px solid #e6e3f7;
    border-radius:11px;

    background:#ffffff;

    color:#5f6477;

    font-size:11px;
    line-height:1.4;
    font-weight:700;

    transition:
        border-color .18s ease,
        background .18s ease,
        box-shadow .18s ease;
}

.hv-bundle-live-status[data-state="ready"]{
    border-color:#cfc8ff;
    background:#f6f4ff;
    color:#5139d9;
}

.hv-bundle-live-status[data-state="over"]{
    border-color:#efced2;
    background:#fff7f7;
    color:#a2414a;
}

.hv-bundle-live-status.is-attention{
    box-shadow:
        0 0 0 3px rgba(108,76,255,.14);
}


/* Controls that cannot currently be used */

.hv-bundle-counter button:disabled{
    opacity:.34;
    cursor:not-allowed;
}


/* Real native Woo button states */

.hv-bundle-v3__builder-stage
.single_add_to_cart_button:disabled,
.hv-bundle-v3__builder-stage
.single_add_to_cart_button.disabled{
    cursor:not-allowed !important;
    opacity:.46 !important;
}


/* Ready native Woo button */

.hv-bundle-v3__builder-stage
.single_add_to_cart_button:not(:disabled):not(.disabled){
    opacity:1 !important;
    cursor:pointer !important;
}


/* Mobile status remains compact */

@media(max-width:767px){

    .hv-bundle-live-status{
        margin:
            7px 0 9px;

        padding:
            8px 9px;

        font-size:9px;
    }

}

/* ===== HEALTHYVAPE BUNDLE FUNCTION UI V4 END ===== */

