/* Header cart drawer only; existing header and product styles remain unchanged. */
.bianca-cart-overlay { position:fixed; inset:0; z-index:1000010; overflow:hidden; font-family:var(--bianca-font); color:var(--bianca-navy); }
.bianca-cart-overlay[hidden] { display:none; }
.bianca-cart-overlay *, .bianca-cart-overlay *::before, .bianca-cart-overlay *::after { box-sizing:border-box; }
.bianca-cart-backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(6,45,85,.45); opacity:0; transition:opacity 300ms ease; }
.bianca-cart-drawer { position:absolute; top:0; right:0; display:flex; flex-direction:column; width:420px; max-width:100%; height:100vh; height:100dvh; background:var(--bianca-white); transform:translateX(100%); transition:transform 300ms ease; }
.bianca-cart-overlay.is-open .bianca-cart-backdrop { opacity:1; }
.bianca-cart-overlay.is-open .bianca-cart-drawer { transform:translateX(0); }
.bianca-cart-drawer__header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-shrink:0; padding:26px 24px 20px; border-bottom:1px solid var(--bianca-border); }
.bianca-cart-drawer__header h2 { margin:0 0 5px; font-size:24px; line-height:1.2; font-weight:600; letter-spacing:-.035em; }
.bianca-cart-drawer__count { font-size:13px; color:var(--bianca-muted); }
.bianca-cart-drawer__close { display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:var(--bianca-off-white); color:var(--bianca-navy); font:inherit; font-size:28px; cursor:pointer; }
.bianca-cart-drawer__content { display:flex; flex-direction:column; flex:1; min-height:0; min-width:0; }
.bianca-cart-drawer__items { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; list-style:none; margin:0; padding:0 24px; }
.bianca-cart-item { position:relative; display:grid; grid-template-columns:76px minmax(0,1fr); gap:16px; padding:22px 0; border-bottom:1px solid var(--bianca-border); }
.bianca-cart-item:last-child { border-bottom:0; }
.bianca-cart-item__image img { display:block; width:76px; height:96px; object-fit:cover; border-radius:8px; background:var(--bianca-off-white); }
.bianca-cart-item__info { min-width:0; }
.bianca-cart-item h3 { margin:0 24px 8px 0; font-size:13px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.bianca-cart-item a { color:var(--bianca-navy); text-decoration:none; }
.bianca-cart-item .variation { display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px 5px; margin:0 0 12px; padding:0; border:0; color:var(--bianca-muted); font-size:12px; line-height:1.5; }
.bianca-cart-item .variation dt, .bianca-cart-item .variation dd, .bianca-cart-item .variation p { margin:0; padding:0; }
.bianca-cart-item .variation dd { min-width:0; overflow-wrap:anywhere; }
.bianca-cart-item__bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.bianca-cart-item__quantity { display:flex; align-items:center; flex:0 0 104px; height:36px; border:1px solid var(--bianca-border); border-radius:8px; overflow:hidden; }
.bianca-cart-item__quantity button { flex:0 0 30px; width:30px; height:34px; padding:0; border:0; background:var(--bianca-white); color:var(--bianca-navy); font:inherit; font-size:18px; cursor:pointer; }
.bianca-cart-item__qty { width:42px; min-width:0; height:34px; margin:0; padding:0; border:0; border-radius:0; color:var(--bianca-navy); background:var(--bianca-white); font:inherit; font-size:12px; text-align:center; appearance:textfield; }
.bianca-cart-item__qty::-webkit-inner-spin-button, .bianca-cart-item__qty::-webkit-outer-spin-button { appearance:none; margin:0; }
.bianca-cart-item__price { color:var(--bianca-navy); font-size:13px; font-weight:700; }
.bianca-cart-item__remove { position:absolute; top:20px; right:-4px; width:26px; height:26px; padding:0; border:0; background:transparent; color:var(--bianca-muted); font:inherit; font-size:22px; cursor:pointer; }
.bianca-cart-drawer__footer { flex-shrink:0; padding:22px 24px 24px; border-top:1px solid var(--bianca-border); background:var(--bianca-white); }
.bianca-cart-drawer__subtotal { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:18px; font-size:15px; }
.bianca-cart-drawer__primary, .bianca-cart-drawer__secondary { display:flex; justify-content:center; align-items:center; min-height:56px; width:100%; padding:12px 16px; border:1px solid var(--bianca-navy); border-radius:12px; font-family:inherit; font-size:13px; font-weight:700; text-decoration:none; line-height:1.4; text-align:center; transition:background-color 200ms ease,color 200ms ease; }
.bianca-cart-drawer__primary { background:var(--bianca-navy); color:var(--bianca-white); }
.bianca-cart-drawer__secondary { margin-bottom:10px; background:var(--bianca-white); color:var(--bianca-navy); }
.bianca-cart-drawer__primary:hover { background:#062D55; border-color:#062D55; color:var(--bianca-white); }
.bianca-cart-drawer__secondary:hover { background:var(--bianca-light-blue); color:var(--bianca-navy); }
.bianca-cart-drawer__empty { display:flex; flex-direction:column; justify-content:center; flex:1; gap:20px; padding:28px 24px; text-align:center; }
.bianca-cart-drawer__empty p { margin:0; font-size:16px; }
.bianca-cart-drawer__message { margin:0; padding:12px 24px; background:var(--bianca-light-blue); color:var(--bianca-navy); font-size:13px; line-height:1.5; }
.bianca-cart-drawer__message[hidden] { display:none; }
.bianca-cart-overlay button:disabled { opacity:.4; cursor:default; }
.bianca-cart-overlay :focus-visible { outline:2px solid var(--bianca-navy); outline-offset:2px; }
@media(max-width:768px) { .bianca-cart-drawer { width:100%; } .bianca-cart-drawer__header { padding:24px 18px 18px; } .bianca-cart-drawer__items { padding:0 18px; } .bianca-cart-drawer__footer { padding:20px 18px; } }
@media(prefers-reduced-motion:reduce) { .bianca-cart-drawer, .bianca-cart-backdrop { transition:none; } }
.bianca-cart-item__unit { margin:0 0 10px; color:var(--bianca-muted); font-size:12px; line-height:1.5; }
.bianca-cart-drawer__primary { cursor:pointer; }