@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
    --bg:#f6f5f2;
    --card:#ffffff;
    --text:#111827;
    --muted:#6b7280;
    --line:#e8e1d5;
    --black:#111827;
    --gold:#c89b3c;
    --green:#166534;
    --danger:#dc2626;

    --font-heading:"Cormorant Garamond",Georgia,serif;
    --font-body:"Inter","Segoe UI",Arial,sans-serif;

    --shadow:0 6px 18px rgba(0,0,0,.05);
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font-body);
    -webkit-font-smoothing:antialiased;
}

.container{
    max-width:1320px;
    margin:auto;
    padding:24px;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

.card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:var(--shadow);
}

/* HERO */

.cart-hero{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    padding:24px;
    margin-bottom:22px;
}

.cart-hero h1{
    margin:0 0 6px;
    font-size:42px;
    font-family:var(--font-heading);
    font-weight:600;
}

.cart-hero p{
    margin:0;
    color:var(--muted);
    font-size:15px;
}

.cart-hero-stats{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.cart-hero-stats span{
    background:#fffaf0;
    border:1px solid #ead7ae;
    color:#8a6416;
    padding:10px 14px;
    border-radius:10px;
    font-size:13px;
    font-weight:800;
}

/* LAYOUT */

.cart-page-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:22px;
    align-items:start;
}

/* CART LIST */

.cart-list{
    overflow:hidden;
}

.cart-table-head{
    display:grid;
    grid-template-columns:1.8fr .8fr .6fr .6fr 60px;
    gap:16px;
    padding:18px 22px;
    border-bottom:1px solid var(--line);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--muted);
}

.cart-item-row{
    display:grid;
    grid-template-columns:1.8fr .8fr .6fr .6fr 60px;
    gap:16px;
    padding:20px 22px;
    border-bottom:1px solid var(--line);
    align-items:center;
}

.cart-product-cell{
    display:flex;
    gap:16px;
    align-items:flex-start;
}

.cart-product-img{
    width:110px;
    height:110px;
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    background:#fff;
    flex:0 0 auto;
}

.cart-product-img img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:6px;
}

.cart-product-info h3{
    margin:0 0 8px;
    font-size:18px;
    font-weight:800;
    line-height:1.3;
}

.cart-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:10px;
}

.cart-meta span{
    background:#f3f4f6;
    padding:5px 8px;
    border-radius:8px;
    font-size:11px;
    font-weight:800;
    color:#555;
}

.cart-small-text{
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}

/* INPUTS */

.cart-field-wrap label{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:800;
    color:#555;
}

.cart-field-wrap input{
    width:100%;
    height:44px;
    border:1px solid var(--line);
    border-radius:10px;
    padding:0 12px;
    font-size:15px;
    font-weight:700;
    background:#fff;
}

.cart-price strong{
    display:block;
    font-size:18px;
    font-weight:900;
}

.cart-price span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:12px;
}

.cart-line-total{
    font-size:22px;
    font-weight:900;
}

.cart-remove{
    width:38px;
    height:38px;
    border:0;
    background:#f3f4f6;
    border-radius:10px;
    font-size:24px;
    cursor:pointer;
    color:#666;
}

/* ACTIONS */

.cart-actions{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:22px;
    flex-wrap:wrap;
}

.cart-actions-right{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.cart-btn{
    min-height:48px;
    padding:0 18px;
    border-radius:12px;
    font-size:14px;
    font-weight:900;
    border:1px solid #111;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.cart-btn.dark{
    background:#111;
    color:#fff;
}

.cart-btn.outline{
    background:#fff;
    color:#111;
}

.cart-btn.danger{
    background:#fff;
    color:var(--danger);
    border-color:#f0caca;
}

/* SUMMARY */

.cart-summary{
    padding:22px;
    position:sticky;
    top:110px;
}

.cart-summary h2{
    margin:0 0 18px;
    font-size:34px;
    font-family:var(--font-heading);
    font-weight:600;
}

.cart-summary-line{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:12px 0;
    border-bottom:1px solid var(--line);
    font-size:15px;
}

.cart-summary-line span{
    color:var(--muted);
}

.cart-summary-line strong{
    font-weight:900;
}

.cart-grand-total{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:18px 0;
    font-size:20px;
    font-weight:900;
}

.cart-checkout-btn{
    width:100%;
    min-height:56px;
    border-radius:14px;
    background:#111;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    font-weight:900;
    margin-top:10px;
}

.cart-note{
    margin-top:14px;
    color:var(--muted);
    font-size:13px;
    line-height:1.6;
}

/* EMPTY */

.cart-empty{
    padding:50px 24px;
    text-align:center;
}

.cart-empty h2{
    margin:0 0 10px;
    font-size:36px;
    font-family:var(--font-heading);
}

.cart-empty p{
    color:var(--muted);
    margin-bottom:22px;
}

/* MOBILE */

@media(max-width:1024px){

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

    .cart-summary{
        position:relative;
        top:auto;
    }
}

@media(max-width:768px){

    .container{
        padding:14px;
    }

    .cart-hero{
        flex-direction:column;
        align-items:flex-start;
        padding:18px;
    }

    .cart-hero h1{
        font-size:34px;
    }

    .cart-table-head{
        display:none;
    }

    .cart-item-row{
        grid-template-columns:1fr;
        gap:14px;
        padding:18px;
    }

    .cart-product-cell{
        flex-direction:column;
    }

    .cart-product-img{
        width:100%;
        height:220px;
    }

    .cart-field-wrap{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:10px;
    }

    .cart-line-total{
        font-size:24px;
    }

    .cart-actions{
        flex-direction:column;
    }

    .cart-actions-right{
        width:100%;
        flex-direction:column;
    }

    .cart-btn{
        width:100%;
    }

    .cart-summary{
        padding:18px;
    }

    .cart-summary h2{
        font-size:30px;
    }
}

@media(max-width:480px){

    .cart-product-img{
        height:180px;
    }

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

    .cart-line-total{
        font-size:22px;
    }
}