/* =========================================================
   PENTAFLOSS — CART PAGE
   CSS RIÊNG TRANG GIỎ HÀNG
   Header + Footer dùng style.css chung
========================================================= */


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

.cart-page {
    width: 100%;

    margin: 0;
    padding: 0;

    background: #f4fbff;

    color: #16386d;

    font-family: "Be Vietnam Pro", sans-serif;

    -webkit-font-smoothing: antialiased;
}


/* Chỉ áp dụng font cho phần Cart */

.cart-page h1,
.cart-page h2,
.cart-page h3,
.cart-page p,
.cart-page a,
.cart-page span,
.cart-page strong,
.cart-page label,
.cart-page input,
.cart-page button {
    font-family: "Be Vietnam Pro", sans-serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.cart-container {
    width: 90%;

    max-width: 1180px;

    margin: 0 auto;
}


/* =========================================================
   HEADING
========================================================= */

.cart-heading {
    padding: 55px 0 35px;

    text-align: center;

    background:
        linear-gradient(
            180deg,
            #eaf8ff,
            #f4fbff
        );
}


.cart-small-title {
    display: inline-block;

    margin-bottom: 8px;

    color: #0757b8;

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 1.5px;
}


.cart-heading h1 {
    margin: 0 0 10px;

    color: #123c79;

    font-size: 36px;

    font-weight: 800;

    line-height: 1.3;
}


.cart-heading p {
    margin: 0;

    color: #70859c;

    font-size: 14px;

    line-height: 1.7;
}


/* =========================================================
   CART SECTION
========================================================= */

.cart-section {
    padding: 20px 0 65px;
}


.cart-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.75fr)
        minmax(310px, .85fr);

    gap: 24px;

    align-items: start;
}


/* =========================================================
   PRODUCT LIST
========================================================= */

.cart-products {
    background: #ffffff;

    border: 1px solid #e0eef8;

    border-radius: 24px;

    overflow: hidden;

    box-shadow:
        0 10px 30px rgba(55, 126, 184, .07);
}


/* =========================================================
   PRODUCT HEADER
========================================================= */

.cart-products-header {
    min-height: 50px;

    display: grid;

    grid-template-columns:
        minmax(250px, 1.6fr)
        .7fr
        .8fr
        .7fr;

    align-items: center;

    padding: 0 25px;

    background: #eef9ff;

    border-bottom: 1px solid #e1eff8;

    color: #55708d;

    font-size: 12px;

    font-weight: 700;

    text-align: center;
}


.cart-products-header span:first-child {
    text-align: left;
}


/* =========================================================
   CART ITEM
========================================================= */

.cart-item {
    display: grid;

    grid-template-columns:
        minmax(250px, 1.6fr)
        .7fr
        .8fr
        .7fr;

    align-items: center;

    min-height: 145px;

    padding: 20px 25px;

    border-bottom: 1px solid #edf3f7;
}


/* =========================================================
   PRODUCT INFO
========================================================= */

.cart-product-info {
    display: flex;

    align-items: center;

    gap: 17px;

    min-width: 0;
}


.cart-product-image {
    width: 105px;
    height: 105px;

    flex: 0 0 105px;

    overflow: hidden;

    border-radius: 17px;

    background: #eaf7ff;
}


.cart-product-image img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}


.cart-product-name {
    min-width: 0;
}


.cart-product-name h3 {
    margin: 0 0 7px;

    color: #163d75;

    font-size: 15px;

    font-weight: 700;

    line-height: 1.45;
}


.cart-product-name > span {
    display: block;

    margin-bottom: 9px;

    color: #7c91a7;

    font-size: 12px;
}


.remove-product {
    padding: 0;

    border: 0;

    background: transparent;

    color: #e25b6a;

    font-size: 11px;

    font-weight: 600;

    cursor: pointer;
}


.remove-product:hover {
    text-decoration: underline;
}


/* =========================================================
   PRICE
========================================================= */

.cart-price {
    color: #315579;

    font-size: 13px;

    font-weight: 600;

    text-align: center;
}


/* =========================================================
   QUANTITY
========================================================= */

