.hammond-cart-page{
    min-height:100vh;
    padding-bottom:76px;
    background:
        linear-gradient(180deg, #f4f6fb 0%, #ffffff 48%, #f7f8fb 100%);
}

.cart-page-hero{
    padding:124px 0 50px;
    background:
        linear-gradient(135deg, rgba(1, 24, 69, .98) 0%, rgba(6, 38, 92, .94) 48%, rgba(247, 248, 251, 1) 48%, rgba(247, 248, 251, 1) 100%);
}

.cart-page-hero__panel{
    display:grid;
    grid-template-columns:minmax(0, 1.04fr) minmax(300px, .82fr);
    gap:28px;
    align-items:center;
    padding:28px;
    border:1px solid rgba(255, 255, 255, .24);
    border-radius:8px;
    background:rgba(255, 255, 255, .96);
    box-shadow:0 24px 70px rgba(1, 24, 69, .16);
}

.cart-page-hero__copy{
    min-width:0;
}

.cart-page-hero__copy h1{
    max-width:620px;
    margin:10px 0 14px;
    color:var(--primary-blue);
    font-size:clamp(32px, 4vw, 50px);
    line-height:1.02;
}

.cart-page-hero__copy p{
    max-width:590px;
    margin:0;
    color:#4d586c;
    font-size:16px;
    line-height:1.8;
}

.cart-page-hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:24px;
}

.cart-button-light{
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 22px;
    border:1px solid rgba(1, 24, 69, .12);
    border-radius:8px;
    background:#fff;
    color:var(--primary-blue);
    font-size:14px;
    font-weight:800;
    text-decoration:none;
    transition:background-color .22s ease, border-color .22s ease, color .22s ease, transform .22s ease;
}

.cart-button-light:hover,
.cart-button-light:focus-visible{
    border-color:var(--primary-gold);
    background:rgba(221, 165, 36, .12);
    color:var(--primary-blue);
    transform:translateY(-1px);
}

.cart-page-steps{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:8px;
    max-width:520px;
    padding:0;
    margin:28px 0 0;
    list-style:none;
}

.cart-page-steps li{
    position:relative;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border:1px solid rgba(1, 24, 69, .08);
    border-radius:8px;
    background:#f7f8fb;
    color:#687286;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cart-page-steps li.is-active{
    border-color:rgba(221, 165, 36, .38);
    background:rgba(221, 165, 36, .15);
    color:var(--primary-blue);
}

.cart-page-hero__media{
    position:relative;
    min-height:360px;
    overflow:hidden;
    border-radius:8px;
    background:#eef2f7;
    box-shadow:0 18px 45px rgba(1, 24, 69, .12);
}

.cart-page-hero__media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .7s ease;
}

.cart-page-hero__media:hover img{
    transform:scale(1.04);
}

.cart-page-hero__badge{
    position:absolute;
    right:18px;
    bottom:18px;
    display:flex;
    align-items:center;
    gap:10px;
    max-width:calc(100% - 36px);
    padding:12px 14px;
    border:1px solid rgba(255, 255, 255, .24);
    border-radius:8px;
    background:rgba(1, 24, 69, .9);
    color:#fff;
    box-shadow:0 14px 28px rgba(1, 24, 69, .22);
}

.cart-page-hero__badge strong{
    display:inline-grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:8px;
    background:var(--primary-gold);
    color:var(--primary-blue);
    font-size:16px;
    font-weight:900;
}

.cart-page-hero__badge span{
    font-size:13px;
    font-weight:800;
}

.cart-page-wrapper{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(320px, 392px);
    gap:28px;
    align-items:start;
    margin-top:-22px;
}

.cart-page-main,
.cart-page-sidebar{
    min-width:0;
}

.woocommerce-cart-form{
    display:block;
}

.cart-items-section,
.cart_totals,
.woocommerce-cart-totals,
.cross-sells,
.cart-sidebar-note,
.cart-service-strip,
.cart-empty-state{
    border:1px solid rgba(1, 24, 69, .08);
    border-radius:8px;
    background:#fff;
    box-shadow:0 18px 45px rgba(1, 24, 69, .08);
}

