
:root{--blue:#1a2f5e;--blue-mid:#2c4a8a;--blue-light:#eef1f8;--gold:#b5924c;--gold-light:#f5eedf;--ivory:#faf9f7;--white:#fff;--text:#1c1e24;--text-mid:#44474f;--muted:#7a7d88;--border:#e2e4e9;--radius:6px;--font-display:'Cormorant Garamond',Georgia,serif;--font-body:'DM Sans',system-ui,sans-serif;--shadow:0 2px 12px rgba(0,0,0,.08);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font-body);background:var(--ivory);color:var(--text);-webkit-font-smoothing:antialiased;}
a{color:var(--blue);text-decoration:none;}a:hover{text-decoration:underline;}
.page{max-width:1100px;margin:0 auto;padding:40px 20px 80px;}
.page-title{font-family:var(--font-display);font-size:2rem;font-weight:400;color:var(--blue);margin-bottom:32px;}
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start;}
@media(max-width:800px){.cart-layout{grid-template-columns:1fr;}}

/* Cart items */
.cart-items{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);}
.cart-item{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border);}
.cart-item:last-child{border-bottom:none;}
.cart-item__img{width:80px;height:80px;object-fit:cover;border-radius:4px;border:1px solid var(--border);}
.cart-item__img-placeholder{width:80px;height:80px;background:var(--ivory);border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--muted);text-transform:uppercase;}
.cart-item__title{font-family:var(--font-display);font-size:1.05rem;color:var(--blue);font-weight:400;line-height:1.3;margin-bottom:4px;}
.cart-item__meta{font-size:12px;color:var(--muted);margin-bottom:6px;}
.cart-item__type{display:inline-block;padding:2px 8px;border-radius:2px;font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;}
.cart-item__type--deposit{background:var(--gold-light);color:#7a5a20;}
.cart-item__type--full{background:var(--blue-light);color:var(--blue);}
.cart-item__price{font-family:var(--font-display);font-size:1.2rem;font-weight:300;color:var(--text);white-space:nowrap;}
.cart-item__remove{display:block;margin-top:6px;font-size:11px;color:var(--muted);cursor:pointer;background:none;border:none;text-decoration:underline;padding:0;}
.cart-item__remove:hover{color:#c0392b;}
.cart-item__timer{font-size:11px;color:#b5924c;margin-top:4px;}

.empty-cart{padding:60px 20px;text-align:center;}
.empty-cart h2{font-family:var(--font-display);font-size:1.6rem;font-weight:400;color:var(--blue);margin-bottom:10px;}
.empty-cart p{color:var(--muted);margin-bottom:20px;}

/* Summary panel */
.cart-summary{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:24px;position:sticky;top:24px;}
.cart-summary h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--blue);margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.summary-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:14px;}
.summary-row.total{font-size:1.1rem;font-weight:600;color:var(--blue);border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}
.summary-row .label{color:var(--text-mid);}
.summary-row .value{color:var(--text);}
.summary-row.discount .value{color:var(--gold);}

/* Voucher */
.voucher-form{margin:16px 0;}
.voucher-form label{display:block;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.voucher-input-row{display:flex;gap:6px;}
.voucher-input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:var(--font-body);outline:none;background:var(--ivory);}
.voucher-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,47,94,.08);}
.btn-voucher{padding:8px 14px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:12px;font-weight:500;cursor:pointer;}
.btn-voucher:hover{background:var(--blue-mid);}
.voucher-msg{font-size:12px;margin-top:5px;color:var(--gold);}
.voucher-err{font-size:12px;margin-top:5px;color:#c0392b;}
.remove-voucher{font-size:11px;color:var(--muted);text-decoration:underline;cursor:pointer;border:none;background:none;margin-left:6px;}

/* Buttons */
.btn-primary{display:block;width:100%;padding:14px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;font-weight:500;letter-spacing:.03em;text-align:center;cursor:pointer;text-decoration:none;transition:background .15s;margin-top:14px;}
.btn-primary:hover{background:var(--blue-mid);text-decoration:none;color:#fff;}
.btn-secondary{display:block;width:100%;padding:12px;background:transparent;color:var(--text-mid);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-weight:400;text-align:center;cursor:pointer;text-decoration:none;transition:border-color .15s;margin-top:8px;}
.btn-secondary:hover{border-color:var(--blue);color:var(--blue);text-decoration:none;}
.trust-msg{font-size:11px;color:var(--muted);text-align:center;margin-top:12px;line-height:1.5;}

/* Deposit explainer */
.deposit-note{background:var(--gold-light);border:1px solid #e8d9bc;border-radius:var(--radius);padding:12px 14px;font-size:12px;color:#7a5a20;margin-bottom:16px;line-height:1.5;}

/* Notification overlay */
.notify-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;align-items:center;justify-content:center;padding:20px;}
.notify-modal.open{display:flex;}
.notify-box{background:#fff;border-radius:8px;padding:32px;max-width:420px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.18);}
.notify-box h3{font-family:var(--font-display);font-size:1.3rem;color:var(--blue);margin-bottom:8px;}
.notify-box p{font-size:13px;color:var(--muted);margin-bottom:16px;line-height:1.5;}
.notify-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:var(--font-body);margin-bottom:12px;outline:none;}
.notify-input:focus{border-color:var(--blue);}
.notify-close{margin-top:8px;display:block;text-align:center;font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;border:none;background:none;}