.cart-page { padding-top: 24px; padding-bottom: 76px; color: #193b34; }
.cart-breadcrumb { display:flex; align-items:center; gap:10px; margin:0 0 30px; color:#87918b; font-size:1.05rem; }
.cart-breadcrumb a { color:#526a60; }
.cart-breadcrumb i { font-size:.8rem; }
.cart-page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:34px; }
.cart-page-heading h1 { margin:8px 0 7px; color:#173c35; font-family:Georgia,serif; font-size:clamp(3rem,5vw,4.6rem); letter-spacing:-.045em; }
.cart-page-heading p { margin:0; color:#718078; font-size:1.2rem; }
.cart-steps { display:flex; align-items:center; gap:12px; padding:10px 0; color:#9aa69f; white-space:nowrap; }
.cart-steps > i { width:30px; height:1px; background:#dce5dd; }
.cart-step { display:flex; align-items:center; gap:7px; font-size:1rem; }
.cart-step b { display:grid; place-items:center; width:25px; height:25px; border:1px solid #d7dfd8; border-radius:50%; font-size:.9rem; font-weight:600; }
.cart-step-current { color:#173c35; font-weight:700; }
.cart-step-current b { border-color:#173c35; background:#173c35; color:white; }
.cart-step-complete { color:#50745a; }
.cart-step-complete b { border-color:#cbdcca; background:#edf5eb; color:#50745a; }
.cart-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; align-items:start; gap:28px; }
.cart-items-panel,.cart-summary-card,.cart-promise { border:1px solid #e4eae4; border-radius:16px; background:#fff; box-shadow:0 12px 36px rgba(23,60,53,.045); }
.cart-items-panel { overflow:hidden; }
.cart-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:23px 25px; border-bottom:1px solid #edf0ec; }
.cart-panel-heading h2,.cart-summary h2 { margin:0; color:#193b34; font-size:1.35rem; font-weight:700; }
.cart-item-count { display:block; margin-top:4px; color:#8a958e; font-size:.95rem; }
.cart-panel-heading > a { color:#42655a; font-size:1rem; font-weight:600; }
.cart-panel-heading > a i { margin-right:4px; }
.cart-items-list { padding:0 25px; }
.cart-item-row { display:grid; grid-template-columns:100px minmax(150px,1fr) minmax(190px,auto); align-items:center; gap:19px; padding:22px 0; border-bottom:1px solid #edf0ec; transition:opacity .15s; }
.cart-item-row.is-updating { opacity:.55; pointer-events:none; }
.cart-item-image { display:grid; place-items:center; width:100px; height:100px; border-radius:12px; background:#f5f7f3; overflow:hidden; }
.cart-item-image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.cart-item-detail { display:grid; align-content:center; gap:7px; min-width:0; }
.cart-item-name { color:#193b34; font-size:1.12rem; font-weight:700; line-height:1.4; }
.cart-item-name:hover { color:#567b65; }
.cart-availability,.cart-product-id { color:#74827a; font-size:.91rem; }
.cart-availability i { color:#5d8c68; }
.cart-unavailable { color:#a04d3e; }
.cart-unavailable i { color:#a04d3e; }
.cart-item-controls { display:grid; grid-template-columns:auto auto; align-items:center; justify-content:end; gap:10px 15px; }
.cart-quantity-control { display:inline-flex; align-items:center; height:38px; border:1px solid #dbe4dc; border-radius:9px; overflow:hidden; }
.cart-quantity-control button { width:34px; height:36px; border:0; background:#f7f9f6; color:#214a3c; font-size:1.25rem; cursor:pointer; }
.cart-quantity-control button:disabled { color:#b9c2bc; cursor:not-allowed; }
.cart-quantity-control input { width:38px; height:36px; padding:0; border:0; outline:0; color:#193b34; text-align:center; font-weight:700; -moz-appearance:textfield; }
.cart-quantity-control input::-webkit-inner-spin-button,.cart-quantity-control input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.cart-item-total { min-width:85px; color:#173c35; text-align:right; font-size:1.1rem; }
.cart-remove-button { grid-column:1/-1; justify-self:end; display:flex; align-items:center; gap:5px; padding:3px 0; border:0; background:transparent; color:#8c9690; font-size:.9rem; cursor:pointer; }
.cart-remove-button:hover { color:#a34d42; }
.cart-items-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 25px; background:#fbfcfa; color:#77847d; font-size:.9rem; }
.cart-items-footer > span i { margin-right:5px; color:#4d7965; }
.cart-clear-button,.cart-text-link { padding:0; border:0; background:transparent; color:#75827b; text-decoration:underline; cursor:pointer; }
.cart-summary { position:sticky; top:170px; }
.cart-summary-card { padding:24px; }
.cart-summary h2 { padding-bottom:18px; border-bottom:1px solid #edf0ec; }
.cart-summary-line { display:flex; justify-content:space-between; gap:15px; padding:14px 0 5px; color:#65736b; font-size:1rem; }
.cart-summary-line strong { color:#193b34; font-size:1rem; }
.cart-summary-line small { color:#89948d; }
.cart-shipping-note { display:flex; gap:7px; padding:9px 10px; border-radius:8px; background:#f0f6ef; color:#4f7158; font-size:.88rem; }
.cart-shipping-note i { font-size:1.2rem; }
.cart-delivery-choice { display:grid; gap:7px; padding:18px 0 15px; border-bottom:1px solid #edf0ec; }
.cart-delivery-choice label,.cart-coupon label { color:#52645a; font-size:.92rem; font-weight:700; }
.cart-delivery-choice select { width:100%; height:42px; padding:0 12px; border:1px solid #dbe4dc; border-radius:8px; background:#fff; color:#193b34; }
.cart-delivery-choice small,.cart-coupon small { color:#849088; font-size:.82rem; }
.cart-coupon-note { display:flex; align-items:center; gap:8px; margin:0; padding:15px 0; border-bottom:1px solid #edf0ec; color:#718078; font-size:.88rem; }
.cart-coupon-note i { color:#64836c; font-size:1.2rem; }
.cart-coupon > div { display:flex; height:42px; border:1px solid #dbe4dc; border-radius:8px; overflow:hidden; }
.cart-coupon input { flex:1; min-width:0; padding:0 11px; border:0; outline:0; color:#193b34; }
.cart-coupon button { padding:0 14px; border:0; background:#eaf1e9; color:#244b3d; font-weight:700; cursor:pointer; }
.cart-summary-total { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 0; }
.cart-summary-total > span { display:grid; gap:3px; color:#193b34; font-size:1.05rem; font-weight:700; }
.cart-summary-total small { color:#89948d; font-size:.78rem; font-weight:400; }
.cart-summary-total strong { color:#173c35; font-size:1.5rem; }
.cart-checkout-button,.cart-primary-button { display:flex; justify-content:center; align-items:center; gap:10px; width:100%; min-height:50px; padding:12px 18px; border:0; border-radius:9px; background:#173c35; color:#fff !important; font-size:1rem; font-weight:700; text-align:center; transition:background .15s,transform .15s; }
.cart-checkout-button:hover,.cart-primary-button:hover { background:#28594c; transform:translateY(-1px); }
.cart-checkout-button.is-disabled,.cart-checkout-button.is-saving { opacity:.62; cursor:not-allowed; pointer-events:none; }
.cart-secure-note { margin:13px 0 0; color:#8a958e; font-size:.8rem; text-align:center; }
.cart-secure-note i { color:#547963; }
.cart-promise { display:flex; gap:12px; align-items:flex-start; margin-top:13px; padding:16px; }
.cart-promise > i { color:#789475; font-size:1.5rem; }
.cart-promise div { display:grid; gap:4px; }
.cart-promise strong { color:#304f42; font-size:.95rem; }
.cart-promise span { color:#859188; font-size:.85rem; line-height:1.5; }
.cart-message { display:flex; justify-content:center; align-items:center; gap:12px; min-height:180px; color:#75847b; }
.cart-message-error { color:#a34d42; }
.cart-message-error button { border:0; background:transparent; color:#244b3d; text-decoration:underline; cursor:pointer; }
.cart-spinner { width:23px; height:23px; border:2px solid #d8e2d9; border-top-color:#315e4d; border-radius:50%; animation:cart-spin .7s linear infinite; }
@keyframes cart-spin { to { transform:rotate(360deg); } }
.cart-empty-state { display:grid; justify-items:center; max-width:560px; margin:15px auto 0; padding:50px 24px 60px; border:1px solid #e7ece6; border-radius:18px; background:#fff; text-align:center; }
.cart-empty-icon { display:grid; place-items:center; width:76px; height:76px; border-radius:50%; background:#eef4ed; color:#426d56; font-size:2.3rem; }
.cart-empty-state h2 { margin:22px 0 8px; color:#193b34; font-family:Georgia,serif; font-size:2rem; }
.cart-empty-state p { max-width:400px; margin:0 0 22px; color:#77847c; line-height:1.65; }
.cart-empty-state .cart-primary-button { width:auto; min-width:220px; }
.cart-empty-state .cart-text-link { margin-top:17px; }
.cart-page-toast { position:fixed; right:24px; bottom:24px; z-index:120; max-width:min(380px,calc(100vw - 32px)); padding:13px 18px; border-radius:10px; background:#173c35; box-shadow:0 12px 32px rgba(16,47,39,.22); color:#fff; opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .2s,transform .2s; }
.cart-page-toast.is-visible { opacity:1; transform:translateY(0); }
@media(max-width: 991px) { .cart-layout { grid-template-columns:minmax(0,1fr) 310px; gap:18px; } .cart-item-row { grid-template-columns:82px minmax(130px,1fr); gap:14px; } .cart-item-image { width:82px; height:82px; } .cart-item-controls { grid-column:2; display:flex; justify-content:space-between; } .cart-remove-button { margin-left:auto; } }
@media(max-width: 767px) { .cart-page { padding-top:18px; } .cart-breadcrumb { margin-bottom:22px; } .cart-page-heading { align-items:flex-start; flex-direction:column; margin-bottom:23px; } .cart-page-heading h1 { font-size:3.15rem; } .cart-steps { gap:8px; } .cart-steps > i { width:20px; } .cart-layout { grid-template-columns:1fr; } .cart-summary { position:static; } }
@media(max-width: 480px) { .cart-panel-heading { align-items:flex-start; padding:18px 15px; } .cart-panel-heading > a { font-size:.86rem; } .cart-items-list { padding:0 15px; } .cart-item-row { grid-template-columns:70px minmax(0,1fr); gap:11px; } .cart-item-image { width:70px; height:70px; } .cart-item-name { font-size:1rem; } .cart-item-controls { flex-wrap:wrap; gap:9px; } .cart-item-total { min-width:0; } .cart-items-footer { padding:14px 15px; font-size:.78rem; } .cart-summary-card { padding:20px 17px; } .cart-steps { font-size:.83rem; } .cart-step { gap:5px; } .cart-step b { width:22px; height:22px; } .cart-steps > i { width:12px; } }