.cart-items-section{
    overflow:hidden;
}

.cart-section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:24px 26px;
    border-bottom:1px solid var(--line);
    background:linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
}

.cart-section-heading h2{
    margin:6px 0 0;
    color:var(--primary-blue);
    font-family:var(--font-display);
    font-size:clamp(22px, 2.1vw, 28px);
    line-height:1.14;
}

.cart-count-pill{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border:1px solid rgba(221, 165, 36, .34);
    border-radius:8px;
    background:rgba(221, 165, 36, .14);
    color:#77520f;
    font-size:13px;
    font-weight:900;
    white-space:nowrap;
}

.shop_table.cart{
    width:100%;
    margin:0;
    border:0;
    border-collapse:collapse;
    background:#fff;
}

.shop_table.cart thead{
    background:#fbfcff;
}

.shop_table.cart th{
    padding:14px 16px;
    border-bottom:1px solid var(--line);
    color:#6b7280;
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-align:left;
    text-transform:uppercase;
}

.shop_table.cart td{
    padding:20px 16px;
    border-bottom:1px solid var(--line);
    color:var(--ink);
    vertical-align:middle;
}

.shop_table.cart tr.cart_item{
    transition:background-color .22s ease;
}

.shop_table.cart tr.cart_item:hover{
    background:#fbfcff;
}

.shop_table.cart tr:last-child td{
    border-bottom:0;
}

.shop_table.cart .product-remove{
    width:52px;
    text-align:center;
}

.shop_table.cart .product-remove .remove{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(186, 48, 48, .18);
    border-radius:8px;
    background:#fff7f7;
    color:#b52a2a;
    font-size:22px;
    line-height:1;
    text-decoration:none;
    transition:background-color .2s ease, color .2s ease, transform .2s ease;
}

.shop_table.cart .product-remove .remove:hover,
.shop_table.cart .product-remove .remove:focus-visible{
    background:#b52a2a;
    color:#fff;
    transform:translateY(-1px);
}

.shop_table.cart .product-thumbnail{
    width:108px;
}

.shop_table.cart .product-thumbnail a{
    display:block;
    width:86px;
    height:86px;
}

.shop_table.cart .product-thumbnail img{
    display:block;
    width:86px;
    height:86px;
    object-fit:contain;
    border:1px solid var(--line);
    border-radius:8px;
    background:#f3f5f8;
}

.shop_table.cart .product-name{
    min-width:220px;
    font-weight:800;
}

.cart-product-category{
    display:block;
    margin-bottom:5px;
    color:var(--primary-gold);
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.shop_table.cart .product-name a,
.shop_table.cart .product-name strong{
    color:var(--primary-blue);
    font-size:16px;
    line-height:1.35;
    text-decoration:none;
}

.shop_table.cart .product-name a:hover,
.shop_table.cart .product-name a:focus-visible{
    color:#9c6a12;
}

.shop_table.cart .variation,
.shop_table.cart .backorder_notification{
    margin:8px 0 0;
    color:#6b7280;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
}

.shop_table.cart .variation dt,
.shop_table.cart .variation dd{
    display:inline;
    margin:0;
}

.shop_table.cart .product-price,
.shop_table.cart .product-subtotal{
    color:var(--primary-blue);
    font-weight:900;
    white-space:nowrap;
}

.shop_table.cart .product-subtotal{
    font-size:15px;
}

.shop_table.cart .quantity{
    width:92px;
    display:inline-flex;
}

.shop_table.cart .qty{
    width:92px;
    min-height:44px;
    padding:0 10px;
    border:1px solid #d7dce6;
    border-radius:8px;
    background:#fff;
    color:var(--primary-blue);
    font-weight:900;
    text-align:center;
}

.cart-actions-row td{
    padding:0;
    background:#fbfcff;
}

.cart-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 24px;
}

.coupon-form{
    display:flex;
    align-items:center;
    gap:10px;
    flex:1 1 520px;
    min-width:0;
}

.coupon-form label{
    color:var(--primary-blue);
    font-size:13px;
    font-weight:900;
    white-space:nowrap;
}

