
:root{
    --ink:#111827;
    --muted:#667085;
    --line:#e5ebf2;
    --soft:#f6f8fb;
    --blue:#1769e0;
    --blue-dark:#0f55bc;
    --orange:#ff8a1f;
    --danger:#dc2626;
    --green:#047857;
    --shadow:0 22px 70px rgba(15,23,42,.09);
}
*{box-sizing:border-box}
body{
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    background:#f7f9fc;
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
img{display:block;max-width:100%}
.shop-header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,255,255,.92);
    border-bottom:1px solid rgba(229,235,242,.95);
    backdrop-filter:blur(18px);
}
.shop-header-inner{
    max-width:1280px;
    min-height:78px;
    margin:auto;
    padding:0 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.shop-logo{
    display:flex;
    align-items:center;
    gap:11px;
    font-size:18px;
    font-weight:950;
    letter-spacing:-.03em;
}
.logo-mark{
    width:42px;
    height:42px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(135deg,var(--blue),#58a8ff);
    box-shadow:0 10px 24px rgba(23,105,224,.24);
}
.shop-logo small{
    font-size:10px;
    color:var(--orange);
    letter-spacing:.15em;
}
.shop-header nav{
    display:flex;
    align-items:center;
    gap:24px;
    color:#475467;
    font-weight:800;
}
.shop-header nav a:hover{color:var(--blue)}
.cart-count{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border-radius:14px;
    background:var(--ink);
    color:#fff;
}
.cart-count b{
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:var(--orange);
    font-size:12px;
}
.cart-page{
    max-width:1280px;
    margin:auto;
    padding:52px 28px 90px;
}
.cart-heading{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
    margin-bottom:28px;
}
.cart-kicker,.summary-kicker{
    display:block;
    color:var(--blue);
    font-size:11px;
    font-weight:950;
    letter-spacing:.14em;
}
.cart-heading h1{
    margin:9px 0 7px;
    font-size:clamp(42px,5vw,66px);
    line-height:1;
    letter-spacing:-.055em;
}
.cart-heading p{
    margin:0;
    color:var(--muted);
    line-height:1.6;
}
.clear-cart{
    border:1px solid #fecdd3;
    border-radius:14px;
    padding:11px 15px;
    background:#fff1f2;
    color:#b42318;
    font-weight:850;
    cursor:pointer;
}
.notice{
    margin-bottom:20px;
    padding:14px 17px;
    border-radius:15px;
    font-weight:800;
}
.notice.success{
    background:#ecfdf3;
    border:1px solid #b7ebcc;
    color:#047857;
}
.notice.danger{
    background:#fff1f2;
    border:1px solid #fecdd3;
    color:#b42318;
}
.empty-cart{
    padding:75px 25px;
    border:1px dashed #cbd5e1;
    border-radius:30px;
    background:#fff;
    text-align:center;
}
.empty-cart-icon{font-size:52px}
.empty-cart h2{margin:16px 0 7px;font-size:30px}
.empty-cart p{color:var(--muted)}
.empty-cart a{
    display:inline-flex;
    margin-top:13px;
    padding:14px 20px;
    border-radius:15px;
    background:var(--blue);
    color:#fff;
    font-weight:900;
}
.cart-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:24px;
    align-items:start;
}
.cart-items{display:grid;gap:18px}
.cart-item{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:27px;
    background:#fff;
    box-shadow:0 10px 35px rgba(15,23,42,.04);
}
.cart-product-main{
    display:grid;
    grid-template-columns:132px minmax(0,1fr) auto;
    gap:20px;
    align-items:center;
    padding:20px;
}
.cart-image{
    width:132px;
    aspect-ratio:1/1;
    overflow:hidden;
    border-radius:19px;
    background:#f1f4f8;
}
.cart-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.cart-image span{
    height:100%;
    display:grid;
    place-items:center;
    color:#98a2b3;
    font-size:12px;
}
.item-category{
    color:var(--blue);
    font-size:10px;
    font-weight:950;
    letter-spacing:.12em;
}
.cart-product-copy h2{
    margin:7px 0 8px;
    font-size:23px;
    line-height:1.15;
    letter-spacing:-.025em;
}
.cart-product-copy h2 a:hover{color:var(--blue)}
.item-options{
    display:flex;
    gap:8px 16px;
    flex-wrap:wrap;
    color:var(--muted);
    font-size:13px;
}
.item-options b{color:#475467}
.item-unit-price{
    margin-top:11px;
    color:var(--muted);
    font-size:12px;
}
.item-unit-price strong{color:var(--ink)}
.cart-item-price{
    min-width:150px;
    text-align:right;
}
.cart-item-price small,
.cart-item-price strong,
.cart-item-price span{
    display:block;
}
.cart-item-price small{
    color:var(--muted);
    font-size:11px;
}
.cart-item-price strong{
    margin-top:4px;
    font-size:22px;
}
.cart-item-price span{
    margin-top:5px;
    color:var(--green);
    font-size:10px;
    font-weight:800;
}
.personalization-summary{
    padding:18px 20px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:#f9fbfd;
}
.summary-title{
    display:flex;
    justify-content:space-between;
    gap:15px;
    margin-bottom:12px;
}
.summary-title span{
    color:var(--muted);
    font-size:12px;
}
.position-list{display:grid;gap:9px}
.position-summary{
    padding:14px 15px;
    border:1px solid #e1e8f1;
    border-radius:17px;
    background:#fff;
}
.position-summary-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.position-charge,.position-included{
    flex:0 0 auto;
    padding:6px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.position-charge{
    background:#fff1f2;
    color:#b42318;
}
.position-included{
    background:#ecfdf3;
    color:#047857;
}
.position-detail{
    margin-top:11px;
    padding-top:10px;
    border-top:1px solid #edf1f5;
}
.position-detail b{
    display:block;
    margin-bottom:5px;
    color:#475467;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.position-detail p{
    margin:0;
    color:#344054;
    font-size:13px;
    line-height:1.55;
}
.file-list{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}
.file-list span{
    padding:6px 9px;
    border-radius:10px;
    background:#eef3f8;
    color:#475467;
    font-size:11px;
}
.group-charge-note{
    display:block;
    margin-top:9px;
    color:#b54708;
}
.cart-item-actions{
    padding:15px 20px;
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:18px;
}
.quantity-form{
    display:flex;
    align-items:end;
    gap:9px;
}
.quantity-form>label{
    align-self:center;
    color:var(--muted);
    font-size:12px;
    font-weight:800;
}
.quantity-control{
    height:44px;
    display:grid;
    grid-template-columns:36px 48px 36px;
    overflow:hidden;
    border:1px solid #d8e0ea;
    border-radius:13px;
}
.quantity-control button,.quantity-control input{
    border:0;
    background:#fff;
    text-align:center;
    outline:0;
}
.quantity-control button{
    color:var(--blue);
    font-size:20px;
    cursor:pointer;
}
.quantity-control input{
    width:100%;
    font-weight:900;
    -moz-appearance:textfield;
}
.quantity-control input::-webkit-outer-spin-button,
.quantity-control input::-webkit-inner-spin-button{
    -webkit-appearance:none;
}
.update-item{
    height:44px;
    border:0;
    border-radius:13px;
    padding:0 14px;
    background:#eaf2ff;
    color:var(--blue);
    font-weight:900;
    cursor:pointer;
}
.remove-item{
    border:0;
    background:transparent;
    color:#b42318;
    font-weight:850;
    cursor:pointer;
}
.cart-summary{
    position:sticky;
    top:102px;
    padding:25px;
    border-radius:27px;
    background:var(--ink);
    color:#fff;
    box-shadow:var(--shadow);
}
.cart-summary h2{
    margin:7px 0 22px;
    font-size:36px;
    letter-spacing:-.045em;
}
.summary-lines{
    display:grid;
    gap:13px;
}
.summary-lines>div{
    display:flex;
    justify-content:space-between;
    gap:18px;
    color:#c5cedc;
    font-size:13px;
}
.summary-lines strong{
    color:#fff;
    text-align:right;
}
.delivery-line{
    padding-top:13px;
    border-top:1px solid rgba(255,255,255,.1);
}
.delivery-line strong{
    color:#aeb8c7;
    font-size:11px;
}
.grand-total{
    margin-top:20px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.16);
}
.grand-total span,.grand-total strong{display:block}
.grand-total span{
    color:#aeb8c7;
    font-size:12px;
}
.grand-total strong{
    margin-top:5px;
    font-size:34px;
    letter-spacing:-.04em;
}
.unknown-price{
    margin-top:14px;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(255,255,255,.08);
    color:#ffd7a8;
    font-size:11px;
}
.checkout-button{
    width:100%;
    min-height:55px;
    margin-top:20px;
    border:0;
    border-radius:16px;
    background:var(--blue);
    color:#fff;
    font-weight:950;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
}
.checkout-button:disabled{
    opacity:.6;
    cursor:not-allowed;
}
.checkout-note{
    color:#9da8b8;
    font-size:11px;
    line-height:1.5;
}
.continue-shopping{
    display:block;
    margin-top:18px;
    color:#fff;
    font-size:12px;
    font-weight:850;
}
@media(max-width:1000px){
    .cart-layout{grid-template-columns:1fr}
    .cart-summary{position:static}
}
@media(max-width:700px){
    .shop-header-inner{padding:0 16px}
    .shop-header nav>a{display:none}
    .cart-page{padding:35px 16px 70px}
    .cart-heading{display:block}
    .clear-cart{margin-top:18px}
    .cart-product-main{
        grid-template-columns:95px minmax(0,1fr);
        align-items:start;
    }
    .cart-image{width:95px}
    .cart-item-price{
        grid-column:1/-1;
        display:flex;
        align-items:center;
        justify-content:space-between;
        text-align:left;
        padding-top:12px;
        border-top:1px solid var(--line);
    }
    .cart-item-price strong{margin:0}
    .cart-item-price span{text-align:right}
    .cart-item-actions{
        align-items:stretch;
        flex-direction:column;
    }
    .quantity-form{
        flex-wrap:wrap;
        align-items:center;
    }
    .remove-item{padding:7px 0}
}
@media(max-width:470px){
    .cart-product-main{
        grid-template-columns:78px minmax(0,1fr);
        gap:13px;
        padding:15px;
    }
    .cart-image{width:78px;border-radius:15px}
    .cart-product-copy h2{font-size:19px}
    .personalization-summary{padding:15px}
    .position-summary-head{align-items:flex-start}
    .position-charge,.position-included{text-align:center}
    .quantity-form>label{width:100%}
}
