/* =========================================================
   BIVACO QUOTE BUILDER - LIST UI V5
   Font: Bai Jamjuree; base text: 15px
   ========================================================= */
.bivaco-quote-builder{--qb-blue:#087bea;--qb-cyan:#13b9e8;--qb-blue-soft:#edf7ff;--qb-navy:#071f45;--qb-ink:#172b45;--qb-muted:#647991;--qb-line:#dce8f3;--qb-line-strong:#c8d8e7;--qb-soft:#f6f9fc;--qb-success:#08784e;font-family:"Bai Jamjuree",sans-serif!important;font-size:15px!important;color:var(--qb-ink);background:#fff}
.bivaco-quote-builder *,.bivaco-quote-builder *::before,.bivaco-quote-builder *::after{box-sizing:border-box}
.bivaco-quote-builder input,.bivaco-quote-builder textarea,.bivaco-quote-builder select,.bivaco-quote-builder button{font-family:"Bai Jamjuree",sans-serif!important;font-size:15px!important}
.bivaco-quote-builder .container{width:min(1180px,calc(100% - 40px));max-width:1180px;margin:0 auto}
.qb-public-hero{position:relative;overflow:hidden;padding:48px 0 38px;background:radial-gradient(circle at 82% 20%,rgba(27,174,235,.16),transparent 26%),linear-gradient(120deg,#f3f9ff 0%,#fff 56%,#eaf7ff 100%);border-bottom:1px solid var(--qb-line)}
.qb-public-hero::after{content:"";position:absolute;right:6%;top:-90px;width:360px;height:230px;border-radius:50%;background:rgba(8,123,234,.055);transform:rotate(-10deg)}
.qb-public-eyebrow{display:block;margin:0 0 8px;color:var(--qb-blue);font-size:15px!important;line-height:1.4;font-weight:700;letter-spacing:.035em;text-transform:uppercase}
.qb-public-hero h1{margin:0 0 8px!important;color:var(--qb-navy);font:700 36px/1.2 "Bai Jamjuree",sans-serif!important}
.qb-public-hero p{max-width:850px;margin:0!important;color:var(--qb-muted);font-size:15px!important;line-height:1.65!important}
.qb-public-body{padding:32px 0 70px;background:linear-gradient(180deg,#fbfdff 0,#fff 180px)}
.qb-public-layout{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:22px;align-items:start}.qb-public-catalog{min-width:0}
.qb-public-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;padding:18px 20px;border:1px solid var(--qb-line);border-radius:16px 16px 0 0;background:#fff;box-shadow:0 8px 28px rgba(19,69,112,.055)}
.qb-public-toolbar__info{display:grid;gap:3px}.qb-public-toolbar__info strong{color:var(--qb-navy);font-size:18px!important;line-height:1.35;font-weight:700}.qb-public-toolbar__info span{color:var(--qb-muted);font-size:15px!important}
.qb-public-toolbar__actions{display:flex;align-items:center;gap:10px}.qb-public-search{width:280px;margin:0}.qb-public-search input{width:100%;height:44px;padding:0 14px!important;border:1px solid var(--qb-line-strong)!important;border-radius:9px!important;outline:0!important;background:#fff!important;box-shadow:none!important;color:var(--qb-ink)!important}.qb-public-search input:focus{border-color:#78baf7!important;box-shadow:0 0 0 3px rgba(8,123,234,.08)!important}
.qb-module-total{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 13px;border-radius:9px;background:var(--qb-blue-soft);color:var(--qb-blue);font-weight:700;white-space:nowrap}
.qb-module-group{margin:0;border:1px solid var(--qb-line);border-top:0;background:#fff}.qb-module-group:last-child{border-radius:0 0 16px 16px;overflow:hidden}
.qb-module-group__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px 10px}.qb-module-group__head h2{margin:0!important;color:var(--qb-navy);font:700 17px/1.35 "Bai Jamjuree",sans-serif!important}.qb-module-group__head p{margin:3px 0 0!important;color:var(--qb-muted);font-size:15px!important;line-height:1.5!important}.qb-module-group__count{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:8px;background:var(--qb-blue-soft);color:var(--qb-blue);font-weight:700}
.qb-module-table{padding:0 16px 12px}.qb-module-table__head{display:grid;grid-template-columns:minmax(210px,1.15fr) minmax(250px,1.5fr) 120px 130px 28px;gap:14px;align-items:center;padding:10px 14px;border-radius:9px 9px 0 0;background:#f4f8fc;color:#516b84;font-weight:700}
.qb-module-grid{display:block}
.qb-module-card{position:relative;display:grid;grid-template-columns:minmax(210px,1.15fr) minmax(250px,1.5fr) 120px 130px 28px;grid-template-areas:"module desc billing price features";gap:14px;align-items:center;min-width:0;min-height:72px;padding:11px 14px;border:0;border-bottom:1px solid #e7eef5;border-radius:0;background:#fff;box-shadow:none;transition:background .18s ease,box-shadow .18s ease}
.qb-module-card:last-child{border-bottom:0}.qb-module-card:hover{transform:none;background:#fbfdff;box-shadow:inset 3px 0 0 rgba(8,123,234,.2)}.qb-module-card.is-selected{background:linear-gradient(90deg,#f5faff 0%,#fff 42%);box-shadow:inset 3px 0 0 var(--qb-blue)}.qb-module-card.is-hidden{display:none!important}
.qb-module-card__top{grid-area:module;display:flex;align-items:center;gap:10px;min-height:0;margin:0;padding-left:38px;position:relative}.qb-module-check{position:absolute;left:0;top:50%;transform:translateY(-50%);display:inline-flex;margin:0;cursor:pointer}.qb-module-check input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.qb-module-check>span{position:relative;display:block;width:22px;height:22px;border:2px solid #b9cadb;border-radius:6px;background:#fff}.qb-module-check input:checked+span{border-color:var(--qb-blue);background:var(--qb-blue)}.qb-module-check input:checked+span::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.qb-module-card__badges{display0px:flex;align-items:center;gap:5px;flex-wrap:wrap}.qb-module-card__badges em{display:inline-flex;padding:4px 7px;border-radius:20px;background:#e9f5ff;color:#0871cf;font-size:12px!important;line-height:1.25;font-style:normal;font-weight:700}.qb-module-card__badges em.is-featured{background:#fff5d9;color:#8a6300}
.qb-module-card__content{grid-area:desc;min-width:0}.qb-module-card__title{position:absolute;left:52px;top:50%;transform:translateY(-50%);width:180px;pointer-events:none}.qb-module-card__title h3{margin:0!important;color:var(--qb-navy);font:700 15px/1.35 "Bai Jamjuree",sans-serif!important}.qb-module-card__title small{display:block;margin-top:2px;color:#8494a4;font-size:12px}.qb-module-card__desc{margin:0!important;color:#5f7489;font-size:15px!important;line-height:1.45!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.qb-module-card__price{grid-area:price;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;padding:0;border:0}.qb-module-card__price strong{color:var(--qb-navy);font-size:15px!important;font-weight:700;white-space:nowrap}.qb-module-card__price del{color:#99a7b5;font-size:12px}.qb-module-card__price>span{position:absolute;right:172px;padding:5px 9px;border-radius:7px;background:#edf5fb;color:#49667f;font-size:13px!important;white-space:nowrap}
.qb-module-features{grid-area:features;margin:0;padding:0;border:0}.qb-module-features summary{display:flex;align-items:center;justify-content:center;margin:0;color:var(--qb-blue);cursor:pointer;list-style:none}.qb-module-features summary::-webkit-details-marker{display:none}.qb-module-features summary>span{display:none}.qb-module-features__toggle{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:#f0f7fd;color:var(--qb-blue);font-size:19px;line-height:1;font-weight:500;transition:transform .2s}.qb-module-features[open]{grid-column:1/-1;grid-area:auto;margin-top:4px;padding:12px 14px;border-radius:10px;background:#f7fbff}.qb-module-features[open] .qb-module-features__toggle{transform:rotate(45deg)}.qb-module-features ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:8px 0 0;padding:0;list-style:none}.qb-module-features li{display:flex;align-items:flex-start;gap:8px;color:#43576c;font-size:14px;line-height:1.45}.qb-feature-dot{flex:0 0 5px;width:5px;height:5px;margin-top:7px;border-radius:50%;background:var(--qb-blue)}.qb-module-features li small{display:block;color:#7f8e9e;font-size:13px}
.qb-public-summary__sticky{position:sticky;top:92px;padding:0 20px 18px;border:1px solid #cfe0ee;border-radius:16px;background:#fff;box-shadow:0 16px 42px rgba(16,65,110,.11);overflow:hidden}.qb-public-summary__head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 -20px;padding:18px 20px;border:0;background:linear-gradient(110deg,#087bea,#16b8e5);color:#fff}.qb-public-summary__head>div{display:grid;gap:2px}.qb-public-summary__head span{color:#fff;font-size:18px!important;font-weight:700}.qb-public-summary__head small{color:rgba(255,255,255,.9);font-size:15px!important}.qb-public-summary__head>strong{display:flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:9px;background:#fff;color:var(--qb-navy);font-size:18px;font-weight:700}
.qb-selected-list{display:grid;gap:7px;max-height:185px;overflow-y:auto;padding:14px 0}.qb-selected-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:8px;background:var(--qb-soft)}.qb-selected-item span,.qb-selected-item strong{font-size:15px!important;font-weight:600}.qb-selected-item strong{white-space:nowrap}.qb-selected-empty{padding:12px 3px;color:#8997a5;font-size:15px!important;text-align:center}
.qb-total-list{display:grid;gap:11px;padding:14px 0;border-top:1px solid var(--qb-line);border-bottom:1px solid var(--qb-line)}.qb-total-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.qb-total-list>div.is-zero{display:none}.qb-total-list span{color:#607287;font-size:15px!important}.qb-total-list strong{color:var(--qb-navy);font-size:16px!important;font-weight:700;white-space:nowrap}.qb-total-divider{height:1px!important;background:#e4edf5;margin:3px 0}.qb-total-grand{margin-top:2px!important;padding:12px 11px!important;border:0!important;border-radius:9px;background:#eaf6ff}.qb-total-grand span{color:#0871cf!important;font-weight:700!important}.qb-total-grand strong{color:#0871cf!important;font-size:24px!important}.qb-price-note,.qb-privacy{margin:11px 0 0!important;color:#7d8d9e;font-size:14px!important;line-height:1.55!important}
.qb-customer-box{display:grid;gap:10px;margin-top:18px;padding-top:17px;border-top:1px solid var(--qb-line)}.qb-customer-box__head h3{margin:0!important;color:var(--qb-navy);font:700 20px/1.4 "Bai Jamjuree",sans-serif!important}.qb-customer-box__head p{margin:3px 0 0!important;color:var(--qb-muted);font-size:15px!important;line-height:1.5!important}.qb-customer-box label{display:grid;gap:5px;margin:0}.qb-customer-box label>span{font-size:15px!important;font-weight:600}.qb-customer-box input,.qb-customer-box textarea{width:100%;border:1px solid #cbd8e5!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important;color:var(--qb-ink)!important;font-size:15px!important;outline:0!important}.qb-customer-box input{height:43px;padding:0 11px!important}.qb-customer-box textarea{min-height:82px;padding:10px 11px!important;resize:vertical}.qb-customer-box input:focus,.qb-customer-box textarea:focus{border-color:#7abcf8!important;box-shadow:0 0 0 3px rgba(8,123,234,.07)!important}.qb-customer-box__two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qb-submit{display:flex!important;align-items:center!important;justify-content:center!important;width:100%;min-height:48px;margin-top:15px!important;padding:12px 15px!important;border:0!important;border-radius:9px!important;background:linear-gradient(110deg,#087bea,#10b5e5)!important;color:#fff!important;font:700 15px/1.4 "Bai Jamjuree",sans-serif!important;cursor:pointer!important;box-shadow:0 8px 18px rgba(8,123,234,.18)}
.qb-public-alert{margin-bottom:20px;padding:13px 15px;border-radius:10px;font-size:15px}.qb-public-alert--error{border:1px solid #ffd1cc;background:#fff3f2;color:#9f2a1f}.qb-public-empty{padding:35px;border:1px dashed #cbd9e6;border-radius:13px;color:var(--qb-muted);font-size:15px;text-align:center}.qb-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:1180px){.qb-public-layout{grid-template-columns:minmax(0,1fr) 365px}.qb-module-table__head,.qb-module-card{grid-template-columns:minmax(180px,1fr) minmax(180px,1.2fr) 105px 115px 28px}}
@media(max-width:920px){.qb-public-layout{grid-template-columns:1fr}.qb-public-summary__sticky{position:static}}
@media(max-width:720px){.bivaco-quote-builder .container{width:calc(100% - 28px)}.qb-public-hero{padding:34px 0 28px}.qb-public-hero h1{font-size:27px!important}.qb-public-body{padding:24px 0 45px}.qb-public-toolbar{align-items:stretch;flex-direction:column;border-radius:14px}.qb-public-toolbar__actions{width:100%}.qb-public-search{width:100%}.qb-module-total{display:none}.qb-module-table{padding:0 10px 10px}.qb-module-table__head{display:none}.qb-module-group__head{padding:14px 14px 8px}.qb-module-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:"module price" "desc desc" "features features";gap:7px 12px;min-height:0;padding:13px 10px 13px 46px;border-radius:9px;margin:5px 0}.qb-module-card__top{grid-area:module;padding:0}.qb-module-check{left:-34px}.qb-module-card__title{position:static;transform:none;width:auto}.qb-module-card__content{grid-area:desc}.qb-module-card__price{grid-area:price;justify-content:flex-end}.qb-module-card__price>span{position:static;width:100%;padding:0;background:none;text-align:right;font-size:12px!important}.qb-module-features{grid-area:features}.qb-module-features ul{grid-template-columns:1fr}.qb-customer-box__two{grid-template-columns:1fr}}


/* =========================================================
   RESULT PAGE
   ========================================================= */

.qb-result-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 25px;
    align-items: start;
}

.qb-result-main {
    display: grid;
    gap: 16px;
}

.qb-result-card {
    padding: 19px;

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

    background: #fff;

    box-shadow:
        0 6px 22px rgba(21, 72, 123, .05);
}

.qb-result-customer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.qb-result-customer > div {
    display: grid;
    gap: 3px;
}

.qb-result-customer span {
    color: var(--qb-muted);

    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.qb-result-customer strong {
    color: var(--qb-navy);
    font-size: 16px;
}

.qb-result-customer small {
    color: #758496;
    font-size: 11.5px;
}

.qb-result-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-bottom: 15px;
}

.qb-result-card__head h2,
.qb-result-card > h2 {
    margin: 0 !important;

    color: var(--qb-navy);

    font-family: "Bai Jamjuree", sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
}

.qb-result-card__head > span {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 30px;
    height: 30px;

    border-radius: 8px;

    background: var(--qb-blue-soft);
    color: var(--qb-blue);

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

.qb-result-items {
    display: grid;
    gap: 10px;
}

.qb-result-item {
    padding: 14px;

    border: 1px solid #e7edf4;
    border-radius: 11px;
}

.qb-result-item__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.qb-result-item h3 {
    margin: 0 !important;

    color: var(--qb-navy);

    font-size: 15px !important;
    font-weight: 700 !important;
}

.qb-result-item small {
    display: block;

    margin-top: 3px;

    color: #758496;

    font-size: 11.5px;
}

.qb-result-item__head > strong {
    color: var(--qb-blue);

    font-size: 13px;
    white-space: nowrap;
}

.qb-result-item ul {
    display: grid;
    gap: 7px;

    margin: 12px 0 0;
    padding: 11px 0 0;

    border-top: 1px dashed #dce6ef;

    list-style: none;
}

.qb-result-item li {
    position: relative;

    padding-left: 13px;
}

.qb-result-item li::before {
    content: "";

    position: absolute;
    left: 0;
    top: 7px;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--qb-blue);
}

.qb-result-item li > .material-icons-outlined {
    display: none !important;
}

.qb-result-item li b {
    font-size: 12px;
    font-weight: 600;
}

.qb-result-item li small {
    font-size: 11px;
}

.qb-result-totals {
    display: grid;
    gap: 11px;

    margin: 15px 0;
    padding: 14px 0;

    border-top: 1px solid var(--qb-line);
    border-bottom: 1px solid var(--qb-line);
}

.qb-result-totals > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.qb-result-totals span {
    color: #586b80;
    font-size: 11.5px;
}

.qb-result-totals strong {
    color: var(--qb-navy);
    font-size: 13px;
    white-space: nowrap;
}

.qb-result-status {
    display: flex;
    justify-content: space-between;
    gap: 10px;

    padding: 10px;

    border-radius: 8px;

    background: #ecfdf3;
}

.qb-result-status span,
.qb-result-status strong {
    font-size: 11.5px;
}

.qb-result-status strong {
    color: var(--qb-success);
}

.qb-result-card--sticky > p {
    margin: 13px 0 0 !important;

    color: #6e7f91;

    font-size: 11.5px !important;
    line-height: 1.65 !important;
}

.qb-result-actions {
    display: grid;
    gap: 9px;

    margin-top: 14px;
}

.qb-result-actions form {
    margin: 0;
}

.qb-result-actions .qb-submit {
    margin-top: 0 !important;
}

.qb-submit--link {
    margin-top: 0 !important;
}

.qb-submit--secondary {
    border: 1px solid #9dcfff !important;

    background: #fff !important;
    color: var(--qb-blue) !important;

    box-shadow: none !important;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1080px) {

    .qb-public-layout {
        grid-template-columns: minmax(0, 1fr) 325px;
        gap: 20px;
    }

    .qb-module-grid {
        grid-template-columns: 1fr;
    }

    .qb-result-grid {
        grid-template-columns: minmax(0, 1fr) 310px;
    }
}


@media (max-width: 820px) {

    .qb-public-hero,
    .qb-result-hero {
        padding: 42px 0 34px;
    }

    .qb-public-hero h1,
    .qb-result-hero h1 {
        font-size: 27px !important;
    }

    .qb-public-layout,
    .qb-result-grid {
        grid-template-columns: 1fr;
    }

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

    .qb-public-summary__sticky,
    .qb-result-card--sticky {
        position: static;
    }

    .qb-selected-list {
        max-height: 160px;
    }
}


@media (max-width: 620px) {

    .bivaco-quote-builder .container {
        width: calc(100% - 28px);
    }

    .qb-public-hero,
    .qb-result-hero {
        padding: 34px 0 29px;
    }

    .qb-public-hero h1,
    .qb-result-hero h1 {
        margin-bottom: 9px !important;
        font-size: 23px !important;
    }

    .qb-public-hero p,
    .qb-result-hero p {
        font-size: 13px !important;
        line-height: 1.6 !important;
    }

    .qb-public-body,
    .qb-result-body {
        padding: 27px 0 45px;
    }

    .qb-public-toolbar {
        align-items: stretch;
        flex-direction: column;

        gap: 12px;

        margin-bottom: 23px;
        padding: 14px;
    }

    .qb-public-search {
        width: 100%;
    }

    .qb-module-group {
        margin-bottom: 28px;
    }

    .qb-module-group__head h2 {
        font-size: 18px !important;
    }

    .qb-module-group__head p {
        font-size: 12px !important;
    }

    .qb-module-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .qb-module-card {
        min-height: 0;
        padding: 15px;
    }

    .qb-module-card__title h3 {
        font-size: 16px !important;
    }

    .qb-module-card__desc {
        font-size: 12.5px !important;
    }

    .qb-public-summary__sticky {
        padding: 16px;
    }

    .qb-customer-box__two,
    .qb-result-customer {
        grid-template-columns: 1fr;
    }

    .qb-result-item__head {
        flex-direction: column;
        gap: 7px;
    }

    .qb-result-item__head > strong {
        font-size: 12.5px;
    }
}

/* =========================================================
   V5.1 TABLE ALIGNMENT FIX
   ========================================================= */
.qb-module-table__head,
.qb-module-card{
    grid-template-columns:minmax(230px,1.15fr) minmax(280px,1.45fr) 145px 135px 32px !important;
    column-gap:16px !important;
}
.qb-module-card{
    grid-template-areas:"main description billing price expand" !important;
    min-height:76px !important;
    padding:12px 14px !important;
}
.qb-module-main{
    grid-area:main;
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}
.qb-module-check{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    transform:none !important;
    flex:0 0 22px;
}
.qb-module-name{min-width:0}
.qb-module-name__line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.qb-module-name h3{
    margin:0 !important;
    color:var(--qb-navy);
    font:700 15px/1.35 "Bai Jamjuree",sans-serif !important;
}
.qb-module-name em{
    display:inline-flex;
    padding:3px 7px;
    border-radius:20px;
    background:#e8f4ff;
    color:#0871cf;
    font-size:11px !important;
    line-height:1.2;
    font-style:normal;
    font-weight:700;
}
.qb-module-name em.is-featured{background:#fff5d9;color:#8a6300}
.qb-module-name small{
    display:block;
    margin-top:4px;
    color:#8494a4;
    font-size:12px !important;
    line-height:1.3;
}
.qb-module-description{
    grid-area:description;
    min-width:0;
    color:#5f7489;
    font-size:15px !important;
    line-height:1.45;
}
.qb-module-billing{
    grid-area:billing;
    display:flex;
    align-items:center;
}
.qb-module-billing span{
    display:inline-flex;
    padding:6px 9px;
    border-radius:7px;
    background:#edf5fb;
    color:#49667f;
    font-size:13px !important;
    line-height:1.25;
}
.qb-module-price{
    grid-area:price;
    display:flex;
    align-items:flex-end;
    flex-direction:column;
    justify-content:center;
    gap:2px;
}
.qb-module-price strong{
    color:var(--qb-navy);
    font-size:15px !important;
    font-weight:700;
    white-space:nowrap;
}
.qb-module-price del{color:#99a7b5;font-size:12px}
.qb-module-expand{
    grid-area:expand;
    display:flex;
    align-items:center;
    justify-content:center;
}
.qb-module-features{width:100%;margin:0!important;padding:0!important;border:0!important}
.qb-module-features summary{display:flex;justify-content:center;list-style:none;cursor:pointer}
.qb-module-features summary::-webkit-details-marker{display:none}
.qb-module-features__toggle{
    display:flex;align-items:center;justify-content:center;
    width:28px;height:28px;border-radius:7px;
    background:#f0f7fd;color:var(--qb-blue);
    font-size:18px;line-height:1;font-weight:700;
    transition:transform .2s ease;
}
.qb-module-features[open]{
    position:absolute;
    left:14px;right:14px;
    top:calc(100% - 4px);
    z-index:5;
    width:auto;
    padding:12px 14px!important;
    border:1px solid #dce8f3!important;
    border-radius:10px;
    background:#f7fbff;
    box-shadow:0 8px 20px rgba(16,65,110,.08);
}
.qb-module-features[open] .qb-module-features__toggle{transform:rotate(180deg)}
.qb-module-features ul{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin:8px 0 0!important}
.qb-module-card:has(.qb-module-features[open]){margin-bottom:100px}
.qb-module-card__top,
.qb-module-card__content,
.qb-module-card__price{display:none!important}

@media(max-width:1180px){
    .qb-module-table__head,.qb-module-card{
        grid-template-columns:minmax(190px,1fr) minmax(210px,1.25fr) 130px 120px 30px !important;
    }
}
@media(max-width:720px){
    .qb-module-table__head{display:none!important}
    .qb-module-card{
        grid-template-columns:minmax(0,1fr) auto !important;
        grid-template-areas:
            "main price"
            "description description"
            "billing expand" !important;
        row-gap:8px !important;
        padding:13px !important;
        margin:6px 0 !important;
        border:1px solid #e3edf5 !important;
        border-radius:10px !important;
    }
    .qb-module-description{font-size:14px!important}
    .qb-module-price{align-items:flex-end}
    .qb-module-expand{justify-content:flex-end}
    .qb-module-features[open]{left:8px;right:8px;top:100%}
    .qb-module-features ul{grid-template-columns:1fr!important}
}

/* V5.2 fixed hero + compact billing + exact price column */
.qb-public-hero{min-height:360px;padding:48px 0 34px!important;background-color:#f5fbff!important;background-image:url("../images/quote-builder-hero.svg")!important;background-repeat:no-repeat!important;background-position:center top!important;background-size:cover!important}
.qb-public-hero::after{display:none!important}.qb-public-hero .container{position:relative;z-index:2}.qb-public-hero h1,.qb-public-hero p,.qb-public-eyebrow{max-width:760px}
.qb-module-table__head,.qb-module-card{grid-template-columns:minmax(230px,1.12fr) minmax(300px,1.48fr) 110px 125px 32px!important;column-gap:16px!important}
.qb-module-billing{justify-content:flex-start!important}.qb-module-billing span{width:auto!important;min-width:0!important;padding:5px 9px!important;white-space:nowrap!important;text-align:center!important}
.qb-module-price{width:100%!important;align-items:flex-end!important;justify-content:center!important;text-align:right!important}.qb-module-price strong,.qb-module-price del{display:block!important;width:100%!important;text-align:right!important}.qb-module-table__head span:nth-child(4){text-align:right!important}
@media(max-width:1180px){.qb-module-table__head,.qb-module-card{grid-template-columns:minmax(190px,1fr) minmax(220px,1.25fr) 100px 115px 30px!important}}
@media(max-width:920px){.qb-public-hero{min-height:300px;background-position:62% top!important}.qb-public-hero h1,.qb-public-hero p,.qb-public-eyebrow{max-width:58%}}
@media(max-width:720px){.qb-public-hero{min-height:0;background-image:linear-gradient(135deg,#f4faff,#e8f7ff)!important}.qb-public-hero h1,.qb-public-hero p,.qb-public-eyebrow{max-width:none}.qb-module-price strong,.qb-module-price del{width:auto!important}}


/* BIVACO bulk module import: module icon */
.qb-module-icon{
    display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;
    width:34px;height:34px;border-radius:9px;background:#edf7ff;color:#0b86e8;
    font-size:20px!important;line-height:1;
}

/* =========================================================
   BIVACO QUOTE BUILDER - MODULE ICON + GROUP ACCORDION FINAL
   ========================================================= */

.qb-module-icon{
    flex:0 0 24px;
    width:24px;
    height:24px;
    display:inline-block!important;
    background:#168ee5;
    font-size:0!important;
    line-height:0!important;
    color:transparent!important;

    -webkit-mask-repeat:no-repeat;
    -webkit-mask-position:center;
    -webkit-mask-size:contain;

    mask-repeat:no-repeat;
    mask-position:center;
    mask-size:contain;

    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}

.qb-module-group__head{
    position:relative;
    cursor:pointer;
    user-select:none;
    padding-right:58px!important;
    transition:background .18s ease;
}

.qb-module-group__head:hover{
    background:#f8fbff;
}

.qb-group-toggle{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-50%);
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    background:#eef7ff;
    color:#168ee5;
    font-size:18px;
    font-weight:700;
    transition:transform .2s ease;
}

.qb-module-group.is-collapsed .qb-module-table{
    display:none!important;
}

.qb-module-group.is-collapsed .qb-group-toggle{
    transform:translateY(-50%) rotate(-90deg);
}

.qb-module-group{
    overflow:hidden;
}

@media(max-width:720px){
    .qb-module-icon{
        width:21px;
        height:21px;
        flex-basis:21px;
    }

    .qb-module-group__head{
        padding-right:52px!important;
    }

    .qb-group-toggle{
        right:12px;
    }
}

/* =========================================================
   BIVACO QUOTE BUILDER - DESKTOP LAYOUT FINAL
   Ẩn Loại phí + nới rộng cột Module
   ========================================================= */

@media (min-width: 721px) {

    /* Ẩn cột Loại phí */
    .bivaco-quote-builder .qb-module-billing {
        display: none !important;
    }

    /* Ẩn tiêu đề Loại phí - cột thứ 3 */
    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(3) {
        display: none !important;
    }

    /* Header bảng: Module | Mô tả | Giá | Chi tiết */
    .bivaco-quote-builder .qb-module-table__head {
        display: grid !important;
        grid-template-columns:
            minmax(330px, 1.15fr)
            minmax(420px, 1.65fr)
            155px
            42px
            !important;

        column-gap: 24px !important;
        align-items: center !important;
    }

    /* Từng dòng module */
    .bivaco-quote-builder .qb-module-card {
        display: grid !important;

        grid-template-columns:
            minmax(330px, 1.15fr)
            minmax(420px, 1.65fr)
            155px
            42px
            !important;

        grid-template-areas:
            "module desc price features"
            !important;

        column-gap: 24px !important;
        align-items: center !important;
    }

    /* Khối tên module rộng hơn */
    .bivaco-quote-builder .qb-module-main {
        grid-area: module !important;
        display: flex !important;
        align-items: center !important;
        gap: 16px !important;
        min-width: 0 !important;
    }

    .bivaco-quote-builder .qb-module-name {
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }

    .bivaco-quote-builder .qb-module-name h3 {
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        line-height: 1.4 !important;
    }

    /* Mô tả */
    .bivaco-quote-builder .qb-module-description {
        grid-area: desc !important;
        min-width: 0 !important;
        padding-right: 10px !important;
    }

    /* Giá */
    .bivaco-quote-builder .qb-module-price {
        grid-area: price !important;
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        width: 100% !important;
        text-align: right !important;
    }

    .bivaco-quote-builder .qb-module-price strong,
    .bivaco-quote-builder .qb-module-price del {
        width: 100% !important;
        text-align: right !important;
    }

    /* Nút xổ tính năng */
    .bivaco-quote-builder .qb-module-expand {
        grid-area: features !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }

    /* Tiêu đề Giá căn phải */
    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(4) {
        text-align: right !important;
    }
}


/* Laptop nhỏ hơn */
@media (min-width: 721px) and (max-width: 1180px) {

    .bivaco-quote-builder .qb-module-table__head,
    .bivaco-quote-builder .qb-module-card {
        grid-template-columns:
            minmax(270px, 1.1fr)
            minmax(300px, 1.5fr)
            135px
            36px
            !important;

        column-gap: 16px !important;
    }
}


/* Mobile cũng không hiện loại phí */
@media (max-width: 720px) {

    .bivaco-quote-builder .qb-module-billing {
        display: none !important;
    }
}

/* =========================================================
   QUOTE BUILDER - FIX TRÀN CỘT DESKTOP FINAL
   Module rộng + bỏ loại phí + giá không bị cắt
   ========================================================= */

@media (min-width: 721px) {

    /* Khung bảng luôn nằm gọn trong panel */
    .bivaco-quote-builder .qb-module-table,
    .bivaco-quote-builder .qb-module-grid,
    .bivaco-quote-builder .qb-module-card,
    .bivaco-quote-builder .qb-module-table__head {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Bỏ hoàn toàn Loại phí */
    .bivaco-quote-builder .qb-module-billing,
    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(3) {
        display: none !important;
    }

    /* 4 cột thật:
       Module | Mô tả | Giá | Mở rộng
    */
    .bivaco-quote-builder .qb-module-table__head,
    .bivaco-quote-builder .qb-module-card {
        display: grid !important;

        grid-template-columns:
            minmax(0, 38%)
            minmax(0, 43%)
            minmax(115px, 15%)
            36px
            !important;

        column-gap: 14px !important;
        align-items: center !important;
    }

    .bivaco-quote-builder .qb-module-card {
        grid-template-areas:
            "module desc price features"
            !important;
    }

    /* MODULE */
    .bivaco-quote-builder .qb-module-main {
        grid-area: module !important;

        display: grid !important;
        grid-template-columns: 26px 28px minmax(0, 1fr) !important;

        align-items: center !important;
        gap: 12px !important;

        width: 100% !important;
        min-width: 0 !important;
    }

    .bivaco-quote-builder .qb-module-check {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;

        grid-column: 1 !important;

        margin: 0 !important;
    }

    .bivaco-quote-builder .qb-module-icon {
        grid-column: 2 !important;
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
    }

    .bivaco-quote-builder .qb-module-name {
        grid-column: 3 !important;

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

    .bivaco-quote-builder .qb-module-name__line {
        display: flex !important;
        align-items: center !important;
        gap: 7px !important;
        flex-wrap: wrap !important;
    }

    .bivaco-quote-builder .qb-module-name h3 {
        width: auto !important;
        max-width: 100% !important;

        margin: 0 !important;

        white-space: normal !important;
        overflow-wrap: break-word !important;

        font-size: 15px !important;
        line-height: 1.35 !important;
    }

    /* MÔ TẢ */
    .bivaco-quote-builder .qb-module-description {
        grid-area: desc !important;

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

        padding: 0 !important;

        overflow-wrap: break-word !important;
    }

    /* GIÁ */
    .bivaco-quote-builder .qb-module-price {
        grid-area: price !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        justify-content: center !important;

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

        text-align: right !important;
    }

    .bivaco-quote-builder .qb-module-price strong,
    .bivaco-quote-builder .qb-module-price del {
        display: block !important;

        width: 100% !important;

        text-align: right !important;
        white-space: nowrap !important;
    }

    /* Nút xổ */
    .bivaco-quote-builder .qb-module-expand {
        grid-area: features !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 36px !important;
        min-width: 36px !important;
    }

    /* Header bảng */
    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(1),
    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(2) {
        text-align: left !important;
    }

    .bivaco-quote-builder
    .qb-module-table__head > span:nth-child(4) {
        text-align: right !important;
        white-space: nowrap !important;
    }

    /* Tránh group cắt mất giá */
    .bivaco-quote-builder .qb-module-group {
        max-width: 100% !important;
    }
}


/* Laptop nhỏ */
@media (min-width: 721px) and (max-width: 1180px) {

    .bivaco-quote-builder .qb-module-table__head,
    .bivaco-quote-builder .qb-module-card {
        grid-template-columns:
            minmax(0, 39%)
            minmax(0, 40%)
            minmax(105px, 16%)
            32px
            !important;

        column-gap: 10px !important;
    }
}

/* =========================================================
   QUOTE BUILDER - TEXT BLACK FINAL
   ========================================================= */

.bivaco-quote-builder,
.bivaco-quote-builder h1,
.bivaco-quote-builder h2,
.bivaco-quote-builder h3,
.bivaco-quote-builder h4,
.bivaco-quote-builder p,
.bivaco-quote-builder span,
.bivaco-quote-builder strong,
.bivaco-quote-builder small,
.bivaco-quote-builder label,
.bivaco-quote-builder input,
.bivaco-quote-builder textarea,
.bivaco-quote-builder select,
.bivaco-quote-builder .qb-module-name h3,
.bivaco-quote-builder .qb-module-description,
.bivaco-quote-builder .qb-module-table__head,
.bivaco-quote-builder .qb-module-group__head h2,
.bivaco-quote-builder .qb-module-group__head p,
.bivaco-quote-builder .qb-module-price strong,
.bivaco-quote-builder .qb-module-price del,
.bivaco-quote-builder .qb-customer-box,
.bivaco-quote-builder .qb-selected-list,
.bivaco-quote-builder .qb-total-list {
    color: #000000 !important;
}

/* =========================================================
   QUOTE SUMMARY - HEADER WHITE TEXT FIX
   ========================================================= */

.bivaco-quote-builder .qb-public-summary__head,
.bivaco-quote-builder .qb-public-summary__head span,
.bivaco-quote-builder .qb-public-summary__head small,
.bivaco-quote-builder .qb-public-summary__head strong {
    color: #ffffff !important;
}

/* Tổng thanh toán - giảm cỡ chữ */
.bivaco-quote-builder .qb-total-grand span {
    font-size: 17px !important;
    line-height: 1.3 !important;
}

.bivaco-quote-builder .qb-total-grand strong {
    font-size: 18px !important;
    line-height: 1.15 !important;
}
/* FIX số lượng module đã chọn */
.bivaco-quote-builder .qb-public-summary__head #qb-selected-count {
    color: #0b2545 !important;
    background: #ffffff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

/* ===== BIVACO QUOTE - TOGGLE ĐẸP HƠN ===== */

/* Header nhóm */
.qb-module-group__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    cursor:pointer;
}

/* Nút mũi tên */
.qb-group-toggle{
    width:38px;
    height:38px;
    min-width:38px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg,#f8fbff 0%, #edf5ff 100%);
    border:1px solid #d7e7ff;
    color:#1677ff;
    font-size:18px;
    font-weight:700;
    line-height:1;
    box-shadow:0 6px 18px rgba(22,119,255,.10);
    transition:all .22s ease;
    user-select:none;
}
/* ===== BIVACO QUOTE - TOGGLE ĐẸP HƠN ===== */

/* Header nhóm */
.qb-module-group__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    cursor:pointer;
}

/* Nút mũi tên */
.qb-group-toggle{
    width:38px;
    height:38px;
    min-width:38px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg,#f8fbff 0%, #edf5ff 100%);
    border:1px solid #d7e7ff;
    color:#1677ff;
    font-size:18px;
    font-weight:700;
    line-height:1;
    box-shadow:0 6px 18px rgba(22,119,255,.10);
    transition:all .22s ease;
    user-select:none;
}

/* Hover */
.qb-module-group__head:hover .qb-group-toggle{
    background:linear-gradient(180deg,#eef7ff 0%, #dfeeff 100%);
    border-color:#b9d6ff;
    box-shadow:0 10px 24px rgba(22,119,255,.14);
    transform:translateY(-1px);
}

/* Khi nhóm đang mở */
.qb-module-group:not(.is-collapsed) .qb-group-toggle{
    transform:rotate(180deg);
    background:linear-gradient(135deg,#18c6f5 0%, #1677ff 100%);
    border-color:transparent;
    color:#ffffff;
    box-shadow:0 12px 24px rgba(22,119,255,.22);
}

/* Hover khi đang mở */
.qb-module-group:not(.is-collapsed) .qb-module-group__head:hover .qb-group-toggle{
    transform:rotate(180deg) translateY(-1px);
}

/* Mobile */
@media (max-width: 767px){
    .qb-group-toggle{
        width:34px;
        height:34px;
        min-width:34px;
        border-radius:10px;
        font-size:16px;
    }
}