.coupon-input{
    min-height:44px;
    flex:1 1 220px;
    border:1px solid #d7dce6;
    border-radius:8px;
    padding:0 14px;
    background:#fff;
    color:var(--ink);
    font-weight:700;
}

.coupon-input:focus,
.shop_table.cart .qty:focus{
    outline:3px solid rgba(221, 165, 36, .24);
    border-color:var(--primary-gold);
}

.button-apply-coupon,
.checkout-button{
    min-height:44px;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    border:0 !important;
    border-radius:8px !important;
    padding:0 18px !important;
    font-size:12px !important;
    font-weight:900 !important;
    letter-spacing:.06em;
    line-height:1 !important;
    text-transform:uppercase;
    text-decoration:none !important;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, opacity .2s ease;
}

.hammond-cart-totals__table .hammond-shipping-methods,
.hammond-shipping-methods{
    display:grid;
    gap:8px;
    padding:0;
    margin:0;
    list-style:none;
}

.hammond-shipping-methods li{
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
    gap:8px;
    color:var(--primary-blue);
    font-size:13px;
    font-weight:800;
    line-height:1.55;
}

.hammond-shipping-methods input{
    margin-top:4px;
    accent-color:var(--primary-blue);
}

.hammond-shipping-destination,
.hammond-shipping-contents{
    margin:10px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.6;
}

.hammond-shipping-calculator{
    display:grid;
    gap:12px;
    margin-top:10px;
}

.hammond-shipping-calculator__toggle{
    color:var(--primary-blue);
    font-size:13px;
    font-weight:900;
    text-decoration-color:rgba(221, 165, 36, .7);
}

.hammond-shipping-calculator__form{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#f8fafc;
}

.hammond-shipping-calculator__form .form-row{
    display:grid;
    gap:6px;
    margin:0;
}

.hammond-shipping-calculator__form label{
    color:var(--primary-blue);
    font-size:12px;
    font-weight:900;
}

.hammond-shipping-calculator__form input,
.hammond-shipping-calculator__form select{
    width:100%;
    min-height:42px;
    padding:0 12px;
    border:1px solid #d7dce6;
    border-radius:8px;
    background:#fff;
    color:var(--primary-blue);
    font:inherit;
}

.hammond-empty-cart{
    text-align:center;
}

.hammond-empty-cart h2{
    margin:0.75rem 0 0;
    color:var(--primary-blue);
}

.hammond-cross-sells{
    padding:20px;
}

.hammond-cross-sells__heading{
    margin-bottom:16px;
}

.button-apply-coupon{
    background:var(--primary-blue) !important;
    color:#fff !important;
}

.button-apply-coupon:hover,
.button-apply-coupon:focus-visible{
    transform:translateY(-1px);
    box-shadow:0 10px 22px rgba(1, 24, 69, .18);
}

.cart-service-strip{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:1px;
    overflow:hidden;
    margin-top:18px;
    background:var(--line);
}

.cart-service-strip div{
    min-width:0;
    padding:18px;
    background:#fff;
}

.cart-service-strip strong{
    display:block;
    margin-bottom:4px;
    color:var(--primary-blue);
    font-size:14px;
    font-weight:900;
}

.cart-service-strip span{
    display:block;
    color:var(--muted);
    font-size:13px;
    line-height:1.6;
}

.cart-page-sidebar{
    position:sticky;
    top:112px;
}

.cart-sidebar-note{
    padding:20px;
    margin-bottom:16px;
    background:
        linear-gradient(135deg, rgba(1, 24, 69, .97), rgba(8, 44, 103, .94));
}

.cart-sidebar-note .section-label{
    color:var(--primary-gold);
}

.cart-sidebar-note p{
    margin:8px 0 0;
    color:rgba(255, 255, 255, .78);
    font-size:14px;
    line-height:1.75;
}

.cart-collaterals{
    display:grid;
    gap:18px;
}

.cart_totals,
.woocommerce-cart-totals{
    position:relative;
    overflow:hidden;
    padding:24px;
}

.cart_totals::before,
.woocommerce-cart-totals::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    background:linear-gradient(90deg, var(--primary-gold), #f1c85c, var(--primary-blue));
}