.quantity-control {
    width: 102px;

    height: 37px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin: 0 auto;

    border: 1px solid #cfe5f2;

    border-radius: 22px;

    background: #f7fcff;

    overflow: hidden;
}


.quantity-btn {
    width: 32px;
    height: 100%;

    border: 0;

    background: transparent;

    color: #0757b8;

    font-size: 18px;

    font-weight: 600;

    cursor: pointer;
}


.quantity-btn:hover {
    background: #e5f5ff;
}


.quantity {
    color: #163d75;

    font-size: 13px;

    font-weight: 700;
}


/* =========================================================
   ITEM TOTAL
========================================================= */

.cart-item-total {
    color: #0757b8;

    font-size: 14px;

    font-weight: 800;

    text-align: center;
}


/* =========================================================
   CONTINUE SHOPPING
========================================================= */

.continue-shopping {
    padding: 20px 25px;
}


.continue-shopping a {
    color: #0757b8;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}


.continue-shopping a:hover {
    text-decoration: underline;
}


/* =========================================================
   EMPTY CART
========================================================= */

.cart-empty {
    padding: 70px 20px;

    text-align: center;
}


.cart-empty-icon {
    margin-bottom: 15px;

    font-size: 55px;
}


.cart-empty h2 {
    margin: 0 0 8px;

    color: #163d75;

    font-size: 23px;

    font-weight: 800;
}


.cart-empty p {
    margin: 0 0 20px;

    color: #71859d;

    font-size: 13px;
}


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

.cart-summary {
    position: sticky;

    top: 20px;

    padding: 27px;

    background: #ffffff;

    border: 1px solid #dcecf7;

    border-radius: 25px;

    box-shadow:
        0 10px 30px rgba(55, 126, 184, .08);
}


.cart-summary h2 {
    margin: 0 0 25px;

    color: #123c79;

    font-size: 20px;

    font-weight: 800;
}


/* =========================================================
   SUMMARY LINE
========================================================= */

.summary-line {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 16px;

    color: #6c8299;

    font-size: 13px;
}


.summary-line strong {
    color: #315579;

    font-size: 13px;

    font-weight: 700;
}


/* =========================================================
   DIVIDER
========================================================= */

.summary-divider {
    height: 1px;

    margin: 20px 0;

    background: #e4eef5;
}


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

.summary-total {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 25px;
}


.summary-total span {
    color: #163d75;

    font-size: 15px;

    font-weight: 700;
}


.summary-total strong {
    color: #0757b8;

    font-size: 22px;

    font-weight: 800;
}


/* =========================================================
   VOUCHER
========================================================= */

.voucher-box {
    margin-bottom: 20px;
}


.voucher-box label {
    display: block;

    margin-bottom: 8px;

    color: #526d88;

    font-size: 12px;

    font-weight: 700;
}


.voucher-input {
    display: flex;

    height: 42px;

    overflow: hidden;

    border: 1px solid #cfe5f2;

    border-radius: 12px;

    background: #fafdff;
}


.voucher-input input {
    width: 100%;

    min-width: 0;

    padding: 0 12px;

    border: 0;

    outline: none;

    background: transparent;

    color: #315579;

    font-size: 12px;
}


.voucher-input button {
    padding: 0 13px;

    border: 0;

    background: #e9f6ff;

    color: #0757b8;

    font-size: 11px;

    font-weight: 800;

    cursor: pointer;
}


.voucher-input button:hover {
    background: #d9efff;
}


#voucherMessage {
    display: block;

    margin-top: 7px;

    color: #1aa56b;

    font-size: 11px;
}


/* =========================================================
   CHECKOUT
========================================================= */

.checkout-btn {
    min-height: 50px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    border-radius: 28px;

    background:
        linear-gradient(
            90deg,
            #078bf1,
            #075be7
        );

    color: #ffffff;

    font-size: 14px;

    font-weight: 800;

    text-decoration: none;

    box-shadow:
        0 8px 18px rgba(7, 105, 229, .20);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}


.checkout-btn span {
    font-size: 20px;
}


.checkout-btn:hover {
    transform: translateY(-2px);

    box-shadow:
        0 12px 25px rgba(7, 105, 229, .27);
}


/* =========================================================
   SECURE PAYMENT
========================================================= */

