.overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.35);
      z-index: 30;
      display: none;
    }

    .overlay.open {
      display: block;
    }

    .cart {
      position: fixed;
      right: -430px;
      top: 0;
      width: min(430px, 100%);
      height: 100vh;
      background: white;
      z-index: 40;
      box-shadow: -10px 0 30px rgba(0,0,0,.12);
      transition: right .25s ease;
      display: flex;
      flex-direction: column;
    }

    .cart.open {
      right: 0;
    }

    .cart-header {
      padding: 22px;
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .close-cart {
      border: 0;
      background: transparent;
      font-size: 1.5rem;
    }

    .cart-items {
      flex: 1;
      overflow-y: auto;
      padding: 20px;
    }

    .cart-item {
      display: grid;
      grid-template-columns: 55px 1fr auto;
      gap: 12px;
      align-items: center;
      margin-bottom: 18px;
    }

    .cart-item-icon {
      width: 55px;
      height: 55px;
      border-radius: 12px;
      background: var(--accent);
      display: grid;
      place-items: center;
      font-size: 1.7rem;
    }

    .cart-item h4 {
      font-size: .9rem;
    }

    .cart-item small {
      color: var(--muted);
    }

    .quantity {
      display: flex;
      align-items: center;
      gap: 7px;
      margin-top: 5px;
    }

    .quantity button {
      width: 24px;
      height: 24px;
      border: 1px solid var(--border);
      background: white;
      border-radius: 6px;
    }

    .remove {
      border: 0;
      background: transparent;
      color: #a33;
      font-size: .75rem;
    }

    .cart-footer {
      padding: 20px;
      border-top: 1px solid var(--border);
    }

    .total {
      display: flex;
      justify-content: space-between;
      font-size: 1.15rem;
      font-weight: 800;
      margin-bottom: 15px;
    }

    .checkout {
      width: 100%;
      border: 0;
      border-radius: 12px;
      padding: 14px;
      background: var(--primary);
      color: white;
      font-weight: 800;
    }