.cart_totals h2,
.woocommerce-cart-totals h2,
.cross-sells h2{
    margin:0 0 18px;
    color:var(--primary-blue);
    font-family:var(--font-display);
    font-size:24px;
    line-height:1.2;
}

.cart_totals table,
.woocommerce-cart-totals table{
    width:100%;
    margin:0;
    border-collapse:collapse;
}

.cart_totals tr,
.woocommerce-cart-totals tr{
    border-bottom:1px solid var(--line);
}

.cart_totals tr:last-child,
.woocommerce-cart-totals tr:last-child{
    border-bottom:0;
}

.cart_totals th,
.cart_totals td,
.woocommerce-cart-totals th,
.woocommerce-cart-totals td{
    padding:14px 0;
    border:0;
    color:var(--ink);
    font-size:14px;
    vertical-align:top;
}

.cart_totals th,
.woocommerce-cart-totals th{
    width:42%;
    text-align:left;
    font-weight:900;
}

.cart_totals td,
.woocommerce-cart-totals td{
    text-align:right;
    font-weight:900;
}

.cart_totals .order-total th,
.cart_totals .order-total td,
.woocommerce-cart-totals .order-total th,
.woocommerce-cart-totals .order-total td{
    color:var(--primary-blue);
    font-size:18px;
}

.wc-proceed-to-checkout{
    padding:18px 0 0;
}

.checkout-button{
    width:100%;
    min-height:54px;
    background:var(--primary-gold) !important;
    color:var(--primary-blue) !important;
    box-shadow:0 12px 26px rgba(221, 165, 36, .24);
}

.checkout-button:hover,
.checkout-button:focus-visible{
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(221, 165, 36, .32);
}

.cross-sells{
    padding:20px;
}

.cross-sells .products{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin:0;
    padding:0;
}

.cross-sells .product{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}

.woocommerce-shipping-destination,
.woocommerce-shipping-calculator{
    color:#6b7280;
    font-size:13px;
    text-align:left;
}

.woocommerce-shipping-calculator a,
.woocommerce-remove-coupon{
    color:#9c6a12;
    font-weight:900;
    text-decoration:none;
}

.woocommerce-shipping-calculator a:hover,
.woocommerce-remove-coupon:hover{
    color:var(--primary-blue);
}

.cart-empty-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    max-width:760px;
    margin-top:-18px;
    padding:42px 28px;
    text-align:center;
}

.cart-empty-state__icon{
    display:grid;
    place-items:center;
    width:178px;
    height:74px;
    margin-bottom:16px;
    border:1px solid rgba(221, 165, 36, .28);
    border-radius:8px;
    background:rgba(221, 165, 36, .12);
}

.cart-empty-state__icon .hammond-logo-svg{
    width:132px;
    height:35px;
    color:var(--primary-blue);
}

.cart-empty-state .cart-empty,
.cart-empty-state .woocommerce-info{
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:var(--primary-blue);
    font-family:var(--font-display);
    font-size:clamp(24px, 2.6vw, 30px);
    font-weight:700;
    line-height:1.2;
}

.cart-empty-state p:not(.cart-empty){
    max-width:460px;
    margin:12px auto 22px;
    color:var(--muted);
    line-height:1.75;
}

.hammond-cart-page .woocommerce-error,
.hammond-cart-page .woocommerce-info,
.hammond-cart-page .woocommerce-message{
    display:block !important;
    width:90%;
    max-width:var(--container-width);
    margin:18px auto 0;
    padding:14px 16px;
    border:1px solid rgba(1, 24, 69, .08);
    border-radius:8px;
    background:#fff;
    color:var(--primary-blue);
    box-shadow:0 12px 28px rgba(1, 24, 69, .08);
}

.hammond-cart-page .woocommerce-error{
    border-color:rgba(186, 48, 48, .2);
    color:#8f1e1e;
}

.hammond-cart-page .cart-empty-state .cart-empty,
.hammond-cart-page .cart-empty-state .woocommerce-info{
    width:auto;
    max-width:560px;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}