.secure-payment {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    margin-top: 15px;

    color: #91a2b4;

    font-size: 10px;

    text-align: center;
}


/* =========================================================
   BENEFITS
========================================================= */

.cart-benefits {
    padding: 0 0 70px;
}


.benefits-grid {
    display: grid;

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

    gap: 18px;
}


.benefit-item {
    display: flex;

    align-items: center;

    gap: 13px;

    padding: 20px;

    background: #ffffff;

    border: 1px solid #e0eef7;

    border-radius: 20px;
}


.benefit-icon {
    width: 47px;
    height: 47px;

    flex: 0 0 47px;

    display: flex;

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

    border-radius: 14px;

    background: #e6f6ff;

    font-size: 23px;
}


.benefit-item strong {
    display: block;

    margin-bottom: 4px;

    color: #163d75;

    font-size: 12px;

    font-weight: 800;
}


.benefit-item span {
    display: block;

    color: #7a8fa4;

    font-size: 10px;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 1000px) {

    .cart-layout {
        grid-template-columns: 1fr;
    }


    .cart-summary {
        position: static;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 700px) {

    .cart-container {
        width: 92%;
    }


    .cart-heading {
        padding: 40px 0 25px;
    }


    .cart-heading h1 {
        font-size: 28px;
    }


    .cart-products-header {
        display: none;
    }


    .cart-item {
        display: grid;

        grid-template-columns:
            1fr auto;

        gap: 15px;

        padding: 18px;
    }


    .cart-product-info {
        grid-column: 1 / -1;
    }


    .cart-price {
        text-align: left;
    }


    .quantity-control {
        margin: 0;
    }


    .cart-item-total {
        grid-column: 2;

        text-align: right;
    }


    .benefits-grid {
        grid-template-columns: 1fr;
    }


    .cart-summary {
        padding: 22px;
    }

}


@media (max-width: 450px) {

    .cart-product-image {
        width: 80px;
        height: 80px;

        flex-basis: 80px;
    }


    .cart-product-name h3 {
        font-size: 13px;
    }


    .cart-product-name > span {
        font-size: 10px;
    }


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

}
/* =========================================================
   CART MESSAGE
========================================================= */

.cart-message {
    position: fixed;

    right: 25px;
    bottom: 25px;

    z-index: 9999;

    max-width: 320px;

    padding: 14px 20px;

    border-radius: 14px;

    background: #0757b8;

    color: #ffffff;

    font-family: "Be Vietnam Pro", sans-serif;

    font-size: 13px;

    font-weight: 600;

    box-shadow:
        0 10px 30px rgba(7, 87, 184, .25);

    opacity: 0;

    transform:
        translateY(15px);

    pointer-events: none;

    transition:
        opacity .25s ease,
        transform .25s ease;
}


.cart-message.show {

    opacity: 1;

    transform:
        translateY(0);

}
/* =====================================================
   FOOTER PENTAFLOSS
========================================= */

.site-footer {
    width: 100%;
    background: #ddf8f6;
    color: #111;
}


/* =========================================
   KHỐI FOOTER CHÍNH
========================================= */

.footer-inner {
    width: 90%;
    max-width: 1180px;

    min-height: 215px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        1.15fr
        1fr
        1fr
        1.1fr
        1.25fr;

    align-items: center;

    column-gap: 35px;
}


/* =========================================
   MASCOT
========================================= */

.footer-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.footer-brand img {
    width: 145px;
    height: 145px;

    object-fit: contain;

    display: block;
}


/* =========================================
   MENU
========================================= */

.footer-menu {
    display: flex;
    flex-direction: column;

    justify-content: center;

    gap: 20px;
}

.footer-menu a {
    width: fit-content;

    color: #111;

    text-decoration: none;

    font-family: "Be Vietnam Pro", sans-serif;

    font-size: 17px;

    font-weight: 800;

    line-height: 1.2;

    white-space: nowrap;

    transition: .2s;
}

.footer-menu a:hover {
    color: #0757b8;
}


/* =========================================
   NÚT MUA NGAY
========================================= */

.footer-menu .buy-button {
    display: flex;

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

    width: 125px;

    padding: 9px 15px;

    border-radius: 25px;

    background: #0757b8;

    color: white;

    font-size: 14px;

    font-weight: 800;

    box-shadow: none;
}

.footer-menu .buy-button:hover {
    background: #0b3478;

    color: white;

    transform: translateY(-2px);
}


/* =========================================
   SOCIAL
========================================= */

.footer-social {
    align-self: center;
}

.footer-social h3 {
    margin: 0 0 16px;

    color: #111;

    font-family: "Be Vietnam Pro", sans-serif;

    font-size: 15px;

    font-weight: 700;

    line-height: 1.3;

    white-space: nowrap;
}


/* =========================================
   ICON SOCIAL
========================================= */

.social-icons {
    display: flex;

    align-items: center;

    gap: 12px;
}

.social-icons a {
    width: 42px;
    height: 42px;

    display: flex;

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

    border-radius: 50%;

    background: #0757b8;

    transition: .2s;
}

.social-icons a:hover {
    background: #0b3478;

    transform: translateY(-2px);
}

.social-icons svg {
    width: 20px;
    height: 20px;

    fill: white;

    stroke: white;

    stroke-width: 1.5;

    stroke-linecap: round;

    stroke-linejoin: round;
}


/* =========================================
   COPYRIGHT
========================================= */

.footer-bottom {
    width: 90%;
    max-width: 1180px;

    margin: 0 auto;

    border-top: 1px solid rgba(11, 52, 120, .14);

    padding: 20px 0 24px;
}

.footer-bottom p {
    margin: 0;

    color: #173d76;

    font-family: "Be Vietnam Pro", sans-serif;

    font-size: 12px;

    font-weight: 500;
}


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

@media (max-width: 900px) {

    .footer-inner {
        grid-template-columns:
            1fr 1fr 1fr;

        row-gap: 30px;

        padding: 30px 0;
    }

    .footer-brand {
        grid-row: span 2;
    }

}

/* =========================================================
   NEW CHECKOUT / SHOPEE-STYLE CART CONTENT
   Header + Footer giữ nguyên
========================================================= */
.checkout-layout{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(320px,.78fr);gap:24px;align-items:start}
.checkout-left{display:flex;flex-direction:column;gap:18px;min-width:0}
.checkout-right{position:sticky;top:20px;display:flex;flex-direction:column;gap:16px}
.checkout-card,.checkout-summary,.mini-benefits{background:#fff;border:1px solid #deedf7;border-radius:20px;box-shadow:0 8px 28px rgba(55,126,184,.07)}
.checkout-card{padding:24px}
.checkout-card-title{display:flex;align-items:center;gap:13px;padding-bottom:18px;margin-bottom:4px;border-bottom:1px solid #edf3f7}
.title-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 42px;border-radius:13px;background:#eaf7ff;font-size:21px}
.checkout-card-title h2{margin:0;color:#123c79;font-size:18px;font-weight:800}
.checkout-card-title p{margin:4px 0 0;color:#8092a5;font-size:11px}
.address-form{padding-top:18px}.form-row{display:grid;gap:14px}.two-col{grid-template-columns:1fr 1fr}.three-col{grid-template-columns:1fr 1fr 1fr;margin-top:14px}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:7px;color:#3d5875;font-size:12px;font-weight:700}.form-group label b{color:#e45b67}.form-group input,.form-group textarea{width:100%;border:1px solid #d5e6f1;border-radius:10px;background:#fbfdff;color:#294d73;padding:11px 13px;outline:none;font-size:12px;transition:.2s}.form-group textarea{resize:vertical;min-height:75px}.form-group input:focus,.form-group textarea:focus{border-color:#62b8ef;box-shadow:0 0 0 3px rgba(8,139,241,.08)}.save-address-btn{border:0;border-radius:10px;background:#eaf6ff;color:#0757b8;padding:10px 15px;font-size:12px;font-weight:800;cursor:pointer}.save-address-btn:hover{background:#d9efff}.saved-address-message{margin-left:10px;color:#18a26b;font-size:11px;font-weight:600}
.cart-products{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.cart-products-header,.cart-item{grid-template-columns:minmax(270px,1.6fr) .75fr .8fr .8fr}.cart-products-header{padding:0 0 12px;background:transparent;border-bottom:1px solid #e6eff5}.cart-item{padding:18px 0;border-bottom:1px solid #edf3f7}.cart-item:last-child{border-bottom:0}.cart-product-image{width:86px;height:86px;flex-basis:86px;border-radius:13px}.cart-product-name h3{font-size:14px}.cart-product-name>span{margin-bottom:7px}.cart-price{font-size:12px}.cart-item-total{font-size:13px}.continue-shopping{padding:16px 0 0}
.option-card{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #dcecf6;border-radius:13px;background:#fff;cursor:pointer;margin-top:10px;transition:.2s}.option-card:hover{border-color:#9bd0f3;background:#fbfeff}.option-card.selected{border-color:#5eb6ed;background:#f7fcff}.option-card input{display:none}.option-radio{width:17px;height:17px;flex:0 0 17px;border:2px solid #b8cad8;border-radius:50%;position:relative}.option-card input:checked+.option-radio{border-color:#0878bd}.option-card input:checked+.option-radio:after{content:"";position:absolute;width:7px;height:7px;left:3px;top:3px;border-radius:50%;background:#0878bd}.option-content{display:flex;flex-direction:column;gap:3px;flex:1}.option-content strong{color:#254b72;font-size:12px}.option-content small{color:#8294a6;font-size:10px}.option-price{color:#0757b8;font-size:12px;white-space:nowrap}
.checkout-summary{padding:24px}.checkout-summary h2{margin:0 0 22px;color:#123c79;font-size:19px;font-weight:800}.checkout-summary .summary-line{margin-bottom:14px}.discount-line strong{color:#e45b67}.checkout-summary .summary-total{margin-bottom:20px}.checkout-summary .summary-total strong{font-size:22px}.checkout-summary .voucher-box{margin:18px 0 0}.checkout-summary .voucher-input{height:40px}.checkout-btn{width:100%;border:0;cursor:pointer}.checkout-btn.disabled{opacity:.55;cursor:not-allowed}.mini-benefits{padding:16px 18px}.mini-benefits>div{display:flex;gap:11px;align-items:center;padding:10px 0;border-bottom:1px solid #edf3f7}.mini-benefits>div:last-child{border-bottom:0}.mini-benefits>div>span{width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#eaf7ff;font-size:17px}.mini-benefits p{margin:0;display:flex;flex-direction:column;gap:2px}.mini-benefits strong{color:#294c71;font-size:11px}.mini-benefits small{color:#8a9bac;font-size:9px}.order-success{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(11,52,120,.25);backdrop-filter:blur(3px)}.order-success.show{display:flex}.success-box{width:min(430px,100%);padding:35px 30px;text-align:center;border-radius:22px;background:#fff;box-shadow:0 20px 60px rgba(11,52,120,.2)}.success-icon{width:64px;height:64px;margin:0 auto 15px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e5f9ef;color:#16a66b;font-size:35px;font-weight:800}.success-box h2{margin:0 0 9px;color:#123c79;font-size:23px}.success-box p{margin:0 0 20px;color:#71859d;font-size:12px;line-height:1.7}.success-box button{border:0;border-radius:25px;background:#0757b8;color:#fff;padding:11px 22px;font-weight:700;cursor:pointer}

@media(max-width:1000px){.checkout-layout{grid-template-columns:1fr}.checkout-right{position:static}.three-col{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.checkout-card{padding:18px}.two-col,.three-col{grid-template-columns:1fr}.cart-products-header{display:none}.cart-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:17px 0}.cart-product-info{grid-column:1/-1}.cart-price{text-align:left}.cart-item-total{grid-column:2;text-align:right}.quantity-control{margin:0}.saved-address-message{display:block;margin:8px 0 0}.checkout-summary{padding:20px}}

.input-error {
    border: 2px solid #ff5962 !important;
    background: #fff5f5 !important;
    animation: shakeInput 0.25s ease;
}

@keyframes shakeInput {
    0% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-4px);
    }

    50% {
        transform: translateX(4px);
    }

    75% {
        transform: translateX(-4px);
    }

    100% {
        transform: translateX(0);
    }
}