@media (max-width: 1040px){
    .cart-page-hero{
        background:
            linear-gradient(135deg, rgba(1, 24, 69, .98) 0%, rgba(6, 38, 92, .94) 54%, rgba(247, 248, 251, 1) 54%, rgba(247, 248, 251, 1) 100%);
    }

    .cart-page-hero__panel,
    .cart-page-wrapper{
        grid-template-columns:1fr;
    }

    .cart-page-hero__media{
        min-height:320px;
    }

    .cart-page-sidebar{
        position:static;
    }
}

@media (max-width: 760px){
    .hammond-cart-page{
        padding-bottom:48px;
    }

    .cart-page-hero{
        padding:106px 0 36px;
        background:linear-gradient(180deg, rgba(1, 24, 69, .98) 0%, rgba(5, 40, 98, .94) 64%, #f7f8fb 64%, #f7f8fb 100%);
    }

    .cart-page-hero__panel{
        gap:18px;
        padding:18px;
    }

    .cart-page-hero__copy h1{
        font-size:clamp(30px, 9vw, 38px);
    }

    .cart-page-hero__actions{
        align-items:stretch;
        flex-direction:column;
    }

    .cart-page-hero__actions .button-primary,
    .cart-page-hero__actions .cart-button-light{
        width:100%;
    }

    .cart-page-steps{
        grid-template-columns:1fr;
        max-width:none;
        margin-top:20px;
    }

    .cart-page-hero__media{
        min-height:240px;
    }

    .cart-page-wrapper{
        width:92%;
        gap:18px;
        margin-top:-16px;
    }

    .cart-section-heading{
        align-items:flex-start;
        flex-direction:column;
        padding:20px;
    }

    .shop_table.cart,
    .shop_table.cart tbody,
    .shop_table.cart tr,
    .shop_table.cart td{
        display:block;
        width:100%;
    }

    .shop_table.cart thead{
        display:none;
    }

    .shop_table.cart tr.cart_item{
        position:relative;
        display:grid;
        grid-template-columns:88px minmax(0, 1fr);
        gap:14px;
        padding:18px;
        border-bottom:1px solid var(--line);
    }

    .shop_table.cart tr.cart_item td{
        padding:0;
        border:0;
    }

    .shop_table.cart .product-remove{
        position:absolute;
        top:14px;
        right:14px;
        width:auto;
    }

    .shop_table.cart .product-thumbnail{
        grid-column:1;
        grid-row:1 / span 4;
        width:88px;
    }

    .shop_table.cart .product-thumbnail a,
    .shop_table.cart .product-thumbnail img{
        width:88px;
        height:88px;
    }

    .shop_table.cart .product-name{
        grid-column:2;
        min-width:0;
        padding-right:42px;
    }

    .shop_table.cart .product-price,
    .shop_table.cart .product-quantity,
    .shop_table.cart .product-subtotal{
        grid-column:2;
        width:auto;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding-top:10px;
    }

    .shop_table.cart td[data-title]::before{
        content:attr(data-title);
        color:#6b7280;
        font-size:11px;
        font-weight:900;
        letter-spacing:.1em;
        text-transform:uppercase;
    }

    .cart-actions-row{
        display:block !important;
    }

    .cart-actions-row td{
        display:block;
        padding:0;
    }

    .cart-actions{
        align-items:stretch;
        flex-direction:column;
        padding:18px;
    }

    .coupon-form{
        align-items:stretch;
        flex-direction:column;
        flex-basis:auto;
    }

    .coupon-form label{
        white-space:normal;
    }

    .button-apply-coupon{
        width:100%;
    }

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

    .cart_totals,
    .woocommerce-cart-totals,
    .cross-sells,
    .cart-sidebar-note{
        padding:20px;
    }

    .cart-empty-state{
        width:92%;
        padding:30px 18px;
    }
}

@media (max-width: 460px){
    .shop_table.cart tr.cart_item{
        grid-template-columns:76px minmax(0, 1fr);
        gap:12px;
        padding:16px;
    }

    .shop_table.cart .product-thumbnail a,
    .shop_table.cart .product-thumbnail img{
        width:76px;
        height:76px;
    }

    .shop_table.cart .product-thumbnail{
        width:76px;
    }

    .shop_table.cart .product-name a,
    .shop_table.cart .product-name strong{
        font-size:15px;
    }
}
